Contract 0x314159265dd8dbb310642f98f50c066173c1259b

ENS  
 
Ad
Crypto.com
Txn Hash
Block
From
To
Value [Txn Fee]
0xd9350ab1d2424964b9874408a95b2df687b65a9201a4fa65818a592be61e30f3(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0x314960d4d4a852f6dfaa9331e36c8e65f40237248dbbff23ed97adc9ad3e0dbd(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xcfb901e12d5f4294a480630ab7caf4c6d337c8d2f818f9b231e246b1e580f4c4(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0x3b9ac038d0d10f086ab552ef170cf0b82b45f3e4a020442ca29dfc2cd527f673(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xcc03e609816e8a51657032b676fb239d6b3262863c8283ff7c392d8d6e5424df(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xdaa48e99e6bef40f970ae483648d43152d205a3b949302dadfb115fa530c09d4(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0x32e6a54d5108a0466fce2c35c8637071b145250ca8581ec1128b6c581be8b71e(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xf7c7572aefc0296a9b09044137b8149d3ad4258c6aeafaff8b133f545a3251c3(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xc02755d57cced98caa63261a22ae6503acbaf3e84946b6b47d64d723a18360c7(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0x5dbe51afe70f61cef41157a91cb217a82ea590e0e74ac369f67076b1e91ef791(pending)2020-11-08 7:48:441 day 9 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0x233835d73a10b5789e949b5c1d6e819f9feb3813dbd7d0ccdd7818906ac9e4f2(pending)2020-11-08 0:16:151 day 17 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN ENS: Eth Name Service0 Ether(Pending)
0xa46f8c97531262cde1cddd59a2272f4ab9951908b1e8f5dba34a05eabd9ce8bc(pending)2020-11-01 7:47:588 days 9 hrs ago0xb2ee0253330a8ebb30721d094ba538eb059e38ac IN ENS: Eth Name Service0 Ether(Pending)
0x6db034e3b9513c7f577a8895c39ee82ea068570d2d1bf0bf82c8be5288e3dcc9(pending)2020-11-01 4:23:148 days 13 hrs ago0xb2ee0253330a8ebb30721d094ba538eb059e38ac IN ENS: Eth Name Service0 Ether(Pending)
0x652c9f309f2abb72835da7d43a5b656491558164dbe4fbec816ac23e014529b6112134842020-11-08 0:20:571 day 17 hrs ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.000869003
0xe2aa26b6809b871b9eeaee0740c1c5d2ada252ecd4f0b96123be18f7971f6a4e111915632020-11-04 15:48:305 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.00274422
0x8d82c0024c647a28b5b920ea1158885a9eb5e788c2774958069a833fec35d7ab111915632020-11-04 15:48:305 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.002515535
0x9bb02b531a5bd7afc612803570c61b694cb55913d43318168ecafda4dc933807111915632020-11-04 15:48:305 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.00264131182
0x2826d4f7e37568bdc6162bf6b1b07b0a4d53ccace4d24d79e854a013b4a6f6f9111915632020-11-04 15:48:305 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.002469798066
0xe888ed542d6e05976aa78217b0be7f8a29476caab5690eec4ed552897494fb9e111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.004282629732
0xa510d495865ffe979a67d097114d335fab7607e8403d3b72b35bd79c2cc11cde111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003567486
0xfd523a6a0b7dde19c3a3a81ee95eba229b278060deb9076d589fc68f91bafee6111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003750434066
0x9ff17640b88db0b2cceb361a449276a6632e5ca075884493721f0afa2fb993a9111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003704697066
0xa426d88cd962dfd80eb4fea6b69e486d6307f39653b2e8cd1ac87c5c46030c79111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003612275
0x212c43dd7998383434c228fb02c0a6bb1dc48477473b563873042aacfea69911111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003613223
0x92bcf11d648e7f5ce94c4a70a45a0c32ac07d314e7bc32a208ff60c51d7a40e1111915622020-11-04 15:48:235 days 1 hr ago0x56ca9514363f68d622931dce1566070f86ce5550 IN  ENS: Eth Name Service0 Ether0.003933382
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ENS

Compiler Version
v0.4.4+commit.4633f3de

Optimization Enabled:
No with 0 runs

Other Settings:
default evmVersion

Contract Source Code

/**
 *Submitted for verification at Etherscan.io on 2019-10-31
*/

;;; --------------------------------------------------------------------------- 
;;; @title The Ethereum Name Service registry. 
;;; @author Daniel Ellison <[email protected]> 
 
(seq 
 
  ;; -------------------------------------------------------------------------- 
  ;; Constant definitions. 
 
  ;; Memory layout. 
  (def 'node-bytes  0x00) 
  (def 'label-bytes 0x20) 
  (def 'call-result 0x40) 
 
  ;; Struct: Record 
  (def 'resolver 0x00) ; address 
  (def 'owner    0x20) ; address 
  (def 'ttl      0x40) ; uint64 
 
  ;; Precomputed function IDs. 
  (def 'get-node-owner    0x02571be3) ; owner(bytes32) 
  (def 'get-node-resolver 0x0178b8bf) ; resolver(bytes32) 
  (def 'get-node-ttl      0x16a25cbd) ; ttl(bytes32) 
  (def 'set-node-owner    0x5b0fc9c3) ; setOwner(bytes32,address) 
  (def 'set-subnode-owner 0x06ab5923) ; setSubnodeOwner(bytes32,bytes32,address) 
  (def 'set-node-resolver 0x1896f70a) ; setResolver(bytes32,address) 
  (def 'set-node-ttl      0x14ab9038) ; setTTL(bytes32,uint64) 
 
  ;; Jumping here causes an EVM error. 
  (def 'invalid-location 0x02) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Shifts the leftmost 4 bytes of a 32-byte number right by 28 bytes. 
  ;; @param input A 32-byte number. 
 
  (def 'shift-right (input) 
    (div input (exp 2 224))) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Determines whether the supplied function ID matches a known 
  ;;         function hash and executes <code-body> if so. 
  ;; @dev The function ID is in the leftmost four bytes of the call data. 
  ;; @param function-hash The four-byte hash of a known function signature. 
  ;; @param code-body The code to run in the case of a match. 
 
  (def 'function (function-hash code-body) 
    (when (= (shift-right (calldataload 0x00)) function-hash) 
      code-body)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Calculates record location for the node and label passed in. 
  ;; @param node The parent node. 
  ;; @param label The hash of the subnode label. 
 
  (def 'get-record (node label) 
    (seq 
      (mstore node-bytes node) 
      (mstore label-bytes label) 
      (sha3 node-bytes 64))) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Retrieves owner from node record. 
  ;; @param node Get owner of this node. 
 
  (def 'get-owner (node) 
    (sload (+ node owner))) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Stores new owner in node record. 
  ;; @param node Set owner of this node. 
  ;; @param new-owner New owner of this node. 
 
  (def 'set-owner (node new-owner) 
    (sstore (+ node owner) new-owner)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Stores new subnode owner in node record. 
  ;; @param node Set owner of this node. 
  ;; @param label The hash of the label specifying the subnode. 
  ;; @param new-owner New owner of the subnode. 
 
  (def 'set-subowner (node label new-owner) 
    (sstore (+ (get-record node label) owner) new-owner)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Retrieves resolver from node record. 
  ;; @param node Get resolver of this node. 
 
  (def 'get-resolver (node) 
    (sload node)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Stores new resolver in node record. 
  ;; @param node Set resolver of this node. 
  ;; @param new-resolver New resolver for this node. 
 
  (def 'set-resolver (node new-resolver) 
    (sstore node new-resolver)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Retrieves TTL From node record. 
  ;; @param node Get TTL of this node. 
 
  (def 'get-ttl (node) 
    (sload (+ node ttl))) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Stores new TTL in node record. 
  ;; @param node Set TTL of this node. 
  ;; @param new-resolver New TTL for this node. 
 
  (def 'set-ttl (node new-ttl) 
    (sstore (+ node ttl) new-ttl)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; @notice Checks that the caller is the node owner. 
  ;; @param node Check owner of this node. 
 
  (def 'only-node-owner (node) 
    (when (!= (caller) (get-owner node)) 
      (jump invalid-location))) 
 
  ;; -------------------------------------------------------------------------- 
  ;; INIT 
 
  ;; Set the owner of the root node (0x00) to the deploying account. 
  (set-owner 0x00 (caller)) 
 
  ;; -------------------------------------------------------------------------- 
  ;; CODE 
 
  (returnlll 
    (seq 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Returns the address of the resolver for the specified node. 
      ;; @dev Signature: resolver(bytes32) 
      ;; @param node Return this node's resolver. 
      ;; @return The associated resolver. 
 
      (def 'node (calldataload 0x04)) 
 
      (function get-node-resolver 
        (seq 
 
          ;; Get the node's resolver and save it. 
          (mstore call-result (get-resolver node)) 
 
          ;; Return result. 
          (return call-result 32))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Returns the address that owns the specified node. 
      ;; @dev Signature: owner(bytes32) 
      ;; @param node Return this node's owner. 
      ;; @return The associated address. 
 
      (def 'node (calldataload 0x04)) 
 
      (function get-node-owner 
        (seq 
 
          ;; Get the node's owner and save it. 
          (mstore call-result (get-owner node)) 
 
          ;; Return result. 
          (return call-result 32))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Returns the TTL of a node and any records associated with it. 
      ;; @dev Signature: ttl(bytes32) 
      ;; @param node Return this node's TTL. 
      ;; @return The node's TTL. 
 
      (def 'node (calldataload 0x04)) 
 
      (function get-node-ttl 
        (seq 
 
          ;; Get the node's TTL and save it. 
          (mstore call-result (get-ttl node)) 
 
          ;; Return result. 
          (return call-result 32))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Transfers ownership of a node to a new address. May only be 
      ;;         called by the current owner of the node. 
      ;; @dev Signature: setOwner(bytes32,address) 
      ;; @param node The node to transfer ownership of. 
      ;; @param new-owner The address of the new owner. 
 
      (def 'node (calldataload 0x04)) 
      (def 'new-owner (calldataload 0x24)) 
 
      (function set-node-owner 
        (seq (only-node-owner node) 
 
          ;; Transfer ownership by storing passed-in address. 
          (set-owner node new-owner) 
 
          ;; Emit an event about the transfer. 
          ;; Transfer(bytes32 indexed node, address owner); 
          (mstore call-result new-owner) 
          (log2 call-result 32 
              (sha3 0x00 (lit 0x00 "Transfer(bytes32,address)")) node) 
 
          ;; Nothing to return. 
          (stop))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Transfers ownership of a subnode to a new address. May only be 
      ;;         called by the owner of the parent node. 
      ;; @dev Signature: setSubnodeOwner(bytes32,bytes32,address) 
      ;; @param node The parent node. 
      ;; @param label The hash of the label specifying the subnode. 
      ;; @param new-owner The address of the new owner. 
 
      (def 'node (calldataload 0x04)) 
      (def 'label (calldataload 0x24)) 
      (def 'new-owner (calldataload 0x44)) 
 
      (function set-subnode-owner 
        (seq (only-node-owner node) 
 
          ;; Transfer ownership by storing passed-in address. 
          (set-subowner node label new-owner) 
 
          ;; Emit an event about the transfer. 
          ;; NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); 
          (mstore call-result new-owner) 
          (log3 call-result 32 
              (sha3 0x00 (lit 0x00 "NewOwner(bytes32,bytes32,address)")) 
              node label) 
 
          ;; Nothing to return. 
          (stop))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Sets the resolver address for the specified node. 
      ;; @dev Signature: setResolver(bytes32,address) 
      ;; @param node The node to update. 
      ;; @param new-resolver The address of the resolver. 
 
      (def 'node (calldataload 0x04)) 
      (def 'new-resolver (calldataload 0x24)) 
 
      (function set-node-resolver 
        (seq (only-node-owner node) 
 
          ;; Transfer ownership by storing passed-in address. 
          (set-resolver node new-resolver) 
 
          ;; Emit an event about the change of resolver. 
          ;; NewResolver(bytes32 indexed node, address resolver); 
          (mstore call-result new-resolver) 
          (log2 call-result 32 
              (sha3 0x00 (lit 0x00 "NewResolver(bytes32,address)")) node) 
 
          ;; Nothing to return. 
          (stop))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Sets the TTL for the specified node. 
      ;; @dev Signature: setTTL(bytes32,uint64) 
      ;; @param node The node to update. 
      ;; @param ttl The TTL in seconds. 
 
      (def 'node (calldataload 0x04)) 
      (def 'new-ttl (calldataload 0x24)) 
 
      (function set-node-ttl 
        (seq (only-node-owner node) 
 
          ;; Set new TTL by storing passed-in time. 
          (set-ttl node new-ttl) 
 
          ;; Emit an event about the change of TTL. 
          ;; NewTTL(bytes32 indexed node, uint64 ttl); 
          (mstore call-result new-ttl) 
          (log2 call-result 32 
              (sha3 0x00 (lit 0x00 "NewTTL(bytes32,uint64)")) node) 
 
          ;; Nothing to return. 
          (stop))) 
 
      ;; ---------------------------------------------------------------------- 
      ;; @notice Fallback: No functions matched the function ID provided. 
 
      (jump invalid-location))) 
 
)

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}]

3360206000015561021a806100146000396000f3630178b8bf60e060020a600035041415610020576004355460405260206040f35b6302571be360e060020a600035041415610044576020600435015460405260206040f35b6316a25cbd60e060020a600035041415610068576040600435015460405260206040f35b635b0fc9c360e060020a6000350414156100b557602060043501543314151561008f576002565b6024356020600435015560243560405260043560198061020160003960002060206040a2005b6306ab592360e060020a6000350414156101135760206004350154331415156100dc576002565b6044356020600435600052602435602052604060002001556044356040526024356004356021806101e060003960002060206040a3005b631896f70a60e060020a60003504141561015d57602060043501543314151561013a576002565b60243560043555602435604052600435601c806101c460003960002060206040a2005b6314ab903860e060020a6000350414156101aa576020600435015433141515610184576002565b602435604060043501556024356040526004356016806101ae60003960002060206040a2005b6002564e657754544c28627974657333322c75696e743634294e65775265736f6c76657228627974657333322c61646472657373294e65774f776e657228627974657333322c627974657333322c61646472657373295472616e7366657228627974657333322c6164647265737329

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.