Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 123 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Name | 16252824 | 774 days ago | IN | 0 ETH | 0.00072089 | ||||
Set Name | 15723789 | 848 days ago | IN | 0 ETH | 0.00283543 | ||||
Set Name | 15708300 | 850 days ago | IN | 0 ETH | 0.00297411 | ||||
Set Name | 15680172 | 854 days ago | IN | 0 ETH | 0.00084975 | ||||
Set Name | 15624394 | 862 days ago | IN | 0 ETH | 0.00120555 | ||||
Set Name | 15624352 | 862 days ago | IN | 0 ETH | 0.00095141 | ||||
Set Name | 15530769 | 875 days ago | IN | 0 ETH | 0.00049395 | ||||
Set Name | 15165847 | 933 days ago | IN | 0 ETH | 0.00187959 | ||||
Set Name | 15146443 | 936 days ago | IN | 0 ETH | 0.00149027 | ||||
Set Name | 14809971 | 992 days ago | IN | 0 ETH | 0.00168518 | ||||
Set Name | 14779197 | 997 days ago | IN | 0 ETH | 0.00131879 | ||||
Set Name | 14778296 | 997 days ago | IN | 0 ETH | 0.00432166 | ||||
Set Name | 14776716 | 998 days ago | IN | 0 ETH | 0.00200456 | ||||
Set Name | 14775881 | 998 days ago | IN | 0 ETH | 0.00339336 | ||||
Set Name | 14775026 | 998 days ago | IN | 0 ETH | 0.00379771 | ||||
Set Name | 14775004 | 998 days ago | IN | 0 ETH | 0.00302648 | ||||
Set Name | 14769035 | 999 days ago | IN | 0 ETH | 0.00328878 | ||||
Set Name | 14741148 | 1003 days ago | IN | 0 ETH | 0.00353299 | ||||
Set Name | 14739608 | 1004 days ago | IN | 0 ETH | 0.00131892 | ||||
Set Name | 14739608 | 1004 days ago | IN | 0 ETH | 0.00131892 | ||||
Set Name | 14739608 | 1004 days ago | IN | 0 ETH | 0.00131918 | ||||
Set Name | 14739608 | 1004 days ago | IN | 0 ETH | 0.00131931 | ||||
Set Name | 14739608 | 1004 days ago | IN | 0 ETH | 0.00131879 | ||||
Set Name | 14739599 | 1004 days ago | IN | 0 ETH | 0.00133077 | ||||
Set Name | 14739599 | 1004 days ago | IN | 0 ETH | 0.00133077 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ReverseRegistrar
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity >=0.8.4; import "./HI.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "../root/Controllable.sol"; abstract contract NameResolver { function setName(bytes32 node, string memory name) public virtual; } bytes32 constant lookup = 0x3031323334353637383961626364656600000000000000000000000000000000; bytes32 constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2; // namehash('addr.reverse') contract ReverseRegistrar is Ownable, Controllable { HI public hi ; NameResolver public defaultResolver; event ReverseClaimed(address indexed addr, bytes32 indexed node); /** * @dev Constructor * @param hiAddr The address of the HI registry. * @param resolverAddr The address of the default reverse resolver. */ constructor(HI hiAddr, NameResolver resolverAddr) { hi = hiAddr; defaultResolver = resolverAddr; // Assign ownership of the reverse record to our deployer ReverseRegistrar oldRegistrar = ReverseRegistrar( hi.owner(ADDR_REVERSE_NODE) ); if (address(oldRegistrar) != address(0x0)) { oldRegistrar.claim(msg.sender); } } modifier authorised(address addr) { require( addr == msg.sender || controllers[msg.sender] || hi.isApprovedForAll(addr, msg.sender) || ownsContract(addr), "Caller is not a controller or authorised by address or the address itself" ); _; } /** * @dev Transfers ownership of the reverse HI record associated with the * calling account. * @param owner The address to set as the owner of the reverse record in HI. * @return The HI node hash of the reverse record. */ function claim(address owner) public returns (bytes32) { return _claimWithResolver(msg.sender, owner, address(0x0)); } /** * @dev Transfers ownership of the reverse HI record associated with the * calling account. * @param addr The reverse record to set * @param owner The address to set as the owner of the reverse record in HI. * @return The HI node hash of the reverse record. */ function claimForAddr(address addr, address owner) public authorised(addr) returns (bytes32) { return _claimWithResolver(addr, owner, address(0x0)); } /** * @dev Transfers ownership of the reverse HI record associated with the * calling account. * @param owner The address to set as the owner of the reverse record in HI. * @param resolver The address of the resolver to set; 0 to leave unchanged. * @return The HI node hash of the reverse record. */ function claimWithResolver(address owner, address resolver) public returns (bytes32) { return _claimWithResolver(msg.sender, owner, resolver); } /** * @dev Transfers ownership of the reverse HI record specified with the * address provided * @param addr The reverse record to set * @param owner The address to set as the owner of the reverse record in HI. * @param resolver The address of the resolver to set; 0 to leave unchanged. * @return The HI node hash of the reverse record. */ function claimWithResolverForAddr( address addr, address owner, address resolver ) public authorised(addr) returns (bytes32) { return _claimWithResolver(addr, owner, resolver); } /** * @dev Sets the `name()` record for the reverse HI record associated with * the calling account. First updates the resolver to the default reverse * resolver if necessary. * @param name The name to set for this address. * @return The HI node hash of the reverse record. */ function setName(string memory name) public returns (bytes32) { bytes32 node = _claimWithResolver( msg.sender, address(this), address(defaultResolver) ); defaultResolver.setName(node, name); return node; } /** * @dev Sets the `name()` record for the reverse HI record associated with * the account provided. First updates the resolver to the default reverse * resolver if necessary. * Only callable by controllers and authorised users * @param addr The reverse record to set * @param owner The owner of the reverse node * @param name The name to set for this address. * @return The HI node hash of the reverse record. */ function setNameForAddr( address addr, address owner, string memory name ) public authorised(addr) returns (bytes32) { bytes32 node = _claimWithResolver( addr, address(this), address(defaultResolver) ); defaultResolver.setName(node, name); hi.setSubnodeOwner(ADDR_REVERSE_NODE, sha3HexAddress(addr), owner); return node; } /** * @dev Returns the node hash for a given account's reverse records. * @param addr The address to hash * @return The HI node hash. */ function node(address addr) public pure returns (bytes32) { return keccak256( abi.encodePacked(ADDR_REVERSE_NODE, sha3HexAddress(addr)) ); } /** * @dev An optimised function to compute the sha3 of the lower-case * hexadecimal representation of an Ethereum address. * @param addr The address to hash * @return ret The SHA3 hash of the lower-case hexadecimal encoding of the * input address. */ function sha3HexAddress(address addr) private pure returns (bytes32 ret) { assembly { for { let i := 40 } gt(i, 0) { } { i := sub(i, 1) mstore8(i, byte(and(addr, 0xf), lookup)) addr := div(addr, 0x10) i := sub(i, 1) mstore8(i, byte(and(addr, 0xf), lookup)) addr := div(addr, 0x10) } ret := keccak256(0, 40) } } /* Internal functions */ function _claimWithResolver( address addr, address owner, address resolver ) internal returns (bytes32) { bytes32 label = sha3HexAddress(addr); bytes32 node = keccak256(abi.encodePacked(ADDR_REVERSE_NODE, label)); address currentResolver = hi.resolver(node); bool shouldUpdateResolver = (resolver != address(0x0) && resolver != currentResolver); address newResolver = shouldUpdateResolver ? resolver : currentResolver; hi.setSubnodeRecord(ADDR_REVERSE_NODE, label, owner, newResolver, 0); emit ReverseClaimed(addr, node); return node; } function ownsContract(address addr) internal view returns (bool) { try Ownable(addr).owner() returns (address owner) { return owner == msg.sender; } catch { return false; } } }
pragma solidity >=0.8.4; interface HI { // Logged when the owner of a node assigns a new owner to a subnode. event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); // Logged when the owner of a node transfers ownership to a new account. event Transfer(bytes32 indexed node, address owner); // Logged when the resolver for a node changes. event NewResolver(bytes32 indexed node, address resolver); // Logged when the TTL of a node changes event NewTTL(bytes32 indexed node, uint64 ttl); // Logged when an operator is added or removed. event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external virtual; function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external virtual; function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external virtual returns(bytes32); function setResolver(bytes32 node, address resolver) external virtual; function setOwner(bytes32 node, address owner) external virtual; function setTTL(bytes32 node, uint64 ttl) external virtual; function setApprovalForAll(address operator, bool approved) external virtual; function owner(bytes32 node) external virtual view returns (address); function resolver(bytes32 node) external virtual view returns (address); function ttl(bytes32 node) external virtual view returns (uint64); function recordExists(bytes32 node) external virtual view returns (bool); function isApprovedForAll(address owner, address operator) external virtual view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
pragma solidity ^0.8.4; import "@openzeppelin/contracts/access/Ownable.sol"; contract Controllable is Ownable { mapping(address => bool) public controllers; event ControllerChanged(address indexed controller, bool enabled); modifier onlyController { require( controllers[msg.sender], "Controllable: Caller is not a controller" ); _; } function setController(address controller, bool enabled) public onlyOwner { controllers[controller] = enabled; emit ControllerChanged(controller, enabled); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract HI","name":"hiAddr","type":"address"},{"internalType":"contract NameResolver","name":"resolverAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"controller","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ControllerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ReverseClaimed","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"claim","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"claimForAddr","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"}],"name":"claimWithResolver","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"}],"name":"claimWithResolverForAddr","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"controllers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultResolver","outputs":[{"internalType":"contract NameResolver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hi","outputs":[{"internalType":"contract HI","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"node","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"controller","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"setName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"}],"name":"setNameForAddr","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620017c3380380620017c383398101604081905262000034916200022a565b6200003f336200019b565b600280546001600160a01b038481166001600160a01b0319928316811790935560038054918516919092161790556040516302571be360e01b81527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004820152600091906302571be39060240160206040518083038186803b158015620000c657600080fd5b505afa158015620000db573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001019190620001eb565b90506001600160a01b038116156200019257604051630f41a04d60e11b81523360048201526001600160a01b03821690631e83409a90602401602060405180830381600087803b1580156200015557600080fd5b505af11580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000190919062000211565b505b50505062000281565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001fd578081fd5b81516200020a8162000268565b9392505050565b60006020828403121562000223578081fd5b5051919050565b600080604083850312156200023d578081fd5b82516200024a8162000268565b60208401519092506200025d8162000268565b809150509250929050565b6001600160a01b03811681146200027e57600080fd5b50565b61153280620002916000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c47f002711610066578063c47f002714610201578063da8c229e14610214578063e0dba60f14610247578063f2fde38b1461025a57600080fd5b80638da5cb5b146101b0578063a99dca3f146101ce578063bffbe61c146101ee57600080fd5b80634709bf4b116100c85780634709bf4b1461013b578063715018a61461014e578063828eab0e146101585780638d9522b81461019d57600080fd5b80630ccc4a7f146100ef5780630f5a5466146101155780631e83409a14610128575b600080fd5b6101026100fd3660046112e6565b61026d565b6040519081526020015b60405180910390f35b6101026101233660046112ae565b61042c565b610102610136366004611276565b610440565b6101026101493660046112ae565b610454565b61015661060e565b005b6003546101789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6101026101ab366004611330565b61069b565b60005473ffffffffffffffffffffffffffffffffffffffff16610178565b6002546101789073ffffffffffffffffffffffffffffffffffffffff1681565b6101026101fc366004611276565b6109f3565b61010261020f3660046113f1565b610a4e565b610237610222366004611276565b60016020526000908152604090205460ff1681565b604051901515815260200161010c565b610156610255366004611390565b610b0b565b610156610268366004611276565b610c16565b60008373ffffffffffffffffffffffffffffffffffffffff81163314806102a357503360009081526001602052604090205460ff165b8061035257506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561031a57600080fd5b505afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035291906113bd565b80610361575061036181610d46565b610418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b610423858585610e06565b95945050505050565b6000610439338484610e06565b9392505050565b600061044e33836000610e06565b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff811633148061048a57503360009081526001602052604090205460ff165b8061053957506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561050157600080fd5b505afa158015610515573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053991906113bd565b80610548575061054881610d46565b6105fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a40161040f565b61060684846000610e06565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b61069960006110a0565b565b60008373ffffffffffffffffffffffffffffffffffffffff81163314806106d157503360009081526001602052604090205460ff165b8061078057506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561074857600080fd5b505afa15801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906113bd565b8061078f575061078f81610d46565b610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a40161040f565b60035460009061086a908790309073ffffffffffffffffffffffffffffffffffffffff16610e06565b6003546040517f7737221300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff16906377372213906108c39084908890600401611424565b600060405180830381600087803b1580156108dd57600080fd5b505af11580156108f1573d6000803e3d6000fd5b505060025473ffffffffffffffffffffffffffffffffffffffff1691506306ab592390507f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e261093f89611115565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526004810192909252602482015273ffffffffffffffffffffffffffffffffffffffff88166044820152606401602060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906113d9565b5095945050505050565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2610a1f83611115565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6003546000908190610a79903390309073ffffffffffffffffffffffffffffffffffffffff16610e06565b6003546040517f7737221300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690637737221390610ad29084908790600401611424565b600060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b509295945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b73ffffffffffffffffffffffffffffffffffffffff8116610d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161040f565b610d43816110a0565b50565b60008173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8e57600080fd5b505afa925050508015610ddc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610dd991810190611292565b60015b610de857506000919050565b73ffffffffffffffffffffffffffffffffffffffff16331492915050565b600080610e1285611115565b604080517f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26020820152908101829052909150600090606001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020909101206002547f0178b8bf0000000000000000000000000000000000000000000000000000000083526004830182905290925060009173ffffffffffffffffffffffffffffffffffffffff90911690630178b8bf9060240160206040518083038186803b158015610eef57600080fd5b505afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611292565b9050600073ffffffffffffffffffffffffffffffffffffffff861615801590610f7c57508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b9050600081610f8b5782610f8d565b865b6002546040517f5ef2c7f00000000000000000000000000000000000000000000000000000000081527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260048201526024810188905273ffffffffffffffffffffffffffffffffffffffff8b81166044830152808416606483015260006084830152929350911690635ef2c7f09060a401600060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b505060405186925073ffffffffffffffffffffffffffffffffffffffff8c1691507f6ada868dd3058cf77a48a74489fd7963688e5464b2b0fa957ace976243270e9290600090a35091979650505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060285b80156111c5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600f84161a81536010909204917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600f84161a815360108304925061111a565b50506028600020919050565b600082601f8301126111e1578081fd5b813567ffffffffffffffff808211156111fc576111fc61149d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156112425761124261149d565b8160405283815286602085880101111561125a578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611287578081fd5b8135610439816114cc565b6000602082840312156112a3578081fd5b8151610439816114cc565b600080604083850312156112c0578081fd5b82356112cb816114cc565b915060208301356112db816114cc565b809150509250929050565b6000806000606084860312156112fa578081fd5b8335611305816114cc565b92506020840135611315816114cc565b91506040840135611325816114cc565b809150509250925092565b600080600060608486031215611344578283fd5b833561134f816114cc565b9250602084013561135f816114cc565b9150604084013567ffffffffffffffff81111561137a578182fd5b611386868287016111d1565b9150509250925092565b600080604083850312156113a2578182fd5b82356113ad816114cc565b915060208301356112db816114ee565b6000602082840312156113ce578081fd5b8151610439816114ee565b6000602082840312156113ea578081fd5b5051919050565b600060208284031215611402578081fd5b813567ffffffffffffffff811115611418578182fd5b610606848285016111d1565b828152600060206040818401528351806040850152825b818110156114575785810183015185820160600152820161143b565b818111156114685783606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610d4357600080fd5b8015158114610d4357600080fdfea26469706673582212200a0793513f239562bea3e63b3425f52564f3dd346addcd693e45c7cd8ce1056764736f6c63430008040033000000000000000000000000843b1f2f2d41828a68e8ef0c4c2c04713837f05c00000000000000000000000013041c1f80743d36453ffb9ff83efcf31ed3071e
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c47f002711610066578063c47f002714610201578063da8c229e14610214578063e0dba60f14610247578063f2fde38b1461025a57600080fd5b80638da5cb5b146101b0578063a99dca3f146101ce578063bffbe61c146101ee57600080fd5b80634709bf4b116100c85780634709bf4b1461013b578063715018a61461014e578063828eab0e146101585780638d9522b81461019d57600080fd5b80630ccc4a7f146100ef5780630f5a5466146101155780631e83409a14610128575b600080fd5b6101026100fd3660046112e6565b61026d565b6040519081526020015b60405180910390f35b6101026101233660046112ae565b61042c565b610102610136366004611276565b610440565b6101026101493660046112ae565b610454565b61015661060e565b005b6003546101789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6101026101ab366004611330565b61069b565b60005473ffffffffffffffffffffffffffffffffffffffff16610178565b6002546101789073ffffffffffffffffffffffffffffffffffffffff1681565b6101026101fc366004611276565b6109f3565b61010261020f3660046113f1565b610a4e565b610237610222366004611276565b60016020526000908152604090205460ff1681565b604051901515815260200161010c565b610156610255366004611390565b610b0b565b610156610268366004611276565b610c16565b60008373ffffffffffffffffffffffffffffffffffffffff81163314806102a357503360009081526001602052604090205460ff165b8061035257506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561031a57600080fd5b505afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035291906113bd565b80610361575061036181610d46565b610418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b610423858585610e06565b95945050505050565b6000610439338484610e06565b9392505050565b600061044e33836000610e06565b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff811633148061048a57503360009081526001602052604090205460ff165b8061053957506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561050157600080fd5b505afa158015610515573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053991906113bd565b80610548575061054881610d46565b6105fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a40161040f565b61060684846000610e06565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b61069960006110a0565b565b60008373ffffffffffffffffffffffffffffffffffffffff81163314806106d157503360009081526001602052604090205460ff165b8061078057506002546040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301523360248301529091169063e985e9c59060440160206040518083038186803b15801561074857600080fd5b505afa15801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906113bd565b8061078f575061078f81610d46565b610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f43616c6c6572206973206e6f74206120636f6e74726f6c6c6572206f7220617560448201527f74686f72697365642062792061646472657373206f722074686520616464726560648201527f737320697473656c660000000000000000000000000000000000000000000000608482015260a40161040f565b60035460009061086a908790309073ffffffffffffffffffffffffffffffffffffffff16610e06565b6003546040517f7737221300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff16906377372213906108c39084908890600401611424565b600060405180830381600087803b1580156108dd57600080fd5b505af11580156108f1573d6000803e3d6000fd5b505060025473ffffffffffffffffffffffffffffffffffffffff1691506306ab592390507f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e261093f89611115565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526004810192909252602482015273ffffffffffffffffffffffffffffffffffffffff88166044820152606401602060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906113d9565b5095945050505050565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2610a1f83611115565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6003546000908190610a79903390309073ffffffffffffffffffffffffffffffffffffffff16610e06565b6003546040517f7737221300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690637737221390610ad29084908790600401611424565b600060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b509295945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040f565b73ffffffffffffffffffffffffffffffffffffffff8116610d3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161040f565b610d43816110a0565b50565b60008173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8e57600080fd5b505afa925050508015610ddc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610dd991810190611292565b60015b610de857506000919050565b73ffffffffffffffffffffffffffffffffffffffff16331492915050565b600080610e1285611115565b604080517f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26020820152908101829052909150600090606001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020909101206002547f0178b8bf0000000000000000000000000000000000000000000000000000000083526004830182905290925060009173ffffffffffffffffffffffffffffffffffffffff90911690630178b8bf9060240160206040518083038186803b158015610eef57600080fd5b505afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611292565b9050600073ffffffffffffffffffffffffffffffffffffffff861615801590610f7c57508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b9050600081610f8b5782610f8d565b865b6002546040517f5ef2c7f00000000000000000000000000000000000000000000000000000000081527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260048201526024810188905273ffffffffffffffffffffffffffffffffffffffff8b81166044830152808416606483015260006084830152929350911690635ef2c7f09060a401600060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b505060405186925073ffffffffffffffffffffffffffffffffffffffff8c1691507f6ada868dd3058cf77a48a74489fd7963688e5464b2b0fa957ace976243270e9290600090a35091979650505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060285b80156111c5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600f84161a81536010909204917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600f84161a815360108304925061111a565b50506028600020919050565b600082601f8301126111e1578081fd5b813567ffffffffffffffff808211156111fc576111fc61149d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156112425761124261149d565b8160405283815286602085880101111561125a578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611287578081fd5b8135610439816114cc565b6000602082840312156112a3578081fd5b8151610439816114cc565b600080604083850312156112c0578081fd5b82356112cb816114cc565b915060208301356112db816114cc565b809150509250929050565b6000806000606084860312156112fa578081fd5b8335611305816114cc565b92506020840135611315816114cc565b91506040840135611325816114cc565b809150509250925092565b600080600060608486031215611344578283fd5b833561134f816114cc565b9250602084013561135f816114cc565b9150604084013567ffffffffffffffff81111561137a578182fd5b611386868287016111d1565b9150509250925092565b600080604083850312156113a2578182fd5b82356113ad816114cc565b915060208301356112db816114ee565b6000602082840312156113ce578081fd5b8151610439816114ee565b6000602082840312156113ea578081fd5b5051919050565b600060208284031215611402578081fd5b813567ffffffffffffffff811115611418578182fd5b610606848285016111d1565b828152600060206040818401528351806040850152825b818110156114575785810183015185820160600152820161143b565b818111156114685783606083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201606001949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610d4357600080fd5b8015158114610d4357600080fdfea26469706673582212200a0793513f239562bea3e63b3425f52564f3dd346addcd693e45c7cd8ce1056764736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000843b1f2f2d41828a68e8ef0c4c2c04713837f05c00000000000000000000000013041c1f80743d36453ffb9ff83efcf31ed3071e
-----Decoded View---------------
Arg [0] : hiAddr (address): 0x843b1f2f2D41828A68E8eF0C4C2C04713837F05C
Arg [1] : resolverAddr (address): 0x13041C1F80743d36453FfB9fF83eFcF31ed3071e
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000843b1f2f2d41828a68e8ef0c4c2c04713837f05c
Arg [1] : 00000000000000000000000013041c1f80743d36453ffb9ff83efcf31ed3071e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.