主页 > imtoken安卓版下载安装 > 查询usdt Tron区块链Go语言开发包【TronTool.Go】

查询usdt Tron区块链Go语言开发包【TronTool.Go】

imtoken安卓版下载安装 2023-01-17 11:54:02

TronTool.Go开发包适用于为Go应用快速添加对Tron/USDT-TRC20数字资产的支持,即支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级服务部署场景。 官方下载地址:[TronTool for Golang]()。 ## 1. 开发包概述 TronTool.Go开发包主要包含以下功能: - 支持Tron区块链原生Trx交易 - 支持Tron智能合约和TRC20代币,如USDT-TRC20等 - 支持离线签名交易避免泄露 私钥 - 完整的Tron节点API封装,支持全节点、Solidity节点、事件节点提供的API - 支持使用自有节点或第三方节点,如官方公共节点TronTool.Go Tron提供的开发包使用**Go 1.13 **开发,当前版本1.0.0,主要数据类型及关系如下图所示: size_16,color_FFFFFF,t_70) TronTool.Go 主开发包 代码文件列表如下: 代码文件说明

trontool/tron/address.go

Tron地址编解码方法

trontool/tron/contract.go

Tron合约封装类

trontool/tron/credential.go

波场身份类别

trontool/tron/nodeclient.go

Tron 节点客户端类

trontool/tron/trc20.go

TRC20合约封装类

usdt什么意思_查询usdt_tether usdt

trontool/tron/tronapi.go

Tron 多节点客户端

trontool/tron/tronkit.go

TronKit入门类

trontool/tron/types.go

杂类

trontool/api/account.go

账号相关API数据结构

trontool/api/apiresult.go

通用API结构

查询usdt_usdt什么意思_tether usdt

trontool/api/contract.go

合约相关API数据结构

trontool/api/contractevent.go

合约事件相关API数据结构

trontool/api/contracttransaction.go

合约交易相关API数据结构

trontool/api/transaction.go

TRX交易相关API数据结构

trontool/demo/地址demo.go

波场地址演示

查询usdt_usdt什么意思_tether usdt

trontool/demo/trc20demo.go

TRC20查询和交易演示

trontool/演示/trc20eventdemo.go

TRC20事件查询演示

trontool/演示/trxdemo.go

Trx余额查询及转账交易demo

trontool/go.mod

Go模块管理文件

trontool/go.sum

Go模块管理文件

查询usdt_usdt什么意思_tether usdt

演示/

Demo工程代码目录

演示/build.gradle

演示项目Gradle配置文件

演示/src/main/java/demo/NewAddressDemo.java

创建新的 Tron 区块链地址的演示代码

演示/src/main/java/demo/TrxDemo.java

演示代码、Trx转账交易及余额查询

演示/src/main/java/demo/Trc20Demo.java

演示代码,Trc20代币转账,余额查询,事件监听等。

usdt什么意思_tether usdt_查询usdt

构建.gradle

根项目配置文件

设置.gradle

根项目配置文件

## 2.使用示例代码进入`trontool`目录运行示例代码。 ### 2.1 创建新地址 示例代码 addressdemo.go 演示了如何创建新地址,或导入现有私钥。 执行以下命令运行示例代码: ```go run demo/addressdemo.go``` 执行结果如下: ![Insert picture description here]()### 2.2 TRX transfer and balance query 示例代码`trxdemo.go` 演示如何转入TRX并查询指定Tron账户的TRX余额。 执行以下命令运行示例代码:```go run demo/trxdemo.go```执行结果如下: ![此处插入图片描述]()### 2.3 Trc20代币转账及余额查询示例代码`trc20demo。 go`演示了如何查询指定TRC20代币的相关信息并进行转账。 执行以下命令运行示例代码:```go run demo/trc20demo.go```执行结果如下: #t#7 2.4 TRC20代币事件查询示例代码`trc20eventdemo.go`演示了如何查询指定TRC20代币的事件。

