.net Core nethereum infura 发送Erc20

Account account = new Account("密钥");
//infura节点+token
var url = “https://mainnet.infura.io/v3/+ dictionaries.First(e => e.Name == "infuraToken").Value;
Web3 web3 = new Web3(account, url);
//Tether contract  erc合约地址
var contractAddress = dictionaries.Where(e => e.Name == "usdtReceiverAddress").First().Value;
//Nonce必须要维护 相当于交易自增,要么每次发起交易获取 要么本地维护
//1、2、3、4 BigInt自增  如果跳过去了 将不会发送 
//没写 Gas会自动取  
TransferFunction transfer = new TransferFunction()
{
    To = address,
    Value = integer,// 1000000是1
    Nonce= Nonce
};
var transferHandler = web3.Eth.GetContractTransactionHandler<TransferFunction>();
string transactionHashTask = String.Empty;
//本地签名,如果直接使用节点发送,infura会出现不广播的情况
var signTransaction = await transferHandler.SignTransactionAsync(contractAddress, transfer);
//推送到节点获取交易哈希
HttpClient blockNumberClient = new HttpClient();
var url = “https://mainnet.infura.io/v3/+ dictionaries.First(e => e.Name == "infuraToken").Value;
string str = @"{""jsonrpc"":""2.0"" ,""method"":""eth_sendRawTransaction"",""params"":[""0x"+ signTransaction + @"""],""id"":""1"" }";
HttpContent content = new StringContent(str);
//var content = new FormUrlEncodedContent(values);
var response = await blockNumberClient.PostAsync(url, content);
var responseString = await response.Content.ReadAsStringAsync();
JObject obj = JsonConvert.DeserializeObject<JObject>(responseString);
string result = obj["result"].ToString();
return result;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值