@ubi.fun/sdk 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 (191) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +279 -0
  3. package/dist/abi/AddressFeeSplitManager.d.cts +938 -0
  4. package/dist/abi/AddressFeeSplitManager.d.ts +939 -0
  5. package/dist/abi/AddressFeeSplitManager.d.ts.map +1 -0
  6. package/dist/abi/BidWall.d.cts +739 -0
  7. package/dist/abi/BidWall.d.ts +740 -0
  8. package/dist/abi/BidWall.d.ts.map +1 -0
  9. package/dist/abi/FairLaunch.d.cts +535 -0
  10. package/dist/abi/FairLaunch.d.ts +536 -0
  11. package/dist/abi/FairLaunch.d.ts.map +1 -0
  12. package/dist/abi/FeeEscrow.d.cts +281 -0
  13. package/dist/abi/FeeEscrow.d.ts +282 -0
  14. package/dist/abi/FeeEscrow.d.ts.map +1 -0
  15. package/dist/abi/Flaunch.d.cts +775 -0
  16. package/dist/abi/Flaunch.d.ts +776 -0
  17. package/dist/abi/Flaunch.d.ts.map +1 -0
  18. package/dist/abi/FlaunchPositionManager.d.cts +2170 -0
  19. package/dist/abi/FlaunchPositionManager.d.ts +2171 -0
  20. package/dist/abi/FlaunchPositionManager.d.ts.map +1 -0
  21. package/dist/abi/FlaunchZap.d.cts +300 -0
  22. package/dist/abi/FlaunchZap.d.ts +301 -0
  23. package/dist/abi/FlaunchZap.d.ts.map +1 -0
  24. package/dist/abi/InitialPrice.d.cts +252 -0
  25. package/dist/abi/InitialPrice.d.ts +253 -0
  26. package/dist/abi/InitialPrice.d.ts.map +1 -0
  27. package/dist/abi/Memecoin.d.cts +680 -0
  28. package/dist/abi/Memecoin.d.ts +681 -0
  29. package/dist/abi/Memecoin.d.ts.map +1 -0
  30. package/dist/abi/Multicall.d.cts +332 -0
  31. package/dist/abi/Multicall.d.ts +333 -0
  32. package/dist/abi/Multicall.d.ts.map +1 -0
  33. package/dist/abi/PoolManager.d.cts +1056 -0
  34. package/dist/abi/PoolManager.d.ts +1057 -0
  35. package/dist/abi/PoolManager.d.ts.map +1 -0
  36. package/dist/abi/PoolSwap.d.cts +89 -0
  37. package/dist/abi/PoolSwap.d.ts +90 -0
  38. package/dist/abi/PoolSwap.d.ts.map +1 -0
  39. package/dist/abi/Quoter.d.cts +485 -0
  40. package/dist/abi/Quoter.d.ts +486 -0
  41. package/dist/abi/Quoter.d.ts.map +1 -0
  42. package/dist/abi/ReferralEscrow.d.cts +459 -0
  43. package/dist/abi/ReferralEscrow.d.ts +460 -0
  44. package/dist/abi/ReferralEscrow.d.ts.map +1 -0
  45. package/dist/abi/TreasuryManager.d.cts +325 -0
  46. package/dist/abi/TreasuryManager.d.ts +326 -0
  47. package/dist/abi/TreasuryManager.d.ts.map +1 -0
  48. package/dist/abi/TreasuryManagerFactory.d.cts +433 -0
  49. package/dist/abi/TreasuryManagerFactory.d.ts +434 -0
  50. package/dist/abi/TreasuryManagerFactory.d.ts.map +1 -0
  51. package/dist/abi/UniversalRewardsDistributor.d.cts +191 -0
  52. package/dist/abi/UniversalRewardsDistributor.d.ts +192 -0
  53. package/dist/abi/UniversalRewardsDistributor.d.ts.map +1 -0
  54. package/dist/abi/XHandleClaims.d.cts +383 -0
  55. package/dist/abi/XHandleClaims.d.ts +384 -0
  56. package/dist/abi/XHandleClaims.d.ts.map +1 -0
  57. package/dist/abi/index.cjs +13541 -0
  58. package/dist/abi/index.cjs.map +1 -0
  59. package/dist/abi/index.d.cts +18 -0
  60. package/dist/abi/index.d.ts +19 -0
  61. package/dist/abi/index.d.ts.map +1 -0
  62. package/dist/abi/index.js +13522 -0
  63. package/dist/abi/index.js.map +1 -0
  64. package/dist/addresses/index.cjs +90 -0
  65. package/dist/addresses/index.cjs.map +1 -0
  66. package/dist/addresses/index.js +70 -0
  67. package/dist/addresses/index.js.map +1 -0
  68. package/dist/addresses.d.cts +48 -0
  69. package/dist/addresses.d.ts +49 -0
  70. package/dist/addresses.d.ts.map +1 -0
  71. package/dist/clients/BidWallClient.d.cts +44 -0
  72. package/dist/clients/BidWallClient.d.ts +45 -0
  73. package/dist/clients/BidWallClient.d.ts.map +1 -0
  74. package/dist/clients/FairLaunchClient.d.cts +47 -0
  75. package/dist/clients/FairLaunchClient.d.ts +48 -0
  76. package/dist/clients/FairLaunchClient.d.ts.map +1 -0
  77. package/dist/clients/FeeEscrowClient.d.cts +40 -0
  78. package/dist/clients/FeeEscrowClient.d.ts +41 -0
  79. package/dist/clients/FeeEscrowClient.d.ts.map +1 -0
  80. package/dist/clients/FlaunchClient.d.cts +35 -0
  81. package/dist/clients/FlaunchClient.d.ts +36 -0
  82. package/dist/clients/FlaunchClient.d.ts.map +1 -0
  83. package/dist/clients/FlaunchPositionManagerClient.d.cts +117 -0
  84. package/dist/clients/FlaunchPositionManagerClient.d.ts +118 -0
  85. package/dist/clients/FlaunchPositionManagerClient.d.ts.map +1 -0
  86. package/dist/clients/FlaunchZapClient.d.cts +127 -0
  87. package/dist/clients/FlaunchZapClient.d.ts +128 -0
  88. package/dist/clients/FlaunchZapClient.d.ts.map +1 -0
  89. package/dist/clients/InitialPriceClient.d.cts +32 -0
  90. package/dist/clients/InitialPriceClient.d.ts +33 -0
  91. package/dist/clients/InitialPriceClient.d.ts.map +1 -0
  92. package/dist/clients/MemecoinClient.d.cts +66 -0
  93. package/dist/clients/MemecoinClient.d.ts +67 -0
  94. package/dist/clients/MemecoinClient.d.ts.map +1 -0
  95. package/dist/clients/MulticallClient.d.cts +15 -0
  96. package/dist/clients/MulticallClient.d.ts +16 -0
  97. package/dist/clients/MulticallClient.d.ts.map +1 -0
  98. package/dist/clients/PoolManagerClient.d.cts +50 -0
  99. package/dist/clients/PoolManagerClient.d.ts +51 -0
  100. package/dist/clients/PoolManagerClient.d.ts.map +1 -0
  101. package/dist/clients/PoolSwapClient.d.cts +37 -0
  102. package/dist/clients/PoolSwapClient.d.ts +38 -0
  103. package/dist/clients/PoolSwapClient.d.ts.map +1 -0
  104. package/dist/clients/QuoterClient.d.cts +58 -0
  105. package/dist/clients/QuoterClient.d.ts +59 -0
  106. package/dist/clients/QuoterClient.d.ts.map +1 -0
  107. package/dist/clients/ReferralEscrowClient.d.cts +39 -0
  108. package/dist/clients/ReferralEscrowClient.d.ts +40 -0
  109. package/dist/clients/ReferralEscrowClient.d.ts.map +1 -0
  110. package/dist/clients/TreasuryManagerClient.d.cts +71 -0
  111. package/dist/clients/TreasuryManagerClient.d.ts +72 -0
  112. package/dist/clients/TreasuryManagerClient.d.ts.map +1 -0
  113. package/dist/clients/TreasuryManagerFactoryClient.d.cts +15 -0
  114. package/dist/clients/TreasuryManagerFactoryClient.d.ts +16 -0
  115. package/dist/clients/TreasuryManagerFactoryClient.d.ts.map +1 -0
  116. package/dist/clients/UniversalRewardsDistributorClient.d.cts +45 -0
  117. package/dist/clients/UniversalRewardsDistributorClient.d.ts +46 -0
  118. package/dist/clients/UniversalRewardsDistributorClient.d.ts.map +1 -0
  119. package/dist/clients/XHandleClaimsClient.d.cts +64 -0
  120. package/dist/clients/XHandleClaimsClient.d.ts +65 -0
  121. package/dist/clients/XHandleClaimsClient.d.ts.map +1 -0
  122. package/dist/helpers/chainIdToChain.d.cts +113 -0
  123. package/dist/helpers/chainIdToChain.d.ts +114 -0
  124. package/dist/helpers/chainIdToChain.d.ts.map +1 -0
  125. package/dist/helpers/hex.d.cts +3 -0
  126. package/dist/helpers/hex.d.ts +4 -0
  127. package/dist/helpers/hex.d.ts.map +1 -0
  128. package/dist/helpers/index.cjs +196 -0
  129. package/dist/helpers/index.cjs.map +1 -0
  130. package/dist/helpers/index.d.cts +3 -0
  131. package/dist/helpers/index.d.ts +4 -0
  132. package/dist/helpers/index.d.ts.map +1 -0
  133. package/dist/helpers/index.js +184 -0
  134. package/dist/helpers/index.js.map +1 -0
  135. package/dist/helpers/ipfs.d.cts +56 -0
  136. package/dist/helpers/ipfs.d.ts +57 -0
  137. package/dist/helpers/ipfs.d.ts.map +1 -0
  138. package/dist/hooks/FlaunchPositionManagerHooks.d.cts +28 -0
  139. package/dist/hooks/FlaunchPositionManagerHooks.d.ts +29 -0
  140. package/dist/hooks/FlaunchPositionManagerHooks.d.ts.map +1 -0
  141. package/dist/hooks/index.cjs +73 -0
  142. package/dist/hooks/index.cjs.map +1 -0
  143. package/dist/hooks/index.d.cts +1 -0
  144. package/dist/hooks/index.d.ts +2 -0
  145. package/dist/hooks/index.d.ts.map +1 -0
  146. package/dist/hooks/index.js +70 -0
  147. package/dist/hooks/index.js.map +1 -0
  148. package/dist/index.cjs +16808 -0
  149. package/dist/index.cjs.map +1 -0
  150. package/dist/index.d.cts +31 -0
  151. package/dist/index.d.ts +32 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +16718 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/index.umd.cjs +2 -0
  156. package/dist/index.umd.cjs.map +1 -0
  157. package/dist/sdk/FlaunchSDK.d.cts +520 -0
  158. package/dist/sdk/FlaunchSDK.d.ts +521 -0
  159. package/dist/sdk/FlaunchSDK.d.ts.map +1 -0
  160. package/dist/sdk/calldata.d.cts +65 -0
  161. package/dist/sdk/calldata.d.ts +66 -0
  162. package/dist/sdk/calldata.d.ts.map +1 -0
  163. package/dist/sdk/drift.d.cts +20 -0
  164. package/dist/sdk/drift.d.ts +21 -0
  165. package/dist/sdk/drift.d.ts.map +1 -0
  166. package/dist/sdk/factory.d.cts +20 -0
  167. package/dist/sdk/factory.d.ts +21 -0
  168. package/dist/sdk/factory.d.ts.map +1 -0
  169. package/dist/types.d.cts +56 -0
  170. package/dist/types.d.ts +57 -0
  171. package/dist/types.d.ts.map +1 -0
  172. package/dist/utils/index.cjs +455 -0
  173. package/dist/utils/index.cjs.map +1 -0
  174. package/dist/utils/index.d.cts +4 -0
  175. package/dist/utils/index.d.ts +5 -0
  176. package/dist/utils/index.d.ts.map +1 -0
  177. package/dist/utils/index.js +431 -0
  178. package/dist/utils/index.js.map +1 -0
  179. package/dist/utils/parseSwap.d.cts +45 -0
  180. package/dist/utils/parseSwap.d.ts +46 -0
  181. package/dist/utils/parseSwap.d.ts.map +1 -0
  182. package/dist/utils/slippage.d.cts +11 -0
  183. package/dist/utils/slippage.d.ts +12 -0
  184. package/dist/utils/slippage.d.ts.map +1 -0
  185. package/dist/utils/swap.d.cts +49 -0
  186. package/dist/utils/swap.d.ts +50 -0
  187. package/dist/utils/swap.d.ts.map +1 -0
  188. package/dist/utils/univ4.d.cts +78 -0
  189. package/dist/utils/univ4.d.ts +79 -0
  190. package/dist/utils/univ4.d.ts.map +1 -0
  191. package/package.json +161 -0
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ function usePoolCreatedEvents(flaunch, startBlockNumber) {
6
+ const [logs, setLogs] = react.useState([]);
7
+ const [isFetchingFromStart, setIsFetchingFromStart] = react.useState(false);
8
+ react.useEffect(() => {
9
+ let stale = false;
10
+ setLogs([]);
11
+ setIsFetchingFromStart(false);
12
+ const setupWatcher = async () => {
13
+ const cleanup = await flaunch.watchPoolCreated({
14
+ onPoolCreated: ({ logs: newLogs, isFetchingFromStart: isFetchingFromStart2 }) => {
15
+ if (stale) return;
16
+ setIsFetchingFromStart(isFetchingFromStart2);
17
+ setLogs((prevLogs) => [...newLogs, ...prevLogs]);
18
+ },
19
+ startBlockNumber
20
+ });
21
+ return cleanup;
22
+ };
23
+ const cleanupPromise = setupWatcher();
24
+ return () => {
25
+ stale = true;
26
+ cleanupPromise.then(({ cleanup }) => cleanup());
27
+ };
28
+ }, [flaunch, startBlockNumber]);
29
+ react.useEffect(() => {
30
+ const timer = setInterval(() => {
31
+ setLogs((prev) => [...prev]);
32
+ }, 1e3);
33
+ return () => clearInterval(timer);
34
+ }, []);
35
+ return { logs, isFetchingFromStart };
36
+ }
37
+ function usePoolSwapEvents(flaunch, coinAddress, startBlockNumber) {
38
+ const [logs, setLogs] = react.useState([]);
39
+ const [isFetchingFromStart, setIsFetchingFromStart] = react.useState(false);
40
+ react.useEffect(() => {
41
+ let stale = false;
42
+ setLogs([]);
43
+ setIsFetchingFromStart(false);
44
+ const setupWatcher = async () => {
45
+ const cleanup = await flaunch.watchPoolSwap({
46
+ onPoolSwap: ({ logs: newLogs, isFetchingFromStart: isFetchingFromStart2 }) => {
47
+ if (stale) return;
48
+ setIsFetchingFromStart(isFetchingFromStart2);
49
+ setLogs((prevLogs) => [...newLogs, ...prevLogs]);
50
+ },
51
+ filterByCoin: coinAddress,
52
+ startBlockNumber
53
+ });
54
+ return cleanup;
55
+ };
56
+ const cleanupPromise = setupWatcher();
57
+ return () => {
58
+ stale = true;
59
+ cleanupPromise.then(({ cleanup }) => cleanup());
60
+ };
61
+ }, [flaunch, coinAddress, startBlockNumber]);
62
+ react.useEffect(() => {
63
+ const timer = setInterval(() => {
64
+ setLogs((prev) => [...prev]);
65
+ }, 1e3);
66
+ return () => clearInterval(timer);
67
+ }, []);
68
+ return { logs, isFetchingFromStart };
69
+ }
70
+
71
+ exports.usePoolCreatedEvents = usePoolCreatedEvents;
72
+ exports.usePoolSwapEvents = usePoolSwapEvents;
73
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/hooks/FlaunchPositionManagerHooks.ts"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport {\n BuySwapLog,\n PoolCreatedLogs,\n SellSwapLog,\n} from \"../clients/FlaunchPositionManagerClient\";\nimport { ReadFlaunchSDK } from \"../sdk/FlaunchSDK\";\nimport { Address } from \"viem\";\n\n/**\n * Hook to watch and track pool creation events (new coin launches)\n * @param flaunch - Instance of ReadFlaunchSDK to interact with the contract\n * @param startBlockNumber - Optional block number to start watching events from\n * @returns Object containing:\n * - logs: Array of pool creation events in reverse chronological order\n * - isFetchingFromStart: Boolean indicating if initial historical events are being fetched\n */\nexport function usePoolCreatedEvents(\n flaunch: ReadFlaunchSDK,\n startBlockNumber?: bigint\n) {\n const [logs, setLogs] = useState<PoolCreatedLogs>([]);\n const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);\n\n useEffect(() => {\n let stale = false;\n setLogs([]);\n setIsFetchingFromStart(false);\n\n const setupWatcher = async () => {\n const cleanup = await flaunch.watchPoolCreated({\n onPoolCreated: ({ logs: newLogs, isFetchingFromStart }) => {\n if (stale) return;\n setIsFetchingFromStart(isFetchingFromStart);\n setLogs((prevLogs) => [...newLogs, ...prevLogs]);\n },\n startBlockNumber,\n });\n return cleanup;\n };\n\n const cleanupPromise = setupWatcher();\n\n return () => {\n stale = true;\n cleanupPromise.then(({ cleanup }) => cleanup());\n };\n }, [flaunch, startBlockNumber]);\n\n // Add effect to update times\n useEffect(() => {\n const timer = setInterval(() => {\n // Force re-render to update relative times\n setLogs((prev) => [...prev]);\n }, 1000);\n\n return () => clearInterval(timer);\n }, []);\n\n return { logs, isFetchingFromStart };\n}\n\n/**\n * Hook to watch and track swap events (buys/sells) for a specific coin\n * @param flaunch - Instance of ReadFlaunchSDK to interact with the contract\n * @param coinAddress - Address of the coin to watch swaps for\n * @param startBlockNumber - Optional block number to start watching events from\n * @returns Object containing:\n * - logs: Array of swap events (both buys and sells) in reverse chronological order\n * - isFetchingFromStart: Boolean indicating if initial historical events are being fetched\n */\nexport function usePoolSwapEvents(\n flaunch: ReadFlaunchSDK,\n coinAddress: Address,\n startBlockNumber?: bigint\n) {\n const [logs, setLogs] = useState<(BuySwapLog | SellSwapLog)[]>([]);\n const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);\n\n useEffect(() => {\n let stale = false;\n setLogs([]);\n setIsFetchingFromStart(false);\n\n const setupWatcher = async () => {\n const cleanup = await flaunch.watchPoolSwap({\n onPoolSwap: ({ logs: newLogs, isFetchingFromStart }) => {\n if (stale) return;\n setIsFetchingFromStart(isFetchingFromStart);\n setLogs((prevLogs) => [...newLogs, ...prevLogs]);\n },\n filterByCoin: coinAddress,\n startBlockNumber,\n });\n return cleanup;\n };\n\n const cleanupPromise = setupWatcher();\n\n return () => {\n stale = true;\n cleanupPromise.then(({ cleanup }) => cleanup());\n };\n }, [flaunch, coinAddress, startBlockNumber]);\n\n // Add effect to update times\n useEffect(() => {\n const timer = setInterval(() => {\n // Force re-render to update relative times\n setLogs((prev) => [...prev]);\n }, 1000);\n\n return () => clearInterval(timer);\n }, []);\n\n return { logs, isFetchingFromStart };\n}\n"],"names":["useState","useEffect","isFetchingFromStart"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./FlaunchPositionManagerHooks.cjs";
@@ -0,0 +1,2 @@
1
+ export * from "./FlaunchPositionManagerHooks.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ function usePoolCreatedEvents(flaunch, startBlockNumber) {
4
+ const [logs, setLogs] = useState([]);
5
+ const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);
6
+ useEffect(() => {
7
+ let stale = false;
8
+ setLogs([]);
9
+ setIsFetchingFromStart(false);
10
+ const setupWatcher = async () => {
11
+ const cleanup = await flaunch.watchPoolCreated({
12
+ onPoolCreated: ({ logs: newLogs, isFetchingFromStart: isFetchingFromStart2 }) => {
13
+ if (stale) return;
14
+ setIsFetchingFromStart(isFetchingFromStart2);
15
+ setLogs((prevLogs) => [...newLogs, ...prevLogs]);
16
+ },
17
+ startBlockNumber
18
+ });
19
+ return cleanup;
20
+ };
21
+ const cleanupPromise = setupWatcher();
22
+ return () => {
23
+ stale = true;
24
+ cleanupPromise.then(({ cleanup }) => cleanup());
25
+ };
26
+ }, [flaunch, startBlockNumber]);
27
+ useEffect(() => {
28
+ const timer = setInterval(() => {
29
+ setLogs((prev) => [...prev]);
30
+ }, 1e3);
31
+ return () => clearInterval(timer);
32
+ }, []);
33
+ return { logs, isFetchingFromStart };
34
+ }
35
+ function usePoolSwapEvents(flaunch, coinAddress, startBlockNumber) {
36
+ const [logs, setLogs] = useState([]);
37
+ const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);
38
+ useEffect(() => {
39
+ let stale = false;
40
+ setLogs([]);
41
+ setIsFetchingFromStart(false);
42
+ const setupWatcher = async () => {
43
+ const cleanup = await flaunch.watchPoolSwap({
44
+ onPoolSwap: ({ logs: newLogs, isFetchingFromStart: isFetchingFromStart2 }) => {
45
+ if (stale) return;
46
+ setIsFetchingFromStart(isFetchingFromStart2);
47
+ setLogs((prevLogs) => [...newLogs, ...prevLogs]);
48
+ },
49
+ filterByCoin: coinAddress,
50
+ startBlockNumber
51
+ });
52
+ return cleanup;
53
+ };
54
+ const cleanupPromise = setupWatcher();
55
+ return () => {
56
+ stale = true;
57
+ cleanupPromise.then(({ cleanup }) => cleanup());
58
+ };
59
+ }, [flaunch, coinAddress, startBlockNumber]);
60
+ useEffect(() => {
61
+ const timer = setInterval(() => {
62
+ setLogs((prev) => [...prev]);
63
+ }, 1e3);
64
+ return () => clearInterval(timer);
65
+ }, []);
66
+ return { logs, isFetchingFromStart };
67
+ }
68
+
69
+ export { usePoolCreatedEvents, usePoolSwapEvents };
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/hooks/FlaunchPositionManagerHooks.ts"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport {\n BuySwapLog,\n PoolCreatedLogs,\n SellSwapLog,\n} from \"../clients/FlaunchPositionManagerClient\";\nimport { ReadFlaunchSDK } from \"../sdk/FlaunchSDK\";\nimport { Address } from \"viem\";\n\n/**\n * Hook to watch and track pool creation events (new coin launches)\n * @param flaunch - Instance of ReadFlaunchSDK to interact with the contract\n * @param startBlockNumber - Optional block number to start watching events from\n * @returns Object containing:\n * - logs: Array of pool creation events in reverse chronological order\n * - isFetchingFromStart: Boolean indicating if initial historical events are being fetched\n */\nexport function usePoolCreatedEvents(\n flaunch: ReadFlaunchSDK,\n startBlockNumber?: bigint\n) {\n const [logs, setLogs] = useState<PoolCreatedLogs>([]);\n const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);\n\n useEffect(() => {\n let stale = false;\n setLogs([]);\n setIsFetchingFromStart(false);\n\n const setupWatcher = async () => {\n const cleanup = await flaunch.watchPoolCreated({\n onPoolCreated: ({ logs: newLogs, isFetchingFromStart }) => {\n if (stale) return;\n setIsFetchingFromStart(isFetchingFromStart);\n setLogs((prevLogs) => [...newLogs, ...prevLogs]);\n },\n startBlockNumber,\n });\n return cleanup;\n };\n\n const cleanupPromise = setupWatcher();\n\n return () => {\n stale = true;\n cleanupPromise.then(({ cleanup }) => cleanup());\n };\n }, [flaunch, startBlockNumber]);\n\n // Add effect to update times\n useEffect(() => {\n const timer = setInterval(() => {\n // Force re-render to update relative times\n setLogs((prev) => [...prev]);\n }, 1000);\n\n return () => clearInterval(timer);\n }, []);\n\n return { logs, isFetchingFromStart };\n}\n\n/**\n * Hook to watch and track swap events (buys/sells) for a specific coin\n * @param flaunch - Instance of ReadFlaunchSDK to interact with the contract\n * @param coinAddress - Address of the coin to watch swaps for\n * @param startBlockNumber - Optional block number to start watching events from\n * @returns Object containing:\n * - logs: Array of swap events (both buys and sells) in reverse chronological order\n * - isFetchingFromStart: Boolean indicating if initial historical events are being fetched\n */\nexport function usePoolSwapEvents(\n flaunch: ReadFlaunchSDK,\n coinAddress: Address,\n startBlockNumber?: bigint\n) {\n const [logs, setLogs] = useState<(BuySwapLog | SellSwapLog)[]>([]);\n const [isFetchingFromStart, setIsFetchingFromStart] = useState(false);\n\n useEffect(() => {\n let stale = false;\n setLogs([]);\n setIsFetchingFromStart(false);\n\n const setupWatcher = async () => {\n const cleanup = await flaunch.watchPoolSwap({\n onPoolSwap: ({ logs: newLogs, isFetchingFromStart }) => {\n if (stale) return;\n setIsFetchingFromStart(isFetchingFromStart);\n setLogs((prevLogs) => [...newLogs, ...prevLogs]);\n },\n filterByCoin: coinAddress,\n startBlockNumber,\n });\n return cleanup;\n };\n\n const cleanupPromise = setupWatcher();\n\n return () => {\n stale = true;\n cleanupPromise.then(({ cleanup }) => cleanup());\n };\n }, [flaunch, coinAddress, startBlockNumber]);\n\n // Add effect to update times\n useEffect(() => {\n const timer = setInterval(() => {\n // Force re-render to update relative times\n setLogs((prev) => [...prev]);\n }, 1000);\n\n return () => clearInterval(timer);\n }, []);\n\n return { logs, isFetchingFromStart };\n}\n"],"names":["isFetchingFromStart"],"mappings":"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"}