levr-sdk 0.0.1 → 0.1.0

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 (156) hide show
  1. package/README.md +109 -13
  2. package/dist/esm/abis/LevrFactory_v1.js +63 -0
  3. package/dist/esm/abis/LevrGovernor_v1.js +15 -24
  4. package/dist/esm/abis/LevrStaking_v1.js +7 -1
  5. package/dist/esm/abis/StateView.js +149 -0
  6. package/dist/esm/abis/V3QuoterV2.js +26 -0
  7. package/dist/esm/abis/index.js +4 -0
  8. package/dist/esm/balance.js +48 -4
  9. package/dist/esm/balance.js.map +1 -1
  10. package/dist/esm/client/hook/index.js +14 -3
  11. package/dist/esm/client/hook/index.js.map +1 -1
  12. package/dist/esm/client/hook/use-fee-receivers.js +11 -30
  13. package/dist/esm/client/hook/use-fee-receivers.js.map +1 -1
  14. package/dist/esm/client/hook/use-governance.js +20 -274
  15. package/dist/esm/client/hook/use-governance.js.map +1 -1
  16. package/dist/esm/client/hook/use-pool.js +26 -0
  17. package/dist/esm/client/hook/use-pool.js.map +1 -0
  18. package/dist/esm/client/hook/use-prepare.js +6 -3
  19. package/dist/esm/client/hook/use-prepare.js.map +1 -1
  20. package/dist/esm/client/hook/use-project.js +28 -16
  21. package/dist/esm/client/hook/use-project.js.map +1 -1
  22. package/dist/esm/client/hook/use-proposal.js +48 -0
  23. package/dist/esm/client/hook/use-proposal.js.map +1 -0
  24. package/dist/esm/client/hook/use-stake.js +29 -215
  25. package/dist/esm/client/hook/use-stake.js.map +1 -1
  26. package/dist/esm/client/hook/use-swap.js +23 -19
  27. package/dist/esm/client/hook/use-swap.js.map +1 -1
  28. package/dist/esm/client/hook/use-user.js +25 -0
  29. package/dist/esm/client/hook/use-user.js.map +1 -0
  30. package/dist/esm/client/levr-provider.js +73 -108
  31. package/dist/esm/client/levr-provider.js.map +1 -1
  32. package/dist/esm/client/query-keys.js +10 -22
  33. package/dist/esm/client/query-keys.js.map +1 -1
  34. package/dist/esm/constants.js +42 -1
  35. package/dist/esm/constants.js.map +1 -1
  36. package/dist/esm/fee-receivers.js +28 -13
  37. package/dist/esm/fee-receivers.js.map +1 -1
  38. package/dist/esm/governance.js +35 -399
  39. package/dist/esm/governance.js.map +1 -1
  40. package/dist/esm/index.js +7 -3
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/pool-key.js +152 -0
  43. package/dist/esm/pool-key.js.map +1 -0
  44. package/dist/esm/pool.js +70 -0
  45. package/dist/esm/pool.js.map +1 -0
  46. package/dist/esm/project.js +415 -118
  47. package/dist/esm/project.js.map +1 -1
  48. package/dist/esm/proposal.js +156 -0
  49. package/dist/esm/proposal.js.map +1 -0
  50. package/dist/esm/quote/index.js +98 -0
  51. package/dist/esm/quote/index.js.map +1 -0
  52. package/dist/esm/quote/v3.js +62 -0
  53. package/dist/esm/quote/v3.js.map +1 -0
  54. package/dist/esm/quote/v4.js +228 -0
  55. package/dist/esm/quote/v4.js.map +1 -0
  56. package/dist/esm/stake.js +34 -237
  57. package/dist/esm/stake.js.map +1 -1
  58. package/dist/esm/treasury.js +162 -0
  59. package/dist/esm/treasury.js.map +1 -0
  60. package/dist/esm/usd-price.js +149 -0
  61. package/dist/esm/usd-price.js.map +1 -0
  62. package/dist/esm/user.js +153 -0
  63. package/dist/esm/user.js.map +1 -0
  64. package/dist/esm/util.js +45 -1
  65. package/dist/esm/util.js.map +1 -1
  66. package/dist/types/abis/LevrFactory_v1.d.ts +48 -0
  67. package/dist/types/abis/LevrGovernor_v1.d.ts +12 -18
  68. package/dist/types/abis/LevrStaking_v1.d.ts +5 -1
  69. package/dist/types/abis/StateView.d.ts +278 -0
  70. package/dist/types/abis/V3QuoterV2.d.ts +39 -0
  71. package/dist/types/abis/index.d.ts +2 -0
  72. package/dist/types/balance.d.ts +19 -6
  73. package/dist/types/balance.d.ts.map +1 -1
  74. package/dist/types/client/hook/index.d.ts +12 -4
  75. package/dist/types/client/hook/index.d.ts.map +1 -1
  76. package/dist/types/client/hook/use-fee-receivers.d.ts +6 -16
  77. package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -1
  78. package/dist/types/client/hook/use-governance.d.ts +4 -93
  79. package/dist/types/client/hook/use-governance.d.ts.map +1 -1
  80. package/dist/types/client/hook/use-pool.d.ts +12 -0
  81. package/dist/types/client/hook/use-pool.d.ts.map +1 -0
  82. package/dist/types/client/hook/use-prepare.d.ts +1 -2
  83. package/dist/types/client/hook/use-prepare.d.ts.map +1 -1
  84. package/dist/types/client/hook/use-project.d.ts +8 -1
  85. package/dist/types/client/hook/use-project.d.ts.map +1 -1
  86. package/dist/types/client/hook/use-proposal.d.ts +18 -0
  87. package/dist/types/client/hook/use-proposal.d.ts.map +1 -0
  88. package/dist/types/client/hook/use-stake.d.ts +14 -168
  89. package/dist/types/client/hook/use-stake.d.ts.map +1 -1
  90. package/dist/types/client/hook/use-swap.d.ts +5 -9
  91. package/dist/types/client/hook/use-swap.d.ts.map +1 -1
  92. package/dist/types/client/hook/use-user.d.ts +13 -0
  93. package/dist/types/client/hook/use-user.d.ts.map +1 -0
  94. package/dist/types/client/levr-provider.d.ts +41 -68
  95. package/dist/types/client/levr-provider.d.ts.map +1 -1
  96. package/dist/types/client/query-keys.d.ts +14 -26
  97. package/dist/types/client/query-keys.d.ts.map +1 -1
  98. package/dist/types/constants.d.ts +18 -0
  99. package/dist/types/constants.d.ts.map +1 -1
  100. package/dist/types/fee-receivers.d.ts +29 -2
  101. package/dist/types/fee-receivers.d.ts.map +1 -1
  102. package/dist/types/governance.d.ts +8 -108
  103. package/dist/types/governance.d.ts.map +1 -1
  104. package/dist/types/index.d.ts +7 -3
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/types/pool-key.d.ts +121 -0
  107. package/dist/types/pool-key.d.ts.map +1 -0
  108. package/dist/types/pool.d.ts +590 -0
  109. package/dist/types/pool.d.ts.map +1 -0
  110. package/dist/types/project.d.ts +61 -11
  111. package/dist/types/project.d.ts.map +1 -1
  112. package/dist/types/proposal.d.ts +1161 -0
  113. package/dist/types/proposal.d.ts.map +1 -0
  114. package/dist/types/quote/index.d.ts +97 -0
  115. package/dist/types/quote/index.d.ts.map +1 -0
  116. package/dist/types/quote/v3.d.ts +78 -0
  117. package/dist/types/quote/v3.d.ts.map +1 -0
  118. package/dist/types/quote/v4.d.ts +95 -0
  119. package/dist/types/quote/v4.d.ts.map +1 -0
  120. package/dist/types/stake.d.ts +41 -87
  121. package/dist/types/stake.d.ts.map +1 -1
  122. package/dist/types/treasury.d.ts +16 -0
  123. package/dist/types/treasury.d.ts.map +1 -0
  124. package/dist/types/types.d.ts +15 -0
  125. package/dist/types/types.d.ts.map +1 -1
  126. package/dist/types/usd-price.d.ts +141 -0
  127. package/dist/types/usd-price.d.ts.map +1 -0
  128. package/dist/types/user.d.ts +188 -0
  129. package/dist/types/user.d.ts.map +1 -0
  130. package/dist/types/util.d.ts +17 -0
  131. package/dist/types/util.d.ts.map +1 -1
  132. package/package.json +5 -2
  133. package/dist/esm/client/hook/use-balance.js +0 -56
  134. package/dist/esm/client/hook/use-balance.js.map +0 -1
  135. package/dist/esm/client/hook/use-projects.js +0 -22
  136. package/dist/esm/client/hook/use-projects.js.map +0 -1
  137. package/dist/esm/client/hook/use-proposals.js +0 -31
  138. package/dist/esm/client/hook/use-proposals.js.map +0 -1
  139. package/dist/esm/projects.js +0 -212
  140. package/dist/esm/projects.js.map +0 -1
  141. package/dist/esm/proposals.js +0 -98
  142. package/dist/esm/proposals.js.map +0 -1
  143. package/dist/esm/quote-v4.js +0 -169
  144. package/dist/esm/quote-v4.js.map +0 -1
  145. package/dist/types/client/hook/use-balance.d.ts +0 -18
  146. package/dist/types/client/hook/use-balance.d.ts.map +0 -1
  147. package/dist/types/client/hook/use-projects.d.ts +0 -6
  148. package/dist/types/client/hook/use-projects.d.ts.map +0 -1
  149. package/dist/types/client/hook/use-proposals.d.ts +0 -16
  150. package/dist/types/client/hook/use-proposals.d.ts.map +0 -1
  151. package/dist/types/projects.d.ts +0 -20
  152. package/dist/types/projects.d.ts.map +0 -1
  153. package/dist/types/proposals.d.ts +0 -20
  154. package/dist/types/proposals.d.ts.map +0 -1
  155. package/dist/types/quote-v4.d.ts +0 -54
  156. package/dist/types/quote-v4.d.ts.map +0 -1
