Truffle не распознает изменение контракта и не применяет его

У меня немного странная ситуация ... Я смог развернуть свой контракт на локальном экземпляре Ganache с помощью:

трюфель миграция - развитие сети

Однако теперь, когда я вношу какие-либо изменения в контракт и запускаю ту же команду, мой контракт компилируется, но в конце я получаю

Сеть обновлена

Теперь я не уверен, почему это происходит? Контракт не тот, хотя я изменил всего несколько строк кода и параметров, а возвращаемые значения остались такими же, может ли это быть причиной?

Кроме того, я думал, что это будет работать с:

трюфель развертывание - сброс

Однако я получаю это:

Compiling your contracts...
===========================
Everything is up to date, there is nothing to compile.

Something went wrong while attempting to connect to the network. Check your network configuration.

Could not connect to your Ethereum client with the following parameters:
    - host       > 127.0.0.1
    - port       > 7545
    - network_id > 5777

Теперь странно, что я пытаюсь использовать порт 7545, когда я запускаю команду с параметром --reset ... поскольку моя конфигурация трюфеля указывает на порт 8545:

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // to customize your Truffle configuration!
  contracts_build_directory: path.join(__dirname, "client/src/contracts"),
  networks: {
    develop: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*",
    }
  },

  // Configure your compilers
  compilers: {
    solc: {
      version: "0.8.4",    // Fetch exact version from solc-bin (default: truffle's version)
     }
    }
  },
};

Раньше я использовал Ganuche на 7545 в качестве эксперимента, но какое-то время он не работал на этом порту, и

трюфель миграция - развитие сети

смог подключиться и выполнить первоначальную миграцию. Просто сейчас никаких новых изменений не пойдет. Есть идеи, что происходит?


person Zed    schedule 22.05.2021    source источник


Ответы (1)


Нет, truffle будет переносить только невыполненные миграции, как сказано в документации: Запуск миграции - команда

Если ваши миграции ранее выполнялись успешно, то Truffle migrate начнет выполнение с последней выполненной миграции, выполняя только недавно созданные миграции. Если новых миграций не существует, трюфельная миграция вообще не будет выполнять никаких действий. Вы можете использовать параметр --reset, чтобы выполнить все миграции с самого начала.

Итак, если вы уже перенесли контракт, вы должны выполнить:

truffle migrate --reset
person georgeos    schedule 01.06.2021