1.0.1 • Published 1 month ago

@opennamedid/onjs v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

Use onjs SDK to interact with OpenName contracts

onjs

onjs integrates the OpenName contract, you will only need one unified SDK to integrate all domains across multiple chains. onjs will hide all the complicated cross-chain detail from the partners, making the integration very easy.

Overview of the onjs

Installation

Install @opennamedid/onjs.

npm install @opennamedid/onjs

This package exports bellows.

default  - get instance of onjs
nameHash - get tokenId for name

Getting Started

First,you need to create a new ON instance.

const ON = require('onjs/dist/index').default
const nameHash = require('onjs/dist/index').nameHash

let onInst = new ON()  // or let onInst = new ON({}) 

async function getRecord(name) {
    const record = await onInst.name(name).getRecord()
    console.log("getRecord for "+name+ ": ", record)
}

async function getAddr(name, coinType) {  // coinType refer to the appendix
    let addr = await onInst.name(name).getAddr(coinType) 
    console.log("getAddr for " + name+ ": ", coinType, addr)
}

async function getReverse(chainId, addr) { // chainId refer to the appendix
    let name = await onInst.getReverse(chainId, addr)
    console.log("getReverse for " + addr + ": ", name)
}
// test demo
getRecord("open.name")
getAddr("open.name", 60) 
getReverse(1, '0x6817...oonn')

ON Interface

async getReverse(chainId:number, address:EvmAddress) => Promise<Name>

Retrieve a domain name by Evm address.

Name Interface

getRecord() => Record

Returns a Record Object, The Record Object is an array object with a length of 6. resolverAddr,expireTime,name,chainId,expireTime of grace,expire time of auction

IndexElementExplanation
0resolverAddraddress of resolver
1expireTimeThe expiration time of a domain name based on the unit timestamp, accurate to the second, for example, 1689738089.
2namedomain name
3chainIdthe ID of the chain where the domain name resides
4expireTime of gracegrace period expiration time. The format is the same as expireTime.
5expireTime of auctionauction period expiration time. The format is the same as expireTime.
async getAddr(coinType: number) => Promise<Address>

Returns the address for the current ON name for the coinType provided.

Other Interface

nameHash(name: string) => string

Returns the tokenId for the domain name provided.

The usage is as follows.

const nameHash = require('onjs/dist/index').nameHash
let tokenId =  nameHash('open.name')
console.log(tokenId)  // 0x109dc...6a69

Appendix

Supported Chain List & Coin Type List

Please visit https://docs.open.name/developer-guide/sdk