💡
.Web3 Username DOCS
  • User Tutorial
    • 什么是 .web3 用户名
    • 如何注册 .web3 用户名?
    • 必须要知道关于正向解析和反向解析
  • Dev Tutorial
    • Introduction
    • 💡Quick Start
    • CNS Deployments
    • FAQs
  • Contract API Reference
    • Name Processing
    • Registry
    • ReverseRegistrar
    • PublicResolver
    • .web3 Permanent Registrar
      • Registrar
      • Controller
    • NameWrapper
  • Third Party Intergation
    • CNS-Open-Service
    • Open Service APIs
      • Cns-Backend-API Swagger UI
      • Cns-Backend-API Postman Collection
  • Other
    • Changelog
  • Source Code
    • cns-contracts
    • web3ns.js
    • address-encoder
  • Easy Development
    • 🛠️DApp Integration Demo
    • 🛠️CNS Util Tools
由 GitBook 提供支持
在本页
  • Postman
  • Swagger
  • 第三方接入交互图
  • API相关枚举类型:
  • tx_state
  • 第三方接入
  • Cns-backend API
  • 注册域名
  • 域名续费
  • 身份认证
  • 开发工具
  • 其它
  • 交易相关信息
  1. Third Party Intergation

CNS-Open-Service

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

上一页.web3 Permanent Registrar下一页Open Service APIs

最后更新于2年前

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); 得到的结果有两个字段 base 和 premium; 实际价格为 (base + premium)/1e6, 单位为“分”

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

    1. node 计算使用库@ensdomains/eth-ens-namehash的hash方法。如域名为 conflux.web3, 则 node 为 require("@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. 用户支付

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

域名续费

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

  2. 用户支付

身份认证

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

使用方法:

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

开发工具

其它

交易相关信息

交易信息相关字段有

  • tx_hash 交易哈希

  • tx_error 交易错误信息

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

ABI计算使用

调用cns-backend的api 注册域名

调用cns-backend的api 查询注册状态

调用cns-backend的api 续费

调用cns-backend的api 查询续费状态

javascript: ,

golang:

java:

iface.encodeFunctionData
POST /v0/registers
GET /v0/registers/:commit_hash
POST /v0/renews
GET /v0/renews/:id
web3ns
js-conflux-sdk
cfxabigen
java-conflux-sdk
tx_state 交易状态
Run in Postman
drawing