More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 67 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Migrate | 21038858 | 149 days ago | IN | 0 ETH | 0.00115997 | ||||
Migrate | 21007352 | 153 days ago | IN | 0 ETH | 0.00279884 | ||||
Migrate | 19433785 | 373 days ago | IN | 0 ETH | 0.01137158 | ||||
Migrate | 18525568 | 500 days ago | IN | 0 ETH | 0.00416981 | ||||
Migrate | 15348620 | 950 days ago | IN | 0 ETH | 0.0009652 | ||||
Migrate | 15347605 | 950 days ago | IN | 0 ETH | 0.00411337 | ||||
Migrate | 13616492 | 1224 days ago | IN | 0 ETH | 0.0242085 | ||||
Migrate | 13616487 | 1224 days ago | IN | 0 ETH | 0.02501273 | ||||
Migrate | 13388582 | 1259 days ago | IN | 0 ETH | 0.00802045 | ||||
Migrate | 12641075 | 1376 days ago | IN | 0 ETH | 0.00384552 | ||||
Migrate | 12629763 | 1377 days ago | IN | 0 ETH | 0.0014886 | ||||
Migrate | 12601233 | 1382 days ago | IN | 0 ETH | 0.00730836 | ||||
Migrate | 12426532 | 1409 days ago | IN | 0 ETH | 0.01853928 | ||||
Migrate | 12389745 | 1415 days ago | IN | 0 ETH | 0.00990132 | ||||
Migrate | 12310486 | 1427 days ago | IN | 0 ETH | 0.00825574 | ||||
Migrate | 12289543 | 1430 days ago | IN | 0 ETH | 0.01359666 | ||||
Migrate | 12224244 | 1440 days ago | IN | 0 ETH | 0.01375144 | ||||
Migrate | 12214467 | 1442 days ago | IN | 0 ETH | 0.01158016 | ||||
Migrate | 12200992 | 1444 days ago | IN | 0 ETH | 0.01563192 | ||||
Migrate | 12144016 | 1453 days ago | IN | 0 ETH | 0.021711 | ||||
Migrate | 12054247 | 1466 days ago | IN | 0 ETH | 0.0209873 | ||||
Migrate | 11987892 | 1477 days ago | IN | 0 ETH | 0.01418452 | ||||
Migrate | 11962394 | 1480 days ago | IN | 0 ETH | 0.0151977 | ||||
Migrate | 11950447 | 1482 days ago | IN | 0 ETH | 0.0115792 | ||||
Migrate | 11949508 | 1482 days ago | IN | 0 ETH | 0.01100024 |
Loading...
Loading
Contract Name:
ANTv2Migrator
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-15 */ // File: contracts/interfaces/ApproveAndCallReceiver.sol pragma solidity ^0.5.17; interface ApproveAndCallReceiver { /** * @dev This allows users to use their tokens to interact with contracts in one function call instead of two * @param _from Address of the account transferring the tokens * @param _amount The amount of tokens approved for in the transfer * @param _token Address of the token contract calling this function * @param _data Optional data that can be used to add signalling information in more complex staking applications */ function receiveApproval(address _from, uint256 _amount, address _token, bytes calldata _data) external; } // File: contracts/interfaces/IERC20.sol pragma solidity ^0.5.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); } // File: contracts/libraries/SafeMath.sol pragma solidity ^0.5.17; // A library for performing overflow-safe math, courtesy of DappHub: https://github.com/dapphub/ds-math/blob/d0ef6d6a5f/src/math.sol // Modified to include only the essentials library SafeMath { function add(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x + y) >= x, "MATH:ADD_OVERFLOW"); } function sub(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x - y) <= x, "MATH:SUB_UNDERFLOW"); } } // File: contracts/ANTv2.sol pragma solidity 0.5.17; // Lightweight token modelled after UNI-LP: https://github.com/Uniswap/uniswap-v2-core/blob/v1.0.1/contracts/UniswapV2ERC20.sol // Adds: // - An exposed `mint()` with minting role // - An exposed `burn()` // - ERC-3009 (`transferWithAuthorization()`) contract ANTv2 is IERC20 { using SafeMath for uint256; // bytes32 private constant EIP712DOMAIN_HASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)") bytes32 private constant EIP712DOMAIN_HASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f; // bytes32 private constant NAME_HASH = keccak256("Aragon Network Token") bytes32 private constant NAME_HASH = 0x711a8013284a3c0046af6c0d6ed33e8bbc2c7a11d615cf4fdc8b1ac753bda618; // bytes32 private constant VERSION_HASH = keccak256("1") bytes32 private constant VERSION_HASH = 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6; // bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; // bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = // keccak256("TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)"); bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267; string public constant name = "Aragon Network Token"; string public constant symbol = "ANT"; uint8 public constant decimals = 18; address public minter; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; // ERC-2612, ERC-3009 state mapping (address => uint256) public nonces; mapping (address => mapping (bytes32 => bool)) public authorizationState; event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce); event ChangeMinter(address indexed minter); modifier onlyMinter { require(msg.sender == minter, "ANTV2:NOT_MINTER"); _; } constructor(address initialMinter) public { _changeMinter(initialMinter); } function _validateSignedData(address signer, bytes32 encodeData, uint8 v, bytes32 r, bytes32 s) internal view { bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", getDomainSeparator(), encodeData ) ); address recoveredAddress = ecrecover(digest, v, r, s); // Explicitly disallow authorizations for address(0) as ecrecover returns address(0) on malformed messages require(recoveredAddress != address(0) && recoveredAddress == signer, "ANTV2:INVALID_SIGNATURE"); } function _changeMinter(address newMinter) internal { minter = newMinter; emit ChangeMinter(newMinter); } function _mint(address to, uint256 value) internal { totalSupply = totalSupply.add(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { // Balance is implicitly checked with SafeMath's underflow protection balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint256 value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint256 value) private { require(to != address(this) && to != address(0), "ANTV2:RECEIVER_IS_TOKEN_OR_ZERO"); // Balance is implicitly checked with SafeMath's underflow protection balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function getChainId() public pure returns (uint256 chainId) { assembly { chainId := chainid() } } function getDomainSeparator() public view returns (bytes32) { return keccak256( abi.encode( EIP712DOMAIN_HASH, NAME_HASH, VERSION_HASH, getChainId(), address(this) ) ); } function mint(address to, uint256 value) external onlyMinter returns (bool) { _mint(to, value); return true; } function changeMinter(address newMinter) external onlyMinter { _changeMinter(newMinter); } function burn(uint256 value) external returns (bool) { _burn(msg.sender, value); return true; } function approve(address spender, uint256 value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint256 value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint256 value) external returns (bool) { uint256 fromAllowance = allowance[from][msg.sender]; if (fromAllowance != uint256(-1)) { // Allowance is implicitly checked with SafeMath's underflow protection allowance[from][msg.sender] = fromAllowance.sub(value); } _transfer(from, to, value); return true; } function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, "ANTV2:AUTH_EXPIRED"); bytes32 encodeData = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)); _validateSignedData(owner, encodeData, v, r, s); _approve(owner, spender, value); } function transferWithAuthorization( address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s ) external { require(block.timestamp > validAfter, "ANTV2:AUTH_NOT_YET_VALID"); require(block.timestamp < validBefore, "ANTV2:AUTH_EXPIRED"); require(!authorizationState[from][nonce], "ANTV2:AUTH_ALREADY_USED"); bytes32 encodeData = keccak256(abi.encode(TRANSFER_WITH_AUTHORIZATION_TYPEHASH, from, to, value, validAfter, validBefore, nonce)); _validateSignedData(from, encodeData, v, r, s); authorizationState[from][nonce] = true; emit AuthorizationUsed(from, nonce); _transfer(from, to, value); } } // File: contracts/ANTv2Migrator.sol pragma solidity 0.5.17; contract ANTv2Migrator is ApproveAndCallReceiver { string private constant ERROR_NOT_INITATOR = "ANTV2_MIG:NOT_INITIATOR"; string private constant ERROR_WRONG_TOKEN = "ANTV2_MIG:WRONG_TOKEN"; string private constant ERROR_ZERO_AMOUNT = "ANTV2_MIG:ZERO_AMOUNT"; string private constant ERROR_TRANSFER_FAILED = "ANTV2_MIG:TRANSFER_FAIL"; address private constant BURNED_ADDR = 0x000000000000000000000000000000000000dEaD; address public owner; IERC20 public antv1; ANTv2 public antv2; constructor(address _owner, IERC20 _antv1, ANTv2 _antv2) public { owner = _owner; antv1 = _antv1; antv2 = _antv2; } function initiate() external { require(msg.sender == owner, ERROR_NOT_INITATOR); // Mint an equal supply of ANTv2 as ANTv1 to this migration contract uint256 antv1Supply = antv1.totalSupply(); antv2.mint(address(this), antv1Supply); // Transfer ANTv2 minting role to owner antv2.changeMinter(owner); } function migrate(uint256 _amount) external { _migrate(msg.sender, _amount); } function migrateAll() external { uint256 amount = antv1.balanceOf(msg.sender); _migrate(msg.sender, amount); } function receiveApproval(address _from, uint256 _amount, address _token, bytes calldata /*_data*/) external { require(_token == msg.sender && _token == address(antv1), ERROR_WRONG_TOKEN); uint256 fromBalance = antv1.balanceOf(_from); uint256 migrationAmount = _amount > fromBalance ? fromBalance : _amount; _migrate(_from, migrationAmount); } function _migrate(address _from, uint256 _amount) private { require(_amount > 0, ERROR_ZERO_AMOUNT); // Burn ANTv1 require(antv1.transferFrom(_from, BURNED_ADDR, _amount), ERROR_TRANSFER_FAILED); // Return ANTv2 require(antv2.transfer(_from, _amount), ERROR_TRANSFER_FAILED); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract IERC20","name":"_antv1","type":"address"},{"internalType":"contract ANTv2","name":"_antv2","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"antv1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"antv2","outputs":[{"internalType":"contract ANTv2","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initiate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"migrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"migrateAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610af3380380610af38339818101604052606081101561003357600080fd5b5080516020820151604090920151600080546001600160a01b039384166001600160a01b0319918216179091556001805494841694821694909417909355600280549290911691909216179055610a648061008f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b15780638f4ffcb1146100e2578063bdad789e1461017e578063dd844948146101865761007d565b8063454b0608146100825780634a77f870146100a157806366aa56c5146100a9575b600080fd5b61009f6004803603602081101561009857600080fd5b503561018e565b005b61009f61019b565b61009f610244565b6100b9610507565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009f600480360360808110156100f857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359260408201359092169181019060808101606082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184600183028401116401000000008311171561017357600080fd5b509092509050610523565b6100b96106ca565b6100b96106e6565b6101983382610702565b50565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d602081101561023657600080fd5b505190506101983382610702565b60005460408051808201909152601781527f414e5456325f4d49473a4e4f545f494e49544941544f5200000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102fb5781810151838201526020016102e3565b50505050905090810190601f1680156103285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b1580156103a257600080fd5b505afa1580156103b6573d6000803e3d6000fd5b505050506040513d60208110156103cc57600080fd5b5051600254604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101849052905192935073ffffffffffffffffffffffffffffffffffffffff909116916340c10f19916044808201926020929091908290030181600087803b15801561044b57600080fd5b505af115801561045f573d6000803e3d6000fd5b505050506040513d602081101561047557600080fd5b505060025460008054604080517f2c4d4d1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015290519190931692632c4d4d1892602480830193919282900301818387803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b5050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff831633148015610562575060015473ffffffffffffffffffffffffffffffffffffffff8481169116145b6040518060400160405280601581526020017f414e5456325f4d49473a57524f4e475f544f4b454e0000000000000000000000815250906105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d60208110156106a057600080fd5b5051905060008186116106b357856106b5565b815b90506106c18782610702565b50505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60408051808201909152601581527f414e5456325f4d49473a5a45524f5f414d4f554e54000000000000000000000060208201528161079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015261dead602483015260448201859052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506040513d602081101561084b57600080fd5b505160408051808201909152601781527f414e5456325f4d49473a5452414e534645525f4641494c0000000000000000006020820152906108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b505050506040513d602081101561098e57600080fd5b505160408051808201909152601781527f414e5456325f4d49473a5452414e534645525f4641494c000000000000000000602082015290610a2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50505056fea265627a7a72315820d24e3bad0af15884dea494ea6b25a0a6506f2ef9a045fad658da5ca48084d59864736f6c63430005110032000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0000000000000000000000000a117000000f279d81a1d3cc75430faa017fa5a2e
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b15780638f4ffcb1146100e2578063bdad789e1461017e578063dd844948146101865761007d565b8063454b0608146100825780634a77f870146100a157806366aa56c5146100a9575b600080fd5b61009f6004803603602081101561009857600080fd5b503561018e565b005b61009f61019b565b61009f610244565b6100b9610507565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009f600480360360808110156100f857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359260408201359092169181019060808101606082013564010000000081111561013f57600080fd5b82018360208201111561015157600080fd5b8035906020019184600183028401116401000000008311171561017357600080fd5b509092509050610523565b6100b96106ca565b6100b96106e6565b6101983382610702565b50565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d602081101561023657600080fd5b505190506101983382610702565b60005460408051808201909152601781527f414e5456325f4d49473a4e4f545f494e49544941544f5200000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610336576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102fb5781810151838201526020016102e3565b50505050905090810190601f1680156103285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600154604080517f18160ddd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916318160ddd916004808301926020929190829003018186803b1580156103a257600080fd5b505afa1580156103b6573d6000803e3d6000fd5b505050506040513d60208110156103cc57600080fd5b5051600254604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101849052905192935073ffffffffffffffffffffffffffffffffffffffff909116916340c10f19916044808201926020929091908290030181600087803b15801561044b57600080fd5b505af115801561045f573d6000803e3d6000fd5b505050506040513d602081101561047557600080fd5b505060025460008054604080517f2c4d4d1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015290519190931692632c4d4d1892602480830193919282900301818387803b1580156104ec57600080fd5b505af1158015610500573d6000803e3d6000fd5b5050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff831633148015610562575060015473ffffffffffffffffffffffffffffffffffffffff8481169116145b6040518060400160405280601581526020017f414e5456325f4d49473a57524f4e475f544f4b454e0000000000000000000000815250906105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d60208110156106a057600080fd5b5051905060008186116106b357856106b5565b815b90506106c18782610702565b50505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60408051808201909152601581527f414e5456325f4d49473a5a45524f5f414d4f554e54000000000000000000000060208201528161079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015261dead602483015260448201859052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506040513d602081101561084b57600080fd5b505160408051808201909152601781527f414e5456325f4d49473a5452414e534645525f4641494c0000000000000000006020820152906108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50600254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b505050506040513d602081101561098e57600080fd5b505160408051808201909152601781527f414e5456325f4d49473a5452414e534645525f4641494c000000000000000000602082015290610a2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156102fb5781810151838201526020016102e3565b50505056fea265627a7a72315820d24e3bad0af15884dea494ea6b25a0a6506f2ef9a045fad658da5ca48084d59864736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0000000000000000000000000a117000000f279d81a1d3cc75430faa017fa5a2e
-----Decoded View---------------
Arg [0] : _owner (address): 0xbEEFbEeF03c7E5a1C29E0Aa675f8E16AEe0A5FAd
Arg [1] : _antv1 (address): 0x960b236A07cf122663c4303350609A66A7B288C0
Arg [2] : _antv2 (address): 0xa117000000f279D81A1D3cc75430fAA017FA5A2e
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000beefbeef03c7e5a1c29e0aa675f8e16aee0a5fad
Arg [1] : 000000000000000000000000960b236a07cf122663c4303350609a66a7b288c0
Arg [2] : 000000000000000000000000a117000000f279d81a1d3cc75430faa017fa5a2e
Deployed Bytecode Sourcemap
9232:2027:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9232:2027:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10292:91;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10292:91:0;;:::i;:::-;;10391:133;;;:::i;9920:364::-;;;:::i;9685:20::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10532:387;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10532:387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;10532:387:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10532:387:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;10532:387:0;;-1:-1:-1;10532:387:0;-1:-1:-1;10532:387:0;:::i;9712:19::-;;;:::i;9738:18::-;;;:::i;10292:91::-;10346:29;10355:10;10367:7;10346:8;:29::i;:::-;10292:91;:::o;10391:133::-;10450:5;;:27;;;;;;10466:10;10450:27;;;;;;10433:14;;10450:5;;;:15;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;10450:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10450:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10450:27:0;;-1:-1:-1;10488:28:0;10497:10;10450:27;10488:8;:28::i;9920:364::-;9982:5;;9989:18;;;;;;;;;;;;;;;;;;9982:5;;9968:10;:19;9960:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9960:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10121:5:0;;:19;;;;;;;;10099;;10121:5;;;:17;;:19;;;;;;;;;;;;;;:5;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;10121:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10121:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10121:19:0;10151:5;;:38;;;;;;10170:4;10151:38;;;;;;;;;;;;10121:19;;-1:-1:-1;10151:5:0;;;;;:10;;:38;;;;;10121:19;;10151:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;10151:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10151:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;10251:5:0;;;10270;;10251:25;;;;;;:5;10270;;;10251:25;;;;;;:5;;;;;:18;;:25;;;;;:5;;:25;;;;;:5;;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;10251:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10251:25:0;;;;9920:364;:::o;9685:20::-;;;;;;:::o;10532:387::-;10659:20;;;10669:10;10659:20;:48;;;;-1:-1:-1;10701:5:0;;;10683:24;;;10701:5;;10683:24;10659:48;10709:17;;;;;;;;;;;;;;;;;10651:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;10651:76:0;-1:-1:-1;10762:5:0;;:22;;;;;;:5;:22;;;;;;;;;10740:19;;10762:5;;;;;:15;;:22;;;;;;;;;;;;;;;:5;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;10762:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10762:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10762:22:0;;-1:-1:-1;10795:23:0;10821:21;;;:45;;10859:7;10821:45;;;10845:11;10821:45;10795:71;;10879:32;10888:5;10895:15;10879:8;:32::i;:::-;10532:387;;;;;;;:::o;9712:19::-;;;;;;:::o;9738:18::-;;;;;;:::o;10927:329::-;11017:17;;;;;;;;;;;;;;;;;11004:11;10996:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;10996:39:0;-1:-1:-1;11079:5:0;;:47;;;;;;:5;:47;;;;;;;9634:42;11079:47;;;;;;;;;;;;:5;;;;;:18;;:47;;;;;;;;;;;;;;:5;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;11079:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11079:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11079:47:0;11128:21;;;;;;;;;;;;;11079:47;11128:21;;;;11071:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11071:79:0;-1:-1:-1;11194:5:0;;:30;;;;;;:5;:30;;;;;;;;;;;;;;;:5;;;;;:14;;:30;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11194:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11194:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11194:30:0;11226:21;;;;;;;;;;;;;11194:30;11226:21;;;;11186:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11186:62:0;;10927:329;;:::o
Swarm Source
bzzr://d24e3bad0af15884dea494ea6b25a0a6506f2ef9a045fad658da5ca48084d598
Loading...
Loading
Loading...
Loading
OVERVIEW
The migration contract facilitating the ANTv1 to ANTv2 upgrade.Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.433184 | 4,005,614.7849 | $1,735,168.23 |
Loading...
Loading
Loading...
Loading
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.