Как получить данные, которые были отправлены в предыдущий развернутый контракт?

Я хочу получить доступ к данным, которые я отправил через функцию во время предыдущего экземпляра контракта. Можно ли получить данные по экземпляру контракта или хешу транзакции?

Ответы (1)

Вам не нужно повторно развертывать контракт, если он уже развернут, вам нужно создать экземпляр, указывающий на адрес контракта.

async function queryContract() {
    const ContractABI = [...];  // <-- Contract ABI
    const ContractAddress = "0x1234....";           // <-- Deployed contract address

    // Assign deployed address of a contract 
    const myContract = new web3.eth.Contract(ContractABI, ContractAddress);

    // Send a transaction
    await myContract.methods.sendHash("0x12341234")
    .send({
        from: MyAccount,
        gas: 2000000,
        gasPrice: '30000000000'
    });

    // Query modified data    
    const hash = await myContract.methods.getHash().call();

    console.log(hash)
}

queryContract();
Большое спасибо, если я хочу получить хэш, который был отправлен ранее через функцию в контракт. Как мне получить к нему доступ, возможно ли получить через отправленную транзакцию?
Для доступа к данным в отложенном контракте вам нужен адрес контракта и ABI контракта. Затем вы можете вызвать любой метод, представленный в интерфейсе. Следуйте примерам его использования из документации web3 web3js.readthedocs.io/en/1.0/web3-eth-contract.html .