@zerodev/sdk 4.0.10 → 4.0.12
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 +20 -4
- package/dist/cjs/kernel-zerodev/constants.d.ts +3 -3
- package/dist/cjs/kernel-zerodev/constants.js +3 -3
- package/dist/cjs/kernel-zerodev/constants.js.map +1 -1
- package/dist/cjs/kernel-zerodev/middleware/paymaster.js +11 -4
- package/dist/cjs/kernel-zerodev/middleware/paymaster.js.map +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/base.d.ts +3 -2
- package/dist/cjs/kernel-zerodev/paymaster/base.js +2 -1
- package/dist/cjs/kernel-zerodev/paymaster/base.js.map +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +5 -7
- package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js +5 -7
- package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -1
- package/dist/cjs/kernel-zerodev/provider.js +16 -12
- package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js +7 -0
- package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
- package/dist/esm/kernel-zerodev/constants.d.ts +3 -3
- package/dist/esm/kernel-zerodev/constants.js +3 -3
- package/dist/esm/kernel-zerodev/constants.js.map +1 -1
- package/dist/esm/kernel-zerodev/middleware/paymaster.js +11 -4
- package/dist/esm/kernel-zerodev/middleware/paymaster.js.map +1 -1
- package/dist/esm/kernel-zerodev/paymaster/base.d.ts +3 -2
- package/dist/esm/kernel-zerodev/paymaster/base.js +2 -1
- package/dist/esm/kernel-zerodev/paymaster/base.js.map +1 -1
- package/dist/esm/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
- package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +5 -7
- package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
- package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
- package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js +5 -7
- package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -1
- package/dist/esm/kernel-zerodev/provider.js +16 -12
- package/dist/esm/kernel-zerodev/provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js +7 -0
- package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
- package/dist/types/kernel-zerodev/constants.d.ts +3 -3
- package/dist/types/kernel-zerodev/constants.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/middleware/paymaster.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/paymaster/base.d.ts +3 -2
- package/dist/types/kernel-zerodev/paymaster/base.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
- package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
- package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts.map +1 -1
- package/package.json +5 -10
- package/src/kernel-zerodev/constants.ts +3 -3
- package/src/kernel-zerodev/middleware/paymaster.ts +11 -4
- package/src/kernel-zerodev/paymaster/base.ts +6 -2
- package/src/kernel-zerodev/paymaster/token-paymaster.ts +7 -8
- package/src/kernel-zerodev/paymaster/verifying-paymaster.ts +7 -8
- package/src/kernel-zerodev/provider.ts +23 -21
- package/src/kernel-zerodev/validator/kill-switch-validator.ts +8 -0
|
@@ -4,14 +4,15 @@ import type { PaymasterAndBundlerProviders } from "./types.js";
|
|
|
4
4
|
export declare abstract class Paymaster {
|
|
5
5
|
protected provider: ZeroDevProvider;
|
|
6
6
|
constructor(provider: ZeroDevProvider);
|
|
7
|
-
abstract getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
|
|
8
|
-
protected signUserOp({ userOp, callData, gasTokenAddress, erc20UserOp, erc20CallData, paymasterProvider, }: {
|
|
7
|
+
abstract getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
|
|
8
|
+
protected signUserOp({ userOp, callData, gasTokenAddress, erc20UserOp, erc20CallData, paymasterProvider, shouldOverrideFee, }: {
|
|
9
9
|
userOp: UserOperationStruct;
|
|
10
10
|
callData?: PromiseOrValue<BytesLike>;
|
|
11
11
|
gasTokenAddress?: string;
|
|
12
12
|
erc20UserOp?: Partial<UserOperationStruct>;
|
|
13
13
|
erc20CallData?: PromiseOrValue<BytesLike>;
|
|
14
14
|
paymasterProvider?: PaymasterAndBundlerProviders;
|
|
15
|
+
shouldOverrideFee?: boolean;
|
|
15
16
|
}): Promise<any>;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG/D,8BAAsB,SAAS;IACjB,SAAS,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe;IAC/C,QAAQ,CAAC,oBAAoB,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG/D,8BAAsB,SAAS;IACjB,SAAS,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe;IAC/C,QAAQ,CAAC,oBAAoB,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;cAC3B,UAAU,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAyB,GAC1B,EAAE;QACD,MAAM,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3C,aAAa,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,4BAA4B,CAAC;QACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;CA0CjB"}
|
|
@@ -10,6 +10,6 @@ export declare class TokenPaymaster extends Paymaster {
|
|
|
10
10
|
getPaymasterAddress(): Promise<Hex | undefined>;
|
|
11
11
|
decodeMainCallFromCallData(kernelAddress: PromiseOrValue<string>, callData: PromiseOrValue<BytesLike>): Promise<UserOperationCallDataWithDelegate | undefined>;
|
|
12
12
|
getERC20UserOp(struct: UserOperationStruct, mainCall: UserOperationCallDataWithDelegate, gasTokenAddress: Hex, paymasterAddress: Hex): Promise<UserOperationStruct | undefined>;
|
|
13
|
-
getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
|
|
13
|
+
getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=token-paymaster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/token-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,GAAG,EAAiD,MAAM,MAAM,CAAC;AAc/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,cAAe,SAAQ,SAAS;IAGzC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;gBAD7D,QAAQ,EAAE,eAAe,EACf,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAIzD,mBAAmB,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAkB/C,0BAA0B,CAC9B,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EACrC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,GAClC,OAAO,CAAC,iCAAiC,GAAG,SAAS,CAAC;IA2DnD,cAAc,CAClB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,GAAG,EACpB,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgCrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"token-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/token-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,GAAG,EAAiD,MAAM,MAAM,CAAC;AAc/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,cAAe,SAAQ,SAAS;IAGzC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;gBAD7D,QAAQ,EAAE,eAAe,EACf,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAIzD,mBAAmB,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAkB/C,0BAA0B,CAC9B,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EACrC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,GAClC,OAAO,CAAC,iCAAiC,GAAG,SAAS,CAAC;IA2DnD,cAAc,CAClB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,GAAG,EACpB,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgCrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CA8C5C"}
|
|
@@ -4,6 +4,6 @@ import type { ZeroDevProvider } from "../provider.js";
|
|
|
4
4
|
import type { PaymasterAndBundlerProviders, PaymasterConfig } from "./types.js";
|
|
5
5
|
export declare class VerifyingPaymaster extends Paymaster {
|
|
6
6
|
constructor(provider: ZeroDevProvider, _: PaymasterConfig<"VERIFYING_PAYMASTER">);
|
|
7
|
-
getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
|
|
7
|
+
getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=verifying-paymaster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifying-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/verifying-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,qBAAa,kBAAmB,SAAQ,SAAS;gBAE7C,QAAQ,EAAE,eAAe,EACzB,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;IAIrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"verifying-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/verifying-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,qBAAa,kBAAmB,SAAQ,SAAS;gBAE7C,QAAQ,EAAE,eAAe,EACzB,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;IAIrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CAgB5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/kernel-zerodev/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,IAAI,EAET,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAK5B,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,YAAY,IAAI;CACjB;AAED,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,qBAAqB,GAC9D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,GACvC,CAAC,SAAS,0BAA0B,GACpC,SAAS,CAAC,IAAI,GACd,KAAK,CAAC;AAEV,qBAAa,eAAgB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;gBAE5B,EACV,SAAS,EACT,KAAK,EACL,iBAAsC,EACtC,MAAoB,EACpB,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE,qBAAqB;IA2BxB,YAAY,QAAO,MAAM,CAAmB;IAE5C,eAAe,YACJ,qBAAqB,cACnB,yBAAyB,qBAAqB,CAAC,KACzD,QAAQ,IAAI,CAAC,CAwBd;IAEF,iBAAiB,sFAIH,sBAAsB,8CAEjC,QAAQ,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/kernel-zerodev/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,IAAI,EAET,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAK5B,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,YAAY,IAAI;CACjB;AAED,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,qBAAqB,GAC9D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,GACvC,CAAC,SAAS,0BAA0B,GACpC,SAAS,CAAC,IAAI,GACd,KAAK,CAAC;AAEV,qBAAa,eAAgB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;gBAE5B,EACV,SAAS,EACT,KAAK,EACL,iBAAsC,EACtC,MAAoB,EACpB,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE,qBAAqB;IA2BxB,YAAY,QAAO,MAAM,CAAmB;IAE5C,eAAe,YACJ,qBAAqB,cACnB,yBAAyB,qBAAqB,CAAC,KACzD,QAAQ,IAAI,CAAC,CAwBd;IAEF,iBAAiB,sFAIH,sBAAsB,8CAEjC,QAAQ,uBAAuB,CAAC,CA2GjC;IAEF,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAc3C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK;IAsBhC,UAAU,EAAE,MAAM,0BAA0B,CAK1C;IAEF,4BAA4B,EAAE,mBAAmB,CAM/C;IAEF,2BAA2B,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;;;IAUpE,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CA0BjE;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kill-switch-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/kill-switch-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AAiBnB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;WAOzB,IAAI,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAUzB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAQnC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IA4Bb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"kill-switch-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/kill-switch-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AAiBnB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;WAOzB,IAAI,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAUzB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAQnC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IA4Bb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAOvC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxD,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CA4B7D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerodev/sdk",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.12",
|
|
4
4
|
"description": "A collection of ERC-4337 compliant smart contract account interfaces",
|
|
5
5
|
"author": "ZeroDev",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,21 +41,14 @@
|
|
|
41
41
|
"build:types": "tsc --project tsconfig.build.json --module esnext --declarationDir ./dist/types --emitDeclarationOnly --declaration --declarationMap",
|
|
42
42
|
"clean": "rm -rf ./dist",
|
|
43
43
|
"test": "vitest",
|
|
44
|
-
"test:run": "vitest run"
|
|
45
|
-
"test:run-e2e": "vitest run --config vitest.config.e2e.ts"
|
|
44
|
+
"test:run": "vitest run"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
48
|
-
"@alchemy/aa-core": "^0.1.0-alpha.23",
|
|
49
|
-
"@alchemy/aa-ethers": "^0.1.0-alpha.23",
|
|
50
47
|
"@turnkey/ethers": "^0.16.5",
|
|
51
48
|
"typescript": "^5.0.4",
|
|
52
49
|
"typescript-template": "*",
|
|
53
50
|
"vitest": "^0.31.0"
|
|
54
51
|
},
|
|
55
|
-
"peerDependencies": {
|
|
56
|
-
"@alchemy/aa-core": "^0.1.0-alpha.23",
|
|
57
|
-
"@alchemy/aa-ethers": "^0.1.0-alpha.23"
|
|
58
|
-
},
|
|
59
52
|
"publishConfig": {
|
|
60
53
|
"access": "public",
|
|
61
54
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -72,6 +65,8 @@
|
|
|
72
65
|
"dependencies": {
|
|
73
66
|
"axios": "^1.4.0",
|
|
74
67
|
"merkletreejs": "^0.3.10",
|
|
75
|
-
"viem": "^1.5.3"
|
|
68
|
+
"viem": "^1.5.3",
|
|
69
|
+
"@alchemy/aa-core": "0.1.0-alpha.23",
|
|
70
|
+
"@alchemy/aa-ethers": "0.1.0-alpha.23"
|
|
76
71
|
}
|
|
77
72
|
}
|
|
@@ -3,7 +3,7 @@ import type { IGasTokenAddresses } from "./paymaster/types.js";
|
|
|
3
3
|
import { polygon } from "viem/chains";
|
|
4
4
|
|
|
5
5
|
export const DEFAULT_SEND_TX_MAX_RETRIES = 3;
|
|
6
|
-
export const DEFAULT_SEND_TX_RETRY_INTERVAL_MS =
|
|
6
|
+
export const DEFAULT_SEND_TX_RETRY_INTERVAL_MS = 60000; // 1 minutes
|
|
7
7
|
export const BUNDLER_URL = "https://v0-6-meta-bundler.onrender.com";
|
|
8
8
|
export const PAYMASTER_URL = "https://v0-6-paymaster.onrender.com";
|
|
9
9
|
export const ENTRYPOINT_ADDRESS: Hex =
|
|
@@ -17,8 +17,8 @@ export const KERNEL_FACTORY_ADDRESS =
|
|
|
17
17
|
"0x5de4839a76cf55d0c90e2061ef4386d962E15ae3";
|
|
18
18
|
export const KERNEL_IMPL_ADDRESS = "0xf048AD83CB2dfd6037A43902a2A5Be04e53cd2Eb";
|
|
19
19
|
export const KILL_SWITCH_VALIDATOR_ADDRESS =
|
|
20
|
-
"
|
|
21
|
-
export const KILL_SWITCH_ACTION = "
|
|
20
|
+
"0x7393A7dA58CCfFb78f52adb09705BE6E20F704BC";
|
|
21
|
+
export const KILL_SWITCH_ACTION = "0x3f38e479304c7F18F988269a1bDa7d646bd48243";
|
|
22
22
|
export const DUMMY_ECDSA_SIG =
|
|
23
23
|
"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
|
|
24
24
|
export const ERC165_SESSION_KEY_VALIDATOR_ADDRESS =
|
|
@@ -25,7 +25,8 @@ export const zeroDevPaymasterAndDataMiddleware = <
|
|
|
25
25
|
>["0"] => {
|
|
26
26
|
return {
|
|
27
27
|
dummyPaymasterDataMiddleware: async (struct) => {
|
|
28
|
-
struct.paymasterAndData =
|
|
28
|
+
struct.paymasterAndData =
|
|
29
|
+
"0xe93eca6595fe94091dc1af46aac2a8b5d79907700000000000000000000000000000000000000000000000000000000064ee5cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
|
|
29
30
|
return struct;
|
|
30
31
|
},
|
|
31
32
|
paymasterDataMiddleware: async (struct) => {
|
|
@@ -47,15 +48,21 @@ export const zeroDevPaymasterAndDataMiddleware = <
|
|
|
47
48
|
);
|
|
48
49
|
if (
|
|
49
50
|
paymasterConfig.onlySendSponsoredTransaction &&
|
|
50
|
-
(!paymasterResp ||
|
|
51
|
+
(!paymasterResp ||
|
|
52
|
+
!paymasterResp.paymasterAndData ||
|
|
53
|
+
paymasterResp.paymasterAndData === "0x")
|
|
51
54
|
) {
|
|
52
55
|
throw new Error("Transaction is not sponsored");
|
|
53
56
|
}
|
|
54
57
|
if (
|
|
55
|
-
paymasterResp
|
|
58
|
+
!paymasterResp ||
|
|
59
|
+
!paymasterResp.paymasterAndData ||
|
|
56
60
|
paymasterResp.paymasterAndData === "0x"
|
|
57
61
|
) {
|
|
58
|
-
return
|
|
62
|
+
return {
|
|
63
|
+
...struct,
|
|
64
|
+
paymasterAndData: "0x",
|
|
65
|
+
};
|
|
59
66
|
}
|
|
60
67
|
return {
|
|
61
68
|
...struct,
|
|
@@ -16,8 +16,9 @@ export abstract class Paymaster {
|
|
|
16
16
|
constructor(protected provider: ZeroDevProvider) {}
|
|
17
17
|
abstract getPaymasterResponse(
|
|
18
18
|
struct: UserOperationStruct,
|
|
19
|
-
paymasterProvider?: PaymasterAndBundlerProviders
|
|
20
|
-
|
|
19
|
+
paymasterProvider?: PaymasterAndBundlerProviders,
|
|
20
|
+
shouldOverrideFee?: boolean
|
|
21
|
+
): Promise<UserOperationStruct | undefined>;
|
|
21
22
|
protected async signUserOp({
|
|
22
23
|
userOp,
|
|
23
24
|
callData,
|
|
@@ -25,6 +26,7 @@ export abstract class Paymaster {
|
|
|
25
26
|
erc20UserOp,
|
|
26
27
|
erc20CallData,
|
|
27
28
|
paymasterProvider,
|
|
29
|
+
shouldOverrideFee = false,
|
|
28
30
|
}: {
|
|
29
31
|
userOp: UserOperationStruct;
|
|
30
32
|
callData?: PromiseOrValue<BytesLike>;
|
|
@@ -32,6 +34,7 @@ export abstract class Paymaster {
|
|
|
32
34
|
erc20UserOp?: Partial<UserOperationStruct>;
|
|
33
35
|
erc20CallData?: PromiseOrValue<BytesLike>;
|
|
34
36
|
paymasterProvider?: PaymasterAndBundlerProviders;
|
|
37
|
+
shouldOverrideFee?: boolean;
|
|
35
38
|
}): Promise<any> {
|
|
36
39
|
try {
|
|
37
40
|
const hexifiedUserOp = deepHexlify(await resolveProperties(userOp));
|
|
@@ -58,6 +61,7 @@ export abstract class Paymaster {
|
|
|
58
61
|
? await erc20CallData
|
|
59
62
|
: erc20CallData,
|
|
60
63
|
paymasterProvider,
|
|
64
|
+
shouldOverrideFee,
|
|
61
65
|
}).filter(([_, value]) => value !== undefined)
|
|
62
66
|
);
|
|
63
67
|
const { data: paymasterResp } = await axios.post(
|
|
@@ -157,8 +157,9 @@ export class TokenPaymaster extends Paymaster {
|
|
|
157
157
|
|
|
158
158
|
async getPaymasterResponse(
|
|
159
159
|
struct: UserOperationStruct,
|
|
160
|
-
paymasterProvider?: PaymasterAndBundlerProviders
|
|
161
|
-
|
|
160
|
+
paymasterProvider?: PaymasterAndBundlerProviders,
|
|
161
|
+
shouldOverrideFee?: boolean
|
|
162
|
+
): Promise<UserOperationStruct | undefined> {
|
|
162
163
|
try {
|
|
163
164
|
const mainCall = await this.decodeMainCallFromCallData(
|
|
164
165
|
struct.sender,
|
|
@@ -193,17 +194,15 @@ export class TokenPaymaster extends Paymaster {
|
|
|
193
194
|
erc20UserOp,
|
|
194
195
|
erc20CallData: erc20UserOp.callData,
|
|
195
196
|
paymasterProvider,
|
|
197
|
+
shouldOverrideFee,
|
|
196
198
|
});
|
|
197
199
|
if (paymasterResp) {
|
|
198
|
-
return
|
|
199
|
-
...struct,
|
|
200
|
-
...paymasterResp,
|
|
201
|
-
};
|
|
200
|
+
return paymasterResp;
|
|
202
201
|
}
|
|
203
202
|
}
|
|
204
203
|
} catch (error) {
|
|
205
|
-
|
|
204
|
+
console.log(error);
|
|
206
205
|
}
|
|
207
|
-
return
|
|
206
|
+
return;
|
|
208
207
|
}
|
|
209
208
|
}
|
|
@@ -16,23 +16,22 @@ export class VerifyingPaymaster extends Paymaster {
|
|
|
16
16
|
}
|
|
17
17
|
async getPaymasterResponse(
|
|
18
18
|
struct: UserOperationStruct,
|
|
19
|
-
paymasterProvider?: PaymasterAndBundlerProviders
|
|
20
|
-
|
|
19
|
+
paymasterProvider?: PaymasterAndBundlerProviders,
|
|
20
|
+
shouldOverrideFee?: boolean
|
|
21
|
+
): Promise<UserOperationStruct | undefined> {
|
|
21
22
|
try {
|
|
22
23
|
const hexifiedUserOp = deepHexlify(await resolveProperties(struct));
|
|
23
24
|
const paymasterResp = await this.signUserOp({
|
|
24
25
|
userOp: hexifiedUserOp,
|
|
25
26
|
paymasterProvider,
|
|
27
|
+
shouldOverrideFee,
|
|
26
28
|
});
|
|
27
29
|
if (paymasterResp) {
|
|
28
|
-
return
|
|
29
|
-
...struct,
|
|
30
|
-
...paymasterResp,
|
|
31
|
-
};
|
|
30
|
+
return paymasterResp;
|
|
32
31
|
}
|
|
33
32
|
} catch (error) {
|
|
34
|
-
|
|
33
|
+
console.log(error);
|
|
35
34
|
}
|
|
36
|
-
return
|
|
35
|
+
return;
|
|
37
36
|
}
|
|
38
37
|
}
|
|
@@ -183,24 +183,28 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
|
|
|
183
183
|
let hash: string = "";
|
|
184
184
|
let i = 0;
|
|
185
185
|
const nonce = await this.account.getNonce();
|
|
186
|
-
|
|
187
|
-
this.dummyPaymasterDataMiddleware,
|
|
188
|
-
this.feeDataGetter,
|
|
189
|
-
this.paymasterDataMiddleware,
|
|
190
|
-
this.gasEstimator,
|
|
191
|
-
this.customMiddleware ?? noOpMiddleware,
|
|
192
|
-
async (struct) => ({ ...struct, ...overrides })
|
|
193
|
-
)({
|
|
194
|
-
initCode,
|
|
195
|
-
sender: this.getAddress(),
|
|
196
|
-
nonce,
|
|
197
|
-
callData,
|
|
198
|
-
signature: await this.account
|
|
199
|
-
.getValidator()
|
|
200
|
-
.getDynamicDummySignature(await this.getAddress(), callData as Hex),
|
|
201
|
-
} as UserOperationStruct);
|
|
186
|
+
let uoStruct: UserOperationStruct;
|
|
202
187
|
let request: UserOperationStruct;
|
|
188
|
+
let maxFeePerGas, maxPriorityFeePerGas;
|
|
203
189
|
do {
|
|
190
|
+
uoStruct = await asyncPipe(
|
|
191
|
+
this.dummyPaymasterDataMiddleware,
|
|
192
|
+
this.feeDataGetter,
|
|
193
|
+
this.paymasterDataMiddleware,
|
|
194
|
+
this.gasEstimator,
|
|
195
|
+
this.customMiddleware ?? noOpMiddleware,
|
|
196
|
+
async (struct) => ({ ...struct, ...overrides })
|
|
197
|
+
)({
|
|
198
|
+
initCode,
|
|
199
|
+
sender: this.getAddress(),
|
|
200
|
+
nonce,
|
|
201
|
+
callData,
|
|
202
|
+
signature: await this.account
|
|
203
|
+
.getValidator()
|
|
204
|
+
.getDynamicDummySignature(await this.getAddress(), callData as Hex),
|
|
205
|
+
maxFeePerGas,
|
|
206
|
+
maxPriorityFeePerGas,
|
|
207
|
+
} as UserOperationStruct);
|
|
204
208
|
request = deepHexlify(await resolveProperties(uoStruct));
|
|
205
209
|
|
|
206
210
|
if (!isValidRequest(request)) {
|
|
@@ -224,16 +228,14 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
|
|
|
224
228
|
);
|
|
225
229
|
} catch (error: any) {
|
|
226
230
|
if (this.isReplacementOpError(error) && i++ < this.sendTxMaxRetries) {
|
|
227
|
-
|
|
228
|
-
|
|
231
|
+
maxFeePerGas = (BigInt(request.maxFeePerGas) * 113n) / 100n;
|
|
232
|
+
maxPriorityFeePerGas =
|
|
229
233
|
(BigInt(request.maxPriorityFeePerGas) * 113n) / 100n;
|
|
230
234
|
|
|
231
235
|
console.log(
|
|
232
236
|
`After ${
|
|
233
237
|
this.sendTxRetryIntervalMs / 60000
|
|
234
|
-
} minutes, resending tx with Increased Gas fees: maxFeePerGas: ${
|
|
235
|
-
uoStruct.maxFeePerGas
|
|
236
|
-
}, maxPriorityFeePerGas: ${uoStruct.maxPriorityFeePerGas}`
|
|
238
|
+
} minutes, resending tx with Increased Gas fees: maxFeePerGas: ${maxFeePerGas}, maxPriorityFeePerGas: ${maxPriorityFeePerGas}`
|
|
237
239
|
);
|
|
238
240
|
await new Promise((resolve) =>
|
|
239
241
|
setTimeout(resolve, this.sendTxRetryIntervalMs)
|
|
@@ -116,6 +116,9 @@ export class KillSwitchValidator extends KernelBaseValidator {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
async getDummyUserOpSignature(): Promise<Hex> {
|
|
119
|
+
if (this.mode === ValidatorMode.sudo) {
|
|
120
|
+
return DUMMY_ECDSA_SIG;
|
|
121
|
+
}
|
|
119
122
|
return concatHex([pad("0xffffffffffff", { size: 6 }), DUMMY_ECDSA_SIG]);
|
|
120
123
|
}
|
|
121
124
|
|
|
@@ -141,6 +144,11 @@ export class KillSwitchValidator extends KernelBaseValidator {
|
|
|
141
144
|
BigInt(this.chain.id)
|
|
142
145
|
) as Hex;
|
|
143
146
|
|
|
147
|
+
if (this.mode === ValidatorMode.sudo) {
|
|
148
|
+
const formattedMessage = typeof hash === "string" ? toBytes(hash) : hash;
|
|
149
|
+
return await this.guardian.signMessage(formattedMessage);
|
|
150
|
+
}
|
|
151
|
+
|
|
144
152
|
const extendedHash = keccak256(
|
|
145
153
|
concat([pad(toHex(pausedUntil), { size: 6 }), hash])
|
|
146
154
|
);
|