使用WalletConnectSwiftV2 connect MetaMask失败的解决办法

在使用WalletConnectSwiftV2 连接钱包App进行授权签名时,发现在对接一些钱包上没问题的代码,在对接metamask钱包时候有modal 出授权弹窗,有显示正确的Dapp信息,但是点击授权发行没有反应。然而这套代码在对接其他钱包App 都是正常的。

这个问题困扰了我许久,直到我尝试了补充完Sign.instance.connect 方法的所有参数后,发现在Metamask App上终于能回调成功了, 下面是示例代码。

    // 在metamask上生效的调用方式
    try await Sign.instance.connect(
        requiredNamespaces: namespaces,
        optionalNamespaces: [:],
        sessionProperties: sessionProperties,
        topic: uri.topic
    )                
    //在metamask 上不生效的调用方式
    try await Sign.instance.connect(
        requiredNamespaces: namespaces,
        topic: uri.topic
    )

实际上按照SDK的设计Sign.instance.connectoptionalNamespacessessionProperties 参数是非必需的,这不传值时在其他钱包也是正常得完成流程,怀疑是metamask接入WalletConnectSwiftV2时间太短,未处理好协议的数据结构处理方式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容