Хакатон Chainlink 21 Жесткий учебник по выполнению функций в смарт-контракте

#task #solidity #execute #chainlink #hardhat

Вопрос:

Я бы поставил это на переполнение стека, но это специфично для хакатона. Это для урока по хардхату. Я пытаюсь выполнить свою функцию получения номера в своем смарт — контракте. Мой контракт завершен. Это моя команда: npx жестко получить номер-контракт 0x5FbDB2315678afecb367f032d93F642f64180aa3. Это ошибка, которую я получаю: Ошибка: исключение возврата вызова (метод=»getNumber()», errorArgs=null, имя ошибки=null, значение ошибки=null, причина=null, код=ИСКЛЮЧЕНИЕ CALL_EXCEPTION, версия=abi/5.5.0). Любые мысли помогут…Спасибо.

Вот в чем заключается задача

 task("get-number", "Reads the number")
  .addParam("contract", "The contract's address")
  .setAction(async (taskArgs) => {
    const contractAddr = taskArgs.contract;
    const MyFirstContract = await ethers.getContractFactory('MyFirstContract');

    const accounts = await ethers.getSigners();
    const signer = accounts[0];
    const myFirstContract = await new ethers.Contract(contractAddr, MyFirstContract.interface, signer);

    let result = BigInt(await myFirstContract.getNumber()).toString();

    console.log('Stored number is: '   result);
  });

module.exports = {}; 

Ответ №1:

У меня была аналогичная ошибка, когда я следовал этому учебнику по хакатону.

Мое исправление состояло в том, чтобы указать --network при выполнении моей задачи get-номер. Итак, в вашем примере:

 npx hardhat get-number --network localhost --contract 0x5FbDB2315678afecb367f032d93F642f64180aa3
 

Это позволит выполнить задачу с помощью сети Hardhat, которую вы должны были запустить при запуске демо-версии npx hardhat node

Жесткий сетевой док

См.раздел Запуск автономного документа

Я спросил на хакатоне Discord, почему демо-версия не прошла это, но все еще работала, но пока не получила ответа.

Комментарии:

1. Я попытался, но получил ошибку 🙁 . Это ошибка, которую я получил Ошибка HH108: Не удается подключиться к локальному хосту сети. Пожалуйста, убедитесь, что ваш узел запущен, и проверьте конфигурацию вашего подключения к Интернету и сетей. И мой узел был запущен. Вы сделали что-нибудь особенное с конфигурацией вашей сети?

2. Я попробовал сеть кована, и код работает идеально. idk.

Ответ №2:

У меня та же проблема, и я решил ее так: начать с жесткого диска npx hardhat node --hostname 0.0.0.0 вместо npx hardhat node

Вам также нужно будет развернуть контракт на локальном хосте: npx hardhat run scripts/deploy.js --network localhost

Затем используйте npx hardhat --network localhost для вызова 2 функций.

Комментарии:

1. спасибо, я попробую. Было бы хорошо иметь местную жесткую среду. Я только что запустил сеть kovan, и она отлично работает. Спасибо за продолжение.