Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,016 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Tokens | 14962944 | 967 days ago | IN | 0 ETH | 0.0025412 | ||||
Withdraw Tokens | 14962900 | 967 days ago | IN | 0 ETH | 0.00224054 | ||||
Claim Voucher | 14934260 | 972 days ago | IN | 0 ETH | 0.00895046 | ||||
Claim Voucher | 14851697 | 985 days ago | IN | 0 ETH | 0.00512644 | ||||
Claim Voucher | 14829237 | 989 days ago | IN | 0 ETH | 0.00116653 | ||||
Claim Voucher | 14804643 | 993 days ago | IN | 0 ETH | 0.00225346 | ||||
Claim Voucher | 14782774 | 997 days ago | IN | 0 ETH | 0.00221097 | ||||
Claim Voucher | 14768956 | 999 days ago | IN | 0 ETH | 0.00647361 | ||||
Claim Voucher | 14752818 | 1001 days ago | IN | 0 ETH | 0.0048878 | ||||
Claim Voucher | 14746565 | 1002 days ago | IN | 0 ETH | 0.00532211 | ||||
Claim Voucher | 14746478 | 1002 days ago | IN | 0 ETH | 0.0032498 | ||||
Claim Voucher | 14746466 | 1002 days ago | IN | 0 ETH | 0.00568031 | ||||
Claim Voucher | 14746423 | 1002 days ago | IN | 0 ETH | 0.0072963 | ||||
Claim Voucher | 14746128 | 1002 days ago | IN | 0 ETH | 0.0059719 | ||||
Claim Voucher | 14742131 | 1003 days ago | IN | 0 ETH | 0.00690122 | ||||
Claim Voucher | 14741134 | 1003 days ago | IN | 0 ETH | 0.0024979 | ||||
Claim Voucher | 14740882 | 1003 days ago | IN | 0 ETH | 0.00316457 | ||||
Claim Voucher | 14711794 | 1008 days ago | IN | 0 ETH | 0.0061088 | ||||
Claim Voucher | 14709954 | 1008 days ago | IN | 0 ETH | 0.00323968 | ||||
Claim Voucher | 14703802 | 1009 days ago | IN | 0 ETH | 0.00621604 | ||||
Claim Voucher | 14703783 | 1009 days ago | IN | 0 ETH | 0.00632029 | ||||
Claim Voucher | 14695228 | 1011 days ago | IN | 0 ETH | 0.00540068 | ||||
Claim Voucher | 14684961 | 1012 days ago | IN | 0 ETH | 0.00283045 | ||||
Claim Voucher | 14650710 | 1018 days ago | IN | 0 ETH | 0.00291296 | ||||
Claim Voucher | 14646615 | 1018 days ago | IN | 0 ETH | 0.00178148 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BicoClaimNew
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-02 */ // Sources flattened with hardhat v2.7.0 https://hardhat.org // File @openzeppelin/contracts/token/ERC20/[email protected] // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File @openzeppelin/contracts/utils/[email protected] 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/security/[email protected] pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File @openzeppelin/contracts/security/[email protected] pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File @openzeppelin/contracts/access/[email protected] 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() { _setOwner(_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 { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File contracts/utils/AccessProtected.sol pragma solidity ^0.8.0; abstract contract AccessProtected is Ownable { mapping(address => bool) private _admins; // user address => admin? mapping event AdminAccess(address _admin, bool _isEnabled); /** * @notice Set Admin Access * * @param admin - Address of Minter * @param isEnabled - Enable/Disable Admin Access */ function setAdmin(address admin, bool isEnabled) external onlyOwner { _admins[admin] = isEnabled; emit AdminAccess(admin, isEnabled); } /** * @notice Check Admin Access * * @param admin - Address of Admin * @return whether minter has access */ function isAdmin(address admin) public view returns (bool) { return _admins[admin]; } /** * Throws if called by any account other than the Admin. */ modifier onlyAdmin() { require(_admins[_msgSender()] || _msgSender() == owner(), "Caller does not have Admin Access"); _; } } // File @openzeppelin/contracts/utils/cryptography/[email protected] 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 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 contracts/ethereum/token/BicoClaimNew.sol pragma solidity ^0.8.0; //import "./BiconomyToken.sol"; //TODO //make upgradeable again //clean up //add pausability modifier and reentrancy guard //remove constrctor and setup proper initializer //check sample audit reports and review security for all contracts //trasnfer limits, max claim limit etc contract BicoClaimNew is AccessProtected, Pausable, ReentrancyGuard { using ECDSA for bytes32; struct Voucher { address recipient; uint256 amount; bytes signature; } uint256 public bicoHardLimit = 10000*1e18; bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(bytes("EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)")); bytes32 public constant VOUCHER_TYPEHASH = keccak256(bytes("Voucher(address recipient,uint256 amount)")); bytes32 internal domainSeparator; address public tokenAddress; mapping(address => uint256) public totalTokensClaimedByUser; // total $BICO tokens claimed per address event BicoClaimed(address indexed _user,uint256 _claimedBico); constructor(address _tokenAddress, string memory name, string memory version) { require(_tokenAddress != address(0),"Token address can not be zero"); tokenAddress = _tokenAddress; domainSeparator = keccak256(abi.encode( EIP712_DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes(version)), address(this), bytes32(getChainID()) )); } // returns total number of bico tokens claimed so far from user function getTokensClaimedByUser(address user) public view returns (uint256) { return totalTokensClaimedByUser[user]; } /** * claim voucher bico tokens * * returns number of bico claimed */ function claimVoucher(Voucher calldata _voucher) external whenNotPaused nonReentrant returns (uint256) { address recipient = _msgSender(); address signer = _verify(_voucher); uint256 claimedAmount = totalTokensClaimedByUser[recipient]; // total claimed bico require(recipient == _voucher.recipient, "TokenClaim: msg.sender does not match recipient"); require(_voucher.amount > claimedAmount, "TokenClaim: No $BICO left to claim"); require(signer != address(0), "TokenClaim: Unable to recover signer from signature"); require(isAdmin(signer) || signer == owner(), "TokenClaim: Invalid Voucher, not signed by admin or owner"); require(recipient == _voucher.recipient, "TokenClaim: This Voucher does not belong to msg.sender"); uint256 claimable = (_voucher.amount - claimedAmount)*1e18; require(claimable < bicoHardLimit,"voucher claim amount exceeds the hard-cap"); // set bico to latest amount on voucher totalTokensClaimedByUser[recipient] = _voucher.amount; // transfer tokens to user IERC20(tokenAddress).transfer(recipient, claimable); emit BicoClaimed(recipient,claimable); return claimable; } function _verify(Voucher memory voucher) internal view returns (address) { bytes32 digest = keccak256(abi.encodePacked( "\x19\x01", getDomainSeparator(), keccak256(abi.encode(VOUCHER_TYPEHASH, voucher.recipient, voucher.amount )))); return digest.recover(voucher.signature); } /** * Withdraw ERC20 Tokens from the Token Claim contract address * */ function withdrawTokens(address wallet, uint256 amount) external onlyOwner nonReentrant { require(amount > 0, "Nothing to withdraw"); IERC20(tokenAddress).transfer(wallet, amount); } function getDomainSeparator() internal view returns(bytes32) { return domainSeparator; } /** set proxy registry address */ function setHardCap(uint256 _hardLimit) external onlyOwner { require(_hardLimit > 0,"Must be greater than zero"); bicoHardLimit = _hardLimit; } function getChainID() public view returns (uint256 id) { assembly { id := chainid() } } function pause() external onlyAdmin { _pause(); } function unpause() external onlyAdmin { _unpause(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_admin","type":"address"},{"indexed":false,"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"AdminAccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_claimedBico","type":"uint256"}],"name":"BicoClaimed","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"VOUCHER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bicoHardLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct BicoClaimNew.Voucher","name":"_voucher","type":"tuple"}],"name":"claimVoucher","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainID","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTokensClaimedByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_hardLimit","type":"uint256"}],"name":"setHardCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalTokensClaimedByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405269021e19e0c9bab24000006004553480156200001f57600080fd5b50604051620017de380380620017de83398101604081905262000042916200026f565b6200004d3362000168565b6002805460ff1916905560016003556001600160a01b038316620000b75760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e20616464726573732063616e206e6f74206265207a65726f000000604482015260640160405180910390fd5b600680546001600160a01b0319166001600160a01b0385161790556040805160808101909152604f8082526200178f602083013980519060200120828051906020012082805190602001203062000113620001b860201b60201c565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c001604051602081830303815290604052805190602001206005819055505050506200030b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b4690565b600082601f830112620001cd578081fd5b81516001600160401b0380821115620001ea57620001ea620002f5565b604051601f8301601f19908116603f01168101908282118183101715620002155762000215620002f5565b8160405283815260209250868385880101111562000231578485fd5b8491505b8382101562000254578582018301518183018401529082019062000235565b838211156200026557848385830101525b9695505050505050565b60008060006060848603121562000284578283fd5b83516001600160a01b03811681146200029b578384fd5b60208501519093506001600160401b0380821115620002b8578384fd5b620002c687838801620001bc565b93506040860151915080821115620002dc578283fd5b50620002eb86828701620001bc565b9150509250925092565b634e487b7160e01b600052604160045260246000fd5b611474806200031b6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638456cb59116100a25780639d76ea58116100715780639d76ea5814610219578063b51fb26f1461022c578063d18d944b1461024c578063f2fde38b1461025f578063f792698f1461027257600080fd5b80638456cb59146101d157806389944462146101d95780638da5cb5b146101ec57806394739e871461021157600080fd5b80634b0bddd2116100de5780634b0bddd2146101a5578063564b81ef146101b85780635c975abb146101be578063715018a6146101c957600080fd5b806306b091f91461011057806324d7806c1461012557806326e6ca01146101665780633f4ba83a1461019d575b600080fd5b61012361011e366004611191565b61027b565b005b610151610133366004611141565b6001600160a01b031660009081526001602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61018f610174366004611141565b6001600160a01b031660009081526007602052604090205490565b60405190815260200161015d565b6101236103d9565b6101236101b336600461115b565b610427565b4661018f565b60025460ff16610151565b6101236104b4565b6101236104e8565b61018f6101e73660046111d6565b610534565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015d565b61018f610a0c565b6006546101f9906001600160a01b031681565b61018f61023a366004611141565b60076020526000908152604090205481565b61012361025a36600461120e565b610a2f565b61012361026d366004611141565b610aae565b61018f60045481565b6000546001600160a01b031633146102ae5760405162461bcd60e51b81526004016102a590611226565b60405180910390fd5b600260035414156103015760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102a5565b6002600355806103495760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b60448201526064016102a5565b60065460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf91906111ba565b5050600160035550565b3360009081526001602052604090205460ff168061040157506000546001600160a01b031633145b61041d5760405162461bcd60e51b81526004016102a59061125b565b610425610b49565b565b6000546001600160a01b031633146104515760405162461bcd60e51b81526004016102a590611226565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527ff04f30912421c79af756009e02447ad3a12fd6b288cf38192db1d0131302e555910160405180910390a15050565b6000546001600160a01b031633146104de5760405162461bcd60e51b81526004016102a590611226565b6104256000610bdc565b3360009081526001602052604090205460ff168061051057506000546001600160a01b031633145b61052c5760405162461bcd60e51b81526004016102a59061125b565b610425610c2c565b600061054260025460ff1690565b156105825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016102a5565b600260035414156105d55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102a5565b60026003553360006105ee6105e98561132c565b610ca7565b6001600160a01b03831660009081526007602090815260409091205491925061061990860186611141565b6001600160a01b0316836001600160a01b0316146106915760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e436c61696d3a206d73672e73656e64657220646f6573206e6f742060448201526e1b585d18da081c9958da5c1a595b9d608a1b60648201526084016102a5565b808560200135116106ef5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e436c61696d3a204e6f20244249434f206c65667420746f20636c61604482015261696d60f01b60648201526084016102a5565b6001600160a01b0382166107615760405162461bcd60e51b815260206004820152603360248201527f546f6b656e436c61696d3a20556e61626c6520746f207265636f766572207369604482015272676e65722066726f6d207369676e617475726560681b60648201526084016102a5565b6001600160a01b03821660009081526001602052604090205460ff168061079557506000546001600160a01b038381169116145b6108075760405162461bcd60e51b815260206004820152603960248201527f546f6b656e436c61696d3a20496e76616c696420566f75636865722c206e6f7460448201527f207369676e65642062792061646d696e206f72206f776e65720000000000000060648201526084016102a5565b6108146020860186611141565b6001600160a01b0316836001600160a01b0316146108935760405162461bcd60e51b815260206004820152603660248201527f546f6b656e436c61696d3a205468697320566f756368657220646f6573206e6f6044820152753a103132b637b733903a379036b9b39739b2b73232b960511b60648201526084016102a5565b60006108a3826020880135611315565b6108b590670de0b6b3a76400006112f6565b9050600454811061091a5760405162461bcd60e51b815260206004820152602960248201527f766f756368657220636c61696d20616d6f756e74206578636565647320746865604482015268020686172642d6361760bc1b60648201526084016102a5565b6001600160a01b03848116600081815260076020908152604091829020908a01359055600654905163a9059cbb60e01b81526004810192909252602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba91906111ba565b50836001600160a01b03167f33e158bf7ecb6830d2750999eb64439f2a81f28736c8d2c3e8adbf4252f8600d826040516109f691815260200190565b60405180910390a2600160035595945050505050565b604051806060016040528060298152602001611416602991398051906020012081565b6000546001600160a01b03163314610a595760405162461bcd60e51b81526004016102a590611226565b60008111610aa95760405162461bcd60e51b815260206004820152601960248201527f4d7573742062652067726561746572207468616e207a65726f0000000000000060448201526064016102a5565b600455565b6000546001600160a01b03163314610ad85760405162461bcd60e51b81526004016102a590611226565b6001600160a01b038116610b3d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a5565b610b4681610bdc565b50565b60025460ff16610b925760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016102a5565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60025460ff1615610c725760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016102a5565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bbf3390565b600080610cb360055490565b604051806060016040528060298152602001611416602991398051602091820120855186830151604051610d0194019283526001600160a01b03919091166020830152604082015260600190565b60405160208183030381529060405280519060200120604051602001610d3e92919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050610d6d836040015182610d7490919063ffffffff16565b9392505050565b6000806000610d838585610d98565b91509150610d9081610e08565b509392505050565b600080825160411415610dcf5760208301516040840151606085015160001a610dc387828585611009565b94509450505050610e01565b825160401415610df95760208301516040840151610dee8683836110f6565b935093505050610e01565b506000905060025b9250929050565b6000816004811115610e2a57634e487b7160e01b600052602160045260246000fd5b1415610e335750565b6001816004811115610e5557634e487b7160e01b600052602160045260246000fd5b1415610ea35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102a5565b6002816004811115610ec557634e487b7160e01b600052602160045260246000fd5b1415610f135760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102a5565b6003816004811115610f3557634e487b7160e01b600052602160045260246000fd5b1415610f8e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102a5565b6004816004811115610fb057634e487b7160e01b600052602160045260246000fd5b1415610b465760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102a5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561104057506000905060036110ed565b8460ff16601b1415801561105857508460ff16601c14155b1561106957506000905060046110ed565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110bd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110e6576000600192509250506110ed565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161111787828885611009565b935093505050935093915050565b80356001600160a01b038116811461113c57600080fd5b919050565b600060208284031215611152578081fd5b610d6d82611125565b6000806040838503121561116d578081fd5b61117683611125565b9150602083013561118681611407565b809150509250929050565b600080604083850312156111a3578182fd5b6111ac83611125565b946020939093013593505050565b6000602082840312156111cb578081fd5b8151610d6d81611407565b6000602082840312156111e7578081fd5b813567ffffffffffffffff8111156111fd578182fd5b820160608185031215610d6d578182fd5b60006020828403121561121f578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f43616c6c657220646f6573206e6f7420686176652041646d696e2041636365736040820152607360f81b606082015260800190565b6040516060810167ffffffffffffffff811182821017156112bf576112bf6113f1565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112ee576112ee6113f1565b604052919050565b6000816000190483118215151615611310576113106113db565b500290565b600082821015611327576113276113db565b500390565b60006060823603121561133d578081fd5b61134561129c565b61134e83611125565b815260208084013581830152604084013567ffffffffffffffff80821115611374578485fd5b9085019036601f830112611386578485fd5b813581811115611398576113986113f1565b6113aa601f8201601f191685016112c5565b915080825236848285010111156113bf578586fd5b8084840185840137810190920193909352604082015292915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610b4657600080fdfe566f7563686572286164647265737320726563697069656e742c75696e7432353620616d6f756e7429a264697066735822122005834ab90f65090090d2add5e96dacba406dc30f98a653c36070172587ac2e6b64736f6c63430008040033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429000000000000000000000000f17e65822b568b3903685a7c9f496cf7656cc6c2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000184269636f6e6f6d79436f6d6d756e69747952657761726473000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638456cb59116100a25780639d76ea58116100715780639d76ea5814610219578063b51fb26f1461022c578063d18d944b1461024c578063f2fde38b1461025f578063f792698f1461027257600080fd5b80638456cb59146101d157806389944462146101d95780638da5cb5b146101ec57806394739e871461021157600080fd5b80634b0bddd2116100de5780634b0bddd2146101a5578063564b81ef146101b85780635c975abb146101be578063715018a6146101c957600080fd5b806306b091f91461011057806324d7806c1461012557806326e6ca01146101665780633f4ba83a1461019d575b600080fd5b61012361011e366004611191565b61027b565b005b610151610133366004611141565b6001600160a01b031660009081526001602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61018f610174366004611141565b6001600160a01b031660009081526007602052604090205490565b60405190815260200161015d565b6101236103d9565b6101236101b336600461115b565b610427565b4661018f565b60025460ff16610151565b6101236104b4565b6101236104e8565b61018f6101e73660046111d6565b610534565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015d565b61018f610a0c565b6006546101f9906001600160a01b031681565b61018f61023a366004611141565b60076020526000908152604090205481565b61012361025a36600461120e565b610a2f565b61012361026d366004611141565b610aae565b61018f60045481565b6000546001600160a01b031633146102ae5760405162461bcd60e51b81526004016102a590611226565b60405180910390fd5b600260035414156103015760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102a5565b6002600355806103495760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b60448201526064016102a5565b60065460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf91906111ba565b5050600160035550565b3360009081526001602052604090205460ff168061040157506000546001600160a01b031633145b61041d5760405162461bcd60e51b81526004016102a59061125b565b610425610b49565b565b6000546001600160a01b031633146104515760405162461bcd60e51b81526004016102a590611226565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527ff04f30912421c79af756009e02447ad3a12fd6b288cf38192db1d0131302e555910160405180910390a15050565b6000546001600160a01b031633146104de5760405162461bcd60e51b81526004016102a590611226565b6104256000610bdc565b3360009081526001602052604090205460ff168061051057506000546001600160a01b031633145b61052c5760405162461bcd60e51b81526004016102a59061125b565b610425610c2c565b600061054260025460ff1690565b156105825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016102a5565b600260035414156105d55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102a5565b60026003553360006105ee6105e98561132c565b610ca7565b6001600160a01b03831660009081526007602090815260409091205491925061061990860186611141565b6001600160a01b0316836001600160a01b0316146106915760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e436c61696d3a206d73672e73656e64657220646f6573206e6f742060448201526e1b585d18da081c9958da5c1a595b9d608a1b60648201526084016102a5565b808560200135116106ef5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e436c61696d3a204e6f20244249434f206c65667420746f20636c61604482015261696d60f01b60648201526084016102a5565b6001600160a01b0382166107615760405162461bcd60e51b815260206004820152603360248201527f546f6b656e436c61696d3a20556e61626c6520746f207265636f766572207369604482015272676e65722066726f6d207369676e617475726560681b60648201526084016102a5565b6001600160a01b03821660009081526001602052604090205460ff168061079557506000546001600160a01b038381169116145b6108075760405162461bcd60e51b815260206004820152603960248201527f546f6b656e436c61696d3a20496e76616c696420566f75636865722c206e6f7460448201527f207369676e65642062792061646d696e206f72206f776e65720000000000000060648201526084016102a5565b6108146020860186611141565b6001600160a01b0316836001600160a01b0316146108935760405162461bcd60e51b815260206004820152603660248201527f546f6b656e436c61696d3a205468697320566f756368657220646f6573206e6f6044820152753a103132b637b733903a379036b9b39739b2b73232b960511b60648201526084016102a5565b60006108a3826020880135611315565b6108b590670de0b6b3a76400006112f6565b9050600454811061091a5760405162461bcd60e51b815260206004820152602960248201527f766f756368657220636c61696d20616d6f756e74206578636565647320746865604482015268020686172642d6361760bc1b60648201526084016102a5565b6001600160a01b03848116600081815260076020908152604091829020908a01359055600654905163a9059cbb60e01b81526004810192909252602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba91906111ba565b50836001600160a01b03167f33e158bf7ecb6830d2750999eb64439f2a81f28736c8d2c3e8adbf4252f8600d826040516109f691815260200190565b60405180910390a2600160035595945050505050565b604051806060016040528060298152602001611416602991398051906020012081565b6000546001600160a01b03163314610a595760405162461bcd60e51b81526004016102a590611226565b60008111610aa95760405162461bcd60e51b815260206004820152601960248201527f4d7573742062652067726561746572207468616e207a65726f0000000000000060448201526064016102a5565b600455565b6000546001600160a01b03163314610ad85760405162461bcd60e51b81526004016102a590611226565b6001600160a01b038116610b3d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a5565b610b4681610bdc565b50565b60025460ff16610b925760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016102a5565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60025460ff1615610c725760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016102a5565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610bbf3390565b600080610cb360055490565b604051806060016040528060298152602001611416602991398051602091820120855186830151604051610d0194019283526001600160a01b03919091166020830152604082015260600190565b60405160208183030381529060405280519060200120604051602001610d3e92919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050610d6d836040015182610d7490919063ffffffff16565b9392505050565b6000806000610d838585610d98565b91509150610d9081610e08565b509392505050565b600080825160411415610dcf5760208301516040840151606085015160001a610dc387828585611009565b94509450505050610e01565b825160401415610df95760208301516040840151610dee8683836110f6565b935093505050610e01565b506000905060025b9250929050565b6000816004811115610e2a57634e487b7160e01b600052602160045260246000fd5b1415610e335750565b6001816004811115610e5557634e487b7160e01b600052602160045260246000fd5b1415610ea35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102a5565b6002816004811115610ec557634e487b7160e01b600052602160045260246000fd5b1415610f135760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102a5565b6003816004811115610f3557634e487b7160e01b600052602160045260246000fd5b1415610f8e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102a5565b6004816004811115610fb057634e487b7160e01b600052602160045260246000fd5b1415610b465760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102a5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561104057506000905060036110ed565b8460ff16601b1415801561105857508460ff16601c14155b1561106957506000905060046110ed565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110bd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110e6576000600192509250506110ed565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161111787828885611009565b935093505050935093915050565b80356001600160a01b038116811461113c57600080fd5b919050565b600060208284031215611152578081fd5b610d6d82611125565b6000806040838503121561116d578081fd5b61117683611125565b9150602083013561118681611407565b809150509250929050565b600080604083850312156111a3578182fd5b6111ac83611125565b946020939093013593505050565b6000602082840312156111cb578081fd5b8151610d6d81611407565b6000602082840312156111e7578081fd5b813567ffffffffffffffff8111156111fd578182fd5b820160608185031215610d6d578182fd5b60006020828403121561121f578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f43616c6c657220646f6573206e6f7420686176652041646d696e2041636365736040820152607360f81b606082015260800190565b6040516060810167ffffffffffffffff811182821017156112bf576112bf6113f1565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112ee576112ee6113f1565b604052919050565b6000816000190483118215151615611310576113106113db565b500290565b600082821015611327576113276113db565b500390565b60006060823603121561133d578081fd5b61134561129c565b61134e83611125565b815260208084013581830152604084013567ffffffffffffffff80821115611374578485fd5b9085019036601f830112611386578485fd5b813581811115611398576113986113f1565b6113aa601f8201601f191685016112c5565b915080825236848285010111156113bf578586fd5b8084840185840137810190920193909352604082015292915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610b4657600080fdfe566f7563686572286164647265737320726563697069656e742c75696e7432353620616d6f756e7429a264697066735822122005834ab90f65090090d2add5e96dacba406dc30f98a653c36070172587ac2e6b64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f17e65822b568b3903685a7c9f496cf7656cc6c2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000184269636f6e6f6d79436f6d6d756e69747952657761726473000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xF17e65822b568B3903685a7c9F496CF7656Cc6C2
Arg [1] : name (string): BiconomyCommunityRewards
Arg [2] : version (string): 1
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000f17e65822b568b3903685a7c9f496cf7656cc6c2
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000018
Arg [4] : 4269636f6e6f6d79436f6d6d756e697479526577617264730000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 3100000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
21505:4198:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24883:205;;;;;;:::i;:::-;;:::i;:::-;;11771:99;;;;;;:::i;:::-;-1:-1:-1;;;;;11848:14:0;11824:4;11848:14;;;:7;:14;;;;;;;;;11771:99;;;;3205:14:1;;3198:22;3180:41;;3168:2;3153:18;11771:99:0;;;;;;;;22821:132;;;;;;:::i;:::-;-1:-1:-1;;;;;22915:30:0;22888:7;22915:30;;;:24;:30;;;;;;;22821:132;;;;3378:25:1;;;3366:2;3351:18;22821:132:0;3333:76:1;25633:67:0;;;:::i;11462:158::-;;;;;;:::i;:::-;;:::i;25431:123::-;25527:9;25431:123;25506:41;4865:86;4936:7;;;;4865:86;;10406:94;;;:::i;25562:63::-;;;:::i;23060:1267::-;;;;;;:::i;:::-;;:::i;9755:87::-;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;9755:87;;;-1:-1:-1;;;;;2428:32:1;;;2410:51;;2398:2;2383:18;9755:87:0;2365:102:1;21927:104:0;;;:::i;22077:27::-;;;;;-1:-1:-1;;;;;22077:27:0;;;22113:59;;;;;;:::i;:::-;;;;;;;;;;;;;;25255:166;;;;;;:::i;:::-;;:::i;10655:192::-;;;;;;:::i;:::-;;:::i;21720:41::-;;;;;;24883:205;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;9975:23;9967:68;;;;-1:-1:-1;;;9967:68:0;;;;;;;:::i;:::-;;;;;;;;;7806:1:::1;8402:7;;:19;;8394:63;;;::::0;-1:-1:-1;;;8394:63:0;;9703:2:1;8394:63:0::1;::::0;::::1;9685:21:1::0;9742:2;9722:18;;;9715:30;9781:33;9761:18;;;9754:61;9832:18;;8394:63:0::1;9675:181:1::0;8394:63:0::1;7806:1;8535:7;:18:::0;24990:10;24982:42:::2;;;::::0;-1:-1:-1;;;24982:42:0;;5431:2:1;24982:42:0::2;::::0;::::2;5413:21:1::0;5470:2;5450:18;;;5443:30;-1:-1:-1;;;5489:18:1;;;5482:49;5548:18;;24982:42:0::2;5403:169:1::0;24982:42:0::2;25042:12;::::0;25035:45:::2;::::0;-1:-1:-1;;;25035:45:0;;-1:-1:-1;;;;;2953:32:1;;;25035:45:0::2;::::0;::::2;2935:51:1::0;3002:18;;;2995:34;;;25042:12:0;;::::2;::::0;25035:29:::2;::::0;2908:18:1;;25035:45:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7762:1:0::1;8714:7;:22:::0;-1:-1:-1;24883:205:0:o;25633:67::-;3651:10;11998:21;;;;:7;:21;;;;;;;;;:48;;-1:-1:-1;9801:7:0;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;12023:23;11998:48;11990:94;;;;-1:-1:-1;;;11990:94:0;;;;;;;:::i;:::-;25682:10:::1;:8;:10::i;:::-;25633:67::o:0;11462:158::-;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;9975:23;9967:68;;;;-1:-1:-1;;;9967:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11541:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;;;;;:26;;-1:-1:-1;;11541:26:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11583:29;;2640:51:1;;;2707:18;;;2700:50;11583:29:0::1;::::0;2613:18:1;11583:29:0::1;;;;;;;11462:158:::0;;:::o;10406:94::-;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;9975:23;9967:68;;;;-1:-1:-1;;;9967:68:0;;;;;;;:::i;:::-;10471:21:::1;10489:1;10471:9;:21::i;25562:63::-:0;3651:10;11998:21;;;;:7;:21;;;;;;;;;:48;;-1:-1:-1;9801:7:0;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;12023:23;11998:48;11990:94;;;;-1:-1:-1;;;11990:94:0;;;;;;;:::i;:::-;25609:8:::1;:6;:8::i;23060:1267::-:0;23154:7;5191:8;4936:7;;;;;4865:86;5191:8;5190:9;5182:38;;;;-1:-1:-1;;;5182:38:0;;6943:2:1;5182:38:0;;;6925:21:1;6982:2;6962:18;;;6955:30;-1:-1:-1;;;7001:18:1;;;6994:46;7057:18;;5182:38:0;6915:166:1;5182:38:0;7806:1:::1;8402:7;;:19;;8394:63;;;::::0;-1:-1:-1;;;8394:63:0;;9703:2:1;8394:63:0::1;::::0;::::1;9685:21:1::0;9742:2;9722:18;;;9715:30;9781:33;9761:18;;;9754:61;9832:18;;8394:63:0::1;9675:181:1::0;8394:63:0::1;7806:1;8535:7;:18:::0;3651:10;23174:17:::2;23236;;23244:8:::0;23236:17:::2;:::i;:::-;:7;:17::i;:::-;-1:-1:-1::0;;;;;23288:35:0;::::2;23264:21;23288:35:::0;;;:24:::2;:35;::::0;;;;;;;;23219:34;;-1:-1:-1;23379:18:0::2;::::0;;::::2;:8:::0;:18:::2;:::i;:::-;-1:-1:-1::0;;;;;23366:31:0::2;:9;-1:-1:-1::0;;;;;23366:31:0::2;;23358:91;;;::::0;-1:-1:-1;;;23358:91:0;;10896:2:1;23358:91:0::2;::::0;::::2;10878:21:1::0;10935:2;10915:18;;;10908:30;10974:34;10954:18;;;10947:62;-1:-1:-1;;;11025:18:1;;;11018:45;11080:19;;23358:91:0::2;10868:237:1::0;23358:91:0::2;23486:13;23468:8;:15;;;:31;23460:78;;;::::0;-1:-1:-1;;;23460:78:0;;7691:2:1;23460:78:0::2;::::0;::::2;7673:21:1::0;7730:2;7710:18;;;7703:30;7769:34;7749:18;;;7742:62;-1:-1:-1;;;7820:18:1;;;7813:32;7862:19;;23460:78:0::2;7663:224:1::0;23460:78:0::2;-1:-1:-1::0;;;;;23559:20:0;::::2;23551:84;;;::::0;-1:-1:-1;;;23551:84:0;;8094:2:1;23551:84:0::2;::::0;::::2;8076:21:1::0;8133:2;8113:18;;;8106:30;8172:34;8152:18;;;8145:62;-1:-1:-1;;;8223:18:1;;;8216:49;8282:19;;23551:84:0::2;8066:241:1::0;23551:84:0::2;-1:-1:-1::0;;;;;11848:14:0;;11824:4;11848:14;;;:7;:14;;;;;;;;23654:36:::2;;;-1:-1:-1::0;9801:7:0;9828:6;-1:-1:-1;;;;;23673:17:0;;::::2;9828:6:::0;;23673:17:::2;23654:36;23646:106;;;::::0;-1:-1:-1;;;23646:106:0;;9277:2:1;23646:106:0::2;::::0;::::2;9259:21:1::0;9316:2;9296:18;;;9289:30;9355:34;9335:18;;;9328:62;9426:27;9406:18;;;9399:55;9471:19;;23646:106:0::2;9249:247:1::0;23646:106:0::2;23784:18;;::::0;::::2;:8:::0;:18:::2;:::i;:::-;-1:-1:-1::0;;;;;23771:31:0::2;:9;-1:-1:-1::0;;;;;23771:31:0::2;;23763:98;;;::::0;-1:-1:-1;;;23763:98:0;;10063:2:1;23763:98:0::2;::::0;::::2;10045:21:1::0;10102:2;10082:18;;;10075:30;10141:34;10121:18;;;10114:62;-1:-1:-1;;;10192:18:1;;;10185:52;10254:19;;23763:98:0::2;10035:244:1::0;23763:98:0::2;23882:17;23903:31;23921:13:::0;23903:15:::2;::::0;::::2;;:31;:::i;:::-;23902:38;::::0;23936:4:::2;23902:38;:::i;:::-;23882:58;;23971:13;;23959:9;:25;23951:78;;;::::0;-1:-1:-1;;;23951:78:0;;10486:2:1;23951:78:0::2;::::0;::::2;10468:21:1::0;10525:2;10505:18;;;10498:30;10564:34;10544:18;;;10537:62;-1:-1:-1;;;10615:18:1;;;10608:39;10664:19;;23951:78:0::2;10458:231:1::0;23951:78:0::2;-1:-1:-1::0;;;;;24091:35:0;;::::2;;::::0;;;:24:::2;24129:15;24091:35:::0;;;;;;;;24129:15;;::::2;;24091:53:::0;;24200:12:::2;::::0;24193:51;;-1:-1:-1;;;24193:51:0;;::::2;::::0;::::2;2935::1::0;;;;3002:18;;;2995:34;;;24200:12:0;;::::2;::::0;24193:29:::2;::::0;2908:18:1;;24193:51:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24272:9;-1:-1:-1::0;;;;;24260:32:0::2;;24282:9;24260:32;;;;3378:25:1::0;;3366:2;3351:18;;3333:76;24260:32:0::2;;;;;;;;7762:1:::1;8714:7;:22:::0;24310:9;23060:1267;-1:-1:-1;;;;;23060:1267:0:o;21927:104::-;21980:50;;;;;;;;;;;;;;;;;21970:61;;;;;;21927:104;:::o;25255:166::-;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;9975:23;9967:68;;;;-1:-1:-1;;;9967:68:0;;;;;;;:::i;:::-;25346:1:::1;25333:10;:14;25325:51;;;::::0;-1:-1:-1;;;25325:51:0;;5779:2:1;25325:51:0::1;::::0;::::1;5761:21:1::0;5818:2;5798:18;;;5791:30;5857:27;5837:18;;;5830:55;5902:18;;25325:51:0::1;5751:175:1::0;25325:51:0::1;25387:13;:26:::0;25255:166::o;10655:192::-;9801:7;9828:6;-1:-1:-1;;;;;9828:6:0;3651:10;9975:23;9967:68;;;;-1:-1:-1;;;9967:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10744:22:0;::::1;10736:73;;;::::0;-1:-1:-1;;;10736:73:0;;6133:2:1;10736:73:0::1;::::0;::::1;6115:21:1::0;6172:2;6152:18;;;6145:30;6211:34;6191:18;;;6184:62;-1:-1:-1;;;6262:18:1;;;6255:36;6308:19;;10736:73:0::1;6105:228:1::0;10736:73:0::1;10820:19;10830:8;10820:9;:19::i;:::-;10655:192:::0;:::o;5924:120::-;4936:7;;;;5460:41;;;;-1:-1:-1;;;5460:41:0;;4722:2:1;5460:41:0;;;4704:21:1;4761:2;4741:18;;;4734:30;-1:-1:-1;;;4780:18:1;;;4773:50;4840:18;;5460:41:0;4694:170:1;5460:41:0;5983:7:::1;:15:::0;;-1:-1:-1;;5983:15:0::1;::::0;;6014:22:::1;3651:10:::0;6023:12:::1;6014:22;::::0;-1:-1:-1;;;;;2428:32:1;;;2410:51;;2398:2;2383:18;6014:22:0::1;;;;;;;5924:120::o:0;10855:173::-;10911:16;10930:6;;-1:-1:-1;;;;;10947:17:0;;;-1:-1:-1;;;;;;10947:17:0;;;;;;10980:40;;10930:6;;;;;;;10980:40;;10911:16;10980:40;10855:173;;:::o;5665:118::-;4936:7;;;;5190:9;5182:38;;;;-1:-1:-1;;;5182:38:0;;6943:2:1;5182:38:0;;;6925:21:1;6982:2;6962:18;;;6955:30;-1:-1:-1;;;7001:18:1;;;6994:46;7057:18;;5182:38:0;6915:166:1;5182:38:0;5725:7:::1;:14:::0;;-1:-1:-1;;5725:14:0::1;5735:4;5725:14;::::0;;5755:20:::1;5762:12;3651:10:::0;;3571:98;24335:446;24399:7;24419:14;24523:20;25179:15;;;25100:102;24523:20;21980:50;;;;;;;;;;;;;;;;;21970:61;;;;;;;24630:17;;24678:14;;;;24572:147;;;;;3616:25:1;;;-1:-1:-1;;;;;3677:32:1;;;;3672:2;3657:18;;3650:60;3741:2;3726:18;;3719:34;3604:2;3589:18;;3571:188;24572:147:0;;;;;;;;;;;;;24562:158;;;;;;24459:262;;;;;;;;-1:-1:-1;;;2125:27:1;;2177:1;2168:11;;2161:27;;;;2213:2;2204:12;;2197:28;2250:2;2241:12;;2115:144;24459:262:0;;;;;;;;;;;;;24449:273;;;;;;24419:303;;24740:33;24755:7;:17;;;24740:6;:14;;:33;;;;:::i;:::-;24733:40;24335:446;-1:-1:-1;;;24335:446:0:o;16454:231::-;16532:7;16553:17;16572:18;16594:27;16605:4;16611:9;16594:10;:27::i;:::-;16552:69;;;;16632:18;16644:5;16632:11;:18::i;:::-;-1:-1:-1;16668:9:0;16454:231;-1:-1:-1;;;16454:231:0:o;14344:1308::-;14425:7;14434:12;14659:9;:16;14679:2;14659:22;14655:990;;;14955:4;14940:20;;14934:27;15005:4;14990:20;;14984:27;15063:4;15048:20;;15042:27;14698:9;15034:36;15106:25;15117:4;15034:36;14934:27;14984;15106:10;:25::i;:::-;15099:32;;;;;;;;;14655:990;15153:9;:16;15173:2;15153:22;15149:496;;;15428:4;15413:20;;15407:27;15479:4;15464:20;;15458:27;15521:23;15532:4;15407:27;15458;15521:10;:23::i;:::-;15514:30;;;;;;;;15149:496;-1:-1:-1;15593:1:0;;-1:-1:-1;15597:35:0;15149:496;14344:1308;;;;;:::o;12615:643::-;12693:20;12684:5;:29;;;;;;-1:-1:-1;;;12684:29:0;;;;;;;;;;12680:571;;;12615:643;:::o;12680:571::-;12791:29;12782:5;:38;;;;;;-1:-1:-1;;;12782:38:0;;;;;;;;;;12778:473;;;12837:34;;-1:-1:-1;;;12837:34:0;;4369:2:1;12837:34:0;;;4351:21:1;4408:2;4388:18;;;4381:30;4447:26;4427:18;;;4420:54;4491:18;;12837:34:0;4341:174:1;12778:473:0;12902:35;12893:5;:44;;;;;;-1:-1:-1;;;12893:44:0;;;;;;;;;;12889:362;;;12954:41;;-1:-1:-1;;;12954:41:0;;5071:2:1;12954:41:0;;;5053:21:1;5110:2;5090:18;;;5083:30;5149:33;5129:18;;;5122:61;5200:18;;12954:41:0;5043:181:1;12889:362:0;13026:30;13017:5;:39;;;;;;-1:-1:-1;;;13017:39:0;;;;;;;;;;13013:238;;;13073:44;;-1:-1:-1;;;13073:44:0;;6540:2:1;13073:44:0;;;6522:21:1;6579:2;6559:18;;;6552:30;6618:34;6598:18;;;6591:62;-1:-1:-1;;;6669:18:1;;;6662:32;6711:19;;13073:44:0;6512:224:1;13013:238:0;13148:30;13139:5;:39;;;;;;-1:-1:-1;;;13139:39:0;;;;;;;;;;13135:116;;;13195:44;;-1:-1:-1;;;13195:44:0;;7288:2:1;13195:44:0;;;7270:21:1;7327:2;7307:18;;;7300:30;7366:34;7346:18;;;7339:62;-1:-1:-1;;;7417:18:1;;;7410:32;7459:19;;13195:44:0;7260:224:1;17953:1632:0;18084:7;;19018:66;19005:79;;19001:163;;;-1:-1:-1;19117:1:0;;-1:-1:-1;19121:30:0;19101:51;;19001:163;19178:1;:7;;19183:2;19178:7;;:18;;;;;19189:1;:7;;19194:2;19189:7;;19178:18;19174:102;;;-1:-1:-1;19229:1:0;;-1:-1:-1;19233:30:0;19213:51;;19174:102;19390:24;;;19373:14;19390:24;;;;;;;;;3991:25:1;;;4064:4;4052:17;;4032:18;;;4025:45;;;;4086:18;;;4079:34;;;4129:18;;;4122:34;;;19390:24:0;;3963:19:1;;19390:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19390:24:0;;-1:-1:-1;;19390:24:0;;;-1:-1:-1;;;;;;;19429:20:0;;19425:103;;19482:1;19486:29;19466:50;;;;;;;19425:103;19548:6;-1:-1:-1;19556:20:0;;-1:-1:-1;17953:1632:0;;;;;;;;:::o;16948:391::-;17062:7;;-1:-1:-1;;;;;17163:75:0;;17265:3;17261:12;;;17275:2;17257:21;17306:25;17317:4;17257:21;17326:1;17163:75;17306:10;:25::i;:::-;17299:32;;;;;;16948:391;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:325::-;458:6;466;519:2;507:9;498:7;494:23;490:32;487:2;;;540:6;532;525:22;487:2;568:29;587:9;568:29;:::i;:::-;558:39;;647:2;636:9;632:18;619:32;660:28;682:5;660:28;:::i;:::-;707:5;697:15;;;477:241;;;;;:::o;723:264::-;791:6;799;852:2;840:9;831:7;827:23;823:32;820:2;;;873:6;865;858:22;820:2;901:29;920:9;901:29;:::i;:::-;891:39;977:2;962:18;;;;949:32;;-1:-1:-1;;;810:177:1:o;992:255::-;1059:6;1112:2;1100:9;1091:7;1087:23;1083:32;1080:2;;;1133:6;1125;1118:22;1080:2;1170:9;1164:16;1189:28;1211:5;1189:28;:::i;1252:415::-;1337:6;1390:2;1378:9;1369:7;1365:23;1361:32;1358:2;;;1411:6;1403;1396:22;1358:2;1456:9;1443:23;1489:18;1481:6;1478:30;1475:2;;;1526:6;1518;1511:22;1475:2;1554:22;;1610:2;1592:16;;;1588:25;1585:2;;;1631:6;1623;1616:22;1672:190;1731:6;1784:2;1772:9;1763:7;1759:23;1755:32;1752:2;;;1805:6;1797;1790:22;1752:2;-1:-1:-1;1833:23:1;;1742:120;-1:-1:-1;1742:120:1:o;8312:356::-;8514:2;8496:21;;;8533:18;;;8526:30;8592:34;8587:2;8572:18;;8565:62;8659:2;8644:18;;8486:182::o;8673:397::-;8875:2;8857:21;;;8914:2;8894:18;;;8887:30;8953:34;8948:2;8933:18;;8926:62;-1:-1:-1;;;9019:2:1;9004:18;;8997:31;9060:3;9045:19;;8847:223::o;11292:253::-;11364:2;11358:9;11406:4;11394:17;;11441:18;11426:34;;11462:22;;;11423:62;11420:2;;;11488:18;;:::i;:::-;11524:2;11517:22;11338:207;:::o;11550:275::-;11621:2;11615:9;11686:2;11667:13;;-1:-1:-1;;11663:27:1;11651:40;;11721:18;11706:34;;11742:22;;;11703:62;11700:2;;;11768:18;;:::i;:::-;11804:2;11797:22;11595:230;;-1:-1:-1;11595:230:1:o;11830:168::-;11870:7;11936:1;11932;11928:6;11924:14;11921:1;11918:21;11913:1;11906:9;11899:17;11895:45;11892:2;;;11943:18;;:::i;:::-;-1:-1:-1;11983:9:1;;11882:116::o;12003:125::-;12043:4;12071:1;12068;12065:8;12062:2;;;12076:18;;:::i;:::-;-1:-1:-1;12113:9:1;;12052:76::o;12133:1095::-;12233:9;12292:4;12284:5;12268:14;12264:26;12260:37;12257:2;;;12318:9;12307;12300:28;12257:2;12354:22;;:::i;:::-;12401:25;12420:5;12401:25;:::i;:::-;12392:7;12385:42;12446:2;12506;12499:5;12495:14;12482:28;12477:2;12468:7;12464:16;12457:54;12558:2;12551:5;12547:14;12534:28;12581:18;12622:2;12614:6;12611:14;12608:2;;;12646:9;12635;12628:28;12608:2;12677:18;;;;12733:14;12726:4;12718:13;;12714:34;12704:2;;12770:9;12759;12752:28;12704:2;12814;12801:16;12836:2;12832;12829:10;12826:2;;;12842:18;;:::i;:::-;12884:53;12927:2;12908:13;;-1:-1:-1;;12904:27:1;12900:36;;12884:53;:::i;:::-;12871:66;;12960:2;12953:5;12946:17;13000:14;12995:2;12990;12986;12982:11;12978:20;12975:40;12972:2;;;13036:9;13025;13018:28;12972:2;13099;13094;13090;13086:11;13081:2;13074:5;13070:14;13057:45;13122:14;;13118:23;;;13111:42;;;;13182:2;13169:16;;13162:31;13173:7;12247:981;-1:-1:-1;;12247:981:1:o;13233:127::-;13294:10;13289:3;13285:20;13282:1;13275:31;13325:4;13322:1;13315:15;13349:4;13346:1;13339:15;13365:127;13426:10;13421:3;13417:20;13414:1;13407:31;13457:4;13454:1;13447:15;13481:4;13478:1;13471:15;13497:118;13583:5;13576:13;13569:21;13562:5;13559:32;13549:2;;13605:1;13602;13595:12
Swarm Source
ipfs://05834ab90f65090090d2add5e96dacba406dc30f98a653c36070172587ac2e6b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.