UNPKG

@abstract-foundation/agw-client

Version:
46 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendTransaction = sendTransaction; 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 sendTransaction(client, signerClient, publicClient, parameters, isPrivyCrossApp = false, customPaymasterHandler = undefined) { if (isPrivyCrossApp) { try { let paymasterData = {}; const requestAsAny = parameters; if (customPaymasterHandler && !requestAsAny.paymaster && !requestAsAny.paymasterInput) { paymasterData = await customPaymasterHandler({ ...parameters, from: client.account.address, chainId: parameters.chain?.id ?? client.chain.id, }); } const updatedParameters = { ...parameters, ...paymasterData, }; const signedTx = await (0, sendPrivyTransaction_js_1.signPrivyTransaction)(client, updatedParameters); return await publicClient.sendRawTransaction({ serializedTransaction: signedTx, }); } 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, { ...parameters, account: parameters.account ? (0, utils_1.parseAccount)(parameters.account) : null, chain: parameters.chain ?? undefined, }); } } return (0, sendTransactionInternal_js_1.sendTransactionInternal)(client, signerClient, publicClient, parameters, constants_js_1.EOA_VALIDATOR_ADDRESS, {}, customPaymasterHandler); } //# sourceMappingURL=sendTransaction.js.map