@@ -2,14 +2,18 @@ import { useLevrContext } from "../levr-provider.js";
2
2
  // ========================================
3
3
  // SIMPLE CONTEXT ACCESSORS (one-liner exports)
4
4
  // ========================================
5
+ /**
6
+ * Hook to access user data from LevrProvider (hierarchical)
7
+ */
8
+ export const useUser = () => useLevrContext().user;
5
9
  /**
6
10
  * Hook to access project data from LevrProvider
7
11
  */
8
12
  export const useProject = () => useLevrContext().project;
9
13
  /**
10
- * Hook to access balance data from LevrProvider
14
+ * Hook to access pool data from LevrProvider
11
15
  */
12
- export const useBalance = () => useLevrContext().balances;
16
+ export const usePool = () => useLevrContext().pool;
13
17
  /**
14
18
  * Hook to access proposals from LevrProvider
15
19
  */
@@ -27,10 +31,17 @@ export * from "./use-governance.js";
27
31
  export * from "./use-stake.js";
28
32
  export * from "./use-swap.js";
29
33
  // ========================================
34
+ // INTERNAL HOOKS (used by LevrProvider)
35
+ // ========================================
36
+ export { usePoolQuery } from "./use-pool.js";
37
+ export { useProposalsQuery } from "./use-proposal.js";
38
+ export { useUserQuery } from "./use-user.js";
39
+ // ========================================
30
40
  // OTHER HOOKS (not part of Levr context)
