使用Flutter构建的本地移动应用程序连接Metamask



我想将应用程序连接到Metamask,从用户那里获得用户帐户和签名,以确认交易。但问题是,当我从应用程序进入Metamask时,没有人问我任何问题来确认连接,Metamask内部也没有发生任何事情,就像只打开了Metamask应用程序,当我备份并返回应用程序时,会返回空帐户。

_walletConnect() async {
final connector = WalletConnect(
bridge: 'https://bridge.walletconnect.org',
clientMeta: const PeerMeta(
name: 'WalletConnect',
description: 'WalletConnect Developer App',
url: 'https://walletconnect.org',
icons: [
'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
],
),
);
// Subscribe to events
connector.on('connect', (session) => print(session));
connector.on('session_update', (payload) => print(payload));
connector.on('disconnect', (session) => print(session));
// Create a new session
if (!connector.connected) {
session = await connector.createSession(
chainId: 97,
onDisplayUri: (uri) async => {print(uri), await launch(uri)});
}
setState(() {
account = session.accounts[0];
print(account);
});
if (account != null) {
final client = Web3Client(rpc, Client());
EthereumWalletConnectProvider provider =
EthereumWalletConnectProvider(connector);
credentials = WalletConnectEthereumCredentials(provider: provider);
yourContract = ethUtils.getDeployedContract(myAddress, client);
}   

这有时也发生在我身上。我刚刚关闭了MetaMask应用程序,点击了按钮(触发了这个功能(,它运行得很好。

我为此制作了一个库,web3_connect,使用相同的代码,它可以很好地返回地址

相关内容

最新更新