执行以下命令运行示例代码:```go run demo/trc20eventdemo.go```执行结果如下: ![Insert picture description here]()## 3.使用TronKit TronKit是入口点的开发包。 使用该类可以快速实现以下功能: - Trx转账及余额查询 - Trc20代币转账、授权、余额查询等 ### 3.1 实例化TronKit TronKit实例化需要传入`TronApi`对象和`Credential`对象,这两个参数分别封装了波场节点提供的API,以及交易签名的用户身份信息。 例如,下面的代码创建一个连接到Tron主链的TronKit实例,并使用指定的私钥对交易进行签名: ```//import "trontool/tron"credential, _ := tron.HexKeyToCredential("8D914 …71EB5F ")//导入私钥TronKit kit = tron.NewTronKit( Tron.MainNetTronApi(),//访问主链凭证,//使用指定身份)```### 3.2 TRX转账及余额查询使用TronKit`sendTrx()`方法转账Trx,例如发送1000 TRX:```//import "fmt"//import "trontool/tron"to := "TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx"//转账目标地址var amount int64 = 1000000000//转账金额,单位:SUNret,_ := kit.SendTrx(to,amount)//提交Trx转账交易 fmt.Printf("tx id: %s\n", ret.TxId)//显示交易IDfmt.Printf(" tx state: %b\n", ret.State)//显示交易提交结果```注意:数量单位需要转换为SUN,1 TRX = 1000000 SUN。

使用`getTrxBalance()`方法查询指定地址的TRX余额,例如:```addr := "TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx"//要查询的Tron地址余额:= kit.GetTrxBlanace(addr)//查询Trx balance, unit: SUNfmt .Printf("balance: %d\n",balance)//显示余额```### 3.3 TRC20代币转账使用TronKit对象的`Trc20()`方法获取指定TRC20代币合约实例,然后调用合约的`transfer()`方法转入TRC20代币。 例如,以下代码在指定地址之间传输最小单位 1,315,300 个 TRC20-USDT 代币,即 1.3153 USDT: /转账目标地址 value := big.NewInt(1315300)//转账Trc20代币数量 contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"//USDT代币地址 usdt, _ := kit.Trc20(contractAddress)//创建Trc20代币合约实例 ret, _ := usdt.Transfer(to, value)//转账Trc20代币 fmt.Printf("tx id: %s\n",ret.txId)//显示转账交易IDfmt.Printf("tx state: %b\ n", ret.state)//显示转账交易结果```### 3.4 TRC20代币余额查询使用TronKit对象的`Trc20()`方法获取指定的TRC20代币合约实例,然后调用`合约的BalanceOf()`方法查询指定地址的TRC20代币余额。

例如,以下代码查询指定地址的USDT代币余额:```//import "trontool/tron"//impot "math/big"usdt,_ := kit.Trc20("TR7NhqjeK…zgjLj6t") // 创建USDT-TRC20代币实例balance,_ := usdt.BalanceOf("TDN3Q...8qwqx")//查询Trc20代币余额 fmt.Printf("balance: %s\n",balance)//显示代币balance```### 3.5 TRC20代币事件查询使用TronKit对象的`Trc20()`方法获取指定的TRC20代币合约实例,然后调用合约的`GetEvents()`方法查询指定的合约触发事件。 例如查询USDT代币合约最近10秒的事件: ```//import "trontool/tron" //import "time" //import "fmt"usdt,_ := kit.Trc20(" TR7Nhqje…zgjLj6t") //创建Trc20代币合约实例 since := time.Now().Unix()*1000 - 10000//计算并查看时间点事件,_ := usdt.GetEvents(since)//提取contract events for _,event := range events { fmt.Printf("事件​​名称: %s\n",e.EventName)//显示事件名称 fmt.Printf("区块高度: %d\n",e. BlockNumber)//显示事件触发区块高度}```## 4. 开发包中表示Tron区块链的身份和地址,`Credential`用于表示Tron区块链中的一个用户身份。 它和地址的区别在于,Credential包含用户的私钥信息,可以用来签署交易查询usdt,而地址是可以公开的信息。

