如何初始化WalletConnect的签名客户端(Android SDK)

toe95027  于 2022-11-20  发布在  Android
关注(0)|答案(3)|浏览(548)

我有以下问题。我只是不知道如何initialize WalletConnect和连接到Android上的Metamask。我总是得到以下异常。

java.lang.NoSuchMethodError: No interface method getInitializationErrorsFlow()Lkotlinx/coroutines/flow/Flow; in class Lcom/walletconnect/android/internal/common/model/JsonRpcInteractorInterface;

我的代码如下所示:

val projectId = "15f2b4ae8bb12dsd3d267ce6441d5a9d" // I got the Project ID from https://cloud.walletconnect.com/
    val relayUrl = "relay.walletconnect.com"
    val serverUrl = "wss://$relayUrl?projectId=$projectId"
    val connectionType = ConnectionType.AUTOMATIC

    val appMetaData = Core.Model.AppMetaData( // <-- What data should be entered here?
        name = "Metamask",
        description = "Description",
        url = "Wallet Url", // How can I get the wallet url?
        icons = listOf(""),
        redirect = "kotlin-wallet-wc:/request"
    )
    CoreClient.initialize(relayServerUrl = serverUrl, connectionType = connectionType, application = application, metaData = appMetaData)
    val init = Sign.Params.Init(CoreClient)
    SignClient.initialize(init, onError = { error ->

    })
f1tvaqid

f1tvaqid1#

enter code here

请输入您的网址:http://www.wbc.com/

qjp7pelc

qjp7pelc2#

所有答案均来自本教程:Connect a iOS or Android DApp to Web3 Wallet.我强烈推荐阅读它。

1. “此处应输入哪些数据?"

它是关于你的DApp的数据,它允许最终用户识别并决定在他的钱包请求时授予你权限。

private val metaData = Session.PeerMeta(
              name = "nfscene",
              url = "nfscene.com",
              description = "nfscene WalletConnect demo"
       )

2. “如何获取钱包URL?"

您必须了解一般使用者可以选择他的公文包。因此您无法胁迫使用公文包。您不需要知道使用者使用的公文包,因为交易是透过“公文包联机”桥接器传送的。如果您只想允许使用MetaMask,您应该直接使用MetaMask API。

xmd2e60i

xmd2e60i3#

您使用的是2.0.0版吗?它在2.1.0版中得到了修复。

相关问题