@berachain/berajs 0.2.5 → 0.2.6-patch.2

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 (440) hide show
  1. package/dist/abi/exports.cjs +1 -1
  2. package/dist/abi/exports.cjs.map +1 -1
  3. package/dist/abi/exports.d.cts +17 -1
  4. package/dist/abi/exports.d.ts +17 -1
  5. package/dist/abi/exports.mjs +1 -1
  6. package/dist/abi/exports.mjs.map +1 -1
  7. package/dist/actions/exports.cjs +1 -1
  8. package/dist/actions/exports.cjs.map +1 -1
  9. package/dist/actions/exports.d.cts +9 -38
  10. package/dist/actions/exports.d.ts +9 -38
  11. package/dist/actions/exports.mjs +1 -1
  12. package/dist/actions/exports.mjs.map +1 -1
  13. package/dist/chunk-2YBHAMDV.cjs +2 -0
  14. package/dist/chunk-2YBHAMDV.cjs.map +1 -0
  15. package/dist/{chunk-7SMWQ6SN.mjs → chunk-3ZTAIOHH.mjs} +2 -2
  16. package/dist/chunk-3ZTAIOHH.mjs.map +1 -0
  17. package/dist/chunk-57RINXU6.cjs +2 -0
  18. package/dist/chunk-57RINXU6.cjs.map +1 -0
  19. package/dist/{chunk-AX2YQQFQ.mjs → chunk-74QD4JAH.mjs} +2 -2
  20. package/dist/chunk-74QD4JAH.mjs.map +1 -0
  21. package/dist/chunk-74WA35RI.cjs +2 -0
  22. package/dist/chunk-74WA35RI.cjs.map +1 -0
  23. package/dist/{chunk-7WRTK7RJ.mjs → chunk-BEKH5EYT.mjs} +2 -2
  24. package/dist/chunk-BEKH5EYT.mjs.map +1 -0
  25. package/dist/chunk-DDEQFR3M.cjs +2 -0
  26. package/dist/chunk-DDEQFR3M.cjs.map +1 -0
  27. package/dist/{chunk-6LDOG5RL.cjs → chunk-DK42F2ZM.cjs} +2 -2
  28. package/dist/chunk-DK42F2ZM.cjs.map +1 -0
  29. package/dist/chunk-I4V54RRZ.cjs +4 -0
  30. package/dist/chunk-I4V54RRZ.cjs.map +1 -0
  31. package/dist/chunk-I7M43BB4.cjs +2 -0
  32. package/dist/chunk-I7M43BB4.cjs.map +1 -0
  33. package/dist/chunk-IDFMLLDY.mjs +2 -0
  34. package/dist/chunk-IDFMLLDY.mjs.map +1 -0
  35. package/dist/chunk-KRVNPZLF.mjs +2 -0
  36. package/dist/chunk-KRVNPZLF.mjs.map +1 -0
  37. package/dist/{chunk-3YXSUBA5.mjs → chunk-MJZHJFZO.mjs} +2 -2
  38. package/dist/chunk-MK5NS5B5.mjs +2 -0
  39. package/dist/chunk-MK5NS5B5.mjs.map +1 -0
  40. package/dist/{chunk-C6ZGUO4H.cjs → chunk-NMH7LHPW.cjs} +2 -2
  41. package/dist/chunk-NMH7LHPW.cjs.map +1 -0
  42. package/dist/{chunk-PKXAW6MO.cjs → chunk-NVHV2LDK.cjs} +2 -2
  43. package/dist/chunk-NVHV2LDK.cjs.map +1 -0
  44. package/dist/{chunk-FCWDGE62.cjs → chunk-NVOJIQUM.cjs} +2 -2
  45. package/dist/chunk-NVOJIQUM.cjs.map +1 -0
  46. package/dist/chunk-OGBD5YOG.mjs +2 -0
  47. package/dist/chunk-OGBD5YOG.mjs.map +1 -0
  48. package/dist/chunk-OIYXOKTT.cjs.map +1 -1
  49. package/dist/chunk-OUD27MU7.cjs.map +1 -1
  50. package/dist/{chunk-ECRMUMTA.mjs → chunk-PLIH6KQM.mjs} +2 -2
  51. package/dist/chunk-PLIH6KQM.mjs.map +1 -0
  52. package/dist/chunk-QRAIGQF2.mjs +2 -0
  53. package/dist/chunk-QRAIGQF2.mjs.map +1 -0
  54. package/dist/{chunk-YZV5LKIP.cjs → chunk-QXNF3YT7.cjs} +2 -2
  55. package/dist/chunk-QXNF3YT7.cjs.map +1 -0
  56. package/dist/chunk-RWOICHRW.cjs +2 -0
  57. package/dist/chunk-RWOICHRW.cjs.map +1 -0
  58. package/dist/chunk-T5FSQ3YE.mjs +2 -0
  59. package/dist/chunk-T5FSQ3YE.mjs.map +1 -0
  60. package/dist/chunk-WIN4PK2Z.mjs +4 -0
  61. package/dist/chunk-WIN4PK2Z.mjs.map +1 -0
  62. package/dist/chunk-WRFDB3QJ.cjs.map +1 -1
  63. package/dist/chunk-XNJLSA6P.cjs.map +1 -1
  64. package/dist/contexts/exports.cjs +1 -1
  65. package/dist/contexts/exports.cjs.map +1 -1
  66. package/dist/contexts/exports.d.cts +1 -1
  67. package/dist/contexts/exports.d.ts +1 -1
  68. package/dist/contexts/exports.mjs +1 -1
  69. package/dist/contexts/exports.mjs.map +1 -1
  70. package/dist/{defaultFlags-d0kPbT0i.d.cts → defaultFlags-D6KfkTZx.d.cts} +1 -1
  71. package/dist/{defaultFlags-d0kPbT0i.d.ts → defaultFlags-D6KfkTZx.d.ts} +1 -1
  72. package/dist/enum/exports.cjs +1 -1
  73. package/dist/enum/exports.cjs.map +1 -1
  74. package/dist/enum/exports.d.cts +1 -1
  75. package/dist/enum/exports.d.ts +1 -1
  76. package/dist/enum/exports.mjs +1 -1
  77. package/dist/errors/exports.cjs +1 -1
  78. package/dist/errors/exports.cjs.map +1 -1
  79. package/dist/errors/exports.d.cts +8 -3
  80. package/dist/errors/exports.d.ts +8 -3
  81. package/dist/errors/exports.mjs +1 -1
  82. package/dist/{getValidatorQueuedOperatorAddress-DZgrPmZ2.d.cts → getValidatorQueuedOperatorAddress-BdDYHycN.d.cts} +15 -4
  83. package/dist/{getValidatorQueuedOperatorAddress-CqR6cyqC.d.ts → getValidatorQueuedOperatorAddress-CmiPJmsr.d.ts} +15 -4
  84. package/dist/{global.d-BeYWDreg.d.ts → global.d-3GQMgC9k.d.ts} +1 -1
  85. package/dist/{global.d-DghRxpHd.d.cts → global.d-CwT1Phzf.d.cts} +1 -1
  86. package/dist/hooks/exports.cjs +3 -3
  87. package/dist/hooks/exports.cjs.map +1 -1
  88. package/dist/hooks/exports.d.cts +54 -75
  89. package/dist/hooks/exports.d.ts +54 -75
  90. package/dist/hooks/exports.mjs +3 -3
  91. package/dist/hooks/exports.mjs.map +1 -1
  92. package/dist/{txnEnum-DxPRHSJt.d.cts → txnEnum-CCuQUFlh.d.cts} +7 -0
  93. package/dist/{txnEnum-DxPRHSJt.d.ts → txnEnum-CCuQUFlh.d.ts} +7 -0
  94. package/dist/types/exports.cjs.map +1 -1
  95. package/dist/types/exports.d.cts +37 -4
  96. package/dist/types/exports.d.ts +37 -4
  97. package/dist/utils/exports.cjs +1 -1
  98. package/dist/utils/exports.cjs.map +1 -1
  99. package/dist/utils/exports.d.cts +2 -2
  100. package/dist/utils/exports.d.ts +2 -2
  101. package/dist/utils/exports.mjs +1 -1
  102. package/dist/utils/exports.mjs.map +1 -1
  103. package/package.json +6 -7
  104. package/src/abi/enso/ensoWalletV2Factory.ts +9 -0
  105. package/src/abi/exports.ts +1 -0
  106. package/src/actions/clients/BeraApolloClient.ts +3 -3
  107. package/src/actions/clients/getApolloClient.ts +5 -5
  108. package/src/actions/clients/getEnsoClient.ts +1 -1
  109. package/src/actions/dex/__tests__/aggregators.unit.test.ts +3 -3
  110. package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +1 -1
  111. package/src/actions/dex/aggregators/base.ts +12 -8
  112. package/src/actions/dex/aggregators/bex.ts +8 -8
  113. package/src/actions/dex/aggregators/bgt.ts +4 -4
  114. package/src/actions/dex/aggregators/enso/enso.ts +28 -20
  115. package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +1 -1
  116. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +7 -4
  117. package/src/actions/dex/aggregators/erc4626.ts +10 -6
  118. package/src/actions/dex/aggregators/fly.ts +9 -5
  119. package/src/actions/dex/aggregators/haiku.integration.test.ts +3 -3
  120. package/src/actions/dex/aggregators/haiku.ts +9 -5
  121. package/src/actions/dex/aggregators/honey.ts +15 -15
  122. package/src/actions/dex/aggregators/kyberswap.ts +8 -4
  123. package/src/actions/dex/aggregators/oogabooga.ts +8 -4
  124. package/src/actions/dex/aggregators/openOcean.ts +12 -8
  125. package/src/actions/dex/aggregators/wbera.ts +8 -4
  126. package/src/actions/dex/b-sdk.ts +2 -2
  127. package/src/actions/dex/getAllPools.ts +2 -2
  128. package/src/actions/dex/getApiPool.ts +2 -2
  129. package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +2 -2
  130. package/src/actions/dex/getIsTokenExploited.ts +1 -1
  131. package/src/actions/dex/getOnChainPool.ts +3 -3
  132. package/src/actions/dex/getPoolEvents.ts +2 -2
  133. package/src/actions/dex/getPoolHistoricalData.ts +2 -2
  134. package/src/actions/dex/getVaultPausedState.ts +1 -1
  135. package/src/actions/enso/__tests__/getBendDemultiplyBundle.action.unit.test.ts +175 -0
  136. package/src/actions/enso/__tests__/getBendDemultiplyBundle.unit.test.ts +150 -0
  137. package/src/actions/enso/__tests__/getBendMultiplyBundle.action.unit.test.ts +138 -0
  138. package/src/actions/enso/__tests__/getBendMultiplyBundle.unit.test.ts +194 -0
  139. package/src/actions/enso/{getEnsoUserTokensWithBalances.debug.test.ts → __tests__/getEnsoUserTokensWithBalances.debug.test.ts} +3 -3
  140. package/src/actions/enso/__tests__/helpers.ts +42 -0
  141. package/src/actions/enso/__tests__/util.unit.test.ts +95 -0
  142. package/src/actions/enso/flashloan.ts +127 -0
  143. package/src/actions/enso/getBendDemultiplyBundle.ts +325 -0
  144. package/src/actions/enso/getBendMultiplyBundle.ts +348 -0
  145. package/src/actions/enso/getEnsoSwapBundle.ts +2 -2
  146. package/src/actions/enso/getEnsoUserTokensWithBalances.ts +5 -5
  147. package/src/actions/enso/util.ts +150 -5
  148. package/src/actions/exports.ts +0 -2
  149. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +2 -2
  150. package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +2 -2
  151. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +2 -2
  152. package/src/actions/governance/checkProposalField.ts +1 -1
  153. package/src/actions/governance/computeActualStatus.ts +1 -1
  154. package/src/actions/governance/getAllProposals.ts +1 -1
  155. package/src/actions/governance/getBodyErrors.ts +1 -1
  156. package/src/actions/governance/getProposalDetails.ts +1 -1
  157. package/src/actions/governance/getProposalFromTx.ts +1 -1
  158. package/src/actions/governance/getProposalParams.ts +3 -3
  159. package/src/actions/governance/getProposalVotes.ts +1 -1
  160. package/src/actions/governance/getQuorum.ts +2 -2
  161. package/src/actions/honey/getCollateralWeights.ts +2 -2
  162. package/src/actions/honey/getGlobalCapLimit.ts +4 -4
  163. package/src/actions/honey/getHoneyCollaterals.ts +5 -5
  164. package/src/actions/honey/getHoneyFees.ts +1 -1
  165. package/src/actions/honey/getHoneyPausedState.ts +1 -1
  166. package/src/actions/honey/getHoneyPreview.ts +3 -3
  167. package/src/actions/honey/getHoneyRootPriceOracle.ts +1 -1
  168. package/src/actions/honey/getHoneyVaultsBalance.ts +2 -2
  169. package/src/actions/honey/getRelativeCapLimit.ts +3 -3
  170. package/src/actions/honey/getSharesWithoutFees.ts +1 -1
  171. package/src/actions/honey/getSwapPayload.ts +6 -6
  172. package/src/actions/honey/isBadCollateralAsset.ts +2 -2
  173. package/src/actions/honey/isBasketModeEnabled.ts +2 -2
  174. package/src/actions/honey/tests/pyth.integration.test.ts +3 -3
  175. package/src/actions/misc/getBlockTimestamp.ts +2 -2
  176. package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +2 -2
  177. package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +1 -1
  178. package/src/actions/pol/getBGTGlobalInfo.ts +2 -2
  179. package/src/actions/pol/getBgtAprSimulation.ts +1 -1
  180. package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +1 -1
  181. package/src/actions/pol/getBgtTokenTotalBoosts.ts +2 -2
  182. package/src/actions/pol/getBgtTokenTotalSupply.ts +2 -2
  183. package/src/actions/pol/getBlockTime.debug.test.ts +13 -0
  184. package/src/actions/pol/getBlockTime.ts +14 -23
  185. package/src/actions/pol/getEarnedStakedBeraVault.ts +3 -3
  186. package/src/actions/pol/getGlobalData.ts +2 -2
  187. package/src/actions/pol/getIncentiveFeeClaimStats.ts +4 -4
  188. package/src/actions/pol/getLSTStakeConfig.ts +5 -5
  189. package/src/actions/pol/getMarkets.ts +2 -2
  190. package/src/actions/pol/getRewardProofsByValidator.ts +4 -4
  191. package/src/actions/pol/getRewardTokenToBeraRate.ts +1 -1
  192. package/src/actions/pol/getRewardVault.ts +3 -3
  193. package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +1 -1
  194. package/src/actions/pol/getRewardVaultBeaconImplementation.ts +3 -3
  195. package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +1 -1
  196. package/src/actions/pol/getRewardVaultDurationConstants.ts +1 -1
  197. package/src/actions/pol/getRewardVaultFromToken.ts +1 -1
  198. package/src/actions/pol/getRewardVaultIncentives.ts +2 -2
  199. package/src/actions/pol/getRewardVaultRewards.ts +1 -1
  200. package/src/actions/pol/getRewardVaults.ts +1 -1
  201. package/src/actions/pol/getSWBeraVaultMetadata.ts +20 -22
  202. package/src/actions/pol/getSWBeraWithdrawal.ts +4 -4
  203. package/src/actions/pol/getStakedBeraAPR.ts +2 -2
  204. package/src/actions/pol/getStakedBeraSnapshots.ts +2 -2
  205. package/src/actions/pol/getStakingDailyAssets.ts +3 -3
  206. package/src/actions/pol/getStakingTokenInformation.ts +2 -2
  207. package/src/actions/pol/getTotalStakedAmount.ts +1 -1
  208. package/src/actions/pol/getUserClaimableIncentives.ts +4 -4
  209. package/src/actions/pol/getUserVaultInfo.ts +1 -1
  210. package/src/actions/pol/getUserVaults.ts +4 -4
  211. package/src/actions/pol/getUserVaultsBalance.ts +1 -1
  212. package/src/actions/pol/getVaultHistory.ts +2 -2
  213. package/src/actions/pol/getVaultValidators.ts +1 -1
  214. package/src/actions/prices/__tests__/prices.integration.test.ts +2 -2
  215. package/src/actions/prices/getTokenCurrentPrices.ts +5 -5
  216. package/src/actions/pyth/getHoneyPythFeeds.ts +2 -2
  217. package/src/actions/pyth/getUpdateFee.ts +2 -2
  218. package/src/actions/tokens/getAllowances.ts +2 -2
  219. package/src/actions/tokens/getTokenInformation.ts +2 -2
  220. package/src/actions/tokens/getTokens.ts +3 -3
  221. package/src/actions/tokens/getUnderlyingToken.ts +4 -4
  222. package/src/actions/tokens/getWalletBalances.integration.test.ts +1 -1
  223. package/src/actions/tokens/getWalletBalances.ts +4 -4
  224. package/src/actions/transactions/beraWriteContract.integration.test.ts +6 -6
  225. package/src/actions/transactions/beraWriteContract.ts +12 -12
  226. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +1 -1
  227. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +1 -1
  228. package/src/actions/validators/getAllValidators.ts +2 -2
  229. package/src/actions/validators/getApiValidator.ts +2 -2
  230. package/src/actions/validators/getBaselineRewardAllocation.ts +1 -1
  231. package/src/actions/validators/getDailyValidatorBlockStats.ts +1 -1
  232. package/src/actions/validators/getDefaultRewardAllocation.ts +1 -1
  233. package/src/actions/validators/getUserActiveValidators.ts +31 -33
  234. package/src/actions/validators/getUserBoosts.ts +12 -8
  235. package/src/actions/validators/getUserBoostsOnValidator.ts +15 -3
  236. package/src/actions/validators/getUserStakingPositions.ts +1 -1
  237. package/src/actions/validators/getValidatorAnalytics.ts +2 -2
  238. package/src/actions/validators/getValidatorCommission.ts +1 -1
  239. package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +1 -1
  240. package/src/actions/validators/getValidatorOperatorAddress.ts +1 -1
  241. package/src/actions/validators/getValidatorQueuedCommission.ts +1 -1
  242. package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +1 -1
  243. package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +1 -1
  244. package/src/actions/validators/getValidatorRewardAllocation.ts +1 -1
  245. package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +1 -1
  246. package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +4 -4
  247. package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
  248. package/src/contexts/BexStatusProvider.tsx +1 -1
  249. package/src/contexts/HoneyConfigProvider.tsx +3 -3
  250. package/src/contexts/SwrFallback.tsx +2 -2
  251. package/src/contexts/TokensProvider.tsx +3 -3
  252. package/src/contexts/block-time-provider.tsx +1 -1
  253. package/src/data/contracts.ts +10 -0
  254. package/src/enum/txnEnum.ts +9 -0
  255. package/src/errors/BeraMonitoring.ts +2 -2
  256. package/src/errors/BeraTracing.ts +2 -2
  257. package/src/errors/RequestError.ts +1 -1
  258. package/src/errors/assert.ts +18 -0
  259. package/src/errors/getRevertReason.integration.test.ts +7 -7
  260. package/src/errors/getRevertReason.ts +1 -1
  261. package/src/errors/parseViemError.ts +1 -1
  262. package/src/hooks/bend/useGetConvertToAssets.ts +4 -4
  263. package/src/hooks/dex/useAggregatorsQuotes.ts +19 -19
  264. package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +2 -2
  265. package/src/hooks/dex/useAllUserPools.ts +3 -3
  266. package/src/hooks/dex/useApiPool.ts +3 -3
  267. package/src/hooks/dex/useBexStatus.ts +1 -1
  268. package/src/hooks/dex/useCreatePool.ts +9 -9
  269. package/src/hooks/dex/useExploitedTokens.ts +3 -3
  270. package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +1 -1
  271. package/src/hooks/dex/useLiquidityMismatch.ts +3 -3
  272. package/src/hooks/dex/useLpPosition.ts +7 -4
  273. package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +4 -4
  274. package/src/hooks/dex/useOnChainPoolData.ts +3 -3
  275. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +3 -3
  276. package/src/hooks/dex/usePool.ts +7 -40
  277. package/src/hooks/dex/usePoolEvents.ts +2 -2
  278. package/src/hooks/dex/usePoolHistoricalData.ts +6 -3
  279. package/src/hooks/dex/usePools.ts +3 -3
  280. package/src/hooks/dex/usePriceImpact.ts +2 -2
  281. package/src/hooks/dex/useSingleAggregatorQuote.ts +13 -13
  282. package/src/hooks/enso/useBendDemultiply.ts +158 -0
  283. package/src/hooks/enso/useBendMultiply.ts +163 -0
  284. package/src/hooks/enso/useBendZapSupply.ts +7 -7
  285. package/src/hooks/enso/useEnsoSwapBundle.ts +6 -6
  286. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +5 -5
  287. package/src/hooks/enso/useEnsoWalletV2Address.ts +38 -0
  288. package/src/hooks/enso/useIsBendAuthorized.ts +47 -0
  289. package/src/hooks/enso/useZapStakeBera.ts +4 -4
  290. package/src/hooks/exports.ts +4 -3
  291. package/src/hooks/governance/useCreateProposal.ts +3 -3
  292. package/src/hooks/governance/useGetPastVotes.ts +2 -2
  293. package/src/hooks/governance/useHasVoted.ts +2 -2
  294. package/src/hooks/governance/useIsCanceller.ts +4 -4
  295. package/src/hooks/governance/usePollAllProposals.ts +3 -3
  296. package/src/hooks/governance/usePollProposal.ts +7 -4
  297. package/src/hooks/governance/usePollProposalThreshold.ts +3 -3
  298. package/src/hooks/governance/usePollProposalVotes.ts +1 -1
  299. package/src/hooks/governance/usePollUserDelegates.ts +7 -4
  300. package/src/hooks/governance/useProposalFromTx.ts +1 -1
  301. package/src/hooks/governance/useProposalSnapshot.ts +2 -2
  302. package/src/hooks/governance/useProposalState.ts +2 -2
  303. package/src/hooks/governance/useProposalTimelockState.ts +2 -2
  304. package/src/hooks/governance/useQuorum.ts +1 -1
  305. package/src/hooks/honey/useCappedGlobally.ts +8 -5
  306. package/src/hooks/honey/useCappedRelatively.ts +7 -4
  307. package/src/hooks/honey/useCollateralWeights.ts +8 -5
  308. package/src/hooks/honey/useHoneyAlerts.ts +5 -5
  309. package/src/hooks/honey/useHoneyBalances.ts +7 -7
  310. package/src/hooks/honey/useHoneyChartData.ts +1 -1
  311. package/src/hooks/honey/useHoneySwapState.ts +4 -4
  312. package/src/hooks/honey/useHoneyVaultsBalance.ts +8 -5
  313. package/src/hooks/honey/useIsBadCollateralAsset.ts +9 -6
  314. package/src/hooks/honey/useIsBasketModeEnabled.ts +8 -5
  315. package/src/hooks/honey/usePythLatestPrices.ts +4 -4
  316. package/src/hooks/perps/usePythUpdateFee.ts +4 -4
  317. package/src/hooks/pol/useBgtAprSimulation.ts +1 -1
  318. package/src/hooks/pol/useBgtUnstakedBalance.ts +7 -4
  319. package/src/hooks/pol/useClaimableFees.ts +4 -4
  320. package/src/hooks/pol/useOnChainRewardVault.ts +7 -7
  321. package/src/hooks/pol/usePollGlobalData.ts +9 -3
  322. package/src/hooks/pol/usePollMarkets.ts +5 -2
  323. package/src/hooks/pol/useQueuedBeraUnlock.ts +4 -4
  324. package/src/hooks/pol/useRewardTokenToBeraRate.ts +4 -4
  325. package/src/hooks/pol/useRewardVault.ts +5 -2
  326. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +2 -2
  327. package/src/hooks/pol/useRewardVaultFromToken.ts +2 -2
  328. package/src/hooks/pol/useRewardVaultIncentives.ts +2 -2
  329. package/src/hooks/pol/useRewardVaultRewards.ts +3 -3
  330. package/src/hooks/pol/useRewardVaults.ts +2 -2
  331. package/src/hooks/pol/useStakedAPR.ts +3 -3
  332. package/src/hooks/pol/useStakedData.ts +10 -10
  333. package/src/hooks/pol/useStakedSnapshots.ts +3 -3
  334. package/src/hooks/pol/useStakingVaultsMetadata.ts +40 -0
  335. package/src/hooks/pol/useTotalStakedAmount.ts +2 -2
  336. package/src/hooks/pol/useUserVaultInfo.ts +8 -5
  337. package/src/hooks/pol/useUserVaults.ts +7 -4
  338. package/src/hooks/pol/useVaultAddress.ts +2 -2
  339. package/src/hooks/pol/useVaultHistory.ts +2 -2
  340. package/src/hooks/pol/useVaultValidators.ts +5 -2
  341. package/src/hooks/tokens/useBeraCurrentPrice.ts +1 -1
  342. package/src/hooks/tokens/useMultipleTokenInformation.ts +7 -4
  343. package/src/hooks/tokens/usePollAllowances.ts +7 -4
  344. package/src/hooks/tokens/usePollBalance.ts +8 -5
  345. package/src/hooks/tokens/usePollWalletBalances.ts +8 -5
  346. package/src/hooks/tokens/useStakingTokenInformation.ts +7 -4
  347. package/src/hooks/tokens/useTokenCurrentPrice.ts +1 -1
  348. package/src/hooks/tokens/useTokenCurrentPrices.ts +6 -6
  349. package/src/hooks/tokens/useTokenInformation.ts +8 -5
  350. package/src/hooks/tokens/useTokenPrice.ts +1 -1
  351. package/src/hooks/tokens/useTokenPrices.ts +4 -4
  352. package/src/hooks/tokens/useTokens.ts +3 -3
  353. package/src/hooks/tokens/useTotalSupply.ts +1 -1
  354. package/src/hooks/tokens/useUnderlyingAsset.ts +3 -3
  355. package/src/hooks/useBlockToTimestamp.ts +5 -5
  356. package/src/hooks/useContractWrite/types.ts +2 -2
  357. package/src/hooks/useContractWrite/useBeraContractWrite.ts +5 -6
  358. package/src/hooks/useGetVerifiedAbi.ts +1 -1
  359. package/src/hooks/validators/useAllValidators.ts +7 -4
  360. package/src/hooks/validators/useApiEnrichedAllocation.ts +2 -2
  361. package/src/hooks/validators/useApiValidator.ts +5 -2
  362. package/src/hooks/validators/useBaselineRewardAllocation.ts +2 -2
  363. package/src/hooks/validators/useDailyValidatorBlockStats.ts +3 -3
  364. package/src/hooks/validators/useDefaultRewardAllocation.ts +4 -4
  365. package/src/hooks/validators/useManagedValidatorRole.ts +8 -5
  366. package/src/hooks/validators/useOnChainValidator.ts +6 -3
  367. package/src/hooks/validators/useStakingPoolBatch.ts +7 -4
  368. package/src/hooks/validators/useUserActiveValidators.ts +6 -3
  369. package/src/hooks/validators/useUserBoostsOnValidator.ts +3 -3
  370. package/src/hooks/validators/useUserClaimableIncentives.ts +9 -9
  371. package/src/hooks/validators/useUserStakingPositions.ts +1 -1
  372. package/src/hooks/validators/useValidator.ts +1 -1
  373. package/src/hooks/validators/useValidatorAnalytics.ts +3 -3
  374. package/src/hooks/validators/useValidatorCommission.ts +5 -2
  375. package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +3 -3
  376. package/src/hooks/validators/useValidatorQueuedCommission.ts +6 -3
  377. package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +5 -2
  378. package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +6 -3
  379. package/src/hooks/validators/useValidatorRewardAllocation.ts +2 -2
  380. package/src/types/dex.d.ts +1 -1
  381. package/src/types/enso.d.ts +34 -0
  382. package/src/types/global.d.ts +3 -3
  383. package/src/types/governance.d.ts +1 -1
  384. package/src/types/honeySwap.d.ts +3 -3
  385. package/src/utils/beraFetch.ts +1 -1
  386. package/src/utils/createEmitter.ts +1 -1
  387. package/src/utils/formatIncentivesTokenMap.ts +1 -1
  388. package/src/utils/getContractName.ts +1 -1
  389. package/src/utils/getHoneySwapMessage.test.ts +1 -1
  390. package/src/utils/getHoneySwapMessage.ts +1 -1
  391. package/src/utils/parseBaseArgs.ts +1 -1
  392. package/src/utils/parseBaseArgs.unit.test.ts +1 -1
  393. package/src/utils/parseWhiskToken.ts +1 -1
  394. package/src/utils/poolNamings.ts +1 -1
  395. package/src/utils/tokens.ts +2 -2
  396. package/src/utils/tokens.unit.test.ts +1 -1
  397. package/.claude/skills/berajs/SKILL.md +0 -222
  398. package/.claude/skills/berajs/references/dex.md +0 -235
  399. package/.claude/skills/berajs/references/pol.md +0 -194
  400. package/.claude/skills/berajs/references/staking.md +0 -198
  401. package/.claude/skills/berajs/references/tokens.md +0 -170
  402. package/dist/chunk-22J3YJDN.cjs +0 -2
  403. package/dist/chunk-22J3YJDN.cjs.map +0 -1
  404. package/dist/chunk-2LL3P5PN.mjs +0 -2
  405. package/dist/chunk-2LL3P5PN.mjs.map +0 -1
  406. package/dist/chunk-55L7STYD.mjs +0 -2
  407. package/dist/chunk-55L7STYD.mjs.map +0 -1
  408. package/dist/chunk-6LDOG5RL.cjs.map +0 -1
  409. package/dist/chunk-7LNBSOVV.cjs +0 -2
  410. package/dist/chunk-7LNBSOVV.cjs.map +0 -1
  411. package/dist/chunk-7SMWQ6SN.mjs.map +0 -1
  412. package/dist/chunk-7WRTK7RJ.mjs.map +0 -1
  413. package/dist/chunk-AX2YQQFQ.mjs.map +0 -1
  414. package/dist/chunk-BKDBIBVO.mjs +0 -4
  415. package/dist/chunk-BKDBIBVO.mjs.map +0 -1
  416. package/dist/chunk-C3FHGFLK.mjs +0 -2
  417. package/dist/chunk-C3FHGFLK.mjs.map +0 -1
  418. package/dist/chunk-C6ZGUO4H.cjs.map +0 -1
  419. package/dist/chunk-ECRMUMTA.mjs.map +0 -1
  420. package/dist/chunk-FCWDGE62.cjs.map +0 -1
  421. package/dist/chunk-P2Q7CMUD.cjs +0 -2
  422. package/dist/chunk-P2Q7CMUD.cjs.map +0 -1
  423. package/dist/chunk-PKXAW6MO.cjs.map +0 -1
  424. package/dist/chunk-SWMJQOH6.cjs +0 -2
  425. package/dist/chunk-SWMJQOH6.cjs.map +0 -1
  426. package/dist/chunk-THATXCJK.mjs +0 -2
  427. package/dist/chunk-THATXCJK.mjs.map +0 -1
  428. package/dist/chunk-UXGB54NE.cjs +0 -4
  429. package/dist/chunk-UXGB54NE.cjs.map +0 -1
  430. package/dist/chunk-VXL2ZZ4X.cjs +0 -2
  431. package/dist/chunk-VXL2ZZ4X.cjs.map +0 -1
  432. package/dist/chunk-YXLFOEZN.mjs +0 -2
  433. package/dist/chunk-YXLFOEZN.mjs.map +0 -1
  434. package/dist/chunk-YZV5LKIP.cjs.map +0 -1
  435. package/src/actions/dex/getSubgraphPool.ts +0 -30
  436. package/src/actions/validators/getManagedValidatorByAccount.ts +0 -32
  437. package/src/hooks/pol/useSWBeraVaultMetadata.ts +0 -35
  438. package/src/hooks/validators/useManagedValidatorByAccount.ts +0 -40
  439. package/src/hooks/validators/useSubgraphUserValidators.ts +0 -36
  440. /package/dist/{chunk-3YXSUBA5.mjs.map → chunk-MJZHJFZO.mjs.map} +0 -0