31
41
  // ========================================
32
42
  export * from "./use-deploy.js";
33
43
  export * from "./use-prepare.js";
34
- export * from "./use-projects.js";
44
+ export * from "./use-project.js";
45
+ export { useProposal } from "./use-proposal.js";
35
46
  export * from "./use-register.js";
36
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,2CAA2C;AAC3C,+CAA+C;AAC/C,2CAA2C;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAA;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE/D,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAE3C,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/hook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,2CAA2C;AAC3C,+CAA+C;AAC/C,2CAA2C;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,CAAA;AAE/D,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAE3C,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,2CAA2C;AAC3C,wCAAwC;AACxC,2CAA2C;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,2CAA2C;AAC3C,yCAAyC;AACzC,2CAA2C;AAE3C,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,cAAc,gBAAgB,CAAA"}
@@ -1,35 +1,14 @@
1
1
  "use client";
2
- import { useMutation, useQuery } from "@tanstack/react-query";
3
- import { useAccount, useChainId, usePublicClient, useWalletClient } from "wagmi";
4
- import { feeReceivers, updateFeeReceiver } from "../../fee-receivers.js";
2
+ import { useMutation } from "@tanstack/react-query";
3
+ import { usePublicClient, useWalletClient } from "wagmi";
4
+ import { updateFeeReceiver } from "../../fee-receivers.js";
5
5
  import { useLevrContext } from "../levr-provider.js";
6
- import { queryKeys } from "../query-keys.js";
7
6
  /**
8
- * Internal: Creates fee receivers query with all logic
9
- * Used by LevrProvider
7
+ * Hook to access fee receivers and update mutations
8
+ * Fee receivers come from project.feeReceivers (with areYouAnAdmin already calculated)
10
9
  */
11
- export function useFeeReceiversQuery({ clankerToken, enabled: e = true, }) {
12
- const publicClient = usePublicClient();
13
- const chainId = useChainId();
14
- const { address: userAddress } = useAccount();
15
- return useQuery({
16
- queryKey: queryKeys.feeReceivers(clankerToken, userAddress, chainId),
17
- queryFn: () => feeReceivers({
18
- publicClient: publicClient,
19
- clankerToken: clankerToken,
20
- chainId: chainId,
21
- userAddress,
22
- }),
23
- enabled: e && !!publicClient && !!chainId && !!clankerToken,
24
- staleTime: 15000,
25
- });
26
- }
27
- /**
28
- * Hook to access fee receivers query and mutations
29
- * Returns both query data and mutation function
30
- */
31
- export function useFeeReceivers({ clankerToken: _clankerToken, enabled: _e = true, onSuccess, onError, } = {}) {
32
- const { feeReceivers: query, refetch } = useLevrContext();
10
+ export function useFeeReceivers({ onSuccess, onError } = {}) {
11
+ const { project, refetch } = useLevrContext();
33
12
  const publicClient = usePublicClient();
34
13
  const wallet = useWalletClient();
35
14
  const chainId = publicClient?.chain?.id;
@@ -42,13 +21,15 @@ export function useFeeReceivers({ clankerToken: _clankerToken, enabled: _e = tru
42
21
  newRecipient: params.newRecipient,
43
22
  }),
44
23
  onSuccess: async (hash) => {
45
- await refetch.feeReceivers();
24
+ await refetch.project(); // Refetch project to update fee receivers
46
25
  onSuccess?.(hash);
47
26
  },
48
27
  onError: onError,
49
28
  });
