我试图与RSK Mainnet上的智能合同进行交互,我得到了这个错误.
Provided address "0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e" is invalid,
the capitalization checksum test failed,
or its an indirect IBAN address which can't be converted.地址是从RSK资源管理器本身获得的,所以我不知道为什么web3.js会出现这个错误。
发布于 2021-01-20 14:05:46
根据RSKIP-60,RSK网络在EIP1191之后有自己的校验和验证。
然而,一些工具和库仍然不支持EIP-1191。
大多数Ethereum工具和库只支持EIP-155。is是其中之一,它检查期望EIP-155校验和的校验和。
解决方案
(1)将智能契约地址转换为全小写字符串:
return new web3.eth.Contract(coinBackAbi, tokenObj.address.toString().toLowerCase());请注意,EIP-155和EIP-1191都定义了所有小写地址都将被视为“跳过校验和”。
(2)另一种方法是使用@rsksmart/rsk-utils,将地址转换为使用适当的校验和:
// Ethereum --> use this for web3.js
toChecksumAddress ("0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e", null)
// RSK Mainnet
toChecksumAddress ("0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e", 30)https://stackoverflow.com/questions/65810791
复制相似问题