Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transactions Sent
Latest:
N/A
First:
N/A
Funded By
N/A
Latest 25 from a total of 940 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 14155443 | 1000 days ago | IN | 0 ETH | 0.00170514 | ||||
Claim | 14124731 | 1005 days ago | IN | 0 ETH | 0.01737265 | ||||
Claim | 14122071 | 1005 days ago | IN | 0 ETH | 0.01741295 | ||||
Claim | 14120397 | 1005 days ago | IN | 0 ETH | 0.01313677 | ||||
Claim | 14118004 | 1006 days ago | IN | 0 ETH | 0.01814254 | ||||
Claim | 14117139 | 1006 days ago | IN | 0 ETH | 0.02184768 | ||||
Claim | 14113410 | 1007 days ago | IN | 0 ETH | 0.01302775 | ||||
Claim | 14113124 | 1007 days ago | IN | 0 ETH | 0.00666337 | ||||
Claim | 14110948 | 1007 days ago | IN | 0 ETH | 0.01547809 | ||||
Claim | 14107645 | 1007 days ago | IN | 0 ETH | 0.0132541 | ||||
Claim | 14107352 | 1007 days ago | IN | 0 ETH | 0.0117076 | ||||
Claim | 14107000 | 1008 days ago | IN | 0 ETH | 0.01049461 | ||||
Claim | 14106530 | 1008 days ago | IN | 0 ETH | 0.00978402 | ||||
Claim | 14106302 | 1008 days ago | IN | 0 ETH | 0.01011446 | ||||
Claim | 14106174 | 1008 days ago | IN | 0 ETH | 0.0096033 | ||||
Claim | 14105933 | 1008 days ago | IN | 0 ETH | 0.01543026 | ||||
Claim | 14105482 | 1008 days ago | IN | 0 ETH | 0.01242047 | ||||
Claim | 14104472 | 1008 days ago | IN | 0 ETH | 0.008898 | ||||
Claim | 14104449 | 1008 days ago | IN | 0 ETH | 0.01095517 | ||||
Claim | 14103676 | 1008 days ago | IN | 0 ETH | 0.00972245 | ||||
Claim | 14103519 | 1008 days ago | IN | 0 ETH | 0.02557223 | ||||
Claim | 14102881 | 1008 days ago | IN | 0 ETH | 0.01159119 | ||||
Claim | 14099676 | 1009 days ago | IN | 0 ETH | 0.01131866 | ||||
Claim | 14098760 | 1009 days ago | IN | 0 ETH | 0.0113623 | ||||
Claim | 14098731 | 1009 days ago | IN | 0 ETH | 0.01324145 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14126266 | 1005 days ago | 0 ETH |
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x5f2810605e33cdb303b1d2dbbbb1812678fba6189c1a9b2d9b02a29e1b96285c
Contract Name:
OngoingAirdrop
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.5.16; import "openzeppelin-solidity-2.3.0/contracts/token/ERC20/IERC20.sol"; import "synthetix-2.43.1/contracts/Owned.sol"; import "openzeppelin-solidity-2.3.0/contracts/cryptography/MerkleProof.sol"; import "synthetix-2.43.1/contracts/Pausable.sol"; import "../interfaces/IEscrowThales.sol"; /** * Contract which implements a merkle airdrop for a given token * Based on an account balance snapshot stored in a merkle tree */ contract OngoingAirdrop is Owned, Pausable { IERC20 public token; IEscrowThales public iEscrowThales; bytes32 public root; // merkle tree root uint256 public startTime; address public admin; uint256 public period; mapping(uint256 => mapping(uint256 => uint256)) public _claimed; constructor( address _owner, IERC20 _token, bytes32 _root ) public Owned(_owner) Pausable() { token = _token; root = _root; startTime = block.timestamp; period = 1; } // Set root of merkle tree function setRoot(bytes32 _root) public onlyOwner { require(address(iEscrowThales) != address(0), "Set Escrow Thales address"); root = _root; startTime = block.timestamp; //reset time every period emit NewRoot(_root, block.timestamp, period); period = period + 1; } // Set EscrowThales contract address function setEscrow(address _escrowThalesContract) public onlyOwner { if (address(iEscrowThales) != address(0)) { token.approve(address(iEscrowThales), 0); } iEscrowThales = IEscrowThales(_escrowThalesContract); token.approve(_escrowThalesContract, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); } // Check if a given reward has already been claimed function claimed(uint256 index) public view returns (uint256 claimedBlock, uint256 claimedMask) { claimedBlock = _claimed[period][index / 256]; claimedMask = (uint256(1) << uint256(index % 256)); require((claimedBlock & claimedMask) == 0, "Tokens have already been claimed"); } // helper for the dapp function canClaim(uint256 index) external view returns (bool) { uint256 claimedBlock = _claimed[period][index / 256]; uint256 claimedMask = (uint256(1) << uint256(index % 256)); return ((claimedBlock & claimedMask) == 0); } // Get airdrop tokens assigned to address // Requires sending merkle proof to the function function claim( uint256 index, uint256 amount, bytes32[] memory merkleProof ) public notPaused { // Make sure the tokens have not already been redeemed (uint256 claimedBlock, uint256 claimedMask) = claimed(index); _claimed[period][index / 256] = claimedBlock | claimedMask; // Compute the merkle leaf from index, recipient and amount bytes32 leaf = keccak256(abi.encodePacked(index, msg.sender, amount)); // verify the proof is valid require(MerkleProof.verify(merkleProof, root, leaf), "Proof is not valid"); // Send to EscrowThales contract iEscrowThales.addToEscrow(msg.sender, amount); emit Claim(msg.sender, amount, block.timestamp); } function _selfDestruct(address payable beneficiary) external onlyOwner { token.transfer(beneficiary, token.balanceOf(address(this))); selfdestruct(beneficiary); } event Claim(address claimer, uint256 amount, uint timestamp); event NewRoot(bytes32 root, uint timestamp, uint256 period); }
pragma solidity ^0.5.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see `ERC20Detailed`. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through `transferFrom`. This is * zero by default. * * This value changes when `approve` or `transferFrom` are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * > Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an `Approval` event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a `Transfer` event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to `approve`. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.5.16; // https://docs.synthetix.io/contracts/source/contracts/owned contract Owned { address public owner; address public nominatedOwner; constructor(address _owner) public { require(_owner != address(0), "Owner address cannot be 0"); owner = _owner; emit OwnerChanged(address(0), _owner); } function nominateNewOwner(address _owner) external onlyOwner { nominatedOwner = _owner; emit OwnerNominated(_owner); } function acceptOwnership() external { require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership"); emit OwnerChanged(owner, nominatedOwner); owner = nominatedOwner; nominatedOwner = address(0); } modifier onlyOwner { _onlyOwner(); _; } function _onlyOwner() private view { require(msg.sender == owner, "Only the contract owner may perform this action"); } event OwnerNominated(address newOwner); event OwnerChanged(address oldOwner, address newOwner); }
pragma solidity ^0.5.0; /** * @dev These functions deal with verification of Merkle trees (hash trees), */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash < proofElement) { // Hash(current computed hash + current element of the proof) computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); } else { // Hash(current element of the proof + current computed hash) computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); } } // Check if the computed hash (root) is equal to the provided root return computedHash == root; } }
pragma solidity ^0.5.16; // Inheritance import "./Owned.sol"; // https://docs.synthetix.io/contracts/source/contracts/pausable contract Pausable is Owned { uint public lastPauseTime; bool public paused; constructor() internal { // This contract is abstract, and thus cannot be instantiated directly require(owner != address(0), "Owner must be set"); // Paused will be false, and lastPauseTime will be 0 upon initialisation } /** * @notice Change the paused state of the contract * @dev Only the contract owner may call this. */ function setPaused(bool _paused) external onlyOwner { // Ensure we're actually changing the state before we do anything if (_paused == paused) { return; } // Set our paused state. paused = _paused; // If applicable, set the last pause time. if (paused) { lastPauseTime = now; } // Let everyone know that our pause state has changed. emit PauseChanged(paused); } event PauseChanged(bool isPaused); modifier notPaused { require(!paused, "This action cannot be performed while the contract is paused"); _; } }
pragma solidity >=0.4.24; interface IEscrowThales { /* ========== VIEWS / VARIABLES ========== */ function getStakerPeriod(address account, uint index) external view returns (uint); function getStakerAmounts(address account, uint index) external view returns (uint); function totalAccountEscrowedAmount(address account) external view returns (uint); function getStakedEscrowedBalanceForRewards(address account) external view returns (uint); function totalEscrowedRewards() external view returns (uint); function totalEscrowBalanceNotIncludedInStaking() external view returns (uint); function currentVestingPeriod() external view returns (uint); function updateCurrentPeriod() external returns (bool); function claimable(address account) external view returns (uint); function addToEscrow(address account, uint amount) external; function vest(uint amount) external returns (bool); function addTotalEscrowBalanceNotIncludedInStaking(uint amount) external; function subtractTotalEscrowBalanceNotIncludedInStaking(uint amount) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"bytes32","name":"_root","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"period","type":"uint256"}],"name":"NewRoot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseChanged","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"beneficiary","type":"address"}],"name":"_selfDestruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"canClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"claimedBlock","type":"uint256"},{"internalType":"uint256","name":"claimedMask","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"iEscrowThales","outputs":[{"internalType":"contract IEscrowThales","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastPauseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"period","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"root","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_escrowThalesContract","type":"address"}],"name":"setEscrow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"}],"name":"setRoot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610e98380380610e988339818101604052606081101561003357600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031661014a576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600380546001600160a01b0390931661010002610100600160a81b03199093169290921790915560055550426006556001600855610d0b8061018d6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80639ea6ec29116100ad578063dbe7e3bd11610071578063dbe7e3bd1461034a578063ebf0c71714610380578063ef78d4fd14610388578063f851a44014610390578063fc0c546a146103985761012c565b80639ea6ec2914610215578063ae0b51df1461023b578063c10c3546146102ea578063c95c0d8914610310578063dab5f3401461032d5761012c565b8063642b0424116100f4578063642b0424146101c057806378e97925146101f557806379ba5097146101fd5780638da5cb5b1461020557806391b4ded91461020d5761012c565b80631627540c1461013157806316c38b3c146101595780632f3241581461017857806353a47bb71461019c5780635c975abb146101a4575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b03166103a0565b005b6101576004803603602081101561016f57600080fd5b503515156103fc565b610180610476565b604080516001600160a01b039092168252519081900360200190f35b610180610485565b6101ac610494565b604080519115158252519081900360200190f35b6101e3600480360360408110156101d657600080fd5b508035906020013561049d565b60408051918252519081900360200190f35b6101e36104ba565b6101576104c0565b61018061057c565b6101e361058b565b6101576004803603602081101561022b57600080fd5b50356001600160a01b0316610591565b6101576004803603606081101561025157600080fd5b81359160208101359181019060608101604082013564010000000081111561027857600080fd5b82018360208201111561028a57600080fd5b803590602001918460208302840111640100000000831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106a4945050505050565b6101576004803603602081101561030057600080fd5b50356001600160a01b0316610857565b6101ac6004803603602081101561032657600080fd5b503561099f565b6101576004803603602081101561034357600080fd5b50356109d0565b6103676004803603602081101561036057600080fd5b5035610a90565b6040805192835260208301919091528051918290030190f35b6101e3610b12565b6101e3610b18565b610180610b1e565b610180610b2d565b6103a8610b41565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610404610b41565b60035460ff161515811515141561041a57610473565b6003805460ff1916821515179081905560ff161561043757426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b6004546001600160a01b031681565b6001546001600160a01b031681565b60035460ff1681565b600960209081526000928352604080842090915290825290205481565b60065481565b6001546001600160a01b031633146105095760405162461bcd60e51b8152600401808060200182810382526035815260200180610c376035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b60025481565b610599610b41565b600354604080516370a0823160e01b815230600482015290516101009092046001600160a01b03169163a9059cbb91849184916370a08231916024808301926020929190829003018186803b1580156105f157600080fd5b505afa158015610605573d6000803e3d6000fd5b505050506040513d602081101561061b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561066c57600080fd5b505af1158015610680573d6000803e3d6000fd5b505050506040513d602081101561069657600080fd5b50506001600160a01b038116ff5b60035460ff16156106e65760405162461bcd60e51b815260040180806020018281038252603c815260200180610c9b603c913960400191505060405180910390fd5b6000806106f285610a90565b60085460009081526009602090815260408083206101008b048452825291829020838517905581518082018a90523360601b8184015260548082018a905283518083039091018152607490910190925281519101206005549294509092509061075d90859083610b8c565b6107a3576040805162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81b9bdd081d985b1a5960721b604482015290519081900360640190fd5b600480546040805163b01ca88f60e01b8152339381019390935260248301889052516001600160a01b039091169163b01ca88f91604480830192600092919082900301818387803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b50506040805133815260208101899052428183015290517f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf79350908190036060019150a1505050505050565b61085f610b41565b6004546001600160a01b03161561090157600354600480546040805163095ea7b360e01b81526001600160a01b039283169381019390935260006024840181905290516101009094049091169263095ea7b3926044808201936020939283900390910190829087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506040513d60208110156108fe57600080fd5b50505b600480546001600160a01b0319166001600160a01b0383811691821783556003546040805163095ea7b360e01b81529485019390935260001960248501529151610100909204169163095ea7b39160448083019260209291908290030181600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d602081101561099a57600080fd5b505050565b600854600090815260096020908152604080832061010085048452909152902054600160ff9092169190911b161590565b6109d8610b41565b6004546001600160a01b0316610a35576040805162461bcd60e51b815260206004820152601960248201527f53657420457363726f77205468616c6573206164647265737300000000000000604482015290519081900360640190fd5b600581905542600681905560085460408051848152602081019390935282810191909152517f27ece7f6ab4136a488e703a30962e63b76b6f31f4d0b03e0e3a47bcd1dd6f5d19181900360600190a150600880546001019055565b600854600090815260096020908152604080832061010085048452909152902054600160ff83161b80821615610b0d576040805162461bcd60e51b815260206004820181905260248201527f546f6b656e73206861766520616c7265616479206265656e20636c61696d6564604482015290519081900360640190fd5b915091565b60055481565b60085481565b6007546001600160a01b031681565b60035461010090046001600160a01b031681565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610c6c602f913960400191505060405180910390fd5b565b600081815b8551811015610c2b576000868281518110610ba857fe5b6020026020010151905080831015610bf05782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610c22565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610b91565b50909214939250505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e5468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564a265627a7a723158202088a825c50ad945acc3c99cd4a8ab43b53bb452cfacdcf9a0123e6513ec51b864736f6c634300051000320000000000000000000000004d03ef005e5f559fc9294a8e1cebba09284b1f8200000000000000000000000003e173ad8d1581a4802d3b532ace27a62c5b81dcabfc88f60dcac2cc17d518ff428a7033306dcd4633cff8fd688edc4eab042902
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80639ea6ec29116100ad578063dbe7e3bd11610071578063dbe7e3bd1461034a578063ebf0c71714610380578063ef78d4fd14610388578063f851a44014610390578063fc0c546a146103985761012c565b80639ea6ec2914610215578063ae0b51df1461023b578063c10c3546146102ea578063c95c0d8914610310578063dab5f3401461032d5761012c565b8063642b0424116100f4578063642b0424146101c057806378e97925146101f557806379ba5097146101fd5780638da5cb5b1461020557806391b4ded91461020d5761012c565b80631627540c1461013157806316c38b3c146101595780632f3241581461017857806353a47bb71461019c5780635c975abb146101a4575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b03166103a0565b005b6101576004803603602081101561016f57600080fd5b503515156103fc565b610180610476565b604080516001600160a01b039092168252519081900360200190f35b610180610485565b6101ac610494565b604080519115158252519081900360200190f35b6101e3600480360360408110156101d657600080fd5b508035906020013561049d565b60408051918252519081900360200190f35b6101e36104ba565b6101576104c0565b61018061057c565b6101e361058b565b6101576004803603602081101561022b57600080fd5b50356001600160a01b0316610591565b6101576004803603606081101561025157600080fd5b81359160208101359181019060608101604082013564010000000081111561027857600080fd5b82018360208201111561028a57600080fd5b803590602001918460208302840111640100000000831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106a4945050505050565b6101576004803603602081101561030057600080fd5b50356001600160a01b0316610857565b6101ac6004803603602081101561032657600080fd5b503561099f565b6101576004803603602081101561034357600080fd5b50356109d0565b6103676004803603602081101561036057600080fd5b5035610a90565b6040805192835260208301919091528051918290030190f35b6101e3610b12565b6101e3610b18565b610180610b1e565b610180610b2d565b6103a8610b41565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610404610b41565b60035460ff161515811515141561041a57610473565b6003805460ff1916821515179081905560ff161561043757426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b6004546001600160a01b031681565b6001546001600160a01b031681565b60035460ff1681565b600960209081526000928352604080842090915290825290205481565b60065481565b6001546001600160a01b031633146105095760405162461bcd60e51b8152600401808060200182810382526035815260200180610c376035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b60025481565b610599610b41565b600354604080516370a0823160e01b815230600482015290516101009092046001600160a01b03169163a9059cbb91849184916370a08231916024808301926020929190829003018186803b1580156105f157600080fd5b505afa158015610605573d6000803e3d6000fd5b505050506040513d602081101561061b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561066c57600080fd5b505af1158015610680573d6000803e3d6000fd5b505050506040513d602081101561069657600080fd5b50506001600160a01b038116ff5b60035460ff16156106e65760405162461bcd60e51b815260040180806020018281038252603c815260200180610c9b603c913960400191505060405180910390fd5b6000806106f285610a90565b60085460009081526009602090815260408083206101008b048452825291829020838517905581518082018a90523360601b8184015260548082018a905283518083039091018152607490910190925281519101206005549294509092509061075d90859083610b8c565b6107a3576040805162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81b9bdd081d985b1a5960721b604482015290519081900360640190fd5b600480546040805163b01ca88f60e01b8152339381019390935260248301889052516001600160a01b039091169163b01ca88f91604480830192600092919082900301818387803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b50506040805133815260208101899052428183015290517f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf79350908190036060019150a1505050505050565b61085f610b41565b6004546001600160a01b03161561090157600354600480546040805163095ea7b360e01b81526001600160a01b039283169381019390935260006024840181905290516101009094049091169263095ea7b3926044808201936020939283900390910190829087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506040513d60208110156108fe57600080fd5b50505b600480546001600160a01b0319166001600160a01b0383811691821783556003546040805163095ea7b360e01b81529485019390935260001960248501529151610100909204169163095ea7b39160448083019260209291908290030181600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d602081101561099a57600080fd5b505050565b600854600090815260096020908152604080832061010085048452909152902054600160ff9092169190911b161590565b6109d8610b41565b6004546001600160a01b0316610a35576040805162461bcd60e51b815260206004820152601960248201527f53657420457363726f77205468616c6573206164647265737300000000000000604482015290519081900360640190fd5b600581905542600681905560085460408051848152602081019390935282810191909152517f27ece7f6ab4136a488e703a30962e63b76b6f31f4d0b03e0e3a47bcd1dd6f5d19181900360600190a150600880546001019055565b600854600090815260096020908152604080832061010085048452909152902054600160ff83161b80821615610b0d576040805162461bcd60e51b815260206004820181905260248201527f546f6b656e73206861766520616c7265616479206265656e20636c61696d6564604482015290519081900360640190fd5b915091565b60055481565b60085481565b6007546001600160a01b031681565b60035461010090046001600160a01b031681565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610c6c602f913960400191505060405180910390fd5b565b600081815b8551811015610c2b576000868281518110610ba857fe5b6020026020010151905080831015610bf05782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610c22565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610b91565b50909214939250505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e5468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564a265627a7a723158202088a825c50ad945acc3c99cd4a8ab43b53bb452cfacdcf9a0123e6513ec51b864736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004d03ef005e5f559fc9294a8e1cebba09284b1f8200000000000000000000000003e173ad8d1581a4802d3b532ace27a62c5b81dcabfc88f60dcac2cc17d518ff428a7033306dcd4633cff8fd688edc4eab042902
-----Decoded View---------------
Arg [0] : _owner (address): 0x4D03eF005e5f559fc9294a8E1CeBbA09284B1F82
Arg [1] : _token (address): 0x03E173Ad8d1581A4802d3B532AcE27a62c5B81dc
Arg [2] : _root (bytes32): 0xabfc88f60dcac2cc17d518ff428a7033306dcd4633cff8fd688edc4eab042902
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000004d03ef005e5f559fc9294a8e1cebba09284b1f82
Arg [1] : 00000000000000000000000003e173ad8d1581a4802d3b532ace27a62c5b81dc
Arg [2] : abfc88f60dcac2cc17d518ff428a7033306dcd4633cff8fd688edc4eab042902
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.