use EthTool\EthApiWeb3;
use EthTool\Credential;
use EthTool\BatchTransfer;
$url = 'https://infura.io/v3/....'; //节点URL
$btContractAddress = '0xd86c8f…cf560d5610'; //批量转账合约地址
$bt = new BatchTransfer(
new EthApiWeb3($url), //EthApi实例
Credential::fromKey($key), //Credential实例
$btContractAddress //批量转账合约地址
4、以太币一对多转账PHP API
使用BatchTransfer对象的sendEther()方法向多个目标地址转账以太币,调用发起账户负责支付转账总额和手续费。例如:
$recipients = [
'0xffcf8fdee72ac11b5c542428b35eef5769c409f0', //目标地址
'0x22d491bde2303f2f43325b2108d26f1eaba1e32b '
$values = [
'2000000', //目标金额,单位:WEI
'6000000';
$txid = $bt.sendEther($recipients,$values); //批量转账交易
echo 'txid => ' . $txid . PHP_EOL; //显示交易哈希
sendEther()
方法默认的gas参数和链ID为:
gasLimit:4000000
gasPrice:10 GWEI
chainId:1
可以在调用时传入自定义的值,例如:
$gasLimit = '1000000'; //gas上限:1 M
$gasPrice = '2000000000'; //gas价格:2 GWEI
$chainId = 4; //目标链:ropsten
$txid = $bt.sendEther($recipients,$values,$gasLimit,$gasPrice,$chainId);
5、ERC20代币一对多转账PHP API
与以太币不同的是,在使用BatchTransfer对象的sendToken()方法向多个目标地址转帐指定的ERC20代币之前,需要首先调用approveContract()方法授权批量转账合约可以操作发起账号持有的代币。例如,下面的代码允许批量转账合约操作发起账号的指定数量的指定代币:
$tokenAddress = '…'; //代币合约地址
$value = '100000000000'; //授权数量
$txid = $bt->approveContract($tokenAddress,$value); //授权
对一个特定的发起账号/代币对,授权操作只需要进行一次。在授权交易成功后,既可以调用sendToken()方法进行一对多转账。例如:
$tokenAddress = '…'; //代币合约地址
$recipients = [
'0xffcf8fdee72ac11b5c542428b35eef5769c409f0', //目标地址
'0x22d491bde2303f2f43325b2108d26f1eaba1e32b '
$values = [
'2000000', //代币最小单位
'6000000';
$txid = $bt.sendToken($tokenAddress,$recipients,$values); //批量转账交易
echo 'txid => ' . $txid . PHP_EOL; //显示交易哈希
同样,可以指定sendToken()方法调用时的gas参数和链ID,这里不再重复。
以太坊批量转账PHP开发包下载地址:http://sc.hubwiz.com/codebag/eth-batch-transfer/
PHP开发的网站,如何实现批量打印快递单的功能?
虽然市场中不断有新的编程语言诞生,但不得不承认PHP在web开发领域仍一直占有很大份额,高效开发是他一直以来最大的一个优点,而且他的学习成本也较低,入门门槛较低,和Python一样是解释性语言,很多人都说他是世界上最好的语言。其实语言并没有好坏之分,只有是否适用,每门语言都有自己的优缺点,毕竟想要获得一样东西,总要放弃点什么,有舍有得,看自己怎么权衡,只要能解决问题就是好的,不管黑猫白猫抓到老鼠就是好猫。自从swoole的加持以及和GO语言的结合,也弥补语言本身的很多不足,慢慢缩小和其他语言之间的差距,不过还是有很长的路要走。--题外话
OmniTool开发包适用于为PHP应用快速增加对Omni Layer/USDT数字资产的支持能力,即支持使用自有Omni Layer节点的应用场景,也支持基于第三方API服务和离线裸交易的轻量级部署场景。