Estoy tratando de obtener una lista de contratos de token en poder de una dirección de billetera, similar a como lo hace bscscan, excepto mediante programación. bscscan.com/apis no tiene un punto final, y parece que web3 solo informa el saldo de ETH.
Esto es posible de lograr, ya que bscscan informa la lista y muchos token trackers (como farmfol.io) también parecen extraer esa información. Simplemente no estoy encontrando la metodología correcta. ¡Cualquier ayuda es apreciada!
El saldo del token ERC-20 (y similar al ERC-20, como TRC-20 , BEP-20 , etc.) de cada dirección se almacena en el contrato del token .
Los exploradores de blockchain escanean cada transacción en busca de eventos Transfer() y, si el emisor es un contrato de token, actualizan los saldos de token en su base de datos separada. El saldo de todos los tokens por cada dirección (de esta base de datos separada) se muestra como el saldo de tokens en la página de detalles de la dirección.
Etherscan y BSCScan actualmente no proporcionan una API que devuelva los saldos de tokens por dirección.
Para obtener todos los saldos de tokens ERC-20 de una dirección, la solución más fácil (aparte de encontrar una API que devuelva los datos) es recorrer todos los contratos de tokens (o solo los tokens que le interesan) y llamar su balanceOf(address) .
const tokenAddresses = [ '0x123', '0x456', ]; const myAddress = '0x789'; for (let tokenAddress of tokenAddresses) { const contract = new web3.eth.Contract(erc20AbiJson, tokenAddress); const tokenBalance = await contract.methods.balanceOf(myAddress).call(); }Puedes llamar
https://api.bscscan.com/api?module=account&action=tokentx&address=0x7bb89460599dbf32ee3aa50798bbceae2a5f7f6a&page=1&offset=5&startblock=0&endblock=999999999&sort=asc&apikey=YourApiKeyToken
y analizar el resultado. Todas las fichas que hayas tocado estarán aquí.