@berachain/berajs 0.3.0 → 0.3.1

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 (232) hide show
  1. package/dist/actions/clients/clientName.unit.test.d.ts +2 -0
  2. package/dist/actions/clients/clientName.unit.test.d.ts.map +1 -0
  3. package/dist/actions/clients/exports.mjs +3 -3
  4. package/dist/actions/clients/exports.mjs.map +1 -1
  5. package/dist/actions/clients/fetchBeep.d.ts +2 -2
  6. package/dist/actions/clients/fetchBeep.d.ts.map +1 -1
  7. package/dist/actions/clients/fetchEnso.d.ts +2 -2
  8. package/dist/actions/clients/fetchEnso.d.ts.map +1 -1
  9. package/dist/actions/clients/fetchLayerzero.d.ts +2 -2
  10. package/dist/actions/clients/fetchLayerzero.d.ts.map +1 -1
  11. package/dist/actions/clients/fetchOpenApi.unit.test.d.ts +2 -0
  12. package/dist/actions/clients/fetchOpenApi.unit.test.d.ts.map +1 -0
  13. package/dist/actions/dex/__tests__/aggregators.unit.test.d.ts +2 -0
  14. package/dist/actions/dex/__tests__/aggregators.unit.test.d.ts.map +1 -0
  15. package/dist/actions/dex/__tests__/allPools.integration.test.d.ts +2 -0
  16. package/dist/actions/dex/__tests__/allPools.integration.test.d.ts.map +1 -0
  17. package/dist/actions/dex/__tests__/getOnChainPool.unit.test.d.ts +2 -0
  18. package/dist/actions/dex/__tests__/getOnChainPool.unit.test.d.ts.map +1 -0
  19. package/dist/actions/dex/aggregators/enso/ensoErc4626.debug.test.d.ts +2 -0
  20. package/dist/actions/dex/aggregators/enso/ensoErc4626.debug.test.d.ts.map +1 -0
  21. package/dist/actions/dex/aggregators/haiku.integration.test.d.ts +2 -0
  22. package/dist/actions/dex/aggregators/haiku.integration.test.d.ts.map +1 -0
  23. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.d.ts +2 -0
  24. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.d.ts.map +1 -0
  25. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.d.ts +2 -0
  26. package/dist/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.d.ts.map +1 -0
  27. package/dist/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.d.ts +2 -0
  28. package/dist/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.d.ts.map +1 -0
  29. package/dist/actions/enso/__tests__/getBendMultiplyBundle.unit.test.d.ts +2 -0
  30. package/dist/actions/enso/__tests__/getBendMultiplyBundle.unit.test.d.ts.map +1 -0
  31. package/dist/actions/enso/__tests__/getEnsoUserTokensWithBalances.debug.test.d.ts +2 -0
  32. package/dist/actions/enso/__tests__/getEnsoUserTokensWithBalances.debug.test.d.ts.map +1 -0
  33. package/dist/actions/enso/__tests__/util.unit.test.d.ts +2 -0
  34. package/dist/actions/enso/__tests__/util.unit.test.d.ts.map +1 -0
  35. package/dist/actions/exports.mjs +5 -17
  36. package/dist/actions/exports.mjs.map +1 -1
  37. package/dist/actions/governance/__tests__/checkProposalField.unit.test.d.ts +2 -0
  38. package/dist/actions/governance/__tests__/checkProposalField.unit.test.d.ts.map +1 -0
  39. package/dist/actions/governance/__tests__/getDecodedFunctionData.integration.test.d.ts +2 -0
  40. package/dist/actions/governance/__tests__/getDecodedFunctionData.integration.test.d.ts.map +1 -0
  41. package/dist/actions/governance/__tests__/getQuorum.integration.test.d.ts +2 -0
  42. package/dist/actions/governance/__tests__/getQuorum.integration.test.d.ts.map +1 -0
  43. package/dist/actions/honey/getChartData.d.ts +1 -1
  44. package/dist/actions/honey/getChartData.d.ts.map +1 -1
  45. package/dist/actions/honey/getHoneyTxns.d.ts +1 -1
  46. package/dist/actions/honey/getHoneyTxns.d.ts.map +1 -1
  47. package/dist/actions/honey/tests/pyth.integration.test.d.ts +2 -0
  48. package/dist/actions/honey/tests/pyth.integration.test.d.ts.map +1 -0
  49. package/dist/actions/pol/__tests__/getAllValidators.integration.test.d.ts +2 -0
  50. package/dist/actions/pol/__tests__/getAllValidators.integration.test.d.ts.map +1 -0
  51. package/dist/actions/pol/__tests__/getValidator.integration.test.d.ts +2 -0
  52. package/dist/actions/pol/__tests__/getValidator.integration.test.d.ts.map +1 -0
  53. package/dist/actions/pol/__tests__/rewardVaults.integration.test.d.ts +2 -0
  54. package/dist/actions/pol/__tests__/rewardVaults.integration.test.d.ts.map +1 -0
  55. package/dist/actions/pol/getBGTGlobalInfo.d.ts +0 -1
  56. package/dist/actions/pol/getBGTGlobalInfo.d.ts.map +1 -1
  57. package/dist/actions/pol/getBeraTokenTotalSupply.d.ts.map +1 -1
  58. package/dist/actions/pol/getBgtAprSimultaion.unit.test.d.ts +2 -0
  59. package/dist/actions/pol/getBgtAprSimultaion.unit.test.d.ts.map +1 -0
  60. package/dist/actions/pol/getBlockTime.debug.test.d.ts +2 -0
  61. package/dist/actions/pol/getBlockTime.debug.test.d.ts.map +1 -0
  62. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts +4 -4
  63. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts.map +1 -1
  64. package/dist/actions/pol/getRewardVaultBeaconImplementation.integration.test.d.ts +2 -0
  65. package/dist/actions/pol/getRewardVaultBeaconImplementation.integration.test.d.ts.map +1 -0
  66. package/dist/actions/pol/getRewardVaultDurationConstants.integration.test.d.ts +2 -0
  67. package/dist/actions/pol/getRewardVaultDurationConstants.integration.test.d.ts.map +1 -0
  68. package/dist/actions/pol/getRewardVaults.d.ts.map +1 -1
  69. package/dist/actions/pol/getStakedBeraAPY.d.ts.map +1 -1
  70. package/dist/actions/pol/getStakedBeraSnapshots.d.ts +1 -1
  71. package/dist/actions/pol/getStakedBeraSnapshots.d.ts.map +1 -1
  72. package/dist/actions/pol/getStakingDailyAssets.d.ts +2 -2
  73. package/dist/actions/pol/getStakingDailyAssets.d.ts.map +1 -1
  74. package/dist/actions/prices/__tests__/prices.integration.test.d.ts +2 -0
  75. package/dist/actions/prices/__tests__/prices.integration.test.d.ts.map +1 -0
  76. package/dist/actions/server/exports.mjs +1 -1
  77. package/dist/actions/server/exports.mjs.map +1 -1
  78. package/dist/actions/server/getDailyValidatorBlockStats.d.ts +1 -1
  79. package/dist/actions/server/getDailyValidatorBlockStats.d.ts.map +1 -1
  80. package/dist/actions/tokens/getWalletBalances.integration.test.d.ts +2 -0
  81. package/dist/actions/tokens/getWalletBalances.integration.test.d.ts.map +1 -0
  82. package/dist/actions/transactions/beraWriteContract.integration.test.d.ts +2 -0
  83. package/dist/actions/transactions/beraWriteContract.integration.test.d.ts.map +1 -0
  84. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.d.ts +2 -0
  85. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.d.ts.map +1 -0
  86. package/dist/actions/validators/getValidatorIncentiveDistribution.d.ts +1 -1
  87. package/dist/actions/validators/getValidatorIncentiveDistribution.d.ts.map +1 -1
  88. package/dist/actions/validators/utils/__tests__/validatorUtils.integration.test.d.ts +2 -0
  89. package/dist/actions/validators/utils/__tests__/validatorUtils.integration.test.d.ts.map +1 -0
  90. package/dist/actions/validators/utils/aggregateValidatorIncentives.unit.test.d.ts +2 -0
  91. package/dist/actions/validators/utils/aggregateValidatorIncentives.unit.test.d.ts.map +1 -0
  92. package/dist/{chunk-J6GM7HWX.mjs → chunk-3TRTSTDH.mjs} +1 -1
  93. package/dist/chunk-3TRTSTDH.mjs.map +1 -0
  94. package/dist/{chunk-BZKA6DBM.mjs → chunk-5MUCX35C.mjs} +2 -2
  95. package/dist/{chunk-5PBYMJRG.mjs → chunk-6D4S3EAC.mjs} +3 -3
  96. package/dist/chunk-6D4S3EAC.mjs.map +1 -0
  97. package/dist/{chunk-7OESHTBN.mjs → chunk-GDUKRUHE.mjs} +1 -1
  98. package/dist/chunk-GDUKRUHE.mjs.map +1 -0
  99. package/dist/{chunk-SMBAW7AG.mjs → chunk-KY7JMIIS.mjs} +3 -5
  100. package/dist/chunk-KY7JMIIS.mjs.map +1 -0
  101. package/dist/{chunk-BSLXKPX4.mjs → chunk-Z337NBBW.mjs} +2 -2
  102. package/dist/chunk-Z337NBBW.mjs.map +1 -0
  103. package/dist/contexts/exports.mjs +1 -1
  104. package/dist/enum/exports.mjs +1 -1
  105. package/dist/enum/txnEnum.d.ts +1 -1
  106. package/dist/enum/txnEnum.d.ts.map +1 -1
  107. package/dist/errors/BeraError.unit.test.d.ts +2 -0
  108. package/dist/errors/BeraError.unit.test.d.ts.map +1 -0
  109. package/dist/errors/BeraTracing.unit.test.d.ts +2 -0
  110. package/dist/errors/BeraTracing.unit.test.d.ts.map +1 -0
  111. package/dist/errors/RequestError.unit.test.d.ts +2 -0
  112. package/dist/errors/RequestError.unit.test.d.ts.map +1 -0
  113. package/dist/errors/assert.unit.test.d.ts +2 -0
  114. package/dist/errors/assert.unit.test.d.ts.map +1 -0
  115. package/dist/errors/getErrorMessage.unit.test.d.ts +2 -0
  116. package/dist/errors/getErrorMessage.unit.test.d.ts.map +1 -0
  117. package/dist/errors/getRevertReason.integration.test.d.ts +2 -0
  118. package/dist/errors/getRevertReason.integration.test.d.ts.map +1 -0
  119. package/dist/errors/spanStatus.unit.test.d.ts +2 -0
  120. package/dist/errors/spanStatus.unit.test.d.ts.map +1 -0
  121. package/dist/generated/beep.d.ts +1597 -0
  122. package/dist/generated/beep.d.ts.map +1 -0
  123. package/dist/generated/enso.d.ts +4957 -0
  124. package/dist/generated/enso.d.ts.map +1 -0
  125. package/dist/generated/layerzero.d.ts +2057 -0
  126. package/dist/generated/layerzero.d.ts.map +1 -0
  127. package/dist/hooks/dex/useCrossChainNativeFee.unit.test.d.ts +2 -0
  128. package/dist/hooks/dex/useCrossChainNativeFee.unit.test.d.ts.map +1 -0
  129. package/dist/hooks/dex/useSingleAggregatorQuote.d.ts.map +1 -1
  130. package/dist/hooks/dex/useSingleAggregatorQuote.unit.test.d.ts +2 -0
  131. package/dist/hooks/dex/useSingleAggregatorQuote.unit.test.d.ts.map +1 -0
  132. package/dist/hooks/enso/useBendZapSupply.d.ts.map +1 -1
  133. package/dist/hooks/enso/useBendZapSupply.unit.test.d.ts +2 -0
  134. package/dist/hooks/enso/useBendZapSupply.unit.test.d.ts.map +1 -0
  135. package/dist/hooks/enso/useEnsoUserTokensWithBalances.d.ts.map +1 -1
  136. package/dist/hooks/enso/useEnsoUserTokensWithBalances.unit.test.d.ts +2 -0
  137. package/dist/hooks/enso/useEnsoUserTokensWithBalances.unit.test.d.ts.map +1 -0
  138. package/dist/hooks/enso/useZapStakeBera.d.ts.map +1 -1
  139. package/dist/hooks/enso/useZapStakeBera.unit.test.d.ts +2 -0
  140. package/dist/hooks/enso/useZapStakeBera.unit.test.d.ts.map +1 -0
  141. package/dist/hooks/exports.mjs +38 -19
  142. package/dist/hooks/exports.mjs.map +1 -1
  143. package/dist/hooks/honey/useHoneyChartData.d.ts +4 -4
  144. package/dist/hooks/honey/useHoneyChartData.d.ts.map +1 -1
  145. package/dist/hooks/pol/useAutoclaimedIncentives.d.ts.map +1 -1
  146. package/dist/hooks/pol/useAutoclaimedIncentivesTxHash.d.ts.map +1 -1
  147. package/dist/hooks/pol/useRewardVaults.d.ts.map +1 -1
  148. package/dist/hooks/pol/useStakedData.d.ts +2 -0
  149. package/dist/hooks/pol/useStakedData.d.ts.map +1 -1
  150. package/dist/hooks/pol/useStakedSnapshots.d.ts +1 -1
  151. package/dist/hooks/pol/useStakedSnapshots.d.ts.map +1 -1
  152. package/dist/hooks/tokens/useMultipleTokenInformation.unit.test.d.ts +2 -0
  153. package/dist/hooks/tokens/useMultipleTokenInformation.unit.test.d.ts.map +1 -0
  154. package/dist/hooks/validators/useValidator.d.ts +0 -1
  155. package/dist/hooks/validators/useValidator.d.ts.map +1 -1
  156. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts +1 -1
  157. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts.map +1 -1
  158. package/dist/types/beep/exports.d.ts +2 -0
  159. package/dist/types/beep/exports.d.ts.map +1 -0
  160. package/dist/types/beep/exports.mjs +1 -0
  161. package/dist/types/beep/exports.mjs.map +1 -0
  162. package/dist/types/bribeBoost.d.ts +20 -0
  163. package/dist/types/dex.d.ts +242 -0
  164. package/dist/types/enso.d.ts +50 -0
  165. package/dist/types/global.d.ts +205 -0
  166. package/dist/types/governance.d.ts +112 -0
  167. package/dist/types/honeySwap.d.ts +23 -0
  168. package/dist/types/pol.d.ts +33 -0
  169. package/dist/types/staking.d.ts +22 -0
  170. package/dist/utils/createEmitter.unit.test.d.ts +2 -0
  171. package/dist/utils/createEmitter.unit.test.d.ts.map +1 -0
  172. package/dist/utils/crossChainBridge.unit.test.d.ts +2 -0
  173. package/dist/utils/crossChainBridge.unit.test.d.ts.map +1 -0
  174. package/dist/utils/exports.mjs +1 -1
  175. package/dist/utils/formatNumber.unit.test.d.ts +2 -0
  176. package/dist/utils/formatNumber.unit.test.d.ts.map +1 -0
  177. package/dist/utils/formatTimestamps.unit.test.d.ts +2 -0
  178. package/dist/utils/formatTimestamps.unit.test.d.ts.map +1 -0
  179. package/dist/utils/getContractName.unit.test.d.ts +2 -0
  180. package/dist/utils/getContractName.unit.test.d.ts.map +1 -0
  181. package/dist/utils/getHoneySwapMessage.test.d.ts +2 -0
  182. package/dist/utils/getHoneySwapMessage.test.d.ts.map +1 -0
  183. package/dist/utils/math.unit.test.d.ts +2 -0
  184. package/dist/utils/math.unit.test.d.ts.map +1 -0
  185. package/dist/utils/parseBaseArgs.unit.test.d.ts +2 -0
  186. package/dist/utils/parseBaseArgs.unit.test.d.ts.map +1 -0
  187. package/dist/utils/polyfillAbortSignalAny.unit.test.d.ts +2 -0
  188. package/dist/utils/polyfillAbortSignalAny.unit.test.d.ts.map +1 -0
  189. package/dist/utils/time.unit.test.d.ts +2 -0
  190. package/dist/utils/time.unit.test.d.ts.map +1 -0
  191. package/dist/utils/tokens.unit.test.d.ts +2 -0
  192. package/dist/utils/tokens.unit.test.d.ts.map +1 -0
  193. package/dist/utils/truncateHash.unit.test.d.ts +2 -0
  194. package/dist/utils/truncateHash.unit.test.d.ts.map +1 -0
  195. package/package.json +9 -7
  196. package/src/actions/clients/fetchBeep.ts +2 -3
  197. package/src/actions/clients/fetchEnso.ts +2 -3
  198. package/src/actions/clients/fetchLayerzero.ts +2 -3
  199. package/src/actions/clients/fetchOpenApi.unit.test.ts +1 -2
  200. package/src/actions/honey/getChartData.ts +2 -3
  201. package/src/actions/honey/getHoney24hVolume.ts +1 -1
  202. package/src/actions/honey/getHoneyTxns.ts +2 -3
  203. package/src/actions/pol/getBGTGlobalInfo.ts +0 -2
  204. package/src/actions/pol/getEarnedStakedBeraVault.ts +1 -1
  205. package/src/actions/pol/getRewardVaults.ts +0 -1
  206. package/src/actions/pol/getStakedBeraAPY.ts +1 -2
  207. package/src/actions/pol/getStakedBeraSnapshots.ts +1 -2
  208. package/src/actions/pol/getStakingDailyAssets.ts +1 -1
  209. package/src/actions/server/getDailyValidatorBlockStats.ts +1 -2
  210. package/src/actions/validators/getValidatorIncentiveDistribution.ts +1 -2
  211. package/src/enum/txnEnum.ts +1 -1
  212. package/src/generated/beep.ts +1605 -0
  213. package/src/generated/enso.ts +4965 -0
  214. package/src/generated/layerzero.ts +2065 -0
  215. package/src/hooks/dex/useSingleAggregatorQuote.ts +6 -3
  216. package/src/hooks/dex/useSingleAggregatorQuote.unit.test.ts +86 -0
  217. package/src/hooks/enso/useBendZapSupply.ts +1 -0
  218. package/src/hooks/enso/useBendZapSupply.unit.test.ts +98 -0
  219. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +3 -1
  220. package/src/hooks/enso/useEnsoUserTokensWithBalances.unit.test.ts +69 -0
  221. package/src/hooks/enso/useZapStakeBera.ts +7 -0
  222. package/src/hooks/enso/useZapStakeBera.unit.test.ts +97 -0
  223. package/src/hooks/pol/useStakedData.ts +2 -0
  224. package/src/hooks/pol/useStakedSnapshots.ts +1 -1
  225. package/src/hooks/validators/useValidatorIncentiveDistribution.ts +1 -1
  226. package/src/types/beep/exports.ts +4 -0
  227. package/dist/chunk-5PBYMJRG.mjs.map +0 -1
  228. package/dist/chunk-7OESHTBN.mjs.map +0 -1
  229. package/dist/chunk-BSLXKPX4.mjs.map +0 -1
  230. package/dist/chunk-J6GM7HWX.mjs.map +0 -1
  231. package/dist/chunk-SMBAW7AG.mjs.map +0 -1
  232. /package/dist/{chunk-BZKA6DBM.mjs.map → chunk-5MUCX35C.mjs.map} +0 -0