50
29
  return {
51
- query,
30
+ data: project.data?.feeReceivers, // Already has areYouAnAdmin calculated!
31
+ isLoading: project.isLoading,
32
+ error: project.error,
52
33
  mutate,
53
34
  };
54
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-fee-receivers.js","sourceRoot":"","sources":["../../../../src/client/hook/use-fee-receivers.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGhF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAOzC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,YAAY,EACZ,OAAO,EAAE,CAAC,GAAG,IAAI,GACU;IAC3B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAA;IAE7C,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,YAAa,EAAE,WAAW,EAAE,OAAO,CAAC;QACrE,OAAO,EAAE,GAAG,EAAE,CACZ,YAAY,CAAC;YACX,YAAY,EAAE,YAAa;YAC3B,YAAY,EAAE,YAAa;YAC3B,OAAO,EAAE,OAAQ;YACjB,WAAW;SACZ,CAAC;QACJ,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY;QAC3D,SAAS,EAAE,MAAM;KAClB,CAAC,CAAA;AACJ,CAAC;AAaD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,EAAE,GAAG,IAAI,EAClB,SAAS,EACT,OAAO,MACkB,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;IACzD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,UAAU,EAAE,CAAC,MAAiE,EAAE,EAAE,CAChF,iBAAiB,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC,IAAK;YAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,OAAQ;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACJ,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,OAAO,CAAC,YAAY,EAAE,CAAA;YAC5B,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,KAAK;QACL,MAAM;KACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"use-fee-receivers.js","sourceRoot":"","sources":["../../../../src/client/hook/use-fee-receivers.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAcjD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,KAA4B,EAAE;IAChF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;IAC7C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,UAAU,EAAE,CAAC,MAAiE,EAAE,EAAE,CAChF,iBAAiB,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC,IAAK;YAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,OAAQ;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACJ,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,0CAA0C;YAClE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,wCAAwC;QAC1E,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM;KACP,CAAA;AACH,CAAC"}
@@ -1,202 +1,29 @@
1
1
  "use client";
2
- import { useMutation, useQuery } from "@tanstack/react-query";
2
+ import { useMutation } from "@tanstack/react-query";
3
3
  import { useMemo } from "react";
4
4
  import { parseUnits } from "viem";
5
5
  import { usePublicClient, useWalletClient } from "wagmi";
6
6
  import { Governance } from "../../governance.js";
7
7
  import { useLevrContext } from "../levr-provider.js";
8
- import { queryKeys } from "../query-keys.js";
9
8
  /**
10
- * Internal: Creates global governance queries with all logic
11
- * Used by LevrProvider
9
+ * Hook for managing governance operations
10
+ * All data comes from context (user, project)
12
11
  */
