ETH Price: $3,303.71 (-2.96%)

Token

ERC20 ***
 

Overview

Max Total Supply

247,070.475364 ERC20 ***

Holders

715

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
164,738.783593 ERC20 ***

Value
$0.00
0x94aa7c30931e68a25d057b4b0c7df44f36d46ed5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

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 blastscan.io 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

[{"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

0x608060405234801561001057600080fd5b50600436106101775760003560e01c806340c10f19116100d857806395d89b411161008c578063d505accf11610066578063d505accf14610368578063dd62ed3e1461037b578063f2fde38b146103a657600080fd5b806395d89b411461033a578063a457c2d714610342578063a9059cbb1461035557600080fd5b806379cc6790116100bd57806379cc6790146102f45780637ecebe00146103075780638da5cb5b1461032757600080fd5b806340c10f19146102c157806370a08231146102d457600080fd5b8063313ce5671161012f578063355274ea11610114578063355274ea146102605780633644e5151461028757806339509351146102ae57600080fd5b8063313ce567146101fc57806331eecaf41461023557600080fd5b8063095ea7b311610160578063095ea7b3146101af57806318160ddd146101d257806323b872dd146101e957600080fd5b806306fdde031461017c57806308a1eee11461019a575b600080fd5b6101846103b9565b6040516101919190610e5d565b60405180910390f35b6101ad6101a8366004610e90565b610447565b005b6101c26101bd366004610ec5565b6104a8565b6040519015158152602001610191565b6101db60025481565b604051908152602001610191565b6101c26101f7366004610eef565b6104be565b6102237f000000000000000000000000000000000000000000000000000000000000000681565b60405160ff9091168152602001610191565b610248610243366004610e90565b610515565b6040516001600160a01b039091168152602001610191565b6101db7f000000000000000000000000000000000000000000000000000000000000000081565b6101db7fa0aa472c40993745fae71611700c659799302e6d47d9efc36a007b0786566cba81565b6101c26102bc366004610ec5565b61060f565b6101ad6102cf366004610ec5565b610646565b6101db6102e2366004610f2b565b60006020819052908152604090205481565b6101ad610302366004610ec5565b6106e7565b6101db610315366004610f2b565b60056020526000908152604090205481565b600654610248906001600160a01b031681565b610184610758565b6101c2610350366004610ec5565b610765565b6101c2610363366004610ec5565b61079c565b6101ad610376366004610f4d565b6107a9565b6101db610389366004610fc0565b600160209081526000928352604080842090915290825290205481565b6101ad6103b4366004610f2b565b610a6c565b600380546103c690610ff3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290610ff3565b801561043f5780601f106104145761010080835404028352916020019161043f565b820191906000526020600020905b81548152906001019060200180831161042257829003601f168201915b505050505081565b6006546001600160a01b03163314610472576040516330cd747160e01b815260040160405180910390fd5b600061047d82610515565b6001600160a01b0381166000908152602081905260409020549091506104a4908290610b4b565b5050565b60006104b5338484610bfe565b50600192915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146104ff576104ff85336104fa8685611044565b610bfe565b61050a858585610c9b565b506001949350505050565b6006546040516000917fff00000000000000000000000000000000000000000000000000000000000000916001600160a01b0390911690849061055a60208201610e20565b601f1982820381018352601f90910116604081905261057c919060200161105b565b604051602081830303815290604052805190602001206040516020016105f194939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f19818403018152919052805160209091012092915050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611077565b6006546001600160a01b03163314610671576040516330cd747160e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061069c8383610d77565b806106a657505050565b8060025411156106e2576040517fa4875a4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6006546001600160a01b03163314610712576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040808320338452909152902054600019811461074e5761074e83336104fa8585611044565b6106e28383610b4b565b600480546103c690610ff3565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104b59185906104fa908690611044565b60006104b5338484610c9b565b834211156107e3576040517f1a15a3cc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081111561083d576040517f40c1e74800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff16601b1415801561085557508260ff16601c14155b1561088c576040517f119bce3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082018252600281527f19010000000000000000000000000000000000000000000000000000000000006020808301919091526001600160a01b038a166000908152600590915291822080547fa0aa472c40993745fae71611700c659799302e6d47d9efc36a007b0786566cba917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c91886109308361108f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610994939291906110aa565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156109ff573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b031614610a56576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a61898989610bfe565b505050505050505050565b6006546001600160a01b03163314610a97576040516330cd747160e01b815260040160405180910390fd5b6001600160a01b038116610ad7576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216610b7257604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03821660009081526020819052604081208054839290610b9a908490611044565b925050819055508060026000828254610bb39190611044565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383161580610c1b57506001600160a01b038216155b15610c3957604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580610cb857506001600160a01b038216155b15610cd657604051630da30f6560e31b815260040160405180910390fd5b6001600160a01b03831660009081526020819052604081208054839290610cfe908490611044565b90915550506001600160a01b03821660009081526020819052604081208054839290610d2b908490611077565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8e91815260200190565b6001600160a01b038216610d9e57604051630da30f6560e31b815260040160405180910390fd5b8060026000828254610db09190611077565b90915550506001600160a01b03821660009081526020819052604081208054839290610ddd908490611077565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bf2565b610349806110d283390190565b60005b83811015610e48578181015183820152602001610e30565b83811115610e57576000848401525b50505050565b6020815260008251806020840152610e7c816040850160208701610e2d565b601f01601f19169190910160400192915050565b600060208284031215610ea257600080fd5b5035919050565b80356001600160a01b0381168114610ec057600080fd5b919050565b60008060408385031215610ed857600080fd5b610ee183610ea9565b946020939093013593505050565b600080600060608486031215610f0457600080fd5b610f0d84610ea9565b9250610f1b60208501610ea9565b9150604084013590509250925092565b600060208284031215610f3d57600080fd5b610f4682610ea9565b9392505050565b600080600080600080600060e0888a031215610f6857600080fd5b610f7188610ea9565b9650610f7f60208901610ea9565b95506040880135945060608801359350608088013560ff81168114610fa357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610fd357600080fd5b610fdc83610ea9565b9150610fea60208401610ea9565b90509250929050565b600181811c9082168061100757607f821691505b6020821081141561102857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156110565761105661102e565b500390565b6000825161106d818460208701610e2d565b9190910192915050565b6000821982111561108a5761108a61102e565b500190565b60006000198214156110a3576110a361102e565b5060010190565b600084516110bc818460208901610e2d565b9190910192835250602082015260400191905056fe6080604052600160005534801561001557600080fd5b50610324806100256000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062f55d9d1461003a5780631cff79cd1461004f575b600080fd5b61004d6100483660046101da565b610079565b005b61006261005d3660046101fc565b6100bb565b60405161007092919061027f565b60405180910390f35b6002600054141561009d5760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff8116ff5b60006060600260005414156100e35760405163caa30f5560e01b815260040160405180910390fd5b600260005573ffffffffffffffffffffffffffffffffffffffff85163b610136576040517f6f7c43f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16848460405161015d9291906102de565b6000604051808303816000865af19150503d806000811461019a576040519150601f19603f3d011682016040523d82523d6000602084013e61019f565b606091505b50600160005590969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101d557600080fd5b919050565b6000602082840312156101ec57600080fd5b6101f5826101b1565b9392505050565b60008060006040848603121561021157600080fd5b61021a846101b1565b9250602084013567ffffffffffffffff8082111561023757600080fd5b818601915086601f83011261024b57600080fd5b81358181111561025a57600080fd5b87602082850101111561026c57600080fd5b6020830194508093505050509250925092565b821515815260006020604081840152835180604085015260005b818110156102b557858101830151858201606001528201610299565b818111156102c7576000606083870101525b50601f01601f191692909201606001949350505050565b818382376000910190815291905056fea264697066735822122032cb5e746816b7fac95205c068b30da37bd40119a57265be331c162cae74712464736f6c63430008090033a264697066735822122004e80ab7b1784de1e4f1eb3b6da0f7a49eea6f1fc7876ba739aa91d7c37db17d64736f6c63430008090033

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
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.