Solidity

使用多個 solc 版本建構?

  • April 6, 2022

我的代幣和基本設置腳本是在solidity 0.8.0 中建構的,我剛剛用OpenZeppelin 下載了GSN,因為我需要一個平台來資助使用者的一些事情。現在我無法編譯,因為它告訴我有不同的 SOLC 版本。這種情況迫使我將項目拆分為代幣(其中很少有合約)和平台,將其降級到 0.6.10 並單獨導出。為了使它工作,我需要在項目之間複製和粘貼介面,在遷移中粘貼原始地址,這會使整個項目變得一團糟。如何在一個項目中建構所有內容?

我不會推薦這個,因為功能會隨著版本的變化而變化。

但是如果你想從一個單一的版本編譯你的整個項目solidity,你可以pragmas在你的solidity文件中設置如下:

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

在您的 truffle 配置中,將編譯器版本設置pragma為此將根據您的智能合約自動檢測並選擇正確的編譯器。


module.exports = {
 …
 compilers: {
   solc: {
     version: "pragma"
   }
 }
};

松露文件

引用自:https://ethereum.stackexchange.com/questions/96743