@alchemy/smart-accounts 0.0.0-alpha.2 → 0.0.0-alpha.21

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.
Files changed (147) hide show
  1. package/dist/esm/index.d.ts +4 -3
  2. package/dist/esm/index.js +3 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/light-account/accounts/account.d.ts +9 -4
  5. package/dist/esm/light-account/accounts/account.js +29 -18
  6. package/dist/esm/light-account/accounts/account.js.map +1 -1
  7. package/dist/esm/light-account/accounts/base.d.ts +4 -4
  8. package/dist/esm/light-account/accounts/base.js +51 -24
  9. package/dist/esm/light-account/accounts/base.js.map +1 -1
  10. package/dist/esm/light-account/accounts/multi-owner-account.d.ts +9 -4
  11. package/dist/esm/light-account/accounts/multi-owner-account.js +23 -14
  12. package/dist/esm/light-account/accounts/multi-owner-account.js.map +1 -1
  13. package/dist/esm/light-account/decorators/multiOwner.js +2 -1
  14. package/dist/esm/light-account/decorators/multiOwner.js.map +1 -1
  15. package/dist/esm/light-account/decorators/singleOwner.js +1 -1
  16. package/dist/esm/light-account/decorators/singleOwner.js.map +1 -1
  17. package/dist/esm/light-account/lightAccountStaticImpl.d.ts +3 -1
  18. package/dist/esm/light-account/lightAccountStaticImpl.js +57 -7
  19. package/dist/esm/light-account/lightAccountStaticImpl.js.map +1 -1
  20. package/dist/esm/light-account/predictAddress.d.ts +40 -2
  21. package/dist/esm/light-account/predictAddress.js +83 -3
  22. package/dist/esm/light-account/predictAddress.js.map +1 -1
  23. package/dist/esm/light-account/registry.d.ts +3411 -1
  24. package/dist/esm/light-account/registry.js +33 -1
  25. package/dist/esm/light-account/registry.js.map +1 -1
  26. package/dist/esm/light-account/utils.js +1 -1
  27. package/dist/esm/light-account/utils.js.map +1 -1
  28. package/dist/esm/ma-v1/accounts/base.d.ts +4 -4
  29. package/dist/esm/ma-v1/accounts/base.js +1 -1
  30. package/dist/esm/ma-v1/accounts/base.js.map +1 -1
  31. package/dist/esm/ma-v1/accounts/multi-owner-account.d.ts +9 -4
  32. package/dist/esm/ma-v1/accounts/multi-owner-account.js +26 -14
  33. package/dist/esm/ma-v1/accounts/multi-owner-account.js.map +1 -1
  34. package/dist/esm/ma-v1/decorators/multiOwner.js +2 -1
  35. package/dist/esm/ma-v1/decorators/multiOwner.js.map +1 -1
  36. package/dist/esm/ma-v1/predictAddress.d.ts +20 -1
  37. package/dist/esm/ma-v1/predictAddress.js +37 -1
  38. package/dist/esm/ma-v1/predictAddress.js.map +1 -1
  39. package/dist/esm/ma-v2/accounts/account.d.ts +10 -7
  40. package/dist/esm/ma-v2/accounts/account.js +24 -43
  41. package/dist/esm/ma-v2/accounts/account.js.map +1 -1
  42. package/dist/esm/ma-v2/accounts/base.d.ts +5 -5
  43. package/dist/esm/ma-v2/accounts/base.js +18 -60
  44. package/dist/esm/ma-v2/accounts/base.js.map +1 -1
  45. package/dist/esm/ma-v2/mav2StaticImpl.d.ts +1 -15
  46. package/dist/esm/ma-v2/mav2StaticImpl.js +0 -33
  47. package/dist/esm/ma-v2/mav2StaticImpl.js.map +1 -1
  48. package/dist/esm/ma-v2/predictAddress.d.ts +22 -6
  49. package/dist/esm/ma-v2/predictAddress.js +46 -12
  50. package/dist/esm/ma-v2/predictAddress.js.map +1 -1
  51. package/dist/esm/ma-v2/utils/account.d.ts +0 -3
  52. package/dist/esm/ma-v2/utils/account.js +2 -4
  53. package/dist/esm/ma-v2/utils/account.js.map +1 -1
  54. package/dist/esm/ma-v2/utils/signature.d.ts +1 -12
  55. package/dist/esm/ma-v2/utils/signature.js +1 -34
  56. package/dist/esm/ma-v2/utils/signature.js.map +1 -1
  57. package/dist/esm/types.d.ts +8 -1
  58. package/dist/esm/types.js.map +1 -1
  59. package/dist/esm/utils.d.ts +32 -2
  60. package/dist/esm/utils.js +75 -5
  61. package/dist/esm/utils.js.map +1 -1
  62. package/dist/esm/version.d.ts +1 -1
  63. package/dist/esm/version.js +1 -1
  64. package/dist/esm/version.js.map +1 -1
  65. package/dist/types/index.d.ts +4 -3
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/light-account/accounts/account.d.ts +9 -4
  68. package/dist/types/light-account/accounts/account.d.ts.map +1 -1
  69. package/dist/types/light-account/accounts/base.d.ts +4 -4
  70. package/dist/types/light-account/accounts/base.d.ts.map +1 -1
  71. package/dist/types/light-account/accounts/multi-owner-account.d.ts +9 -4
  72. package/dist/types/light-account/accounts/multi-owner-account.d.ts.map +1 -1
  73. package/dist/types/light-account/decorators/multiOwner.d.ts.map +1 -1
  74. package/dist/types/light-account/decorators/singleOwner.d.ts.map +1 -1
  75. package/dist/types/light-account/lightAccountStaticImpl.d.ts +3 -1
  76. package/dist/types/light-account/lightAccountStaticImpl.d.ts.map +1 -1
  77. package/dist/types/light-account/predictAddress.d.ts +40 -2
  78. package/dist/types/light-account/predictAddress.d.ts.map +1 -1
  79. package/dist/types/light-account/registry.d.ts +3411 -1
  80. package/dist/types/light-account/registry.d.ts.map +1 -1
  81. package/dist/types/ma-v1/accounts/base.d.ts +4 -4
  82. package/dist/types/ma-v1/accounts/base.d.ts.map +1 -1
  83. package/dist/types/ma-v1/accounts/multi-owner-account.d.ts +9 -4
  84. package/dist/types/ma-v1/accounts/multi-owner-account.d.ts.map +1 -1
  85. package/dist/types/ma-v1/decorators/multiOwner.d.ts.map +1 -1
  86. package/dist/types/ma-v1/predictAddress.d.ts +20 -1
  87. package/dist/types/ma-v1/predictAddress.d.ts.map +1 -1
  88. package/dist/types/ma-v2/accounts/account.d.ts +10 -7
  89. package/dist/types/ma-v2/accounts/account.d.ts.map +1 -1
  90. package/dist/types/ma-v2/accounts/base.d.ts +5 -5
  91. package/dist/types/ma-v2/accounts/base.d.ts.map +1 -1
  92. package/dist/types/ma-v2/mav2StaticImpl.d.ts +1 -15
  93. package/dist/types/ma-v2/mav2StaticImpl.d.ts.map +1 -1
  94. package/dist/types/ma-v2/predictAddress.d.ts +22 -6
  95. package/dist/types/ma-v2/predictAddress.d.ts.map +1 -1
  96. package/dist/types/ma-v2/utils/account.d.ts +0 -3
  97. package/dist/types/ma-v2/utils/account.d.ts.map +1 -1
  98. package/dist/types/ma-v2/utils/signature.d.ts +1 -12
  99. package/dist/types/ma-v2/utils/signature.d.ts.map +1 -1
  100. package/dist/types/types.d.ts +8 -1
  101. package/dist/types/types.d.ts.map +1 -1
  102. package/dist/types/utils.d.ts +32 -2
  103. package/dist/types/utils.d.ts.map +1 -1
  104. package/dist/types/version.d.ts +1 -1
  105. package/dist/types/version.d.ts.map +1 -1
  106. package/package.json +5 -6
  107. package/src/index.ts +4 -3
  108. package/src/light-account/accounts/account.ts +42 -26
  109. package/src/light-account/accounts/base.ts +66 -27
  110. package/src/light-account/accounts/multi-owner-account.ts +33 -16
  111. package/src/light-account/decorators/multiOwner.ts +4 -1
  112. package/src/light-account/decorators/singleOwner.ts +3 -1
  113. package/src/light-account/lightAccountStaticImpl.ts +84 -11
  114. package/src/light-account/predictAddress.ts +124 -3
  115. package/src/light-account/registry.ts +47 -1
  116. package/src/light-account/utils.ts +1 -1
  117. package/src/ma-v1/accounts/base.ts +8 -5
  118. package/src/ma-v1/accounts/multi-owner-account.ts +37 -18
  119. package/src/ma-v1/decorators/multiOwner.ts +4 -1
  120. package/src/ma-v1/predictAddress.ts +59 -2
  121. package/src/ma-v2/accounts/account.ts +42 -55
  122. package/src/ma-v2/accounts/base.ts +24 -88
  123. package/src/ma-v2/mav2StaticImpl.ts +1 -52
  124. package/src/ma-v2/predictAddress.ts +68 -30
  125. package/src/ma-v2/utils/account.ts +4 -4
  126. package/src/ma-v2/utils/signature.ts +2 -51
  127. package/src/types.ts +15 -1
  128. package/src/utils.ts +119 -6
  129. package/src/version.ts +1 -1
  130. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.d.ts +0 -330
  131. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js +0 -260
  132. package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js.map +0 -1
  133. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +0 -287
  134. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +0 -374
  135. package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +0 -1
  136. package/dist/esm/ma-v2/modules/webauthn-validation/module.d.ts +0 -11
  137. package/dist/esm/ma-v2/modules/webauthn-validation/module.js +0 -16
  138. package/dist/esm/ma-v2/modules/webauthn-validation/module.js.map +0 -1
  139. package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts +0 -331
  140. package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts.map +0 -1
  141. package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +0 -288
  142. package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +0 -1
  143. package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts +0 -12
  144. package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts.map +0 -1
  145. package/src/ma-v2/abis/webAuthnFactoryAbi.ts +0 -259
  146. package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +0 -373
  147. package/src/ma-v2/modules/webauthn-validation/module.ts +0 -28
