Socket
Socket
Sign inDemoInstall

@alchemy/aa-accounts

Package Overview
Dependencies
Maintainers
2
Versions
94
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@alchemy/aa-accounts - npm Package Compare versions

Comparing version 3.6.1 to 3.8.0

dist/cjs/plugindefs/multisig/abi.d.ts

29

./dist/cjs/src/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMSCAUpgradeToData = exports.getMAInitializationData = exports.getDefaultMultiOwnerModularAccountFactoryAddress = exports.buildSessionKeysToRemoveStruct = exports.SessionKeySigner = exports.SessionKeyPluginExecutionFunctionAbi = exports.SessionKeyPluginAbi = exports.SessionKeyPlugin = exports.SessionKeyPermissionsBuilder = exports.SessionKeyAccessListType = exports.sessionKeyPluginActions = exports.MultiOwnerPluginExecutionFunctionAbi = exports.MultiOwnerPluginAbi = exports.MultiOwnerPlugin = exports.multiOwnerPluginActions = exports.installPlugin = exports.pluginManagerActions = exports.createMultiOwnerModularAccountClient = exports.standardExecutor = exports.createMultiOwnerModularAccount = exports.accountLoupeActions = exports.UpgradeableModularAccountAbi = exports.MultiOwnerModularAccountFactoryAbi = exports.IStandardExecutorAbi = exports.IPluginManagerAbi = exports.IPluginAbi = exports.IAccountLoupeAbi = exports.getDefaultNaniAccountFactoryAddress = exports.transferNaniAccountOwnership = exports.createNaniAccount = exports.getLightAccountVersion = exports.getDefaultLightAccountFactoryAddress = exports.LightAccountVersions = exports.LightAccountUnsupported1271Impls = exports.LightAccountUnsupported1271Factories = exports.lightAccountClientActions = exports.createLightAccountClient = exports.transferLightAccountOwnership = exports.createLightAccount = void 0;
exports.formatSignatures = exports.combineSignatures = exports.getMSCAUpgradeToData = exports.getMAInitializationData = exports.getDefaultMultisigModularAccountFactoryAddress = exports.getDefaultMultiOwnerModularAccountFactoryAddress = exports.buildSessionKeysToRemoveStruct = exports.SessionKeySigner = exports.SessionKeyPluginExecutionFunctionAbi = exports.SessionKeyPluginAbi = exports.SessionKeyPlugin = exports.SessionKeyPermissionsBuilder = exports.SessionKeyAccessListType = exports.sessionKeyPluginActions = exports.multisigSignatureMiddleware = exports.multisigPluginActions = exports.MultisigPluginExecutionFunctionAbi = exports.MultisigPluginAbi = exports.MultisigPlugin = exports.MultiOwnerPluginExecutionFunctionAbi = exports.MultiOwnerPluginAbi = exports.MultiOwnerPlugin = exports.multiOwnerPluginActions = exports.installPlugin = exports.pluginManagerActions = exports.createMultisigModularAccountClient = exports.createMultiOwnerModularAccountClient = exports.standardExecutor = exports.createMultisigModularAccount = exports.createMultiOwnerModularAccount = exports.accountLoupeActions = exports.UpgradeableModularAccountAbi = exports.MultisigModularAccountFactoryAbi = exports.MultiOwnerModularAccountFactoryAbi = exports.IStandardExecutorAbi = exports.IPluginManagerAbi = exports.IPluginAbi = exports.IAccountLoupeAbi = exports.getDefaultNaniAccountFactoryAddress = exports.transferNaniAccountOwnership = exports.createNaniAccount = exports.getLightAccountVersion = exports.getDefaultLightAccountFactoryAddress = exports.LightAccountVersions = exports.LightAccountUnsupported1271Impls = exports.LightAccountUnsupported1271Factories = exports.lightAccountClientActions = exports.createLightAccountClient = exports.transferLightAccountOwnership = exports.createLightAccount = void 0;
exports.MultisigAccountExpectedError = exports.MultisigMissingSignatureError = exports.InvalidAggregatedSignatureError = exports.InvalidContextSignatureError = exports.splitAggregatedSignature = exports.getSignerType = void 0;
var account_js_1 = require("./light-account/account.js");

@@ -34,2 +35,4 @@ Object.defineProperty(exports, "createLightAccount", { enumerable: true, get: function () { return account_js_1.createLightAccount; } });

Object.defineProperty(exports, "MultiOwnerModularAccountFactoryAbi", { enumerable: true, get: function () { return MultiOwnerModularAccountFactory_js_1.MultiOwnerModularAccountFactoryAbi; } });
var MultisigModularAccountFactory_js_1 = require("./msca/abis/MultisigModularAccountFactory.js");
Object.defineProperty(exports, "MultisigModularAccountFactoryAbi", { enumerable: true, get: function () { return MultisigModularAccountFactory_js_1.MultisigModularAccountFactoryAbi; } });
var UpgradeableModularAccount_js_1 = require("./msca/abis/UpgradeableModularAccount.js");

@@ -41,2 +44,4 @@ Object.defineProperty(exports, "UpgradeableModularAccountAbi", { enumerable: true, get: function () { return UpgradeableModularAccount_js_1.UpgradeableModularAccountAbi; } });

Object.defineProperty(exports, "createMultiOwnerModularAccount", { enumerable: true, get: function () { return multiOwnerAccount_js_1.createMultiOwnerModularAccount; } });
var multisigAccount_js_1 = require("./msca/account/multisigAccount.js");
Object.defineProperty(exports, "createMultisigModularAccount", { enumerable: true, get: function () { return multisigAccount_js_1.createMultisigModularAccount; } });
var standardExecutor_js_1 = require("./msca/account/standardExecutor.js");

@@ -46,2 +51,3 @@ Object.defineProperty(exports, "standardExecutor", { enumerable: true, get: function () { return standardExecutor_js_1.standardExecutor; } });

Object.defineProperty(exports, "createMultiOwnerModularAccountClient", { enumerable: true, get: function () { return client_js_2.createMultiOwnerModularAccountClient; } });
Object.defineProperty(exports, "createMultisigModularAccountClient", { enumerable: true, get: function () { return client_js_2.createMultisigModularAccountClient; } });
var decorator_js_3 = require("./msca/plugin-manager/decorator.js");

@@ -57,4 +63,10 @@ Object.defineProperty(exports, "pluginManagerActions", { enumerable: true, get: function () { return decorator_js_3.pluginManagerActions; } });

Object.defineProperty(exports, "MultiOwnerPluginExecutionFunctionAbi", { enumerable: true, get: function () { return plugin_js_1.MultiOwnerPluginExecutionFunctionAbi; } });
var index_js_2 = require("./msca/plugins/session-key/index.js");
Object.defineProperty(exports, "sessionKeyPluginActions", { enumerable: true, get: function () { return index_js_2.sessionKeyPluginActions; } });
var index_js_2 = require("./msca/plugins/multisig/index.js");
Object.defineProperty(exports, "MultisigPlugin", { enumerable: true, get: function () { return index_js_2.MultisigPlugin; } });
Object.defineProperty(exports, "MultisigPluginAbi", { enumerable: true, get: function () { return index_js_2.MultisigPluginAbi; } });
Object.defineProperty(exports, "MultisigPluginExecutionFunctionAbi", { enumerable: true, get: function () { return index_js_2.MultisigPluginExecutionFunctionAbi; } });
Object.defineProperty(exports, "multisigPluginActions", { enumerable: true, get: function () { return index_js_2.multisigPluginActions; } });
Object.defineProperty(exports, "multisigSignatureMiddleware", { enumerable: true, get: function () { return index_js_2.multisigSignatureMiddleware; } });
var index_js_3 = require("./msca/plugins/session-key/index.js");
Object.defineProperty(exports, "sessionKeyPluginActions", { enumerable: true, get: function () { return index_js_3.sessionKeyPluginActions; } });
var permissions_js_1 = require("./msca/plugins/session-key/permissions.js");

@@ -73,4 +85,15 @@ Object.defineProperty(exports, "SessionKeyAccessListType", { enumerable: true, get: function () { return permissions_js_1.SessionKeyAccessListType; } });

Object.defineProperty(exports, "getDefaultMultiOwnerModularAccountFactoryAddress", { enumerable: true, get: function () { return utils_js_4.getDefaultMultiOwnerModularAccountFactoryAddress; } });
Object.defineProperty(exports, "getDefaultMultisigModularAccountFactoryAddress", { enumerable: true, get: function () { return utils_js_4.getDefaultMultisigModularAccountFactoryAddress; } });
Object.defineProperty(exports, "getMAInitializationData", { enumerable: true, get: function () { return utils_js_4.getMAInitializationData; } });
Object.defineProperty(exports, "getMSCAUpgradeToData", { enumerable: true, get: function () { return utils_js_4.getMSCAUpgradeToData; } });
var index_js_4 = require("./msca/plugins/multisig/utils/index.js");
Object.defineProperty(exports, "combineSignatures", { enumerable: true, get: function () { return index_js_4.combineSignatures; } });
Object.defineProperty(exports, "formatSignatures", { enumerable: true, get: function () { return index_js_4.formatSignatures; } });
Object.defineProperty(exports, "getSignerType", { enumerable: true, get: function () { return index_js_4.getSignerType; } });
Object.defineProperty(exports, "splitAggregatedSignature", { enumerable: true, get: function () { return index_js_4.splitAggregatedSignature; } });
var errors_js_1 = require("./msca/errors.js");
Object.defineProperty(exports, "InvalidContextSignatureError", { enumerable: true, get: function () { return errors_js_1.InvalidContextSignatureError; } });
Object.defineProperty(exports, "InvalidAggregatedSignatureError", { enumerable: true, get: function () { return errors_js_1.InvalidAggregatedSignatureError; } });
Object.defineProperty(exports, "MultisigMissingSignatureError", { enumerable: true, get: function () { return errors_js_1.MultisigMissingSignatureError; } });
Object.defineProperty(exports, "MultisigAccountExpectedError", { enumerable: true, get: function () { return errors_js_1.MultisigAccountExpectedError; } });
//# sourceMappingURL=index.js.map
export { MultiOwnerPluginGenConfig } from "./multi-owner/config.js";
export { SessionKeyPluginGenConfig } from "./session-key/config.js";
export { MultisigPluginGenConfig } from "./multisig/config.js";

