我使用这个PHP库https://github.com/web3p/web3.php向BSC上的智能合约发出请求。
$web3 = new Web3('https://bsc-dataseed.binance.org');
$contract = new Contract($web3->provider, $abi);
$contract->at('0x10ED43C718714eb63d5aA57B78B54704E256024E')->call('WETH', function($err, $result) {
print_r($result);
});
可以完美地工作,但问题是当我试图调用同时具有uint256和address[]参数的函数时。
代码如下:
$contract->at('0x10ED43C718714eb63d5aA57B78B54704E256024E')->call('quote', [
'25000000000000000000',
'[0x8C851d1a123Ff703BD1f9dabe631b69902Df5f97, 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56]',
], function($err, $result) {
print_r($result);
});
我得到了以下错误。试图发送参数作为字典与param名称。无法弄清楚应该如何做。
InvalidArgumentException
Please make sure you have put all function params and callback.
1条答案
按热度按时间5ssjco0h1#
1.代码段尝试将第二个参数编码为数组,但传递的是字符串。
$params
的个数在PHP代码中是动态的,不要将它们 Package 在数组中。