主页 > imtoken官网苹果版 > 以太坊地址批量生成 erc20 PHP
以太坊地址批量生成 erc20 PHP
SmartWallet开发包适用于平台高效完成用户地址上Ether/ERC20代币的收集以太坊地址批量生成,无需向用户地址注入Ether即可完成Ether/ERC20代币的收集。 官方下载链接:以太坊智能钱包PHP开发包。
一、开发包概述
智能钱包开发包的主要特点如下:
真正的平台型非托管钱包,平台无需管理大量用户地址的密钥,安全无损失
无需向用户地址注入以太币即可完成以太坊/ERC20代币的收集,流程更简单高效
支持在单个交易中收集多个用户地址
SmartWallet运行在PHP 7.1+环境下,主要类及其关系如下图所示:
2.使用示例代码
2.1 部署工厂合约
SmartWallet开发包使用工厂合约SmartWalletFacotry来管理用户地址的生成和收集。 所以首先你需要部署工厂合约。
示例代码 demo/deploy-contracts.php 展示了如何部署 SmartWalletFactory 合约和用于演示的 ERC20 代币合约。
执行以下命令运行示例代码:
php 部署-contracts.php
运行结果如下:
2.2 生成用户地址
示例代码demo/generate-user-address.php展示了如何使用SmartWallet开发包为用户生成平台地址。 执行以下命令运行示例代码:
php 生成用户钱包.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 实例化凭证
使用静态方法 new() 创建一个新的以太坊账户以太坊地址批量生成,例如:
//使用 ethtool\Credential;
$credential = Credential::new(); // 创建一个新账户
您还可以使用静态方法 fromKey() 导入现有私钥来实例化 Credential 对象,例如:
$credential = Credential::fromKey(
'0x4f3edf983ac6......b113bce9c46' // 要导入的私钥
);
3.2 查看账户的密钥和地址
Credential类提供了以下方法获取当前账户的私钥、公钥和地址:
getPrivateKey():返回私钥十六进制字符串
getPublicKey():返回公钥十六进制字符串
getAddress():返回地址十六进制字符串
例如,以下代码创建一个新的以太坊帐户并显示其地址:
$credential = Credential::new();
回声“地址=>”。 $credential.getAddress() 。 PHP_EOL; // 显示账户地址
3. SmartWalletKit类的使用方法
3.1 实例化SmartWalletKit
SmartWalletKit是SmartWallet开发包的入门类。 实例化时需要传入以太坊节点的URL和Credential对象。 例如:
//使用 ethtool\Credential;
//使用ethtool\SmartWalletKit;
$kit = 新的 SmartWalletKit(
':8545', // 以太坊节点 URL
Credential::fromKey('0x......') // 以太坊账户对象
);
3.2 生成用户地址
使用SmartWalletKit的getUserWallet()方法为指定用户生成平台地址,例如:
$userId = 'u010203'; // 用户平台ID
$userAddress = $kit->generateUserWallet($userId); //返回用户地址
echo '用户地址 => ' . $用户钱包。 PHP_EOL; //显示用户地址
3.3 收取单个用户地址余额
使用SmartWalletKit的sweepUserWallet()方法来收集指定用户地址的ETH/ERC20代币余额。 例如:
$userId = 'u010203'; // 用户平台ID
$txid = $kit->sweepUserWallet($userId); // 返回集合交易ID
echo '扫描 txid => '。 $TXID。 PHP_EOL; // 显示收款交易ID
3.4 批量收集用户地址余额
使用SmartWalletKit的sweepUserWallets()方法收集一组用户地址的Ethereum/ERC20代币余额。 例如:
$uids = ['u010203', 'u030405', 'u050607']; // 用户的平台ID
$txid = $kit->sweepUserWallets($uids); // 返回集合交易ID
echo '扫描 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 '转移令牌 txid => '。 $TXID。 PHP_EOL;