Overview
TokenID
12
Total Transfers
-
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 Name:
ShardVaultProxy
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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; /** * @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; library ERC721MetadataStorage { bytes32 internal constant STORAGE_SLOT = keccak256('solidstate.contracts.storage.ERC721Metadata'); struct Layout { string name; string symbol; string baseURI; mapping(uint256 => string) tokenURIs; } 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; 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.0; import { OwnableStorage } from '@solidstate/contracts/access/ownable/OwnableStorage.sol'; import { Proxy } from '@solidstate/contracts/proxy/Proxy.sol'; contract MarketPlaceHelperProxy is Proxy { address private immutable MARKETPLACE_HELPER_IMPLEMENTATION; constructor(address marketplaceHelperImplementation) { MARKETPLACE_HELPER_IMPLEMENTATION = marketplaceHelperImplementation; OwnableStorage.layout().owner = msg.sender; } /** * @inheritdoc Proxy */ function _getImplementation() internal view override returns (address) { return MARKETPLACE_HELPER_IMPLEMENTATION; } receive() external payable {} }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; interface IShardVaultProxy { /** * @notice emitted upon MarketPlaceHelperProxy deployment */ event MarketPlaceHelperProxyDeployed(address marketPlacerHelperProxy); /** * @param shardVaultDiamond the address of the shard vault diamond\ * @param marketPlaceHelper the address of the marketplace helper implementation * @param collection the address of the NFT collection contract * @param jpegdVault the jpeg'd NFT vault corresponding to the collection * @param jpegdVaultHelper the jpeg'd NFT Vault helper contract used for non-ERC721/1155 compiant collections * @param authorized array of authorized addresses for loan health maintenance */ struct ShardVaultAddresses { address shardVaultDiamond; address marketPlaceHelper; address collection; address jpegdVault; address jpegdVaultHelper; address whitelist; address[] authorized; } /** * @param shardValue the ETH value of each shard * @param maxSupply maximum shards to be minted by vault * @param maxMintBalance maximum amount of shards allowed per user * @param saleFeeBP sale fee in basis points * @param acquisitionFeeBP acquisition fee in basis points * @param yieldFeeBP yield fee in basis points * @param ltvBufferBP loan to value buffer in basis points * @param ltvDeviationBP loan to value buffer deviation in basis points */ struct ShardVaultUints { uint256 shardValue; uint64 maxSupply; uint64 maxMintBalance; uint16 saleFeeBP; uint16 acquisitionFeeBP; uint16 yieldFeeBP; uint16 ltvBufferBP; uint16 ltvDeviationBP; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import { ERC721MetadataStorage } from '@solidstate/contracts/token/ERC721/metadata/ERC721MetadataStorage.sol'; import { IDiamondReadable } from '@solidstate/contracts/proxy/diamond/readable/IDiamondReadable.sol'; import { OwnableStorage } from '@solidstate/contracts/access/ownable/OwnableStorage.sol'; import { Proxy } from '@solidstate/contracts/proxy/Proxy.sol'; import { MarketPlaceHelperProxy } from '../helpers/MarketPlaceHelperProxy.sol'; import { IShardVaultProxy } from './IShardVaultProxy.sol'; import { ShardVaultStorage } from './ShardVaultStorage.sol'; /** * @title Upgradeable proxy with externally controlled ShardVault implementation */ contract ShardVaultProxy is Proxy, IShardVaultProxy { address private immutable SHARD_VAULT_DIAMOND; constructor( ShardVaultAddresses memory addresses, ShardVaultUints memory uints, string memory name, string memory symbol, string memory baseURI, bool isPUSDVault ) { SHARD_VAULT_DIAMOND = addresses.shardVaultDiamond; OwnableStorage.layout().owner = msg.sender; ERC721MetadataStorage.Layout storage metadata = ERC721MetadataStorage .layout(); metadata.name = name; metadata.symbol = symbol; metadata.baseURI = baseURI; ShardVaultStorage.Layout storage l = ShardVaultStorage.layout(); address marketPlaceHelperProxy = address( new MarketPlaceHelperProxy(addresses.marketPlaceHelper) ); emit MarketPlaceHelperProxyDeployed(marketPlaceHelperProxy); l.marketPlaceHelper = marketPlaceHelperProxy; l.collection = addresses.collection; l.jpegdVault = addresses.jpegdVault; l.jpegdVaultHelper = addresses.jpegdVaultHelper; l.whitelist = addresses.whitelist; l.shardValue = uints.shardValue; l.maxSupply = uints.maxSupply; l.maxMintBalance = uints.maxMintBalance; l.saleFeeBP = uints.saleFeeBP; l.acquisitionFeeBP = uints.acquisitionFeeBP; l.yieldFeeBP = uints.yieldFeeBP; l.ltvBufferBP = uints.ltvBufferBP; l.ltvDeviationBP = uints.ltvDeviationBP; l.isPUSDVault = isPUSDVault; uint256 authorizedLength = addresses.authorized.length; unchecked { for (uint256 i; i < authorizedLength; ++i) { l.authorized[addresses.authorized[i]] = true; } } } /** * @inheritdoc Proxy * @notice fetch logic implementation address from external diamond proxy */ function _getImplementation() internal view override returns (address) { return IDiamondReadable(SHARD_VAULT_DIAMOND).facetAddress(msg.sig); } receive() external payable {} }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import { EnumerableSet } from '@solidstate/contracts/data/EnumerableSet.sol'; library ShardVaultStorage { struct Layout { uint256 shardValue; uint256 accruedFees; uint256 accruedJPEG; uint256 cumulativeETHPerShard; uint256 cumulativeJPEGPerShard; mapping(uint256 => uint256) claimedETHPerShard; mapping(uint256 => uint256) claimedJPEGPerShard; address collection; uint48 whitelistEndsAt; uint16 saleFeeBP; uint16 acquisitionFeeBP; uint16 yieldFeeBP; uint64 maxSupply; uint64 maxMintBalance; uint64 reservedSupply; uint16 ltvBufferBP; uint16 ltvDeviationBP; bool isInvested; bool isEnabled; bool isPUSDVault; bool isYieldClaiming; address marketPlaceHelper; address jpegdVault; address jpegdVaultHelper; address jpegdLP; EnumerableSet.UintSet ownedTokenIds; mapping(address => bool) authorized; uint64 totalMintCount; address whitelist; } bytes32 internal constant STORAGE_SLOT = keccak256('insrt.contracts.storage.ShardVault'); 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":[{"components":[{"internalType":"address","name":"shardVaultDiamond","type":"address"},{"internalType":"address","name":"marketPlaceHelper","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"address","name":"jpegdVault","type":"address"},{"internalType":"address","name":"jpegdVaultHelper","type":"address"},{"internalType":"address","name":"whitelist","type":"address"},{"internalType":"address[]","name":"authorized","type":"address[]"}],"internalType":"struct IShardVaultProxy.ShardVaultAddresses","name":"addresses","type":"tuple"},{"components":[{"internalType":"uint256","name":"shardValue","type":"uint256"},{"internalType":"uint64","name":"maxSupply","type":"uint64"},{"internalType":"uint64","name":"maxMintBalance","type":"uint64"},{"internalType":"uint16","name":"saleFeeBP","type":"uint16"},{"internalType":"uint16","name":"acquisitionFeeBP","type":"uint16"},{"internalType":"uint16","name":"yieldFeeBP","type":"uint16"},{"internalType":"uint16","name":"ltvBufferBP","type":"uint16"},{"internalType":"uint16","name":"ltvDeviationBP","type":"uint16"}],"internalType":"struct IShardVaultProxy.ShardVaultUints","name":"uints","type":"tuple"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"bool","name":"isPUSDVault","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Proxy__ImplementationIsNotContract","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketPlacerHelperProxy","type":"address"}],"name":"MarketPlaceHelperProxyDeployed","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234610ae257610f028038038061001981610aff565b9283398181810103906101a08212610ae25782516001600160401b038111610ae25783019160e0838386010312610ae2576040519260e084016001600160401b0381118582101761076c5760405261007081610b24565b845261007e60208201610b24565b602085015261008f60408201610b24565b60408501526100a060608201610b24565b60608501526100b160808201610b24565b60808501526100c260a08201610b24565b60a085015260c08101516001600160401b038111610ae257838601601f828401011215610ae25781810151916001600160401b03831161076c578260051b9060208061010f818501610aff565b8096815201928483010101928689018411610ae25701602001905b828210610ae75750505060c0840152610100601f1990910112610ae25760405161010081016001600160401b0381118282101761076c576040526020840151815261017760408501610b38565b602082015261018860608501610b38565b604082015261019960808501610b4c565b60608201526101aa60a08501610b4c565b60808201526101bb60c08501610b4c565b60a08201526101cc60e08501610b4c565b60c08201526101de6101008501610b4c565b60e08201526101208401516001600160401b038111610ae25761020690838601908601610b5b565b6101408501519092906001600160401b038111610ae25761022c90828701908701610b5b565b61016086015190916001600160401b038211610ae25761018091610254918801908801610b5b565b950151928315158403610ae25784516001600160a01b03166080527f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046080546001600160a01b031916331790558051906001600160401b03821161076c57600080516020610ee28339815191525490600182811c92168015610ad8575b60208310146108805781601f849311610a5e575b50602090601f83116001146109ba576000926109af575b50508160011b916000199060031b1c191617600080516020610ee2833981519152555b8051906001600160401b03821161076c57600080516020610ea28339815191525490600182811c921680156109a5575b60208310146108805781601f84931161093d575b50602090601f83116001146108ab576000926108a0575b50508160011b916000199060031b1c191617600080516020610ea2833981519152555b83516001600160401b03811161076c57600080516020610ec283398151915254600181811c91168015610896575b602082101461088057601f8111610812575b506020601f821160011461078d578192939495600092610782575b50508160011b916000199060031b1c191617600080516020610ec2833981519152555b6020830151604051906001600160a01b031661014c8083016001600160401b0381118482101761076c576020928492610d36843981520301906000f080156107605760018060a01b03167f78ad3022e163b1ba4f1d5c83bd40108dbe36a9fd059505b9d6baf6f6132873cd6020604051838152a17fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f380546001600160a01b031990811690921790556040848101517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f180546060808901517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f4805488166001600160a01b039283161790556080808b01517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f580549099169083161790975560a08a8101517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549fa8054600160401b600160e01b03191691891b600160401b600160e01b031691909117905588517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549ea5560208901517fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f280548b8a0151958c01519a8c0151938c015160d09b8c1b61ffff60d01b90811665ffffffffffff60a01b9099169a909616999099179690961760e093841b61ffff60e01b161760f098891b6001600160f01b0319161790965560c0808b015192909a01517fff00ffff00000000ffffffffffffffff000000000000000000000000000000009095166001600160401b0391909116179290961b6fffffffffffffffff0000000000000000169190911794871b61ffff60c01b1694909417941b9092169290921793151590911b60ff60f01b1692909217909155810151519060005b8281106106eb5760405161016f9081610bc782396080518160310152f35b60c082015190815181101561074a576001916020838060a01b03918360051b010151166000527fdedc0b0ea925c753d8677443dc96845a92583a76e89998d12fc610c8bd2549f960205260406000208260ff19825416179055016106cd565b634e487b7160e01b600052603260045260246000fd5b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b0151905038806103f7565b600080516020610ec283398151915260005260206000209060005b601f19841681106107fa575060019394959683601f198116106107e1575b505050811b01600080516020610ec28339815191525561041a565b015160001960f88460031b161c191690553880806107c6565b9091602060018192858b0151815501930191016107a8565b600080516020610ec28339815191526000527f67cc5f5749495f491c1f67fb661125e4e485874b321951d3c0fa07bc42f111ec601f830160051c810160208410610879575b601f830160051c8201811061086d5750506103dc565b60008155600101610857565b5080610857565b634e487b7160e01b600052602260045260246000fd5b90607f16906103ca565b015190503880610379565b600080516020610ea283398151915260009081529350600080516020610e8283398151915291905b601f1984168510610922576001945083601f19811610610909575b505050811b01600080516020610ea28339815191525561039c565b015160001960f88460031b161c191690553880806108ee565b818101518355602094850194600190930192909101906108d3565b600080516020610ea2833981519152600052909150600080516020610e82833981519152601f840160051c81016020851061099e575b90849392915b601f830160051c8201811061098f575050610362565b60008155859450600101610979565b5080610973565b91607f169161034e565b0151905038806102fb565b600080516020610ee2833981519152600090815293507f9da0b376ea5eac987e00ddf645ea1acba63ab64b37f9d745b363c22385ad39cb91905b601f1984168510610a43576001945083601f19811610610a2a575b505050811b01600080516020610ee28339815191525561031e565b015160001960f88460031b161c19169055388080610a0f565b818101518355602094850194600190930192909101906109f4565b600080516020610ee28339815191526000529091507f9da0b376ea5eac987e00ddf645ea1acba63ab64b37f9d745b363c22385ad39cb601f840160051c810160208510610ad1575b90849392915b601f830160051c82018110610ac25750506102e4565b60008155859450600101610aac565b5080610aa6565b91607f16916102d0565b600080fd5b60208091610af484610b24565b81520191019061012a565b6040519190601f01601f191682016001600160401b0381118382101761076c57604052565b51906001600160a01b0382168203610ae257565b51906001600160401b0382168203610ae257565b519061ffff82168203610ae257565b919080601f84011215610ae25782516001600160401b03811161076c57602090610b8d601f8201601f19168301610aff565b92818452828287010111610ae25760005b818110610bb357508260009394955001015290565b8581018301518482018401528201610b9e56fe608060405236156100d7576366ffd66360e11b6080908152600080356001600160e01b031916608452906020906024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100ca57819061009e575b803b1561008c57818091368280378136915af43d82803e15610088573d90f35b3d90fd5b6040516321f27f0d60e21b8152600490fd5b5060203d81116100c3575b806100b66100be926100d9565b608001610112565b610068565b503d6100a9565b50604051903d90823e3d90fd5b005b601f80199101166080016080811067ffffffffffffffff8211176100fc57604052565b634e487b7160e01b600052604160045260246000fd5b602090607f190112610134576080516001600160a01b03811681036101345790565b600080fdfea2646970667358221220ae4f73d3441df119e785f22d8edf6c8deb1c25db4e9015fbfeec8843968b011264736f6c6343000811003360a03461009957601f61014c38819003918201601f19168301916001600160401b0383118484101761009e5780849260209460405283398101031261009957516001600160a01b0381168103610099576080527f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046080546001600160a01b03191633179055604051609790816100b5823960805181600b0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040523615605f577f0000000000000000000000000000000000000000000000000000000000000000803b15604e576000808092368280378136915af43d82803e15604a573d90f35b3d90fd5b6321f27f0d60e21b60805260046080fd5b00fea264697066735822122011795d2b973ad091dfc290ebbe4d760dd6145a1d0a72ec5879520355ffb1fa7964736f6c634300081100334d5a81d91ab5d0eb928391f3fb432d708f1a8a13471720d8e842441f4faa79d699574a7094154bb123ae6ae102096f0bf9679b85a5cd1e727aaa0ae5f132e6b299574a7094154bb123ae6ae102096f0bf9679b85a5cd1e727aaa0ae5f132e6b399574a7094154bb123ae6ae102096f0bf9679b85a5cd1e727aaa0ae5f132e6b100000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fd5e9d05acecdca794f3beed21cffd343e7be3fa0000000000000000000000000df1df34b4586905e662caf79e7a28aff8ca58bb000000000000000000000000bc4ca0eda7647a8ab7c2061c2e118a18a936f13d000000000000000000000000af5e4c1bfac63e355cf093eea3d4aba138ea40890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ceff1d8584d61634da95b239e349392c2ee8cbd1000000000000000000000000000000000000000000000000000000000000000c53686172645661756c742032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045341504500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c544f5f42455f46494c4c45440000000000000000000000000000000000000000
Deployed Bytecode
0x608060405236156100d7576366ffd66360e11b6080908152600080356001600160e01b031916608452906020906024817f000000000000000000000000fd5e9d05acecdca794f3beed21cffd343e7be3fa6001600160a01b03165afa80156100ca57819061009e575b803b1561008c57818091368280378136915af43d82803e15610088573d90f35b3d90fd5b6040516321f27f0d60e21b8152600490fd5b5060203d81116100c3575b806100b66100be926100d9565b608001610112565b610068565b503d6100a9565b50604051903d90823e3d90fd5b005b601f80199101166080016080811067ffffffffffffffff8211176100fc57604052565b634e487b7160e01b600052604160045260246000fd5b602090607f190112610134576080516001600160a01b03811681036101345790565b600080fdfea2646970667358221220ae4f73d3441df119e785f22d8edf6c8deb1c25db4e9015fbfeec8843968b011264736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000214e8348c4f000000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fd5e9d05acecdca794f3beed21cffd343e7be3fa0000000000000000000000000df1df34b4586905e662caf79e7a28aff8ca58bb000000000000000000000000bc4ca0eda7647a8ab7c2061c2e118a18a936f13d000000000000000000000000af5e4c1bfac63e355cf093eea3d4aba138ea40890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ceff1d8584d61634da95b239e349392c2ee8cbd1000000000000000000000000000000000000000000000000000000000000000c53686172645661756c742032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045341504500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c544f5f42455f46494c4c45440000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : addresses (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [1] : uints (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [2] : name (string): ShardVault 2
Arg [3] : symbol (string): SAPE
Arg [4] : baseURI (string): TO_BE_FILLED
Arg [5] : isPUSDVault (bool): False
-----Encoded View---------------
28 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [1] : 0000000000000000000000000000000000000000000000000214e8348c4f0000
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [3] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [5] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [6] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [7] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [8] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [9] : 00000000000000000000000000000000000000000000000000000000000002c0
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000300
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000340
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [13] : 000000000000000000000000fd5e9d05acecdca794f3beed21cffd343e7be3fa
Arg [14] : 0000000000000000000000000df1df34b4586905e662caf79e7a28aff8ca58bb
Arg [15] : 000000000000000000000000bc4ca0eda7647a8ab7c2061c2e118a18a936f13d
Arg [16] : 000000000000000000000000af5e4c1bfac63e355cf093eea3d4aba138ea4089
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [18] : 000000000000000000000000a09a0950b2e5ec673dc406edb3811c021d049b63
Arg [19] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [21] : 000000000000000000000000ceff1d8584d61634da95b239e349392c2ee8cbd1
Arg [22] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [23] : 53686172645661756c7420320000000000000000000000000000000000000000
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [25] : 5341504500000000000000000000000000000000000000000000000000000000
Arg [26] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [27] : 544f5f42455f46494c4c45440000000000000000000000000000000000000000
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.