ERC-20
Overview
Max Total Supply
0 ROCKS
Holders
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SimpleVaultProxy
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.18; import { EnumerableSet } from '@solidstate/contracts/data/EnumerableSet.sol'; import { IDiamondReadable } from '@solidstate/contracts/proxy/diamond/readable/IDiamondReadable.sol'; import { OwnableInternal } from '@solidstate/contracts/access/ownable/OwnableInternal.sol'; import { Proxy } from '@solidstate/contracts/proxy/Proxy.sol'; import { ERC1155MetadataExtensionInternal } from './ERC1155MetadataExtensionInternal.sol'; import { SimpleVaultStorage } from './SimpleVaultStorage.sol'; /** * @title Upgradeable proxy with externally controlled SimpleVault implementation */ contract SimpleVaultProxy is Proxy, OwnableInternal, ERC1155MetadataExtensionInternal { using EnumerableSet for EnumerableSet.AddressSet; address private immutable SIMPLE_VAULT_DIAMOND; constructor( address simpleVaultDiamond, address whitelist, uint256 shardValue, uint64 maxSupply, uint64 maxMintBalance, uint16 acquisitionFeeBP, uint16 saleFeeBP, address[] memory collections, string memory name, string memory symbol ) { SIMPLE_VAULT_DIAMOND = simpleVaultDiamond; _setOwner(msg.sender); _setName(name); _setSymbol(symbol); SimpleVaultStorage.Layout storage l = SimpleVaultStorage.layout(); l.whitelist = whitelist; l.shardValue = shardValue; l.maxSupply = maxSupply; l.maxMintBalance = maxMintBalance; l.acquisitionFeeBP = acquisitionFeeBP; l.saleFeeBP = saleFeeBP; uint256 collectionsLength = collections.length; unchecked { for (uint256 i; i < collectionsLength; ++i) { l.vaultCollections.add(collections[i]); } } } /** * @inheritdoc Proxy * @notice fetch logic implementation address from external diamond proxy */ function _getImplementation() internal view override returns (address) { return IDiamondReadable(SIMPLE_VAULT_DIAMOND).facetAddress(msg.sig); } /** * @notice required in order to accept ETH in exchange for minting shards */ receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; import { IERC173Internal } from '../../interfaces/IERC173Internal.sol'; interface IOwnableInternal is IERC173Internal { error Ownable__NotOwner(); error Ownable__NotTransitiveOwner(); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; import { IERC173 } from '../../interfaces/IERC173.sol'; import { AddressUtils } from '../../utils/AddressUtils.sol'; import { IOwnableInternal } from './IOwnableInternal.sol'; import { OwnableStorage } from './OwnableStorage.sol'; abstract contract OwnableInternal is IOwnableInternal { using AddressUtils for address; modifier onlyOwner() { if (msg.sender != _owner()) revert Ownable__NotOwner(); _; } modifier onlyTransitiveOwner() { if (msg.sender != _transitiveOwner()) revert Ownable__NotTransitiveOwner(); _; } function _owner() internal view virtual returns (address) { return OwnableStorage.layout().owner; } function _transitiveOwner() internal view virtual returns (address owner) { owner = _owner(); while (owner.isContract()) { try IERC173(owner).owner() returns (address transitiveOwner) { owner = transitiveOwner; } catch { break; } } } function _transferOwnership(address account) internal virtual { _setOwner(account); } function _setOwner(address account) internal virtual { OwnableStorage.Layout storage l = OwnableStorage.layout(); emit OwnershipTransferred(l.owner, account); l.owner = account; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; library OwnableStorage { struct Layout { address owner; } bytes32 internal constant STORAGE_SLOT = keccak256('solidstate.contracts.storage.Ownable'); function layout() internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; /** * @title Set implementation with enumeration functions * @dev derived from https://github.com/OpenZeppelin/openzeppelin-contracts (MIT license) */ library EnumerableSet { error EnumerableSet__IndexOutOfBounds(); struct Set { bytes32[] _values; // 1-indexed to allow 0 to signify nonexistence mapping(bytes32 => uint256) _indexes; } struct Bytes32Set { Set _inner; } struct AddressSet { Set _inner; } struct UintSet { Set _inner; } function at( Bytes32Set storage set, uint256 index ) internal view returns (bytes32) { return _at(set._inner, index); } function at( AddressSet storage set, uint256 index ) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } function at( UintSet storage set, uint256 index ) internal view returns (uint256) { return uint256(_at(set._inner, index)); } function contains( Bytes32Set storage set, bytes32 value ) internal view returns (bool) { return _contains(set._inner, value); } function contains( AddressSet storage set, address value ) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } function contains( UintSet storage set, uint256 value ) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } function indexOf( Bytes32Set storage set, bytes32 value ) internal view returns (uint256) { return _indexOf(set._inner, value); } function indexOf( AddressSet storage set, address value ) internal view returns (uint256) { return _indexOf(set._inner, bytes32(uint256(uint160(value)))); } function indexOf( UintSet storage set, uint256 value ) internal view returns (uint256) { return _indexOf(set._inner, bytes32(value)); } function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } function add( Bytes32Set storage set, bytes32 value ) internal returns (bool) { return _add(set._inner, value); } function add( AddressSet storage set, address value ) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } function remove( Bytes32Set storage set, bytes32 value ) internal returns (bool) { return _remove(set._inner, value); } function remove( AddressSet storage set, address value ) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } function remove( UintSet storage set, uint256 value ) internal returns (bool) { return _remove(set._inner, bytes32(value)); } function toArray( Bytes32Set storage set ) internal view returns (bytes32[] memory) { return set._inner._values; } function toArray( AddressSet storage set ) internal view returns (address[] memory) { bytes32[] storage values = set._inner._values; address[] storage array; assembly { array.slot := values.slot } return array; } function toArray( UintSet storage set ) internal view returns (uint256[] memory) { bytes32[] storage values = set._inner._values; uint256[] storage array; assembly { array.slot := values.slot } return array; } function _at( Set storage set, uint256 index ) private view returns (bytes32) { if (index >= set._values.length) revert EnumerableSet__IndexOutOfBounds(); return set._values[index]; } function _contains( Set storage set, bytes32 value ) private view returns (bool) { return set._indexes[value] != 0; } function _indexOf( Set storage set, bytes32 value ) private view returns (uint256) { unchecked { return set._indexes[value] - 1; } } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _add( Set storage set, bytes32 value ) private returns (bool status) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; status = true; } } function _remove( Set storage set, bytes32 value ) private returns (bool status) { uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { unchecked { bytes32 last = set._values[set._values.length - 1]; // move last value to now-vacant index set._values[valueIndex - 1] = last; set._indexes[last] = valueIndex; } // clear last index set._values.pop(); delete set._indexes[value]; status = true; } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; import { IERC173Internal } from './IERC173Internal.sol'; /** * @title Contract ownership standard interface * @dev see https://eips.ethereum.org/EIPS/eip-173 */ interface IERC173 is IERC173Internal { /** * @notice get the ERC173 contract owner * @return conrtact owner */ function owner() external view returns (address); /** * @notice transfer contract ownership to new account * @param account address of new owner */ function transferOwnership(address account) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; /** * @title Partial ERC173 interface needed by internal functions */ interface IERC173Internal { event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; /** * @title Diamond proxy introspection interface * @dev see https://eips.ethereum.org/EIPS/eip-2535 */ interface IDiamondReadable { struct Facet { address target; bytes4[] selectors; } /** * @notice get all facets and their selectors * @return diamondFacets array of structured facet data */ function facets() external view returns (Facet[] memory diamondFacets); /** * @notice get all selectors for given facet address * @param facet address of facet to query * @return selectors array of function selectors */ function facetFunctionSelectors( address facet ) external view returns (bytes4[] memory selectors); /** * @notice get addresses of all facets used by diamond * @return addresses array of facet addresses */ function facetAddresses() external view returns (address[] memory addresses); /** * @notice get the address of the facet associated with given selector * @param selector function selector to query * @return facet facet address (zero address if not found) */ function facetAddress( bytes4 selector ) external view returns (address facet); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; interface IProxy { error Proxy__ImplementationIsNotContract(); fallback() external payable; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; import { AddressUtils } from '../utils/AddressUtils.sol'; import { IProxy } from './IProxy.sol'; /** * @title Base proxy contract */ abstract contract Proxy is IProxy { using AddressUtils for address; /** * @notice delegate all calls to implementation contract * @dev reverts if implementation address contains no code, for compatibility with metamorphic contracts * @dev memory location in use by assembly may be unsafe in other contexts */ fallback() external payable virtual { address implementation = _getImplementation(); if (!implementation.isContract()) revert Proxy__ImplementationIsNotContract(); assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall( gas(), implementation, 0, calldatasize(), 0, 0 ) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @notice get logic implementation address * @return implementation address */ function _getImplementation() internal virtual returns (address); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; import { UintUtils } from './UintUtils.sol'; library AddressUtils { using UintUtils for uint256; error AddressUtils__InsufficientBalance(); error AddressUtils__NotContract(); error AddressUtils__SendValueFailed(); function toString(address account) internal pure returns (string memory) { return uint256(uint160(account)).toHexString(20); } function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable account, uint256 amount) internal { (bool success, ) = account.call{ value: amount }(''); if (!success) revert AddressUtils__SendValueFailed(); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCall(target, data, 'AddressUtils: failed low-level call'); } function functionCall( address target, bytes memory data, string memory error ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, error); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, 'AddressUtils: failed low-level call with value' ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory error ) internal returns (bytes memory) { if (value > address(this).balance) revert AddressUtils__InsufficientBalance(); return _functionCallWithValue(target, data, value, error); } /** * @notice execute arbitrary external call with limited gas usage and amount of copied return data * @dev derived from https://github.com/nomad-xyz/ExcessivelySafeCall (MIT License) * @param target recipient of call * @param gasAmount gas allowance for call * @param value native token value to include in call * @param maxCopy maximum number of bytes to copy from return data * @param data encoded call data * @return success whether call is successful * @return returnData copied return data */ function excessivelySafeCall( address target, uint256 gasAmount, uint256 value, uint16 maxCopy, bytes memory data ) internal returns (bool success, bytes memory returnData) { returnData = new bytes(maxCopy); assembly { // execute external call via assembly to avoid automatic copying of return data success := call( gasAmount, target, value, add(data, 0x20), mload(data), 0, 0 ) // determine whether to limit amount of data to copy let toCopy := returndatasize() if gt(toCopy, maxCopy) { toCopy := maxCopy } // store the length of the copied bytes mstore(returnData, toCopy) // copy the bytes from returndata[0:toCopy] returndatacopy(add(returnData, 0x20), 0, toCopy) } } function _functionCallWithValue( address target, bytes memory data, uint256 value, string memory error ) private returns (bytes memory) { if (!isContract(target)) revert AddressUtils__NotContract(); (bool success, bytes memory returnData) = target.call{ value: value }( data ); if (success) { return returnData; } else if (returnData.length > 0) { assembly { let returnData_size := mload(returnData) revert(add(32, returnData), returnData_size) } } else { revert(error); } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.8; /** * @title utility functions for uint256 operations * @dev derived from https://github.com/OpenZeppelin/openzeppelin-contracts/ (MIT license) */ library UintUtils { error UintUtils__InsufficientHexLength(); bytes16 private constant HEX_SYMBOLS = '0123456789abcdef'; function add(uint256 a, int256 b) internal pure returns (uint256) { return b < 0 ? sub(a, -b) : a + uint256(b); } function sub(uint256 a, int256 b) internal pure returns (uint256) { return b < 0 ? add(a, -b) : a - uint256(b); } function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return '0'; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return '0x00'; } uint256 length = 0; for (uint256 temp = value; temp != 0; temp >>= 8) { unchecked { length++; } } return toHexString(value, length); } function toHexString( uint256 value, uint256 length ) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = '0'; buffer[1] = 'x'; unchecked { for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = HEX_SYMBOLS[value & 0xf]; value >>= 4; } } if (value != 0) revert UintUtils__InsufficientHexLength(); return string(buffer); } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.18; import { ERC1155MetadataExtensionStorage } from './ERC1155MetadataExtensionStorage.sol'; import { IERC1155MetadataExtensionInternal } from './IERC1155MetadataExtensionInternal.sol'; abstract contract ERC1155MetadataExtensionInternal is IERC1155MetadataExtensionInternal { /** * @notice sets a new name for ECR1155 collection * @param name name to set */ function _setName(string memory name) internal { ERC1155MetadataExtensionStorage.layout().name = name; emit NameSet(name); } /** * @notice sets a new symbol for ECR1155 collection * @param symbol symbol to set */ function _setSymbol(string memory symbol) internal { ERC1155MetadataExtensionStorage.layout().symbol = symbol; emit SymbolSet(symbol); } /** * @notice reads ERC1155 collcetion name * @return name ERC1155 collection name */ function _name() internal view returns (string memory name) { name = ERC1155MetadataExtensionStorage.layout().name; } /** * @notice reads ERC1155 collcetion symbol * @return symbol ERC1155 collection symbol */ function _symbol() internal view returns (string memory symbol) { symbol = ERC1155MetadataExtensionStorage.layout().symbol; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.18; library ERC1155MetadataExtensionStorage { struct Layout { string name; string symbol; } bytes32 internal constant STORAGE_SLOT = keccak256('insrt.contracts.storage.ERC1155MetadataExtensionStorage'); function layout() internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.18; interface IERC1155MetadataExtensionInternal { /** * @notice emitted when a name for the ECR1155 collection is set * @param name set name */ event NameSet(string name); /** * @notice emitted when a symbol for the ECR1155 collection is set * @param symbol set symbol */ event SymbolSet(string symbol); }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.18; import { EnumerableSet } from '@solidstate/contracts/data/EnumerableSet.sol'; library SimpleVaultStorage { struct Layout { uint256 shardValue; uint256 accruedFees; //maximum tokens of MINT_TOKEN_ID which may be minted from deposits. //will be set to current totalSupply of MINT_TOKEN_ID if ERC721 asset //is purchased by vault prior to maxSupply of shards being minted uint64 maxSupply; uint16 saleFeeBP; uint16 acquisitionFeeBP; address whitelist; uint64 maxMintBalance; uint64 reservedSupply; uint48 whitelistEndsAt; bool isEnabled; bool isYieldClaiming; EnumerableSet.AddressSet vaultCollections; EnumerableSet.UintSet ownedTokenIds; mapping(address collection => mapping(uint256 tokenId => uint256 price)) priceOfSale; } bytes32 internal constant STORAGE_SLOT = keccak256('insrt.contracts.storage.SimpleVault'); function layout() internal pure returns (Layout storage l) { bytes32 slot = STORAGE_SLOT; assembly { l.slot := slot } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "viaIR": true, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"simpleVaultDiamond","type":"address"},{"internalType":"address","name":"whitelist","type":"address"},{"internalType":"uint256","name":"shardValue","type":"uint256"},{"internalType":"uint64","name":"maxSupply","type":"uint64"},{"internalType":"uint64","name":"maxMintBalance","type":"uint64"},{"internalType":"uint16","name":"acquisitionFeeBP","type":"uint16"},{"internalType":"uint16","name":"saleFeeBP","type":"uint16"},{"internalType":"address[]","name":"collections","type":"address[]"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Ownable__NotOwner","type":"error"},{"inputs":[],"name":"Ownable__NotTransitiveOwner","type":"error"},{"inputs":[],"name":"Proxy__ImplementationIsNotContract","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"}],"name":"NameSet","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":false,"internalType":"string","name":"symbol","type":"string"}],"name":"SymbolSet","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040523461071057610a1b803803908161001a81610730565b9182396101408183810103126107105761003381610755565b9061004060208201610755565b9060408101519061005360608201610769565b9161006060808301610769565b9061006d60a0840161077d565b9561007a60c0850161077d565b60e08501519094906001600160401b03811161071057810198808201601f8b011215610710578951996001600160401b038b11610497578a60051b60206100c2818301610730565b809d8152019083850160208285010111610710579060208301915b602081850101831061071557505050506101008201516001600160401b03811161071057610110908284019084016107af565b6101208301519092906001600160401b0381116107105761013492820191016107af565b6080929092527f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f6716804608054336001600160a01b0382167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36001600160a01b0319163317905580516001600160401b0381116104975760008051602061099b83398151915254600181811c91168015610706575b60208210146105d757601f8111610698575b506020601f8211600114610602579181610235926000805160206109bb833981519152946000916105f7575b508160011b916000199060031b1c19161760008051602061099b833981519152555b604051918291826107ff565b0390a180516001600160401b038111610497576000805160206109fb83398151915254600181811c911680156105ed575b60208210146105d757601f8111610569575b506020601f82116001146104b8576102ec69ffff00000000000000009593836bffff000000000000000000009896946000805160206109db833981519152946000916104ad575b508160011b916000199060031b1c1916176000805160206109fb83398151915255604051918291826107ff565b0390a17f991f11b8cb8fdc405625748ebd0eed93fd0b0484fbcdd6b2328b5a75d0a057a7557f991f11b8cb8fdc405625748ebd0eed93fd0b0484fbcdd6b2328b5a75d0a057aa80546001600160401b0319166001600160401b039283161790559390931660609490941b6001600160601b0319169390931760509490941b169290921760409290921b16177f991f11b8cb8fdc405625748ebd0eed93fd0b0484fbcdd6b2328b5a75d0a057a95580519060005b8281106103bd5760405161016f908161082c82396080518160310152f35b81518110156104815760018060a01b0360208260051b840101511690816000527f991f11b8cb8fdc405625748ebd0eed93fd0b0484fbcdd6b2328b5a75d0a057ac91826020526040600020541561041a575b50600191500161039f565b7f991f11b8cb8fdc405625748ebd0eed93fd0b0484fbcdd6b2328b5a75d0a057ab928354936801000000000000000085101561049757600185018082558510156104815782600195826000526020600020015554916000526020526040600020553861040f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9050820151386102bf565b6000805160206109fb83398151915260005260206000209060005b601f1984168110610551575069ffff000000000000000095936001846000805160206109db833981519152946102ec946bffff000000000000000000009b9997601f19811610610538575b5050811b016000805160206109fb83398151915255610229565b84015160001960f88460031b161c19169055388061051e565b909160206001819285880151815501930191016104d3565b6000805160206109fb8339815191526000527f7198d0367d548998e048ece7cfc488883a44eeb446336bbd5e93fee3b71ef454601f830160051c8101602084106105d0575b601f830160051c820181106105c4575050610278565b600081556001016105ae565b50806105ae565b634e487b7160e01b600052602260045260246000fd5b90607f1690610266565b905082015138610207565b60008051602061099b83398151915260005260206000209060005b601f19841681106106805750826000805160206109bb833981519152949260019261023595601f19811610610667575b5050811b0160008051602061099b83398151915255610229565b84015160001960f88460031b161c19169055388061064d565b9091602060018192858801518155019301910161061d565b60008051602061099b8339815191526000527f15a835dde94f849de570caf2dc14e7c16b168afcdd1d4429a9065a4687ec63de601f830160051c8101602084106106ff575b601f830160051c820181106106f35750506101db565b600081556001016106dd565b50806106dd565b90607f16906101c9565b600080fd5b602080809361072386610755565b81520193019291506100dd565b6040519190601f01601f191682016001600160401b0381118382101761049757604052565b51906001600160a01b038216820361071057565b51906001600160401b038216820361071057565b519061ffff8216820361071057565b60005b83811061079f5750506000910152565b818101518382015260200161078f565b81601f820112156107105780516001600160401b038111610497576107dd601f8201601f1916602001610730565b9281845260208284010111610710576107fc916020808501910161078c565b90565b6040916020825261081f815180928160208601526020868601910161078c565b601f01601f191601019056fe608060405236156100d7576366ffd66360e11b6080908152600080356001600160e01b031916608452906020906024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100ca57819061009e575b803b1561008c57818091368280378136915af43d82803e15610088573d90f35b3d90fd5b6040516321f27f0d60e21b8152600490fd5b5060203d81116100c3575b806100b66100be926100d9565b608001610112565b610068565b503d6100a9565b50604051903d90823e3d90fd5b005b601f80199101166080016080811067ffffffffffffffff8211176100fc57604052565b634e487b7160e01b600052604160045260246000fd5b602090607f190112610134576080516001600160a01b03811681036101345790565b600080fdfea2646970667358221220ee342625f6669ad6c010b8f207562d4292bb5c5aa03a8b8a1f10c1d309b96a6464736f6c6343000812003352bfbcfc92034947ca356582e906865f97f74bd80fb770b31bd1f81e02bf0b5113c98778b0c1a086bb98d7f1986e15788b5d3a1ad4c492e1d78f1c4cc51c20cf3e46ff90086ee29856e77591e82c82ff8ed513379b0fd82e84fc5290dd633c9952bfbcfc92034947ca356582e906865f97f74bd80fb770b31bd1f81e02bf0b520000000000000000000000009d781ec50967ce6bb4f0714d36b3a21b1d94596f000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b6300000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000004d2000000000000000000000000000000000000000000000000000000000000028a00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a3f5998047579334607c47a6a2889bf87a17fc02000000000000000000000000000000000000000000000000000000000000000c53686172645661756c74203300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005524f434b53000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405236156100d7576366ffd66360e11b6080908152600080356001600160e01b031916608452906020906024817f0000000000000000000000009d781ec50967ce6bb4f0714d36b3a21b1d94596f6001600160a01b03165afa80156100ca57819061009e575b803b1561008c57818091368280378136915af43d82803e15610088573d90f35b3d90fd5b6040516321f27f0d60e21b8152600490fd5b5060203d81116100c3575b806100b66100be926100d9565b608001610112565b610068565b503d6100a9565b50604051903d90823e3d90fd5b005b601f80199101166080016080811067ffffffffffffffff8211176100fc57604052565b634e487b7160e01b600052604160045260246000fd5b602090607f190112610134576080516001600160a01b03811681036101345790565b600080fdfea2646970667358221220ee342625f6669ad6c010b8f207562d4292bb5c5aa03a8b8a1f10c1d309b96a6464736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009d781ec50967ce6bb4f0714d36b3a21b1d94596f000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b6300000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000004d2000000000000000000000000000000000000000000000000000000000000028a00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a3f5998047579334607c47a6a2889bf87a17fc02000000000000000000000000000000000000000000000000000000000000000c53686172645661756c74203300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005524f434b53000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : simpleVaultDiamond (address): 0x9d781eC50967ce6Bb4F0714D36b3A21b1D94596F
Arg [1] : whitelist (address): 0xA09a0950b2E5eC673Dc406edb3811C021D049b63
Arg [2] : shardValue (uint256): 120000000000000000
Arg [3] : maxSupply (uint64): 1234
Arg [4] : maxMintBalance (uint64): 1234
Arg [5] : acquisitionFeeBP (uint16): 650
Arg [6] : saleFeeBP (uint16): 500
Arg [7] : collections (address[]): 0xA3F5998047579334607c47a6a2889BF87A17Fc02
Arg [8] : name (string): ShardVault 3
Arg [9] : symbol (string): ROCKS
-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000009d781ec50967ce6bb4f0714d36b3a21b1d94596f
Arg [1] : 000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b63
Arg [2] : 00000000000000000000000000000000000000000000000001aa535d3d0c0000
Arg [3] : 00000000000000000000000000000000000000000000000000000000000004d2
Arg [4] : 00000000000000000000000000000000000000000000000000000000000004d2
Arg [5] : 000000000000000000000000000000000000000000000000000000000000028a
Arg [6] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [9] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [11] : 000000000000000000000000a3f5998047579334607c47a6a2889bf87a17fc02
Arg [12] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [13] : 53686172645661756c7420330000000000000000000000000000000000000000
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [15] : 524f434b53000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ 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.