package/src/utils.ts CHANGED
@@ -1,12 +1,38 @@
1
- import { type Client, concat, type Hex, toHex } from "viem";
1
+ import {
2
+ type Address,
3
+ type Client,
4
+ concatHex,
5
+ type Hex,
6
+ RawContractError,
7
+ BaseError as ViemBaseError,
8
+ toHex,
9
+ } from "viem";
10
+ import {
11
+ decodeErrorResult,
12
+ encodeFunctionData,
13
+ getAction,
14
+ getAddress,
15
+ isHex,
16
+ } from "viem/utils";
17
+ import {
18
+ entryPoint07Abi,
19
+ type EntryPointVersion,
20
+ type UserOperation,
21
+ } from "viem/account-abstraction";
22
+ import { assertNever, BaseError } from "@alchemy/common";
2
23
  import { call } from "viem/actions";
3
- import { getAction } from "viem/utils";
4
- import type { UserOperation } from "viem/account-abstraction";
5
- import { BaseError } from "@alchemy/common";
6
24
 
7
25
  const RIP_7212_CHECK_BYTECODE =
8
26
  "0x60806040526040517f532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25815260056020820152600160408201527f4a03ef9f92eb268cafa601072489a56380fa0dc43171d7712813b3a19a1eb5e560608201527f3e213e28a608ce9a2f4a17fd830c6654018a79b3e0263d91a8ba90622df6f2f0608082015260208160a0836101005afa503d5f823e3d81f3fe";
