ERC-20
Overview
Max Total Supply
0.000000035767965819 ERC20 ***
Holders
24
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000035 ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x1661dB41...93AA38fEF The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
TimelockProxyStorageCentered
Compiler Version
v0.7.6+commit.7338295f
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.7.6; import "@openzeppelin/contracts/proxy/Proxy.sol"; import "./utilities/UnstructuredStorageWithTimelock.sol"; import "./interface/IStorageV1.sol"; /** TimelockProxyStorageCentered is a proxy implementation that timelocks the implementation switch. The owner is stored in the system storage (StorageV1Upgradeable) and not in the contract storage of the proxy. */ contract TimelockProxyStorageCentered is Proxy { using UnstructuredStorageWithTimelock for bytes32; // bytes32(uint256(keccak256("eip1967.proxy.systemStorage")) - 1 bytes32 private constant _SYSTEM_STORAGE_SLOT = 0xf7ce9e33978bd6e766998cbee51134930bc6e39dc5dcd8f992c5b743b1c6d698; // bytes32(uint256(keccak256("eip1967.proxy.timelock")) - 1 bytes32 private constant _TIMELOCK_SLOT = 0xc6fb23975d74c7743b6d6d0c1ad9dc3911bc8a4a970ec5723a30579b45472009; // _IMPLEMENTATION_SLOT, value cloned from UpgradeableProxy bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; event UpgradeScheduled(address indexed implementation, uint256 activeTime); event Upgraded(address indexed implementation); event TimelockUpdateScheduled(uint256 newTimelock, uint256 activeTime); event TimelockUpdated(uint256 newTimelock); constructor( address _logic, address _storage, uint256 _timelock, bytes memory _data ) { assert( _SYSTEM_STORAGE_SLOT == bytes32(uint256(keccak256("eip1967.proxy.systemStorage")) - 1) ); assert( _TIMELOCK_SLOT == bytes32(uint256(keccak256("eip1967.proxy.timelock")) - 1) ); assert( _IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1) ); _SYSTEM_STORAGE_SLOT.setAddress(_storage); _TIMELOCK_SLOT.setUint256(_timelock); _IMPLEMENTATION_SLOT.setAddress(_logic); if (_data.length > 0) { // solhint-disable-next-line avoid-low-level-calls (bool success, ) = _logic.delegatecall(_data); require(success); } } // Using Transparent proxy pattern to avoid collision attacks // see OpenZeppelin's `TransparentUpgradeableProxy` modifier adminPriviledged() { require( msg.sender == IStorageV1(_systemStorage()).governance() || IStorageV1(_systemStorage()).isAdmin(msg.sender), "msg.sender is not adminPriviledged" ); _; } modifier requireTimelockPassed(bytes32 _slot) { require( block.timestamp >= _slot.scheduledTime(), "Timelock has not passed yet" ); _; } function proxyScheduleImplementationUpdate(address targetAddress) public adminPriviledged { bytes32 _slot = _IMPLEMENTATION_SLOT; uint256 activeTime = block.timestamp + _TIMELOCK_SLOT.fetchUint256(); (_slot.scheduledContentSlot()).setAddress(targetAddress); (_slot.scheduledTimeSlot()).setUint256(activeTime); emit UpgradeScheduled(targetAddress, activeTime); } function proxyScheduleTimelockUpdate(uint256 newTimelock) public adminPriviledged { uint256 activeTime = block.timestamp + _TIMELOCK_SLOT.fetchUint256(); (_TIMELOCK_SLOT.scheduledContentSlot()).setUint256(newTimelock); (_TIMELOCK_SLOT.scheduledTimeSlot()).setUint256(activeTime); emit TimelockUpdateScheduled(newTimelock, activeTime); } function proxyUpgradeTimelock() public adminPriviledged requireTimelockPassed(_TIMELOCK_SLOT) { uint256 newTimelock = (_TIMELOCK_SLOT.scheduledContentSlot()).fetchUint256(); _TIMELOCK_SLOT.setUint256(newTimelock); emit TimelockUpdated(newTimelock); } function proxyUpgradeImplementation() public adminPriviledged requireTimelockPassed(_IMPLEMENTATION_SLOT) { address newImplementation = (_IMPLEMENTATION_SLOT.scheduledContentSlot()).fetchAddress(); _IMPLEMENTATION_SLOT.setAddress(newImplementation); emit Upgraded(newImplementation); } function _implementation() internal view override returns (address impl) { bytes32 slot = _IMPLEMENTATION_SLOT; // solhint-disable-next-line no-inline-assembly assembly { impl := sload(slot) } } function _systemStorage() internal view returns (address systemStorage) { bytes32 slot = _SYSTEM_STORAGE_SLOT; // solhint-disable-next-line no-inline-assembly assembly { systemStorage := sload(slot) } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _delegate(address implementation) internal { // solhint-disable-next-line no-inline-assembly assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal virtual view returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _fallback() internal { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback () external payable { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive () external payable { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overriden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual { } }
// SPDX-License-Identifier: MIT pragma solidity 0.7.6; /** UnstructuredStorageWithTimelock is a set of functions that facilitates setting/fetching unstructured storage along with information of future updates and its timelock information. For every content storage, there are two other slots that could be calculated automatically: * Slot (The current value) * Scheduled Slot (The future value) * Scheduled Time (The future time) Note that the library does NOT enforce timelock and does NOT store the timelock information. */ library UnstructuredStorageWithTimelock { // This is used to calculate the time slot and scheduled content for different variables uint256 private constant SCHEDULED_SIGNATURE = 0x111; uint256 private constant TIMESLOT_SIGNATURE = 0xAAA; function updateAddressWithTimelock(bytes32 _slot) internal { require( scheduledTime(_slot) > block.timestamp, "Timelock has not passed" ); setAddress(_slot, scheduledAddress(_slot)); } function updateUint256WithTimelock(bytes32 _slot) internal { require( scheduledTime(_slot) > block.timestamp, "Timelock has not passed" ); setUint256(_slot, scheduledUint256(_slot)); } function setAddress(bytes32 _slot, address _target) internal { // solhint-disable-next-line no-inline-assembly assembly { sstore(_slot, _target) } } function fetchAddress(bytes32 _slot) internal view returns (address result) { assembly { result := sload(_slot) } } function scheduledAddress(bytes32 _slot) internal view returns (address result) { result = fetchAddress(scheduledContentSlot(_slot)); } function scheduledUint256(bytes32 _slot) internal view returns (uint256 result) { result = fetchUint256(scheduledContentSlot(_slot)); } function setUint256(bytes32 _slot, uint256 _target) internal { // solhint-disable-next-line no-inline-assembly assembly { sstore(_slot, _target) } } function fetchUint256(bytes32 _slot) internal view returns (uint256 result) { assembly { result := sload(_slot) } } function scheduledContentSlot(bytes32 _slot) internal pure returns (bytes32) { return bytes32( uint256(keccak256(abi.encodePacked(_slot, SCHEDULED_SIGNATURE))) ); } function scheduledTime(bytes32 _slot) internal view returns (uint256) { return fetchUint256(scheduledTimeSlot(_slot)); } function scheduledTimeSlot(bytes32 _slot) internal pure returns (bytes32) { return bytes32( uint256(keccak256(abi.encodePacked(_slot, TIMESLOT_SIGNATURE))) ); } }
// SPDX-License-Identifier: MIT pragma solidity 0.7.6; interface IStorageV1 { function governance() external view returns(address); function treasury() external view returns(address); function isAdmin(address _target) external view returns(bool); function isOperator(address _target) external view returns(bool); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_storage","type":"address"},{"internalType":"uint256","name":"_timelock","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newTimelock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"activeTime","type":"uint256"}],"name":"TimelockUpdateScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newTimelock","type":"uint256"}],"name":"TimelockUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"uint256","name":"activeTime","type":"uint256"}],"name":"UpgradeScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"targetAddress","type":"address"}],"name":"proxyScheduleImplementationUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTimelock","type":"uint256"}],"name":"proxyScheduleTimelockUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpgradeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpgradeTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405162000ca438038062000ca48339818101604052608081101561003557600080fd5b81516020830151604080850151606086018051925194969395919493918201928464010000000082111561006857600080fd5b90830190602082018581111561007d57600080fd5b825164010000000081118282018810171561009757600080fd5b82525081516020918201929091019080838360005b838110156100c45781810151838201526020016100ac565b50505050905090810190601f1680156100f15780820380516001836020036101000a031916815260200191505b50604052506100fe915050565b610138837ff7ce9e33978bd6e766998cbee51134930bc6e39dc5dcd8f992c5b743b1c6d69860001b61026d60201b6108b91790919060201c565b610172827fc6fb23975d74c7743b6d6d0c1ad9dc3911bc8a4a970ec5723a30579b4547200960001b61026d60201b6108b91790919060201c565b6101ac847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61026d60201b6108b91790919060201c565b805115610264576000846001600160a01b0316826040518082805190602001908083835b602083106101ef5780518252601f1990920191602091820191016101d0565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461024f576040519150601f19603f3d011682016040523d82523d6000602084013e610254565b606091505b505090508061026257600080fd5b505b50505050610271565b9055565b610a2380620002816000396000f3fe6080604052600436106100435760003560e01c806333e837011461005a578063b183ce8914610084578063d4da3fd1146100b7578063fc7ee160146100cc57610052565b36610052576100506100e1565b005b6100506100e1565b34801561006657600080fd5b506100506004803603602081101561007d57600080fd5b50356100fb565b34801561009057600080fd5b50610050600480360360208110156100a757600080fd5b50356001600160a01b03166102cc565b3480156100c357600080fd5b5061005061048f565b3480156100d857600080fd5b506100506106a6565b6100e96100f9565b6100f96100f46108bd565b6108d0565b565b6101036108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561013b57600080fd5b505afa15801561014f573d6000803e3d6000fd5b505050506040513d602081101561016557600080fd5b50516001600160a01b03163314806101f957506101806108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156101cc57600080fd5b505afa1580156101e0573d6000803e3d6000fd5b505050506040513d60208110156101f657600080fd5b50515b6102345760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b600061024d60008051602061098c833981519152610919565b420190506102728261026c60008051602061098c83398151915261091d565b906108b9565b61028d8161026c60008051602061098c83398151915261094a565b604080518381526020810183905281517f128fc4b147dbbb230bb22e2f11fc1f54234533ab01ca868860c30a8b93fc3c11929181900390910190a15050565b6102d46108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561030c57600080fd5b505afa158015610320573d6000803e3d6000fd5b505050506040513d602081101561033657600080fd5b50516001600160a01b03163314806103ca57506103516108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561039d57600080fd5b505afa1580156103b1573d6000803e3d6000fd5b505050506040513d60208110156103c757600080fd5b50515b6104055760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b6000805160206109ac833981519152600061042d60008051602061098c833981519152610919565b4201905061043e8361026c8461091d565b61044b8161026c8461094a565b6040805182815290516001600160a01b038516917fe1009627653eb47f7d0f3b4435749f7984a803c21f84a076cc4dcb0412cf066f919081900360200190a2505050565b6104976108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b1580156104cf57600080fd5b505afa1580156104e3573d6000803e3d6000fd5b505050506040513d60208110156104f957600080fd5b50516001600160a01b031633148061058d57506105146108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561056057600080fd5b505afa158015610574573d6000803e3d6000fd5b505050506040513d602081101561058a57600080fd5b50515b6105c85760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b60008051602061098c8339815191526105e081610977565b421015610634576040805162461bcd60e51b815260206004820152601b60248201527f54696d656c6f636b20686173206e6f7420706173736564207965740000000000604482015290519081900360640190fd5b600061065561065060008051602061098c83398151915261091d565b610919565b905061066f60008051602061098c833981519152826108b9565b6040805182815290517f23db4e72aa833f6e2e83af944353bc76dc2be79a8786e5e4a7592d313b769d4c9181900360200190a15050565b6106ae6108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b1580156106e657600080fd5b505afa1580156106fa573d6000803e3d6000fd5b505050506040513d602081101561071057600080fd5b50516001600160a01b03163314806107a4575061072b6108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d60208110156107a157600080fd5b50515b6107df5760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b6000805160206109ac8339815191526107f781610977565b42101561084b576040805162461bcd60e51b815260206004820152601b60248201527f54696d656c6f636b20686173206e6f7420706173736564207965740000000000604482015290519081900360640190fd5b60006108676106506000805160206109ac83398151915261091d565b90506108816000805160206109ac833981519152826108b9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b9055565b6000805160206109ac8339815191525490565b3660008037600080366000845af43d6000803e8080156108ef573d6000f35b3d6000fd5b7ff7ce9e33978bd6e766998cbee51134930bc6e39dc5dcd8f992c5b743b1c6d6985490565b5490565b60408051602080820193909352610111818301528151808203830181526060909101909152805191012090565b60408051602080820193909352610aaa818301528151808203830181526060909101909152805191012090565b60006109856106508361094a565b9291505056fec6fb23975d74c7743b6d6d0c1ad9dc3911bc8a4a970ec5723a30579b45472009360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6d73672e73656e646572206973206e6f742061646d696e50726976696c6564676564a264697066735822122023d8e63816bff71fa50ef48317466b14d97dceb6e1bc345933bfaeec99b73d3f64736f6c63430007060033000000000000000000000000b08ac3391609c6bbb1572c79af4841906e18dcda0000000000000000000000007cb574c01d373b9780c42a3b0939809b5e807217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000007cb574c01d373b9780c42a3b0939809b5e8072170000000000000000000000004f3e8f405cf5afc05d68142f3783bdfe1381152200000000000000000000000006325440d014e39736583c165c2963ba99faf14e000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100435760003560e01c806333e837011461005a578063b183ce8914610084578063d4da3fd1146100b7578063fc7ee160146100cc57610052565b36610052576100506100e1565b005b6100506100e1565b34801561006657600080fd5b506100506004803603602081101561007d57600080fd5b50356100fb565b34801561009057600080fd5b50610050600480360360208110156100a757600080fd5b50356001600160a01b03166102cc565b3480156100c357600080fd5b5061005061048f565b3480156100d857600080fd5b506100506106a6565b6100e96100f9565b6100f96100f46108bd565b6108d0565b565b6101036108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561013b57600080fd5b505afa15801561014f573d6000803e3d6000fd5b505050506040513d602081101561016557600080fd5b50516001600160a01b03163314806101f957506101806108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156101cc57600080fd5b505afa1580156101e0573d6000803e3d6000fd5b505050506040513d60208110156101f657600080fd5b50515b6102345760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b600061024d60008051602061098c833981519152610919565b420190506102728261026c60008051602061098c83398151915261091d565b906108b9565b61028d8161026c60008051602061098c83398151915261094a565b604080518381526020810183905281517f128fc4b147dbbb230bb22e2f11fc1f54234533ab01ca868860c30a8b93fc3c11929181900390910190a15050565b6102d46108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561030c57600080fd5b505afa158015610320573d6000803e3d6000fd5b505050506040513d602081101561033657600080fd5b50516001600160a01b03163314806103ca57506103516108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561039d57600080fd5b505afa1580156103b1573d6000803e3d6000fd5b505050506040513d60208110156103c757600080fd5b50515b6104055760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b6000805160206109ac833981519152600061042d60008051602061098c833981519152610919565b4201905061043e8361026c8461091d565b61044b8161026c8461094a565b6040805182815290516001600160a01b038516917fe1009627653eb47f7d0f3b4435749f7984a803c21f84a076cc4dcb0412cf066f919081900360200190a2505050565b6104976108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b1580156104cf57600080fd5b505afa1580156104e3573d6000803e3d6000fd5b505050506040513d60208110156104f957600080fd5b50516001600160a01b031633148061058d57506105146108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561056057600080fd5b505afa158015610574573d6000803e3d6000fd5b505050506040513d602081101561058a57600080fd5b50515b6105c85760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b60008051602061098c8339815191526105e081610977565b421015610634576040805162461bcd60e51b815260206004820152601b60248201527f54696d656c6f636b20686173206e6f7420706173736564207965740000000000604482015290519081900360640190fd5b600061065561065060008051602061098c83398151915261091d565b610919565b905061066f60008051602061098c833981519152826108b9565b6040805182815290517f23db4e72aa833f6e2e83af944353bc76dc2be79a8786e5e4a7592d313b769d4c9181900360200190a15050565b6106ae6108f4565b6001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b1580156106e657600080fd5b505afa1580156106fa573d6000803e3d6000fd5b505050506040513d602081101561071057600080fd5b50516001600160a01b03163314806107a4575061072b6108f4565b6001600160a01b03166324d7806c336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d60208110156107a157600080fd5b50515b6107df5760405162461bcd60e51b81526004018080602001828103825260228152602001806109cc6022913960400191505060405180910390fd5b6000805160206109ac8339815191526107f781610977565b42101561084b576040805162461bcd60e51b815260206004820152601b60248201527f54696d656c6f636b20686173206e6f7420706173736564207965740000000000604482015290519081900360640190fd5b60006108676106506000805160206109ac83398151915261091d565b90506108816000805160206109ac833981519152826108b9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b9055565b6000805160206109ac8339815191525490565b3660008037600080366000845af43d6000803e8080156108ef573d6000f35b3d6000fd5b7ff7ce9e33978bd6e766998cbee51134930bc6e39dc5dcd8f992c5b743b1c6d6985490565b5490565b60408051602080820193909352610111818301528151808203830181526060909101909152805191012090565b60408051602080820193909352610aaa818301528151808203830181526060909101909152805191012090565b60006109856106508361094a565b9291505056fec6fb23975d74c7743b6d6d0c1ad9dc3911bc8a4a970ec5723a30579b45472009360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6d73672e73656e646572206973206e6f742061646d696e50726976696c6564676564a264697066735822122023d8e63816bff71fa50ef48317466b14d97dceb6e1bc345933bfaeec99b73d3f64736f6c63430007060033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.