@abstract-foundation/agw-web
Version:
Abstract Global Wallet for the web (generic EIP-6963 provider)
53 lines • 1.89 kB
JavaScript
;
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