es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fecha de vencimiento de la liquidez bloqueada

Podemos ver la fecha de vencimiento del bloqueo de liquidez utilizando bscscan.com/etherscan.io, pero ¿cómo podemos hacer esto de forma programática?

Paso 1) Ver el token LP aquí: Ver imagen

Paso 2) Ver el evento de bloqueo que ocurre aquí: Ver imagen

Paso 3) El evento de bloqueo contiene el parámetro unlockDate: Ver imagen

Tokensniffer.com es capaz de consultar esto de alguna manera: Aquí

¿Cómo puedo ver ese sello de tiempo unlockDate como lo hizo tokensniffer?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ver el valor de unlockDate de manera programática, puedes utilizar tanto la API de Binance Smart Chain como la API de Ethereum junto con la biblioteca ethers.js.

    Para la API de Binance Smart Chain, puedes utilizar el método web3.eth.getPastLogs() para obtener los registros de eventos de un contrato específico, y luego analizar los registros devueltos para extraer el parámetro unlockDate.

    Para la API de Ethereum con la biblioteca ethers.js, puedes utilizar la función de eventos del contrato para subscribirte al evento “Lock” y luego obtener el parámetro unlockDate de los datos del evento.

    Aquí tienes un ejemplo de código para obtener el parámetro unlockDate utilizando la API de Binance Smart Chain:

    const Web3 = require('web3');
    const web3 = new Web3('https://bsc-dataseed.binance.org/');
    
    const ABI = [/* inserta aquí el ABI del contrato */];
    const CONTRACT_ADDRESS = '0x123...'; // inserta aquí la dirección del contrato
    const FILTER = {
      address: CONTRACT_ADDRESS,
      topics: [ /* inserta aquí la firma del evento Lock como topic */ ],
    };
    
    web3.eth.getPastLogs({
      fromBlock: 0,
      toBlock: 'latest',
      address: CONTRACT_ADDRESS,
      topics: FILTER.topics,
    })
    .then(logs => {
      logs.forEach(log => {
        const eventData = web3.eth.abi.decodeLog(ABI, log.data, log.topics);
        console.log(`Fecha de desbloqueo: ${eventData.unlockDate}`);
      });
    })
    .catch(console.error);
    

    Y aquí tienes un ejemplo de código para obtener el parámetro unlockDate utilizando la API de Ethereum con la biblioteca ethers.js:

    const { ethers } = require('ethers');
    
    const ABI = [/* inserta aquí el ABI del contrato */];
    const CONTRACT_ADDRESS = '0x123...'; // inserta aquí la dirección del contrato
    
    const provider = new ethers.providers.InfuraProvider('mainnet', 'tu_id_de_proyecto_en_Infura');
    const contract = new ethers.Contract(CONTRACT_ADDRESS, ABI, provider);
    
    contract.on('Lock', (user, amount, unlockDate, event) => {
      console.log(`Fecha de desbloqueo: ${unlockDate}`);
    });
    

    Ten en cuenta que en ambos ejemplos debes insertar el ABI y la dirección del contrato, así como la firma del evento “Lock”, para que coincidan con el contrato inteligente en el que estás interesado.

Comments are closed.