ETH Price: $3,694.39 (-1.55%)

Contract

0x6874640cC849153Cb3402D193C33c416972159Ce
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve Migratio...189167352024-01-02 2:28:47344 days ago1704162527IN
0x6874640c...6972159Ce
0 ETH0.0007212311.52599895
Prepare Migratio...188740282023-12-27 2:27:59350 days ago1703644079IN
0x6874640c...6972159Ce
0 ETH0.0010664315.1313954
Claim188634092023-12-25 14:43:47351 days ago1703515427IN
0x6874640c...6972159Ce
0 ETH0.0020314725.89254938
Set Controller188631832023-12-25 13:57:59351 days ago1703512679IN
0x6874640c...6972159Ce
0 ETH0.0012998744.54384226
Claim188625822023-12-25 11:54:47351 days ago1703505287IN
0x6874640c...6972159Ce
0 ETH0.0014563618.55385003
Claim188625272023-12-25 11:43:35351 days ago1703504615IN
0x6874640c...6972159Ce
0 ETH0.0017377918.18118385
Claim188488562023-12-23 13:37:23353 days ago1703338643IN
0x6874640c...6972159Ce
0 ETH0.0022654223.69542468
Claim188288982023-12-20 18:28:11356 days ago1703096891IN
0x6874640c...6972159Ce
0 ETH0.0044536156.72099883
Claim187920282023-12-15 14:11:35361 days ago1702649495IN
0x6874640c...6972159Ce
0 ETH0.0058867261.55732299
Claim187763562023-12-13 9:27:35364 days ago1702459655IN
0x6874640c...6972159Ce
0 ETH0.0025375926.55224214
Claim187118342023-12-04 8:33:35373 days ago1701678815IN
0x6874640c...6972159Ce
0 ETH0.0038287840.04248064
Claim186896502023-12-01 6:02:47376 days ago1701410567IN
0x6874640c...6972159Ce
0 ETH0.0031543332.98896025
Set Controller186894852023-12-01 5:29:35376 days ago1701408575IN
0x6874640c...6972159Ce
0 ETH0.0008867930.38840052
Claim186675142023-11-28 3:42:11379 days ago1701142931IN
0x6874640c...6972159Ce
0 ETH0.0039899441.71748476
Claim186633492023-11-27 13:42:59379 days ago1701092579IN
0x6874640c...6972159Ce
0 ETH0.0031706933.15587703
Set Controller186599022023-11-27 2:07:23380 days ago1701050843IN
0x6874640c...6972159Ce
0 ETH0.0007257324.86911774
Freeze186544242023-11-26 7:40:59381 days ago1700984459IN
0x6874640c...6972159Ce
0 ETH0.0010451718.80753599
Set Controller186507062023-11-25 19:10:59381 days ago1700939459IN
0x6874640c...6972159Ce
0 ETH0.0006419722.00792918
Claim186478002023-11-25 9:24:59382 days ago1700904299IN
0x6874640c...6972159Ce
0 ETH0.0015456219.68801905
Claim186477182023-11-25 9:08:23382 days ago1700903303IN
0x6874640c...6972159Ce
0 ETH0.0021730427.67995204
Freeze186437292023-11-24 19:43:59382 days ago1700855039IN
0x6874640c...6972159Ce
0 ETH0.0016679530.01434609
Claim186410112023-11-24 10:36:47382 days ago1700822207IN
0x6874640c...6972159Ce
0 ETH0.0022863529.12325365
Freeze185327742023-11-09 7:03:35398 days ago1699513415IN
0x6874640c...6972159Ce
0 ETH0.0015203227.35767146
Claim185253832023-11-08 6:14:47399 days ago1699424087IN
0x6874640c...6972159Ce
0 ETH0.0018971819.84631818
Claim178579212023-08-06 19:12:47492 days ago1691349167IN
0x6874640c...6972159Ce
0 ETH0.0023848624.94469352
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Wormhole

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Wormhole.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

import './Migratable.sol';

