/
NameService v0.1 接口文档

NameService v0.1 接口文档

NameService 采用 Move 合约语言分模块开发,支持灵活的扩展功能

  • v0.1 版本将提供 NameService 无限制的域名注册、 STC 地址解析、灵魂绑定NFT、反向解析功能

  • v0.1 版本将在Starcoin Proxima Test Net 上线测试,测试过程中接口及合约地址可能有变化,因为 Proxima Test Net 特性,可能会有 Proxima 网络重置情况发生,您的 Proxima Test Net NameService 可能会丢

合约提供的接口

1 - 注册域名(write):

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::register

public (script) fun register(sender:signer, name: vector<u8>,registration_duration: u64)

参数说明:
  • name: vector<u8>

域名:采用 UTF-8 编码的字符串,域名以 “.stc” 结尾,仅支持一级域名,UTF-8 字符长度应该在 4~19 位,域名在编码前需经过idna-uts46-hx 处理

示例"starcoin.stc" "test.stc"

错误示例"中文域名.stc"

  • registration_duration: u64

注册时长:以秒为单位,最小注册时长需要大于 180 天 (60 * 60 * 24 * 180 = 15,552,000 sec

2 - 设置反向解析(灵魂绑定模式 NFT)(write)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::use_domain

public (script) fun use_domain<ROOT: store>(sender:signer, id: u64)

泛型说明:
  • ROOT: store

确定顶级域名:根据需要绑定的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要绑定 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要绑定 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • id: u64

NFT id : 需要绑定的 NameService NFT 的 id

示例:需要绑定的 NameService NFT 的 id 为 1,参数传入 1

3 - 取消反向解析(取消灵魂绑定模式 NFT)(write)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::unuse_domain

public (script) fun unuse_domain<ROOT: store>(sender:signer)

泛型说明:
  • ROOT: store

确定顶级域名:根据需要取消的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要取消 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要取消 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

4 - 修改解析地址(write)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::change_NFTGallery_stc_address

public (script)fun change_NFTGallery_stc_address<ROOT: store>(sender:signer,id:u64,addr:address)

泛型说明:
  • ROOT: store

确定顶级域名:根据需要操作的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要操作 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要操作 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • id: u64

NFT id : 需要操作的 NameService NFT 的 id

示例:需要操作的 NameService NFT 的 id 为 1,参数传入 1

  • addr:address

STC 地址:需要解析到的地址

示例:希望解析到 0xda459d2aa5d58b262038c715a64f6ea5,填写 0xda459d2aa5d58b262038c715a64f6ea5

5 - 获取反向解析域名(read)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::change_NFTGallery_stc_address

public fun resolve_domain_name<ROOT: store>(addr:address):vector<u8>

泛型说明:
  • ROOT: store

确定顶级域名:根据需要解析的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要解析 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要解析 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • addr:address

STC 地址:需要解析的地址

示例:希望解析 0xda459d2aa5d58b262038c715a64f6ea5 的主域名,填写 0xda459d2aa5d58b262038c715a64f6ea5

返回值:
  • vector<u8>

反向解析的域名:返回该 地址解析到的域名

6 - 域名解析地址(read)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::resolve_4_name

public fun resolve_4_name<ROOT: store>(name:vector<u8>):address

泛型说明:
  • ROOT: store

确定顶级域名:根据需要解析的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要解析 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要解析 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • name: vector<u8>

域名:采用 UTF-8 编码的字符串,域名以 “.stc” 结尾,仅支持一级域名,UTF-8 字符长度应该在 4~19 位,域名在编码前需经过idna-uts46-hx 处理

示例"starcoin.stc" "test.stc"

错误示例"中文域名.stc"

返回值:
  • address

解析地址:返回该 域名解析的 STC 地址

7 - 获得域名的过期时间(read)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::get_domain_expiration_time

public fun get_domain_expiration_time<ROOT: store>(name:vector<u8>):u64

泛型说明:
  • ROOT: store

确定顶级域名:根据需要解析的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要解析 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要解析 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • name: vector<u8>

域名:采用 UTF-8 编码的字符串,域名以 “.stc” 结尾,仅支持一级域名,UTF-8 字符长度应该在 4~19 位,域名在编码前需经过idna-uts46-hx 处理

示例"starcoin.stc" "test.stc"

错误示例"中文域名.stc"

返回值:
  • u64

过期时间:返回该 域名过期时间

8 - 获得全部的 NameService NFT info(read)!暂无

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::get_all_domain_info

public fun get_all_domain_info<ROOT: store>(addr: address):vector<NFT::NFTInfo<SNSMetaData<ROOT>>>

泛型说明:
  • ROOT: store

确定顶级域名:根据需要获得的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要获得 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要获得 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • addr:address

STC 地址:需要获得的地址

示例:希望获得 0xda459d2aa5d58b262038c715a64f6ea5 的全部 域名信息,填写 0xda459d2aa5d58b262038c715a64f6ea5

返回值:
  • vector<NFT::NFTInfo<SNSMetaData<ROOT>>>

Info 数组:返回该地址全部的 NameSerivce NFT Info

9 - 获得域名注册信息以及解析地址(read)(之后可能持续会增加内部结构)

0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::get_domain_info

public fun get_domain_info<ROOT: store>(name:vector<u8>):Option::Option<DomainInfo>

泛型说明:
  • ROOT: store

确定顶级域名:根据需要获得的 NameSerivce NFT 确定顶级域名,并传入 0xda459d2aa5d58b262038c715a64f6ea5::Root 模块下的 Struct

示例:需要获得 NFT 顶级域名为 “stc“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

错误示例:需要获得 NFT 顶级域名为 “move“,泛型传入

0xda459d2aa5d58b262038c715a64f6ea5::Root::STC

参数说明:
  • name: vector<u8>

域名:采用 UTF-8 编码的字符串,域名以 “.stc” 结尾,仅支持一级域名,UTF-8 字符长度应该在 4~19 位,域名在编码前需经过idna-uts46-hx 处理

示例"starcoin.stc" "test.stc"

错误示例"中文域名.stc"

返回值:
  • Option::Option<DomainInfo>

struct DomainInfo has copy,drop{ registryDetails : Registrar::RegistryDetails, stc_address : address }

具体信息:返回该 域名注册信息

示例:

starcoin% dev call --function 0xda459d2aa5d58b262038c715a64f6ea5::StarcoinNameServiceScript::get_domain_info -t 0xda459d2aa5d58b262038c715a64f6ea5::Root::STC --arg b"iamtimhhh.stc" { "ok": [ { "vec": [ { "registryDetails": { "expiration_time": 1687462137, "id": 4 }, "stc_address": "0x7b61790fe2545ee8792d682699b1508a" } ] } ] }
Add label

Related content

Move 全生态课程
Move 全生态课程
Read with this
StarcoinNameService 设计原型
StarcoinNameService 设计原型
More like this
starcoin 异步模型分析
starcoin 异步模型分析
More like this
starcoin-framework v12讨论
starcoin-framework v12讨论
More like this
starcoin代码概要
starcoin代码概要
More like this
DAO 执行提案过程
DAO 执行提案过程
More like this