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 .
Copy 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.
Copy // 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
Copy // 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
Copy default - CID
getCidAddress
getResolverContract
getCIDContract
namehash
labelhash
CID Interface
Copy name(name: String) => Name
Returns a Name Object, that allows you to make record queries.
Copy 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
Copy async getName(address: EvmAddress) => Promise<Name>
Returns the reverse record for a particular Evm address.
Copy async setReverseRecord(name: Name) => Promise<EthersTxObject>
Sets the reverse record for the current Evm address
Name Interface
Copy async getOwner() => Promise<EvmAddress>
Returns the owner/controller for the current CID name.
Copy async setOwner(address: EvmAddress) => Promise<Ethers>
Sets the owner/controller for the current CID name.
Copy async getResolver() => Promise<EvmAddress>
Returns the resolver for the current CID name.
Copy async setResolver(address: EvmAddress) => Promise<EvmAddress>
Sets the resolver for the current CID name.
Copy async getTTL() => Promise<Number>
Returns the TTL for the current CID name.
Copy async getAddress(coinId: String) => Promise<EvmAddress>
Returns the address for the current CID name for the coinId provided.
Copy async setAddress(coinId: String, address: EvmAddress) => Promise<EthersTxObject>
Sets the address for the current CID name for the coinId provided.
Copy async getContent() => Promise<ContentHash>
Returns the contentHash for the current CID name.
Copy async setContenthash(content: ContentHash) => Promise<EthersTxObject>
Sets the contentHash for the current CID name.
Copy async getText(key: String) => Promise<String>
Returns the text record for a given key for the current CID name.
Copy async setText(key: String, recordValue: String) => Promise<EthersTxObject>
Sets the text record for a given key for the current CID name.
Copy async setSubnodeOwner(label: String, newOwner: EvmAddress) => Promise<EthersTxObject>
Sets the subnode owner for a subdomain of the current CID name.
Copy 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.
Copy async createSubdomain(label: String) => Promise<EthersTxObject>
Creates a subdomain for the current CID name. Automatically sets the owner to the signing account.
Copy async deleteSubdomain(label: String) => Promise<EthersTxObject>
Deletes a subdomain for the current CID name. Automatically sets the owner to "0x0..."
Resolver Interface
Static property that returns current resolver address
Returns a Name Object that hardcodes the resolver
Build SDK and test on your test machine
Copy yarn install
yarn run build
node main.js