所以我有一个带有nextjs的react应用程序,当用户使用Phantom钱包扩展并切换帐户时,我需要在其中获取事件触发器。我在他们的文档中找不到任何相关内容:https://docs.phantom.app/
我想知道是否有人遇到这个问题。基本上我有window.solana对象,但它没有触发用户登录
因此Phantom本身不会在其window.solana
对象上公开任何特定于帐户切换的API。
不过,你可以做一些技巧来了解账户何时切换。
您可以连续轮询当前连接的帐户,并将publicKey设置为某个变量。当publicKey更改时,您可以触发事件。
伪码示例:
let currentKey = '';
poll(() => {
if (/* wallet available and connected */) {
await /* Action that updates publicKey */
if (currentKey !== wallet.publicKey.toBase58()) {
currentKey = wallet.publicKey.toBase58();
this.publicKey = wallet.publicKey;
this.emit('change')
}
}
})
你可以在这里找到我们目前在钱包适配器上的记录和PR。
Phantom现在发出accountChanged
事件:https://docs.phantom.app/integrating/extension-and-in-app-browser-web-apps/establishing-a-connection#changing-账户