More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Week | 18074923 | 546 days ago | IN | 0 ETH | 0.00099069 | ||||
Seed Allocations | 18074912 | 546 days ago | IN | 0 ETH | 0.00155042 | ||||
Seed Allocations | 18074876 | 546 days ago | IN | 0 ETH | 0.00155042 | ||||
Claim Weeks | 13891201 | 1163 days ago | IN | 0 ETH | 0.0019298 | ||||
Claim Weeks | 13511500 | 1223 days ago | IN | 0 ETH | 0.01300792 | ||||
Claim Weeks | 13009896 | 1301 days ago | IN | 0 ETH | 0.00470874 | ||||
Claim Weeks | 12928154 | 1314 days ago | IN | 0 ETH | 0.00423333 | ||||
Claim Weeks | 12928153 | 1314 days ago | IN | 0 ETH | 0.00460551 | ||||
Claim Weeks | 12928153 | 1314 days ago | IN | 0 ETH | 0.00568869 | ||||
Claim Weeks | 12928143 | 1314 days ago | IN | 0 ETH | 0.00428524 | ||||
Claim Weeks | 12928130 | 1314 days ago | IN | 0 ETH | 0.00563273 | ||||
Claim Weeks | 12792774 | 1335 days ago | IN | 0 ETH | 0.00139167 | ||||
Claim Weeks | 12759440 | 1340 days ago | IN | 0 ETH | 0.00091435 | ||||
Seed Allocations | 12708708 | 1348 days ago | IN | 0 ETH | 0.00170546 | ||||
Claim Weeks | 12568279 | 1370 days ago | IN | 0 ETH | 0.00254702 | ||||
Claim Weeks | 12522346 | 1377 days ago | IN | 0 ETH | 0.00267927 | ||||
Claim Weeks | 12507738 | 1379 days ago | IN | 0 ETH | 0.00350874 | ||||
Claim Weeks | 12507737 | 1379 days ago | IN | 0 ETH | 0.00352685 | ||||
Seed Allocations | 12478536 | 1384 days ago | IN | 0 ETH | 0.01240336 | ||||
Claim Weeks | 12344081 | 1404 days ago | IN | 0 ETH | 0.00362005 | ||||
Claim Weeks | 12307762 | 1410 days ago | IN | 0 ETH | 0.00510037 | ||||
Claim Weeks | 12298794 | 1411 days ago | IN | 0 ETH | 0.00944325 | ||||
Claim Weeks | 12224711 | 1423 days ago | IN | 0 ETH | 0.00941171 | ||||
Seed Allocations | 12224655 | 1423 days ago | IN | 0 ETH | 0.00513944 | ||||
Transfer Ownersh... | 12224581 | 1423 days ago | IN | 0 ETH | 0.00293289 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MerkleRedeem
Compiler Version
v0.6.8+commit.0bbfe453
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.6.8; pragma experimental ABIEncoderV2; import "@openzeppelin/contracts/cryptography/MerkleProof.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; contract MerkleRedeem is Ownable { IERC20 public token; event Claimed(address _claimant, uint256 _balance); // Recorded weeks mapping(uint => bytes32) public weekMerkleRoots; mapping(uint => mapping(address => bool)) public claimed; constructor( address _token ) public { token = IERC20(_token); } function disburse( address _liquidityProvider, uint _balance ) private { if (_balance > 0) { emit Claimed(_liquidityProvider, _balance); require(token.transfer(_liquidityProvider, _balance), "ERR_TRANSFER_FAILED"); } } function claimWeek( address _liquidityProvider, uint _week, uint _claimedBalance, bytes32[] memory _merkleProof ) public { require(!claimed[_week][_liquidityProvider]); require(verifyClaim(_liquidityProvider, _week, _claimedBalance, _merkleProof), 'Incorrect merkle proof'); claimed[_week][_liquidityProvider] = true; disburse(_liquidityProvider, _claimedBalance); } struct Claim { uint week; uint balance; bytes32[] merkleProof; } function claimWeeks( address _liquidityProvider, Claim[] memory claims ) public { uint totalBalance = 0; Claim memory claim ; for(uint i = 0; i < claims.length; i++) { claim = claims[i]; require(!claimed[claim.week][_liquidityProvider]); require(verifyClaim(_liquidityProvider, claim.week, claim.balance, claim.merkleProof), 'Incorrect merkle proof'); totalBalance += claim.balance; claimed[claim.week][_liquidityProvider] = true; } disburse(_liquidityProvider, totalBalance); } function claimStatus( address _liquidityProvider, uint _begin, uint _end ) external view returns (bool[] memory) { uint size = 1 + _end - _begin; bool[] memory arr = new bool[](size); for(uint i = 0; i < size; i++) { arr[i] = claimed[_begin + i][_liquidityProvider]; } return arr; } function merkleRoots( uint _begin, uint _end ) external view returns (bytes32[] memory) { uint size = 1 + _end - _begin; bytes32[] memory arr = new bytes32[](size); for(uint i = 0; i < size; i++) { arr[i] = weekMerkleRoots[_begin + i]; } return arr; } function verifyClaim( address _liquidityProvider, uint _week, uint _claimedBalance, bytes32[] memory _merkleProof ) public view returns (bool valid) { bytes32 leaf = keccak256(abi.encodePacked(_liquidityProvider, _claimedBalance)); return MerkleProof.verify(_merkleProof, weekMerkleRoots[_week], leaf); } function seedAllocations( uint _week, bytes32 _merkleRoot, uint _totalAllocation ) external onlyOwner { require(weekMerkleRoots[_week] == bytes32(0), "cannot rewrite merkle root"); weekMerkleRoots[_week] = _merkleRoot; require(token.transferFrom(msg.sender, address(this), _totalAllocation), "ERR_TRANSFER_FAILED"); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.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; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
{ "remappings": [], "optimizer": { "enabled": false, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_claimant","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_liquidityProvider","type":"address"},{"internalType":"uint256","name":"_begin","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"}],"name":"claimStatus","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityProvider","type":"address"},{"internalType":"uint256","name":"_week","type":"uint256"},{"internalType":"uint256","name":"_claimedBalance","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"claimWeek","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityProvider","type":"address"},{"components":[{"internalType":"uint256","name":"week","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"internalType":"struct MerkleRedeem.Claim[]","name":"claims","type":"tuple[]"}],"name":"claimWeeks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_begin","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"}],"name":"merkleRoots","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_week","type":"uint256"},{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"_totalAllocation","type":"uint256"}],"name":"seedAllocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityProvider","type":"address"},{"internalType":"uint256","name":"_week","type":"uint256"},{"internalType":"uint256","name":"_claimedBalance","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"verifyClaim","outputs":[{"internalType":"bool","name":"valid","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"weekMerkleRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001c0f38038062001c0f83398181016040528101906200003791906200014e565b6000620000496200012f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001c8565b600033905090565b6000815190506200014881620001ae565b92915050565b6000602082840312156200016157600080fd5b6000620001718482850162000137565b91505092915050565b600062000187826200018e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001b9816200017a565b8114620001c557600080fd5b50565b611a3780620001d86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018b578063c804c39a146101a9578063dd8c9c9d146101c5578063eb0d07f5146101f5578063f2fde38b14610225578063fc0c546a14610241576100b4565b8063120aa877146100b957806339436b00146100e957806347fb23c1146101195780634cd488ab1461014957806358b4e4b414610165578063715018a614610181575b600080fd5b6100d360048036038101906100ce91906111d6565b61025f565b6040516100e091906116c3565b60405180910390f35b61010360048036038101906100fe9190611261565b61028e565b60405161011091906116a1565b60405180910390f35b610133600480360381019061012e91906110ba565b61033a565b604051610140919061167f565b60405180910390f35b610163600480360381019061015e9190611212565b610437565b005b61017f600480360381019061017a9190611109565b610618565b005b610189610744565b005b61019361087f565b6040516101a09190611604565b60405180910390f35b6101c360048036038101906101be9190611066565b6108a8565b005b6101df60048036038101906101da91906111ad565b610a31565b6040516101ec91906116de565b60405180910390f35b61020f600480360381019061020a9190611109565b610a49565b60405161021c91906116c3565b60405180910390f35b61023f600480360381019061023a919061103d565b610aa0565b005b610249610c4a565b60405161025691906116f9565b60405180910390f35b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60606000838360010103905060608167ffffffffffffffff811180156102b357600080fd5b506040519080825280602002602001820160405280156102e25781602001602082028036833780820191505090505b50905060008090505b8281101561032e576002600082880181526020019081526020016000205482828151811061031557fe5b60200260200101818152505080806001019150506102eb565b50809250505092915050565b60606000838360010103905060608167ffffffffffffffff8111801561035f57600080fd5b5060405190808252806020026020018201604052801561038e5781602001602082028036833780820191505090505b50905060008090505b8281101561042a5760036000828801815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1682828151811061040b57fe5b6020026020010190151590811515815250508080600101915050610397565b5080925050509392505050565b61043f610c70565b73ffffffffffffffffffffffffffffffffffffffff1661045d61087f565b73ffffffffffffffffffffffffffffffffffffffff16146104b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104aa90611754565b60405180910390fd5b6000801b60026000858152602001908152602001600020541461050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050290611794565b60405180910390fd5b816002600085815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016105829392919061161f565b602060405180830381600087803b15801561059c57600080fd5b505af11580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611184565b610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060a90611774565b60405180910390fd5b505050565b6003600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561068057600080fd5b61068c84848484610a49565b6106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c290611734565b60405180910390fd5b60016003600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061073e8483610c78565b50505050565b61074c610c70565b73ffffffffffffffffffffffffffffffffffffffff1661076a61087f565b73ffffffffffffffffffffffffffffffffffffffff16146107c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b790611754565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008090506108b5610e59565b60008090505b8351811015610a20578381815181106108d057fe5b60200260200101519150600360008360000151815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561094657600080fd5b61095e85836000015184602001518560400151610a49565b61099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490611734565b60405180910390fd5b8160200151830192506001600360008460000151815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506108bb565b50610a2b8483610c78565b50505050565b60026020528060005260406000206000915090505481565b6000808584604051602001610a5f9291906115ac565b604051602081830303815290604052805190602001209050610a9583600260008881526020019081526020016000205483610dad565b915050949350505050565b610aa8610c70565b73ffffffffffffffffffffffffffffffffffffffff16610ac661087f565b73ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390611754565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8390611714565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6000811115610da9577fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8282604051610cb2929190611656565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d17929190611656565b602060405180830381600087803b158015610d3157600080fd5b505af1158015610d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d699190611184565b610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90611774565b60405180910390fd5b5b5050565b60008082905060008090505b8551811015610e4b576000868281518110610dd057fe5b60200260200101519050808311610e11578281604051602001610df49291906115d8565b604051602081830303815290604052805190602001209250610e3d565b8083604051602001610e249291906115d8565b6040516020818303038152906040528051906020012092505b508080600101915050610db9565b508381149150509392505050565b60405180606001604052806000815260200160008152602001606081525090565b600081359050610e89816119a5565b92915050565b600082601f830112610ea057600080fd5b8135610eb3610eae826117e1565b6117b4565b91508181835260208401935060208101905083856020840282011115610ed857600080fd5b60005b83811015610f085781610eee8882610f9b565b845260208401935060208301925050600181019050610edb565b5050505092915050565b600082601f830112610f2357600080fd5b8135610f36610f3182611809565b6117b4565b9150818183526020840193506020810190508360005b83811015610f7c5781358601610f628882610fb0565b845260208401935060208301925050600181019050610f4c565b5050505092915050565b600081519050610f95816119bc565b92915050565b600081359050610faa816119d3565b92915050565b600060608284031215610fc257600080fd5b610fcc60606117b4565b90506000610fdc84828501611028565b6000830152506020610ff084828501611028565b602083015250604082013567ffffffffffffffff81111561101057600080fd5b61101c84828501610e8f565b60408301525092915050565b600081359050611037816119ea565b92915050565b60006020828403121561104f57600080fd5b600061105d84828501610e7a565b91505092915050565b6000806040838503121561107957600080fd5b600061108785828601610e7a565b925050602083013567ffffffffffffffff8111156110a457600080fd5b6110b085828601610f12565b9150509250929050565b6000806000606084860312156110cf57600080fd5b60006110dd86828701610e7a565b93505060206110ee86828701611028565b92505060406110ff86828701611028565b9150509250925092565b6000806000806080858703121561111f57600080fd5b600061112d87828801610e7a565b945050602061113e87828801611028565b935050604061114f87828801611028565b925050606085013567ffffffffffffffff81111561116c57600080fd5b61117887828801610e8f565b91505092959194509250565b60006020828403121561119657600080fd5b60006111a484828501610f86565b91505092915050565b6000602082840312156111bf57600080fd5b60006111cd84828501611028565b91505092915050565b600080604083850312156111e957600080fd5b60006111f785828601611028565b925050602061120885828601610e7a565b9150509250929050565b60008060006060848603121561122757600080fd5b600061123586828701611028565b935050602061124686828701610f9b565b925050604061125786828701611028565b9150509250925092565b6000806040838503121561127457600080fd5b600061128285828601611028565b925050602061129385828601611028565b9150509250929050565b60006112a983836113be565b60208301905092915050565b60006112c183836113dc565b60208301905092915050565b6112d681611906565b82525050565b6112e5816118b4565b82525050565b6112fc6112f7826118b4565b611960565b82525050565b600061130d82611851565b6113178185611881565b935061132283611831565b8060005b8381101561135357815161133a888261129d565b975061134583611867565b925050600181019050611326565b5085935050505092915050565b600061136b8261185c565b6113758185611892565b935061138083611841565b8060005b838110156113b157815161139888826112b5565b97506113a383611874565b925050600181019050611384565b5085935050505092915050565b6113c7816118c6565b82525050565b6113d6816118c6565b82525050565b6113e5816118d2565b82525050565b6113f4816118d2565b82525050565b61140b611406826118d2565b611972565b82525050565b61141a81611918565b82525050565b600061142d6026836118a3565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114936016836118a3565b91507f496e636f7272656374206d65726b6c652070726f6f66000000000000000000006000830152602082019050919050565b60006114d36020836118a3565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006115136013836118a3565b91507f4552525f5452414e534645525f4641494c4544000000000000000000000000006000830152602082019050919050565b6000611553601a836118a3565b91507f63616e6e6f742072657772697465206d65726b6c6520726f6f740000000000006000830152602082019050919050565b61158f816118fc565b82525050565b6115a66115a1826118fc565b61198e565b82525050565b60006115b882856112eb565b6014820191506115c88284611595565b6020820191508190509392505050565b60006115e482856113fa565b6020820191506115f482846113fa565b6020820191508190509392505050565b600060208201905061161960008301846112dc565b92915050565b600060608201905061163460008301866112cd565b61164160208301856112dc565b61164e6040830184611586565b949350505050565b600060408201905061166b60008301856112dc565b6116786020830184611586565b9392505050565b600060208201905081810360008301526116998184611302565b905092915050565b600060208201905081810360008301526116bb8184611360565b905092915050565b60006020820190506116d860008301846113cd565b92915050565b60006020820190506116f360008301846113eb565b92915050565b600060208201905061170e6000830184611411565b92915050565b6000602082019050818103600083015261172d81611420565b9050919050565b6000602082019050818103600083015261174d81611486565b9050919050565b6000602082019050818103600083015261176d816114c6565b9050919050565b6000602082019050818103600083015261178d81611506565b9050919050565b600060208201905081810360008301526117ad81611546565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156117d757600080fd5b8060405250919050565b600067ffffffffffffffff8211156117f857600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561182057600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006118bf826118dc565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119118261193c565b9050919050565b60006119238261192a565b9050919050565b6000611935826118dc565b9050919050565b60006119478261194e565b9050919050565b6000611959826118dc565b9050919050565b600061196b8261197c565b9050919050565b6000819050919050565b600061198782611998565b9050919050565b6000819050919050565b60008160601b9050919050565b6119ae816118b4565b81146119b957600080fd5b50565b6119c5816118c6565b81146119d057600080fd5b50565b6119dc816118d2565b81146119e757600080fd5b50565b6119f3816118fc565b81146119fe57600080fd5b5056fea2646970667358221220abd81e24c2e0302dfb00f35d5ae110edda94e78712941b7582075a615334c1a864736f6c63430006080033000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018b578063c804c39a146101a9578063dd8c9c9d146101c5578063eb0d07f5146101f5578063f2fde38b14610225578063fc0c546a14610241576100b4565b8063120aa877146100b957806339436b00146100e957806347fb23c1146101195780634cd488ab1461014957806358b4e4b414610165578063715018a614610181575b600080fd5b6100d360048036038101906100ce91906111d6565b61025f565b6040516100e091906116c3565b60405180910390f35b61010360048036038101906100fe9190611261565b61028e565b60405161011091906116a1565b60405180910390f35b610133600480360381019061012e91906110ba565b61033a565b604051610140919061167f565b60405180910390f35b610163600480360381019061015e9190611212565b610437565b005b61017f600480360381019061017a9190611109565b610618565b005b610189610744565b005b61019361087f565b6040516101a09190611604565b60405180910390f35b6101c360048036038101906101be9190611066565b6108a8565b005b6101df60048036038101906101da91906111ad565b610a31565b6040516101ec91906116de565b60405180910390f35b61020f600480360381019061020a9190611109565b610a49565b60405161021c91906116c3565b60405180910390f35b61023f600480360381019061023a919061103d565b610aa0565b005b610249610c4a565b60405161025691906116f9565b60405180910390f35b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60606000838360010103905060608167ffffffffffffffff811180156102b357600080fd5b506040519080825280602002602001820160405280156102e25781602001602082028036833780820191505090505b50905060008090505b8281101561032e576002600082880181526020019081526020016000205482828151811061031557fe5b60200260200101818152505080806001019150506102eb565b50809250505092915050565b60606000838360010103905060608167ffffffffffffffff8111801561035f57600080fd5b5060405190808252806020026020018201604052801561038e5781602001602082028036833780820191505090505b50905060008090505b8281101561042a5760036000828801815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1682828151811061040b57fe5b6020026020010190151590811515815250508080600101915050610397565b5080925050509392505050565b61043f610c70565b73ffffffffffffffffffffffffffffffffffffffff1661045d61087f565b73ffffffffffffffffffffffffffffffffffffffff16146104b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104aa90611754565b60405180910390fd5b6000801b60026000858152602001908152602001600020541461050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050290611794565b60405180910390fd5b816002600085815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016105829392919061161f565b602060405180830381600087803b15801561059c57600080fd5b505af11580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611184565b610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060a90611774565b60405180910390fd5b505050565b6003600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561068057600080fd5b61068c84848484610a49565b6106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c290611734565b60405180910390fd5b60016003600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061073e8483610c78565b50505050565b61074c610c70565b73ffffffffffffffffffffffffffffffffffffffff1661076a61087f565b73ffffffffffffffffffffffffffffffffffffffff16146107c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b790611754565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008090506108b5610e59565b60008090505b8351811015610a20578381815181106108d057fe5b60200260200101519150600360008360000151815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561094657600080fd5b61095e85836000015184602001518560400151610a49565b61099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490611734565b60405180910390fd5b8160200151830192506001600360008460000151815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506108bb565b50610a2b8483610c78565b50505050565b60026020528060005260406000206000915090505481565b6000808584604051602001610a5f9291906115ac565b604051602081830303815290604052805190602001209050610a9583600260008881526020019081526020016000205483610dad565b915050949350505050565b610aa8610c70565b73ffffffffffffffffffffffffffffffffffffffff16610ac661087f565b73ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390611754565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8390611714565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6000811115610da9577fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8282604051610cb2929190611656565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d17929190611656565b602060405180830381600087803b158015610d3157600080fd5b505af1158015610d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d699190611184565b610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90611774565b60405180910390fd5b5b5050565b60008082905060008090505b8551811015610e4b576000868281518110610dd057fe5b60200260200101519050808311610e11578281604051602001610df49291906115d8565b604051602081830303815290604052805190602001209250610e3d565b8083604051602001610e249291906115d8565b6040516020818303038152906040528051906020012092505b508080600101915050610db9565b508381149150509392505050565b60405180606001604052806000815260200160008152602001606081525090565b600081359050610e89816119a5565b92915050565b600082601f830112610ea057600080fd5b8135610eb3610eae826117e1565b6117b4565b91508181835260208401935060208101905083856020840282011115610ed857600080fd5b60005b83811015610f085781610eee8882610f9b565b845260208401935060208301925050600181019050610edb565b5050505092915050565b600082601f830112610f2357600080fd5b8135610f36610f3182611809565b6117b4565b9150818183526020840193506020810190508360005b83811015610f7c5781358601610f628882610fb0565b845260208401935060208301925050600181019050610f4c565b5050505092915050565b600081519050610f95816119bc565b92915050565b600081359050610faa816119d3565b92915050565b600060608284031215610fc257600080fd5b610fcc60606117b4565b90506000610fdc84828501611028565b6000830152506020610ff084828501611028565b602083015250604082013567ffffffffffffffff81111561101057600080fd5b61101c84828501610e8f565b60408301525092915050565b600081359050611037816119ea565b92915050565b60006020828403121561104f57600080fd5b600061105d84828501610e7a565b91505092915050565b6000806040838503121561107957600080fd5b600061108785828601610e7a565b925050602083013567ffffffffffffffff8111156110a457600080fd5b6110b085828601610f12565b9150509250929050565b6000806000606084860312156110cf57600080fd5b60006110dd86828701610e7a565b93505060206110ee86828701611028565b92505060406110ff86828701611028565b9150509250925092565b6000806000806080858703121561111f57600080fd5b600061112d87828801610e7a565b945050602061113e87828801611028565b935050604061114f87828801611028565b925050606085013567ffffffffffffffff81111561116c57600080fd5b61117887828801610e8f565b91505092959194509250565b60006020828403121561119657600080fd5b60006111a484828501610f86565b91505092915050565b6000602082840312156111bf57600080fd5b60006111cd84828501611028565b91505092915050565b600080604083850312156111e957600080fd5b60006111f785828601611028565b925050602061120885828601610e7a565b9150509250929050565b60008060006060848603121561122757600080fd5b600061123586828701611028565b935050602061124686828701610f9b565b925050604061125786828701611028565b9150509250925092565b6000806040838503121561127457600080fd5b600061128285828601611028565b925050602061129385828601611028565b9150509250929050565b60006112a983836113be565b60208301905092915050565b60006112c183836113dc565b60208301905092915050565b6112d681611906565b82525050565b6112e5816118b4565b82525050565b6112fc6112f7826118b4565b611960565b82525050565b600061130d82611851565b6113178185611881565b935061132283611831565b8060005b8381101561135357815161133a888261129d565b975061134583611867565b925050600181019050611326565b5085935050505092915050565b600061136b8261185c565b6113758185611892565b935061138083611841565b8060005b838110156113b157815161139888826112b5565b97506113a383611874565b925050600181019050611384565b5085935050505092915050565b6113c7816118c6565b82525050565b6113d6816118c6565b82525050565b6113e5816118d2565b82525050565b6113f4816118d2565b82525050565b61140b611406826118d2565b611972565b82525050565b61141a81611918565b82525050565b600061142d6026836118a3565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114936016836118a3565b91507f496e636f7272656374206d65726b6c652070726f6f66000000000000000000006000830152602082019050919050565b60006114d36020836118a3565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006115136013836118a3565b91507f4552525f5452414e534645525f4641494c4544000000000000000000000000006000830152602082019050919050565b6000611553601a836118a3565b91507f63616e6e6f742072657772697465206d65726b6c6520726f6f740000000000006000830152602082019050919050565b61158f816118fc565b82525050565b6115a66115a1826118fc565b61198e565b82525050565b60006115b882856112eb565b6014820191506115c88284611595565b6020820191508190509392505050565b60006115e482856113fa565b6020820191506115f482846113fa565b6020820191508190509392505050565b600060208201905061161960008301846112dc565b92915050565b600060608201905061163460008301866112cd565b61164160208301856112dc565b61164e6040830184611586565b949350505050565b600060408201905061166b60008301856112dc565b6116786020830184611586565b9392505050565b600060208201905081810360008301526116998184611302565b905092915050565b600060208201905081810360008301526116bb8184611360565b905092915050565b60006020820190506116d860008301846113cd565b92915050565b60006020820190506116f360008301846113eb565b92915050565b600060208201905061170e6000830184611411565b92915050565b6000602082019050818103600083015261172d81611420565b9050919050565b6000602082019050818103600083015261174d81611486565b9050919050565b6000602082019050818103600083015261176d816114c6565b9050919050565b6000602082019050818103600083015261178d81611506565b9050919050565b600060208201905081810360008301526117ad81611546565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156117d757600080fd5b8060405250919050565b600067ffffffffffffffff8211156117f857600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561182057600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006118bf826118dc565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119118261193c565b9050919050565b60006119238261192a565b9050919050565b6000611935826118dc565b9050919050565b60006119478261194e565b9050919050565b6000611959826118dc565b9050919050565b600061196b8261197c565b9050919050565b6000819050919050565b600061198782611998565b9050919050565b6000819050919050565b60008160601b9050919050565b6119ae816118b4565b81146119b957600080fd5b50565b6119c5816118c6565b81146119d057600080fd5b50565b6119dc816118d2565b81146119e757600080fd5b50565b6119f3816118fc565b81146119fe57600080fd5b5056fea2646970667358221220abd81e24c2e0302dfb00f35d5ae110edda94e78712941b7582075a615334c1a864736f6c63430006080033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
-----Decoded View---------------
Arg [0] : _token (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.