UNPKG

@renegade-fi/core

Version:
41 lines 1.79 kB
import { createWallet } from "./createWallet.js"; import { getWalletFromRelayer } from "./getWalletFromRelayer.js"; import { getWalletId } from "./getWalletId.js"; import { checkForWalletUpdatesOnChain, lookupWallet } from "./lookupWallet.js"; export async function connect(config, params = {}) { const logger = config.getLogger("core:actions:connect"); try { const { isCreateWallet = false } = params; const walletId = getWalletId(config); config.setState((x) => ({ ...x, id: walletId })); logger.debug("Attempting to connect wallet", { walletId: config.state.id }); try { const wallet = await getWalletFromRelayer(config); if (wallet) { config.setState((x) => ({ ...x, status: "in relayer" })); logger.debug("Wallet found in relayer", { walletId: config.state.id }); return; } } catch (error) { logger.error(`Wallet not found in relayer: ${error instanceof Error ? error.message : String(error)}`, { walletId: config.state.id }); } // Create wallet iff no WalletUpdated events found onchain const shouldCreateWallet = await checkForWalletUpdatesOnChain(config); if (shouldCreateWallet || isCreateWallet) { return Promise.resolve({ isLookup: false, job: createWallet(config), }); } return Promise.resolve({ isLookup: true, job: lookupWallet(config), }); } catch (error) { logger.error(`Could not connect wallet: ${error instanceof Error ? error.message : String(error)}`, { walletId: config.state.id }); config.setState({}); } } //# sourceMappingURL=connect.js.map