4

dist/cjs/plugindefs/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SessionKeyPluginGenConfig = exports.MultiOwnerPluginGenConfig = void 0;
exports.MultisigPluginGenConfig = exports.SessionKeyPluginGenConfig = exports.MultiOwnerPluginGenConfig = void 0;
var config_js_1 = require("./multi-owner/config.js");

@@ -8,2 +8,4 @@ Object.defineProperty(exports, "MultiOwnerPluginGenConfig", { enumerable: true, get: function () { return config_js_1.MultiOwnerPluginGenConfig; } });

Object.defineProperty(exports, "SessionKeyPluginGenConfig", { enumerable: true, get: function () { return config_js_2.SessionKeyPluginGenConfig; } });
var config_js_3 = require("./multisig/config.js");
Object.defineProperty(exports, "MultisigPluginGenConfig", { enumerable: true, get: function () { return config_js_3.MultisigPluginGenConfig; } });
//# sourceMappingURL=index.js.map

@@ -41,2 +41,3 @@ "use strict";

addImport("@alchemy/aa-core", { name: "IncompatibleClientError" });
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });
const providerFunctionDefs = [];

@@ -50,3 +51,4 @@ const providerFunctions = executionAbi

overrides,
account = client.account
context,
account = client.account
}`

@@ -59,3 +61,5 @@ : (0, dedent_1.default) `{

providerFunctionDefs.push((0, dedent_1.default) `
${(0, change_case_1.camelCase)(n.name)}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args"> & { overrides?: UserOperationOverrides; } & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
${(0, change_case_1.camelCase)(n.name)}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args"> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
`);

@@ -78,7 +82,7 @@ const methodName = (0, change_case_1.camelCase)(n.name);

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
}
`;
});
addType("ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>", (0, dedent_1.default) `{
addType("ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>", (0, dedent_1.default) `{
${providerFunctionDefs.join(";\n\n")}

@@ -92,4 +96,4 @@ }`);

| SmartContractAccount
| undefined>`, (0, dedent_1.default) `
ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions${hasReadMethods ? "<TAccount>" : ""}
| undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>`, (0, dedent_1.default) `
ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions${hasReadMethods ? "<TAccount>" : ""}
`, true);

@@ -102,6 +106,7 @@ input.content.push((0, dedent_1.default) `

| SmartContractAccount
| undefined
| undefined,
TContext extends Record<string, any> | undefined = Record<string, any> | undefined
>(
client: Client<TTransport, TChain, TAccount>
) => ${contract.name}Actions<TAccount> = (client) => ({ ${providerFunctions.join(",\n")} });
) => ${contract.name}Actions<TAccount, TContext> = (client) => ({ ${providerFunctions.join(",\n")} });
`);

@@ -108,0 +113,0 @@ return input;

@@ -20,4 +20,6 @@ "use strict";

}`, true);
addType("ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>", (0, dedent_1.default) `{
install${contract.name}: (args: {overrides?: UserOperationOverrides} & Install${contract.name}Params & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
addType("ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string,any> | undefined>", (0, dedent_1.default) `{
install${contract.name}: (args: {
overrides?: UserOperationOverrides;
} & Install${contract.name}Params & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
}`);

@@ -39,3 +41,3 @@ const dependencies = (config.installConfig.dependencies ?? []).map((x) => (0, dedent_1.default) `

input.content.push((0, dedent_1.default) `
${installMethodName}({account = client.account, overrides, ...params}) {
${installMethodName}({account = client.account, overrides, context, ...params}) {
if (!account) {

@@ -67,2 +69,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -97,3 +100,4 @@ }

});
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });
};
//# sourceMappingURL=management-actions.js.map

@@ -17,2 +17,3 @@ export type * from "./light-account/account.js";

export { MultiOwnerModularAccountFactoryAbi } from "./msca/abis/MultiOwnerModularAccountFactory.js";
export { MultisigModularAccountFactoryAbi } from "./msca/abis/MultisigModularAccountFactory.js";
export { UpgradeableModularAccountAbi } from "./msca/abis/UpgradeableModularAccount.js";

@@ -24,4 +25,6 @@ export type * from "./msca/account-loupe/decorator.js";

export { createMultiOwnerModularAccount } from "./msca/account/multiOwnerAccount.js";
export type * from "./msca/account/multisigAccount.js";
export { createMultisigModularAccount } from "./msca/account/multisigAccount.js";
export { standardExecutor } from "./msca/account/standardExecutor.js";
export { createMultiOwnerModularAccountClient } from "./msca/client.js";
export { createMultiOwnerModularAccountClient, createMultisigModularAccountClient, } from "./msca/client.js";
export type * from "./msca/plugin-manager/decorator.js";

@@ -33,2 +36,4 @@ export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";

export { MultiOwnerPlugin, MultiOwnerPluginAbi, MultiOwnerPluginExecutionFunctionAbi, } from "./msca/plugins/multi-owner/plugin.js";
export type * from "./msca/plugins/multisig/index.js";
export { MultisigPlugin, MultisigPluginAbi, MultisigPluginExecutionFunctionAbi, type SignerType, multisigPluginActions, multisigSignatureMiddleware, } from "./msca/plugins/multisig/index.js";
export type * from "./msca/plugins/session-key/index.js";

@@ -42,2 +47,4 @@ export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";

export type * from "./msca/plugins/types.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getDefaultMultisigModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { combineSignatures, formatSignatures, getSignerType, splitAggregatedSignature, } from "./msca/plugins/multisig/utils/index.js";
export { InvalidContextSignatureError, InvalidAggregatedSignatureError, MultisigMissingSignatureError, MultisigAccountExpectedError, } from "./msca/errors.js";
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMSCAUpgradeToData = exports.getMAInitializationData = exports.getDefaultMultiOwnerModularAccountFactoryAddress = exports.buildSessionKeysToRemoveStruct = exports.SessionKeySigner = exports.SessionKeyPluginExecutionFunctionAbi = exports.SessionKeyPluginAbi = exports.SessionKeyPlugin = exports.SessionKeyPermissionsBuilder = exports.SessionKeyAccessListType = exports.sessionKeyPluginActions = exports.MultiOwnerPluginExecutionFunctionAbi = exports.MultiOwnerPluginAbi = exports.MultiOwnerPlugin = exports.multiOwnerPluginActions = exports.installPlugin = exports.pluginManagerActions = exports.createMultiOwnerModularAccountClient = exports.standardExecutor = exports.createMultiOwnerModularAccount = exports.accountLoupeActions = exports.UpgradeableModularAccountAbi = exports.MultiOwnerModularAccountFactoryAbi = exports.IStandardExecutorAbi = exports.IPluginManagerAbi = exports.IPluginAbi = exports.IAccountLoupeAbi = exports.getDefaultNaniAccountFactoryAddress = exports.transferNaniAccountOwnership = exports.createNaniAccount = exports.getLightAccountVersion = exports.getDefaultLightAccountFactoryAddress = exports.LightAccountVersions = exports.LightAccountUnsupported1271Impls = exports.LightAccountUnsupported1271Factories = exports.lightAccountClientActions = exports.createLightAccountClient = exports.transferLightAccountOwnership = exports.createLightAccount = void 0;
exports.formatSignatures = exports.combineSignatures = exports.getMSCAUpgradeToData = exports.getMAInitializationData = exports.getDefaultMultisigModularAccountFactoryAddress = exports.getDefaultMultiOwnerModularAccountFactoryAddress = exports.buildSessionKeysToRemoveStruct = exports.SessionKeySigner = exports.SessionKeyPluginExecutionFunctionAbi = exports.SessionKeyPluginAbi = exports.SessionKeyPlugin = exports.SessionKeyPermissionsBuilder = exports.SessionKeyAccessListType = exports.sessionKeyPluginActions = exports.multisigSignatureMiddleware = exports.multisigPluginActions = exports.MultisigPluginExecutionFunctionAbi = exports.MultisigPluginAbi = exports.MultisigPlugin = exports.MultiOwnerPluginExecutionFunctionAbi = exports.MultiOwnerPluginAbi = exports.MultiOwnerPlugin = exports.multiOwnerPluginActions = exports.installPlugin = exports.pluginManagerActions = exports.createMultisigModularAccountClient = exports.createMultiOwnerModularAccountClient = exports.standardExecutor = exports.createMultisigModularAccount = exports.createMultiOwnerModularAccount = exports.accountLoupeActions = exports.UpgradeableModularAccountAbi = exports.MultisigModularAccountFactoryAbi = exports.MultiOwnerModularAccountFactoryAbi = exports.IStandardExecutorAbi = exports.IPluginManagerAbi = exports.IPluginAbi = exports.IAccountLoupeAbi = exports.getDefaultNaniAccountFactoryAddress = exports.transferNaniAccountOwnership = exports.createNaniAccount = exports.getLightAccountVersion = exports.getDefaultLightAccountFactoryAddress = exports.LightAccountVersions = exports.LightAccountUnsupported1271Impls = exports.LightAccountUnsupported1271Factories = exports.lightAccountClientActions = exports.createLightAccountClient = exports.transferLightAccountOwnership = exports.createLightAccount = void 0;
exports.MultisigAccountExpectedError = exports.MultisigMissingSignatureError = exports.InvalidAggregatedSignatureError = exports.InvalidContextSignatureError = exports.splitAggregatedSignature = exports.getSignerType = void 0;
var account_js_1 = require("./light-account/account.js");

@@ -34,2 +35,4 @@ Object.defineProperty(exports, "createLightAccount", { enumerable: true, get: function () { return account_js_1.createLightAccount; } });

Object.defineProperty(exports, "MultiOwnerModularAccountFactoryAbi", { enumerable: true, get: function () { return MultiOwnerModularAccountFactory_js_1.MultiOwnerModularAccountFactoryAbi; } });
var MultisigModularAccountFactory_js_1 = require("./msca/abis/MultisigModularAccountFactory.js");
Object.defineProperty(exports, "MultisigModularAccountFactoryAbi", { enumerable: true, get: function () { return MultisigModularAccountFactory_js_1.MultisigModularAccountFactoryAbi; } });
var UpgradeableModularAccount_js_1 = require("./msca/abis/UpgradeableModularAccount.js");

@@ -41,2 +44,4 @@ Object.defineProperty(exports, "UpgradeableModularAccountAbi", { enumerable: true, get: function () { return UpgradeableModularAccount_js_1.UpgradeableModularAccountAbi; } });

Object.defineProperty(exports, "createMultiOwnerModularAccount", { enumerable: true, get: function () { return multiOwnerAccount_js_1.createMultiOwnerModularAccount; } });
var multisigAccount_js_1 = require("./msca/account/multisigAccount.js");
Object.defineProperty(exports, "createMultisigModularAccount", { enumerable: true, get: function () { return multisigAccount_js_1.createMultisigModularAccount; } });
var standardExecutor_js_1 = require("./msca/account/standardExecutor.js");

@@ -46,2 +51,3 @@ Object.defineProperty(exports, "standardExecutor", { enumerable: true, get: function () { return standardExecutor_js_1.standardExecutor; } });

Object.defineProperty(exports, "createMultiOwnerModularAccountClient", { enumerable: true, get: function () { return client_js_2.createMultiOwnerModularAccountClient; } });
Object.defineProperty(exports, "createMultisigModularAccountClient", { enumerable: true, get: function () { return client_js_2.createMultisigModularAccountClient; } });
var decorator_js_3 = require("./msca/plugin-manager/decorator.js");

@@ -57,4 +63,10 @@ Object.defineProperty(exports, "pluginManagerActions", { enumerable: true, get: function () { return decorator_js_3.pluginManagerActions; } });

Object.defineProperty(exports, "MultiOwnerPluginExecutionFunctionAbi", { enumerable: true, get: function () { return plugin_js_1.MultiOwnerPluginExecutionFunctionAbi; } });
var index_js_2 = require("./msca/plugins/session-key/index.js");
Object.defineProperty(exports, "sessionKeyPluginActions", { enumerable: true, get: function () { return index_js_2.sessionKeyPluginActions; } });
var index_js_2 = require("./msca/plugins/multisig/index.js");
Object.defineProperty(exports, "MultisigPlugin", { enumerable: true, get: function () { return index_js_2.MultisigPlugin; } });
Object.defineProperty(exports, "MultisigPluginAbi", { enumerable: true, get: function () { return index_js_2.MultisigPluginAbi; } });
Object.defineProperty(exports, "MultisigPluginExecutionFunctionAbi", { enumerable: true, get: function () { return index_js_2.MultisigPluginExecutionFunctionAbi; } });
Object.defineProperty(exports, "multisigPluginActions", { enumerable: true, get: function () { return index_js_2.multisigPluginActions; } });
Object.defineProperty(exports, "multisigSignatureMiddleware", { enumerable: true, get: function () { return index_js_2.multisigSignatureMiddleware; } });
var index_js_3 = require("./msca/plugins/session-key/index.js");
Object.defineProperty(exports, "sessionKeyPluginActions", { enumerable: true, get: function () { return index_js_3.sessionKeyPluginActions; } });
var permissions_js_1 = require("./msca/plugins/session-key/permissions.js");

@@ -73,4 +85,15 @@ Object.defineProperty(exports, "SessionKeyAccessListType", { enumerable: true, get: function () { return permissions_js_1.SessionKeyAccessListType; } });

Object.defineProperty(exports, "getDefaultMultiOwnerModularAccountFactoryAddress", { enumerable: true, get: function () { return utils_js_4.getDefaultMultiOwnerModularAccountFactoryAddress; } });
Object.defineProperty(exports, "getDefaultMultisigModularAccountFactoryAddress", { enumerable: true, get: function () { return utils_js_4.getDefaultMultisigModularAccountFactoryAddress; } });
Object.defineProperty(exports, "getMAInitializationData", { enumerable: true, get: function () { return utils_js_4.getMAInitializationData; } });
Object.defineProperty(exports, "getMSCAUpgradeToData", { enumerable: true, get: function () { return utils_js_4.getMSCAUpgradeToData; } });
var index_js_4 = require("./msca/plugins/multisig/utils/index.js");
Object.defineProperty(exports, "combineSignatures", { enumerable: true, get: function () { return index_js_4.combineSignatures; } });
Object.defineProperty(exports, "formatSignatures", { enumerable: true, get: function () { return index_js_4.formatSignatures; } });
Object.defineProperty(exports, "getSignerType", { enumerable: true, get: function () { return index_js_4.getSignerType; } });
Object.defineProperty(exports, "splitAggregatedSignature", { enumerable: true, get: function () { return index_js_4.splitAggregatedSignature; } });
var errors_js_1 = require("./msca/errors.js");
Object.defineProperty(exports, "InvalidContextSignatureError", { enumerable: true, get: function () { return errors_js_1.InvalidContextSignatureError; } });
Object.defineProperty(exports, "InvalidAggregatedSignatureError", { enumerable: true, get: function () { return errors_js_1.InvalidAggregatedSignatureError; } });
Object.defineProperty(exports, "MultisigMissingSignatureError", { enumerable: true, get: function () { return errors_js_1.MultisigMissingSignatureError; } });
Object.defineProperty(exports, "MultisigAccountExpectedError", { enumerable: true, get: function () { return errors_js_1.MultisigAccountExpectedError; } });
//# sourceMappingURL=index.js.map

@@ -56,7 +56,9 @@ "use strict";

}
return client.readContract({
return client
.readContract({
address: account.address,
abi: IAccountLoupe_js_1.IAccountLoupeAbi,
functionName: "getInstalledPlugins",
});
})
.catch(() => []);
},

@@ -63,0 +65,0 @@ });

@@ -1,2 +0,2 @@

import { type SmartAccountClient, type SmartAccountClientActions, type SmartAccountSigner } from "@alchemy/aa-core";
import { type SmartAccountClient, type SmartAccountClientRpcSchema, type SmartAccountSigner } from "@alchemy/aa-core";
import { type Chain, type CustomTransport, type Transport } from "viem";

@@ -6,7 +6,13 @@ import type { CreateLightAccountClientParams } from "../light-account/client";

import { type CreateMultiOwnerModularAccountParams, type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
import { type CreateMultisigModularAccountParams, type MultisigModularAccount } from "./account/multisigAccount.js";
import { type PluginManagerActions } from "./plugin-manager/decorator.js";
import { type MultiOwnerPluginActions } from "./plugins/multi-owner/index.js";
import { type MultisigPluginActions, type MultisigUserOperationContext } from "./plugins/multisig/index.js";
export type CreateMultiOwnerModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultiOwnerModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, SmartAccountClientActions<Chain, MultiOwnerModularAccount<TSigner>> & MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export type CreateMultisigModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultisigModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export declare function createMultisigModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultisigModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultisigModularAccount<TSigner>, MultisigPluginActions<MultisigModularAccount<TSigner>> & PluginManagerActions<MultisigModularAccount<TSigner>> & AccountLoupeActions<MultisigModularAccount<TSigner>>, SmartAccountClientRpcSchema, MultisigUserOperationContext>>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMultiOwnerModularAccountClient = void 0;
exports.createMultisigModularAccountClient = exports.createMultiOwnerModularAccountClient = void 0;
const aa_core_1 = require("@alchemy/aa-core");
const decorator_js_1 = require("./account-loupe/decorator.js");
const multiOwnerAccount_js_1 = require("./account/multiOwnerAccount.js");
const multisigAccount_js_1 = require("./account/multisigAccount.js");
const decorator_js_2 = require("./plugin-manager/decorator.js");
const index_js_1 = require("./plugins/multi-owner/index.js");
const index_js_2 = require("./plugins/multisig/index.js");
const middleware_js_1 = require("./plugins/multisig/middleware.js");
async function createMultiOwnerModularAccountClient({ account, transport, chain, ...clientConfig }) {

@@ -26,2 +29,22 @@ const modularAccount = await (0, multiOwnerAccount_js_1.createMultiOwnerModularAccount)({

exports.createMultiOwnerModularAccountClient = createMultiOwnerModularAccountClient;
async function createMultisigModularAccountClient({ account, transport, chain, ...clientConfig }) {
const modularAccount = await (0, multisigAccount_js_1.createMultisigModularAccount)({
...account,
transport,
chain,
});
const client = (0, aa_core_1.createSmartAccountClient)({
...clientConfig,
transport,
chain,
account: modularAccount,
signUserOperation: middleware_js_1.multisigSignatureMiddleware,
})
.extend(aa_core_1.smartAccountClientActions)
.extend(decorator_js_2.pluginManagerActions)
.extend(index_js_2.multisigPluginActions)
.extend(decorator_js_1.accountLoupeActions);
return client;
}
exports.createMultisigModularAccountClient = createMultisigModularAccountClient;
//# sourceMappingURL=client.js.map

@@ -1,5 +0,5 @@

import { type GetAccountParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
import type { FunctionReference } from "../account-loupe/types.js";
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
pluginAddress: Address;

@@ -11,4 +11,4 @@ manifestHash?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: InstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, context, account, ...params }: InstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account" | "context">): Promise<`0x${string}`>;

@@ -8,3 +8,3 @@ "use strict";

const IPluginManager_js_1 = require("../abis/IPluginManager.js");
async function installPlugin(client, { overrides, account = client.account, ...params }) {
async function installPlugin(client, { overrides, context, account = client.account, ...params }) {
if (!account) {

@@ -11,0 +11,0 @@ throw new aa_core_1.AccountNotFoundError();

@@ -1,4 +0,4 @@

import { type GetAccountParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
pluginAddress: Address;

@@ -9,4 +9,4 @@ config?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides" | "context">): Promise<`0x${string}`>;

@@ -5,3 +5,3 @@ import { type GetAccountParameter, type IsUndefined, type SmartContractAccount } from "@alchemy/aa-core";

import { type MultiOwnerPluginActions as MultiOwnerPluginActions_ } from "./plugin.js";
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount> & {
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount, undefined> & {
readOwners: (params: GetPluginAddressParameter & GetAccountParameter<TAccount>) => Promise<ReadonlyArray<Address>>;

@@ -8,0 +8,0 @@ isOwnerOf: (params: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex, type ReadContractReturnType } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
updateOwners: (args: Pick<EncodeFunctionDataParameters<typeof MultiOwnerPluginExecutionFunctionAbi, 'updateOwners'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -18,6 +18,6 @@ type InstallArgs = [{

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installMultiOwnerPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -31,5 +31,5 @@ type ReadAndEncodeActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {

};
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions<TAccount>;
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions<TAccount>;
export declare const MultiOwnerPlugin: Plugin<typeof MultiOwnerPluginAbi>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount, TContext>;
export declare const MultiOwnerPluginExecutionFunctionAbi: readonly [{

@@ -36,0 +36,0 @@ readonly stateMutability: "nonpayable";

@@ -36,3 +36,3 @@ "use strict";

const multiOwnerPluginActions = (client) => ({
updateOwners({ args, overrides, account = client.account }) {
updateOwners({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -49,5 +49,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installMultiOwnerPlugin({ account = client.account, overrides, ...params }) {
installMultiOwnerPlugin({ account = client.account, overrides, context, ...params }) {
if (!account) {

@@ -75,2 +75,3 @@ throw new aa_core_1.AccountNotFoundError();

account,
context,
});

@@ -77,0 +78,0 @@ },

import type { Address, BundlerClient, SmartAccountSigner } from "@alchemy/aa-core";
import { type Hex, type SignableMessage, type Transport, type TypedDataDefinition } from "viem";
export declare const multiOwnerMessageSigner: <TTransport extends Transport, TSigner extends SmartAccountSigner<any>>(client: BundlerClient<TTransport>, accountAddress: Address, signer: () => TSigner, pluginAddress?: Address) => {
getDummySignature: () => `0x${string}`;
getDummySignature: () => Hex;
signUserOperationHash: (uoHash: `0x${string}`) => Promise<`0x${string}`>;

@@ -6,0 +6,0 @@ signMessage({ message, }: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
executeWithSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'executeWithSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
addSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'addSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
removeSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'removeSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
rotateSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'rotateSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
updateKeyPermissions: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'updateKeyPermissions'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -41,6 +41,6 @@ type InstallArgs = [

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installSessionKeyPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -54,5 +54,5 @@ type ReadAndEncodeActions = {

};
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions;
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions;
export declare const SessionKeyPlugin: Plugin<typeof SessionKeyPluginAbi>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount, TContext>;
export declare const SessionKeyPluginExecutionFunctionAbi: readonly [{

@@ -59,0 +59,0 @@ readonly stateMutability: "nonpayable";

@@ -37,3 +37,3 @@ "use strict";

const sessionKeyPluginActions = (client) => ({
executeWithSessionKey({ args, overrides, account = client.account }) {
executeWithSessionKey({ args, overrides, context, account = client.account, }) {
if (!account) {

@@ -50,5 +50,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
addSessionKey({ args, overrides, account = client.account }) {
addSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -65,5 +65,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
removeSessionKey({ args, overrides, account = client.account }) {
removeSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -80,5 +80,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
rotateSessionKey({ args, overrides, account = client.account }) {
rotateSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -95,5 +95,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
updateKeyPermissions({ args, overrides, account = client.account }) {
updateKeyPermissions({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -110,5 +110,5 @@ throw new aa_core_1.AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installSessionKeyPlugin({ account = client.account, overrides, ...params }) {
installSessionKeyPlugin({ account = client.account, overrides, context, ...params }) {
if (!account) {

@@ -155,2 +155,3 @@ throw new aa_core_1.AccountNotFoundError();

account,
context,
});

@@ -157,0 +158,0 @@ },

import { type GetAccountParameter, type SmartAccountClient, type SmartAccountSigner, type SmartContractAccountWithSigner, type UpgradeToData } from "@alchemy/aa-core";
import type { Address, Chain, Transport } from "viem";
import { type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
export declare const getDefaultMultisigModularAccountFactoryAddress: (chain: Chain) => Address;
export declare const getDefaultMultiOwnerModularAccountFactoryAddress: (chain: Chain) => Address;

@@ -5,0 +6,0 @@ export declare function getMSCAUpgradeToData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner, TAccount extends SmartContractAccountWithSigner<string, TSigner> | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, { multiOwnerPluginAddress, account: account_, }: {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMAInitializationData = exports.getMSCAUpgradeToData = exports.getDefaultMultiOwnerModularAccountFactoryAddress = void 0;
exports.getMAInitializationData = exports.getMSCAUpgradeToData = exports.getDefaultMultiOwnerModularAccountFactoryAddress = exports.getDefaultMultisigModularAccountFactoryAddress = void 0;
const aa_core_1 = require("@alchemy/aa-core");

@@ -11,2 +11,10 @@ const viem_1 = require("viem");

const plugin_js_1 = require("./plugins/multi-owner/plugin.js");
const getDefaultMultisigModularAccountFactoryAddress = (chain) => {
switch (chain.id) {
case aa_core_1.sepolia.id:
return "0x3D94D6713B76FBA07283502CfbeA405b44c69865";
}
throw new aa_core_1.DefaultFactoryNotDefinedError("MultisigModularAccount", chain);
};
exports.getDefaultMultisigModularAccountFactoryAddress = getDefaultMultisigModularAccountFactoryAddress;
const getDefaultMultiOwnerModularAccountFactoryAddress = (chain) => {

@@ -13,0 +21,0 @@ switch (chain.id) {

export { MultiOwnerPluginGenConfig } from "./multi-owner/config.js";
export { SessionKeyPluginGenConfig } from "./session-key/config.js";
export { MultisigPluginGenConfig } from "./multisig/config.js";
export { MultiOwnerPluginGenConfig } from "./multi-owner/config.js";
export { SessionKeyPluginGenConfig } from "./session-key/config.js";
export { MultisigPluginGenConfig } from "./multisig/config.js";
//# sourceMappingURL=index.js.map

@@ -35,2 +35,3 @@ import { asyncPipe } from "@alchemy/aa-core";

addImport("@alchemy/aa-core", { name: "IncompatibleClientError" });
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });
const providerFunctionDefs = [];

@@ -44,3 +45,4 @@ const providerFunctions = executionAbi

overrides,
account = client.account
context,
account = client.account
}`

@@ -53,3 +55,5 @@ : dedent `{

providerFunctionDefs.push(dedent `
${camelCase(n.name)}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args"> & { overrides?: UserOperationOverrides; } & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
${camelCase(n.name)}: (args: Pick<EncodeFunctionDataParameters<typeof ${executionAbiConst}, "${n.name}">, "args"> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
`);

@@ -72,7 +76,7 @@ const methodName = camelCase(n.name);

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
}
`;
});
addType("ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>", dedent `{
addType("ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>", dedent `{
${providerFunctionDefs.join(";\n\n")}

@@ -86,4 +90,4 @@ }`);

| SmartContractAccount
| undefined>`, dedent `
ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions${hasReadMethods ? "<TAccount>" : ""}
| undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>`, dedent `
ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions${hasReadMethods ? "<TAccount>" : ""}
`, true);

@@ -96,6 +100,7 @@ input.content.push(dedent `

| SmartContractAccount
| undefined
| undefined,
TContext extends Record<string, any> | undefined = Record<string, any> | undefined
>(
client: Client<TTransport, TChain, TAccount>
) => ${contract.name}Actions<TAccount> = (client) => ({ ${providerFunctions.join(",\n")} });
) => ${contract.name}Actions<TAccount, TContext> = (client) => ({ ${providerFunctions.join(",\n")} });
`);

@@ -102,0 +107,0 @@ return input;

@@ -14,4 +14,6 @@ import { kebabCase } from "change-case";

}`, true);
addType("ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>", dedent `{
install${contract.name}: (args: {overrides?: UserOperationOverrides} & Install${contract.name}Params & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
addType("ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string,any> | undefined>", dedent `{
install${contract.name}: (args: {
overrides?: UserOperationOverrides;
} & Install${contract.name}Params & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
}`);

@@ -33,3 +35,3 @@ const dependencies = (config.installConfig.dependencies ?? []).map((x) => dedent `

input.content.push(dedent `
${installMethodName}({account = client.account, overrides, ...params}) {
${installMethodName}({account = client.account, overrides, context, ...params}) {
if (!account) {

@@ -61,2 +63,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -90,3 +93,4 @@ }

});
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });
};
//# sourceMappingURL=management-actions.js.map

@@ -17,2 +17,3 @@ export type * from "./light-account/account.js";

export { MultiOwnerModularAccountFactoryAbi } from "./msca/abis/MultiOwnerModularAccountFactory.js";
export { MultisigModularAccountFactoryAbi } from "./msca/abis/MultisigModularAccountFactory.js";
export { UpgradeableModularAccountAbi } from "./msca/abis/UpgradeableModularAccount.js";

@@ -24,4 +25,6 @@ export type * from "./msca/account-loupe/decorator.js";

export { createMultiOwnerModularAccount } from "./msca/account/multiOwnerAccount.js";
export type * from "./msca/account/multisigAccount.js";
export { createMultisigModularAccount } from "./msca/account/multisigAccount.js";
export { standardExecutor } from "./msca/account/standardExecutor.js";
export { createMultiOwnerModularAccountClient } from "./msca/client.js";
export { createMultiOwnerModularAccountClient, createMultisigModularAccountClient, } from "./msca/client.js";
export type * from "./msca/plugin-manager/decorator.js";

@@ -33,2 +36,4 @@ export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";

export { MultiOwnerPlugin, MultiOwnerPluginAbi, MultiOwnerPluginExecutionFunctionAbi, } from "./msca/plugins/multi-owner/plugin.js";
export type * from "./msca/plugins/multisig/index.js";
export { MultisigPlugin, MultisigPluginAbi, MultisigPluginExecutionFunctionAbi, type SignerType, multisigPluginActions, multisigSignatureMiddleware, } from "./msca/plugins/multisig/index.js";
export type * from "./msca/plugins/session-key/index.js";

@@ -42,2 +47,4 @@ export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";

export type * from "./msca/plugins/types.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getDefaultMultisigModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { combineSignatures, formatSignatures, getSignerType, splitAggregatedSignature, } from "./msca/plugins/multisig/utils/index.js";
export { InvalidContextSignatureError, InvalidAggregatedSignatureError, MultisigMissingSignatureError, MultisigAccountExpectedError, } from "./msca/errors.js";

@@ -14,7 +14,9 @@ export { createLightAccount } from "./light-account/account.js";

export { MultiOwnerModularAccountFactoryAbi } from "./msca/abis/MultiOwnerModularAccountFactory.js";
export { MultisigModularAccountFactoryAbi } from "./msca/abis/MultisigModularAccountFactory.js";
export { UpgradeableModularAccountAbi } from "./msca/abis/UpgradeableModularAccount.js";
export { accountLoupeActions } from "./msca/account-loupe/decorator.js";
export { createMultiOwnerModularAccount } from "./msca/account/multiOwnerAccount.js";
export { createMultisigModularAccount } from "./msca/account/multisigAccount.js";
export { standardExecutor } from "./msca/account/standardExecutor.js";
export { createMultiOwnerModularAccountClient } from "./msca/client.js";
export { createMultiOwnerModularAccountClient, createMultisigModularAccountClient, } from "./msca/client.js";
export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";

@@ -24,2 +26,3 @@ export { installPlugin } from "./msca/plugin-manager/installPlugin.js";

export { MultiOwnerPlugin, MultiOwnerPluginAbi, MultiOwnerPluginExecutionFunctionAbi, } from "./msca/plugins/multi-owner/plugin.js";
export { MultisigPlugin, MultisigPluginAbi, MultisigPluginExecutionFunctionAbi, multisigPluginActions, multisigSignatureMiddleware, } from "./msca/plugins/multisig/index.js";
export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";

@@ -30,3 +33,5 @@ export { SessionKeyAccessListType, SessionKeyPermissionsBuilder, } from "./msca/plugins/session-key/permissions.js";

export { buildSessionKeysToRemoveStruct } from "./msca/plugins/session-key/utils.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getDefaultMultisigModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { combineSignatures, formatSignatures, getSignerType, splitAggregatedSignature, } from "./msca/plugins/multisig/utils/index.js";
export { InvalidContextSignatureError, InvalidAggregatedSignatureError, MultisigMissingSignatureError, MultisigAccountExpectedError, } from "./msca/errors.js";
//# sourceMappingURL=index.js.map

@@ -53,9 +53,11 @@ import { AccountNotFoundError, IncompatibleClientError, isSmartAccountClient, } from "@alchemy/aa-core";

}
return client.readContract({
return client
.readContract({
address: account.address,
abi: IAccountLoupeAbi,
functionName: "getInstalledPlugins",
});
})
.catch(() => []);
},
});
//# sourceMappingURL=decorator.js.map

