Flutter 中的 Solana 钱包
Solana wallet in Flutter
我想连接到任何 Solana 钱包,如 Phantom、Sollet、TrustWallet 等,但似乎没有要集成的包。
我试过了-
- 我为 Phantom 尝试了 Dart JS 互操作,但它也无法正常工作。
也许 Solana 钱包适配器从 Typescript 到 Dart 的转换可能会导致任何解决方案。
感谢任何帮助,谢谢!
目前无法执行此操作,除非存在额外的外部包。您最好的选择可能是将钱包绑定添加到社区 Dart 包中:https://github.com/cryptoplease/cryptoplease-dart
我有一段(粗略的)工作代码
// 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 钱包。
编辑:为了完成这个,我去了 docs for connecting a Phantom wallet. I also had to use Dart-JS interop 让它工作。
我想连接到任何 Solana 钱包,如 Phantom、Sollet、TrustWallet 等,但似乎没有要集成的包。
我试过了-
- 我为 Phantom 尝试了 Dart JS 互操作,但它也无法正常工作。
也许 Solana 钱包适配器从 Typescript 到 Dart 的转换可能会导致任何解决方案。
感谢任何帮助,谢谢!
目前无法执行此操作,除非存在额外的外部包。您最好的选择可能是将钱包绑定添加到社区 Dart 包中:https://github.com/cryptoplease/cryptoplease-dart
我有一段(粗略的)工作代码
// 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 钱包。
编辑:为了完成这个,我去了 docs for connecting a Phantom wallet. I also had to use Dart-JS interop 让它工作。