UNPKG

@abstract-foundation/agw-client

Version:
56 lines 2.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendTransactionSync = sendTransactionSync; const actions_1 = require("viem/actions"); const utils_1 = require("viem/utils"); const constants_js_1 = require("../constants.js"); const insufficientBalance_js_1 = require("../errors/insufficientBalance.js"); const sendPrivyTransaction_js_1 = require("./sendPrivyTransaction.js"); const sendTransactionInternal_js_1 = require("./sendTransactionInternal.js"); async function sendTransactionSync(client, signerClient, publicClient, parameters, isPrivyCrossApp = false, customPaymasterHandler = undefined) { const { throwOnReceiptRevert, timeout, ...txParameters } = parameters; if (isPrivyCrossApp) { try { let paymasterData = {}; const requestAsAny = txParameters; if (customPaymasterHandler && !requestAsAny.paymaster && !requestAsAny.paymasterInput) { paymasterData = await customPaymasterHandler({ ...txParameters, from: client.account.address, chainId: txParameters.chain?.id ?? client.chain.id, }); } const updatedParameters = { ...txParameters, ...paymasterData, }; const signedTx = await (0, sendPrivyTransaction_js_1.signPrivyTransaction)(client, updatedParameters); return await (0, actions_1.sendRawTransactionSync)(publicClient, { serializedTransaction: signedTx, throwOnReceiptRevert, timeout, }); } catch (err) { if (err instanceof Error && err.message.includes(constants_js_1.INSUFFICIENT_BALANCE_SELECTOR)) { throw new insufficientBalance_js_1.InsufficientBalanceError(); } throw (0, utils_1.getTransactionError)(err, { ...txParameters, account: txParameters.account ? (0, utils_1.parseAccount)(txParameters.account) : null, chain: txParameters.chain ?? undefined, }); } } return (0, sendTransactionInternal_js_1.sendTransactionInternal)(client, signerClient, publicClient, txParameters, constants_js_1.EOA_VALIDATOR_ADDRESS, {}, customPaymasterHandler, (serializedTransaction) => (0, utils_1.getAction)(client, actions_1.sendRawTransactionSync, "sendRawTransactionSync")({ serializedTransaction, throwOnReceiptRevert, timeout, })); } //# sourceMappingURL=sendTransactionSync.js.map