@@ -1,2 +0,2 @@

import { type SmartAccountClient, type SmartAccountClientActions, type SmartAccountSigner } from "@alchemy/aa-core";
import { type SmartAccountClient, type SmartAccountClientRpcSchema, type SmartAccountSigner } from "@alchemy/aa-core";
import { type Chain, type CustomTransport, type Transport } from "viem";

@@ -6,7 +6,13 @@ import type { CreateLightAccountClientParams } from "../light-account/client";

import { type CreateMultiOwnerModularAccountParams, type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
import { type CreateMultisigModularAccountParams, type MultisigModularAccount } from "./account/multisigAccount.js";
import { type PluginManagerActions } from "./plugin-manager/decorator.js";
import { type MultiOwnerPluginActions } from "./plugins/multi-owner/index.js";
import { type MultisigPluginActions, type MultisigUserOperationContext } from "./plugins/multisig/index.js";
export type CreateMultiOwnerModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultiOwnerModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, SmartAccountClientActions<Chain, MultiOwnerModularAccount<TSigner>> & MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export type CreateMultisigModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultisigModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export declare function createMultisigModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultisigModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultisigModularAccount<TSigner>, MultisigPluginActions<MultisigModularAccount<TSigner>> & PluginManagerActions<MultisigModularAccount<TSigner>> & AccountLoupeActions<MultisigModularAccount<TSigner>>, SmartAccountClientRpcSchema, MultisigUserOperationContext>>;

@@ -1,7 +0,10 @@

import { createSmartAccountClient, } from "@alchemy/aa-core";
import { createSmartAccountClient, smartAccountClientActions, } from "@alchemy/aa-core";
import {} from "viem";
import { accountLoupeActions, } from "./account-loupe/decorator.js";
import { createMultiOwnerModularAccount, } from "./account/multiOwnerAccount.js";
import { createMultisigModularAccount, } from "./account/multisigAccount.js";
import { pluginManagerActions, } from "./plugin-manager/decorator.js";
import { multiOwnerPluginActions, } from "./plugins/multi-owner/index.js";
import { multisigPluginActions, } from "./plugins/multisig/index.js";
import { multisigSignatureMiddleware } from "./plugins/multisig/middleware.js";
export async function createMultiOwnerModularAccountClient({ account, transport, chain, ...clientConfig }) {

@@ -23,2 +26,21 @@ const modularAccount = await createMultiOwnerModularAccount({

}
export async function createMultisigModularAccountClient({ account, transport, chain, ...clientConfig }) {
const modularAccount = await createMultisigModularAccount({
...account,
transport,
chain,
});
const client = createSmartAccountClient({
...clientConfig,
transport,
chain,
account: modularAccount,
signUserOperation: multisigSignatureMiddleware,
})
.extend(smartAccountClientActions)
.extend(pluginManagerActions)
.extend(multisigPluginActions)
.extend(accountLoupeActions);
return client;
}
//# sourceMappingURL=client.js.map

@@ -1,5 +0,5 @@

import { type GetAccountParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
import type { FunctionReference } from "../account-loupe/types.js";
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
pluginAddress: Address;

@@ -11,4 +11,4 @@ manifestHash?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: InstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, context, account, ...params }: InstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account" | "context">): Promise<`0x${string}`>;

@@ -5,3 +5,3 @@ import { AccountNotFoundError, IncompatibleClientError, isSmartAccountClient, } from "@alchemy/aa-core";

import { IPluginManagerAbi } from "../abis/IPluginManager.js";
export async function installPlugin(client, { overrides, account = client.account, ...params }) {
export async function installPlugin(client, { overrides, context, account = client.account, ...params }) {
if (!account) {

@@ -8,0 +8,0 @@ throw new AccountNotFoundError();

@@ -1,4 +0,4 @@

import { type GetAccountParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
pluginAddress: Address;

@@ -9,4 +9,4 @@ config?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides" | "context">): Promise<`0x${string}`>;

@@ -5,3 +5,3 @@ import { type GetAccountParameter, type IsUndefined, type SmartContractAccount } from "@alchemy/aa-core";

import { type MultiOwnerPluginActions as MultiOwnerPluginActions_ } from "./plugin.js";
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount> & {
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount, undefined> & {
readOwners: (params: GetPluginAddressParameter & GetAccountParameter<TAccount>) => Promise<ReadonlyArray<Address>>;

@@ -8,0 +8,0 @@ isOwnerOf: (params: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex, type ReadContractReturnType } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
updateOwners: (args: Pick<EncodeFunctionDataParameters<typeof MultiOwnerPluginExecutionFunctionAbi, 'updateOwners'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -18,6 +18,6 @@ type InstallArgs = [{

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installMultiOwnerPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -31,5 +31,5 @@ type ReadAndEncodeActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {

};
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions<TAccount>;
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions<TAccount>;
export declare const MultiOwnerPlugin: Plugin<typeof MultiOwnerPluginAbi>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount, TContext>;
export declare const MultiOwnerPluginExecutionFunctionAbi: readonly [{

@@ -36,0 +36,0 @@ readonly stateMutability: "nonpayable";

@@ -35,3 +35,3 @@ import { getContract, encodeAbiParameters, encodeFunctionData, } from 'viem';

export const multiOwnerPluginActions = (client) => ({
updateOwners({ args, overrides, account = client.account }) {
updateOwners({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -48,5 +48,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installMultiOwnerPlugin({ account = client.account, overrides, ...params }) {
installMultiOwnerPlugin({ account = client.account, overrides, context, ...params }) {
if (!account) {

@@ -74,2 +74,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -76,0 +77,0 @@ },

import type { Address, BundlerClient, SmartAccountSigner } from "@alchemy/aa-core";
import { type Hex, type SignableMessage, type Transport, type TypedDataDefinition } from "viem";
export declare const multiOwnerMessageSigner: <TTransport extends Transport, TSigner extends SmartAccountSigner<any>>(client: BundlerClient<TTransport>, accountAddress: Address, signer: () => TSigner, pluginAddress?: Address) => {
getDummySignature: () => `0x${string}`;
getDummySignature: () => Hex;
signUserOperationHash: (uoHash: `0x${string}`) => Promise<`0x${string}`>;

@@ -6,0 +6,0 @@ signMessage({ message, }: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
executeWithSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'executeWithSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
addSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'addSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
removeSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'removeSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
rotateSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'rotateSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
updateKeyPermissions: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'updateKeyPermissions'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -41,6 +41,6 @@ type InstallArgs = [

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installSessionKeyPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -54,5 +54,5 @@ type ReadAndEncodeActions = {

};
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions;
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions;
export declare const SessionKeyPlugin: Plugin<typeof SessionKeyPluginAbi>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount, TContext>;
export declare const SessionKeyPluginExecutionFunctionAbi: readonly [{

@@ -59,0 +59,0 @@ readonly stateMutability: "nonpayable";

@@ -36,3 +36,3 @@ import { getContract, encodePacked, encodeAbiParameters, encodeFunctionData, } from 'viem';

export const sessionKeyPluginActions = (client) => ({
executeWithSessionKey({ args, overrides, account = client.account }) {
executeWithSessionKey({ args, overrides, context, account = client.account, }) {
if (!account) {

@@ -49,5 +49,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
addSessionKey({ args, overrides, account = client.account }) {
addSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -64,5 +64,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
removeSessionKey({ args, overrides, account = client.account }) {
removeSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -79,5 +79,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
rotateSessionKey({ args, overrides, account = client.account }) {
rotateSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -94,5 +94,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
updateKeyPermissions({ args, overrides, account = client.account }) {
updateKeyPermissions({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -109,5 +109,5 @@ throw new AccountNotFoundError();

});
return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installSessionKeyPlugin({ account = client.account, overrides, ...params }) {
installSessionKeyPlugin({ account = client.account, overrides, context, ...params }) {
if (!account) {

@@ -154,2 +154,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -156,0 +157,0 @@ },

import { type GetAccountParameter, type SmartAccountClient, type SmartAccountSigner, type SmartContractAccountWithSigner, type UpgradeToData } from "@alchemy/aa-core";
import type { Address, Chain, Transport } from "viem";
import { type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
export declare const getDefaultMultisigModularAccountFactoryAddress: (chain: Chain) => Address;
export declare const getDefaultMultiOwnerModularAccountFactoryAddress: (chain: Chain) => Address;

@@ -5,0 +6,0 @@ export declare function getMSCAUpgradeToData<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner, TAccount extends SmartContractAccountWithSigner<string, TSigner> | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, { multiOwnerPluginAddress, account: account_, }: {

@@ -8,2 +8,9 @@ import { AccountNotFoundError, ChainNotFoundError, DefaultFactoryNotDefinedError, arbitrum, arbitrumGoerli, arbitrumSepolia, base, baseGoerli, baseSepolia, goerli, mainnet, optimism, optimismGoerli, optimismSepolia, polygon, polygonAmoy, polygonMumbai, sepolia, } from "@alchemy/aa-core";

import { MultiOwnerPlugin } from "./plugins/multi-owner/plugin.js";
export const getDefaultMultisigModularAccountFactoryAddress = (chain) => {
switch (chain.id) {
case sepolia.id:
return "0x3D94D6713B76FBA07283502CfbeA405b44c69865";
}
throw new DefaultFactoryNotDefinedError("MultisigModularAccount", chain);
};
export const getDefaultMultiOwnerModularAccountFactoryAddress = (chain) => {

@@ -10,0 +17,0 @@ switch (chain.id) {

export { MultiOwnerPluginGenConfig } from "./multi-owner/config.js";
export { SessionKeyPluginGenConfig } from "./session-key/config.js";
export { MultisigPluginGenConfig } from "./multisig/config.js";
//# sourceMappingURL=index.d.ts.map

@@ -17,2 +17,3 @@ export type * from "./light-account/account.js";

export { MultiOwnerModularAccountFactoryAbi } from "./msca/abis/MultiOwnerModularAccountFactory.js";
export { MultisigModularAccountFactoryAbi } from "./msca/abis/MultisigModularAccountFactory.js";
export { UpgradeableModularAccountAbi } from "./msca/abis/UpgradeableModularAccount.js";

@@ -24,4 +25,6 @@ export type * from "./msca/account-loupe/decorator.js";

export { createMultiOwnerModularAccount } from "./msca/account/multiOwnerAccount.js";
export type * from "./msca/account/multisigAccount.js";
export { createMultisigModularAccount } from "./msca/account/multisigAccount.js";
export { standardExecutor } from "./msca/account/standardExecutor.js";
export { createMultiOwnerModularAccountClient } from "./msca/client.js";
export { createMultiOwnerModularAccountClient, createMultisigModularAccountClient, } from "./msca/client.js";
export type * from "./msca/plugin-manager/decorator.js";

@@ -33,2 +36,4 @@ export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";

export { MultiOwnerPlugin, MultiOwnerPluginAbi, MultiOwnerPluginExecutionFunctionAbi, } from "./msca/plugins/multi-owner/plugin.js";
export type * from "./msca/plugins/multisig/index.js";
export { MultisigPlugin, MultisigPluginAbi, MultisigPluginExecutionFunctionAbi, type SignerType, multisigPluginActions, multisigSignatureMiddleware, } from "./msca/plugins/multisig/index.js";
export type * from "./msca/plugins/session-key/index.js";

@@ -42,3 +47,5 @@ export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";

export type * from "./msca/plugins/types.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { getDefaultMultiOwnerModularAccountFactoryAddress, getDefaultMultisigModularAccountFactoryAddress, getMAInitializationData, getMSCAUpgradeToData, } from "./msca/utils.js";
export { combineSignatures, formatSignatures, getSignerType, splitAggregatedSignature, } from "./msca/plugins/multisig/utils/index.js";
export { InvalidContextSignatureError, InvalidAggregatedSignatureError, MultisigMissingSignatureError, MultisigAccountExpectedError, } from "./msca/errors.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,2 +0,2 @@

import { type SmartAccountClient, type SmartAccountClientActions, type SmartAccountSigner } from "@alchemy/aa-core";
import { type SmartAccountClient, type SmartAccountClientRpcSchema, type SmartAccountSigner } from "@alchemy/aa-core";
import { type Chain, type CustomTransport, type Transport } from "viem";

@@ -6,8 +6,14 @@ import type { CreateLightAccountClientParams } from "../light-account/client";

import { type CreateMultiOwnerModularAccountParams, type MultiOwnerModularAccount } from "./account/multiOwnerAccount.js";
import { type CreateMultisigModularAccountParams, type MultisigModularAccount } from "./account/multisigAccount.js";
import { type PluginManagerActions } from "./plugin-manager/decorator.js";
import { type MultiOwnerPluginActions } from "./plugins/multi-owner/index.js";
import { type MultisigPluginActions, type MultisigUserOperationContext } from "./plugins/multisig/index.js";
export type CreateMultiOwnerModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultiOwnerModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, SmartAccountClientActions<Chain, MultiOwnerModularAccount<TSigner>> & MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export type CreateMultisigModularAccountClientParams<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner> = {
account: Omit<CreateMultisigModularAccountParams<TTransport, TSigner>, "transport" | "chain">;
} & Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
export declare function createMultiOwnerModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultiOwnerModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultiOwnerModularAccount<TSigner>, MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> & PluginManagerActions<MultiOwnerModularAccount<TSigner>> & AccountLoupeActions<MultiOwnerModularAccount<TSigner>>>>;
export declare function createMultisigModularAccountClient<TChain extends Chain | undefined = Chain | undefined, TSigner extends SmartAccountSigner = SmartAccountSigner>(args: CreateMultisigModularAccountClientParams<Transport, TChain, TSigner>): Promise<SmartAccountClient<CustomTransport, Chain, MultisigModularAccount<TSigner>, MultisigPluginActions<MultisigModularAccount<TSigner>> & PluginManagerActions<MultisigModularAccount<TSigner>> & AccountLoupeActions<MultisigModularAccount<TSigner>>, SmartAccountClientRpcSchema, MultisigUserOperationContext>>;
//# sourceMappingURL=client.d.ts.map

@@ -1,5 +0,5 @@

import { type GetAccountParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartAccountClient, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
import type { FunctionReference } from "../account-loupe/types.js";
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type InstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
pluginAddress: Address;

@@ -11,5 +11,5 @@ manifestHash?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: InstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function installPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, unknown> | undefined = Record<string, unknown> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, context, account, ...params }: InstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeInstallPluginUserOperation<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: SmartAccountClient<TTransport, TChain, TAccount>, params: Omit<InstallPluginParams, "overrides" | "account" | "context">): Promise<`0x${string}`>;
//# sourceMappingURL=installPlugin.d.ts.map

@@ -1,4 +0,4 @@

import { type GetAccountParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type GetAccountParameter, type GetContextParameter, type SmartContractAccount, type UserOperationOverrides } from "@alchemy/aa-core";
import { type Address, type Chain, type Client, type Hash, type Transport } from "viem";
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
export type UninstallPluginParams<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
pluginAddress: Address;

@@ -9,5 +9,5 @@ config?: Hash;

overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides">): Promise<`0x${string}`>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>;
export declare function uninstallPlugin<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>, { overrides, account, ...params }: UninstallPluginParams<TAccount, TContext>): Promise<import("@alchemy/aa-core").SendUserOperationResult>;
export declare function encodeUninstallPluginUserOperation(params: Omit<UninstallPluginParams, "account" | "overrides" | "context">): Promise<`0x${string}`>;
//# sourceMappingURL=uninstallPlugin.d.ts.map

@@ -5,3 +5,3 @@ import { type GetAccountParameter, type IsUndefined, type SmartContractAccount } from "@alchemy/aa-core";

import { type MultiOwnerPluginActions as MultiOwnerPluginActions_ } from "./plugin.js";
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount> & {
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = MultiOwnerPluginActions_<TAccount, undefined> & {
readOwners: (params: GetPluginAddressParameter & GetAccountParameter<TAccount>) => Promise<ReadonlyArray<Address>>;

@@ -8,0 +8,0 @@ isOwnerOf: (params: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex, type ReadContractReturnType } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
updateOwners: (args: Pick<EncodeFunctionDataParameters<typeof MultiOwnerPluginExecutionFunctionAbi, 'updateOwners'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -18,6 +18,6 @@ type InstallArgs = [{

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installMultiOwnerPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallMultiOwnerPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -31,5 +31,5 @@ type ReadAndEncodeActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {

};
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions<TAccount>;
export type MultiOwnerPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions<TAccount>;
export declare const MultiOwnerPlugin: Plugin<typeof MultiOwnerPluginAbi>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount>;
export declare const multiOwnerPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => MultiOwnerPluginActions<TAccount, TContext>;
export declare const MultiOwnerPluginExecutionFunctionAbi: readonly [{

@@ -36,0 +36,0 @@ readonly stateMutability: "nonpayable";

import type { Address, BundlerClient, SmartAccountSigner } from "@alchemy/aa-core";
import { type Hex, type SignableMessage, type Transport, type TypedDataDefinition } from "viem";
export declare const multiOwnerMessageSigner: <TTransport extends Transport, TSigner extends SmartAccountSigner<any>>(client: BundlerClient<TTransport>, accountAddress: Address, signer: () => TSigner, pluginAddress?: Address) => {
getDummySignature: () => `0x${string}`;
getDummySignature: () => Hex;
signUserOperationHash: (uoHash: `0x${string}`) => Promise<`0x${string}`>;

@@ -6,0 +6,0 @@ signMessage({ message, }: {

import { encodeAbiParameters, type Address, type Transport, type Client, type EncodeFunctionDataParameters, type Chain, type Hex } from 'viem';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult } from '@alchemy/aa-core';
import { type SmartContractAccount, type UserOperationOverrides, type GetAccountParameter, type SendUserOperationResult, type GetContextParameter } from '@alchemy/aa-core';
import { type Plugin } from '../types.js';
import { type FunctionReference } from '../../account-loupe/types.js';
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
executeWithSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'executeWithSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
addSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'addSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
removeSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'removeSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
rotateSessionKey: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'rotateSessionKey'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
updateKeyPermissions: (args: Pick<EncodeFunctionDataParameters<typeof SessionKeyPluginExecutionFunctionAbi, 'updateKeyPermissions'>, 'args'> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -41,6 +41,6 @@ type InstallArgs = [

};
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = {
type ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = {
installSessionKeyPlugin: (args: {
overrides?: UserOperationOverrides;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>;
} & InstallSessionKeyPluginParams & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>;
};

@@ -54,5 +54,5 @@ type ReadAndEncodeActions = {

};
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined> = ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions;
export type SessionKeyPluginActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined> = ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions;
export declare const SessionKeyPlugin: Plugin<typeof SessionKeyPluginAbi>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount>;
export declare const sessionKeyPluginActions: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>(client: Client<TTransport, TChain, TAccount>) => SessionKeyPluginActions<TAccount, TContext>;
export declare const SessionKeyPluginExecutionFunctionAbi: readonly [{

@@ -59,0 +59,0 @@ readonly stateMutability: "nonpayable";

@@ -5,2 +5,10 @@ import { type GetAccountParameter, type SmartAccountClient, type SmartAccountSigner, type SmartContractAccountWithSigner, type UpgradeToData } from "@alchemy/aa-core";

/**
* Utility method returning the default multi sig msca factory address given a {@link Chain} object
*
* @param chain - a {@link Chain} object
* @returns a {@link Address} for the given chain
* @throws if the chain doesn't have an address currently deployed
*/
export declare const getDefaultMultisigModularAccountFactoryAddress: (chain: Chain) => Address;
/**
* Utility method returning the default multi owner msca factory address given a {@link Chain} object

@@ -7,0 +15,0 @@ *

{
"name": "@alchemy/aa-accounts",
"version": "3.6.1",
"version": "3.8.0",
"description": "A collection of ERC-4337 compliant smart contract account interfaces",

@@ -75,10 +75,10 @@ "author": "Alchemy",

"homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
"gitHead": "3a46a19fc81efc933e0d18608d9b4ac406fdcd4c",
"gitHead": "f1d512cc226d8113e84ff639cf5228244cf1efd2",
"dependencies": {
"@alchemy/aa-core": "^3.6.1",
"viem": "^2.8.6"
"@alchemy/aa-core": "^3.8.0",
"viem": "2.8.6"
},
"peerDependencies": {
"viem": "^2.8.6"
"viem": "2.8.6"
}
}
export { MultiOwnerPluginGenConfig } from "./multi-owner/config.js";
export { SessionKeyPluginGenConfig } from "./session-key/config.js";
export { MultisigPluginGenConfig } from "./multisig/config.js";

@@ -38,2 +38,3 @@ import { asyncPipe } from "@alchemy/aa-core";

addImport("@alchemy/aa-core", { name: "IncompatibleClientError" });
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });

@@ -49,3 +50,4 @@ const providerFunctionDefs: string[] = [];

overrides,
account = client.account
context,
account = client.account
}`

@@ -63,3 +65,5 @@ : dedent`{

n.name
}">, "args"> & { overrides?: UserOperationOverrides; } & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
}">, "args"> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
`);

@@ -82,3 +86,3 @@ const methodName = camelCase(n.name);

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
}

@@ -89,3 +93,3 @@ `;

addType(
"ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>",
"ExecutionActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>",
dedent`{

@@ -107,5 +111,5 @@ ${providerFunctionDefs.join(";\n\n")}

| SmartContractAccount
| undefined>`,
| undefined, TContext extends Record<string, any> | undefined = Record<string, any> | undefined>`,
dedent`
ExecutionActions<TAccount> & ManagementActions<TAccount> & ReadAndEncodeActions${
ExecutionActions<TAccount, TContext> & ManagementActions<TAccount, TContext> & ReadAndEncodeActions${
hasReadMethods ? "<TAccount>" : ""

@@ -123,3 +127,4 @@ }

| SmartContractAccount
| undefined
| undefined,
TContext extends Record<string, any> | undefined = Record<string, any> | undefined
>(

@@ -129,3 +134,5 @@ client: Client<TTransport, TChain, TAccount>

contract.name
}Actions<TAccount> = (client) => ({ ${providerFunctions.join(",\n")} });
}Actions<TAccount, TContext> = (client) => ({ ${providerFunctions.join(
",\n"
)} });
`);

@@ -132,0 +139,0 @@

@@ -27,5 +27,7 @@ import { kebabCase } from "change-case";

addType(
"ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined>",
"ManagementActions<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TContext extends Record<string, any> | undefined = Record<string,any> | undefined>",
dedent`{
install${contract.name}: (args: {overrides?: UserOperationOverrides} & Install${contract.name}Params & GetAccountParameter<TAccount>) => Promise<SendUserOperationResult>
install${contract.name}: (args: {
overrides?: UserOperationOverrides;
} & Install${contract.name}Params & GetAccountParameter<TAccount> & GetContextParameter<TContext>) => Promise<SendUserOperationResult>
}`

@@ -53,3 +55,3 @@ );

input.content.push(dedent`
${installMethodName}({account = client.account, overrides, ...params}) {
${installMethodName}({account = client.account, overrides, context, ...params}) {
if (!account) {

@@ -89,2 +91,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -133,2 +136,3 @@ }

});
addImport("@alchemy/aa-core", { name: "GetContextParameter", isType: true });
};

@@ -32,2 +32,3 @@ // Add you exports here, make sure to export types separately from impls and use the `type` keyword when exporting them

export { MultiOwnerModularAccountFactoryAbi } from "./msca/abis/MultiOwnerModularAccountFactory.js";
export { MultisigModularAccountFactoryAbi } from "./msca/abis/MultisigModularAccountFactory.js";
export { UpgradeableModularAccountAbi } from "./msca/abis/UpgradeableModularAccount.js";

@@ -39,4 +40,9 @@ export type * from "./msca/account-loupe/decorator.js";

export { createMultiOwnerModularAccount } from "./msca/account/multiOwnerAccount.js";
export type * from "./msca/account/multisigAccount.js";
export { createMultisigModularAccount } from "./msca/account/multisigAccount.js";
export { standardExecutor } from "./msca/account/standardExecutor.js";
export { createMultiOwnerModularAccountClient } from "./msca/client.js";
export {
createMultiOwnerModularAccountClient,
createMultisigModularAccountClient,
} from "./msca/client.js";
export type * from "./msca/plugin-manager/decorator.js";

@@ -52,2 +58,11 @@ export { pluginManagerActions } from "./msca/plugin-manager/decorator.js";

} from "./msca/plugins/multi-owner/plugin.js";
export type * from "./msca/plugins/multisig/index.js";
export {
MultisigPlugin,
MultisigPluginAbi,
MultisigPluginExecutionFunctionAbi,
type SignerType,
multisigPluginActions,
multisigSignatureMiddleware,
} from "./msca/plugins/multisig/index.js";
export type * from "./msca/plugins/session-key/index.js";

@@ -70,4 +85,17 @@ export { sessionKeyPluginActions } from "./msca/plugins/session-key/index.js";

getDefaultMultiOwnerModularAccountFactoryAddress,
getDefaultMultisigModularAccountFactoryAddress,
getMAInitializationData,
getMSCAUpgradeToData,
} from "./msca/utils.js";
export {
combineSignatures,
formatSignatures,
getSignerType,
splitAggregatedSignature,
} from "./msca/plugins/multisig/utils/index.js";
export {
InvalidContextSignatureError,
InvalidAggregatedSignatureError,
MultisigMissingSignatureError,
MultisigAccountExpectedError,
} from "./msca/errors.js";

@@ -42,2 +42,3 @@ import {

//#region CreateLightAccountParams
export type CreateLightAccountParams<

@@ -56,2 +57,3 @@ TTransport extends Transport = Transport,

};
//#endregion CreateLightAccountParams

@@ -228,3 +230,3 @@ export async function createLightAccount<

},
getDummySignature: () => {
getDummySignature: (): Hex => {
return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";

@@ -231,0 +233,0 @@ },

@@ -142,8 +142,10 @@ import {

return client.readContract({
address: account.address,
abi: IAccountLoupeAbi,
functionName: "getInstalledPlugins",
});
return client
.readContract({
address: account.address,
abi: IAccountLoupeAbi,
functionName: "getInstalledPlugins",
})
.catch(() => []);
},
});

@@ -29,2 +29,3 @@ import type { EntryPointDef } from "@alchemy/aa-core";

// #region CreateMultiOwnerModularAccountParams
export type CreateMultiOwnerModularAccountParams<

@@ -44,2 +45,3 @@ TTransport extends Transport = Transport,

};
// #endregion CreateMultiOwnerModularAccountParams

@@ -46,0 +48,0 @@ export async function createMultiOwnerModularAccount<

import {
createSmartAccountClient,
smartAccountClientActions,
type SmartAccountClient,
type SmartAccountClientActions,
type SmartAccountClientRpcSchema,
type SmartAccountSigner,

@@ -19,2 +20,7 @@ } from "@alchemy/aa-core";

import {
createMultisigModularAccount,
type CreateMultisigModularAccountParams,
type MultisigModularAccount,
} from "./account/multisigAccount.js";
import {
pluginManagerActions,

@@ -27,2 +33,8 @@ type PluginManagerActions,

} from "./plugins/multi-owner/index.js";
import {
multisigPluginActions,
type MultisigPluginActions,
type MultisigUserOperationContext,
} from "./plugins/multisig/index.js";
import { multisigSignatureMiddleware } from "./plugins/multisig/middleware.js";

@@ -43,2 +55,16 @@ export type CreateMultiOwnerModularAccountClientParams<

export type CreateMultisigModularAccountClientParams<
TTransport extends Transport = Transport,
TChain extends Chain | undefined = Chain | undefined,
TSigner extends SmartAccountSigner = SmartAccountSigner
> = {
account: Omit<
CreateMultisigModularAccountParams<TTransport, TSigner>,
"transport" | "chain"
>;
} & Omit<
CreateLightAccountClientParams<TTransport, TChain, TSigner>,
"account"
>;
export function createMultiOwnerModularAccountClient<

@@ -54,4 +80,3 @@ TChain extends Chain | undefined = Chain | undefined,

MultiOwnerModularAccount<TSigner>,
SmartAccountClientActions<Chain, MultiOwnerModularAccount<TSigner>> &
MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> &
MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> &
PluginManagerActions<MultiOwnerModularAccount<TSigner>> &

@@ -84,1 +109,55 @@ AccountLoupeActions<MultiOwnerModularAccount<TSigner>>

}
export function createMultisigModularAccountClient<
TChain extends Chain | undefined = Chain | undefined,
TSigner extends SmartAccountSigner = SmartAccountSigner
>(
args: CreateMultisigModularAccountClientParams<Transport, TChain, TSigner>
): Promise<
SmartAccountClient<
CustomTransport,
Chain,
MultisigModularAccount<TSigner>,
MultisigPluginActions<MultisigModularAccount<TSigner>> &
PluginManagerActions<MultisigModularAccount<TSigner>> &
AccountLoupeActions<MultisigModularAccount<TSigner>>,
SmartAccountClientRpcSchema,
MultisigUserOperationContext
>
>;
export async function createMultisigModularAccountClient({
account,
transport,
chain,
...clientConfig
}: CreateMultisigModularAccountClientParams): Promise<
SmartAccountClient<
Transport,
Chain,
MultisigModularAccount<SmartAccountSigner>,
{},
SmartAccountClientRpcSchema,
MultisigUserOperationContext
>
> {
const modularAccount = await createMultisigModularAccount({
...account,
transport,
chain,
});
const client = createSmartAccountClient({
...clientConfig,
transport,
chain,
account: modularAccount,
signUserOperation: multisigSignatureMiddleware,
})
.extend(smartAccountClientActions)
.extend(pluginManagerActions)
.extend(multisigPluginActions)
.extend(accountLoupeActions);
return client;
}

@@ -6,2 +6,3 @@ import {

type GetAccountParameter,
type GetContextParameter,
type SmartAccountClient,

@@ -28,2 +29,5 @@ type SmartContractAccount,

| SmartContractAccount
| undefined,
TContext extends Record<string, unknown> | undefined =
| Record<string, unknown>
| undefined

@@ -35,3 +39,6 @@ > = {

dependencies?: FunctionReference[];
} & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>;
} & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>;

@@ -43,2 +50,5 @@ export async function installPlugin<

| SmartContractAccount
| undefined,
TContext extends Record<string, unknown> | undefined =
| Record<string, unknown>
| undefined

@@ -49,5 +59,6 @@ >(

overrides,
context,
account = client.account,
...params
}: InstallPluginParams<TAccount>
}: InstallPluginParams<TAccount, TContext>
) {

@@ -78,3 +89,3 @@ if (!account) {

client: SmartAccountClient<TTransport, TChain, TAccount>,
params: Omit<InstallPluginParams, "overrides" | "account">
params: Omit<InstallPluginParams, "overrides" | "account" | "context">
) {

@@ -81,0 +92,0 @@ const pluginManifest = await client.readContract({

@@ -6,2 +6,3 @@ import {

type GetAccountParameter,
type GetContextParameter,
type SmartContractAccount,

@@ -23,2 +24,5 @@ type UserOperationOverrides,

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -29,3 +33,4 @@ > = {

pluginUninstallData?: Hash;
} & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>;
} & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount> &
GetContextParameter<TContext>;

@@ -37,2 +42,5 @@ export async function uninstallPlugin<

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -45,3 +53,3 @@ >(

...params
}: UninstallPluginParams<TAccount>
}: UninstallPluginParams<TAccount, TContext>
) {

@@ -65,3 +73,3 @@ if (!account) {

export async function encodeUninstallPluginUserOperation(
params: Omit<UninstallPluginParams, "account" | "overrides">
params: Omit<UninstallPluginParams, "account" | "overrides" | "context">
) {

@@ -68,0 +76,0 @@ return encodeFunctionData({

@@ -19,3 +19,3 @@ import {

| undefined
> = MultiOwnerPluginActions_<TAccount> & {
> = MultiOwnerPluginActions_<TAccount, undefined> & {
readOwners: (

@@ -22,0 +22,0 @@ params: GetPluginAddressParameter & GetAccountParameter<TAccount>

@@ -24,2 +24,3 @@ import {

type SendUserOperationResult,
type GetContextParameter,
} from "@alchemy/aa-core";

@@ -37,2 +38,5 @@ import { type Plugin } from "../types.js";

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -47,3 +51,6 @@ > = {

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -63,2 +70,5 @@ };

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -70,3 +80,4 @@ > = {

} & InstallMultiOwnerPluginParams &
GetAccountParameter<TAccount>
GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -139,5 +150,8 @@ };

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined
> = ExecutionActions<TAccount> &
ManagementActions<TAccount> &
> = ExecutionActions<TAccount, TContext> &
ManagementActions<TAccount, TContext> &
ReadAndEncodeActions<TAccount>;

@@ -187,7 +201,10 @@

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined
>(
client: Client<TTransport, TChain, TAccount>
) => MultiOwnerPluginActions<TAccount> = (client) => ({
updateOwners({ args, overrides, account = client.account }) {
) => MultiOwnerPluginActions<TAccount, TContext> = (client) => ({
updateOwners({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -210,5 +227,10 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installMultiOwnerPlugin({ account = client.account, overrides, ...params }) {
installMultiOwnerPlugin({
account = client.account,
overrides,
context,
...params
}) {
if (!account) {

@@ -248,2 +270,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -250,0 +273,0 @@ },

@@ -55,3 +55,3 @@ import type {

return {
getDummySignature: (): `0x${string}` => {
getDummySignature: (): Hex => {
return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";

@@ -58,0 +58,0 @@ },

@@ -24,2 +24,3 @@ import {

type SendUserOperationResult,
type GetContextParameter,
} from "@alchemy/aa-core";

@@ -38,2 +39,5 @@ import { type Plugin } from "../types.js";

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -48,3 +52,6 @@ > = {

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -59,3 +66,6 @@

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -70,3 +80,6 @@

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -81,3 +94,6 @@

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -92,3 +108,6 @@

"args"
> & { overrides?: UserOperationOverrides } & GetAccountParameter<TAccount>
> & {
overrides?: UserOperationOverrides;
} & GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -112,2 +131,5 @@ };

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined

@@ -119,3 +141,4 @@ > = {

} & InstallSessionKeyPluginParams &
GetAccountParameter<TAccount>
GetAccountParameter<TAccount> &
GetContextParameter<TContext>
) => Promise<SendUserOperationResult>;

@@ -179,5 +202,8 @@ };

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined
> = ExecutionActions<TAccount> &
ManagementActions<TAccount> &
> = ExecutionActions<TAccount, TContext> &
ManagementActions<TAccount, TContext> &
ReadAndEncodeActions;

@@ -227,7 +253,15 @@

| SmartContractAccount
| undefined,
TContext extends Record<string, any> | undefined =
| Record<string, any>
| undefined
>(
client: Client<TTransport, TChain, TAccount>
) => SessionKeyPluginActions<TAccount> = (client) => ({
executeWithSessionKey({ args, overrides, account = client.account }) {
) => SessionKeyPluginActions<TAccount, TContext> = (client) => ({
executeWithSessionKey({
args,
overrides,
context,
account = client.account,
}) {
if (!account) {

@@ -250,5 +284,5 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
addSessionKey({ args, overrides, account = client.account }) {
addSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -271,5 +305,5 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
removeSessionKey({ args, overrides, account = client.account }) {
removeSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -292,5 +326,5 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
rotateSessionKey({ args, overrides, account = client.account }) {
rotateSessionKey({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -313,5 +347,5 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
updateKeyPermissions({ args, overrides, account = client.account }) {
updateKeyPermissions({ args, overrides, context, account = client.account }) {
if (!account) {

@@ -334,5 +368,10 @@ throw new AccountNotFoundError();

return client.sendUserOperation({ uo, overrides, account });
return client.sendUserOperation({ uo, overrides, account, context });
},
installSessionKeyPlugin({ account = client.account, overrides, ...params }) {
installSessionKeyPlugin({
account = client.account,
overrides,
context,
...params
}) {
if (!account) {

@@ -401,2 +440,3 @@ throw new AccountNotFoundError();

account,
context,
});

@@ -403,0 +443,0 @@ },

@@ -45,2 +45,19 @@ import {

/**
* Utility method returning the default multi sig msca factory address given a {@link Chain} object
*
* @param chain - a {@link Chain} object
* @returns a {@link Address} for the given chain
* @throws if the chain doesn't have an address currently deployed
*/
export const getDefaultMultisigModularAccountFactoryAddress = (
chain: Chain
): Address => {
switch (chain.id) {
case sepolia.id:
return "0x3D94D6713B76FBA07283502CfbeA405b44c69865";
}
throw new DefaultFactoryNotDefinedError("MultisigModularAccount", chain);
};
/**
* Utility method returning the default multi owner msca factory address given a {@link Chain} object

@@ -47,0 +64,0 @@ *

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc