跳转至

ESDT 代币集成指南

原文:https://docs.elrond.com/integrators/esdt-tokens-integration-guide

## 简介

集成 ESDT 代币支持可以与原生 EGLD 集成一起完成,因此应该参考 egld 集成指南

唯一的区别是存储 ESDT 代币及其代币标识符和小数位数的内部方式,以及识别和解析 ESDT 交易的不同方法。

ESDT 交易解析

考虑到想要支持 ESDT 代币的平台已经支持 EGLD 转账,本节将提供在现有系统上集成的附加步骤。

如果是,则网络上的所有交易都被解析,因此集成器将检查交易的发送者或接收者是否是感兴趣的地址。除此之外,还可以检查交易是否是成功的 ESDT 转账。如果是,则可以进一步解析所传送的代币、金额和接收者。

必须遵循以下步骤:

  • 检查交易是否为 ESDT 转账(数据字段格式为ESDTTransfer@<tokenID hexadecimal>@<amount hexadecimal>)。更多详情此处
  • 解析日志和事件中的代币传输详细信息。更多详情此处

举例

假设我们正在观察这些地址:

  • erd1zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3z92425g3zygs3mthts
  • erd1venxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenq5ezmpv

我们支持以下代币:

  • TKN-99hh44(十六进制编码:544b4e2d393968683434)
  • TKN2-77hh33(十六进制编码:544b4e322d373768683333)

因此,我们将寻找具有以下结构的交易:

TokenTransferTransaction {
 Sender: erd1....
 Receiver: erd1zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspavcaj OR erd1venxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenxvenq5ezmpv
 Value: 0 
 GasLimit: 60000000
 Data: "ESDTTransfer" +
          "@<token identifier hex>" + // 544b4e2d393968683434 OR 544b4e322d373768683333
          "@<amount hex>"
} 

关于参数如何编码的更多细节,请点击这里

不遵循这种结构的任何其他交易都必须被省略。

当我们发现这样一个交易时,我们将获取该交易的日志,如这里描述的。日志将为我们提供关于接收者、代币和要转移的金额的信息。如果日志在那里,我们确信传输是成功的,我们可以开始处理提取的数据。

发送 ESDT 代币

向给定接收者发送 ESDT 代币可以通过准备并向网络广播遵循此处描述的格式的交易来完成。

此外,许多 SDK 都支持构建代币转移交易。几个例子是:

余额检查

有时,或者出于安全原因,在执行交易之前,集成者会想要检查一些地址的代币余额。这可以通过获取地址代币平衡端点来执行。

获取代币属性

每个代币都有一些属性,如名称、标记、代币标识符或小数位数。这些属性可以通过这里描述的 API 调用获取。

有用的工具

  • ESDT 的文件可以在这里找到。
  • ESDT API 文件可以在这里找到
  • erdjs 助手函数可以在这里找到
  • erdjs 代币转移交易生成器可在这里找到。
  • erdjava helper 函数可以在这里找到
  • erd Java token transfer transactions builder 可以在这里找到。
  • @ elrond network/transaction-decoder


回到顶部