@@ -2,9 +2,9 @@ import useSWR from "swr";
2
2
 
3
3
  import type { GetPoolsQueryVariables } from "@berachain/graphql/dex/api";
4
4
 
5
- import { getAllPools } from "~/actions/dex/getAllPools";
6
- import { POLLING } from "~/enum/polling";
7
- import type { DefaultHookOptions } from "~/types/global";
5
+ import { getAllPools } from "../../actions/dex/getAllPools";
6
+ import { POLLING } from "../../enum/polling";
7
+ import type { DefaultHookOptions } from "../../types/global";
8
8
 
9
9
  export const useAllUserPoolsQueryKey = ({
10
10
  query,
@@ -3,9 +3,9 @@ import { type Address, type Hex, isAddress } from "viem";
3
3
 
4
4
  import type { MinimalPoolFragment } from "@berachain/graphql/dex/api";
5
5
 
6
- import { getApiPool } from "~/actions/dex/getApiPool";
7
- import { POLLING } from "~/enum/polling";
8
- import { InvalidArgumentError } from "~/errors/InvalidArgumentError";
6
+ import { getApiPool } from "../../actions/dex/getApiPool";
7
+ import { POLLING } from "../../enum/polling";
8
+ import { InvalidArgumentError } from "../../errors/InvalidArgumentError";
9
9
 
10
10
  export const useApiPoolQueryKey = ({
11
11
  poolId,
@@ -1 +1 @@
1
- export { useBexStatus } from "~/contexts/BexStatusProvider";
1
+ export { useBexStatus } from "../../contexts/BexStatusProvider";
@@ -17,15 +17,15 @@ import {
17
17
  type SubgraphPoolFragment,
18
18
  } from "@berachain/graphql/dex/subgraph";
19
19
 
20
- import { getApolloClient } from "~/actions/clients/getApolloClient";
21
- import { TransactionActionType } from "~/enum/txnEnum";
22
- import type { Token, TokenWithAmount } from "~/types/dex";
23
- import type { IContractWrite } from "~/types/global";
24
- import { DEFAULT_METAMASK_GAS_LIMIT } from "~/utils/constants";
25
- import { parseBaseArgs } from "~/utils/parseBaseArgs";
26
- import { generatePoolName, generatePoolSymbol } from "~/utils/poolNamings";
27
- import { isToken } from "~/utils/tokens";
28
- import { wrapNativeTokens } from "~/utils/tokenWrapping";
20
+ import { getApolloClient } from "../../actions/clients/getApolloClient";
21
+ import { TransactionActionType } from "../../enum/txnEnum";
22
+ import type { Token, TokenWithAmount } from "../../types/dex";
23
+ import type { IContractWrite } from "../../types/global";
24
+ import { DEFAULT_METAMASK_GAS_LIMIT } from "../../utils/constants";
25
+ import { parseBaseArgs } from "../../utils/parseBaseArgs";
26
+ import { generatePoolName, generatePoolSymbol } from "../../utils/poolNamings";
27
+ import { isToken } from "../../utils/tokens";
28
+ import { wrapNativeTokens } from "../../utils/tokenWrapping";
29
29
 
30
30
  const DEFAULT_WEIGHTS_DUPLICATION_THRESHOLD = 0.005;
31
31
  interface UseCreatePoolProps extends BeraJS.BaseFunctionArgs {
@@ -3,9 +3,9 @@ import type { Address } from "viem";
3
3
 
4
4
  import { usePublicClient } from "@berachain/wagmi/hooks";
5
5
 
6
- import { getIsTokenExploited } from "~/actions/dex/getIsTokenExploited";
7
- import { assertPublicClient } from "~/errors/assert";
8
- import type { Token } from "~/types/dex";
6
+ import { getIsTokenExploited } from "../../actions/dex/getIsTokenExploited";
7
+ import { assertPublicClient } from "../../errors/assert";
8
+ import type { Token } from "../../types/dex";
9
9
 
10
10
  export const useExploitedTokensQueryKey = (tokens: Token[] | undefined) => {
11
11
  const filteredTokens = tokens?.filter((token) => token.address);
@@ -1,6 +1,6 @@
1
1
  import useSWR from "swr";
2
2
 
3
- import { getGlobalLiquidityAndSwapVolume } from "~/actions/dex/getGlobalLiquidityAndSwapVolume";
3
+ import { getGlobalLiquidityAndSwapVolume } from "../../actions/dex/getGlobalLiquidityAndSwapVolume";
4
4
 
5
5
  export const useGlobalLiquidityAndSwapVolume = () => {
6
6
  const response = useSWR("useGlobalLiquidityAndSwapVolume", async () =>
@@ -1,9 +1,9 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import { PoolType } from "@berachain-foundation/berancer-sdk";
3
3
 
4
- import { PoolCreationStep } from "~/enum/dex";
5
- import type { TokenCurrentPriceMap, TokenWithAmount } from "~/types/dex";
6
- import { wrapNativeTokens } from "~/utils/tokenWrapping";
4
+ import { PoolCreationStep } from "../../enum/dex";
5
+ import type { TokenCurrentPriceMap, TokenWithAmount } from "../../types/dex";
6
+ import { wrapNativeTokens } from "../../utils/tokenWrapping";
7
7
  import { type Oracle, OracleMode } from "./useCreatePool";
8
8
 
9
9
  const DEFAULT_LIQUIDITY_MISMATCH_TOLERANCE_PERCENT = 0.05; // 5%
@@ -3,10 +3,13 @@ import { type Address, formatEther, isAddressEqual } from "viem";
3
3
  import type { MinimalPoolFragment } from "@berachain/graphql/dex/api";
4
4
  import BigNumber from "@berachain/utils/pkg/bignumber.js";
5
5
 
6
- import { useRewardVaultBalanceFromStakingToken } from "~/hooks/pol/useRewardVaultBalanceFromStakingToken";
7
- import { usePollBalance } from "~/hooks/tokens/usePollBalance";
8
- import type { IUserPosition } from "~/types/dex";
9
- import type { DefaultHookOptions, DefaultHookReturnType } from "~/types/global";
6
+ import type { IUserPosition } from "../../types/dex";
7
+ import type {
8
+ DefaultHookOptions,
9
+ DefaultHookReturnType,
10
+ } from "../../types/global";
11
+ import { useRewardVaultBalanceFromStakingToken } from "../pol/useRewardVaultBalanceFromStakingToken";
12
+ import { usePollBalance } from "../tokens/usePollBalance";
10
13
 
11
14
  type IUseLpPositionArgs = {
12
15
  pool: MinimalPoolFragment | undefined;
@@ -5,10 +5,10 @@ import { parseUnits, zeroAddress } from "viem";
5
5
 
6
6
  import BigNumber from "@berachain/utils/pkg/bignumber.js";
7
7
 
8
- import { BeraError } from "~/errors/BeraError";
9
- import { usePollAllowances } from "~/hooks/tokens/usePollAllowances";
10
- import type { AllowanceQueryItem, AllowanceToken } from "~/types/dex";
11
- import { isToken } from "~/utils/tokens";
8
+ import { BeraError } from "../../errors/BeraError";
9
+ import type { AllowanceQueryItem, AllowanceToken } from "../../types/dex";
10
+ import { isToken } from "../../utils/tokens";
11
+ import { usePollAllowances } from "../tokens/usePollAllowances";
12
12
 
13
13
  type NeedsApprovalToken = AllowanceToken & {
14
14
  maxAmountIn: bigint;
@@ -5,9 +5,9 @@ import { type Address, formatUnits, isAddress } from "viem";
5
5
  import type { SubgraphPoolFragment } from "@berachain/graphql/dex/subgraph";
6
6
  import { usePublicClient } from "@berachain/wagmi/hooks";
7
7
 
8
- import { getOnChainPool } from "~/actions/dex/getOnChainPool";
9
- import { useMultipleTokenInformation } from "~/hooks/tokens/useMultipleTokenInformation";
10
- import { useTokenCurrentPrices } from "~/hooks/tokens/useTokenCurrentPrices";
8
+ import { getOnChainPool } from "../../actions/dex/getOnChainPool";
9
+ import { useMultipleTokenInformation } from "../tokens/useMultipleTokenInformation";
10
+ import { useTokenCurrentPrices } from "../tokens/useTokenCurrentPrices";
11
11
 
12
12
  export function useOnChainPoolDataQueryKey(
13
13
  args: { poolId: string } | { address: Address },
@@ -5,9 +5,9 @@ import { vaultAbi as balancerVaultAbi } from "@berachain/abis/bex/vault";
5
5
 
6
6
  import { useBeraWallet, usePublicClient } from "@berachain/wagmi/hooks";
7
7
 
8
- import { assertPublicClient } from "~/errors/assert";
9
- import type { DefaultHookOptions } from "~/types/global";
10
- import { parseBaseArgs } from "~/utils/parseBaseArgs";
8
+ import { assertPublicClient } from "../../errors/assert";
9
+ import type { DefaultHookOptions } from "../../types/global";
10
+ import { parseBaseArgs } from "../../utils/parseBaseArgs";
11
11
 
12
12
  /**
13
13
  * Hook for fetching relayer approval status with SWR
@@ -1,59 +1,26 @@
1
- import { useMemo } from "react";
2
- import useSWR from "swr";
3
1
  import type { Hex } from "viem";
4
2
 
5
- import { getSubgraphPool } from "~/actions/dex/getSubgraphPool";
6
- import { POLLING } from "~/enum/polling";
7
3
  import { useApiPool } from "./useApiPool";
8
4
  import { useOnChainPoolData } from "./useOnChainPoolData";
9
5
 
10
- export function useSubgraphPoolQueryKey({ poolId }: { poolId: string }) {
11
- return poolId ? ["usePool-subgraph", poolId] : null;
12
- }
13
-
14
- export const usePool = ({ poolId }: { poolId: Hex }) => {
15
- const bexSubgraphPool = useSWR(
16
- useSubgraphPoolQueryKey({ poolId }),
17
- async ([, poolId]) => getSubgraphPool({ poolId }),
18
- {
19
- refreshInterval: POLLING.NORMAL,
20
- },
21
- );
22
-
6
+ export function usePool({ poolId }: { poolId: Hex }) {
23
7
  const balancerApiPool = useApiPool({ poolId });
24
8
 
25
9
  const {
26
10
  data: onChainPool,
27
11
  isLoading: isOnChainPoolLoading,
28
12
  refresh: refreshOnChainPool,
13
+ error: onChainPoolError,
29
14
  } = useOnChainPoolData(poolId);
30
15
 
31
- const pool = useMemo(() => {
32
- // Until we load the data from the subgraph we'll push up the on-chain data.
33
- if (!bexSubgraphPool.data) return onChainPool;
34
-
35
- const merge = { ...bexSubgraphPool.data };
36
-
37
- if (onChainPool) {
38
- merge.swapFee = onChainPool.swapFee;
39
- merge.totalShares = onChainPool.totalShares;
40
- merge.createTime = onChainPool.createTime ?? merge.createTime;
41
- }
42
-
43
- return merge;
44
- }, [onChainPool, bexSubgraphPool]);
45
-
46
16
  return {
47
- data: [pool, balancerApiPool.data, onChainPool] as const,
48
- isLoading:
49
- balancerApiPool.isLoading ||
50
- bexSubgraphPool.isLoading ||
51
- isOnChainPoolLoading,
52
- isError: balancerApiPool.error || bexSubgraphPool.error,
17
+ data: [undefined, balancerApiPool.data, onChainPool] as const,
18
+ isLoading: balancerApiPool.isLoading || isOnChainPoolLoading,
19
+ isError: balancerApiPool.error || onChainPoolError,
53
20
  refresh: () => {
54
21
  balancerApiPool.refresh();
55
- bexSubgraphPool.mutate();
22
+
56
23
  refreshOnChainPool();
57
24
  },
58
25
  };
59
- };
26
+ }
@@ -2,8 +2,8 @@ import useSWRImmutable from "swr/immutable";
2
2
 
3
3
  import type { GqlPoolEventType } from "@berachain/graphql/dex/api";
4
4
 
5
- import { getPoolEvents } from "~/actions/dex/getPoolEvents";
6
- import { POLLING } from "~/enum/polling";
5
+ import { getPoolEvents } from "../../actions/dex/getPoolEvents";
6
+ import { POLLING } from "../../enum/polling";
7
7
 
8
8
  export const usePoolEvents = ({
9
9
  poolId,
@@ -5,9 +5,12 @@ import type {
5
5
  PoolHistoricalDataFragment,
6
6
  } from "@berachain/graphql/dex/api";
7
7
 
8
- import { getPoolHistoricalData } from "~/actions/dex/getPoolHistoricalData";
9
- import type { DefaultHookOptions, DefaultHookReturnType } from "~/types/global";
10
- import { parseBaseArgs } from "~/utils/parseBaseArgs";
8
+ import { getPoolHistoricalData } from "../../actions/dex/getPoolHistoricalData";
9
+ import type {
10
+ DefaultHookOptions,
11
+ DefaultHookReturnType,
12
+ } from "../../types/global";
13
+ import { parseBaseArgs } from "../../utils/parseBaseArgs";
11
14
 
12
15
  type UsePoolHistoricalDataArgs = {
13
16
  poolId: string | undefined;
@@ -4,9 +4,9 @@ import useSWR from "swr";
4
4
  import type { GetPoolsQueryVariables } from "@berachain/graphql/dex/api";
5
5
  import { useBeraWallet } from "@berachain/wagmi/hooks";
6
6
 
7
- import { getAllPools } from "~/actions/dex/getAllPools";
8
- import { POLLING } from "~/enum/polling";
9
- import type { DefaultHookOptions } from "~/types/global";
7
+ import { getAllPools } from "../../actions/dex/getAllPools";
8
+ import { POLLING } from "../../enum/polling";
9
+ import type { DefaultHookOptions } from "../../types/global";
10
10
  import { useAllUserPools } from "./useAllUserPools";
11
11
 
12
12
  export const usePoolsQueryKey = ({
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from "react";
2
2
 
3
- import type { Token } from "~/types/dex";
4
- import { computePriceImpact } from "~/utils/math";
3
+ import type { Token } from "../../types/dex";
4
+ import { computePriceImpact } from "../../utils/math";
5
5
  import { useTokenPrices } from "../tokens/useTokenPrices";
6
6
 
7
7
  export function usePriceImpact({
@@ -3,22 +3,22 @@ import { type Address, type PublicClient, parseUnits, zeroAddress } from "viem";
3
3
 
4
4
  import { useBeraWallet, usePublicClient } from "@berachain/wagmi/hooks";
5
5
 
6
- import { BaseAggregator } from "~/actions/dex/aggregators/base";
7
- import { useBeraFlag } from "~/contexts/BeraFlags/BeraFlags";
6
+ import { BaseAggregator } from "../../actions/dex/aggregators/base";
7
+ import { useBeraFlag } from "../../contexts/BeraFlags/BeraFlags";
8
8
  import type {
9
9
  HoneyConfigContextReturn,
10
10
  TokenWithOrder,
11
- } from "~/contexts/HoneyConfigProvider";
12
- import { Aggregators, type SwapReferrer } from "~/enum/dex";
13
- import { POLLING } from "~/enum/polling";
14
- import { BeraError } from "~/errors/BeraError";
15
- import { RequestError } from "~/errors/RequestError";
16
- import { useAggregatorsRouterFeeBps } from "~/hooks/dex/useAggregatorsRouterFeeBps";
17
- import type { MinimalERC20 } from "~/types/dex";
18
- import type { DefaultHookOptions } from "~/types/global";
19
- import { parseBaseArgs } from "~/utils/parseBaseArgs";
20
- import { seconds } from "~/utils/time";
21
- import { isToken } from "~/utils/tokens";
11
+ } from "../../contexts/HoneyConfigProvider";
12
+ import { Aggregators, type SwapReferrer } from "../../enum/dex";
13
+ import { POLLING } from "../../enum/polling";
14
+ import { BeraError } from "../../errors/BeraError";
15
+ import { RequestError } from "../../errors/RequestError";
16
+ import type { MinimalERC20 } from "../../types/dex";
17
+ import type { DefaultHookOptions } from "../../types/global";
18
+ import { parseBaseArgs } from "../../utils/parseBaseArgs";
19
+ import { seconds } from "../../utils/time";
20
+ import { isToken } from "../../utils/tokens";
21
+ import { useAggregatorsRouterFeeBps } from "./useAggregatorsRouterFeeBps";
22
22
 
23
23
  export type IUseAggregatorsQuotesArgs = BeraJS.BaseFunctionArgs & {
24
24
  tokenIn: MinimalERC20;
@@ -0,0 +1,158 @@
1
+ "use client";
2
+
3
+ import useSWR from "swr";
4
+ import type { Address, Hex } from "viem";
5
+ import { parseUnits } from "viem";
6
+
7
+ import { defaultChainId } from "@berachain/config/internal";
8
+
9
+ import {
10
+ useBeraWagmi,
11
+ useBeraWallet,
12
+ usePublicClient,
13
+ } from "@berachain/wagmi/hooks";
14
+
15
+ import { getEnsoClient } from "../../actions/clients/getEnsoClient";
16
+ import { getBendDemultiplyBundle } from "../../actions/enso/getBendDemultiplyBundle";
17
+ import { POLLING } from "../../enum/polling";
18
+ import { assertPublicClient } from "../../errors/assert";
19
+ import type { Token } from "../../types/dex";
20
+ import type { BendDemultiplyBundleResponse } from "../../types/enso";
21
+ import type { DefaultHookOptions } from "../../types/global";
22
+ import { useEnsoWalletV2Address } from "./useEnsoWalletV2Address";
23
+ import { useIsBendAuthorized } from "./useIsBendAuthorized";
24
+
25
+ export type UseBendDemultiply = {
26
+ collateralToken?: Token;
27
+ loanToken?: Token;
28
+ marketId?: Hex;
29
+ primaryAddress?: Address;
30
+ repayAmount?: string;
31
+ slippage?: number;
32
+ chainId?: number;
33
+ collateralPriceInLoanAsset?: string;
34
+ currentCollateral?: string;
35
+ currentDebt?: string;
36
+ };
37
+
38
+ export function useBendDemultiply(
39
+ {
40
+ collateralToken,
41
+ loanToken,
42
+ marketId,
43
+ primaryAddress,
44
+ repayAmount,
45
+ slippage,
46
+ chainId,
47
+ collateralPriceInLoanAsset,
48
+ currentCollateral,
49
+ currentDebt,
50
+ }: UseBendDemultiply,
51
+ options?: DefaultHookOptions,
52
+ ) {
53
+ const { address: fromAddress } = useBeraWallet();
54
+ const { account: { chainId: accountChainId } = {} } = useBeraWagmi();
55
+
56
+ const chainIdToUse = chainId ?? accountChainId ?? defaultChainId;
57
+ const publicClient = usePublicClient({ chainId: chainIdToUse });
58
+ const { data: ensoWalletV2Address } = useEnsoWalletV2Address({
59
+ chainId: chainIdToUse,
60
+ });
61
+ const { data: isAuthorized } = useIsBendAuthorized({
62
+ chainId: chainIdToUse,
63
+ primaryAddress,
64
+ ensoWalletV2Address,
65
+ });
66
+
67
+ const QUERY_KEY =
68
+ collateralToken &&
69
+ loanToken &&
70
+ marketId &&
71
+ primaryAddress &&
72
+ repayAmount &&
73
+ ensoWalletV2Address &&
74
+ isAuthorized !== undefined &&
75
+ collateralToken.address !== loanToken.address &&
76
+ Number(repayAmount) > 0 &&
77
+ slippage !== undefined &&
78
+ collateralPriceInLoanAsset !== undefined &&
79
+ currentCollateral &&
80
+ currentDebt &&
81
+ Number(currentDebt) > 0 &&
82
+ fromAddress &&
83
+ (options?.opts?.isEnabled ?? true)
84
+ ? ([
85
+ "useBendDemultiply",
86
+ fromAddress,
87
+ collateralToken,
88
+ loanToken,
89
+ marketId,
90
+ primaryAddress,
91
+ chainIdToUse,
92
+ repayAmount,
93
+ slippage,
94
+ collateralPriceInLoanAsset,
95
+ currentCollateral,
96
+ currentDebt,
97
+ ensoWalletV2Address,
98
+ isAuthorized,
99
+ ] as const)
100
+ : null;
101
+
102
+ return useSWR<BendDemultiplyBundleResponse, unknown, typeof QUERY_KEY>(
103
+ QUERY_KEY,
104
+ async ([
105
+ _,
106
+ fromAddress,
107
+ collateralToken,
108
+ loanToken,
109
+ marketId,
110
+ primaryAddress,
111
+ chainId,
112
+ repayAmount,
113
+ slippage,
114
+ collateralPriceInLoanAsset,
115
+ currentCollateral,
116
+ currentDebt,
117
+ ensoWalletV2Address,
118
+ isAuthorized,
119
+ ]) => {
120
+ assertPublicClient(publicClient);
121
+
122
+ const rawRepayAmount = parseUnits(
123
+ repayAmount,
124
+ loanToken.decimals,
125
+ ).toString();
126
+ const rawCurrentCollateral = parseUnits(
127
+ currentCollateral,
128
+ collateralToken.decimals,
129
+ ).toString();
130
+ const rawCurrentDebt = parseUnits(
131
+ currentDebt,
132
+ loanToken.decimals,
133
+ ).toString();
134
+
135
+ return getBendDemultiplyBundle({
136
+ fromAddress,
137
+ repayAmount: rawRepayAmount,
138
+ collateralToken,
139
+ loanToken,
140
+ marketId,
141
+ primaryAddress,
142
+ chainId,
143
+ ensoClient: getEnsoClient(),
144
+ slippage,
145
+ publicClient,
146
+ collateralPriceInLoanAsset,
147
+ currentCollateral: rawCurrentCollateral,
148
+ currentDebt: rawCurrentDebt,
149
+ ensoWalletV2Address,
150
+ isAuthorized,
151
+ });
152
+ },
153
+ {
154
+ ...options?.opts,
155
+ refreshInterval: POLLING.NORMAL,
156
+ },
157
+ );
158
+ }
@@ -0,0 +1,163 @@
1
+ "use client";
2
+
3
+ import useSWR from "swr";
4
+ import type { Address, Hex } from "viem";
5
+ import { parseUnits } from "viem";
6
+
7
+ import { defaultChainId } from "@berachain/config/internal";
8
+
9
+ import {
10
+ useBeraWagmi,
11
+ useBeraWallet,
12
+ usePublicClient,
13
+ } from "@berachain/wagmi/hooks";
14
+
15
+ import { getEnsoClient } from "../../actions/clients/getEnsoClient";
16
+ import { getBendMultiplyBundle } from "../../actions/enso/getBendMultiplyBundle";
17
+ import { POLLING } from "../../enum/polling";
18
+ import { assertPublicClient } from "../../errors/assert";
19
+ import type { Token } from "../../types/dex";
20
+ import type { BendMultiplyBundleResponse } from "../../types/enso";
21
+ import type { DefaultHookOptions } from "../../types/global";
22
+ import { useEnsoWalletV2Address } from "./useEnsoWalletV2Address";
23
+ import { useIsBendAuthorized } from "./useIsBendAuthorized";
24
+
25
+ export type UseBendMultiply = {
26
+ collateralToken?: Token;
27
+ loanToken?: Token;
28
+ marketId?: Hex;
29
+ primaryAddress?: Address;
30
+ formattedSupplyCollateralAmount?: string;
31
+ formattedCurrentCollateralAmount?: string;
32
+ formattedCurrentBorrowAmount?: string;
33
+ leverageMultiplier?: number;
34
+ slippage?: number;
35
+ chainId?: number;
36
+ formattedCollateralPriceInLoanAsset?: string;
37
+ };
38
+
39
+ export function useBendMultiply(
40
+ {
41
+ collateralToken,
42
+ loanToken,
43
+ marketId,
44
+ primaryAddress,
45
+ formattedSupplyCollateralAmount,
46
+ formattedCurrentCollateralAmount,
47
+ formattedCurrentBorrowAmount,
48
+ leverageMultiplier,
49
+ slippage,
50
+ chainId,
51
+ formattedCollateralPriceInLoanAsset,
52
+ }: UseBendMultiply,
53
+ options?: DefaultHookOptions,
54
+ ) {
55
+ const { address: fromAddress } = useBeraWallet();
56
+ const { account: { chainId: accountChainId } = {} } = useBeraWagmi();
57
+
58
+ const chainIdToUse = chainId ?? accountChainId ?? defaultChainId;
59
+ const publicClient = usePublicClient({ chainId: chainIdToUse });
60
+ const { data: ensoWalletV2Address } = useEnsoWalletV2Address({
61
+ chainId: chainIdToUse,
62
+ });
63
+ const { data: isAuthorized } = useIsBendAuthorized({
64
+ chainId: chainIdToUse,
65
+ primaryAddress,
66
+ ensoWalletV2Address,
67
+ });
68
+
69
+ const QUERY_KEY =
70
+ collateralToken &&
71
+ loanToken &&
72
+ marketId &&
73
+ primaryAddress &&
74
+ ensoWalletV2Address &&
75
+ isAuthorized !== undefined &&
76
+ collateralToken.address !== loanToken.address &&
77
+ slippage !== undefined &&
78
+ leverageMultiplier !== undefined &&
79
+ formattedCollateralPriceInLoanAsset !== undefined &&
80
+ (Number(formattedSupplyCollateralAmount ?? 0) > 0 ||
81
+ (leverageMultiplier > 1 &&
82
+ (Number(formattedCurrentCollateralAmount ?? 0) > 0 ||
83
+ Number(formattedSupplyCollateralAmount ?? 0) > 0))) &&
84
+ fromAddress &&
85
+ (options?.opts?.isEnabled ?? true)
86
+ ? ([
87
+ "useBendMultiply",
88
+ fromAddress,
89
+ collateralToken,
90
+ loanToken,
91
+ marketId,
92
+ primaryAddress,
93
+ chainIdToUse,
94
+ formattedSupplyCollateralAmount ?? "",
95
+ formattedCurrentCollateralAmount ?? "",
96
+ formattedCurrentBorrowAmount ?? "",
97
+ leverageMultiplier,
98
+ slippage,
99
+ formattedCollateralPriceInLoanAsset,
100
+ ensoWalletV2Address,
101
+ isAuthorized,
102
+ ] as const)
103
+ : null;
104
+
105
+ return useSWR<BendMultiplyBundleResponse, unknown, typeof QUERY_KEY>(
106
+ QUERY_KEY,
107
+ async ([
108
+ _,
109
+ fromAddress,
110
+ collateralToken,
111
+ loanToken,
112
+ marketId,
113
+ primaryAddress,
114
+ chainId,
115
+ formattedSupplyCollateralAmount,
116
+ formattedCurrentCollateralAmount,
117
+ formattedCurrentBorrowAmount,
118
+ leverageMultiplier,
119
+ slippage,
120
+ formattedCollateralPriceInLoanAsset,
121
+ ensoWalletV2Address,
122
+ isAuthorized,
123
+ ]) => {
124
+ assertPublicClient(publicClient);
125
+
126
+ const rawSupplyCollateralAmount = parseUnits(
127
+ formattedSupplyCollateralAmount || "0",
128
+ collateralToken.decimals,
129
+ ).toString();
130
+ const rawCurrentCollateralAmount = parseUnits(
131
+ formattedCurrentCollateralAmount || "0",
132
+ collateralToken.decimals,
133
+ ).toString();
134
+ const rawCurrentBorrowAmount = parseUnits(
135
+ formattedCurrentBorrowAmount || "0",
136
+ loanToken.decimals,
137
+ ).toString();
138
+
139
+ return getBendMultiplyBundle({
140
+ fromAddress,
141
+ rawSupplyCollateralAmount,
142
+ rawCurrentCollateralAmount,
143
+ rawCurrentBorrowAmount,
144
+ collateralToken,
145
+ loanToken,
146
+ marketId,
147
+ primaryAddress,
148
+ chainId,
149
+ ensoClient: getEnsoClient(),
150
+ slippage,
151
+ leverageMultiplier,
152
+ publicClient,
153
+ formattedCollateralPriceInLoanAsset,
154
+ ensoWalletV2Address,
155
+ isAuthorized,
156
+ });
157
+ },
158
+ {
159
+ ...options?.opts,
160
+ refreshInterval: POLLING.NORMAL,
161
+ },
162
+ );
163
+ }