ETH智能錢包.NET開發包使用教程

以太坊SmartWallet.Net開發包適用於平臺方高效完成對用戶地址上的Ether/ERC20代幣的歸集工作,無需向用戶地址注入Ether即可完成Ether/ERC20代幣的歸集。官方下載地址:以太坊智能錢包.Net開發包

1、開發包概述

以太坊SmartWallet.Net開發包的主要特點如下:

  • 真正的平臺型非託管錢包,平臺無需管理大量用戶地址的密鑰並且沒有安全性的損失
  • 無需向用戶地址注入Ether即可完成以太幣/ERC20代幣的歸集,流程更簡單,效率更高
  • 支持在單一交易內完成多個用戶地址的歸集

以太坊SmartWallet.Net運行於.NET Framework 4.6.1環境下,主要類以及其關係如下圖所示:

在這裏插入圖片描述

以太坊SmartWallet.Net開發包的主要代碼文件清單見官網說明:http://sc.hubwiz.com/codebag/smartwallet-dotnet/

2、使用示例代碼

在使用示例代碼之前,首先按照實際情況修改Demo/App.config中的以下配置:

  • nodeUrl:以太坊節點RPC URL,例如 http://localhost:8545
  • ownerPrivateKey:主控私鑰,長度爲64,例如 4f3edf...3b1d
  • coldWallet:歸集目標錢包地址,例如 0xFFcf....09f0

其他配置項無需修改,直接使用當前設置即可。

2.1 部署工廠合約

SmartWallet開發包利用工廠合約SmartWalletFacotry管理用戶地址的生成與歸集。因此首先需要部署工廠合約。

示例代碼Demo/DeployContractDemo.cs展示瞭如何部署SmartWalletFactory合約以及一個用於演示的ERC20代幣合約。

運行結果如下:

在這裏插入圖片描述

2.2 生成用戶地址

示例代碼Demo/GenerateUserAddress.cs展示瞭如何利用SmartWallet開發包 爲用戶生成平臺地址。

運行結果如下:

在這裏插入圖片描述

注:生成用戶地址不需要任何手續費。

2.3 用戶充值

示例代碼Demo/FundUserWalletDemo.cs模擬了用戶向平臺地址的充值行爲。

運行結果如下:

在這裏插入圖片描述

2.4 查看用戶地址餘額

示例代碼Demo/GetUserBalanceDemo.cs展示瞭如何查詢用戶地址的Ether/ERC20代幣餘額。

運行結果如下:

在這裏插入圖片描述

2.5 歸集用戶地址餘額

示例代碼Demo/SweepUserWallet.cs展示瞭如何利用歸集用戶地址上的以太幣和ERC20代幣到指定的地址。

運行結果如下:

在這裏插入圖片描述

3、Kit類的使用方法

3.1 實例化Kit

Kit是SmartWallet開發包的入口類,實例化時需要傳入以太坊節點URL和一個賬號私鑰。例如:

//using EthTool;

var nodeUrl = "http://localhost:8545";                             //節點地址
var ownerPrivateKey = "....";                                      //主控私鑰
var factoryAddr = "0xd13e...e0e3";                                 //錢包工廠合約地址 
var kit = new Kit(nodeUrl, ownerPrivateKey, factoryAddr);          //實例化Kit

3.2 生成用戶地址

使用Kit的GetUserWallet()方法爲指定的用戶生成平臺地址,例如:

//using EthTool;

var uid = "u010203";                                               // 用戶的平臺ID
var address = await kit.GetUserWallet(uid);                        // 返回用戶地址
Console.WriteLine($"address => {address}");                        // 顯示用戶地址

3.3 批量歸集用戶地址餘額

使用Kit的SweepUserWallets()方法歸集一組用戶地址的以太幣/ERC20代幣餘額。例如:

//using EthTool;

string[] uids = {"u010203", "u030405", "u050607"};                   // 用戶的平臺ID
string[] tokens = { "0xdac17f958d2ee523a2206206994597c13d831ec7" };  // 要歸集的代幣地址集合
string coldWallet = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1";    // 接收歸集資產的冷錢包地址
var txid = await kit.SweepUserWallets(uids, tokens, coldWallet);     // 返回歸集交易ID
Console.WriteLine($"sweep txid => {txid}");                          // 顯示歸集交易ID

3.4 操作ERC20代幣

使用Kit的Erc20()方法獲取指定地址的ERC20代幣實例,調用標準的ERC20接口即可操作代幣。例如查詢USDT餘額並轉賬:

//using System.Numerics;
//using EthTool;

var alice = '0xb8001c3e...e4a361ec1';
var token = kit.Erc20('0xdac17f958d2ee523a2206206994597c13d831ec7');     // 代幣合約實例
var balance = await token.BalanceOf(alice);                              // 查詢代幣餘額
Console.WriteLine($"balance => {balance}");                              

var txid = await token.Transfer(alice, new BigInteger(100000000));       // 代幣轉賬
Console.WriteLine($"transfer txid => {txid}");

以太坊智能錢包官方下載地址:http://sc.hubwiz.com/codebag/smartwallet-dotnet/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章