More Info
Private Name Tags
ContractCreator
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 19035083 | 339 days ago | IN | 0 ETH | 0.00155454 | ||||
Transfer Ownersh... | 19020577 | 341 days ago | IN | 0 ETH | 0.00172254 | ||||
Transfer Ownersh... | 18713600 | 384 days ago | IN | 0 ETH | 0.00145372 | ||||
Remove Operator | 17791326 | 513 days ago | IN | 0 ETH | 0.00060867 | ||||
Transfer | 15681087 | 809 days ago | IN | 0.001 ETH | 0.00011378 | ||||
Transfer | 15370091 | 856 days ago | IN | 0.01495461 ETH | 0.00049455 | ||||
Transfer Ownersh... | 14936594 | 927 days ago | IN | 0 ETH | 0.00216531 | ||||
Remove Operator | 12708097 | 1275 days ago | IN | 0 ETH | 0.00015528 | ||||
Add Operator | 12696820 | 1277 days ago | IN | 0 ETH | 0.0006187 | ||||
Add Operator | 12617902 | 1290 days ago | IN | 0 ETH | 0.00047593 | ||||
Remove Operator | 11710307 | 1429 days ago | IN | 0 ETH | 0.00086504 | ||||
Remove Operator | 11710296 | 1429 days ago | IN | 0 ETH | 0.0008729 | ||||
Transfer Ownersh... | 11274712 | 1496 days ago | IN | 0 ETH | 0.00185454 | ||||
Add Operator | 11274660 | 1496 days ago | IN | 0 ETH | 0.00274158 | ||||
Add Operator | 10787031 | 1571 days ago | IN | 0 ETH | 0.01873413 | ||||
Add Operator | 10787029 | 1571 days ago | IN | 0 ETH | 0.01873413 | ||||
Add Operator | 10147974 | 1670 days ago | IN | 0 ETH | 0.00182772 | ||||
Add Operator | 10147952 | 1670 days ago | IN | 0 ETH | 0.00182772 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TransferProxy
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-17 */ 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`. * - `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; } /* * @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) external onlyOwner { _addOperator(account); } function removeOperator(address account) external onlyOwner { _removeOperator(account); } } /** @title ERC-1155 Multi Token Standard @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md Note: The ERC-165 identifier for this interface is 0xd9b67a26. */ contract IERC1155 is IERC165 { /** @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). The `_operator` argument MUST be msg.sender. The `_from` argument MUST be the address of the holder whose balance is decreased. The `_to` argument MUST be the address of the recipient whose balance is increased. The `_id` argument MUST be the token type being transferred. The `_value` argument MUST be the number of tokens the holder balance is decreased by and match what the recipient balance is increased by. When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). */ event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value); /** @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard). The `_operator` argument MUST be msg.sender. The `_from` argument MUST be the address of the holder whose balance is decreased. The `_to` argument MUST be the address of the recipient whose balance is increased. The `_ids` argument MUST be the list of tokens being transferred. The `_values` argument MUST be the list of number of tokens (matching the list and order of tokens specified in _ids) the holder balance is decreased by and match what the recipient balance is increased by. When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address). When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address). */ event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values); /** @dev MUST emit when approval for a second party/operator address to manage all tokens for an owner address is enabled or disabled (absense of an event assumes disabled). */ event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /** @dev MUST emit when the URI is updated for a token ID. URIs are defined in RFC 3986. The URI MUST point a JSON file that conforms to the "ERC-1155 Metadata URI JSON Schema". */ event URI(string _value, uint256 indexed _id); /** @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call). @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). MUST revert if `_to` is the zero address. MUST revert if balance of holder for token `_id` is lower than the `_value` sent. MUST revert on any other error. MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard). After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC1155Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). @param _from Source address @param _to Target address @param _id ID of the token type @param _value Transfer amount @param _data Additional data with no specified format, MUST be sent unaltered in call to `onERC1155Received` on `_to` */ function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external; /** @notice Transfers `_values` amount(s) of `_ids` from the `_from` address to the `_to` address specified (with safety call). @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard). MUST revert if `_to` is the zero address. MUST revert if length of `_ids` is not the same as length of `_values`. MUST revert if any of the balance(s) of the holder(s) for token(s) in `_ids` is lower than the respective amount(s) in `_values` sent to the recipient. MUST revert on any other error. MUST emit `TransferSingle` or `TransferBatch` event(s) such that all the balance changes are reflected (see "Safe Transfer Rules" section of the standard). Balance changes and events MUST follow the ordering of the arrays (_ids[0]/_values[0] before _ids[1]/_values[1], etc). After the above conditions for the transfer(s) in the batch are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call the relevant `ERC1155TokenReceiver` hook(s) on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard). @param _from Source address @param _to Target address @param _ids IDs of each token type (order and length must match _values array) @param _values Transfer amounts per token type (order and length must match _ids array) @param _data Additional data with no specified format, MUST be sent unaltered in call to the `ERC1155TokenReceiver` hook(s) on `_to` */ function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external; /** @notice Get the balance of an account's Tokens. @param _owner The address of the token holder @param _id ID of the Token @return The _owner's balance of the Token type requested */ function balanceOf(address _owner, uint256 _id) external view returns (uint256); /** @notice Get the balance of multiple account/token pairs @param _owners The addresses of the token holders @param _ids ID of the Tokens @return The _owner's balance of the Token types requested (i.e. balance for each (owner, id) pair) */ function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory); /** @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens. @dev MUST emit the ApprovalForAll event on success. @param _operator Address to add to the set of authorized operators @param _approved True if the operator is approved, false to revoke approval */ function setApprovalForAll(address _operator, bool _approved) external; /** @notice Queries the approval status of an operator for a given owner. @param _owner The owner of the Tokens @param _operator Address of authorized operator @return True if the operator is approved, false if not */ function isApprovedForAll(address _owner, address _operator) external view returns (bool); } contract TransferProxy is OwnableOperatorRole { function erc721safeTransferFrom(IERC721 token, address from, address to, uint256 tokenId) external onlyOperator { token.safeTransferFrom(from, to, tokenId); } function erc1155safeTransferFrom(IERC1155 token, address from, address to, uint256 id, uint256 value, bytes calldata data) external onlyOperator { token.safeTransferFrom(from, to, id, value, data); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":false,"inputs":[{"internalType":"contract IERC1155","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"erc1155safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC721","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"erc721safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","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":[],"name":"owner","outputs":[{"internalType":"address","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b610978806100796000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80639870d7fe116100665780639870d7fe146101085780639c1c2ee91461012e578063ac8a584a146101cb578063f2fde38b146101f1578063f709b9061461021757610093565b80636d70f7ae14610098578063715018a6146100d25780638da5cb5b146100dc5780638f32d59b14610100575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610253565b604080519115158252519081900360200190f35b6100da61026c565b005b6100e46102fd565b604080516001600160a01b039092168252519081900360200190f35b6100be61030c565b6100da6004803603602081101561011e57600080fd5b50356001600160a01b0316610330565b6100da600480360360c081101561014457600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160808101359181019060c0810160a082013564010000000081111561018c57600080fd5b82018360208201111561019e57600080fd5b803590602001918460018302840111640100000000831117156101c057600080fd5b509092509050610383565b6100da600480360360208110156101e157600080fd5b50356001600160a01b03166104a5565b6100da6004803603602081101561020757600080fd5b50356001600160a01b03166104f5565b6100da6004803603608081101561022d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610545565b600061026660018363ffffffff61060316565b92915050565b61027461030c565b6102b3576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b031661032161066a565b6001600160a01b031614905090565b61033861030c565b610377576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b6103808161066e565b50565b61039361038e61066a565b610253565b6103ce5760405162461bcd60e51b81526004018080602001828103825260348152602001806108ad6034913960400191505060405180910390fd5b866001600160a01b031663f242432a8787878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561048457600080fd5b505af1158015610498573d6000803e3d6000fd5b5050505050505050505050565b6104ad61030c565b6104ec576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b610380816106b6565b6104fd61030c565b61053c576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b610380816106fe565b61055061038e61066a565b61058b5760405162461bcd60e51b81526004018080602001828103825260348152602001806108ad6034913960400191505060405180910390fd5b60408051632142170760e11b81526001600160a01b0385811660048301528481166024830152604482018490529151918616916342842e0e9160648082019260009290919082900301818387803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b5050505050505050565b60006001600160a01b03821661064a5760405162461bcd60e51b81526004018080602001828103825260228152602001806109226022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3390565b61067f60018263ffffffff61079e16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6106c760018263ffffffff61081f16565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b0381166107435760405162461bcd60e51b81526004018080602001828103825260268152602001806108876026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6107a88282610603565b156107fa576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108298282610603565b6108645760405162461bcd60e51b81526004018080602001828103825260218152602001806108e16021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f72526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204f70657261746f7220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820c1a91e8f15d9f8f1bff372eada33d6f952e1739ba2c766696c5e5a0e77e4f26d64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80639870d7fe116100665780639870d7fe146101085780639c1c2ee91461012e578063ac8a584a146101cb578063f2fde38b146101f1578063f709b9061461021757610093565b80636d70f7ae14610098578063715018a6146100d25780638da5cb5b146100dc5780638f32d59b14610100575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610253565b604080519115158252519081900360200190f35b6100da61026c565b005b6100e46102fd565b604080516001600160a01b039092168252519081900360200190f35b6100be61030c565b6100da6004803603602081101561011e57600080fd5b50356001600160a01b0316610330565b6100da600480360360c081101561014457600080fd5b6001600160a01b038235811692602081013582169260408201359092169160608201359160808101359181019060c0810160a082013564010000000081111561018c57600080fd5b82018360208201111561019e57600080fd5b803590602001918460018302840111640100000000831117156101c057600080fd5b509092509050610383565b6100da600480360360208110156101e157600080fd5b50356001600160a01b03166104a5565b6100da6004803603602081101561020757600080fd5b50356001600160a01b03166104f5565b6100da6004803603608081101561022d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610545565b600061026660018363ffffffff61060316565b92915050565b61027461030c565b6102b3576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b031661032161066a565b6001600160a01b031614905090565b61033861030c565b610377576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b6103808161066e565b50565b61039361038e61066a565b610253565b6103ce5760405162461bcd60e51b81526004018080602001828103825260348152602001806108ad6034913960400191505060405180910390fd5b866001600160a01b031663f242432a8787878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561048457600080fd5b505af1158015610498573d6000803e3d6000fd5b5050505050505050505050565b6104ad61030c565b6104ec576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b610380816106b6565b6104fd61030c565b61053c576040805162461bcd60e51b81526020600482018190526024820152600080516020610902833981519152604482015290519081900360640190fd5b610380816106fe565b61055061038e61066a565b61058b5760405162461bcd60e51b81526004018080602001828103825260348152602001806108ad6034913960400191505060405180910390fd5b60408051632142170760e11b81526001600160a01b0385811660048301528481166024830152604482018490529151918616916342842e0e9160648082019260009290919082900301818387803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b5050505050505050565b60006001600160a01b03821661064a5760405162461bcd60e51b81526004018080602001828103825260228152602001806109226022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3390565b61067f60018263ffffffff61079e16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6106c760018263ffffffff61081f16565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b0381166107435760405162461bcd60e51b81526004018080602001828103825260268152602001806108876026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6107a88282610603565b156107fa576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6108298282610603565b6108645760405162461bcd60e51b81526004018080602001828103825260218152602001806108e16021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f72526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204f70657261746f7220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820c1a91e8f15d9f8f1bff372eada33d6f952e1739ba2c766696c5e5a0e77e4f26d64736f6c63430005110032
Deployed Bytecode Sourcemap
15933:451:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15933:451:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5294:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5294:113:0;-1:-1:-1;;;;;5294:113:0;;:::i;:::-;;;;;;;;;;;;;;;;;;7376:140;;;:::i;:::-;;6565:79;;;:::i;:::-;;;;-1:-1:-1;;;;;6565:79:0;;;;;;;;;;;;;;6931:94;;;:::i;8183:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8183:97:0;-1:-1:-1;;;;;8183:97:0;;:::i;16168:213::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;16168:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;16168:213:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16168:213:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;16168:213:0;;-1:-1:-1;16168:213:0;-1:-1:-1;16168:213:0;:::i;8288:103::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8288:103:0;-1:-1:-1;;;;;8288:103:0;;:::i;7671:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7671:109:0;-1:-1:-1;;;;;7671:109:0;;:::i;15988:172::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15988:172:0;;;;;;;;;;;;;;;;;;;;;;:::i;5294:113::-;5352:4;5376:23;:10;5391:7;5376:23;:14;:23;:::i;:::-;5369:30;5294:113;-1:-1:-1;;5294:113:0:o;7376:140::-;6777:9;:7;:9::i;:::-;6769:54;;;;;-1:-1:-1;;;6769:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6769:54:0;;;;;;;;;;;;;;;7475:1;7459:6;;7438:40;;-1:-1:-1;;;;;7459:6:0;;;;7438:40;;7475:1;;7438:40;7506:1;7489:19;;-1:-1:-1;;;;;;7489:19:0;;;7376:140::o;6565:79::-;6603:7;6630:6;-1:-1:-1;;;;;6630:6:0;6565:79;:::o;6931:94::-;6971:4;7011:6;;-1:-1:-1;;;;;7011:6:0;6995:12;:10;:12::i;:::-;-1:-1:-1;;;;;6995:22:0;;6988:29;;6931:94;:::o;8183:97::-;6777:9;:7;:9::i;:::-;6769:54;;;;;-1:-1:-1;;;6769:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6769:54:0;;;;;;;;;;;;;;;8251:21;8264:7;8251:12;:21::i;:::-;8183:97;:::o;16168:213::-;5185:24;5196:12;:10;:12::i;:::-;5185:10;:24::i;:::-;5177:89;;;;-1:-1:-1;;;5177:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16324:5;-1:-1:-1;;;;;16324:22:0;;16347:4;16353:2;16357;16361:5;16368:4;;16324:49;;;;;;;;;;;;;-1:-1:-1;;;;;16324:49:0;-1:-1:-1;;;;;16324:49:0;;;;;;-1:-1:-1;;;;;16324:49:0;-1:-1:-1;;;;;16324:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16324:49:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16324:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16324:49:0;;;;16168:213;;;;;;;:::o;8288:103::-;6777:9;:7;:9::i;:::-;6769:54;;;;;-1:-1:-1;;;6769:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6769:54:0;;;;;;;;;;;;;;;8359:24;8375:7;8359:15;:24::i;7671:109::-;6777:9;:7;:9::i;:::-;6769:54;;;;;-1:-1:-1;;;6769:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6769:54:0;;;;;;;;;;;;;;;7744:28;7763:8;7744:18;:28::i;15988:172::-;5185:24;5196:12;:10;:12::i;5185:24::-;5177:89;;;;-1:-1:-1;;;5177:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16111:41;;;-1:-1:-1;;;16111:41:0;;-1:-1:-1;;;;;16111:41:0;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;:41;;;;;-1:-1:-1;;16111:41:0;;;;;;;;-1:-1:-1;16111:22:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;16111:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16111:41:0;;;;15988:172;;;;:::o;4671:203::-;4743:4;-1:-1:-1;;;;;4768:21:0;;4760:68;;;;-1:-1:-1;;;4760:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4846:20:0;:11;:20;;;;;;;;;;;;;;;4671:203::o;3550:98::-;3630:10;3550:98;:::o;5415:128::-;5474:23;:10;5489:7;5474:23;:14;:23;:::i;:::-;5513:22;;-1:-1:-1;;;;;5513:22:0;;;;;;;;5415:128;:::o;5551:136::-;5613:26;:10;5631:7;5613:26;:17;:26;:::i;:::-;5655:24;;-1:-1:-1;;;;;5655:24:0;;;;;;;;5551:136;:::o;7886:229::-;-1:-1:-1;;;;;7960:22:0;;7952:73;;;;-1:-1:-1;;;7952:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8062:6;;;8041:38;;-1:-1:-1;;;;;8041:38:0;;;;8062:6;;;8041:38;;;8090:6;:17;;-1:-1:-1;;;;;;8090:17:0;-1:-1:-1;;;;;8090:17:0;;;;;;;;;;7886:229::o;4135:178::-;4213:18;4217:4;4223:7;4213:3;:18::i;:::-;4212:19;4204:63;;;;;-1:-1:-1;;;4204:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4278:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;4278:27:0;4301:4;4278:27;;;4135:178::o;4393:183::-;4473:18;4477:4;4483:7;4473:3;:18::i;:::-;4465:64;;;;-1:-1:-1;;;4465:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4540:20:0;4563:5;4540:20;;;;;;;;;;;:28;;-1:-1:-1;;4540:28:0;;;4393:183::o
Swarm Source
bzzr://c1a91e8f15d9f8f1bff372eada33d6f952e1739ba2c766696c5e5a0e77e4f26d
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.