Я пытаюсь создать приложение Solana на Kotlin и связаться со смарт-контрактом, который я развернул с помощью платформы Anchor. Однако каждый раз, когда я пытаюсь подключить кошелек, приложение вылетает. Он успешно перенаправляет меня в приложение Phantom Wallet и запрашивает подключение, но когда я нажимаю «Подключиться» в приложении Phantom, он возвращает меня в мое приложение Kotlin и ничего не делает, хотя должно снова появиться окно и запросить одобрение сделки. Журналы показывают, что функция ничего не возвращает. Я обрабатываю отправителя так: получаю ссылку в MainActivity и передаю ее на экран. На этом экране у меня есть кнопка, на которой эта функция вызывает onClick, и я передаю отправителя в качестве аргумента.
Код: Выделить всё
suspend fun onBuyTicket(ticket: Ticket, sender: ActivityResultSender) {
Log.d("TicketDApp", "Starting to buy ticket: ${ticket.id}")
val programId = SolanaPublicKey.from("F75bTjnaqScc9VZz6p5dKxFyxdBNQ48g7UURVZCwTSyH")
val solanaUri = Uri.parse("https://juraj_diplomski.com")
val iconUri = Uri.parse("favicon.ico")
val identityName = "juraj_diplomski"
val walletAdapter = MobileWalletAdapter(
connectionIdentity = ConnectionIdentity(
identityUri = solanaUri,
iconUri = iconUri,
identityName = identityName
),
scenarioProvider = AssociationScenarioProvider()
)
Log.d("TicketDApp", "Wallet adapter initialized")
walletAdapter.transact(sender) { authResult ->
Log.d("TicketDApp", "Transaction authorization result: $authResult")
Вот как выглядит мой логарифм. Обратите внимание, что ошибка WebSocket отображается только тогда, когда приложение кошелька все еще запускается или я выбираю, какое приложение кошелька использовать.
Logcat, часть первая
Logcat, часть вторая
Подробнее здесь:
https://stackoverflow.com/questions/790 ... tom-wallet