合约编译失败: Conversion from rational numbers to address types is not supported

  1. 使用solidity 0.5.16 编写的合约,在remix上编译通过;
  2. 使用platon-truffle migrate 进行编译报错,原因是: platon-truffle支持的版本不包括0.5.16;
  3. 将合约里的0.5.16 改成 0.5.17,使用 platon-truffle migrate 进行编译时报错:
    image
1 个赞

由于PlatON使用bech32地址格式,当前版本不支持将有理数直接转换为地址类型, 请检查下合约内容, 看是否有直接将常数做为地址使用的情况,可以使用platonkey updateaddress将其转换一下再编译

另外,为了全面兼容ETH, 在后续的版本中我们将同时支持bech32和EIP55格式的地址