【问题标题】:Declare constant at file level in solidity 0.4.17在solidity 0.4.17中在文件级别声明常量
【发布时间】:2022-11-13 01:43:08
【问题描述】:

我有一个非常简单的 Solidity 合约,如下所示:

pragma solidity ^0.4.17;

uint256 constant MY_CONSTANT = 3;

contract MyContract {
  constructor() public {}
}

这是我的 truffle-config.js 文件:

module.exports = {
  networks: {
     development: {
      host: "127.0.0.1",
      port: 9545,
      network_id: "*",
     },
  },
  compilers: {
    solc: {
      version: "^0.4.17"
    }
  }
};

当我运行truffle develop 然后truffle compile 时,出现以下错误:

Compiling your contracts...
===========================
> Compiling ./contracts/MyContract.sol-bin. Attempt #1

CompileError: project:/contracts/MyContract.sol:4:1: ParserError: Expected pragma, import directive or contract/interface/library definition.
uint256 constant MY_CONSTANT = 3;
^-----^

Compilation failed. See above.
    at /home/thaiminhpv/.nvm/versions/node/v16.18.1/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:95:1
    at Generator.next (<anonymous>)
    at fulfilled (/home/thaiminhpv/.nvm/versions/node/v16.18.1/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:28:43)
Truffle v5.6.4 (core: 5.6.4)
Node v16.18.1

这是我的松露版本:

$ truffle version
Truffle v5.6.4 (core: 5.6.4)
Ganache v7.5.0
Solidity - ^0.4.17 (solc-js)
Node v16.18.1
Web3.js v1.7.4

但是,当我在truffle-config.js 中将solidity 编译器从^0.4.17 更改为0.8.17 时,一切正常。

如何在solidity 0.4.17中声明文件级别的常量?

【问题讨论】:

    标签: constants solidity smartcontracts truffle ganache


    【解决方案1】:

    您必须在智能合约内部而不是外部定义变量。

    在你的情况下,移动这个语句:

    uint256 constant MY_CONSTANT = 3; 
    

    在关键字合同内。

    最终结果应该与此类似:

    pragma solidity ^0.4.17;
    
    contract MyContract {
        
        uint256 constant MY_CONSTANT = 3;
    
        constructor() public {
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2014-06-30
      相关资源
      最近更新 更多