Feature Tip: Add private address tag to any address under My Name Tag !
Showing the last 3 transactions (View Advanced Filter)
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Migrate | 23769387 | 101 days ago | IN | 0 ETH | 0.00037282 | ||||
| Migrate | 23769361 | 101 days ago | IN | 0 ETH | 0.00034467 | ||||
| Migrate | 23769334 | 101 days ago | IN | 0 ETH | 0.00039542 |
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
There are no matching entriesUpdate your filters to view other transactions | |||||||||
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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.Net Worth in USD
$597,394.48
Net Worth in ETH
311.6831
Token Allocations
ANT
100.00%
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.149459 | 3,997,045.8632 | $597,394.48 |
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.