idquia
Version:
Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, mul
52 lines (45 loc) • 1.4 kB
text/typescript
import type { WalletInit, EIP1193Provider } from '@web3-onboard/common'
let bitgetWalletDependencies: any = null
let bitgetWalletAdapter: any = null
const loadBitgetWalletDependencies = async (getAdapter?: boolean) => {
if (!bitgetWalletDependencies) {
bitgetWalletDependencies = await import('@bitget-wallet/web3-sdk')
}
if (getAdapter && !bitgetWalletAdapter) {
bitgetWalletAdapter = new bitgetWalletDependencies.LegacyEip1193Adapter()
return bitgetWalletAdapter
}
if (getAdapter) {
return bitgetWalletAdapter
}
return bitgetWalletDependencies
}
function bitgetWallet(): WalletInit {
if (typeof window === 'undefined') return () => null
return () => {
return {
label: 'Bitget Wallet',
getIcon: async () => {
const { WalletInfo } = await loadBitgetWalletDependencies()
return WalletInfo.logolist.svg[256];
},
getInterface: async () => {
const {
currentProvider,
getIsInstall,
getDownload,
installWalletMessage
} = await loadBitgetWalletDependencies()
let provider: EIP1193Provider
if (getIsInstall()) {
provider = currentProvider()
} else {
window.open(getDownload(), '_blank')
throw new Error(installWalletMessage)
}
return { provider }
}
}
}
}
export default bitgetWallet