permissionless 0.1.9 → 0.1.11

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 (34) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js +2 -1
  3. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -1
  4. package/_cjs/accounts/safe/signerToSafeSmartAccount.js +122 -68
  5. package/_cjs/accounts/safe/signerToSafeSmartAccount.js.map +1 -1
  6. package/_cjs/errors/sendUserOperation.js +1 -11
  7. package/_cjs/errors/sendUserOperation.js.map +1 -1
  8. package/_cjs/utils/getEntryPointVersion.js +9 -1
  9. package/_cjs/utils/getEntryPointVersion.js.map +1 -1
  10. package/_cjs/utils/getUserOperationHash.js +29 -35
  11. package/_cjs/utils/getUserOperationHash.js.map +1 -1
  12. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js +2 -1
  13. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -1
  14. package/_esm/accounts/safe/signerToSafeSmartAccount.js +123 -69
  15. package/_esm/accounts/safe/signerToSafeSmartAccount.js.map +1 -1
  16. package/_esm/errors/sendUserOperation.js +1 -11
  17. package/_esm/errors/sendUserOperation.js.map +1 -1
  18. package/_esm/utils/getEntryPointVersion.js +7 -0
  19. package/_esm/utils/getEntryPointVersion.js.map +1 -1
  20. package/_esm/utils/getUserOperationHash.js +30 -36
  21. package/_esm/utils/getUserOperationHash.js.map +1 -1
  22. package/_types/accounts/biconomy/signerToBiconomySmartAccount.d.ts.map +1 -1
  23. package/_types/accounts/safe/signerToSafeSmartAccount.d.ts +5 -5
  24. package/_types/accounts/safe/signerToSafeSmartAccount.d.ts.map +1 -1
  25. package/_types/errors/sendUserOperation.d.ts.map +1 -1
  26. package/_types/utils/getEntryPointVersion.d.ts +3 -1
  27. package/_types/utils/getEntryPointVersion.d.ts.map +1 -1
  28. package/_types/utils/getUserOperationHash.d.ts.map +1 -1
  29. package/accounts/biconomy/signerToBiconomySmartAccount.ts +4 -3
  30. package/accounts/safe/signerToSafeSmartAccount.ts +182 -102
  31. package/errors/sendUserOperation.ts +1 -11
  32. package/package.json +1 -1
  33. package/utils/getEntryPointVersion.ts +17 -1
  34. package/utils/getUserOperationHash.ts +32 -46
@@ -2,7 +2,7 @@ import type { Address, Hash, Hex } from "viem"
2
2
  import { concat, encodeAbiParameters, keccak256, pad, toHex } from "viem"
3
3
  import type { EntryPoint, GetEntryPointVersion } from "../types"
4
4
  import type { UserOperation } from "../types/userOperation"
5
- import { getEntryPointVersion } from "./getEntryPointVersion"
5
+ import { isUserOperationVersion06 } from "./getEntryPointVersion"
6
6
 
