Я создал новый контракт на солидность. Контракт запущен и работает, но дает мне это предупреждение.
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.
Ошибок при компиляции нет.
Версия компилятора, которую я использую в https://remix.ethereum.org/, это v0.7.5+commit.eb77ed08. Язык: Solidity ВЕРСИЯ EVM: компилятор по умолчанию
Всякий раз, когда я нажимаю компиляцию, он выдает предупреждение, но при развертывании проблем нет.
Мой фрагмент кода:
pragma solidity ^0.7.5;
contract TestContract {
// Some logic
}
Начиная с Solidity ^0.6.8 введена лицензия SPDX. Поэтому вам нужно использовать SPDX-License-Identifier в коде.
Взгляните на это: https://forum.openzeppelin.com/t/solidity-0-6-8-introduces-spdx-license-identifiers/2859
Например, в вашем коде вам нужно использовать идентификатор лицензии, например
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.5;
contract TestContract {
// Some logic
}
Вам необходимо использовать лицензию в соответствии с вашим проектом. Некоторые другие лицензии:
// SPDX-License-Identifier: GPL-3.0-or-later
Вы можете найти список лицензий здесь: https://spdx.org/licenses/
Можете ли вы использовать коммерческую (т.е. не с открытым исходным кодом) лицензию?
"// SPDX-License-Identifier: MIT" добавьте это вверху. Это проблема расширения Solidity. Удалите его. Затем установите, а затем закройте редактор и перезагрузите его.
Бывший :
//SPDX-идентификатор лицензии: MIT
прочность прагмы ^0,8,14;
Разве это не дублированный ответ с принятым?