import type { MultiChain } from 'bnc-sdk' import type SDK from 'bnc-sdk' import { configuration } from './configuration.js' import { handleTransactionUpdates } from './notify.js' let blocknativeMultiChainSdk: MultiChain let blocknativeSdk: SDK /** * * @returns MultiChain SDK if apiKey */ export async function getBNMulitChainSdk(): Promise { const { apiKey } = configuration if (!apiKey) return null if (!blocknativeMultiChainSdk) { const { default: Blocknative } = await import('bnc-sdk') blocknativeMultiChainSdk = Blocknative.multichain({ apiKey: configuration.apiKey }) blocknativeMultiChainSdk.transactions$.subscribe(handleTransactionUpdates) } return blocknativeMultiChainSdk } /** * * @returns SDK if apiKey */ export async function getBlocknativeSdk(): Promise { const { apiKey } = configuration if (!apiKey) return null if (!blocknativeSdk) { const { default: Blocknative } = await import('bnc-sdk') blocknativeSdk = new Blocknative({ dappId: configuration.apiKey, networkId: 1 }) return blocknativeSdk } return blocknativeSdk }