@zerodev/sdk 4.0.26 → 4.0.28
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/README.md +1 -693
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/account.d.ts +1 -0
- package/dist/cjs/kernel-zerodev/account.js +27 -5
- package/dist/cjs/kernel-zerodev/account.js.map +1 -1
- package/dist/cjs/kernel-zerodev/api/index.d.ts +2 -0
- package/dist/cjs/kernel-zerodev/api/index.js +18 -1
- package/dist/cjs/kernel-zerodev/api/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js +6 -0
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +3 -3
- package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -2
- package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +2 -2
- package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +3 -1
- package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
- package/dist/cjs/kernel-zerodev/provider.js +2 -2
- package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
- package/dist/cjs/kernel-zerodev/validator/recovery-validator.js +50 -9
- package/dist/cjs/kernel-zerodev/validator/recovery-validator.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/recovery-provider.js +20 -32
- package/dist/cjs/kernel-zerodev/validator-provider/recovery-provider.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/account.d.ts +1 -0
- package/dist/esm/kernel-zerodev/account.js +29 -7
- package/dist/esm/kernel-zerodev/account.js.map +1 -1
- package/dist/esm/kernel-zerodev/api/index.d.ts +2 -0
- package/dist/esm/kernel-zerodev/api/index.js +16 -0
- package/dist/esm/kernel-zerodev/api/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js +6 -0
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +3 -3
- package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -2
- package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.js +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/passkey/utils.js +2 -2
- package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -1
- package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +4 -2
- package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
- package/dist/esm/kernel-zerodev/provider.js +2 -2
- package/dist/esm/kernel-zerodev/provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
- package/dist/esm/kernel-zerodev/validator/recovery-validator.js +52 -11
- package/dist/esm/kernel-zerodev/validator/recovery-validator.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/recovery-provider.js +23 -32
- package/dist/esm/kernel-zerodev/validator-provider/recovery-provider.js.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/account.d.ts +1 -0
- package/dist/types/kernel-zerodev/account.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/api/index.d.ts +2 -0
- package/dist/types/kernel-zerodev/api/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
- package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/index.d.ts +1 -1
- package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
- package/dist/types/kernel-zerodev/validator/recovery-validator.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/recovery-provider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/kernel-zerodev/account.ts +30 -9
- package/src/kernel-zerodev/api/index.ts +27 -0
- package/src/kernel-zerodev/ethers-provider/account-signer.ts +9 -0
- package/src/kernel-zerodev/owner/passkey/createPasskeyOwner.ts +4 -4
- package/src/kernel-zerodev/owner/passkey/exceptions.ts +2 -2
- package/src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts +11 -9
- package/src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts +5 -3
- package/src/kernel-zerodev/owner/passkey/index.ts +1 -1
- package/src/kernel-zerodev/owner/passkey/utils.ts +11 -6
- package/src/kernel-zerodev/paymaster/token-paymaster.ts +12 -2
- package/src/kernel-zerodev/provider.ts +2 -2
- package/src/kernel-zerodev/validator/recovery-validator.ts +59 -12
- package/src/kernel-zerodev/validator-provider/recovery-provider.ts +38 -36
|
@@ -12,9 +12,14 @@ import {
|
|
|
12
12
|
type Address,
|
|
13
13
|
type SendUserOperationResult,
|
|
14
14
|
} from "@alchemy/aa-core";
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
getChainId,
|
|
17
|
+
getRecoveryData,
|
|
18
|
+
postRecoveryData,
|
|
19
|
+
setSignatures,
|
|
20
|
+
} from "../api/index.js";
|
|
16
21
|
import { polygonMumbai } from "viem/chains";
|
|
17
|
-
import {
|
|
22
|
+
import { CHAIN_ID_TO_NODE, RECOVERY_VALIDATOR_ADDRESS } from "../constants.js";
|
|
18
23
|
import {
|
|
19
24
|
encodeAbiParameters,
|
|
20
25
|
encodeFunctionData,
|
|
@@ -23,11 +28,11 @@ import {
|
|
|
23
28
|
keccak256,
|
|
24
29
|
publicActions,
|
|
25
30
|
type TransactionReceipt,
|
|
26
|
-
|
|
31
|
+
createPublicClient,
|
|
32
|
+
http,
|
|
27
33
|
} from "viem";
|
|
28
34
|
import { RecoveryActionAbi } from "../abis/RecoveryActionAbi.js";
|
|
29
35
|
import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
|
|
30
|
-
import axios from "axios";
|
|
31
36
|
import { base64ToBytes, bytesToBase64 } from "../utils.js";
|
|
32
37
|
|
|
33
38
|
export interface RecoveryProviderParams
|
|
@@ -50,6 +55,7 @@ export class RecoveryProvider extends ValidatorProvider<
|
|
|
50
55
|
const validator = new RecoveryValidator({
|
|
51
56
|
projectId: params.projectId,
|
|
52
57
|
chain,
|
|
58
|
+
recoveryId: params.recoveryId,
|
|
53
59
|
validatorAddress:
|
|
54
60
|
params.opts?.validatorConfig?.validatorAddress ??
|
|
55
61
|
RECOVERY_VALIDATOR_ADDRESS,
|
|
@@ -92,6 +98,20 @@ export class RecoveryProvider extends ValidatorProvider<
|
|
|
92
98
|
recoveryConfig = RecoveryProvider.deserializeRecoveryConfig(
|
|
93
99
|
serializedRecoveryConfig
|
|
94
100
|
);
|
|
101
|
+
} else if (
|
|
102
|
+
params.opts?.accountConfig?.accountAddress &&
|
|
103
|
+
(!params.opts?.validatorConfig?.guardians ||
|
|
104
|
+
!Object.entries(params.opts?.validatorConfig?.guardians).length ||
|
|
105
|
+
params.opts.validatorConfig.threshold === undefined)
|
|
106
|
+
) {
|
|
107
|
+
const publicClient = createPublicClient({
|
|
108
|
+
transport: http(CHAIN_ID_TO_NODE[chain?.id ?? polygonMumbai.id]),
|
|
109
|
+
chain: chain ?? polygonMumbai,
|
|
110
|
+
});
|
|
111
|
+
recoveryConfig = await RecoveryValidator.fetchRecoveryConfigFromContract(
|
|
112
|
+
params.opts?.accountConfig?.accountAddress,
|
|
113
|
+
publicClient
|
|
114
|
+
);
|
|
95
115
|
}
|
|
96
116
|
const instance = new RecoveryProvider({
|
|
97
117
|
enableData,
|
|
@@ -160,28 +180,18 @@ export class RecoveryProvider extends ValidatorProvider<
|
|
|
160
180
|
}
|
|
161
181
|
|
|
162
182
|
async initiateRecovery(enableData: Hex): Promise<string> {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
recoveryConfig: serializedConfig,
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
headers: { "Content-Type": "application/json" },
|
|
176
|
-
}
|
|
177
|
-
);
|
|
178
|
-
console.log(recoveryId);
|
|
179
|
-
this.enableData = enableData;
|
|
180
|
-
return recoveryId;
|
|
181
|
-
} catch (error) {
|
|
182
|
-
console.log(error);
|
|
183
|
+
const serializedConfig = this.serializeRecoveryConfig();
|
|
184
|
+
const recoveryId = await postRecoveryData(
|
|
185
|
+
enableData,
|
|
186
|
+
await this.getAddress(),
|
|
187
|
+
serializedConfig
|
|
188
|
+
);
|
|
189
|
+
console.log(recoveryId);
|
|
190
|
+
this.enableData = enableData;
|
|
191
|
+
if (!recoveryId) {
|
|
183
192
|
throw Error("Unable to generate the recoveryId");
|
|
184
193
|
}
|
|
194
|
+
return recoveryId;
|
|
185
195
|
}
|
|
186
196
|
|
|
187
197
|
serializeRecoveryConfig(): string {
|
|
@@ -246,20 +256,11 @@ export class RecoveryProvider extends ValidatorProvider<
|
|
|
246
256
|
const sig = await this.getValidator().signRecoveryHash(
|
|
247
257
|
callDataAndNonceHash
|
|
248
258
|
);
|
|
249
|
-
|
|
250
|
-
if (sigs) {
|
|
251
|
-
sigs =
|
|
252
|
-
sigs.toLowerCase().indexOf(sig.toLowerCase()) === -1
|
|
253
|
-
? concatHex([sigs, sig])
|
|
254
|
-
: sigs;
|
|
255
|
-
} else {
|
|
256
|
-
sigs = sig;
|
|
257
|
-
}
|
|
258
|
-
this.getValidator().setRecoverySignatures(sigs);
|
|
259
|
-
const { result } = await setSignatures(this.recoveryId, sigs);
|
|
259
|
+
const { result, data } = await setSignatures(this.recoveryId, sig);
|
|
260
260
|
if (result !== "success") {
|
|
261
261
|
throw Error("Failed to save the signatures");
|
|
262
262
|
}
|
|
263
|
+
this.getValidator().setRecoverySignatures(data.signatures);
|
|
263
264
|
} catch (error) {
|
|
264
265
|
console.log(error);
|
|
265
266
|
}
|
|
@@ -273,7 +274,8 @@ export class RecoveryProvider extends ValidatorProvider<
|
|
|
273
274
|
if (!fetchedEnableData) {
|
|
274
275
|
throw Error("Unable to fetch enable data for Recovery");
|
|
275
276
|
}
|
|
276
|
-
const signatures =
|
|
277
|
+
const signatures =
|
|
278
|
+
sigs ?? (await this.getValidator().getRecoverySignatures());
|
|
277
279
|
if (!signatures) {
|
|
278
280
|
throw Error("Signatures are not set");
|
|
279
281
|
}
|