UNPKG

@pushchain/ui-kit

Version:
67 lines 3.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePushChainClient = void 0; const tslib_1 = require("tslib"); const core_1 = require("@pushchain/core"); const progress_hook_types_1 = require("@pushchain/core/src/lib/progress-hook/progress-hook.types"); const usePushWallet_1 = require("./usePushWallet"); const react_1 = require("react"); const usePushChainClient = (uid) => { const { universalAccount, handleSignMessage, handleSignAndSendTransaction, handleSignTypedData, config, setProgress, } = (0, usePushWallet_1.usePushWalletContext)(uid); const [pushChain, setPushChain] = (0, react_1.useState)(null); const [error, setError] = (0, react_1.useState)(null); // initialise Push Chain instance here and export that (0, react_1.useEffect)(() => { const initializePushChain = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { var _a, _b, _c; if (!universalAccount) { setPushChain(null); return; } const CHAINS = core_1.PushChain.CONSTANTS.CHAIN; const isSolana = [ CHAINS.SOLANA_DEVNET, CHAINS.SOLANA_MAINNET, CHAINS.SOLANA_TESTNET, ].includes(universalAccount.chain); try { const signerSkeleton = core_1.PushChain.utils.signer.construct(universalAccount, { signMessage: handleSignMessage, signAndSendTransaction: handleSignAndSendTransaction, signTypedData: isSolana ? undefined : handleSignTypedData, }); const universalSigner = yield core_1.PushChain.utils.signer.toUniversal(signerSkeleton); const pushChainClient = yield core_1.PushChain.initialize(universalSigner, { network: config.network, progressHook: (progress) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { setProgress(progress); if (progress.id === progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01 || progress.id === progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_02) { setTimeout(() => setProgress(null), 5000); } }), rpcUrls: (_a = config.chainConfig) === null || _a === void 0 ? void 0 : _a.rpcUrls, blockExplorers: (_b = config.chainConfig) === null || _b === void 0 ? void 0 : _b.blockExplorers, printTraces: (_c = config.chainConfig) === null || _c === void 0 ? void 0 : _c.printTraces, }); setPushChain(pushChainClient); setError(null); } catch (err) { console.log('Error occured when initialising Push chain', err); setError(err instanceof Error ? err : new Error('Failed to initialize PushChain')); setPushChain(null); } }); initializePushChain(); }, [universalAccount, config]); return { pushChainClient: pushChain, error, isInitialized: !!pushChain && !error, }; }; exports.usePushChainClient = usePushChainClient; //# sourceMappingURL=usePushChainClient.js.map