我是区块链开发公司的新手。我正在开发一个旧的项目,它使用了Solidity0.4.17和块菌^4.0.0-beta.2;这些版本都在项目的package.json文件中。
当我在全球范围内安装松露和坚固时,它为它们安装了最新版本。该项目还使用了这些最新版本(使用“块菌版本”命令检查)。但是,当我将旧的语用版本更改为最新版本时,该项目出现了许多错误和警告(太多无法手动处理)。因此,我决定降低松露和solc的等级,以便能够编译该项目。
该项目最终编译完毕,部分测试成功通过。但是,当我尝试运行"npm运行覆盖率“时,它无法从合同中找到这些文件:
import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";然后,我在github上的松露回购中找到了Assert.sol文件,并从node_modules中引用了它。但新的错误是:
Error: Could not find truffle/AssertString.sol from any sources; imported from truffle/Assert.sol
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:59552:23
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:155895:16
at next (C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:167654:18)
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:59540:7
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:190397:5
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:167559:16
at replenish (C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:155865:25)
at iterateeCallback (C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:155855:17)
at C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:155895:16
at ReadFileContext.callback (C:\Users\giusha9\Desktop\Authcoin-Qtum-master-old-version\node_modules\truffle\build\cli.bundled.js:190393:14)
Cleaning up...这是package.json:
"scripts": {
"compile": "truffle compile",
"build": "truffle build",
"deploy": "truffle deploy",
"postinstall": "truffle install",
"console": "truffle console",
"testrpc": "testrpc --gasLimit 60000000",
"testrpc:coverage": "node_modules/.bin/testrpc-sc --port 8555",
"truffle-test": "truffle test",
"test": "run-p --aggregate-output --race testrpc truffle-test",
"solidity-coverage": "node_modules/.bin/solidity-coverage",
"coverage": "run-p --aggregate-output --race testrpc:coverage solidity-coverage",
"lint": "node_modules/.bin/solium --dir ./contracts"
},
"devDependencies": {
"concurrently": "^3.5.0",
"ethereumjs-testrpc": "^6.0.3",
"npm-run-all": "^4.1.1",
"solidity-coverage": "^0.2.7",
"solium": "^0.5.5",
"truffle": "v4.0.0-beta.2",
"ethereumjs-util": "^5.1.2"
},
"dependencies": {
"chai": "^4.1.2"
}我有三个问题:
任何帮助都将不胜感激。
发布于 2019-05-08 09:56:39
Solidity在0.4.24 (最后一次发布的0.4.x版本)到0.5.0之间进行了向后不兼容的更改。严格地说,Solity0.4.x和0.5.x是不同的编程语言,前者不再被维护。您必须修改代码以符合Solity0.5.x的要求,或者将Solity0.4.24与0.5.x并排安装,并为旧项目使用旧的稳健性。
发布于 2019-04-08 04:48:34
我认为您的项目是非常老的(超过1年的区块链是一个很长的时间),而且可能有些依赖关系不匹配很好,即坚实的覆盖范围,松露有很多变化。
我建议首先尝试插入依赖项的版本,在VM中使用节点的旧版本。这可能是很多工作,所以如果几天后,我会开始考虑移植到新版本的软件包。
https://ethereum.stackexchange.com/questions/69359
复制相似问题