@abstract-foundation/agw-client
Version:
Abstract Global Wallet Client SDK
41 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeContractForSessionSync = writeContractForSessionSync;
const viem_1 = require("viem");
const utils_1 = require("viem/utils");
const account_js_1 = require("../errors/account.js");
const sendTransactionForSessionSync_js_1 = require("./sendTransactionForSessionSync.js");
async function writeContractForSessionSync(client, signerClient, publicClient, parameters, session, customPaymasterHandler = undefined) {
const { abi, account: account_ = client.account, address, args, dataSuffix, functionName, throwOnReceiptRevert, timeout, ...request } = parameters;
if (!account_)
throw new account_js_1.AccountNotFoundError({
docsPath: "/docs/contract/writeContract",
});
const account = (0, utils_1.parseAccount)(account_);
const data = (0, viem_1.encodeFunctionData)({
abi,
args,
functionName,
});
try {
return await (0, sendTransactionForSessionSync_js_1.sendTransactionForSessionSync)(client, signerClient, publicClient, {
data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
to: address,
account,
throwOnReceiptRevert,
timeout,
...request,
}, session, customPaymasterHandler);
}
catch (error) {
throw (0, utils_1.getContractError)(error, {
abi,
address,
args,
docsPath: "/docs/contract/writeContract",
functionName,
sender: account.address,
});
}
}
//# sourceMappingURL=writeContractForSessionSync.js.map