ERC-721
NFT
Overview
Max Total Supply
0 DIBD
Holders
925
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
73 DIBDLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DigiDaigakuBabyDragons
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.9;import "@limit-break/presets/BlacklistedTransferWrapperAdventureNFT.sol";import "./IBurnableToken.sol";/*** @title DigiDaigakuBabyDragons* @author Limit Break, Inc.*/contract DigiDaigakuBabyDragons is BlacklistedTransferWrapperAdventureNFT {error DigiDaigakuBabyDragons__CallerNotOwnerOfDragonEgg();error DigiDaigakuBabyDragons__CannotSetDragonEggsToZeroAddress();error DigiDaigakuBabyDragons__MustProvideAtLeastOneTokenId();error DigiDaigakuBabyDragons__StakeDoesNotAcceptPayment();constructor(address dragonEggAddress, address royaltyReceiver_, uint96 royaltyFeeNumerator_) ERC721("", "") {if (dragonEggAddress == address(0)) {revert DigiDaigakuBabyDragons__CannotSetDragonEggsToZeroAddress();}initializeERC721("DigiDaigakuBabyDragons", "DIBD");initializeURI("https://digidaigaku.com/baby-dragons/metadata/", ".json");initializeAdventureERC721(100);initializeRoyalties(royaltyReceiver_, royaltyFeeNumerator_);initializeOperatorFilterer(address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6), true);initializeWrapperERC721(dragonEggAddress);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IAdventurous.sol";import "./AdventureWhitelist.sol";import "../initializable/IAdventureERC721Initializer.sol";import "../utils/tokens/InitializableERC721.sol";error AdventureApprovalToCaller();error AlreadyInitializedAdventureERC721();error AlreadyOnQuest();error AnActiveQuestIsPreventingTransfers();error CallerNotApprovedForAdventure();error CallerNotTokenOwner();error MaxSimultaneousQuestsCannotBeZero();error MaxSimultaneousQuestsExceeded();error NotOnQuest();error QuestIdOutOfRange();error TooManyActiveQuests();/*** @title AdventureERC721* @author Limit Break, Inc.* @notice Implements the {IAdventurous} token standard for ERC721-compliant tokens.* Includes a user approval mechanism specific to {IAdventurous} functionality.* @dev Inherits {InitializableERC721} to provide the option to support EIP-1167.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./AdventureERC721.sol";import "../initializable/IRoyaltiesInitializer.sol";import "../initializable/IURIInitializer.sol";import "@openzeppelin/contracts/token/common/ERC2981.sol";error AlreadyInitializedRoyalties();error AlreadyInitializedURI();error ExceedsMaxRoyaltyFee();error NonexistentToken();/*** @title AdventureNFT* @author Limit Break, Inc.* @notice Standardizes commonly shared boilerplate code that adds base/suffix URI and EIP-2981 royalties to {AdventureERC721} contracts.*/abstract contract AdventureNFT is AdventureERC721, ERC2981, IRoyaltiesInitializer, IURIInitializer {using Strings for uint256;/// @dev The maximum allowable royalty fee is 100%uint96 private constant MAX_ROYALTY_FEE_NUMERATOR = 10000;/// @notice Specifies whether or not the contract is initializedbool private initializedRoyalties;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./IAdventure.sol";import "../utils/access/InitializableOwnable.sol";import "@openzeppelin/contracts/token/ERC721/IERC721.sol";error AdventureIsStillWhitelisted();error AlreadyWhitelisted();error ArrayIndexOverflowsUint128();error CallerNotAWhitelistedAdventure();error InvalidAdventureContract();error NotWhitelisted();/*** @title AdventureWhitelist* @author Limit Break, Inc.* @notice Implements the basic security features of the {IAdventurous} token standard for ERC721-compliant tokens.* This includes a whitelist for trusted Adventure contracts designed to interoperate with this token.*/abstract contract AdventureWhitelist is InitializableOwnable {struct AdventureDetails {bool isWhitelisted;uint128 arrayIndex;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @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.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./Quest.sol";import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @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.
1234567891011121314// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/*** @title Quest* @author Limit Break, Inc.* @notice Quest data structure for {IAdventurous} contracts.*/struct Quest {bool isActive;uint32 questId;uint64 startTimestamp;uint32 arrayIndex;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @title IAdventureERC721Initializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include Adventure ERC721 functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IAdventureERC721Initializer is IERC165 {/*** @notice Initializes parameters of {AdventureERC721} contracts*/function initializeAdventureERC721(uint256 maxSimultaneousQuests_) external;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/token/ERC721/IERC721.sol";/*** @title IERC721Initializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include OpenZeppelin ERC721 functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IERC721Initializer is IERC721 {/*** @notice Initializes parameters of {ERC721} contracts*/function initializeERC721(string memory name_, string memory symbol_) external;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/token/ERC721/IERC721.sol";/*** @title IOperatorFiltererInitializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include OpenSea's OperatorFilterer functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IOperatorFiltererInitializer {/*** @notice Initializes parameters of OperatorFilterer contracts*/function initializeOperatorFilterer(address subscriptionOrRegistrantToCopy, bool subscribe) external;}
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @title IOwnableInitializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include OpenZeppelin Ownable functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IOwnableInitializer is IERC165 {/*** @notice Initializes the contract owner to the specified address*/function initializeOwner(address owner_) external;/*** @notice Transfers ownership of the contract to the specified owner*/function transferOwnership(address newOwner) external;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @title IRoyaltiesInitializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include OpenZeppelin ERC2981 functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IRoyaltiesInitializer is IERC165 {/*** @notice Initializes royalty parameters*/function initializeRoyalties(address receiver, uint96 feeNumerator) external;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";/*** @title IURIInitializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include a base uri and suffix uri.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IURIInitializer is IERC165 {/*** @notice Initializes uri parameters*/function initializeURI(string memory baseURI_, string memory suffixURI_) external;}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/token/ERC721/IERC721.sol";/*** @title IWrapperERC721Initializer* @author Limit Break, Inc.* @notice Allows cloneable contracts to include Wrapper ERC721 functionality.* @dev See https://eips.ethereum.org/EIPS/eip-1167 for details.*/interface IWrapperERC721Initializer {/*** @notice Initializes parameters of {WrapperERC721} contracts*/function initializeWrapperERC721(address wrappedCollection_) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IOperatorFilterRegistry {function isOperatorAllowed(address registrant, address operator) external view returns (bool);function register(address registrant) external;function registerAndSubscribe(address registrant, address subscription) external;function registerAndCopyEntries(address registrant, address registrantToCopy) external;function unregister(address addr) external;function updateOperator(address registrant, address operator, bool filtered) external;function updateOperators(address registrant, address[] calldata operators, bool filtered) external;function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;function subscribe(address registrant, address registrantToSubscribe) external;function unsubscribe(address registrant, bool copyExistingEntries) external;function subscriptionOf(address addr) external returns (address registrant);function subscribers(address registrant) external returns (address[] memory);function subscriberAt(address registrant, uint256 index) external returns (address);function copyEntriesOf(address registrant, address registrantToCopy) external;function isOperatorFiltered(address registrant, address operator) external returns (bool);function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);function filteredOperators(address addr) external returns (address[] memory);function filteredCodeHashes(address addr) external returns (bytes32[] memory);function filteredOperatorAt(address registrant, uint256 index) external returns (address);function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import {InitializableOperatorFilterer} from "./InitializableOperatorFilterer.sol";/*** @title InitializableDefaultOperatorFilterer* @notice Inherits from InitializableOperatorFilterer and automatically subscribes to the default OpenSea subscription during initialization.*/abstract contract InitializableDefaultOperatorFilterer is InitializableOperatorFilterer {/// @dev The default subscription addressaddress internal constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);/// @dev The parameters are ignored, and the default subscription values are used instead.function initializeOperatorFilterer(address /*subscriptionOrRegistrantToCopy*/, bool /*subscribe*/) public virtual override {super.initializeOperatorFilterer(DEFAULT_SUBSCRIPTION, true);}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";import {IOperatorFiltererInitializer} from "../../initializable/IOperatorFiltererInitializer.sol";/*** @title InitializableOperatorFilterer* @notice Abstract contract whose initializer function automatically registers and optionally subscribes to or copies another* registrant's entries in the OperatorFilterRegistry.* @dev This smart contract is meant to be inherited by token contracts so they can use the following:* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.* This is safe for use in EIP-1167 clones*/abstract contract InitializableOperatorFilterer is IOperatorFiltererInitializer {error OperatorNotAllowed(address operator);IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY = IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);modifier onlyAllowedOperator(address from) virtual {// Allow spending tokens from addresses with balance// Note that this still allows listings and marketplaces with escrow to transfer tokens if transferred// from an EOA.if (from != msg.sender) {_checkFilterOperator(msg.sender);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./WrapperAdventureNFT.sol";import "../opensea/operator-filter-registry/InitializableDefaultOperatorFilterer.sol";/*** @title BlacklistedTransferWrapperAdventureNFT* @author Limit Break, Inc.* @notice Extends AdventureNFT, adding token wrapping and blacklisted transfer mechanisms.*/abstract contract BlacklistedTransferWrapperAdventureNFT is WrapperAdventureNFT, InitializableDefaultOperatorFilterer {function approve(address operator, uint256 tokenId) public virtual override onlyAllowedOperatorApproval(operator) {super.approve(operator, tokenId);}function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override onlyAllowedOperator(from) {super.safeTransferFrom(from, to, tokenId);}function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override onlyAllowedOperator(from) {super.safeTransferFrom(from, to, tokenId, data);}function transferFrom(address from, address to, uint256 tokenId) public virtual override onlyAllowedOperator(from) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "../adventures/AdventureNFT.sol";import "../utils/tokens/WrapperERC721.sol";/*** @title WrapperAdventureNFT* @author Limit Break, Inc.* @notice Extends AdventureNFT, adding token rental mechanisms.*/abstract contract WrapperAdventureNFT is WrapperERC721, AdventureNFT {using Strings for uint256;function supportsInterface(bytes4 interfaceId) public view virtual override(AdventureNFT, WrapperERC721) returns (bool) {return super.supportsInterface(interfaceId);}/// @notice Returns tokenURI if baseURI is setfunction tokenURI(uint256 tokenId) public view virtual override(AdventureNFT, ERC721) returns (string memory) {if(!_exists(tokenId)) {revert NonexistentToken();}string memory baseURI = _baseURI();return bytes(baseURI).length > 0
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./access/InitializableOwnable.sol";/*** @title WithdrawETH* @author Limit Break, Inc.* @notice A mix-in that can be combined with any ownable contract to enable the contract owner to withdraw ETH from the contract.*/abstract contract WithdrawETH is InitializableOwnable {error AmountMustBeGreaterThanZero();error RecipientMustBeNonZeroAddress();error InsufficientBalance();error WithdrawalUnsuccessful();/// @notice Allows contract owner to withdraw ETH that has been paid into the contract./// This allows inadvertantly lost ETH to be recovered and it also allows the contract owner/// To collect funds that have been properly paid into the contract over time.////// Throws when caller is not the contract owner./// Throws when the specified amount is zero./// Throws when the specified recipient is zero address./// Throws when the current balance in this contract is less than the specified amount./// Throws when the ETH transfer is unsuccessful.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "../../initializable/IOwnableInitializer.sol";import "@openzeppelin/contracts/utils/Context.sol";error CallerIsNotTheContractOwner();error NewOwnerIsTheZeroAddress();error OwnerAlreadyInitialized();/*** @title InitializableOwnable* @author Limit Break, Inc. and OpenZeppelin* @notice A tailored version of the {Ownable} permissions component from OpenZeppelin that is compatible with EIP-1167.* @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.** Based on OpenZeppelin contracts commit hash 3dac7bbed7b4c0dbf504180c33e8ed8e350b93eb.** 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
123456789101112// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/utils/introspection/IERC165.sol";interface IWrapperERC721 is IERC165 {function getWrappedCollectionAddress() external view returns (address);function canUnstake(uint256 tokenId) external view returns (bool);function stake(uint256 tokenId) external payable;function unstake(uint256 tokenId) external payable;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "../access/InitializableOwnable.sol";import "../../initializable/IERC721Initializer.sol";import "@openzeppelin/contracts/token/ERC721/ERC721.sol";error AlreadyInitializedERC721();/*** @title InitializableERC721* @author Limit Break, Inc.* @notice Wraps OpenZeppelin ERC721 implementation and makes it compatible with EIP-1167.* @dev Because OpenZeppelin's `_name` and `_symbol` storage variables are private and inaccessible,* this contract defines two new storage variables `_contractName` and `_contractSymbol` and returns them* from the `name()` and `symbol()` functions instead.*/abstract contract InitializableERC721 is InitializableOwnable, ERC721, IERC721Initializer {/// @notice Specifies whether or not the contract is initializedbool private initializedERC721;// Token namestring internal _contractName;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "./InitializableERC721.sol";import "./IWrapperERC721.sol";import "../WithdrawETH.sol";import "../../initializable/IWrapperERC721Initializer.sol";error AlreadyInitializedWrapperERC721();error AmountMustBeGreaterThanZero();error CallerNotOwnerOfWrappingToken();error CallerNotOwnerOfWrappedToken();error DefaultImplementationOfStakeDoesNotAcceptPayment();error DefaultImplementationOfUnstakeDoesNotAcceptPayment();error InvalidERC721Collection();error InsufficientBalance();error QuantityMustBeGreaterThanZero();error RecipientMustBeNonZeroAddress();error WithdrawalUnsuccessful();abstract contract WrapperERC721 is InitializableERC721, WithdrawETH, IWrapperERC721, IWrapperERC721Initializer {/// @dev Points to an external ERC721 contract that will be wrapped via staking.IERC721 private wrappedCollection;/// @dev Emitted when a user stakes their token to receive a creator token.
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165.sol";/*** @dev Interface for the NFT Royalty Standard.** A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal* support for royalty payments across all NFT marketplaces and ecosystem participants.** _Available since v4.5._*/interface IERC2981 is IERC165 {/*** @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.*/function royaltyInfo(uint256 tokenId, uint256 salePrice)externalviewreturns (address receiver, uint256 royaltyAmount);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/ERC721.sol)pragma solidity ^0.8.0;import "./IERC721.sol";import "./IERC721Receiver.sol";import "./extensions/IERC721Metadata.sol";import "../../utils/Address.sol";import "../../utils/Context.sol";import "../../utils/Strings.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including* the Metadata extension, but not including the Enumerable extension, which is available separately as* {ERC721Enumerable}.*/contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {using Address for address;using Strings for uint256;// Token namestring private _name;// Token symbol
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)pragma solidity ^0.8.0;import "../../utils/introspection/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);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)pragma solidity ^0.8.0;/*** @title ERC721 token receiver interface* @dev Interface for any contract that wants to support safeTransfers* from ERC721 asset contracts.*/interface IERC721Receiver {/*** @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}* by `operator` from `from`, this function is called.** It must return its Solidity selector to confirm the token transfer.* If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.** The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.*/function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)pragma solidity ^0.8.0;import "../IERC721.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional metadata extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721Metadata is IERC721 {/*** @dev Returns the token collection name.*/function name() external view returns (string memory);/*** @dev Returns the token collection symbol.*/function symbol() external view returns (string memory);/*** @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.*/function tokenURI(uint256 tokenId) external view returns (string memory);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/common/ERC2981.sol)pragma solidity ^0.8.0;import "../../interfaces/IERC2981.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.** Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for* specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.** Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the* fee is specified in basis points by default.** IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See* https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to* voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.** _Available since v4.5._*/abstract contract ERC2981 is IERC2981, ERC165 {struct RoyaltyInfo {address receiver;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @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* ====*
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)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;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.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) {
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)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);}
123456789101112131415161718// SPDX-License-Identifier: MITimport "@openzeppelin/contracts/token/ERC721/IERC721.sol";pragma solidity ^0.8.0;/*** @title Interface for a Burnable ERC721 Token*/interface IBurnableToken is IERC721 {/*** @dev Burns `tokenId`. See {ERC721-_burn}.** Requirements:** - The caller must own `tokenId` or be an approved operator.*/function burn(uint256 tokenId) external;}
1234567891011121314151617181920212223242526{"remappings": ["@creator-token-contracts/=lib/creator-token-contracts/","@hypermint/=lib/hypermint-contracts/","@limit-break/=lib/limit-break-contracts/contracts/","@openzeppelin/=lib/openzeppelin-contracts/","ERC721A/=lib/ERC721A/contracts/","creator-token-contracts/=lib/creator-token-contracts/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc721a/=lib/ERC721A/","forge-std/=lib/forge-std/src/","hypermint-contracts/=lib/hypermint-contracts/contracts/","limit-break-contracts/=lib/limit-break-contracts/contracts/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer": {"enabled": true,"runs": 200},"metadata": {"bytecodeHash": "ipfs"},"outputSelection": {"*": {"*": ["evm.bytecode",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"dragonEggAddress","type":"address"},{"internalType":"address","name":"royaltyReceiver_","type":"address"},{"internalType":"uint96","name":"royaltyFeeNumerator_","type":"uint96"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AdventureApprovalToCaller","type":"error"},{"inputs":[],"name":"AdventureIsStillWhitelisted","type":"error"},{"inputs":[],"name":"AlreadyInitializedAdventureERC721","type":"error"},{"inputs":[],"name":"AlreadyInitializedERC721","type":"error"},{"inputs":[],"name":"AlreadyInitializedRoyalties","type":"error"},{"inputs":[],"name":"AlreadyInitializedURI","type":"error"},{"inputs":[],"name":"AlreadyInitializedWrapperERC721","type":"error"},{"inputs":[],"name":"AlreadyOnQuest","type":"error"},{"inputs":[],"name":"AlreadyWhitelisted","type":"error"},{"inputs":[],"name":"AmountMustBeGreaterThanZero","type":"error"},{"inputs":[],"name":"AnActiveQuestIsPreventingTransfers","type":"error"},{"inputs":[],"name":"ArrayIndexOverflowsUint128","type":"error"},{"inputs":[],"name":"CallerIsNotTheContractOwner","type":"error"},{"inputs":[],"name":"CallerNotAWhitelistedAdventure","type":"error"},{"inputs":[],"name":"CallerNotApprovedForAdventure","type":"error"},{"inputs":[],"name":"CallerNotOwnerOfWrappingToken","type":"error"},{"inputs":[],"name":"CallerNotTokenOwner","type":"error"},{"inputs":[],"name":"DefaultImplementationOfStakeDoesNotAcceptPayment","type":"error"},{"inputs":[],"name":"DefaultImplementationOfUnstakeDoesNotAcceptPayment","type":"error"},{"inputs":[],"name":"DigiDaigakuBabyDragons__CallerNotOwnerOfDragonEgg","type":"error"},{"inputs":[],"name":"DigiDaigakuBabyDragons__CannotSetDragonEggsToZeroAddress","type":"error"},{"inputs":[],"name":"DigiDaigakuBabyDragons__MustProvideAtLeastOneTokenId","type":"error"},{"inputs":[],"name":"DigiDaigakuBabyDragons__StakeDoesNotAcceptPayment","type":"error"},{"inputs":[],"name":"ExceedsMaxRoyaltyFee","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAdventureContract","type":"error"},{"inputs":[],"name":"InvalidERC721Collection","type":"error"},{"inputs":[],"name":"MaxSimultaneousQuestsCannotBeZero","type":"error"},{"inputs":[],"name":"MaxSimultaneousQuestsExceeded","type":"error"},{"inputs":[],"name":"NewOwnerIsTheZeroAddress","type":"error"},{"inputs":[],"name":"NonexistentToken","type":"error"},{"inputs":[],"name":"NotOnQuest","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerAlreadyInitialized","type":"error"},{"inputs":[],"name":"QuestIdOutOfRange","type":"error"},{"inputs":[],"name":"RecipientMustBeNonZeroAddress","type":"error"},{"inputs":[],"name":"TooManyActiveQuests","type":"error"},{"inputs":[],"name":"WithdrawalUnsuccessful","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"AdventureApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"adventure","type":"address"},{"indexed":false,"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"AdventureWhitelistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseTokenURI","type":"string"}],"name":"BaseURISet","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"adventure","type":"address"},{"indexed":false,"internalType":"uint256","name":"questId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"},{"indexed":false,"internalType":"bool","name":"booted","type":"bool"}],"name":"QuestUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"RoyaltySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"suffixURI","type":"string"}],"name":"SuffixURISet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"activeQuestList","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"activeQuestLookup","outputs":[{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"uint32","name":"questId","type":"uint32"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"uint32","name":"arrayIndex","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"adventureBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"adventureSafeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"adventureTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"areAdventuresApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"}],"name":"bootFromAllQuests","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"canUnstake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"questId","type":"uint256"}],"name":"enterQuest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"questId","type":"uint256"}],"name":"exitQuest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"}],"name":"getActiveQuests","outputs":[{"components":[{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"uint32","name":"questId","type":"uint32"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"uint32","name":"arrayIndex","type":"uint32"}],"internalType":"struct Quest[]","name":"activeQuests","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"}],"name":"getQuestCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"},{"internalType":"uint256","name":"questId","type":"uint256"}],"name":"getTimeOnQuest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWrappedCollectionAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSimultaneousQuests_","type":"uint256"}],"name":"initializeAdventureERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"name":"initializeERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"","type":"bool"}],"name":"initializeOperatorFilterer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"initializeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"initializeRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI_","type":"string"},{"internalType":"string","name":"suffixURI_","type":"string"}],"name":"initializeURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wrappedCollection_","type":"address"}],"name":"initializeWrapperERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAdventureWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"},{"internalType":"uint256","name":"questId","type":"uint256"}],"name":"isParticipatingInQuest","outputs":[{"internalType":"bool","name":"participatingInQuest","type":"bool"},{"internalType":"uint256","name":"startTimestamp","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSimultaneousQuests","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setAdventuresApprovedForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseTokenURI_","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"setRoyaltyInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"suffixURI_","type":"string"}],"name":"setSuffixURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stakeBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"suffixURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"adventure","type":"address"}],"name":"unwhitelistAdventure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"}],"name":"userExitAllQuests","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"adventure","type":"address"},{"internalType":"uint256","name":"questId","type":"uint256"}],"name":"userExitQuest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adventure","type":"address"}],"name":"whitelistAdventure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"whitelistedAdventureList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAdventures","outputs":[{"internalType":"bool","name":"isWhitelisted","type":"bool"},{"internalType":"uint128","name":"arrayIndex","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040526005608081905264173539b7b760d91b60a090815262000028916018919062000889565b503480156200003657600080fd5b5060405162004e3838038062004e3883398101604081905262000059916200094c565b604080516020808201835260008083528351918201909352918252906200008033620001c6565b81516200009590600190602085019062000889565b508051620000ab90600290602084019062000889565b5050506001600160a01b038316620000d6576040516392356e9d60e01b815260040160405180910390fd5b620001396040518060400160405280601681526020017f4469676944616967616b7542616279447261676f6e7300000000000000000000815250604051806040016040528060048152602001631112509160e21b8152506200021660201b60201c565b620001796040518060600160405280602e815260200162004e0a602e9139604080518082019091526005815264173539b7b760d91b602082015262000282565b620001856064620002df565b62000191828262000331565b620001b2733cc6cdda760b79bafa08df41ecfa224f810dceb660016200037d565b620001bd83620003ad565b50505062000a66565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000220620004bf565b60075460ff161562000245576040516376f1a0b360e01b815260040160405180910390fd5b81516200025a90600890602085019062000889565b5080516200027090600990602084019062000889565b50506007805460ff1916600117905550565b6200028c620004bf565b601654610100900460ff1615620002b657604051635b79f68360e01b815260040160405180910390fd5b620002c182620004ed565b620002cc8162000549565b50506016805461ff001916610100179055565b620002e9620004bf565b600d5460ff16156200030e57604051630e009cb560e11b815260040160405180910390fd5b62000319816200059a565b600f55600d805460ff19166001908117909155600e55565b6200033b620004bf565b60165460ff16156200036057604051639383013960e01b815260040160405180910390fd5b6200036c8282620005df565b50506016805460ff19166001179055565b620003a9733cc6cdda760b79bafa08df41ecfa224f810dceb660016200067060201b620020361760201c565b5050565b620003b7620004bf565b600a546001600160a01b031615620003e257604051636be9ab9b60e11b815260040160405180910390fd5b60006001600160a01b0382163b156200047d576040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a79060240160206040518083038186803b1580156200043c57600080fd5b505afa9250505080156200046f575060408051601f3d908101601f191682019092526200046c91810190620009a6565b60015b6200047a576200047d565b90505b806200049c57604051634321591760e11b815260040160405180910390fd5b50600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620004eb5760405163097b5fdb60e31b815260040160405180910390fd5b565b620004f7620004bf565b80516200050c90601790602084019062000889565b507ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f6816040516200053e9190620009d1565b60405180910390a150565b62000553620004bf565b80516200056890601890602084019062000889565b507f65ccd57f8a46e7a6cfc4d214d84094e8ba5561ab50fd328f26e4c44052ffeba0816040516200053e9190620009d1565b80620005b95760405163318ccdef60e11b815260040160405180910390fd5b6064811115620005dc57604051639cb75faf60e01b815260040160405180910390fd5b50565b620005e9620004bf565b6127106001600160601b03821611156200061657604051631557c04f60e21b815260040160405180910390fd5b62000622828262000784565b604080516001600160a01b03841681526001600160601b03831660208201527f23813f5ad446622633cb58c75ceef768a2111751b0f30477a63e06fcaedcff60910160405180910390a15050565b6daaeb6d7670e522a718067333cd4e3b15620003a95780156200070157604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620006e457600080fd5b505af1158015620006f9573d6000803e3d6000fd5b505050505050565b6001600160a01b03821615620007525760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620006c9565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401620006c9565b6127106001600160601b0382161115620007f85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620008505760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620007ef565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217601455565b828054620008979062000a29565b90600052602060002090601f016020900481019282620008bb576000855562000906565b82601f10620008d657805160ff191683800117855562000906565b8280016001018555821562000906579182015b8281111562000906578251825591602001919060010190620008e9565b506200091492915062000918565b5090565b5b8082111562000914576000815560010162000919565b80516001600160a01b03811681146200094757600080fd5b919050565b6000806000606084860312156200096257600080fd5b6200096d846200092f565b92506200097d602085016200092f565b60408501519092506001600160601b03811681146200099b57600080fd5b809150509250925092565b600060208284031215620009b957600080fd5b81518015158114620009ca57600080fd5b9392505050565b600060208083528351808285015260005b8181101562000a0057858101830151858201604001528201620009e2565b8181111562000a13576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168062000a3e57607f821691505b6020821081141562000a6057634e487b7160e01b600052602260045260246000fd5b50919050565b6143948062000a766000396000f3fe6080604052600436106103765760003560e01c80637e10b35b116101d1578063aa6cab5a11610102578063c87b56dd116100a0578063e370ab461161006f578063e370ab4614610b64578063e985e9c514610b84578063f1e923c514610bcd578063f2fde38b14610bed57600080fd5b8063c87b56dd14610aef578063d147c97a14610b0f578063d547cfb714610b2f578063e2989f4c14610b4457600080fd5b8063b3bcea48116100dc578063b3bcea4814610a7a578063b88d4fde14610a8f578063c05e2f4414610aaf578063c61bd21414610acf57600080fd5b8063aa6cab5a146109db578063aca139f714610a3a578063b39fa00014610a5a57600080fd5b8063916237181161016f5780639bc17ea4116101495780639bc17ea41461096a5780639f8ed6051461098a578063a22cb465146109a8578063a694fc3a146109c857600080fd5b8063916237181461091557806395d89b411461093557806395fa0ff51461094a57600080fd5b8063869f9110116101ab578063869f9110146108a25780638be18e57146108b75780638c5f36bb146108d75780638da5cb5b146108f757600080fd5b80637e10b35b146108195780637f1a5ce114610839578063816a15011461088257600080fd5b80632e17de78116102ab57806351dadc28116102495780636352211e116102235780636352211e1461076e578063662cca401461078e578063703fa929146107ae57806370a08231146107eb57600080fd5b806351dadc28146106f957806353401df91461072e57806355f804b31461074e57600080fd5b806341f434341161028557806341f434341461067757806342842e0e146106995780634782f779146106b95780634e02c078146106d957600080fd5b80632e17de781461060b5780632ebb386a1461061e578063301be7401461063e57600080fd5b80631134055711610318578063230f436d116102f2578063230f436d1461057957806323b872dd1461058c578063247946c9146105ac5780632a55205a146105cc57600080fd5b8063113405571461049957806311ad408114610539578063225848cf1461055957600080fd5b8063070cba1711610354578063070cba17146103f4578063081812fc14610414578063095ea7b31461044c5780630f3d911c1461046c57600080fd5b806301ffc9a71461037b57806302fa7c47146103b057806306fdde03146103d2575b600080fd5b34801561038757600080fd5b5061039b610396366004613ae0565b610c0d565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b506103d06103cb366004613b12565b610c1e565b005b3480156103de57600080fd5b506103e7610caa565b6040516103a79190613baf565b34801561040057600080fd5b506103d061040f366004613bc2565b610d3c565b34801561042057600080fd5b5061043461042f366004613bdf565b610f42565b6040516001600160a01b0390911681526020016103a7565b34801561045857600080fd5b506103d0610467366004613bf8565b610f69565b34801561047857600080fd5b5061048c610487366004613c24565b610f82565b6040516103a79190613c49565b3480156104a557600080fd5b506105036104b4366004613cc1565b601360209081526000938452604080852082529284528284209052825290205460ff81169063ffffffff61010082048116916001600160401b03600160281b82041691600160681b9091041684565b60408051941515855263ffffffff93841660208601526001600160401b03909216918401919091521660608201526080016103a7565b34801561054557600080fd5b506103d0610554366004613d0c565b611182565b34801561056557600080fd5b506103d0610574366004613d3c565b6111a2565b6103d0610587366004613d6a565b6111c1565b34801561059857600080fd5b506103d06105a7366004613dde565b611230565b3480156105b857600080fd5b506103d06105c7366004613eca565b611255565b3480156105d857600080fd5b506105ec6105e7366004613d0c565b6112ab565b604080516001600160a01b0390931683526020830191909152016103a7565b6103d0610619366004613bdf565b611357565b34801561062a57600080fd5b506103d0610639366004613c24565b611447565b34801561064a57600080fd5b5061039b610659366004613bc2565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561068357600080fd5b506104346daaeb6d7670e522a718067333cd4e81565b3480156106a557600080fd5b506103d06106b4366004613dde565b611465565b3480156106c557600080fd5b506103d06106d4366004613bf8565b61148a565b3480156106e557600080fd5b506103d06106f4366004613f2d565b61156c565b34801561070557600080fd5b50610719610714366004613f2d565b611589565b60405163ffffffff90911681526020016103a7565b34801561073a57600080fd5b506103d0610749366004613d0c565b6115df565b34801561075a57600080fd5b506103d0610769366004613f54565b6115fb565b34801561077a57600080fd5b50610434610789366004613bdf565b611651565b34801561079a57600080fd5b506103d06107a9366004613bc2565b6116b6565b3480156107ba57600080fd5b506107ce6107c9366004613f2d565b6117bd565b6040805193151584526020840192909252908201526060016103a7565b3480156107f757600080fd5b5061080b610806366004613bc2565b611841565b6040519081526020016103a7565b34801561082557600080fd5b506103d0610834366004613bc2565b6118c7565b34801561084557600080fd5b5061039b610854366004613f88565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205460ff1690565b34801561088e57600080fd5b5061080b61089d366004613f2d565b611a80565b3480156108ae57600080fd5b50600f5461080b565b3480156108c357600080fd5b506103d06108d2366004613f54565b611ab5565b3480156108e357600080fd5b506103d06108f2366004613bc2565b611b00565b34801561090357600080fd5b506000546001600160a01b0316610434565b34801561092157600080fd5b5061080b610930366004613c24565b611b36565b34801561094157600080fd5b506103e7611b5e565b34801561095657600080fd5b506103d0610965366004613b12565b611b6d565b34801561097657600080fd5b506103d0610985366004613bdf565b611bb4565b34801561099657600080fd5b50600a546001600160a01b0316610434565b3480156109b457600080fd5b506103d06109c3366004613d3c565b611bdb565b6103d06109d6366004613bdf565b611bef565b3480156109e757600080fd5b50610a1b6109f6366004613bc2565b600c6020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016103a7565b348015610a4657600080fd5b506103d0610a55366004613dde565b611c0a565b348015610a6657600080fd5b506103d0610a75366004613bdf565b611c48565b348015610a8657600080fd5b506103e7611c95565b348015610a9b57600080fd5b506103d0610aaa366004613fb6565b611d23565b348015610abb57600080fd5b506103d0610aca366004613d3c565b611d50565b348015610adb57600080fd5b5061039b610aea366004613bdf565b611de9565b348015610afb57600080fd5b506103e7610b0a366004613bdf565b611e96565b348015610b1b57600080fd5b506103d0610b2a366004613eca565b611f2d565b348015610b3b57600080fd5b506103e7611f92565b348015610b5057600080fd5b50610434610b5f366004613bdf565b611f9f565b348015610b7057600080fd5b506103d0610b7f366004613dde565b611fc9565b348015610b9057600080fd5b5061039b610b9f366004613f88565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b348015610bd957600080fd5b506103d0610be8366004613c24565b611fea565b348015610bf957600080fd5b506103d0610c08366004613bc2565b612007565b6000610c1882612111565b92915050565b610c26612151565b6127106001600160601b0382161115610c5257604051631557c04f60e21b815260040160405180910390fd5b610c5c828261217e565b604080516001600160a01b03841681526001600160601b03831660208201527f23813f5ad446622633cb58c75ceef768a2111751b0f30477a63e06fcaedcff60910160405180910390a15050565b606060088054610cb990614035565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce590614035565b8015610d325780601f10610d0757610100808354040283529160200191610d32565b820191906000526020600020905b815481529060010190602001808311610d1557829003601f168201915b5050505050905090565b610d44612151565b6001600160a01b0381166000908152600c602052604090205460ff16610d7d57604051630b094f2760e31b815260040160405180910390fd5b6001600160a01b0381166000908152600c6020526040812054600b546101009091046001600160801b03169190610db690600190614086565b905080826001600160801b031614610eb257600b8181548110610ddb57610ddb61409d565b600091825260209091200154600b80546001600160a01b03909216916001600160801b038516908110610e1057610e1061409d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600c6000600b856001600160801b031681548110610e5f57610e5f61409d565b60009182526020808320909101546001600160a01b03168352820192909252604001902080546001600160801b03929092166101000270ffffffffffffffffffffffffffffffff00199092169190911790555b600b805480610ec357610ec36140b3565b60008281526020808220600019908401810180546001600160a01b03191690559092019092556001600160a01b038516808352600c8252604080842080546001600160881b031916905551928352917fe152843d7324c2cb58e95865f2b78d38f2dab6ce9eadf09438ec2c41e78c705e910160405180910390a2505050565b6000610f4d8261227b565b506000908152600560205260409020546001600160a01b031690565b81610f73816122da565b610f7d83836123a2565b505050565b60606000610f908484611b36565b9050806001600160401b03811115610faa57610faa613e1f565b604051908082528060200260200182016040528015610ffc57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610fc85790505b5060008581526012602090815260408083206001600160a01b038816845282528083208054825181850281018501909352808352949650929390929183018282801561109357602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116110565790505b5050505050905060005b828110156111795760008681526013602090815260408083206001600160a01b0389168452909152812083519091908490849081106110de576110de61409d565b60209081029190910181015163ffffffff90811683528282019390935260409182016000208251608081018452905460ff81161515825261010081048516928201929092526001600160401b03600160281b83041692810192909252600160681b90049091166060820152845185908390811061115d5761115d61409d565b602002602001018190525080611172906140c9565b905061109d565b50505092915050565b61118a6124b3565b611193826124d9565b61119e823383612508565b5050565b61119e733cc6cdda760b79bafa08df41ecfa224f810dceb66001612036565b60006111d5600a546001600160a01b031690565b9050816111f55760405163e3a2b34560e01b815260040160405180910390fd5b60005b8281101561122a576112228484838181106112155761121561409d565b90506020020135836128d7565b6001016111f8565b50505050565b826001600160a01b038116331461124a5761124a336122da565b61122a848484612a26565b61125d612151565b601654610100900460ff161561128657604051635b79f68360e01b815260040160405180910390fd5b61128f826115fb565b61129881611ab5565b50506016805461ff001916610100179055565b60008281526015602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916113205750604080518082019091526014546001600160a01b0381168252600160a01b90046001600160601b031660208201525b60208101516000906127109061133f906001600160601b0316876140e4565b6113499190614119565b915196919550909350505050565b600061136282611651565b90506001600160a01b038116331461138d576040516367788f2960e01b815260040160405180910390fd5b6113978234612a57565b6113a082612a76565b6040516001600160a01b0382169083907f81b0ac4b13aab1ab3b86d524dd62924e99a9d694e94e235f627bb41589717ff790600090a3600a546040516323b872dd60e01b81523060048201526001600160a01b03838116602483015260448201859052909116906323b872dd906064015b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b61145081612b1d565b61145982612b57565b61119e82826000612b88565b826001600160a01b038116331461147f5761147f336122da565b61122a848484612e46565b611492612151565b806114b057604051635e85ae7360e01b815260040160405180910390fd5b6001600160a01b0382166114d7576040516344a0326d60e11b815260040160405180910390fd5b804710156114f857604051631e9acf1760e31b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611545576040519150601f19603f3d011682016040523d82523d6000602084013e61154a565b606091505b5050905080610f7d57604051630938e72560e31b815260040160405180910390fd5b61157582612b1d565b61157e83612b57565b610f7d838383612508565b601260205282600052604060002060205281600052604060002081815481106115b157600080fd5b906000526020600020906008918282040191900660040292509250509054906101000a900463ffffffff1681565b6115e76124b3565b6115f0826124d9565b61119e823383612e61565b611603612151565b8051611616906017906020840190613a10565b507ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f6816040516116469190613baf565b60405180910390a150565b6000818152600360205260408120546001600160a01b031680610c185760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064015b60405180910390fd5b6116be612151565b600a546001600160a01b0316156116e857604051636be9ab9b60e11b815260040160405180910390fd5b60006001600160a01b0382163b1561177c576040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a79060240160206040518083038186803b15801561174057600080fd5b505afa925050508015611770575060408051601f3d908101601f1916820190925261176d9181019061412d565b60015b6117795761177c565b90505b8061179a57604051634321591760e11b815260040160405180910390fd5b50600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808063ffffffff8411156117e6576040516307f159d160e31b815260040160405180910390fd5b50505060009283526013602090815260408085206001600160a01b0394909416855292815282842063ffffffff9283168552905291205460ff811692600160281b82046001600160401b031692600160681b90920490911690565b60006001600160a01b0382166118ab5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016116ad565b506001600160a01b031660009081526004602052604090205490565b6118cf612151565b6001600160a01b0381166000908152600c602052604090205460ff16156119095760405163b73e95e160e01b815260040160405180910390fd5b6040516301ffc9a760e01b81526325df830760e21b60048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611987919061412d565b6119a4576040516390c51dd760e01b815260040160405180910390fd5b600b546001600160801b038111156119cf57604051636ab8f7f960e11b815260040160405180910390fd5b6001600160a01b0382166000818152600c60209081526040808320805460016001600160881b03199091166101006001600160801b03891602178117909155600b8054808301825594527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990930180546001600160a01b03191685179055519182527fe152843d7324c2cb58e95865f2b78d38f2dab6ce9eadf09438ec2c41e78c705e910160405180910390a25050565b6000806000611a908686866117bd565b509150915081611aa1576000611aab565b611aab8142614086565b9695505050505050565b611abd612151565b8051611ad0906018906020840190613a10565b507f65ccd57f8a46e7a6cfc4d214d84094e8ba5561ab50fd328f26e4c44052ffeba0816040516116469190613baf565b6000546001600160a01b031615611b2a57604051631360e86560e31b815260040160405180910390fd5b611b33816130f1565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205490565b606060098054610cb990614035565b611b75612151565b60165460ff1615611b9957604051639383013960e01b815260040160405180910390fd5b611ba38282610c1e565b50506016805460ff19166001179055565b611bbc6124b3565b611bc5816124d9565b6002600e55611bd381612a76565b506001600e55565b81611be5816122da565b610f7d8383613141565b611b3381611c05600a546001600160a01b031690565b6128d7565b611c126124b3565b611c1b816124d9565b6002600e81905550611c3e8383836040518060200160405280600081525061314c565b50506001600e5550565b611c50612151565b600d5460ff1615611c7457604051630e009cb560e11b815260040160405180910390fd5b611c7d8161317f565b600f55600d805460ff19166001908117909155600e55565b60188054611ca290614035565b80601f0160208091040260200160405190810160405280929190818152602001828054611cce90614035565b8015611d1b5780601f10611cf057610100808354040283529160200191611d1b565b820191906000526020600020905b815481529060010190602001808311611cfe57829003601f168201915b505050505081565b836001600160a01b0381163314611d3d57611d3d336122da565b611d49858585856131bf565b5050505050565b336001600160a01b038316811415611d7b576040516353ff677360e11b815260040160405180910390fd5b6001600160a01b03818116600081815260116020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f83347dcc77580bb841ae3bac834b5b8ac5ccd2326276d265e638987eb6b2c05691015b60405180910390a3505050565b6000818152600360205260408120546001600160a01b031615158015610c185750600a546040516331a9108f60e11b81526004810184905230916001600160a01b031690636352211e9060240160206040518083038186803b158015611e4e57600080fd5b505afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e86919061414a565b6001600160a01b03161492915050565b6000818152600360205260409020546060906001600160a01b0316611ece5760405163163a09e160e31b815260040160405180910390fd5b6000611ed86131f1565b90506000815111611ef85760405180602001604052806000815250611f26565b80611f0284613200565b6018604051602001611f1693929190614167565b6040516020818303038152906040525b9392505050565b611f35612151565b60075460ff1615611f59576040516376f1a0b360e01b815260040160405180910390fd5b8151611f6c906008906020850190613a10565b508051611f80906009906020840190613a10565b50506007805460ff1916600117905550565b60178054611ca290614035565b600b8181548110611faf57600080fd5b6000918252602090912001546001600160a01b0316905081565b611fd16124b3565b611fda816124d9565b6002600e55611c3e838383613305565b611ff2612151565b611ffb81612b1d565b61119e82826001612b88565b61200f612151565b6001600160a01b038116611b2a5760405163f82d512f60e01b815260040160405180910390fd5b6daaeb6d7670e522a718067333cd4e3b1561119e57801561209157604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe90604401611411565b6001600160a01b038216156120e05760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401611411565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401611411565b60006001600160e01b031982166395fa0ff560e01b148061214257506001600160e01b0319821663247946c960e01b145b80610c185750610c18826134ac565b6000546001600160a01b0316331461217c5760405163097b5fdb60e31b815260040160405180910390fd5b565b6127106001600160601b03821611156121ec5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016116ad565b6001600160a01b0382166122425760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016116ad565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217601455565b6000818152600360205260409020546001600160a01b0316611b335760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016116ad565b6daaeb6d7670e522a718067333cd4e3b15611b3357604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561234257600080fd5b505afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a919061412d565b611b3357604051633b79c77360e21b81526001600160a01b03821660048201526024016116ad565b60006123ad82611651565b9050806001600160a01b0316836001600160a01b0316141561241b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016116ad565b336001600160a01b038216148061243757506124378133610b9f565b6124a95760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016116ad565b610f7d83836134d1565b6124bc33610659565b61217c57604051639eea455560e01b815260040160405180910390fd5b6124eb6124e582611651565b33610854565b611b33576040516306c5be1b60e31b815260040160405180910390fd5b60008060006125188686866117bd565b9250925092508261253c5760405163107acf8360e11b815260040160405180910390fd5b836000600161254b8989611b36565b6125559190614086565b90508083146126ba5760008881526012602090815260408083206001600160a01b038b16845290915290208054829081106125925761259261409d565b600091825260208083206008830401548b84526012825260408085206001600160a01b038d1686529092529220805460079092166004026101000a90920463ffffffff169190859081106125e8576125e861409d565b600091825260208083206008830401805460079093166004026101000a63ffffffff8181021990941695909316929092029390931790558981526013825260408082206001600160a01b038b168084529084528183208c8452601285528284209184529352812080548693929190859081106126665761266661409d565b6000918252602080832060088304015460079092166004026101000a90910463ffffffff90811684529083019390935260409091019020805463ffffffff60681b1916600160681b93909216929092021790555b60008881526012602090815260408083206001600160a01b038b16845290915290208054806126eb576126eb6140b3565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a810219909116909155929093558a81526013835260408082206001600160a01b038c1683528452808220928616825291909252812080546001600160881b031916905561275f89611651565b9050876001600160a01b0316816001600160a01b03168a7f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee8a6000806040516127bd9392919092835290151560208301521515604082015260600190565b60405180910390a4876001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b1580156127fe57600080fd5b505afa158015612812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612836919061412d565b1561285c57600089815260106020526040812080549091906128579061422b565b909155505b604051636d4229c960e01b81526001600160a01b038281166004830152602482018b90526044820189905260648201879052891690636d4229c990608401600060405180830381600087803b1580156128b457600080fd5b505af11580156128c8573d6000803e3d6000fd5b50505050505050505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03831690636352211e9060240160206040518083038186803b15801561291a57600080fd5b505afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612952919061414a565b90506001600160a01b038116331461297d5760405163679e269b60e01b815260040160405180910390fd5b612987833461353f565b6040516001600160a01b0382169084907f6e47dcdd359b6cd69456f0f97d394bd4540a2e7c4adc1b9da076859df53756c790600090a36129c7818461355e565b604051630852cd8d60e31b8152600481018490526001600160a01b038316906342966c6890602401600060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b50505050505050565b612a3033826136ac565b612a4c5760405162461bcd60e51b81526004016116ad90614242565b610f7d838383613305565b801561119e5760405163fe1b687760e01b815260040160405180910390fd5b6000612a8182611651565b9050612a8f8160008461372a565b612a9a6000836134d1565b6001600160a01b0381166000908152600460205260408120805460019290612ac3908490614086565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0381166000908152600c602052604090205460ff1615611b335760405163c0f8cffb60e01b815260040160405180910390fd5b33612b6182611651565b6001600160a01b031614611b335760405163b23b68b760e01b815260040160405180910390fd5b6000612b9384611651565b90506000612ba18585611b36565b9050836001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b158015612bdc57600080fd5b505afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c14919061412d565b15612c3d5760008581526010602052604081208054839290612c37908490614086565b90915550505b60005b81811015612e1a5760008681526012602090815260408083206001600160a01b03891684529091528120805483908110612c7c57612c7c61409d565b600091825260208083206008830401548a84526013825260408085206001600160a01b038c8116808852918552828720600790961660040261010090810a90940463ffffffff9081168089529686528388208451608081018652905460ff811615158252958604821681880152600160281b86046001600160401b0316818601819052600160681b9096049091166060808301919091528451888152968701989098528c151593860193909352949650909491939092908916918c917f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee910160405180910390a460008981526013602090815260408083206001600160a01b038c811680865291845282852063ffffffff891680875294529382902080546001600160881b03191690559051636d4229c960e01b81529289166004840152602483018c905260448301919091526064820183905290636d4229c990608401600060405180830381600087803b158015612df457600080fd5b505af1158015612e08573d6000803e3d6000fd5b50505050836001019350505050612c40565b5060008581526012602090815260408083206001600160a01b03881684529091528120611d4991613a94565b610f7d83838360405180602001604052806000815250611d23565b6000612e6e8484846117bd565b505090508015612e9157604051637f53cfe360e01b815260040160405180910390fd5b6000612e9d8585611b36565b9050600f548110612ec15760405163f8315a8760e01b815260040160405180910390fd5b60008581526012602090815260408083206001600160a01b03881680855290835281842080546001808201835591865284862060088204018054600790921660040261010090810a63ffffffff818102199094168c8516918202179092558c88526013875285882094885293865284872081885290955292852080546cffffffffffffffff00000000ff1916600160281b426001600160401b0316021790911770ffffffff0000000000000000ffffffff0019169190930263ffffffff60681b191617600160681b918516919091021790558390612f9e87611651565b604080518781526001602082015260008183015290519192506001600160a01b0388811692908416918a917f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee9181900360600190a4856001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b15801561302c57600080fd5b505afa158015613040573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613064919061412d565b1561307f576000878152601060205260409020805460010190555b60405163688a374160e01b81526001600160a01b038281166004830152602482018990526044820187905287169063688a374190606401600060405180830381600087803b1580156130d057600080fd5b505af11580156130e4573d6000803e3d6000fd5b5050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61119e338383613757565b613157848484613305565b6131638484848461381e565b61122a5760405162461bcd60e51b81526004016116ad90614290565b8061319d5760405163318ccdef60e11b815260040160405180910390fd5b6064811115611b3357604051639cb75faf60e01b815260040160405180910390fd5b6131c933836136ac565b6131e55760405162461bcd60e51b81526004016116ad90614242565b61122a8484848461314c565b606060178054610cb990614035565b6060816132245750506040805180820190915260018152600360fc1b602082015290565b8160005b811561324e5780613238816140c9565b91506132479050600a83614119565b9150613228565b6000816001600160401b0381111561326857613268613e1f565b6040519080825280601f01601f191660200182016040528015613292576020820181803683370190505b5090505b84156132fd576132a7600183614086565b91506132b4600a866142e2565b6132bf9060306142f6565b60f81b8183815181106132d4576132d461409d565b60200101906001600160f81b031916908160001a9053506132f6600a86614119565b9450613296565b949350505050565b826001600160a01b031661331882611651565b6001600160a01b03161461337c5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016116ad565b6001600160a01b0382166133de5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016116ad565b6133e983838361372a565b6133f46000826134d1565b6001600160a01b038316600090815260046020526040812080546001929061341d908490614086565b90915550506001600160a01b038216600090815260046020526040812080546001929061344b9084906142f6565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160e01b0319821663152a902d60e11b1480610c185750610c188261392b565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061350682611651565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b801561119e57604051634389878f60e01b815260040160405180910390fd5b6001600160a01b0382166135b45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016116ad565b6000818152600360205260409020546001600160a01b0316156136195760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016116ad565b6136256000838361372a565b6001600160a01b038216600090815260046020526040812080546001929061364e9084906142f6565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000806136b883611651565b9050806001600160a01b0316846001600160a01b031614806136ff57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b806132fd5750836001600160a01b031661371884610f42565b6001600160a01b031614949350505050565b60008181526010602052604090205415610f7d576040516302579f0160e61b815260040160405180910390fd5b816001600160a01b0316836001600160a01b031614156137b95760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016116ad565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ddc565b60006001600160a01b0384163b1561392057604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061386290339089908890889060040161430e565b602060405180830381600087803b15801561387c57600080fd5b505af19250505080156138ac575060408051601f3d908101601f191682019092526138a991810190614341565b60015b613906573d8080156138da576040519150601f19603f3d011682016040523d82523d6000602084013e6138df565b606091505b5080516138fe5760405162461bcd60e51b81526004016116ad90614290565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506132fd565b506001949350505050565b60006001600160e01b0319821663f9f7ab4160e01b148061395b57506001600160e01b0319821662059cfd60ed1b145b80610c185750610c188260006001600160e01b0319821663d116265360e01b148061399657506001600160e01b03198216630198b32960e61b145b80610c185750610c188260006001600160e01b031982166368a3e4bd60e11b1480610c185750610c188260006001600160e01b031982166380ac58cd60e01b14806139f157506001600160e01b03198216635b5e139f60e01b145b80610c1857506301ffc9a760e01b6001600160e01b0319831614610c18565b828054613a1c90614035565b90600052602060002090601f016020900481019282613a3e5760008555613a84565b82601f10613a5757805160ff1916838001178555613a84565b82800160010185558215613a84579182015b82811115613a84578251825591602001919060010190613a69565b50613a90929150613ab5565b5090565b508054600082556007016008900490600052602060002090810190611b3391905b5b80821115613a905760008155600101613ab6565b6001600160e01b031981168114611b3357600080fd5b600060208284031215613af257600080fd5b8135611f2681613aca565b6001600160a01b0381168114611b3357600080fd5b60008060408385031215613b2557600080fd5b8235613b3081613afd565b915060208301356001600160601b0381168114613b4c57600080fd5b809150509250929050565b60005b83811015613b72578181015183820152602001613b5a565b8381111561122a5750506000910152565b60008151808452613b9b816020860160208601613b57565b601f01601f19169290920160200192915050565b602081526000611f266020830184613b83565b600060208284031215613bd457600080fd5b8135611f2681613afd565b600060208284031215613bf157600080fd5b5035919050565b60008060408385031215613c0b57600080fd5b8235613c1681613afd565b946020939093013593505050565b60008060408385031215613c3757600080fd5b823591506020830135613b4c81613afd565b602080825282518282018190526000919060409081850190868401855b82811015613cb45781518051151585528681015163ffffffff90811688870152868201516001600160401b031687870152606091820151169085015260809093019290850190600101613c66565b5091979650505050505050565b600080600060608486031215613cd657600080fd5b833592506020840135613ce881613afd565b9150604084013563ffffffff81168114613d0157600080fd5b809150509250925092565b60008060408385031215613d1f57600080fd5b50508035926020909101359150565b8015158114611b3357600080fd5b60008060408385031215613d4f57600080fd5b8235613d5a81613afd565b91506020830135613b4c81613d2e565b60008060208385031215613d7d57600080fd5b82356001600160401b0380821115613d9457600080fd5b818501915085601f830112613da857600080fd5b813581811115613db757600080fd5b8660208260051b8501011115613dcc57600080fd5b60209290920196919550909350505050565b600080600060608486031215613df357600080fd5b8335613dfe81613afd565b92506020840135613e0e81613afd565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115613e4f57613e4f613e1f565b604051601f8501601f19908116603f01168101908282118183101715613e7757613e77613e1f565b81604052809350858152868686011115613e9057600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112613ebb57600080fd5b611f2683833560208501613e35565b60008060408385031215613edd57600080fd5b82356001600160401b0380821115613ef457600080fd5b613f0086838701613eaa565b93506020850135915080821115613f1657600080fd5b50613f2385828601613eaa565b9150509250929050565b600080600060608486031215613f4257600080fd5b833592506020840135613e0e81613afd565b600060208284031215613f6657600080fd5b81356001600160401b03811115613f7c57600080fd5b6132fd84828501613eaa565b60008060408385031215613f9b57600080fd5b8235613fa681613afd565b91506020830135613b4c81613afd565b60008060008060808587031215613fcc57600080fd5b8435613fd781613afd565b93506020850135613fe781613afd565b92506040850135915060608501356001600160401b0381111561400957600080fd5b8501601f8101871361401a57600080fd5b61402987823560208401613e35565b91505092959194509250565b600181811c9082168061404957607f821691505b6020821081141561406a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561409857614098614070565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006000198214156140dd576140dd614070565b5060010190565b60008160001904831182151516156140fe576140fe614070565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261412857614128614103565b500490565b60006020828403121561413f57600080fd5b8151611f2681613d2e565b60006020828403121561415c57600080fd5b8151611f2681613afd565b60008451602061417a8285838a01613b57565b85519184019161418d8184848a01613b57565b8554920191600090600181811c90808316806141aa57607f831692505b8583108114156141c857634e487b7160e01b85526022600452602485fd5b8080156141dc57600181146141ed5761421a565b60ff1985168852838801955061421a565b60008b81526020902060005b858110156142125781548a8201529084019088016141f9565b505083880195505b50939b9a5050505050505050505050565b60008161423a5761423a614070565b506000190190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826142f1576142f1614103565b500690565b6000821982111561430957614309614070565b500190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611aab90830184613b83565b60006020828403121561435357600080fd5b8151611f2681613aca56fea26469706673582212201e8b19c3fef9d4a118e3533d18a34e7e96b10d605bfa3711eeda60173f4df39064736f6c6343000809003368747470733a2f2f6469676964616967616b752e636f6d2f626162792d647261676f6e732f6d657461646174612f000000000000000000000000aabc3aef1ce0d23eeaabfc7c6cd9043fcebf7400000000000000000000000000688d6520d7917ed6a6a6fb8f3130b6998d879d0b00000000000000000000000000000000000000000000000000000000000003e8
Deployed Bytecode
0x6080604052600436106103765760003560e01c80637e10b35b116101d1578063aa6cab5a11610102578063c87b56dd116100a0578063e370ab461161006f578063e370ab4614610b64578063e985e9c514610b84578063f1e923c514610bcd578063f2fde38b14610bed57600080fd5b8063c87b56dd14610aef578063d147c97a14610b0f578063d547cfb714610b2f578063e2989f4c14610b4457600080fd5b8063b3bcea48116100dc578063b3bcea4814610a7a578063b88d4fde14610a8f578063c05e2f4414610aaf578063c61bd21414610acf57600080fd5b8063aa6cab5a146109db578063aca139f714610a3a578063b39fa00014610a5a57600080fd5b8063916237181161016f5780639bc17ea4116101495780639bc17ea41461096a5780639f8ed6051461098a578063a22cb465146109a8578063a694fc3a146109c857600080fd5b8063916237181461091557806395d89b411461093557806395fa0ff51461094a57600080fd5b8063869f9110116101ab578063869f9110146108a25780638be18e57146108b75780638c5f36bb146108d75780638da5cb5b146108f757600080fd5b80637e10b35b146108195780637f1a5ce114610839578063816a15011461088257600080fd5b80632e17de78116102ab57806351dadc28116102495780636352211e116102235780636352211e1461076e578063662cca401461078e578063703fa929146107ae57806370a08231146107eb57600080fd5b806351dadc28146106f957806353401df91461072e57806355f804b31461074e57600080fd5b806341f434341161028557806341f434341461067757806342842e0e146106995780634782f779146106b95780634e02c078146106d957600080fd5b80632e17de781461060b5780632ebb386a1461061e578063301be7401461063e57600080fd5b80631134055711610318578063230f436d116102f2578063230f436d1461057957806323b872dd1461058c578063247946c9146105ac5780632a55205a146105cc57600080fd5b8063113405571461049957806311ad408114610539578063225848cf1461055957600080fd5b8063070cba1711610354578063070cba17146103f4578063081812fc14610414578063095ea7b31461044c5780630f3d911c1461046c57600080fd5b806301ffc9a71461037b57806302fa7c47146103b057806306fdde03146103d2575b600080fd5b34801561038757600080fd5b5061039b610396366004613ae0565b610c0d565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b506103d06103cb366004613b12565b610c1e565b005b3480156103de57600080fd5b506103e7610caa565b6040516103a79190613baf565b34801561040057600080fd5b506103d061040f366004613bc2565b610d3c565b34801561042057600080fd5b5061043461042f366004613bdf565b610f42565b6040516001600160a01b0390911681526020016103a7565b34801561045857600080fd5b506103d0610467366004613bf8565b610f69565b34801561047857600080fd5b5061048c610487366004613c24565b610f82565b6040516103a79190613c49565b3480156104a557600080fd5b506105036104b4366004613cc1565b601360209081526000938452604080852082529284528284209052825290205460ff81169063ffffffff61010082048116916001600160401b03600160281b82041691600160681b9091041684565b60408051941515855263ffffffff93841660208601526001600160401b03909216918401919091521660608201526080016103a7565b34801561054557600080fd5b506103d0610554366004613d0c565b611182565b34801561056557600080fd5b506103d0610574366004613d3c565b6111a2565b6103d0610587366004613d6a565b6111c1565b34801561059857600080fd5b506103d06105a7366004613dde565b611230565b3480156105b857600080fd5b506103d06105c7366004613eca565b611255565b3480156105d857600080fd5b506105ec6105e7366004613d0c565b6112ab565b604080516001600160a01b0390931683526020830191909152016103a7565b6103d0610619366004613bdf565b611357565b34801561062a57600080fd5b506103d0610639366004613c24565b611447565b34801561064a57600080fd5b5061039b610659366004613bc2565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561068357600080fd5b506104346daaeb6d7670e522a718067333cd4e81565b3480156106a557600080fd5b506103d06106b4366004613dde565b611465565b3480156106c557600080fd5b506103d06106d4366004613bf8565b61148a565b3480156106e557600080fd5b506103d06106f4366004613f2d565b61156c565b34801561070557600080fd5b50610719610714366004613f2d565b611589565b60405163ffffffff90911681526020016103a7565b34801561073a57600080fd5b506103d0610749366004613d0c565b6115df565b34801561075a57600080fd5b506103d0610769366004613f54565b6115fb565b34801561077a57600080fd5b50610434610789366004613bdf565b611651565b34801561079a57600080fd5b506103d06107a9366004613bc2565b6116b6565b3480156107ba57600080fd5b506107ce6107c9366004613f2d565b6117bd565b6040805193151584526020840192909252908201526060016103a7565b3480156107f757600080fd5b5061080b610806366004613bc2565b611841565b6040519081526020016103a7565b34801561082557600080fd5b506103d0610834366004613bc2565b6118c7565b34801561084557600080fd5b5061039b610854366004613f88565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205460ff1690565b34801561088e57600080fd5b5061080b61089d366004613f2d565b611a80565b3480156108ae57600080fd5b50600f5461080b565b3480156108c357600080fd5b506103d06108d2366004613f54565b611ab5565b3480156108e357600080fd5b506103d06108f2366004613bc2565b611b00565b34801561090357600080fd5b506000546001600160a01b0316610434565b34801561092157600080fd5b5061080b610930366004613c24565b611b36565b34801561094157600080fd5b506103e7611b5e565b34801561095657600080fd5b506103d0610965366004613b12565b611b6d565b34801561097657600080fd5b506103d0610985366004613bdf565b611bb4565b34801561099657600080fd5b50600a546001600160a01b0316610434565b3480156109b457600080fd5b506103d06109c3366004613d3c565b611bdb565b6103d06109d6366004613bdf565b611bef565b3480156109e757600080fd5b50610a1b6109f6366004613bc2565b600c6020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016103a7565b348015610a4657600080fd5b506103d0610a55366004613dde565b611c0a565b348015610a6657600080fd5b506103d0610a75366004613bdf565b611c48565b348015610a8657600080fd5b506103e7611c95565b348015610a9b57600080fd5b506103d0610aaa366004613fb6565b611d23565b348015610abb57600080fd5b506103d0610aca366004613d3c565b611d50565b348015610adb57600080fd5b5061039b610aea366004613bdf565b611de9565b348015610afb57600080fd5b506103e7610b0a366004613bdf565b611e96565b348015610b1b57600080fd5b506103d0610b2a366004613eca565b611f2d565b348015610b3b57600080fd5b506103e7611f92565b348015610b5057600080fd5b50610434610b5f366004613bdf565b611f9f565b348015610b7057600080fd5b506103d0610b7f366004613dde565b611fc9565b348015610b9057600080fd5b5061039b610b9f366004613f88565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b348015610bd957600080fd5b506103d0610be8366004613c24565b611fea565b348015610bf957600080fd5b506103d0610c08366004613bc2565b612007565b6000610c1882612111565b92915050565b610c26612151565b6127106001600160601b0382161115610c5257604051631557c04f60e21b815260040160405180910390fd5b610c5c828261217e565b604080516001600160a01b03841681526001600160601b03831660208201527f23813f5ad446622633cb58c75ceef768a2111751b0f30477a63e06fcaedcff60910160405180910390a15050565b606060088054610cb990614035565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce590614035565b8015610d325780601f10610d0757610100808354040283529160200191610d32565b820191906000526020600020905b815481529060010190602001808311610d1557829003601f168201915b5050505050905090565b610d44612151565b6001600160a01b0381166000908152600c602052604090205460ff16610d7d57604051630b094f2760e31b815260040160405180910390fd5b6001600160a01b0381166000908152600c6020526040812054600b546101009091046001600160801b03169190610db690600190614086565b905080826001600160801b031614610eb257600b8181548110610ddb57610ddb61409d565b600091825260209091200154600b80546001600160a01b03909216916001600160801b038516908110610e1057610e1061409d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600c6000600b856001600160801b031681548110610e5f57610e5f61409d565b60009182526020808320909101546001600160a01b03168352820192909252604001902080546001600160801b03929092166101000270ffffffffffffffffffffffffffffffff00199092169190911790555b600b805480610ec357610ec36140b3565b60008281526020808220600019908401810180546001600160a01b03191690559092019092556001600160a01b038516808352600c8252604080842080546001600160881b031916905551928352917fe152843d7324c2cb58e95865f2b78d38f2dab6ce9eadf09438ec2c41e78c705e910160405180910390a2505050565b6000610f4d8261227b565b506000908152600560205260409020546001600160a01b031690565b81610f73816122da565b610f7d83836123a2565b505050565b60606000610f908484611b36565b9050806001600160401b03811115610faa57610faa613e1f565b604051908082528060200260200182016040528015610ffc57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610fc85790505b5060008581526012602090815260408083206001600160a01b038816845282528083208054825181850281018501909352808352949650929390929183018282801561109357602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116110565790505b5050505050905060005b828110156111795760008681526013602090815260408083206001600160a01b0389168452909152812083519091908490849081106110de576110de61409d565b60209081029190910181015163ffffffff90811683528282019390935260409182016000208251608081018452905460ff81161515825261010081048516928201929092526001600160401b03600160281b83041692810192909252600160681b90049091166060820152845185908390811061115d5761115d61409d565b602002602001018190525080611172906140c9565b905061109d565b50505092915050565b61118a6124b3565b611193826124d9565b61119e823383612508565b5050565b61119e733cc6cdda760b79bafa08df41ecfa224f810dceb66001612036565b60006111d5600a546001600160a01b031690565b9050816111f55760405163e3a2b34560e01b815260040160405180910390fd5b60005b8281101561122a576112228484838181106112155761121561409d565b90506020020135836128d7565b6001016111f8565b50505050565b826001600160a01b038116331461124a5761124a336122da565b61122a848484612a26565b61125d612151565b601654610100900460ff161561128657604051635b79f68360e01b815260040160405180910390fd5b61128f826115fb565b61129881611ab5565b50506016805461ff001916610100179055565b60008281526015602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916113205750604080518082019091526014546001600160a01b0381168252600160a01b90046001600160601b031660208201525b60208101516000906127109061133f906001600160601b0316876140e4565b6113499190614119565b915196919550909350505050565b600061136282611651565b90506001600160a01b038116331461138d576040516367788f2960e01b815260040160405180910390fd5b6113978234612a57565b6113a082612a76565b6040516001600160a01b0382169083907f81b0ac4b13aab1ab3b86d524dd62924e99a9d694e94e235f627bb41589717ff790600090a3600a546040516323b872dd60e01b81523060048201526001600160a01b03838116602483015260448201859052909116906323b872dd906064015b600060405180830381600087803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b505050505050565b61145081612b1d565b61145982612b57565b61119e82826000612b88565b826001600160a01b038116331461147f5761147f336122da565b61122a848484612e46565b611492612151565b806114b057604051635e85ae7360e01b815260040160405180910390fd5b6001600160a01b0382166114d7576040516344a0326d60e11b815260040160405180910390fd5b804710156114f857604051631e9acf1760e31b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611545576040519150601f19603f3d011682016040523d82523d6000602084013e61154a565b606091505b5050905080610f7d57604051630938e72560e31b815260040160405180910390fd5b61157582612b1d565b61157e83612b57565b610f7d838383612508565b601260205282600052604060002060205281600052604060002081815481106115b157600080fd5b906000526020600020906008918282040191900660040292509250509054906101000a900463ffffffff1681565b6115e76124b3565b6115f0826124d9565b61119e823383612e61565b611603612151565b8051611616906017906020840190613a10565b507ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f6816040516116469190613baf565b60405180910390a150565b6000818152600360205260408120546001600160a01b031680610c185760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064015b60405180910390fd5b6116be612151565b600a546001600160a01b0316156116e857604051636be9ab9b60e11b815260040160405180910390fd5b60006001600160a01b0382163b1561177c576040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a79060240160206040518083038186803b15801561174057600080fd5b505afa925050508015611770575060408051601f3d908101601f1916820190925261176d9181019061412d565b60015b6117795761177c565b90505b8061179a57604051634321591760e11b815260040160405180910390fd5b50600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808063ffffffff8411156117e6576040516307f159d160e31b815260040160405180910390fd5b50505060009283526013602090815260408085206001600160a01b0394909416855292815282842063ffffffff9283168552905291205460ff811692600160281b82046001600160401b031692600160681b90920490911690565b60006001600160a01b0382166118ab5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016116ad565b506001600160a01b031660009081526004602052604090205490565b6118cf612151565b6001600160a01b0381166000908152600c602052604090205460ff16156119095760405163b73e95e160e01b815260040160405180910390fd5b6040516301ffc9a760e01b81526325df830760e21b60048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611987919061412d565b6119a4576040516390c51dd760e01b815260040160405180910390fd5b600b546001600160801b038111156119cf57604051636ab8f7f960e11b815260040160405180910390fd5b6001600160a01b0382166000818152600c60209081526040808320805460016001600160881b03199091166101006001600160801b03891602178117909155600b8054808301825594527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990930180546001600160a01b03191685179055519182527fe152843d7324c2cb58e95865f2b78d38f2dab6ce9eadf09438ec2c41e78c705e910160405180910390a25050565b6000806000611a908686866117bd565b509150915081611aa1576000611aab565b611aab8142614086565b9695505050505050565b611abd612151565b8051611ad0906018906020840190613a10565b507f65ccd57f8a46e7a6cfc4d214d84094e8ba5561ab50fd328f26e4c44052ffeba0816040516116469190613baf565b6000546001600160a01b031615611b2a57604051631360e86560e31b815260040160405180910390fd5b611b33816130f1565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205490565b606060098054610cb990614035565b611b75612151565b60165460ff1615611b9957604051639383013960e01b815260040160405180910390fd5b611ba38282610c1e565b50506016805460ff19166001179055565b611bbc6124b3565b611bc5816124d9565b6002600e55611bd381612a76565b506001600e55565b81611be5816122da565b610f7d8383613141565b611b3381611c05600a546001600160a01b031690565b6128d7565b611c126124b3565b611c1b816124d9565b6002600e81905550611c3e8383836040518060200160405280600081525061314c565b50506001600e5550565b611c50612151565b600d5460ff1615611c7457604051630e009cb560e11b815260040160405180910390fd5b611c7d8161317f565b600f55600d805460ff19166001908117909155600e55565b60188054611ca290614035565b80601f0160208091040260200160405190810160405280929190818152602001828054611cce90614035565b8015611d1b5780601f10611cf057610100808354040283529160200191611d1b565b820191906000526020600020905b815481529060010190602001808311611cfe57829003601f168201915b505050505081565b836001600160a01b0381163314611d3d57611d3d336122da565b611d49858585856131bf565b5050505050565b336001600160a01b038316811415611d7b576040516353ff677360e11b815260040160405180910390fd5b6001600160a01b03818116600081815260116020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f83347dcc77580bb841ae3bac834b5b8ac5ccd2326276d265e638987eb6b2c05691015b60405180910390a3505050565b6000818152600360205260408120546001600160a01b031615158015610c185750600a546040516331a9108f60e11b81526004810184905230916001600160a01b031690636352211e9060240160206040518083038186803b158015611e4e57600080fd5b505afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e86919061414a565b6001600160a01b03161492915050565b6000818152600360205260409020546060906001600160a01b0316611ece5760405163163a09e160e31b815260040160405180910390fd5b6000611ed86131f1565b90506000815111611ef85760405180602001604052806000815250611f26565b80611f0284613200565b6018604051602001611f1693929190614167565b6040516020818303038152906040525b9392505050565b611f35612151565b60075460ff1615611f59576040516376f1a0b360e01b815260040160405180910390fd5b8151611f6c906008906020850190613a10565b508051611f80906009906020840190613a10565b50506007805460ff1916600117905550565b60178054611ca290614035565b600b8181548110611faf57600080fd5b6000918252602090912001546001600160a01b0316905081565b611fd16124b3565b611fda816124d9565b6002600e55611c3e838383613305565b611ff2612151565b611ffb81612b1d565b61119e82826001612b88565b61200f612151565b6001600160a01b038116611b2a5760405163f82d512f60e01b815260040160405180910390fd5b6daaeb6d7670e522a718067333cd4e3b1561119e57801561209157604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe90604401611411565b6001600160a01b038216156120e05760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401611411565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401611411565b60006001600160e01b031982166395fa0ff560e01b148061214257506001600160e01b0319821663247946c960e01b145b80610c185750610c18826134ac565b6000546001600160a01b0316331461217c5760405163097b5fdb60e31b815260040160405180910390fd5b565b6127106001600160601b03821611156121ec5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016116ad565b6001600160a01b0382166122425760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016116ad565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217601455565b6000818152600360205260409020546001600160a01b0316611b335760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016116ad565b6daaeb6d7670e522a718067333cd4e3b15611b3357604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561234257600080fd5b505afa158015612356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237a919061412d565b611b3357604051633b79c77360e21b81526001600160a01b03821660048201526024016116ad565b60006123ad82611651565b9050806001600160a01b0316836001600160a01b0316141561241b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016116ad565b336001600160a01b038216148061243757506124378133610b9f565b6124a95760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016116ad565b610f7d83836134d1565b6124bc33610659565b61217c57604051639eea455560e01b815260040160405180910390fd5b6124eb6124e582611651565b33610854565b611b33576040516306c5be1b60e31b815260040160405180910390fd5b60008060006125188686866117bd565b9250925092508261253c5760405163107acf8360e11b815260040160405180910390fd5b836000600161254b8989611b36565b6125559190614086565b90508083146126ba5760008881526012602090815260408083206001600160a01b038b16845290915290208054829081106125925761259261409d565b600091825260208083206008830401548b84526012825260408085206001600160a01b038d1686529092529220805460079092166004026101000a90920463ffffffff169190859081106125e8576125e861409d565b600091825260208083206008830401805460079093166004026101000a63ffffffff8181021990941695909316929092029390931790558981526013825260408082206001600160a01b038b168084529084528183208c8452601285528284209184529352812080548693929190859081106126665761266661409d565b6000918252602080832060088304015460079092166004026101000a90910463ffffffff90811684529083019390935260409091019020805463ffffffff60681b1916600160681b93909216929092021790555b60008881526012602090815260408083206001600160a01b038b16845290915290208054806126eb576126eb6140b3565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a810219909116909155929093558a81526013835260408082206001600160a01b038c1683528452808220928616825291909252812080546001600160881b031916905561275f89611651565b9050876001600160a01b0316816001600160a01b03168a7f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee8a6000806040516127bd9392919092835290151560208301521515604082015260600190565b60405180910390a4876001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b1580156127fe57600080fd5b505afa158015612812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612836919061412d565b1561285c57600089815260106020526040812080549091906128579061422b565b909155505b604051636d4229c960e01b81526001600160a01b038281166004830152602482018b90526044820189905260648201879052891690636d4229c990608401600060405180830381600087803b1580156128b457600080fd5b505af11580156128c8573d6000803e3d6000fd5b50505050505050505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03831690636352211e9060240160206040518083038186803b15801561291a57600080fd5b505afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612952919061414a565b90506001600160a01b038116331461297d5760405163679e269b60e01b815260040160405180910390fd5b612987833461353f565b6040516001600160a01b0382169084907f6e47dcdd359b6cd69456f0f97d394bd4540a2e7c4adc1b9da076859df53756c790600090a36129c7818461355e565b604051630852cd8d60e31b8152600481018490526001600160a01b038316906342966c6890602401600060405180830381600087803b158015612a0957600080fd5b505af1158015612a1d573d6000803e3d6000fd5b50505050505050565b612a3033826136ac565b612a4c5760405162461bcd60e51b81526004016116ad90614242565b610f7d838383613305565b801561119e5760405163fe1b687760e01b815260040160405180910390fd5b6000612a8182611651565b9050612a8f8160008461372a565b612a9a6000836134d1565b6001600160a01b0381166000908152600460205260408120805460019290612ac3908490614086565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0381166000908152600c602052604090205460ff1615611b335760405163c0f8cffb60e01b815260040160405180910390fd5b33612b6182611651565b6001600160a01b031614611b335760405163b23b68b760e01b815260040160405180910390fd5b6000612b9384611651565b90506000612ba18585611b36565b9050836001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b158015612bdc57600080fd5b505afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c14919061412d565b15612c3d5760008581526010602052604081208054839290612c37908490614086565b90915550505b60005b81811015612e1a5760008681526012602090815260408083206001600160a01b03891684529091528120805483908110612c7c57612c7c61409d565b600091825260208083206008830401548a84526013825260408085206001600160a01b038c8116808852918552828720600790961660040261010090810a90940463ffffffff9081168089529686528388208451608081018652905460ff811615158252958604821681880152600160281b86046001600160401b0316818601819052600160681b9096049091166060808301919091528451888152968701989098528c151593860193909352949650909491939092908916918c917f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee910160405180910390a460008981526013602090815260408083206001600160a01b038c811680865291845282852063ffffffff891680875294529382902080546001600160881b03191690559051636d4229c960e01b81529289166004840152602483018c905260448301919091526064820183905290636d4229c990608401600060405180830381600087803b158015612df457600080fd5b505af1158015612e08573d6000803e3d6000fd5b50505050836001019350505050612c40565b5060008581526012602090815260408083206001600160a01b03881684529091528120611d4991613a94565b610f7d83838360405180602001604052806000815250611d23565b6000612e6e8484846117bd565b505090508015612e9157604051637f53cfe360e01b815260040160405180910390fd5b6000612e9d8585611b36565b9050600f548110612ec15760405163f8315a8760e01b815260040160405180910390fd5b60008581526012602090815260408083206001600160a01b03881680855290835281842080546001808201835591865284862060088204018054600790921660040261010090810a63ffffffff818102199094168c8516918202179092558c88526013875285882094885293865284872081885290955292852080546cffffffffffffffff00000000ff1916600160281b426001600160401b0316021790911770ffffffff0000000000000000ffffffff0019169190930263ffffffff60681b191617600160681b918516919091021790558390612f9e87611651565b604080518781526001602082015260008183015290519192506001600160a01b0388811692908416918a917f1171d71105bda3fa01f863317a96e01684416ccb1e5416de7c09510bdfbe6aee9181900360600190a4856001600160a01b03166392b612946040518163ffffffff1660e01b815260040160206040518083038186803b15801561302c57600080fd5b505afa158015613040573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613064919061412d565b1561307f576000878152601060205260409020805460010190555b60405163688a374160e01b81526001600160a01b038281166004830152602482018990526044820187905287169063688a374190606401600060405180830381600087803b1580156130d057600080fd5b505af11580156130e4573d6000803e3d6000fd5b5050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61119e338383613757565b613157848484613305565b6131638484848461381e565b61122a5760405162461bcd60e51b81526004016116ad90614290565b8061319d5760405163318ccdef60e11b815260040160405180910390fd5b6064811115611b3357604051639cb75faf60e01b815260040160405180910390fd5b6131c933836136ac565b6131e55760405162461bcd60e51b81526004016116ad90614242565b61122a8484848461314c565b606060178054610cb990614035565b6060816132245750506040805180820190915260018152600360fc1b602082015290565b8160005b811561324e5780613238816140c9565b91506132479050600a83614119565b9150613228565b6000816001600160401b0381111561326857613268613e1f565b6040519080825280601f01601f191660200182016040528015613292576020820181803683370190505b5090505b84156132fd576132a7600183614086565b91506132b4600a866142e2565b6132bf9060306142f6565b60f81b8183815181106132d4576132d461409d565b60200101906001600160f81b031916908160001a9053506132f6600a86614119565b9450613296565b949350505050565b826001600160a01b031661331882611651565b6001600160a01b03161461337c5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016116ad565b6001600160a01b0382166133de5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016116ad565b6133e983838361372a565b6133f46000826134d1565b6001600160a01b038316600090815260046020526040812080546001929061341d908490614086565b90915550506001600160a01b038216600090815260046020526040812080546001929061344b9084906142f6565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160e01b0319821663152a902d60e11b1480610c185750610c188261392b565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061350682611651565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b801561119e57604051634389878f60e01b815260040160405180910390fd5b6001600160a01b0382166135b45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016116ad565b6000818152600360205260409020546001600160a01b0316156136195760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016116ad565b6136256000838361372a565b6001600160a01b038216600090815260046020526040812080546001929061364e9084906142f6565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000806136b883611651565b9050806001600160a01b0316846001600160a01b031614806136ff57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b806132fd5750836001600160a01b031661371884610f42565b6001600160a01b031614949350505050565b60008181526010602052604090205415610f7d576040516302579f0160e61b815260040160405180910390fd5b816001600160a01b0316836001600160a01b031614156137b95760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016116ad565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ddc565b60006001600160a01b0384163b1561392057604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061386290339089908890889060040161430e565b602060405180830381600087803b15801561387c57600080fd5b505af19250505080156138ac575060408051601f3d908101601f191682019092526138a991810190614341565b60015b613906573d8080156138da576040519150601f19603f3d011682016040523d82523d6000602084013e6138df565b606091505b5080516138fe5760405162461bcd60e51b81526004016116ad90614290565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506132fd565b506001949350505050565b60006001600160e01b0319821663f9f7ab4160e01b148061395b57506001600160e01b0319821662059cfd60ed1b145b80610c185750610c188260006001600160e01b0319821663d116265360e01b148061399657506001600160e01b03198216630198b32960e61b145b80610c185750610c188260006001600160e01b031982166368a3e4bd60e11b1480610c185750610c188260006001600160e01b031982166380ac58cd60e01b14806139f157506001600160e01b03198216635b5e139f60e01b145b80610c1857506301ffc9a760e01b6001600160e01b0319831614610c18565b828054613a1c90614035565b90600052602060002090601f016020900481019282613a3e5760008555613a84565b82601f10613a5757805160ff1916838001178555613a84565b82800160010185558215613a84579182015b82811115613a84578251825591602001919060010190613a69565b50613a90929150613ab5565b5090565b508054600082556007016008900490600052602060002090810190611b3391905b5b80821115613a905760008155600101613ab6565b6001600160e01b031981168114611b3357600080fd5b600060208284031215613af257600080fd5b8135611f2681613aca565b6001600160a01b0381168114611b3357600080fd5b60008060408385031215613b2557600080fd5b8235613b3081613afd565b915060208301356001600160601b0381168114613b4c57600080fd5b809150509250929050565b60005b83811015613b72578181015183820152602001613b5a565b8381111561122a5750506000910152565b60008151808452613b9b816020860160208601613b57565b601f01601f19169290920160200192915050565b602081526000611f266020830184613b83565b600060208284031215613bd457600080fd5b8135611f2681613afd565b600060208284031215613bf157600080fd5b5035919050565b60008060408385031215613c0b57600080fd5b8235613c1681613afd565b946020939093013593505050565b60008060408385031215613c3757600080fd5b823591506020830135613b4c81613afd565b602080825282518282018190526000919060409081850190868401855b82811015613cb45781518051151585528681015163ffffffff90811688870152868201516001600160401b031687870152606091820151169085015260809093019290850190600101613c66565b5091979650505050505050565b600080600060608486031215613cd657600080fd5b833592506020840135613ce881613afd565b9150604084013563ffffffff81168114613d0157600080fd5b809150509250925092565b60008060408385031215613d1f57600080fd5b50508035926020909101359150565b8015158114611b3357600080fd5b60008060408385031215613d4f57600080fd5b8235613d5a81613afd565b91506020830135613b4c81613d2e565b60008060208385031215613d7d57600080fd5b82356001600160401b0380821115613d9457600080fd5b818501915085601f830112613da857600080fd5b813581811115613db757600080fd5b8660208260051b8501011115613dcc57600080fd5b60209290920196919550909350505050565b600080600060608486031215613df357600080fd5b8335613dfe81613afd565b92506020840135613e0e81613afd565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115613e4f57613e4f613e1f565b604051601f8501601f19908116603f01168101908282118183101715613e7757613e77613e1f565b81604052809350858152868686011115613e9057600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112613ebb57600080fd5b611f2683833560208501613e35565b60008060408385031215613edd57600080fd5b82356001600160401b0380821115613ef457600080fd5b613f0086838701613eaa565b93506020850135915080821115613f1657600080fd5b50613f2385828601613eaa565b9150509250929050565b600080600060608486031215613f4257600080fd5b833592506020840135613e0e81613afd565b600060208284031215613f6657600080fd5b81356001600160401b03811115613f7c57600080fd5b6132fd84828501613eaa565b60008060408385031215613f9b57600080fd5b8235613fa681613afd565b91506020830135613b4c81613afd565b60008060008060808587031215613fcc57600080fd5b8435613fd781613afd565b93506020850135613fe781613afd565b92506040850135915060608501356001600160401b0381111561400957600080fd5b8501601f8101871361401a57600080fd5b61402987823560208401613e35565b91505092959194509250565b600181811c9082168061404957607f821691505b6020821081141561406a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561409857614098614070565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006000198214156140dd576140dd614070565b5060010190565b60008160001904831182151516156140fe576140fe614070565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261412857614128614103565b500490565b60006020828403121561413f57600080fd5b8151611f2681613d2e565b60006020828403121561415c57600080fd5b8151611f2681613afd565b60008451602061417a8285838a01613b57565b85519184019161418d8184848a01613b57565b8554920191600090600181811c90808316806141aa57607f831692505b8583108114156141c857634e487b7160e01b85526022600452602485fd5b8080156141dc57600181146141ed5761421a565b60ff1985168852838801955061421a565b60008b81526020902060005b858110156142125781548a8201529084019088016141f9565b505083880195505b50939b9a5050505050505050505050565b60008161423a5761423a614070565b506000190190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826142f1576142f1614103565b500690565b6000821982111561430957614309614070565b500190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611aab90830184613b83565b60006020828403121561435357600080fd5b8151611f2681613aca56fea26469706673582212201e8b19c3fef9d4a118e3533d18a34e7e96b10d605bfa3711eeda60173f4df39064736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000aabc3aef1ce0d23eeaabfc7c6cd9043fcebf7400000000000000000000000000688d6520d7917ed6a6a6fb8f3130b6998d879d0b00000000000000000000000000000000000000000000000000000000000003e8
-----Decoded View---------------
Arg [0] : dragonEggAddress (address): 0xAABC3AEf1CE0d23eEAABfC7C6Cd9043FCEbf7400
Arg [1] : royaltyReceiver_ (address): 0x688D6520d7917eD6a6A6fB8F3130b6998d879D0B
Arg [2] : royaltyFeeNumerator_ (uint96): 1000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000aabc3aef1ce0d23eeaabfc7c6cd9043fcebf7400
Arg [1] : 000000000000000000000000688d6520d7917ed6a6a6fb8f3130b6998d879d0b
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003e8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.