@alchemy/aa-core
Version:
viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts
42 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._initUserOperation = void 0;
const account_js_1 = require("../../../errors/account.js");
const client_js_1 = require("../../../errors/client.js");
const index_js_1 = require("../../../utils/index.js");
async function _initUserOperation(client, args) {
const { account = client.account, uo, overrides } = args;
if (!account) {
throw new account_js_1.AccountNotFoundError();
}
if (!client.chain) {
throw new client_js_1.ChainNotFoundError();
}
const entryPoint = account.getEntryPoint();
const callData = Array.isArray(uo)
? account.encodeBatchExecute(uo)
: typeof uo === "string"
? uo
: account.encodeExecute(uo);
const signature = account.getDummySignature();
const nonce = account.getNonce(overrides?.nonceKey);
const struct = entryPoint.version === "0.6.0"
? {
initCode: account.getInitCode(),
sender: account.address,
nonce,
callData,
signature,
}
: {
factory: (0, index_js_1.conditionalReturn)(account.isAccountDeployed().then((deployed) => !deployed), account.getFactoryAddress),
factoryData: (0, index_js_1.conditionalReturn)(account.isAccountDeployed().then((deployed) => !deployed), account.getFactoryData),
sender: account.address,
nonce,
callData,
signature,
};
return struct;
}
exports._initUserOperation = _initUserOperation;
//# sourceMappingURL=initUserOperation.js.map