7
7
  function packUserOp<entryPoint extends EntryPoint>({
8
8
  userOperation,
@@ -11,15 +11,10 @@ function packUserOp<entryPoint extends EntryPoint>({
11
11
  userOperation: UserOperation<GetEntryPointVersion<entryPoint>>
12
12
  entryPoint: entryPoint
13
13
  }): Hex {
14
- const entryPointVersion = getEntryPointVersion(entryPointAddress)
15
-
16
- if (entryPointVersion === "v0.6") {
17
- const userOperationVersion0_6 = userOperation as UserOperation<"v0.6">
18
- const hashedInitCode = keccak256(userOperationVersion0_6.initCode)
19
- const hashedCallData = keccak256(userOperationVersion0_6.callData)
20
- const hashedPaymasterAndData = keccak256(
21
- userOperationVersion0_6.paymasterAndData
22
- )
14
+ if (isUserOperationVersion06(entryPointAddress, userOperation)) {
15
+ const hashedInitCode = keccak256(userOperation.initCode)
16
+ const hashedCallData = keccak256(userOperation.callData)
17
+ const hashedPaymasterAndData = keccak256(userOperation.paymasterAndData)
23
18
 
24
19
  return encodeAbiParameters(
25
20
  [
@@ -35,49 +30,40 @@ function packUserOp<entryPoint extends EntryPoint>({
35
30
  { type: "bytes32" }
36
31
  ],
37
32
  [
38
- userOperationVersion0_6.sender as Address,
39
- userOperationVersion0_6.nonce,
33
+ userOperation.sender as Address,
34
+ userOperation.nonce,
40
35
  hashedInitCode,
41
36
  hashedCallData,
42
- userOperationVersion0_6.callGasLimit,
43
- userOperationVersion0_6.verificationGasLimit,
44
- userOperationVersion0_6.preVerificationGas,
45
- userOperationVersion0_6.maxFeePerGas,
46
- userOperationVersion0_6.maxPriorityFeePerGas,
37
+ userOperation.callGasLimit,
38
+ userOperation.verificationGasLimit,
39
+ userOperation.preVerificationGas,
40
+ userOperation.maxFeePerGas,
41
+ userOperation.maxPriorityFeePerGas,
47
42
  hashedPaymasterAndData
48
43
  ]
49
44
  )
50
45
  }
51
46
 
52
- const userOperationVersion0_7 = userOperation as UserOperation<"v0.7">
53
47
  const hashedInitCode = keccak256(
54
- userOperationVersion0_7.factory && userOperationVersion0_7.factoryData
55
- ? concat([
56
- userOperationVersion0_7.factory,
57
- userOperationVersion0_7.factoryData
58
- ])
48
+ userOperation.factory && userOperation.factoryData
49
+ ? concat([userOperation.factory, userOperation.factoryData])
59
50
  : "0x"
60
51
  )
61
- const hashedCallData = keccak256(userOperationVersion0_7.callData)
52
+ const hashedCallData = keccak256(userOperation.callData)
62
53
  const hashedPaymasterAndData = keccak256(
63
- userOperationVersion0_7.paymaster &&
64
- userOperationVersion0_7.paymasterVerificationGasLimit &&
65
- userOperationVersion0_7.paymasterPostOpGasLimit &&
66
- userOperationVersion0_7.paymasterData
54
+ userOperation.paymaster &&
55
+ userOperation.paymasterVerificationGasLimit &&
56
+ userOperation.paymasterPostOpGasLimit &&
57
+ userOperation.paymasterData
67
58
  ? concat([
68
- userOperationVersion0_7.paymaster,
69
- pad(
70
- toHex(
71
- userOperationVersion0_7.paymasterVerificationGasLimit
72
- ),
73
- {
74
- size: 16
75
- }
76
- ),
77
- pad(toHex(userOperationVersion0_7.paymasterPostOpGasLimit), {
59
+ userOperation.paymaster,
60
+ pad(toHex(userOperation.paymasterVerificationGasLimit), {
61
+ size: 16
62
+ }),
63
+ pad(toHex(userOperation.paymasterPostOpGasLimit), {
78
64
  size: 16
79
65
  }),
80
- userOperationVersion0_7.paymasterData
66
+ userOperation.paymasterData
81
67
  ])
82
68
  : "0x"
83
69
  )
@@ -94,22 +80,22 @@ function packUserOp<entryPoint extends EntryPoint>({
94
80
  { type: "bytes32" }
95
81
  ],
96
82
  [
97
- userOperationVersion0_7.sender as Address,
98
- userOperationVersion0_7.nonce,
83
+ userOperation.sender as Address,
84
+ userOperation.nonce,
99
85
  hashedInitCode,
100
86
  hashedCallData,
101
87
  concat([
102
- pad(toHex(userOperationVersion0_7.verificationGasLimit), {
88
+ pad(toHex(userOperation.verificationGasLimit), {
103
89
  size: 16
104
90
  }),
105
- pad(toHex(userOperationVersion0_7.callGasLimit), { size: 16 })
91
+ pad(toHex(userOperation.callGasLimit), { size: 16 })
106
92
  ]),
107
- userOperationVersion0_7.preVerificationGas,
93
+ userOperation.preVerificationGas,
108
94
  concat([
109
- pad(toHex(userOperationVersion0_7.maxPriorityFeePerGas), {
95
+ pad(toHex(userOperation.maxPriorityFeePerGas), {
110
96
  size: 16
111
97
  }),
112
- pad(toHex(userOperationVersion0_7.maxFeePerGas), { size: 16 })
98
+ pad(toHex(userOperation.maxFeePerGas), { size: 16 })
113
99
  ]),
114
100
  hashedPaymasterAndData
115
101
  ]