@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
38 lines • 1.44 kB
JavaScript
import { AccountNotFoundError } from "../../../errors/account.js";
import { ChainNotFoundError } from "../../../errors/client.js";
import { conditionalReturn } from "../../../utils/index.js";
export async function _initUserOperation(client, args) {
const { account = client.account, uo, overrides } = args;
if (!account) {
throw new AccountNotFoundError();
}
if (!client.chain) {
throw new 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: conditionalReturn(account.isAccountDeployed().then((deployed) => !deployed), account.getFactoryAddress),
factoryData: conditionalReturn(account.isAccountDeployed().then((deployed) => !deployed), account.getFactoryData),
sender: account.address,
nonce,
callData,
signature,
};
return struct;
}
//# sourceMappingURL=initUserOperation.js.map