@zerodev/permissions 5.2.1-alpha.9 → 5.2.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 (86) hide show
  1. package/_cjs/constants.js +9 -8
  2. package/_cjs/constants.js.map +1 -1
  3. package/_cjs/deserializePermissionAccount.js +2 -0
  4. package/_cjs/deserializePermissionAccount.js.map +1 -1
  5. package/_cjs/policies/index.js +3 -1
  6. package/_cjs/policies/index.js.map +1 -1
  7. package/_cjs/policies/toCallPolicy.js +2 -2
  8. package/_cjs/policies/toCallPolicy.js.map +1 -1
  9. package/_cjs/policies/toGasPolicy.js +2 -2
  10. package/_cjs/policies/toGasPolicy.js.map +1 -1
  11. package/_cjs/policies/toRateLimitPolicy.js +2 -2
  12. package/_cjs/policies/toRateLimitPolicy.js.map +1 -1
  13. package/_cjs/policies/toSignatureCallerPolicy.js +2 -2
  14. package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -1
  15. package/_cjs/policies/toSudoPolicy.js +2 -2
  16. package/_cjs/policies/toSudoPolicy.js.map +1 -1
  17. package/_cjs/policies/toTimestampPolicy.js +27 -0
  18. package/_cjs/policies/toTimestampPolicy.js.map +1 -0
  19. package/_cjs/signers/index.js +3 -1
  20. package/_cjs/signers/index.js.map +1 -1
  21. package/_cjs/signers/toEmptyECDSASigner.js +30 -0
  22. package/_cjs/signers/toEmptyECDSASigner.js.map +1 -0
  23. package/_cjs/toPermissionValidator.js +3 -10
  24. package/_cjs/toPermissionValidator.js.map +1 -1
  25. package/_esm/constants.js +8 -7
  26. package/_esm/constants.js.map +1 -1
  27. package/_esm/deserializePermissionAccount.js +3 -1
  28. package/_esm/deserializePermissionAccount.js.map +1 -1
  29. package/_esm/policies/index.js +1 -0
  30. package/_esm/policies/index.js.map +1 -1
  31. package/_esm/policies/toCallPolicy.js +2 -2
  32. package/_esm/policies/toCallPolicy.js.map +1 -1
  33. package/_esm/policies/toGasPolicy.js +2 -2
  34. package/_esm/policies/toGasPolicy.js.map +1 -1
  35. package/_esm/policies/toRateLimitPolicy.js +2 -2
  36. package/_esm/policies/toRateLimitPolicy.js.map +1 -1
  37. package/_esm/policies/toSignatureCallerPolicy.js +2 -2
  38. package/_esm/policies/toSignatureCallerPolicy.js.map +1 -1
  39. package/_esm/policies/toSudoPolicy.js +2 -2
  40. package/_esm/policies/toSudoPolicy.js.map +1 -1
  41. package/_esm/policies/toTimestampPolicy.js +23 -0
  42. package/_esm/policies/toTimestampPolicy.js.map +1 -0
  43. package/_esm/signers/index.js +1 -0
  44. package/_esm/signers/index.js.map +1 -1
  45. package/_esm/signers/toEmptyECDSASigner.js +27 -0
  46. package/_esm/signers/toEmptyECDSASigner.js.map +1 -0
  47. package/_esm/toPermissionValidator.js +5 -12
  48. package/_esm/toPermissionValidator.js.map +1 -1
  49. package/_types/constants.d.ts +8 -7
  50. package/_types/constants.d.ts.map +1 -1
  51. package/_types/deserializePermissionAccount.d.ts.map +1 -1
  52. package/_types/policies/index.d.ts +1 -0
  53. package/_types/policies/index.d.ts.map +1 -1
  54. package/_types/policies/toCallPolicy.d.ts +1 -2
  55. package/_types/policies/toCallPolicy.d.ts.map +1 -1
  56. package/_types/policies/toGasPolicy.d.ts +1 -2
  57. package/_types/policies/toGasPolicy.d.ts.map +1 -1
  58. package/_types/policies/toRateLimitPolicy.d.ts +1 -2
  59. package/_types/policies/toRateLimitPolicy.d.ts.map +1 -1
  60. package/_types/policies/toSignatureCallerPolicy.d.ts +1 -2
  61. package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -1
  62. package/_types/policies/toSudoPolicy.d.ts +2 -4
  63. package/_types/policies/toSudoPolicy.d.ts.map +1 -1
  64. package/_types/policies/toTimestampPolicy.d.ts +7 -0
  65. package/_types/policies/toTimestampPolicy.d.ts.map +1 -0
  66. package/_types/signers/index.d.ts +1 -0
  67. package/_types/signers/index.d.ts.map +1 -1
  68. package/_types/signers/toEmptyECDSASigner.d.ts +4 -0
  69. package/_types/signers/toEmptyECDSASigner.d.ts.map +1 -0
  70. package/_types/toPermissionValidator.d.ts.map +1 -1
  71. package/_types/types.d.ts +14 -2
  72. package/_types/types.d.ts.map +1 -1
  73. package/constants.ts +11 -9
  74. package/deserializePermissionAccount.ts +4 -1
  75. package/package.json +4 -4
  76. package/policies/index.ts +4 -0
  77. package/policies/toCallPolicy.ts +5 -5
  78. package/policies/toGasPolicy.ts +3 -5
  79. package/policies/toRateLimitPolicy.ts +3 -5
  80. package/policies/toSignatureCallerPolicy.ts +3 -5
  81. package/policies/toSudoPolicy.ts +4 -7
  82. package/policies/toTimestampPolicy.ts +37 -0
  83. package/signers/index.ts +1 -0
  84. package/signers/toEmptyECDSASigner.ts +34 -0
  85. package/toPermissionValidator.ts +5 -16
  86. package/types.ts +10 -6
