如何查询RNS域名的过期时间?
How to query the expiry date for an RNS domain?
除了直接查询外,我还想订阅事件以在到期日期发生变化时(例如续订时)监听
我发现 NodeOwner.sol
有一个
available
function
其实施看起来很有希望:
function available(uint256 tokenId) public view returns(bool) {
return expirationTime[tokenId] < now;
}
并且同一个文件还定义了一个
ExpirationChanged
event:
event ExpirationChanged(uint256 tokenId, uint expirationTime);
我没弄清楚的是:
- 如何获取
NodeOwner
- 应该查询哪个合约/地址?
- 如果
NodeOwner
有多个可能的地址/实例,或者只有其中一个。
要获取单个域名的过期时间,可以使用RSKOwner
合约和expirationTime
方法。您可以在您感兴趣的域名下查询此合同。
在主网上,合约的地址是0x45d3E4fB311982a06ba52359d44cB4f5980e0ef1
,可以在RSK explorer. The ABI for this contract can be found here.
上验证
使用 Web3 库,您可以像这样查询单个域(例如 testing.rsk):
const rskOwner = new web3.eth.Contract(rskOwnerAbi, rskOwnerAddress);
const hash = `0x${sha3('testing')}`;
rskOwner.methods.expirationTime(hash).call((error, result) => {
console.log('expires at: ', result)
})
除了直接查询外,我还想订阅事件以在到期日期发生变化时(例如续订时)监听
我发现 NodeOwner.sol
有一个
available
function
其实施看起来很有希望:
function available(uint256 tokenId) public view returns(bool) {
return expirationTime[tokenId] < now;
}
并且同一个文件还定义了一个
ExpirationChanged
event:
event ExpirationChanged(uint256 tokenId, uint expirationTime);
我没弄清楚的是:
- 如何获取
NodeOwner
- 应该查询哪个合约/地址? - 如果
NodeOwner
有多个可能的地址/实例,或者只有其中一个。
要获取单个域名的过期时间,可以使用RSKOwner
合约和expirationTime
方法。您可以在您感兴趣的域名下查询此合同。
在主网上,合约的地址是0x45d3E4fB311982a06ba52359d44cB4f5980e0ef1
,可以在RSK explorer. The ABI for this contract can be found here.
使用 Web3 库,您可以像这样查询单个域(例如 testing.rsk):
const rskOwner = new web3.eth.Contract(rskOwnerAbi, rskOwnerAddress);
const hash = `0x${sha3('testing')}`;
rskOwner.methods.expirationTime(hash).call((error, result) => {
console.log('expires at: ', result)
})