furqansiddiqui / erc20-php
与任何ERC20标准或向后兼容的以太坊代币交互
0.3.1
2024-09-23 15:18 UTC
Requires
- php-64bit: ^8.1
- ext-bcmath: *
- furqansiddiqui/ethereum-php: ^0.3.7
README
与任何ERC20标准以太坊代币交互
本包是针对PHP开发者无法与ERC20代币(即web3js合约API)交互这一历史问题的最终解决方案。
本包依赖furqansiddiqui/ethereum-php包来执行所有ABI
编码和解码,以及使用RPC/API与以太坊节点进行通信,从而为开发者提供纯简单且易于使用的API来执行所有ERC20标准操作。
演示
- 测试与
Thether USD
/USDT
ERC20智能合约的交互
use FurqanSiddiqui\Ethereum\RPC\Infura; use FurqanSiddiqui\Ethereum\ERC20\ERC20; $infura = new Infura("PROJECT-ID", "PROJECT-SECRET"); $infura->ignoreSSL(); // In case Infura.IO SSL errors (or provide "caRootFile:" to constructor above) $erc20 = new ERC20($infura); $usdt = $erc20->deployedAt("0xdac17f958d2ee523a2206206994597c13d831ec7"); var_dump($usdt->name()); var_dump($usdt->symbol()); var_dump($usdt->decimals()); var_dump($usdt->totalSupply()); $balance = $usdt->balanceOf($eth->getAccount("ETHEREUM-ADDRESS")); var_dump($balance); var_dump($usdt->getScaledValue($balance));
结果
string(9) "TetherUSD"
string(4) "USDT"
int(6)
string(18) "32284517903064882"
string(11) "53150417979"
string(12) "53150.417979"
自定义ABI
- 标准/基本ERC20 ABI包含在包中。
- 要包含扩展/自定义ERC20 ABI(根据您的需求),请使用以下方法之一
- 扩展BaseERC20Contract类来定义自定义ABI函数和事件。
- 解码您的自定义ABI JSON文件并将其提供给构造函数
use \FurqanSiddiqui\Ethereum\Contracts\Contract; $customABI = Contract::fromArray(json_decode(file_get_contents("YOUR-CUSTOM-ABI.json"), true), true); $erc20 = new ERC20(abi: $customABI);
缩放值
使用getScaledValue
和fromScaledValue
将金额从/to uint256
进行转换。
先决条件
- PHP ^8.1
- 以太坊PHP库 (furqansiddiqui/ethereum-php) > 0.2.0
安装
composer require furqansiddiqui/erc20-php
变更日志
- 0.3.0: 本库以及ethereum-php等几个库都已现代化,需要PHP ^8.1。