CNS-Open-Service
若需在产品中支持域名售卖和注册,请参考此文档;
最后更新于
若需在产品中支持域名售卖和注册,请参考此文档;
最后更新于
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
INIT 未开始
SEND_FAILED 发送失败,表示交易未发送,通常是由于Estimate失败,tx_error表示错误详情
EXECUTE_FAILED 执行失败,表示交易发送成功但交易执行失败(概率非常低,这种的失败原因是由于Estimate时的合约状态与交易执行时的合约状态不一致)
EXECUTED_SUCCESS 执行成功,表示交易发送成功而且交易执行成功
测试环境 BaseUrl: https://app-test.web3verse.space/v0
务必在调用 registers 前,对用户所输入的内容进行敏感词过滤;
域名注册目前只支持英文字符和 Emoji;
调用合约Web3RegisterController的rentPriceInFiat
方法计算价格,例如要计算 conflux.web3
域名一年期的价格,rentPriceInFiat("conflux", 3600*24*365)
; 得到的结果有两个字段 base
和 premium
; 实际价格为 (base + premium)/1e6
, 单位为“分”
在注册域名时如果需要(也可以不设置)同时设置正向解析,方法为将commit.data设置合约方法PublicResolver.setAddr(bytes32 node, uint coinType, bytes memory a)
的ABI编码。 参数node
为域名的node
,coinType
为conflux
的CoinType
值503
, a
为正向解析到的地址
node 计算使用库@ensdomains/eth-ens-namehash
的hash
方法。如域名为 conflux.web3
, 则 node
为 require("@ensdomains/eth-ens-namehash").hash("conflux.web3")
ABI计算使用iface.encodeFunctionData
如要生成解析conflux.web3
到地址cfxtest:aany9gz5hnpz9a22dkmkpcr276v932wze6cr821wd4
的data; 示例代码如下:
调用合约Web3RegisterController的makeCommit
方法生成commit hash
commit.data设置为第2步生成的值
调用合约Web3RegisterController的commit
方法提交commit hash
用户支付
调用cns-backend的api POST /v0/registers 注册域名
注意:注册域名请求需要在commit交易执行完成后的10s~10m中之内发送,否则容易导致register出现commitTooNew或commitTooOld的错误
调用cns-backend的api GET /v0/registers/:commit_hash 查询注册状态
域名续费价格计算方式同注册域名相同,如 conflux.web3
域名续费一年期的价格为rentPriceInFiat("conflux", 3600*24*365)
用户支付
调用cns-backend的api POST /v0/renews 续费
调用cns-backend的api GET /v0/renews/:id 查询续费状态
"注册域名"及"域名续费" API 都需要身份认证,使用ApiKey方式,ApiKey 由官方人工发放
使用方法:
在请求头中增加 X-Api-Key
javascript: web3ns, js-conflux-sdk
golang: cfxabigen
java: java-conflux-sdk
交易信息相关字段有
tx_hash 交易哈希
tx_error 交易错误信息
当交易成功时 tx_hash 才有值,交易失败时 tx_error 才有值