Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 312 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 14544575 | 981 days ago | IN | 0 ETH | 0.00223956 | ||||
Buy | 14538611 | 982 days ago | IN | 4 ETH | 0.05453856 | ||||
Buy | 14538593 | 982 days ago | IN | 4 ETH | 0.02302648 | ||||
Buy | 14538590 | 982 days ago | IN | 4 ETH | 0.01920856 | ||||
Buy | 14538397 | 982 days ago | IN | 4 ETH | 0.02002628 | ||||
Buy | 14538395 | 982 days ago | IN | 4 ETH | 0.02064337 | ||||
Buy | 14538259 | 982 days ago | IN | 4 ETH | 0.03349619 | ||||
Buy | 14538189 | 982 days ago | IN | 4 ETH | 0.02117806 | ||||
Buy | 14538187 | 982 days ago | IN | 4 ETH | 0.02249957 | ||||
Buy | 14538181 | 982 days ago | IN | 4 ETH | 0.02188602 | ||||
Buy | 14538175 | 982 days ago | IN | 4 ETH | 0.0184719 | ||||
Buy | 14538170 | 982 days ago | IN | 4 ETH | 0.02055019 | ||||
Buy | 14538167 | 982 days ago | IN | 4 ETH | 0.0192398 | ||||
Buy | 14538161 | 982 days ago | IN | 4 ETH | 0.0239829 | ||||
Buy | 14538161 | 982 days ago | IN | 4 ETH | 0.0239829 | ||||
Buy | 14538160 | 982 days ago | IN | 4 ETH | 0.02141354 | ||||
Buy | 14538151 | 982 days ago | IN | 4 ETH | 0.02555883 | ||||
Buy | 14538151 | 982 days ago | IN | 4 ETH | 0.02555883 | ||||
Buy | 14538151 | 982 days ago | IN | 4 ETH | 0.02555883 | ||||
Buy | 14538079 | 982 days ago | IN | 4 ETH | 0.01777358 | ||||
Buy | 14537813 | 982 days ago | IN | 4 ETH | 0.01919313 | ||||
Buy | 14514556 | 986 days ago | IN | 0.4 ETH | 0.00794777 | ||||
Buy | 14148133 | 1043 days ago | IN | 3.2 ETH | 0.04846274 | ||||
Buy | 14148133 | 1043 days ago | IN | 4 ETH | 0.0588199 | ||||
Buy | 14148133 | 1043 days ago | IN | 4 ETH | 0.0588199 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
14538611 | 982 days ago | 4 ETH | ||||
14538593 | 982 days ago | 4 ETH | ||||
14538590 | 982 days ago | 4 ETH | ||||
14538397 | 982 days ago | 4 ETH | ||||
14538395 | 982 days ago | 4 ETH | ||||
14538259 | 982 days ago | 4 ETH | ||||
14538189 | 982 days ago | 4 ETH | ||||
14538187 | 982 days ago | 4 ETH | ||||
14538181 | 982 days ago | 4 ETH | ||||
14538175 | 982 days ago | 4 ETH | ||||
14538170 | 982 days ago | 4 ETH | ||||
14538167 | 982 days ago | 4 ETH | ||||
14538161 | 982 days ago | 4 ETH | ||||
14538161 | 982 days ago | 4 ETH | ||||
14538160 | 982 days ago | 4 ETH | ||||
14538151 | 982 days ago | 4 ETH | ||||
14538151 | 982 days ago | 4 ETH | ||||
14538151 | 982 days ago | 4 ETH | ||||
14538079 | 982 days ago | 4 ETH | ||||
14537813 | 982 days ago | 4 ETH | ||||
14514556 | 986 days ago | 0.4 ETH | ||||
14148133 | 1043 days ago | 3.2 ETH | ||||
14148133 | 1043 days ago | 4 ETH | ||||
14148133 | 1043 days ago | 4 ETH | ||||
14148131 | 1043 days ago | 4 ETH |
Loading...
Loading
Contract Name:
NFTSale
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-29 */ // File: Rabbits-NFT/INFT.sol pragma solidity ^0.8.0; interface INFT { function mintBatch( address _to, uint256 _amount) external returns (uint256 fromId, uint256 toId); } // File: Rabbits-NFT/IRoyaltyDistributor.sol pragma solidity ^0.8.0; interface IRoyaltyDistributor { function getRoyaltyForOwner(address _recipient) external; function getUnusedRoyaltyForOwner(address _recipient, uint256[] calldata _tokenIdList) external; function getTokenForOwner(address _recipient, address _tokenAddress) external; function setRoyaltyKindForTokenBatch(uint256 _fromId, uint256 _toId, uint256 _kind) external; function getRoyalty(address _recipient, uint256[] calldata _tokenIdList) external; } // File: @openzeppelin/contracts/utils/Address.sol // OpenZeppelin Contracts v4.4.1 (utils/Address.sol) pragma solidity ^0.8.0; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol) pragma solidity ^0.8.0; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File: @openzeppelin/contracts/utils/Context.sol // 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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: Rabbits-NFT/NFTSale.sol pragma solidity ^0.8.0; contract NFTSale is Ownable { using SafeERC20 for IERC20; uint256 public constant MAX_UNITS_PER_TRANSACTION = 10; uint256 public vipSaleStartTimestamp; uint256 public wlSaleStartTimestamp; uint256 public publicSaleStartTimestamp; uint256 public vipPrice; uint256 public wlPrice; uint256 public publicPrice; address public signaturePublicKey; address public incomeRecipientWallet; IRoyaltyDistributor public royaltyDistributor; INFT public token; constructor( address _tokenAddress, address _royaltyDistributorAddress, address _signaturePublicKey, address _incomeRecipientWallet, uint256 _vipSaleStartTimestamp, uint256 _wlSaleStartTimestamp, uint256 _publicSaleStartTimestamp) { vipSaleStartTimestamp = _vipSaleStartTimestamp; wlSaleStartTimestamp = _wlSaleStartTimestamp; publicSaleStartTimestamp = _publicSaleStartTimestamp; vipPrice = 0.2 ether; wlPrice = 0.3 ether; publicPrice = 0.4 ether; //@todo change to - 0x5aefce0a2d473f59578fa7dee6a122d6509af1e0f79fcbee700dfcfeddabe4cc signaturePublicKey = _signaturePublicKey; incomeRecipientWallet = _incomeRecipientWallet; royaltyDistributor = IRoyaltyDistributor(_royaltyDistributorAddress); token = INFT(_tokenAddress); } function buyForVIP(uint256 _amount, bytes memory _signature) external payable { if (msg.sender != owner()) { require(vipSaleStartTimestamp <= block.timestamp, "sale not started"); } require(block.timestamp < wlSaleStartTimestamp, "sale ended"); require(_amount <= MAX_UNITS_PER_TRANSACTION, "the amount is out of range"); require(msg.value == _amount * vipPrice, "invalid value"); require(_verifyVIP(msg.sender, _signature), "invalid signature"); _safeTransferETH(incomeRecipientWallet, address(this).balance); (uint256 fromId, uint256 toId) = token.mintBatch(msg.sender, _amount); royaltyDistributor.setRoyaltyKindForTokenBatch(fromId, toId, 2); } function buyForWL(uint256 _amount, bytes memory _signature) external payable { require(wlSaleStartTimestamp <= block.timestamp, "sale not started"); require(block.timestamp < publicSaleStartTimestamp, "sale ended"); require(_amount <= MAX_UNITS_PER_TRANSACTION, "the amount is out of range"); require(msg.value == _amount * wlPrice, "invalid value"); require(_verifyWL(msg.sender, _signature), "invalid signature"); _safeTransferETH(incomeRecipientWallet, address(this).balance); (uint256 fromId, uint256 toId) = token.mintBatch(msg.sender, _amount); royaltyDistributor.setRoyaltyKindForTokenBatch(fromId, toId, 1); } function buy(uint256 _amount) public payable { require(publicSaleStartTimestamp <= block.timestamp, "sale not started"); require(_amount <= MAX_UNITS_PER_TRANSACTION, "the amount is out of range"); require(msg.value == _amount * publicPrice, "invalid value"); _safeTransferETH(incomeRecipientWallet, address(this).balance); (uint256 fromId, uint256 toId) = token.mintBatch(msg.sender, _amount); royaltyDistributor.setRoyaltyKindForTokenBatch(fromId, toId, 0); } function getTokenForOwner( address _recipient, address _tokenAddress) external onlyOwner { IERC20 _token = IERC20(_tokenAddress); _token.safeTransfer(_recipient, _token.balanceOf(address(this))); } function _verifyVIP(address _sender, bytes memory _signature) private view returns (bool) { bytes32 message = _prefixed(keccak256(abi.encodePacked("VIP", _sender, address(this)))); return _recoverSignature(message, _signature) == signaturePublicKey; } function _verifyWL(address _sender, bytes memory _signature) private view returns (bool) { bytes32 message = _prefixed(keccak256(abi.encodePacked("WL", _sender, address(this)))); return _recoverSignature(message, _signature) == signaturePublicKey; } function _recoverSignature( bytes32 _message, bytes memory _signature) private pure returns (address) { (bytes32 r, bytes32 s, uint8 v) = abi.decode(_signature, (bytes32, bytes32, uint8)); return ecrecover(_message, v, r, s); } function _prefixed(bytes32 _hash) private pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", _hash)); } function _safeTransferETH(address _to, uint256 _value) private { (bool success, ) = _to.call{value: _value}(""); require(success, "ETH_TRANSFER_FAILED"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_royaltyDistributorAddress","type":"address"},{"internalType":"address","name":"_signaturePublicKey","type":"address"},{"internalType":"address","name":"_incomeRecipientWallet","type":"address"},{"internalType":"uint256","name":"_vipSaleStartTimestamp","type":"uint256"},{"internalType":"uint256","name":"_wlSaleStartTimestamp","type":"uint256"},{"internalType":"uint256","name":"_publicSaleStartTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MAX_UNITS_PER_TRANSACTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buyForVIP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buyForWL","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"getTokenForOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"incomeRecipientWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSaleStartTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyDistributor","outputs":[{"internalType":"contract IRoyaltyDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"signaturePublicKey","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract INFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vipPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vipSaleStartTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wlPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wlSaleStartTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200147638038062001476833981016040819052620000349162000130565b6200003f33620000c3565b6001929092556002556003556702c68af0bb140000600455670429d069189e000060055567058d15e176280000600655600780546001600160a01b03199081166001600160a01b03948516179091556008805482169284169290921790915560098054821693831693909317909255600a80549092169216919091179055620001aa565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200012b57600080fd5b919050565b600080600080600080600060e0888a0312156200014c57600080fd5b620001578862000113565b9650620001676020890162000113565b9550620001776040890162000113565b9450620001876060890162000113565b93506080880151925060a0880151915060c0880151905092959891949750929550565b6112bc80620001ba6000396000f3fe6080604052600436106101095760003560e01c8063ad37b57211610095578063d96a094a11610064578063d96a094a14610277578063ded7af171461028a578063f2fde38b146102aa578063f8e9de16146102ca578063fc0c546a146102e057600080fd5b8063ad37b57214610223578063c2880dce14610238578063c7f8d01a1461024b578063d7822c991461026157600080fd5b8063715018a6116100dc578063715018a6146101b157806377a06690146101c65780638da5cb5b146101d95780639b309e00146101f7578063a945bf801461020d57600080fd5b806304a67e8a1461010e578063062ef36c1461014b5780633711b23f1461016d5780635581ed8714610191575b600080fd5b34801561011a57600080fd5b5060085461012e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015757600080fd5b5061016b610166366004610f62565b610300565b005b34801561017957600080fd5b5061018360045481565b604051908152602001610142565b34801561019d57600080fd5b5060095461012e906001600160a01b031681565b3480156101bd57600080fd5b5061016b6103c8565b61016b6101d4366004611028565b6103fe565b3480156101e557600080fd5b506000546001600160a01b031661012e565b34801561020357600080fd5b5061018360025481565b34801561021957600080fd5b5061018360065481565b34801561022f57600080fd5b50610183600a81565b61016b610246366004611028565b610609565b34801561025757600080fd5b5061018360055481565b34801561026d57600080fd5b5061018360035481565b61016b610285366004610ff6565b6107f2565b34801561029657600080fd5b5060075461012e906001600160a01b031681565b3480156102b657600080fd5b5061016b6102c5366004610f47565b610973565b3480156102d657600080fd5b5061018360015481565b3480156102ec57600080fd5b50600a5461012e906001600160a01b031681565b6000546001600160a01b031633146103335760405162461bcd60e51b815260040161032a906111de565b60405180910390fd5b6040516370a0823160e01b815230600482015281906103c39084906001600160a01b038416906370a082319060240160206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b2919061100f565b6001600160a01b0384169190610a0e565b505050565b6000546001600160a01b031633146103f25760405162461bcd60e51b815260040161032a906111de565b6103fc6000610a60565b565b4260025411156104205760405162461bcd60e51b815260040161032a906111b4565b600354421061045e5760405162461bcd60e51b815260206004820152600a6024820152691cd85b1948195b99195960b21b604482015260640161032a565b600a82111561047f5760405162461bcd60e51b815260040161032a9061117d565b60055461048c9083611213565b34146104aa5760405162461bcd60e51b815260040161032a90611156565b6104b43382610ab0565b6104f45760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015260640161032a565b60085461050a906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810184905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600160448201529294509092506001600160a01b031690638c37acb5906064015b600060405180830381600087803b1580156105eb57600080fd5b505af11580156105ff573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461063d5742600154111561063d5760405162461bcd60e51b815260040161032a906111b4565b600254421061067b5760405162461bcd60e51b815260206004820152600a6024820152691cd85b1948195b99195960b21b604482015260640161032a565b600a82111561069c5760405162461bcd60e51b815260040161032a9061117d565b6004546106a99083611213565b34146106c75760405162461bcd60e51b815260040161032a90611156565b6106d13382610c12565b6107115760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015260640161032a565b600854610727906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810184905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b15801561077757600080fd5b505af115801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600260448201529294509092506001600160a01b031690638c37acb5906064016105d1565b4260035411156108145760405162461bcd60e51b815260040161032a906111b4565b600a8111156108355760405162461bcd60e51b815260040161032a9061117d565b6006546108429082611213565b34146108605760405162461bcd60e51b815260040161032a90611156565b600854610876906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810183905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b1580156108c657600080fd5b505af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600060448201529294509092506001600160a01b031690638c37acb590606401600060405180830381600087803b15801561095657600080fd5b505af115801561096a573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b0316331461099d5760405162461bcd60e51b815260040161032a906111de565b6001600160a01b038116610a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161032a565b610a0b81610a60565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103c3908490610c55565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516115d360f21b60208201526bffffffffffffffffffffffff19606084811b8216602284015230901b1660368201526000908190610b4e90604a015b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b6007549091506001600160a01b0316610b678285610d27565b6001600160a01b031614949350505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610bc6576040519150601f19603f3d011682016040523d82523d6000602084013e610bcb565b606091505b50509050806103c35760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015260640161032a565b6040516205649560ec1b60208201526bffffffffffffffffffffffff19606084811b8216602384015230901b1660378201526000908190610b4e90604b01610aee565b6000610caa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610db19092919063ffffffff16565b8051909150156103c35780806020019051810190610cc89190610f95565b6103c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161032a565b60008060008084806020019051810190610d419190610fb7565b6040805160008152602081018083528b905260ff8316918101919091526060810184905260808101839052929550909350915060019060a0016020604051602081039080840390855afa158015610d9c573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6060610dc08484600085610dca565b90505b9392505050565b606082471015610e2b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161032a565b843b610e795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161032a565b600080866001600160a01b03168587604051610e959190611107565b60006040518083038185875af1925050503d8060008114610ed2576040519150601f19603f3d011682016040523d82523d6000602084013e610ed7565b606091505b5091509150610ee7828286610ef2565b979650505050505050565b60608315610f01575081610dc3565b825115610f115782518084602001fd5b8160405162461bcd60e51b815260040161032a9190611123565b80356001600160a01b0381168114610f4257600080fd5b919050565b600060208284031215610f5957600080fd5b610dc382610f2b565b60008060408385031215610f7557600080fd5b610f7e83610f2b565b9150610f8c60208401610f2b565b90509250929050565b600060208284031215610fa757600080fd5b81518015158114610dc357600080fd5b600080600060608486031215610fcc57600080fd5b8351925060208401519150604084015160ff81168114610feb57600080fd5b809150509250925092565b60006020828403121561100857600080fd5b5035919050565b60006020828403121561102157600080fd5b5051919050565b6000806040838503121561103b57600080fd5b82359150602083013567ffffffffffffffff8082111561105a57600080fd5b818501915085601f83011261106e57600080fd5b81358181111561108057611080611270565b604051601f8201601f19908116603f011681019083821181831017156110a8576110a8611270565b816040528281528860208487010111156110c157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156110f657600080fd5b505080516020909101519092909150565b60008251611119818460208701611240565b9190910192915050565b6020815260008251806020840152611142816040850160208701611240565b601f01601f19169190910160400192915050565b6020808252600d908201526c696e76616c69642076616c756560981b604082015260600190565b6020808252601a908201527f74686520616d6f756e74206973206f7574206f662072616e6765000000000000604082015260600190565b60208082526010908201526f1cd85b19481b9bdd081cdd185c9d195960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081600019048311821515161561123b57634e487b7160e01b600052601160045260246000fd5b500290565b60005b8381101561125b578181015183820152602001611243565b8381111561126a576000848401525b50505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220713fe40b0df85a985a79db477049d81f03ec8dd1866f8affb23dc01abc88e59d64736f6c63430008070033000000000000000000000000a324b906f39f83f676991e67b5a2cdc9ca1466db00000000000000000000000038d3a36417115668444b1ea132637d85c60740580000000000000000000000002ccc2f50660e1f850be273a103748da2ca161c4e0000000000000000000000006af2874c778e0731acc0291b21953b010dc70ab00000000000000000000000000000000000000000000000000000000061f76cd00000000000000000000000000000000000000000000000000000000061f8be500000000000000000000000000000000000000000000000000000000061fa0fd0
Deployed Bytecode
0x6080604052600436106101095760003560e01c8063ad37b57211610095578063d96a094a11610064578063d96a094a14610277578063ded7af171461028a578063f2fde38b146102aa578063f8e9de16146102ca578063fc0c546a146102e057600080fd5b8063ad37b57214610223578063c2880dce14610238578063c7f8d01a1461024b578063d7822c991461026157600080fd5b8063715018a6116100dc578063715018a6146101b157806377a06690146101c65780638da5cb5b146101d95780639b309e00146101f7578063a945bf801461020d57600080fd5b806304a67e8a1461010e578063062ef36c1461014b5780633711b23f1461016d5780635581ed8714610191575b600080fd5b34801561011a57600080fd5b5060085461012e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015757600080fd5b5061016b610166366004610f62565b610300565b005b34801561017957600080fd5b5061018360045481565b604051908152602001610142565b34801561019d57600080fd5b5060095461012e906001600160a01b031681565b3480156101bd57600080fd5b5061016b6103c8565b61016b6101d4366004611028565b6103fe565b3480156101e557600080fd5b506000546001600160a01b031661012e565b34801561020357600080fd5b5061018360025481565b34801561021957600080fd5b5061018360065481565b34801561022f57600080fd5b50610183600a81565b61016b610246366004611028565b610609565b34801561025757600080fd5b5061018360055481565b34801561026d57600080fd5b5061018360035481565b61016b610285366004610ff6565b6107f2565b34801561029657600080fd5b5060075461012e906001600160a01b031681565b3480156102b657600080fd5b5061016b6102c5366004610f47565b610973565b3480156102d657600080fd5b5061018360015481565b3480156102ec57600080fd5b50600a5461012e906001600160a01b031681565b6000546001600160a01b031633146103335760405162461bcd60e51b815260040161032a906111de565b60405180910390fd5b6040516370a0823160e01b815230600482015281906103c39084906001600160a01b038416906370a082319060240160206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b2919061100f565b6001600160a01b0384169190610a0e565b505050565b6000546001600160a01b031633146103f25760405162461bcd60e51b815260040161032a906111de565b6103fc6000610a60565b565b4260025411156104205760405162461bcd60e51b815260040161032a906111b4565b600354421061045e5760405162461bcd60e51b815260206004820152600a6024820152691cd85b1948195b99195960b21b604482015260640161032a565b600a82111561047f5760405162461bcd60e51b815260040161032a9061117d565b60055461048c9083611213565b34146104aa5760405162461bcd60e51b815260040161032a90611156565b6104b43382610ab0565b6104f45760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015260640161032a565b60085461050a906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810184905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600160448201529294509092506001600160a01b031690638c37acb5906064015b600060405180830381600087803b1580156105eb57600080fd5b505af11580156105ff573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461063d5742600154111561063d5760405162461bcd60e51b815260040161032a906111b4565b600254421061067b5760405162461bcd60e51b815260206004820152600a6024820152691cd85b1948195b99195960b21b604482015260640161032a565b600a82111561069c5760405162461bcd60e51b815260040161032a9061117d565b6004546106a99083611213565b34146106c75760405162461bcd60e51b815260040161032a90611156565b6106d13382610c12565b6107115760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015260640161032a565b600854610727906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810184905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b15801561077757600080fd5b505af115801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600260448201529294509092506001600160a01b031690638c37acb5906064016105d1565b4260035411156108145760405162461bcd60e51b815260040161032a906111b4565b600a8111156108355760405162461bcd60e51b815260040161032a9061117d565b6006546108429082611213565b34146108605760405162461bcd60e51b815260040161032a90611156565b600854610876906001600160a01b031647610b79565b600a54604051630922dc7f60e21b81523360048201526024810183905260009182916001600160a01b039091169063248b71fc906044016040805180830381600087803b1580156108c657600080fd5b505af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe91906110e3565b600954604051638c37acb560e01b81526004810184905260248101839052600060448201529294509092506001600160a01b031690638c37acb590606401600060405180830381600087803b15801561095657600080fd5b505af115801561096a573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b0316331461099d5760405162461bcd60e51b815260040161032a906111de565b6001600160a01b038116610a025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161032a565b610a0b81610a60565b50565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526103c3908490610c55565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516115d360f21b60208201526bffffffffffffffffffffffff19606084811b8216602284015230901b1660368201526000908190610b4e90604a015b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b6007549091506001600160a01b0316610b678285610d27565b6001600160a01b031614949350505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610bc6576040519150601f19603f3d011682016040523d82523d6000602084013e610bcb565b606091505b50509050806103c35760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015260640161032a565b6040516205649560ec1b60208201526bffffffffffffffffffffffff19606084811b8216602384015230901b1660378201526000908190610b4e90604b01610aee565b6000610caa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610db19092919063ffffffff16565b8051909150156103c35780806020019051810190610cc89190610f95565b6103c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161032a565b60008060008084806020019051810190610d419190610fb7565b6040805160008152602081018083528b905260ff8316918101919091526060810184905260808101839052929550909350915060019060a0016020604051602081039080840390855afa158015610d9c573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6060610dc08484600085610dca565b90505b9392505050565b606082471015610e2b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161032a565b843b610e795760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161032a565b600080866001600160a01b03168587604051610e959190611107565b60006040518083038185875af1925050503d8060008114610ed2576040519150601f19603f3d011682016040523d82523d6000602084013e610ed7565b606091505b5091509150610ee7828286610ef2565b979650505050505050565b60608315610f01575081610dc3565b825115610f115782518084602001fd5b8160405162461bcd60e51b815260040161032a9190611123565b80356001600160a01b0381168114610f4257600080fd5b919050565b600060208284031215610f5957600080fd5b610dc382610f2b565b60008060408385031215610f7557600080fd5b610f7e83610f2b565b9150610f8c60208401610f2b565b90509250929050565b600060208284031215610fa757600080fd5b81518015158114610dc357600080fd5b600080600060608486031215610fcc57600080fd5b8351925060208401519150604084015160ff81168114610feb57600080fd5b809150509250925092565b60006020828403121561100857600080fd5b5035919050565b60006020828403121561102157600080fd5b5051919050565b6000806040838503121561103b57600080fd5b82359150602083013567ffffffffffffffff8082111561105a57600080fd5b818501915085601f83011261106e57600080fd5b81358181111561108057611080611270565b604051601f8201601f19908116603f011681019083821181831017156110a8576110a8611270565b816040528281528860208487010111156110c157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156110f657600080fd5b505080516020909101519092909150565b60008251611119818460208701611240565b9190910192915050565b6020815260008251806020840152611142816040850160208701611240565b601f01601f19169190910160400192915050565b6020808252600d908201526c696e76616c69642076616c756560981b604082015260600190565b6020808252601a908201527f74686520616d6f756e74206973206f7574206f662072616e6765000000000000604082015260600190565b60208082526010908201526f1cd85b19481b9bdd081cdd185c9d195960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081600019048311821515161561123b57634e487b7160e01b600052601160045260246000fd5b500290565b60005b8381101561125b578181015183820152602001611243565b8381111561126a576000848401525b50505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220713fe40b0df85a985a79db477049d81f03ec8dd1866f8affb23dc01abc88e59d64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a324b906f39f83f676991e67b5a2cdc9ca1466db00000000000000000000000038d3a36417115668444b1ea132637d85c60740580000000000000000000000002ccc2f50660e1f850be273a103748da2ca161c4e0000000000000000000000006af2874c778e0731acc0291b21953b010dc70ab00000000000000000000000000000000000000000000000000000000061f76cd00000000000000000000000000000000000000000000000000000000061f8be500000000000000000000000000000000000000000000000000000000061fa0fd0
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xA324b906F39f83F676991e67b5A2CDc9Ca1466dB
Arg [1] : _royaltyDistributorAddress (address): 0x38d3A36417115668444B1eA132637d85C6074058
Arg [2] : _signaturePublicKey (address): 0x2ccc2f50660e1F850BE273a103748da2cA161C4E
Arg [3] : _incomeRecipientWallet (address): 0x6af2874c778E0731acc0291B21953b010dC70ab0
Arg [4] : _vipSaleStartTimestamp (uint256): 1643605200
Arg [5] : _wlSaleStartTimestamp (uint256): 1643691600
Arg [6] : _publicSaleStartTimestamp (uint256): 1643778000
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000a324b906f39f83f676991e67b5a2cdc9ca1466db
Arg [1] : 00000000000000000000000038d3a36417115668444b1ea132637d85c6074058
Arg [2] : 0000000000000000000000002ccc2f50660e1f850be273a103748da2ca161c4e
Arg [3] : 0000000000000000000000006af2874c778e0731acc0291b21953b010dc70ab0
Arg [4] : 0000000000000000000000000000000000000000000000000000000061f76cd0
Arg [5] : 0000000000000000000000000000000000000000000000000000000061f8be50
Arg [6] : 0000000000000000000000000000000000000000000000000000000061fa0fd0
Deployed Bytecode Sourcemap
19306:4950:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19709:36;;;;;;;;;;-1:-1:-1;19709:36:0;;;;-1:-1:-1;;;;;19709:36:0;;;;;;-1:-1:-1;;;;;4933:32:1;;;4915:51;;4903:2;4888:18;19709:36:0;;;;;;;;22792:243;;;;;;;;;;-1:-1:-1;22792:243:0;;;;;:::i;:::-;;:::i;:::-;;19573:23;;;;;;;;;;;;;;;;;;;10665:25:1;;;10653:2;10638:18;19573:23:0;10519:177:1;19754:45:0;;;;;;;;;;-1:-1:-1;19754:45:0;;;;-1:-1:-1;;;;;19754:45:0;;;18412:103;;;;;;;;;;;;;:::i;21534:709::-;;;;;;:::i;:::-;;:::i;17761:87::-;;;;;;;;;;-1:-1:-1;17807:7:0;17834:6;-1:-1:-1;;;;;17834:6:0;17761:87;;19483:35;;;;;;;;;;;;;;;;19632:26;;;;;;;;;;;;;;;;19377:54;;;;;;;;;;;;19429:2;19377:54;;20756:770;;;;;;:::i;:::-;;:::i;19603:22::-;;;;;;;;;;;;;;;;19525:39;;;;;;;;;;;;;;;;22251:533;;;;;;:::i;:::-;;:::i;19667:33::-;;;;;;;;;;-1:-1:-1;19667:33:0;;;;-1:-1:-1;;;;;19667:33:0;;;18670:201;;;;;;;;;;-1:-1:-1;18670:201:0;;;;;:::i;:::-;;:::i;19440:36::-;;;;;;;;;;;;;;;;19806:17;;;;;;;;;;-1:-1:-1;19806:17:0;;;;-1:-1:-1;;;;;19806:17:0;;;22792:243;17807:7;17834:6;-1:-1:-1;;;;;17834:6:0;16565:10;17981:23;17973:68;;;;-1:-1:-1;;;17973:68:0;;;;;;;:::i;:::-;;;;;;;;;22995:31:::1;::::0;-1:-1:-1;;;22995:31:0;;23020:4:::1;22995:31;::::0;::::1;4915:51:1::0;22938:13:0;;22963:64:::1;::::0;22983:10;;-1:-1:-1;;;;;22995:16:0;::::1;::::0;::::1;::::0;4888:18:1;;22995:31:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22963:19:0;::::1;::::0;:64;:19:::1;:64::i;:::-;22904:131;22792:243:::0;;:::o;18412:103::-;17807:7;17834:6;-1:-1:-1;;;;;17834:6:0;16565:10;17981:23;17973:68;;;;-1:-1:-1;;;17973:68:0;;;;;;;:::i;:::-;18477:30:::1;18504:1;18477:18;:30::i;:::-;18412:103::o:0;21534:709::-;21659:15;21635:20;;:39;;21627:68;;;;-1:-1:-1;;;21627:68:0;;;;;;;:::i;:::-;21732:24;;21714:15;:42;21706:65;;;;-1:-1:-1;;;21706:65:0;;8152:2:1;21706:65:0;;;8134:21:1;8191:2;8171:18;;;8164:30;-1:-1:-1;;;8210:18:1;;;8203:40;8260:18;;21706:65:0;7950:334:1;21706:65:0;19429:2;21792:7;:36;;21784:75;;;;-1:-1:-1;;;21784:75:0;;;;;;;:::i;:::-;21903:7;;21893:17;;:7;:17;:::i;:::-;21880:9;:30;21872:56;;;;-1:-1:-1;;;21872:56:0;;;;;;;:::i;:::-;21949:33;21959:10;21971;21949:9;:33::i;:::-;21941:63;;;;-1:-1:-1;;;21941:63:0;;6702:2:1;21941:63:0;;;6684:21:1;6741:2;6721:18;;;6714:30;-1:-1:-1;;;6760:18:1;;;6753:47;6817:18;;21941:63:0;6500:341:1;21941:63:0;22034:21;;22017:62;;-1:-1:-1;;;;;22034:21:0;22057;22017:16;:62::i;:::-;22125:5;;:36;;-1:-1:-1;;;22125:36:0;;22141:10;22125:36;;;5151:51:1;5218:18;;;5211:34;;;22093:14:0;;;;-1:-1:-1;;;;;22125:5:0;;;;:15;;5124:18:1;;22125:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22172:18;;:63;;-1:-1:-1;;;22172:63:0;;;;;10911:25:1;;;10952:18;;;10945:34;;;22172:18:0;10995::1;;;10988:34;22092:69:0;;-1:-1:-1;22092:69:0;;-1:-1:-1;;;;;;22172:18:0;;:46;;10884:18:1;;22172:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21616:627;;21534:709;;:::o;20756:770::-;17807:7;17834:6;-1:-1:-1;;;;;17834:6:0;20854:10;:21;20850:123;;20925:15;20900:21;;:40;;20892:69;;;;-1:-1:-1;;;20892:69:0;;;;;;;:::i;:::-;21009:20;;20991:15;:38;20983:61;;;;-1:-1:-1;;;20983:61:0;;8152:2:1;20983:61:0;;;8134:21:1;8191:2;8171:18;;;8164:30;-1:-1:-1;;;8210:18:1;;;8203:40;8260:18;;20983:61:0;7950:334:1;20983:61:0;19429:2;21065:7;:36;;21057:75;;;;-1:-1:-1;;;21057:75:0;;;;;;;:::i;:::-;21176:8;;21166:18;;:7;:18;:::i;:::-;21153:9;:31;21145:57;;;;-1:-1:-1;;;21145:57:0;;;;;;;:::i;:::-;21223:34;21234:10;21246;21223;:34::i;:::-;21215:64;;;;-1:-1:-1;;;21215:64:0;;6702:2:1;21215:64:0;;;6684:21:1;6741:2;6721:18;;;6714:30;-1:-1:-1;;;6760:18:1;;;6753:47;6817:18;;21215:64:0;6500:341:1;21215:64:0;21317:21;;21300:62;;-1:-1:-1;;;;;21317:21:0;21340;21300:16;:62::i;:::-;21408:5;;:36;;-1:-1:-1;;;21408:36:0;;21424:10;21408:36;;;5151:51:1;5218:18;;;5211:34;;;21376:14:0;;;;-1:-1:-1;;;;;21408:5:0;;;;:15;;5124:18:1;;21408:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21455:18;;:63;;-1:-1:-1;;;21455:63:0;;;;;10911:25:1;;;10952:18;;;10945:34;;;21516:1:0;10995:18:1;;;10988:34;21375:69:0;;-1:-1:-1;21375:69:0;;-1:-1:-1;;;;;;21455:18:0;;:46;;10884:18:1;;21455:63:0;10701:327:1;22251:533:0;22348:15;22320:24;;:43;;22312:72;;;;-1:-1:-1;;;22312:72:0;;;;;;;:::i;:::-;19429:2;22405:7;:36;;22397:75;;;;-1:-1:-1;;;22397:75:0;;;;;;;:::i;:::-;22516:11;;22506:21;;:7;:21;:::i;:::-;22493:9;:34;22485:60;;;;-1:-1:-1;;;22485:60:0;;;;;;;:::i;:::-;22575:21;;22558:62;;-1:-1:-1;;;;;22575:21:0;22598;22558:16;:62::i;:::-;22666:5;;:36;;-1:-1:-1;;;22666:36:0;;22682:10;22666:36;;;5151:51:1;5218:18;;;5211:34;;;22634:14:0;;;;-1:-1:-1;;;;;22666:5:0;;;;:15;;5124:18:1;;22666:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22713:18;;:63;;-1:-1:-1;;;22713:63:0;;;;;10911:25:1;;;10952:18;;;10945:34;;;22713:18:0;10995::1;;;10988:34;22633:69:0;;-1:-1:-1;22633:69:0;;-1:-1:-1;;;;;;22713:18:0;;:46;;10884:18:1;;22713:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22301:483;;22251:533;:::o;18670:201::-;17807:7;17834:6;-1:-1:-1;;;;;17834:6:0;16565:10;17981:23;17973:68;;;;-1:-1:-1;;;17973:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18759:22:0;::::1;18751:73;;;::::0;-1:-1:-1;;;18751:73:0;;7048:2:1;18751:73:0::1;::::0;::::1;7030:21:1::0;7087:2;7067:18;;;7060:30;7126:34;7106:18;;;7099:62;-1:-1:-1;;;7177:18:1;;;7170:36;7223:19;;18751:73:0::1;6846:402:1::0;18751:73:0::1;18835:28;18854:8;18835:18;:28::i;:::-;18670:201:::0;:::o;12510:211::-;12654:58;;;-1:-1:-1;;;;;5169:32:1;;12654:58:0;;;5151:51:1;5218:18;;;;5211:34;;;12654:58:0;;;;;;;;;;5124:18:1;;;;12654:58:0;;;;;;;;-1:-1:-1;;;;;12654:58:0;-1:-1:-1;;;12654:58:0;;;12627:86;;12647:5;;12627:19;:86::i;19031:191::-;19105:16;19124:6;;-1:-1:-1;;;;;19141:17:0;;;-1:-1:-1;;;;;;19141:17:0;;;;;;19174:40;;19124:6;;;;;;;19174:40;;19105:16;19174:40;19094:128;19031:191;:::o;23330:277::-;23473:46;;-1:-1:-1;;;23473:46:0;;;4344:17:1;-1:-1:-1;;4448:2:1;4444:15;;;4440:24;;4427:11;;;4420:45;23513:4:0;4499:15:1;;4495:24;4481:12;;;4474:46;23413:4:0;;;;23453:68;;4536:12:1;;23473:46:0;;;;-1:-1:-1;;23473:46:0;;;;;;;;;23463:57;;23473:46;23463:57;;;;3943:66:1;23994:59:0;;;3931:79:1;4026:12;;;;4019:28;;;;23994:59:0;;;;;;;;;;4063:12:1;;;;23994:59:0;;;23984:70;;;;;;23896:166;23453:68;23581:18;;23435:86;;-1:-1:-1;;;;;;23581:18:0;23539:38;23435:86;23566:10;23539:17;:38::i;:::-;-1:-1:-1;;;;;23539:60:0;;;23330:277;-1:-1:-1;;;;23330:277:0:o;24070:183::-;24150:12;24168:3;-1:-1:-1;;;;;24168:8:0;24184:6;24168:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24149:46;;;24214:7;24206:39;;;;-1:-1:-1;;;24206:39:0;;9962:2:1;24206:39:0;;;9944:21:1;10001:2;9981:18;;;9974:30;-1:-1:-1;;;10020:18:1;;;10013:49;10079:18;;24206:39:0;9760:343:1;23043:279:0;23187:47;;-1:-1:-1;;;23187:47:0;;;3485:18:1;-1:-1:-1;;3590:2:1;3586:15;;;3582:24;;3569:11;;;3562:45;23228:4:0;3641:15:1;;3637:24;3623:12;;;3616:46;23127:4:0;;;;23167:69;;3678:12:1;;23187:47:0;3227:469:1;15083:716:0;15507:23;15533:69;15561:4;15533:69;;;;;;;;;;;;;;;;;15541:5;-1:-1:-1;;;;;15533:27:0;;;:69;;;;;:::i;:::-;15617:17;;15507:95;;-1:-1:-1;15617:21:0;15613:179;;15714:10;15703:30;;;;;;;;;;;;:::i;:::-;15695:85;;;;-1:-1:-1;;;15695:85:0;;10310:2:1;15695:85:0;;;10292:21:1;10349:2;10329:18;;;10322:30;10388:34;10368:18;;;10361:62;-1:-1:-1;;;10439:18:1;;;10432:40;10489:19;;15695:85:0;10108:406:1;23615:273:0;23726:7;23752:9;23763;23774:7;23796:10;23785:49;;;;;;;;;;;;:::i;:::-;23852:28;;;;;;;;;;;;5483:25:1;;;5556:4;5544:17;;5524:18;;;5517:45;;;;5578:18;;;5571:34;;;5621:18;;;5614:34;;;23751:83:0;;-1:-1:-1;23751:83:0;;-1:-1:-1;23751:83:0;-1:-1:-1;23852:28:0;;5455:19:1;;23852:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23852:28:0;;-1:-1:-1;;23852:28:0;;;23615:273;-1:-1:-1;;;;;;;23615:273:0:o;4392:229::-;4529:12;4561:52;4583:6;4591:4;4597:1;4600:12;4561:21;:52::i;:::-;4554:59;;4392:229;;;;;;:::o;5512:510::-;5682:12;5740:5;5715:21;:30;;5707:81;;;;-1:-1:-1;;;5707:81:0;;8491:2:1;5707:81:0;;;8473:21:1;8530:2;8510:18;;;8503:30;8569:34;8549:18;;;8542:62;-1:-1:-1;;;8620:18:1;;;8613:36;8666:19;;5707:81:0;8289:402:1;5707:81:0;1909:20;;5799:60;;;;-1:-1:-1;;;5799:60:0;;9604:2:1;5799:60:0;;;9586:21:1;9643:2;9623:18;;;9616:30;9682:31;9662:18;;;9655:59;9731:18;;5799:60:0;9402:353:1;5799:60:0;5873:12;5887:23;5914:6;-1:-1:-1;;;;;5914:11:0;5933:5;5940:4;5914:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5872:73;;;;5963:51;5980:7;5989:10;6001:12;5963:16;:51::i;:::-;5956:58;5512:510;-1:-1:-1;;;;;;;5512:510:0:o;8198:712::-;8348:12;8377:7;8373:530;;;-1:-1:-1;8408:10:0;8401:17;;8373:530;8522:17;;:21;8518:374;;8720:10;8714:17;8781:15;8768:10;8764:2;8760:19;8753:44;8518:374;8863:12;8856:20;;-1:-1:-1;;;8856:20:0;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:277::-;715:6;768:2;756:9;747:7;743:23;739:32;736:52;;;784:1;781;774:12;736:52;816:9;810:16;869:5;862:13;855:21;848:5;845:32;835:60;;891:1;888;881:12;930:395;1016:6;1024;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1130:9;1124:16;1114:26;;1180:2;1169:9;1165:18;1159:25;1149:35;;1227:2;1216:9;1212:18;1206:25;1271:4;1264:5;1260:16;1253:5;1250:27;1240:55;;1291:1;1288;1281:12;1240:55;1314:5;1304:15;;;930:395;;;;;:::o;1330:180::-;1389:6;1442:2;1430:9;1421:7;1417:23;1413:32;1410:52;;;1458:1;1455;1448:12;1410:52;-1:-1:-1;1481:23:1;;1330:180;-1:-1:-1;1330:180:1:o;1515:184::-;1585:6;1638:2;1626:9;1617:7;1613:23;1609:32;1606:52;;;1654:1;1651;1644:12;1606:52;-1:-1:-1;1677:16:1;;1515:184;-1:-1:-1;1515:184:1:o;1704:989::-;1781:6;1789;1842:2;1830:9;1821:7;1817:23;1813:32;1810:52;;;1858:1;1855;1848:12;1810:52;1894:9;1881:23;1871:33;;1955:2;1944:9;1940:18;1927:32;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:2;2194;2191:10;2188:36;;;2204:18;;:::i;:::-;2279:2;2273:9;2247:2;2333:13;;-1:-1:-1;;2329:22:1;;;2353:2;2325:31;2321:40;2309:53;;;2377:18;;;2397:22;;;2374:46;2371:72;;;2423:18;;:::i;:::-;2463:10;2459:2;2452:22;2498:2;2490:6;2483:18;2538:7;2533:2;2528;2524;2520:11;2516:20;2513:33;2510:53;;;2559:1;2556;2549:12;2510:53;2615:2;2610;2606;2602:11;2597:2;2589:6;2585:15;2572:46;2660:1;2655:2;2650;2642:6;2638:15;2634:24;2627:35;2681:6;2671:16;;;;;;;1704:989;;;;;:::o;2698:245::-;2777:6;2785;2838:2;2826:9;2817:7;2813:23;2809:32;2806:52;;;2854:1;2851;2844:12;2806:52;-1:-1:-1;;2877:16:1;;2933:2;2918:18;;;2912:25;2877:16;;2912:25;;-1:-1:-1;2698:245:1:o;2948:274::-;3077:3;3115:6;3109:13;3131:53;3177:6;3172:3;3165:4;3157:6;3153:17;3131:53;:::i;:::-;3200:16;;;;;2948:274;-1:-1:-1;;2948:274:1:o;6112:383::-;6261:2;6250:9;6243:21;6224:4;6293:6;6287:13;6336:6;6331:2;6320:9;6316:18;6309:34;6352:66;6411:6;6406:2;6395:9;6391:18;6386:2;6378:6;6374:15;6352:66;:::i;:::-;6479:2;6458:15;-1:-1:-1;;6454:29:1;6439:45;;;;6486:2;6435:54;;6112:383;-1:-1:-1;;6112:383:1:o;7253:337::-;7455:2;7437:21;;;7494:2;7474:18;;;7467:30;-1:-1:-1;;;7528:2:1;7513:18;;7506:43;7581:2;7566:18;;7253:337::o;7595:350::-;7797:2;7779:21;;;7836:2;7816:18;;;7809:30;7875:28;7870:2;7855:18;;7848:56;7936:2;7921:18;;7595:350::o;8696:340::-;8898:2;8880:21;;;8937:2;8917:18;;;8910:30;-1:-1:-1;;;8971:2:1;8956:18;;8949:46;9027:2;9012:18;;8696:340::o;9041:356::-;9243:2;9225:21;;;9262:18;;;9255:30;9321:34;9316:2;9301:18;;9294:62;9388:2;9373:18;;9041:356::o;11697:265::-;11737:7;11803:1;11799;11795:6;11791:14;11788:1;11785:21;11780:1;11773:9;11766:17;11762:45;11759:168;;;11849:10;11844:3;11840:20;11837:1;11830:31;11884:4;11881:1;11874:15;11912:4;11909:1;11902:15;11759:168;-1:-1:-1;11947:9:1;;11697:265::o;11967:258::-;12039:1;12049:113;12063:6;12060:1;12057:13;12049:113;;;12139:11;;;12133:18;12120:11;;;12113:39;12085:2;12078:10;12049:113;;;12180:6;12177:1;12174:13;12171:48;;;12215:1;12206:6;12201:3;12197:16;12190:27;12171:48;;11967:258;;;:::o;12230:127::-;12291:10;12286:3;12282:20;12279:1;12272:31;12322:4;12319:1;12312:15;12346:4;12343:1;12336:15
Swarm Source
ipfs://713fe40b0df85a985a79db477049d81f03ec8dd1866f8affb23dc01abc88e59d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.