ETH Price: $1,780.48 (+4.46%)
 

Overview

ETH Balance

Scroll LogoScroll LogoScroll Logo0 ETH

ETH Value

$0.00

Multichain Info

Transaction Hash
Method
Block
From
To
Approve149353652025-04-23 11:03:444 hrs ago1745406224IN
0xEB466342...86f405215
0 ETH0.000003520.04705597
Approve149345732025-04-23 9:27:586 hrs ago1745400478IN
0xEB466342...86f405215
0 ETH0.000004550.04293141
Approve149124182025-04-22 12:06:1227 hrs ago1745323572IN
0xEB466342...86f405215
0 ETH0.000003070.04883
Approve148721692025-04-20 15:33:493 days ago1745163229IN
0xEB466342...86f405215
0 ETH0.000001150.03997612
Approve148715612025-04-20 14:59:573 days ago1745161197IN
0xEB466342...86f405215
0 ETH0.000001310.04685561
Approve148513232025-04-19 14:50:244 days ago1745074224IN
0xEB466342...86f405215
0 ETH0.000002450.04966668
Approve148487062025-04-19 12:05:264 days ago1745064326IN
0xEB466342...86f405215
0 ETH0.0000020.03927052
Approve148473432025-04-19 10:33:174 days ago1745058797IN
0xEB466342...86f405215
0 ETH0.000002350.04687935
Approve148444792025-04-19 7:31:044 days ago1745047864IN
0xEB466342...86f405215
0 ETH0.00000360.07370781
Approve148392762025-04-19 1:05:454 days ago1745024745IN
0xEB466342...86f405215
0 ETH0.000002540.05
Approve148388092025-04-19 0:30:524 days ago1745022652IN
0xEB466342...86f405215
0 ETH0.00000250.05
Approve148351422025-04-18 20:01:124 days ago1745006472IN
0xEB466342...86f405215
0 ETH0.000002580.05
Approve148286702025-04-18 13:32:355 days ago1744983155IN
0xEB466342...86f405215
0 ETH0.000004020.06
Approve148245432025-04-18 9:40:485 days ago1744969248IN
0xEB466342...86f405215
0 ETH0.000002640.03925782
Approve148122142025-04-17 19:51:355 days ago1744919495IN
0xEB466342...86f405215
0 ETH0.000003570.04127578
Approve147882592025-04-16 18:05:076 days ago1744826707IN
0xEB466342...86f405215
0 ETH0.000003820.05
Permit147781712025-04-16 8:35:207 days ago1744792520IN
0xEB466342...86f405215
0 ETH0.000003480.06
Permit147644312025-04-15 21:08:207 days ago1744751300IN
0xEB466342...86f405215
0 ETH0.000001650.03926403
Permit147629822025-04-15 19:55:537 days ago1744746953IN
0xEB466342...86f405215
0 ETH0.000002430.03929236
Approve147241612025-04-14 11:34:509 days ago1744630490IN
0xEB466342...86f405215
0 ETH0.000006950.05
Approve147239522025-04-14 11:24:239 days ago1744629863IN
0xEB466342...86f405215
0 ETH0.000005280.05
Approve147238012025-04-14 11:16:509 days ago1744629410IN
0xEB466342...86f405215
0 ETH0.000002970.04
Approve147236252025-04-14 11:08:029 days ago1744628882IN
0xEB466342...86f405215
0 ETH0.000002280.04
Approve147048912025-04-13 19:31:209 days ago1744572680IN
0xEB466342...86f405215
0 ETH0.000003030.06
Approve146957772025-04-13 11:55:3810 days ago1744545338IN
0xEB466342...86f405215
0 ETH0.000001970.03925937
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
729402023-10-17 1:22:40554 days ago1697505760  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BurnableMintableCappedERC20

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at scrollscan.com on 2024-03-28
*/

// Source: contracts/BurnableMintableCappedERC20.sol



// SPDX-License-Identifier: MIT



pragma solidity ^0.8.0;



// File contracts/interfaces/IAxelarGateway.sol



interface IAxelarGateway {

    /**********\

    |* Errors *|

    \**********/



    error NotSelf();

    error NotProxy();

    error InvalidCodeHash();

    error SetupFailed();

    error InvalidAuthModule();

    error InvalidTokenDeployer();

    error InvalidAmount();

    error InvalidChainId();

    error InvalidCommands();

    error TokenDoesNotExist(string symbol);

    error TokenAlreadyExists(string symbol);

    error TokenDeployFailed(string symbol);

    error TokenContractDoesNotExist(address token);

    error BurnFailed(string symbol);

    error MintFailed(string symbol);

    error InvalidSetMintLimitsParams();

    error ExceedMintLimit(string symbol);



    /**********\

    |* Events *|

    \**********/



    event TokenSent(address indexed sender, string destinationChain, string destinationAddress, string symbol, uint256 amount);



    event ContractCall(

        address indexed sender,

        string destinationChain,

        string destinationContractAddress,

        bytes32 indexed payloadHash,

        bytes payload

    );



    event ContractCallWithToken(

        address indexed sender,

        string destinationChain,

        string destinationContractAddress,

        bytes32 indexed payloadHash,

        bytes payload,

        string symbol,

        uint256 amount

    );



    event Executed(bytes32 indexed commandId);



    event TokenDeployed(string symbol, address tokenAddresses);



    event ContractCallApproved(

        bytes32 indexed commandId,

        string sourceChain,

        string sourceAddress,

        address indexed contractAddress,

        bytes32 indexed payloadHash,

        bytes32 sourceTxHash,

        uint256 sourceEventIndex

    );



    event ContractCallApprovedWithMint(

        bytes32 indexed commandId,

        string sourceChain,

        string sourceAddress,

        address indexed contractAddress,

        bytes32 indexed payloadHash,

        string symbol,

        uint256 amount,

        bytes32 sourceTxHash,

        uint256 sourceEventIndex

    );



    event TokenMintLimitUpdated(string symbol, uint256 limit);



    event OperatorshipTransferred(bytes newOperatorsData);



    event Upgraded(address indexed implementation);



    /********************\

    |* Public Functions *|

    \********************/



    function sendToken(

        string calldata destinationChain,

        string calldata destinationAddress,

        string calldata symbol,

        uint256 amount

    ) external;



    function callContract(

        string calldata destinationChain,

        string calldata contractAddress,

        bytes calldata payload

    ) external;



    function callContractWithToken(

        string calldata destinationChain,

        string calldata contractAddress,

        bytes calldata payload,

        string calldata symbol,

        uint256 amount

    ) external;



    function isContractCallApproved(

        bytes32 commandId,

        string calldata sourceChain,

        string calldata sourceAddress,

        address contractAddress,

        bytes32 payloadHash

    ) external view returns (bool);



