More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 262 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Weeks | 14339670 | 1062 days ago | IN | 0 ETH | 0.00556721 | ||||
Claim Weeks | 14338373 | 1062 days ago | IN | 0 ETH | 0.00538046 | ||||
Claim Weeks | 14329726 | 1064 days ago | IN | 0 ETH | 0.01029133 | ||||
Claim Weeks | 14303523 | 1068 days ago | IN | 0 ETH | 0.00997845 | ||||
Claim Weeks | 14300807 | 1068 days ago | IN | 0 ETH | 0.00700709 | ||||
Claim Weeks | 13714427 | 1159 days ago | IN | 0 ETH | 0.0285837 | ||||
Claim Weeks | 13686541 | 1164 days ago | IN | 0 ETH | 0.01477353 | ||||
Claim Weeks | 13677116 | 1165 days ago | IN | 0 ETH | 0.02192402 | ||||
Claim Weeks | 13672525 | 1166 days ago | IN | 0 ETH | 0.02056356 | ||||
Claim Weeks | 13668267 | 1166 days ago | IN | 0 ETH | 0.03633902 | ||||
Claim Weeks | 13649915 | 1169 days ago | IN | 0 ETH | 0.02087568 | ||||
Claim Weeks | 13629336 | 1173 days ago | IN | 0 ETH | 0.04071344 | ||||
Claim Weeks | 13628367 | 1173 days ago | IN | 0 ETH | 0.03559968 | ||||
Claim Weeks | 13473528 | 1197 days ago | IN | 0 ETH | 0.00769359 | ||||
Claim Weeks | 13464622 | 1198 days ago | IN | 0 ETH | 0.01883809 | ||||
Claim Weeks | 13456896 | 1200 days ago | IN | 0 ETH | 0.01514028 | ||||
Claim Weeks | 13443083 | 1202 days ago | IN | 0 ETH | 0.01611136 | ||||
Claim Weeks | 13439866 | 1202 days ago | IN | 0 ETH | 0.01694864 | ||||
Claim Weeks | 13435376 | 1203 days ago | IN | 0 ETH | 0.01306098 | ||||
Claim Weeks | 13429567 | 1204 days ago | IN | 0 ETH | 0.01406482 | ||||
Claim Weeks | 13426635 | 1204 days ago | IN | 0 ETH | 0.01493598 | ||||
Claim Weeks | 13426240 | 1204 days ago | IN | 0 ETH | 0.01840293 | ||||
Claim Weeks | 13419207 | 1206 days ago | IN | 0 ETH | 0.02135779 | ||||
Claim Weeks | 13415852 | 1206 days ago | IN | 0 ETH | 0.01460839 | ||||
Claim Weeks | 13414861 | 1206 days ago | IN | 0 ETH | 0.01112574 |
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; /* * @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; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; import "../GSN/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. */ 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 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; /** * @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; /** * @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); }
{ "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
[{"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
60806040523480156200001157600080fd5b5060405162001c5d38038062001c5d83398181016040528101906200003791906200014e565b6000620000496200012f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001c8565b600033905090565b6000815190506200014881620001ae565b92915050565b6000602082840312156200016157600080fd5b6000620001718482850162000137565b91505092915050565b600062000187826200018e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001b9816200017a565b8114620001c557600080fd5b50565b611a8580620001d86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018b578063c804c39a146101a9578063dd8c9c9d146101c5578063eb0d07f5146101f5578063f2fde38b14610225578063fc0c546a14610241576100b4565b8063120aa877146100b957806339436b00146100e957806347fb23c1146101195780634cd488ab1461014957806358b4e4b414610165578063715018a614610181575b600080fd5b6100d360048036038101906100ce9190611224565b61025f565b6040516100e09190611711565b60405180910390f35b61010360048036038101906100fe91906112af565b61028e565b60405161011091906116ef565b60405180910390f35b610133600480360381019061012e9190611108565b61033a565b60405161014091906116cd565b60405180910390f35b610163600480360381019061015e9190611260565b610437565b005b61017f600480360381019061017a9190611157565b610632565b005b61018961075e565b005b6101936108b3565b6040516101a09190611652565b60405180910390f35b6101c360048036038101906101be91906110b4565b6108dc565b005b6101df60048036038101906101da91906111fb565b610a65565b6040516101ec919061172c565b60405180910390f35b61020f600480360381019061020a9190611157565b610a7d565b60405161021c9190611711565b60405180910390f35b61023f600480360381019061023a919061108b565b610ad4565b005b610249610c98565b6040516102569190611747565b60405180910390f35b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60606000838360010103905060608167ffffffffffffffff811180156102b357600080fd5b506040519080825280602002602001820160405280156102e25781602001602082028036833780820191505090505b50905060008090505b8281101561032e576002600082880181526020019081526020016000205482828151811061031557fe5b60200260200101818152505080806001019150506102eb565b50809250505092915050565b60606000838360010103905060608167ffffffffffffffff8111801561035f57600080fd5b5060405190808252806020026020018201604052801561038e5781602001602082028036833780820191505090505b50905060008090505b8281101561042a5760036000828801815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1682828151811061040b57fe5b6020026020010190151590811515815250508080600101915050610397565b5080925050509392505050565b61043f610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c4906117a2565b60405180910390fd5b6000801b600260008581526020019081526020016000205414610525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051c906117e2565b60405180910390fd5b816002600085815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161059c9392919061166d565b602060405180830381600087803b1580156105b657600080fd5b505af11580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906111d2565b61062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906117c2565b60405180910390fd5b505050565b6003600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561069a57600080fd5b6106a684848484610a7d565b6106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611782565b60405180910390fd5b60016003600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506107588483610cc6565b50505050565b610766610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb906117a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008090506108e9610ea7565b60008090505b8351811015610a545783818151811061090457fe5b60200260200101519150600360008360000151815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561097a57600080fd5b61099285836000015184602001518560400151610a7d565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c890611782565b60405180910390fd5b8160200151830192506001600360008460000151815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506108ef565b50610a5f8483610cc6565b50505050565b60026020528060005260406000206000915090505481565b6000808584604051602001610a939291906115fa565b604051602081830303815290604052805190602001209050610ac983600260008881526020019081526020016000205483610dfb565b915050949350505050565b610adc610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b61906117a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190611762565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6000811115610df7577fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8282604051610d009291906116a4565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d659291906116a4565b602060405180830381600087803b158015610d7f57600080fd5b505af1158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db791906111d2565b610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906117c2565b60405180910390fd5b5b5050565b60008082905060008090505b8551811015610e99576000868281518110610e1e57fe5b60200260200101519050808311610e5f578281604051602001610e42929190611626565b604051602081830303815290604052805190602001209250610e8b565b8083604051602001610e72929190611626565b6040516020818303038152906040528051906020012092505b508080600101915050610e07565b508381149150509392505050565b60405180606001604052806000815260200160008152602001606081525090565b600081359050610ed7816119f3565b92915050565b600082601f830112610eee57600080fd5b8135610f01610efc8261182f565b611802565b91508181835260208401935060208101905083856020840282011115610f2657600080fd5b60005b83811015610f565781610f3c8882610fe9565b845260208401935060208301925050600181019050610f29565b5050505092915050565b600082601f830112610f7157600080fd5b8135610f84610f7f82611857565b611802565b9150818183526020840193506020810190508360005b83811015610fca5781358601610fb08882610ffe565b845260208401935060208301925050600181019050610f9a565b5050505092915050565b600081519050610fe381611a0a565b92915050565b600081359050610ff881611a21565b92915050565b60006060828403121561101057600080fd5b61101a6060611802565b9050600061102a84828501611076565b600083015250602061103e84828501611076565b602083015250604082013567ffffffffffffffff81111561105e57600080fd5b61106a84828501610edd565b60408301525092915050565b60008135905061108581611a38565b92915050565b60006020828403121561109d57600080fd5b60006110ab84828501610ec8565b91505092915050565b600080604083850312156110c757600080fd5b60006110d585828601610ec8565b925050602083013567ffffffffffffffff8111156110f257600080fd5b6110fe85828601610f60565b9150509250929050565b60008060006060848603121561111d57600080fd5b600061112b86828701610ec8565b935050602061113c86828701611076565b925050604061114d86828701611076565b9150509250925092565b6000806000806080858703121561116d57600080fd5b600061117b87828801610ec8565b945050602061118c87828801611076565b935050604061119d87828801611076565b925050606085013567ffffffffffffffff8111156111ba57600080fd5b6111c687828801610edd565b91505092959194509250565b6000602082840312156111e457600080fd5b60006111f284828501610fd4565b91505092915050565b60006020828403121561120d57600080fd5b600061121b84828501611076565b91505092915050565b6000806040838503121561123757600080fd5b600061124585828601611076565b925050602061125685828601610ec8565b9150509250929050565b60008060006060848603121561127557600080fd5b600061128386828701611076565b935050602061129486828701610fe9565b92505060406112a586828701611076565b9150509250925092565b600080604083850312156112c257600080fd5b60006112d085828601611076565b92505060206112e185828601611076565b9150509250929050565b60006112f7838361140c565b60208301905092915050565b600061130f838361142a565b60208301905092915050565b61132481611954565b82525050565b61133381611902565b82525050565b61134a61134582611902565b6119ae565b82525050565b600061135b8261189f565b61136581856118cf565b93506113708361187f565b8060005b838110156113a157815161138888826112eb565b9750611393836118b5565b925050600181019050611374565b5085935050505092915050565b60006113b9826118aa565b6113c381856118e0565b93506113ce8361188f565b8060005b838110156113ff5781516113e68882611303565b97506113f1836118c2565b9250506001810190506113d2565b5085935050505092915050565b61141581611914565b82525050565b61142481611914565b82525050565b61143381611920565b82525050565b61144281611920565b82525050565b61145961145482611920565b6119c0565b82525050565b61146881611966565b82525050565b600061147b6026836118f1565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114e16016836118f1565b91507f496e636f7272656374206d65726b6c652070726f6f66000000000000000000006000830152602082019050919050565b60006115216020836118f1565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006115616013836118f1565b91507f4552525f5452414e534645525f4641494c4544000000000000000000000000006000830152602082019050919050565b60006115a1601a836118f1565b91507f63616e6e6f742072657772697465206d65726b6c6520726f6f740000000000006000830152602082019050919050565b6115dd8161194a565b82525050565b6115f46115ef8261194a565b6119dc565b82525050565b60006116068285611339565b60148201915061161682846115e3565b6020820191508190509392505050565b60006116328285611448565b6020820191506116428284611448565b6020820191508190509392505050565b6000602082019050611667600083018461132a565b92915050565b6000606082019050611682600083018661131b565b61168f602083018561132a565b61169c60408301846115d4565b949350505050565b60006040820190506116b9600083018561132a565b6116c660208301846115d4565b9392505050565b600060208201905081810360008301526116e78184611350565b905092915050565b6000602082019050818103600083015261170981846113ae565b905092915050565b6000602082019050611726600083018461141b565b92915050565b60006020820190506117416000830184611439565b92915050565b600060208201905061175c600083018461145f565b92915050565b6000602082019050818103600083015261177b8161146e565b9050919050565b6000602082019050818103600083015261179b816114d4565b9050919050565b600060208201905081810360008301526117bb81611514565b9050919050565b600060208201905081810360008301526117db81611554565b9050919050565b600060208201905081810360008301526117fb81611594565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561182557600080fd5b8060405250919050565b600067ffffffffffffffff82111561184657600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561186e57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061190d8261192a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061195f8261198a565b9050919050565b600061197182611978565b9050919050565b60006119838261192a565b9050919050565b60006119958261199c565b9050919050565b60006119a78261192a565b9050919050565b60006119b9826119ca565b9050919050565b6000819050919050565b60006119d5826119e6565b9050919050565b6000819050919050565b60008160601b9050919050565b6119fc81611902565b8114611a0757600080fd5b50565b611a1381611914565b8114611a1e57600080fd5b50565b611a2a81611920565b8114611a3557600080fd5b50565b611a418161194a565b8114611a4c57600080fd5b5056fea264697066735822122042f16dcca6f2852b9c453cbdbf6fcc1b03b25d1790947e5abc0602643160761364736f6c6343000608003300000000000000000000000030cf203b48edaa42c3b4918e955fed26cd012a3f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461018b578063c804c39a146101a9578063dd8c9c9d146101c5578063eb0d07f5146101f5578063f2fde38b14610225578063fc0c546a14610241576100b4565b8063120aa877146100b957806339436b00146100e957806347fb23c1146101195780634cd488ab1461014957806358b4e4b414610165578063715018a614610181575b600080fd5b6100d360048036038101906100ce9190611224565b61025f565b6040516100e09190611711565b60405180910390f35b61010360048036038101906100fe91906112af565b61028e565b60405161011091906116ef565b60405180910390f35b610133600480360381019061012e9190611108565b61033a565b60405161014091906116cd565b60405180910390f35b610163600480360381019061015e9190611260565b610437565b005b61017f600480360381019061017a9190611157565b610632565b005b61018961075e565b005b6101936108b3565b6040516101a09190611652565b60405180910390f35b6101c360048036038101906101be91906110b4565b6108dc565b005b6101df60048036038101906101da91906111fb565b610a65565b6040516101ec919061172c565b60405180910390f35b61020f600480360381019061020a9190611157565b610a7d565b60405161021c9190611711565b60405180910390f35b61023f600480360381019061023a919061108b565b610ad4565b005b610249610c98565b6040516102569190611747565b60405180910390f35b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60606000838360010103905060608167ffffffffffffffff811180156102b357600080fd5b506040519080825280602002602001820160405280156102e25781602001602082028036833780820191505090505b50905060008090505b8281101561032e576002600082880181526020019081526020016000205482828151811061031557fe5b60200260200101818152505080806001019150506102eb565b50809250505092915050565b60606000838360010103905060608167ffffffffffffffff8111801561035f57600080fd5b5060405190808252806020026020018201604052801561038e5781602001602082028036833780820191505090505b50905060008090505b8281101561042a5760036000828801815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1682828151811061040b57fe5b6020026020010190151590811515815250508080600101915050610397565b5080925050509392505050565b61043f610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c4906117a2565b60405180910390fd5b6000801b600260008581526020019081526020016000205414610525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051c906117e2565b60405180910390fd5b816002600085815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161059c9392919061166d565b602060405180830381600087803b1580156105b657600080fd5b505af11580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906111d2565b61062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906117c2565b60405180910390fd5b505050565b6003600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561069a57600080fd5b6106a684848484610a7d565b6106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611782565b60405180910390fd5b60016003600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506107588483610cc6565b50505050565b610766610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb906117a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008090506108e9610ea7565b60008090505b8351811015610a545783818151811061090457fe5b60200260200101519150600360008360000151815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561097a57600080fd5b61099285836000015184602001518560400151610a7d565b6109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c890611782565b60405180910390fd5b8160200151830192506001600360008460000151815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506108ef565b50610a5f8483610cc6565b50505050565b60026020528060005260406000206000915090505481565b6000808584604051602001610a939291906115fa565b604051602081830303815290604052805190602001209050610ac983600260008881526020019081526020016000205483610dfb565b915050949350505050565b610adc610cbe565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b61906117a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190611762565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6000811115610df7577fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8282604051610d009291906116a4565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d659291906116a4565b602060405180830381600087803b158015610d7f57600080fd5b505af1158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db791906111d2565b610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded906117c2565b60405180910390fd5b5b5050565b60008082905060008090505b8551811015610e99576000868281518110610e1e57fe5b60200260200101519050808311610e5f578281604051602001610e42929190611626565b604051602081830303815290604052805190602001209250610e8b565b8083604051602001610e72929190611626565b6040516020818303038152906040528051906020012092505b508080600101915050610e07565b508381149150509392505050565b60405180606001604052806000815260200160008152602001606081525090565b600081359050610ed7816119f3565b92915050565b600082601f830112610eee57600080fd5b8135610f01610efc8261182f565b611802565b91508181835260208401935060208101905083856020840282011115610f2657600080fd5b60005b83811015610f565781610f3c8882610fe9565b845260208401935060208301925050600181019050610f29565b5050505092915050565b600082601f830112610f7157600080fd5b8135610f84610f7f82611857565b611802565b9150818183526020840193506020810190508360005b83811015610fca5781358601610fb08882610ffe565b845260208401935060208301925050600181019050610f9a565b5050505092915050565b600081519050610fe381611a0a565b92915050565b600081359050610ff881611a21565b92915050565b60006060828403121561101057600080fd5b61101a6060611802565b9050600061102a84828501611076565b600083015250602061103e84828501611076565b602083015250604082013567ffffffffffffffff81111561105e57600080fd5b61106a84828501610edd565b60408301525092915050565b60008135905061108581611a38565b92915050565b60006020828403121561109d57600080fd5b60006110ab84828501610ec8565b91505092915050565b600080604083850312156110c757600080fd5b60006110d585828601610ec8565b925050602083013567ffffffffffffffff8111156110f257600080fd5b6110fe85828601610f60565b9150509250929050565b60008060006060848603121561111d57600080fd5b600061112b86828701610ec8565b935050602061113c86828701611076565b925050604061114d86828701611076565b9150509250925092565b6000806000806080858703121561116d57600080fd5b600061117b87828801610ec8565b945050602061118c87828801611076565b935050604061119d87828801611076565b925050606085013567ffffffffffffffff8111156111ba57600080fd5b6111c687828801610edd565b91505092959194509250565b6000602082840312156111e457600080fd5b60006111f284828501610fd4565b91505092915050565b60006020828403121561120d57600080fd5b600061121b84828501611076565b91505092915050565b6000806040838503121561123757600080fd5b600061124585828601611076565b925050602061125685828601610ec8565b9150509250929050565b60008060006060848603121561127557600080fd5b600061128386828701611076565b935050602061129486828701610fe9565b92505060406112a586828701611076565b9150509250925092565b600080604083850312156112c257600080fd5b60006112d085828601611076565b92505060206112e185828601611076565b9150509250929050565b60006112f7838361140c565b60208301905092915050565b600061130f838361142a565b60208301905092915050565b61132481611954565b82525050565b61133381611902565b82525050565b61134a61134582611902565b6119ae565b82525050565b600061135b8261189f565b61136581856118cf565b93506113708361187f565b8060005b838110156113a157815161138888826112eb565b9750611393836118b5565b925050600181019050611374565b5085935050505092915050565b60006113b9826118aa565b6113c381856118e0565b93506113ce8361188f565b8060005b838110156113ff5781516113e68882611303565b97506113f1836118c2565b9250506001810190506113d2565b5085935050505092915050565b61141581611914565b82525050565b61142481611914565b82525050565b61143381611920565b82525050565b61144281611920565b82525050565b61145961145482611920565b6119c0565b82525050565b61146881611966565b82525050565b600061147b6026836118f1565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114e16016836118f1565b91507f496e636f7272656374206d65726b6c652070726f6f66000000000000000000006000830152602082019050919050565b60006115216020836118f1565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006115616013836118f1565b91507f4552525f5452414e534645525f4641494c4544000000000000000000000000006000830152602082019050919050565b60006115a1601a836118f1565b91507f63616e6e6f742072657772697465206d65726b6c6520726f6f740000000000006000830152602082019050919050565b6115dd8161194a565b82525050565b6115f46115ef8261194a565b6119dc565b82525050565b60006116068285611339565b60148201915061161682846115e3565b6020820191508190509392505050565b60006116328285611448565b6020820191506116428284611448565b6020820191508190509392505050565b6000602082019050611667600083018461132a565b92915050565b6000606082019050611682600083018661131b565b61168f602083018561132a565b61169c60408301846115d4565b949350505050565b60006040820190506116b9600083018561132a565b6116c660208301846115d4565b9392505050565b600060208201905081810360008301526116e78184611350565b905092915050565b6000602082019050818103600083015261170981846113ae565b905092915050565b6000602082019050611726600083018461141b565b92915050565b60006020820190506117416000830184611439565b92915050565b600060208201905061175c600083018461145f565b92915050565b6000602082019050818103600083015261177b8161146e565b9050919050565b6000602082019050818103600083015261179b816114d4565b9050919050565b600060208201905081810360008301526117bb81611514565b9050919050565b600060208201905081810360008301526117db81611554565b9050919050565b600060208201905081810360008301526117fb81611594565b9050919050565b6000604051905081810181811067ffffffffffffffff8211171561182557600080fd5b8060405250919050565b600067ffffffffffffffff82111561184657600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561186e57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061190d8261192a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061195f8261198a565b9050919050565b600061197182611978565b9050919050565b60006119838261192a565b9050919050565b60006119958261199c565b9050919050565b60006119a78261192a565b9050919050565b60006119b9826119ca565b9050919050565b6000819050919050565b60006119d5826119e6565b9050919050565b6000819050919050565b60008160601b9050919050565b6119fc81611902565b8114611a0757600080fd5b50565b611a1381611914565b8114611a1e57600080fd5b50565b611a2a81611920565b8114611a3557600080fd5b50565b611a418161194a565b8114611a4c57600080fd5b5056fea264697066735822122042f16dcca6f2852b9c453cbdbf6fcc1b03b25d1790947e5abc0602643160761364736f6c63430006080033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000030cf203b48edaa42c3b4918e955fed26cd012a3f
-----Decoded View---------------
Arg [0] : _token (address): 0x30cF203b48edaA42c3B4918E955fED26Cd012A3F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000030cf203b48edaa42c3b4918e955fed26cd012a3f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1.09 | 4,214.9387 | $4,585.85 |
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.