ETH Price: $2,305.15 (-5.62%)

Token

Overview

Max Total Supply

0

Holders

0

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Registry

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// 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;
}

File 9 of 13 : IOwnable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { IERC173 } from '../IERC173.sol';

interface IOwnable is IERC173 {}

File 10 of 13 : IERC173Internal.sol
// 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
    );
}

File 11 of 13 : IOwnableInternal.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { IERC173Internal } from '../IERC173Internal.sol';

interface IOwnableInternal is IERC173Internal {}

File 12 of 13 : ISafeOwnableInternal.sol
// 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;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

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"}]

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.