### 4.1 创建新账户身份使用tron包的`NewCredential()`方法创建新账户。 例如,以下代码创建一个新帐户并显示其私钥、公钥和地址: ```//import "fmt"//import "trontool/tron" c,_ := tron.NewCredential()// Create new identity fmt.Printf("private key: %s\n",c.PrivateKeyHex());//显示私钥 fmt.Printf("public key: %s\n",c.PublicKeyHex()); //显示公钥 fmt.Printf("address: %s\n",c.AddressBase58());//显示地址```需要指出的是,对于任何新创建的帐户,Tron 都需要 0.1 注入进去TRX激活后才能使用。 详情请参考[如何创建账户](#how-to-create-an-account)。 ### 4.2 使用现有私钥创建身份您可以使用包方法`HexKeyToCredential()` 导入现有私钥以实例化Credential。 例如,以下代码导入现有私钥并​​显示地址:```//Import "fmt"//import "trontool/tron"c,_ := tron.HexKeyToCredential("7889...023a") //Import Existing private key fmt.Printf("address: %s\n",c.AddressBase58())//显示对应地址```### 4.3 Tron地址在Tron区块链中有两种表示方式,该地址有两种表示:十六进制和base58表示查询usdt,例如下面是同一个地址的两种表示: - base58:TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx - 十六进制:412539EF4F3EB733C105A957EEBB20FD60AD8C9A43tron包提供了相应的编码和解码方法,可以在两种格式之间进行转换.

例如:```//import "fmt"//import "trontool/tron" a1,_ := tron.DecodeBase58Address("TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx"); fmt.Println(a1)//Output: 412539EF4F3EB733C105A957EEBB20F6:= tron.EncodeHexAddress("412539EF4F3EB733C105A957EEBB20FD60AD8C9A43")fmt.Println(a2)//Output: TDN3QY85Jft3RwgyatjRNmrwRmwkn8qwqx```## 5. Use TronApi to access various nodes of Tron using `TronApi ` API 实例。 TronApi聚合了各种Tron节点提供的API,例如tron全节点、solidity节点、事件服务节点的API。 ### 5.1 TronApi实例化 TronApi实例化时,可以为不同类型的Tron节点指定不同的连接URL,例如:```//import "trontool/tron" tronApi := tron.NewTronApi( "https://api .trongrid.io",//全节点URL "https://api.trongrid.io",//合约节点URL "https://api.trongrid.io",//事件节点URL)```如果你使用的是Tron官方提供的TronGrid节点,可以直接使用tron包提供的两种方法访问主链和shasta测试链:-`MainNetTronApi()`:访问主链-`TestNetTronApi () `: 访问shasta测试链 例如下面的代码是等价的: ```urlM := "https://api.trongrid.io"tronApiM1 := tron.NewTronApi(urlM, urlM, urlM)tronApiM2 := Tron.MainNetTronApi()//等价于上面的urlT := "https://api.shasta.trongrid.io" tronApiT1 = tron.NewTronApi(urlT, urlT, urlT) tronApiT2 = tron.TestNetTronApi()//同上 等价```### 5.2 接入多节点APITronAp i 封装了波场官方各个节点提供的API的子集,提供了对访问波场区块链常用API的封装。

例如查询指定账户的TRX余额,可以使用Tron节点的`getaccount`接口,对应TronApi中的`getAccount()`方法:```//import "fmt"// import "trontool/tron"account, _ := tronApi.getAccount("TEgM5CPeqow...7vcBgVkD4tP") //查询账户信息 fmt.Printf("balance: %d\n", account.Balance)//显示账户余额```### 5.3 扩展TronAPITronApi 依赖于NodeClient 来访问Tron 的节点API。 因此,如果您需要扩展TronApi以支持更多的Tron节点API,您可以参考TronApi已有的代码,结合TRON提供的节点API的[技术资料]()来实现。 ---Tron区块链Go开发包官方下载: