digitaldonkey/ethereum-php

How can I call the contract method 'getAmountsOut' with 'address[]' params?

silsuer opened this issue · 1 comments

I wath get the price from pancakeswap router contract: https://bscscan.com/address/0x10ED43C718714eb63d5aA57B78B54704E256024E

abi:

{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"}

code:

$eth = new Ethereum($url);
$w = new SmartContract($abi, self::PANCAKE_SWAP_ROUTER_CONTRACT_ADDRESS, $eth);

$price = $w->getAmountsOut(
            new EthQ(1, ['abi' => 'uint256'])
            new EthD($path, ['abi' => 'address[]'])
        )->val();

I dont know how to new the address[] ABI type object
then got the err:

substr() expects parameter 1 to be string, array given

How can I fix it?

Did you ever get this solved?