UNPKG

@abstract-foundation/agw-react

Version:
66 lines 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.abstractWalletConnector = abstractWalletConnector; const agw_client_1 = require("@abstract-foundation/agw-client"); const rainbow_kit_1 = require("@privy-io/cross-app-connect/rainbow-kit"); const viem_1 = require("viem"); const constants_js_1 = require("./constants.js"); function abstractWalletConnector(options = {}) { const { rkDetails, customPaymasterHandler } = options; return (params) => { const chains = [...params.chains]; let defaultChain = params.chains[0]; const validChainIds = Object.keys(agw_client_1.validChains) .map(Number) .sort(function (a, b) { return a - b; }); for (const chainId of validChainIds) { const chainIndex = chains.findIndex((chain) => chain.id === chainId); const hasChain = chainIndex !== -1; if (hasChain) { const removedChains = chains.splice(chainIndex, 1); defaultChain = removedChains[0] ?? defaultChain; break; } } const connector = (0, rainbow_kit_1.toPrivyWalletConnector)({ iconUrl: constants_js_1.ICON_URL, id: constants_js_1.AGW_APP_ID, name: 'Abstract', })({ ...params, chains: [defaultChain, ...chains], }); const getAbstractProvider = async (parameters) => { const chainId = parameters?.chainId ?? defaultChain.id; if (!agw_client_1.validChains[chainId]) { throw new Error('Unsupported chain'); } const chain = params.chains.find((c) => c.id === chainId) ?? agw_client_1.validChains[chainId]; const provider = await connector.getProvider({ chainId, }); const transport = params.transports?.[chainId] ?? (0, viem_1.http)(undefined, { batch: true, }); return (0, agw_client_1.transformEIP1193Provider)({ provider, chain, transport, isPrivyCrossApp: true, customPaymasterHandler, }); }; const abstractConnector = { ...connector, ...rkDetails, getProvider: getAbstractProvider, type: 'injected', id: 'xyz.abs.privy', }; return abstractConnector; }; } //# sourceMappingURL=abstractWalletConnector.js.map