More Info
Private Name Tags
ContractCreator
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 9381029 | 1541 days ago | IN | 0 ETH | 0.00005711 | ||||
Set Controller | 9381024 | 1541 days ago | IN | 0 ETH | 0.00008759 | ||||
Set Controller | 9381024 | 1541 days ago | IN | 0 ETH | 0.00002878 | ||||
Transfer Ownersh... | 9380554 | 1541 days ago | IN | 0 ETH | 0.00005711 | ||||
Set Controller | 9380552 | 1541 days ago | IN | 0 ETH | 0.00008759 | ||||
0x60806040 | 9380540 | 1541 days ago | IN | Create: Root | 0 ETH | 0.00119749 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Root
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-01-30 */ // File: @ensdomains/ens/contracts/ENS.sol pragma solidity >=0.4.24; interface ENS { // 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; function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external; function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns(bytes32); function setResolver(bytes32 node, address resolver) external; function setOwner(bytes32 node, address owner) external; function setTTL(bytes32 node, uint64 ttl) external; function setApprovalForAll(address operator, bool approved) external; function owner(bytes32 node) external view returns (address); function resolver(bytes32 node) external view returns (address); function ttl(bytes32 node) external view returns (uint64); function recordExists(bytes32 node) external view returns (bool); function isApprovedForAll(address owner, address operator) external view returns (bool); } // File: @ensdomains/root/contracts/Ownable.sol pragma solidity ^0.5.0; contract Ownable { address public owner; modifier onlyOwner { require(isOwner(msg.sender)); _; } constructor() public { owner = msg.sender; } function transferOwnership(address newOwner) public onlyOwner { owner = newOwner; } function isOwner(address addr) public view returns (bool) { return owner == addr; } } // File: @ensdomains/root/contracts/Controllable.sol pragma solidity ^0.5.0; contract Controllable is Ownable { mapping(address=>bool) public controllers; modifier onlyController { require(controllers[msg.sender]); _; } function setController(address controller, bool enabled) public onlyOwner { controllers[controller] = enabled; } } // File: @ensdomains/root/contracts/Root.sol pragma solidity ^0.5.0; contract Root is Ownable, Controllable { bytes32 constant private ROOT_NODE = bytes32(0); bytes4 constant private INTERFACE_META_ID = bytes4(keccak256("supportsInterface(bytes4)")); event TLDLocked(bytes32 indexed label); ENS public ens; mapping(bytes32=>bool) public locked; constructor(ENS _ens) public { ens = _ens; } function setSubnodeOwner(bytes32 label, address owner) external onlyController { require(!locked[label]); ens.setSubnodeOwner(ROOT_NODE, label, owner); } function setResolver(address resolver) external onlyOwner { ens.setResolver(ROOT_NODE, resolver); } function lock(bytes32 label) external onlyOwner { emit TLDLocked(label); locked[label] = true; } function supportsInterface(bytes4 interfaceID) external pure returns (bool) { return interfaceID == INTERFACE_META_ID; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract ENS","name":"_ens","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"}],"name":"TLDLocked","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"controllers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"internalType":"contract ENS","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"label","type":"bytes32"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"controller","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516109e43803806109e48339818101604052602081101561003357600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061090f806100d56000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638cb8ecec116100715780638cb8ecec1461022b5780638da5cb5b14610279578063cbe9e764146102c3578063da8c229e14610309578063e0dba60f14610365578063f2fde38b146103b5576100a9565b806301670ba9146100ae57806301ffc9a7146100dc5780632f54bf6e146101415780633f15457f1461019d5780634e543b26146101e7575b600080fd5b6100da600480360360208110156100c457600080fd5b81019080803590602001909291905050506103f9565b005b610127600480360360208110156100f257600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610467565b604051808215151515815260200191505060405180910390f35b6101836004803603602081101561015757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e6565b604051808215151515815260200191505060405180910390f35b6101a561053f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610565565b005b6102776004803603604081101561024157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061063e565b005b6102816107b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ef600480360360208110156102d957600080fd5b81019080803590602001909291905050506107d8565b604051808215151515815260200191505060405180910390f35b61034b6004803603602081101561031f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f8565b604051808215151515815260200191505060405180910390f35b6103b36004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610818565b005b6103f7600480360360208110156103cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610885565b005b610402336104e6565b61040b57600080fd5b807f1764176cfa565853ba1ded547a830a9f9bff95231ef6fd228b3ddd617577756960405160405180910390a260016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61056e336104e6565b61057757600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a6000801b836040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561062357600080fd5b505af1158015610637573d6000803e3d6000fd5b5050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661069457600080fd5b6003600083815260200190815260200160002060009054906101000a900460ff16156106bf57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59236000801b84846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561077357600080fd5b505af1158015610787573d6000803e3d6000fd5b505050506040513d602081101561079d57600080fd5b8101908080519060200190929190505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b610821336104e6565b61082a57600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61088e336104e6565b61089757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fea265627a7a723158200892e4c83cff533d9e4652525f1e30c0a7ec2adf58d296e3df1b85911c930f8264736f6c6343000510003200000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638cb8ecec116100715780638cb8ecec1461022b5780638da5cb5b14610279578063cbe9e764146102c3578063da8c229e14610309578063e0dba60f14610365578063f2fde38b146103b5576100a9565b806301670ba9146100ae57806301ffc9a7146100dc5780632f54bf6e146101415780633f15457f1461019d5780634e543b26146101e7575b600080fd5b6100da600480360360208110156100c457600080fd5b81019080803590602001909291905050506103f9565b005b610127600480360360208110156100f257600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610467565b604051808215151515815260200191505060405180910390f35b6101836004803603602081101561015757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e6565b604051808215151515815260200191505060405180910390f35b6101a561053f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610565565b005b6102776004803603604081101561024157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061063e565b005b6102816107b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ef600480360360208110156102d957600080fd5b81019080803590602001909291905050506107d8565b604051808215151515815260200191505060405180910390f35b61034b6004803603602081101561031f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f8565b604051808215151515815260200191505060405180910390f35b6103b36004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610818565b005b6103f7600480360360208110156103cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610885565b005b610402336104e6565b61040b57600080fd5b807f1764176cfa565853ba1ded547a830a9f9bff95231ef6fd228b3ddd617577756960405160405180910390a260016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61056e336104e6565b61057757600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a6000801b836040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561062357600080fd5b505af1158015610637573d6000803e3d6000fd5b5050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661069457600080fd5b6003600083815260200190815260200160002060009054906101000a900460ff16156106bf57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59236000801b84846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561077357600080fd5b505af1158015610787573d6000803e3d6000fd5b505050506040513d602081101561079d57600080fd5b8101908080519060200190929190505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b610821336104e6565b61082a57600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61088e336104e6565b61089757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fea265627a7a723158200892e4c83cff533d9e4652525f1e30c0a7ec2adf58d296e3df1b85911c930f8264736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e
-----Decoded View---------------
Arg [0] : _ens (address): 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e
Deployed Bytecode Sourcemap
2675:949:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2675:949:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3360:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;3487:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3487:134:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2087:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2087:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2923:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3239:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3239:113:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3055:176;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3055:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1801:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2944:36;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2944:36:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2316:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2316:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2461:126;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2461:126:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1982:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1982:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3360:119;1868:19;1876:10;1868:7;:19::i;:::-;1860:28;;;;;;3434:5;3424:16;;;;;;;;;;3467:4;3451:6;:13;3458:5;3451:13;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3360:119;:::o;3487:134::-;3557:4;2828:38;;;;;;;;;;;;;;;;;;;3581:32;;;:11;:32;;;;3574:39;;3487:134;;;:::o;2087:97::-;2139:4;2172;2163:13;;:5;;;;;;;;;;;:13;;;2156:20;;2087:97;;;:::o;2923:14::-;;;;;;;;;;;;;:::o;3239:113::-;1868:19;1876:10;1868:7;:19::i;:::-;1860:28;;;;;;3308:3;;;;;;;;;;;:15;;;2766:1;2758:10;;3335:8;3308:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3308:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3308:36:0;;;;3239:113;:::o;3055:176::-;2409:11;:23;2421:10;2409:23;;;;;;;;;;;;;;;;;;;;;;;;;2401:32;;;;;;3154:6;:13;3161:5;3154:13;;;;;;;;;;;;;;;;;;;;;3153:14;3145:23;;;;;;3179:3;;;;;;;;;;;:19;;;2766:1;2758:10;;3210:5;3217;3179:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3179:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3179:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3179:44:0;;;;;;;;;;;;;;;;;3055:176;;:::o;1801:20::-;;;;;;;;;;;;;:::o;2944:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;2316:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2461:126::-;1868:19;1876:10;1868:7;:19::i;:::-;1860:28;;;;;;2572:7;2546:11;:23;2558:10;2546:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2461:126;;:::o;1982:97::-;1868:19;1876:10;1868:7;:19::i;:::-;1860:28;;;;;;2063:8;2055:5;;:16;;;;;;;;;;;;;;;;;;1982:97;:::o
Swarm Source
bzzr://0892e4c83cff533d9e4652525f1e30c0a7ec2adf58d296e3df1b85911c930f82
Loading...
Loading
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.