UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

47 lines (46 loc) 1.53 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_errors_connectors = require("../errors/connectors.js"); //#region src/actions/connect.ts async function connect(config, parameters) { let connector; if (typeof parameters.connector === "function") connector = config._internal.connectors.setup(parameters.connector); else connector = parameters.connector; if (connector.uid === config.state.current) throw new require_errors_connectors.ConnectorAlreadyConnectedError(); try { config.setState((x) => ({ ...x, status: "connecting" })); connector.emitter.emit("message", { type: "connecting" }); const { connector: _, ...rest } = parameters; const data = await connector.connect(rest); const accounts = data.accounts; connector.emitter.off("connect", config._internal.events.connect); connector.emitter.on("change", config._internal.events.change); connector.emitter.on("disconnect", config._internal.events.disconnect); await config.storage?.setItem("recentConnectorId", connector.id); config.setState((x) => ({ ...x, connections: new Map(x.connections).set(connector.uid, { accounts, chainId: data.chainId, connector }), current: connector.uid, status: "connected" })); return { accounts, chainId: data.chainId }; } catch (error) { config.setState((x) => ({ ...x, status: x.current ? "connected" : "disconnected" })); throw error; } } //#endregion exports.connect = connect; //# sourceMappingURL=connect.js.map