Что вызвало эту ошибку: попытка выполнить транзакцию, которая вызывает контрактную функцию, но адрес получателя не является адресом контракта

У меня есть контракт и набор мокко-тестов. Недавно я перешел от использования клиента ethereum, который поставляется с трюфелем (тот, который вы получаете при запуске truffle develop) в ganache-cli. Так или иначе, при переключении между ними, я заставил свои тесты не работать, и миграции, похоже, тоже не работают. Миграции работают, когда я подключен к ganache, но не к клиенту разработки трюфелей. Вот полное сообщение об ошибке.

$ truffle migrate --reset
Using network 'development'.

Running migration: 1_initial_migration.js
  Replacing Migrations...
  ... 0x9391ac92dfbf86306e9ed896e7f9d5d45d9d88a072323ca1ef116f242ae0d2be
  Migrations: 0x8cdaf0cd259887258bc13a92c0a6da92698644c0
Saving successful migration to network...
  ... undefined
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: Attempting to run transaction which calls a contract function, but recipient address 0x8f0483125fcb9aaaefa9209d8e9d7b9c8b9fb90f is not a contract address
    at Object.InvalidResponse (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/errors.js:38:1)
    at /home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/requestmanager.js:86:1
    at /home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/truffle-migrate/index.js:225:1
    at /home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/truffle-provider/wrapper.js:134:1
    at XMLHttpRequest.request.onreadystatechange (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/httpprovider.js:128:1)
    at XMLHttpRequestEventTarget.dispatchEvent (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:64:1)
    at XMLHttpRequest._setReadyState (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:354:1)
    at XMLHttpRequest._onHttpResponseEnd (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:509:1)
    at IncomingMessage.<anonymous> (/home/altair/.nvm/versions/node/v9.6.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:469:1)
    at IncomingMessage.emit (events.js:132:15)
    at endReadableNT (_stream_readable.js:1101:12)
    at process._tickCallback (internal/process/next_tick.js:152:19)

Я могу найти множество проблем и вопросов SE для «Ошибка столкнулась, прибегнув. Состояние сети неизвестно. Просмотрите успешные транзакции вручную». Но линия после этого всегда отличается от моей. Я не могу найти какие-либо результаты Google для "Attempting to run transaction which calls a contract function, but recipient address" is not a contract address

Сообщение имеет смысл для меня, но как это может быть не адрес контракта?

ETA: Я также обновил трюфель 4.0.5 до трюфеля 4.1.0, что, вероятно, вызвало эту проблему.

17 голосов | спросил Alex Altair 2 MaramFri, 02 Mar 2018 02:37:23 +03002018-03-02T02:37:23+03:0002 2018, 02:37:23

2 ответа


23

Как указано в комментариях Mavlarn и ivicaa , ответ заключается в удалении файлов .json в разделе build/contracts/. Затем следующий прогон трюфеля truffle migrate больше не выполняется.

ответил Alex Altair 4 MarpmSun, 04 Mar 2018 23:29:30 +03002018-03-04T23:29:30+03:0011 2018, 23:29:30
21

Я только что использовал migrate -reset (без удаления /сборки) и работал

ответил IveltonQueiroz 17 MaramSat, 17 Mar 2018 02:11:40 +03002018-03-17T02:11:40+03:0002 2018, 02:11:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132