permissionless 0.0.6 → 0.0.8

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 (235) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/_cjs/actions/bundler/chainId.js +11 -0
  3. package/_cjs/actions/bundler/chainId.js.map +1 -0
  4. package/_cjs/actions/bundler/estimateUserOperationGas.js +18 -0
  5. package/_cjs/actions/bundler/estimateUserOperationGas.js.map +1 -0
  6. package/_cjs/actions/bundler/getUserOperationByHash.js +30 -0
  7. package/_cjs/actions/bundler/getUserOperationByHash.js.map +1 -0
  8. package/_cjs/actions/bundler/getUserOperationReceipt.js +48 -0
  9. package/_cjs/actions/bundler/getUserOperationReceipt.js.map +1 -0
  10. package/_cjs/actions/bundler/sendUserOperation.js +13 -0
  11. package/_cjs/actions/bundler/sendUserOperation.js.map +1 -0
  12. package/_cjs/actions/bundler/supportedEntryPoints.js +11 -0
  13. package/_cjs/actions/bundler/supportedEntryPoints.js.map +1 -0
  14. package/_cjs/actions/bundler/waitForUserOperationReceipt.js +46 -0
  15. package/_cjs/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  16. package/_cjs/actions/index.js +22 -12
  17. package/_cjs/actions/index.js.map +1 -1
  18. package/_cjs/actions/pimlico/getUserOperationGasPrice.js +25 -0
  19. package/_cjs/actions/pimlico/getUserOperationGasPrice.js.map +1 -0
  20. package/_cjs/actions/pimlico/getUserOperationStatus.js +11 -0
  21. package/_cjs/actions/pimlico/getUserOperationStatus.js.map +1 -0
  22. package/_cjs/actions/pimlico/sponsorUserOperation.js +18 -0
  23. package/_cjs/actions/pimlico/sponsorUserOperation.js.map +1 -0
  24. package/_cjs/actions/pimlico.js +10 -52
  25. package/_cjs/actions/pimlico.js.map +1 -1
  26. package/_cjs/actions/public/getAccountNonce.js +35 -0
  27. package/_cjs/actions/public/getAccountNonce.js.map +1 -0
  28. package/_cjs/actions/{public.js → public/getSenderAddress.js} +2 -33
  29. package/_cjs/actions/public/getSenderAddress.js.map +1 -0
  30. package/_cjs/actions/stackup/accounts.js +12 -0
  31. package/_cjs/actions/stackup/accounts.js.map +1 -0
  32. package/_cjs/actions/stackup/sponsorUserOperation.js +18 -0
  33. package/_cjs/actions/stackup/sponsorUserOperation.js.map +1 -0
  34. package/_cjs/actions/stackup.js +10 -0
  35. package/_cjs/actions/stackup.js.map +1 -0
  36. package/_cjs/clients/bundler.js +2 -2
  37. package/_cjs/clients/bundler.js.map +1 -1
  38. package/_cjs/clients/decorators/bundler.js +21 -0
  39. package/_cjs/clients/decorators/bundler.js.map +1 -0
  40. package/_cjs/clients/decorators/pimlico.js +16 -0
  41. package/_cjs/clients/decorators/pimlico.js.map +1 -0
  42. package/_cjs/clients/decorators/stackup.js +11 -0
  43. package/_cjs/clients/decorators/stackup.js.map +1 -0
  44. package/_cjs/clients/pimlico.js +4 -4
  45. package/_cjs/clients/pimlico.js.map +1 -1
  46. package/_cjs/clients/stackup.js +18 -0
  47. package/_cjs/clients/stackup.js.map +1 -0
  48. package/_cjs/index.js +28 -4
  49. package/_cjs/index.js.map +1 -1
  50. package/_cjs/types/stackup.js +3 -0
  51. package/_cjs/types/stackup.js.map +1 -0
  52. package/_cjs/{actions/utils.js → utils/deepHexlify.js} +1 -1
  53. package/_cjs/utils/deepHexlify.js.map +1 -0
  54. package/_cjs/utils/getUserOperationHash.js +38 -0
  55. package/_cjs/utils/getUserOperationHash.js.map +1 -0
  56. package/_cjs/utils/index.js +2 -34
  57. package/_cjs/utils/index.js.map +1 -1
  58. package/_cjs/utils/observe.js +39 -0
  59. package/_cjs/utils/observe.js.map +1 -0
  60. package/_esm/actions/bundler/chainId.js +29 -0
  61. package/_esm/actions/bundler/chainId.js.map +1 -0
  62. package/_esm/actions/bundler/estimateUserOperationGas.js +41 -0
  63. package/_esm/actions/bundler/estimateUserOperationGas.js.map +1 -0
  64. package/_esm/actions/bundler/getUserOperationByHash.js +48 -0
  65. package/_esm/actions/bundler/getUserOperationByHash.js.map +1 -0
  66. package/_esm/actions/bundler/getUserOperationReceipt.js +66 -0
  67. package/_esm/actions/bundler/getUserOperationReceipt.js.map +1 -0
  68. package/_esm/actions/bundler/sendUserOperation.js +36 -0
  69. package/_esm/actions/bundler/sendUserOperation.js.map +1 -0
  70. package/_esm/actions/bundler/supportedEntryPoints.js +29 -0
  71. package/_esm/actions/bundler/supportedEntryPoints.js.map +1 -0
  72. package/_esm/actions/bundler/waitForUserOperationReceipt.js +63 -0
  73. package/_esm/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  74. package/_esm/actions/index.js +11 -3
  75. package/_esm/actions/index.js.map +1 -1
  76. package/_esm/actions/pimlico/getUserOperationGasPrice.js +42 -0
  77. package/_esm/actions/pimlico/getUserOperationGasPrice.js.map +1 -0
  78. package/_esm/actions/pimlico/getUserOperationStatus.js +29 -0
  79. package/_esm/actions/pimlico/getUserOperationStatus.js.map +1 -0
  80. package/_esm/actions/pimlico/sponsorUserOperation.js +39 -0
  81. package/_esm/actions/pimlico/sponsorUserOperation.js.map +1 -0
  82. package/_esm/actions/pimlico.js +5 -123
  83. package/_esm/actions/pimlico.js.map +1 -1
  84. package/_esm/actions/public/getAccountNonce.js +57 -0
  85. package/_esm/actions/public/getAccountNonce.js.map +1 -0
  86. package/_esm/actions/{public.js → public/getSenderAddress.js} +1 -57
  87. package/_esm/actions/public/getSenderAddress.js.map +1 -0
  88. package/_esm/actions/stackup/accounts.js +30 -0
  89. package/_esm/actions/stackup/accounts.js.map +1 -0
  90. package/_esm/actions/stackup/sponsorUserOperation.js +40 -0
  91. package/_esm/actions/stackup/sponsorUserOperation.js.map +1 -0
  92. package/_esm/actions/stackup.js +5 -0
  93. package/_esm/actions/stackup.js.map +1 -0
  94. package/_esm/clients/bundler.js +1 -1
  95. package/_esm/clients/bundler.js.map +1 -1
  96. package/_esm/clients/decorators/bundler.js +18 -0
  97. package/_esm/clients/decorators/bundler.js.map +1 -0
  98. package/_esm/clients/decorators/pimlico.js +20 -0
  99. package/_esm/clients/decorators/pimlico.js.map +1 -0
  100. package/_esm/clients/decorators/stackup.js +8 -0
  101. package/_esm/clients/decorators/stackup.js.map +1 -0
  102. package/_esm/clients/pimlico.js +2 -2
  103. package/_esm/clients/pimlico.js.map +1 -1
  104. package/_esm/clients/stackup.js +33 -0
  105. package/_esm/clients/stackup.js.map +1 -0
  106. package/_esm/index.js +17 -4
  107. package/_esm/index.js.map +1 -1
  108. package/_esm/types/stackup.js +2 -0
  109. package/_esm/types/stackup.js.map +1 -0
  110. package/_esm/{actions/utils.js → utils/deepHexlify.js} +1 -1
  111. package/_esm/utils/deepHexlify.js.map +1 -0
  112. package/_esm/utils/getUserOperationHash.js +55 -0
  113. package/_esm/utils/getUserOperationHash.js.map +1 -0
  114. package/_esm/utils/index.js +1 -54
  115. package/_esm/utils/index.js.map +1 -1
  116. package/_esm/utils/observe.js +42 -0
  117. package/_esm/utils/observe.js.map +1 -0
  118. package/_types/actions/bundler/chainId.d.ts +25 -0
  119. package/_types/actions/bundler/chainId.d.ts.map +1 -0
  120. package/_types/actions/bundler/estimateUserOperationGas.d.ts +42 -0
  121. package/_types/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
  122. package/_types/actions/bundler/getUserOperationByHash.d.ts +37 -0
  123. package/_types/actions/bundler/getUserOperationByHash.d.ts.map +1 -0
  124. package/_types/actions/bundler/getUserOperationReceipt.d.ts +62 -0
  125. package/_types/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
  126. package/_types/actions/bundler/sendUserOperation.d.ts +36 -0
  127. package/_types/actions/bundler/sendUserOperation.d.ts.map +1 -0
  128. package/_types/actions/bundler/supportedEntryPoints.d.ts +26 -0
  129. package/_types/actions/bundler/supportedEntryPoints.d.ts.map +1 -0
  130. package/_types/actions/bundler/waitForUserOperationReceipt.d.ts +43 -0
  131. package/_types/actions/bundler/waitForUserOperationReceipt.d.ts.map +1 -0
  132. package/_types/actions/index.d.ts +19 -6
  133. package/_types/actions/index.d.ts.map +1 -1
  134. package/_types/actions/pimlico/getUserOperationGasPrice.d.ts +38 -0
  135. package/_types/actions/pimlico/getUserOperationGasPrice.d.ts.map +1 -0
  136. package/_types/actions/pimlico/getUserOperationStatus.d.ts +31 -0
  137. package/_types/actions/pimlico/getUserOperationStatus.d.ts.map +1 -0
  138. package/_types/actions/pimlico/sponsorUserOperation.d.ts +41 -0
  139. package/_types/actions/pimlico/sponsorUserOperation.d.ts.map +1 -0
  140. package/_types/actions/pimlico.d.ts +7 -177
  141. package/_types/actions/pimlico.d.ts.map +1 -1
  142. package/_types/actions/public/getAccountNonce.d.ts +34 -0
  143. package/_types/actions/public/getAccountNonce.d.ts.map +1 -0
  144. package/_types/actions/{public.d.ts → public/getSenderAddress.d.ts} +2 -35
  145. package/_types/actions/public/getSenderAddress.d.ts.map +1 -0
  146. package/_types/actions/stackup/accounts.d.ts +29 -0
  147. package/_types/actions/stackup/accounts.d.ts.map +1 -0
  148. package/_types/actions/stackup/sponsorUserOperation.d.ts +43 -0
  149. package/_types/actions/stackup/sponsorUserOperation.d.ts.map +1 -0
  150. package/_types/actions/stackup.d.ts +7 -0
  151. package/_types/actions/stackup.d.ts.map +1 -0
  152. package/_types/clients/bundler.d.ts +3 -3
  153. package/_types/clients/bundler.d.ts.map +1 -1
  154. package/_types/clients/decorators/bundler.d.ts +173 -0
  155. package/_types/clients/decorators/bundler.d.ts.map +1 -0
  156. package/_types/clients/decorators/pimlico.d.ts +78 -0
  157. package/_types/clients/decorators/pimlico.d.ts.map +1 -0
  158. package/_types/clients/decorators/stackup.d.ts +54 -0
  159. package/_types/clients/decorators/stackup.d.ts.map +1 -0
  160. package/_types/clients/pimlico.d.ts +3 -3
  161. package/_types/clients/pimlico.d.ts.map +1 -1
  162. package/_types/clients/stackup.d.ts +39 -0
  163. package/_types/clients/stackup.d.ts.map +1 -0
  164. package/_types/index.d.ts +28 -4
  165. package/_types/index.d.ts.map +1 -1
  166. package/_types/types/bundler.d.ts +1 -1
  167. package/_types/types/bundler.d.ts.map +1 -1
  168. package/_types/types/index.d.ts +1 -1
  169. package/_types/types/index.d.ts.map +1 -1
  170. package/_types/types/pimlico.d.ts +1 -1
  171. package/_types/types/pimlico.d.ts.map +1 -1
  172. package/_types/types/stackup.d.ts +35 -0
  173. package/_types/types/stackup.d.ts.map +1 -0
  174. package/_types/{actions/utils.d.ts → utils/deepHexlify.d.ts} +1 -1
  175. package/_types/utils/deepHexlify.d.ts.map +1 -0
  176. package/_types/utils/getUserOperationHash.d.ts +30 -0
  177. package/_types/utils/getUserOperationHash.d.ts.map +1 -0
  178. package/_types/utils/index.d.ts +2 -30
  179. package/_types/utils/index.d.ts.map +1 -1
  180. package/_types/utils/observe.d.ts +17 -0
  181. package/_types/utils/observe.d.ts.map +1 -0
  182. package/actions/bundler/chainId.ts +32 -0
  183. package/actions/bundler/estimateUserOperationGas.ts +62 -0
  184. package/actions/bundler/getUserOperationByHash.ts +69 -0
  185. package/actions/bundler/getUserOperationReceipt.ts +112 -0
  186. package/actions/bundler/sendUserOperation.ts +45 -0
  187. package/actions/bundler/supportedEntryPoints.ts +31 -0
  188. package/actions/bundler/waitForUserOperationReceipt.ts +80 -0
  189. package/actions/index.ts +30 -21
  190. package/actions/pimlico/getUserOperationGasPrice.ts +61 -0
  191. package/actions/pimlico/getUserOperationStatus.ts +41 -0
  192. package/actions/pimlico/sponsorUserOperation.ts +62 -0
  193. package/actions/pimlico.ts +34 -251
  194. package/actions/public/getAccountNonce.ts +63 -0
  195. package/actions/{public.ts → public/getSenderAddress.ts} +7 -68
  196. package/actions/stackup/accounts.ts +40 -0
  197. package/actions/stackup/sponsorUserOperation.ts +64 -0
  198. package/actions/stackup.ts +17 -0
  199. package/clients/bundler.ts +9 -4
  200. package/clients/decorators/bundler.ts +211 -0
  201. package/clients/decorators/pimlico.ts +107 -0
  202. package/clients/decorators/stackup.ts +65 -0
  203. package/clients/pimlico.ts +3 -4
  204. package/clients/stackup.ts +44 -0
  205. package/index.ts +70 -4
  206. package/package.json +11 -1
  207. package/tsconfig.build.tsbuildinfo +1 -1
  208. package/types/bundler.ts +1 -1
  209. package/types/index.ts +1 -1
  210. package/types/pimlico.ts +1 -1
  211. package/types/stackup.ts +36 -0
  212. package/utils/getUserOperationHash.ts +68 -0
  213. package/utils/index.ts +2 -69
  214. package/utils/observe.ts +61 -0
  215. package/_cjs/actions/bundler.js +0 -118
  216. package/_cjs/actions/bundler.js.map +0 -1
  217. package/_cjs/actions/public.js.map +0 -1
  218. package/_cjs/actions/utils.js.map +0 -1
  219. package/_cjs/clients/index.js +0 -6
  220. package/_cjs/clients/index.js.map +0 -1
  221. package/_esm/actions/bundler.js +0 -251
  222. package/_esm/actions/bundler.js.map +0 -1
  223. package/_esm/actions/public.js.map +0 -1
  224. package/_esm/actions/utils.js.map +0 -1
  225. package/_esm/clients/index.js +0 -3
  226. package/_esm/clients/index.js.map +0 -1
  227. package/_types/actions/bundler.d.ts +0 -393
  228. package/_types/actions/bundler.d.ts.map +0 -1
  229. package/_types/actions/public.d.ts.map +0 -1
  230. package/_types/actions/utils.d.ts.map +0 -1
  231. package/_types/clients/index.d.ts +0 -3
  232. package/_types/clients/index.d.ts.map +0 -1
  233. package/actions/bundler.ts +0 -498
  234. package/clients/index.ts +0 -3
  235. /package/{actions/utils.ts → utils/deepHexlify.ts} +0 -0
