Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,099 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint From Dope T... | 20083745 | 40 days ago | IN | 0 ETH | 0.00402936 | ||||
Mint From Dope T... | 19813973 | 78 days ago | IN | 0 ETH | 0.00249923 | ||||
Mint From Dope T... | 19813907 | 78 days ago | IN | 0 ETH | 0.00252549 | ||||
Mint From Dope T... | 19813519 | 78 days ago | IN | 0 ETH | 0.00258872 | ||||
Mint From Dope T... | 19217424 | 162 days ago | IN | 0 ETH | 0.00429592 | ||||
Open | 19059466 | 184 days ago | IN | 0 ETH | 0.00262617 | ||||
Mint From Dope T... | 18707390 | 233 days ago | IN | 0 ETH | 0.00684504 | ||||
Mint From Dope T... | 18707311 | 233 days ago | IN | 0 ETH | 0.00687188 | ||||
Open | 18705985 | 233 days ago | IN | 0 ETH | 0.00455984 | ||||
Mint From Dope T... | 18705854 | 233 days ago | IN | 0 ETH | 0.00587259 | ||||
Open | 18569306 | 253 days ago | IN | 0 ETH | 0.00488562 | ||||
Open | 18491551 | 263 days ago | IN | 0 ETH | 0.00393201 | ||||
Mint From Dope T... | 18469330 | 267 days ago | IN | 0 ETH | 0.0038561 | ||||
Open | 18444608 | 270 days ago | IN | 0 ETH | 0.00075006 | ||||
Open | 18444606 | 270 days ago | IN | 0 ETH | 0.00409823 | ||||
Mint From Dope T... | 18383838 | 279 days ago | IN | 0 ETH | 0.00276638 | ||||
Open | 18275209 | 294 days ago | IN | 0 ETH | 0.00019397 | ||||
Open | 18275204 | 294 days ago | IN | 0 ETH | 0.00208111 | ||||
Mint From Dope T... | 18274919 | 294 days ago | IN | 0 ETH | 0.00245815 | ||||
Mint From Dope T... | 18183931 | 307 days ago | IN | 0 ETH | 0.00346256 | ||||
Mint From Dope T... | 17716004 | 372 days ago | IN | 0 ETH | 0.00456233 | ||||
Mint From Dope T... | 17715988 | 372 days ago | IN | 0 ETH | 0.00461053 | ||||
Mint From Dope T... | 17596511 | 389 days ago | IN | 0 ETH | 0.0044431 | ||||
Mint From Dope T... | 17596501 | 389 days ago | IN | 0 ETH | 0.0044523 | ||||
Mint From Dope T... | 17596490 | 389 days ago | IN | 0 ETH | 0.00467663 |
Latest 9 internal transactions
Advanced mode:
Loading...
Loading
Contract Name:
Initiator
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity Multiple files format)
//SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.0; import {IERC20} from "./IERC20.sol"; import {IERC721} from "./IERC721.sol"; import {Ownable} from "./Ownable.sol"; import {Address} from "./Address.sol"; import {iOVM_CrossDomainMessenger} from "./iOVM_CrossDomainMessenger.sol"; import {IController} from "./IController.sol"; import {IHustlerActions} from "./IHustler.sol"; library Errors { string constant NotRightETH = "ngmi"; string constant NoMore = "nomo"; string constant NotTime = "wait"; string constant DoesNotOwnBagOrNotApproved = "not sender bag or not approved"; string constant AlreadyOpened = "already opened"; } contract Initiator is Ownable { event Opened(uint256 id); iOVM_CrossDomainMessenger messenger = iOVM_CrossDomainMessenger(0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1); address private constant timelock = 0xB57Ab8767CAe33bE61fF15167134861865F7D22C; address private constant tarrencellc = 0x75043C4d65f87FBB69b51Fa06F227E8d29731cDD; address private constant facesdba = 0xA2dE2d19edb4094c79FB1A285F3c30c77931Bf1e; address private controller; IERC721 immutable dope; IERC20 immutable paper; uint256 internal ogs = 0; uint256 public release; uint256 private initialCost = 12500000000000000000000; uint256 private immutable deployedAt = block.timestamp; mapping(uint256 => bool) private opened; constructor( IERC721 dope_, IERC20 paper_, address controller_ ) { dope = dope_; paper = paper_; controller = controller_; } function mintFromDopeTo( uint256 id, address to, IHustlerActions.SetMetadata calldata meta, bytes memory data, uint32 gasLimit ) external { require(release != 0 && release < block.timestamp, Errors.NotTime); require( msg.sender == dope.ownerOf(id), Errors.DoesNotOwnBagOrNotApproved ); require(!opened[id], Errors.AlreadyOpened); require(bytes(meta.name).length < 21, "nl"); require((meta.body[1] + 1) % 6 != 0, "og skin"); require(gasLimit > 1e6, "not enough gas"); opened[id] = true; bytes memory message = abi.encodeWithSelector( IController.mintTo.selector, id, to, meta, data ); messenger.sendMessage(controller, message, gasLimit); paper.transferFrom(msg.sender, timelock, cost()); emit Opened(id); } function mintOGFromDopeTo( uint256 id, address to, IHustlerActions.SetMetadata calldata meta, bytes memory data, uint32 gasLimit ) external payable { require(release != 0 && release < block.timestamp, Errors.NotTime); require( msg.sender == dope.ownerOf(id), Errors.DoesNotOwnBagOrNotApproved ); require(!opened[id], Errors.AlreadyOpened); require(msg.value == 250000000000000000, Errors.NotRightETH); require(ogs < 500, Errors.NoMore); require(bytes(meta.name).length < 21, "nl"); require(gasLimit > 1e6, "not enough gas"); opened[id] = true; ogs += 1; bytes memory message = abi.encodeWithSelector( IController.mintOGTo.selector, id, to, meta, data ); messenger.sendMessage(controller, message, gasLimit); paper.transferFrom(msg.sender, timelock, cost()); emit Opened(id); } function open( uint256 id, address to, uint32 gasLimit ) external { require(release != 0 && release < block.timestamp, Errors.NotTime); require( msg.sender == dope.ownerOf(id), Errors.DoesNotOwnBagOrNotApproved ); require(!opened[id], Errors.AlreadyOpened); require(gasLimit >= 45e4, "not enough gas"); opened[id] = true; bytes memory message = abi.encodeWithSelector( IController.open.selector, id, to ); messenger.sendMessage(controller, message, gasLimit); paper.transferFrom(msg.sender, timelock, cost()); emit Opened(id); } function setRelease(uint256 _release) external onlyOwner { release = _release; } function withdraw() external { // First half payable(timelock).transfer(address(this).balance / 2); // Half of second half (1/4) payable(tarrencellc).transfer(address(this).balance / 2); // Remainder payable(facesdba).transfer(address(this).balance); } function cost() public view returns (uint256) { if ((block.timestamp - deployedAt) > 420 days) { return 0; } else if ((block.timestamp - deployedAt) > 180 days) { return 3125000000000000000000; } else if ((block.timestamp - deployedAt) > 90 days) { return 6250000000000000000000; } return initialCost; } function isOpened(uint256 id) external view returns (bool) { return opened[id]; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: GPL-3.0 // Taken from https://raw.githubusercontent.com/nounsDAO/nouns-monorepo/master/packages/nouns-contracts/contracts/interfaces/INounsDescriptor.sol /// @title Interface for Hustler import "./IHustler.sol"; pragma solidity ^0.8.6; interface IController { function mintOGTo( uint256 dopeId, address to, IHustler.SetMetadata calldata m, bytes calldata data ) external; function mintTo( uint256 dopeId, address to, IHustler.SetMetadata calldata m, bytes calldata data ) external; function open(uint256 dopeId, address to) external; function mintItem( address to, uint8[5] memory components_, uint8 componentType, uint256 amount, bytes memory data ) external; function mintItemBatch( address to, uint8[] memory components_, uint8[] memory componentTypes, uint256[] memory amounts, bytes memory data ) external; function addItemComponent(uint8 componentType, string calldata component) external; function setEnforcer(address) external; function setInitiator(address) external; function setMaintainer(address) external; function setDAO(address) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @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; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @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; }
// SPDX-License-Identifier: GPL-3.0 // Taken from https://raw.githubusercontent.com/nounsDAO/nouns-monorepo/master/packages/nouns-contracts/contracts/interfaces/INounsDescriptor.sol /// @title Interface for Hustler import "./IERC1155.sol"; pragma solidity ^0.8.6; interface IEnforcer { function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external; function onERC1155Received( address, address from, uint256 id, uint256 value, bytes memory data ) external; function onUnequip(uint256 hustlerId, uint8[] calldata slots) external; function beforeTokenTransfer( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external returns (bool); } interface IHustlerActions { struct SetMetadata { bytes4 color; bytes4 background; bytes2 options; uint8[4] viewbox; uint8[4] body; uint8[10] order; bytes2 mask; string name; } function mintOGTo( address to, SetMetadata calldata m, bytes calldata data ) external returns (uint256); function mintTo( address to, SetMetadata calldata m, bytes calldata data ) external returns (uint256); function setEnforcer(address enforcer_) external; function addRles(uint8 part, bytes[] calldata _rles) external; } interface IHustler is IERC1155, IHustlerActions {}
// SPDX-License-Identifier: MIT pragma solidity ^0.8.6; /** * @title iOVM_CrossDomainMessenger */ interface iOVM_CrossDomainMessenger { /********** * Events * **********/ event SentMessage(bytes message); event RelayedMessage(bytes32 msgHash); event FailedRelayedMessage(bytes32 msgHash); /************* * Variables * *************/ function xDomainMessageSender() external view returns (address); /******************** * Public Functions * ********************/ /** * Sends a cross domain message to the target messenger. * @param _target Target contract address. * @param _message Message to send to the target. * @param _gasLimit Gas limit for the provided message. */ function sendMessage( address _target, bytes calldata _message, uint32 _gasLimit ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC721","name":"dope_","type":"address"},{"internalType":"contract IERC20","name":"paper_","type":"address"},{"internalType":"address","name":"controller_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Opened","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"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isOpened","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"components":[{"internalType":"bytes4","name":"color","type":"bytes4"},{"internalType":"bytes4","name":"background","type":"bytes4"},{"internalType":"bytes2","name":"options","type":"bytes2"},{"internalType":"uint8[4]","name":"viewbox","type":"uint8[4]"},{"internalType":"uint8[4]","name":"body","type":"uint8[4]"},{"internalType":"uint8[10]","name":"order","type":"uint8[10]"},{"internalType":"bytes2","name":"mask","type":"bytes2"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct IHustlerActions.SetMetadata","name":"meta","type":"tuple"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"mintFromDopeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"components":[{"internalType":"bytes4","name":"color","type":"bytes4"},{"internalType":"bytes4","name":"background","type":"bytes4"},{"internalType":"bytes2","name":"options","type":"bytes2"},{"internalType":"uint8[4]","name":"viewbox","type":"uint8[4]"},{"internalType":"uint8[4]","name":"body","type":"uint8[4]"},{"internalType":"uint8[10]","name":"order","type":"uint8[10]"},{"internalType":"bytes2","name":"mask","type":"bytes2"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct IHustlerActions.SetMetadata","name":"meta","type":"tuple"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"mintOGFromDopeTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_release","type":"uint256"}],"name":"setRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e0604052600180546001600160a01b0319167325ace71c97b33cc4729cf772ae268934f7ab5fa117905560006003556902a5a058fc295ed000006005554260c0523480156200004e57600080fd5b50604051620018543803806200185483398101604081905262000071916200010d565b6200007c33620000bd565b606092831b6001600160601b03199081166080529190921b1660a052600280546001600160a01b0319166001600160a01b039092169190911790556200017a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156200012357600080fd5b8351620001308162000161565b6020850151909350620001438162000161565b6040850151909250620001568162000161565b809150509250925092565b6001600160a01b03811681146200017757600080fd5b50565b60805160601c60a05160601c60c051611681620001d3600039600081816102120152818161024c015261028e0152600081816107040152610af9015260008181610417015281816108ac0152610c9801526116816000f3fe60806040526004361061009c5760003560e01c806386d1a69f1161006457806386d1a69f146101555780638da5cb5b1461016b5780639ea9c0ce14610193578063cfa4f3e8146101b3578063e63dda3f146101d3578063f2fde38b146101e657600080fd5b806313faede6146100a15780633ccfd60b146100c9578063436046de146100e05780635faf46bb14610100578063715018a614610140575b600080fd5b3480156100ad57600080fd5b506100b6610206565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102cf565b005b3480156100ec57600080fd5b506100de6100fb3660046110e1565b6103aa565b34801561010c57600080fd5b5061013061011b3660046110c8565b60009081526006602052604090205460ff1690565b60405190151581526020016100c0565b34801561014c57600080fd5b506100de610812565b34801561016157600080fd5b506100b660045481565b34801561017757600080fd5b506000546040516001600160a01b0390911681526020016100c0565b34801561019f57600080fd5b506100de6101ae3660046111ed565b610848565b3480156101bf57600080fd5b506100de6101ce3660046110c8565b610c05565b6100de6101e13660046110e1565b610c34565b3480156101f257600080fd5b506100de610201366004611065565b610f27565b6000630229b6006102377f0000000000000000000000000000000000000000000000000000000000000000426115bb565b11156102435750600090565b62ed4e006102717f0000000000000000000000000000000000000000000000000000000000000000426115bb565b1115610285575068a968163f0a57b4000090565b6276a7006102b37f0000000000000000000000000000000000000000000000000000000000000000426115bb565b11156102c85750690152d02c7e14af68000090565b5060055490565b73b57ab8767cae33be61ff15167134861865f7d22c6108fc6102f26002476115a7565b6040518115909202916000818181858888f1935050505015801561031a573d6000803e3d6000fd5b507375043c4d65f87fbb69b51fa06f227e8d29731cdd6108fc61033e6002476115a7565b6040518115909202916000818181858888f19350505050158015610366573d6000803e3d6000fd5b5060405173a2de2d19edb4094c79fb1a285f3c30c77931bf1e904780156108fc02916000818181858888f193505050501580156103a7573d6000803e3d6000fd5b50565b600454158015906103bc575042600454105b604051806040016040528060048152602001631dd85a5d60e21b815250906104005760405162461bcd60e51b81526004016103f79190611358565b60405180910390fd5b506040516331a9108f60e11b8152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f7665640000815250906105015760405162461bcd60e51b81526004016103f79190611358565b50600085815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff161561055b5760405162461bcd60e51b81526004016103f79190611358565b50601561056c6102c08501856114d6565b9050106105a05760405162461bcd60e51b81526020600482015260026024820152611b9b60f21b60448201526064016103f7565b60066105b46101208501610100860161122b565b6105bf906001611582565b6105c991906115d2565b60ff166106025760405162461bcd60e51b815260206004820152600760248201526637b39039b5b4b760c91b60448201526064016103f7565b620f42408163ffffffff161161062a5760405162461bcd60e51b81526004016103f79061136b565b600085815260066020526040808220805460ff1916600117905551632763514f60e21b906106629088908890889088906024016113c8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526001546002549251633dbb202b60e01b81529193506001600160a01b0390811692633dbb202b926106d09291909116908590879060040161131e565b600060405180830381600087803b1580156106ea57600080fd5b505af11580156106fe573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd3373b57ab8767cae33be61ff15167134861865f7d22c61074f610206565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b15801561079e57600080fd5b505af11580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906110a6565b506040518681527f076ee234681125279e2cfc540cc3442961385c988bd343b4081105999f39f5ea9060200160405180910390a1505050505050565b6000546001600160a01b0316331461083c5760405162461bcd60e51b81526004016103f790611393565b6108466000610fbb565b565b6004541580159061085a575042600454105b604051806040016040528060048152602001631dd85a5d60e21b815250906108955760405162461bcd60e51b81526004016103f79190611358565b506040516331a9108f60e11b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b1580156108f657600080fd5b505afa15801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e9190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f7665640000815250906109965760405162461bcd60e51b81526004016103f79190611358565b50600083815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff16156109f05760405162461bcd60e51b81526004016103f79190611358565b506206ddd08163ffffffff161015610a1a5760405162461bcd60e51b81526004016103f79061136b565b600083815260066020526040808220805460ff1916600117905551602481018590526001600160a01b03841660448201526319bd950d60e01b9060640160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526001546002549251633dbb202b60e01b81529193506001600160a01b0390811692633dbb202b92610ac59291909116908590879060040161131e565b600060405180830381600087803b158015610adf57600080fd5b505af1158015610af3573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd3373b57ab8767cae33be61ff15167134861865f7d22c610b44610206565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb91906110a6565b506040518481527f076ee234681125279e2cfc540cc3442961385c988bd343b4081105999f39f5ea9060200160405180910390a150505050565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016103f790611393565b600455565b60045415801590610c46575042600454105b604051806040016040528060048152602001631dd85a5d60e21b81525090610c815760405162461bcd60e51b81526004016103f79190611358565b506040516331a9108f60e11b8152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f766564000081525090610d825760405162461bcd60e51b81526004016103f79190611358565b50600085815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff1615610ddc5760405162461bcd60e51b81526004016103f79190611358565b506040805180820190915260048152636e676d6960e01b60208201526703782dace9d900003414610e205760405162461bcd60e51b81526004016103f79190611358565b506101f460035410604051806040016040528060048152602001636e6f6d6f60e01b81525090610e635760405162461bcd60e51b81526004016103f79190611358565b506015610e746102c08501856114d6565b905010610ea85760405162461bcd60e51b81526020600482015260026024820152611b9b60f21b60448201526064016103f7565b620f42408163ffffffff1611610ed05760405162461bcd60e51b81526004016103f79061136b565b6000858152600660205260408120805460ff191660019081179091556003805491929091610eff90849061156a565b9091555050604051600090631ad7a75160e31b906106629088908890889088906024016113c8565b6000546001600160a01b03163314610f515760405162461bcd60e51b81526004016103f790611393565b6001600160a01b038116610fb65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f7565b6103a7815b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160f01b03198116811461102357600080fd5b919050565b80356001600160e01b03198116811461102357600080fd5b803563ffffffff8116811461102357600080fd5b803560ff8116811461102357600080fd5b60006020828403121561107757600080fd5b813561108281611636565b9392505050565b60006020828403121561109b57600080fd5b815161108281611636565b6000602082840312156110b857600080fd5b8151801515811461108257600080fd5b6000602082840312156110da57600080fd5b5035919050565b600080600080600060a086880312156110f957600080fd5b85359450602086013561110b81611636565b9350604086013567ffffffffffffffff8082111561112857600080fd5b908701906102e0828a03121561113d57600080fd5b9093506060870135908082111561115357600080fd5b818801915088601f83011261116757600080fd5b81358181111561117957611179611620565b604051601f8201601f19908116603f011681019083821181831017156111a1576111a1611620565b816040528281528b60208487010111156111ba57600080fd5b8260208601602083013760006020848301015280965050505050506111e160808701611040565b90509295509295909350565b60008060006060848603121561120257600080fd5b83359250602084013561121481611636565b915061122260408501611040565b90509250925092565b60006020828403121561123d57600080fd5b61108282611054565b8060005b600a8110156112745760ff61125e83611054565b168452602093840193919091019060010161124a565b50505050565b8060005b60048110156112745760ff61129283611054565b168452602093840193919091019060010161127e565b6000815180845260005b818110156112ce576020818501810151868301820152016112b2565b818111156112e0576000602083870101525b50601f01601f19169290920160200192915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152606060208201819052600090611342908301856112a8565b905063ffffffff83166040830152949350505050565b60208152600061108260208301846112a8565b6020808252600e908201526d6e6f7420656e6f7567682067617360901b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8481526001600160a01b038416602082015260806040820152600083356001600160e01b0319811681146113fb57600080fd5b6001600160e01b031916608083015261141660208501611028565b6001600160e01b03191660a08301526114316040850161100b565b6001600160f01b03191660c083015261145060e083016060860161127a565b61016061146281840160e0870161127a565b6114726101e08401828701611246565b506114806102a0850161100b565b6001600160f01b03191661032083015261149e6102c0850185611524565b6102e06103408501526114b6610360850182846112f5565b91505082810360608401526114cb81856112a8565b979650505050505050565b6000808335601e198436030181126114ed57600080fd5b83018035915067ffffffffffffffff82111561150857600080fd5b60200191503681900382131561151d57600080fd5b9250929050565b6000808335601e1984360301811261153b57600080fd5b830160208101925035905067ffffffffffffffff81111561155b57600080fd5b80360383131561151d57600080fd5b6000821982111561157d5761157d6115f4565b500190565b600060ff821660ff84168060ff0382111561159f5761159f6115f4565b019392505050565b6000826115b6576115b661160a565b500490565b6000828210156115cd576115cd6115f4565b500390565b600060ff8316806115e5576115e561160a565b8060ff84160691505092915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146103a757600080fdfea264697066735822122082d6eac75eab8e5c7a3c56ce8e1ec10b28e4bb606d9bf12ea9430a1ed6a667a064736f6c634300080600330000000000000000000000008707276df042e89669d69a177d3da7dc78bd87230000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c000000000000000000000000124760902088ddbfeb8f27210d3b0c645a5c0a8b
Deployed Bytecode
0x60806040526004361061009c5760003560e01c806386d1a69f1161006457806386d1a69f146101555780638da5cb5b1461016b5780639ea9c0ce14610193578063cfa4f3e8146101b3578063e63dda3f146101d3578063f2fde38b146101e657600080fd5b806313faede6146100a15780633ccfd60b146100c9578063436046de146100e05780635faf46bb14610100578063715018a614610140575b600080fd5b3480156100ad57600080fd5b506100b6610206565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102cf565b005b3480156100ec57600080fd5b506100de6100fb3660046110e1565b6103aa565b34801561010c57600080fd5b5061013061011b3660046110c8565b60009081526006602052604090205460ff1690565b60405190151581526020016100c0565b34801561014c57600080fd5b506100de610812565b34801561016157600080fd5b506100b660045481565b34801561017757600080fd5b506000546040516001600160a01b0390911681526020016100c0565b34801561019f57600080fd5b506100de6101ae3660046111ed565b610848565b3480156101bf57600080fd5b506100de6101ce3660046110c8565b610c05565b6100de6101e13660046110e1565b610c34565b3480156101f257600080fd5b506100de610201366004611065565b610f27565b6000630229b6006102377f00000000000000000000000000000000000000000000000000000000619892e3426115bb565b11156102435750600090565b62ed4e006102717f00000000000000000000000000000000000000000000000000000000619892e3426115bb565b1115610285575068a968163f0a57b4000090565b6276a7006102b37f00000000000000000000000000000000000000000000000000000000619892e3426115bb565b11156102c85750690152d02c7e14af68000090565b5060055490565b73b57ab8767cae33be61ff15167134861865f7d22c6108fc6102f26002476115a7565b6040518115909202916000818181858888f1935050505015801561031a573d6000803e3d6000fd5b507375043c4d65f87fbb69b51fa06f227e8d29731cdd6108fc61033e6002476115a7565b6040518115909202916000818181858888f19350505050158015610366573d6000803e3d6000fd5b5060405173a2de2d19edb4094c79fb1a285f3c30c77931bf1e904780156108fc02916000818181858888f193505050501580156103a7573d6000803e3d6000fd5b50565b600454158015906103bc575042600454105b604051806040016040528060048152602001631dd85a5d60e21b815250906104005760405162461bcd60e51b81526004016103f79190611358565b60405180910390fd5b506040516331a9108f60e11b8152600481018690527f0000000000000000000000008707276df042e89669d69a177d3da7dc78bd87236001600160a01b031690636352211e9060240160206040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104999190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f7665640000815250906105015760405162461bcd60e51b81526004016103f79190611358565b50600085815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff161561055b5760405162461bcd60e51b81526004016103f79190611358565b50601561056c6102c08501856114d6565b9050106105a05760405162461bcd60e51b81526020600482015260026024820152611b9b60f21b60448201526064016103f7565b60066105b46101208501610100860161122b565b6105bf906001611582565b6105c991906115d2565b60ff166106025760405162461bcd60e51b815260206004820152600760248201526637b39039b5b4b760c91b60448201526064016103f7565b620f42408163ffffffff161161062a5760405162461bcd60e51b81526004016103f79061136b565b600085815260066020526040808220805460ff1916600117905551632763514f60e21b906106629088908890889088906024016113c8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526001546002549251633dbb202b60e01b81529193506001600160a01b0390811692633dbb202b926106d09291909116908590879060040161131e565b600060405180830381600087803b1580156106ea57600080fd5b505af11580156106fe573d6000803e3d6000fd5b505050507f0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c6001600160a01b03166323b872dd3373b57ab8767cae33be61ff15167134861865f7d22c61074f610206565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b15801561079e57600080fd5b505af11580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906110a6565b506040518681527f076ee234681125279e2cfc540cc3442961385c988bd343b4081105999f39f5ea9060200160405180910390a1505050505050565b6000546001600160a01b0316331461083c5760405162461bcd60e51b81526004016103f790611393565b6108466000610fbb565b565b6004541580159061085a575042600454105b604051806040016040528060048152602001631dd85a5d60e21b815250906108955760405162461bcd60e51b81526004016103f79190611358565b506040516331a9108f60e11b8152600481018490527f0000000000000000000000008707276df042e89669d69a177d3da7dc78bd87236001600160a01b031690636352211e9060240160206040518083038186803b1580156108f657600080fd5b505afa15801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e9190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f7665640000815250906109965760405162461bcd60e51b81526004016103f79190611358565b50600083815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff16156109f05760405162461bcd60e51b81526004016103f79190611358565b506206ddd08163ffffffff161015610a1a5760405162461bcd60e51b81526004016103f79061136b565b600083815260066020526040808220805460ff1916600117905551602481018590526001600160a01b03841660448201526319bd950d60e01b9060640160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526001546002549251633dbb202b60e01b81529193506001600160a01b0390811692633dbb202b92610ac59291909116908590879060040161131e565b600060405180830381600087803b158015610adf57600080fd5b505af1158015610af3573d6000803e3d6000fd5b505050507f0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c6001600160a01b03166323b872dd3373b57ab8767cae33be61ff15167134861865f7d22c610b44610206565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb91906110a6565b506040518481527f076ee234681125279e2cfc540cc3442961385c988bd343b4081105999f39f5ea9060200160405180910390a150505050565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b81526004016103f790611393565b600455565b60045415801590610c46575042600454105b604051806040016040528060048152602001631dd85a5d60e21b81525090610c815760405162461bcd60e51b81526004016103f79190611358565b506040516331a9108f60e11b8152600481018690527f0000000000000000000000008707276df042e89669d69a177d3da7dc78bd87236001600160a01b031690636352211e9060240160206040518083038186803b158015610ce257600080fd5b505afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611089565b6001600160a01b0316336001600160a01b0316146040518060400160405280601e81526020017f6e6f742073656e64657220626167206f72206e6f7420617070726f766564000081525090610d825760405162461bcd60e51b81526004016103f79190611358565b50600085815260066020908152604091829020548251808401909352600e83526d185b1c9958591e481bdc195b995960921b9183019190915260ff1615610ddc5760405162461bcd60e51b81526004016103f79190611358565b506040805180820190915260048152636e676d6960e01b60208201526703782dace9d900003414610e205760405162461bcd60e51b81526004016103f79190611358565b506101f460035410604051806040016040528060048152602001636e6f6d6f60e01b81525090610e635760405162461bcd60e51b81526004016103f79190611358565b506015610e746102c08501856114d6565b905010610ea85760405162461bcd60e51b81526020600482015260026024820152611b9b60f21b60448201526064016103f7565b620f42408163ffffffff1611610ed05760405162461bcd60e51b81526004016103f79061136b565b6000858152600660205260408120805460ff191660019081179091556003805491929091610eff90849061156a565b9091555050604051600090631ad7a75160e31b906106629088908890889088906024016113c8565b6000546001600160a01b03163314610f515760405162461bcd60e51b81526004016103f790611393565b6001600160a01b038116610fb65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f7565b6103a7815b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160f01b03198116811461102357600080fd5b919050565b80356001600160e01b03198116811461102357600080fd5b803563ffffffff8116811461102357600080fd5b803560ff8116811461102357600080fd5b60006020828403121561107757600080fd5b813561108281611636565b9392505050565b60006020828403121561109b57600080fd5b815161108281611636565b6000602082840312156110b857600080fd5b8151801515811461108257600080fd5b6000602082840312156110da57600080fd5b5035919050565b600080600080600060a086880312156110f957600080fd5b85359450602086013561110b81611636565b9350604086013567ffffffffffffffff8082111561112857600080fd5b908701906102e0828a03121561113d57600080fd5b9093506060870135908082111561115357600080fd5b818801915088601f83011261116757600080fd5b81358181111561117957611179611620565b604051601f8201601f19908116603f011681019083821181831017156111a1576111a1611620565b816040528281528b60208487010111156111ba57600080fd5b8260208601602083013760006020848301015280965050505050506111e160808701611040565b90509295509295909350565b60008060006060848603121561120257600080fd5b83359250602084013561121481611636565b915061122260408501611040565b90509250925092565b60006020828403121561123d57600080fd5b61108282611054565b8060005b600a8110156112745760ff61125e83611054565b168452602093840193919091019060010161124a565b50505050565b8060005b60048110156112745760ff61129283611054565b168452602093840193919091019060010161127e565b6000815180845260005b818110156112ce576020818501810151868301820152016112b2565b818111156112e0576000602083870101525b50601f01601f19169290920160200192915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152606060208201819052600090611342908301856112a8565b905063ffffffff83166040830152949350505050565b60208152600061108260208301846112a8565b6020808252600e908201526d6e6f7420656e6f7567682067617360901b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8481526001600160a01b038416602082015260806040820152600083356001600160e01b0319811681146113fb57600080fd5b6001600160e01b031916608083015261141660208501611028565b6001600160e01b03191660a08301526114316040850161100b565b6001600160f01b03191660c083015261145060e083016060860161127a565b61016061146281840160e0870161127a565b6114726101e08401828701611246565b506114806102a0850161100b565b6001600160f01b03191661032083015261149e6102c0850185611524565b6102e06103408501526114b6610360850182846112f5565b91505082810360608401526114cb81856112a8565b979650505050505050565b6000808335601e198436030181126114ed57600080fd5b83018035915067ffffffffffffffff82111561150857600080fd5b60200191503681900382131561151d57600080fd5b9250929050565b6000808335601e1984360301811261153b57600080fd5b830160208101925035905067ffffffffffffffff81111561155b57600080fd5b80360383131561151d57600080fd5b6000821982111561157d5761157d6115f4565b500190565b600060ff821660ff84168060ff0382111561159f5761159f6115f4565b019392505050565b6000826115b6576115b661160a565b500490565b6000828210156115cd576115cd6115f4565b500390565b600060ff8316806115e5576115e561160a565b8060ff84160691505092915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146103a757600080fdfea264697066735822122082d6eac75eab8e5c7a3c56ce8e1ec10b28e4bb606d9bf12ea9430a1ed6a667a064736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008707276df042e89669d69a177d3da7dc78bd87230000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c000000000000000000000000124760902088ddbfeb8f27210d3b0c645a5c0a8b
-----Decoded View---------------
Arg [0] : dope_ (address): 0x8707276DF042E89669d69A177d3DA7dC78bd8723
Arg [1] : paper_ (address): 0x7aE1D57b58fA6411F32948314BadD83583eE0e8C
Arg [2] : controller_ (address): 0x124760902088dDBFEb8F27210D3B0C645a5c0A8B
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008707276df042e89669d69a177d3da7dc78bd8723
Arg [1] : 0000000000000000000000007ae1d57b58fa6411f32948314badd83583ee0e8c
Arg [2] : 000000000000000000000000124760902088ddbfeb8f27210d3b0c645a5c0a8b
Deployed Bytecode Sourcemap
677:4568:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4760:384;;;;;;;;;;;;;:::i;:::-;;;8735:25:11;;;8723:2;8708:18;4760:384:8;;;;;;;;4450:304;;;;;;;;;;;;;:::i;:::-;;1644:946;;;;;;;;;;-1:-1:-1;1644:946:8;;;;;:::i;:::-;;:::i;5150:93::-;;;;;;;;;;-1:-1:-1;5150:93:8;;;;;:::i;:::-;5203:4;5226:10;;;:6;:10;;;;;;;;;5150:93;;;;6562:14:11;;6555:22;6537:41;;6525:2;6510:18;5150:93:8;6492:92:11;1598::9;;;;;;;;;;;;;:::i;1264:22:8:-;;;;;;;;;;;;;;;;966:85:9;;;;;;;;;;-1:-1:-1;1012:7:9;1038:6;966:85;;-1:-1:-1;;;;;1038:6:9;;;5550:51:11;;5538:2;5523:18;966:85:9;5505:102:11;3634:712:8;;;;;;;;;;-1:-1:-1;3634:712:8;;;;;:::i;:::-;;:::i;4352:92::-;;;;;;;;;;-1:-1:-1;4352:92:8;;;;;:::i;:::-;;:::i;2596:1032::-;;;;;;:::i;:::-;;:::i;1839:189:9:-;;;;;;;;;;-1:-1:-1;1839:189:9;;;;;:::i;:::-;;:::i;4760:384:8:-;4797:7;4853:8;4821:28;4839:10;4821:15;:28;:::i;:::-;4820:41;4816:293;;;-1:-1:-1;4884:1:8;;4760:384::o;4816:293::-;4939:8;4907:28;4925:10;4907:15;:28;:::i;:::-;4906:41;4902:207;;;-1:-1:-1;4970:22:8;;4760:384::o;4902:207::-;5046:7;5014:28;5032:10;5014:15;:28;:::i;:::-;5013:40;5009:100;;;-1:-1:-1;5076:22:8;;4760:384::o;5009:100::-;-1:-1:-1;5126:11:8;;;4760:384::o;4450:304::-;909:42;4511:53;4538:25;4562:1;4538:21;:25;:::i;:::-;4511:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1004:42:8;4611:56;4641:25;4665:1;4641:21;:25;:::i;:::-;4611:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4698:49:8;;1096:42;;4725:21;4698:49;;;;;;;;;4725:21;1096:42;4698:49;;;;;;;;;;;;;;;;;;;;;4450:304::o;1644:946::-;1844:7;;:12;;;;:41;;;1870:15;1860:7;;:25;1844:41;1887:14;;;;;;;;;;;;;-1:-1:-1;;;1887:14:8;;;1836:66;;;;;-1:-1:-1;;;1836:66:8;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1947:16:8;;-1:-1:-1;;;1947:16:8;;;;;8735:25:11;;;1947:4:8;-1:-1:-1;;;;;1947:12:8;;;;8708:18:11;;1947:16:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1933:30:8;:10;-1:-1:-1;;;;;1933:30:8;;1977:33;;;;;;;;;;;;;;;;;1912:108;;;;;-1:-1:-1;;;1912:108:8;;;;;;;;:::i;:::-;-1:-1:-1;2039:10:8;;;;:6;:10;;;;;;;;;;2051:20;;;;;;;;;;;-1:-1:-1;;;2051:20:8;;;;;;;2039:10;;2038:11;2030:42;;;;-1:-1:-1;;;2030:42:8;;;;;;;;:::i;:::-;-1:-1:-1;2116:2:8;2096:9;;;;:4;:9;:::i;:::-;2090:23;;:28;2082:43;;;;-1:-1:-1;;;2082:43:8;;8461:2:11;2082:43:8;;;8443:21:11;8500:1;8480:18;;;8473:29;-1:-1:-1;;;8518:18:11;;;8511:32;8560:18;;2082:43:8;8433:151:11;2082:43:8;2164:1;2144:12;;;;;;;;:::i;:::-;:16;;2159:1;2144:16;:::i;:::-;2143:22;;;;:::i;:::-;:27;;2135:47;;;;-1:-1:-1;;;2135:47:8;;7015:2:11;2135:47:8;;;6997:21:11;7054:1;7034:18;;;7027:29;-1:-1:-1;;;7072:18:11;;;7065:37;7119:18;;2135:47:8;6987:156:11;2135:47:8;2211:3;2200:8;:14;;;2192:41;;;;-1:-1:-1;;;2192:41:8;;;;;;;:::i;:::-;2244:10;;;;:6;:10;;;;;;:17;;-1:-1:-1;;2244:17:8;2257:4;2244:17;;;2295:141;-1:-1:-1;;;2331:27:8;2295:141;;2251:2;;2388;;2404:4;;2422;;2295:141;;;:::i;:::-;;;;-1:-1:-1;;2295:141:8;;;;;;;;;;;;;;-1:-1:-1;;;;;2295:141:8;-1:-1:-1;;;;;;2295:141:8;;;;;;;;;;2446:9;;2468:10;;2446:52;;-1:-1:-1;;;2446:52:8;;2295:141;;-1:-1:-1;;;;;;2446:9:8;;;;:21;;:52;;2468:10;;;;;2295:141;;2489:8;;2446:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:5;-1:-1:-1;;;;;2509:18:8;;2528:10;909:42;2550:6;:4;:6::i;:::-;2509:48;;-1:-1:-1;;;;;;2509:48:8;;;;;;;-1:-1:-1;;;;;5870:15:11;;;2509:48:8;;;5852:34:11;5922:15;;;;5902:18;;;5895:43;5954:18;;;5947:34;5787:18;;2509:48:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2573:10:8;;8735:25:11;;;2573:10:8;;8723:2:11;8708:18;2573:10:8;;;;;;;1826:764;1644:946;;;;;:::o;1598:92:9:-;1012:7;1038:6;-1:-1:-1;;;;;1038:6:9;666:10:1;1178:23:9;1170:68;;;;-1:-1:-1;;;1170:68:9;;;;;;;:::i;:::-;1662:21:::1;1680:1;1662:9;:21::i;:::-;1598:92::o:0;3634:712:8:-;3746:7;;:12;;;;:41;;;3772:15;3762:7;;:25;3746:41;3789:14;;;;;;;;;;;;;-1:-1:-1;;;3789:14:8;;;3738:66;;;;;-1:-1:-1;;;3738:66:8;;;;;;;;:::i;:::-;-1:-1:-1;3849:16:8;;-1:-1:-1;;;3849:16:8;;;;;8735:25:11;;;3849:4:8;-1:-1:-1;;;;;3849:12:8;;;;8708:18:11;;3849:16:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3835:30:8;:10;-1:-1:-1;;;;;3835:30:8;;3879:33;;;;;;;;;;;;;;;;;3814:108;;;;;-1:-1:-1;;;3814:108:8;;;;;;;;:::i;:::-;-1:-1:-1;3941:10:8;;;;:6;:10;;;;;;;;;;3953:20;;;;;;;;;;;-1:-1:-1;;;3953:20:8;;;;;;;3941:10;;3940:11;3932:42;;;;-1:-1:-1;;;3932:42:8;;;;;;;;:::i;:::-;;4004:4;3992:8;:16;;;;3984:43;;;;-1:-1:-1;;;3984:43:8;;;;;;;:::i;:::-;4038:10;;;;:6;:10;;;;;;:17;;-1:-1:-1;;4038:17:8;4051:4;4038:17;;;4089:103;;;;8945:25:11;;;-1:-1:-1;;;;;9006:32:11;;8986:18;;;8979:60;-1:-1:-1;;;4125:25:8;8918:18:11;;4089:103:8;;;-1:-1:-1;;4089:103:8;;;;;;;;;;;;;;-1:-1:-1;;;;;4089:103:8;-1:-1:-1;;;;;;4089:103:8;;;;;;;;;;4202:9;;4224:10;;4202:52;;-1:-1:-1;;;4202:52:8;;4089:103;;-1:-1:-1;;;;;;4202:9:8;;;;:21;;:52;;4224:10;;;;;4089:103;;4245:8;;4202:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4265:5;-1:-1:-1;;;;;4265:18:8;;4284:10;909:42;4306:6;:4;:6::i;:::-;4265:48;;-1:-1:-1;;;;;;4265:48:8;;;;;;;-1:-1:-1;;;;;5870:15:11;;;4265:48:8;;;5852:34:11;5922:15;;;;5902:18;;;5895:43;5954:18;;;5947:34;5787:18;;4265:48:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4329:10:8;;8735:25:11;;;4329:10:8;;8723:2:11;8708:18;4329:10:8;;;;;;;3728:618;3634:712;;;:::o;4352:92::-;1012:7:9;1038:6;-1:-1:-1;;;;;1038:6:9;666:10:1;1178:23:9;1170:68;;;;-1:-1:-1;;;1170:68:9;;;;;;;:::i;:::-;4419:7:8::1;:18:::0;4352:92::o;2596:1032::-;2806:7;;:12;;;;:41;;;2832:15;2822:7;;:25;2806:41;2849:14;;;;;;;;;;;;;-1:-1:-1;;;2849:14:8;;;2798:66;;;;;-1:-1:-1;;;2798:66:8;;;;;;;;:::i;:::-;-1:-1:-1;2909:16:8;;-1:-1:-1;;;2909:16:8;;;;;8735:25:11;;;2909:4:8;-1:-1:-1;;;;;2909:12:8;;;;8708:18:11;;2909:16:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2895:30:8;:10;-1:-1:-1;;;;;2895:30:8;;2939:33;;;;;;;;;;;;;;;;;2874:108;;;;;-1:-1:-1;;;2874:108:8;;;;;;;;:::i;:::-;-1:-1:-1;3001:10:8;;;;:6;:10;;;;;;;;;;3013:20;;;;;;;;;;;-1:-1:-1;;;3013:20:8;;;;;;;3001:10;;3000:11;2992:42;;;;-1:-1:-1;;;2992:42:8;;;;;;;;:::i;:::-;-1:-1:-1;3085:18:8;;;;;;;;;;;;-1:-1:-1;;;3085:18:8;;;;3065;3052:9;:31;3044:60;;;;-1:-1:-1;;;3044:60:8;;;;;;;;:::i;:::-;;3128:3;3122;;:9;3133:13;;;;;;;;;;;;;-1:-1:-1;;;3133:13:8;;;3114:33;;;;;-1:-1:-1;;;3114:33:8;;;;;;;;:::i;:::-;-1:-1:-1;3191:2:8;3171:9;;;;:4;:9;:::i;:::-;3165:23;;:28;3157:43;;;;-1:-1:-1;;;3157:43:8;;8461:2:11;3157:43:8;;;8443:21:11;8500:1;8480:18;;;8473:29;-1:-1:-1;;;8518:18:11;;;8511:32;8560:18;;3157:43:8;8433:151:11;3157:43:8;3229:3;3218:8;:14;;;3210:41;;;;-1:-1:-1;;;3210:41:8;;;;;;;:::i;:::-;3262:10;;;;:6;:10;;;;;:17;;-1:-1:-1;;3262:17:8;3275:4;3262:17;;;;;;3289:3;:8;;3275:4;;3289:3;;:8;;3275:4;;3289:8;:::i;:::-;;;;-1:-1:-1;;3331:143:8;;3308:20;;-1:-1:-1;;;3367:29:8;3331:143;;3410:2;;3426;;3442:4;;3460;;3331:143;;;:::i;1839:189:9:-;1012:7;1038:6;-1:-1:-1;;;;;1038:6:9;666:10:1;1178:23:9;1170:68;;;;-1:-1:-1;;;1170:68:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;1927:22:9;::::1;1919:73;;;::::0;-1:-1:-1;;;1919:73:9;;7350:2:11;1919:73:9::1;::::0;::::1;7332:21:11::0;7389:2;7369:18;;;7362:30;7428:34;7408:18;;;7401:62;-1:-1:-1;;;7479:18:11;;;7472:36;7525:19;;1919:73:9::1;7322:228:11::0;1919:73:9::1;2002:19;2012:8;2034:169:::0;2089:16;2108:6;;-1:-1:-1;;;;;2124:17:9;;;-1:-1:-1;;;;;;2124:17:9;;;;;;2156:40;;2108:6;;;;;;;2156:40;;2089:16;2156:40;2079:124;2034:169;:::o;14:168:11:-;81:20;;-1:-1:-1;;;;;;130:27:11;;120:38;;110:2;;172:1;169;162:12;110:2;62:120;;;:::o;187:173::-;254:20;;-1:-1:-1;;;;;;303:32:11;;293:43;;283:2;;350:1;347;340:12;365:163;432:20;;492:10;481:22;;471:33;;461:2;;518:1;515;508:12;533:156;599:20;;659:4;648:16;;638:27;;628:2;;679:1;676;669:12;694:247;753:6;806:2;794:9;785:7;781:23;777:32;774:2;;;822:1;819;812:12;774:2;861:9;848:23;880:31;905:5;880:31;:::i;:::-;930:5;764:177;-1:-1:-1;;;764:177:11:o;946:251::-;1016:6;1069:2;1057:9;1048:7;1044:23;1040:32;1037:2;;;1085:1;1082;1075:12;1037:2;1117:9;1111:16;1136:31;1161:5;1136:31;:::i;1202:277::-;1269:6;1322:2;1310:9;1301:7;1297:23;1293:32;1290:2;;;1338:1;1335;1328:12;1290:2;1370:9;1364:16;1423:5;1416:13;1409:21;1402:5;1399:32;1389:2;;1445:1;1442;1435:12;1484:180;1543:6;1596:2;1584:9;1575:7;1571:23;1567:32;1564:2;;;1612:1;1609;1602:12;1564:2;-1:-1:-1;1635:23:11;;1554:110;-1:-1:-1;1554:110:11:o;1669:1466::-;1802:6;1810;1818;1826;1834;1887:3;1875:9;1866:7;1862:23;1858:33;1855:2;;;1904:1;1901;1894:12;1855:2;1940:9;1927:23;1917:33;;2000:2;1989:9;1985:18;1972:32;2013:31;2038:5;2013:31;:::i;:::-;2063:5;-1:-1:-1;2119:2:11;2104:18;;2091:32;2142:18;2172:14;;;2169:2;;;2199:1;2196;2189:12;2169:2;2222:22;;;;2278:3;2260:16;;;2256:26;2253:2;;;2295:1;2292;2285:12;2253:2;2318;;-1:-1:-1;2373:2:11;2358:18;;2345:32;;2389:16;;;2386:2;;;2418:1;2415;2408:12;2386:2;2456:8;2445:9;2441:24;2431:34;;2503:7;2496:4;2492:2;2488:13;2484:27;2474:2;;2525:1;2522;2515:12;2474:2;2561;2548:16;2583:2;2579;2576:10;2573:2;;;2589:18;;:::i;:::-;2664:2;2658:9;2632:2;2718:13;;-1:-1:-1;;2714:22:11;;;2738:2;2710:31;2706:40;2694:53;;;2762:18;;;2782:22;;;2759:46;2756:2;;;2808:18;;:::i;:::-;2848:10;2844:2;2837:22;2883:2;2875:6;2868:18;2923:7;2918:2;2913;2909;2905:11;2901:20;2898:33;2895:2;;;2944:1;2941;2934:12;2895:2;3000;2995;2991;2987:11;2982:2;2974:6;2970:15;2957:46;3045:1;3040:2;3035;3027:6;3023:15;3019:24;3012:35;3066:6;3056:16;;;;;;;3091:38;3124:3;3113:9;3109:19;3091:38;:::i;:::-;3081:48;;1845:1290;;;;;;;;:::o;3140:387::-;3216:6;3224;3232;3285:2;3273:9;3264:7;3260:23;3256:32;3253:2;;;3301:1;3298;3291:12;3253:2;3337:9;3324:23;3314:33;;3397:2;3386:9;3382:18;3369:32;3410:31;3435:5;3410:31;:::i;:::-;3460:5;-1:-1:-1;3484:37:11;3517:2;3502:18;;3484:37;:::i;:::-;3474:47;;3243:284;;;;;:::o;3532:182::-;3589:6;3642:2;3630:9;3621:7;3617:23;3613:32;3610:2;;;3658:1;3655;3648:12;3610:2;3681:27;3698:9;3681:27;:::i;3719:359::-;3823:5;3846:1;3856:216;3870:4;3867:1;3864:11;3856:216;;;3959:4;3933:24;3950:6;3933:24;:::i;:::-;3929:35;3917:48;;3988:4;4012:12;;;;4047:15;;;;;3890:1;3883:9;3856:216;;;3860:3;;3780:298;;:::o;4083:355::-;4183:5;4206:1;4216:216;4230:4;4227:1;4224:11;4216:216;;;4319:4;4293:24;4310:6;4293:24;:::i;:::-;4289:35;4277:48;;4348:4;4372:12;;;;4407:15;;;;;4250:1;4243:9;4216:216;;4656:471;4697:3;4735:5;4729:12;4762:6;4757:3;4750:19;4787:1;4797:162;4811:6;4808:1;4805:13;4797:162;;;4873:4;4929:13;;;4925:22;;4919:29;4901:11;;;4897:20;;4890:59;4826:12;4797:162;;;4977:6;4974:1;4971:13;4968:2;;;5043:1;5036:4;5027:6;5022:3;5018:16;5014:27;5007:38;4968:2;-1:-1:-1;5109:2:11;5088:15;-1:-1:-1;;5084:29:11;5075:39;;;;5116:4;5071:50;;4705:422;-1:-1:-1;;4705:422:11:o;5132:267::-;5221:6;5216:3;5209:19;5273:6;5266:5;5259:4;5254:3;5250:14;5237:43;-1:-1:-1;5325:1:11;5300:16;;;5318:4;5296:27;;;5289:38;;;;5381:2;5360:15;;;-1:-1:-1;;5356:29:11;5347:39;;;5343:50;;5199:200::o;5992:400::-;-1:-1:-1;;;;;6193:32:11;;6175:51;;6262:2;6257;6242:18;;6235:30;;;-1:-1:-1;;6282:44:11;;6307:18;;6299:6;6282:44;:::i;:::-;6274:52;;6374:10;6366:6;6362:23;6357:2;6346:9;6342:18;6335:51;6165:227;;;;;;:::o;6589:219::-;6738:2;6727:9;6720:21;6701:4;6758:44;6798:2;6787:9;6783:18;6775:6;6758:44;:::i;7555:338::-;7757:2;7739:21;;;7796:2;7776:18;;;7769:30;-1:-1:-1;;;7830:2:11;7815:18;;7808:44;7884:2;7869:18;;7729:164::o;7898:356::-;8100:2;8082:21;;;8119:18;;;8112:30;8178:34;8173:2;8158:18;;8151:62;8245:2;8230:18;;8072:182::o;9050:1541::-;9321:25;;;-1:-1:-1;;;;;9382:32:11;;9377:2;9362:18;;9355:60;9451:3;9446:2;9431:18;;9424:31;-1:-1:-1;9477:20:11;;-1:-1:-1;;;;;;9526:32:11;;9516:43;;9506:2;;9573:1;9570;9563:12;9506:2;-1:-1:-1;;;;;;4612:32:11;9626:3;9611:19;;4600:45;9655:34;9685:2;9673:15;;9655:34;:::i;:::-;-1:-1:-1;;;;;;4612:32:11;9740:3;9725:19;;4600:45;9769:34;9799:2;9787:15;;9769:34;:::i;:::-;-1:-1:-1;;;;;;4508:27:11;9854:3;9839:19;;4496:40;9868:71;9934:3;9919:19;;9912:4;9900:17;;9868:71;:::i;:::-;9958:3;9970:69;10035:2;10024:9;10020:18;10014:3;10006:6;10002:16;9970:69;:::i;:::-;10048:73;10116:3;10105:9;10101:19;10096:2;10088:6;10084:15;10048:73;:::i;:::-;;10145:38;10175:6;10167;10163:19;10145:38;:::i;:::-;-1:-1:-1;;;;;;4508:27:11;10234:3;10219:19;;4496:40;10282:60;10334:6;10322:19;;10326:6;10282:60;:::i;:::-;10379:6;10373:3;10362:9;10358:19;10351:35;10406:75;10476:3;10465:9;10461:19;10447:12;10433;10406:75;:::i;:::-;10395:86;;;10528:9;10523:3;10519:19;10512:4;10501:9;10497:20;10490:49;10556:29;10581:3;10573:6;10556:29;:::i;:::-;10548:37;9311:1280;-1:-1:-1;;;;;;;9311:1280:11:o;10596:522::-;10674:4;10680:6;10740:11;10727:25;10834:2;10830:7;10819:8;10803:14;10799:29;10795:43;10775:18;10771:68;10761:2;;10853:1;10850;10843:12;10761:2;10880:33;;10932:20;;;-1:-1:-1;10975:18:11;10964:30;;10961:2;;;11007:1;11004;10997:12;10961:2;11040:4;11028:17;;-1:-1:-1;11071:14:11;11067:27;;;11057:38;;11054:2;;;11108:1;11105;11098:12;11054:2;10691:427;;;;;:::o;11123:504::-;11182:5;11189:6;11249:3;11236:17;11335:2;11331:7;11320:8;11304:14;11300:29;11296:43;11276:18;11272:68;11262:2;;11354:1;11351;11344:12;11262:2;11382:33;;11486:4;11473:18;;;-1:-1:-1;11434:21:11;;-1:-1:-1;11514:18:11;11503:30;;11500:2;;;11546:1;11543;11536:12;11500:2;11596:6;11580:14;11576:27;11566:8;11562:42;11559:2;;;11617:1;11614;11607:12;11632:128;11672:3;11703:1;11699:6;11696:1;11693:13;11690:2;;;11709:18;;:::i;:::-;-1:-1:-1;11745:9:11;;11680:80::o;11765:204::-;11803:3;11839:4;11836:1;11832:12;11871:4;11868:1;11864:12;11906:3;11900:4;11896:14;11891:3;11888:23;11885:2;;;11914:18;;:::i;:::-;11950:13;;11811:158;-1:-1:-1;;;11811:158:11:o;11974:120::-;12014:1;12040;12030:2;;12045:18;;:::i;:::-;-1:-1:-1;12079:9:11;;12020:74::o;12099:125::-;12139:4;12167:1;12164;12161:8;12158:2;;;12172:18;;:::i;:::-;-1:-1:-1;12209:9:11;;12148:76::o;12229:157::-;12259:1;12293:4;12290:1;12286:12;12317:3;12307:2;;12324:18;;:::i;:::-;12376:3;12369:4;12366:1;12362:12;12358:22;12353:27;;;12265:121;;;;:::o;12391:127::-;12452:10;12447:3;12443:20;12440:1;12433:31;12483:4;12480:1;12473:15;12507:4;12504:1;12497:15;12523:127;12584:10;12579:3;12575:20;12572:1;12565:31;12615:4;12612:1;12605:15;12639:4;12636:1;12629:15;12787:127;12848:10;12843:3;12839:20;12836:1;12829:31;12879:4;12876:1;12869:15;12903:4;12900:1;12893:15;12919:131;-1:-1:-1;;;;;12994:31:11;;12984:42;;12974:2;;13040:1;13037;13030:12
Swarm Source
ipfs://82d6eac75eab8e5c7a3c56ce8e1ec10b28e4bb606d9bf12ea9430a1ed6a667a0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.