@abstract-foundation/agw-react
Version:
Abstract Global Wallet React Components
46 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractPrivyProvider = exports.agwAppLoginMethod = void 0;
const agw_client_1 = require("@abstract-foundation/agw-client");
const react_auth_1 = require("@privy-io/react-auth");
const react_query_1 = require("@tanstack/react-query");
const react_1 = require("react");
const wagmi_1 = require("wagmi");
const constants_js_1 = require("../constants.js");
const injectWagmiConnector_js_1 = require("./injectWagmiConnector.js");
exports.agwAppLoginMethod = `privy:${constants_js_1.AGW_APP_ID}`;
const AbstractPrivyProvider = ({ chain, transport, queryClient = new react_query_1.QueryClient(), ...props }) => {
if (!agw_client_1.validChains[chain.id]) {
throw new Error(`Chain ${chain.id} is not supported`);
}
const wagmiConfig = (0, wagmi_1.createConfig)({
chains: [chain],
ssr: true,
connectors: [],
transports: {
[chain.id]: transport ??
(0, wagmi_1.http)(undefined, {
batch: true,
}),
},
multiInjectedProviderDiscovery: false,
});
if (!props.config) {
props.config = {
loginMethodsAndOrder: {
primary: [exports.agwAppLoginMethod],
},
};
}
else if (!props.config.loginMethodsAndOrder) {
props.config.loginMethodsAndOrder = {
primary: [exports.agwAppLoginMethod],
};
}
return (react_1.default.createElement(react_auth_1.PrivyProvider, { ...props },
react_1.default.createElement(wagmi_1.WagmiProvider, { config: wagmiConfig },
react_1.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
react_1.default.createElement(injectWagmiConnector_js_1.InjectWagmiConnector, { chain: chain, transport: transport }, props.children)))));
};
exports.AbstractPrivyProvider = AbstractPrivyProvider;
//# sourceMappingURL=abstractPrivyProvider.js.map