    function isContractCallAndMintApproved(

        bytes32 commandId,

        string calldata sourceChain,

        string calldata sourceAddress,

        address contractAddress,

        bytes32 payloadHash,

        string calldata symbol,

        uint256 amount

    ) external view returns (bool);



    function validateContractCall(

        bytes32 commandId,

        string calldata sourceChain,

        string calldata sourceAddress,

        bytes32 payloadHash

    ) external returns (bool);



    function validateContractCallAndMint(

        bytes32 commandId,

        string calldata sourceChain,

        string calldata sourceAddress,

        bytes32 payloadHash,

        string calldata symbol,

        uint256 amount

    ) external returns (bool);



    /***********\

    |* Getters *|

    \***********/



    function authModule() external view returns (address);



    function tokenDeployer() external view returns (address);



    function tokenMintLimit(string memory symbol) external view returns (uint256);



    function tokenMintAmount(string memory symbol) external view returns (uint256);



    function allTokensFrozen() external view returns (bool);



    function implementation() external view returns (address);



    function tokenAddresses(string memory symbol) external view returns (address);



    function tokenFrozen(string memory symbol) external view returns (bool);



    function isCommandExecuted(bytes32 commandId) external view returns (bool);



    function adminEpoch() external view returns (uint256);



    function adminThreshold(uint256 epoch) external view returns (uint256);



    function admins(uint256 epoch) external view returns (address[] memory);



    /*******************\

    |* Admin Functions *|

    \*******************/



    function setTokenMintLimits(string[] calldata symbols, uint256[] calldata limits) external;



    function upgrade(

        address newImplementation,

        bytes32 newImplementationCodeHash,

        bytes calldata setupParams

    ) external;



    /**********************\

    |* External Functions *|

    \**********************/



    function setup(bytes calldata params) external;



    function execute(bytes calldata input) external;

}



// File contracts/interfaces/IERC20Burn.sol



interface IERC20Burn {

    function burn(bytes32 salt) external;

}



// File contracts/interfaces/IERC20BurnFrom.sol



interface IERC20BurnFrom {

    function burnFrom(address account, uint256 amount) external;

}



// File contracts/interfaces/IERC20.sol



/**

 * @dev Interface of the ERC20 standard as defined in the EIP.

 */

interface IERC20 {

    error InvalidAccount();



    /**

     * @dev Returns the amount of tokens in existence.

     */

    function totalSupply() external view returns (uint256);



    /**

     * @dev Returns the amount of tokens owned by `account`.

     */

    function balanceOf(address account) external view returns (uint256);



    /**

     * @dev Moves `amount` tokens from the caller's account to `recipient`.

     *

     * Returns a boolean value indicating whether the operation succeeded.

     *

     * Emits a {Transfer} event.

     */

    function transfer(address recipient, uint256 amount) external returns (bool);



    /**

     * @dev Returns the remaining number of tokens that `spender` will be

     * allowed to spend on behalf of `owner` through {transferFrom}. This is

     * zero by default.

     *

     * This value changes when {approve} or {transferFrom} are called.

     */

    function allowance(address owner, address spender) external view returns (uint256);



    /**

     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.

     *

     * Returns a boolean value indicating whether the operation succeeded.

     *

     * IMPORTANT: Beware that changing an allowance with this method brings the risk

     * that someone may use both the old and the new allowance by unfortunate

     * transaction ordering. One possible solution to mitigate this race

     * condition is to first reduce the spender's allowance to 0 and set the

     * desired value afterwards:

     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729

     *

     * Emits an {Approval} event.

     */

    function approve(address spender, uint256 amount) external returns (bool);



    /**

     * @dev Moves `amount` tokens from `sender` to `recipient` using the

     * allowance mechanism. `amount` is then deducted from the caller's

     * allowance.

     *

     * Returns a boolean value indicating whether the operation succeeded.

     *

     * Emits a {Transfer} event.

     */

    function transferFrom(

        address sender,

        address recipient,

        uint256 amount

    ) external returns (bool);



    /**

     * @dev Emitted when `value` tokens are moved from one account (`from`) to

     * another (`to`).

     *

     * Note that `value` may be zero.

     */

    event Transfer(address indexed from, address indexed to, uint256 value);



    /**

     * @dev Emitted when the allowance of a `spender` for an `owner` is set by

     * a call to {approve}. `value` is the new allowance.

     */

    event Approval(address indexed owner, address indexed spender, uint256 value);

}



// File contracts/interfaces/IERC20Permit.sol



interface IERC20Permit {

    function DOMAIN_SEPARATOR() external view returns (bytes32);



    function nonces(address account) external view returns (uint256);



    function permit(

        address issuer,

        address spender,

        uint256 value,

        uint256 deadline,

        uint8 v,

        bytes32 r,

        bytes32 s

    ) external;

}



// File contracts/interfaces/IOwnable.sol



interface IOwnable {

    error NotOwner();

    error InvalidOwner();



    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);



    function owner() external view returns (address);



    function transferOwnership(address newOwner) external;

}



// File contracts/interfaces/IMintableCappedERC20.sol



interface IMintableCappedERC20 is IERC20, IERC20Permit, IOwnable {

    error CapExceeded();



    function cap() external view returns (uint256);



    function mint(address account, uint256 amount) external;

}



// File contracts/interfaces/IBurnableMintableCappedERC20.sol



interface IBurnableMintableCappedERC20 is IERC20Burn, IERC20BurnFrom, IMintableCappedERC20 {

    function depositAddress(bytes32 salt) external view returns (address);



    function burn(bytes32 salt) external;



    function burnFrom(address account, uint256 amount) external;

}



// File contracts/ERC20.sol



/**

 * @dev Implementation of the {IERC20} interface.

 *

 * This implementation is agnostic to the way tokens are created. This means

 * that a supply mechanism has to be added in a derived contract using {_mint}.

 * For a generic mechanism see {ERC20PresetMinterPauser}.

 *

 * TIP: For a detailed writeup see our guide

 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How

 * to implement supply mechanisms].

 *

 * We have followed general OpenZeppelin guidelines: functions revert instead

 * of returning `false` on failure. This behavior is nonetheless conventional

 * and does not conflict with the expectations of ERC20 applications.

 *

 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.

 * This allows applications to reconstruct the allowance for all accounts just

 * by listening to said events. Other implementations of the EIP may not emit

 * these events, as it isn't required by the specification.

 *

 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}

 * functions have been added to mitigate the well-known issues around setting

 * allowances. See {IERC20-approve}.

 */

