Source Code
Overview
Max Total Supply
0
Holders
0
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Registry
Compiler Version
v0.8.12+commit.f00d7308
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.0;
import "@solidstate/contracts/access/ownable/SafeOwnable.sol";
import "@solidstate/contracts/access/ownable/OwnableStorage.sol";
contract Registry is SafeOwnable {
using OwnableStorage for OwnableStorage.Layout;
event VaultAdded(Vault);
event VaultUpdated(Vault, Vault);
event VaultRemoved(Vault);
struct Vault {
address vault;
address queue;
address auction;
address pricer;
}
Vault[] public vaults;
constructor() {
OwnableStorage.layout().setOwner(msg.sender);
}
function length() external view returns (uint256) {
return vaults.length;
}
function add(Vault memory vault) external onlyOwner {
vaults.push(vault);
emit VaultAdded(vault);
}
function update(uint256 index, Vault memory vault) external onlyOwner {
emit VaultUpdated(vaults[index], vault);
vaults[index] = vault;
}
function remove(uint256 index) external onlyOwner {
require(vaults.length > index, "index out of bounds");
emit VaultRemoved(vaults[index]);
for (uint256 i = index; i < vaults.length - 1; ++i) {
vaults[i] = vaults[i + 1];
}
vaults.pop();
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { Ownable, OwnableStorage } from './Ownable.sol';
import { ISafeOwnable } from './ISafeOwnable.sol';
import { OwnableInternal } from './OwnableInternal.sol';
import { SafeOwnableInternal } from './SafeOwnableInternal.sol';
/**
* @title Ownership access control based on ERC173 with ownership transfer safety check
*/
abstract contract SafeOwnable is ISafeOwnable, Ownable, SafeOwnableInternal {
/**
* @inheritdoc ISafeOwnable
*/
function nomineeOwner() public view virtual returns (address) {
return _nomineeOwner();
}
/**
* @inheritdoc ISafeOwnable
*/
function acceptOwnership() public virtual onlyNomineeOwner {
_acceptOwnership();
}
function _transferOwnership(address account)
internal
virtual
override(OwnableInternal, SafeOwnableInternal)
{
super._transferOwnership(account);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
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
}
}
function setOwner(Layout storage l, address owner) internal {
l.owner = owner;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IERC173 } from '../IERC173.sol';
import { IOwnable } from './IOwnable.sol';
import { OwnableInternal } from './OwnableInternal.sol';
import { OwnableStorage } from './OwnableStorage.sol';
/**
* @title Ownership access control based on ERC173
*/
abstract contract Ownable is IOwnable, OwnableInternal {
using OwnableStorage for OwnableStorage.Layout;
/**
* @inheritdoc IERC173
*/
function owner() public view virtual returns (address) {
return _owner();
}
/**
* @inheritdoc IERC173
*/
function transferOwnership(address account) public virtual onlyOwner {
_transferOwnership(account);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IOwnable } from './IOwnable.sol';
interface ISafeOwnable is IOwnable {
/**
* @notice get the nominated owner who has permission to call acceptOwnership
*/
function nomineeOwner() external view returns (address);
/**
* @notice accept transfer of contract ownership
*/
function acceptOwnership() external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IOwnableInternal } from './IOwnableInternal.sol';
import { OwnableStorage } from './OwnableStorage.sol';
abstract contract OwnableInternal is IOwnableInternal {
using OwnableStorage for OwnableStorage.Layout;
modifier onlyOwner() {
require(
msg.sender == OwnableStorage.layout().owner,
'Ownable: sender must be owner'
);
_;
}
function _owner() internal view virtual returns (address) {
return OwnableStorage.layout().owner;
}
function _transferOwnership(address account) internal virtual {
OwnableStorage.layout().setOwner(account);
emit OwnershipTransferred(msg.sender, account);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { ISafeOwnableInternal } from './ISafeOwnableInternal.sol';
import { OwnableInternal } from './OwnableInternal.sol';
import { OwnableStorage } from './OwnableStorage.sol';
import { SafeOwnableStorage } from './SafeOwnableStorage.sol';
abstract contract SafeOwnableInternal is ISafeOwnableInternal, OwnableInternal {
using OwnableStorage for OwnableStorage.Layout;
using SafeOwnableStorage for SafeOwnableStorage.Layout;
modifier onlyNomineeOwner() {
require(
msg.sender == _nomineeOwner(),
'SafeOwnable: sender must be nominee owner'
);
_;
}
/**
* @notice get the nominated owner who has permission to call acceptOwnership
*/
function _nomineeOwner() internal view virtual returns (address) {
return SafeOwnableStorage.layout().nomineeOwner;
}
/**
* @notice accept transfer of contract ownership
*/
function _acceptOwnership() internal virtual {
OwnableStorage.Layout storage l = OwnableStorage.layout();
emit OwnershipTransferred(l.owner, msg.sender);
l.setOwner(msg.sender);
SafeOwnableStorage.layout().setNomineeOwner(address(0));
}
/**
* @notice set nominee owner, granting permission to call acceptOwnership
*/
function _transferOwnership(address account) internal virtual override {
SafeOwnableStorage.layout().setNomineeOwner(account);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
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.0;
import { IERC173 } from '../IERC173.sol';
interface IOwnable is IERC173 {}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @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.0;
import { IERC173Internal } from '../IERC173Internal.sol';
interface IOwnableInternal is IERC173Internal {}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IOwnableInternal } from './IOwnableInternal.sol';
interface ISafeOwnableInternal is IOwnableInternal {}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
library SafeOwnableStorage {
struct Layout {
address nomineeOwner;
}
bytes32 internal constant STORAGE_SLOT =
keccak256('solidstate.contracts.storage.SafeOwnable');
function layout() internal pure returns (Layout storage l) {
bytes32 slot = STORAGE_SLOT;
assembly {
l.slot := slot
}
}
function setNomineeOwner(Layout storage l, address nomineeOwner) internal {
l.nomineeOwner = nomineeOwner;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"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"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"indexed":false,"internalType":"struct Registry.Vault","name":"","type":"tuple"}],"name":"VaultAdded","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"indexed":false,"internalType":"struct Registry.Vault","name":"","type":"tuple"}],"name":"VaultRemoved","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"indexed":false,"internalType":"struct Registry.Vault","name":"","type":"tuple"},{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"indexed":false,"internalType":"struct Registry.Vault","name":"","type":"tuple"}],"name":"VaultUpdated","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"internalType":"struct Registry.Vault","name":"vault","type":"tuple"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nomineeOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"remove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"internalType":"struct Registry.Vault","name":"vault","type":"tuple"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vaults","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"queue","type":"address"},{"internalType":"address","name":"auction","type":"address"},{"internalType":"address","name":"pricer","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b506100393361002761003e60201b6107171760201c565b61006260201b61073b1790919060201c565b61007f565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b610b518061008e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637a8d9847116100665780637a8d9847146100de5780638ab5150a146100f15780638c64ea4a146101115780638da5cb5b14610157578063f2fde38b1461015f57600080fd5b80631254072c146100985780631f7b6d32146100ad5780634cc82215146100c357806379ba5097146100d6575b600080fd5b6100ab6100a63660046108ea565b610172565b005b6000546040519081526020015b60405180910390f35b6100ab6100d1366004610917565b61028f565b6100ab610492565b6100ab6100ec366004610930565b610516565b6100f9610678565b6040516001600160a01b0390911681526020016100ba565b61012461011f366004610917565b610687565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016100ba565b6100f96106d1565b6100ab61016d366004610953565b6106db565b61017a610717565b546001600160a01b031633146101ab5760405162461bcd60e51b81526004016101a29061096e565b60405180910390fd5b7f0b5969a17daf709df3476b11c1e44ac4ceb2cc261aac25c9e8fc9dc1a757c45e600083815481106101df576101df6109a5565b9060005260206000209060040201826040516101fc9291906109bb565b60405180910390a18060008381548110610218576102186109a5565b600091825260209182902083516004929092020180546001600160a01b03199081166001600160a01b03938416178255928401516001820180548516918416919091179055604084015160028201805485169184169190911790556060909301516003909301805490921692169190911790555050565b610297610717565b546001600160a01b031633146102bf5760405162461bcd60e51b81526004016101a29061096e565b60005481106103065760405162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b60448201526064016101a2565b7f619b8555bb291c7d12480592172c4c16cc86ca7c38d3be176c471c0eebf266a66000828154811061033a5761033a6109a5565b90600052602060002090600402016040516103559190610a2c565b60405180910390a1805b60005461036e90600190610a7f565b811015610436576000610382826001610a96565b81548110610392576103926109a5565b9060005260206000209060040201600082815481106103b3576103b36109a5565b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015490830180548316918516919091179055600280850154908301805483169185169190911790556003938401549390910180549091169290911691909117905561042f81610aae565b905061035f565b50600080548061044857610448610ac9565b60008281526020902060046000199092019182020180546001600160a01b031990811682556001820180548216905560028201805482169055600390910180549091169055905550565b61049a610758565b6001600160a01b0316336001600160a01b03161461050c5760405162461bcd60e51b815260206004820152602960248201527f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d696044820152683732b29037bbb732b960b91b60648201526084016101a2565b61051461078b565b565b61051e610717565b546001600160a01b031633146105465760405162461bcd60e51b81526004016101a29061096e565b6000805460018101825590805281517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600490920291820180546001600160a01b03199081166001600160a01b039384161790915560208401517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5648401805483169184169190911790556040808501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56585018054841691851691909117905560608501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56690940180549092169390921692909217909155517f9ac5069052d947c3d4e6e9de1ef1d7a63fb01a4664cd8c2429bd69fb589f22029061066d908390610adf565b60405180910390a150565b6000610682610758565b905090565b6000818154811061069757600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039283169450908216928216911684565b6000610682610808565b6106e3610717565b546001600160a01b0316331461070b5760405162461bcd60e51b81526004016101a29061096e565b61071481610812565b50565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b60007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce66178905b546001600160a01b0316919050565b6000610795610717565b805460405191925033916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36107db813361073b565b61071460007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce66178905b9061073b565b600061077c610717565b61071481610714817f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890610802565b80356001600160a01b038116811461085757600080fd5b919050565b60006080828403121561086e57600080fd5b6040516080810181811067ffffffffffffffff8211171561089f57634e487b7160e01b600052604160045260246000fd5b6040529050806108ae83610840565b81526108bc60208401610840565b60208201526108cd60408401610840565b60408201526108de60608401610840565b60608201525092915050565b60008060a083850312156108fd57600080fd5b8235915061090e846020850161085c565b90509250929050565b60006020828403121561092957600080fd5b5035919050565b60006080828403121561094257600080fd5b61094c838361085c565b9392505050565b60006020828403121561096557600080fd5b61094c82610840565b6020808252601d908201527f4f776e61626c653a2073656e646572206d757374206265206f776e6572000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b82546001600160a01b0390811682526001840154811660208301526002840154811660408301526003840154166060820152610100810182516001600160a01b0390811660808401526020840151811660a08401526040840151811660c084015260608401511660e083015261094c565b81546001600160a01b0390811682526001830154811660208301526002830154811660408301526003830154166060820152608081015b92915050565b634e487b7160e01b600052601160045260246000fd5b600082821015610a9157610a91610a69565b500390565b60008219821115610aa957610aa9610a69565b500190565b6000600019821415610ac257610ac2610a69565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60808101610a63828480516001600160a01b0390811683526020808301518216908401526040808301518216908401526060918201511691015256fea2646970667358221220904e48d9426bf419e92b3735c77339e55a17352ba5ece2741d3940fc6813080464736f6c634300080c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637a8d9847116100665780637a8d9847146100de5780638ab5150a146100f15780638c64ea4a146101115780638da5cb5b14610157578063f2fde38b1461015f57600080fd5b80631254072c146100985780631f7b6d32146100ad5780634cc82215146100c357806379ba5097146100d6575b600080fd5b6100ab6100a63660046108ea565b610172565b005b6000546040519081526020015b60405180910390f35b6100ab6100d1366004610917565b61028f565b6100ab610492565b6100ab6100ec366004610930565b610516565b6100f9610678565b6040516001600160a01b0390911681526020016100ba565b61012461011f366004610917565b610687565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016100ba565b6100f96106d1565b6100ab61016d366004610953565b6106db565b61017a610717565b546001600160a01b031633146101ab5760405162461bcd60e51b81526004016101a29061096e565b60405180910390fd5b7f0b5969a17daf709df3476b11c1e44ac4ceb2cc261aac25c9e8fc9dc1a757c45e600083815481106101df576101df6109a5565b9060005260206000209060040201826040516101fc9291906109bb565b60405180910390a18060008381548110610218576102186109a5565b600091825260209182902083516004929092020180546001600160a01b03199081166001600160a01b03938416178255928401516001820180548516918416919091179055604084015160028201805485169184169190911790556060909301516003909301805490921692169190911790555050565b610297610717565b546001600160a01b031633146102bf5760405162461bcd60e51b81526004016101a29061096e565b60005481106103065760405162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b60448201526064016101a2565b7f619b8555bb291c7d12480592172c4c16cc86ca7c38d3be176c471c0eebf266a66000828154811061033a5761033a6109a5565b90600052602060002090600402016040516103559190610a2c565b60405180910390a1805b60005461036e90600190610a7f565b811015610436576000610382826001610a96565b81548110610392576103926109a5565b9060005260206000209060040201600082815481106103b3576103b36109a5565b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015490830180548316918516919091179055600280850154908301805483169185169190911790556003938401549390910180549091169290911691909117905561042f81610aae565b905061035f565b50600080548061044857610448610ac9565b60008281526020902060046000199092019182020180546001600160a01b031990811682556001820180548216905560028201805482169055600390910180549091169055905550565b61049a610758565b6001600160a01b0316336001600160a01b03161461050c5760405162461bcd60e51b815260206004820152602960248201527f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d696044820152683732b29037bbb732b960b91b60648201526084016101a2565b61051461078b565b565b61051e610717565b546001600160a01b031633146105465760405162461bcd60e51b81526004016101a29061096e565b6000805460018101825590805281517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600490920291820180546001600160a01b03199081166001600160a01b039384161790915560208401517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5648401805483169184169190911790556040808501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56585018054841691851691909117905560608501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56690940180549092169390921692909217909155517f9ac5069052d947c3d4e6e9de1ef1d7a63fb01a4664cd8c2429bd69fb589f22029061066d908390610adf565b60405180910390a150565b6000610682610758565b905090565b6000818154811061069757600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039283169450908216928216911684565b6000610682610808565b6106e3610717565b546001600160a01b0316331461070b5760405162461bcd60e51b81526004016101a29061096e565b61071481610812565b50565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b60007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce66178905b546001600160a01b0316919050565b6000610795610717565b805460405191925033916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36107db813361073b565b61071460007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce66178905b9061073b565b600061077c610717565b61071481610714817f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890610802565b80356001600160a01b038116811461085757600080fd5b919050565b60006080828403121561086e57600080fd5b6040516080810181811067ffffffffffffffff8211171561089f57634e487b7160e01b600052604160045260246000fd5b6040529050806108ae83610840565b81526108bc60208401610840565b60208201526108cd60408401610840565b60408201526108de60608401610840565b60608201525092915050565b60008060a083850312156108fd57600080fd5b8235915061090e846020850161085c565b90509250929050565b60006020828403121561092957600080fd5b5035919050565b60006080828403121561094257600080fd5b61094c838361085c565b9392505050565b60006020828403121561096557600080fd5b61094c82610840565b6020808252601d908201527f4f776e61626c653a2073656e646572206d757374206265206f776e6572000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b82546001600160a01b0390811682526001840154811660208301526002840154811660408301526003840154166060820152610100810182516001600160a01b0390811660808401526020840151811660a08401526040840151811660c084015260608401511660e083015261094c565b81546001600160a01b0390811682526001830154811660208301526002830154811660408301526003830154166060820152608081015b92915050565b634e487b7160e01b600052601160045260246000fd5b600082821015610a9157610a91610a69565b500390565b60008219821115610aa957610aa9610a69565b500190565b6000600019821415610ac257610ac2610a69565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60808101610a63828480516001600160a01b0390811683526020808301518216908401526040808301518216908401526060918201511691015256fea2646970667358221220904e48d9426bf419e92b3735c77339e55a17352ba5ece2741d3940fc6813080464736f6c634300080c0033
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.