More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 826 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Claim | 15066571 | 731 days ago | IN | 0 ETH | 0.00038963 | ||||
Claim | 14867313 | 765 days ago | IN | 0 ETH | 0.00100424 | ||||
Claim | 14863275 | 766 days ago | IN | 0 ETH | 0.00025922 | ||||
Claim | 14785529 | 779 days ago | IN | 0 ETH | 0.00068246 | ||||
Claim | 14749384 | 784 days ago | IN | 0 ETH | 0.00429929 | ||||
Claim | 14742961 | 785 days ago | IN | 0 ETH | 0.00225527 | ||||
Claim | 14739868 | 786 days ago | IN | 0 ETH | 0.00102415 | ||||
Claim | 14739868 | 786 days ago | IN | 0 ETH | 0.00180257 | ||||
Claim | 14736308 | 787 days ago | IN | 0 ETH | 0.00251958 | ||||
Claim | 14732950 | 787 days ago | IN | 0 ETH | 0.00125511 | ||||
Claim | 14731438 | 787 days ago | IN | 0 ETH | 0.00213829 | ||||
Claim | 14729215 | 788 days ago | IN | 0 ETH | 0.00116834 | ||||
Claim | 14728065 | 788 days ago | IN | 0 ETH | 0.00201781 | ||||
Claim | 14720695 | 789 days ago | IN | 0 ETH | 0.0021627 | ||||
Claim | 14720323 | 789 days ago | IN | 0 ETH | 0.00234155 | ||||
Claim | 14719649 | 789 days ago | IN | 0 ETH | 0.00452253 | ||||
Claim | 14718765 | 789 days ago | IN | 0 ETH | 0.00479298 | ||||
Claim | 14716362 | 790 days ago | IN | 0 ETH | 0.00172527 | ||||
Claim | 14714471 | 790 days ago | IN | 0 ETH | 0.00192134 | ||||
Claim | 14710716 | 791 days ago | IN | 0 ETH | 0.00216141 | ||||
Claim | 14710302 | 791 days ago | IN | 0 ETH | 0.00160692 | ||||
Claim | 14709001 | 791 days ago | IN | 0 ETH | 0.00298463 | ||||
Claim | 14706607 | 791 days ago | IN | 0 ETH | 0.00318171 | ||||
Claim | 14706596 | 791 days ago | IN | 0 ETH | 0.00282398 | ||||
Claim | 14705961 | 791 days ago | IN | 0 ETH | 0.0053055 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
14867313 | 765 days ago | 0.00057626 ETH | ||||
14749384 | 784 days ago | 0.01338562 ETH | ||||
14742961 | 785 days ago | 0.02333033 ETH | ||||
14739868 | 786 days ago | 0.00388838 ETH | ||||
14736308 | 787 days ago | 0.01338562 ETH | ||||
14732950 | 787 days ago | 0.03706657 ETH | ||||
14731438 | 787 days ago | 0.03954106 ETH | ||||
14729215 | 788 days ago | 0.00388838 ETH | ||||
14728065 | 788 days ago | 0.03036902 ETH | ||||
14720695 | 789 days ago | 0.01338562 ETH | ||||
14720323 | 789 days ago | 0.01338562 ETH | ||||
14719649 | 789 days ago | 0.04015687 ETH | ||||
14718765 | 789 days ago | 0.02677124 ETH | ||||
14716362 | 790 days ago | 0.05354249 ETH | ||||
14714471 | 790 days ago | 0.01338562 ETH | ||||
14710716 | 791 days ago | 0.01338562 ETH | ||||
14710302 | 791 days ago | 0.01166516 ETH | ||||
14709001 | 791 days ago | 0.02677124 ETH | ||||
14706607 | 791 days ago | 0.02354187 ETH | ||||
14706596 | 791 days ago | 0.02721872 ETH | ||||
14705961 | 791 days ago | 0.20005845 ETH | ||||
14700359 | 792 days ago | 0.14724186 ETH | ||||
14698993 | 792 days ago | 0.00731645 ETH | ||||
14697206 | 793 days ago | 0.01573644 ETH | ||||
14696316 | 793 days ago | 0.01944194 ETH |
Loading...
Loading
Contract Name:
GapesClaiming
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-07 */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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() { _transferOwnership(_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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/utils/Strings.sol // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } // File: @openzeppelin/contracts/utils/cryptography/ECDSA.sol // OpenZeppelin Contracts v4.4.1 (utils/cryptography/ECDSA.sol) pragma solidity ^0.8.0; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { enum RecoverError { NoError, InvalidSignature, InvalidSignatureLength, InvalidSignatureS, InvalidSignatureV } function _throwError(RecoverError error) private pure { if (error == RecoverError.NoError) { return; // no error: do nothing } else if (error == RecoverError.InvalidSignature) { revert("ECDSA: invalid signature"); } else if (error == RecoverError.InvalidSignatureLength) { revert("ECDSA: invalid signature length"); } else if (error == RecoverError.InvalidSignatureS) { revert("ECDSA: invalid signature 's' value"); } else if (error == RecoverError.InvalidSignatureV) { revert("ECDSA: invalid signature 'v' value"); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature` or error string. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. * * Documentation for signature generation: * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] * * _Available since v4.3._ */ function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { // Check the signature length // - case 65: r,s,v signature (standard) // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return tryRecover(hash, v, r, s); } else if (signature.length == 64) { bytes32 r; bytes32 vs; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) vs := mload(add(signature, 0x40)) } return tryRecover(hash, r, vs); } else { return (address(0), RecoverError.InvalidSignatureLength); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, signature); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. * * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] * * _Available since v4.3._ */ function tryRecover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address, RecoverError) { bytes32 s; uint8 v; assembly { s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) v := add(shr(255, vs), 27) } return tryRecover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. * * _Available since v4.2._ */ function recover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, r, vs); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `v`, * `r` and `s` signature fields separately. * * _Available since v4.3._ */ function tryRecover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address, RecoverError) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return (address(0), RecoverError.InvalidSignatureS); } if (v != 27 && v != 28) { return (address(0), RecoverError.InvalidSignatureV); } // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); if (signer == address(0)) { return (address(0), RecoverError.InvalidSignature); } return (signer, RecoverError.NoError); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, v, r, s); _throwError(error); return recovered; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } /** * @dev Returns an Ethereum Signed Message, created from `s`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s)); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } } // File: In Progress/Gambling Apes Claiming.sol pragma solidity ^0.8.7; interface GAInterface { function balanceOf(address) external view returns(uint); } contract GapesClaiming is Ownable { using ECDSA for bytes32; string constant ERROR_INVALID_DATA = "Invalid data provided"; string constant ERROR_INVALID_DATA_LENGTH = "Invalid data length"; string constant ERROR_INVALID_SIGNATURE = "Invalid signature provided"; string constant ERROR_NOT_HOLDER = "You must own atleast one Gambling Ape to claim!"; modifier directOnly { require(msg.sender == tx.origin, "Only direct transactions are allowed"); _; } modifier notLocked { require(!_locked, "You may not claim right now!"); _; } constructor(address signer_, GAInterface GA_) { _signer = signer_; // 0x288367E1E520A02e5E5d70906a7b0c6f5fD9EF90 _GA = GA_; // 0x90cA8a3eb2574F937F514749ce619fDCCa187d45 _b1 = 0x0408CFcde646bbADa944BF4312e6a2EF61ce8e7b; _b2 = 0xA61932ae8589664E9aaB312886775a617775E940; } GAInterface immutable _GA; address immutable _b1; address immutable _b2; bool _locked; address _signer; mapping(address => uint) public addressToLastMonthClaimed; modifier verifyInputData(address to, uint[] calldata months, uint amount, bytes calldata signature) { require(months.length > 0, ERROR_INVALID_DATA_LENGTH); for(uint i = 1; i < months.length; i++) require(months[i - 1] < months[i], ERROR_INVALID_DATA); /* Verify order smallest > largest **no duplicates**, gaps allowed eg:[1,2,4,7,9] */ require(months[0] > addressToLastMonthClaimed[to], ERROR_INVALID_DATA); /* Smallest value will be first, must be larger than the previously saved largest value */ addressToLastMonthClaimed[to] = months[months.length - 1]; /* Largest value will be last, save it to be used in the above check in the future */ require(keccak256(abi.encode(to, months, amount)).toEthSignedMessageHash().recover(signature) == _signer, ERROR_INVALID_SIGNATURE); /* Verify the backend signature */ require(_GA.balanceOf(to) > 0, ERROR_NOT_HOLDER); /* Users must own at least 1 Gambling Ape to be able to claim */ _; } // External/Public function claim(uint[] calldata months, uint amount, bytes calldata signature) external directOnly notLocked verifyInputData(msg.sender, months, amount, signature) { payable(msg.sender).transfer(amount); } // Owner Only function flipLock() external { require(msg.sender == owner() || msg.sender == _b1 || msg.sender == _b2); _locked = !_locked; } function changeSigner(address signer_) external onlyOwner { _signer = signer_; } function withdraw(uint amount) external onlyOwner { payable(msg.sender).transfer(amount); } receive() payable external {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"signer_","type":"address"},{"internalType":"contract GAInterface","name":"GA_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"","type":"address"}],"name":"addressToLastMonthClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer_","type":"address"}],"name":"changeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"months","type":"uint256[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipLock","outputs":[],"stateMutability":"nonpayable","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e060405234801561001057600080fd5b506040516110b53803806110b583398101604081905261002f91610106565b610038336100b6565b600180546001600160a01b0319166001600160a01b03939093169290921790915560601b6001600160601b0319166080527f0408cfcde646bbada944bf4312e6a2ef61ce8e7b00000000000000000000000060a0527fa61932ae8589664e9aab312886775a617775e94000000000000000000000000060c052610158565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806040838503121561011957600080fd5b825161012481610140565b602084015190925061013581610140565b809150509250929050565b6001600160a01b038116811461015557600080fd5b50565b60805160601c60a05160601c60c05160601c610f25610190600039600061025501526000610222015260006106d90152610f256000f3fe60806040526004361061007f5760003560e01c80638da5cb5b1161004e5780638da5cb5b14610117578063aad2b7231461013f578063c7f086491461015f578063f2fde38b1461017f57600080fd5b80632e1a7d4d1461008b57806349562aea146100ad5780636718161e146100ed578063715018a61461010257600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610d39565b61019f565b005b3480156100b957600080fd5b506100da6100c8366004610c61565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156100f957600080fd5b506100ab610203565b34801561010e57600080fd5b506100ab6102a1565b34801561012357600080fd5b506000546040516001600160a01b0390911681526020016100e4565b34801561014b57600080fd5b506100ab61015a366004610c61565b6102d7565b34801561016b57600080fd5b506100ab61017a366004610c91565b610323565b34801561018b57600080fd5b506100ab61019a366004610c61565b6107c9565b6000546001600160a01b031633146101d25760405162461bcd60e51b81526004016101c990610e17565b60405180910390fd5b604051339082156108fc029083906000818181858888f193505050501580156101ff573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314806102445750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b806102775750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61028057600080fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146102cb5760405162461bcd60e51b81526004016101c990610e17565b6102d56000610864565b565b6000546001600160a01b031633146103015760405162461bcd60e51b81526004016101c990610e17565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b33321461037e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920646972656374207472616e73616374696f6e732061726520616c6c6044820152631bddd95960e21b60648201526084016101c9565b600054600160a01b900460ff16156103d85760405162461bcd60e51b815260206004820152601c60248201527f596f75206d6179206e6f7420636c61696d207269676874206e6f77210000000060448201526064016101c9565b3385858585856000858590501160405180604001604052806013815260200172092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b8152509061042f5760405162461bcd60e51b81526004016101c99190610dc2565b5060015b848110156104d95785858281811061044d5761044d610eaa565b9050602002013586866001846104639190610e4c565b81811061047257610472610eaa565b905060200201351060405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906104c65760405162461bcd60e51b81526004016101c99190610dc2565b50806104d181610e63565b915050610433565b506001600160a01b03861660009081526002602052604081205490869086908161050557610505610eaa565b905060200201351160405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906105595760405162461bcd60e51b81526004016101c99190610dc2565b508484610567600182610e4c565b81811061057657610576610eaa565b6001600160a01b03808a1660009081526002602090815260409182902093810295909501359092556001548251601f87018690048602810186019093528583521692610658925085908590819084018382808284376000920191909152505060405161065292506105f291508b908b908b908b90602001610d6b565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b906108b4565b6001600160a01b0316146040518060400160405280601a81526020017f496e76616c6964207369676e61747572652070726f7669646564000000000000815250906106b65760405162461bcd60e51b81526004016101c99190610dc2565b506040516370a0823160e01b81526001600160a01b0387811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a082319060240160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190610d52565b116040518060600160405280602f8152602001610ec1602f91399061078d5760405162461bcd60e51b81526004016101c99190610dc2565b5060405133908a156108fc02908b906000818181858888f193505050501580156107bb573d6000803e3d6000fd5b505050505050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016101c990610e17565b6001600160a01b0381166108585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c9565b61086181610864565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006108c385856108d8565b915091506108d081610948565b509392505050565b60008082516041141561090f5760208301516040840151606085015160001a61090387828585610b03565b94509450505050610941565b825160401415610939576020830151604084015161092e868383610bf0565b935093505050610941565b506000905060025b9250929050565b600081600481111561095c5761095c610e94565b14156109655750565b600181600481111561097957610979610e94565b14156109c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016101c9565b60028160048111156109db576109db610e94565b1415610a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016101c9565b6003816004811115610a3d57610a3d610e94565b1415610a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016101c9565b6004816004811115610aaa57610aaa610e94565b14156108615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016101c9565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b3a5750600090506003610be7565b8460ff16601b14158015610b5257508460ff16601c14155b15610b635750600090506004610be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610be057600060019250925050610be7565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610c1187828885610b03565b935093505050935093915050565b60008083601f840112610c3157600080fd5b50813567ffffffffffffffff811115610c4957600080fd5b60208301915083602082850101111561094157600080fd5b600060208284031215610c7357600080fd5b81356001600160a01b0381168114610c8a57600080fd5b9392505050565b600080600080600060608688031215610ca957600080fd5b853567ffffffffffffffff80821115610cc157600080fd5b818801915088601f830112610cd557600080fd5b813581811115610ce457600080fd5b8960208260051b8501011115610cf957600080fd5b60209283019750955090870135935060408701359080821115610d1b57600080fd5b50610d2888828901610c1f565b969995985093965092949392505050565b600060208284031215610d4b57600080fd5b5035919050565b600060208284031215610d6457600080fd5b5051919050565b6001600160a01b0385168152606060208201819052810183905260006001600160fb1b03841115610d9b57600080fd5b8360051b808660808501376000908301608001908152604090920192909252949350505050565b600060208083528351808285015260005b81811015610def57858101830151858201604001528201610dd3565b81811115610e01576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610e5e57610e5e610e7e565b500390565b6000600019821415610e7757610e77610e7e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe596f75206d757374206f776e2061746c65617374206f6e652047616d626c696e672041706520746f20636c61696d21a264697066735822122045fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a29264736f6c63430008070033000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef9000000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45
Deployed Bytecode
0x60806040526004361061007f5760003560e01c80638da5cb5b1161004e5780638da5cb5b14610117578063aad2b7231461013f578063c7f086491461015f578063f2fde38b1461017f57600080fd5b80632e1a7d4d1461008b57806349562aea146100ad5780636718161e146100ed578063715018a61461010257600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610d39565b61019f565b005b3480156100b957600080fd5b506100da6100c8366004610c61565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156100f957600080fd5b506100ab610203565b34801561010e57600080fd5b506100ab6102a1565b34801561012357600080fd5b506000546040516001600160a01b0390911681526020016100e4565b34801561014b57600080fd5b506100ab61015a366004610c61565b6102d7565b34801561016b57600080fd5b506100ab61017a366004610c91565b610323565b34801561018b57600080fd5b506100ab61019a366004610c61565b6107c9565b6000546001600160a01b031633146101d25760405162461bcd60e51b81526004016101c990610e17565b60405180910390fd5b604051339082156108fc029083906000818181858888f193505050501580156101ff573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314806102445750336001600160a01b037f0000000000000000000000000408cfcde646bbada944bf4312e6a2ef61ce8e7b16145b806102775750336001600160a01b037f000000000000000000000000a61932ae8589664e9aab312886775a617775e94016145b61028057600080fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146102cb5760405162461bcd60e51b81526004016101c990610e17565b6102d56000610864565b565b6000546001600160a01b031633146103015760405162461bcd60e51b81526004016101c990610e17565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b33321461037e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920646972656374207472616e73616374696f6e732061726520616c6c6044820152631bddd95960e21b60648201526084016101c9565b600054600160a01b900460ff16156103d85760405162461bcd60e51b815260206004820152601c60248201527f596f75206d6179206e6f7420636c61696d207269676874206e6f77210000000060448201526064016101c9565b3385858585856000858590501160405180604001604052806013815260200172092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b8152509061042f5760405162461bcd60e51b81526004016101c99190610dc2565b5060015b848110156104d95785858281811061044d5761044d610eaa565b9050602002013586866001846104639190610e4c565b81811061047257610472610eaa565b905060200201351060405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906104c65760405162461bcd60e51b81526004016101c99190610dc2565b50806104d181610e63565b915050610433565b506001600160a01b03861660009081526002602052604081205490869086908161050557610505610eaa565b905060200201351160405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906105595760405162461bcd60e51b81526004016101c99190610dc2565b508484610567600182610e4c565b81811061057657610576610eaa565b6001600160a01b03808a1660009081526002602090815260409182902093810295909501359092556001548251601f87018690048602810186019093528583521692610658925085908590819084018382808284376000920191909152505060405161065292506105f291508b908b908b908b90602001610d6b565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b906108b4565b6001600160a01b0316146040518060400160405280601a81526020017f496e76616c6964207369676e61747572652070726f7669646564000000000000815250906106b65760405162461bcd60e51b81526004016101c99190610dc2565b506040516370a0823160e01b81526001600160a01b0387811660048301526000917f00000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45909116906370a082319060240160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190610d52565b116040518060600160405280602f8152602001610ec1602f91399061078d5760405162461bcd60e51b81526004016101c99190610dc2565b5060405133908a156108fc02908b906000818181858888f193505050501580156107bb573d6000803e3d6000fd5b505050505050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016101c990610e17565b6001600160a01b0381166108585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c9565b61086181610864565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006108c385856108d8565b915091506108d081610948565b509392505050565b60008082516041141561090f5760208301516040840151606085015160001a61090387828585610b03565b94509450505050610941565b825160401415610939576020830151604084015161092e868383610bf0565b935093505050610941565b506000905060025b9250929050565b600081600481111561095c5761095c610e94565b14156109655750565b600181600481111561097957610979610e94565b14156109c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016101c9565b60028160048111156109db576109db610e94565b1415610a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016101c9565b6003816004811115610a3d57610a3d610e94565b1415610a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016101c9565b6004816004811115610aaa57610aaa610e94565b14156108615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016101c9565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b3a5750600090506003610be7565b8460ff16601b14158015610b5257508460ff16601c14155b15610b635750600090506004610be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610be057600060019250925050610be7565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610c1187828885610b03565b935093505050935093915050565b60008083601f840112610c3157600080fd5b50813567ffffffffffffffff811115610c4957600080fd5b60208301915083602082850101111561094157600080fd5b600060208284031215610c7357600080fd5b81356001600160a01b0381168114610c8a57600080fd5b9392505050565b600080600080600060608688031215610ca957600080fd5b853567ffffffffffffffff80821115610cc157600080fd5b818801915088601f830112610cd557600080fd5b813581811115610ce457600080fd5b8960208260051b8501011115610cf957600080fd5b60209283019750955090870135935060408701359080821115610d1b57600080fd5b50610d2888828901610c1f565b969995985093965092949392505050565b600060208284031215610d4b57600080fd5b5035919050565b600060208284031215610d6457600080fd5b5051919050565b6001600160a01b0385168152606060208201819052810183905260006001600160fb1b03841115610d9b57600080fd5b8360051b808660808501376000908301608001908152604090920192909252949350505050565b600060208083528351808285015260005b81811015610def57858101830151858201604001528201610dd3565b81811115610e01576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610e5e57610e5e610e7e565b500390565b6000600019821415610e7757610e77610e7e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe596f75206d757374206f776e2061746c65617374206f6e652047616d626c696e672041706520746f20636c61696d21a264697066735822122045fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a29264736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef9000000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45
-----Decoded View---------------
Arg [0] : signer_ (address): 0x288367E1E520A02e5E5d70906a7b0c6f5fD9EF90
Arg [1] : GA_ (address): 0x90cA8a3eb2574F937F514749ce619fDCCa187d45
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef90
Arg [1] : 00000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45
Deployed Bytecode Sourcemap
15291:2857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18003:105;;;;;;;;;;-1:-1:-1;18003:105:0;;;;;:::i;:::-;;:::i;:::-;;16370:57;;;;;;;;;;-1:-1:-1;16370:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7466:25:1;;;7454:2;7439:18;16370:57:0;;;;;;;;17744:149;;;;;;;;;;;;;:::i;2606:103::-;;;;;;;;;;;;;:::i;1955:87::-;;;;;;;;;;-1:-1:-1;2001:7:0;2028:6;1955:87;;-1:-1:-1;;;;;2028:6:0;;;2543:51:1;;2531:2;2516:18;1955:87:0;2397:203:1;17901:94:0;;;;;;;;;;-1:-1:-1;17901:94:0;;;;;:::i;:::-;;:::i;17497:218::-;;;;;;;;;;-1:-1:-1;17497:218:0;;;;;:::i;:::-;;:::i;2864:201::-;;;;;;;;;;-1:-1:-1;2864:201:0;;;;;:::i;:::-;;:::i;18003:105::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;;;;;;;;;18064:36:::1;::::0;18072:10:::1;::::0;18064:36;::::1;;;::::0;18093:6;;18064:36:::1;::::0;;;18093:6;18072:10;18064:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18003:105:::0;:::o;17744:149::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;17792:10;:21;;:42;;-1:-1:-1;17817:10:0;-1:-1:-1;;;;;17831:3:0;17817:17;;17792:42;:63;;;-1:-1:-1;17838:10:0;-1:-1:-1;;;;;17852:3:0;17838:17;;17792:63;17784:72;;;;;;17878:7;;;-1:-1:-1;;;;17867:18:0;;-1:-1:-1;;;17878:7:0;;;;;;17877:8;17867:18;;;;;;17744:149::o;2606:103::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;2671:30:::1;2698:1;2671:18;:30::i;:::-;2606:103::o:0;17901:94::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;17970:7:::1;:17:::0;;-1:-1:-1;;;;;;17970:17:0::1;-1:-1:-1::0;;;;;17970:17:0;;;::::1;::::0;;;::::1;::::0;;17901:94::o;17497:218::-;15712:10;15726:9;15712:23;15704:72;;;;-1:-1:-1;;;15704:72:0;;5593:2:1;15704:72:0;;;5575:21:1;5632:2;5612:18;;;5605:30;5671:34;5651:18;;;5644:62;-1:-1:-1;;;5722:18:1;;;5715:34;5766:19;;15704:72:0;5391:400:1;15704:72:0;15843:7:::1;::::0;-1:-1:-1;;;15843:7:0;::::1;;;15842:8;15834:49;;;::::0;-1:-1:-1;;;15834:49:0;;5998:2:1;15834:49:0::1;::::0;::::1;5980:21:1::0;6037:2;6017:18;;;6010:30;6076;6056:18;;;6049:58;6124:18;;15834:49:0::1;5796:352:1::0;15834:49:0::1;17621:10:::2;17633:6;;17641;17649:9;;16571:1;16555:6;;:13;;:17;16574:25;;;;;;;;;;;;;-1:-1:-1::0;;;16574:25:0::2;;::::0;16547:53:::2;;;;;-1:-1:-1::0;;;16547:53:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;16624:1:0::2;16611:107;16627:17:::0;;::::2;16611:107;;;16688:6;;16695:1;16688:9;;;;;;;:::i;:::-;;;;;;;16672:6;;16683:1;16679;:5;;;;:::i;:::-;16672:13;;;;;;;:::i;:::-;;;;;;;:25;16699:18;;;;;;;;;;;;;-1:-1:-1::0;;;16699:18:0::2;;::::0;16664:54:::2;;;;;-1:-1:-1::0;;;16664:54:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;16646:3:0;::::2;::::0;::::2;:::i;:::-;;;;16611:107;;;-1:-1:-1::0;;;;;;16844:29:0;::::2;;::::0;;;:25:::2;:29;::::0;;;;;;16832:6;;;;:9;::::2;;;;:::i;:::-;;;;;;;:41;16875:18;;;;;;;;;;;;;-1:-1:-1::0;;;16875:18:0::2;;::::0;16824:70:::2;;;;;-1:-1:-1::0;;;16824:70:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17028:6:0;;17035:17:::2;17051:1;17028:6:::0;17035:17:::2;:::i;:::-;17028:25;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16996:29:0;;::::2;;::::0;;;:25:::2;17028;16996:29:::0;;;;;;;;17028:25;;::::2;::::0;;;::::2;;16996:57:::0;;;17249:7:::2;::::0;17160:85;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;17249:7:::2;::::0;17160:85:::2;::::0;-1:-1:-1;17235:9:0;;;;;;17160:85;::::2;17235:9:::0;;;;17160:85;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;17170:30:0::2;::::0;17160:66:::2;::::0;-1:-1:-1;17170:30:0::2;::::0;-1:-1:-1;17181:2:0;;17185:6;;;;17193;;17170:30:::2;;;:::i;:::-;;::::0;;-1:-1:-1;;17170:30:0;;::::2;::::0;;;;;;17160:41;;17170:30:::2;17160:41:::0;;::::2;::::0;2254:66:1;14000:58:0;;;2242:79:1;2337:12;;;;2330:28;;;;14000:58:0;;;;;;;;;;2374:12:1;;;;14000:58:0;;;13990:69;;;;;;13798:269;17160:66:::2;:74:::0;::::2;:85::i;:::-;-1:-1:-1::0;;;;;17160:96:0::2;;17258:23;;;;;;;;;;;;;;;;::::0;17152:130:::2;;;;;-1:-1:-1::0;;;17152:130:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17338:17:0::2;::::0;-1:-1:-1;;;17338:17:0;;-1:-1:-1;;;;;2561:32:1;;;17338:17:0::2;::::0;::::2;2543:51:1::0;17358:1:0::2;::::0;17338:3:::2;:13:::0;;::::2;::::0;::::2;::::0;2516:18:1;;17338:17:0::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:21;17361:16;;;;;;;;;;;;;;;;;17330:48;;;;;-1:-1:-1::0;;;17330:48:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17671:36:0::3;::::0;17679:10:::3;::::0;17671:36;::::3;;;::::0;17700:6;;17671:36:::3;::::0;;;17700:6;17679:10;17671:36;::::3;;;;;;;;;;;;;::::0;::::3;;;;;;15894:1:::2;;;;;;17497:218:::0;;;;;:::o;2864:201::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2953:22:0;::::1;2945:73;;;::::0;-1:-1:-1;;;2945:73:0;;5186:2:1;2945:73:0::1;::::0;::::1;5168:21:1::0;5225:2;5205:18;;;5198:30;5264:34;5244:18;;;5237:62;-1:-1:-1;;;5315:18:1;;;5308:36;5361:19;;2945:73:0::1;4984:402:1::0;2945:73:0::1;3029:28;3048:8;3029:18;:28::i;:::-;2864:201:::0;:::o;3225:191::-;3299:16;3318:6;;-1:-1:-1;;;;;3335:17:0;;;-1:-1:-1;;;;;;3335:17:0;;;;;;3368:40;;3318:6;;;;;;;3368:40;;3299:16;3368:40;3288:128;3225:191;:::o;9949:231::-;10027:7;10048:17;10067:18;10089:27;10100:4;10106:9;10089:10;:27::i;:::-;10047:69;;;;10127:18;10139:5;10127:11;:18::i;:::-;-1:-1:-1;10163:9:0;9949:231;-1:-1:-1;;;9949:231:0:o;7839:1308::-;7920:7;7929:12;8154:9;:16;8174:2;8154:22;8150:990;;;8450:4;8435:20;;8429:27;8500:4;8485:20;;8479:27;8558:4;8543:20;;8537:27;8193:9;8529:36;8601:25;8612:4;8529:36;8429:27;8479;8601:10;:25::i;:::-;8594:32;;;;;;;;;8150:990;8648:9;:16;8668:2;8648:22;8644:496;;;8923:4;8908:20;;8902:27;8974:4;8959:20;;8953:27;9016:23;9027:4;8902:27;8953;9016:10;:23::i;:::-;9009:30;;;;;;;;8644:496;-1:-1:-1;9088:1:0;;-1:-1:-1;9092:35:0;8644:496;7839:1308;;;;;:::o;6110:643::-;6188:20;6179:5;:29;;;;;;;;:::i;:::-;;6175:571;;;6110:643;:::o;6175:571::-;6286:29;6277:5;:38;;;;;;;;:::i;:::-;;6273:473;;;6332:34;;-1:-1:-1;;;6332:34:0;;4473:2:1;6332:34:0;;;4455:21:1;4512:2;4492:18;;;4485:30;4551:26;4531:18;;;4524:54;4595:18;;6332:34:0;4271:348:1;6273:473:0;6397:35;6388:5;:44;;;;;;;;:::i;:::-;;6384:362;;;6449:41;;-1:-1:-1;;;6449:41:0;;4826:2:1;6449:41:0;;;4808:21:1;4865:2;4845:18;;;4838:30;4904:33;4884:18;;;4877:61;4955:18;;6449:41:0;4624:355:1;6384:362:0;6521:30;6512:5;:39;;;;;;;;:::i;:::-;;6508:238;;;6568:44;;-1:-1:-1;;;6568:44:0;;6355:2:1;6568:44:0;;;6337:21:1;6394:2;6374:18;;;6367:30;6433:34;6413:18;;;6406:62;-1:-1:-1;;;6484:18:1;;;6477:32;6526:19;;6568:44:0;6153:398:1;6508:238:0;6643:30;6634:5;:39;;;;;;;;:::i;:::-;;6630:116;;;6690:44;;-1:-1:-1;;;6690:44:0;;6758:2:1;6690:44:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:32;6929:19;;6690:44:0;6556:398:1;11448:1632:0;11579:7;;12513:66;12500:79;;12496:163;;;-1:-1:-1;12612:1:0;;-1:-1:-1;12616:30:0;12596:51;;12496:163;12673:1;:7;;12678:2;12673:7;;:18;;;;;12684:1;:7;;12689:2;12684:7;;12673:18;12669:102;;;-1:-1:-1;12724:1:0;;-1:-1:-1;12728:30:0;12708:51;;12669:102;12885:24;;;12868:14;12885:24;;;;;;;;;3493:25:1;;;3566:4;3554:17;;3534:18;;;3527:45;;;;3588:18;;;3581:34;;;3631:18;;;3624:34;;;12885:24:0;;3465:19:1;;12885:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12885:24:0;;-1:-1:-1;;12885:24:0;;;-1:-1:-1;;;;;;;12924:20:0;;12920:103;;12977:1;12981:29;12961:50;;;;;;;12920:103;13043:6;-1:-1:-1;13051:20:0;;-1:-1:-1;11448:1632:0;;;;;;;;:::o;10443:391::-;10557:7;;-1:-1:-1;;;;;10658:75:0;;10760:3;10756:12;;;10770:2;10752:21;10801:25;10812:4;10752:21;10821:1;10658:75;10801:10;:25::i;:::-;10794:32;;;;;;10443:391;;;;;;:::o;14:347:1:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:1;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;366:286;425:6;478:2;466:9;457:7;453:23;449:32;446:52;;;494:1;491;484:12;446:52;520:23;;-1:-1:-1;;;;;572:31:1;;562:42;;552:70;;618:1;615;608:12;552:70;641:5;366:286;-1:-1:-1;;;366:286:1:o;657:976::-;772:6;780;788;796;804;857:2;845:9;836:7;832:23;828:32;825:52;;;873:1;870;863:12;825:52;913:9;900:23;942:18;983:2;975:6;972:14;969:34;;;999:1;996;989:12;969:34;1037:6;1026:9;1022:22;1012:32;;1082:7;1075:4;1071:2;1067:13;1063:27;1053:55;;1104:1;1101;1094:12;1053:55;1144:2;1131:16;1170:2;1162:6;1159:14;1156:34;;;1186:1;1183;1176:12;1156:34;1241:7;1234:4;1224:6;1221:1;1217:14;1213:2;1209:23;1205:34;1202:47;1199:67;;;1262:1;1259;1252:12;1199:67;1293:4;1285:13;;;;-1:-1:-1;1317:6:1;-1:-1:-1;1355:20:1;;;1342:34;;-1:-1:-1;1429:2:1;1414:18;;1401:32;;1445:16;;;1442:36;;;1474:1;1471;1464:12;1442:36;;1513:60;1565:7;1554:8;1543:9;1539:24;1513:60;:::i;:::-;657:976;;;;-1:-1:-1;657:976:1;;-1:-1:-1;1592:8:1;;1487:86;657:976;-1:-1:-1;;;657:976:1:o;1638:180::-;1697:6;1750:2;1738:9;1729:7;1725:23;1721:32;1718:52;;;1766:1;1763;1756:12;1718:52;-1:-1:-1;1789:23:1;;1638:180;-1:-1:-1;1638:180:1:o;1823:184::-;1893:6;1946:2;1934:9;1925:7;1921:23;1917:32;1914:52;;;1962:1;1959;1952:12;1914:52;-1:-1:-1;1985:16:1;;1823:184;-1:-1:-1;1823:184:1:o;2605:656::-;-1:-1:-1;;;;;2850:32:1;;2832:51;;2919:2;2914;2899:18;;2892:30;;;2938:18;;2931:34;;;-1:-1:-1;;;;;;2977:31:1;;2974:51;;;3021:1;3018;3011:12;2974:51;3055:6;3052:1;3048:14;3113:6;3105;3099:3;3088:9;3084:19;3071:49;3191:1;3143:22;;;3167:3;3139:32;3180:13;;;3243:2;3228:18;;;3221:34;;;;3139:32;2605:656;-1:-1:-1;;;;2605:656:1:o;3669:597::-;3781:4;3810:2;3839;3828:9;3821:21;3871:6;3865:13;3914:6;3909:2;3898:9;3894:18;3887:34;3939:1;3949:140;3963:6;3960:1;3957:13;3949:140;;;4058:14;;;4054:23;;4048:30;4024:17;;;4043:2;4020:26;4013:66;3978:10;;3949:140;;;4107:6;4104:1;4101:13;4098:91;;;4177:1;4172:2;4163:6;4152:9;4148:22;4144:31;4137:42;4098:91;-1:-1:-1;4250:2:1;4229:15;-1:-1:-1;;4225:29:1;4210:45;;;;4257:2;4206:54;;3669:597;-1:-1:-1;;;3669:597:1:o;6959:356::-;7161:2;7143:21;;;7180:18;;;7173:30;7239:34;7234:2;7219:18;;7212:62;7306:2;7291:18;;6959:356::o;7502:125::-;7542:4;7570:1;7567;7564:8;7561:34;;;7575:18;;:::i;:::-;-1:-1:-1;7612:9:1;;7502:125::o;7632:135::-;7671:3;-1:-1:-1;;7692:17:1;;7689:43;;;7712:18;;:::i;:::-;-1:-1:-1;7759:1:1;7748:13;;7632:135::o;7772:127::-;7833:10;7828:3;7824:20;7821:1;7814:31;7864:4;7861:1;7854:15;7888:4;7885:1;7878:15;7904:127;7965:10;7960:3;7956:20;7953:1;7946:31;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8036:127;8097:10;8092:3;8088:20;8085:1;8078:31;8128:4;8125:1;8118:15;8152:4;8149:1;8142:15
Swarm Source
ipfs://45fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a292
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,314.52 | 0.00146871 | $4.87 |
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.