@berachain/berajs 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/dist/{BeraError-D1HS_rbb.d.cts → BeraError-_mQdkanr.d.cts} +35 -10
  2. package/dist/{BeraError-D1HS_rbb.d.ts → BeraError-_mQdkanr.d.ts} +35 -10
  3. package/dist/HoneyConfigProvider-CK6mOKFH.d.ts +390 -0
  4. package/dist/HoneyConfigProvider-Ca3ouozs.d.cts +390 -0
  5. package/dist/{RequestError-D8AE6xnI.d.cts → RequestError-A8XJ6QR9.d.cts} +1 -1
  6. package/dist/{RequestError-m4jxyM7D.d.ts → RequestError-Dk97z8rm.d.ts} +1 -1
  7. package/dist/abi/exports.cjs +2 -0
  8. package/dist/abi/exports.cjs.map +1 -0
  9. package/dist/abi/{index.d.cts → exports.d.cts} +12369 -9122
  10. package/dist/abi/{index.d.ts → exports.d.ts} +12369 -9122
  11. package/dist/abi/exports.mjs +2 -0
  12. package/dist/abi/exports.mjs.map +1 -0
  13. package/dist/actions/exports.cjs +2 -0
  14. package/dist/actions/exports.cjs.map +1 -0
  15. package/dist/actions/{index.d.cts → exports.d.cts} +79 -107
  16. package/dist/actions/{index.d.ts → exports.d.ts} +79 -107
  17. package/dist/actions/exports.mjs +2 -0
  18. package/dist/actions/exports.mjs.map +1 -0
  19. package/dist/chunk-22J3YJDN.cjs +2 -0
  20. package/dist/chunk-22J3YJDN.cjs.map +1 -0
  21. package/dist/chunk-2LL3P5PN.mjs +2 -0
  22. package/dist/chunk-2LL3P5PN.mjs.map +1 -0
  23. package/dist/chunk-3YXSUBA5.mjs +2 -0
  24. package/dist/chunk-3YXSUBA5.mjs.map +1 -0
  25. package/dist/chunk-55L7STYD.mjs +2 -0
  26. package/dist/chunk-55L7STYD.mjs.map +1 -0
  27. package/dist/chunk-575OK77P.mjs +2 -0
  28. package/dist/chunk-575OK77P.mjs.map +1 -0
  29. package/dist/chunk-6LDOG5RL.cjs +2 -0
  30. package/dist/chunk-6LDOG5RL.cjs.map +1 -0
  31. package/dist/chunk-7LNBSOVV.cjs +2 -0
  32. package/dist/chunk-7LNBSOVV.cjs.map +1 -0
  33. package/dist/chunk-7SMWQ6SN.mjs +2 -0
  34. package/dist/chunk-7SMWQ6SN.mjs.map +1 -0
  35. package/dist/chunk-7WRTK7RJ.mjs +2 -0
  36. package/dist/chunk-7WRTK7RJ.mjs.map +1 -0
  37. package/dist/chunk-A4UDYSB6.mjs +4 -0
  38. package/dist/chunk-A4UDYSB6.mjs.map +1 -0
  39. package/dist/chunk-AX2YQQFQ.mjs +2 -0
  40. package/dist/chunk-AX2YQQFQ.mjs.map +1 -0
  41. package/dist/chunk-C3FHGFLK.mjs +2 -0
  42. package/dist/chunk-C3FHGFLK.mjs.map +1 -0
  43. package/dist/chunk-C6ZGUO4H.cjs +2 -0
  44. package/dist/chunk-C6ZGUO4H.cjs.map +1 -0
  45. package/dist/chunk-CYKCYPFR.cjs +2 -0
  46. package/dist/chunk-CYKCYPFR.cjs.map +1 -0
  47. package/dist/chunk-ECRMUMTA.mjs +2 -0
  48. package/dist/chunk-ECRMUMTA.mjs.map +1 -0
  49. package/dist/chunk-F4BKSBEM.mjs +2 -0
  50. package/dist/chunk-F4BKSBEM.mjs.map +1 -0
  51. package/dist/chunk-FCWDGE62.cjs +2 -0
  52. package/dist/chunk-FCWDGE62.cjs.map +1 -0
  53. package/dist/chunk-FL2N3XHK.cjs +2 -0
  54. package/dist/chunk-FL2N3XHK.cjs.map +1 -0
  55. package/dist/chunk-MUCEYO3E.cjs +4 -0
  56. package/dist/chunk-MUCEYO3E.cjs.map +1 -0
  57. package/dist/chunk-NAXAZJJY.mjs +2 -0
  58. package/dist/chunk-NAXAZJJY.mjs.map +1 -0
  59. package/dist/chunk-OGJMSGB2.mjs +2 -0
  60. package/dist/chunk-OGJMSGB2.mjs.map +1 -0
  61. package/dist/chunk-OIYXOKTT.cjs +2 -0
  62. package/dist/chunk-OIYXOKTT.cjs.map +1 -0
  63. package/dist/chunk-P2Q7CMUD.cjs +2 -0
  64. package/dist/chunk-P2Q7CMUD.cjs.map +1 -0
  65. package/dist/chunk-PKXAW6MO.cjs +2 -0
  66. package/dist/chunk-PKXAW6MO.cjs.map +1 -0
  67. package/dist/chunk-Q3SCM6WL.mjs +2 -0
  68. package/dist/chunk-Q3SCM6WL.mjs.map +1 -0
  69. package/dist/chunk-SWMJQOH6.cjs +2 -0
  70. package/dist/chunk-SWMJQOH6.cjs.map +1 -0
  71. package/dist/chunk-TEBJWAVU.mjs +2 -0
  72. package/dist/chunk-TEBJWAVU.mjs.map +1 -0
  73. package/dist/chunk-THATXCJK.mjs +2 -0
  74. package/dist/chunk-THATXCJK.mjs.map +1 -0
  75. package/dist/chunk-VP7XUOSI.cjs +2 -0
  76. package/dist/chunk-VP7XUOSI.cjs.map +1 -0
  77. package/dist/chunk-VXL2ZZ4X.cjs +2 -0
  78. package/dist/chunk-VXL2ZZ4X.cjs.map +1 -0
  79. package/dist/chunk-WRFDB3QJ.cjs +2 -0
  80. package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
  81. package/dist/chunk-XNJLSA6P.cjs +2 -0
  82. package/dist/chunk-XNJLSA6P.cjs.map +1 -0
  83. package/dist/chunk-YXLFOEZN.mjs +2 -0
  84. package/dist/chunk-YXLFOEZN.mjs.map +1 -0
  85. package/dist/chunk-YZV5LKIP.cjs +2 -0
  86. package/dist/chunk-YZV5LKIP.cjs.map +1 -0
  87. package/dist/contexts/exports.cjs +2 -0
  88. package/dist/contexts/exports.cjs.map +1 -0
  89. package/dist/contexts/{index.d.cts → exports.d.cts} +10 -27
  90. package/dist/contexts/{index.d.ts → exports.d.ts} +10 -27
  91. package/dist/contexts/exports.mjs +2 -0
  92. package/dist/contexts/exports.mjs.map +1 -0
  93. package/dist/{defaultFlags-V-tJs2K8.d.cts → defaultFlags-d0kPbT0i.d.cts} +1 -1
  94. package/dist/{defaultFlags-V-tJs2K8.d.ts → defaultFlags-d0kPbT0i.d.ts} +1 -1
  95. package/dist/dex-C_BB0b0O.d.cts +37 -0
  96. package/dist/dex-C_BB0b0O.d.ts +37 -0
  97. package/dist/enum/exports.cjs +2 -0
  98. package/dist/enum/exports.cjs.map +1 -0
  99. package/dist/enum/exports.d.cts +23 -0
  100. package/dist/enum/exports.d.ts +23 -0
  101. package/dist/enum/exports.mjs +2 -0
  102. package/dist/enum/exports.mjs.map +1 -0
  103. package/dist/errors/exports.cjs +2 -0
  104. package/dist/errors/exports.cjs.map +1 -0
  105. package/dist/errors/exports.d.cts +408 -0
  106. package/dist/errors/exports.d.ts +408 -0
  107. package/dist/errors/exports.mjs +2 -0
  108. package/dist/{getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts → getValidatorQueuedOperatorAddress-Dstyaomr.d.cts} +125 -15
  109. package/dist/{getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts → getValidatorQueuedOperatorAddress-RW4OMcD1.d.ts} +125 -15
  110. package/dist/global.d-CN6l2b9E.d.cts +473 -0
  111. package/dist/global.d-wYu8G8IQ.d.ts +473 -0
  112. package/dist/honey-CYm0RWf4.d.cts +14 -0
  113. package/dist/honey-CYm0RWf4.d.ts +14 -0
  114. package/dist/hooks/exports.cjs +4 -0
  115. package/dist/hooks/exports.cjs.map +1 -0
  116. package/dist/hooks/{index.d.cts → exports.d.cts} +218 -176
  117. package/dist/hooks/{index.d.ts → exports.d.ts} +218 -176
  118. package/dist/hooks/exports.mjs +4 -0
  119. package/dist/hooks/exports.mjs.map +1 -0
  120. package/dist/{txnEnum-BQKDfaeH.d.cts → txnEnum-BlBYhNRl.d.cts} +75 -1
  121. package/dist/{txnEnum-BQKDfaeH.d.ts → txnEnum-BlBYhNRl.d.ts} +75 -1
  122. package/dist/types/exports.cjs +1 -0
  123. package/dist/types/exports.cjs.map +1 -0
  124. package/dist/types/exports.d.cts +57 -0
  125. package/dist/types/exports.d.ts +57 -0
  126. package/dist/types/exports.mjs +1 -0
  127. package/dist/{useHoneySwapState-C-9BV4VB.d.cts → useHoneySwapState-B-vmIP1b.d.cts} +1 -1
  128. package/dist/{useHoneySwapState-CUY5Sm1b.d.ts → useHoneySwapState-D1DKG_Of.d.ts} +1 -1
  129. package/dist/utils/exports.cjs +2 -0
  130. package/dist/utils/exports.cjs.map +1 -0
  131. package/dist/utils/{index.d.cts → exports.d.cts} +83 -20
  132. package/dist/utils/{index.d.ts → exports.d.ts} +83 -20
  133. package/dist/utils/exports.mjs +2 -0
  134. package/dist/utils/exports.mjs.map +1 -0
  135. package/package.json +19 -20
  136. package/src/abi/{index.ts → exports.ts} +3 -0
  137. package/src/abi/pol/LSTStakerVault.ts +2032 -0
  138. package/src/abi/utils/openChainErrors.ts +71 -30
  139. package/src/abi/utils/thirdwebMinimalAccount.ts +616 -0
  140. package/src/actions/clients/BeraApolloClient.ts +8 -6
  141. package/src/actions/dex/__tests__/aggregators.unit.test.ts +2 -5
  142. package/src/actions/dex/aggregators/base.ts +74 -16
  143. package/src/actions/dex/aggregators/bex.ts +54 -74
  144. package/src/actions/dex/aggregators/bgt.ts +31 -8
  145. package/src/actions/dex/aggregators/{enso.ts → enso/enso.ts} +18 -14
  146. package/src/actions/dex/aggregators/enso/ensoErc4626.debug.test.ts +37 -0
  147. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +176 -0
  148. package/src/actions/dex/aggregators/erc4626.ts +122 -0
  149. package/src/actions/dex/aggregators/fly.ts +59 -53
  150. package/src/actions/dex/aggregators/haiku.ts +52 -54
  151. package/src/actions/dex/aggregators/honey.ts +54 -45
  152. package/src/actions/dex/aggregators/kyberswap.ts +41 -39
  153. package/src/actions/dex/aggregators/oogabooga.ts +47 -46
  154. package/src/actions/dex/aggregators/openOcean.ts +51 -46
  155. package/src/actions/dex/aggregators/wbera.ts +54 -42
  156. package/src/actions/dex/b-sdk.ts +5 -2
  157. package/src/actions/dex/getIsTokenExploited.ts +2 -2
  158. package/src/actions/enso/{zap.ts → getEnsoSwapBundle.ts} +4 -5
  159. package/src/actions/enso/getEnsoUserTokensWithBalances.debug.test.ts +73 -0
  160. package/src/actions/enso/{getEnsoUserToken.ts → getEnsoUserTokensWithBalances.ts} +42 -30
  161. package/src/actions/enso/util.ts +1 -1
  162. package/src/actions/{index.ts → exports.ts} +5 -0
  163. package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +1 -1
  164. package/src/actions/governance/__tests__/getQuorum.integration.test.ts +1 -1
  165. package/src/actions/governance/checkProposalField.ts +1 -1
  166. package/src/actions/governance/computeActualStatus.ts +1 -1
  167. package/src/actions/governance/getBodyErrors.ts +1 -1
  168. package/src/actions/governance/getDecodedFunctionData.ts +1 -4
  169. package/src/actions/governance/getProposalDetails.ts +2 -2
  170. package/src/actions/governance/getProposalFromTx.ts +1 -2
  171. package/src/actions/governance/getProposalParams.ts +7 -8
  172. package/src/actions/governance/getQuorum.ts +1 -2
  173. package/src/actions/honey/getCollateralWeights.ts +1 -1
  174. package/src/actions/honey/getHoneyCollaterals.ts +1 -0
  175. package/src/actions/honey/getHoneyVaultsBalance.ts +51 -55
  176. package/src/actions/honey/getSwapPayload.ts +37 -35
  177. package/src/actions/honey/tests/pyth.integration.test.ts +0 -1
  178. package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +1 -1
  179. package/src/actions/pol/getEarnedStakedBeraVault.ts +31 -0
  180. package/src/actions/pol/getGlobalData.ts +14 -13
  181. package/src/actions/pol/getLSTStakeConfig.ts +67 -0
  182. package/src/actions/pol/getMarkets.ts +1 -1
  183. package/src/actions/pol/getRewardProofsByValidator.ts +1 -1
  184. package/src/actions/pol/getRewardVaultIncentives.ts +3 -5
  185. package/src/actions/pol/getRewardVaults.ts +2 -3
  186. package/src/actions/pol/getSWBeraVaultMetadata.ts +7 -5
  187. package/src/actions/pol/getSWBeraWithdrawal.ts +41 -27
  188. package/src/actions/pol/getStakeWithdrawalCooldown.ts +5 -7
  189. package/src/actions/pol/getStakingDailyAssets.ts +24 -0
  190. package/src/actions/pol/getStakingTokenInformation.ts +3 -4
  191. package/src/actions/pol/getTotalStakedAmount.ts +47 -0
  192. package/src/actions/pol/getUserClaimableIncentives.ts +1 -1
  193. package/src/actions/pol/getUserVaults.ts +8 -6
  194. package/src/actions/pol/getUserVaultsBalance.ts +4 -16
  195. package/src/actions/prices/getTokenCurrentPrices.ts +8 -3
  196. package/src/actions/tokens/getAllowances.ts +68 -41
  197. package/src/actions/tokens/getTokenInformation.ts +4 -1
  198. package/src/actions/tokens/getTokens.ts +1 -1
  199. package/src/actions/tokens/getUnderlyingToken.ts +53 -0
  200. package/src/actions/tokens/getWalletBalances.integration.test.ts +53 -14
  201. package/src/actions/tokens/getWalletBalances.ts +69 -43
  202. package/src/actions/transactions/beraWriteContract.integration.test.ts +18 -6
  203. package/src/actions/transactions/beraWriteContract.ts +3 -3
  204. package/src/actions/validators/getUserActiveValidators.ts +2 -3
  205. package/src/actions/validators/getUserBoostsOnValidator.ts +2 -3
  206. package/src/contexts/BeraFlags/defaultFlags.ts +4 -0
  207. package/src/contexts/SwrFallback.tsx +13 -3
  208. package/src/contexts/TokensProvider.tsx +35 -8
  209. package/src/contexts/block-time-provider.tsx +1 -1
  210. package/src/contexts/{index.ts → exports.ts} +0 -1
  211. package/src/data/contracts.ts +17 -2
  212. package/src/enum/contracts.ts +13 -0
  213. package/src/enum/dex.ts +29 -0
  214. package/src/enum/{index.ts → exports.ts} +3 -0
  215. package/src/enum/governance.ts +61 -0
  216. package/src/enum/honey.ts +12 -0
  217. package/src/enum/txnEnum.ts +1 -0
  218. package/src/errors/BeraError.ts +61 -13
  219. package/src/errors/BeraMonitoring.ts +66 -0
  220. package/src/errors/BeraTracing.ts +79 -0
  221. package/src/errors/BeraTracing.unit.test.ts +198 -0
  222. package/src/errors/RequestError.ts +29 -3
  223. package/src/errors/assert.ts +4 -2
  224. package/src/errors/assert.unit.test.ts +6 -2
  225. package/src/errors/errorMap.ts +19 -8
  226. package/src/errors/{index.ts → exports.ts} +7 -0
  227. package/src/errors/getErrorMessage.ts +67 -9
  228. package/src/errors/getRevertReason.integration.test.ts +18 -6
  229. package/src/errors/getRevertReason.ts +41 -2
  230. package/src/errors/initBeraError.ts +52 -7
  231. package/src/errors/parseViemError.ts +114 -27
  232. package/src/errors/severity.ts +12 -0
  233. package/src/hooks/bend/useGetConvertToAssets.ts +3 -2
  234. package/src/hooks/dex/useAggregatorsQuotes.ts +126 -365
  235. package/src/hooks/dex/useAllUserPools.ts +1 -1
  236. package/src/hooks/dex/useApiPool.ts +1 -1
  237. package/src/hooks/dex/useCreatePool.ts +6 -5
  238. package/src/hooks/dex/useExploitedTokens.ts +1 -1
  239. package/src/hooks/dex/useLiquidityMismatch.ts +2 -5
  240. package/src/hooks/dex/useLpPosition.ts +21 -20
  241. package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +40 -29
  242. package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +1 -1
  243. package/src/hooks/dex/usePoolEvents.ts +1 -1
  244. package/src/hooks/dex/usePools.ts +1 -1
  245. package/src/hooks/dex/usePriceImpact.ts +40 -0
  246. package/src/hooks/dex/useSingleAggregatorQuote.ts +350 -0
  247. package/src/hooks/enso/useBendZapSupply.ts +216 -0
  248. package/src/hooks/enso/useEnsoSwapBundle.ts +107 -0
  249. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +43 -0
  250. package/src/hooks/enso/useZapStakeBera.ts +113 -0
  251. package/src/hooks/{index.ts → exports.ts} +17 -10
  252. package/src/hooks/governance/useCreateProposal.ts +8 -8
  253. package/src/hooks/governance/usePollAllProposals.ts +1 -1
  254. package/src/hooks/governance/usePollProposal.ts +1 -1
  255. package/src/hooks/governance/usePollProposalThreshold.ts +1 -1
  256. package/src/hooks/governance/usePollUserDelegates.ts +1 -1
  257. package/src/hooks/governance/useProposalState.ts +2 -2
  258. package/src/hooks/honey/useCappedGlobally.ts +2 -1
  259. package/src/hooks/honey/useCappedRelatively.ts +1 -1
  260. package/src/hooks/honey/useCollateralWeights.ts +2 -1
  261. package/src/hooks/honey/useHoneyAlerts.ts +11 -11
  262. package/src/hooks/honey/useHoneyBalances.ts +7 -3
  263. package/src/hooks/honey/useHoneyGlobalData.ts +2 -1
  264. package/src/hooks/honey/useHoneySwapState.ts +2 -1
  265. package/src/hooks/honey/useHoneyVaultsBalance.ts +1 -1
  266. package/src/hooks/honey/useIsBadCollateralAsset.ts +2 -1
  267. package/src/hooks/honey/useIsBasketModeEnabled.ts +1 -1
  268. package/src/hooks/honey/usePythLatestPrices.ts +1 -1
  269. package/src/hooks/pol/useOnChainRewardVault.ts +3 -2
  270. package/src/hooks/pol/usePollGlobalData.ts +1 -1
  271. package/src/hooks/pol/usePollMarkets.ts +1 -1
  272. package/src/hooks/pol/useQueuedBeraUnlock.ts +17 -15
  273. package/src/hooks/pol/useRewardTokenToBeraRate.ts +6 -3
  274. package/src/hooks/pol/useRewardVault.ts +1 -1
  275. package/src/hooks/pol/useRewardVaults.ts +1 -1
  276. package/src/hooks/pol/useSWBeraVaultMetadata.ts +35 -0
  277. package/src/hooks/pol/useStakedAPR.ts +38 -0
  278. package/src/hooks/pol/useStakedData.ts +117 -0
  279. package/src/hooks/pol/useStakedSnapshots.ts +52 -0
  280. package/src/hooks/pol/useTotalStakedAmount.ts +30 -0
  281. package/src/hooks/pol/useUserVaultInfo.ts +1 -1
  282. package/src/hooks/pol/useVaultValidators.ts +1 -1
  283. package/src/hooks/tokens/useMultipleTokenInformation.ts +15 -6
  284. package/src/hooks/tokens/usePollAllowances.ts +15 -19
  285. package/src/hooks/tokens/usePollBalance.ts +8 -4
  286. package/src/hooks/tokens/usePollWalletBalances.ts +14 -11
  287. package/src/hooks/tokens/useStakingTokenInformation.ts +2 -1
  288. package/src/hooks/tokens/useTokenCurrentPrice.ts +4 -2
  289. package/src/hooks/tokens/useTokenCurrentPrices.ts +92 -13
  290. package/src/hooks/tokens/useTokenInformation.ts +11 -6
  291. package/src/hooks/tokens/useTokenPrice.ts +21 -0
  292. package/src/hooks/tokens/useTokenPrices.ts +133 -0
  293. package/src/hooks/tokens/useTokens.ts +1 -0
  294. package/src/hooks/tokens/useUnderlyingAsset.ts +23 -0
  295. package/src/hooks/useContractWrite/useBeraContractWrite.ts +2 -1
  296. package/src/hooks/validators/useAllValidators.ts +1 -1
  297. package/src/hooks/validators/useApiValidator.ts +1 -1
  298. package/src/hooks/validators/useDailyValidatorBlockStats.ts +1 -1
  299. package/src/hooks/validators/useManagedValidatorByAccount.ts +1 -1
  300. package/src/hooks/validators/useManagedValidatorRole.ts +1 -1
  301. package/src/hooks/validators/useOnChainValidator.ts +1 -1
  302. package/src/hooks/validators/useStakingPoolBatch.ts +1 -1
  303. package/src/hooks/validators/useUserActiveValidators.ts +1 -1
  304. package/src/hooks/validators/useUserBoostsOnValidator.ts +1 -1
  305. package/src/hooks/validators/useUserClaimableIncentives.ts +8 -8
  306. package/src/hooks/validators/useValidator.ts +1 -1
  307. package/src/hooks/validators/useValidatorAnalytics.ts +1 -1
  308. package/src/hooks/validators/useValidatorCommission.ts +1 -1
  309. package/src/hooks/validators/useValidatorQueuedCommission.ts +1 -1
  310. package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +1 -1
  311. package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +1 -1
  312. package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
  313. package/src/types/{dex.ts → dex.d.ts} +96 -67
  314. package/src/types/{enso.ts → enso.d.ts} +1 -1
  315. package/src/types/exports.ts +8 -0
  316. package/src/types/{global.ts → global.d.ts} +1 -30
  317. package/src/types/{governance.ts → governance.d.ts} +2 -64
  318. package/src/types/{honeySwap.ts → honeySwap.d.ts} +1 -13
  319. package/src/types/{pol.ts → pol.d.ts} +12 -1
  320. package/src/types/staking.d.ts +22 -0
  321. package/src/utils/createEmitter.ts +122 -0
  322. package/src/utils/createEmitter.unit.test.ts +149 -0
  323. package/src/utils/{index.ts → exports.ts} +3 -2
  324. package/src/utils/filter.ts +34 -0
  325. package/src/utils/formatNumber.ts +1 -1
  326. package/src/utils/formatNumber.unit.test.ts +2 -1
  327. package/src/utils/formatTokenList.ts +4 -10
  328. package/src/utils/getHoneySwapMessage.test.ts +1 -2
  329. package/src/utils/getServerSideClient.ts +4 -5
  330. package/src/utils/isDifferenceExceedingThreshold.ts +1 -1
  331. package/src/utils/layerZeroScan.ts +122 -0
  332. package/src/utils/math.ts +1 -1
  333. package/src/utils/parseWhiskToken.ts +15 -0
  334. package/src/utils/poolNamings.ts +1 -1
  335. package/src/utils/tokens.ts +23 -7
  336. package/dist/HoneyConfigProvider-6PXZJMSU.d.cts +0 -562
  337. package/dist/HoneyConfigProvider-CwDFrt02.d.ts +0 -562
  338. package/dist/abi/index.cjs +0 -2
  339. package/dist/abi/index.cjs.map +0 -1
  340. package/dist/abi/index.mjs +0 -2
  341. package/dist/actions/index.cjs +0 -2
  342. package/dist/actions/index.cjs.map +0 -1
  343. package/dist/actions/index.mjs +0 -2
  344. package/dist/aggregatorsRouter-Cny4B_MB.d.cts +0 -593
  345. package/dist/aggregatorsRouter-Cny4B_MB.d.ts +0 -593
  346. package/dist/chunk-22MQVFHP.cjs +0 -2
  347. package/dist/chunk-22MQVFHP.cjs.map +0 -1
  348. package/dist/chunk-3TKSVFZ3.mjs +0 -2
  349. package/dist/chunk-3TKSVFZ3.mjs.map +0 -1
  350. package/dist/chunk-6VF3RF53.cjs +0 -3
  351. package/dist/chunk-6VF3RF53.cjs.map +0 -1
  352. package/dist/chunk-6W22TFYA.mjs +0 -2
  353. package/dist/chunk-6W22TFYA.mjs.map +0 -1
  354. package/dist/chunk-AMRJ4B36.mjs +0 -2
  355. package/dist/chunk-AMRJ4B36.mjs.map +0 -1
  356. package/dist/chunk-DS2ZDVKU.mjs +0 -2
  357. package/dist/chunk-DS2ZDVKU.mjs.map +0 -1
  358. package/dist/chunk-ED43NYSE.cjs +0 -2
  359. package/dist/chunk-ED43NYSE.cjs.map +0 -1
  360. package/dist/chunk-EU4WFADK.cjs +0 -2
  361. package/dist/chunk-EU4WFADK.cjs.map +0 -1
  362. package/dist/chunk-HCTFDGXL.mjs +0 -2
  363. package/dist/chunk-HCTFDGXL.mjs.map +0 -1
  364. package/dist/chunk-IOSYBHKU.mjs +0 -2
  365. package/dist/chunk-IOSYBHKU.mjs.map +0 -1
  366. package/dist/chunk-JMKLDDKY.cjs +0 -2
  367. package/dist/chunk-JMKLDDKY.cjs.map +0 -1
  368. package/dist/chunk-KMKUXP2S.mjs +0 -3
  369. package/dist/chunk-KMKUXP2S.mjs.map +0 -1
  370. package/dist/chunk-OJXJ6CZ4.mjs +0 -4
  371. package/dist/chunk-OJXJ6CZ4.mjs.map +0 -1
  372. package/dist/chunk-PHIOKO3A.mjs +0 -2
  373. package/dist/chunk-PHIOKO3A.mjs.map +0 -1
  374. package/dist/chunk-QCK474XD.cjs +0 -2
  375. package/dist/chunk-QCK474XD.cjs.map +0 -1
  376. package/dist/chunk-REDXXUK7.cjs +0 -2
  377. package/dist/chunk-REDXXUK7.cjs.map +0 -1
  378. package/dist/chunk-S74ZMG2G.cjs +0 -2
  379. package/dist/chunk-S74ZMG2G.cjs.map +0 -1
  380. package/dist/chunk-TOAXF4YW.cjs +0 -2
  381. package/dist/chunk-TOAXF4YW.cjs.map +0 -1
  382. package/dist/chunk-UZ5CB33M.cjs +0 -2
  383. package/dist/chunk-UZ5CB33M.cjs.map +0 -1
  384. package/dist/chunk-VYWYJR63.mjs +0 -2
  385. package/dist/chunk-VYWYJR63.mjs.map +0 -1
  386. package/dist/chunk-XFPTQMAK.cjs +0 -4
  387. package/dist/chunk-XFPTQMAK.cjs.map +0 -1
  388. package/dist/chunk-YK4NINF5.mjs +0 -2
  389. package/dist/chunk-YK4NINF5.mjs.map +0 -1
  390. package/dist/contexts/index.cjs +0 -2
  391. package/dist/contexts/index.cjs.map +0 -1
  392. package/dist/contexts/index.mjs +0 -2
  393. package/dist/contexts/index.mjs.map +0 -1
  394. package/dist/enum/index.cjs +0 -2
  395. package/dist/enum/index.cjs.map +0 -1
  396. package/dist/enum/index.d.cts +0 -31
  397. package/dist/enum/index.d.ts +0 -31
  398. package/dist/enum/index.mjs +0 -2
  399. package/dist/enum/index.mjs.map +0 -1
  400. package/dist/errors/index.cjs +0 -2
  401. package/dist/errors/index.cjs.map +0 -1
  402. package/dist/errors/index.d.cts +0 -204
  403. package/dist/errors/index.d.ts +0 -204
  404. package/dist/errors/index.mjs +0 -2
  405. package/dist/errors/index.mjs.map +0 -1
  406. package/dist/hooks/index.cjs +0 -4
  407. package/dist/hooks/index.cjs.map +0 -1
  408. package/dist/hooks/index.mjs +0 -4
  409. package/dist/hooks/index.mjs.map +0 -1
  410. package/dist/staking-F9Nx9TKD.d.ts +0 -246
  411. package/dist/staking-f4BpYH7l.d.cts +0 -246
  412. package/dist/types/index.cjs +0 -2
  413. package/dist/types/index.cjs.map +0 -1
  414. package/dist/types/index.d.cts +0 -56
  415. package/dist/types/index.d.ts +0 -56
  416. package/dist/types/index.mjs +0 -2
  417. package/dist/types/index.mjs.map +0 -1
  418. package/dist/utils/index.cjs +0 -2
  419. package/dist/utils/index.cjs.map +0 -1
  420. package/dist/utils/index.mjs +0 -2
  421. package/dist/utils/index.mjs.map +0 -1
  422. package/src/actions/dex/getTransactionCount.ts +0 -29
  423. package/src/actions/enso/bend.ts +0 -143
  424. package/src/actions/enso/getEnsoUserToken.debug.test.ts +0 -57
  425. package/src/contexts/berajsProvider/context.tsx +0 -49
  426. package/src/contexts/berajsProvider/index.ts +0 -2
  427. package/src/contexts/berajsProvider/useBeraJs.ts +0 -18
  428. package/src/hooks/dex/usePollVaultIsPaused.ts +0 -30
  429. package/src/hooks/enso/useBendTransactionRequests.ts +0 -247
  430. package/src/hooks/enso/useEnsoZap.ts +0 -166
  431. package/src/hooks/enso/useZapTransactionRequests.ts +0 -81
  432. package/src/hooks/pol/useEarnedStakedBeraVault.ts +0 -59
  433. package/src/hooks/pol/useStakedBeraSnapshots.ts +0 -27
  434. package/src/hooks/transactions/TransactionStoreContext.tsx +0 -59
  435. package/src/hooks/transactions/transactionStore.ts +0 -275
  436. package/src/hooks/transactions/transactionStore.unit.test.ts +0 -508
  437. package/src/hooks/transactions/useAddRecentTransaction.ts +0 -29
  438. package/src/hooks/transactions/useRecentTransactions.ts +0 -27
  439. package/src/hooks/validators/validatorRoleManager.ts +0 -0
  440. package/src/types/index.ts +0 -8
  441. package/src/types/staking.ts +0 -7
  442. package/src/utils/formatAggregatorsQuotes.ts +0 -57
  443. package/src/utils/formatAggregatorsQuotes.unit.test.ts +0 -191
  444. package/src/utils/sentryBeforeSend.ts +0 -52
  445. /package/dist/{abi/index.mjs.map → errors/exports.mjs.map} +0 -0
  446. /package/dist/{actions/index.mjs.map → types/exports.mjs.map} +0 -0
  447. /package/src/actions/dex/{__tests__ → aggregators}/haiku.integration.test.ts +0 -0
  448. /package/src/types/{bribe-boost.ts → bribe-boost.d.ts} +0 -0
@@ -1,508 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
-
3
- import type { Data, DataLegacy, Transaction } from "./transactionStore";
4
- import {
5
- convertLegacyDataToNewData,
6
- filterDuplicatefn,
7
- mergeData,
8
- } from "./transactionStore";
9
-
10
- describe("convertLegacyDataToNewData", () => {
11
- it("should convert legacy nested data to flat array format", () => {
12
- const legacyData: DataLegacy = {
13
- "0xAccount1": {
14
- 1: [
15
- {
16
- hash: "0x123",
17
- description: "Swap",
18
- timestamp: 1000,
19
- status: "confirmed",
20
- chainId: 1,
21
- },
22
- ],
23
- 2: [
24
- {
25
- hash: "0x456",
26
- description: "Transfer",
27
- timestamp: 2000,
28
- status: "pending",
29
- chainId: 2,
30
- },
31
- ],
32
- },
33
- };
34
-
35
- const result = convertLegacyDataToNewData(legacyData);
36
-
37
- expect(result).toEqual({
38
- "0xAccount1": [
39
- {
40
- hash: "0x123",
41
- description: "Swap",
42
- timestamp: 1000,
43
- status: "confirmed",
44
- chainId: 1,
45
- },
46
- {
47
- hash: "0x456",
48
- description: "Transfer",
49
- timestamp: 2000,
50
- status: "pending",
51
- chainId: 2,
52
- },
53
- ],
54
- });
55
- });
56
-
57
- it("should handle multiple accounts with multiple chains", () => {
58
- const legacyData: DataLegacy = {
59
- "0xAccount1": {
60
- 1: [
61
- {
62
- hash: "0x111",
63
- description: "Tx1",
64
- timestamp: 1000,
65
- status: "confirmed",
66
- chainId: 1,
67
- },
68
- ],
69
- },
70
- "0xAccount2": {
71
- 2: [
72
- {
73
- hash: "0x222",
74
- description: "Tx2",
75
- timestamp: 2000,
76
- status: "pending",
77
- chainId: 2,
78
- },
79
- ],
80
- },
81
- };
82
-
83
- const result = convertLegacyDataToNewData(legacyData);
84
-
85
- expect(result).toEqual({
86
- "0xAccount1": [
87
- {
88
- hash: "0x111",
89
- description: "Tx1",
90
- timestamp: 1000,
91
- status: "confirmed",
92
- chainId: 1,
93
- },
94
- ],
95
- "0xAccount2": [
96
- {
97
- hash: "0x222",
98
- description: "Tx2",
99
- timestamp: 2000,
100
- status: "pending",
101
- chainId: 2,
102
- },
103
- ],
104
- });
105
- });
106
-
107
- it("should handle empty legacy data", () => {
108
- const legacyData: DataLegacy = {};
109
- const result = convertLegacyDataToNewData(legacyData);
110
- expect(result).toEqual({});
111
- });
112
-
113
- it("should skip undefined transactions", () => {
114
- const legacyData: DataLegacy = {
115
- "0xAccount1": {
116
- 1: undefined,
117
- 2: [
118
- {
119
- hash: "0x123",
120
- description: "Test",
121
- timestamp: 1000,
122
- status: "confirmed",
123
- chainId: 2,
124
- },
125
- ],
126
- },
127
- };
128
-
129
- const result = convertLegacyDataToNewData(legacyData);
130
-
131
- expect(result).toEqual({
132
- "0xAccount1": [
133
- {
134
- hash: "0x123",
135
- description: "Test",
136
- timestamp: 1000,
137
- status: "confirmed",
138
- chainId: 2,
139
- },
140
- ],
141
- });
142
- });
143
-
144
- it("should correctly convert chainId from string to number", () => {
145
- const legacyData: DataLegacy = {
146
- "0xAccount1": {
147
- 80085: [
148
- {
149
- hash: "0xbeef",
150
- description: "Berachain Tx",
151
- timestamp: 5000,
152
- status: "confirmed",
153
- chainId: 80085,
154
- },
155
- ],
156
- },
157
- };
158
-
159
- const result = convertLegacyDataToNewData(legacyData);
160
-
161
- expect(result["0xAccount1"]?.[0]?.chainId).toBe(80085);
162
- expect(typeof result["0xAccount1"]?.[0]?.chainId).toBe("number");
163
- });
164
- });
165
-
166
- describe("filterDuplicatefn", () => {
167
- it("should filter out duplicate transactions by hash", () => {
168
- const transactions: Transaction[] = [
169
- {
170
- hash: "0x123",
171
- description: "First",
172
- timestamp: 1000,
173
- status: "confirmed",
174
- chainId: 1,
175
- },
176
- {
177
- hash: "0x456",
178
- description: "Second",
179
- timestamp: 2000,
180
- status: "pending",
181
- chainId: 1,
182
- },
183
- {
184
- hash: "0x123",
185
- description: "Duplicate",
186
- timestamp: 3000,
187
- status: "failed",
188
- chainId: 1,
189
- },
190
- ];
191
-
192
- const result = transactions.filter(filterDuplicatefn);
193
-
194
- expect(result).toHaveLength(2);
195
- expect(result[0]?.hash).toBe("0x123");
196
- expect(result[0]?.description).toBe("First");
197
- expect(result[1]?.hash).toBe("0x456");
198
- });
199
-
200
- it("should keep all transactions when there are no duplicates", () => {
201
- const transactions: Transaction[] = [
202
- {
203
- hash: "0x111",
204
- description: "Tx1",
205
- timestamp: 1000,
206
- status: "confirmed",
207
- chainId: 1,
208
- },
209
- {
210
- hash: "0x222",
211
- description: "Tx2",
212
- timestamp: 2000,
213
- status: "pending",
214
- chainId: 1,
215
- },
216
- {
217
- hash: "0x333",
218
- description: "Tx3",
219
- timestamp: 3000,
220
- status: "failed",
221
- chainId: 1,
222
- },
223
- ];
224
-
225
- const result = transactions.filter(filterDuplicatefn);
226
-
227
- expect(result).toHaveLength(3);
228
- expect(result).toEqual(transactions);
229
- });
230
-
231
- it("should handle empty array", () => {
232
- const transactions: Transaction[] = [];
233
- const result = transactions.filter(filterDuplicatefn);
234
- expect(result).toEqual([]);
235
- });
236
-
237
- it("should handle array with single transaction", () => {
238
- const transactions: Transaction[] = [
239
- {
240
- hash: "0x123",
241
- description: "Only one",
242
- timestamp: 1000,
243
- status: "confirmed",
244
- chainId: 1,
245
- },
246
- ];
247
-
248
- const result = transactions.filter(filterDuplicatefn);
249
-
250
- expect(result).toHaveLength(1);
251
- expect(result[0]).toEqual(transactions[0]);
252
- });
253
-
254
- it("should keep first occurrence when there are multiple duplicates", () => {
255
- const transactions: Transaction[] = [
256
- {
257
- hash: "0xabc",
258
- description: "First",
259
- timestamp: 1000,
260
- status: "confirmed",
261
- chainId: 1,
262
- },
263
- {
264
- hash: "0xabc",
265
- description: "Second",
266
- timestamp: 2000,
267
- status: "pending",
268
- chainId: 1,
269
- },
270
- {
271
- hash: "0xabc",
272
- description: "Third",
273
- timestamp: 3000,
274
- status: "failed",
275
- chainId: 1,
276
- },
277
- ];
278
-
279
- const result = transactions.filter(filterDuplicatefn);
280
-
281
- expect(result).toHaveLength(1);
282
- expect(result[0]?.description).toBe("First");
283
- });
284
- });
285
-
286
- describe("mergeData", () => {
287
- it("should merge legacy and new data for same account", () => {
288
- const legacyData: DataLegacy = {
289
- "0xAccount1": {
290
- 1: [
291
- {
292
- hash: "0x111",
293
- description: "Legacy Tx",
294
- timestamp: 1000,
295
- status: "confirmed",
296
- chainId: 1,
297
- },
298
- ],
299
- },
300
- };
301
-
302
- const newData: Data = {
303
- "0xAccount1": [
304
- {
305
- hash: "0x222",
306
- description: "New Tx",
307
- timestamp: 2000,
308
- status: "pending",
309
- chainId: 1,
310
- },
311
- ],
312
- };
313
-
314
- const result = mergeData(legacyData, newData);
315
-
316
- expect(result["0xAccount1"]).toHaveLength(2);
317
- expect(result["0xAccount1"]?.map((tx) => tx.hash)).toContain("0x111");
318
- expect(result["0xAccount1"]?.map((tx) => tx.hash)).toContain("0x222");
319
- });
320
-
321
- it("should remove duplicate transactions when merging", () => {
322
- const legacyData: DataLegacy = {
323
- "0xAccount1": {
324
- 1: [
325
- {
326
- hash: "0xDuplicate",
327
- description: "Legacy",
328
- timestamp: 1000,
329
- status: "confirmed",
330
- chainId: 1,
331
- },
332
- ],
333
- },
334
- };
335
-
336
- const newData: Data = {
337
- "0xAccount1": [
338
- {
339
- hash: "0xDuplicate",
340
- description: "New",
341
- timestamp: 2000,
342
- status: "pending",
343
- chainId: 1,
344
- },
345
- ],
346
- };
347
-
348
- const result = mergeData(legacyData, newData);
349
-
350
- expect(result["0xAccount1"]).toHaveLength(1);
351
- expect(result["0xAccount1"]?.[0]?.hash).toBe("0xDuplicate");
352
- // Should keep the first occurrence (from newData since it's first in the array)
353
- expect(result["0xAccount1"]?.[0]?.description).toBe("New");
354
- });
355
-
356
- it("should handle accounts that only exist in legacy data", () => {
357
- const legacyData: DataLegacy = {
358
- "0xLegacyOnly": {
359
- 1: [
360
- {
361
- hash: "0x111",
362
- description: "Legacy",
363
- timestamp: 1000,
364
- status: "confirmed",
365
- chainId: 1,
366
- },
367
- ],
368
- },
369
- };
370
-
371
- const newData: Data = {
372
- "0xNewOnly": [
373
- {
374
- hash: "0x222",
375
- description: "New",
376
- timestamp: 2000,
377
- status: "pending",
378
- chainId: 1,
379
- },
380
- ],
381
- };
382
-
383
- const result = mergeData(legacyData, newData);
384
-
385
- expect(result["0xLegacyOnly"]).toHaveLength(1);
386
- expect(result["0xNewOnly"]).toHaveLength(1);
387
- });
388
-
389
- it("should handle empty legacy data", () => {
390
- const legacyData: DataLegacy = {};
391
- const newData: Data = {
392
- "0xAccount1": [
393
- {
394
- hash: "0x123",
395
- description: "New",
396
- timestamp: 1000,
397
- status: "confirmed",
398
- chainId: 1,
399
- },
400
- ],
401
- };
402
-
403
- const result = mergeData(legacyData, newData);
404
-
405
- expect(result).toEqual(newData);
406
- });
407
-
408
- it("should handle empty new data", () => {
409
- const legacyData: DataLegacy = {
410
- "0xAccount1": {
411
- 1: [
412
- {
413
- hash: "0x123",
414
- description: "Legacy",
415
- timestamp: 1000,
416
- status: "confirmed",
417
- chainId: 1,
418
- },
419
- ],
420
- },
421
- };
422
- const newData: Data = {};
423
-
424
- const result = mergeData(legacyData, newData);
425
-
426
- expect(result["0xAccount1"]).toHaveLength(1);
427
- expect(result["0xAccount1"]?.[0]?.hash).toBe("0x123");
428
- });
429
-
430
- it("should handle both empty legacy and new data", () => {
431
- const legacyData: DataLegacy = {};
432
- const newData: Data = {};
433
-
434
- const result = mergeData(legacyData, newData);
435
-
436
- expect(result).toEqual({});
437
- });
438
-
439
- it("should merge multiple chains from legacy data correctly", () => {
440
- const legacyData: DataLegacy = {
441
- "0xAccount1": {
442
- 1: [
443
- {
444
- hash: "0x111",
445
- description: "Chain 1",
446
- timestamp: 1000,
447
- status: "confirmed",
448
- chainId: 1,
449
- },
450
- ],
451
- 2: [
452
- {
453
- hash: "0x222",
454
- description: "Chain 2",
455
- timestamp: 2000,
456
- status: "pending",
457
- chainId: 2,
458
- },
459
- ],
460
- },
461
- };
462
-
463
- const newData: Data = {
464
- "0xAccount1": [
465
- {
466
- hash: "0x333",
467
- description: "New",
468
- timestamp: 3000,
469
- status: "confirmed",
470
- chainId: 1,
471
- },
472
- ],
473
- };
474
-
475
- const result = mergeData(legacyData, newData);
476
-
477
- expect(result["0xAccount1"]).toHaveLength(3);
478
- expect(result["0xAccount1"]?.map((tx) => tx.chainId)).toContain(1);
479
- expect(result["0xAccount1"]?.map((tx) => tx.chainId)).toContain(2);
480
- });
481
-
482
- it("should filter duplicates when new data has duplicates", () => {
483
- const legacyData: DataLegacy = {};
484
- const newData: Data = {
485
- "0xAccount1": [
486
- {
487
- hash: "0xDup",
488
- description: "First",
489
- timestamp: 1000,
490
- status: "confirmed",
491
- chainId: 1,
492
- },
493
- {
494
- hash: "0xDup",
495
- description: "Second",
496
- timestamp: 2000,
497
- status: "pending",
498
- chainId: 1,
499
- },
500
- ],
501
- };
502
-
503
- const result = mergeData(legacyData, newData);
504
-
505
- expect(result["0xAccount1"]).toHaveLength(1);
506
- expect(result["0xAccount1"]?.[0]?.description).toBe("First");
507
- });
508
- });
@@ -1,29 +0,0 @@
1
- import { useCallback } from "react";
2
-
3
- import { useBeraWagmi } from "@berachain/wagmi/hooks";
4
-
5
- import { InvalidArgumentError } from "~/errors/InvalidArgumentError";
6
- import { useTransactionStore } from "./TransactionStoreContext";
7
- import type { NewTransaction } from "./transactionStore";
8
-
9
- export function useAddRecentTransaction(): (
10
- transaction: NewTransaction,
11
- ) => void {
12
- const store = useTransactionStore();
13
- const { account } = useBeraWagmi();
14
- const address = account?.wallet?.address;
15
- return useCallback(
16
- (transaction: NewTransaction) => {
17
- if (!address) {
18
- throw new InvalidArgumentError({
19
- property: "address",
20
- value: address,
21
- expected: "Address",
22
- });
23
- }
24
-
25
- store.addTransaction(address, transaction);
26
- },
27
- [store, address],
28
- );
29
- }
@@ -1,27 +0,0 @@
1
- import { useEffect, useState } from "react";
2
-
3
- import { useBeraWallet } from "@berachain/wagmi/hooks";
4
-
5
- import { useTransactionStore } from "./TransactionStoreContext";
6
- import type { Transaction } from "./transactionStore";
7
-
8
- export function useRecentTransactions(): Transaction[] {
9
- const store = useTransactionStore();
10
- const { address } = useBeraWallet();
11
-
12
- const [transactions, setTransactions] = useState(() =>
13
- store && address ? store.getTransactions(address) : [],
14
- );
15
-
16
- useEffect(() => {
17
- if (store && address) {
18
- setTransactions(store.getTransactions(address));
19
-
20
- return store.onChange(() => {
21
- setTransactions(store.getTransactions(address));
22
- });
23
- }
24
- }, [store, address]);
25
-
26
- return transactions;
27
- }
File without changes
@@ -1,8 +0,0 @@
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";
@@ -1,7 +0,0 @@
1
- export interface ProtocolMetadata {
2
- name: string;
3
- logoURI: string;
4
- url: string;
5
- description: string;
6
- tags?: string[];
7
- }
@@ -1,57 +0,0 @@
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
- }));