@account-kit/smart-contracts 4.7.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/src/light-account/clients/alchemyClient.js +6 -12
- package/dist/esm/src/light-account/clients/alchemyClient.js.map +1 -1
- package/dist/esm/src/light-account/clients/client.d.ts +9 -4
- package/dist/esm/src/light-account/clients/client.js +26 -1
- package/dist/esm/src/light-account/clients/client.js.map +1 -1
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js +6 -11
- package/dist/esm/src/light-account/clients/multiOwnerAlchemyClient.js.map +1 -1
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.d.ts +10 -4
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js +27 -3
- package/dist/esm/src/light-account/clients/multiOwnerLightAccount.js.map +1 -1
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.d.ts +492 -0
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js +639 -0
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.d.ts +954 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.js +1242 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +991 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js +1289 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1001 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js +1302 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.d.ts +238 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js +88 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js.map +1 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.d.ts +41 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.js +148 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/common/types.d.ts +31 -0
- package/dist/esm/src/ma-v2/actions/common/types.js +6 -0
- package/dist/esm/src/ma-v2/actions/common/types.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/common/utils.d.ts +76 -0
- package/dist/esm/src/ma-v2/actions/common/utils.js +100 -0
- package/dist/esm/src/ma-v2/actions/common/utils.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.d.ts +71 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js +109 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js.map +1 -0
- package/dist/esm/src/ma-v2/client/client.d.ts +13 -0
- package/dist/esm/src/ma-v2/client/client.js +54 -0
- package/dist/esm/src/ma-v2/client/client.js.map +1 -0
- package/dist/esm/src/ma-v2/index.d.ts +26 -0
- package/dist/esm/src/ma-v2/index.js +24 -0
- package/dist/esm/src/ma-v2/index.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +556 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js +716 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.d.ts +579 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.js +56 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +312 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js +404 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.d.ts +322 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js +14 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +186 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js +242 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.d.ts +196 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js +25 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +45 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js +331 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.d.ts +10 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js +16 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.d.ts +239 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js +93 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +229 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js +296 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.d.ts +245 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.js +42 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/utils.d.ts +91 -0
- package/dist/esm/src/ma-v2/modules/utils.js +188 -0
- package/dist/esm/src/ma-v2/modules/utils.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +287 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +374 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/utils.d.ts +16 -0
- package/dist/esm/src/ma-v2/utils.js +105 -0
- package/dist/esm/src/ma-v2/utils.js.map +1 -0
- package/dist/esm/src/msca/client/alchemyClient.js +4 -17
- package/dist/esm/src/msca/client/alchemyClient.js.map +1 -1
- package/dist/esm/src/msca/client/client.d.ts +14 -5
- package/dist/esm/src/msca/client/client.js +62 -0
- package/dist/esm/src/msca/client/client.js.map +1 -1
- package/dist/esm/src/msca/client/multiSigAlchemyClient.d.ts +4 -2
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js +5 -19
- package/dist/esm/src/msca/client/multiSigAlchemyClient.js.map +1 -1
- package/dist/types/src/light-account/clients/alchemyClient.d.ts.map +1 -1
- package/dist/types/src/light-account/clients/client.d.ts +9 -4
- package/dist/types/src/light-account/clients/client.d.ts.map +1 -1
- package/dist/types/src/light-account/clients/multiOwnerAlchemyClient.d.ts.map +1 -1
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts +10 -4
- package/dist/types/src/light-account/clients/multiOwnerLightAccount.d.ts.map +1 -1
- package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts +493 -0
- package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts +955 -0
- package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +992 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1002 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts +239 -0
- package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts.map +1 -0
- package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts +42 -0
- package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/common/types.d.ts +32 -0
- package/dist/types/src/ma-v2/actions/common/types.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/common/utils.d.ts +77 -0
- package/dist/types/src/ma-v2/actions/common/utils.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts +72 -0
- package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts.map +1 -0
- package/dist/types/src/ma-v2/client/client.d.ts +14 -0
- package/dist/types/src/ma-v2/client/client.d.ts.map +1 -0
- package/dist/types/src/ma-v2/index.d.ts +27 -0
- package/dist/types/src/ma-v2/index.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +557 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts +580 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +313 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts +323 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +187 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts +197 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +46 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts +11 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts +240 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +230 -0
- package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts +246 -0
- package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/utils.d.ts +92 -0
- package/dist/types/src/ma-v2/modules/utils.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +288 -0
- package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/utils.d.ts +17 -0
- package/dist/types/src/ma-v2/utils.d.ts.map +1 -0
- package/dist/types/src/msca/client/alchemyClient.d.ts.map +1 -1
- package/dist/types/src/msca/client/client.d.ts +14 -5
- package/dist/types/src/msca/client/client.d.ts.map +1 -1
- package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts +4 -2
- package/dist/types/src/msca/client/multiSigAlchemyClient.d.ts.map +1 -1
- package/package.json +11 -5
- package/src/light-account/clients/alchemyClient.ts +5 -14
- package/src/light-account/clients/client.ts +52 -6
- package/src/light-account/clients/multiOwnerAlchemyClient.ts +5 -13
- package/src/light-account/clients/multiOwnerLightAccount.ts +64 -8
- package/src/ma-v2/abis/accountFactoryAbi.ts +638 -0
- package/src/ma-v2/abis/modularAccountAbi.ts +1241 -0
- package/src/ma-v2/abis/semiModularAccountBytecodeAbi.ts +1288 -0
- package/src/ma-v2/abis/semiModularAccountStorageAbi.ts +1301 -0
- package/src/ma-v2/account/nativeSMASigner.ts +121 -0
- package/src/ma-v2/account/semiModularAccountV2.ts +289 -0
- package/src/ma-v2/actions/common/types.ts +37 -0
- package/src/ma-v2/actions/common/utils.ts +103 -0
- package/src/ma-v2/actions/install-validation/installValidation.ts +213 -0
- package/src/ma-v2/client/client.ts +117 -0
- package/src/ma-v2/index.ts +47 -0
- package/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.ts +715 -0
- package/src/ma-v2/modules/allowlist-module/module.ts +87 -0
- package/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.ts +403 -0
- package/src/ma-v2/modules/native-token-limit-module/module.ts +21 -0
- package/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.ts +241 -0
- package/src/ma-v2/modules/paymaster-guard-module/module.ts +35 -0
- package/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.ts +330 -0
- package/src/ma-v2/modules/single-signer-validation/module.ts +24 -0
- package/src/ma-v2/modules/single-signer-validation/signer.ts +127 -0
- package/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.ts +295 -0
- package/src/ma-v2/modules/time-range-module/module.ts +63 -0
- package/src/ma-v2/modules/utils.ts +213 -0
- package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +373 -0
- package/src/ma-v2/utils.ts +138 -0
- package/src/msca/client/alchemyClient.ts +3 -22
- package/src/msca/client/client.ts +157 -13
- package/src/msca/client/multiSigAlchemyClient.ts +6 -29
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSmartAccountClient,
|
|
3
3
|
smartAccountClientActions,
|
|
4
|
+
type NotType,
|
|
4
5
|
type SmartAccountClient,
|
|
5
6
|
type SmartAccountClientRpcSchema,
|
|
6
7
|
type SmartAccountSigner,
|
|
@@ -35,8 +36,16 @@ import {
|
|
|
35
36
|
type MultisigUserOperationContext,
|
|
36
37
|
} from "../plugins/multisig/index.js";
|
|
37
38
|
import { multisigSignatureMiddleware } from "../plugins/multisig/middleware.js";
|
|
39
|
+
import type { AlchemyModularAccountClientConfig } from "./alchemyClient.js";
|
|
40
|
+
import {
|
|
41
|
+
createAlchemySmartAccountClient,
|
|
42
|
+
isAlchemyTransport,
|
|
43
|
+
type AlchemySmartAccountClient,
|
|
44
|
+
type AlchemyTransport,
|
|
45
|
+
} from "@account-kit/infra";
|
|
46
|
+
import type { AlchemyMultisigAccountClientConfig } from "./multiSigAlchemyClient.js";
|
|
38
47
|
|
|
39
|
-
export type
|
|
48
|
+
export type CreateMultiOwnerModularAccountClientWithoutAlchemyParams<
|
|
40
49
|
TTransport extends Transport = Transport,
|
|
41
50
|
TChain extends Chain | undefined = Chain | undefined,
|
|
42
51
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
@@ -45,8 +54,19 @@ export type CreateMultiOwnerModularAccountClientParams<
|
|
|
45
54
|
"transport" | "chain"
|
|
46
55
|
> &
|
|
47
56
|
Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
|
|
57
|
+
export type CreateMultiOwnerModularAccountClientParams<
|
|
58
|
+
TTransport extends Transport = Transport,
|
|
59
|
+
TChain extends Chain | undefined = Chain | undefined,
|
|
60
|
+
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
61
|
+
> =
|
|
62
|
+
| CreateMultiOwnerModularAccountClientWithoutAlchemyParams<
|
|
63
|
+
TTransport,
|
|
64
|
+
TChain,
|
|
65
|
+
TSigner
|
|
66
|
+
>
|
|
67
|
+
| AlchemyModularAccountClientConfig<TSigner>;
|
|
48
68
|
|
|
49
|
-
export type
|
|
69
|
+
export type CreateMultisigModularAccountClientWithoutAlchemyParams<
|
|
50
70
|
TTransport extends Transport = Transport,
|
|
51
71
|
TChain extends Chain | undefined = Chain | undefined,
|
|
52
72
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
@@ -56,11 +76,45 @@ export type CreateMultisigModularAccountClientParams<
|
|
|
56
76
|
> &
|
|
57
77
|
Omit<CreateLightAccountClientParams<TTransport, TChain, TSigner>, "account">;
|
|
58
78
|
|
|
79
|
+
export type CreateMultisigModularAccountClientParams<
|
|
80
|
+
TTransport extends Transport = Transport,
|
|
81
|
+
TChain extends Chain | undefined = Chain | undefined,
|
|
82
|
+
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
83
|
+
> =
|
|
84
|
+
| CreateMultisigModularAccountClientWithoutAlchemyParams<
|
|
85
|
+
TTransport,
|
|
86
|
+
TChain,
|
|
87
|
+
TSigner
|
|
88
|
+
>
|
|
89
|
+
| AlchemyMultisigAccountClientConfig<TSigner>;
|
|
90
|
+
|
|
91
|
+
export function createMultiOwnerModularAccountClient<
|
|
92
|
+
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
93
|
+
>(
|
|
94
|
+
params: AlchemyModularAccountClientConfig<TSigner> & {
|
|
95
|
+
transport: AlchemyTransport;
|
|
96
|
+
}
|
|
97
|
+
): Promise<
|
|
98
|
+
AlchemySmartAccountClient<
|
|
99
|
+
Chain | undefined,
|
|
100
|
+
MultiOwnerModularAccount<TSigner>,
|
|
101
|
+
MultiOwnerPluginActions<MultiOwnerModularAccount<TSigner>> &
|
|
102
|
+
PluginManagerActions<MultiOwnerModularAccount<TSigner>> &
|
|
103
|
+
AccountLoupeActions<MultiOwnerModularAccount<TSigner>>
|
|
104
|
+
>
|
|
105
|
+
>;
|
|
106
|
+
|
|
59
107
|
export function createMultiOwnerModularAccountClient<
|
|
108
|
+
TTransport extends Transport = Transport,
|
|
60
109
|
TChain extends Chain | undefined = Chain | undefined,
|
|
61
110
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
62
111
|
>(
|
|
63
|
-
args: CreateMultiOwnerModularAccountClientParams<
|
|
112
|
+
args: CreateMultiOwnerModularAccountClientParams<
|
|
113
|
+
TTransport,
|
|
114
|
+
TChain,
|
|
115
|
+
TSigner
|
|
116
|
+
> &
|
|
117
|
+
NotType<TTransport, AlchemyTransport>
|
|
64
118
|
): Promise<
|
|
65
119
|
SmartAccountClient<
|
|
66
120
|
CustomTransport,
|
|
@@ -89,6 +143,19 @@ export function createMultiOwnerModularAccountClient<
|
|
|
89
143
|
* signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
|
|
90
144
|
* });
|
|
91
145
|
* ```
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* import { createMultiOwnerModularAccountClient } from "@account-kit/smart-contracts";
|
|
149
|
+
* import { sepolia, alchemy } from "@account-kit/infra";
|
|
150
|
+
* import { LocalAccountSigner } from "@aa-sdk/core";
|
|
151
|
+
* import { generatePrivateKey } from "viem"
|
|
152
|
+
*
|
|
153
|
+
* const alchemyAccountClient = await createMultiOwnerModularAccountClient({
|
|
154
|
+
* transport: alchemy({ apiKey: "your-api-key" }),
|
|
155
|
+
* chain: sepolia,
|
|
156
|
+
* signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey())
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
92
159
|
*
|
|
93
160
|
* @param {CreateMultiOwnerModularAccountClientParams} config The parameters for creating the multi-owner modular account client
|
|
94
161
|
* @returns {Promise<SmartAccountClient>} A promise that resolves to a `SmartAccountClient` instance with extended plugin actions
|
|
@@ -97,12 +164,28 @@ export async function createMultiOwnerModularAccountClient({
|
|
|
97
164
|
transport,
|
|
98
165
|
chain,
|
|
99
166
|
...params
|
|
100
|
-
}: CreateMultiOwnerModularAccountClientParams): Promise<
|
|
167
|
+
}: CreateMultiOwnerModularAccountClientParams): Promise<
|
|
168
|
+
SmartAccountClient | AlchemySmartAccountClient
|
|
169
|
+
> {
|
|
101
170
|
const modularAccount = await createMultiOwnerModularAccount({
|
|
102
171
|
...params,
|
|
103
172
|
transport,
|
|
104
173
|
chain,
|
|
105
174
|
});
|
|
175
|
+
if (isAlchemyTransport(transport, chain)) {
|
|
176
|
+
const { opts } = params;
|
|
177
|
+
|
|
178
|
+
return createAlchemySmartAccountClient({
|
|
179
|
+
...params,
|
|
180
|
+
account: modularAccount,
|
|
181
|
+
transport,
|
|
182
|
+
chain,
|
|
183
|
+
opts,
|
|
184
|
+
})
|
|
185
|
+
.extend(multiOwnerPluginActions)
|
|
186
|
+
.extend(pluginManagerActions)
|
|
187
|
+
.extend(accountLoupeActions);
|
|
188
|
+
}
|
|
106
189
|
|
|
107
190
|
return createSmartAccountClient({
|
|
108
191
|
...params,
|
|
@@ -116,10 +199,27 @@ export async function createMultiOwnerModularAccountClient({
|
|
|
116
199
|
}
|
|
117
200
|
|
|
118
201
|
export function createMultisigModularAccountClient<
|
|
202
|
+
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
203
|
+
>(
|
|
204
|
+
params: AlchemyMultisigAccountClientConfig<TSigner>
|
|
205
|
+
): Promise<
|
|
206
|
+
AlchemySmartAccountClient<
|
|
207
|
+
Chain | undefined,
|
|
208
|
+
MultisigModularAccount<TSigner>,
|
|
209
|
+
MultisigPluginActions<MultisigModularAccount<TSigner>> &
|
|
210
|
+
PluginManagerActions<MultisigModularAccount<TSigner>> &
|
|
211
|
+
AccountLoupeActions<MultisigModularAccount<TSigner>>,
|
|
212
|
+
MultisigUserOperationContext
|
|
213
|
+
>
|
|
214
|
+
>;
|
|
215
|
+
|
|
216
|
+
export function createMultisigModularAccountClient<
|
|
217
|
+
TTransport extends Transport = Transport,
|
|
119
218
|
TChain extends Chain | undefined = Chain | undefined,
|
|
120
219
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
121
220
|
>(
|
|
122
|
-
args: CreateMultisigModularAccountClientParams<
|
|
221
|
+
args: CreateMultisigModularAccountClientParams<TTransport, TChain, TSigner> &
|
|
222
|
+
NotType<TTransport, AlchemyTransport>
|
|
123
223
|
): Promise<
|
|
124
224
|
SmartAccountClient<
|
|
125
225
|
CustomTransport,
|
|
@@ -152,6 +252,21 @@ export function createMultisigModularAccountClient<
|
|
|
152
252
|
* threshold: 2, // 2 of N signatures
|
|
153
253
|
* });
|
|
154
254
|
* ```
|
|
255
|
+
* @example
|
|
256
|
+
* ```ts
|
|
257
|
+
* import { createMultisigModularAccountClient } from "@account-kit/smart-contracts";
|
|
258
|
+
* import { sepolia } from "@account-kit/infra";
|
|
259
|
+
* import { LocalAccountSigner } from "@aa-sdk/core";
|
|
260
|
+
* import { generatePrivateKey } from "viem"
|
|
261
|
+
*
|
|
262
|
+
* const alchemyAccountClient = await createMultisigModularAccountClient({
|
|
263
|
+
* transport: alchemy({ apiKey: "your-api-key" }),
|
|
264
|
+
* chain: sepolia,
|
|
265
|
+
* signer: LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey()),
|
|
266
|
+
* owners: [...], // other owners on the account
|
|
267
|
+
* threshold: 2, // 2 of N signatures
|
|
268
|
+
* });
|
|
269
|
+
* ```
|
|
155
270
|
*
|
|
156
271
|
* @param {CreateMultisigModularAccountClientParams} config the parameters for configuring the multisig modular account client
|
|
157
272
|
* @returns {Promise<SmartAccountClient<Transport, Chain, MultisigModularAccount<SmartAccountSigner>, {}, SmartAccountClientRpcSchema, MultisigUserOperationContext>>} a promise that resolves to a `SmartAccountClient` object extended with the multisig modular account and additional actions
|
|
@@ -161,20 +276,49 @@ export async function createMultisigModularAccountClient({
|
|
|
161
276
|
chain,
|
|
162
277
|
...params
|
|
163
278
|
}: CreateMultisigModularAccountClientParams): Promise<
|
|
164
|
-
SmartAccountClient<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
279
|
+
| SmartAccountClient<
|
|
280
|
+
Transport,
|
|
281
|
+
Chain,
|
|
282
|
+
MultisigModularAccount<SmartAccountSigner>,
|
|
283
|
+
{},
|
|
284
|
+
SmartAccountClientRpcSchema,
|
|
285
|
+
MultisigUserOperationContext
|
|
286
|
+
>
|
|
287
|
+
| AlchemySmartAccountClient<
|
|
288
|
+
Chain | undefined,
|
|
289
|
+
MultisigModularAccount<SmartAccountSigner>,
|
|
290
|
+
MultisigPluginActions<MultisigModularAccount<SmartAccountSigner>> &
|
|
291
|
+
PluginManagerActions<MultisigModularAccount<SmartAccountSigner>> &
|
|
292
|
+
AccountLoupeActions<MultisigModularAccount<SmartAccountSigner>>,
|
|
293
|
+
MultisigUserOperationContext
|
|
294
|
+
>
|
|
172
295
|
> {
|
|
173
296
|
const modularAccount = await createMultisigModularAccount({
|
|
174
297
|
...params,
|
|
175
298
|
transport,
|
|
176
299
|
chain,
|
|
177
300
|
});
|
|
301
|
+
if (isAlchemyTransport(transport, chain)) {
|
|
302
|
+
// Need to fit the type into this since the previous multiSigAlchemyClient had it at this point, but without an Value as Type should be safe
|
|
303
|
+
// And the createAlchemySmartAccountClient signUserOperation could not infer without this
|
|
304
|
+
let config: AlchemyMultisigAccountClientConfig = {
|
|
305
|
+
...params,
|
|
306
|
+
chain,
|
|
307
|
+
transport,
|
|
308
|
+
};
|
|
309
|
+
const { opts } = config;
|
|
310
|
+
|
|
311
|
+
return createAlchemySmartAccountClient({
|
|
312
|
+
...config,
|
|
313
|
+
account: modularAccount,
|
|
314
|
+
opts,
|
|
315
|
+
signUserOperation: multisigSignatureMiddleware,
|
|
316
|
+
})
|
|
317
|
+
.extend(smartAccountClientActions)
|
|
318
|
+
.extend(multisigPluginActions)
|
|
319
|
+
.extend(pluginManagerActions)
|
|
320
|
+
.extend(accountLoupeActions);
|
|
321
|
+
}
|
|
178
322
|
|
|
179
323
|
const client = createSmartAccountClient({
|
|
180
324
|
...params,
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
+
import { type SmartAccountSigner } from "@aa-sdk/core";
|
|
1
2
|
import {
|
|
2
|
-
smartAccountClientActions,
|
|
3
|
-
type SmartAccountSigner,
|
|
4
|
-
} from "@aa-sdk/core";
|
|
5
|
-
import {
|
|
6
|
-
createAlchemySmartAccountClient,
|
|
7
3
|
type AlchemySmartAccountClient,
|
|
8
4
|
type AlchemySmartAccountClientConfig,
|
|
5
|
+
type AlchemyTransport,
|
|
9
6
|
} from "@account-kit/infra";
|
|
10
7
|
import {
|
|
11
|
-
|
|
12
|
-
createMultisigModularAccount,
|
|
13
|
-
multisigPluginActions,
|
|
14
|
-
multisigSignatureMiddleware,
|
|
15
|
-
pluginManagerActions,
|
|
8
|
+
createMultisigModularAccountClient,
|
|
16
9
|
type AccountLoupeActions,
|
|
17
10
|
type CreateMultisigModularAccountParams,
|
|
18
11
|
type LightAccount,
|
|
@@ -38,7 +31,7 @@ export type AlchemyMultisigAccountClientConfig<
|
|
|
38
31
|
MultisigUserOperationContext
|
|
39
32
|
>,
|
|
40
33
|
"account"
|
|
41
|
-
|
|
34
|
+
> & { transport: AlchemyTransport };
|
|
42
35
|
|
|
43
36
|
export function createMultisigAccountAlchemyClient<
|
|
44
37
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
@@ -74,6 +67,7 @@ export function createMultisigAccountAlchemyClient<
|
|
|
74
67
|
* });
|
|
75
68
|
* ```
|
|
76
69
|
*
|
|
70
|
+
* @deprecated Use createModularAccountClient instead of this function, we are switching based on the transport
|
|
77
71
|
* @param {AlchemyMultisigAccountClientConfig} config The configuration for the Alchemy multisig account client
|
|
78
72
|
* @returns {Promise<AlchemySmartAccountClient<Transport, Chain | undefined, MultisigModularAccount<SmartAccountSigner>, MultisigPluginActions<MultisigModularAccount<SmartAccountSigner>> & PluginManagerActions<MultisigModularAccount<SmartAccountSigner>> & AccountLoupeActions<MultisigModularAccount<SmartAccountSigner>>, MultisigUserOperationContext>>} A promise that resolves to an Alchemy Smart Account Client for multisig accounts with extended functionalities.
|
|
79
73
|
*/
|
|
@@ -89,22 +83,5 @@ export async function createMultisigAccountAlchemyClient(
|
|
|
89
83
|
MultisigUserOperationContext
|
|
90
84
|
>
|
|
91
85
|
> {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const account = await createMultisigModularAccount({
|
|
95
|
-
...config,
|
|
96
|
-
transport,
|
|
97
|
-
chain,
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
return createAlchemySmartAccountClient({
|
|
101
|
-
...config,
|
|
102
|
-
account,
|
|
103
|
-
opts,
|
|
104
|
-
signUserOperation: multisigSignatureMiddleware,
|
|
105
|
-
})
|
|
106
|
-
.extend(smartAccountClientActions)
|
|
107
|
-
.extend(multisigPluginActions)
|
|
108
|
-
.extend(pluginManagerActions)
|
|
109
|
-
.extend(accountLoupeActions);
|
|
86
|
+
return createMultisigModularAccountClient(config);
|
|
110
87
|
}
|