UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

77 lines (76 loc) 1.74 kB
import { deepEqual } from "@bigmi/core"; //#region src/actions/getAccount.ts let previousAccount; function getAccount(config) { const uid = config.state.current; const connection = config.state.connections.get(uid); const accounts = connection?.accounts; const account = accounts?.[0]; const chain = config.chains.find((chain) => chain.id === connection?.chainId); const status = config.state.status; let result; switch (status) { case "connected": result = { account, accounts, chain, chainId: connection.chainId, connector: connection.connector, isConnected: true, isConnecting: false, isDisconnected: false, isReconnecting: false, status }; break; case "reconnecting": result = { account, accounts, chain, chainId: connection?.chainId, connector: connection?.connector, isConnected: !!account, isConnecting: false, isDisconnected: false, isReconnecting: true, status }; break; case "connecting": result = { account, accounts, chain, chainId: connection?.chainId, connector: connection?.connector, isConnected: false, isConnecting: true, isDisconnected: false, isReconnecting: false, status }; break; case "disconnected": result = { account: void 0, accounts: void 0, chain: void 0, chainId: void 0, connector: void 0, isConnected: false, isConnecting: false, isDisconnected: true, isReconnecting: false, status }; break; } if (previousAccount && deepEqual(previousAccount, result)) return previousAccount; previousAccount = result; return result; } //#endregion export { getAccount }; //# sourceMappingURL=getAccount.js.map