@berachain/berajs 0.1.0 → 0.1.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 (502) hide show
  1. package/dist/{dex-jD95agMv.d.cts → HoneyConfigProvider-6PXZJMSU.d.cts} +172 -172
  2. package/dist/{dex-CxzGqVLe.d.ts → HoneyConfigProvider-CwDFrt02.d.ts} +172 -172
  3. package/dist/abi/index.cjs +2 -1
  4. package/dist/abi/index.cjs.map +1 -0
  5. package/dist/abi/index.mjs +2 -1
  6. package/dist/abi/index.mjs.map +1 -0
  7. package/dist/actions/index.cjs +2 -1
  8. package/dist/actions/index.cjs.map +1 -0
  9. package/dist/actions/index.d.cts +8 -8
  10. package/dist/actions/index.d.ts +8 -8
  11. package/dist/actions/index.mjs +2 -1
  12. package/dist/actions/index.mjs.map +1 -0
  13. package/dist/chunk-22MQVFHP.cjs +2 -0
  14. package/dist/chunk-22MQVFHP.cjs.map +1 -0
  15. package/dist/chunk-3TKSVFZ3.mjs +2 -0
  16. package/dist/chunk-3TKSVFZ3.mjs.map +1 -0
  17. package/dist/chunk-6VF3RF53.cjs +3 -0
  18. package/dist/chunk-6VF3RF53.cjs.map +1 -0
  19. package/dist/{chunk-2422CKAT.mjs → chunk-6W22TFYA.mjs} +2 -1
  20. package/dist/chunk-6W22TFYA.mjs.map +1 -0
  21. package/dist/chunk-AMRJ4B36.mjs +2 -0
  22. package/dist/chunk-AMRJ4B36.mjs.map +1 -0
  23. package/dist/{chunk-4IBBLGNS.mjs → chunk-DS2ZDVKU.mjs} +1 -0
  24. package/dist/chunk-DS2ZDVKU.mjs.map +1 -0
  25. package/dist/{chunk-B47PDJZM.cjs → chunk-ED43NYSE.cjs} +2 -1
  26. package/dist/chunk-ED43NYSE.cjs.map +1 -0
  27. package/dist/chunk-EU4WFADK.cjs +2 -0
  28. package/dist/chunk-EU4WFADK.cjs.map +1 -0
  29. package/dist/{chunk-ASRHUDAH.mjs → chunk-HCTFDGXL.mjs} +1 -0
  30. package/dist/chunk-HCTFDGXL.mjs.map +1 -0
  31. package/dist/{chunk-K4NZIO2Z.mjs → chunk-IOSYBHKU.mjs} +1 -0
  32. package/dist/chunk-IOSYBHKU.mjs.map +1 -0
  33. package/dist/{chunk-4GY57XKG.cjs → chunk-JMKLDDKY.cjs} +1 -0
  34. package/dist/chunk-JMKLDDKY.cjs.map +1 -0
  35. package/dist/chunk-KMKUXP2S.mjs +3 -0
  36. package/dist/chunk-KMKUXP2S.mjs.map +1 -0
  37. package/dist/chunk-OJXJ6CZ4.mjs +4 -0
  38. package/dist/chunk-OJXJ6CZ4.mjs.map +1 -0
  39. package/dist/{chunk-VA37UBED.mjs → chunk-PHIOKO3A.mjs} +2 -1
  40. package/dist/chunk-PHIOKO3A.mjs.map +1 -0
  41. package/dist/{chunk-IKAE7CQU.cjs → chunk-QCK474XD.cjs} +1 -0
  42. package/dist/chunk-QCK474XD.cjs.map +1 -0
  43. package/dist/chunk-REDXXUK7.cjs +2 -0
  44. package/dist/chunk-REDXXUK7.cjs.map +1 -0
  45. package/dist/{chunk-K2FCHQHA.cjs → chunk-S74ZMG2G.cjs} +2 -1
  46. package/dist/chunk-S74ZMG2G.cjs.map +1 -0
  47. package/dist/{chunk-NOV7UCGA.cjs → chunk-TOAXF4YW.cjs} +1 -0
  48. package/dist/chunk-TOAXF4YW.cjs.map +1 -0
  49. package/dist/chunk-UZ5CB33M.cjs +2 -0
  50. package/dist/chunk-UZ5CB33M.cjs.map +1 -0
  51. package/dist/chunk-VYWYJR63.mjs +2 -0
  52. package/dist/chunk-VYWYJR63.mjs.map +1 -0
  53. package/dist/{chunk-WZLPSG5R.cjs → chunk-XFPTQMAK.cjs} +3 -2
  54. package/dist/chunk-XFPTQMAK.cjs.map +1 -0
  55. package/dist/chunk-YK4NINF5.mjs +2 -0
  56. package/dist/chunk-YK4NINF5.mjs.map +1 -0
  57. package/dist/contexts/index.cjs +2 -1
  58. package/dist/contexts/index.cjs.map +1 -0
  59. package/dist/contexts/index.d.cts +7 -5
  60. package/dist/contexts/index.d.ts +7 -5
  61. package/dist/contexts/index.mjs +2 -1
  62. package/dist/contexts/index.mjs.map +1 -0
  63. package/dist/enum/index.cjs +2 -1
  64. package/dist/enum/index.cjs.map +1 -0
  65. package/dist/enum/index.d.cts +1 -1
  66. package/dist/enum/index.d.ts +1 -1
  67. package/dist/enum/index.mjs +2 -1
  68. package/dist/enum/index.mjs.map +1 -0
  69. package/dist/errors/index.cjs +2 -1
  70. package/dist/errors/index.cjs.map +1 -0
  71. package/dist/errors/index.d.cts +1 -1
  72. package/dist/errors/index.d.ts +1 -1
  73. package/dist/errors/index.mjs +2 -1
  74. package/dist/errors/index.mjs.map +1 -0
  75. package/dist/{getValidatorQueuedOperatorAddress-9jSXlAse.d.ts → getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts} +2 -2
  76. package/dist/{getValidatorQueuedOperatorAddress-BCYlvah3.d.cts → getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts} +2 -2
  77. package/dist/hooks/index.cjs +3 -2
  78. package/dist/hooks/index.cjs.map +1 -0
  79. package/dist/hooks/index.d.cts +9 -9
  80. package/dist/hooks/index.d.ts +9 -9
  81. package/dist/hooks/index.mjs +3 -2
  82. package/dist/hooks/index.mjs.map +1 -0
  83. package/dist/{staking-Bw46L2PT.d.ts → staking-F9Nx9TKD.d.ts} +1 -1
  84. package/dist/{staking-BxYDlMtj.d.cts → staking-f4BpYH7l.d.cts} +1 -1
  85. package/dist/{txnEnum-Diichv9Z.d.cts → txnEnum-BQKDfaeH.d.cts} +1 -0
  86. package/dist/{txnEnum-Diichv9Z.d.ts → txnEnum-BQKDfaeH.d.ts} +1 -0
  87. package/dist/types/index.cjs +2 -1
  88. package/dist/types/index.cjs.map +1 -0
  89. package/dist/types/index.d.cts +5 -5
  90. package/dist/types/index.d.ts +5 -5
  91. package/dist/types/index.mjs +2 -1
  92. package/dist/types/index.mjs.map +1 -0
  93. package/dist/{useHoneySwapState-YfMSTWY3.d.cts → useHoneySwapState-C-9BV4VB.d.cts} +1 -1
  94. package/dist/{useHoneySwapState-CD8v6y1k.d.ts → useHoneySwapState-CUY5Sm1b.d.ts} +1 -1
  95. package/dist/utils/index.cjs +2 -1
  96. package/dist/utils/index.cjs.map +1 -0
  97. package/dist/utils/index.d.cts +5 -5
  98. package/dist/utils/index.d.ts +5 -5
  99. package/dist/utils/index.mjs +2 -1
  100. package/dist/utils/index.mjs.map +1 -0
  101. package/package.json +4 -3
  102. package/src/abi/bend/bundler.ts +60 -0
  103. package/src/abi/bend/generalAdapter.ts +362 -0
  104. package/src/abi/bend/metaMorpho.ts +2584 -0
  105. package/src/abi/bend/morpho.ts +444 -0
  106. package/src/abi/bend/morphoVault.ts +1456 -0
  107. package/src/abi/bend/publicAllocator.ts +355 -0
  108. package/src/abi/bex/aggregatorsRouter.ts +492 -0
  109. package/src/abi/bex/balancerComposableStablePoolFactoryV6.ts +283 -0
  110. package/src/abi/bex/balancerPoolCreationHelper.ts +267 -0
  111. package/src/abi/bex/balancerVault.ts +757 -0
  112. package/src/abi/enso/ensoRouterAbi.ts +140 -0
  113. package/src/abi/governance/governance.ts +1016 -0
  114. package/src/abi/governance/governanceTimelock.ts +589 -0
  115. package/src/abi/honey/collateralVault.ts +1144 -0
  116. package/src/abi/honey/honey.ts +563 -0
  117. package/src/abi/honey/honeyFactory.ts +1270 -0
  118. package/src/abi/honey/honeyFactoryReader.ts +894 -0
  119. package/src/abi/honey/honeyRootOracle.ts +492 -0
  120. package/src/abi/honey/pythPriceOracle.ts +619 -0
  121. package/src/abi/honey/pythWrapper.ts +446 -0
  122. package/src/abi/index.ts +35 -0
  123. package/src/abi/pol/beaconDeposit.ts +595 -0
  124. package/src/abi/pol/beraChef.ts +1019 -0
  125. package/src/abi/pol/bgt.ts +1008 -0
  126. package/src/abi/pol/bgtIncentiveDistributor.ts +640 -0
  127. package/src/abi/pol/bgtStaker.ts +1034 -0
  128. package/src/abi/pol/rewardAllocationFactory.ts +408 -0
  129. package/src/abi/pol/rewardVault.ts +1928 -0
  130. package/src/abi/pol/rewardVaultFactory.ts +586 -0
  131. package/src/abi/pol/rewardVaultHelper.ts +882 -0
  132. package/src/abi/pol/stakeBeraVault.ts +1116 -0
  133. package/src/abi/pol/stakeBeraVaultWithdrawalRequest.ts +618 -0
  134. package/src/abi/pol/wbera.ts +366 -0
  135. package/src/abi/pyth/pyth.ts +566 -0
  136. package/src/abi/pyth/pythErrors.ts +72 -0
  137. package/src/abi/utils/EIP7702StatelessDelegator.ts +523 -0
  138. package/src/abi/utils/bundler3errors.ts +6 -0
  139. package/src/abi/utils/commonAbiErrors.ts +9 -0
  140. package/src/abi/utils/erc20errors.ts +74 -0
  141. package/src/abi/utils/merkleDistributor.ts +838 -0
  142. package/src/abi/utils/multicall3.ts +242 -0
  143. package/src/abi/utils/openChainErrors.ts +139 -0
  144. package/src/abi/utils/upgradableBeacon.ts +86 -0
  145. package/src/actions/bend/getConvertToAssets.ts +23 -0
  146. package/src/actions/bend/getMaxDeposit.ts +21 -0
  147. package/src/actions/clients/BeraApolloClient.ts +125 -0
  148. package/src/actions/clients/getApolloClient.ts +109 -0
  149. package/src/actions/clients/getEnsoClient.ts +24 -0
  150. package/src/actions/dex/__tests__/aggregators.unit.test.ts +112 -0
  151. package/src/actions/dex/__tests__/allPools.integration.test.ts +13 -0
  152. package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +15 -0
  153. package/src/actions/dex/__tests__/haiku.integration.test.ts +40 -0
  154. package/src/actions/dex/aggregators/base.ts +174 -0
  155. package/src/actions/dex/aggregators/bex.ts +255 -0
  156. package/src/actions/dex/aggregators/bgt.ts +50 -0
  157. package/src/actions/dex/aggregators/enso.ts +113 -0
  158. package/src/actions/dex/aggregators/fly.ts +136 -0
  159. package/src/actions/dex/aggregators/haiku.ts +171 -0
  160. package/src/actions/dex/aggregators/honey.ts +245 -0
  161. package/src/actions/dex/aggregators/kyberswap.ts +142 -0
  162. package/src/actions/dex/aggregators/oogabooga.ts +110 -0
  163. package/src/actions/dex/aggregators/openOcean.ts +142 -0
  164. package/src/actions/dex/aggregators/wbera.ts +72 -0
  165. package/src/actions/dex/b-sdk.ts +48 -0
  166. package/src/actions/dex/getAllPools.ts +60 -0
  167. package/src/actions/dex/getApiPool.ts +47 -0
  168. package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +29 -0
  169. package/src/actions/dex/getIsTokenExploited.ts +63 -0
  170. package/src/actions/dex/getOnChainPool.ts +216 -0
  171. package/src/actions/dex/getPoolEvents.ts +35 -0
  172. package/src/actions/dex/getPoolHistoricalData.ts +51 -0
  173. package/src/actions/dex/getPoolPausedState.ts +40 -0
  174. package/src/actions/dex/getPoolWithState.ts +24 -0
  175. package/src/actions/dex/getSubgraphPool.ts +30 -0
  176. package/src/actions/dex/getTransactionCount.ts +29 -0
  177. package/src/actions/dex/getVaultPausedState.ts +21 -0
  178. package/src/actions/enso/bend.ts +143 -0
  179. package/src/actions/enso/getEnsoUserToken.debug.test.ts +57 -0
  180. package/src/actions/enso/getEnsoUserToken.ts +133 -0
  181. package/src/actions/enso/util.ts +60 -0
  182. package/src/actions/enso/zap.ts +78 -0
  183. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +108 -0
  184. package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +127 -0
  185. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +39 -0
  186. package/src/actions/governance/checkProposalField.ts +211 -0
  187. package/src/actions/governance/computeActualStatus.ts +154 -0
  188. package/src/actions/governance/constants.ts +7 -0
  189. package/src/actions/governance/getAllProposals.ts +75 -0
  190. package/src/actions/governance/getBodyErrors.ts +28 -0
  191. package/src/actions/governance/getDecodedFunctionData.ts +170 -0
  192. package/src/actions/governance/getProposalDetails.ts +40 -0
  193. package/src/actions/governance/getProposalFromTx.ts +101 -0
  194. package/src/actions/governance/getProposalParams.ts +247 -0
  195. package/src/actions/governance/getProposalVotes.ts +20 -0
  196. package/src/actions/governance/getQuorum.ts +38 -0
  197. package/src/actions/governance/parseProposalBody.ts +73 -0
  198. package/src/actions/honey/getChartData.ts +27 -0
  199. package/src/actions/honey/getCollateralWeights.ts +50 -0
  200. package/src/actions/honey/getGlobalCapLimit.ts +148 -0
  201. package/src/actions/honey/getHoneyCollaterals.ts +139 -0
  202. package/src/actions/honey/getHoneyFees.ts +100 -0
  203. package/src/actions/honey/getHoneyGlobalData.ts +21 -0
  204. package/src/actions/honey/getHoneyPausedState.ts +25 -0
  205. package/src/actions/honey/getHoneyPreview.ts +152 -0
  206. package/src/actions/honey/getHoneyPythPriceOracle.ts +21 -0
  207. package/src/actions/honey/getHoneyRootPriceOracle.ts +23 -0
  208. package/src/actions/honey/getHoneyVaultsBalance.ts +86 -0
  209. package/src/actions/honey/getPythLatestPrices.ts +54 -0
  210. package/src/actions/honey/getRelativeCapLimit.ts +83 -0
  211. package/src/actions/honey/getSharesWithoutFees.ts +65 -0
  212. package/src/actions/honey/getSwapPayload.ts +128 -0
  213. package/src/actions/honey/isBadCollateralAsset.ts +77 -0
  214. package/src/actions/honey/isBasketModeEnabled.ts +47 -0
  215. package/src/actions/honey/tests/pyth.integration.test.ts +63 -0
  216. package/src/actions/index.ts +105 -0
  217. package/src/actions/misc/getBlockTimestamp.ts +41 -0
  218. package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +55 -0
  219. package/src/actions/pol/__tests__/getValidator.integration.test.ts +32 -0
  220. package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +34 -0
  221. package/src/actions/pol/getBGTGlobalInfo.ts +43 -0
  222. package/src/actions/pol/getBgtAprSimulation.ts +207 -0
  223. package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +297 -0
  224. package/src/actions/pol/getBgtTokenTotalBoosts.ts +30 -0
  225. package/src/actions/pol/getBgtTokenTotalSupply.ts +29 -0
  226. package/src/actions/pol/getBlockTime.ts +43 -0
  227. package/src/actions/pol/getGlobalCuttingBoard.ts +25 -0
  228. package/src/actions/pol/getGlobalData.ts +74 -0
  229. package/src/actions/pol/getIncentiveFeeClaimStats.ts +43 -0
  230. package/src/actions/pol/getMarkets.ts +36 -0
  231. package/src/actions/pol/getRewardProofsByValidator.ts +49 -0
  232. package/src/actions/pol/getRewardTokenToBeraRate.ts +30 -0
  233. package/src/actions/pol/getRewardVault.ts +54 -0
  234. package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +18 -0
  235. package/src/actions/pol/getRewardVaultBeaconImplementation.ts +35 -0
  236. package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +24 -0
  237. package/src/actions/pol/getRewardVaultDurationConstants.ts +45 -0
  238. package/src/actions/pol/getRewardVaultFromToken.ts +30 -0
  239. package/src/actions/pol/getRewardVaultIncentives.ts +122 -0
  240. package/src/actions/pol/getRewardVaultRewards.ts +109 -0
  241. package/src/actions/pol/getRewardVaultStakingToken.ts +19 -0
  242. package/src/actions/pol/getRewardVaults.ts +106 -0
  243. package/src/actions/pol/getSWBeraVaultMetadata.ts +166 -0
  244. package/src/actions/pol/getSWBeraWithdrawal.ts +165 -0
  245. package/src/actions/pol/getStakeWithdrawalCooldown.ts +21 -0
  246. package/src/actions/pol/getStakedBeraAPR.ts +56 -0
  247. package/src/actions/pol/getStakedBeraSnapshots.ts +48 -0
  248. package/src/actions/pol/getStakingTokenInformation.ts +60 -0
  249. package/src/actions/pol/getUserClaimableIncentives.ts +40 -0
  250. package/src/actions/pol/getUserVaultInfo.ts +52 -0
  251. package/src/actions/pol/getUserVaults.ts +185 -0
  252. package/src/actions/pol/getUserVaultsBalance.ts +54 -0
  253. package/src/actions/pol/getUserVaultsReward.ts +32 -0
  254. package/src/actions/pol/getVaultHistory.ts +43 -0
  255. package/src/actions/pol/getVaultValidators.ts +31 -0
  256. package/src/actions/pol/getVaultsSupply.ts +28 -0
  257. package/src/actions/prices/__tests__/prices.integration.test.ts +29 -0
  258. package/src/actions/prices/getTokenCurrentPrices.ts +79 -0
  259. package/src/actions/pyth/getHoneyPythFeeds.ts +46 -0
  260. package/src/actions/pyth/getUpdateFee.ts +27 -0
  261. package/src/actions/tokens/getAllowances.ts +59 -0
  262. package/src/actions/tokens/getTokenInformation.ts +57 -0
  263. package/src/actions/tokens/getTokens.ts +19 -0
  264. package/src/actions/tokens/getWalletBalances.integration.test.ts +40 -0
  265. package/src/actions/tokens/getWalletBalances.ts +123 -0
  266. package/src/actions/transactions/beraWriteContract.integration.test.ts +251 -0
  267. package/src/actions/transactions/beraWriteContract.ts +722 -0
  268. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +40 -0
  269. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +109 -0
  270. package/src/actions/validators/getAllValidators.ts +33 -0
  271. package/src/actions/validators/getApiEnrichedAllocation.ts +33 -0
  272. package/src/actions/validators/getApiValidator.ts +38 -0
  273. package/src/actions/validators/getBaselineRewardAllocation.ts +26 -0
  274. package/src/actions/validators/getDailyValidatorBlockStats.ts +37 -0
  275. package/src/actions/validators/getDefaultRewardAllocation.ts +39 -0
  276. package/src/actions/validators/getManagedValidatorByAccount.ts +32 -0
  277. package/src/actions/validators/getStakingPoolBatch.ts +20 -0
  278. package/src/actions/validators/getUserActiveValidators.ts +101 -0
  279. package/src/actions/validators/getUserBoosts.ts +28 -0
  280. package/src/actions/validators/getUserBoostsOnValidator.ts +70 -0
  281. package/src/actions/validators/getUserStakingPositions.ts +225 -0
  282. package/src/actions/validators/getValidatorAnalytics.ts +34 -0
  283. package/src/actions/validators/getValidatorCommission.ts +24 -0
  284. package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +25 -0
  285. package/src/actions/validators/getValidatorOperatorAddress.ts +27 -0
  286. package/src/actions/validators/getValidatorQueuedCommission.ts +30 -0
  287. package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +32 -0
  288. package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +31 -0
  289. package/src/actions/validators/getValidatorRewardAllocation.ts +158 -0
  290. package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +38 -0
  291. package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +36 -0
  292. package/src/actions/validators/utils/getValidatorBoostApy.ts +59 -0
  293. package/src/contexts/BeraFlags/BeraFlags.tsx +69 -0
  294. package/src/contexts/BeraFlags/defaultFlags.ts +42 -0
  295. package/src/contexts/BexStatusProvider.tsx +125 -0
  296. package/src/contexts/HoneyConfigProvider.tsx +73 -0
  297. package/src/contexts/SwrFallback.tsx +34 -0
  298. package/src/contexts/TokensProvider.tsx +66 -0
  299. package/src/contexts/berajsProvider/context.tsx +49 -0
  300. package/src/contexts/berajsProvider/index.ts +2 -0
  301. package/src/contexts/berajsProvider/useBeraJs.ts +18 -0
  302. package/src/contexts/block-time-provider.tsx +34 -0
  303. package/src/contexts/index.ts +14 -0
  304. package/src/data/contracts.ts +398 -0
  305. package/src/enum/dex.ts +10 -0
  306. package/src/enum/index.ts +4 -0
  307. package/src/enum/polling.ts +8 -0
  308. package/src/enum/slippage.ts +19 -0
  309. package/src/enum/txnEnum.ts +101 -0
  310. package/src/errors/BeraError.ts +202 -0
  311. package/src/errors/InvalidArgumentError.ts +81 -0
  312. package/src/errors/NotFoundError.ts +34 -0
  313. package/src/errors/RequestError.ts +207 -0
  314. package/src/errors/TransactionFailedError.ts +93 -0
  315. package/src/errors/assert.ts +144 -0
  316. package/src/errors/assert.unit.test.ts +110 -0
  317. package/src/errors/errorMap.ts +1157 -0
  318. package/src/errors/getErrorMessage.ts +40 -0
  319. package/src/errors/getRevertReason.integration.test.ts +449 -0
  320. package/src/errors/getRevertReason.ts +179 -0
  321. package/src/errors/index.ts +8 -0
  322. package/src/errors/initBeraError.ts +46 -0
  323. package/src/errors/parseViemError.ts +239 -0
  324. package/src/hooks/bend/useGetConvertToAssets.ts +42 -0
  325. package/src/hooks/dex/useAggregatorsQuotes.ts +502 -0
  326. package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +34 -0
  327. package/src/hooks/dex/useAllUserPools.ts +38 -0
  328. package/src/hooks/dex/useApiPool.ts +53 -0
  329. package/src/hooks/dex/useBexStatus.ts +1 -0
  330. package/src/hooks/dex/useCreatePool.ts +437 -0
  331. package/src/hooks/dex/useExploitedTokens.ts +57 -0
  332. package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +22 -0
  333. package/src/hooks/dex/useLiquidityMismatch.ts +195 -0
  334. package/src/hooks/dex/useLpPosition.ts +115 -0
  335. package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +92 -0
  336. package/src/hooks/dex/useOnChainPoolData.ts +126 -0
  337. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +54 -0
  338. package/src/hooks/dex/usePollVaultIsPaused.ts +30 -0
  339. package/src/hooks/dex/usePool.ts +59 -0
  340. package/src/hooks/dex/usePoolEvents.ts +22 -0
  341. package/src/hooks/dex/usePoolHistoricalData.ts +44 -0
  342. package/src/hooks/dex/usePools.ts +83 -0
  343. package/src/hooks/enso/useBendTransactionRequests.ts +247 -0
  344. package/src/hooks/enso/useEnsoZap.ts +166 -0
  345. package/src/hooks/enso/useZapTransactionRequests.ts +81 -0
  346. package/src/hooks/governance/useCreateProposal.ts +88 -0
  347. package/src/hooks/governance/useGetPastVotes.ts +63 -0
  348. package/src/hooks/governance/useHasVoted.ts +38 -0
  349. package/src/hooks/governance/useIsCanceller.ts +43 -0
  350. package/src/hooks/governance/usePollAllProposals.ts +232 -0
  351. package/src/hooks/governance/usePollProposal.ts +96 -0
  352. package/src/hooks/governance/usePollProposalThreshold.ts +41 -0
  353. package/src/hooks/governance/usePollProposalVotes.ts +64 -0
  354. package/src/hooks/governance/usePollUserDelegates.ts +70 -0
  355. package/src/hooks/governance/useProposalFromTx.ts +37 -0
  356. package/src/hooks/governance/useProposalSnapshot.ts +44 -0
  357. package/src/hooks/governance/useProposalState.ts +48 -0
  358. package/src/hooks/governance/useProposalTimelockState.ts +61 -0
  359. package/src/hooks/governance/useQuorum.ts +42 -0
  360. package/src/hooks/honey/useCappedGlobally.ts +92 -0
  361. package/src/hooks/honey/useCappedRelatively.ts +88 -0
  362. package/src/hooks/honey/useCollateralWeights.ts +48 -0
  363. package/src/hooks/honey/useHoneyAlerts.ts +314 -0
  364. package/src/hooks/honey/useHoneyBalances.ts +79 -0
  365. package/src/hooks/honey/useHoneyChartData.ts +17 -0
  366. package/src/hooks/honey/useHoneyGlobalData.ts +22 -0
  367. package/src/hooks/honey/useHoneySwapState.ts +202 -0
  368. package/src/hooks/honey/useHoneyVaultsBalance.ts +41 -0
  369. package/src/hooks/honey/useIsBadCollateralAsset.ts +73 -0
  370. package/src/hooks/honey/useIsBasketModeEnabled.ts +70 -0
  371. package/src/hooks/honey/usePythLatestPrices.ts +41 -0
  372. package/src/hooks/index.ts +124 -0
  373. package/src/hooks/perps/usePythUpdateFee.ts +43 -0
  374. package/src/hooks/pol/useBgtAprSimulation.ts +22 -0
  375. package/src/hooks/pol/useBgtUnstakedBalance.ts +50 -0
  376. package/src/hooks/pol/useClaimableFees.ts +38 -0
  377. package/src/hooks/pol/useEarnedStakedBeraVault.ts +59 -0
  378. package/src/hooks/pol/useHighestVaultsAPR.ts +57 -0
  379. package/src/hooks/pol/useOnChainRewardVault.ts +114 -0
  380. package/src/hooks/pol/usePollGlobalData.ts +31 -0
  381. package/src/hooks/pol/usePollMarkets.ts +32 -0
  382. package/src/hooks/pol/useQueuedBeraUnlock.ts +70 -0
  383. package/src/hooks/pol/useRewardTokenToBeraRate.ts +45 -0
  384. package/src/hooks/pol/useRewardVault.ts +51 -0
  385. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +82 -0
  386. package/src/hooks/pol/useRewardVaultFromToken.ts +58 -0
  387. package/src/hooks/pol/useRewardVaultIncentives.ts +37 -0
  388. package/src/hooks/pol/useRewardVaultRewards.ts +37 -0
  389. package/src/hooks/pol/useRewardVaults.ts +45 -0
  390. package/src/hooks/pol/useStakedBeraSnapshots.ts +27 -0
  391. package/src/hooks/pol/useUserVaultInfo.ts +46 -0
  392. package/src/hooks/pol/useUserVaults.ts +40 -0
  393. package/src/hooks/pol/useVaultAddress.ts +31 -0
  394. package/src/hooks/pol/useVaultHistory.ts +29 -0
  395. package/src/hooks/pol/useVaultValidators.ts +33 -0
  396. package/src/hooks/tokens/useBeraCurrentPrice.ts +12 -0
  397. package/src/hooks/tokens/useMultipleTokenInformation.ts +62 -0
  398. package/src/hooks/tokens/usePollAllowances.ts +60 -0
  399. package/src/hooks/tokens/usePollBalance.ts +113 -0
  400. package/src/hooks/tokens/usePollWalletBalances.ts +75 -0
  401. package/src/hooks/tokens/useStakingTokenInformation.ts +54 -0
  402. package/src/hooks/tokens/useTokenCurrentPrice.ts +19 -0
  403. package/src/hooks/tokens/useTokenCurrentPrices.ts +57 -0
  404. package/src/hooks/tokens/useTokenInformation.ts +59 -0
  405. package/src/hooks/tokens/useTokens.ts +26 -0
  406. package/src/hooks/tokens/useTotalSupply.ts +22 -0
  407. package/src/hooks/transactions/TransactionStoreContext.tsx +59 -0
  408. package/src/hooks/transactions/transactionStore.ts +275 -0
  409. package/src/hooks/transactions/transactionStore.unit.test.ts +508 -0
  410. package/src/hooks/transactions/useAddRecentTransaction.ts +29 -0
  411. package/src/hooks/transactions/useRecentTransactions.ts +27 -0
  412. package/src/hooks/useBlockToTimestamp.ts +51 -0
  413. package/src/hooks/useContractWrite/index.ts +2 -0
  414. package/src/hooks/useContractWrite/stateReducer.ts +60 -0
  415. package/src/hooks/useContractWrite/types.ts +88 -0
  416. package/src/hooks/useContractWrite/useBeraContractWrite.ts +137 -0
  417. package/src/hooks/useGetVerifiedAbi.ts +47 -0
  418. package/src/hooks/useHistoryState.ts +64 -0
  419. package/src/hooks/usePrevious.ts +13 -0
  420. package/src/hooks/validators/useAllValidators.ts +48 -0
  421. package/src/hooks/validators/useApiEnrichedAllocation.ts +17 -0
  422. package/src/hooks/validators/useApiValidator.ts +37 -0
  423. package/src/hooks/validators/useBaselineRewardAllocation.ts +16 -0
  424. package/src/hooks/validators/useDailyValidatorBlockStats.ts +35 -0
  425. package/src/hooks/validators/useDefaultRewardAllocation.ts +32 -0
  426. package/src/hooks/validators/useManagedValidatorByAccount.ts +40 -0
  427. package/src/hooks/validators/useManagedValidatorRole.ts +119 -0
  428. package/src/hooks/validators/useOnChainValidator.ts +66 -0
  429. package/src/hooks/validators/useStakingPoolBatch.ts +45 -0
  430. package/src/hooks/validators/useSubgraphUserValidators.ts +36 -0
  431. package/src/hooks/validators/useUserActiveValidators.ts +44 -0
  432. package/src/hooks/validators/useUserBoostsOnValidator.ts +45 -0
  433. package/src/hooks/validators/useUserClaimableIncentives.ts +149 -0
  434. package/src/hooks/validators/useUserStakingPositions.ts +62 -0
  435. package/src/hooks/validators/useValidator.ts +83 -0
  436. package/src/hooks/validators/useValidatorAnalytics.ts +36 -0
  437. package/src/hooks/validators/useValidatorCommission.ts +36 -0
  438. package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +24 -0
  439. package/src/hooks/validators/useValidatorQueuedCommission.ts +41 -0
  440. package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +39 -0
  441. package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +37 -0
  442. package/src/hooks/validators/useValidatorRewardAllocation.ts +36 -0
  443. package/src/hooks/validators/validatorRoleManager.ts +0 -0
  444. package/src/types/bribe-boost.ts +50 -0
  445. package/src/types/dex.ts +196 -0
  446. package/src/types/enso.ts +42 -0
  447. package/src/types/global.ts +230 -0
  448. package/src/types/governance.ts +174 -0
  449. package/src/types/honeySwap.ts +35 -0
  450. package/src/types/index.ts +8 -0
  451. package/src/types/pol.ts +52 -0
  452. package/src/types/staking.ts +7 -0
  453. package/src/utils/beraFetch.ts +55 -0
  454. package/src/utils/constants.ts +35 -0
  455. package/src/utils/formatAggregatorsQuotes.ts +57 -0
  456. package/src/utils/formatAggregatorsQuotes.unit.test.ts +191 -0
  457. package/src/utils/formatIncentivesTokenMap.ts +19 -0
  458. package/src/utils/formatInputTokenValue.ts +12 -0
  459. package/src/utils/formatNumber.ts +225 -0
  460. package/src/utils/formatNumber.unit.test.ts +245 -0
  461. package/src/utils/formatTimestamps.ts +155 -0
  462. package/src/utils/formatTimestamps.unit.test.ts +395 -0
  463. package/src/utils/formatTokenList.ts +61 -0
  464. package/src/utils/formatUsd.ts +46 -0
  465. package/src/utils/getContractName.ts +27 -0
  466. package/src/utils/getContractName.unit.test.ts +64 -0
  467. package/src/utils/getErrorResponse.ts +20 -0
  468. package/src/utils/getHoneySwapMessage.test.ts +116 -0
  469. package/src/utils/getHoneySwapMessage.ts +70 -0
  470. package/src/utils/getServerSideClient.ts +49 -0
  471. package/src/utils/getTestClient.ts +19 -0
  472. package/src/utils/hasAnyTruthyValues.ts +17 -0
  473. package/src/utils/index.ts +27 -0
  474. package/src/utils/isDifferenceExceedingThreshold.ts +13 -0
  475. package/src/utils/isSubgraphStale.ts +10 -0
  476. package/src/utils/math.ts +28 -0
  477. package/src/utils/math.unit.test.ts +49 -0
  478. package/src/utils/parseBaseArgs.ts +23 -0
  479. package/src/utils/parseBaseArgs.unit.test.ts +55 -0
  480. package/src/utils/poolNamings.ts +54 -0
  481. package/src/utils/pythHoneyUtils.ts +3 -0
  482. package/src/utils/sentryBeforeSend.ts +52 -0
  483. package/src/utils/test-utils.ts +2 -0
  484. package/src/utils/time.ts +106 -0
  485. package/src/utils/time.unit.test.ts +76 -0
  486. package/src/utils/tokenWrapping.ts +16 -0
  487. package/src/utils/tokens.ts +106 -0
  488. package/src/utils/tokens.unit.test.ts +98 -0
  489. package/src/utils/truncateHash.ts +20 -0
  490. package/src/utils/truncateHash.unit.test.ts +19 -0
  491. package/src/utils/validatorUptimeStatus.ts +30 -0
  492. package/dist/chunk-3V2MGZRD.mjs +0 -2
  493. package/dist/chunk-4E5JGLUM.cjs +0 -1
  494. package/dist/chunk-AHAZC5K3.mjs +0 -1
  495. package/dist/chunk-ELUMRVNE.mjs +0 -1
  496. package/dist/chunk-JHCSZSJS.mjs +0 -1
  497. package/dist/chunk-KIA6GUIN.cjs +0 -1
  498. package/dist/chunk-LX5CM4Y6.cjs +0 -1
  499. package/dist/chunk-LZPBQLKP.mjs +0 -3
  500. package/dist/chunk-M5BKM52U.cjs +0 -1
  501. package/dist/chunk-MTBICGRP.mjs +0 -1
  502. package/dist/chunk-WDFIETJS.cjs +0 -2
@@ -0,0 +1,230 @@
1
+ import type { Config, GetWalletClientReturnType } from "@wagmi/core";
2
+ import type { SWRConfiguration, SWRResponse } from "swr";
3
+ import type {
4
+ Abi,
5
+ Account,
6
+ Address,
7
+ ContractFunctionArgs,
8
+ ContractFunctionName,
9
+ Hex,
10
+ TransactionReceipt,
11
+ WalletCallReceipt,
12
+ } from "viem";
13
+
14
+ import type { BeraConfig, ChainId } from "@berachain/config";
15
+
16
+ import type { TransactionActionType } from "~/enum/txnEnum";
17
+ import type {
18
+ IUseContractWriteArgs,
19
+ TxnEventKeys,
20
+ } from "~/hooks/useContractWrite/types";
21
+ import type { Token } from "./dex";
22
+
23
+ export type DefaultHookOptions = {
24
+ opts?: SWRConfiguration & { isEnabled?: boolean };
25
+ };
26
+
27
+ export type DefaultHookReturnType<T = any> = Omit<
28
+ SWRResponse<T, any, any>,
29
+ "mutate"
30
+ > & {
31
+ refresh: () => void;
32
+ };
33
+
34
+ export interface TokenBalance {
35
+ address: Address;
36
+ /**
37
+ * Balance in wei, should be string to be serializable in JSON
38
+ */
39
+ balance: bigint | string;
40
+ formattedBalance: string;
41
+ /**
42
+ * Balance in USD
43
+ */
44
+ usdValue?: number;
45
+ }
46
+
47
+ export interface AllowanceToken extends Token {
48
+ allowance: bigint;
49
+ formattedAllowance: string;
50
+ }
51
+
52
+ export type IContractWriteFn = <
53
+ abi extends Abi | undefined = undefined,
54
+ functionName extends abi extends Abi
55
+ ? ContractFunctionName<abi>
56
+ : never = abi extends Abi ? ContractFunctionName<abi> : never,
57
+ params extends abi extends Abi
58
+ ? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
59
+ : never = abi extends Abi
60
+ ? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
61
+ : never,
62
+ >(
63
+ props: IContractWrite<abi, functionName, params>,
64
+ ) => Promise<
65
+ | TransactionReceipt
66
+ | WalletCallReceipt<bigint, "success" | "reverted">
67
+ | undefined
68
+ >;
69
+
70
+ /**
71
+ * Posthog must be able to serialize this. BigInts are not supported.
72
+ */
73
+ type AllowedEventData = number | string | boolean | null | undefined;
74
+
75
+ type EventData = Record<
76
+ string,
77
+ | AllowedEventData
78
+ | AllowedEventData[]
79
+ | Record<
80
+ string,
81
+ | AllowedEventData
82
+ | AllowedEventData[]
83
+ | Record<string, AllowedEventData | AllowedEventData[]>
84
+ >
85
+ >;
86
+
87
+ /**
88
+ * A list of contract names that are not mapped in the devrel's contract mapping or that are generated by factories (e.g. RewardVault).
89
+ */
90
+ export enum ContractName {
91
+ ENSO_ROUTER = "enso.router",
92
+ POL_REWARD_VAULT = "pol.rewardVault",
93
+ BEX_POOL = "bex.pool",
94
+ ERC20 = "others.erc20",
95
+ BEX_EXPLOITED_FUND_DISTRIBUTOR = "bex.exploitedFundDistributor",
96
+ }
97
+
98
+ export type IContractWrite<
99
+ abi extends Abi | undefined = undefined,
100
+ functionName extends abi extends Abi
101
+ ? ContractFunctionName<abi>
102
+ : never = abi extends Abi ? ContractFunctionName<abi> : never,
103
+ params extends abi extends Abi
104
+ ? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
105
+ : never = abi extends Abi
106
+ ? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
107
+ : never,
108
+ > = {
109
+ /**
110
+ * A message that will be shown to user while the transaction is pending.
111
+ *
112
+ * @example "Sending approvals"
113
+ */
114
+ message: string;
115
+ /**
116
+ * The chain ID of the transaction.
117
+ *
118
+ * @default berachainChainId
119
+ */
120
+ chainId?: ChainId;
121
+ /**
122
+ * The type of transaction to be performed. It will be stored in the transaction history.
123
+ *
124
+ * Generally uses infinite tense.
125
+ * @example TransactionActionType.APPROVAL => "Approve tokens"
126
+ */
127
+ actionType: TransactionActionType;
128
+ txnName?: string;
129
+ gasLimit?: bigint;
130
+ account?: Account | Address;
131
+ /**
132
+ * Wheter the transaction can be sent by any account. Before setting this to true, make sure smart contract doesn't rely on `msg.sender`.
133
+ *
134
+ * Only transaction with permissionless flag set to true can be sent with overriden account.
135
+ * Everything else will throw an error.
136
+ */
137
+ permissionless?: boolean;
138
+ /**
139
+ * The event to be tracked more specifically.
140
+ * If not provided, the event will be tracked with the message and actionType.
141
+ */
142
+ track?: {
143
+ eventName: string;
144
+ eventData?: EventData;
145
+ };
146
+
147
+ /**
148
+ * A wagmi config used to get wallet clients, switch chains, etc.
149
+ *
150
+ * This is preferred over providing clients as state updates are kept synched in this config object w/o re-rendering.
151
+ */
152
+ wagmiConfig?: Config;
153
+
154
+ /**
155
+ * walletClient should only be provided for tests or scripts.
156
+ *
157
+ * Wagmi Config is preferred.
158
+ */
159
+ walletClient?: GetWalletClientReturnType | undefined;
160
+ /**
161
+ * The name of the contract to be used for the transaction. By default, it will be devrel's contract mapping.
162
+ * Custom values will be ignored if the address is already mapped in the devrel's contract mapping.
163
+ *
164
+ * @example "pol.rewardVault"
165
+ */
166
+ contractName?: ContractName;
167
+ /**
168
+ * This is a canonical list of ABIs that will be used to parse the error.
169
+ *
170
+ * This is an useful way to parse errors when providing raw data with no ABI.
171
+ */
172
+ errorsAbi?: Abi;
173
+ } & IUseContractWriteArgs<abi, functionName, params> &
174
+ (abi extends Abi
175
+ ? {
176
+ abi: abi;
177
+ functionName: functionName;
178
+ params: params;
179
+ address: Address;
180
+ calls?: never;
181
+ value?: bigint;
182
+ }
183
+ :
184
+ | {
185
+ data: Hex;
186
+ address: Address;
187
+ value?: bigint;
188
+ calls?: never;
189
+ }
190
+ | {
191
+ value: bigint;
192
+ address: Address;
193
+ data?: Hex;
194
+ calls?: never;
195
+ }
196
+ | {
197
+ value?: never;
198
+ address?: never;
199
+ calls: (Omit<
200
+ IContractWrite,
201
+ | "calls"
202
+ | "gasLimit"
203
+ | "account"
204
+ | "address"
205
+ | "message"
206
+ | "actionType"
207
+ | TxnEventKeys
208
+ > & {
209
+ address: Address;
210
+ })[];
211
+ });
212
+
213
+ declare global {
214
+ export namespace BeraJS {
215
+ export type BaseFunctionArgs = {
216
+ /**
217
+ * If only chainId is provided, config will be inferred from it
218
+ *
219
+ * @default `import { defaultChainId } from "@berachain/config/internal";`
220
+ */
221
+ chainId?: ChainId;
222
+ /**
223
+ * A config to infer the default values of the other arguments
224
+ *
225
+ * @default chainConfigs[chainId]
226
+ */
227
+ config?: BeraConfig;
228
+ };
229
+ }
230
+ }
@@ -0,0 +1,174 @@
1
+ import type { AbiFunction, Address, Hex } from "viem";
2
+
3
+ import type {
4
+ ProposalVoteFragment,
5
+ ProposalWithVotesFragment,
6
+ } from "@berachain/graphql/governance";
7
+
8
+ export type Proposal = ProposalWithVotesFragment;
9
+
10
+ export type Vote = ProposalVoteFragment;
11
+
12
+ export type Voter = Address;
13
+
14
+ /**
15
+ * Maps the proposal state from the governor contract to a more human-readable format.
16
+ * Don't edit this enum manually, it's synced with the governor contract.
17
+ *
18
+ * @see https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/governance/IGovernor.sol
19
+ */
20
+ export enum ProposalState {
21
+ Pending = 0,
22
+ Active = 1,
23
+ Canceled = 2,
24
+ Defeated = 3,
25
+ Succeeded = 4,
26
+ Queued = 5,
27
+ Expired = 6,
28
+ Executed = 7,
29
+ }
30
+
31
+ export type ProposalVotes = {
32
+ yes: number;
33
+ no: number;
34
+ abstain: number;
35
+ };
36
+
37
+ export const VoteColorMap = {
38
+ yes: "#059669",
39
+ 1: "#059669",
40
+ no: "#DC2629",
41
+ 2: "#DC2629",
42
+ veto: "#0284C7",
43
+ 4: "#0284C7",
44
+ abstain: "#78716c",
45
+ 3: "#78716c",
46
+ yes_secondary: "#ECFDF5",
47
+ no_secondary: "#FEF2F2",
48
+ veto_secondary: "#F0F9FF",
49
+ abstain_secondary: "#E7E5E4",
50
+ default: "#57534e",
51
+ };
52
+
53
+ export enum VoteEnum {
54
+ AGAINST = "no",
55
+ FOR = "yes",
56
+ ABSTAIN = "abstain",
57
+ }
58
+
59
+ export type PROPOSAL_GENRE = "berahub" | "honey" | "bend" | "berps" | "general";
60
+
61
+ export type CustomProposalActionErrors = {
62
+ type?: null | ProposalErrorCodes;
63
+ target?: null | ProposalErrorCodes;
64
+ value?: null | ProposalErrorCodes;
65
+ ABI?: null | ProposalErrorCodes;
66
+ functionSignature?: null | ProposalErrorCodes;
67
+ args?: (null | ProposalErrorCodes)[];
68
+ vault?: null | ProposalErrorCodes;
69
+ isFriend?: null | ProposalErrorCodes;
70
+ to?: null | ProposalErrorCodes;
71
+ amount?: null | ProposalErrorCodes;
72
+ minIncentiveRate?: null | ProposalErrorCodes;
73
+ managerAddress?: null | ProposalErrorCodes;
74
+ input?: null | ProposalErrorCodes;
75
+ token?: null | ProposalErrorCodes;
76
+ rawCalldata?: null | ProposalErrorCodes;
77
+ message?: null | ProposalErrorCodes;
78
+ } | null;
79
+
80
+ export type CustomProposalErrors = {
81
+ title?: null | ProposalErrorCodes;
82
+ description?: null | ProposalErrorCodes;
83
+ forumLink?: null | ProposalErrorCodes;
84
+ actions?: CustomProposalActionErrors[];
85
+ };
86
+
87
+ export enum ProposalErrorCodes {
88
+ REQUIRED = "Required",
89
+ INVALID_AMOUNT = "Invalid amount",
90
+ NEGATIVE_AMOUNT = "Negative amount",
91
+ INVALID_ADDRESS = "Invalid address",
92
+ INVALID_ACTION = "Invalid action",
93
+ INVALID_ABI = "Invalid ABI",
94
+ MUST_BE_HTTPS = "Must be HTTPS",
95
+ MUST_BE_HTTPS_OR_IPFS = "Must be HTTPS or IPFS",
96
+ INVALID_BASEPATH = "Must be a berachain forum link",
97
+ /**
98
+ * Mainly used when it's not a reward vault
99
+ */
100
+ INVALID_CONTRACT = "This is not a valid contract",
101
+ }
102
+
103
+ export type GovernanceTopic = {
104
+ id: PROPOSAL_GENRE;
105
+ color: string;
106
+ icon: React.ReactNode;
107
+ iconBackground?: string;
108
+ name: string;
109
+ slug: string;
110
+ forumLink: string;
111
+ description?: string;
112
+ comingSoon?: boolean;
113
+ };
114
+
115
+ export enum ProposalTypeEnum {
116
+ CUSTOM_PROPOSAL = "custom-action",
117
+ WHITELIST_REWARD_VAULT = "whitelist-reward-vault",
118
+ BLACKLIST_REWARD_VAULT = "blacklist-reward-vault",
119
+ ERC20_TRANSFER = "erc20-transfer",
120
+ WHITELIST_REWARD_VAULT_INCENTIVE = "whitelist-reward-vault-incentive",
121
+ }
122
+
123
+ export type CustomProposal = {
124
+ title: string;
125
+ description: any;
126
+ actions: ProposalAction[];
127
+ forumLink: string;
128
+ topic: Set<PROPOSAL_GENRE>;
129
+ };
130
+
131
+ export type SafeProposalAction = {
132
+ value: bigint;
133
+ target: "" | Address;
134
+ } & (
135
+ | {
136
+ type: ProposalTypeEnum.CUSTOM_PROPOSAL;
137
+ input: "ABI" | "rawCalldata" | "message";
138
+ ABI: string;
139
+ _isVerifiedAbi?: boolean;
140
+ functionSignature: string;
141
+ args: string[];
142
+ rawCalldata: Hex;
143
+ message: string;
144
+ }
145
+ | {
146
+ type:
147
+ | ProposalTypeEnum.WHITELIST_REWARD_VAULT
148
+ | ProposalTypeEnum.BLACKLIST_REWARD_VAULT;
149
+ vault: Address;
150
+ }
151
+ | {
152
+ type: ProposalTypeEnum.ERC20_TRANSFER;
153
+ to: Address;
154
+ amount: string;
155
+ }
156
+ | {
157
+ type: ProposalTypeEnum.WHITELIST_REWARD_VAULT_INCENTIVE;
158
+ vault: Address;
159
+ token: Address;
160
+ minIncentiveRate: string;
161
+ managerAddress: Address;
162
+ }
163
+ );
164
+
165
+ export type ProposalAction = Partial<SafeProposalAction> & {
166
+ type: SafeProposalAction["type"];
167
+ };
168
+
169
+ export type VerifiedAbi = {
170
+ abiItem?: AbiFunction;
171
+ functionName?: string;
172
+ args: readonly unknown[];
173
+ functionSignature?: string;
174
+ };
@@ -0,0 +1,35 @@
1
+ import type { Address, Hex } from "viem";
2
+
3
+ import type { HoneyPreviewResult } from "~/actions/honey/getHoneyPreview";
4
+ import type { TokenWithOrder } from "~/contexts/HoneyConfigProvider";
5
+
6
+ export enum HoneySwapAction {
7
+ RESET_AMOUNTS = "RESET_AMOUNTS",
8
+ ACTION_TYPE_CHANGE = "ACTION_TYPE_CHANGE",
9
+ COLLATERALS_CHANGE = "COLLATERALS_CHANGE",
10
+ FROM_AMOUNT_CHANGE = "FROM_AMOUNT_CHANGE",
11
+ TO_AMOUNT_CHANGE = "TO_AMOUNT_CHANGE",
12
+ PREVIEW_CHANGE = "PREVIEW_CHANGE",
13
+ IS_BASKET_MODE_ENABLED_CHANGE = "IS_BASKET_MODE_ENABLED_CHANGE",
14
+ IS_TYPING_CHANGE = "IS_TYPING_CHANGE",
15
+ IS_SUBMITTING_CHANGE = "IS_SUBMITTING_CHANGE",
16
+ IS_LOADING_CHANGE = "IS_LOADING_CHANGE",
17
+ }
18
+
19
+ export type PythPriceFeedMap = Record<Address, Hex>;
20
+
21
+ export type HoneySwapActions =
22
+ | { type: HoneySwapAction.RESET_AMOUNTS }
23
+ | { type: HoneySwapAction.ACTION_TYPE_CHANGE; value: "mint" | "redeem" }
24
+ | { type: HoneySwapAction.COLLATERALS_CHANGE; value: TokenWithOrder[] }
25
+ | { type: HoneySwapAction.FROM_AMOUNT_CHANGE; index: number; value: string }
26
+ | { type: HoneySwapAction.TO_AMOUNT_CHANGE; index: number; value: string }
27
+ | {
28
+ type: HoneySwapAction.PREVIEW_CHANGE;
29
+ value: HoneyPreviewResult;
30
+ changedAsset: Address;
31
+ }
32
+ | { type: HoneySwapAction.IS_BASKET_MODE_ENABLED_CHANGE; value: boolean }
33
+ | { type: HoneySwapAction.IS_TYPING_CHANGE; value: boolean }
34
+ | { type: HoneySwapAction.IS_SUBMITTING_CHANGE; value: boolean }
35
+ | { type: HoneySwapAction.IS_LOADING_CHANGE; value: boolean };
@@ -0,0 +1,8 @@
1
+ export * from "./bribe-boost";
2
+ export * from "./dex";
3
+ export * from "./enso";
4
+ export * from "./global";
5
+ export * from "./governance";
6
+ export * from "./honeySwap";
7
+ export * from "./pol";
8
+ export * from "./staking";
@@ -0,0 +1,52 @@
1
+ import type { Address } from "viem";
2
+
3
+ import type { ApiValidatorFragment } from "@berachain/graphql/pol/api";
4
+
5
+ import type { Token } from "./dex";
6
+
7
+ export type IncentiveReward = {
8
+ tokenMetadata: Token | undefined;
9
+ tokenPrice: number;
10
+ tokenValue: number;
11
+ id: string;
12
+ dist_id: string;
13
+ token: string;
14
+ recipient: string;
15
+ formattedAmount: string;
16
+ amount: string;
17
+ merkle_proof: string[];
18
+ available_at: number;
19
+ };
20
+ export interface IncentiveRewardChunksWithValidatorData {
21
+ validator: ApiValidatorFragment | undefined;
22
+ maxTimestamp: number | undefined;
23
+ minTimestamp: number | undefined;
24
+ totalValue: number;
25
+ tokenTotals: {
26
+ address: Address;
27
+ amount: number;
28
+ value: number;
29
+ metadata: Token | undefined;
30
+ }[];
31
+ rewards: IncentiveReward[];
32
+ isCurrent: boolean;
33
+ }
34
+
35
+ export interface AggregatedTokenTotals {
36
+ address: Address;
37
+ amount: number;
38
+ value: number;
39
+ metadata: Token | undefined;
40
+ }
41
+
42
+ export type ClaimedIncentives = Record<string, string>;
43
+
44
+ export type ClaimedIncentivesLocalState = Record<string, ClaimedIncentives>;
45
+
46
+ export interface UserVaultInfo {
47
+ balance: bigint;
48
+ delegatedBalance: bigint;
49
+ withdrawableBalance: bigint;
50
+ rewards: string;
51
+ percentage: string;
52
+ }
@@ -0,0 +1,7 @@
1
+ export interface ProtocolMetadata {
2
+ name: string;
3
+ logoURI: string;
4
+ url: string;
5
+ description: string;
6
+ tags?: string[];
7
+ }
@@ -0,0 +1,55 @@
1
+ import { RequestError } from "~/errors/RequestError";
2
+ import { getErrorResponse } from "./getErrorResponse";
3
+
4
+ type RequestOptions = RequestInit;
5
+
6
+ export async function beraFetch(
7
+ endpoint: ConstructorParameters<typeof RequestError>[0]["endpoint"],
8
+ options?: RequestOptions,
9
+ ) {
10
+ try {
11
+ const response = await fetch(
12
+ typeof endpoint === "string" || endpoint instanceof URL
13
+ ? endpoint
14
+ : endpoint.url,
15
+ {
16
+ ...options,
17
+ },
18
+ );
19
+ if (!response.ok) {
20
+ const error = await getErrorResponse(response);
21
+ throw new RequestError({
22
+ cause: error,
23
+ // @to-do import getErrorResponse logic in this function
24
+ // when it's removed from other places
25
+ response: response,
26
+ endpoint,
27
+ });
28
+ }
29
+ return response;
30
+ } catch (error) {
31
+ if (error instanceof RequestError) {
32
+ throw error;
33
+ }
34
+
35
+ throw new RequestError({
36
+ cause: error,
37
+ endpoint,
38
+ response: undefined,
39
+ });
40
+ }
41
+ }
42
+
43
+ export async function beraFetchJson<T>(
44
+ endpoint: ConstructorParameters<typeof RequestError>[0]["endpoint"],
45
+ options?: RequestOptions,
46
+ ) {
47
+ const response = await beraFetch(endpoint, {
48
+ ...options,
49
+ headers: {
50
+ Accept: "application/json",
51
+ ...options?.headers,
52
+ },
53
+ });
54
+ return response.json() as Promise<T>;
55
+ }
@@ -0,0 +1,35 @@
1
+ import { parseEther } from "viem";
2
+
3
+ // the buffer of the cap limit, if the user gets close to 10% of the cap limit
4
+ // they should be warned
5
+ export const CAP_LIMIT_BUFFER = parseEther("0.005");
6
+
7
+ /**
8
+ * Maximum allowed input for a custom deadline in seconds.
9
+ * @type {number}
10
+ */
11
+ export const MAX_CUSTOM_DEADLINE = 100000;
12
+
13
+ /**
14
+ * Minimum allowed input for a custom deadline in seconds.
15
+ * @type {number}
16
+ */
17
+ export const MIN_CUSTOM_DEADLINE = 1;
18
+
19
+ /**
20
+ * Minimum allowed input for a custom slippage tolerance percentage.
21
+ * @type {number}
22
+ */
23
+ export const MIN_CUSTOM_SLIPPAGE = 0.1;
24
+
25
+ /**
26
+ * Maximum allowed input for a custom slippage tolerance percentage.
27
+ * @type {number}
28
+ */
29
+ export const MAX_CUSTOM_SLIPPAGE = 50;
30
+
31
+ /**
32
+ * Default gas limit used by MetaMask
33
+ * @see {@link https://github.com/MetaMask/metamask-extension/blob/06cf7459b963e26d0ae60312d4f9a342d07ab89d/ui/pages/confirmations/send/send.constants.js#L8}
34
+ */
35
+ export const DEFAULT_METAMASK_GAS_LIMIT = 7920027n;
@@ -0,0 +1,57 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { formatUnits } from "viem";
3
+
4
+ import type { IAggregatorQuote, IRawAggregatorQuote, Token } from "~/types";
5
+ import { computePriceImpact } from "./math";
6
+
7
+ export const formatAggregatorsQuotes = (
8
+ rawQuotes: (IRawAggregatorQuote | IRawAggregatorQuote<false>)[],
9
+ selectedFrom: Token | undefined,
10
+ selectedTo: Token | undefined,
11
+ tokenInPrice: number,
12
+ tokenOutPrice: number,
13
+ ): IAggregatorQuote[] =>
14
+ rawQuotes
15
+ .map((quote) => {
16
+ const amountOut = formatUnits(
17
+ BigInt(quote.amountOut),
18
+ selectedTo?.decimals || 18,
19
+ );
20
+ const amountIn = formatUnits(
21
+ BigInt(quote.amountIn),
22
+ selectedFrom?.decimals || 18,
23
+ );
24
+ const amountOutUsd = new BigNumber(amountOut)
25
+ .times(tokenOutPrice)
26
+ .toFixed();
27
+ const amountInUsd = new BigNumber(amountIn).times(tokenInPrice).toFixed();
28
+ const priceImpactPercentage = computePriceImpact(
29
+ (tokenInPrice || 0).toString(),
30
+ (tokenOutPrice || 0).toString(),
31
+ amountIn,
32
+ amountOut,
33
+ );
34
+ return {
35
+ ...quote,
36
+ exchangeRate: new BigNumber(amountOut).div(amountIn).toNumber(),
37
+ amountIn,
38
+ amountOut,
39
+ amountOutUsd,
40
+ amountInUsd,
41
+ priceImpactPercentage,
42
+ };
43
+ })
44
+ .sort((a, b) => new BigNumber(b.amountOut).minus(a.amountOut).toNumber())
45
+ .map((quote, _, allQuotes) => ({
46
+ ...quote,
47
+ relativeLossPercentage: computePriceImpact(
48
+ // hardcoded to 1 since we're calculating relative loss percentage
49
+ // between this quote's output amount and the best quote's output amount.
50
+ // The input amounts are the same for all quotes, so we use 1 as a base
51
+ // to get the pure percentage difference between outputs.
52
+ "1",
53
+ "1",
54
+ allQuotes[0].amountOut,
55
+ quote.amountOut,
56
+ ),
57
+ }));