13
- export function useGovernanceQueries({ clankerToken, projectData, enabled: e = true, }) {
12
+ export function useGovernance({ proposalId, cycleId, userAddress, onProposeTransferSuccess, onProposeTransferError, onProposeBoostSuccess, onProposeBoostError, onVoteSuccess, onVoteError, onExecuteProposalSuccess, onExecuteProposalError, onClaimAirdropSuccess, onClaimAirdropError, } = {}) {
13
+ const { project, refetch } = useLevrContext();
14
14
  const wallet = useWalletClient();
15
15
  const publicClient = usePublicClient();
16
- // Create Governance instance
16
+ // Create Governance instance (all params from project context)
17
17
  const governance = useMemo(() => {
18
- if (!wallet.data || !publicClient || !projectData || !clankerToken) {
18
+ if (!wallet.data || !publicClient || !project.data) {
19
19
  return null;
20
20
  }
21
21
  return new Governance({
22
22
  wallet: wallet.data,
23
23
  publicClient,
24
- governorAddress: projectData.governor,
25
- tokenDecimals: projectData.token.decimals,
26
- clankerToken,
24
+ project: project.data,
27
25
  });
28
- }, [wallet.data, publicClient, projectData, clankerToken]);
29
- const currentCycleId = useQuery({
30
- queryKey: queryKeys.governance.currentCycleId(projectData?.governor),
31
- queryFn: async () => {
32
- if (!governance)
33
- throw new Error("Governance not initialized");
34
- return await governance.getCurrentCycleId();
35
- },
36
- enabled: e && !!governance && !!projectData,
37
- retry: 1,
38
- });
39
- const addresses = useQuery({
40
- queryKey: queryKeys.governance.addresses(projectData?.governor),
41
- queryFn: async () => {
42
- if (!governance)
43
- throw new Error("Governance not initialized");
44
- const [treasury, factory, stakedToken] = await Promise.all([
45
- governance.getTreasury(),
46
- governance.getFactory(),
47
- governance.getStakedToken(),
48
- ]);
49
- return { treasury, factory, stakedToken };
50
- },
51
- enabled: e && !!governance && !!projectData,
52
- retry: 1,
53
- });
54
- const airdropStatus = useQuery({
55
- queryKey: queryKeys.governance.airdropStatus(projectData?.governor, clankerToken),
56
- queryFn: async () => {
57
- if (!governance)
58
- throw new Error("Governance not initialized");
59
- return await governance.getAirdropStatus();
60
- },
61
- enabled: e && !!governance && !!projectData && !!clankerToken,
62
- retry: 1,
63
- refetchInterval: 30000,
64
- });
65
- return {
66
- currentCycleId,
67
- addresses,
68
- airdropStatus,
69
- };
70
- }
71
- /**
72
- * Hook for managing governance operations
73
- * Global queries from LevrProvider, dynamic queries created per-component
74
- */
75
- export function useGovernance({ governorAddress, clankerToken: _clankerToken, tokenDecimals = 18, enabled = true, proposalId, cycleId, userAddress, onProposeTransferSuccess, onProposeTransferError, onProposeBoostSuccess, onProposeBoostError, onVoteSuccess, onVoteError, onExecuteProposalSuccess, onExecuteProposalError, onClaimAirdropSuccess, onClaimAirdropError, }) {
76
- const { governance: governanceQueries, refetch, clankerToken } = useLevrContext();
77
- const wallet = useWalletClient();
78
- const publicClient = usePublicClient();
79
- // Create governance instance for mutations
80
- const governance = wallet.data && publicClient && clankerToken
81
- ? new Governance({
82
- wallet: wallet.data,
83
- publicClient,
84
- governorAddress,
85
- tokenDecimals,
86
- clankerToken,
87
- })
88
- : null;
89
- // Global queries from context
90
- const currentCycleId = governanceQueries.currentCycleId;
91
- const addresses = governanceQueries.addresses;
92
- const airdropStatus = governanceQueries.airdropStatus;
93
- // Dynamic queries (component-specific)
94
- const proposal = useQuery({
95
- queryKey: queryKeys.governance.proposal(governorAddress, proposalId?.toString()),
96
- queryFn: async () => {
97
- if (!governance || !proposalId)
98
- throw new Error("Governance not initialized or no proposal ID");
99
- return await governance.getProposal(proposalId);
100
- },
101
- enabled: enabled && !!governance && proposalId !== undefined,
102
- retry: 1,
103
- });
104
- const proposalsForCycle = useQuery({
105
- queryKey: queryKeys.governance.proposalsForCycle(governorAddress, cycleId?.toString()),
106
- queryFn: async () => {
107
- if (!governance || cycleId === undefined)
108
- throw new Error("Governance not initialized or no cycle ID");
109
- return await governance.getProposalsForCycle(cycleId);
110
- },
111
- enabled: enabled && !!governance && cycleId !== undefined,
112
- retry: 1,
113
- });
114
- const winner = useQuery({
115
- queryKey: queryKeys.governance.winner(governorAddress, cycleId?.toString()),
116
- queryFn: async () => {
117
- if (!governance || cycleId === undefined)
118
- throw new Error("Governance not initialized or no cycle ID");
119
- return await governance.getWinner(cycleId);
120
- },
121
- enabled: enabled && !!governance && cycleId !== undefined,
122
- retry: 1,
123
- });
124
- const voteReceipt = useQuery({
125
- queryKey: [
126
- "governance",
127
- "voteReceipt",
128
- governorAddress,
129
- proposalId?.toString(),
130
- userAddress || wallet.data?.account.address,
131
- ],
132
- queryFn: async () => {
133
- if (!governance || !proposalId)
134
- throw new Error("Governance not initialized or no proposal ID");
135
- return await governance.getVoteReceipt(proposalId, userAddress);
136
- },
137
- enabled: enabled && !!governance && proposalId !== undefined,
138
- retry: 1,
139
- });
140
- const votingPowerSnapshot = useQuery({
141
- queryKey: [
142
- "governance",
143
- "votingPowerSnapshot",
144
- governorAddress,
145
- proposalId?.toString(),
146
- userAddress || wallet.data?.account.address,
147
- ],
148
- queryFn: async () => {
149
- if (!governance || !proposalId)
150
- throw new Error("Governance not initialized or no proposal ID");
151
- return await governance.getVotingPowerSnapshot(proposalId, userAddress);
152
- },
153
- enabled: enabled && !!governance && proposalId !== undefined,
154
- retry: 1,
155
- });
156
- const meetsQuorum = useQuery({
157
- queryKey: ["governance", "meetsQuorum", governorAddress, proposalId?.toString()],
158
- queryFn: async () => {
159
- if (!governance || !proposalId)
160
- throw new Error("Governance not initialized or no proposal ID");
161
- return await governance.meetsQuorum(proposalId);
162
- },
163
- enabled: enabled && !!governance && proposalId !== undefined,
164
- retry: 1,
165
- });
166
- const meetsApproval = useQuery({
167
- queryKey: ["governance", "meetsApproval", governorAddress, proposalId?.toString()],
168
- queryFn: async () => {
169
- if (!governance || !proposalId)
170
- throw new Error("Governance not initialized or no proposal ID");
171
- return await governance.meetsApproval(proposalId);
172
- },
173
- enabled: enabled && !!governance && proposalId !== undefined,
174
- retry: 1,
175
- });
176
- const proposalState = useQuery({
177
- queryKey: ["governance", "proposalState", governorAddress, proposalId?.toString()],
178
- queryFn: async () => {
179
- if (!governance || !proposalId)
180
- throw new Error("Governance not initialized or no proposal ID");
181
- return await governance.getProposalState(proposalId);
182
- },
183
- enabled: enabled && !!governance && proposalId !== undefined,
184
- retry: 1,
185
- });
186
- const activeProposalCount = useQuery({
187
- queryKey: ["governance", "activeProposalCount", governorAddress],
188
- queryFn: async () => {
189
- if (!governance)
190
- throw new Error("Governance not initialized");
191
- const [boostCount, transferCount] = await Promise.all([
192
- governance.getActiveProposalCount(0),
193
- governance.getActiveProposalCount(1),
194
- ]);
195
- return { boost: boostCount, transfer: transferCount };
196
- },
197
- enabled: enabled && !!governance,
198
- retry: 1,
199
- });
26
+ }, [wallet.data, publicClient, project.data]);
200
27
  // Mutations
201
28
  const vote = useMutation({
202
29
  mutationFn: async ({ proposalId, support, }) => {
@@ -207,7 +34,7 @@ export function useGovernance({ governorAddress, clankerToken: _clankerToken, to
207
34
  return await governance.vote(proposalId, support);
208
35
  },
209
36
  onSuccess: async (receipt) => {
210
- await refetch.afterGovernance();
37
+ await refetch.afterVote();
211
38
  onVoteSuccess?.(receipt);
212
39
  },
213
40
  onError: onVoteError,
@@ -223,7 +50,7 @@ export function useGovernance({ governorAddress, clankerToken: _clankerToken, to
223
50
  return result;
224
51
  },
225
52
  onSuccess: async (result) => {
226
- await refetch.afterGovernance();
53
+ await refetch.afterProposal();
227
54
  onProposeTransferSuccess?.(result.receipt, result.proposalId);
228
55
  },
229
56
  onError: onProposeTransferError,
@@ -239,7 +66,7 @@ export function useGovernance({ governorAddress, clankerToken: _clankerToken, to
239
66
  return result;
240
67
  },
241
68
  onSuccess: async (result) => {
242
- await refetch.afterGovernance();
69
+ await refetch.afterProposal();
243
70
  onProposeBoostSuccess?.(result.receipt, result.proposalId);
244
71
  },
245
72
  onError: onProposeBoostError,
@@ -254,7 +81,7 @@ export function useGovernance({ governorAddress, clankerToken: _clankerToken, to
254
81
  return receipt;
255
82
  },
256
83
  onSuccess: async (receipt) => {
257
- await refetch.afterGovernance();
84
+ await refetch.afterExecute();
258
85
  onExecuteProposalSuccess?.(receipt);
259
86
  },
260
87
  onError: onExecuteProposalError,
@@ -268,119 +95,38 @@ export function useGovernance({ governorAddress, clankerToken: _clankerToken, to
268
95
  return await governance.claimAirdrop();
269
96
  },
270
97
  onSuccess: async (receipt) => {
271
- await refetch.afterGovernance();
98
+ await refetch.afterAirdrop();
272
99
  onClaimAirdropSuccess?.(receipt);
273
100
  },
274
101
  onError: onClaimAirdropError,
275
102
  });
276
- const proposeAndExecuteTransfer = useMutation({
277
- mutationFn: async (config) => {
278
- if (!governance)
279
- throw new Error("Governance not initialized");
280
- const amountBigInt = parseUnits(config.amount, config.amountDecimals);
281
- const result = await governance.proposeAndExecuteTransfer(config.recipient, amountBigInt, config.description);
282
- return result;
283
- },
284
- onSuccess: async () => {
285
- await refetch.afterGovernance();
286
- },
287
- });
288
- const proposeAndExecuteBoost = useMutation({
289
- mutationFn: async (config) => {
290
- if (!governance)
291
- throw new Error("Governance not initialized");
292
- const amountBigInt = parseUnits(config.amount, config.amountDecimals);
293
- const result = await governance.proposeAndExecuteBoost(amountBigInt);
294
- return result;
295
- },
296
- onSuccess: async () => {
297
- await refetch.afterGovernance();
298
- },
299
- });
300
103
  // Helpers
301
- const buildProposeTransferConfig = ({ recipient, amount, amountDecimals = tokenDecimals, description, }) => ({
104
+ const buildProposeTransferConfig = ({ recipient, amount, amountDecimals, description, }) => ({
302
105
  recipient,
303
106
  amount: amount.toString(),
304
- amountDecimals,
107
+ amountDecimals: amountDecimals ?? project.data?.token.decimals ?? 18,
305
108
  description,
306
109
  });
307
- const buildProposeBoostConfig = ({ amount, amountDecimals = tokenDecimals, }) => ({
110
+ const buildProposeBoostConfig = ({ amount, amountDecimals, }) => ({
308
111
  amount: amount.toString(),
309
- amountDecimals,
112
+ amountDecimals: amountDecimals ?? project.data?.token.decimals ?? 18,
310
113
  });
311
114
  const buildExecuteProposalConfig = ({ proposalId, }) => ({
312
115
  proposalId,
313
116
  });
314
117
  return {
315
- // Core mutations
118
+ // Mutations
316
119
  proposeTransfer,
317
120
  proposeBoost,
318
121
  vote,
319
122
  executeProposal,
320
123
  claimAirdrop,
321
- // Convenience mutations
322
- proposeAndExecuteTransfer,
323
- proposeAndExecuteBoost,
324
- // Queries
325
- proposal,
326
- currentCycleId,
327
- addresses,
328
- airdropStatus,
329
- proposalsForCycle,
330
- winner,
331
- voteReceipt,
332
- votingPowerSnapshot,
333
- meetsQuorum,
334
- meetsApproval,
335
- proposalState,
336
- activeProposalCount,
337
- // Convenience accessors - proposal data
338
- proposalData: proposal.data,
339
- proposalDescription: proposal.data?.description,
340
- // Convenience accessors - cycle data
341
- currentCycleIdValue: currentCycleId.data,
342
- cycleProposals: proposalsForCycle.data,
343
- winnerProposalId: winner.data,
344
- // Convenience accessors - vote data
345
- hasVoted: voteReceipt.data?.hasVoted ?? false,
346
- voteSupport: voteReceipt.data?.support,
347
- votesUsed: voteReceipt.data?.votes,
348
- userVotingPower: votingPowerSnapshot.data,
349
- // Convenience accessors - proposal status
350
- proposalMeetsQuorum: meetsQuorum.data ?? false,
351
- proposalMeetsApproval: meetsApproval.data ?? false,
352
- proposalStateValue: proposalState.data,
353
- // Convenience accessors - active counts
354
- activeBoostProposals: activeProposalCount.data?.boost,
355
- activeTransferProposals: activeProposalCount.data?.transfer,
356
- // Convenience accessors - addresses
357
- treasuryAddress: addresses.data?.treasury,
358
- factoryAddress: addresses.data?.factory,
359
- stakedTokenAddress: addresses.data?.stakedToken,
360
- // Convenience accessors - airdrop
361
- airdropStatusData: airdropStatus.data,
362
- availableAirdropAmount: airdropStatus.data?.availableAmount,
363
- airdropAllocatedAmount: airdropStatus.data?.allocatedAmount,
364
- isAirdropAvailable: airdropStatus.data?.isAvailable ?? false,
365
- airdropError: airdropStatus.data?.error,
366
124
  // Helpers
367
125
  buildProposeTransferConfig,
368
126
  buildProposeBoostConfig,
369
127
  buildExecuteProposalConfig,
370
- // Status flags
128
+ // Loading states
371
129
  isReady: !!governance && !!wallet.data,
372
- isLoading: proposal.isLoading ||
373
- currentCycleId.isLoading ||
374
- addresses.isLoading ||
375
- airdropStatus.isLoading ||
376
- proposalsForCycle.isLoading ||
377
- winner.isLoading ||
378
- voteReceipt.isLoading ||
379
- votingPowerSnapshot.isLoading ||
380
- meetsQuorum.isLoading ||
381
- meetsApproval.isLoading ||
382
- proposalState.isLoading ||
383
- activeProposalCount.isLoading,
384
130
  isProposing: proposeTransfer.isPending || proposeBoost.isPending,
385
131
  isVoting: vote.isPending,
386
132
  isExecuting: executeProposal.isPending,
@@ -1 +1 @@
1
- {"version":3,"file":"use-governance.js","sourceRoot":"","sources":["../../../../src/client/hook/use-governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-governance.js","sourceRoot":"","sources":["../../../../src/client/hook/use-governance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { useQuery } from "@tanstack/react-query";
3
+ import { usePublicClient } from "wagmi";
4
+ import { pool } from "../../pool.js";
5
+ import { queryKeys } from "../query-keys.js";
6
+ /**
7
+ * Internal: Creates pool query with pool-specific data
8
+ * Used by LevrProvider
9
+ */
10
+ export function usePoolQuery({ project: projectData, enabled: e = true }) {
11
+ const publicClient = usePublicClient();
12
+ return useQuery({
13
+ queryKey: queryKeys.pool(projectData?.pool?.poolKey),
14
+ queryFn: async () => {
15
+ if (!projectData)
16
+ return null;
17
+ return pool({
18
+ publicClient: publicClient,
19
+ project: projectData,
20
+ });
21
+ },
22
+ enabled: e && !!publicClient && !!projectData?.pool?.poolKey,
23
+ staleTime: 30000, // Pool data changes less frequently
24
+ refetchInterval: 30000,
25
+ });
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pool.js","sourceRoot":"","sources":["../../../../src/client/hook/use-pool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAGvC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAOzC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAsB;IAC1F,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;QACpD,OAAO,EAAE,KAAK,IAA8B,EAAE;YAC5C,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAA;YAE7B,OAAO,IAAI,CAAC;gBACV,YAAY,EAAE,YAAa;gBAC3B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO;QAC5D,SAAS,EAAE,MAAM,EAAE,oCAAoC;QACvD,eAAe,EAAE,MAAM;KACxB,CAAC,CAAA;AACJ,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { useMutation } from "@tanstack/react-query";
3
3
  import { decodeFunctionResult } from "viem";
4
4
  import { usePublicClient, useWalletClient } from "wagmi";
5
+ import { GET_FACTORY_ADDRESS } from "../../index.js";
5
6
  import { LevrFactory_v1 } from "../../abis/index.js";
6
7
  /**
7
8
  * Prepares a project for the Levr factory registration.
@@ -9,15 +10,17 @@ import { LevrFactory_v1 } from "../../abis/index.js";
9
10
  * @param options - The options for the prepare mutation.
10
11
  * @returns The hash of the transaction.
11
12
  */
12
- export function usePrepare({ factoryAddress, onSuccess, onError }) {
13
+ export function usePrepare({ onSuccess, onError }) {
13
14
  const wallet = useWalletClient();
14
15
  const publicClient = usePublicClient();
16
+ const chainId = publicClient?.chain?.id;
15
17
  return useMutation({
16
18
  mutationFn: async () => {
19
+ const factoryAddress = GET_FACTORY_ADDRESS(chainId);
20
+ if (!factoryAddress)
21
+ throw new Error("Factory address is not found");
17
22
  if (!wallet.data)
18
23
  throw new Error("Wallet is not connected");
19
- if (!factoryAddress)
20
- throw new Error("Factory address is required");
21
24
  const hash = await wallet.data.writeContract({
22
25
  address: factoryAddress,
23
26
  abi: LevrFactory_v1,
@@ -1 +1 @@
1
- {"version":3,"file":"use-prepare.js","sourceRoot":"","sources":["../../../../src/client/hook/use-prepare.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAY3C;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAoB;IACjF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,OAAO,WAAW,CAAC;QACjB,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC5D,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAEnE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3C,OAAO,EAAE,cAAc;gBACvB,GAAG,EAAE,cAAc;gBACnB,YAAY,EAAE,sBAAsB;aACrC,CAAC,CAAA;YAEF,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACvE,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAElC,IAAI,QAAmC,CAAA;YACvC,IAAI,OAAkC,CAAA;YAEtC,IAAI,IAAI,EAAE,CAAC;gBACT,CAAC;gBAAA,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAAC;oBAC1C,GAAG,EAAE,cAAc;oBACnB,YAAY,EAAE,sBAAsB;oBACpC,IAAI;iBACL,CAAC,CAAA;YACJ,CAAC;YAED,OAAO;gBACL,IAAI;gBACJ,QAAQ;gBACR,OAAO;aACR,CAAA;QACH,CAAC;QACD,SAAS;QACT,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"use-prepare.js","sourceRoot":"","sources":["../../../../src/client/hook/use-prepare.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAW3C;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,EAAoB;IACjE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,OAAO,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAA;IAEvC,OAAO,WAAW,CAAC;QACjB,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACpE,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAE5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3C,OAAO,EAAE,cAAc;gBACvB,GAAG,EAAE,cAAc;gBACnB,YAAY,EAAE,sBAAsB;aACrC,CAAC,CAAA;YAEF,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACvE,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAElC,IAAI,QAAmC,CAAA;YACvC,IAAI,OAAkC,CAAA;YAEtC,IAAI,IAAI,EAAE,CAAC;gBACT,CAAC;gBAAA,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAAC;oBAC1C,GAAG,EAAE,cAAc;oBACnB,YAAY,EAAE,sBAAsB;oBACpC,IAAI;iBACL,CAAC,CAAA;YACJ,CAAC;YAED,OAAO;gBACL,IAAI;gBACJ,QAAQ;gBACR,OAAO;aACR,CAAA;QACH,CAAC;QACD,SAAS;QACT,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}