WalletConnect是否支持币安智能链(BEP20)钱包及相关操作实现方法
关于Kotlin WalletConnect App支持BSC BEP20交易的说明
Kotlin WalletConnect App完全可以支持Binance Smart Chain(BSC)的BEP20交易,BSC属于EVM兼容链,底层交互逻辑和以太坊完全通用,你当前没找到BSC相关代码是因为示例项目默认仅配置了以太坊链参数。
具体实现方法
第一步:新增BSC链配置参数
在会话初始化的逻辑中,添加BSC链的基础配置:- BSC主网:chainId为
56,RPC地址可使用官方公开节点 - BSC测试网:chainId为
97,RPC地址可使用官方公开测试节点
将BSC的chainId添加到WalletConnect会话请求的requiredChains或optionalChains列表中,不要仅传递以太坊的链ID。
- BSC主网:chainId为
第二步:复用现有ERC20逻辑构造BEP20交易
BEP20和ERC20的ABI标准完全一致,你现有代码里的ERC20转账构造逻辑可以直接复用,仅需要修改两个参数:- 交易参数中的
chainId字段替换为对应BSC网络的ID - 按照BSC网络的规则调整gasPrice、gasLimit的取值即可
现有eth_SendTransaction、eth_sign方法完全兼容BSC交易,不需要新增专属方法。
- 交易参数中的
第三步:交易发起前校验链状态
发起BEP20交易前,先判断当前连接的钱包是否已经切换到对应的BSC链,如果未切换可主动发起钱包切链请求。
测试问题解决方案
- Trust Wallet提示“钱包不支持”:是因为你发起会话连接时未携带BSC的chainId参数,钱包识别到你仅授权了以太坊链权限,发起BSC交易时链ID不匹配就会报错,修改会话请求的链列表参数即可解决。
- MetaMask无响应:常见两个原因,一是交易参数中的chainId和当前会话授权的链ID不一致,MetaMask不会触发弹窗;二是BEP20交易构造错误,to字段未填写BEP20代币合约地址、而是填了收款地址,按照ERC20交易的构造规则调整参数即可正常触发授权弹窗。
内容的提问来源于stack exchange,提问作者Khaksar
相关产品推荐
相关产品推荐

