【问题标题】:How to connect a Phantom wallet to my Flutter web app?如何将 Phantom 钱包连接到我的 Flutter Web 应用程序?
【发布时间】:2021-12-15 01:28:59
【问题描述】:

我一直在尝试将 Flutter 网络应用程序连接到 Phantom 钱包,但没有成功。没有发布任何 pub.dev 包来实现这一点,并且无法弄清楚如何使用 dart-js 互操作来实现。

想知道是否有人已经弄清楚了吗?

【问题讨论】:

标签: flutter dart dart-js-interop solana


【解决方案1】:

我有一段(粗略的)工作代码,可能对尝试完成相同任务的人有用:

// web/index.html

<script src="../lib/wallet.js" />

// wallet.js

class ClientWallet {

    constructor() {
        this.pubKey = '';
    }

    async connect() {
        const resp = await window.solana.connect();
        this.pubKey = resp.publicKey.toString();
    }

    address() {
        return this.pubKey;
    }

    disconnect() {
        window.solana.disconnect();
    }
}

var walletModule = { ClientWallet: ClientWallet };

// main.dart

import 'package:js/js.dart';
import 'package:js/js_util.dart';

@JS('walletModule.ClientWallet')
class ClientWallet {
  external Future<void> connect();
  external void disconnect();
  external String get pubKey;
}

Future<void> connectWallet() async {
  ClientWallet wallet = ClientWallet();
  await promiseToFuture(wallet.connect());
}

然后只需调用 connectWallet() 即可进行连接。这适用于 Phantom 钱包,现在我正在尝试集成 Solana Dart 包以签署交易。

【讨论】:

    猜你喜欢
    • 2022-08-22
    • 2022-06-20
    • 2018-05-08
    • 2017-03-16
    • 1970-01-01
    • 2021-05-02
    • 2022-01-21
    • 1970-01-01
    • 2021-07-08
    相关资源
    最近更新 更多