Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 668 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Combine Dragons ... | 19630783 | 99 days ago | IN | 0 ETH | 0.00217412 | ||||
Combine Dragons ... | 19630771 | 99 days ago | IN | 0 ETH | 0.00217636 | ||||
Combine Dragons ... | 19520909 | 115 days ago | IN | 0 ETH | 0.00453083 | ||||
Combine Dragons ... | 19415089 | 130 days ago | IN | 0 ETH | 0.00843565 | ||||
Combine Dragons ... | 19383671 | 134 days ago | IN | 0 ETH | 0.00729229 | ||||
Combine Dragons ... | 19383640 | 134 days ago | IN | 0 ETH | 0.00918644 | ||||
Combine Dragons ... | 19255420 | 152 days ago | IN | 0 ETH | 0.02931942 | ||||
Combine Dragons ... | 19248661 | 153 days ago | IN | 0 ETH | 0.00543407 | ||||
Combine Dragons ... | 19239429 | 154 days ago | IN | 0 ETH | 0.0022415 | ||||
Combine Dragons ... | 19226118 | 156 days ago | IN | 0 ETH | 0.00244879 | ||||
Combine Dragons ... | 19048631 | 181 days ago | IN | 0 ETH | 0.00210504 | ||||
Combine Dragons ... | 19048628 | 181 days ago | IN | 0 ETH | 0.00177527 | ||||
Combine Dragons ... | 19047838 | 181 days ago | IN | 0 ETH | 0.00171299 | ||||
Combine Dragons ... | 19034603 | 183 days ago | IN | 0 ETH | 0.00799722 | ||||
Combine Dragons ... | 18983594 | 190 days ago | IN | 0 ETH | 0.00383354 | ||||
Combine Dragons ... | 18960056 | 193 days ago | IN | 0 ETH | 0.0029927 | ||||
Combine Dragons ... | 18925128 | 198 days ago | IN | 0 ETH | 0.00150339 | ||||
Combine Dragons ... | 18838463 | 211 days ago | IN | 0 ETH | 0.00322859 | ||||
Combine Dragons ... | 18833468 | 211 days ago | IN | 0 ETH | 0.00367777 | ||||
Combine Dragons ... | 18833466 | 211 days ago | IN | 0 ETH | 0.00385209 | ||||
Combine Dragons ... | 18833459 | 211 days ago | IN | 0 ETH | 0.00388577 | ||||
Combine Dragons ... | 18803184 | 216 days ago | IN | 0 ETH | 0.00329859 | ||||
Combine Dragons ... | 18784122 | 218 days ago | IN | 0 ETH | 0.00700208 | ||||
Combine Dragons ... | 18777166 | 219 days ago | IN | 0 ETH | 0.01059635 | ||||
Combine Dragons ... | 18725032 | 226 days ago | IN | 0 ETH | 0.00773732 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GiantDragonAdventure
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-14 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IAdventureApproval { function setAdventuresApprovedForAll(address operator, bool approved) external; function areAdventuresApprovedForAll(address owner, address operator) external view returns (bool); function isAdventureWhitelisted(address account) external view returns (bool); } // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } /** * @dev Required interface of an ERC721 compliant contract. */ 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`. * * 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; /** * @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 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 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 the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @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); } contract DragonCustodian { constructor(address babyDragons, address dragonEssence, address dragonAdventure) { IERC721(dragonEssence).setApprovalForAll(dragonAdventure, true); IERC721(babyDragons).setApprovalForAll(dragonAdventure, true); IAdventureApproval(dragonEssence).setAdventuresApprovedForAll(dragonAdventure, true); IAdventureApproval(babyDragons).setAdventuresApprovedForAll(dragonAdventure, true); } } /** * @dev Required interface of mintable Giant Dragon contracts. */ interface IMintableGiantDragon { /** * @notice Mints multiple Giant Dragons evolved with the specified Baby Dragon and Dragon Essence tokens. */ function mintDragonsBatch( address to, uint256[] calldata babyDragonTokenIds, uint256[] calldata dragonEssenceTokenIds ) external; } /** * @dev Required interface to determine if a minter is whitelisted */ interface IMinterWhitelist { /** * @notice Determines if an address is a whitelisted minter */ function whitelistedMinters(address account) external view returns (bool); } /** * @title IAdventure * @author Limit Break, Inc. * @notice The base interface that all `Adventure` contracts must conform to. * @dev All contracts that implement the adventure/quest system and interact with an {IAdventurous} token are required to implement this interface. */ interface IAdventure is IERC165 { /** * @dev Returns whether or not quests on this adventure lock tokens. * Developers of adventure contract should ensure that this is immutable * after deployment of the adventure contract. Failure to do so * can lead to error that deadlock token transfers. */ function questsLockTokens() external view returns (bool); /** * @dev A callback function that AdventureERC721 must invoke when a quest has been successfully entered. * Throws if the caller is not an expected AdventureERC721 contract designed to work with the Adventure. * Not permitted to throw in any other case, as this could lead to tokens being locked in quests. */ function onQuestEntered(address adventurer, uint256 tokenId, uint256 questId) external; /** * @dev A callback function that AdventureERC721 must invoke when a quest has been successfully exited. * Throws if the caller is not an expected AdventureERC721 contract designed to work with the Adventure. * Not permitted to throw in any other case, as this could lead to tokens being locked in quests. */ function onQuestExited(address adventurer, uint256 tokenId, uint256 questId, uint256 questStartTimestamp) external; } /** * @title Quest * @author Limit Break, Inc. * @notice Quest data structure for {IAdventurous} contracts. */ struct Quest { bool isActive; uint32 questId; uint64 startTimestamp; uint32 arrayIndex; } /** * @title IAdventurous * @author Limit Break, Inc. * @notice The base interface that all `Adventurous` token contracts must conform to in order to support adventures and quests. * @dev All contracts that support adventures and quests are required to implement this interface. */ interface IAdventurous is IERC165 { /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets, for special in-game adventures. */ event AdventureApprovalForAll(address indexed tokenOwner, address indexed operator, bool approved); /** * @dev Emitted when a token enters or exits a quest */ event QuestUpdated(uint256 indexed tokenId, address indexed tokenOwner, address indexed adventure, uint256 questId, bool active, bool booted); /** * @notice Transfers a player's token if they have opted into an authorized, whitelisted adventure. */ function adventureTransferFrom(address from, address to, uint256 tokenId) external; /** * @notice Safe transfers a player's token if they have opted into an authorized, whitelisted adventure. */ function adventureSafeTransferFrom(address from, address to, uint256 tokenId) external; /** * @notice Burns a player's token if they have opted into an authorized, whitelisted adventure. */ function adventureBurn(uint256 tokenId) external; /** * @notice Enters a player's token into a quest if they have opted into an authorized, whitelisted adventure. */ function enterQuest(uint256 tokenId, uint256 questId) external; /** * @notice Exits a player's token from a quest if they have opted into an authorized, whitelisted adventure. */ function exitQuest(uint256 tokenId, uint256 questId) external; /** * @notice Returns the number of quests a token is actively participating in for a specified adventure */ function getQuestCount(uint256 tokenId, address adventure) external view returns (uint256); /** * @notice Returns the amount of time a token has been participating in the specified quest */ function getTimeOnQuest(uint256 tokenId, address adventure, uint256 questId) external view returns (uint256); /** * @notice Returns whether or not a token is currently participating in the specified quest as well as the time it was started and the quest index */ function isParticipatingInQuest(uint256 tokenId, address adventure, uint256 questId) external view returns (bool participatingInQuest, uint256 startTimestamp, uint256 index); /** * @notice Returns a list of all active quests for the specified token id and adventure */ function getActiveQuests(uint256 tokenId, address adventure) external view returns (Quest[] memory activeQuests); } /** * @title IAdventurousERC721 * @author Limit Break, Inc. * @notice Combines all {IAdventurous} and all {IERC721} functionality into a single, unified interface. * @dev This interface may be used as a convenience to interact with tokens that support both interface standards. */ interface IAdventurousERC721 is IERC721, IAdventurous { } // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) /** * @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; } } /** * @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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } /** * @title GiantDragonAdventure * @author Limit Break, Inc. * @notice An adventure that combines your Baby Dragon and a provided Dragon Essence. */ contract GiantDragonAdventure is Ownable, Pausable, ERC165, IAdventure { error GiantDragonAdventure__CallbackNotImplemented(); error GiantDragonAdventure__CallerNotOwnerOfBabyDragon(); error GiantDragonAdventure__CallerNotOwnerOfDragonEssence(); error GiantDragonAdventure__CannotSpecifyAddressZeroForBabyDragons(); error GiantDragonAdventure__CannotSpecifyAddressZeroForGiantDragon(); error GiantDragonAdventure__CannotSpecifyAddressZeroForDragonEssence(); error GiantDragonAdventure__InputArrayLengthMismatch(); error GiantDragonAdventure__QuantityMustBeGreaterThanZero(); /// @dev An unchangeable reference to the Baby Dragons contract used in the dragon quest. IAdventurousERC721 public immutable babyDragons; /// @dev An unchangeable reference to the Dragon Essence contract used in the dragon quest. IAdventurousERC721 public immutable dragonEssence; /// @dev An unchangeable reference to the Giant Dragons contract given at the end of the quest. IMintableGiantDragon public immutable giantDragons; constructor(address babyDragonAddress, address dragonEssenceAddress, address giantDragonAddress) { if (babyDragonAddress == address(0)) { revert GiantDragonAdventure__CannotSpecifyAddressZeroForBabyDragons(); } if (dragonEssenceAddress == address(0)) { revert GiantDragonAdventure__CannotSpecifyAddressZeroForDragonEssence(); } if (giantDragonAddress == address(0)) { revert GiantDragonAdventure__CannotSpecifyAddressZeroForGiantDragon(); } babyDragons = IAdventurousERC721(babyDragonAddress); dragonEssence = IAdventurousERC721(dragonEssenceAddress); giantDragons = IMintableGiantDragon(giantDragonAddress); } /// @dev A callback function that AdventureERC721 must invoke when a quest has been successfully entered. /// Throws in all cases quest entry for this adventure is fulfilled via adventureTransferFrom instead of onQuestEntered, and this callback should not be triggered. function onQuestEntered(address, /*adventurer*/ uint256, /*tokenId*/ uint256 /*questId*/ ) external pure override { revert GiantDragonAdventure__CallbackNotImplemented(); } /// @dev A callback function that AdventureERC721 must invoke when a quest has been successfully exited. /// Throws in all cases quest exit for this adventure is fulfilled via transferFrom or adventureBurn instead of onQuestExited, and this callback should not be triggered. function onQuestExited( address, /*adventurer*/ uint256, /*tokenId*/ uint256, /*questId*/ uint256 /*questStartTimestamp*/ ) external pure override { revert GiantDragonAdventure__CallbackNotImplemented(); } /// @notice Returns false - this quest uses hard staking. function questsLockTokens() external pure override returns (bool) { return false; } /** * @notice Pauses new quest entries for the quest. * * @dev Throws if the caller is not the owner. * * @dev <h4>Postconditions:</h4> * @dev 1. `_pause` is set to true. */ function pauseNewQuestEntries() external onlyOwner { _pause(); } /** * @notice Unpauses new quest entries for the quest. * * @dev Throws if the caller is not the owner. * * @dev <h4>Postconditions:</h4> * @dev 1. `_pause` is set to false. */ function unpauseNewQuestEntries() external onlyOwner { _unpause(); } /** * @notice Combines the provided Baby Dragons and Dragon Essences to form Giant Dragons * * @dev Throws when `quantity` is zero, where `quantity` is the length of the Baby Dragons Token IDs array. * @dev Throws when the lengths of the Baby Dragon Token IDs and Dragon Essence Token IDs do not match. * * @dev <h4>Postconditions:</h4> * @dev 1. The Baby Dragons used to complete the quest have been burnt. * @dev 2. The Dragon Essences used to complete the quest have been burnt. * @dev 3. A Giant Dragon has been minted to the adventurer who has completed the quest. * @dev 4. `quantity` DragonMinted events are emitted, where `quantity` is the length of the provided Baby Dragon token IDs. * * @param babyDragonTokenIds Array of token IDs to enter the quest with. * @param dragonEssenceTokenIds Array of token IDs to combine with Baby Dragons. */ function combineDragonsWithEssences(uint256[] calldata babyDragonTokenIds, uint256[] calldata dragonEssenceTokenIds) external { _requireNotPaused(); if (babyDragonTokenIds.length != dragonEssenceTokenIds.length) { revert GiantDragonAdventure__InputArrayLengthMismatch(); } if (babyDragonTokenIds.length == 0) { revert GiantDragonAdventure__QuantityMustBeGreaterThanZero(); } for (uint256 i = 0; i < babyDragonTokenIds.length;) { uint256 babyDragonTokenId = babyDragonTokenIds[i]; uint256 dragonEssenceTokenId = dragonEssenceTokenIds[i]; if (babyDragons.ownerOf(babyDragonTokenId) != _msgSender()) { revert GiantDragonAdventure__CallerNotOwnerOfBabyDragon(); } if (dragonEssence.ownerOf(dragonEssenceTokenId) != _msgSender()) { revert GiantDragonAdventure__CallerNotOwnerOfDragonEssence(); } babyDragons.adventureBurn(babyDragonTokenId); dragonEssence.adventureBurn(dragonEssenceTokenId); unchecked { ++i; } } giantDragons.mintDragonsBatch(_msgSender(), babyDragonTokenIds, dragonEssenceTokenIds); } /// @notice ERC-165 interface support function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IAdventure).interfaceId || super.supportsInterface(interfaceId); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"babyDragonAddress","type":"address"},{"internalType":"address","name":"dragonEssenceAddress","type":"address"},{"internalType":"address","name":"giantDragonAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"GiantDragonAdventure__CallbackNotImplemented","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__CallerNotOwnerOfBabyDragon","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__CallerNotOwnerOfDragonEssence","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__CannotSpecifyAddressZeroForBabyDragons","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__CannotSpecifyAddressZeroForDragonEssence","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__CannotSpecifyAddressZeroForGiantDragon","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__InputArrayLengthMismatch","type":"error"},{"inputs":[],"name":"GiantDragonAdventure__QuantityMustBeGreaterThanZero","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"babyDragons","outputs":[{"internalType":"contract IAdventurousERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"babyDragonTokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"dragonEssenceTokenIds","type":"uint256[]"}],"name":"combineDragonsWithEssences","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dragonEssence","outputs":[{"internalType":"contract IAdventurousERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giantDragons","outputs":[{"internalType":"contract IMintableGiantDragon","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"onQuestEntered","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"onQuestExited","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseNewQuestEntries","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"questsLockTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseNewQuestEntries","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b50604051610d01380380610d0183398101604081905261002f91610143565b610038336100d7565b6000805460ff60a01b191690556001600160a01b03831661006c576040516303f5481560e31b815260040160405180910390fd5b6001600160a01b0382166100935760405163a5f17f9b60e01b815260040160405180910390fd5b6001600160a01b0381166100ba576040516309c4107d60e41b815260040160405180910390fd5b6001600160a01b0392831660805290821660a0521660c052610186565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461013e57600080fd5b919050565b60008060006060848603121561015857600080fd5b61016184610127565b925061016f60208501610127565b915061017d60408501610127565b90509250925092565b60805160a05160c051610b296101d86000396000818161014301526105900152600081816101c3015281816103de015261050d0152600081816101ea0152818161031a01526104950152610b296000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063bfa10f9711610066578063bfa10f97146101e5578063d1f6b2021461020c578063e24dc13e14610214578063f2fde38b1461021c57600080fd5b80638da5cb5b146101a657806392b61294146101b7578063be01be1a146101be57600080fd5b80636337b8d7116100c85780636337b8d71461013e578063688a37411461017d5780636d4229c914610190578063715018a61461019e57600080fd5b806301ffc9a7146100ef57806355af8af4146101175780635c975abb1461012c575b600080fd5b6101026100fd3660046108bb565b61022f565b60405190151581526020015b60405180910390f35b61012a610125366004610938565b610266565b005b600054600160a01b900460ff16610102565b6101657f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010e565b61012a61018b3660046109b9565b61060d565b61012a61018b3660046109ee565b61012a610626565b6000546001600160a01b0316610165565b6000610102565b6101657f000000000000000000000000000000000000000000000000000000000000000081565b6101657f000000000000000000000000000000000000000000000000000000000000000081565b61012a61063a565b61012a61064a565b61012a61022a366004610a29565b61065a565b60006001600160e01b031982166325df830760e21b148061026057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61026e6106d8565b82811461028e57604051637a11a22960e01b815260040160405180910390fd5b826102ac57604051632bd89ffb60e21b815260040160405180910390fd5b60005b838110156105805760008585838181106102cb576102cb610a46565b90506020020135905060008484848181106102e8576102e8610a46565b9050602002013590506102f83390565b6040516331a9108f60e11b8152600481018490526001600160a01b03918216917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9060240160206040518083038186803b15801561035c57600080fd5b505afa158015610370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103949190610a5c565b6001600160a01b0316146103bb5760405163d77371fd60e01b815260040160405180910390fd5b336040516331a9108f60e11b8152600481018390526001600160a01b03918216917f00000000000000000000000000000000000000000000000000000000000000001690636352211e9060240160206040518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104589190610a5c565b6001600160a01b03161461047f576040516329bf784960e21b815260040160405180910390fd5b6040516326f05fa960e21b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639bc17ea490602401600060405180830381600087803b1580156104e157600080fd5b505af11580156104f5573d6000803e3d6000fd5b50506040516326f05fa960e21b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250639bc17ea49150602401600060405180830381600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b5050505082600101925050506102af565b50604051630e1add2760e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c35ba4e906105d59033908890889088908890600401610aaf565b600060405180830381600087803b1580156105ef57600080fd5b505af1158015610603573d6000803e3d6000fd5b5050505050505050565b604051631b4d687160e11b815260040160405180910390fd5b61062e610725565b610638600061077f565b565b610642610725565b6106386107cf565b610652610725565b61063861082f565b610662610725565b6001600160a01b0381166106cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106d58161077f565b50565b600054600160a01b900460ff16156106385760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106c3565b6000546001600160a01b031633146106385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107d76106d8565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108123390565b6040516001600160a01b03909116815260200160405180910390a1565b61083761086b565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33610812565b600054600160a01b900460ff166106385760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106c3565b6000602082840312156108cd57600080fd5b81356001600160e01b0319811681146108e557600080fd5b9392505050565b60008083601f8401126108fe57600080fd5b50813567ffffffffffffffff81111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b6000806000806040858703121561094e57600080fd5b843567ffffffffffffffff8082111561096657600080fd5b610972888389016108ec565b9096509450602087013591508082111561098b57600080fd5b50610998878288016108ec565b95989497509550505050565b6001600160a01b03811681146106d557600080fd5b6000806000606084860312156109ce57600080fd5b83356109d9816109a4565b95602085013595506040909401359392505050565b60008060008060808587031215610a0457600080fd5b8435610a0f816109a4565b966020860135965060408601359560600135945092505050565b600060208284031215610a3b57600080fd5b81356108e5816109a4565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610a6e57600080fd5b81516108e5816109a4565b81835260006001600160fb1b03831115610a9257600080fd5b8260051b8083602087013760009401602001938452509192915050565b6001600160a01b0386168152606060208201819052600090610ad49083018688610a79565b8281036040840152610ae7818587610a79565b9897505050505050505056fea264697066735822122040749c6ac6e3fb3daec7ba66bedf31384c748e4ad987e2631927833cee235ba764736f6c63430008090033000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a510000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f071000000000000000000000000dbc61a1685c6f70c11cbb7da70338352b1fa4d51
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063bfa10f9711610066578063bfa10f97146101e5578063d1f6b2021461020c578063e24dc13e14610214578063f2fde38b1461021c57600080fd5b80638da5cb5b146101a657806392b61294146101b7578063be01be1a146101be57600080fd5b80636337b8d7116100c85780636337b8d71461013e578063688a37411461017d5780636d4229c914610190578063715018a61461019e57600080fd5b806301ffc9a7146100ef57806355af8af4146101175780635c975abb1461012c575b600080fd5b6101026100fd3660046108bb565b61022f565b60405190151581526020015b60405180910390f35b61012a610125366004610938565b610266565b005b600054600160a01b900460ff16610102565b6101657f000000000000000000000000dbc61a1685c6f70c11cbb7da70338352b1fa4d5181565b6040516001600160a01b03909116815260200161010e565b61012a61018b3660046109b9565b61060d565b61012a61018b3660046109ee565b61012a610626565b6000546001600160a01b0316610165565b6000610102565b6101657f0000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f07181565b6101657f000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a5181565b61012a61063a565b61012a61064a565b61012a61022a366004610a29565b61065a565b60006001600160e01b031982166325df830760e21b148061026057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61026e6106d8565b82811461028e57604051637a11a22960e01b815260040160405180910390fd5b826102ac57604051632bd89ffb60e21b815260040160405180910390fd5b60005b838110156105805760008585838181106102cb576102cb610a46565b90506020020135905060008484848181106102e8576102e8610a46565b9050602002013590506102f83390565b6040516331a9108f60e11b8152600481018490526001600160a01b03918216917f000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a511690636352211e9060240160206040518083038186803b15801561035c57600080fd5b505afa158015610370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103949190610a5c565b6001600160a01b0316146103bb5760405163d77371fd60e01b815260040160405180910390fd5b336040516331a9108f60e11b8152600481018390526001600160a01b03918216917f0000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f0711690636352211e9060240160206040518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104589190610a5c565b6001600160a01b03161461047f576040516329bf784960e21b815260040160405180910390fd5b6040516326f05fa960e21b8152600481018390527f000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a516001600160a01b031690639bc17ea490602401600060405180830381600087803b1580156104e157600080fd5b505af11580156104f5573d6000803e3d6000fd5b50506040516326f05fa960e21b8152600481018490527f0000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f0716001600160a01b03169250639bc17ea49150602401600060405180830381600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b5050505082600101925050506102af565b50604051630e1add2760e11b81527f000000000000000000000000dbc61a1685c6f70c11cbb7da70338352b1fa4d516001600160a01b031690631c35ba4e906105d59033908890889088908890600401610aaf565b600060405180830381600087803b1580156105ef57600080fd5b505af1158015610603573d6000803e3d6000fd5b5050505050505050565b604051631b4d687160e11b815260040160405180910390fd5b61062e610725565b610638600061077f565b565b610642610725565b6106386107cf565b610652610725565b61063861082f565b610662610725565b6001600160a01b0381166106cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106d58161077f565b50565b600054600160a01b900460ff16156106385760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106c3565b6000546001600160a01b031633146106385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107d76106d8565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108123390565b6040516001600160a01b03909116815260200160405180910390a1565b61083761086b565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33610812565b600054600160a01b900460ff166106385760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106c3565b6000602082840312156108cd57600080fd5b81356001600160e01b0319811681146108e557600080fd5b9392505050565b60008083601f8401126108fe57600080fd5b50813567ffffffffffffffff81111561091657600080fd5b6020830191508360208260051b850101111561093157600080fd5b9250929050565b6000806000806040858703121561094e57600080fd5b843567ffffffffffffffff8082111561096657600080fd5b610972888389016108ec565b9096509450602087013591508082111561098b57600080fd5b50610998878288016108ec565b95989497509550505050565b6001600160a01b03811681146106d557600080fd5b6000806000606084860312156109ce57600080fd5b83356109d9816109a4565b95602085013595506040909401359392505050565b60008060008060808587031215610a0457600080fd5b8435610a0f816109a4565b966020860135965060408601359560600135945092505050565b600060208284031215610a3b57600080fd5b81356108e5816109a4565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610a6e57600080fd5b81516108e5816109a4565b81835260006001600160fb1b03831115610a9257600080fd5b8260051b8083602087013760009401602001938452509192915050565b6001600160a01b0386168152606060208201819052600090610ad49083018688610a79565b8281036040840152610ae7818587610a79565b9897505050505050505056fea264697066735822122040749c6ac6e3fb3daec7ba66bedf31384c748e4ad987e2631927833cee235ba764736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a510000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f071000000000000000000000000dbc61a1685c6f70c11cbb7da70338352b1fa4d51
-----Decoded View---------------
Arg [0] : babyDragonAddress (address): 0xc2CCA20b76F5494b1b10774e0D182f10d98B4A51
Arg [1] : dragonEssenceAddress (address): 0x5434e17E9F4aa9521f85E57932b884d45037F071
Arg [2] : giantDragonAddress (address): 0xdbc61a1685C6F70c11cBb7da70338352b1Fa4d51
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c2cca20b76f5494b1b10774e0d182f10d98b4a51
Arg [1] : 0000000000000000000000005434e17e9f4aa9521f85e57932b884d45037f071
Arg [2] : 000000000000000000000000dbc61a1685c6f70c11cbb7da70338352b1fa4d51
Deployed Bytecode Sourcemap
19268:6206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25254:217;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;25254:217:0;;;;;;;;23899:1304;;;;;;:::i;:::-;;:::i;:::-;;17196:86;17243:4;17267:7;-1:-1:-1;;;17267:7:0;;;;17196:86;;20297:50;;;;;;;;-1:-1:-1;;;;;1839:32:1;;;1821:51;;1809:2;1794:18;20297:50:0;1647:231:1;21381:186:0;;;;;;:::i;:::-;;:::i;21860:260::-;;;;;;:::i;14795:103::-;;;:::i;14147:87::-;14193:7;14220:6;-1:-1:-1;;;;;14220:6:0;14147:87;;22191:97;22251:4;22191:97;;20138:49;;;;;19985:47;;;;;22526:78;;;:::i;22845:82::-;;;:::i;15053:201::-;;;;;;:::i;:::-;;:::i;25254:217::-;25356:4;-1:-1:-1;;;;;;25380:43:0;;-1:-1:-1;;;25380:43:0;;:83;;-1:-1:-1;;;;;;;;;;19054:40:0;;;25427:36;25373:90;25254:217;-1:-1:-1;;25254:217:0:o;23899:1304::-;24036:19;:17;:19::i;:::-;24072:57;;;24068:145;;24153:48;;-1:-1:-1;;;24153:48:0;;;;;;;;;;;24068:145;24237:30;24233:123;;24291:53;;-1:-1:-1;;;24291:53:0;;;;;;;;;;;24233:123;24373:9;24368:729;24388:29;;;24368:729;;;24435:25;24463:18;;24482:1;24463:21;;;;;;;:::i;:::-;;;;;;;24435:49;;24499:28;24530:21;;24552:1;24530:24;;;;;;;:::i;:::-;;;;;;;24499:55;;24617:12;12936:10;;12856:98;24617:12;24575:38;;-1:-1:-1;;;24575:38:0;;;;;3836:25:1;;;-1:-1:-1;;;;;24575:54:0;;;;:11;:19;;;;3809:18:1;;24575:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24575:54:0;;24571:152;;24657:50;;-1:-1:-1;;;24657:50:0;;;;;;;;;;;24571:152;12936:10;24743:43;;-1:-1:-1;;;24743:43:0;;;;;3836:25:1;;;-1:-1:-1;;;;;24743:59:0;;;;:13;:21;;;;3809:18:1;;24743:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24743:59:0;;24739:160;;24830:53;;-1:-1:-1;;;24830:53:0;;;;;;;;;;;24739:160;24915:44;;-1:-1:-1;;;24915:44:0;;;;;3836:25:1;;;24915:11:0;-1:-1:-1;;;;;24915:25:0;;;;3809:18:1;;24915:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24974:49:0;;-1:-1:-1;;;24974:49:0;;;;;3836:25:1;;;24974:13:0;-1:-1:-1;;;;;24974:27:0;;-1:-1:-1;24974:27:0;;-1:-1:-1;3809:18:1;;24974:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25067:3;;;;;24420:677;;24368:729;;;-1:-1:-1;25109:86:0;;-1:-1:-1;;;25109:86:0;;:12;-1:-1:-1;;;;;25109:29:0;;;;:86;;12936:10;;25153:18;;;;25173:21;;;;25109:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23899:1304;;;;:::o;21381:186::-;21513:46;;-1:-1:-1;;;21513:46:0;;;;;;;;;;;14795:103;14033:13;:11;:13::i;:::-;14860:30:::1;14887:1;14860:18;:30::i;:::-;14795:103::o:0;22526:78::-;14033:13;:11;:13::i;:::-;22588:8:::1;:6;:8::i;22845:82::-:0;14033:13;:11;:13::i;:::-;22909:10:::1;:8;:10::i;15053:201::-:0;14033:13;:11;:13::i;:::-;-1:-1:-1;;;;;15142:22:0;::::1;15134:73;;;::::0;-1:-1:-1;;;15134:73:0;;5310:2:1;15134:73:0::1;::::0;::::1;5292:21:1::0;5349:2;5329:18;;;5322:30;5388:34;5368:18;;;5361:62;-1:-1:-1;;;5439:18:1;;;5432:36;5485:19;;15134:73:0::1;;;;;;;;;15218:28;15237:8;15218:18;:28::i;:::-;15053:201:::0;:::o;17355:108::-;17243:4;17267:7;-1:-1:-1;;;17267:7:0;;;;17425:9;17417:38;;;;-1:-1:-1;;;17417:38:0;;5717:2:1;17417:38:0;;;5699:21:1;5756:2;5736:18;;;5729:30;-1:-1:-1;;;5775:18:1;;;5768:46;5831:18;;17417:38:0;5515:340:1;14312:132:0;14193:7;14220:6;-1:-1:-1;;;;;14220:6:0;12936:10;14376:23;14368:68;;;;-1:-1:-1;;;14368:68:0;;6062:2:1;14368:68:0;;;6044:21:1;;;6081:18;;;6074:30;6140:34;6120:18;;;6113:62;6192:18;;14368:68:0;5860:356:1;15414:191:0;15488:16;15507:6;;-1:-1:-1;;;;;15524:17:0;;;-1:-1:-1;;;;;;15524:17:0;;;;;;15557:40;;15507:6;;;;;;;15557:40;;15488:16;15557:40;15477:128;15414:191;:::o;17792:118::-;16801:19;:17;:19::i;:::-;17852:7:::1;:14:::0;;-1:-1:-1;;;;17852:14:0::1;-1:-1:-1::0;;;17852:14:0::1;::::0;;17882:20:::1;17889:12;12936:10:::0;;12856:98;17889:12:::1;17882:20;::::0;-1:-1:-1;;;;;1839:32:1;;;1821:51;;1809:2;1794:18;17882:20:0::1;;;;;;;17792:118::o:0;18051:120::-;17060:16;:14;:16::i;:::-;18120:5:::1;18110:15:::0;;-1:-1:-1;;;;18110:15:0::1;::::0;;18141:22:::1;12936:10:::0;18150:12:::1;12856:98:::0;17540:108;17243:4;17267:7;-1:-1:-1;;;17267:7:0;;;;17599:41;;;;-1:-1:-1;;;17599:41:0;;6423:2:1;17599:41:0;;;6405:21:1;6462:2;6442:18;;;6435:30;-1:-1:-1;;;6481:18:1;;;6474:50;6541:18;;17599:41:0;6221:344:1;14:286;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:367::-;560:8;570:6;624:3;617:4;609:6;605:17;601:27;591:55;;642:1;639;632:12;591:55;-1:-1:-1;665:20:1;;708:18;697:30;;694:50;;;740:1;737;730:12;694:50;777:4;769:6;765:17;753:29;;837:3;830:4;820:6;817:1;813:14;805:6;801:27;797:38;794:47;791:67;;;854:1;851;844:12;791:67;497:367;;;;;:::o;869:773::-;991:6;999;1007;1015;1068:2;1056:9;1047:7;1043:23;1039:32;1036:52;;;1084:1;1081;1074:12;1036:52;1124:9;1111:23;1153:18;1194:2;1186:6;1183:14;1180:34;;;1210:1;1207;1200:12;1180:34;1249:70;1311:7;1302:6;1291:9;1287:22;1249:70;:::i;:::-;1338:8;;-1:-1:-1;1223:96:1;-1:-1:-1;1426:2:1;1411:18;;1398:32;;-1:-1:-1;1442:16:1;;;1439:36;;;1471:1;1468;1461:12;1439:36;;1510:72;1574:7;1563:8;1552:9;1548:24;1510:72;:::i;:::-;869:773;;;;-1:-1:-1;1601:8:1;-1:-1:-1;;;;869:773:1:o;1883:131::-;-1:-1:-1;;;;;1958:31:1;;1948:42;;1938:70;;2004:1;2001;1994:12;2019:383;2096:6;2104;2112;2165:2;2153:9;2144:7;2140:23;2136:32;2133:52;;;2181:1;2178;2171:12;2133:52;2220:9;2207:23;2239:31;2264:5;2239:31;:::i;:::-;2289:5;2341:2;2326:18;;2313:32;;-1:-1:-1;2392:2:1;2377:18;;;2364:32;;2019:383;-1:-1:-1;;;2019:383:1:o;2407:452::-;2493:6;2501;2509;2517;2570:3;2558:9;2549:7;2545:23;2541:33;2538:53;;;2587:1;2584;2577:12;2538:53;2626:9;2613:23;2645:31;2670:5;2645:31;:::i;:::-;2695:5;2747:2;2732:18;;2719:32;;-1:-1:-1;2798:2:1;2783:18;;2770:32;;2849:2;2834:18;2821:32;;-1:-1:-1;2407:452:1;-1:-1:-1;;;2407:452:1:o;3306:247::-;3365:6;3418:2;3406:9;3397:7;3393:23;3389:32;3386:52;;;3434:1;3431;3424:12;3386:52;3473:9;3460:23;3492:31;3517:5;3492:31;:::i;3558:127::-;3619:10;3614:3;3610:20;3607:1;3600:31;3650:4;3647:1;3640:15;3674:4;3671:1;3664:15;3872:251;3942:6;3995:2;3983:9;3974:7;3970:23;3966:32;3963:52;;;4011:1;4008;4001:12;3963:52;4043:9;4037:16;4062:31;4087:5;4062:31;:::i;4128:354::-;4216:19;;;4198:3;-1:-1:-1;;;;;4247:31:1;;4244:51;;;4291:1;4288;4281:12;4244:51;4327:6;4324:1;4320:14;4379:8;4372:5;4365:4;4360:3;4356:14;4343:45;4456:1;4411:18;;4431:4;4407:29;4445:13;;;-1:-1:-1;4407:29:1;;4128:354;-1:-1:-1;;4128:354:1:o;4487:616::-;-1:-1:-1;;;;;4792:32:1;;4774:51;;4861:2;4856;4841:18;;4834:30;;;-1:-1:-1;;4887:73:1;;4941:18;;4933:6;4925;4887:73;:::i;:::-;5008:9;5000:6;4996:22;4991:2;4980:9;4976:18;4969:50;5036:61;5090:6;5082;5074;5036:61;:::i;:::-;5028:69;4487:616;-1:-1:-1;;;;;;;;4487:616:1:o
Swarm Source
ipfs://40749c6ac6e3fb3daec7ba66bedf31384c748e4ad987e2631927833cee235ba7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.