Anchor与Scatter一起用
一、登录时选择钱包
把选择的钱包写入本地存储,最好写入
sessionStorage中,这样页面关闭时就不存在了,下次页面重新打开需要重新登录。注意:如果是APLink访问,则不需要选择
Anchor钱包,毕竟没办法扫码自己。
export const isAPLink = window.navigator.userAgent
.toLowerCase()
.includes('aplink');如果是APlink访问,直接选择第一个钱包,即scatter,否则弹出钱包选择框,让用户自己选择钱包。
<div
className={styles.btn}
onClick={() => isAPLink ? selectWallet(walletList[0]) : setShowWalletList(true)}
>
{intl.get('connectWallet')}
</div>如果是anchor登录,需要把
link实例存放好,因为无关页面渲染,所以在NFTone中直接存入全局变量中。
export function initLink() {
if (!window.__LINK__) {
const transport = new AnchorLinkBrowserTransport();
const link = new AnchorLink({
transport,
service: "https://fwd.aplink.app", // 'ws://192.168.80.152:7001', // 'http://fwd.aplink.app', //
chains: [
{
chainId: network.chainId,
nodeUrl: `${network.protocol}://${network.host}`,
},
],
});
window.__LINK__ = link;
}
return window.__LINK__;
}
// 登录
export async function login(dispatch) {
const link = initLink();
const identity = await link.login(scope);
// ...
}二、具体交易的发起
写个工具函数实现不同钱包发起交易不同
然后我们就可以愉快的修改以前基于
Scatter写的代码了。
修改为
是不是很简单
三、不依赖钱包的链上查询,则使用 '@amax/amaxjs来实现
如何与后端进行登录验证?
最后更新于