Me gustaría calcular el precio de un token BEP20 en BNB. Revisé poocoin y pancakeswap cómo calculan el precio. Por lo que veo llaman continuamente al bsc-dataseed a través de web3.js, pero aún no encontré la solución.
// Request params { "jsonrp": "2.0", "method": "eth_blockNumber", "params": [], "id": 1 } { "jsonrpc": "2.0", "id": 53, "method": "eth_call", "params": [ { "to": "0x1ee38d535d541c55c9dae27b12edf090c608e6fb", "data": "" }, "latest" ] } Por lo que sé, el 0x1ee38d535d541c55c9dae27b12edf090c608e6fb es un contrato que contiene el método de multicall . Los primeros 10 caracteres de los datos (0x252dba42) son el método aggregate . Pero, ¿cuál es la parte restante de los datos?
Este es el contrato ABI para el método aggregate :
{ "constant": true, "inputs": [ { "components": [ {"name": "target","type": "address"}, {"name": "callData","type": "bytes"} ], "name": "calls", "type": "tuple[]" } ], "name": "aggregate", "outputs": [ { "name": "blockNumber", "type": "uint256" }, { "name": "returnData", "type": "bytes[]" } ], "payable": false, "stateMutability": "view", "type": "function" } ¿Es necesaria la segunda llamada?
¿Cómo puedo calcular el precio a partir de esos datos?
¿Conoces una manera más fácil?