@@ -0,0 +1,34 @@
1
+ import { constants } from "@zerodev/sdk"
2
+ import type { TypedData } from "abitype"
3
+ import { type Address, type TypedDataDefinition } from "viem"
4
+ import { toAccount } from "viem/accounts"
5
+ import { ECDSA_SIGNER_CONTRACT } from "../constants.js"
6
+ import type { ModularSigner } from "../types.js"
7
+
8
+ export function toEmptyECDSASigner(address: Address): ModularSigner {
9
+ const account = toAccount({
10
+ address,
11
+ async signMessage() {
12
+ throw new Error("Method not supported")
13
+ },
14
+ async signTransaction(_, __) {
15
+ throw new Error("Method not supported")
16
+ },
17
+ async signTypedData<
18
+ const TTypedData extends TypedData | Record<string, unknown>,
19
+ TPrimaryType extends
20
+ | keyof TTypedData
21
+ | "EIP712Domain" = keyof TTypedData
22
+ >(_typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
23
+ throw new Error("Method not supported")
24
+ }
25
+ })
26
+ return {
27
+ account,
28
+ signerContractAddress: ECDSA_SIGNER_CONTRACT,
29
+ getSignerData: () => {
30
+ return address
31
+ },
32
+ getDummySignature: () => constants.DUMMY_ECDSA_SIG
33
+ }
34
+ }
@@ -1,9 +1,5 @@
1
1
  import { KernelV3AccountAbi } from "@zerodev/sdk"
2
- import {
3
- getAction,
4
- getEntryPointVersion,
5
- getUserOperationHash
6
- } from "permissionless"
2
+ import { getEntryPointVersion, getUserOperationHash } from "permissionless"
7
3
  import type { EntryPoint } from "permissionless/types/entrypoint"
8
4
  import {
9
5
  type Address,
@@ -14,11 +10,11 @@ import {
14
10
  concat,
15
11
  encodeAbiParameters,
16
12
  keccak256,
17
- pad,
18
13
  slice,
19
14
  zeroAddress
20
15
  } from "viem"
21
16
  import { getChainId, readContract } from "viem/actions"
17
+ import { getAction } from "viem/utils"
22
18
  import { PolicyFlags } from "./constants.js"
23
19
  import { toPolicyId } from "./policies/index.js"
24
20
  import { toSignerId } from "./signers/index.js"
@@ -136,20 +132,13 @@ export async function toPermissionValidator<
136
132
  try {
137
133
  const permissionConfig = await getAction(
138
134
  client,
139
- readContract
135
+ readContract,
136
+ "readContract"
140
137
  )({
141
138
  abi: KernelV3AccountAbi,
142
139
  address: kernelAccountAddress,
143
140
  functionName: "permissionConfig",
144
- args: [
145
- concat([
146
- "0x00",
147
- pad(getPermissionId(), {
148
- size: 20,
149
- dir: "right"
150
- })
151
- ])
152
- ]
141
+ args: [getPermissionId()]
153
142
  })
154
143
  return permissionConfig.signer === signer.signerContractAddress
155
144
  } catch (error) {
package/types.ts CHANGED
@@ -8,7 +8,8 @@ import type {
8
8
  GasPolicyParams,
9
9
  RateLimitPolicyParams,
10
10
  SignatureCallerPolicyParams,
11
- SudoPolicyParams
11
+ SudoPolicyParams,
12
+ TimestampPolicyParams
12
13
  } from "./policies/index.js"
13
14
 
14
15
  export type PermissionPlugin<entryPoint extends EntryPoint> = KernelValidator<
@@ -38,11 +39,14 @@ export type Policy = {
38
39
  getPolicyInfoInBytes: () => Hex
39
40
  // return params directly to serialize/deserialize Policy
40
41
  policyParams:
41
- | CallPolicyParams<Abi | readonly unknown[], string>
42
- | GasPolicyParams
43
- | RateLimitPolicyParams
44
- | SignatureCallerPolicyParams
45
- | SudoPolicyParams
42
+ | (CallPolicyParams<Abi | readonly unknown[], string> & {
43
+ type: "call"
44
+ })
45
+ | (GasPolicyParams & { type: "gas" })
46
+ | (RateLimitPolicyParams & { type: "rate-limit" })
47
+ | (SignatureCallerPolicyParams & { type: "signature-caller" })
48
+ | (SudoPolicyParams & { type: "sudo" })
49
+ | (TimestampPolicyParams & { type: "timestamp" })
46
50
  }
47
51
 
48
52
  export type PermissionPluginParams = {