contract Wormhole is Migratable {

    event Freeze (
        address indexed account,
        uint256 amount,
        uint256 fromChainId,
        address fromWormhole,
        uint256 toChainId,
        address toWormhole,
        uint256 nonce,
        uint256 timestamp
    );

    event Claim (
        address indexed account,
        uint256 amount,
        uint256 fromChainId,
        address fromWormhole,
        uint256 toChainId,
        address toWormhole,
        uint256 nonce,
        uint256 timestamp
    );

    string public constant name = 'Wormhole';

    address public tokenAddress;

    bool public allowMintBurn;

    uint256 public nonce;

    uint256 public chainId;

    mapping (bytes32 => bool) public usedHash;

    bytes32 public constant DOMAIN_TYPEHASH = keccak256('EIP712Domain(string name,uint256 chainId,address verifyingContract)');

    bytes32 public constant CLAIM_TYPEHASH = keccak256(
        'Claim(address account,uint256 amount,uint256 fromChainId,address fromWormhole,uint256 toChainId,address toWormhole,uint256 nonce)'
    );

    constructor (address tokenAddress_, bool allowMintBurn_) {
        controller = msg.sender;
        tokenAddress = tokenAddress_;
        allowMintBurn = allowMintBurn_;
        uint256 _chainId;
        assembly {
            _chainId := chainid()
        }
        chainId = _chainId;
    }

    function approveMigration() public override _controller_ _valid_ {
        require(migrationTimestamp != 0 && block.timestamp >= migrationTimestamp, 'Wormhole.approveMigration: migrationTimestamp not met yet');
        if (allowMintBurn) {
            IERC20(tokenAddress).setController(migrationDestination);
        } else {
            IERC20(tokenAddress).approve(migrationDestination, type(uint256).max);
        }
        isMigrated = true;

        emit ApproveMigration(migrationTimestamp, address(this), migrationDestination);
    }

    function executeMigration(address source) public override _controller_ _valid_ {
        uint256 _migrationTimestamp = IWormhole(source).migrationTimestamp();
        address _migrationDestination = IWormhole(source).migrationDestination();
        require(_migrationTimestamp != 0 && block.timestamp >= _migrationTimestamp, 'Wormhole.executeMigration: migrationTimestamp not met yet');
        require(_migrationDestination == address(this), 'Wormhole.executeMigration: not destination address');

        if (!IWormhole(source).allowMintBurn()) {
            IERC20(tokenAddress).transferFrom(source, address(this), IERC20(tokenAddress).balanceOf(source));
        }

        emit ExecuteMigration(_migrationTimestamp, source, address(this));
    }

    function freeze(uint256 amount, uint256 toChainId, address toWormhole) public _valid_ {
        require(amount > 0, 'Wormhole.freeze: 0 amount');
        require(toChainId != chainId, 'Wormhole.freeze: to the same chain');
        if (allowMintBurn) {
            IERC20(tokenAddress).burn(msg.sender, amount);
        } else {
            IERC20(tokenAddress).transferFrom(msg.sender, address(this), amount);
        }
        emit Freeze(msg.sender, amount, chainId, address(this), toChainId, toWormhole, nonce++, block.timestamp);
    }

    function claim(uint256 amount, uint256 fromChainId, address fromWormhole, uint256 fromNonce, uint8 v, bytes32 r, bytes32 s) public _valid_ {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), chainId, address(this)));
        bytes32 structHash = keccak256(abi.encode(CLAIM_TYPEHASH, msg.sender, amount, fromChainId, fromWormhole, chainId, address(this), fromNonce));
        require(!usedHash[structHash], 'Wormhole.claim: replay');
        usedHash[structHash] = true;

        bytes32 digest = keccak256(abi.encodePacked('\x19\x01', domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory == controller, 'Wormhole.claim: unauthorized');

        if (allowMintBurn) {
            IERC20(tokenAddress).mint(msg.sender, amount);
        } else {
            IERC20(tokenAddress).transfer(msg.sender, amount);
        }

        emit Claim(msg.sender, amount, fromChainId, fromWormhole, chainId, address(this), fromNonce, block.timestamp);
    }

}

