ChainID Solidity 版本 0.6.12

问题描述

我已经在许多工厂合同中看到了此代码

constructor() public {
    uint chainId;
    assembly {
        chainId := chainid
    }
    DOMAIN_SEParaTOR = keccak256(
        abi.encode(
            keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),keccak256(bytes(name)),keccak256(bytes('1')),chainId,address(this)
        )
    );
}

但是,这在我使用时有效 pragma solidity =0.5.16; 但是如果我使用 pragma solidity =0.6.12;,我会收到一个错误

ParseError: Expected '(' but got '}' } ^

我尝试执行以下操作:

constructor() public {
    uint chainId;
    assembly {
        chainId := chainid()
    }...

但是后来我在变量和函数上遇到多个错误说:

TypeError: overriding public state variable is missing string public constant name = ...

solidity 0.6.12 版本如何写流水线?

谢谢,

使用 0.5.16 版本不是一种选择,因为许多导入使用 0.6.12 并且它们将无法工作...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)