UNPKG

@abstract-foundation/agw-web

Version:

Abstract Global Wallet for the web (generic EIP-6963 provider)

53 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.announceProvider = announceProvider; const agw_client_1 = require("@abstract-foundation/agw-client"); const cross_app_connect_1 = require("@privy-io/cross-app-connect"); const viem_1 = require("viem"); const abstract_icon_js_1 = require("./abstract-icon.js"); class EIP6963AnnounceProviderEvent extends CustomEvent { constructor(detail) { super('eip6963:announceProvider', { detail }); } } const eip6963info = { uuid: '2306fd26-fcfb-4f9e-87da-0d1e237e917c', name: 'Abstract Global Wallet', icon: abstract_icon_js_1.default, rdns: 'xyz.abs.privy', }; function announceProvider({ chain, transport, customPaymasterHandler, }) { if (typeof window === 'undefined') { return () => void 0; } const privyProvider = (0, cross_app_connect_1.toPrivyWalletProvider)({ chainId: chain.id, providerAppId: 'cm04asygd041fmry9zmcyn5o5', chains: [chain], transports: { [chain.id]: transport ?? (0, viem_1.http)(undefined, { batch: true, }), }, }); const abstractProvider = (0, agw_client_1.transformEIP1193Provider)({ provider: privyProvider, chain, transport: transport ?? (0, viem_1.http)(undefined, { batch: true, }), isPrivyCrossApp: true, customPaymasterHandler, }); const event = new EIP6963AnnounceProviderEvent({ info: eip6963info, provider: abstractProvider, }); window.dispatchEvent(event); const handler = () => window.dispatchEvent(event); window.addEventListener('eip6963:requestProvider', handler); return () => window.removeEventListener('eip6963:requestProvider', handler); } //# sourceMappingURL=eip6963emitter.js.map