interface IERC20 {
    function setController(address newController) external;
    function balanceOf(address account) external view returns (uint256);
    function approve(address account, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function mint(address account, uint256 amount) external;
    function burn(address account, uint256 amount) external;
}

interface IWormhole {
    function migrationTimestamp() external view returns (uint256);
    function migrationDestination() external view returns (address);
    function allowMintBurn() external view returns (bool);
}

File 2 of 2 : Migratable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

abstract contract Migratable {

    event PrepareMigration(uint256 migrationTimestamp, address source, address destination);

    event ApproveMigration(uint256 migrationTimestamp, address source, address destination);

    event ExecuteMigration(uint256 migrationTimestamp, address source, address destination);

    address public controller;

    uint256 public migrationTimestamp;

    address public migrationDestination;

    bool public isMigrated;

    modifier _controller_() {
        require(msg.sender == controller, 'Migratable._controller_: can only called by controller');
        _;
    }

    modifier _valid_() {
        require(!isMigrated, 'Migratable._valid_: cannot proceed, this contract has been migrated');
        _;
    }

    function setController(address newController) public _controller_ _valid_ {
        require(newController != address(0), 'Migratable.setController: to 0 address');
        controller = newController;
    }

    function prepareMigration(address destination, uint256 graceDays) public _controller_ _valid_ {
        require(destination != address(0), 'Migratable.prepareMigration: to 0 address');
        require(graceDays >= 3 && graceDays <= 365, 'Migratable.prepareMigration: graceDays must be 3-365 days');

        migrationTimestamp = block.timestamp + graceDays * 1 days;
        migrationDestination = destination;

        emit PrepareMigration(migrationTimestamp, address(this), migrationDestination);
    }

    function approveMigration() public virtual;

    function executeMigration(address source) public virtual;

}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenAddress_","type":"address"},{"internalType":"bool","name":"allowMintBurn_","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"migrationTimestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"ApproveMigration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fromChainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"fromWormhole","type":"address"},{"indexed":false,"internalType":"uint256","name":"toChainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"toWormhole","type":"address"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"migrationTimestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"ExecuteMigration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fromChainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"fromWormhole","type":"address"},{"indexed":false,"internalType":"uint256","name":"toChainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"toWormhole","type":"address"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"migrationTimestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"PrepareMigration","type":"event"},{"inputs":[],"name":"CLAIM_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowMintBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approveMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fromChainId","type":"uint256"},{"internalType":"address","name":"fromWormhole","type":"address"},{"internalType":"uint256","name":"fromNonce","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"}],"name":"executeMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"toChainId","type":"uint256"},{"internalType":"address","name":"toWormhole","type":"address"}],"name":"freeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isMigrated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrationDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrationTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"graceDays","type":"uint256"}],"name":"prepareMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"usedHash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5060405161176d38038061176d83398101604081905261002f9161007a565b60008054336001600160a01b031991821617909155600380549091166001600160a01b03939093169290921760ff60a01b1916600160a01b91151591909102179055466005556100c2565b6000806040838503121561008c578182fd5b82516001600160a01b03811681146100a2578283fd5b602084015190925080151581146100b7578182fd5b809150509250929050565b61169c806100d16000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063782fb982116100a25780639d76ea58116100715780639d76ea58146101f9578063affed0e014610201578063b06faf6214610209578063be6d456d14610211578063f77c47911461022457610116565b8063782fb982146101c157806379a87b19146101c957806392eefe9b146101de5780639a8a0592146101f157610116565b806351dfdb48116100e957806351dfdb481461016b578063560ebbd11461017e57806358c700a31461019e578063677528cb146101a65780636b0509b1146101b957610116565b806306fdde031461011b57806320606b7014610139578063325564ec1461014e57806332fe988514610158575b600080fd5b61012361022c565b60405161013091906111aa565b60405180910390f35b610141610250565b604051610130919061111b565b610156610274565b005b610156610166366004611000565b610466565b610156610179366004610f46565b61063f565b61019161018c366004610fd0565b610983565b6040516101309190611110565b610141610998565b6101566101b4366004610f85565b61099e565b610141610ac5565b610191610ae9565b6101d1610af9565b60405161013091906110bf565b6101566101ec366004610f46565b610b08565b610141610ba4565b6101d1610baa565b610141610bb9565b610191610bbf565b61015661021f366004611038565b610bcf565b6101d1610f37565b60405180604001604052806008815260200167576f726d686f6c6560c01b81525081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000546001600160a01b031633146102a75760405162461bcd60e51b815260040161029e9061135e565b60405180910390fd5b600254600160a01b900460ff16156102d15760405162461bcd60e51b815260040161029e90611473565b600154158015906102e457506001544210155b6103005760405162461bcd60e51b815260040161029e906111fd565b600354600160a01b900460ff161561037d576003546002546040516392eefe9b60e01b81526001600160a01b03928316926392eefe9b92610346929116906004016110bf565b600060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b50505050610409565b60035460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926103b592911690600019906004016110f7565b602060405180830381600087803b1580156103cf57600080fd5b505af11580156103e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104079190610fb0565b505b6002805460ff60a01b1916600160a01b17908190556001546040517fce3275b30d22151f82ee29ce7ea685563b66ff98e56afc576a94d8a88c676ec09261045c929130916001600160a01b03169061158c565b60405180910390a1565b600254600160a01b900460ff16156104905760405162461bcd60e51b815260040161029e90611473565b600083116104b05760405162461bcd60e51b815260040161029e90611525565b6005548214156104d25760405162461bcd60e51b815260040161029e906113b4565b600354600160a01b900460ff161561054d57600354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061051690339087906004016110f7565b600060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506105d5565b6003546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610581903390309088906004016110d3565b602060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190610fb0565b505b336001600160a01b03167fc2568422cb2f9c1b684986e2d019f7a713e6fee79cf99b880fb8d4826f4ed129846005543086866004600081548092919061061a9061161d565b919050554260405161063297969594939291906115ab565b60405180910390a2505050565b6000546001600160a01b031633146106695760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff16156106935760405162461bcd60e51b815260040161029e90611473565b6000816001600160a01b03166358c700a36040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ce57600080fd5b505afa1580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107069190610fe8565b90506000826001600160a01b03166379a87b196040518163ffffffff1660e01b815260040160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610f69565b9050811580159061078c5750814210155b6107a85760405162461bcd60e51b815260040161029e906112b3565b6001600160a01b03811630146107d05760405162461bcd60e51b815260040161029e9061130c565b826001600160a01b031663782fb9826040518163ffffffff1660e01b815260040160206040518083038186803b15801561080957600080fd5b505afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108419190610fb0565b610943576003546040516370a0823160e01b81526001600160a01b03909116906323b872dd908590309084906370a08231906108819085906004016110bf565b60206040518083038186803b15801561089957600080fd5b505afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190610fe8565b6040518463ffffffff1660e01b81526004016108ef939291906110d3565b602060405180830381600087803b15801561090957600080fd5b505af115801561091d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109419190610fb0565b505b7f18ce2512842fddee8c808fb717780a66007d1da9a942dd32625813c82d53c3428284306040516109769392919061158c565b60405180910390a1505050565b60066020526000908152604090205460ff1681565b60015481565b6000546001600160a01b031633146109c85760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff16156109f25760405162461bcd60e51b815260040161029e90611473565b6001600160a01b038216610a185760405162461bcd60e51b815260040161029e906114dc565b60038110158015610a2b575061016d8111155b610a475760405162461bcd60e51b815260040161029e90611256565b610a5481620151806115fe565b610a5e90426115e6565b6001819055600280546001600160a01b0319166001600160a01b0385811691909117918290556040517fe2a3b7ba8269be3ca7ba4627f844bb9abd978e9b05d290dc89d4b107f9e3dda793610ab9939092309291169061158c565b60405180910390a15050565b7fbc2f7fa511092399e96a72647cf1ee2efab4c4411a83164814d870042757fe2181565b600354600160a01b900460ff1681565b6002546001600160a01b031681565b6000546001600160a01b03163314610b325760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff1615610b5c5760405162461bcd60e51b815260040161029e90611473565b6001600160a01b038116610b825760405162461bcd60e51b815260040161029e906113f6565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b6003546001600160a01b031681565b60045481565b600254600160a01b900460ff1681565b600254600160a01b900460ff1615610bf95760405162461bcd60e51b815260040161029e90611473565b6040805180820182526008815267576f726d686f6c6560c01b6020918201526005549151600092610c71927f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866927f295cfc0785001ba6278d986e175c613bbabc86ca327f09288a297b0c87bacfb79291309101611168565b60405160208183030381529060405280519060200120905060007fbc2f7fa511092399e96a72647cf1ee2efab4c4411a83164814d870042757fe21338a8a8a600554308c604051602001610ccc989796959493929190611124565b60408051601f1981840301815291815281516020928301206000818152600690935291205490915060ff1615610d145760405162461bcd60e51b815260040161029e9061155c565b6000818152600660209081526040808320805460ff1916600117905551610d3f9185918591016110a4565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610d7c949392919061118c565b6020604051602081039080840390855afa158015610d9e573d6000803e3d6000fd5b5050604051601f1901516000549092506001600160a01b038084169116149050610dda5760405162461bcd60e51b815260040161029e9061143c565b600354600160a01b900460ff1615610e55576003546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990610e1e9033908f906004016110f7565b600060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b50505050610edb565b60035460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610e879033908f906004016110f7565b602060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed99190610fb0565b505b336001600160a01b03167fd90d84f1424134d215b90a1720cc298d5b400367e3a005c2798453fe7f330cec8c8c8c600554308e42604051610f2297969594939291906115ab565b60405180910390a25050505050505050505050565b6000546001600160a01b031681565b600060208284031215610f57578081fd5b8135610f628161164e565b9392505050565b600060208284031215610f7a578081fd5b8151610f628161164e565b60008060408385031215610f97578081fd5b8235610fa28161164e565b946020939093013593505050565b600060208284031215610fc1578081fd5b81518015158114610f62578182fd5b600060208284031215610fe1578081fd5b5035919050565b600060208284031215610ff9578081fd5b5051919050565b600080600060608486031215611014578081fd5b8335925060208401359150604084013561102d8161164e565b809150509250925092565b600080600080600080600060e0888a031215611052578283fd5b8735965060208801359550604088013561106b8161164e565b945060608801359350608088013560ff81168114611087578384fd5b9699959850939692959460a0840135945060c09093013592915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b9788526001600160a01b03968716602089015260408801959095526060870193909352908416608086015260a085015290911660c083015260e08201526101000190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b818110156111d6578581018301518582016040015282016111ba565b818111156111e75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526039908201527f576f726d686f6c652e617070726f76654d6967726174696f6e3a206d696772616040820152781d1a5bdb951a5b595cdd185b5c081b9bdd081b595d081e595d603a1b606082015260800190565b60208082526039908201527f4d696772617461626c652e707265706172654d6967726174696f6e3a2067726160408201527f636544617973206d75737420626520332d333635206461797300000000000000606082015260800190565b60208082526039908201527f576f726d686f6c652e657865637574654d6967726174696f6e3a206d696772616040820152781d1a5bdb951a5b595cdd185b5c081b9bdd081b595d081e595d603a1b606082015260800190565b60208082526032908201527f576f726d686f6c652e657865637574654d6967726174696f6e3a206e6f742064604082015271657374696e6174696f6e206164647265737360701b606082015260800190565b60208082526036908201527f4d696772617461626c652e5f636f6e74726f6c6c65725f3a2063616e206f6e6c6040820152753c9031b0b63632b210313c9031b7b73a3937b63632b960511b606082015260800190565b60208082526022908201527f576f726d686f6c652e667265657a653a20746f207468652073616d652063686160408201526134b760f11b606082015260800190565b60208082526026908201527f4d696772617461626c652e736574436f6e74726f6c6c65723a20746f2030206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f576f726d686f6c652e636c61696d3a20756e617574686f72697a656400000000604082015260600190565b60208082526043908201527f4d696772617461626c652e5f76616c69645f3a2063616e6e6f742070726f636560408201527f65642c207468697320636f6e747261637420686173206265656e206d696772616060820152621d195960ea1b608082015260a00190565b60208082526029908201527f4d696772617461626c652e707265706172654d6967726174696f6e3a20746f2060408201526830206164647265737360b81b606082015260800190565b60208082526019908201527f576f726d686f6c652e667265657a653a203020616d6f756e7400000000000000604082015260600190565b602080825260169082015275576f726d686f6c652e636c61696d3a207265706c617960501b604082015260600190565b9283526001600160a01b03918216602084015216604082015260600190565b96875260208701959095526001600160a01b0393841660408701526060860192909252909116608084015260a083015260c082015260e00190565b600082198211156115f9576115f9611638565b500190565b600081600019048311821515161561161857611618611638565b500290565b600060001982141561163157611631611638565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461166357600080fd5b5056fea26469706673582212206e8c96f26529402e8007d977d935908296979c2abc05c79e918d050516edfc4764736f6c63430008010033000000000000000000000000a487bf43cf3b10dffc97a9a744cbb7036965d3b90000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063782fb982116100a25780639d76ea58116100715780639d76ea58146101f9578063affed0e014610201578063b06faf6214610209578063be6d456d14610211578063f77c47911461022457610116565b8063782fb982146101c157806379a87b19146101c957806392eefe9b146101de5780639a8a0592146101f157610116565b806351dfdb48116100e957806351dfdb481461016b578063560ebbd11461017e57806358c700a31461019e578063677528cb146101a65780636b0509b1146101b957610116565b806306fdde031461011b57806320606b7014610139578063325564ec1461014e57806332fe988514610158575b600080fd5b61012361022c565b60405161013091906111aa565b60405180910390f35b610141610250565b604051610130919061111b565b610156610274565b005b610156610166366004611000565b610466565b610156610179366004610f46565b61063f565b61019161018c366004610fd0565b610983565b6040516101309190611110565b610141610998565b6101566101b4366004610f85565b61099e565b610141610ac5565b610191610ae9565b6101d1610af9565b60405161013091906110bf565b6101566101ec366004610f46565b610b08565b610141610ba4565b6101d1610baa565b610141610bb9565b610191610bbf565b61015661021f366004611038565b610bcf565b6101d1610f37565b60405180604001604052806008815260200167576f726d686f6c6560c01b81525081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000546001600160a01b031633146102a75760405162461bcd60e51b815260040161029e9061135e565b60405180910390fd5b600254600160a01b900460ff16156102d15760405162461bcd60e51b815260040161029e90611473565b600154158015906102e457506001544210155b6103005760405162461bcd60e51b815260040161029e906111fd565b600354600160a01b900460ff161561037d576003546002546040516392eefe9b60e01b81526001600160a01b03928316926392eefe9b92610346929116906004016110bf565b600060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b50505050610409565b60035460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926103b592911690600019906004016110f7565b602060405180830381600087803b1580156103cf57600080fd5b505af11580156103e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104079190610fb0565b505b6002805460ff60a01b1916600160a01b17908190556001546040517fce3275b30d22151f82ee29ce7ea685563b66ff98e56afc576a94d8a88c676ec09261045c929130916001600160a01b03169061158c565b60405180910390a1565b600254600160a01b900460ff16156104905760405162461bcd60e51b815260040161029e90611473565b600083116104b05760405162461bcd60e51b815260040161029e90611525565b6005548214156104d25760405162461bcd60e51b815260040161029e906113b4565b600354600160a01b900460ff161561054d57600354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061051690339087906004016110f7565b600060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506105d5565b6003546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610581903390309088906004016110d3565b602060405180830381600087803b15801561059b57600080fd5b505af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d39190610fb0565b505b336001600160a01b03167fc2568422cb2f9c1b684986e2d019f7a713e6fee79cf99b880fb8d4826f4ed129846005543086866004600081548092919061061a9061161d565b919050554260405161063297969594939291906115ab565b60405180910390a2505050565b6000546001600160a01b031633146106695760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff16156106935760405162461bcd60e51b815260040161029e90611473565b6000816001600160a01b03166358c700a36040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ce57600080fd5b505afa1580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107069190610fe8565b90506000826001600160a01b03166379a87b196040518163ffffffff1660e01b815260040160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610f69565b9050811580159061078c5750814210155b6107a85760405162461bcd60e51b815260040161029e906112b3565b6001600160a01b03811630146107d05760405162461bcd60e51b815260040161029e9061130c565b826001600160a01b031663782fb9826040518163ffffffff1660e01b815260040160206040518083038186803b15801561080957600080fd5b505afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108419190610fb0565b610943576003546040516370a0823160e01b81526001600160a01b03909116906323b872dd908590309084906370a08231906108819085906004016110bf565b60206040518083038186803b15801561089957600080fd5b505afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190610fe8565b6040518463ffffffff1660e01b81526004016108ef939291906110d3565b602060405180830381600087803b15801561090957600080fd5b505af115801561091d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109419190610fb0565b505b7f18ce2512842fddee8c808fb717780a66007d1da9a942dd32625813c82d53c3428284306040516109769392919061158c565b60405180910390a1505050565b60066020526000908152604090205460ff1681565b60015481565b6000546001600160a01b031633146109c85760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff16156109f25760405162461bcd60e51b815260040161029e90611473565b6001600160a01b038216610a185760405162461bcd60e51b815260040161029e906114dc565b60038110158015610a2b575061016d8111155b610a475760405162461bcd60e51b815260040161029e90611256565b610a5481620151806115fe565b610a5e90426115e6565b6001819055600280546001600160a01b0319166001600160a01b0385811691909117918290556040517fe2a3b7ba8269be3ca7ba4627f844bb9abd978e9b05d290dc89d4b107f9e3dda793610ab9939092309291169061158c565b60405180910390a15050565b7fbc2f7fa511092399e96a72647cf1ee2efab4c4411a83164814d870042757fe2181565b600354600160a01b900460ff1681565b6002546001600160a01b031681565b6000546001600160a01b03163314610b325760405162461bcd60e51b815260040161029e9061135e565b600254600160a01b900460ff1615610b5c5760405162461bcd60e51b815260040161029e90611473565b6001600160a01b038116610b825760405162461bcd60e51b815260040161029e906113f6565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b6003546001600160a01b031681565b60045481565b600254600160a01b900460ff1681565b600254600160a01b900460ff1615610bf95760405162461bcd60e51b815260040161029e90611473565b6040805180820182526008815267576f726d686f6c6560c01b6020918201526005549151600092610c71927f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866927f295cfc0785001ba6278d986e175c613bbabc86ca327f09288a297b0c87bacfb79291309101611168565b60405160208183030381529060405280519060200120905060007fbc2f7fa511092399e96a72647cf1ee2efab4c4411a83164814d870042757fe21338a8a8a600554308c604051602001610ccc989796959493929190611124565b60408051601f1981840301815291815281516020928301206000818152600690935291205490915060ff1615610d145760405162461bcd60e51b815260040161029e9061155c565b6000818152600660209081526040808320805460ff1916600117905551610d3f9185918591016110a4565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610d7c949392919061118c565b6020604051602081039080840390855afa158015610d9e573d6000803e3d6000fd5b5050604051601f1901516000549092506001600160a01b038084169116149050610dda5760405162461bcd60e51b815260040161029e9061143c565b600354600160a01b900460ff1615610e55576003546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990610e1e9033908f906004016110f7565b600060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b50505050610edb565b60035460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610e879033908f906004016110f7565b602060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed99190610fb0565b505b336001600160a01b03167fd90d84f1424134d215b90a1720cc298d5b400367e3a005c2798453fe7f330cec8c8c8c600554308e42604051610f2297969594939291906115ab565b60405180910390a25050505050505050505050565b6000546001600160a01b031681565b600060208284031215610f57578081fd5b8135610f628161164e565b9392505050565b600060208284031215610f7a578081fd5b8151610f628161164e565b60008060408385031215610f97578081fd5b8235610fa28161164e565b946020939093013593505050565b600060208284031215610fc1578081fd5b81518015158114610f62578182fd5b600060208284031215610fe1578081fd5b5035919050565b600060208284031215610ff9578081fd5b5051919050565b600080600060608486031215611014578081fd5b8335925060208401359150604084013561102d8161164e565b809150509250925092565b600080600080600080600060e0888a031215611052578283fd5b8735965060208801359550604088013561106b8161164e565b945060608801359350608088013560ff81168114611087578384fd5b9699959850939692959460a0840135945060c09093013592915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b9788526001600160a01b03968716602089015260408801959095526060870193909352908416608086015260a085015290911660c083015260e08201526101000190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b818110156111d6578581018301518582016040015282016111ba565b818111156111e75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526039908201527f576f726d686f6c652e617070726f76654d6967726174696f6e3a206d696772616040820152781d1a5bdb951a5b595cdd185b5c081b9bdd081b595d081e595d603a1b606082015260800190565b60208082526039908201527f4d696772617461626c652e707265706172654d6967726174696f6e3a2067726160408201527f636544617973206d75737420626520332d333635206461797300000000000000606082015260800190565b60208082526039908201527f576f726d686f6c652e657865637574654d6967726174696f6e3a206d696772616040820152781d1a5bdb951a5b595cdd185b5c081b9bdd081b595d081e595d603a1b606082015260800190565b60208082526032908201527f576f726d686f6c652e657865637574654d6967726174696f6e3a206e6f742064604082015271657374696e6174696f6e206164647265737360701b606082015260800190565b60208082526036908201527f4d696772617461626c652e5f636f6e74726f6c6c65725f3a2063616e206f6e6c6040820152753c9031b0b63632b210313c9031b7b73a3937b63632b960511b606082015260800190565b60208082526022908201527f576f726d686f6c652e667265657a653a20746f207468652073616d652063686160408201526134b760f11b606082015260800190565b60208082526026908201527f4d696772617461626c652e736574436f6e74726f6c6c65723a20746f2030206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f576f726d686f6c652e636c61696d3a20756e617574686f72697a656400000000604082015260600190565b60208082526043908201527f4d696772617461626c652e5f76616c69645f3a2063616e6e6f742070726f636560408201527f65642c207468697320636f6e747261637420686173206265656e206d696772616060820152621d195960ea1b608082015260a00190565b60208082526029908201527f4d696772617461626c652e707265706172654d6967726174696f6e3a20746f2060408201526830206164647265737360b81b606082015260800190565b60208082526019908201527f576f726d686f6c652e667265657a653a203020616d6f756e7400000000000000604082015260600190565b602080825260169082015275576f726d686f6c652e636c61696d3a207265706c617960501b604082015260600190565b9283526001600160a01b03918216602084015216604082015260600190565b96875260208701959095526001600160a01b0393841660408701526060860192909252909116608084015260a083015260c082015260e00190565b600082198211156115f9576115f9611638565b500190565b600081600019048311821515161561161857611618611638565b500290565b600060001982141561163157611631611638565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461166357600080fd5b5056fea26469706673582212206e8c96f26529402e8007d977d935908296979c2abc05c79e918d050516edfc4764736f6c63430008010033

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

000000000000000000000000a487bf43cf3b10dffc97a9a744cbb7036965d3b90000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : tokenAddress_ (address): 0xA487bF43cF3b10dffc97A9A744cbB7036965d3b9
Arg [1] : allowMintBurn_ (bool): False

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a487bf43cf3b10dffc97a9a744cbb7036965d3b9
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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
Loading...
Loading
[ 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.