首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么web3.js拒绝有效的RSK智能合同地址?

为什么web3.js拒绝有效的RSK智能合同地址?
EN

Stack Overflow用户
提问于 2021-01-20 13:46:35
回答 1查看 975关注 0票数 4

我试图与RSK Mainnet上的智能合同进行交互,我得到了这个错误.

代码语言:javascript
复制
Provided address "0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e" is invalid,
the capitalization checksum test failed, 
or its an indirect IBAN address which can't be converted.

地址是从RSK资源管理器本身获得的,所以我不知道为什么web3.js会出现这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-20 14:05:46

根据RSKIP-60,RSK网络在EIP1191之后有自己的校验和验证。

然而,一些工具和库仍然不支持EIP-1191。

大多数Ethereum工具和库只支持EIP-155。is是其中之一,它检查期望EIP-155校验和的校验和。

解决方案

(1)将智能契约地址转换为全小写字符串:

代码语言:javascript
复制
return new web3.eth.Contract(coinBackAbi, tokenObj.address.toString().toLowerCase());

请注意,EIP-155和EIP-1191都定义了所有小写地址都将被视为“跳过校验和”。

(2)另一种方法是使用@rsksmart/rsk-utils,将地址转换为使用适当的校验和:

代码语言:javascript
复制
// Ethereum --> use this for web3.js
toChecksumAddress ("0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e", null)
// RSK Mainnet
toChecksumAddress ("0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e", 30)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65810791

复制
相关文章

相似问题

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