CID SDK

Use cidjs SDK to interact with Core ID contracts

CID.js

Javascript bindings for the CORE ID .core Domain

Overview of the API

Installation

Install @ciddomains/cidjs, alongcide web3.

npm install @ciddomains/cidjs web3

Getting Started

All that's needed to get started is a web3 provider instance, you should pass it and select network id when creating a new CID instance.

// core mainnet domain example, getAddress

const CID = require('@ciddomains/cidjs').default       

const Web3 = require('web3')                                                                                                                

async function main(name) {
  const provider = new Web3.providers.HttpProvider("https://rpc.coredao.org")
  let cid = new CID({ provider })

  const address = await cid.name(name).getAddress() // 0x123                                                                                
  console.log("name: %s, address: %s", name, address)                                                                                          

}                                                                                                                                           
main("coreid.core") // 0x9826a59Aa17C36e88AA2F6dC367772381f034401

Reverse Resolution

// core mainnet domain example, getName
const CID = require('@ciddomains/cidjs').default       

const Web3 = require('web3')                                                                                                                

async function main(address) {
  const provider = new Web3.providers.HttpProvider("https://rpc.coredao.org")
  let cid = new CID({ provider })

  const {name} = await cid.getName(address)                                                                               
  console.log("name: %s, address: %s", name, address)                                                                                           

}                                                                                                                                           
main("0x9826a59Aa17C36e88AA2F6dC367772381f034401") // coreid.core

exports

default - CID
getCidAddress
getResolverContract
getCIDContract
namehash
labelhash

CID Interface

name(name: String) => Name

Returns a Name Object, that allows you to make record queries.

resolver(address: EvmAddress) => Resolver

Returns a Resolver Object, allowing you to query names from this specific resolver. Most useful when querying a different resolver that is different than is currently recorded on the registry. E.g. migrating to a new resolver

async getName(address: EvmAddress) => Promise<Name>

Returns the reverse record for a particular Evm address.

async setReverseRecord(name: Name) => Promise<EthersTxObject>

Sets the reverse record for the current Evm address

Name Interface

async getOwner() => Promise<EvmAddress>

Returns the owner/controller for the current CID name.

async setOwner(address: EvmAddress) => Promise<Ethers>

Sets the owner/controller for the current CID name.

async getResolver() => Promise<EvmAddress>

Returns the resolver for the current CID name.

async setResolver(address: EvmAddress) => Promise<EvmAddress>

Sets the resolver for the current CID name.

async getTTL() => Promise<Number>

Returns the TTL for the current CID name.

async getAddress(coinId: String) => Promise<EvmAddress>

Returns the address for the current CID name for the coinId provided.

async setAddress(coinId: String, address: EvmAddress) => Promise<EthersTxObject>

Sets the address for the current CID name for the coinId provided.

async getContent() => Promise<ContentHash>

Returns the contentHash for the current CID name.

async setContenthash(content: ContentHash) => Promise<EthersTxObject>

Sets the contentHash for the current CID name.

async getText(key: String) => Promise<String>

Returns the text record for a given key for the current CID name.

async setText(key: String, recordValue: String) => Promise<EthersTxObject>

Sets the text record for a given key for the current CID name.

async setSubnodeOwner(label: String, newOwner: EvmAddress) => Promise<EthersTxObject>

Sets the subnode owner for a subdomain of the current CID name.

async setSubnodeRecord(label: String, newOwner: EvmAddress, resolver: EvmAddress, ttl: ?Number) => Promise<EthersTxObject>

Sets the subnode owner, resolver, ttl for a subdomain of the current CID name in one transaction.

 async createSubdomain(label: String) => Promise<EthersTxObject>

Creates a subdomain for the current CID name. Automatically sets the owner to the signing account.

async deleteSubdomain(label: String) => Promise<EthersTxObject>

Deletes a subdomain for the current CID name. Automatically sets the owner to "0x0..."

Resolver Interface

address

Static property that returns current resolver address

name(name) => Name

Returns a Name Object that hardcodes the resolver

Build SDK and test on your test machine

yarn install
yarn run build
node main.js

Last updated