我这里使用的是C#,昨天心血来潮写的一个小工具。
技术架构这边用的是Nethereum包
然后节点集群用的是Infura.io,注册就有一个apikey,有调用次数限制,但是日常的开发测试肯定是足够了。
一.申请Infura.io账户,并获得APIKEY
二.绘制UI
我的UI长这个样,自己灵机一动设计的,有点子不好看,但是我主要是专注于功能,UI的话,后期再去优化吧。
三.代码实现
1.连接Infura集群,用于获取以太坊链上数据
/// <summary>
/// 实例化web3对象
/// </summary>
/// <returns></returns>
private static Web3 CreateWeb3()
{
// 以太坊节点的RPC URL,使用Infura.io的URL
string rpcUrl = "https://mainnet.infura.io/v3/你申请的projectid";
Uri u = new Uri(rpcUrl);
Web3 web3 = new Web3(new RpcClient(u));
return web3;
}
这里把v3/后面的ID替换成你申请的ID就好了。
2.安装Nethereum包
我这边用到的包是这些
3. 根据RPC地址查询指定地址
/// <summary>
/// 根据RPC地址查询指定地址
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_cx_Click(object sender, EventArgs e)
{
Web3 web3 = CreateWeb3();
string address_str = "";
if (this.adress.Text == "")
{
MessageBox.Show("请输入以太坊地址");
}
else {
address_str = this.adress.Text;
}
// 要查询的账户地址
string accountAddress = address_str;
// 查询账户余额
var balance = web3.Eth.GetBalance.SendRequestAsync(accountAddress);
UnitConversion tunit = new UnitConversion();
// 将余额转换为Ether
decimal etherBalance = tunit.FromWei(balance.Result.Value);
this.balance.Text = etherBalance + "ETH";
}
这样就能查询出地址余额。
更多功能后续更新,关注后一起来跟我学习从零搭建区块链工具系统!