package/utils/index.ts CHANGED
@@ -1,70 +1,3 @@
1
- import type { Address, Hash, Hex } from "viem"
2
- import { encodeAbiParameters, keccak256 } from "viem"
3
- import type { UserOperation } from "../types"
1
+ import { type GetUserOperationHashParams, getUserOperationHash } from "./getUserOperationHash.js"
4
2
 
5
- function packUserOp({ userOperation }: { userOperation: UserOperation }): Hex {
6
- const hashedInitCode = keccak256(userOperation.initCode)
7
- const hashedCallData = keccak256(userOperation.callData)
8
- const hashedPaymasterAndData = keccak256(userOperation.paymasterAndData)
9
-
10
- return encodeAbiParameters(
11
- [
12
- { type: "address" },
13
- { type: "uint256" },
14
- { type: "bytes32" },
15
- { type: "bytes32" },
16
- { type: "uint256" },
17
- { type: "uint256" },
18
- { type: "uint256" },
19
- { type: "uint256" },
20
- { type: "uint256" },
21
- { type: "bytes32" }
22
- ],
23
- [
24
- userOperation.sender as Address,
25
- userOperation.nonce,
26
- hashedInitCode,
27
- hashedCallData,
28
- userOperation.callGasLimit,
29
- userOperation.verificationGasLimit,
30
- userOperation.preVerificationGas,
31
- userOperation.maxFeePerGas,
32
- userOperation.maxPriorityFeePerGas,
33
- hashedPaymasterAndData
34
- ]
35
- )
36
- }
37
-
38
- export type GetUserOperationHashParams = { userOperation: UserOperation; entryPoint: Address; chainId: number }
39
-
40
- /**
41
- *
42
- * Returns user operation hash that is a unique identifier of the user operation.
43
- *
44
- * - Docs: https://docs.pimlico.io/permissionless/reference/utils/getUserOperationHash
45
- *
46
- * @param args: userOperation, entryPoint, chainId as {@link GetUserOperationHashParams}
47
- * @returns userOperationHash as {@link Hash}
48
- *
49
- * @example
50
- * import { getUserOperationHash } from "permissionless/utils"
51
- *
52
- * const userOperationHash = getUserOperationHash({
53
- * userOperation,
54
- * entryPoint,
55
- * chainId
56
- * })
57
- *
58
- * // Returns "0xe9fad2cd67f9ca1d0b7a6513b2a42066784c8df938518da2b51bb8cc9a89ea34"
59
- *
60
- */
61
- const getUserOperationHash = ({ userOperation, entryPoint, chainId }: GetUserOperationHashParams): Hash => {
62
- const encoded = encodeAbiParameters(
63
- [{ type: "bytes32" }, { type: "address" }, { type: "uint256" }],
64
- [keccak256(packUserOp({ userOperation })), entryPoint, BigInt(chainId)]
65
- ) as `0x${string}`
66
-
67
- return keccak256(encoded)
68
- }
69
-
70
- export { getUserOperationHash }
3
+ export { getUserOperationHash, type GetUserOperationHashParams }
@@ -0,0 +1,61 @@
1
+ import type { MaybePromise } from "viem/types/utils"
2
+
3
+ // biome-ignore lint/suspicious/noExplicitAny: it's a recursive function, so it's hard to type
4
+ type Callback = ((...args: any[]) => any) | undefined
5
+ type Callbacks = Record<string, Callback>
6
+
7
+ export const listenersCache = /*#__PURE__*/ new Map<string, { id: number; fns: Callbacks }[]>()
8
+ export const cleanupCache = /*#__PURE__*/ new Map<string, () => void>()
9
+
10
+ type EmitFunction<TCallbacks extends Callbacks> = (emit: TCallbacks) => MaybePromise<void | (() => void)>
11
+
12
+ let callbackCount = 0
13
+
14
+ /**
15
+ * @description Sets up an observer for a given function. If another function
16
+ * is set up under the same observer id, the function will only be called once
17
+ * for both instances of the observer.
18
+ */
19
+ export function observe<TCallbacks extends Callbacks>(
20
+ observerId: string,
21
+ callbacks: TCallbacks,
22
+ fn: EmitFunction<TCallbacks>
23
+ ) {
24
+ const callbackId = ++callbackCount
25
+
26
+ const getListeners = () => listenersCache.get(observerId) || []
27
+
28
+ const unsubscribe = () => {
29
+ const listeners = getListeners()
30
+ listenersCache.set(
31
+ observerId,
32
+ // biome-ignore lint/suspicious/noExplicitAny: it's a recursive function, so it's hard to type
33
+ listeners.filter((cb: any) => cb.id !== callbackId)
34
+ )
35
+ }
36
+
37
+ const unwatch = () => {
38
+ const cleanup = cleanupCache.get(observerId)
39
+ if (getListeners().length === 1 && cleanup) cleanup()
40
+ unsubscribe()
41
+ }
42
+
43
+ const listeners = getListeners()
44
+ listenersCache.set(observerId, [...listeners, { id: callbackId, fns: callbacks }])
45
+
46
+ if (listeners && listeners.length > 0) return unwatch
47
+
48
+ const emit: TCallbacks = {} as TCallbacks
49
+ for (const key in callbacks) {
50
+ emit[key] = ((...args: Parameters<NonNullable<TCallbacks[keyof TCallbacks]>>) => {
51
+ const listeners = getListeners()
52
+ if (listeners.length === 0) return
53
+ listeners.forEach((listener) => listener.fns[key]?.(...args))
54
+ }) as TCallbacks[Extract<keyof TCallbacks, string>]
55
+ }
56
+
57
+ const cleanup = fn(emit)
58
+ if (typeof cleanup === "function") cleanupCache.set(observerId, cleanup)
59
+
60
+ return unwatch
61
+ }
@@ -1,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bundlerActions = exports.getUserOperationReceipt = exports.getUserOperationByHash = exports.chainId = exports.supportedEntryPoints = exports.estimateUserOperationGas = exports.sendUserOperation = void 0;
4
- const utils_1 = require("./utils");
5
- const sendUserOperation = async (client, args) => {
6
- const { userOperation, entryPoint } = args;
7
- return client.request({
8
- method: "eth_sendUserOperation",
9
- params: [(0, utils_1.deepHexlify)(userOperation), entryPoint]
10
- });
11
- };
12
- exports.sendUserOperation = sendUserOperation;
13
- const estimateUserOperationGas = async (client, args) => {
14
- const { userOperation, entryPoint } = args;
15
- const response = await client.request({
16
- method: "eth_estimateUserOperationGas",
17
- params: [(0, utils_1.deepHexlify)(userOperation), entryPoint]
18
- });
19
- return {
20
- preVerificationGas: BigInt(response.preVerificationGas || 0n),
21
- verificationGasLimit: BigInt(response.verificationGasLimit || 0n),
22
- callGasLimit: BigInt(response.callGasLimit || 0n)
23
- };
24
- };
25
- exports.estimateUserOperationGas = estimateUserOperationGas;
26
- const supportedEntryPoints = async (client) => {
27
- return client.request({
28
- method: "eth_supportedEntryPoints",
29
- params: []
30
- });
31
- };
32
- exports.supportedEntryPoints = supportedEntryPoints;
33
- const chainId = async (client) => {
34
- return Number(await client.request({
35
- method: "eth_chainId",
36
- params: []
37
- }));
38
- };
39
- exports.chainId = chainId;
40
- const getUserOperationByHash = async (client, { hash }) => {
41
- const params = [hash];
42
- const response = await client.request({
43
- method: "eth_getUserOperationByHash",
44
- params
45
- });
46
- if (!response)
47
- return null;
48
- const { userOperation, entryPoint, transactionHash, blockHash, blockNumber } = response;
49
- return {
50
- userOperation: {
51
- ...userOperation,
52
- nonce: BigInt(userOperation.nonce),
53
- callGasLimit: BigInt(userOperation.callGasLimit),
54
- verificationGasLimit: BigInt(userOperation.verificationGasLimit),
55
- preVerificationGas: BigInt(userOperation.preVerificationGas),
56
- maxFeePerGas: BigInt(userOperation.maxFeePerGas),
57
- maxPriorityFeePerGas: BigInt(userOperation.maxPriorityFeePerGas)
58
- },
59
- entryPoint: entryPoint,
60
- transactionHash: transactionHash,
61
- blockHash: blockHash,
62
- blockNumber: BigInt(blockNumber)
63
- };
64
- };
65
- exports.getUserOperationByHash = getUserOperationByHash;
66
- const getUserOperationReceipt = async (client, { hash }) => {
67
- const params = [hash];
68
- const response = await client.request({
69
- method: "eth_getUserOperationReceipt",
70
- params
71
- });
72
- if (!response)
73
- return null;
74
- const userOperationReceipt = {
75
- userOpHash: response.userOpHash,
76
- sender: response.sender,
77
- nonce: BigInt(response.nonce),
78
- actualGasUsed: BigInt(response.actualGasUsed),
79
- actualGasCost: BigInt(response.actualGasCost),
80
- success: response.success,
81
- receipt: {
82
- transactionHash: response.receipt.transactionHash,
83
- transactionIndex: BigInt(response.receipt.transactionIndex),
84
- blockHash: response.receipt.blockHash,
85
- blockNumber: BigInt(response.receipt.blockNumber),
86
- from: response.receipt.from,
87
- to: response.receipt.to,
88
- cumulativeGasUsed: BigInt(response.receipt.cumulativeGasUsed),
89
- status: utils_1.transactionReceiptStatus[response.receipt.status],
90
- gasUsed: BigInt(response.receipt.gasUsed),
91
- contractAddress: response.receipt.contractAddress,
92
- logsBloom: response.receipt.logsBloom,
93
- effectiveGasPrice: BigInt(response.receipt.effectiveGasPrice)
94
- },
95
- logs: response.logs.map((log) => ({
96
- data: log.data,
97
- blockNumber: BigInt(log.blockNumber),
98
- blockHash: log.blockHash,
99
- transactionHash: log.transactionHash,
100
- logIndex: BigInt(log.logIndex),
101
- transactionIndex: BigInt(log.transactionIndex),
102
- address: log.address,
103
- topics: log.topics
104
- }))
105
- };
106
- return userOperationReceipt;
107
- };
108
- exports.getUserOperationReceipt = getUserOperationReceipt;
109
- const bundlerActions = (client) => ({
110
- sendUserOperation: async (args) => (0, exports.sendUserOperation)(client, args),
111
- estimateUserOperationGas: (args) => (0, exports.estimateUserOperationGas)(client, args),
112
- supportedEntryPoints: () => (0, exports.supportedEntryPoints)(client),
113
- chainId: () => (0, exports.chainId)(client),
114
- getUserOperationByHash: (args) => (0, exports.getUserOperationByHash)(client, args),
115
- getUserOperationReceipt: (args) => (0, exports.getUserOperationReceipt)(client, args)
116
- });
117
- exports.bundlerActions = bundlerActions;
118
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../actions/bundler.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../actions/public.ts"],"names":[],"mappings":";;;AAOA,+BAAgC;AAKhC,MAAa,sBAAuB,SAAQ,gBAAS;IAGjD,YAAY,EAAE,KAAK,EAAE,UAAU,KAAkD,EAAE;QAC/E,KAAK,CACD,0CACI,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,EACtC,iGAAiG,EACjG;YACI,KAAK;SACR,CACJ,CAAA;QAVI;;;;mBAAO,wBAAwB;WAAA;IAWxC,CAAC;CACJ;AAbD,wDAaC;AA4BM,MAAM,gBAAgB,GAAG,KAAK,EACjC,YAA0B,EAC1B,EAAE,QAAQ,EAAE,UAAU,EAA0B,EAChC,EAAE;IAClB,IAAI;QACA,MAAM,YAAY,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,OAAO;iBAChB;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,OAAO;4BACrB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,OAAO;yBAChB;qBACJ;oBACD,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,EAAE;oBACX,eAAe,EAAE,YAAY;oBAC7B,IAAI,EAAE,UAAU;iBACnB;aACJ;YACD,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC,CAAA;KACL;IAAC,OAAO,CAAC,EAAE;QACR,MAAM,GAAG,GAAG,CAAuC,CAAA;QAEnD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,+BAA+B,EAAE;YACpD,MAAM,WAAW,GAAG,GAAG,CAAC,KAA0C,CAAA;YAClE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;YACnD,IAAI,SAAS,KAAK,qBAAqB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC5F,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAY,CAAA;aAC9C;SACJ;QAED,MAAM,CAAC,CAAA;KACV;IAED,MAAM,IAAI,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA;AAnDY,QAAA,gBAAgB,oBAmD5B;AA4BM,MAAM,eAAe,GAAG,KAAK,EAChC,YAA0B,EAC1B,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,EAAE,EAAyB,EACzC,EAAE;IACjB,OAAO,MAAM,YAAY,CAAC,YAAY,CAAC;QACnC,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE;YACD;gBACI,MAAM,EAAE;oBACJ;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,eAAe,EAAE,MAAM;gBACvB,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC;KACvB,CAAC,CAAA;AACN,CAAC,CAAA;AAhCY,QAAA,eAAe,mBAgC3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../actions/utils.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAEf,QAAA,wBAAwB,GAAG;IACpC,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACV,CAAA;AAGV,SAAgB,WAAW,CAAC,GAAQ;IAChC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,OAAO,SAAS,CAAA;KACnB;IACD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;QACpE,OAAO,GAAG,CAAA;KACb;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAA;KACpB;SAAM,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC5D,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAC1C;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAClD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACX,GAAG,GAAG;QACN,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC/B,CAAC,EACF,EAAE,CACL,CAAA;AACL,CAAC;AArBD,kCAqBC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createBundlerClient = void 0;
4
- const bundler_1 = require("./bundler");
5
- Object.defineProperty(exports, "createBundlerClient", { enumerable: true, get: function () { return bundler_1.createBundlerClient; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../clients/index.ts"],"names":[],"mappings":";;;AAAA,uCAAmE;AAE1D,oGAFoB,6BAAmB,OAEpB"}
@@ -1,251 +0,0 @@
1
- import { deepHexlify, transactionReceiptStatus } from "./utils";
2
- /**
3
- * Sends user operation to the bundler
4
- *
5
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/sendUserOperation
6
- *
7
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
8
- * @param args {@link SendUserOperationParameters}.
9
- * @returns UserOpHash that you can use to track user operation as {@link Hash}.
10
- *
11
- *
12
- * @example
13
- * import { createClient } from "viem"
14
- * import { sendUserOperation } from "permissionless/actions"
15
- *
16
- * const bundlerClient = createClient({
17
- * chain: goerli,
18
- * transport: http(BUNDLER_URL)
19
- * })
20
- *
21
- * const userOpHash = sendUserOperation(bundlerClient, {
22
- * userOperation: signedUserOperation,
23
- * entryPoint: entryPoint
24
- * })
25
- *
26
- * // Return '0xe9fad2cd67f9ca1d0b7a6513b2a42066784c8df938518da2b51bb8cc9a89ea34'
27
- *
28
- */
29
- export const sendUserOperation = async (client, args) => {
30
- const { userOperation, entryPoint } = args;
31
- return client.request({
32
- method: "eth_sendUserOperation",
33
- params: [deepHexlify(userOperation), entryPoint]
34
- });
35
- };
36
- /**
37
- * Estimates preVerificationGas, verificationGasLimit and callGasLimit for user operation
38
- *
39
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/estimateUserOperationGas
40
- *
41
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
42
- * @param args {@link EstimateUserOperationGasParameters}
43
- * @returns preVerificationGas, verificationGasLimit and callGasLimit as {@link EstimateUserOperationGasReturnType}
44
- *
45
- *
46
- * @example
47
- * import { createClient } from "viem"
48
- * import { estimateUserOperationGas } from "permissionless/actions"
49
- *
50
- * const bundlerClient = createClient({
51
- * chain: goerli,
52
- * transport: http(BUNDLER_URL)
53
- * })
54
- *
55
- * const gasParameters = estimateUserOperationGas(bundlerClient, {
56
- * serOperation: signedUserOperation,
57
- * entryPoint: entryPoint
58
- * })
59
- *
60
- * // Return {preVerificationGas: 43492n, verificationGasLimit: 59436n, callGasLimit: 9000n}
61
- *
62
- */
63
- export const estimateUserOperationGas = async (client, args) => {
64
- const { userOperation, entryPoint } = args;
65
- const response = await client.request({
66
- method: "eth_estimateUserOperationGas",
67
- params: [deepHexlify(userOperation), entryPoint]
68
- });
69
- return {
70
- preVerificationGas: BigInt(response.preVerificationGas || 0n),
71
- verificationGasLimit: BigInt(response.verificationGasLimit || 0n),
72
- callGasLimit: BigInt(response.callGasLimit || 0n)
73
- };
74
- };
75
- /**
76
- * Returns the supported entrypoints by the bundler service
77
- *
78
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/supportedEntryPoints
79
- *
80
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
81
- * @returns Supported entryPoints
82
- *
83
- *
84
- * @example
85
- * import { createClient } from "viem"
86
- * import { supportedEntryPoints } from "permissionless/actions"
87
- *
88
- * const bundlerClient = createClient({
89
- * chain: goerli,
90
- * transport: http(BUNDLER_URL)
91
- * })
92
- *
93
- * const entryPointsSupported = supportedEntryPoints(bundlerClient)
94
- * // Return ['0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789']
95
- *
96
- */
97
- export const supportedEntryPoints = async (client) => {
98
- return client.request({
99
- method: "eth_supportedEntryPoints",
100
- params: []
101
- });
102
- };
103
- /**
104
- * Returns the supported chain id by the bundler service
105
- *
106
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/chainId
107
- *
108
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
109
- * @returns Supported chain id
110
- *
111
- *
112
- * @example
113
- * import { createClient } from "viem"
114
- * import { chainId } from "permissionless/actions"
115
- *
116
- * const bundlerClient = createClient({
117
- * chain: goerli,
118
- * transport: http(BUNDLER_URL)
119
- * })
120
- *
121
- * const bundlerChainId = chainId(bundlerClient)
122
- * // Return 5n for Goerli
123
- *
124
- */
125
- export const chainId = async (client) => {
126
- return Number(await client.request({
127
- method: "eth_chainId",
128
- params: []
129
- }));
130
- };
131
- /**
132
- * Returns the user operation from userOpHash
133
- *
134
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/getUserOperationByHash
135
- *
136
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
137
- * @param args {@link GetUserOperationByHashParameters} UserOpHash that was returned by {@link sendUserOperation}
138
- * @returns userOperation along with entryPoint, transactionHash, blockHash, blockNumber if found or null
139
- *
140
- *
141
- * @example
142
- * import { createClient } from "viem"
143
- * import { getUserOperationByHash } from "permissionless/actions"
144
- *
145
- * const bundlerClient = createClient({
146
- * chain: goerli,
147
- * transport: http(BUNDLER_URL)
148
- * })
149
- *
150
- * getUserOperationByHash(bundlerClient, {hash: userOpHash})
151
- *
152
- */
153
- export const getUserOperationByHash = async (client, { hash }) => {
154
- const params = [hash];
155
- const response = await client.request({
156
- method: "eth_getUserOperationByHash",
157
- params
158
- });
159
- if (!response)
160
- return null;
161
- const { userOperation, entryPoint, transactionHash, blockHash, blockNumber } = response;
162
- return {
163
- userOperation: {
164
- ...userOperation,
165
- nonce: BigInt(userOperation.nonce),
166
- callGasLimit: BigInt(userOperation.callGasLimit),
167
- verificationGasLimit: BigInt(userOperation.verificationGasLimit),
168
- preVerificationGas: BigInt(userOperation.preVerificationGas),
169
- maxFeePerGas: BigInt(userOperation.maxFeePerGas),
170
- maxPriorityFeePerGas: BigInt(userOperation.maxPriorityFeePerGas)
171
- },
172
- entryPoint: entryPoint,
173
- transactionHash: transactionHash,
174
- blockHash: blockHash,
175
- blockNumber: BigInt(blockNumber)
176
- };
177
- };
178
- /**
179
- * Returns the user operation receipt from userOpHash
180
- *
181
- * - Docs: https://docs.pimlico.io/permissionless/reference/bundler-actions/getUserOperationReceipt
182
- *
183
- * @param client {@link BundlerClient} that you created using viem's createClient and extended it with bundlerActions.
184
- * @param args {@link GetUserOperationReceiptParameters} UserOpHash that was returned by {@link sendUserOperation}
185
- * @returns user operation receipt {@link GetUserOperationReceiptReturnType} if found or null
186
- *
187
- *
188
- * @example
189
- * import { createClient } from "viem"
190
- * import { getUserOperationReceipt } from "permissionless/actions"
191
- *
192
- * const bundlerClient = createClient({
193
- * chain: goerli,
194
- * transport: http(BUNDLER_URL)
195
- * })
196
- *
197
- * getUserOperationReceipt(bundlerClient, {hash: userOpHash})
198
- *
199
- */
200
- export const getUserOperationReceipt = async (client, { hash }) => {
201
- const params = [hash];
202
- const response = await client.request({
203
- method: "eth_getUserOperationReceipt",
204
- params
205
- });
206
- if (!response)
207
- return null;
208
- const userOperationReceipt = {
209
- userOpHash: response.userOpHash,
210
- sender: response.sender,
211
- nonce: BigInt(response.nonce),
212
- actualGasUsed: BigInt(response.actualGasUsed),
213
- actualGasCost: BigInt(response.actualGasCost),
214
- success: response.success,
215
- receipt: {
216
- transactionHash: response.receipt.transactionHash,
217
- transactionIndex: BigInt(response.receipt.transactionIndex),
218
- blockHash: response.receipt.blockHash,
219
- blockNumber: BigInt(response.receipt.blockNumber),
220
- from: response.receipt.from,
221
- to: response.receipt.to,
222
- cumulativeGasUsed: BigInt(response.receipt.cumulativeGasUsed),
223
- status: transactionReceiptStatus[response.receipt.status],
224
- gasUsed: BigInt(response.receipt.gasUsed),
225
- contractAddress: response.receipt.contractAddress,
226
- logsBloom: response.receipt.logsBloom,
227
- effectiveGasPrice: BigInt(response.receipt.effectiveGasPrice)
228
- },
229
- logs: response.logs.map((log) => ({
230
- data: log.data,
231
- blockNumber: BigInt(log.blockNumber),
232
- blockHash: log.blockHash,
233
- transactionHash: log.transactionHash,
234
- logIndex: BigInt(log.logIndex),
235
- transactionIndex: BigInt(log.transactionIndex),
236
- address: log.address,
237
- topics: log.topics
238
- }))
239
- };
240
- return userOperationReceipt;
241
- };
242
- const bundlerActions = (client) => ({
243
- sendUserOperation: async (args) => sendUserOperation(client, args),
244
- estimateUserOperationGas: (args) => estimateUserOperationGas(client, args),
245
- supportedEntryPoints: () => supportedEntryPoints(client),
246
- chainId: () => chainId(client),
247
- getUserOperationByHash: (args) => getUserOperationByHash(client, args),
248
- getUserOperationReceipt: (args) => getUserOperationReceipt(client, args)
249
- });
250
- export { bundlerActions };
251
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../actions/bundler.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../actions/public.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAKhC,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAGjD,YAAY,EAAE,KAAK,EAAE,UAAU,KAAkD,EAAE;QAC/E,KAAK,CACD,0CACI,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,EACtC,iGAAiG,EACjG;YACI,KAAK;SACR,CACJ,CAAA;QAVI;;;;mBAAO,wBAAwB;WAAA;IAWxC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACjC,YAA0B,EAC1B,EAAE,QAAQ,EAAE,UAAU,EAA0B,EAChC,EAAE;IAClB,IAAI;QACA,MAAM,YAAY,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,OAAO;iBAChB;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,OAAO;4BACrB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,OAAO;yBAChB;qBACJ;oBACD,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,EAAE;oBACX,eAAe,EAAE,YAAY;oBAC7B,IAAI,EAAE,UAAU;iBACnB;aACJ;YACD,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC,CAAA;KACL;IAAC,OAAO,CAAC,EAAE;QACR,MAAM,GAAG,GAAG,CAAuC,CAAA;QAEnD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,+BAA+B,EAAE;YACpD,MAAM,WAAW,GAAG,GAAG,CAAC,KAA0C,CAAA;YAClE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;YACnD,IAAI,SAAS,KAAK,qBAAqB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC5F,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAY,CAAA;aAC9C;SACJ;QAED,MAAM,CAAC,CAAA;KACV;IAED,MAAM,IAAI,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,YAA0B,EAC1B,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,EAAE,EAAyB,EACzC,EAAE;IACjB,OAAO,MAAM,YAAY,CAAC,YAAY,CAAC;QACnC,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE;YACD;gBACI,MAAM,EAAE;oBACJ;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,eAAe,EAAE,MAAM;gBACvB,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC;KACvB,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../actions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAE5B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACV,CAAA;AAEV,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,GAAQ;IAChC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,OAAO,SAAS,CAAA;KACnB;IACD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;QACpE,OAAO,GAAG,CAAA;KACb;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;KACpB;SAAM,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAC1C;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAClD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACX,GAAG,GAAG;QACN,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC/B,CAAC,EACF,EAAE,CACL,CAAA;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import { createBundlerClient } from "./bundler";
2
- export { createBundlerClient };
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEnE,OAAO,EAAE,mBAAmB,EAAsB,CAAA"}