CNS-Open-Service

若需在产品中支持域名售卖和注册,请参考此文档;

Postman

Swagger

第三方接入交互图

API相关枚举类型:

枚举意义

trade_provider

法币支付运营商

(wechat, alipay, ...)

trade_type

法币支付类型

native/h5

order_state

订单状态

init, made, success; null 表示全部

trade_state

支付状态

SUCCESS REFUND NOTPAY CLOSED REVOKED USERPAYING PAYERROR

refund_state

支付退款状态

NIL SUCCESS CLOSED PROCESSING ABNORMAL

tx_state

web3交易状态

INIT SEND_FAILED EXECUTE_FAILED EXECUTED_SUCCESS

tx_state

  • INIT 未开始

  • SEND_FAILED 发送失败,表示交易未发送,通常是由于Estimate失败,tx_error表示错误详情

  • EXECUTE_FAILED 执行失败,表示交易发送成功但交易执行失败(概率非常低,这种的失败原因是由于Estimate时的合约状态与交易执行时的合约状态不一致)

  • EXECUTED_SUCCESS 执行成功,表示交易发送成功而且交易执行成功

第三方接入

Cns-backend API

  • 测试环境 BaseUrl: https://app-test.web3verse.space/v0

注册域名

务必在调用 registers 前,对用户所输入的内容进行敏感词过滤;

域名注册目前只支持英文字符和 Emoji;

  1. 调用合约Web3RegisterController的rentPriceInFiat方法计算价格,例如要计算 conflux.web3 域名一年期的价格,rentPriceInFiat("conflux", 3600*24*365); 得到的结果有两个字段 basepremium; 实际价格为 (base + premium)/1e6, 单位为“分”

  2. 在注册域名时如果需要(也可以不设置)同时设置正向解析,方法为将commit.data设置合约方法PublicResolver.setAddr(bytes32 node, uint coinType, bytes memory a)的ABI编码。 参数node为域名的nodecoinTypeconfluxCoinType503, a为正向解析到的地址

    1. node 计算使用库@ensdomains/eth-ens-namehashhash方法。如域名为 conflux.web3, 则 noderequire("@ensdomains/eth-ens-namehash").hash("conflux.web3")

    如要生成解析conflux.web3到地址cfxtest:aany9gz5hnpz9a22dkmkpcr276v932wze6cr821wd4的data; 示例代码如下:

       const ethers = require("ethers");
       const sdk = require("js-conflux-sdk");
       const target = "cfxtest:aany9gz5hnpz9a22dkmkpcr276v932wze6cr821wd4"; // 要正向解析到的地址
       const node = require("@ensdomains/eth-ens-namehash").hash("conflux.web3");
       const iface = new ethers.Interface(["function setAddr(bytes32 node, uint coinType, bytes memory a)"]);
       const data = iface.encodeFunctionData("setAddr",[node,503,sdk.format.hexAddress(target)])
  3. 调用合约Web3RegisterController的makeCommit方法生成commit hash

    commit.data设置为第2步生成的值

  4. 调用合约Web3RegisterController的commit方法提交commit hash

  5. 用户支付

  6. 调用cns-backend的api POST /v0/registers 注册域名

    1. 注意:注册域名请求需要在commit交易执行完成后的10s~10m中之内发送,否则容易导致register出现commitTooNew或commitTooOld的错误

  7. 调用cns-backend的api GET /v0/registers/:commit_hash 查询注册状态

域名续费

  1. 域名续费价格计算方式同注册域名相同,如 conflux.web3 域名续费一年期的价格为rentPriceInFiat("conflux", 3600*24*365)

  2. 用户支付

  3. 调用cns-backend的api POST /v0/renews 续费

  4. 调用cns-backend的api GET /v0/renews/:id 查询续费状态

身份认证

"注册域名"及"域名续费" API 都需要身份认证,使用ApiKey方式,ApiKey 由官方人工发放

使用方法:

  • 在请求头中增加 X-Api-Key

开发工具

其它

交易相关信息

交易信息相关字段有

当交易成功时 tx_hash 才有值,交易失败时 tx_error 才有值

最后更新于