@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.
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/light-account/accounts/account.d.ts +9 -4
- package/dist/esm/light-account/accounts/account.js +29 -18
- package/dist/esm/light-account/accounts/account.js.map +1 -1
- package/dist/esm/light-account/accounts/base.d.ts +4 -4
- package/dist/esm/light-account/accounts/base.js +51 -24
- package/dist/esm/light-account/accounts/base.js.map +1 -1
- package/dist/esm/light-account/accounts/multi-owner-account.d.ts +9 -4
- package/dist/esm/light-account/accounts/multi-owner-account.js +23 -14
- package/dist/esm/light-account/accounts/multi-owner-account.js.map +1 -1
- package/dist/esm/light-account/decorators/multiOwner.js +2 -1
- package/dist/esm/light-account/decorators/multiOwner.js.map +1 -1
- package/dist/esm/light-account/decorators/singleOwner.js +1 -1
- package/dist/esm/light-account/decorators/singleOwner.js.map +1 -1
- package/dist/esm/light-account/lightAccountStaticImpl.d.ts +3 -1
- package/dist/esm/light-account/lightAccountStaticImpl.js +57 -7
- package/dist/esm/light-account/lightAccountStaticImpl.js.map +1 -1
- package/dist/esm/light-account/predictAddress.d.ts +40 -2
- package/dist/esm/light-account/predictAddress.js +83 -3
- package/dist/esm/light-account/predictAddress.js.map +1 -1
- package/dist/esm/light-account/registry.d.ts +3411 -1
- package/dist/esm/light-account/registry.js +33 -1
- package/dist/esm/light-account/registry.js.map +1 -1
- package/dist/esm/light-account/utils.js +1 -1
- package/dist/esm/light-account/utils.js.map +1 -1
- package/dist/esm/ma-v1/accounts/base.d.ts +4 -4
- package/dist/esm/ma-v1/accounts/base.js +1 -1
- package/dist/esm/ma-v1/accounts/base.js.map +1 -1
- package/dist/esm/ma-v1/accounts/multi-owner-account.d.ts +9 -4
- package/dist/esm/ma-v1/accounts/multi-owner-account.js +26 -14
- package/dist/esm/ma-v1/accounts/multi-owner-account.js.map +1 -1
- package/dist/esm/ma-v1/decorators/multiOwner.js +2 -1
- package/dist/esm/ma-v1/decorators/multiOwner.js.map +1 -1
- package/dist/esm/ma-v1/predictAddress.d.ts +20 -1
- package/dist/esm/ma-v1/predictAddress.js +37 -1
- package/dist/esm/ma-v1/predictAddress.js.map +1 -1
- package/dist/esm/ma-v2/accounts/account.d.ts +10 -7
- package/dist/esm/ma-v2/accounts/account.js +24 -43
- package/dist/esm/ma-v2/accounts/account.js.map +1 -1
- package/dist/esm/ma-v2/accounts/base.d.ts +5 -5
- package/dist/esm/ma-v2/accounts/base.js +18 -60
- package/dist/esm/ma-v2/accounts/base.js.map +1 -1
- package/dist/esm/ma-v2/mav2StaticImpl.d.ts +1 -15
- package/dist/esm/ma-v2/mav2StaticImpl.js +0 -33
- package/dist/esm/ma-v2/mav2StaticImpl.js.map +1 -1
- package/dist/esm/ma-v2/predictAddress.d.ts +22 -6
- package/dist/esm/ma-v2/predictAddress.js +46 -12
- package/dist/esm/ma-v2/predictAddress.js.map +1 -1
- package/dist/esm/ma-v2/utils/account.d.ts +0 -3
- package/dist/esm/ma-v2/utils/account.js +2 -4
- package/dist/esm/ma-v2/utils/account.js.map +1 -1
- package/dist/esm/ma-v2/utils/signature.d.ts +1 -12
- package/dist/esm/ma-v2/utils/signature.js +1 -34
- package/dist/esm/ma-v2/utils/signature.js.map +1 -1
- package/dist/esm/types.d.ts +8 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts +32 -2
- package/dist/esm/utils.js +75 -5
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/light-account/accounts/account.d.ts +9 -4
- package/dist/types/light-account/accounts/account.d.ts.map +1 -1
- package/dist/types/light-account/accounts/base.d.ts +4 -4
- package/dist/types/light-account/accounts/base.d.ts.map +1 -1
- package/dist/types/light-account/accounts/multi-owner-account.d.ts +9 -4
- package/dist/types/light-account/accounts/multi-owner-account.d.ts.map +1 -1
- package/dist/types/light-account/decorators/multiOwner.d.ts.map +1 -1
- package/dist/types/light-account/decorators/singleOwner.d.ts.map +1 -1
- package/dist/types/light-account/lightAccountStaticImpl.d.ts +3 -1
- package/dist/types/light-account/lightAccountStaticImpl.d.ts.map +1 -1
- package/dist/types/light-account/predictAddress.d.ts +40 -2
- package/dist/types/light-account/predictAddress.d.ts.map +1 -1
- package/dist/types/light-account/registry.d.ts +3411 -1
- package/dist/types/light-account/registry.d.ts.map +1 -1
- package/dist/types/ma-v1/accounts/base.d.ts +4 -4
- package/dist/types/ma-v1/accounts/base.d.ts.map +1 -1
- package/dist/types/ma-v1/accounts/multi-owner-account.d.ts +9 -4
- package/dist/types/ma-v1/accounts/multi-owner-account.d.ts.map +1 -1
- package/dist/types/ma-v1/decorators/multiOwner.d.ts.map +1 -1
- package/dist/types/ma-v1/predictAddress.d.ts +20 -1
- package/dist/types/ma-v1/predictAddress.d.ts.map +1 -1
- package/dist/types/ma-v2/accounts/account.d.ts +10 -7
- package/dist/types/ma-v2/accounts/account.d.ts.map +1 -1
- package/dist/types/ma-v2/accounts/base.d.ts +5 -5
- package/dist/types/ma-v2/accounts/base.d.ts.map +1 -1
- package/dist/types/ma-v2/mav2StaticImpl.d.ts +1 -15
- package/dist/types/ma-v2/mav2StaticImpl.d.ts.map +1 -1
- package/dist/types/ma-v2/predictAddress.d.ts +22 -6
- package/dist/types/ma-v2/predictAddress.d.ts.map +1 -1
- package/dist/types/ma-v2/utils/account.d.ts +0 -3
- package/dist/types/ma-v2/utils/account.d.ts.map +1 -1
- package/dist/types/ma-v2/utils/signature.d.ts +1 -12
- package/dist/types/ma-v2/utils/signature.d.ts.map +1 -1
- package/dist/types/types.d.ts +8 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts +32 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +5 -6
- package/src/index.ts +4 -3
- package/src/light-account/accounts/account.ts +42 -26
- package/src/light-account/accounts/base.ts +66 -27
- package/src/light-account/accounts/multi-owner-account.ts +33 -16
- package/src/light-account/decorators/multiOwner.ts +4 -1
- package/src/light-account/decorators/singleOwner.ts +3 -1
- package/src/light-account/lightAccountStaticImpl.ts +84 -11
- package/src/light-account/predictAddress.ts +124 -3
- package/src/light-account/registry.ts +47 -1
- package/src/light-account/utils.ts +1 -1
- package/src/ma-v1/accounts/base.ts +8 -5
- package/src/ma-v1/accounts/multi-owner-account.ts +37 -18
- package/src/ma-v1/decorators/multiOwner.ts +4 -1
- package/src/ma-v1/predictAddress.ts +59 -2
- package/src/ma-v2/accounts/account.ts +42 -55
- package/src/ma-v2/accounts/base.ts +24 -88
- package/src/ma-v2/mav2StaticImpl.ts +1 -52
- package/src/ma-v2/predictAddress.ts +68 -30
- package/src/ma-v2/utils/account.ts +4 -4
- package/src/ma-v2/utils/signature.ts +2 -51
- package/src/types.ts +15 -1
- package/src/utils.ts +119 -6
- package/src/version.ts +1 -1
- package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.d.ts +0 -330
- package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js +0 -260
- package/dist/esm/ma-v2/abis/webAuthnFactoryAbi.js.map +0 -1
- package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +0 -287
- package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +0 -374
- package/dist/esm/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +0 -1
- package/dist/esm/ma-v2/modules/webauthn-validation/module.d.ts +0 -11
- package/dist/esm/ma-v2/modules/webauthn-validation/module.js +0 -16
- package/dist/esm/ma-v2/modules/webauthn-validation/module.js.map +0 -1
- package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts +0 -331
- package/dist/types/ma-v2/abis/webAuthnFactoryAbi.d.ts.map +0 -1
- package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +0 -288
- package/dist/types/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +0 -1
- package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts +0 -12
- package/dist/types/ma-v2/modules/webauthn-validation/module.d.ts.map +0 -1
- package/src/ma-v2/abis/webAuthnFactoryAbi.ts +0 -259
- package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +0 -373
- package/src/ma-v2/modules/webauthn-validation/module.ts +0 -28
package/src/utils.ts
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
|
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,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
|
-
}];
|