contract ERC20 is IERC20 {

    mapping(address => uint256) public override balanceOf;



    mapping(address => mapping(address => uint256)) public override allowance;



    uint256 public override totalSupply;



    string public name;

    string public symbol;



    uint8 public immutable decimals;



    /**

     * @dev Sets the values for {name}, {symbol}, and {decimals}.

     */

    constructor(

        string memory name_,

        string memory symbol_,

        uint8 decimals_

    ) {

        name = name_;

        symbol = symbol_;

        decimals = decimals_;

    }



    /**

     * @dev See {IERC20-transfer}.

     *

     * Requirements:

     *

     * - `recipient` cannot be the zero address.

     * - the caller must have a balance of at least `amount`.

     */

    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {

        _transfer(msg.sender, recipient, amount);

        return true;

    }



    /**

     * @dev See {IERC20-approve}.

     *

     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on

     * `transferFrom`. This is semantically equivalent to an infinite approval.

     *

     * Requirements:

     *

     * - `spender` cannot be the zero address.

     */

    function approve(address spender, uint256 amount) external virtual override returns (bool) {

        _approve(msg.sender, spender, amount);

        return true;

    }



    /**

     * @dev See {IERC20-transferFrom}.

     *

     * Emits an {Approval} event indicating the updated allowance. This is not

     * required by the EIP. See the note at the beginning of {ERC20}.

     *

     * Requirements:

     *

     * - `sender` and `recipient` cannot be the zero address.

     * - `sender` must have a balance of at least `amount`.

     * - the caller must have allowance for ``sender``'s tokens of at least

     * `amount`.

     */

    function transferFrom(

        address sender,

        address recipient,

        uint256 amount

    ) external virtual override returns (bool) {

        uint256 _allowance = allowance[sender][msg.sender];



        if (_allowance != type(uint256).max) {

            _approve(sender, msg.sender, _allowance - amount);

        }



        _transfer(sender, recipient, amount);



        return true;

    }



    /**

     * @dev Atomically increases the allowance granted to `spender` by the caller.

     *

     * This is an alternative to {approve} that can be used as a mitigation for

     * problems described in {IERC20-approve}.

     *

     * Emits an {Approval} event indicating the updated allowance.

     *

     * Requirements:

     *

     * - `spender` cannot be the zero address.

     */

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {

        _approve(msg.sender, spender, allowance[msg.sender][spender] + addedValue);

        return true;

    }



    /**

     * @dev Atomically decreases the allowance granted to `spender` by the caller.

     *

     * This is an alternative to {approve} that can be used as a mitigation for

     * problems described in {IERC20-approve}.

     *

     * Emits an {Approval} event indicating the updated allowance.

     *

     * Requirements:

     *

     * - `spender` cannot be the zero address.

     * - `spender` must have allowance for the caller of at least

     * `subtractedValue`.

     */

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {

        _approve(msg.sender, spender, allowance[msg.sender][spender] - subtractedValue);

        return true;

    }



    /**

     * @dev Moves tokens `amount` from `sender` to `recipient`.

     *

     * This is internal function is equivalent to {transfer}, and can be used to

     * e.g. implement automatic token fees, slashing mechanisms, etc.

     *

     * Emits a {Transfer} event.

     *

     * Requirements:

     *

     * - `sender` cannot be the zero address.

     * - `recipient` cannot be the zero address.

     * - `sender` must have a balance of at least `amount`.

     */

    function _transfer(

        address sender,

        address recipient,

        uint256 amount

    ) internal virtual {

        if (sender == address(0) || recipient == address(0)) revert InvalidAccount();



        balanceOf[sender] -= amount;

        balanceOf[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }



    /** @dev Creates `amount` tokens and assigns them to `account`, increasing

     * the total supply.

     *

     * Emits a {Transfer} event with `from` set to the zero address.

     *

     * Requirements:

     *

     * - `to` cannot be the zero address.

     */

    function _mint(address account, uint256 amount) internal virtual {

        if (account == address(0)) revert InvalidAccount();



        totalSupply += amount;

        balanceOf[account] += amount;

        emit Transfer(address(0), account, amount);

    }



    /**

     * @dev Destroys `amount` tokens from `account`, reducing the

     * total supply.

     *

     * Emits a {Transfer} event with `to` set to the zero address.

     *

     * Requirements:

     *

     * - `account` cannot be the zero address.

     * - `account` must have at least `amount` tokens.

     */

    function _burn(address account, uint256 amount) internal virtual {

        if (account == address(0)) revert InvalidAccount();



        balanceOf[account] -= amount;

        totalSupply -= amount;

        emit Transfer(account, address(0), amount);

    }



    /**

     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.

     *

     * This internal function is equivalent to `approve`, and can be used to

     * e.g. set automatic allowances for certain subsystems, etc.

     *

     * Emits an {Approval} event.

     *

     * Requirements:

     *

     * - `owner` cannot be the zero address.

     * - `spender` cannot be the zero address.

     */

    function _approve(

        address owner,

        address spender,

        uint256 amount

    ) internal virtual {

        if (owner == address(0) || spender == address(0)) revert InvalidAccount();



        allowance[owner][spender] = amount;

        emit Approval(owner, spender, amount);

    }

}



// File contracts/ERC20Permit.sol



abstract contract ERC20Permit is IERC20, IERC20Permit, ERC20 {

    error PermitExpired();

    error InvalidS();

    error InvalidV();

    error InvalidSignature();



    bytes32 public immutable DOMAIN_SEPARATOR;



    string private constant EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA = '\x19\x01';



    // keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)')

    bytes32 private constant DOMAIN_TYPE_SIGNATURE_HASH = bytes32(0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f);



    // keccak256('Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)')

    bytes32 private constant PERMIT_SIGNATURE_HASH = bytes32(0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9);



    mapping(address => uint256) public nonces;



    constructor(string memory name) {

        DOMAIN_SEPARATOR = keccak256(

            abi.encode(DOMAIN_TYPE_SIGNATURE_HASH, keccak256(bytes(name)), keccak256(bytes('1')), block.chainid, address(this))

        );

    }



    function permit(

        address issuer,

        address spender,

        uint256 value,

        uint256 deadline,

        uint8 v,

        bytes32 r,

        bytes32 s

    ) external {

        if (block.timestamp > deadline) revert PermitExpired();



        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) revert InvalidS();



        if (v != 27 && v != 28) revert InvalidV();



        bytes32 digest = keccak256(

            abi.encodePacked(

                EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA,

                DOMAIN_SEPARATOR,

                keccak256(abi.encode(PERMIT_SIGNATURE_HASH, issuer, spender, value, nonces[issuer]++, deadline))

            )

        );



        address recoveredAddress = ecrecover(digest, v, r, s);



        if (recoveredAddress != issuer) revert InvalidSignature();



        // _approve will revert if issuer is address(0x0)

        _approve(issuer, spender, value);

    }

}



// File contracts/Ownable.sol



abstract contract Ownable is IOwnable {

    address public owner;



    constructor() {

        owner = msg.sender;

        emit OwnershipTransferred(address(0), msg.sender);

    }



    modifier onlyOwner() {

        if (owner != msg.sender) revert NotOwner();



        _;

    }



    function transferOwnership(address newOwner) external virtual onlyOwner {

        if (newOwner == address(0)) revert InvalidOwner();



        emit OwnershipTransferred(owner, newOwner);

        owner = newOwner;

    }

}



