Go SDK 开发指南:全面掌握 OKTC 区块链交互

·

本文档详细介绍了 OKTC 区块链的 Go SDK,它提供了一系列功能模块,帮助开发者轻松实现账户管理、资产转移、质押投票、交易所以及链上治理等丰富的区块链操作。无论是新手还是资深开发者,都能通过本指南快速上手并构建强大的去中心化应用。

核心工具函数 (Utils)

工具函数集中于 exchain-go-sdk/utils 包内,为其他高级操作提供基础支持。

账户管理功能

创建随机密钥信息

通过指定的账户名称和密码,生成一套随机的密钥对(私钥、公钥和地址)。这是创建新账户的起点。

输入参数:

通过助记词创建密钥信息

如果你已有一个助记词,可以使用此函数结合名称和密码,恢复或创建对应的密钥信息。

输入参数:

通过私钥字符串创建密钥信息

直接使用现有的私钥字符串,为其设置名称和密码,生成完整的密钥信息对象。

输入参数:

生成随机助记词

生成一组新的、随机的助记词,用于创建或恢复账户。

从助记词生成私钥

提供助记词,即可推导出对应的私钥。

输入参数:

令牌工具函数

解析多重发送信息字符串

将特定格式的多重转账字符串解析为程序可处理的 TransferUnit 数组,为批量转账做准备。

输入参数:

订单工具函数

从交易响应中过滤订单ID

在执行下单交易后,从返回的交易响应日志中提取出生成的订单ID。

输入参数:

认证模块 (Auth)

认证模块 (exchain-go-sdk/module/auth) 主要负责账户相关的查询操作。

查询操作

获取账户信息

根据账户的 bech32 编码地址,查询其在链上的详细状态信息,如账户编号、序列号等。

输入参数:

令牌模块 (Token)

令牌模块 (exchain-go-sdk/module/token) 处理所有关于同质化代币的查询和交易。

查询操作

获取代币信息

根据代币符号或其创建者的地址,查询特定代币的详细信息,如总供应量、精度等。

输入参数:

交易操作

转账代币

向另一个接收者地址转移指定数量的代币。

输入参数:

批量转账

一次性向多个接收者进行转账操作,提升效率。

输入参数:

发行新代币

在区块链上创建一种新的代币。

输入参数:

增发代币

作为代币所有者,增加该代币的总供应量。

输入参数:

销毁代币

通过燃烧自己持有的代币,减少该代币的总供应量。

输入参数:

修改代币信息

修改已发行代币的描述信息或全称。

输入参数:

👉 查看实时链上工具

质押模块 (Staking)

质押模块 (exchain-go-sdk/module/staking) 用于处理验证人、委托和代理相关的所有操作。

查询操作

获取所有验证人信息

查询网络中所有验证人的列表及其状态。

获取特定验证人信息

根据验证人操作地址查询其详细信息。

输入参数:

获取委托者详情信息

查询某个委托者的质押详情,包括其委托的验证人和份额。

输入参数:

交易操作

创建验证人

将账户注册为新的验证人节点,参与网络共识。

输入参数:

编辑验证人描述信息

修改验证人的元数据信息。

输入参数:

注销验证人

将验证人节点从网络中注销,并取回最小自质押金额。

质押代币

将 OKT 代币质押到委托账户,用于参与投票或委托。

输入参数:

取回质押代币

从所有验证人处取回指定数量的质押代币及对应的份额。

输入参数:

增加委托份额

向特定的一个或多个验证人增加委托份额。

输入参数:

注册代理身份

将账户注册为代理,可以接收他人的投票委托。

注销代理身份

取消账户的代理身份。

绑定质押代币到代理

将质押的代币及其投票权委托给一个代理账户。

输入参数:

从代理解绑质押代币

取消对代理账户的委托,收回投票权。

常见问题 (FAQ)

Q: Go SDK 的主要用途是什么?
A: OKTC 的 Go SDK 为开发者提供了一套完整的工具包,用于与 OKTC 区块链进行交互。你可以用它来创建和管理账户、转移和发行资产、进行质押和投票、在去中心化交易所交易以及参与链上治理等。

Q: 如何开始使用 Go SDK 进行开发?
A: 首先需要配置 Go 开发环境,然后通过 go get 命令导入 SDK 库。从 GitHub 仓库获取示例代码是学习的最佳起点。核心是使用正确的模块路径(如 exchain-go-sdk/module/auth)来调用各类函数。

Q: 在进行交易时,accNumseqNum 参数如何获取?
A: accNum(账户编号)和 seqNum(序列号)是防止重放攻击的关键参数。你需要先通过认证模块的查询接口 (Auth) 获取目标账户的当前信息。每次成功发送交易后,该账户的 seqNum 会自动递增。

Q: 如何处理交易中的金额字符串格式?
A: 金额字符串需要同时包含数量和代币符号,格式为 "数量符号",例如 "100.5okt"。请确保代币符号正确,且数量是有效的数字格式。

Q: 批量转账中的 TransferUnit 该如何构造?
A: 你可以直接构建 TransferUnit 结构体数组,也可以利用 SDK 工具函数 utils.ParseTransfersStr 将特定格式的字符串(如 "地址1 金额1\n地址2 金额2")解析为所需的数组结构,简化操作。

Q: 下单后如何确认订单是否成功?
A: 下单交易成功后,返回的 TxResponse 的日志中包含了生成的订单ID。建议使用订单工具函数 orderUtils.FilterOrderIDs 从响应中提取这些ID,然后使用订单查询接口根据订单ID查询其详细状态。