资产数字化建模
本教程将开发一个简单的应用来演示资产数字化建模相关的功能,包括:
- 发行资产
- 创建资产
- 转移资产
- 查询资产类别信息
- 查询资产
- 查询账户资产
有关资产数字化建模
的介绍请参考这里。
需求: 开发前请完成准备工作。
开发步骤
初始化 SDK
参考初始化 SDK
定义资产变量
Copy
denom := "security"
schema := `{"type":"object","properties":{"name":{"type":"string"}}}`
id := "e269969972be451aa44ca12bccd88a4c"
uri := "https://metadata.io/id"
metadata := `{"name":"security001"}`
发行资产
调用 NFT
模块的 IssueDenom
方法发行资产。
Copy
baseTx := types.BaseTx{
From: accountName,
Gas: uint64(gas),
Fee: fee,
Memo: "",
Mode: mode,
Password: password,
}
issueDenomReq := nft.IssueDenomRequest(
Denom: denom,
Schema: schema,
}
_, err := client.NFT.IssueNFT(issueDenomReq, baseTx)
查询资产类别信息
根据 Denom
查询资产类别信息。
Copy
res, err := client.NFT.QueryDenom(denom)
创建资产
调用 NFT
模块的 MintNFT
方法创建资产。
Copy
mintNFTReq := nft.MintNFTRequest{
Denom: denom,
TokenID: id,
TokenURI: uri,
TokenData: metadata,
}
_, err := client.NFT.MintNFT(mintNFTReq, baseTx)
查询资产
根据 Denom
和 ID
查询具体的资产。
Copy
res, err := client.NFT.QueryNFT(denom, id)
转移资产
调用 NFT
模块的 TransferNFT
完成资产转移。
Copy
recipient := "iaa18up8anyjpal8rncm8rd4ukp5f7etga795gp33q"
transferNFTReq := nft.TransferNFTRequest(
Recipient: recipient,
Denom: denom,
TokenID: id,
}
_, err := client.NFT.TransferNFT(transferNFTReq, baseTx)
查询账户资产
查询 recipient
的全部资产。
Copy
res, err := client.NFT.QueryOwner(recipient)
完整示例代码
此数字资产应用示例完整代码如下:
Copy
TODO