1. 链一财经首页
  2. 资讯

TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

欢迎来到

波场TRON开发者指南第四期

 

在这里

您将找到最全面的指南与文档

助力您完美使用

一、帐户创建

您可以生成脱机密钥对,其中包括TRON不会记录的地址和私钥。 用户地址生成算法如下:

1. 生成密钥对并提取公钥(表示其x,y坐标的64字节字节数组)。

2. 使用sha3-256函数哈希公钥,并提取结果的最后20个字节。

3. 将41添加到字节数组的开头。 初始地址的长度应为21个字节。

4. 使用sha256函数对地址进行两次哈希,并将前4个字节作为验证码。

5. 将验证码添加到初始地址的末尾,并通过base58编码获取base58check格式的地址。

6. 编码的主网地址以T开头,长度为34个字节。

 

请注意:采用的sha3协议是KECCAK-256。查看用于生成用户地址的 Java代码演示。

(https://github.com/tronprotocol/wallet-cli/blob/master/src/main/java/org/tron/demo/ECKeyDemo.java)

 

要使此密钥对成为TRON网络中的帐户,您需要使用TRON网络中已存在的帐户调用以下三个API之一:

● 直接调用Create Account API

● 将TRX转移到新地址

● 将TRC10代币转移到新帐户。 注意:TRC20代币转移无法激活帐户。

在网络确认交易后,您可以查询与TRON网络中的地址匹配的帐户信息。 创建帐户会从创建者处消耗0.1 TRX,或者消耗冻结获得的带宽。

 

二、交易

生成签名交易:安装NPM库 于 :https://www.npmjs.com/package/@tronscan/client处或下载:utils(https://github.com/tronscan/tronscan-node-client/tree/master/src/utils) and the lib (https://github.com/tronscan/tronscan-node-client/tree/master/src/lib)文件夹至你的项目并于本地使用。或者,您可以使用 API签名和广播流 来生成一个已签署的交易。创建交易:将 transactionBuilder 和 加密 导入到您的Javascript文件中。

const CryptoUtils = require(“@tronscan/client/src/utils/crypto”);

const TransactionUtils = require(“@tronscan/client/src/utils/transactionBuilder”);

导入的transactionBuilder文件中的此函数将创建交易对象

 

TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

签署交易

 

TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

上面指定的buildTransferTransaction将返回buildTransferContract的值,该值是创建事务对象的函数。

 

TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

 

签署交易

导入的加密文件中的此函数将对事务对象进行签名。

TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

该功能的参数是:


TRON开发者指南 | 第四期:关于TRON协议—账户创建与交易

成功运行这些功能后,您将拥有一个已签名的事务,可以将其广播到TRON区块链

完整代码示例:

const CryptoUtils = require(“@tronscan/client/src/utils/crypto”);

const TransactionUtils = require(“@tronscan/client/src/utils/transactionBuilder”);

 

function transferContractTx() {

    const privateKey = “b815adfd6ef133d5a878869cb3a2b31f32d4c1481132a71300c3e125be0ab1a1”;

    const token = “TRX”;

    const fromAddress = CryptoUtils.pkToAddress(privateKey);

    const toAddress = “TQ6pM81JDC2GhrUoNYtZGvPc7SvyqcemEu”;

    const amount = 1;

 

    let transaction = TransactionUtils.buildTransferTransaction(token, fromAddress, toAddress, amount);

  

    let signedTransaction = CryptoUtils.signTransaction(privateKey, transaction);

}

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code