9
27
 
28
+ /**
29
+ * Checks if the current chain supports RIP-7212 (precompiled contract for secp256r1 curve operations).
30
+ * This is used to determine if the chain has native support for P256 signature verification,
31
+ * which is commonly used in WebAuthn/passkey implementations.
32
+ *
33
+ * @param {Client} client - The viem client to use for the check
34
+ * @returns {Promise<boolean>} True if the chain supports RIP-7212, false otherwise
35
+ */
10
36
  export const chainHas7212 = async (client: Client): Promise<boolean> => {
11
37
  const callAction = getAction(client, call, "call");
12
38
 
@@ -22,7 +48,7 @@ export function packAccountGasLimits(
22
48
  | Pick<UserOperation, "verificationGasLimit" | "callGasLimit">
23
49
  | Pick<UserOperation, "maxPriorityFeePerGas" | "maxFeePerGas">,
24
50
  ): Hex {
25
- return concat(Object.values(data).map((v) => toHex(v, { size: 16 })));
51
+ return concatHex(Object.values(data).map((v) => toHex(v, { size: 16 })));
26
52
  }
27
53
 
28
54
  export function packPaymasterData({
@@ -45,7 +71,7 @@ export function packPaymasterData({
45
71
  ) {
46
72
  return "0x";
47
73
  }
48
- return concat([
74
+ return concatHex([
49
75
  paymaster,
50
76
  toHex(paymasterVerificationGasLimit, { size: 16 }),
51
77
  toHex(paymasterPostOpGasLimit, { size: 16 }),
@@ -83,3 +109,90 @@ export const bigIntMultiply = (
83
109
  return product >= 0n ? product / scale : (product - scale + 1n) / scale;
84
110
  }
85
111
  };
112
+
113
+ /**
114
+ * Derives the counterfactual smart account address from init code by calling
115
+ * the entry point's `getSenderAddress` function.
116
+ *
117
+ * @param {Client} client - The viem client to use for the call.
118
+ * @param {object} params - The parameters for deriving the sender address.
119
+ * @param {Hex} params.factory - The factory address for the account.
120
+ * @param {Hex} params.factoryData - The factory data for the account.
121
+ * @param {object} params.entryPoint - The entry point contract details.
122
+ * @param {EntryPointVersion} [params.entryPoint.version] - The entry point version.
123
+ * @param {Address} params.entryPoint.address - The entry point contract address.
124
+ * @returns {Promise<Address>} The counterfactual address of the smart account.
125
+ */
126
+ export const getSenderFromFactoryData = async (
127
+ client: Client,
128
+ params: {
129
+ factory: Hex;
130
+ factoryData: Hex;
131
+ entryPoint: {
132
+ version: EntryPointVersion;
133
+ address: Address;
134
+ };
135
+ },
136
+ ): Promise<Address> => {
137
+ const action = getAction(client, call, "call");
138
+
139
+ const data = encodeFunctionData({
140
+ abi: entryPoint07Abi, // getSenderAddress is the same for EP v0.6, EP v0.7, and v0.8
141
+ functionName: "getSenderAddress",
142
+ args: [concatHex([params.factory, params.factoryData])],
143
+ });
144
+
145
+ try {
146
+ // getSenderAddress is expected to revert with the computed sender
147
+ await action({ to: params.entryPoint.address, data });
148
+ } catch (err) {
149
+ const revertData = getRevertErrorData(err);
150
+ if (!isHex(revertData)) {
151
+ throw new BaseError(
152
+ "Failed to get sender address from init code: no revert data found.",
153
+ );
154
+ }
155
+
156
+ switch (params.entryPoint.version) {
157
+ case "0.9":
158
+ case "0.8":
159
+ case "0.7": {
160
+ const decoded = decodeErrorResult({
161
+ abi: entryPoint07Abi, // same error signature for EP v0.7 and v0.8
162
+ data: revertData,
163
+ });
164
+ if (decoded.errorName !== "SenderAddressResult") {
165
+ throw new BaseError(
166
+ `Unexpected error from getSenderAddress: ${decoded.errorName}`,
167
+ );
168
+ }
169
+ return decoded.args[0];
170
+ }
171
+ case "0.6":
172
+ // EP v0.6: last 20 bytes is the address.
173
+ return getAddress(`0x${revertData.slice(-40)}`);
174
+ default:
175
+ return assertNever(
176
+ params.entryPoint.version,
177
+ "Unexpected entry point version",
178
+ );
179
+ }
180
+ }
181
+ throw new BaseError("Expected getSenderAddress to revert.");
182
+ };
183
+
184
+ // Borrowed from Viem: https://github.com/wevm/viem/blob/3ff6c2f19350dcbe49017e2b3d5a2cf761ab9070/src/actions/public/call.ts#L473
185
+ function getRevertErrorData(err: unknown) {
186
+ if (!(err instanceof ViemBaseError)) return undefined;
187
+ const error = err.walk() as RawContractError;
188
+ return typeof error?.data === "object" ? error.data?.data : error.data;
189
+ }
190
+
191
+ export function is7702Delegated(
192
+ delegation: Address,
193
+ code: Hex | undefined,
194
+ ): boolean {
195
+ return (
196
+ code?.toLowerCase() === concatHex(["0xef0100", delegation]).toLowerCase()
197
+ );
198
+ }
package/src/version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is autogenerated by inject-version.ts. Any changes will be
2
2
  // overwritten on commit!
3
- export const VERSION = "0.0.0";
3
+ export const VERSION = "0.0.0-alpha.21";
@@ -1,330 +0,0 @@
1
- export declare const webAuthnFactoryAbi: readonly [{
2
- readonly inputs: readonly [{
3
- readonly internalType: "contract IEntryPoint";
4
- readonly name: "_entryPoint";
5
- readonly type: "address";
6
- }, {
7
- readonly internalType: "contract ModularAccount";
8
- readonly name: "_accountImpl";
9
- readonly type: "address";
10
- }, {
11
- readonly internalType: "address";
12
- readonly name: "_webAuthnValidationModule";
13
- readonly type: "address";
14
- }, {
15
- readonly internalType: "address";
16
- readonly name: "owner";
17
- readonly type: "address";
18
- }];
19
- readonly stateMutability: "nonpayable";
20
- readonly type: "constructor";
21
- }, {
22
- readonly inputs: readonly [{
23
- readonly internalType: "address";
24
- readonly name: "target";
25
- readonly type: "address";
26
- }];
27
- readonly name: "AddressEmptyCode";
28
- readonly type: "error";
29
- }, {
30
- readonly inputs: readonly [{
31
- readonly internalType: "address";
32
- readonly name: "account";
33
- readonly type: "address";
34
- }];
35
- readonly name: "AddressInsufficientBalance";
36
- readonly type: "error";
37
- }, {
38
- readonly inputs: readonly [];
39
- readonly name: "FailedInnerCall";
40
- readonly type: "error";
41
- }, {
42
- readonly inputs: readonly [];
43
- readonly name: "InvalidAction";
44
- readonly type: "error";
45
- }, {
46
- readonly inputs: readonly [];
47
- readonly name: "NoCodeAccountImpl";
48
- readonly type: "error";
49
- }, {
50
- readonly inputs: readonly [];
51
- readonly name: "NoCodeWebAuthnModule";
52
- readonly type: "error";
53
- }, {
54
- readonly inputs: readonly [{
55
- readonly internalType: "address";
56
- readonly name: "owner";
57
- readonly type: "address";
58
- }];
59
- readonly name: "OwnableInvalidOwner";
60
- readonly type: "error";
61
- }, {
62
- readonly inputs: readonly [{
63
- readonly internalType: "address";
64
- readonly name: "account";
65
- readonly type: "address";
66
- }];
67
- readonly name: "OwnableUnauthorizedAccount";
68
- readonly type: "error";
69
- }, {
70
- readonly inputs: readonly [{
71
- readonly internalType: "address";
72
- readonly name: "token";
73
- readonly type: "address";
74
- }];
75
- readonly name: "SafeERC20FailedOperation";
76
- readonly type: "error";
77
- }, {
78
- readonly inputs: readonly [];
79
- readonly name: "TransferFailed";
80
- readonly type: "error";
81
- }, {
82
- readonly anonymous: false;
83
- readonly inputs: readonly [{
84
- readonly indexed: true;
85
- readonly internalType: "address";
86
- readonly name: "previousOwner";
87
- readonly type: "address";
88
- }, {
89
- readonly indexed: true;
90
- readonly internalType: "address";
91
- readonly name: "newOwner";
92
- readonly type: "address";
93
- }];
94
- readonly name: "OwnershipTransferStarted";
95
- readonly type: "event";
96
- }, {
97
- readonly anonymous: false;
98
- readonly inputs: readonly [{
99
- readonly indexed: true;
100
- readonly internalType: "address";
101
- readonly name: "previousOwner";
102
- readonly type: "address";
103
- }, {
104
- readonly indexed: true;
105
- readonly internalType: "address";
106
- readonly name: "newOwner";
107
- readonly type: "address";
108
- }];
109
- readonly name: "OwnershipTransferred";
110
- readonly type: "event";
111
- }, {
112
- readonly anonymous: false;
113
- readonly inputs: readonly [{
114
- readonly indexed: true;
115
- readonly internalType: "address";
116
- readonly name: "account";
117
- readonly type: "address";
118
- }, {
119
- readonly indexed: true;
120
- readonly internalType: "uint256";
121
- readonly name: "ownerX";
122
- readonly type: "uint256";
123
- }, {
124
- readonly indexed: true;
125
- readonly internalType: "uint256";
126
- readonly name: "ownerY";
127
- readonly type: "uint256";
128
- }, {
129
- readonly indexed: false;
130
- readonly internalType: "uint256";
131
- readonly name: "salt";
132
- readonly type: "uint256";
133
- }];
134
- readonly name: "WebAuthnModularAccountDeployed";
135
- readonly type: "event";
136
- }, {
137
- readonly inputs: readonly [];
138
- readonly name: "ACCOUNT_IMPL";
139
- readonly outputs: readonly [{
140
- readonly internalType: "contract ModularAccount";
141
- readonly name: "";
142
- readonly type: "address";
143
- }];
144
- readonly stateMutability: "view";
145
- readonly type: "function";
146
- }, {
147
- readonly inputs: readonly [];
148
- readonly name: "ENTRY_POINT";
149
- readonly outputs: readonly [{
150
- readonly internalType: "contract IEntryPoint";
151
- readonly name: "";
152
- readonly type: "address";
153
- }];
154
- readonly stateMutability: "view";
155
- readonly type: "function";
156
- }, {
157
- readonly inputs: readonly [];
158
- readonly name: "WEBAUTHN_VALIDATION_MODULE";
159
- readonly outputs: readonly [{
160
- readonly internalType: "address";
161
- readonly name: "";
162
- readonly type: "address";
163
- }];
164
- readonly stateMutability: "view";
165
- readonly type: "function";
166
- }, {
167
- readonly inputs: readonly [];
168
- readonly name: "acceptOwnership";
169
- readonly outputs: readonly [];
170
- readonly stateMutability: "nonpayable";
171
- readonly type: "function";
172
- }, {
173
- readonly inputs: readonly [{
174
- readonly internalType: "uint32";
175
- readonly name: "unstakeDelay";
176
- readonly type: "uint32";
177
- }];
178
- readonly name: "addStake";
179
- readonly outputs: readonly [];
180
- readonly stateMutability: "payable";
181
- readonly type: "function";
182
- }, {
183
- readonly inputs: readonly [{
184
- readonly internalType: "uint256";
185
- readonly name: "ownerX";
186
- readonly type: "uint256";
187
- }, {
188
- readonly internalType: "uint256";
189
- readonly name: "ownerY";
190
- readonly type: "uint256";
191
- }, {
192
- readonly internalType: "uint256";
193
- readonly name: "salt";
194
- readonly type: "uint256";
195
- }, {
196
- readonly internalType: "uint32";
197
- readonly name: "entityId";
198
- readonly type: "uint32";
199
- }];
200
- readonly name: "createWebAuthnAccount";
201
- readonly outputs: readonly [{
202
- readonly internalType: "contract ModularAccount";
203
- readonly name: "";
204
- readonly type: "address";
205
- }];
206
- readonly stateMutability: "nonpayable";
207
- readonly type: "function";
208
- }, {
209
- readonly inputs: readonly [{
210
- readonly internalType: "uint256";
211
- readonly name: "ownerX";
212
- readonly type: "uint256";
213
- }, {
214
- readonly internalType: "uint256";
215
- readonly name: "ownerY";
216
- readonly type: "uint256";
217
- }, {
218
- readonly internalType: "uint256";
219
- readonly name: "salt";
220
- readonly type: "uint256";
221
- }, {
222
- readonly internalType: "uint32";
223
- readonly name: "entityId";
224
- readonly type: "uint32";
225
- }];
226
- readonly name: "getAddressWebAuthn";
227
- readonly outputs: readonly [{
228
- readonly internalType: "address";
229
- readonly name: "";
230
- readonly type: "address";
231
- }];
232
- readonly stateMutability: "view";
233
- readonly type: "function";
234
- }, {
235
- readonly inputs: readonly [{
236
- readonly internalType: "uint256";
237
- readonly name: "ownerX";
238
- readonly type: "uint256";
239
- }, {
240
- readonly internalType: "uint256";
241
- readonly name: "ownerY";
242
- readonly type: "uint256";
243
- }, {
244
- readonly internalType: "uint256";
245
- readonly name: "salt";
246
- readonly type: "uint256";
247
- }, {
248
- readonly internalType: "uint32";
249
- readonly name: "entityId";
250
- readonly type: "uint32";
251
- }];
252
- readonly name: "getSaltWebAuthn";
253
- readonly outputs: readonly [{
254
- readonly internalType: "bytes32";
255
- readonly name: "";
256
- readonly type: "bytes32";
257
- }];
258
- readonly stateMutability: "pure";
259
- readonly type: "function";
260
- }, {
261
- readonly inputs: readonly [];
262
- readonly name: "owner";
263
- readonly outputs: readonly [{
264
- readonly internalType: "address";
265
- readonly name: "";
266
- readonly type: "address";
267
- }];
268
- readonly stateMutability: "view";
269
- readonly type: "function";
270
- }, {
271
- readonly inputs: readonly [];
272
- readonly name: "pendingOwner";
273
- readonly outputs: readonly [{
274
- readonly internalType: "address";
275
- readonly name: "";
276
- readonly type: "address";
277
- }];
278
- readonly stateMutability: "view";
279
- readonly type: "function";
280
- }, {
281
- readonly inputs: readonly [];
282
- readonly name: "renounceOwnership";
283
- readonly outputs: readonly [];
284
- readonly stateMutability: "view";
285
- readonly type: "function";
286
- }, {
287
- readonly inputs: readonly [{
288
- readonly internalType: "address";
289
- readonly name: "newOwner";
290
- readonly type: "address";
291
- }];
292
- readonly name: "transferOwnership";
293
- readonly outputs: readonly [];
294
- readonly stateMutability: "nonpayable";
295
- readonly type: "function";
296
- }, {
297
- readonly inputs: readonly [];
298
- readonly name: "unlockStake";
299
- readonly outputs: readonly [];
300
- readonly stateMutability: "nonpayable";
301
- readonly type: "function";
302
- }, {
303
- readonly inputs: readonly [{
304
- readonly internalType: "address payable";
305
- readonly name: "to";
306
- readonly type: "address";
307
- }, {
308
- readonly internalType: "address";
309
- readonly name: "token";
310
- readonly type: "address";
311
- }, {
312
- readonly internalType: "uint256";
313
- readonly name: "amount";
314
- readonly type: "uint256";
315
- }];
316
- readonly name: "withdraw";
317
- readonly outputs: readonly [];
318
- readonly stateMutability: "nonpayable";
319
- readonly type: "function";
320
- }, {
321
- readonly inputs: readonly [{
322
- readonly internalType: "address payable";
323
- readonly name: "withdrawAddress";
324
- readonly type: "address";
325
- }];
326
- readonly name: "withdrawStake";
327
- readonly outputs: readonly [];
328
- readonly stateMutability: "nonpayable";
329
- readonly type: "function";
330
- }];