我一直在嘗試將 Flutter 網路應用程式連接到 Phantom 錢包,但沒有成功。沒有發布 pub.dev 包來實作這一點,并且無法弄清楚如何使用 dart-js 互操作來做到這一點。
想知道是否有人已經想通了?
uj5u.com熱心網友回復:
我有一段(粗略的)作業代碼,可能對試圖完成相同任務的人有用:
// 網頁/index.html
<script src="../lib/wallet.js" />
// 錢包.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 包以簽署交易。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/343523.html
標籤:扑 镖 dart-js-interop 索拉纳