// File contracts/MintableCappedERC20.sol



contract MintableCappedERC20 is IMintableCappedERC20, ERC20, ERC20Permit, Ownable {

    uint256 public immutable cap;



    constructor(

        string memory name,

        string memory symbol,

        uint8 decimals,

        uint256 capacity

    ) ERC20(name, symbol, decimals) ERC20Permit(name) Ownable() {

        cap = capacity;

    }



    function mint(address account, uint256 amount) external onlyOwner {

        uint256 capacity = cap;



        _mint(account, amount);



        if (capacity == 0) return;



        if (totalSupply > capacity) revert CapExceeded();

    }

}



// File contracts/DepositHandler.sol



contract DepositHandler {

    error IsLocked();

    error NotContract();



    uint256 internal constant IS_NOT_LOCKED = uint256(1);

    uint256 internal constant IS_LOCKED = uint256(2);



    uint256 internal _lockedStatus = IS_NOT_LOCKED;



    modifier noReenter() {

        if (_lockedStatus == IS_LOCKED) revert IsLocked();



        _lockedStatus = IS_LOCKED;

        _;

        _lockedStatus = IS_NOT_LOCKED;

    }



    function execute(address callee, bytes calldata data) external noReenter returns (bool success, bytes memory returnData) {

        if (callee.code.length == 0) revert NotContract();

        (success, returnData) = callee.call(data);

    }



    // NOTE: The gateway should always destroy the `DepositHandler` in the same runtime context that deploys it.

    function destroy(address etherDestination) external noReenter {

        selfdestruct(payable(etherDestination));

    }

}



// File contracts/BurnableMintableCappedERC20.sol



