以太坊钱包导入(以太坊智能钱包PHP开发包,无需gas即可归集ERC20)

  以太坊钱包导入(以太坊智能钱包PHP开发包,无需gas即可归集ERC20)

1、开发包概述

SmartWallet开发包适用于平台方高效完成对用户地址上 的Ether/ERC20代币的归集工作,无需向用户地址注入Ether即可完成 Ether/ERC20代币的归集。SmartWallet开发包官方下载地址:http!//sc。hubwiz。com/codebag/smartwallet-php/

  

SmartWallet开发包的主要特点如下:

  

  • 真正的平台型非托管钱包,平台无需管理大量用户地址的密钥并且没有安全性的损失
  • 无需向用户地址注入Ether即可完成以太币/ERC20代币的归集,流程更简单,效率更高
  • 支持在单一交易内完成多个用户地址的归集

SmartWallet运行于PHP 7。1+环境下,主要类以及其关系如下图所示:

  

SmartWallet的主要代码文件清单见官网http!//sc。hubwiz。com/codebag/smartwallet-php/

  

2、使用示例代码

2。1 部署工厂合约

SmartWallet开发包利用工厂合约SmartWalletFacotry管理用户 地址的生成与归集。因此首先需要部署工厂合约。

  

示例代码demo/deploy-contracts。php展示了如何部署 SmartWalletFactory合约以及一个用于演示的ERC20代币合约。 执行如下命令运行示例代码:

  

php deploy-contracts。php

运行结果如下:

  

2。2 生成用户地址

示例代码demo/generate-user-address。php展示了如何利用SmartWallet开发包 为用户生成平台地址。执行如下命令运行示例代码:

  

php generate-user-wallet。php

运行结果如下:

  

注:生成用户地址不需要任何手续费。

  

2。3 用户充值

示例代码demo/fund-user-address。php模拟了用户向平台地址的充值行为。 执行如下命令运行示例代码:

  

php fund-user-wallet。php

运行结果如下:

  

2。4 查看用户地址余额

示例代码demo/get-user-balance。php展示了如何查询用户地址的 Ether/ERC20代币余额。 执行如下命令运行示例代码:

  

php get-user-balance。php

运行结果如下:

  

2。5 归集用户地址余额

示例代码demo/sweep-user-address。php展示了如何利用归集用户地址 上的以太币和ERC20代币到指定的地址。 执行如下命令运行示例代码:

  

php sweep-user-wallet。php

运行结果如下:

  

3、Credential类的使用方法

SmartWallet开发包使用Credential对象来表示一个特定的以太坊账号, 该对象包含了账号的密钥和地址信息。

  

3。1 实例化Credential

使用静态方法new()创建一个新的以太坊账户,例如:

  

//use ethtoolCredential;$credential = Credential!!new(); // 创建一个新的账号

也可以使用静态方法fromKey()导入已有的私钥来实例化Credential对象,例如:

  

$credential = Credential!!fromKey( ';0x4f3edf983ac6。。。。。。b113bce9c46'; // 要导入的私钥);

3。2 查看账户的密钥和地址

Credential类提供了如下方法获取当前账户的私钥、公钥和地址:

  

  • getPrivateKey():返回私钥16进制字符串
  • getPublicKey():返回公钥16进制字符串
  • getAddress():返回地址16进制字符串

例如,下面的代码创建一个新的以太坊账户并显示其地址:

  

$credential = Credential!!new();echo ';address =>; '; 。 $credential。getAddress() 。 PHP_EOL; // 显示账号地址

3、SmartWalletKit类的使用方法

3。1 实例化SmartWalletKit

SmartWalletKit是SmartWallet开发包的入口类,实例化时需要 传入以太坊节点URL和一个Credential对象。例如:

  

//use ethtoolCredential;//use ethtoolSmartWalletKit;$kit = new SmartWalletKit( ';http!//localhost!8545';, // 以太坊节点URL Credential!!fromKey(';0x。。。。。。';) // 以太坊账号对象);

3。2 生成用户地址

使用SmartWalletKit的getUserWallet()方法为指定的用户生成 平台地址,例如:

  

$userId = ';u010203';; // 用户的平台ID$userAddress = $kit->;generateUserWallet($userId); // 返回用户地址echo ';user address =>; '; 。 $userWallet 。 PHP_EOL; // 显示用户地址

3。3 归集单个用户地址余额

使用SmartWalletKit的sweepUserWallet()方法归集指定用户地址 的以太币/ERC20代币余额。例如:

  

$userId = ';u010203';; // 用户的平台ID$txid = $kit->;sweepUserWallet($userId); // 返回归集交易ID echo ';sweep txid =>; '; 。 $txid 。 PHP_EOL; // 显示归集交易ID

3。4 批量归集用户地址余额

使用SmartWalletKit的sweepUserWallets()方法归集一组用户地址 的以太币/ERC20代币余额。例如:

  

  

$uids = [';u010203';,比特币价格 ';u030405';, ';u050607';]; // 用户的平台ID$txid = $kit->;sweepUserWallets($uids); // 返回归集交易IDecho ';sweep txid =>; '; 。 $txid 。 PHP_EOL; // 显示归集交易ID

3。5 操作ERC20代币

使用SmartWalletKit的erc20()方法获取指定地址的ERC20代币实例, 调用标准的ERC20接口即可操作代币。例如查询USDT余额并转账:

  

$somebody = ';0xb8001c3e。。。e4a361ec1';;$token = $kit->;erc20(';0xdac17f958d2ee523a2206206994597c13d831ec7';);echo ';balance of somebody =>; '; 。 $token。balanceOf($somebody) 。 PHP_EOL; // 查询代币余额$txid = $kit->;transfer($somebody, ';100000000';); // 代币转账echo ';transfer token txid =>; '; 。 $txid 。 PHP_EOL;

SmartWallet开发包官方下载地址:http!//sc。hubwiz。com/codebag/smartwallet-php/

  
","content_hash"!"d9f34202

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论