[C#] 透過 TRON(波場) 交易 USDT (TRC20)

2021-11-23

上篇文章,我們提到了如何透過 C# 在Tron 作一筆 trx 的交易,這一篇主要目的就是交易其它的合約貨幣,現實生活中,妳應該是為了要讓

USDT 的 trc20 鏈的交易,當然 USDT 也只是一個合約,因為 tron 測試鏈對 USDT 測試很完整,所以我們這篇就來說說關於 透過 tron 交易 USDT 




1. 首先講解案例,我們要先拿 測試的USDT ,當然妳可以用妳自己發行的幣,如何發行可以看這篇文章

可以到這網址 領取 測試用 USDT : https://nileex.io/join/getJoinPage,再次強調我是用尼羅測試機

然後看一下錢包,在尼羅上面使用的測試 USDT 測試用的合約是 TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj 記住跟跟正式的不一樣


2. 因為我使用 .netcore 3.1 ,因為原本的套件是用 .net 5 寫的,所以我改過後 套件下載位置:  https://github.com/donma/TronNetCore3.1

您可以下載後自己編譯。


3. 程式碼:

public static void TestContractTransation() { //發射端的私鑰 //reference: https://blog.no2don.com/2021/11/c-trx-eth-nethereum.html var walletPrivateKey = "6984206e9e1af8090a120774fd657d88b278f8bde685ef8532dabe9d61f557bc"; IServiceCollection services = new ServiceCollection(); services.AddTronNet(x => { x.Network = TronNetwork.MainNet; x.Channel = new GrpcChannelOption { Host = "47.252.19.181", Port = 50051 }; x.SolidityChannel = new GrpcChannelOption { Host = "47.252.19.181", Port = 50052 }; x.ApiKey = "apikey"; }); services.AddLogging(); var service = services.BuildServiceProvider(); var walletClient = service.GetService<IWalletClient>(); var account = walletClient.GetAccount(walletPrivateKey); //USDT TOKEN var contractAddress = "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj"; //收的錢包 var to = "TLhTDxNcm9XaSq35mghq6Az35LeHdcn77S"; var amount = 99; //手續費 10 TRX var feeAmount = 10 * 1_000_000L; var contractClientFactory = service.GetService<IContractClientFactory>(); var contractClient = contractClientFactory.CreateClient(ContractProtocol.TRC20); //備註只能用英文 var result = contractClient.TransferAsync(contractAddress, account, to, amount, "DONMA BLOG TEST", feeAmount).Result; Console.WriteLine("-- RESULT --"); Console.WriteLine(JsonConvert.SerializeObject(result)); }


結果:

-- RESULT --

"9828f886eb4c5234606dd8b383657b3d6eac0f3f1ccc8a10858111c74f8b4f53"


tronscan: 

https://nile.tronscan.org/#/transaction/9828f886eb4c5234606dd8b383657b3d6eac0f3f1ccc8a10858111c74f8b4f53


當麻許的碎念筆記 2014 | Donma Hsu Design.