contract BurnableMintableCappedERC20 is IBurnableMintableCappedERC20, MintableCappedERC20 {

    constructor(

        string memory name,

        string memory symbol,

        uint8 decimals,

        uint256 capacity

    ) MintableCappedERC20(name, symbol, decimals, capacity) {}



    function depositAddress(bytes32 salt) public view returns (address) {

        /* Convert a hash which is bytes32 to an address which is 20-byte long

        according to https://docs.soliditylang.org/en/v0.8.1/control-structures.html?highlight=create2#salted-contract-creations-create2 */

        return

            address(

                uint160(

                    uint256(

                        keccak256(

                            abi.encodePacked(bytes1(0xff), owner, salt, keccak256(abi.encodePacked(type(DepositHandler).creationCode)))

                        )

                    )

                )

            );

    }



    function burn(bytes32 salt) external onlyOwner {

        address account = depositAddress(salt);

        _burn(account, balanceOf[account]);

    }



    function burnFrom(address account, uint256 amount) external onlyOwner {

        uint256 _allowance = allowance[account][msg.sender];

        if (_allowance != type(uint256).max) {

            _approve(account, msg.sender, _allowance - amount);

        }

        _burn(account, amount);

    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256","name":"capacity","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CapExceeded","type":"error"},{"inputs":[],"name":"InvalidAccount","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"InvalidS","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidV","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"depositAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"issuer","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b5060405162001837380380620018378339810160408190526200003491620002e1565b83838383838484848260039080519060200190620000549291906200016e565b5081516200006a9060049060208501906200016e565b5060ff166080908152835160208086019190912060408051808201825260018152603160f81b9084015280517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f938101939093528201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246918101919091523060a082015260c0019150620001029050565b60408051601f1981840301815290829052805160209091012060a052600680546001600160a01b0319163390811790915591506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360c05250620003a995505050505050565b8280546200017c906200036c565b90600052602060002090601f016020900481019282620001a05760008555620001eb565b82601f10620001bb57805160ff1916838001178555620001eb565b82800160010185558215620001eb579182015b82811115620001eb578251825591602001919060010190620001ce565b50620001f9929150620001fd565b5090565b5b80821115620001f95760008155600101620001fe565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200023c57600080fd5b81516001600160401b038082111562000259576200025962000214565b604051601f8301601f19908116603f0116810190828211818310171562000284576200028462000214565b81604052838152602092508683858801011115620002a157600080fd5b600091505b83821015620002c55785820183015181830184015290820190620002a6565b83821115620002d75760008385830101525b9695505050505050565b60008060008060808587031215620002f857600080fd5b84516001600160401b03808211156200031057600080fd5b6200031e888389016200022a565b955060208701519150808211156200033557600080fd5b5062000344878288016200022a565b935050604085015160ff811681146200035c57600080fd5b6060959095015193969295505050565b600181811c908216806200038157607f821691505b60208210811415620003a357634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c051611450620003e760003960008181610265015261067301526000818161028c01526108de0152600061020101526114506000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806340c10f19116100d857806395d89b411161008c578063d505accf11610066578063d505accf14610368578063dd62ed3e1461037b578063f2fde38b146103a657600080fd5b806395d89b411461033a578063a457c2d714610342578063a9059cbb1461035557600080fd5b806379cc6790116100bd57806379cc6790146102f45780637ecebe00146103075780638da5cb5b1461032757600080fd5b806340c10f19146102c157806370a08231146102d457600080fd5b8063313ce5671161012f578063355274ea11610114578063355274ea146102605780633644e5151461028757806339509351146102ae57600080fd5b8063313ce567146101fc57806331eecaf41461023557600080fd5b8063095ea7b311610160578063095ea7b3146101af57806318160ddd146101d257806323b872dd146101e957600080fd5b806306fdde031461017c57806308a1eee11461019a575b600080fd5b6101846103b9565b6040516101919190610e5d565b60405180910390f35b6101ad6101a8366004610e90565b610447565b005b6101c26101bd366004610ec5565b6104a8565b6040519015158152602001610191565b6101db60025481565b604051908152602001610191565b6101c26101f7366004610eef565b6104be565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610191565b610248610243366004610e90565b610515565b6040516001600160a01b039091168152602001610191565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101c26102bc366004610ec5565b61060f565b6101ad6102cf366004610ec5565b610646565b6101db6102e2366004610f2b565b60006020819052908152604090205481565b6101ad610302366004610ec5565b6106e7565b6101db610315366004610f2b565b60056020526000908152604090205481565b600654610248906001600160a01b031681565b610184610758565b6101c2610350366004610ec5565b610765565b6101c2610363366004610ec5565b61079c565b6101ad610376366004610f4d565b6107a9565b6101db610389366004610fc0565b600160209081526000928352604080842090915290825290205481565b6101ad6103b4366004610f2b565b610a6c565b600380546103c690610ff3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290610ff3565b801561043f5780601f106104145761010080835404028352916020019161043f565b820191906000526020600020905b81548152906001019060200180831161042257829003601f168201915b505050505081565b6006546001600160a01b03163314610472576040516330cd747160e01b815260040160405180910390fd5b600061047d82610515565b6001600160a01b0381166000908152602081905260409020549091506104a4908290610b4b565b5050565b60006104b5338484610bfe565b50600192915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146104ff576104ff85336104fa8685611044565b610bfe565b61050a858585610c9b565b506001949350505050565b6006546040516000917fff00000000000000000000000000000000000000000000000000000000000000916001600160a01b0390911690849061055a60208201610e20565b601f1982820381018352601f90910116604081905261057c919060200161105b565b604051602081830303815290604052805190602001206040516020016105f194939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f19818403018152919052805160209091012092915050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611077565b6006546001600160a01b03163314610671576040516330cd747160e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061069c8383610d77565b806106a657505050565b8060025411156106e2576040517fa4875a4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6006546001600160a01b03163314610712576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054600019811461074e5761074e83336104fa8585611044565b6106e28383610b4b565b600480546103c690610ff3565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611044565b60006104b5338484610c9b565b834211156107e3576040517f1a15a3cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081111561083d576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff16601b1415801561085557508260ff16601c14155b1561088c576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600281527f19010000000000000000000000000000000000000000000000000000000000006020808301919091526001600160a01b038a166000908152600590915291822080547f0000000000000000000000000000000000000000000000000000000000000000917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c91886109308361108f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610994939291906110aa565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156109ff573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b031614610a56576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a61898989610bfe565b505050505050505050565b6006546001600160a01b03163314610a97576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b038116610ad7576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216610b7257604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03821660009081526020819052604081208054839290610b9a908490611044565b925050819055508060026000828254610bb39190611044565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383161580610c1b57506001600160a01b038216155b15610c3957604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580610cb857506001600160a01b038216155b15610cd657604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03831660009081526020819052604081208054839290610cfe908490611044565b90915550506001600160a01b03821660009081526020819052604081208054839290610d2b908490611077565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8e91815260200190565b6001600160a01b038216610d9e57604051630da30f6560e31b815260040160405180910390fd5b8060026000828254610db09190611077565b90915550506001600160a01b03821660009081526020819052604081208054839290610ddd908490611077565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b610349806110d283390190565b60005b83811015610e48578181015183820152602001610e30565b83811115610e57576000848401525b50505050565b6020815260008251806020840152610e7c816040850160208701610e2d565b601f01601f19169190910160400192915050565b600060208284031215610ea257600080fd5b5035919050565b80356001600160a01b0381168114610ec057600080fd5b919050565b60008060408385031215610ed857600080fd5b610ee183610ea9565b946020939093013593505050565b600080600060608486031215610f0457600080fd5b610f0d84610ea9565b9250610f1b60208501610ea9565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ea9565b9392505050565b600080600080600080600060e0888a031215610f6857600080fd5b610f7188610ea9565b9650610f7f60208901610ea9565b95506040880135945060608801359350608088013560ff81168114610fa357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610fd357600080fd5b610fdc83610ea9565b9150610fea60208401610ea9565b90509250929050565b600181811c9082168061100757607f821691505b6020821081141561102857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156110565761105661102e565b500390565b6000825161106d818460208701610e2d565b9190910192915050565b6000821982111561108a5761108a61102e565b500190565b60006000198214156110a3576110a361102e565b5060010190565b600084516110bc818460208901610e2d565b9190910192835250602082015260400191905056fe6080604052600160005534801561001557600080fd5b50610324806100256000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062f55d9d1461003a5780631cff79cd1461004f575b600080fd5b61004d6100483660046101da565b610079565b005b61006261005d3660046101fc565b6100bb565b60405161007092919061027f565b60405180910390f35b6002600054141561009d5760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff8116ff5b60006060600260005414156100e35760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff85163b610136576040517f6f7c43f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16848460405161015d9291906102de565b6000604051808303816000865af19150503d806000811461019a576040519150601f19603f3d011682016040523d82523d6000602084013e61019f565b606091505b50600160005590969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101d557600080fd5b919050565b6000602082840312156101ec57600080fd5b6101f5826101b1565b9392505050565b60008060006040848603121561021157600080fd5b61021a846101b1565b9250602084013567ffffffffffffffff8082111561023757600080fd5b818601915086601f83011261024b57600080fd5b81358181111561025a57600080fd5b87602082850101111561026c57600080fd5b6020830194508093505050509250925092565b821515815260006020604081840152835180604085015260005b818110156102b557858101830151858201606001528201610299565b818111156102c7576000606083870101525b50601f01601f191692909201606001949350505050565b818382376000910190815291905056fea264697066735822122032cb5e746816b7fac95205c068b30da37bd40119a57265be331c162cae74712464736f6c63430008090033a264697066735822122004e80ab7b1784de1e4f1eb3b6da0f7a49eea6f1fc7876ba739aa91d7c37db17d64736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000134178656c61722057726170706564205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101775760003560e01c806340c10f19116100d857806395d89b411161008c578063d505accf11610066578063d505accf14610368578063dd62ed3e1461037b578063f2fde38b146103a657600080fd5b806395d89b411461033a578063a457c2d714610342578063a9059cbb1461035557600080fd5b806379cc6790116100bd57806379cc6790146102f45780637ecebe00146103075780638da5cb5b1461032757600080fd5b806340c10f19146102c157806370a08231146102d457600080fd5b8063313ce5671161012f578063355274ea11610114578063355274ea146102605780633644e5151461028757806339509351146102ae57600080fd5b8063313ce567146101fc57806331eecaf41461023557600080fd5b8063095ea7b311610160578063095ea7b3146101af57806318160ddd146101d257806323b872dd146101e957600080fd5b806306fdde031461017c57806308a1eee11461019a575b600080fd5b6101846103b9565b6040516101919190610e5d565b60405180910390f35b6101ad6101a8366004610e90565b610447565b005b6101c26101bd366004610ec5565b6104a8565b6040519015158152602001610191565b6101db60025481565b604051908152602001610191565b6101c26101f7366004610eef565b6104be565b6102237f000000000000000000000000000000000000000000000000000000000000000681565b60405160ff9091168152602001610191565b610248610243366004610e90565b610515565b6040516001600160a01b039091168152602001610191565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101db7f3072b9af6e6a5581bbf33ea17c779f30884e8f49f077fe977328d8fb336751e281565b6101c26102bc366004610ec5565b61060f565b6101ad6102cf366004610ec5565b610646565b6101db6102e2366004610f2b565b60006020819052908152604090205481565b6101ad610302366004610ec5565b6106e7565b6101db610315366004610f2b565b60056020526000908152604090205481565b600654610248906001600160a01b031681565b610184610758565b6101c2610350366004610ec5565b610765565b6101c2610363366004610ec5565b61079c565b6101ad610376366004610f4d565b6107a9565b6101db610389366004610fc0565b600160209081526000928352604080842090915290825290205481565b6101ad6103b4366004610f2b565b610a6c565b600380546103c690610ff3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290610ff3565b801561043f5780601f106104145761010080835404028352916020019161043f565b820191906000526020600020905b81548152906001019060200180831161042257829003601f168201915b505050505081565b6006546001600160a01b03163314610472576040516330cd747160e01b815260040160405180910390fd5b600061047d82610515565b6001600160a01b0381166000908152602081905260409020549091506104a4908290610b4b565b5050565b60006104b5338484610bfe565b50600192915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146104ff576104ff85336104fa8685611044565b610bfe565b61050a858585610c9b565b506001949350505050565b6006546040516000917fff00000000000000000000000000000000000000000000000000000000000000916001600160a01b0390911690849061055a60208201610e20565b601f1982820381018352601f90910116604081905261057c919060200161105b565b604051602081830303815290604052805190602001206040516020016105f194939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f19818403018152919052805160209091012092915050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611077565b6006546001600160a01b03163314610671576040516330cd747160e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061069c8383610d77565b806106a657505050565b8060025411156106e2576040517fa4875a4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6006546001600160a01b03163314610712576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054600019811461074e5761074e83336104fa8585611044565b6106e28383610b4b565b600480546103c690610ff3565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611044565b60006104b5338484610c9b565b834211156107e3576040517f1a15a3cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081111561083d576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff16601b1415801561085557508260ff16601c14155b1561088c576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600281527f19010000000000000000000000000000000000000000000000000000000000006020808301919091526001600160a01b038a166000908152600590915291822080547f3072b9af6e6a5581bbf33ea17c779f30884e8f49f077fe977328d8fb336751e2917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c91886109308361108f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610994939291906110aa565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156109ff573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b031614610a56576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a61898989610bfe565b505050505050505050565b6006546001600160a01b03163314610a97576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b038116610ad7576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216610b7257604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03821660009081526020819052604081208054839290610b9a908490611044565b925050819055508060026000828254610bb39190611044565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383161580610c1b57506001600160a01b038216155b15610c3957604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580610cb857506001600160a01b038216155b15610cd657604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03831660009081526020819052604081208054839290610cfe908490611044565b90915550506001600160a01b03821660009081526020819052604081208054839290610d2b908490611077565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8e91815260200190565b6001600160a01b038216610d9e57604051630da30f6560e31b815260040160405180910390fd5b8060026000828254610db09190611077565b90915550506001600160a01b03821660009081526020819052604081208054839290610ddd908490611077565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b610349806110d283390190565b60005b83811015610e48578181015183820152602001610e30565b83811115610e57576000848401525b50505050565b6020815260008251806020840152610e7c816040850160208701610e2d565b601f01601f19169190910160400192915050565b600060208284031215610ea257600080fd5b5035919050565b80356001600160a01b0381168114610ec057600080fd5b919050565b60008060408385031215610ed857600080fd5b610ee183610ea9565b946020939093013593505050565b600080600060608486031215610f0457600080fd5b610f0d84610ea9565b9250610f1b60208501610ea9565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ea9565b9392505050565b600080600080600080600060e0888a031215610f6857600080fd5b610f7188610ea9565b9650610f7f60208901610ea9565b95506040880135945060608801359350608088013560ff81168114610fa357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610fd357600080fd5b610fdc83610ea9565b9150610fea60208401610ea9565b90509250929050565b600181811c9082168061100757607f821691505b6020821081141561102857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156110565761105661102e565b500390565b6000825161106d818460208701610e2d565b9190910192915050565b6000821982111561108a5761108a61102e565b500190565b60006000198214156110a3576110a361102e565b5060010190565b600084516110bc818460208901610e2d565b9190910192835250602082015260400191905056fe6080604052600160005534801561001557600080fd5b50610324806100256000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062f55d9d1461003a5780631cff79cd1461004f575b600080fd5b61004d6100483660046101da565b610079565b005b61006261005d3660046101fc565b6100bb565b60405161007092919061027f565b60405180910390f35b6002600054141561009d5760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff8116ff5b60006060600260005414156100e35760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff85163b610136576040517f6f7c43f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16848460405161015d9291906102de565b6000604051808303816000865af19150503d806000811461019a576040519150601f19603f3d011682016040523d82523d6000602084013e61019f565b606091505b50600160005590969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101d557600080fd5b919050565b6000602082840312156101ec57600080fd5b6101f5826101b1565b9392505050565b60008060006040848603121561021157600080fd5b61021a846101b1565b9250602084013567ffffffffffffffff8082111561023757600080fd5b818601915086601f83011261024b57600080fd5b81358181111561025a57600080fd5b87602082850101111561026c57600080fd5b6020830194508093505050509250925092565b821515815260006020604081840152835180604085015260005b818110156102b557858101830151858201606001528201610299565b818111156102c7576000606083870101525b50601f01601f191692909201606001949350505050565b818382376000910190815291905056fea264697066735822122032cb5e746816b7fac95205c068b30da37bd40119a57265be331c162cae74712464736f6c63430008090033a264697066735822122004e80ab7b1784de1e4f1eb3b6da0f7a49eea6f1fc7876ba739aa91d7c37db17d64736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000134178656c61722057726170706564205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Axelar Wrapped USDC
Arg [1] : symbol (string): axlUSDC
Arg [2] : decimals (uint8): 6
Arg [3] : capacity (uint256): 0

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [5] : 4178656c61722057726170706564205553444300000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 61786c5553444300000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

23515:1476:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12304:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24510:155;;;;;;:::i;:::-;;:::i;:::-;;13469:175;;;;;;:::i;:::-;;:::i;:::-;;;1475:14:1;;1468:22;1450:41;;1438:2;1423:18;13469:175:0;1310:187:1;12256:35:0;;;;;;;;;1648:25:1;;;1636:2;1621:18;12256:35:0;1502:177:1;14156:443:0;;;;;;:::i;:::-;;:::i;12364:31::-;;;;;;;;2189:4:1;2177:17;;;2159:36;;2147:2;2132:18;12364:31:0;2017:184:1;23823:675:0;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2370:55:1;;;2352:74;;2340:2;2325:18;23823:675:0;2206:226:1;21869:28:0;;;;;19143:41;;;;;15036:217;;;;;;:::i;:::-;;:::i;22158:257::-;;;;;;:::i;:::-;;:::i;12104:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;24677:309;;;;;;:::i;:::-;;:::i;19778:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;21206:20;;;;;-1:-1:-1;;;;;21206:20:0;;;12331;;;:::i;15788:227::-;;;;;;:::i;:::-;;:::i;12944:181::-;;;;;;:::i;:::-;;:::i;20072:1037::-;;;;;;:::i;:::-;;:::i;12170:73::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21484:232;;;;;;:::i;:::-;;:::i;12304:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24510:155::-;21406:5;;-1:-1:-1;;;;;21406:5:0;21415:10;21406:19;21402:42;;21434:10;;-1:-1:-1;;;21434:10:0;;;;;;;;;;;21402:42;24570:15:::1;24588:20;24603:4;24588:14;:20::i;:::-;-1:-1:-1::0;;;;;24636:18:0;::::1;:9;:18:::0;;;::::1;::::0;;;;;;;24570:38;;-1:-1:-1;24621:34:0::1;::::0;24570:38;;24621:5:::1;:34::i;:::-;24557:108;24510:155:::0;:::o;13469:175::-;13554:4;13573:37;13582:10;13594:7;13603:6;13573:8;:37::i;:::-;-1:-1:-1;13630:4:0;13469:175;;;;:::o;14156:443::-;-1:-1:-1;;;;;14346:17:0;;14306:4;14346:17;;;:9;:17;;;;;;;;14364:10;14346:29;;;;;;;;-1:-1:-1;;14396:31:0;;14392:117;;14446:49;14455:6;14463:10;14475:19;14488:6;14475:10;:19;:::i;:::-;14446:8;:49::i;:::-;14525:36;14535:6;14543:9;14554:6;14525:9;:36::i;:::-;-1:-1:-1;14585:4:0;;14156:443;-1:-1:-1;;;;14156:443:0:o;23823:675::-;24320:5;;24360:33;;23882:7;;24306:12;;-1:-1:-1;;;;;24320:5:0;;;;24327:4;;24360:33;;;;;:::i;:::-;-1:-1:-1;;24360:33:0;;;;;;;;;;;;;;;;24343:51;;24360:33;;24343:51;;:::i;:::-;;;;;;;;;;;;;24333:62;;;;;;24289:107;;;;;;;;;;5048:66:1;5036:79;;;;5024:92;;5153:2;5149:15;;;;-1:-1:-1;;5145:53:1;5141:1;5132:11;;5125:74;5224:2;5215:12;;5208:28;5261:2;5252:12;;5245:28;5298:2;5289:12;;4813:494;24289:107:0;;;;-1:-1:-1;;24289:107:0;;;;;;;;;24247:178;;24289:107;24247:178;;;;;23823:675;-1:-1:-1;;23823:675:0:o;15036:217::-;15154:10;15126:4;15175:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;15175:30:0;;;;;;;;;;15126:4;;15145:74;;15166:7;;15175:43;;15208:10;;15175:43;:::i;22158:257::-;21406:5;;-1:-1:-1;;;;;21406:5:0;21415:10;21406:19;21402:42;;21434:10;;-1:-1:-1;;;21434:10:0;;;;;;;;;;;21402:42;22256:3:::1;22276:22;22282:7:::0;22291:6;22276:5:::1;:22::i;:::-;22319:13:::0;22315:26:::1;;22334:7;24557:108;24510:155:::0;:::o;22315:26::-:1;22375:8;22361:11;;:22;22357:48;;;22392:13;;;;;;;;;;;;;;22357:48;22224:191;22158:257:::0;;:::o;24677:309::-;21406:5;;-1:-1:-1;;;;;21406:5:0;21415:10;21406:19;21402:42;;21434:10;;-1:-1:-1;;;21434:10:0;;;;;;;;;;;21402:42;-1:-1:-1;;;;;24781:18:0;::::1;24760;24781::::0;;;:9:::1;:18;::::0;;;;;;;24800:10:::1;24781:30:::0;;;;;;;;-1:-1:-1;;24828:31:0;::::1;24824:118;;24878:50;24887:7:::0;24896:10:::1;24908:19;24921:6:::0;24908:10;:19:::1;:::i;24878:50::-;24954:22;24960:7;24969:6;24954:5;:22::i;12331:20::-:0;;;;;;;:::i;15788:227::-;15911:10;15883:4;15932:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;15932:30:0;;;;;;;;;;15883:4;;15902:79;;15923:7;;15932:48;;15965:15;;15932:48;:::i;12944:181::-;13032:4;13051:40;13061:10;13073:9;13084:6;13051:9;:40::i;20072:1037::-;20315:8;20297:15;:26;20293:54;;;20332:15;;;;;;;;;;;;;;20293:54;20381:66;20368:79;;20364:102;;;20456:10;;;;;;;;;;;;;;20364:102;20487:1;:7;;20492:2;20487:7;;:18;;;;;20498:1;:7;;20503:2;20498:7;;20487:18;20483:41;;;20514:10;;;;;;;;;;;;;;20483:41;20621:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20787:14:0;;20541;20787;;;:6;:14;;;;;;:16;;20682;;19698:66;;20763:6;;20771:7;;20780:5;;20541:14;20787:16;;;:::i;:::-;;;;-1:-1:-1;20729:85:0;;;;;;5872:25:1;;;;-1:-1:-1;;;;;5994:15:1;;;5974:18;;;5967:43;6046:15;;;;6026:18;;;6019:43;6078:18;;;6071:34;6121:19;;;6114:35;6165:19;;;6158:35;;;5844:19;;20729:85:0;;;;;;;;;;;;20719:96;;;;;;20584:248;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20584:248:0;;;;;;;;;20558:287;;20584:248;20558:287;;;;20862:24;20889:26;;;;;;;;;6875:25:1;;;6948:4;6936:17;;6916:18;;;6909:45;;;;6970:18;;;6963:34;;;7013:18;;;7006:34;;;20558:287:0;;-1:-1:-1;20862:24:0;20889:26;;6847:19:1;;20889:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20862:53;;20956:6;-1:-1:-1;;;;;20936:26:0;:16;-1:-1:-1;;;;;20936:26:0;;20932:57;;20971:18;;;;;;;;;;;;;;20932:57;21067:32;21076:6;21084:7;21093:5;21067:8;:32::i;:::-;20280:829;;20072:1037;;;;;;;:::o;21484:232::-;21406:5;;-1:-1:-1;;;;;21406:5:0;21415:10;21406:19;21402:42;;21434:10;;-1:-1:-1;;;21434:10:0;;;;;;;;;;;21402:42;-1:-1:-1;;;;;21573:22:0;::::1;21569:49;;21604:14;;;;;;;;;;;;;;21569:49;21661:5;::::0;21640:37:::1;::::0;-1:-1:-1;;;;;21640:37:0;;::::1;::::0;21661:5:::1;::::0;21640:37:::1;::::0;21661:5:::1;::::0;21640:37:::1;21690:5;:16:::0;;;::::1;-1:-1:-1::0;;;;;21690:16:0;;;::::1;::::0;;;::::1;::::0;;21484:232::o;17840:272::-;-1:-1:-1;;;;;17922:21:0;;17918:50;;17952:16;;-1:-1:-1;;;17952:16:0;;;;;;;;;;;17918:50;-1:-1:-1;;;;;17985:18:0;;:9;:18;;;;;;;;;;:28;;18007:6;;17985:9;:28;;18007:6;;17985:28;:::i;:::-;;;;;;;;18041:6;18026:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;18065:37:0;;1648:25:1;;;18091:1:0;;-1:-1:-1;;;;;18065:37:0;;;;;1636:2:1;1621:18;18065:37:0;;;;;;;;17840:272;;:::o;18580:322::-;-1:-1:-1;;;;;18722:19:0;;;;:44;;-1:-1:-1;;;;;;18745:21:0;;;18722:44;18718:73;;;18775:16;;-1:-1:-1;;;18775:16:0;;;;;;;;;;;18718:73;-1:-1:-1;;;;;18808:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:34;;;18860:32;;1648:25:1;;;18860:32:0;;1621:18:1;18860:32:0;;;;;;;;18580:322;;;:::o;16537:368::-;-1:-1:-1;;;;;16683:20:0;;;;:47;;-1:-1:-1;;;;;;16707:23:0;;;16683:47;16679:76;;;16739:16;;-1:-1:-1;;;16739:16:0;;;;;;;;;;;16679:76;-1:-1:-1;;;;;16772:17:0;;:9;:17;;;;;;;;;;:27;;16793:6;;16772:9;:27;;16793:6;;16772:27;:::i;:::-;;;;-1:-1:-1;;;;;;;16812:20:0;;:9;:20;;;;;;;;;;:30;;16836:6;;16812:9;:30;;16836:6;;16812:30;:::i;:::-;;;;;;;;16877:9;-1:-1:-1;;;;;16860:35:0;16869:6;-1:-1:-1;;;;;16860:35:0;;16888:6;16860:35;;;;1648:25:1;;1636:2;1621:18;;1502:177;17209:272:0;-1:-1:-1;;;;;17291:21:0;;17287:50;;17321:16;;-1:-1:-1;;;17321:16:0;;;;;;;;;;;17287:50;17369:6;17354:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;17388:18:0;;:9;:18;;;;;;;;;;:28;;17410:6;;17388:9;:28;;17410:6;;17388:28;:::i;:::-;;;;-1:-1:-1;;17434:37:0;;1648:25:1;;;-1:-1:-1;;;;;17434:37:0;;;17451:1;;17434:37;;1636:2:1;1621:18;17434:37:0;1502:177:1;-1:-1:-1;;;;;;;;:::o;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:180::-;724:6;777:2;765:9;756:7;752:23;748:32;745:52;;;793:1;790;783:12;745:52;-1:-1:-1;816:23:1;;665:180;-1:-1:-1;665:180:1:o;850:196::-;918:20;;-1:-1:-1;;;;;967:54:1;;957:65;;947:93;;1036:1;1033;1026:12;947:93;850:196;;;:::o;1051:254::-;1119:6;1127;1180:2;1168:9;1159:7;1155:23;1151:32;1148:52;;;1196:1;1193;1186:12;1148:52;1219:29;1238:9;1219:29;:::i;:::-;1209:39;1295:2;1280:18;;;;1267:32;;-1:-1:-1;;;1051:254:1:o;1684:328::-;1761:6;1769;1777;1830:2;1818:9;1809:7;1805:23;1801:32;1798:52;;;1846:1;1843;1836:12;1798:52;1869:29;1888:9;1869:29;:::i;:::-;1859:39;;1917:38;1951:2;1940:9;1936:18;1917:38;:::i;:::-;1907:48;;2002:2;1991:9;1987:18;1974:32;1964:42;;1684:328;;;;;:::o;2619:186::-;2678:6;2731:2;2719:9;2710:7;2706:23;2702:32;2699:52;;;2747:1;2744;2737:12;2699:52;2770:29;2789:9;2770:29;:::i;:::-;2760:39;2619:186;-1:-1:-1;;;2619:186:1:o;2810:693::-;2921:6;2929;2937;2945;2953;2961;2969;3022:3;3010:9;3001:7;2997:23;2993:33;2990:53;;;3039:1;3036;3029:12;2990:53;3062:29;3081:9;3062:29;:::i;:::-;3052:39;;3110:38;3144:2;3133:9;3129:18;3110:38;:::i;:::-;3100:48;;3195:2;3184:9;3180:18;3167:32;3157:42;;3246:2;3235:9;3231:18;3218:32;3208:42;;3300:3;3289:9;3285:19;3272:33;3345:4;3338:5;3334:16;3327:5;3324:27;3314:55;;3365:1;3362;3355:12;3314:55;2810:693;;;;-1:-1:-1;2810:693:1;;;;3388:5;3440:3;3425:19;;3412:33;;-1:-1:-1;3492:3:1;3477:19;;;3464:33;;2810:693;-1:-1:-1;;2810:693:1:o;3508:260::-;3576:6;3584;3637:2;3625:9;3616:7;3612:23;3608:32;3605:52;;;3653:1;3650;3643:12;3605:52;3676:29;3695:9;3676:29;:::i;:::-;3666:39;;3724:38;3758:2;3747:9;3743:18;3724:38;:::i;:::-;3714:48;;3508:260;;;;;:::o;3773:437::-;3852:1;3848:12;;;;3895;;;3916:61;;3970:4;3962:6;3958:17;3948:27;;3916:61;4023:2;4015:6;4012:14;3992:18;3989:38;3986:218;;;-1:-1:-1;;;4057:1:1;4050:88;4161:4;4158:1;4151:15;4189:4;4186:1;4179:15;3986:218;;3773:437;;;:::o;4215:184::-;-1:-1:-1;;;4264:1:1;4257:88;4364:4;4361:1;4354:15;4388:4;4385:1;4378:15;4404:125;4444:4;4472:1;4469;4466:8;4463:34;;;4477:18;;:::i;:::-;-1:-1:-1;4514:9:1;;4404:125::o;4534:274::-;4663:3;4701:6;4695:13;4717:53;4763:6;4758:3;4751:4;4743:6;4739:17;4717:53;:::i;:::-;4786:16;;;;;4534:274;-1:-1:-1;;4534:274:1:o;5312:128::-;5352:3;5383:1;5379:6;5376:1;5373:13;5370:39;;;5389:18;;:::i;:::-;-1:-1:-1;5425:9:1;;5312:128::o;5445:135::-;5484:3;-1:-1:-1;;5505:17:1;;5502:43;;;5525:18;;:::i;:::-;-1:-1:-1;5572:1:1;5561:13;;5445:135::o;6204:439::-;6391:3;6429:6;6423:13;6445:53;6491:6;6486:3;6479:4;6471:6;6467:17;6445:53;:::i;:::-;6520:16;;;;6545:21;;;-1:-1:-1;6593:4:1;6582:16;;6575:32;6634:2;6623:14;;6204:439;-1:-1:-1;6204:439:1:o

Swarm Source

ipfs://04e80ab7b1784de1e4f1eb3b6da0f7a49eea6f1fc7876ba739aa91d7c37db17d

Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.