More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 516 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Batch Transfer_s... | 52014815 | 472 days ago | IN | 0 POL | 0.03052065 | ||||
Batch Transfer_s... | 51996254 | 473 days ago | IN | 0 POL | 0.00374721 | ||||
Batch Transfer_s... | 51977140 | 473 days ago | IN | 0 POL | 0.01632593 | ||||
Batch Transfer_s... | 51931783 | 474 days ago | IN | 0 POL | 0.03548157 | ||||
Batch Transfer_s... | 51392026 | 488 days ago | IN | 0 POL | 0.12511544 | ||||
Batch Transfer_s... | 51391688 | 488 days ago | IN | 0 POL | 0.09715855 | ||||
Batch Transfer_s... | 51390917 | 488 days ago | IN | 0 POL | 0.15954165 | ||||
Batch Transfer_s... | 51386837 | 488 days ago | IN | 0 POL | 0.25798946 | ||||
Batch Transfer_s... | 51385765 | 488 days ago | IN | 0 POL | 0.20612048 | ||||
Batch Transfer_s... | 51385586 | 488 days ago | IN | 0 POL | 0.26818739 | ||||
Batch Transfer_s... | 51374081 | 489 days ago | IN | 0 POL | 0.14099452 | ||||
Batch Transfer_s... | 51261356 | 492 days ago | IN | 0 POL | 0.00445692 | ||||
Batch Transfer_s... | 51261060 | 492 days ago | IN | 0 POL | 0.03511684 | ||||
Batch Transfer_s... | 50295254 | 516 days ago | IN | 0 POL | 0.04073454 | ||||
Batch Transfer_s... | 50295150 | 516 days ago | IN | 0 POL | 0.03457674 | ||||
Batch Transfer_s... | 50295121 | 516 days ago | IN | 0 POL | 0.03862973 | ||||
Batch Transfer_s... | 49586278 | 534 days ago | IN | 0 POL | 0.03901008 | ||||
Batch Transfer_s... | 49474260 | 537 days ago | IN | 0 POL | 0.02208365 | ||||
Batch Transfer_s... | 49344836 | 540 days ago | IN | 0 POL | 0.05642901 | ||||
Batch Transfer_s... | 48158671 | 570 days ago | IN | 0 POL | 0.00988712 | ||||
Batch Transfer_s... | 48158589 | 570 days ago | IN | 0 POL | 0.01419159 | ||||
Batch Transfer_s... | 48158396 | 570 days ago | IN | 0 POL | 0.01768925 | ||||
Batch Transfer_s... | 48158354 | 570 days ago | IN | 0 POL | 0.03653704 | ||||
Batch Transfer_s... | 48158325 | 570 days ago | IN | 0 POL | 0.03541112 | ||||
Batch Transfer_s... | 48158248 | 570 days ago | IN | 0 POL | 0.03648032 |
Loading...
Loading
Contract Name:
BatchTransferContract
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-03-30 */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.4; /** * @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); } // File: @openzeppelin\contracts\utils\introspection\ERC165Checker.sol // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165Checker.sol) pragma solidity ^0.8.0; /** * @dev Library used to query support of an interface declared via {IERC165}. * * Note that these functions return the actual result of the query: they do not * `revert` if an interface is not supported. It is up to the caller to decide * what to do in these cases. */ library ERC165Checker { // As per the EIP-165 spec, no interface should ever match 0xffffffff bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff; /** * @dev Returns true if `account` supports the {IERC165} interface, */ function supportsERC165(address account) internal view returns (bool) { // Any contract that implements ERC165 must explicitly indicate support of // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid return _supportsERC165Interface(account, type(IERC165).interfaceId) && !_supportsERC165Interface(account, _INTERFACE_ID_INVALID); } /** * @dev Returns true if `account` supports the interface defined by * `interfaceId`. Support for {IERC165} itself is queried automatically. * * See {IERC165-supportsInterface}. */ function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) { // query support of both ERC165 as per the spec and support of _interfaceId return supportsERC165(account) && _supportsERC165Interface(account, interfaceId); } /** * @dev Returns a boolean array where each value corresponds to the * interfaces passed in and whether they're supported or not. This allows * you to batch check interfaces for a contract where your expectation * is that some interfaces may not be supported. * * See {IERC165-supportsInterface}. * * _Available since v3.4._ */ function getSupportedInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool[] memory) { // an array of booleans corresponding to interfaceIds and whether they're supported or not bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length); // query support of ERC165 itself if (supportsERC165(account)) { // query support of each interface in interfaceIds for (uint256 i = 0; i < interfaceIds.length; i++) { interfaceIdsSupported[i] = _supportsERC165Interface(account, interfaceIds[i]); } } return interfaceIdsSupported; } /** * @dev Returns true if `account` supports all the interfaces defined in * `interfaceIds`. Support for {IERC165} itself is queried automatically. * * Batch-querying can lead to gas savings by skipping repeated checks for * {IERC165} support. * * See {IERC165-supportsInterface}. */ function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) { // query support of ERC165 itself if (!supportsERC165(account)) { return false; } // query support of each interface in _interfaceIds for (uint256 i = 0; i < interfaceIds.length; i++) { if (!_supportsERC165Interface(account, interfaceIds[i])) { return false; } } // all interfaces supported return true; } /** * @notice Query if a contract implements an interface, does not check ERC165 support * @param account The address of the contract to query for support of an interface * @param interfaceId The interface identifier, as specified in ERC-165 * @return true if the contract at account indicates support of the interface with * identifier interfaceId, false otherwise * @dev Assumes that account contains a contract that supports ERC165, otherwise * the behavior of this method is undefined. This precondition can be checked * with {supportsERC165}. * Interface identification is specified in ERC-165. */ function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId); (bool success, bytes memory result) = account.staticcall{gas: 30000}(encodedParams); if (result.length < 32) return false; return success && abi.decode(result, (bool)); } } // File: @openzeppelin\contracts\token\ERC721\IERC721.sol // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } // File: @openzeppelin\contracts\token\ERC1155\IERC1155.sol // OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; } // File: contracts\batchTransfer.sol interface IisApprovedForAll{ function isApprovedForAll(address owner, address operator) external view returns (bool); } contract BatchTransferContract { ///@dev id of ERC1155 interface bytes4 ERC1155_INTERFACE_ID = 0xd9b67a26; ///@dev id of ERC721 interface bytes4 ERC721_INTERFACE_ID = 0x80ac58cd; event BatchTransfer(address indexed _implementation,address indexed _from, uint256 indexed _tokenId,address[] _addrs); constructor() { } /** * @dev Name of the contract * @return name of contract */ function name() pure public returns(string memory){ return "Batch transfer Contract V1"; } /** * @dev Checks if the contract is approved to transfer the user's NFTs * @notice once the contract is interacted with, the client is expected to unApprove this contract. * @return boolean */ function isApprovedForAll(address _impl) public view returns(bool) { if(!ERC165Checker.supportsInterface(_impl,ERC1155_INTERFACE_ID) && !ERC165Checker.supportsInterface(_impl,ERC721_INTERFACE_ID)){ return false; } return IisApprovedForAll(_impl).isApprovedForAll(msg.sender, address(this)); } /** * @dev Checks the type of contract and transfers _tokenId to each _addr. If ERC1155, one item of one quantity is sent to each wallet, if ERC751 * only one item is sent to one address. * @notice once the contract is interacted with, the client is expected to unApprove this contract. * @param _impl address of the NFT collection * @param _tokenId token id to transfer * @param _addrs Addresses to receive the NFT */ function batchTransfer_singleTokenToMultipleDest(address _impl,uint256 _tokenId, address[] calldata _addrs) external { require(isApprovedForAll(_impl),"Contract not approved"); if(ERC165Checker.supportsInterface(_impl,ERC721_INTERFACE_ID)){ require(_addrs.length==1,"ERC721: Can't send one token to multiple addresses"); IERC721(_impl).transferFrom(msg.sender, _addrs[0], _tokenId); } if(ERC165Checker.supportsInterface(_impl,ERC1155_INTERFACE_ID) ){ for (uint256 i = 0; i <_addrs.length; i++) { IERC1155(_impl).safeTransferFrom(msg.sender, _addrs[i], _tokenId,1,''); } } emit BatchTransfer(_impl,msg.sender,_tokenId,_addrs); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_implementation","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"_addrs","type":"address[]"}],"name":"BatchTransfer","type":"event"},{"inputs":[{"internalType":"address","name":"_impl","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address[]","name":"_addrs","type":"address[]"}],"name":"batchTransfer_singleTokenToMultipleDest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_impl","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
6080604052600080546001600160401b0319166780ac58cdd9b67a2617905534801561002a57600080fd5b506107a58061003a6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde031461004657806309690a491461008e578063cfa72b49146100b1575b600080fd5b604080518082018252601a81527f4261746368207472616e7366657220436f6e74726163742056310000000000006020820152905161008591906106cd565b60405180910390f35b6100a161009c36600461059e565b6100c6565b6040519015158152602001610085565b6100c46100bf3660046105b9565b61018b565b005b600080546100d890839060e01b610443565b1580156100fb57506000546100f9908390640100000000900460e01b610443565b155b1561010857506000919050565b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0383169063e985e9c59060440160206040518083038186803b15801561014d57600080fd5b505afa158015610161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101859190610643565b92915050565b610194846100c6565b6101dd5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd081b9bdd08185c1c1c9bdd9959605a1b60448201526064015b60405180910390fd5b6000546101f6908590640100000000900460e01b610443565b1561030657600181146102665760405162461bcd60e51b815260206004820152603260248201527f4552433732313a2043616e27742073656e64206f6e6520746f6b656e20746f206044820152716d756c7469706c652061646472657373657360701b60648201526084016101d4565b836001600160a01b03166323b872dd338484600081811061028957610289610759565b905060200201602081019061029e919061059e565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401600060405180830381600087803b1580156102ed57600080fd5b505af1158015610301573d6000803e3d6000fd5b505050505b60005461031790859060e01b610443565b156103ef5760005b818110156103ed57846001600160a01b031663f242432a3385858581811061034957610349610759565b905060200201602081019061035e919061059e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018790526001606482015260a06084820152600060a482015260c401600060405180830381600087803b1580156103c257600080fd5b505af11580156103d6573d6000803e3d6000fd5b5050505080806103e590610730565b91505061031f565b505b82336001600160a01b0316856001600160a01b03167fe2ce3c07138ef600062e78337a4b0e1dc3bd2980fbc5450cf861130bba79e9338585604051610435929190610681565b60405180910390a450505050565b600061044e83610466565b801561045f575061045f8383610499565b9392505050565b6000610479826301ffc9a760e01b610499565b80156101855750610492826001600160e01b0319610499565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b0387169061753090610500908690610665565b6000604051808303818686fa925050503d806000811461053c576040519150601f19603f3d011682016040523d82523d6000602084013e610541565b606091505b509150915060208151101561055c5760009350505050610185565b8180156105785750808060200190518101906105789190610643565b9695505050505050565b80356001600160a01b038116811461059957600080fd5b919050565b6000602082840312156105b057600080fd5b61045f82610582565b600080600080606085870312156105cf57600080fd5b6105d885610582565b935060208501359250604085013567ffffffffffffffff808211156105fc57600080fd5b818701915087601f83011261061057600080fd5b81358181111561061f57600080fd5b8860208260051b850101111561063457600080fd5b95989497505060200194505050565b60006020828403121561065557600080fd5b8151801515811461045f57600080fd5b60008251610677818460208701610700565b9190910192915050565b60208082528181018390526000908460408401835b868110156106c2576001600160a01b036106af84610582565b1682529183019190830190600101610696565b509695505050505050565b60208152600082518060208401526106ec816040850160208701610700565b601f01601f19169190910160400192915050565b60005b8381101561071b578181015183820152602001610703565b8381111561072a576000848401525b50505050565b600060001982141561075257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212205e078a96a8848bac693c5c3e067b2d6027a3933af8746f9e553a0534da7a9e3664736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde031461004657806309690a491461008e578063cfa72b49146100b1575b600080fd5b604080518082018252601a81527f4261746368207472616e7366657220436f6e74726163742056310000000000006020820152905161008591906106cd565b60405180910390f35b6100a161009c36600461059e565b6100c6565b6040519015158152602001610085565b6100c46100bf3660046105b9565b61018b565b005b600080546100d890839060e01b610443565b1580156100fb57506000546100f9908390640100000000900460e01b610443565b155b1561010857506000919050565b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0383169063e985e9c59060440160206040518083038186803b15801561014d57600080fd5b505afa158015610161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101859190610643565b92915050565b610194846100c6565b6101dd5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd081b9bdd08185c1c1c9bdd9959605a1b60448201526064015b60405180910390fd5b6000546101f6908590640100000000900460e01b610443565b1561030657600181146102665760405162461bcd60e51b815260206004820152603260248201527f4552433732313a2043616e27742073656e64206f6e6520746f6b656e20746f206044820152716d756c7469706c652061646472657373657360701b60648201526084016101d4565b836001600160a01b03166323b872dd338484600081811061028957610289610759565b905060200201602081019061029e919061059e565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101869052606401600060405180830381600087803b1580156102ed57600080fd5b505af1158015610301573d6000803e3d6000fd5b505050505b60005461031790859060e01b610443565b156103ef5760005b818110156103ed57846001600160a01b031663f242432a3385858581811061034957610349610759565b905060200201602081019061035e919061059e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018790526001606482015260a06084820152600060a482015260c401600060405180830381600087803b1580156103c257600080fd5b505af11580156103d6573d6000803e3d6000fd5b5050505080806103e590610730565b91505061031f565b505b82336001600160a01b0316856001600160a01b03167fe2ce3c07138ef600062e78337a4b0e1dc3bd2980fbc5450cf861130bba79e9338585604051610435929190610681565b60405180910390a450505050565b600061044e83610466565b801561045f575061045f8383610499565b9392505050565b6000610479826301ffc9a760e01b610499565b80156101855750610492826001600160e01b0319610499565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b0387169061753090610500908690610665565b6000604051808303818686fa925050503d806000811461053c576040519150601f19603f3d011682016040523d82523d6000602084013e610541565b606091505b509150915060208151101561055c5760009350505050610185565b8180156105785750808060200190518101906105789190610643565b9695505050505050565b80356001600160a01b038116811461059957600080fd5b919050565b6000602082840312156105b057600080fd5b61045f82610582565b600080600080606085870312156105cf57600080fd5b6105d885610582565b935060208501359250604085013567ffffffffffffffff808211156105fc57600080fd5b818701915087601f83011261061057600080fd5b81358181111561061f57600080fd5b8860208260051b850101111561063457600080fd5b95989497505060200194505050565b60006020828403121561065557600080fd5b8151801515811461045f57600080fd5b60008251610677818460208701610700565b9190910192915050565b60208082528181018390526000908460408401835b868110156106c2576001600160a01b036106af84610582565b1682529183019190830190600101610696565b509695505050505050565b60208152600082518060208401526106ec816040850160208701610700565b601f01601f19169190910160400192915050565b60005b8381101561071b578181015183820152602001610703565b8381111561072a576000848401525b50505050565b600060001982141561075257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212205e078a96a8848bac693c5c3e067b2d6027a3933af8746f9e553a0534da7a9e3664736f6c63430008070033
Deployed Bytecode Sourcemap
14824:2349:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15272:104;15333:35;;;;;;;;;;;;;;;;15272:104;;;;15333:35;15272:104;:::i;:::-;;;;;;;;15603:337;;;;;;:::i;:::-;;:::i;:::-;;;3841:14:1;;3834:22;3816:41;;3804:2;3789:18;15603:337:0;3676:187:1;16407:761:0;;;;;;:::i;:::-;;:::i;:::-;;15603:337;15664:4;15723:20;;15685:59;;15717:5;;15723:20;;15685:31;:59::i;:::-;15684:60;:123;;;;-1:-1:-1;15787:19:0;;15749:58;;15781:5;;15787:19;;;;;15749:31;:58::i;:::-;15748:59;15684:123;15681:166;;;-1:-1:-1;15830:5:0;;15603:337;-1:-1:-1;15603:337:0:o;15681:166::-;15864:68;;-1:-1:-1;;;15864:68:0;;15906:10;15864:68;;;1918:34:1;15926:4:0;1968:18:1;;;1961:43;-1:-1:-1;;;;;15864:41:0;;;;;1853:18:1;;15864:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15857:75;15603:337;-1:-1:-1;;15603:337:0:o;16407:761::-;16543:23;16560:5;16543:16;:23::i;:::-;16535:56;;;;-1:-1:-1;;;16535:56:0;;4665:2:1;16535:56:0;;;4647:21:1;4704:2;4684:18;;;4677:30;-1:-1:-1;;;4723:18:1;;;4716:51;4784:18;;16535:56:0;;;;;;;;;16645:19;;16607:58;;16639:5;;16645:19;;;;;16607:31;:58::i;:::-;16604:242;;;16704:1;16689:16;;16681:78;;;;-1:-1:-1;;;16681:78:0;;5015:2:1;16681:78:0;;;4997:21:1;5054:2;5034:18;;;5027:30;5093:34;5073:18;;;5066:62;-1:-1:-1;;;5144:18:1;;;5137:48;5202:19;;16681:78:0;4813:414:1;16681:78:0;16782:5;-1:-1:-1;;;;;16774:27:0;;16802:10;16814:6;;16821:1;16814:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16774:60;;-1:-1:-1;;;;;;16774:60:0;;;;;;;-1:-1:-1;;;;;2273:15:1;;;16774:60:0;;;2255:34:1;2325:15;;2305:18;;;2298:43;2357:18;;;2350:34;;;2190:18;;16774:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16604:242;16899:20;;16861:59;;16893:5;;16899:20;;16861:31;:59::i;:::-;16858:238;;;16942:9;16937:148;16957:16;;;16937:148;;;17008:5;-1:-1:-1;;;;;16999:32:0;;17032:10;17044:6;;17051:1;17044:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16999:70;;-1:-1:-1;;;;;;16999:70:0;;;;;;;-1:-1:-1;;;;;2754:15:1;;;16999:70:0;;;2736:34:1;2806:15;;2786:18;;;2779:43;2838:18;;;2831:34;;;17064:1:0;2881:18:1;;;2874:34;2716:3;2924:19;;;2917:32;-1:-1:-1;2965:19:1;;;2958:30;3005:19;;16999:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16975:3;;;;;:::i;:::-;;;;16937:148;;;;16858:238;17144:8;17133:10;-1:-1:-1;;;;;17113:47:0;17127:5;-1:-1:-1;;;;;17113:47:0;;17153:6;;17113:47;;;;;;;:::i;:::-;;;;;;;;16407:761;;;;:::o;2247:277::-;2334:4;2443:23;2458:7;2443:14;:23::i;:::-;:73;;;;;2470:46;2495:7;2504:11;2470:24;:46::i;:::-;2436:80;2247:277;-1:-1:-1;;;2247:277:0:o;1604:417::-;1668:4;1879:60;1904:7;-1:-1:-1;;;1879:24:0;:60::i;:::-;:134;;;;-1:-1:-1;1957:56:0;1982:7;-1:-1:-1;;;;;;1957:24:0;:56::i;:::-;1956:57;1859:154;1604:417;-1:-1:-1;;1604:417:0:o;5208:414::-;5347:71;;;-1:-1:-1;;;;;;4030:33:1;;5347:71:0;;;;4012:52:1;;;;5347:71:0;;;;;;;;;;3985:18:1;;;;5347:71:0;;;;;;;-1:-1:-1;;;;;5347:71:0;-1:-1:-1;;;5347:71:0;;;5467:45;;5301:4;;5347:71;5301:4;;;;-1:-1:-1;;;;;5467:18:0;;;5491:5;;5467:45;;5347:71;;5467:45;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:83;;;;5543:2;5527:6;:13;:18;5523:36;;;5554:5;5547:12;;;;;;;5523:36;5577:7;:37;;;;;5599:6;5588:26;;;;;;;;;;;;:::i;:::-;5570:44;5208:414;-1:-1:-1;;;;;;5208:414:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:757::-;487:6;495;503;511;564:2;552:9;543:7;539:23;535:32;532:52;;;580:1;577;570:12;532:52;603:29;622:9;603:29;:::i;:::-;593:39;;679:2;668:9;664:18;651:32;641:42;;734:2;723:9;719:18;706:32;757:18;798:2;790:6;787:14;784:34;;;814:1;811;804:12;784:34;852:6;841:9;837:22;827:32;;897:7;890:4;886:2;882:13;878:27;868:55;;919:1;916;909:12;868:55;959:2;946:16;985:2;977:6;974:14;971:34;;;1001:1;998;991:12;971:34;1054:7;1049:2;1039:6;1036:1;1032:14;1028:2;1024:23;1020:32;1017:45;1014:65;;;1075:1;1072;1065:12;1014:65;383:757;;;;-1:-1:-1;;1106:2:1;1098:11;;-1:-1:-1;;;383:757:1:o;1145:277::-;1212:6;1265:2;1253:9;1244:7;1240:23;1236:32;1233:52;;;1281:1;1278;1271:12;1233:52;1313:9;1307:16;1366:5;1359:13;1352:21;1345:5;1342:32;1332:60;;1388:1;1385;1378:12;1427:274;1556:3;1594:6;1588:13;1610:53;1656:6;1651:3;1644:4;1636:6;1632:17;1610:53;:::i;:::-;1679:16;;;;;1427:274;-1:-1:-1;;1427:274:1:o;3035:636::-;3216:2;3268:21;;;3241:18;;;3324:22;;;3187:4;;3403:6;3377:2;3362:18;;3187:4;3437:208;3451:6;3448:1;3445:13;3437:208;;;-1:-1:-1;;;;;3516:26:1;3535:6;3516:26;:::i;:::-;3512:52;3500:65;;3620:15;;;;3585:12;;;;3473:1;3466:9;3437:208;;;-1:-1:-1;3662:3:1;3035:636;-1:-1:-1;;;;;;3035:636:1:o;4075:383::-;4224:2;4213:9;4206:21;4187:4;4256:6;4250:13;4299:6;4294:2;4283:9;4279:18;4272:34;4315:66;4374:6;4369:2;4358:9;4354:18;4349:2;4341:6;4337:15;4315:66;:::i;:::-;4442:2;4421:15;-1:-1:-1;;4417:29:1;4402:45;;;;4449:2;4398:54;;4075:383;-1:-1:-1;;4075:383:1:o;5232:258::-;5304:1;5314:113;5328:6;5325:1;5322:13;5314:113;;;5404:11;;;5398:18;5385:11;;;5378:39;5350:2;5343:10;5314:113;;;5445:6;5442:1;5439:13;5436:48;;;5480:1;5471:6;5466:3;5462:16;5455:27;5436:48;;5232:258;;;:::o;5495:232::-;5534:3;-1:-1:-1;;5555:17:1;;5552:140;;;5614:10;5609:3;5605:20;5602:1;5595:31;5649:4;5646:1;5639:15;5677:4;5674:1;5667:15;5552:140;-1:-1:-1;5719:1:1;5708:13;;5495:232::o;5732:127::-;5793:10;5788:3;5784:20;5781:1;5774:31;5824:4;5821:1;5814:15;5848:4;5845:1;5838:15
Swarm Source
ipfs://5e078a96a8848bac693c5c3e067b2d6027a3933af8746f9e553a0534da7a9e36
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.