Как скомпилировать более ранние реализации контракта на прочность с использованием цеппелина - PullRequest
0 голосов
/ 29 апреля 2020

Я установил пакет zeppelin-solidity, используя npm, чтобы использовать контракт er c -721.

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

/Users/me/dev/myfolder/erc721/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol:1:1: ParserError: Source file requires different compiler version (current compiler is 0.5.16+commit.9c3226ce.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version
pragma solidity ^0.4.24;
^----------------------^

Error: Truffle is currently using solc 0.5.16, but one or more of your contracts specify "pragma solidity ^0.4.24".
Please update your truffle config or pragma statement(s).
(See https://truffleframework.com/docs/truffle/reference/configuration#compiler-configuration for information on
configuring Truffle to use a specific solc compiler version.)

Компиляция не удалась. См. Выше.

Некоторые ответы, которые я видел, предлагают увеличить прочность прагмы до 0,5, но как я могу изменить версию во включаемом файле?

Также, если этот контракт старый, я должен использовать его, или есть лучшие реализации erc721?

ОБНОВЛЕНИЕ: Я попытался изменить компилятор sol c, как показано ниже, но ошибка все еще сохраняется:

compilers: {
    solc: {
        version: "^0.4.24",
        //parser: "solcjs",
        optimizer: {
            enabled: true,
            runs: 200
        }
    }
  }

1 Ответ

0 голосов
/ 30 апреля 2020

Напишите файл с именем truffle.js, например:

  module.exports = {
  // Configure your compilers
  compilers: {
    solc: {
      version: ">=0.4.24", // Fetch exact version from solc-bin (default: truffle's version)
    }
  },
};

и поместите его в каталог проекта root. Вот и все.

Подробнее о конфигурациях трюфелей: https://www.trufflesuite.com/docs/truffle/reference/configuration

...