Created
May 3, 2018 08:16
-
-
Save MichalZalecki/db02810da8e582d0494adb2c5fd31f3c to your computer and use it in GitHub Desktop.
ensutils to work with Rinkeby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// STOP! | |
// Are you thinking of using this in an app? Don't! | |
// This script is designed for interactive use in the go-ethereum console. | |
// For use in an app, consider one of these fine libraries: | |
// - https://www.npmjs.com/package/ethjs-ens | |
// - https://www.npmjs.com/package/ethereum-ens | |
function namehash(name) { | |
var node = '0x0000000000000000000000000000000000000000000000000000000000000000'; | |
if (name !== '') { | |
var labels = name.split("."); | |
for(var i = labels.length - 1; i >= 0; i--) { | |
node = web3.sha3(node + web3.sha3(labels[i]).slice(2), {encoding: 'hex'}); | |
} | |
} | |
return node.toString(); | |
} | |
var ensContract = web3.eth.contract([ | |
{ | |
"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" | |
} | |
]); | |
var ens = ensContract.at('0xe7410170f87102df0055eb195163a03b7f2bff4a'); | |
var auctionRegistrarContract = web3.eth.contract([ | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "releaseDeed", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "getAllowedTime", | |
"outputs": [ | |
{ | |
"name": "timestamp", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "unhashedName", | |
"type": "string" | |
} | |
], | |
"name": "invalidateName", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "owner", | |
"type": "address" | |
}, | |
{ | |
"name": "value", | |
"type": "uint256" | |
}, | |
{ | |
"name": "salt", | |
"type": "bytes32" | |
} | |
], | |
"name": "shaBid", | |
"outputs": [ | |
{ | |
"name": "sealedBid", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "bidder", | |
"type": "address" | |
}, | |
{ | |
"name": "seal", | |
"type": "bytes32" | |
} | |
], | |
"name": "cancelBid", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "entries", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint8" | |
}, | |
{ | |
"name": "", | |
"type": "address" | |
}, | |
{ | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"name": "", | |
"type": "uint256" | |
}, | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "ens", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "_value", | |
"type": "uint256" | |
}, | |
{ | |
"name": "_salt", | |
"type": "bytes32" | |
} | |
], | |
"name": "unsealBid", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "transferRegistrars", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
}, | |
{ | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"name": "sealedBids", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "state", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint8" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "transfer", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "_timestamp", | |
"type": "uint256" | |
} | |
], | |
"name": "isAllowed", | |
"outputs": [ | |
{ | |
"name": "allowed", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "finalizeAuction", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "registryStarted", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "sealedBid", | |
"type": "bytes32" | |
} | |
], | |
"name": "newBid", | |
"outputs": [], | |
"payable": true, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "labels", | |
"type": "bytes32[]" | |
} | |
], | |
"name": "eraseNode", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hashes", | |
"type": "bytes32[]" | |
} | |
], | |
"name": "startAuctions", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "deed", | |
"type": "address" | |
}, | |
{ | |
"name": "registrationDate", | |
"type": "uint256" | |
} | |
], | |
"name": "acceptRegistrarTransfer", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "_hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "startAuction", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "rootNode", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "hashes", | |
"type": "bytes32[]" | |
}, | |
{ | |
"name": "sealedBid", | |
"type": "bytes32" | |
} | |
], | |
"name": "startAuctionsAndBid", | |
"outputs": [], | |
"payable": true, | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "_ens", | |
"type": "address" | |
}, | |
{ | |
"name": "_rootNode", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "_startDate", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "constructor" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "registrationDate", | |
"type": "uint256" | |
} | |
], | |
"name": "AuctionStarted", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": true, | |
"name": "bidder", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"name": "deposit", | |
"type": "uint256" | |
} | |
], | |
"name": "NewBid", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": true, | |
"name": "owner", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"name": "value", | |
"type": "uint256" | |
}, | |
{ | |
"indexed": false, | |
"name": "status", | |
"type": "uint8" | |
} | |
], | |
"name": "BidRevealed", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": true, | |
"name": "owner", | |
"type": "address" | |
}, | |
{ | |
"indexed": false, | |
"name": "value", | |
"type": "uint256" | |
}, | |
{ | |
"indexed": false, | |
"name": "registrationDate", | |
"type": "uint256" | |
} | |
], | |
"name": "HashRegistered", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "value", | |
"type": "uint256" | |
} | |
], | |
"name": "HashReleased", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "hash", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": true, | |
"name": "name", | |
"type": "string" | |
}, | |
{ | |
"indexed": false, | |
"name": "value", | |
"type": "uint256" | |
}, | |
{ | |
"indexed": false, | |
"name": "registrationDate", | |
"type": "uint256" | |
} | |
], | |
"name": "HashInvalidated", | |
"type": "event" | |
} | |
]); | |
var ethRegistrar = auctionRegistrarContract.at(ens.owner(namehash('eth'))); | |
var deedContract = web3.eth.contract([ | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "creationDate", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [], | |
"name": "destroyDeed", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "setOwner", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "registrar", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "value", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "previousOwner", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "owner", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "newValue", | |
"type": "uint256" | |
}, | |
{ | |
"name": "throwOnFailure", | |
"type": "bool" | |
} | |
], | |
"name": "setBalance", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "refundRatio", | |
"type": "uint256" | |
} | |
], | |
"name": "closeDeed", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "newRegistrar", | |
"type": "address" | |
} | |
], | |
"name": "setRegistrar", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "_owner", | |
"type": "address" | |
} | |
], | |
"payable": true, | |
"type": "constructor" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": false, | |
"name": "newOwner", | |
"type": "address" | |
} | |
], | |
"name": "OwnerChanged", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [], | |
"name": "DeedClosed", | |
"type": "event" | |
} | |
]); | |
var fifsRegistrarContract = web3.eth.contract([ | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "ens", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"name": "expiryTimes", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "uint256" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "subnode", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "owner", | |
"type": "address" | |
} | |
], | |
"name": "register", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "rootNode", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "ensAddr", | |
"type": "address" | |
}, | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"type": "constructor" | |
} | |
]); | |
var testRegistrar = fifsRegistrarContract.at(ens.owner(namehash('test'))); | |
var resolverContract = web3.eth.contract([ | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "interfaceID", | |
"type": "bytes4" | |
} | |
], | |
"name": "supportsInterface", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bool" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "contentTypes", | |
"type": "uint256" | |
} | |
], | |
"name": "ABI", | |
"outputs": [ | |
{ | |
"name": "contentType", | |
"type": "uint256" | |
}, | |
{ | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "x", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "y", | |
"type": "bytes32" | |
} | |
], | |
"name": "setPubkey", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"name": "content", | |
"outputs": [ | |
{ | |
"name": "ret", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"name": "addr", | |
"outputs": [ | |
{ | |
"name": "ret", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "contentType", | |
"type": "uint256" | |
}, | |
{ | |
"name": "data", | |
"type": "bytes" | |
} | |
], | |
"name": "setABI", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"name": "name", | |
"outputs": [ | |
{ | |
"name": "ret", | |
"type": "string" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "name", | |
"type": "string" | |
} | |
], | |
"name": "setName", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "setContent", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"name": "pubkey", | |
"outputs": [ | |
{ | |
"name": "x", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "y", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"name": "addr", | |
"type": "address" | |
} | |
], | |
"name": "setAddr", | |
"outputs": [], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "ensAddr", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "constructor" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "a", | |
"type": "address" | |
} | |
], | |
"name": "AddrChanged", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "hash", | |
"type": "bytes32" | |
} | |
], | |
"name": "ContentChanged", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "name", | |
"type": "string" | |
} | |
], | |
"name": "NameChanged", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": true, | |
"name": "contentType", | |
"type": "uint256" | |
} | |
], | |
"name": "ABIChanged", | |
"type": "event" | |
}, | |
{ | |
"anonymous": false, | |
"inputs": [ | |
{ | |
"indexed": true, | |
"name": "node", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "x", | |
"type": "bytes32" | |
}, | |
{ | |
"indexed": false, | |
"name": "y", | |
"type": "bytes32" | |
} | |
], | |
"name": "PubkeyChanged", | |
"type": "event" | |
} | |
]); | |
var publicResolver = resolverContract.at('0x5d20cf83cb385e06d2f2a892f9322cd4933eacdc'); | |
var reverseRegistrarContract = web3.eth.contract([ | |
{ | |
"constant": false, | |
"inputs": [ | |
{ | |
"name": "owner", | |
"type": "address" | |
} | |
], | |
"name": "claim", | |
"outputs": [ | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "ens", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "address" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [ | |
{ | |
"name": "addr", | |
"type": "address" | |
} | |
], | |
"name": "node", | |
"outputs": [ | |
{ | |
"name": "ret", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"constant": true, | |
"inputs": [], | |
"name": "rootNode", | |
"outputs": [ | |
{ | |
"name": "", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "function" | |
}, | |
{ | |
"inputs": [ | |
{ | |
"name": "ensAddr", | |
"type": "address" | |
}, | |
{ | |
"name": "node", | |
"type": "bytes32" | |
} | |
], | |
"payable": false, | |
"type": "constructor" | |
} | |
]); | |
var reverseRegistrar = reverseRegistrarContract.at(ens.owner(namehash('addr.reverse'))); | |
function getAddr(name) { | |
var node = namehash(name) | |
var resolverAddress = ens.resolver(node); | |
if (resolverAddress === '0x0000000000000000000000000000000000000000') { | |
return resolverAddress; | |
} | |
return resolverContract.at(resolverAddress).addr(node); | |
} | |
function getContent(name) { | |
var node = namehash(name) | |
var resolverAddress = ens.resolver(node); | |
if (resolverAddress === '0x0000000000000000000000000000000000000000') { | |
return "0x0000000000000000000000000000000000000000000000000000000000000000"; | |
} | |
return resolverContract.at(resolverAddress).content(node); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment