trx交易平台官网,交易所的trx怎么充值到tp钱包

  

  1.Filecoin概述。Go开发套件。Filecoin.Go开发包适用于快速提升Filecoin/FIL数字资产对Go语言开发的应用的支持能力,即支持使用自有Filecoin区块链节点的应用场景和基于第三方公共节点的轻量级部署场景。   

  

     

  

  Filecoin。Go开发套件主要包含以下功能:   

  

  支持离线生成Filecoin地址,方便管理和维护,支持Filecoin消息离线签名,有助于更好地保护私钥和自动估计Filecoin消息的GAS参数,避免手动调整,支持使用自有节点或第三方节点,例如使用Infura提供的完善的公共节点Filecoin节点API包,支持所有RPC API调用。比如说;Filecoin的开发包。去;例如查询地址的历史信息;由Go 1.15;开发,主要数据结构和关系如下图所示:   

  

     

  

  Filecoin的当前版本。Go开发套件为1.0.0,主要代码文件列表如下:   

  

  代码文件   

  

  解释   

  

  filecoin/kit.go   

  

  Filecoin。Go开发包入口类   

  

  filecoin/client.go   

  

  硬币节点的RPC客户端类   

  

  filecoin/credential.go   

  

  硬币区块链身份证书类   

  

  filecoin/address.go   

  

  硬币节点地址类   

  

  filecoin/monitor.go   

  

  硬币到达监控类   

  

  filecoin/types.go   

  

  硬币类型定义   

  

  演示/新地址演示. go   

  

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

  

  演示/恢复-地址-演示. go   

  

  演示代码,使用现有的私钥重新生成Filecoin地址。   

  

  演示/fil-传输-演示. go   

  

  演示代码、文件传输和余额查询   

  

  演示/客户端-演示. go   

  

  演示RPC API调用,如代码、链头信息查询等   

  

  演示/监控-演示.开始   

  

  演示监控指定地址的到达消息的代码。   

  

  go.mod   

  

  Go模块管理文件   

  

  2.使用示例代码2.1创建一个新地址,在终端输入演示代码目录,并执行以下命令:   

  

  ~ $ CD ~/file coin . go/demo ~/file coin . go/demo $ go运行new-address-demo.go执行结果如下:   

  

     

  

  2.2在终端使用私钥恢复地址并进入演示代码目录,执行以下命令:   

  

  ~ $ CD ~/file coin . go/demo ~/file coin . go/demo $ go运行restore-address-demo.go执行结果如下:   

  

     

  

  2.3 FIL转账和余额查询在终端进入演示代码目录,执行以下命令:   

  

  ~ $ CD ~/file coin . go/demo ~/file coin . go/demo $ go运行fil-transfer-demo.go执行结果如下:   

  

     

  

  2.4 RPC客户端调用示例在终端进入演示代码目录,执行以下命令:   

  

  ~ $ CD ~/file coin . go/demo ~/file coin . go/demo $ gorunclient-demo . go执行结果如下:   

  

     

  

  2.5到达监控演示在终端进入演示代码目录,并执行以下命令:   

  

  ~ $ CD ~/filecoin . go/demo ~/filecoin . g   

o/demo$ go run monitor-demo.go启动程序后,如果监听的地址有到账消息,将在终端显示消息内容:

  

  

3、使用Filecoin.GoKit是开发包的入口,使用这个类可以快速实现FIL转账、交易确认等待和余额查询等功能。

  

3.1 实例化KitKit实例化需要传入Client对象和Credential对象,这两个 参数分别封装了Filecoin节点提供的API,以及进行交易签名的用户身份信息。

  

例如,下面的代码创建一个接入Infura的Filecoin节点的Kit实例,并使用 指定的私钥进行交易签名:

  

//import "fmt"//import "net/http"//import "filtool/filecoin"url := "https://project_id:project_secret@filecoin.infura.io" // 使用你的project id/secret替换client, _ := filecoin.NewClient(url, http.Header{}) // 创建RPC Client对象credential, _ := filecoin.RestoreCredential("01a7...15f1") // 使用你的私钥替换kit := filecoin.NewKit(client, credential) // 创建FilKit实例在创建FilKit实例时指定的Credential对象,将作为默认身份凭证执行 后续的转账交易等操作。

  

Client / RPC客户端如果使用的Filecoin节点无需身份认证,那么在创建 RpcClient时只需传入RPC URL和一个空的http.Header对象。例如使用本机的filecoin节点:

  

//import "filtool/filecoin"client, _ := filecoin.NewClient("http://127.0.0.1/rpc/v0", http.Header{}) // 连接本机节点如果使用的Filecoin节点启用了授权TOKEN的认证机制,那么在创建RpcClient 时需要传入授权TOKEN,例如:

  

//import "filtool/filecoin"authToken := "Ynl0ZSBhcnJheQ==" // 节点分配的授权TOKENheaders := http.Header{"Authorization": <>string{"Bearer " + authToken}} // 请求需要携带的Http 头数据client, _ := new RpcClient("http://234.10.58.147/rpc/v0", headers)Credential / 身份凭证如果已有的私钥是16进制字符串形式,那么使用filecoin的方法RestoreCredential()来创建 实例对象,例如:

  

//import "filtool/filecoin"credential, _ := filecoin.RestoreCredentail( "01a70dc929dfabd71d22707565452f2495537aa688ecb396f44717dd410315f1" // 16进制字符串格式的私钥)3.2 FIL转账交易使用Kit的Transfer()方法进行FIL转账,例如发送 1.23 FIL

  

//import "fmt"//import "filtool/filecoin"to := "f1saxri7cpyz2cm767q77u3mqumrggljrmi5iqdty" // 转账目标地址amount := "1230000000000000000" // 最小单位的转账数量,1 FIL = 10^18 UNITcid, _ := kit.Transfer(to, amount) // 提交Trx转账交易fmt.Printf("txid => %+v\n", cid) // 显示交易ID注意

  

转账数量应转换为最小单位计量的整数字符串,1 FIL = 10^18 最小单位。支持各种类型的接收地址,例如:f01729:ID地址:f17uoq6tp427uzv7fztkbsnn64iwotfrristwpryy:SECP256K1地址f24vg6ut43yw2h2jqydgbg2xq7x6f4kub3bg6as6i:ACTOR地址f3q22fijmmlckhl56rn5nkyamkph3mcfu5ed6dheq53:BLS地址3.3 等待Filecoin消息确认使用FilKit的WaitForReceipt()方法等待交易确认,例如:

  

//import "fmt"//import "filtool/filecoin"receipt, _ := kit.WaitForReceipt(cid, 60) // 等待消息收据60秒fmt.Printf("receipt => %+v\n", receipt) // 显示消息手续,ExitCode为0表示成功3.4 指定地址的FIL余额查询使用GetBalance()方法查询指定地址的FIL余额,例如:

  

//import "fmt"//import "filtool/filecoin"addr := 'f1saxri7cpyz2cm767q77u3mqumrggljrmi5iqdty' // 要查询的Filecoin地址balance, _ := kit.GetBlanace(addr) // 查询FIL余额,最小单位表示fmt.Printf("balance => %+v\n", balance) // 显示FIL余额注意 :返回的余额为最小单位表示,1 FIL = 10^18最小单位。

  

3.5 使用RPC客户端Filecoin节点透过其RPC API接口提供了很多有用的功能,使用Filecoin.Go 开发包的RpcClient类可以访问所有的Filecoin RPC API。 例如查询当前的链头TipSet,对应的RPC API为Filecoin.ChainHead, 使用Client对象的调用代码如下:

  

//import "fmt"//import "context"//import "filtool/filecoin"client, _ := filecoin.NewClient("http://127.0.0.1:1234/rpc/v0", http.Header{}) // 创建Client对象tipset, _ := client.ChainHead(context.Background()) // 调用Filecoin.ChainHead APIfmt.Printf("height => %d\n", tipset.Height()) // 显示当前高度3.6 使用MonitorMonitor类用来监视指定地址的到账消息。使用Monitor的步骤为:

  

创建Monitor实例使用WatchAddress()或WatchAddressSinceNow()添加要监听到账的地址使用AddListener()添加到账通知回调函数,当所监听的地址发生到账消息后,Monitor将触发回调函数使用Run()启动Monitor持续运行可以使用Kit对象的GetMonitor()方法得到一个Monitor实例,也可以单独初始化,例如:

  

//import "filtool/filecoin"client, _ := filecoin.NewClient("http://127.0.0.1:1234/rpc/v0", http.Header{}) // 创建Client对象monitor := filecoin.NewMonitor(client) // 创建Monitor对象使用Monitor的WatchAddressSinceNow()方法添加一个从当前高度开始监视到账消息的地址,例如:

  

monitor.WatchAddressSinceNow("f14jzpfkx6hdiq6wf72lbiclfysz3mj6z4sdvunti") // 从当前高度开始监视也可以指定监视的起始高度,例如从高度10000开始监视:

  

monitor.WatchAddress("f14jzpfkx6hdiq6wf72lbiclfysz3mj6z4sdvunti", 10000) // 从高度10000开始监视Monitor使用回调函数通知应用有到账消息。使用Monitor的AddListener()方法添加一个 到账消息回调函数,例如下面代码添加一个回调函数,它只是简单的输出到账消息:

  

//import "fmt"//import "fitool/filecoin"monitor.AddListener(func(comboMsgs <>*filecoin.ComboMsg){ for _, comboMsg := range comboMsgs { fmt.Printf("msg => %+v\n", comboMsg) }})一旦设置好要监听的地址并添加了通知回调,就可以调用Run()方法启动监听了,例如:

  

monitor.Run()Filecoin.Go开发包下载地址:http://sc.hubwiz.com/codebag/filecoin-go-lib/

相关文章