viem
Version:
37 lines • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.estimateUserOperationGas = estimateUserOperationGas;
const parseAccount_js_1 = require("../../../accounts/utils/parseAccount.js");
const account_js_1 = require("../../../errors/account.js");
const getAction_js_1 = require("../../../utils/getAction.js");
const getUserOperationError_js_1 = require("../../utils/errors/getUserOperationError.js");
const userOperationGas_js_1 = require("../../utils/formatters/userOperationGas.js");
const userOperationRequest_js_1 = require("../../utils/formatters/userOperationRequest.js");
const prepareUserOperation_js_1 = require("./prepareUserOperation.js");
async function estimateUserOperationGas(client, parameters) {
const { account: account_ = client.account } = parameters;
if (!account_)
throw new account_js_1.AccountNotFoundError();
const account = (0, parseAccount_js_1.parseAccount)(account_);
const request = await (0, getAction_js_1.getAction)(client, prepareUserOperation_js_1.prepareUserOperation, 'prepareUserOperation')({
...parameters,
parameters: ['factory', 'nonce', 'paymaster', 'signature'],
});
try {
const result = await client.request({
method: 'eth_estimateUserOperationGas',
params: [
(0, userOperationRequest_js_1.formatUserOperationRequest)(request),
account.entryPoint.address,
],
});
return (0, userOperationGas_js_1.formatUserOperationGas)(result);
}
catch (error) {
throw (0, getUserOperationError_js_1.getUserOperationError)(error, {
...request,
calls: parameters.calls,
});
}
}
//# sourceMappingURL=estimateUserOperationGas.js.map