api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】
SmartWallet開發包適用于平臺方高效完成對用戶地址上的Ether/ERC20代幣的歸集工作,無需向用戶地址注入Ether即可完成Ether/ERC20代幣的歸集。官方下載地址:以太坊智能錢包PHP開發包。
1、開發包概述
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', // 以太坊節點URLCredential::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; // 顯示歸集交易ID3.4 批量歸集用戶地址余額
使用SmartWalletKit的sweepUserWallets()方法歸集一組用戶地址的以太幣/ERC20代幣余額。例如:
$uids = ['u010203', 'u030405', 'u050607']; // 用戶的平臺ID $txid = $kit->sweepUserWallets($uids); // 返回歸集交易ID echo 'sweep txid => ' . $txid . PHP_EOL; // 顯示歸集交易ID3.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/
總結
以上是生活随笔為你收集整理的api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分度值1g是什么意思_都什么年代了,还有
- 下一篇: 查询除了一列意外_想让你的查询语句变快吗