首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“`address”和Compiler版本的松露测试问题

“`address”和Compiler版本的松露测试问题
EN

Ethereum用户
提问于 2019-03-11 15:52:24
回答 2查看 598关注 0票数 3

我试图在一个使用pragma solidity 0.4.24;编写的旧合同上运行D1。虽然我能够使用truffle migrate部署合同,但在运行truffle test时会出现以下错误:

代码语言:javascript
复制
Using network 'development'.


Compiling your contracts...
===========================
Error: CompileError: Error parsing truffle/DeployedAddresses.sol: ParsedContract.sol:4:55: ParserError: Expected ',' but got 'payable'
  function Marketplace() public pure returns (address payable) { return 0x6395927945EA39aDD6B1E04144f1e1324B30DeFC; }
                                                      ^-----^
Compilation failed. See above.
    at async.whilst.error (/usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-compile/profiler.js:369:1)
    at /usr/local/lib/node_modules/truffle/build/webpack:/~/async/dist/async.js:969:1
    at next (/usr/local/lib/node_modules/truffle/build/webpack:/~/async/dist/async.js:5222:1)
    at Promise.all.then.results (/usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle-compile/profiler.js:351:1)
    at 
Truffle v5.0.7 (core: 5.0.7)
Node v8.12.0

truffle/DeployedAddresses.sol: ParsedContract.sol:4:55不是我编写的代码,也不是我项目的一部分。我怀疑这个错误可能是因为Tru显正在运行solidity0.4.24来编译我的合同,但是不管它用来执行内部测试的东西都是运行Solity0.5。有什么方法来验证/改变这个吗?

下面是主目录中truffle.js的内容:

代码语言:javascript
复制
module.exports = {
  migrations_directory: "./migrations",
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    }, 
 // ... Other configs specified here, removed because irrelevant
 // to SO question ... 
 compilers: {
  solc: {
    version: "0.4.24",  
    }
  },
  solc: {
    optimizer: {
      enabled: true,
      runs: 500
    }
  } 
};

以及“/test”下的truffle.js内容:

代码语言:javascript
复制
module.exports = {
  // See 
  // for more about customizing your Truffle configuration!
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    }
  }, 
  compilers: {
  solc: {
    version: "0.4.24",  
    }
  }
};

我有.sol.js测试,两者都不会运行(无论是单独运行还是作为使用truffle test运行所有测试的一部分)。

EN

回答 2

Ethereum用户

发布于 2019-03-16 14:01:57

看上去这是个小混混。我开了关于他们的吉萨布的问题,他们有创建了一个PR来解决这个问题。我将更新这个答案后,尝试更新松露版本。

票数 1
EN

Ethereum用户

发布于 2019-03-15 02:41:03

我认为您需要将编译器更改为version: "0.5.0",或更新版本(但大于0.6.0),如果需要使用这个动态生成的DeployedAddresses.sol库,则需要使所有代码与该编译器版本兼容(参见)

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/68223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档