Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ERC721SaleNonceHolder
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-24 */ pragma solidity ^0.5.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } /** * @dev Required interface of an ERC721 compliant contract. */ contract IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of NFTs in `owner`'s account. */ function balanceOf(address owner) public view returns (uint256 balance); /** * @dev Returns the owner of the NFT specified by `tokenId`. */ function ownerOf(uint256 tokenId) public view returns (address owner); /** * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to * another (`to`). * * * * Requirements: * - `from`, `to` cannot be zero. * - `tokenId` must be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this * NFT by either {approve} or {setApprovalForAll}. */ function safeTransferFrom(address from, address to, uint256 tokenId) public; /** * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to * another (`to`). * * Requirements: * - If the caller is not `from`, it must be approved to move this NFT by * either {approve} or {setApprovalForAll}. */ function transferFrom(address from, address to, uint256 tokenId) public; function approve(address to, uint256 tokenId) public; function getApproved(uint256 tokenId) public view returns (address operator); function setApprovalForAll(address operator, bool _approved) public; function isApprovedForAll(address owner, address operator) public view returns (bool); function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public; } contract IERC721Sale { function getNonce(IERC721 token, uint256 tokenId) view public returns (uint256); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract OperatorRole is Context { using Roles for Roles.Role; event OperatorAdded(address indexed account); event OperatorRemoved(address indexed account); Roles.Role private _operators; constructor () internal { } modifier onlyOperator() { require(isOperator(_msgSender()), "OperatorRole: caller does not have the Operator role"); _; } function isOperator(address account) public view returns (bool) { return _operators.has(account); } function _addOperator(address account) internal { _operators.add(account); emit OperatorAdded(account); } function _removeOperator(address account) internal { _operators.remove(account); emit OperatorRemoved(account); } } /** * @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. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract OwnableOperatorRole is Ownable, OperatorRole { function addOperator(address account) public onlyOwner { _addOperator(account); } function removeOperator(address account) public onlyOwner { _removeOperator(account); } } contract ERC721SaleNonceHolder is OwnableOperatorRole { mapping(bytes32 => uint256) public nonces; IERC721Sale public previous; constructor(IERC721Sale _previous) public { previous = _previous; } function getNonce(IERC721 token, uint256 tokenId) view public returns (uint256) { uint256 newNonce = nonces[getPositionKey(token, tokenId)]; if (newNonce != 0) { return newNonce; } if (address(previous) == address(0x0)) { return 0; } return previous.getNonce(token, tokenId); } function setNonce(IERC721 token, uint256 tokenId, uint256 nonce) public onlyOperator { nonces[getPositionKey(token, tokenId)] = nonce; } function getPositionKey(IERC721 token, uint256 tokenId) pure public returns (bytes32) { return keccak256(abi.encodePacked(token, tokenId)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC721Sale","name":"_previous","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorRemoved","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"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC721","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC721","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPositionKey","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"previous","outputs":[{"internalType":"contract IERC721Sale","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC721","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"setNonce","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610a13380380610a138339818101604052602081101561003357600080fd5b505160006100486001600160e01b036100b716565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b0319166001600160a01b03929092169190911790556100bb565b3390565b610949806100ca6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639870d7fe116100715780639870d7fe1461016f5780639e317f1214610195578063ac8a584a146101b2578063dd68c1e2146101d8578063e330a93514610204578063f2fde38b14610236576100b4565b80636d70f7ae146100b9578063715018a6146100f35780637c2b2e71146100fd57806389535803146101215780638da5cb5b1461015f5780638f32d59b14610167575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b031661025c565b604080519115158252519081900360200190f35b6100fb610275565b005b610105610306565b604080516001600160a01b039092168252519081900360200190f35b61014d6004803603604081101561013757600080fd5b506001600160a01b038135169060200135610315565b60408051918252519081900360200190f35b6101056103e8565b6100df6103f7565b6100fb6004803603602081101561018557600080fd5b50356001600160a01b031661041b565b61014d600480360360208110156101ab57600080fd5b503561046e565b6100fb600480360360208110156101c857600080fd5b50356001600160a01b0316610480565b61014d600480360360408110156101ee57600080fd5b506001600160a01b0381351690602001356104d0565b6100fb6004803603606081101561021a57600080fd5b506001600160a01b038135169060208101359060400135610514565b6100fb6004803603602081101561024c57600080fd5b50356001600160a01b0316610584565b600061026f60018363ffffffff6105d416565b92915050565b61027d6103f7565b6102bc576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001600160a01b031681565b6000806002600061032686866104d0565b81526020019081526020016000205490508060001461034657905061026f565b6003546001600160a01b031661036057600091505061026f565b60035460408051638953580360e01b81526001600160a01b03878116600483015260248201879052915191909216916389535803916044808301926020929190829003018186803b1580156103b457600080fd5b505afa1580156103c8573d6000803e3d6000fd5b505050506040513d60208110156103de57600080fd5b5051949350505050565b6000546001600160a01b031690565b600080546001600160a01b031661040c61063b565b6001600160a01b031614905090565b6104236103f7565b610462576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b8161063f565b50565b60026020526000908152604090205481565b6104886103f7565b6104c7576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b81610687565b6040805160609390931b6bffffffffffffffffffffffff19166020808501919091526034808501939093528151808503909301835260549093019052805191012090565b61052461051f61063b565b61025c565b61055f5760405162461bcd60e51b815260040180806020018281038252603481526020018061087e6034913960400191505060405180910390fd5b806002600061056e86866104d0565b8152602081019190915260400160002055505050565b61058c6103f7565b6105cb576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b816106cf565b60006001600160a01b03821661061b5760405162461bcd60e51b81526004018080602001828103825260228152602001806108f36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3390565b61065060018263ffffffff61076f16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b61069860018263ffffffff6107f016565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b0381166107145760405162461bcd60e51b81526004018080602001828103825260268152602001806108586026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61077982826105d4565b156107cb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6107fa82826105d4565b6108355760405162461bcd60e51b81526004018080602001828103825260218152602001806108b26021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f72526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204f70657261746f7220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820a7626a523931f0d313901e3eb6bf7583a03308364959fbdd1b2dde8086961f1164736f6c63430005110032000000000000000000000000f2ee97405593bc7b6275682b0331169a48fedec7
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639870d7fe116100715780639870d7fe1461016f5780639e317f1214610195578063ac8a584a146101b2578063dd68c1e2146101d8578063e330a93514610204578063f2fde38b14610236576100b4565b80636d70f7ae146100b9578063715018a6146100f35780637c2b2e71146100fd57806389535803146101215780638da5cb5b1461015f5780638f32d59b14610167575b600080fd5b6100df600480360360208110156100cf57600080fd5b50356001600160a01b031661025c565b604080519115158252519081900360200190f35b6100fb610275565b005b610105610306565b604080516001600160a01b039092168252519081900360200190f35b61014d6004803603604081101561013757600080fd5b506001600160a01b038135169060200135610315565b60408051918252519081900360200190f35b6101056103e8565b6100df6103f7565b6100fb6004803603602081101561018557600080fd5b50356001600160a01b031661041b565b61014d600480360360208110156101ab57600080fd5b503561046e565b6100fb600480360360208110156101c857600080fd5b50356001600160a01b0316610480565b61014d600480360360408110156101ee57600080fd5b506001600160a01b0381351690602001356104d0565b6100fb6004803603606081101561021a57600080fd5b506001600160a01b038135169060208101359060400135610514565b6100fb6004803603602081101561024c57600080fd5b50356001600160a01b0316610584565b600061026f60018363ffffffff6105d416565b92915050565b61027d6103f7565b6102bc576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001600160a01b031681565b6000806002600061032686866104d0565b81526020019081526020016000205490508060001461034657905061026f565b6003546001600160a01b031661036057600091505061026f565b60035460408051638953580360e01b81526001600160a01b03878116600483015260248201879052915191909216916389535803916044808301926020929190829003018186803b1580156103b457600080fd5b505afa1580156103c8573d6000803e3d6000fd5b505050506040513d60208110156103de57600080fd5b5051949350505050565b6000546001600160a01b031690565b600080546001600160a01b031661040c61063b565b6001600160a01b031614905090565b6104236103f7565b610462576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b8161063f565b50565b60026020526000908152604090205481565b6104886103f7565b6104c7576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b81610687565b6040805160609390931b6bffffffffffffffffffffffff19166020808501919091526034808501939093528151808503909301835260549093019052805191012090565b61052461051f61063b565b61025c565b61055f5760405162461bcd60e51b815260040180806020018281038252603481526020018061087e6034913960400191505060405180910390fd5b806002600061056e86866104d0565b8152602081019190915260400160002055505050565b61058c6103f7565b6105cb576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b61046b816106cf565b60006001600160a01b03821661061b5760405162461bcd60e51b81526004018080602001828103825260228152602001806108f36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3390565b61065060018263ffffffff61076f16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b61069860018263ffffffff6107f016565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b0381166107145760405162461bcd60e51b81526004018080602001828103825260268152602001806108586026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61077982826105d4565b156107cb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6107fa82826105d4565b6108355760405162461bcd60e51b81526004018080602001828103825260218152602001806108b26021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f72526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204f70657261746f7220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820a7626a523931f0d313901e3eb6bf7583a03308364959fbdd1b2dde8086961f1164736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f2ee97405593bc7b6275682b0331169a48fedec7
-----Decoded View---------------
Arg [0] : _previous (address): 0xf2Ee97405593BC7B6275682b0331169A48fEdEc7
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f2ee97405593bc7b6275682b0331169a48fedec7
Deployed Bytecode Sourcemap
8462:920:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8462:920:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5362:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5362:113:0;-1:-1:-1;;;;;5362:113:0;;:::i;:::-;;;;;;;;;;;;;;;;;;7444:140;;;:::i;:::-;;8571:27;;;:::i;:::-;;;;-1:-1:-1;;;;;8571:27:0;;;;;;;;;;;;;;8696:362;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8696:362:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6633:79;;;:::i;6999:94::-;;;:::i;8251:95::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8251:95:0;-1:-1:-1;;;;;8251:95:0;;:::i;8523:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8523:41:0;;:::i;8354:101::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8354:101:0;-1:-1:-1;;;;;8354:101:0;;:::i;9224:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9224:155:0;;;;;;;;:::i;9066:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9066:150:0;;;;;;;;;;;;;:::i;7739:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7739:109:0;-1:-1:-1;;;;;7739:109:0;;:::i;5362:113::-;5420:4;5444:23;:10;5459:7;5444:23;:14;:23;:::i;:::-;5437:30;5362:113;-1:-1:-1;;5362:113:0:o;7444:140::-;6845:9;:7;:9::i;:::-;6837:54;;;;;-1:-1:-1;;;6837:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6837:54:0;;;;;;;;;;;;;;;7543:1;7527:6;;7506:40;;-1:-1:-1;;;;;7527:6:0;;;;7506:40;;7543:1;;7506:40;7574:1;7557:19;;-1:-1:-1;;;;;;7557:19:0;;;7444:140::o;8571:27::-;;;-1:-1:-1;;;;;8571:27:0;;:::o;8696:362::-;8767:7;8787:16;8806:6;:38;8813:30;8828:5;8835:7;8813:14;:30::i;:::-;8806:38;;;;;;;;;;;;8787:57;;8859:8;8871:1;8859:13;8855:61;;8896:8;-1:-1:-1;8889:15:0;;8855:61;8938:8;;-1:-1:-1;;;;;8938:8:0;8926:74;;8987:1;8980:8;;;;;8926:74;9017:8;;:33;;;-1:-1:-1;;;9017:33:0;;-1:-1:-1;;;;;9017:33:0;;;;;;;;;;;;;;;:8;;;;;:17;;:33;;;;;;;;;;;;;;:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9017:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9017:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9017:33:0;;8696:362;-1:-1:-1;;;;8696:362:0:o;6633:79::-;6671:7;6698:6;-1:-1:-1;;;;;6698:6:0;6633:79;:::o;6999:94::-;7039:4;7079:6;;-1:-1:-1;;;;;7079:6:0;7063:12;:10;:12::i;:::-;-1:-1:-1;;;;;7063:22:0;;7056:29;;6999:94;:::o;8251:95::-;6845:9;:7;:9::i;:::-;6837:54;;;;;-1:-1:-1;;;6837:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6837:54:0;;;;;;;;;;;;;;;8317:21;8330:7;8317:12;:21::i;:::-;8251:95;:::o;8523:41::-;;;;;;;;;;;;;:::o;8354:101::-;6845:9;:7;:9::i;:::-;6837:54;;;;;-1:-1:-1;;;6837:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6837:54:0;;;;;;;;;;;;;;;8423:24;8439:7;8423:15;:24::i;9224:155::-;9338:32;;;;;;;;-1:-1:-1;;9338:32:0;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;9338:32:0;;;;;;9328:43;;;;;;9224:155::o;9066:150::-;5253:24;5264:12;:10;:12::i;:::-;5253:10;:24::i;:::-;5245:89;;;;-1:-1:-1;;;5245:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9203:5;9162:6;:38;9169:30;9184:5;9191:7;9169:14;:30::i;:::-;9162:38;;;;;;;;;;;-1:-1:-1;9162:38:0;:46;-1:-1:-1;;;9066:150:0:o;7739:109::-;6845:9;:7;:9::i;:::-;6837:54;;;;;-1:-1:-1;;;6837:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6837:54:0;;;;;;;;;;;;;;;7812:28;7831:8;7812:18;:28::i;4739:203::-;4811:4;-1:-1:-1;;;;;4836:21:0;;4828:68;;;;-1:-1:-1;;;4828:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4914:20:0;:11;:20;;;;;;;;;;;;;;;4739:203::o;3618:98::-;3698:10;3618:98;:::o;5483:128::-;5542:23;:10;5557:7;5542:23;:14;:23;:::i;:::-;5581:22;;-1:-1:-1;;;;;5581:22:0;;;;;;;;5483:128;:::o;5619:136::-;5681:26;:10;5699:7;5681:26;:17;:26;:::i;:::-;5723:24;;-1:-1:-1;;;;;5723:24:0;;;;;;;;5619:136;:::o;7954:229::-;-1:-1:-1;;;;;8028:22:0;;8020:73;;;;-1:-1:-1;;;8020:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8130:6;;;8109:38;;-1:-1:-1;;;;;8109:38:0;;;;8130:6;;;8109:38;;;8158:6;:17;;-1:-1:-1;;;;;;8158:17:0;-1:-1:-1;;;;;8158:17:0;;;;;;;;;;7954:229::o;4203:178::-;4281:18;4285:4;4291:7;4281:3;:18::i;:::-;4280:19;4272:63;;;;;-1:-1:-1;;;4272:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4346:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4346:27:0;4369:4;4346:27;;;4203:178::o;4461:183::-;4541:18;4545:4;4551:7;4541:3;:18::i;:::-;4533:64;;;;-1:-1:-1;;;4533:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4608:20:0;4631:5;4608:20;;;;;;;;;;;:28;;-1:-1:-1;;4608:28:0;;;4461:183::o
Swarm Source
bzzr://a7626a523931f0d313901e3eb6bf7583a03308364959fbdd1b2dde8086961f11
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.