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"
}
]
}
]
}