@zerodev/sdk 4.3.0 → 4.3.2

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 (29) hide show
  1. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
  2. package/dist/cjs/kernel-zerodev/provider.d.ts +3 -0
  3. package/dist/cjs/kernel-zerodev/provider.js +36 -1
  4. package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
  5. package/dist/cjs/kernel-zerodev/validator/base.d.ts +1 -0
  6. package/dist/cjs/kernel-zerodev/validator/base.js +11 -2
  7. package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
  8. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js +1 -2
  9. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  10. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
  11. package/dist/esm/kernel-zerodev/provider.d.ts +3 -0
  12. package/dist/esm/kernel-zerodev/provider.js +38 -3
  13. package/dist/esm/kernel-zerodev/provider.js.map +1 -1
  14. package/dist/esm/kernel-zerodev/validator/base.d.ts +1 -0
  15. package/dist/esm/kernel-zerodev/validator/base.js +11 -2
  16. package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
  17. package/dist/esm/kernel-zerodev/validator/session-key-validator.js +1 -2
  18. package/dist/esm/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  19. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
  20. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts.map +1 -1
  21. package/dist/types/kernel-zerodev/provider.d.ts +3 -0
  22. package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
  23. package/dist/types/kernel-zerodev/validator/base.d.ts +1 -0
  24. package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
  25. package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/kernel-zerodev/provider.ts +27 -1
  28. package/src/kernel-zerodev/validator/base.ts +8 -8
  29. package/src/kernel-zerodev/validator/session-key-validator.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/session-key-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/session-key-validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.3.0",
3
+ "version": "4.3.2",
4
4
  "description": "A collection of ERC-4337 compliant smart contract account interfaces",
5
5
  "author": "ZeroDev",
6
6
  "license": "MIT",
@@ -6,6 +6,7 @@ import {
6
6
  type Hex,
7
7
  type HttpTransport,
8
8
  type RpcTransactionRequest,
9
+ getAbiItem,
9
10
  } from "viem";
10
11
  import {
11
12
  deepHexlify,
@@ -22,6 +23,7 @@ import {
22
23
  SmartAccountProvider,
23
24
  type AccountMiddlewareFn,
24
25
  type UserOperationOverrides,
26
+ EntryPointAbi,
25
27
  } from "@alchemy/aa-core";
26
28
  import {
27
29
  BUNDLER_URL,
@@ -71,6 +73,8 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
71
73
  protected sendTxMaxRetries: number;
72
74
  protected sendTxRetryIntervalMs: number;
73
75
  readonly bundlerProvider?: PaymasterAndBundlerProviders;
76
+ private _txMaxRetries: number;
77
+ private _txRetryIntervalMs: number;
74
78
 
75
79
  constructor({
76
80
  projectId,
@@ -91,13 +95,15 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
91
95
 
92
96
  super(rpcClient, entryPointAddress, _chain, account, {
93
97
  ...opts,
94
- txMaxRetries: opts?.txMaxRetries ?? 10,
98
+ txMaxRetries: opts?.txMaxRetries ?? 20,
95
99
  txRetryIntervalMs: opts?.txRetryIntervalMs ?? 10000,
96
100
  minPriorityFeePerBid:
97
101
  opts?.minPriorityFeePerBid ??
98
102
  minPriorityFeePerBidDefaults.get(_chain.id),
99
103
  });
100
104
 
105
+ this._txMaxRetries = opts?.txMaxRetries ?? 20;
106
+ this._txRetryIntervalMs = opts?.txRetryIntervalMs ?? 5000;
101
107
  this.bundlerProvider = bundlerProvider;
102
108
  this.projectId = projectId;
103
109
  this.sendTxMaxRetries =
@@ -364,6 +370,26 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
364
370
  return errorIn;
365
371
  }
366
372
 
373
+ waitForUserOperationTransaction = async (hash: Hash): Promise<Hash> => {
374
+ let blockNumber = await this.rpcClient.getBlockNumber();
375
+ for (let i = 0; i < this._txMaxRetries; i++) {
376
+ const logs = await this.rpcClient.getLogs({
377
+ address: ENTRYPOINT_ADDRESS,
378
+ event: getAbiItem({ abi: EntryPointAbi, name: "UserOperationEvent" }),
379
+ args: { userOpHash: hash },
380
+ fromBlock: blockNumber - 100n,
381
+ });
382
+ if (logs.length) {
383
+ return logs[0].transactionHash;
384
+ }
385
+ await new Promise((resolve) =>
386
+ setTimeout(resolve, this._txRetryIntervalMs)
387
+ );
388
+ }
389
+
390
+ throw new Error("Failed to find transaction for User Operation");
391
+ };
392
+
367
393
  getAccount: () => KernelSmartContractAccount = () => {
368
394
  if (!isKernelAccount(this.account)) {
369
395
  throw new Error("account not connected!");
@@ -60,6 +60,7 @@ export type ValidatorPluginData = Required<
60
60
  export abstract class KernelBaseValidator {
61
61
  readonly validatorAddress: Hex;
62
62
  mode: ValidatorMode;
63
+ resolvedMode?: ValidatorMode;
63
64
  protected projectId: string;
64
65
  protected chain?: Chain;
65
66
  protected entryPointAddress: Address;
@@ -136,10 +137,9 @@ export abstract class KernelBaseValidator {
136
137
  ): Promise<Hex> {
137
138
  const dummyECDSASig =
138
139
  "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
139
- const validatorMode = await this.resolveValidatorMode(
140
- kernelAccountAddress,
141
- calldata
142
- );
140
+ const validatorMode =
141
+ this.resolvedMode ??
142
+ (await this.resolveValidatorMode(kernelAccountAddress, calldata));
143
143
  if (validatorMode === ValidatorMode.enable) {
144
144
  const enableData = await this.getEnableData(kernelAccountAddress);
145
145
  const enableDataLength = enableData.length / 2 - 1;
@@ -286,14 +286,14 @@ export abstract class KernelBaseValidator {
286
286
  mode = this.mode;
287
287
  }
288
288
  }
289
+ this.resolvedMode = mode;
289
290
  return mode;
290
291
  }
291
292
 
292
293
  async getSignature(userOp: UserOperationRequest): Promise<Hex> {
293
- const mode = await this.resolveValidatorMode(
294
- userOp.sender,
295
- userOp.callData
296
- );
294
+ const mode =
295
+ this.resolvedMode ??
296
+ (await this.resolveValidatorMode(userOp.sender, userOp.callData));
297
297
  if (mode === ValidatorMode.sudo || mode === ValidatorMode.plugin) {
298
298
  return concatHex([this.mode, await this.signUserOp(userOp)]);
299
299
  } else {
@@ -403,8 +403,7 @@ export class SessionKeyValidator extends KernelBaseValidator {
403
403
  return permissionPacked && permissionPacked.length !== 0
404
404
  ? new MerkleTree(permissionPacked, keccak256, {
405
405
  hashLeaves: true,
406
- complete: true,
407
- sort: true,
406
+ sortPairs: true,
408
407
  })
409
408
  : new MerkleTree([pad("0x00", { size: 32 })], keccak256, {
410
409
  hashLeaves: false,