UNPKG

@zerodev/sdk

Version:

A utility library for working with ERC-4337

52 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uninstallPlugin = void 0; const account_abstraction_1 = require("viem/account-abstraction"); const utils_1 = require("viem/utils"); const KernelAccountAbi_js_1 = require("../../accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js"); const constants_js_1 = require("../../constants.js"); const index_js_1 = require("../../errors/index.js"); async function uninstallPlugin(client, args) { const { account: account_ = client.account, plugin, hook, ...restArgs } = args; if (!account_) throw new index_js_1.AccountNotFoundError({ docsPath: "/docs/actions/wallet/sendTransaction" }); const account = (0, utils_1.parseAccount)(account_); let validatorId; if ([ constants_js_1.VALIDATOR_TYPE.PERMISSION, constants_js_1.VALIDATOR_TYPE.SECONDARY, constants_js_1.VALIDATOR_TYPE.EIP7702 ].includes(constants_js_1.VALIDATOR_TYPE[plugin.validatorType])) { validatorId = (0, utils_1.concatHex)([ constants_js_1.VALIDATOR_TYPE[plugin.validatorType], (0, utils_1.pad)(plugin.getIdentifier(), { size: 20, dir: "right" }) ]); } else { throw new Error(`Cannot uninstall ${plugin.validatorType} plugin`); } const validatorData = await plugin.getEnableData(account.address); const hookData = (await hook?.getEnableData(account.address)) ?? "0x"; return await (0, utils_1.getAction)(client, account_abstraction_1.sendUserOperation, "sendUserOperation")({ ...restArgs, calls: [ { to: account.address, data: (0, utils_1.encodeFunctionData)({ abi: KernelAccountAbi_js_1.KernelV3AccountAbi, functionName: "uninstallValidation", args: [validatorId, validatorData, hookData] }), value: 0n } ], account }); } exports.uninstallPlugin = uninstallPlugin; //# sourceMappingURL=uninstallPlugin.js.map