@web3modal/base
Version:
#### 🔗 [Website](https://web3modal.com)
33 lines • 1.49 kB
JavaScript
import { getWallets } from '@wallet-standard/app';
import { WalletStandardProvider } from '../providers/WalletStandardProvider.js';
import { isWalletAdapterCompatibleStandardWallet } from '@solana/wallet-adapter-base';
import { SolStoreUtil } from '@web3modal/scaffold-utils/solana';
const { get, on } = getWallets();
let standardAdapters = wrapWalletsWithAdapters(get());
export function watchStandard(callback) {
const listeners = [
on('register', (...wallets) => {
if (!standardAdapters || standardAdapters.length === 0) {
standardAdapters = [...wrapWalletsWithAdapters(wallets)];
}
else {
standardAdapters = [...standardAdapters, ...wrapWalletsWithAdapters(wallets)];
}
callback(standardAdapters);
}),
on('unregister', (...wallets) => {
standardAdapters = standardAdapters.filter(standardAdapter => wallets.some(wallet => wallet.name === standardAdapter.wallet.name));
callback(standardAdapters);
})
];
standardAdapters = wrapWalletsWithAdapters(get());
callback(standardAdapters);
return () => listeners.forEach(off => off());
}
function wrapWalletsWithAdapters(wallets) {
return wallets.filter(isWalletAdapterCompatibleStandardWallet).map(wallet => new WalletStandardProvider({
wallet,
getActiveChain: () => SolStoreUtil.state.currentChain
}));
}
//# sourceMappingURL=watchStandard.js.map