@@ -54,6 +54,7 @@ type IQueryKey = readonly [
54
54
  Address | undefined, // rewardVault
55
55
  MinimalERC20 | null | undefined, // underlyingToken
56
56
  TokenWithOrder[] | undefined, // collateralList
57
+ boolean, // proxyAggregatorsThroughVercel
57
58
  ];
58
59
 
59
60
  export const USE_AGGREGATORS_QUOTES_QUERY_KEY = "useAggregatorsQuotes";
@@ -70,6 +71,7 @@ function getQueryKey({
70
71
  feeBps,
71
72
  activeAggregators,
72
73
  isMAEnabled,
74
+ proxyAggregatorsThroughVercel,
73
75
  }: {
74
76
  aggregator: BaseAggregator;
75
77
  account: Address | undefined;
@@ -82,6 +84,7 @@ function getQueryKey({
82
84
  */
83
85
  activeAggregators: string[] | undefined;
84
86
  isMAEnabled: boolean;
87
+ proxyAggregatorsThroughVercel: boolean | undefined;
85
88
  }): IQueryKey | null {
86
89
  if (!Number(args.amount)) {
87
90
  return null;
@@ -158,6 +161,7 @@ function getQueryKey({
158
161
  aggregator.name === Aggregators.Honey
159
162
  ? args.honeyNativeState?.collateralList
160
163
  : undefined,
164
+ proxyAggregatorsThroughVercel ?? false,
161
165
  ];
162
166
  }
163
167
 
@@ -168,11 +172,9 @@ function getQueryKey({
168
172
  function getQueryFn({
169
173
  aggregator,
170
174
  publicClient,
171
- proxyAggregatorsThroughVercel,
172
175
  }: {
173
176
  aggregator: BaseAggregator;
174
177
  publicClient?: PublicClient;
175
- proxyAggregatorsThroughVercel?: boolean;
176
178
  }) {
177
179
  return async ([
178
180
  ,
@@ -187,6 +189,7 @@ function getQueryFn({
187
189
  rewardVault,
188
190
  underlyingToken,
189
191
  honeyCollaterals,
192
+ proxyAggregatorsThroughVercel,
190
193
  ]: IQueryKey) =>
191
194
  aggregator.getQuote({
192
195
  tokenIn,
@@ -242,10 +245,10 @@ export function raw_useSingleAggregatorQuote(
242
245
  feeBps,
243
246
  activeAggregators,
244
247
  isMAEnabled,
248
+ proxyAggregatorsThroughVercel,
245
249
  }),
246
250
  getQueryFn({
247
251
  aggregator: args.aggregator,
248
- proxyAggregatorsThroughVercel,
249
252
  publicClient,
250
253
  }),
251
254
  options,
@@ -0,0 +1,86 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ import type { BaseAggregator } from "../../actions/dex/aggregators/base";
4
+ import { Aggregators } from "../../enum/dex";
5
+ import type { MinimalERC20 } from "../../types/dex";
6
+ import { raw_useSingleAggregatorQuote } from "./useSingleAggregatorQuote";
7
+
8
+ type CapturedFetcher = (key: readonly unknown[]) => Promise<unknown>;
9
+
10
+ const { captured } = vi.hoisted(() => ({
11
+ captured: {
12
+ key: null as readonly unknown[] | null,
13
+ fetcher: null as CapturedFetcher | null,
14
+ },
15
+ }));
16
+
17
+ vi.mock("@berachain/utils/pkg/swr", () => ({
18
+ useSWR: vi.fn(
19
+ (key: readonly unknown[] | null, fetcher: CapturedFetcher | null) => {
20
+ captured.key = key;
21
+ captured.fetcher = fetcher;
22
+ return { data: undefined, refresh: vi.fn() };
23
+ },
24
+ ),
25
+ }));
26
+
27
+ const tokenIn = {
28
+ address: "0x6969696969696969696969696969696969696969",
29
+ decimals: 18,
30
+ symbol: "WBERA",
31
+ name: "Wrapped BERA",
32
+ chainId: 80094,
33
+ } as const satisfies MinimalERC20;
34
+
35
+ const tokenOut = {
36
+ address: "0xFCBD14d472B1C3Ff25139Aba7D7aCE0C12fFf4d8",
37
+ decimals: 18,
38
+ symbol: "HONEY",
39
+ name: "Honey",
40
+ chainId: 80094,
41
+ } as const satisfies MinimalERC20;
42
+
43
+ describe("raw_useSingleAggregatorQuote", () => {
44
+ beforeEach(() => {
45
+ captured.key = null;
46
+ captured.fetcher = null;
47
+ vi.clearAllMocks();
48
+ });
49
+
50
+ it("reads the proxy transport from the SWR key", async () => {
51
+ const getQuote = vi.fn().mockResolvedValue(undefined);
52
+ const aggregator = {
53
+ name: Aggregators.Oogabooga,
54
+ needsAccountForQuote: false,
55
+ getUnsupportedReason: () => null,
56
+ getQuote,
57
+ } as unknown as BaseAggregator;
58
+
59
+ raw_useSingleAggregatorQuote({
60
+ aggregator,
61
+ tokenIn,
62
+ tokenOut,
63
+ amount: "1",
64
+ slippage: 0.5,
65
+ account: undefined,
66
+ feeBps: 10,
67
+ activeAggregators: undefined,
68
+ isMAEnabled: true,
69
+ publicClient: undefined,
70
+ proxyAggregatorsThroughVercel: false,
71
+ });
72
+
73
+ expect(captured.key?.at(-1)).toBe(false);
74
+ expect(captured.fetcher).not.toBeNull();
75
+
76
+ const proxyKey = [...(captured.key ?? [])];
77
+ proxyKey[proxyKey.length - 1] = true;
78
+ await captured.fetcher?.(proxyKey);
79
+
80
+ expect(getQuote).toHaveBeenCalledWith(
81
+ expect.objectContaining({
82
+ proxyAggregatorsThroughVercel: true,
83
+ }),
84
+ );
85
+ });
86
+ });
@@ -180,6 +180,7 @@ export function useBendZapSupplyHelper(
180
180
  rewardVault,
181
181
  amount,
182
182
  slippage,
183
+ proxyAggregatorsThroughVercel,
183
184
  ]) => {
184
185
  assertPublicClient(publicClientBeraChain);
185
186
  assertAddress(fromAddress, "fromAddress");
@@ -0,0 +1,98 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ import type { BalanceToken, MinimalERC20 } from "../../types/dex";
4
+ import { useBendZapSupplyHelper } from "./useBendZapSupply";
5
+
6
+ type CapturedFetcher = (key: readonly unknown[]) => Promise<unknown>;
7
+
8
+ const { captured, getQuote } = vi.hoisted(() => ({
9
+ captured: {
10
+ key: null as readonly unknown[] | null,
11
+ fetcher: null as CapturedFetcher | null,
12
+ },
13
+ getQuote: vi.fn(),
14
+ }));
15
+
16
+ vi.mock("@berachain/wagmi/hooks", () => ({
17
+ useBeraWallet: () => ({
18
+ address: "0x1111111111111111111111111111111111111111",
19
+ }),
20
+ usePublicClient: () => ({}),
21
+ }));
22
+
23
+ vi.mock("@berachain/utils/pkg/swr", () => ({
24
+ useSWR: vi.fn(
25
+ (key: readonly unknown[] | null, fetcher: CapturedFetcher | null) => {
26
+ captured.key = key;
27
+ captured.fetcher = fetcher;
28
+ return { data: undefined, refresh: vi.fn() };
29
+ },
30
+ ),
31
+ }));
32
+
33
+ vi.mock("../../contexts/BeraFlags/BeraFlags", () => ({
34
+ useBeraFlag: () => false,
35
+ }));
36
+
37
+ vi.mock("../../actions/dex/aggregators/enso/ensoErc4626", () => ({
38
+ ensoErc4626: { getQuote },
39
+ }));
40
+
41
+ const tokenIn = {
42
+ address: "0x6969696969696969696969696969696969696969",
43
+ decimals: 18,
44
+ symbol: "WBERA",
45
+ name: "Wrapped BERA",
46
+ chainId: 80094,
47
+ balance: {
48
+ raw: "1000000000000000000",
49
+ formatted: "1",
50
+ },
51
+ } as const satisfies BalanceToken;
52
+
53
+ const loanToken = {
54
+ address: "0xFCBD14d472B1C3Ff25139Aba7D7aCE0C12fFf4d8",
55
+ decimals: 18,
56
+ symbol: "HONEY",
57
+ name: "Honey",
58
+ chainId: 80094,
59
+ } as const satisfies MinimalERC20;
60
+
61
+ const bendVault = {
62
+ address: "0x2222222222222222222222222222222222222222",
63
+ decimals: 18,
64
+ symbol: "byvHONEY",
65
+ name: "Bend Honey Vault",
66
+ chainId: 80094,
67
+ } as const satisfies MinimalERC20;
68
+
69
+ describe("useBendZapSupplyHelper", () => {
70
+ beforeEach(() => {
71
+ captured.key = null;
72
+ captured.fetcher = null;
73
+ getQuote.mockReset();
74
+ });
75
+
76
+ it("reads the proxy transport from the SWR key", async () => {
77
+ useBendZapSupplyHelper({
78
+ tokenIn,
79
+ loanToken,
80
+ bendVault,
81
+ amount: "1000000000000000000",
82
+ slippage: 0.5,
83
+ });
84
+
85
+ expect(captured.key?.at(-1)).toBe(false);
86
+ expect(captured.fetcher).not.toBeNull();
87
+
88
+ const proxyKey = [...(captured.key ?? [])];
89
+ proxyKey[proxyKey.length - 1] = true;
90
+ await captured.fetcher?.(proxyKey);
91
+
92
+ expect(getQuote).toHaveBeenCalledWith(
93
+ expect.objectContaining({
94
+ proxyAggregatorsThroughVercel: true,
95
+ }),
96
+ );
97
+ });
98
+ });
@@ -32,7 +32,9 @@ export function useEnsoUserTokensWithBalances(
32
32
 
33
33
  return useSWR(
34
34
  QUERY_KEY,
35
- async ([, fromAddress, chainId]): Promise<BalanceToken[]> =>
35
+ async ([, fromAddress, chainId, proxyAggregatorsThroughVercel]): Promise<
36
+ BalanceToken[]
37
+ > =>
36
38
  getEnsoUserTokensWithBalances({
37
39
  account: fromAddress,
38
40
  wagmiConfig,
@@ -0,0 +1,69 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ import { useEnsoUserTokensWithBalances } from "./useEnsoUserTokensWithBalances";
4
+
5
+ type CapturedFetcher = (key: readonly unknown[]) => Promise<unknown>;
6
+
7
+ const { captured, getEnsoClient, getEnsoUserTokensWithBalances } = vi.hoisted(
8
+ () => ({
9
+ captured: {
10
+ key: null as readonly unknown[] | null,
11
+ fetcher: null as CapturedFetcher | null,
12
+ },
13
+ getEnsoClient: vi.fn(() => ({ getBalances: vi.fn() })),
14
+ getEnsoUserTokensWithBalances: vi.fn().mockResolvedValue([]),
15
+ }),
16
+ );
17
+
18
+ vi.mock("@berachain/wagmi/hooks", () => ({
19
+ useBeraWallet: () => ({
20
+ address: "0x1111111111111111111111111111111111111111",
21
+ }),
22
+ useConfig: () => ({ chains: [] }),
23
+ }));
24
+
25
+ vi.mock("@berachain/utils/pkg/swr", () => ({
26
+ useSWR: vi.fn(
27
+ (key: readonly unknown[] | null, fetcher: CapturedFetcher | null) => {
28
+ captured.key = key;
29
+ captured.fetcher = fetcher;
30
+ return { data: undefined, refresh: vi.fn() };
31
+ },
32
+ ),
33
+ }));
34
+
35
+ vi.mock("../../contexts/BeraFlags/BeraFlags", () => ({
36
+ useBeraFlag: () => false,
37
+ }));
38
+
39
+ vi.mock("../../actions/clients/getEnsoClient", () => ({
40
+ getEnsoClient,
41
+ }));
42
+
43
+ vi.mock("../../actions/enso/getEnsoUserTokensWithBalances", () => ({
44
+ getEnsoUserTokensWithBalances,
45
+ }));
46
+
47
+ describe("useEnsoUserTokensWithBalances", () => {
48
+ beforeEach(() => {
49
+ captured.key = null;
50
+ captured.fetcher = null;
51
+ getEnsoClient.mockClear();
52
+ getEnsoUserTokensWithBalances.mockClear();
53
+ });
54
+
55
+ it("reads the proxy transport from the SWR key", async () => {
56
+ useEnsoUserTokensWithBalances({ chainId: 80094 });
57
+
58
+ expect(captured.key?.at(-1)).toBe(false);
59
+ expect(captured.fetcher).not.toBeNull();
60
+
61
+ const proxyKey = [...(captured.key ?? [])];
62
+ proxyKey[proxyKey.length - 1] = true;
63
+ await captured.fetcher?.(proxyKey);
64
+
65
+ expect(getEnsoClient).toHaveBeenCalledWith({
66
+ baseURL: "/api/enso",
67
+ });
68
+ });
69
+ });
@@ -8,6 +8,7 @@ import { useBeraWallet } from "@berachain/wagmi/hooks";
8
8
  import { useSWR } from "@berachain/utils/pkg/swr";
9
9
 
10
10
  import { ensoErc4626 } from "../../actions/dex/aggregators/enso/ensoErc4626";
11
+ import { useBeraFlag } from "../../contexts/BeraFlags/BeraFlags";
11
12
  import { POLLING } from "../../enum/polling";
12
13
  import type { MinimalERC20 } from "../../types/dex";
13
14
  import type { DefaultHookOptions } from "../../types/global";
@@ -37,6 +38,9 @@ export function useZapStakeBera(
37
38
  options?: DefaultHookOptions,
38
39
  ) {
39
40
  const { address: account } = useBeraWallet();
41
+ const proxyAggregatorsThroughVercel = useBeraFlag(
42
+ "proxyAggregatorsThroughVercel",
43
+ );
40
44
  // enso route simulation needs a real EOA-like address; zeroAddress can fail simulation.
41
45
  // use the connected wallet when available, otherwise fallback to our configured aggregator executor.
42
46
  const quoteAccount =
@@ -59,6 +63,7 @@ export function useZapStakeBera(
59
63
  slippage,
60
64
  underlyingToken,
61
65
  tokenOut,
66
+ proxyAggregatorsThroughVercel ?? false,
62
67
  ] as const)
63
68
  : null;
64
69
 
@@ -72,6 +77,7 @@ export function useZapStakeBera(
72
77
  slippage,
73
78
  underlyingToken,
74
79
  tokenOut,
80
+ proxyAggregatorsThroughVercel,
75
81
  ]) => {
76
82
  const rawAmount = parseUnits(amount, inputToken.decimals).toString();
77
83
 
@@ -82,6 +88,7 @@ export function useZapStakeBera(
82
88
  underlyingToken: underlyingToken,
83
89
  tokenOut: tokenOut,
84
90
  slippage,
91
+ proxyAggregatorsThroughVercel,
85
92
  });
86
93
  },
87
94
  {
@@ -0,0 +1,97 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ import type { MinimalERC20 } from "../../types/dex";
4
+ import { useZapStakeBera } from "./useZapStakeBera";
5
+
6
+ type CapturedFetcher = (key: readonly unknown[]) => Promise<unknown>;
7
+
8
+ const { captured, getQuote } = vi.hoisted(() => ({
9
+ captured: {
10
+ key: null as readonly unknown[] | null,
11
+ fetcher: null as CapturedFetcher | null,
12
+ },
13
+ getQuote: vi.fn(),
14
+ }));
15
+
16
+ vi.mock("@berachain/wagmi/hooks", () => ({
17
+ useBeraWallet: () => ({
18
+ address: "0x1111111111111111111111111111111111111111",
19
+ }),
20
+ }));
21
+
22
+ vi.mock("@berachain/utils/pkg/swr", () => ({
23
+ useSWR: vi.fn(
24
+ (key: readonly unknown[] | null, fetcher: CapturedFetcher | null) => {
25
+ captured.key = key;
26
+ captured.fetcher = fetcher;
27
+ return { data: undefined, refresh: vi.fn() };
28
+ },
29
+ ),
30
+ }));
31
+
32
+ vi.mock("../../contexts/BeraFlags/BeraFlags", () => ({
33
+ useBeraFlag: () => false,
34
+ }));
35
+
36
+ vi.mock("../../actions/dex/aggregators/enso/ensoErc4626", () => ({
37
+ ensoErc4626: { getQuote },
38
+ }));
39
+
40
+ vi.mock("../dex/usePriceImpact", () => ({
41
+ usePriceImpact: () => ({ data: null }),
42
+ }));
43
+
44
+ const inputToken = {
45
+ address: "0xFCBD14d472B1C3Ff25139Aba7D7aCE0C12fFf4d8",
46
+ decimals: 18,
47
+ symbol: "HONEY",
48
+ name: "Honey",
49
+ chainId: 80094,
50
+ } as const satisfies MinimalERC20;
51
+
52
+ const underlyingToken = {
53
+ address: "0x6969696969696969696969696969696969696969",
54
+ decimals: 18,
55
+ symbol: "WBERA",
56
+ name: "Wrapped BERA",
57
+ chainId: 80094,
58
+ } as const satisfies MinimalERC20;
59
+
60
+ const tokenOut = {
61
+ address: "0x118D2cEeE9785eaf70C15Cd74CD84c9f8c3EeC9a",
62
+ decimals: 18,
63
+ symbol: "sWBERA",
64
+ name: "Staked WBERA",
65
+ chainId: 80094,
66
+ } as const satisfies MinimalERC20;
67
+
68
+ describe("useZapStakeBera", () => {
69
+ beforeEach(() => {
70
+ captured.key = null;
71
+ captured.fetcher = null;
72
+ getQuote.mockReset();
73
+ });
74
+
75
+ it("reads the proxy transport from the SWR key", async () => {
76
+ useZapStakeBera({
77
+ inputToken,
78
+ amount: "1",
79
+ underlyingToken,
80
+ slippage: 0.5,
81
+ tokenOut,
82
+ });
83
+
84
+ expect(captured.key?.at(-1)).toBe(false);
85
+ expect(captured.fetcher).not.toBeNull();
86
+
87
+ const proxyKey = [...(captured.key ?? [])];
88
+ proxyKey[proxyKey.length - 1] = true;
89
+ await captured.fetcher?.(proxyKey);
90
+
91
+ expect(getQuote).toHaveBeenCalledWith(
92
+ expect.objectContaining({
93
+ proxyAggregatorsThroughVercel: true,
94
+ }),
95
+ );
96
+ });
97
+ });
@@ -214,6 +214,8 @@ export function useStakedData(stakingConfigs: StakingConfig[]) {
214
214
  }, [positionsRaw, walletBalances, stakingConfigs, apy, getTokenPrice]);
215
215
 
216
216
  return {
217
+ /** Overall staked-BERA APY. Wallet-independent. */
218
+ apy,
217
219
  /** Fast path: staked amounts + USD values (no earnings) */
218
220
  balances,
219
221
  /** Slow path: full enriched positions with earnings */
@@ -1,9 +1,9 @@
1
1
  import type { Address } from "viem";
2
2
 
3
- import type { StakeStatsByDayResponse } from "@berachain/graphql/beep";
4
3
  import { useSWR } from "@berachain/utils/pkg/swr";
5
4
 
6
5
  import { getStakingDailyAssets } from "../../actions/pol/getStakingDailyAssets";
6
+ import type { StakeStatsByDayResponse } from "../../generated/beep";
7
7
  import type { DefaultHookReturnType } from "../../types/global";
8
8
  import { dailyResolution } from "../../utils/filter";
9
9
 
@@ -1,10 +1,10 @@
1
1
  import type { Address } from "viem";
2
2
 
3
- import type { ValidatorIncentivesResponse } from "@berachain/graphql/beep";
4
3
  import { useSWR } from "@berachain/utils/pkg/swr";
5
4
 
6
5
  import { getValidatorIncentiveDistribution } from "../../actions/validators/getValidatorIncentiveDistribution";
7
6
  import { POLLING } from "../../enum/polling";
7
+ import type { ValidatorIncentivesResponse } from "../../generated/beep";
8
8
  import type { DefaultHookReturnType } from "../../types/global";
9
9
 
10
10
  /**
@@ -0,0 +1,4 @@
1
+ // Type-only OpenAPI beep types, re-exported for hub/honey via
2
+ // `@berachain/berajs/types/beep`. The source is generated at prebuild
3
+ // (`codegen:api`, skipped on Vercel) into src/generated/beep.ts.
4
+ export type * from "../../generated/beep";
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/contexts/BeraFlags/BeraFlags.tsx","../../edge-config/dist/chunk-3VEEJCCG.mjs","../../edge-config/dist/index.mjs","../src/contexts/BexStatusProvider.tsx","../src/contexts/BlockTimeProvider.tsx","../src/contexts/HoneyConfigProvider.tsx","../src/hooks/enso/useEnsoUserTokensWithBalances.ts","../src/actions/enso/getEnsoUserTokensWithBalances.ts","../src/contexts/TokensProvider.tsx","../src/utils/formatTokenList.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nimport { type EdgeConfigSchema, isFlagEnabled } from \"@berachain/edge-config\";\n\nimport { type BeraFlags, defaultFlags } from \"./defaultFlags\";\n\nexport type { BeraFlags };\n\nexport type BeraFlagsContextReturn = BeraFlags & {\n /**\n * A list of aggregators that are enabled. If not provided, all aggregators are enabled.\n */\n aggregators: string[] | undefined;\n swberaAprWindow: Exclude<\n EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"],\n undefined\n >;\n};\n\nconst BeraFlagContext = createContext<BeraFlagsContextReturn | undefined>(\n undefined,\n);\n\nexport function BeraFlagsProvider({\n children,\n flags,\n aggregators,\n swberaAprWindow = \"DAY\",\n}: {\n children: React.ReactNode;\n flags: BeraFlags;\n aggregators?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"aggregators\"];\n swberaAprWindow?: EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"];\n}) {\n return (\n <BeraFlagContext.Provider\n value={{\n ...defaultFlags,\n ...flags,\n aggregators: aggregators\n ? Object.entries(aggregators)\n .filter(([, value]) => isFlagEnabled(value))\n .map(([key]) => key)\n : undefined,\n swberaAprWindow,\n }}\n >\n {children}\n </BeraFlagContext.Provider>\n );\n}\n\nexport function useBeraFlags() {\n const context = useContext(BeraFlagContext);\n if (!context) {\n throw new Error(\"BeraFlagsProvider not found\");\n }\n return context;\n}\n\nexport function useBeraFlag<T extends keyof BeraFlagsContextReturn>(\n key: T,\n): BeraFlagsContextReturn[T] {\n const flags = useBeraFlags();\n return flags[key];\n}\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/env.ts\nvar ChainId = /* @__PURE__ */ ((ChainId2) => {\n ChainId2[ChainId2[\"MAINNET\"] = 80094] = \"MAINNET\";\n ChainId2[ChainId2[\"BEPOLIA\"] = 80069] = \"BEPOLIA\";\n return ChainId2;\n})(ChainId || {});\nvar defaultChainId = process.env.NEXT_PUBLIC_CHAIN_ID ? Number(process.env.NEXT_PUBLIC_CHAIN_ID) : 80094 /* MAINNET */;\nif (!Object.values(ChainId).includes(defaultChainId)) {\n throw new Error(\n `process.env.NEXT_PUBLIC_CHAIN_ID is invalid: ${defaultChainId}.\n This value must be one of the following: ${Object.values(ChainId).filter(Number).join(\", \")} when using @berachain/edge-config.`\n );\n}\nvar isProduction = process.env.VERCEL_TARGET_ENV === \"production\";\nvar currentDapp = process.env.NEXT_PUBLIC_BERA_APP_NAME;\n\n// src/isFlagEnabled.ts\nfunction _checkChain(flag, chain, defaultReturn) {\n if (flag.chain?.length) {\n return flag.chain.includes(\n chain === 80094 /* MAINNET */ ? \"mainnet\" : \"bepolia\"\n );\n }\n return defaultReturn;\n}\nfunction _checkBranch(flag, _environment, defaultReturn) {\n if (!_environment) {\n return defaultReturn;\n }\n const environment = _environment === \"development\" ? \"preview\" : _environment;\n if (flag.branch?.length) {\n return flag.branch.includes(\n environment\n );\n }\n return defaultReturn;\n}\nfunction _checkAppName(flag, app, defaultReturn) {\n if (flag.app?.length && app) {\n return flag.app.includes(app);\n }\n return defaultReturn;\n}\nfunction _checkTime(flag, key, defaultReturn) {\n const time = flag[key];\n if (!time) {\n return defaultReturn;\n }\n if (key === \"startAt\") {\n return time ? new Date(time) <= /* @__PURE__ */ new Date() : defaultReturn;\n } else {\n return time ? new Date(time) >= /* @__PURE__ */ new Date() : defaultReturn;\n }\n}\nfunction isFlagEnabled(flag, {\n chain = defaultChainId,\n environment = process.env.VERCEL_TARGET_ENV,\n app = currentDapp\n} = {}) {\n if (!flag) return false;\n if (typeof flag === \"boolean\") {\n return flag;\n }\n if (flag.condition === \"OR\") {\n return _checkChain(flag, chain, false) || _checkBranch(flag, environment, false) || _checkAppName(flag, app, false) || // this condition is weird but it's consistent with the logic in the AND condition\n // this means that if startAt is false, but endAt is true, the flag is enabled anyway\n // we should prob consider a cleaner way to handle the OR condition in the future\n _checkTime(flag, \"startAt\", false) || _checkTime(flag, \"endAt\", false);\n }\n return _checkChain(flag, chain, true) && _checkBranch(flag, environment, true) && _checkAppName(flag, app, true) && _checkTime(flag, \"startAt\", true) && _checkTime(flag, \"endAt\", true);\n}\n\nexport {\n __export,\n isProduction,\n isFlagEnabled\n};\n","import {\n isFlagEnabled\n} from \"./chunk-3VEEJCCG.mjs\";\n\n// src/safeGetAll.ts\nimport { getAll } from \"@vercel/edge-config\";\nasync function safeGetAll({\n onError\n} = {}) {\n try {\n return await getAll();\n } catch (e) {\n onError?.(e);\n return void 0;\n }\n}\n\n// src/safeGetConfig.ts\nimport { get } from \"@vercel/edge-config\";\nasync function safeGetConfig(flagName, {\n onError\n} = {}) {\n try {\n return await get(flagName);\n } catch (e) {\n onError?.(e);\n return void 0;\n }\n}\nexport {\n isFlagEnabled,\n safeGetAll,\n safeGetConfig\n};\n","import {\n createContext,\n type Dispatch,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useState,\n} from \"react\";\nimport type { Hex } from \"viem\";\n\nimport type { EdgeConfigSchema } from \"@berachain/edge-config\";\n\nimport { BeraError } from \"../errors/BeraError\";\n\ntype FactoryStatus = {\n /**\n * If the composable stable factory is enabled\n */\n composableStable: \"paused\" | \"enabled\";\n /**\n * If the weighted factory is enabled\n */\n weighted: \"paused\" | \"enabled\";\n};\nexport interface BexStatusProviderProps {\n isVaultPaused: boolean;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n };\n factories: FactoryStatus;\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}\n\nexport const BexStateContext = createContext<{\n protocol: {\n isPaused: boolean;\n factories: FactoryStatus & { allPaused: boolean };\n };\n onPoolChange: Dispatch<SetStateAction<BexStatusProviderProps[\"pool\"]>>;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n disablePoolWithdrawals: boolean;\n disablePoolDeposits: boolean;\n };\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}>({\n protocol: {\n isPaused: false,\n factories: {\n composableStable: \"enabled\",\n weighted: \"enabled\",\n allPaused: false,\n },\n },\n onPoolChange: () => {},\n pool: undefined,\n});\n\n/**\n * @description Determines the status of a pool or vault and returns the appropriate messages and flags to disable functionality.\n * More information here https://www.notion.so/berachain/BEX-RecoveryMode-and-Pause-explained-17c6120abced80e0985dd589b57ff018\n *\n * @returns status flags to enable/disable/notify users across the BEX\n *\n **/\nexport function useBexStatus() {\n const context = useContext(BexStateContext);\n\n if (!context) {\n throw new BeraError({\n level: \"fatal\",\n message: \"BexStateContext is not defined\",\n });\n }\n\n return context;\n}\n\nexport function BexStatusProvider({\n children,\n isVaultPaused,\n labels,\n factories,\n}: PropsWithChildren<BexStatusProviderProps>) {\n const [poolState, setPoolState] = useState<BexStatusProviderProps[\"pool\"]>();\n // Determine whether to disable withdrawals for a pool (vault pause does not impact this)\n const disablePoolWithdrawals =\n (poolState?.isPaused && !poolState?.isInRecoveryMode) ?? false;\n\n // Determine whether to disable deposits for a pool (vault pause does not impact this)\n const disablePoolDeposits = isVaultPaused || poolState?.isPaused;\n\n // TODO: we dont yet support anything to disable staking/unstaking within reward vaults if they get paused\n\n return (\n <BexStateContext.Provider\n value={{\n protocol: {\n isPaused: isVaultPaused,\n factories: {\n ...factories,\n allPaused:\n factories.composableStable === \"paused\" &&\n factories.weighted === \"paused\",\n },\n },\n labels,\n onPoolChange: setPoolState,\n pool: poolState\n ? {\n ...poolState,\n disablePoolWithdrawals: !!disablePoolWithdrawals,\n disablePoolDeposits: !!disablePoolDeposits,\n }\n : undefined,\n }}\n >\n {children}\n </BexStateContext.Provider>\n );\n}\n","import { createContext, type PropsWithChildren, useContext } from \"react\";\n\nimport { mainnet } from \"@berachain/config/mainnet\";\n\nimport { parseBaseArgs } from \"../utils/parseBaseArgs\";\n\n/**\n * Average berachain block time in seconds\n */\nexport function useBlockTime(): number {\n return useContext(BlockTimeContext);\n}\n\nexport const BlockTimeContext = createContext<number>(\n // this is the default block time for berachain, but actually overridden by the block time provider\n mainnet.averageBlockTime,\n);\n\nexport function BlockTimeProvider({\n children,\n blockTime,\n ...args\n}: PropsWithChildren<{\n blockTime?: number;\n}> &\n BeraJS.BaseFunctionArgs) {\n const { config } = parseBaseArgs(args);\n\n return (\n <BlockTimeContext.Provider value={blockTime ?? config.averageBlockTime}>\n {children}\n </BlockTimeContext.Provider>\n );\n}\n","import { createContext, useContext } from \"react\";\n\nimport type { HoneyFeeMap } from \"../actions/honey/getHoneyFees\";\nimport type { TokenWithMetadata } from \"../types/dex\";\nimport type { PythPriceFeedMap } from \"../types/honeySwap\";\n\nexport const HoneyConfigContext = createContext<\n HoneyConfigContextReturn | undefined\n>(undefined);\n\nexport type TokenWithOrder = TokenWithMetadata & {\n order: number;\n};\nexport interface HoneyConfigContextReturn {\n /**\n * Map of the Pyth price feed ids for each collateral\n */\n priceFeedMap: PythPriceFeedMap;\n /**\n * This is the list of all the collaterals that are supported by the Honey protocol\n */\n collateralList: TokenWithOrder[];\n /**\n * This is the main collateral that is used to calculate the relative cap limit\n */\n referenceCollateral: TokenWithOrder;\n /**\n * An object that maps the redeem/mint rate for each collateral and the weighted rates for the basket mode\n */\n feeMap: HoneyFeeMap;\n flags: {\n /**\n * If true, mint/redeem will also update pyth prices\n */\n isPythWrapperEnabled: boolean;\n };\n /**\n * Honey protocol configs\n */\n protocol: {\n /**\n * Honey protocol paused state\n */\n isPaused: boolean;\n /**\n * The label for the Honey protocol paused message\n */\n pausedBannerLabel?: string;\n };\n}\n\nexport interface HoneyConfigProviderProps extends HoneyConfigContextReturn {\n children: React.ReactNode;\n}\n\nexport function HoneyConfigProvider({\n children,\n ...props\n}: HoneyConfigProviderProps) {\n return (\n <HoneyConfigContext.Provider value={props}>\n {children}\n </HoneyConfigContext.Provider>\n );\n}\n\nexport function useHoneyConfig() {\n const context = useContext(HoneyConfigContext);\n if (!context) {\n throw new Error(\"useHoneyConfig must be used within a HoneyConfigProvider\");\n }\n return context;\n}\n","import { ChainId, defaultChainId } from \"@berachain/config/internal\";\n\nimport { useBeraWallet, useConfig } from \"@berachain/wagmi/hooks\";\nimport { useSWR } from \"@berachain/utils/pkg/swr\";\n\nimport { getEnsoClient } from \"../../actions/clients/getEnsoClient\";\nimport { getEnsoUserTokensWithBalances } from \"../../actions/enso/getEnsoUserTokensWithBalances\";\nimport { useBeraFlag } from \"../../contexts/BeraFlags/BeraFlags\";\nimport { POLLING } from \"../../enum/polling\";\nimport type { BalanceToken } from \"../../types/dex\";\nimport type { DefaultHookOptions } from \"../../types/global\";\n\nexport function useEnsoUserTokensWithBalances(\n { chainId }: { chainId?: number } = {},\n options?: DefaultHookOptions,\n) {\n const { address: fromAddress } = useBeraWallet();\n const wagmiConfig = useConfig();\n const proxyAggregatorsThroughVercel = useBeraFlag(\n \"proxyAggregatorsThroughVercel\",\n );\n\n const QUERY_KEY =\n fromAddress && wagmiConfig\n ? ([\n \"useEnsoUserTokensWithBalances\",\n fromAddress,\n chainId,\n proxyAggregatorsThroughVercel ?? false,\n ] as const)\n : null;\n\n return useSWR(\n QUERY_KEY,\n async ([, fromAddress, chainId]): Promise<BalanceToken[]> =>\n getEnsoUserTokensWithBalances({\n account: fromAddress,\n wagmiConfig,\n chainId: chainId ?? \"all\",\n ensoClient: getEnsoClient({\n baseURL: proxyAggregatorsThroughVercel ? \"/api/enso\" : undefined,\n }),\n }),\n {\n refreshInterval: POLLING.NORMAL,\n ...options,\n // Enso only supports mainnet — on a Bepolia deployment `getBalances`\n // returns a non-array, which the action reports as a warning (HUB-A1J).\n // Don't query at all when the app isn't on an Enso-supported chain.\n isEnabled:\n chainId !== ChainId.BEPOLIA &&\n defaultChainId !== ChainId.BEPOLIA &&\n (options?.isEnabled ?? true),\n },\n );\n}\n","import type { EnsoClient } from \"@ensofinance/sdk\";\nimport { type Config, getChains, multicall } from \"@wagmi/core\";\nimport { type Address, formatUnits } from \"viem\";\n\nimport { BeraMonitoring } from \"../../errors/BeraMonitoring\";\nimport { InvalidArgumentError } from \"../../errors/InvalidArgumentError\";\nimport { initBeraError } from \"../../errors/initBeraError\";\nimport type { BalanceToken } from \"../../types/dex\";\nimport { beraToken, isToken } from \"../../utils/tokens\";\nimport { getBalanceCall } from \"../tokens/getWalletBalances\";\n\n/**\n * Get user balances for each supported chain.\n *\n * This uses enso's balance endpoint to get the balances and RPC to get fresh balances.\n */\nexport async function getEnsoUserTokensWithBalances({\n account,\n wagmiConfig,\n chainId,\n ensoClient,\n}: {\n account: Address;\n wagmiConfig: Config;\n chainId: number | \"all\";\n ensoClient: EnsoClient;\n}): Promise<BalanceToken[]> {\n const ensoBalances = await ensoClient.getBalances({\n useEoa: true,\n chainId: chainId ?? \"all\",\n eoaAddress: account,\n });\n\n // The Enso SDK can return a non-array (e.g. an error object) on a malformed\n // or empty response. Guard before mapping to avoid the unactionable minified\n // \"(...).map is not a function\" crash — but still report it as a typed,\n // stably-grouped warning so we don't silently swallow an Enso API problem\n // (an empty portfolio would otherwise look like \"user has no tokens\").\n if (!Array.isArray(ensoBalances)) {\n BeraMonitoring.captureException(\n new InvalidArgumentError({\n property: \"ensoBalances\",\n value: ensoBalances,\n expected: \"BalanceToken[]\",\n chainId: typeof chainId === \"number\" ? chainId : undefined,\n extra: { account, chainId },\n }),\n );\n return [];\n }\n\n const tokens: BalanceToken[] = ensoBalances.map(\n (balance) =>\n ({\n name: balance.name ?? \"\",\n symbol: balance.symbol ?? \"\",\n decimals: balance.decimals,\n address: isToken(balance.token, \"ETH\")\n ? beraToken.address\n : balance.token,\n logoURI: balance.logoUri ?? undefined,\n balance: {\n raw: balance.amount.toString(),\n formatted: formatUnits(BigInt(balance.amount), balance.decimals),\n },\n chainId: balance.chainId,\n price: Number(balance.price),\n }) as const satisfies BalanceToken,\n );\n\n const tokenByChainId = Object.groupBy(tokens, (a) => a.chainId ?? 0);\n\n const balances = await Promise.allSettled(\n Object.entries(tokenByChainId).map(async ([chainId, chainTokens]) => {\n if (!chainTokens) return undefined;\n const chainConfig = getChains(wagmiConfig).find(\n (chain) => chain.id === Number(chainId),\n );\n\n if (!chainConfig) {\n // if we've queried a chain that is not supported, we need to return undefined\n return undefined;\n }\n\n const multicall3 = chainConfig.contracts?.multicall3;\n\n const multicallAddress = multicall3?.address;\n\n if (!multicallAddress) {\n // if multicall is not supported on this chain, we need to use the enso balance\n // first let's report the error, as this is likely unexpected\n BeraMonitoring.captureException(\n new InvalidArgumentError({\n property: \"multicallAddress\",\n value: multicallAddress,\n expected: \"Address\",\n chainId: Number(chainId),\n }),\n );\n\n // we can return the tokens as is, as the balance is already set from the enso client\n return chainTokens;\n }\n\n const balances = await multicall(wagmiConfig, {\n chainId: Number(chainId),\n contracts: chainTokens.map((token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress,\n }),\n ),\n allowFailure: true,\n });\n\n const tokensWithBalances: BalanceToken[] = [];\n\n for (let index = 0; index < chainTokens.length; index++) {\n const token = chainTokens[index];\n if (balances[index].status === \"success\") {\n const balance = balances[index].result;\n\n tokensWithBalances.push({\n ...token,\n balance: {\n raw: balance?.toString() ?? \"0\",\n formatted: formatUnits(balance ?? 0n, token.decimals),\n },\n });\n } else {\n console.error(\"error getting balance\", balances[index].error);\n BeraMonitoring.captureException(\n initBeraError({ cause: balances[index].error }),\n );\n // uses enso balance as fallback\n tokensWithBalances.push(token);\n }\n }\n\n return tokensWithBalances;\n }),\n );\n\n const flattenedBalances: BalanceToken[] = [];\n for (const result of balances) {\n if (result.status === \"fulfilled\") {\n flattenedBalances.push(...(result.value ?? []));\n } else {\n BeraMonitoring.captureException(initBeraError({ cause: result.reason }));\n }\n }\n\n return flattenedBalances.sort((a, b) => {\n const aValue = Number(a.balance.formatted) * (a.price ?? 0);\n const bValue = Number(b.balance.formatted) * (b.price ?? 0);\n return bValue - aValue;\n });\n}\n","import { createContext, type PropsWithChildren, useMemo } from \"react\";\n\nimport { type EdgeConfigSchema, isFlagEnabled } from \"@berachain/edge-config\";\n\nimport { useEnsoUserTokensWithBalances } from \"../hooks/enso/useEnsoUserTokensWithBalances\";\nimport type { BalanceToken, Token, TokenWithMetadata } from \"../types/dex\";\nimport { formatTokenList } from \"../utils/formatTokenList\";\n\nexport interface TokensProviderContext {\n tokenList: TokenWithMetadata[];\n userTokens: Token[];\n featuredTokens: TokenWithMetadata[];\n onRemoveToken: (token: Token) => void;\n onAddToken: (token: Token) => void;\n refresh: () => void;\n ensoTokens: BalanceToken[] | undefined;\n}\n\nexport const TokenContext = createContext<TokensProviderContext | undefined>(\n undefined,\n);\n\nexport interface TokensProviderProps\n extends Omit<\n TokensProviderContext,\n \"tokenList\" | \"onAddToken\" | \"featuredTokens\" | \"ensoTokens\"\n > {\n onAddToken: (\n token: Token,\n context: {\n defaultTokens: TokenWithMetadata[];\n userTokens: Token[];\n tokenList: TokenWithMetadata[];\n },\n ) => void;\n defaultTokens: TokenWithMetadata[];\n edgeConfigTokenList: EdgeConfigSchema[\"tokens\"];\n}\n\nexport function TokensProvider({\n children,\n defaultTokens,\n edgeConfigTokenList,\n userTokens,\n onAddToken,\n onRemoveToken,\n}: PropsWithChildren<Omit<TokensProviderProps, \"refresh\">>) {\n const { data: ensoTokens, refresh } = useEnsoUserTokensWithBalances();\n\n const { tokenList = [], featuredTokenList = [] } = useMemo(\n () =>\n formatTokenList({\n defaultTokenList: [\n ...defaultTokens,\n ...(edgeConfigTokenList?.filter((token) =>\n isFlagEnabled(token.enabled),\n ) as TokenWithMetadata[]),\n ],\n externalList: [\n ...userTokens,\n ...(ensoTokens ?? []).map((t) => ({\n ...t,\n balance: undefined,\n price: undefined,\n })),\n ],\n }),\n [defaultTokens, userTokens, edgeConfigTokenList, ensoTokens],\n );\n\n return (\n <TokenContext.Provider\n value={{\n tokenList,\n userTokens,\n featuredTokens: featuredTokenList,\n ensoTokens,\n onAddToken(tk) {\n onAddToken(tk, { defaultTokens, userTokens, tokenList });\n },\n onRemoveToken,\n refresh: () => {\n refresh();\n },\n }}\n >\n {children}\n </TokenContext.Provider>\n );\n}\n","import type { Token, TokenWithMetadata } from \"../types/dex\";\nimport { isToken } from \"./tokens\";\n\nexport interface FormatTokenListReturnType {\n /**\n * Token list including custom tokens\n */\n tokenList: Token[];\n /**\n * Custom token list (added by the user)\n */\n customTokenList?: Token[];\n /**\n * Featured token list\n */\n featuredTokenList?: Token[];\n}\n\nfunction formatTokenList({\n defaultTokenList = [],\n externalList = [],\n}: {\n defaultTokenList: TokenWithMetadata[];\n externalList?: Token[];\n}): FormatTokenListReturnType {\n if (defaultTokenList.length === 0) {\n return {\n tokenList: externalList,\n customTokenList: externalList,\n featuredTokenList: [],\n };\n }\n\n const defaultList = defaultTokenList.map((token) => {\n return { ...token, default: true };\n });\n\n const featuredTokenList = defaultList.filter((token) => {\n return token.tags?.some((tag) => tag === \"featured\");\n });\n\n const mergedList = [...defaultList, ...externalList];\n\n const uniqueList = mergedList.filter(\n (item, index) => mergedList.findIndex((i) => isToken(i, item)) === index,\n );\n\n return {\n tokenList: uniqueList,\n customTokenList: externalList,\n featuredTokenList,\n };\n}\n\nexport { formatTokenList };\n"],"mappings":"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","names":["ChainId2","createContext","useContext","jsx","createContext","useContext","createContext","useContext","jsx","useContext","createContext","createContext","useContext","jsx","ChainId","defaultChainId","chainId","balances","fromAddress","chainId","ChainId","defaultChainId","createContext","jsx","createContext"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/actions/clients/clientName.ts","../src/actions/clients/fetchBeep.ts"],"sourcesContent":["import { currentDapp } from \"@berachain/config/internal\";\n\n/**\n * Identifies the caller of a backend request for client-tracking metrics:\n * `berachain.dapps` from a real dapp (hub/bend/honey), `berachain.berajs-test`\n * in the test env, else `berachain.berajs` when berajs is consumed as a library.\n *\n * Used for both Stellate's GraphQL `x-graphql-client-name` and beep's\n * `X-Client-Id` so the two stay in sync.\n */\nexport function getClientName(): string {\n if (currentDapp) return \"berachain.dapps\";\n if (process.env.VERCEL_ENV === \"test\" || process.env.NODE_ENV === \"test\")\n return \"berachain.berajs-test\";\n // tracks usage of the berajs package in other packages\n return \"berachain.berajs\";\n}\n","import type { paths } from \"@berachain/graphql/beep\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\nimport { getClientName } from \"./clientName\";\nimport {\n type DefinedParams,\n fetchOpenApi,\n type GetPath,\n type GetResponse,\n} from \"./fetchOpenApi\";\n\n/**\n * Typed GET against the next-gen \"beep\" backend.\n *\n * The `path`, its path/query params and the response are all type-checked\n * against the beep schema (`@berachain/graphql/beep`), so route shapes (e.g.\n * the `/v0/stake/*` namespace) can never drift out of sync with the backend.\n * The base URL is resolved from `config.beep`.\n */\nexport function fetchBeep<P extends GetPath<paths>>(\n path: P,\n params: DefinedParams<paths, P>,\n args: BeraJS.BaseFunctionArgs = {},\n): Promise<GetResponse<paths, P>> {\n const { config } = parseBaseArgs(args);\n\n return fetchOpenApi<paths, P>(config.beep, path, params, \"beep\", {\n \"X-Client-Id\": getClientName(),\n });\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,mBAAmB;AAUrB,SAAS,gBAAwB;AACtC,MAAI,YAAa,QAAO;AACxB,MAAI,QAAQ,IAAI,eAAe,UAAU,QAAQ,IAAI,aAAa;AAChE,WAAO;AAET,SAAO;AACT;;;ACGO,SAAS,UACd,MACA,QACA,OAAgC,CAAC,GACD;AAChC,QAAM,EAAE,OAAO,IAAI,cAAc,IAAI;AAErC,SAAO,aAAuB,OAAO,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAC/D,eAAe,cAAc;AAAA,EAC/B,CAAC;AACH;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/enum/contracts.ts","../src/enum/honey.ts","../src/enum/txnEnum.ts"],"sourcesContent":["/**\n * A list of contract names that are not mapped in the devrel's contract mapping or that are generated by factories (e.g. RewardVault).\n */\nexport enum ContractName {\n ENSO_ROUTER = \"enso.router\",\n POL_REWARD_VAULT = \"pol.rewardVault\",\n POL_REWARD_VAULT_HELPER = \"pol.rewardVaultHelper\",\n BEX_POOL = \"bex.pool\",\n ERC20 = \"others.erc20\",\n ERC4626 = \"others.erc4626\",\n POL_BGT = \"pol.bgt\",\n POL_STAKE_VAULT = \"pol.stakeVault\",\n INFRARED_IBGT_VAULT = \"infrared.ibgtVault\",\n INFRARED_IBGT_REDEEMER = \"infrared.ibgtRedeemer\",\n BEX_EXPLOITED_FUND_DISTRIBUTOR = \"bex.exploitedFundDistributor\",\n TW_MINIMAL_ACCOUNT = \"thirdweb.minimalAccount\",\n}\n","export enum HoneySwapAction {\n RESET_AMOUNTS = \"RESET_AMOUNTS\",\n ACTION_TYPE_CHANGE = \"ACTION_TYPE_CHANGE\",\n COLLATERALS_CHANGE = \"COLLATERALS_CHANGE\",\n FROM_AMOUNT_CHANGE = \"FROM_AMOUNT_CHANGE\",\n TO_AMOUNT_CHANGE = \"TO_AMOUNT_CHANGE\",\n PREVIEW_CHANGE = \"PREVIEW_CHANGE\",\n IS_BASKET_MODE_ENABLED_CHANGE = \"IS_BASKET_MODE_ENABLED_CHANGE\",\n IS_TYPING_CHANGE = \"IS_TYPING_CHANGE\",\n IS_SUBMITTING_CHANGE = \"IS_SUBMITTING_CHANGE\",\n IS_LOADING_CHANGE = \"IS_LOADING_CHANGE\",\n}\n","export enum TransactionActionType {\n /**\n * Used for testing purposes.\n */\n TEST = \"Test\",\n\n // used to send gas token on ERC20\n SEND = \"Send tokens\",\n\n APPROVAL = \"Approval\",\n SWAP = \"Swap\",\n WRAP = \"Wrap\",\n UNWRAP = \"Unwrap\",\n\n CREATE_POOL = \"Create Pool\",\n ADD_LIQUIDITY = \"Add Liquidity\",\n WITHDRAW_LIQUIDITY = \"Withdraw Liquidity\",\n\n DELEGATE = \"Delegate\",\n REDELEGATE = \"Redelegate\",\n\n QUEUE_BOOST = \"Queue Boost\",\n ACTIVATE_BOOST = \"Activate Boost\",\n QUEUE_UNBOOSTING_ALL = \"Queue Drop Boost All\",\n UNBOOST = \"Drop Boost\",\n QUEUE_UNBOOST = \"Queue Drop Boost\",\n CANCEL_UNBOOST = \"Cancel Drop Boost\",\n CANCEL_BOOST = \"Cancel Boost\",\n\n UNBONDING = \"Unbonding\",\n CANCEL_UNBONDING = \"Cancel Unbonding\",\n\n SUBMIT_PROPOSAL = \"Submit Proposal\",\n CANCEL_PROPOSAL = \"Cancel Proposal\",\n EXECUTE_PROPOSAL = \"Execute Proposal\",\n QUEUE_PROPOSAL = \"Queue Proposal\",\n VOTE = \"Vote\",\n\n MODIFY_REWARD_DURATION = \"Change Reward Duration\",\n MODIFY_REWARD_RATE = \"Change Reward Rate\",\n RESET_REWARD_MODE = \"Reset Reward Mode\",\n CREATE_BRIBE = \"Add Incentives\",\n CLAIMING_BRIBES = \"Claiming Incentives\", // claiming others\n CLAIMING_REWARDS = \"Claiming BGT\",\n CLAIM_ALL_REWARDS = \"Claim All Rewards\",\n\n RECOVER_FUNDS = \"Recover Bex Funds\",\n\n REDEEM_BGT = \"Redeem BGT\",\n\n MINT_HONEY = \"Mint Honey\",\n REDEEM_HONEY = \"Redeem Honey\",\n\n SUPPLY = \"Supply\",\n WITHDRAW = \"Withdraw\",\n BORROW = \"Borrow\",\n REPAY = \"Repay\",\n\n STAKE = \"Stake\",\n UNSTAKE = \"Unstake\",\n\n ENSO_ROUTE = \"Enso Route\",\n // PERPS\n\n MARKET_LONG = \"Market Long\",\n MARKET_SHORT = \"Market Short\",\n LIMIT_LONG = \"Limit Long\",\n LIMIT_SHORT = \"Limit Short\",\n CANCEL_ORDER = \"Cancel Order\",\n CANCEL_ALL_ORDERS = \"Cancel All Orders\",\n EDIT_PERPS_ORDER = \"Edit Perps Order\",\n DEPOSIT_HONEY = \"Deposit Honey\",\n START_WITHDRAW_REQUEST = \"Start Withdraw Request\",\n CANCEL_WITHDRAW_REQUEST = \"Cancel Withdraw Request\",\n WITHDRAW_HONEY = \"Withdraw Honey\",\n DELEGATE_OCT = \"Delegate\",\n REVOKE_OCT = \"Revoke\",\n REFER = \"Refer\",\n\n // POL\n CREATE_REWARDS_VAULT = \"Create Reward Vault\",\n APPLYING_REWARD_ALLOCATION = \"Apply Reward Allocation\",\n APPLYING_OPERATOR_CHANGE = \"Apply Operator Change\",\n CANCELING_OPERATOR_CHANGE = \"Cancel Operator Change\",\n REQUEST_OPERATOR_CHANGE = \"Request Operator Change\",\n APPLYING_REWARD_ALLOCATOR_CHANGE = \"Apply Reward Allocator Change\",\n APPLYING_COMMISSION_CHANGE = \"Apply Commission Change\",\n\n BONDING_BERA = \"Stake BERA\",\n ZAP_STAKE_BERA = \"Zap Stake BERA\",\n UNBONDING_BERA = \"Unstake BERA\",\n QUEUE_UNBONDING_BERA = \"Queue Unstake BERA\",\n\n // BEND\n BEND_MARKET_REPAY_AND_WITHDRAW_COLLATERAL = \"Bend Market Repay and Withdraw Collateral\",\n BEND_MARKET_SUPPLY_COLLATERAL_AND_BORROW = \"Bend Market Supply Collateral and Borrow\",\n BEND_MARKET_MULTIPLY = \"Bend Market Multiply\",\n BEND_MARKET_DEMULTIPLY = \"Bend Market Demultiply\",\n BEND_VAULT_SUPPLY = \"Bend Vault Supply\",\n BEND_VAULT_WITHDRAW = \"Bend Vault Withdraw\",\n\n // BEND CURATOR\n BEND_CURATOR_REALLOCATE = \"Bend Curator Reallocate\",\n BEND_CURATOR_UPDATE_MARKET_SUPPLY_CAP = \"Bend Curator Update Market Supply Cap\",\n BEND_CURATOR_REVOKE_PENDING_SUPPLY_CAP = \"Bend Curator Revoke Pending Supply Cap\",\n BEND_CURATOR_ACCEPT_PENDING_SUPPLY_CAP = \"Bend Curator Accept Pending Supply Cap\",\n BEND_CURATOR_UPDATE_SUPPLY_QUEUE = \"Bend Curator Update Supply Queue\",\n BEND_CURATOR_UPDATE_WITHDRAW_QUEUE = \"Bend Curator Update Withdraw Queue\",\n BEND_CURATOR_TRANSFER_OWNER = \"Bend Curator Transfer Owner\",\n BEND_CURATOR_CHANGE_GUARDIAN = \"Bend Curator Change Guardian\",\n BEND_CURATOR_SET_CURATOR = \"Bend Curator Set Curator\",\n BEND_CURATOR_SET_ALLOCATOR = \"Bend Curator Set Allocator\",\n}\n"],"mappings":"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","names":["ContractName","HoneySwapAction","TransactionActionType"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/actions/clients/fetchLayerzero.ts"],"sourcesContent":["import type { paths } from \"@berachain/graphql/layerzero\";\n\nimport {\n type DefinedParams,\n fetchOpenApi,\n type GetPath,\n type GetResponse,\n} from \"./fetchOpenApi\";\n\n/**\n * LayerZero Scan API origin. Schema paths are relative to this base (e.g.\n * `/messages/tx/{tx}`).\n */\nconst LAYERZERO_SCAN_ORIGIN = \"https://scan.layerzero-api.com/v1\";\n\n/**\n * Typed GET against the LayerZero Scan API.\n *\n * The `path`, its path/query params and the response are all type-checked\n * against the LayerZero schema (`@berachain/graphql/layerzero`). The Scan API is\n * public (no auth), so requests hit it directly — no proxy split like\n * {@link fetchEnso}.\n */\nexport function fetchLayerzero<P extends GetPath<paths>>(\n path: P,\n params: DefinedParams<paths, P>,\n): Promise<GetResponse<paths, P>> {\n return fetchOpenApi<paths, P>(\n LAYERZERO_SCAN_ORIGIN,\n path,\n params,\n \"layerzero\",\n );\n}\n"],"mappings":";;;;;AAaA,IAAM,wBAAwB;AAUvB,SAAS,eACd,MACA,QACgC;AAChC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}