@berachain/berajs 0.2.13 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/dist/actions/clients/BeraApolloClient.d.ts.map +1 -1
  2. package/dist/actions/clients/clientName.d.ts +10 -0
  3. package/dist/actions/clients/clientName.d.ts.map +1 -0
  4. package/dist/actions/clients/clientName.unit.test.d.ts +2 -0
  5. package/dist/actions/clients/clientName.unit.test.d.ts.map +1 -0
  6. package/dist/actions/clients/exports.d.ts +2 -0
  7. package/dist/actions/clients/exports.d.ts.map +1 -1
  8. package/dist/actions/clients/exports.mjs +26 -7
  9. package/dist/actions/clients/exports.mjs.map +1 -1
  10. package/dist/actions/clients/fetchBeep.d.ts +2 -2
  11. package/dist/actions/clients/fetchBeep.d.ts.map +1 -1
  12. package/dist/actions/clients/fetchEnso.d.ts +17 -0
  13. package/dist/actions/clients/fetchEnso.d.ts.map +1 -0
  14. package/dist/actions/clients/fetchLayerzero.d.ts +12 -0
  15. package/dist/actions/clients/fetchLayerzero.d.ts.map +1 -0
  16. package/dist/actions/clients/fetchOpenApi.d.ts +4 -1
  17. package/dist/actions/clients/fetchOpenApi.d.ts.map +1 -1
  18. package/dist/actions/clients/getApolloClient.d.ts.map +1 -1
  19. package/dist/actions/dex/aggregators/base.d.ts +30 -5
  20. package/dist/actions/dex/aggregators/base.d.ts.map +1 -1
  21. package/dist/actions/dex/aggregators/bex.d.ts +11 -1
  22. package/dist/actions/dex/aggregators/bex.d.ts.map +1 -1
  23. package/dist/actions/dex/aggregators/bgt.d.ts +2 -2
  24. package/dist/actions/dex/aggregators/bgt.d.ts.map +1 -1
  25. package/dist/actions/dex/aggregators/enso/enso.d.ts.map +1 -1
  26. package/dist/actions/dex/aggregators/enso/ensoErc4626.d.ts +1 -0
  27. package/dist/actions/dex/aggregators/enso/ensoErc4626.d.ts.map +1 -1
  28. package/dist/actions/dex/aggregators/erc4626.d.ts +2 -2
  29. package/dist/actions/dex/aggregators/erc4626.d.ts.map +1 -1
  30. package/dist/actions/dex/aggregators/fly.d.ts.map +1 -1
  31. package/dist/actions/dex/aggregators/haiku.d.ts +7 -1
  32. package/dist/actions/dex/aggregators/haiku.d.ts.map +1 -1
  33. package/dist/actions/dex/aggregators/honey.d.ts +2 -2
  34. package/dist/actions/dex/aggregators/honey.d.ts.map +1 -1
  35. package/dist/actions/dex/aggregators/kyberswap.d.ts.map +1 -1
  36. package/dist/actions/dex/aggregators/oogabooga.d.ts.map +1 -1
  37. package/dist/actions/dex/aggregators/openOcean.d.ts.map +1 -1
  38. package/dist/actions/dex/aggregators/wbera.d.ts +3 -2
  39. package/dist/actions/dex/aggregators/wbera.d.ts.map +1 -1
  40. package/dist/actions/dex/getAllPools.d.ts.map +1 -1
  41. package/dist/actions/dex/getApiPool.d.ts.map +1 -1
  42. package/dist/actions/enso/getEnsoUserTokensWithBalances.d.ts.map +1 -1
  43. package/dist/actions/enso/util.d.ts +1 -6
  44. package/dist/actions/enso/util.d.ts.map +1 -1
  45. package/dist/actions/exports.d.ts +3 -5
  46. package/dist/actions/exports.d.ts.map +1 -1
  47. package/dist/actions/exports.mjs +33 -64
  48. package/dist/actions/exports.mjs.map +1 -1
  49. package/dist/actions/governance/exports.mjs +3 -3
  50. package/dist/actions/honey/getChartData.d.ts +1 -1
  51. package/dist/actions/honey/getChartData.d.ts.map +1 -1
  52. package/dist/actions/honey/getHoney24hVolume.d.ts +2 -2
  53. package/dist/actions/honey/getHoney24hVolume.d.ts.map +1 -1
  54. package/dist/actions/honey/getHoneyCollaterals.d.ts +1 -1
  55. package/dist/actions/honey/getHoneyCollaterals.d.ts.map +1 -1
  56. package/dist/actions/honey/getHoneyTxns.d.ts +1 -1
  57. package/dist/actions/honey/getHoneyTxns.d.ts.map +1 -1
  58. package/dist/actions/pol/getBGTGlobalInfo.d.ts +0 -1
  59. package/dist/actions/pol/getBGTGlobalInfo.d.ts.map +1 -1
  60. package/dist/actions/pol/getBeraTokenTotalSupply.d.ts.map +1 -1
  61. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts +4 -27
  62. package/dist/actions/pol/getEarnedStakedBeraVault.d.ts.map +1 -1
  63. package/dist/actions/pol/getLSTStakeConfig.d.ts.map +1 -1
  64. package/dist/actions/pol/getRewardVaults.d.ts.map +1 -1
  65. package/dist/actions/pol/getSWBeraVaultMetadata.d.ts +1 -14
  66. package/dist/actions/pol/getSWBeraVaultMetadata.d.ts.map +1 -1
  67. package/dist/actions/pol/getStakedBeraAPY.d.ts +14 -0
  68. package/dist/actions/pol/getStakedBeraAPY.d.ts.map +1 -0
  69. package/dist/actions/pol/getStakedBeraSnapshots.d.ts +14 -4
  70. package/dist/actions/pol/getStakedBeraSnapshots.d.ts.map +1 -1
  71. package/dist/actions/pol/getStakingDailyAssets.d.ts +2 -2
  72. package/dist/actions/pol/getStakingDailyAssets.d.ts.map +1 -1
  73. package/dist/actions/server/exports.mjs +5 -5
  74. package/dist/actions/server/exports.mjs.map +1 -1
  75. package/dist/actions/server/getDailyValidatorBlockStats.d.ts +1 -1
  76. package/dist/actions/server/getDailyValidatorBlockStats.d.ts.map +1 -1
  77. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.d.ts +1 -1
  78. package/dist/actions/validators/getActiveBoostAndCommissionChangeDelay.d.ts.map +1 -1
  79. package/dist/actions/validators/getUserActiveValidators.d.ts +37 -1
  80. package/dist/actions/validators/getUserActiveValidators.d.ts.map +1 -1
  81. package/dist/actions/validators/getValidatorIncentiveDistribution.d.ts +1 -1
  82. package/dist/actions/validators/getValidatorIncentiveDistribution.d.ts.map +1 -1
  83. package/dist/actions/validators/getValidatorRewardAllocation.d.ts +4 -0
  84. package/dist/actions/validators/getValidatorRewardAllocation.d.ts.map +1 -1
  85. package/dist/chunk-3TRTSTDH.mjs +19 -0
  86. package/dist/chunk-3TRTSTDH.mjs.map +1 -0
  87. package/dist/{chunk-ZWTGVIPJ.mjs → chunk-4576RF2K.mjs} +29 -4
  88. package/dist/chunk-4576RF2K.mjs.map +1 -0
  89. package/dist/{chunk-PHYZRH4I.mjs → chunk-5MUCX35C.mjs} +9 -13
  90. package/dist/chunk-5MUCX35C.mjs.map +1 -0
  91. package/dist/{chunk-UA3Z47LT.mjs → chunk-6D4S3EAC.mjs} +97 -26
  92. package/dist/chunk-6D4S3EAC.mjs.map +1 -0
  93. package/dist/{chunk-AEN6IJFU.mjs → chunk-7KN7TDUC.mjs} +2 -2
  94. package/dist/{chunk-LE4CYW7S.mjs → chunk-FWRYUIJK.mjs} +3 -3
  95. package/dist/chunk-GDUKRUHE.mjs +29 -0
  96. package/dist/chunk-GDUKRUHE.mjs.map +1 -0
  97. package/dist/{chunk-PJRLHTGC.mjs → chunk-HPRLNT6R.mjs} +3 -3
  98. package/dist/{chunk-DOZJB6IJ.mjs → chunk-KY7JMIIS.mjs} +394 -346
  99. package/dist/chunk-KY7JMIIS.mjs.map +1 -0
  100. package/dist/{chunk-P3YZ7F22.mjs → chunk-LL7XR2H5.mjs} +34 -3
  101. package/dist/chunk-LL7XR2H5.mjs.map +1 -0
  102. package/dist/{chunk-EJIGERYM.mjs → chunk-M3MIGSH3.mjs} +2 -2
  103. package/dist/{chunk-NZAH3SGT.mjs → chunk-MVNQY2D4.mjs} +9 -4
  104. package/dist/chunk-MVNQY2D4.mjs.map +1 -0
  105. package/dist/{chunk-TGN55GKE.mjs → chunk-SC3BSCTN.mjs} +2 -2
  106. package/dist/{chunk-QQASX4LJ.mjs → chunk-TXWDUJOY.mjs} +2 -2
  107. package/dist/{chunk-EGAB6NFQ.mjs → chunk-UWJQ6UKG.mjs} +2 -2
  108. package/dist/chunk-XO2BFPTB.mjs +50 -0
  109. package/dist/chunk-XO2BFPTB.mjs.map +1 -0
  110. package/dist/{chunk-7TFV6UKF.mjs → chunk-XXKPXNQD.mjs} +1 -2
  111. package/dist/chunk-XXKPXNQD.mjs.map +1 -0
  112. package/dist/{chunk-IFNIPVTZ.mjs → chunk-Z337NBBW.mjs} +5 -49
  113. package/dist/chunk-Z337NBBW.mjs.map +1 -0
  114. package/dist/{chunk-J3LTASDE.mjs → chunk-ZHV3MQ4F.mjs} +4 -4
  115. package/dist/contexts/BeraFlags/BeraFlags.d.ts +1 -1
  116. package/dist/contexts/BeraFlags/BeraFlags.d.ts.map +1 -1
  117. package/dist/contexts/BeraFlags/defaultFlags.d.ts +2 -2
  118. package/dist/contexts/BeraFlags/defaultFlags.d.ts.map +1 -1
  119. package/dist/contexts/BexStatusProvider.d.ts +1 -1
  120. package/dist/contexts/BexStatusProvider.d.ts.map +1 -1
  121. package/dist/contexts/TokensProvider.d.ts +1 -1
  122. package/dist/contexts/TokensProvider.d.ts.map +1 -1
  123. package/dist/contexts/exports.mjs +9 -9
  124. package/dist/enum/contracts.d.ts +3 -0
  125. package/dist/enum/contracts.d.ts.map +1 -1
  126. package/dist/enum/exports.mjs +6 -4
  127. package/dist/enum/exports.mjs.map +1 -1
  128. package/dist/enum/txnEnum.d.ts +1 -1
  129. package/dist/enum/txnEnum.d.ts.map +1 -1
  130. package/dist/errors/RequestError.d.ts +19 -0
  131. package/dist/errors/RequestError.d.ts.map +1 -1
  132. package/dist/errors/errorMap.d.ts +4 -3
  133. package/dist/errors/errorMap.d.ts.map +1 -1
  134. package/dist/errors/exports.mjs +5 -5
  135. package/dist/errors/getErrorMessage.unit.test.d.ts +2 -0
  136. package/dist/errors/getErrorMessage.unit.test.d.ts.map +1 -0
  137. package/dist/generated/beep.d.ts +1597 -0
  138. package/dist/generated/beep.d.ts.map +1 -0
  139. package/dist/generated/enso.d.ts +4957 -0
  140. package/dist/generated/enso.d.ts.map +1 -0
  141. package/dist/generated/layerzero.d.ts +2057 -0
  142. package/dist/generated/layerzero.d.ts.map +1 -0
  143. package/dist/hooks/dex/useAggregatorsQuotes.d.ts.map +1 -1
  144. package/dist/hooks/dex/useAllUserPools.d.ts.map +1 -1
  145. package/dist/hooks/dex/useCrossChainNativeFee.d.ts +32 -0
  146. package/dist/hooks/dex/useCrossChainNativeFee.d.ts.map +1 -0
  147. package/dist/hooks/dex/useCrossChainNativeFee.unit.test.d.ts +2 -0
  148. package/dist/hooks/dex/useCrossChainNativeFee.unit.test.d.ts.map +1 -0
  149. package/dist/hooks/dex/useOnChainPoolData.d.ts.map +1 -1
  150. package/dist/hooks/dex/usePools.d.ts.map +1 -1
  151. package/dist/hooks/dex/useSingleAggregatorQuote.d.ts.map +1 -1
  152. package/dist/hooks/dex/useSingleAggregatorQuote.unit.test.d.ts +2 -0
  153. package/dist/hooks/dex/useSingleAggregatorQuote.unit.test.d.ts.map +1 -0
  154. package/dist/hooks/enso/useBendZapSupply.d.ts +2 -2
  155. package/dist/hooks/enso/useBendZapSupply.d.ts.map +1 -1
  156. package/dist/hooks/enso/useBendZapSupply.unit.test.d.ts +2 -0
  157. package/dist/hooks/enso/useBendZapSupply.unit.test.d.ts.map +1 -0
  158. package/dist/hooks/enso/useEnsoUserTokensWithBalances.d.ts.map +1 -1
  159. package/dist/hooks/enso/useEnsoUserTokensWithBalances.unit.test.d.ts +2 -0
  160. package/dist/hooks/enso/useEnsoUserTokensWithBalances.unit.test.d.ts.map +1 -0
  161. package/dist/hooks/enso/useZapStakeBera.d.ts.map +1 -1
  162. package/dist/hooks/enso/useZapStakeBera.unit.test.d.ts +2 -0
  163. package/dist/hooks/enso/useZapStakeBera.unit.test.d.ts.map +1 -0
  164. package/dist/hooks/exports.d.ts +2 -5
  165. package/dist/hooks/exports.d.ts.map +1 -1
  166. package/dist/hooks/exports.mjs +615 -911
  167. package/dist/hooks/exports.mjs.map +1 -1
  168. package/dist/hooks/governance/exports.mjs +4 -4
  169. package/dist/hooks/honey/useHoneyChartData.d.ts +4 -4
  170. package/dist/hooks/honey/useHoneyChartData.d.ts.map +1 -1
  171. package/dist/hooks/pol/useAutoclaimedIncentives.d.ts.map +1 -1
  172. package/dist/hooks/pol/useAutoclaimedIncentivesTxHash.d.ts.map +1 -1
  173. package/dist/hooks/pol/useRewardTokenToBeraRate.d.ts.map +1 -1
  174. package/dist/hooks/pol/useRewardVaultBalanceFromStakingToken.d.ts.map +1 -1
  175. package/dist/hooks/pol/useRewardVaults.d.ts.map +1 -1
  176. package/dist/hooks/pol/useStakedAPY.d.ts +11 -0
  177. package/dist/hooks/pol/useStakedAPY.d.ts.map +1 -0
  178. package/dist/hooks/pol/useStakedData.d.ts +4 -2
  179. package/dist/hooks/pol/useStakedData.d.ts.map +1 -1
  180. package/dist/hooks/pol/useStakedSnapshots.d.ts +1 -1
  181. package/dist/hooks/pol/useStakedSnapshots.d.ts.map +1 -1
  182. package/dist/hooks/pol/useStakingVaultsMetadata.d.ts +0 -1
  183. package/dist/hooks/pol/useStakingVaultsMetadata.d.ts.map +1 -1
  184. package/dist/hooks/tokens/useMultipleTokenInformation.d.ts +30 -0
  185. package/dist/hooks/tokens/useMultipleTokenInformation.d.ts.map +1 -1
  186. package/dist/hooks/tokens/useMultipleTokenInformation.unit.test.d.ts +2 -0
  187. package/dist/hooks/tokens/useMultipleTokenInformation.unit.test.d.ts.map +1 -0
  188. package/dist/hooks/tokens/usePollBalance.d.ts.map +1 -1
  189. package/dist/hooks/validators/useUserActiveValidators.d.ts +5 -0
  190. package/dist/hooks/validators/useUserActiveValidators.d.ts.map +1 -1
  191. package/dist/hooks/validators/useValidator.d.ts +0 -1
  192. package/dist/hooks/validators/useValidator.d.ts.map +1 -1
  193. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts +4 -5
  194. package/dist/hooks/validators/useValidatorIncentiveDistribution.d.ts.map +1 -1
  195. package/dist/hooks/validators/useValidatorRewardAllocation.d.ts +1 -0
  196. package/dist/hooks/validators/useValidatorRewardAllocation.d.ts.map +1 -1
  197. package/dist/types/beep/exports.d.ts +2 -0
  198. package/dist/types/beep/exports.d.ts.map +1 -0
  199. package/dist/types/beep/exports.mjs +1 -0
  200. package/dist/types/beep/exports.mjs.map +1 -0
  201. package/dist/types/bribeBoost.d.ts +0 -49
  202. package/dist/types/dex.d.ts +17 -0
  203. package/dist/types/enso.d.ts +1 -27
  204. package/dist/types/global.d.ts +7 -0
  205. package/dist/types/pol.d.ts +3 -48
  206. package/dist/utils/crossChainBridge.d.ts +74 -0
  207. package/dist/utils/crossChainBridge.d.ts.map +1 -0
  208. package/dist/utils/crossChainBridge.unit.test.d.ts +2 -0
  209. package/dist/utils/crossChainBridge.unit.test.d.ts.map +1 -0
  210. package/dist/utils/exports.d.ts +1 -1
  211. package/dist/utils/exports.d.ts.map +1 -1
  212. package/dist/utils/exports.mjs +142 -72
  213. package/dist/utils/exports.mjs.map +1 -1
  214. package/dist/utils/getTestClient.d.ts +5 -3
  215. package/dist/utils/getTestClient.d.ts.map +1 -1
  216. package/dist/utils/parseWhiskToken.d.ts.map +1 -1
  217. package/package.json +14 -10
  218. package/src/actions/clients/BeraApolloClient.ts +4 -2
  219. package/src/actions/clients/clientName.ts +17 -0
  220. package/src/actions/clients/clientName.unit.test.ts +39 -0
  221. package/src/actions/clients/exports.ts +2 -0
  222. package/src/actions/clients/fetchBeep.ts +6 -4
  223. package/src/actions/clients/fetchEnso.ts +47 -0
  224. package/src/actions/clients/fetchLayerzero.ts +33 -0
  225. package/src/actions/clients/fetchOpenApi.ts +9 -2
  226. package/src/actions/clients/fetchOpenApi.unit.test.ts +27 -12
  227. package/src/actions/clients/getApolloClient.ts +3 -11
  228. package/src/actions/dex/__tests__/aggregators.unit.test.ts +231 -2
  229. package/src/actions/dex/aggregators/base.ts +75 -17
  230. package/src/actions/dex/aggregators/bex.ts +41 -1
  231. package/src/actions/dex/aggregators/bgt.ts +11 -6
  232. package/src/actions/dex/aggregators/enso/enso.ts +1 -0
  233. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +27 -9
  234. package/src/actions/dex/aggregators/erc4626.ts +19 -5
  235. package/src/actions/dex/aggregators/fly.ts +1 -0
  236. package/src/actions/dex/aggregators/haiku.ts +33 -2
  237. package/src/actions/dex/aggregators/honey.ts +17 -6
  238. package/src/actions/dex/aggregators/kyberswap.ts +1 -0
  239. package/src/actions/dex/aggregators/oogabooga.ts +1 -0
  240. package/src/actions/dex/aggregators/openOcean.ts +1 -0
  241. package/src/actions/dex/aggregators/wbera.ts +17 -11
  242. package/src/actions/enso/getBendMultiplyBundle.ts +1 -1
  243. package/src/actions/enso/getEnsoUserTokensWithBalances.ts +4 -8
  244. package/src/actions/enso/util.ts +0 -59
  245. package/src/actions/exports.ts +3 -5
  246. package/src/actions/honey/getChartData.ts +2 -3
  247. package/src/actions/honey/getHoney24hVolume.ts +4 -13
  248. package/src/actions/honey/getHoneyCollaterals.ts +1 -1
  249. package/src/actions/honey/getHoneyTxns.ts +2 -3
  250. package/src/actions/pol/getBGTGlobalInfo.ts +0 -2
  251. package/src/actions/pol/getBeraTokenTotalSupply.ts +3 -33
  252. package/src/actions/pol/getEarnedStakedBeraVault.ts +1 -1
  253. package/src/actions/pol/getLSTStakeConfig.ts +0 -6
  254. package/src/actions/pol/getRewardVaults.ts +0 -1
  255. package/src/actions/pol/getSWBeraVaultMetadata.ts +2 -106
  256. package/src/actions/pol/getStakedBeraAPY.ts +44 -0
  257. package/src/actions/pol/getStakedBeraSnapshots.ts +17 -34
  258. package/src/actions/pol/getStakingDailyAssets.ts +1 -1
  259. package/src/actions/server/getDailyValidatorBlockStats.ts +1 -2
  260. package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +1 -1
  261. package/src/actions/validators/getUserActiveValidators.ts +116 -54
  262. package/src/actions/validators/getValidatorIncentiveDistribution.ts +1 -2
  263. package/src/actions/validators/getValidatorRewardAllocation.ts +12 -1
  264. package/src/contexts/BeraFlags/BeraFlags.tsx +1 -4
  265. package/src/contexts/BeraFlags/defaultFlags.ts +1 -3
  266. package/src/contexts/BexStatusProvider.tsx +1 -1
  267. package/src/contexts/TokensProvider.tsx +1 -4
  268. package/src/enum/contracts.ts +3 -0
  269. package/src/enum/txnEnum.ts +1 -1
  270. package/src/errors/BeraError.unit.test.ts +23 -0
  271. package/src/errors/RequestError.ts +46 -9
  272. package/src/errors/RequestError.unit.test.ts +54 -0
  273. package/src/errors/errorMap.ts +8 -3
  274. package/src/errors/getErrorMessage.unit.test.ts +32 -0
  275. package/src/generated/beep.ts +1605 -0
  276. package/src/generated/enso.ts +4965 -0
  277. package/src/generated/layerzero.ts +2065 -0
  278. package/src/hooks/dex/useAggregatorsQuotes.ts +7 -1
  279. package/src/hooks/dex/useCrossChainNativeFee.ts +83 -0
  280. package/src/hooks/dex/useCrossChainNativeFee.unit.test.ts +63 -0
  281. package/src/hooks/dex/useOnChainPoolData.ts +30 -13
  282. package/src/hooks/dex/useSingleAggregatorQuote.ts +10 -5
  283. package/src/hooks/dex/useSingleAggregatorQuote.unit.test.ts +86 -0
  284. package/src/hooks/enso/useBendZapSupply.ts +10 -38
  285. package/src/hooks/enso/useBendZapSupply.unit.test.ts +98 -0
  286. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +13 -3
  287. package/src/hooks/enso/useEnsoUserTokensWithBalances.unit.test.ts +69 -0
  288. package/src/hooks/enso/useZapStakeBera.ts +8 -1
  289. package/src/hooks/enso/useZapStakeBera.unit.test.ts +97 -0
  290. package/src/hooks/exports.ts +2 -5
  291. package/src/hooks/pol/useAutoclaimedIncentives.ts +6 -3
  292. package/src/hooks/pol/useAutoclaimedIncentivesTxHash.ts +5 -2
  293. package/src/hooks/pol/useRewardTokenToBeraRate.ts +5 -4
  294. package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +0 -1
  295. package/src/hooks/pol/{useStakedAPR.ts → useStakedAPY.ts} +11 -9
  296. package/src/hooks/pol/useStakedData.ts +15 -14
  297. package/src/hooks/pol/useStakedSnapshots.ts +1 -1
  298. package/src/hooks/pol/useStakingVaultsMetadata.ts +3 -8
  299. package/src/hooks/tokens/useMultipleTokenInformation.ts +64 -21
  300. package/src/hooks/tokens/useMultipleTokenInformation.unit.test.ts +91 -0
  301. package/src/hooks/tokens/usePollBalance.ts +4 -2
  302. package/src/hooks/validators/useUserActiveValidators.ts +54 -9
  303. package/src/hooks/validators/useValidatorIncentiveDistribution.ts +4 -5
  304. package/src/types/beep/exports.ts +4 -0
  305. package/src/types/bribeBoost.d.ts +0 -49
  306. package/src/types/dex.d.ts +17 -0
  307. package/src/types/enso.d.ts +1 -27
  308. package/src/types/global.d.ts +7 -0
  309. package/src/types/pol.d.ts +3 -48
  310. package/src/utils/crossChainBridge.ts +290 -0
  311. package/src/utils/crossChainBridge.unit.test.ts +177 -0
  312. package/src/utils/exports.ts +1 -1
  313. package/dist/BeraError-7-A5JYy_.d.ts +0 -123
  314. package/dist/BexStatusProvider-DRymVlQf.d.ts +0 -70
  315. package/dist/HoneyConfigProvider-COOuDNra.d.ts +0 -390
  316. package/dist/RequestError-DkUbo3ro.d.ts +0 -145
  317. package/dist/actions/dex/b-sdk.d.ts +0 -3
  318. package/dist/actions/enso/getEnsoSwapBundle.d.ts +0 -3
  319. package/dist/actions/enso/getEnsoSwapBundle.d.ts.map +0 -1
  320. package/dist/actions/pol/getBgtIncentiveDistributorPaused.d.ts +0 -10
  321. package/dist/actions/pol/getBgtIncentiveDistributorPaused.d.ts.map +0 -1
  322. package/dist/actions/pol/getRewardProofsByValidator.d.ts +0 -9
  323. package/dist/actions/pol/getRewardProofsByValidator.d.ts.map +0 -1
  324. package/dist/actions/pol/getStakedBeraAPR.d.ts +0 -12
  325. package/dist/actions/pol/getStakedBeraAPR.d.ts.map +0 -1
  326. package/dist/actions/pol/getUserClaimableIncentives.d.ts +0 -9
  327. package/dist/actions/pol/getUserClaimableIncentives.d.ts.map +0 -1
  328. package/dist/actions/validators/getValidatorAnalytics.d.ts +0 -12
  329. package/dist/actions/validators/getValidatorAnalytics.d.ts.map +0 -1
  330. package/dist/chunk-7TFV6UKF.mjs.map +0 -1
  331. package/dist/chunk-BSOWLS3W.mjs +0 -40
  332. package/dist/chunk-BSOWLS3W.mjs.map +0 -1
  333. package/dist/chunk-DOZJB6IJ.mjs.map +0 -1
  334. package/dist/chunk-IFNIPVTZ.mjs.map +0 -1
  335. package/dist/chunk-NZAH3SGT.mjs.map +0 -1
  336. package/dist/chunk-P3YZ7F22.mjs.map +0 -1
  337. package/dist/chunk-PHYZRH4I.mjs.map +0 -1
  338. package/dist/chunk-UA3Z47LT.mjs.map +0 -1
  339. package/dist/chunk-ZWTGVIPJ.mjs.map +0 -1
  340. package/dist/contexts/block-time-provider.d.ts +0 -10
  341. package/dist/defaultFlags-D6KfkTZx.d.ts +0 -10
  342. package/dist/dex-C_BB0b0O.d.ts +0 -37
  343. package/dist/getApolloClient-MWm_iq4u.d.ts +0 -39
  344. package/dist/getProposalVotes-DAUrdX2n.d.ts +0 -12
  345. package/dist/getValidatorQueuedOperatorAddress-N2I7wHd6.d.ts +0 -511
  346. package/dist/global.d-CR3zicga.d.ts +0 -231
  347. package/dist/global.d-CiZJ2eHz.d.ts +0 -231
  348. package/dist/honey-CYm0RWf4.d.ts +0 -14
  349. package/dist/hooks/enso/useEnsoSwapBundle.d.ts +0 -26
  350. package/dist/hooks/enso/useEnsoSwapBundle.d.ts.map +0 -1
  351. package/dist/hooks/pol/useBgtIncentiveDistributorPaused.d.ts +0 -8
  352. package/dist/hooks/pol/useBgtIncentiveDistributorPaused.d.ts.map +0 -1
  353. package/dist/hooks/pol/useStakedAPR.d.ts +0 -11
  354. package/dist/hooks/pol/useStakedAPR.d.ts.map +0 -1
  355. package/dist/hooks/validators/useUserClaimableIncentives.d.ts +0 -8
  356. package/dist/hooks/validators/useUserClaimableIncentives.d.ts.map +0 -1
  357. package/dist/hooks/validators/useValidatorAnalytics.d.ts +0 -11
  358. package/dist/hooks/validators/useValidatorAnalytics.d.ts.map +0 -1
  359. package/dist/pol.d-CeRgXBL8.d.ts +0 -167
  360. package/dist/txnEnum-ByI5dtDi.d.ts +0 -106
  361. package/dist/types/bribe-boost.d.ts +0 -69
  362. package/dist/useHoneySwapState-CXVWAThr.d.ts +0 -32
  363. package/dist/useHoneySwapState-twi7NTaO.d.ts +0 -32
  364. package/dist/utils/formatIncentivesTokenMap.d.ts +0 -3
  365. package/dist/utils/formatIncentivesTokenMap.d.ts.map +0 -1
  366. package/dist/utils/layerZeroScan.d.ts +0 -39
  367. package/dist/utils/layerZeroScan.d.ts.map +0 -1
  368. package/src/actions/enso/getEnsoSwapBundle.ts +0 -72
  369. package/src/actions/pol/getBgtIncentiveDistributorPaused.ts +0 -28
  370. package/src/actions/pol/getRewardProofsByValidator.ts +0 -49
  371. package/src/actions/pol/getStakedBeraAPR.ts +0 -56
  372. package/src/actions/pol/getUserClaimableIncentives.ts +0 -40
  373. package/src/actions/validators/getValidatorAnalytics.ts +0 -37
  374. package/src/hooks/enso/useEnsoSwapBundle.ts +0 -121
  375. package/src/hooks/pol/useBgtIncentiveDistributorPaused.ts +0 -34
  376. package/src/hooks/validators/useUserClaimableIncentives.ts +0 -148
  377. package/src/hooks/validators/useValidatorAnalytics.ts +0 -37
  378. package/src/utils/formatIncentivesTokenMap.ts +0 -19
  379. package/src/utils/layerZeroScan.ts +0 -124
  380. /package/dist/{chunk-AEN6IJFU.mjs.map → chunk-7KN7TDUC.mjs.map} +0 -0
  381. /package/dist/{chunk-LE4CYW7S.mjs.map → chunk-FWRYUIJK.mjs.map} +0 -0
  382. /package/dist/{chunk-PJRLHTGC.mjs.map → chunk-HPRLNT6R.mjs.map} +0 -0
  383. /package/dist/{chunk-EJIGERYM.mjs.map → chunk-M3MIGSH3.mjs.map} +0 -0
  384. /package/dist/{chunk-TGN55GKE.mjs.map → chunk-SC3BSCTN.mjs.map} +0 -0
  385. /package/dist/{chunk-QQASX4LJ.mjs.map → chunk-TXWDUJOY.mjs.map} +0 -0
  386. /package/dist/{chunk-EGAB6NFQ.mjs.map → chunk-UWJQ6UKG.mjs.map} +0 -0
  387. /package/dist/{chunk-J3LTASDE.mjs.map → chunk-ZHV3MQ4F.mjs.map} +0 -0
@@ -1,40 +0,0 @@
1
- import type { Address } from "viem";
2
-
3
- import { BeraError } from "../../errors/BeraError";
4
- import type { BribeBoostRewardItem } from "../../types/bribeBoost";
5
- import { getErrorResponse } from "../../utils/getErrorResponse";
6
- import { parseBaseArgs } from "../../utils/parseBaseArgs";
7
-
8
- /**
9
- * Server-side function to get user claimable incentives grouped by validator
10
- */
11
- export async function getUserClaimableIncentives({
12
- account,
13
- ...args
14
- }: {
15
- account: Address;
16
- } & BeraJS.BaseFunctionArgs): Promise<BribeBoostRewardItem[] | null> {
17
- const { config } = parseBaseArgs(args);
18
-
19
- // We'll try to revalidate on the client side by using the cache: "no-store" and swrImmutable
20
- // In the future, we can look at using cache and tags to invalidate the cache on the server side to prevent stale data
21
- const result = await fetch(
22
- `${
23
- config.pol.bribeBoostApi
24
- }/api/v1/wallets/${account.toLowerCase()}/rewards/aggregation`,
25
- {
26
- cache: "no-store",
27
- },
28
- );
29
-
30
- if (!result.ok) {
31
- const error = await getErrorResponse(result);
32
- throw new BeraError({
33
- message: "Failed to fetch incentives on server",
34
- cause: { error, result, account },
35
- reason: error?.error,
36
- });
37
- }
38
-
39
- return result.json();
40
- }
@@ -1,37 +0,0 @@
1
- import type { Address } from "viem";
2
-
3
- import type { GetValidatorAnalyticsQuery } from "@berachain/graphql/pol/subgraph";
4
-
5
- import { BeraError } from "../../errors/BeraError";
6
- import { beraFetchJson } from "../../utils/beraFetch";
7
-
8
- /**
9
- * Browser-only. Hits `/api/pol/validator-analytics`.
10
- *
11
- * @deprecated will be removed in pol vNext
12
- */
13
- export async function getValidatorAnalytics({
14
- pubkey,
15
- dayRange,
16
- }: {
17
- pubkey: Address;
18
- dayRange: number;
19
- }): Promise<GetValidatorAnalyticsQuery | undefined> {
20
- if (typeof window === "undefined") {
21
- throw new BeraError({
22
- message:
23
- "getValidatorAnalytics is browser-only; call from a Client Component / SWR hook",
24
- level: "error",
25
- });
26
- }
27
-
28
- const params = new URLSearchParams({
29
- pubkey,
30
- dayRange: String(dayRange),
31
- });
32
- return beraFetchJson<GetValidatorAnalyticsQuery>({
33
- url: `/api/pol/validator-analytics?${params}`,
34
- name: "pol-validator-analytics",
35
- type: "rest",
36
- });
37
- }
@@ -1,121 +0,0 @@
1
- "use client";
2
-
3
- import { getPublicClient } from "@wagmi/core";
4
- import { parseUnits } from "viem";
5
-
6
- import { defaultChainId as berachainChainId } from "@berachain/config/internal";
7
-
8
- import { useBeraWallet, useConfig } from "@berachain/wagmi/hooks";
9
- import { useSWR } from "@berachain/utils/pkg/swr";
10
-
11
- import { getEnsoClient } from "../../actions/clients/getEnsoClient";
12
- import { getEnsoSwapBundle } from "../../actions/enso/getEnsoSwapBundle";
13
- import { useBeraFlag } from "../../contexts/BeraFlags/BeraFlags";
14
- import { POLLING } from "../../enum/polling";
15
- import {
16
- assertAddress,
17
- assertAmount,
18
- assertDefined,
19
- assertPublicClient,
20
- } from "../../errors/assert";
21
- import type { BalanceToken, MinimalERC20 } from "../../types/dex";
22
- import type { GetZapTransactionResponse } from "../../types/enso";
23
- import { usePollWalletBalances } from "../tokens/usePollWalletBalances";
24
-
25
- /**
26
- * Get the swap bundle for swapping tokens using Enso.
27
- * @param {Pick<BalanceToken, "address" | "decimals">} tokenIn - The input token to swap from
28
- * @param {Pick<BalanceToken, "address" | "decimals">} tokenOut - The output token to swap to
29
- * @param {string} amount - The amount of input token to swap
30
- * @param {number} slippage - The slippage tolerance to use for the route in percentage
31
- * @returns {DefaultHookReturnType<GetZapTransactionResponse> & {tokens: BalanceToken[], refresh: () => void}}
32
- *
33
- * The zap transaction response data with polling enabled, see {@link GetZapTransactionResponse} and {@link BalanceToken}
34
- * @remarks The hook is only enabled when all parameters are provided and amount is greater than 0
35
- */
36
- export function useEnsoSwapBundle({
37
- tokenIn,
38
- tokenOut,
39
- amount,
40
- slippage,
41
- }: {
42
- tokenIn?: Pick<MinimalERC20, "address" | "decimals" | "chainId">;
43
- tokenOut?: Pick<MinimalERC20, "address" | "decimals">;
44
- amount?: string;
45
- slippage?: number;
46
- }) {
47
- const { address: fromAddress } = useBeraWallet();
48
- const wagmiConfig = useConfig();
49
- const proxyAggregatorsThroughVercel = useBeraFlag(
50
- "proxyAggregatorsThroughVercel",
51
- );
52
- const ensoClient = getEnsoClient({
53
- baseURL: proxyAggregatorsThroughVercel ? "/api/enso" : undefined,
54
- });
55
-
56
- const { refresh: refreshBalances } = usePollWalletBalances();
57
-
58
- const isEnabled =
59
- !!tokenIn &&
60
- !!tokenOut &&
61
- !!amount &&
62
- Number(amount) > 0 &&
63
- !!slippage &&
64
- !!fromAddress &&
65
- !!tokenIn.chainId;
66
-
67
- const QUERY_KEY = isEnabled
68
- ? ([
69
- "useEnsoSwapBundle",
70
- fromAddress,
71
- tokenIn,
72
- tokenOut,
73
- amount,
74
- slippage,
75
- proxyAggregatorsThroughVercel ?? false,
76
- ] as const)
77
- : null;
78
-
79
- const swrResponse = useSWR(
80
- QUERY_KEY,
81
- async ([, fromAddress, tokenIn, tokenOut, amount, slippage]) => {
82
- assertAddress(fromAddress, "fromAddress");
83
- assertAddress(tokenIn?.address, "tokenInAddress");
84
- assertDefined(tokenIn?.chainId, "tokenInChainId");
85
- assertAddress(tokenOut?.address, "tokenOutAddress");
86
- assertAmount(amount, "amount");
87
- assertAmount(slippage, "slippage");
88
-
89
- const publicClient = getPublicClient(wagmiConfig, {
90
- chainId: tokenIn.chainId,
91
- });
92
- assertPublicClient(publicClient);
93
-
94
- const rawAmount = parseUnits(amount, tokenIn.decimals).toString();
95
-
96
- return getEnsoSwapBundle({
97
- fromAddress,
98
- amountIn: rawAmount,
99
- tokenIn: tokenIn.address,
100
- tokenOut: tokenOut.address,
101
- chainId: tokenIn.chainId,
102
- ensoClient,
103
- destinationChainId: berachainChainId,
104
- slippage,
105
- publicClient,
106
- });
107
- },
108
- {
109
- refreshInterval: POLLING.NORMAL,
110
- isEnabled: isEnabled,
111
- },
112
- );
113
-
114
- return {
115
- ...swrResponse,
116
- refresh: () => {
117
- swrResponse.refresh();
118
- refreshBalances();
119
- },
120
- };
121
- }
@@ -1,34 +0,0 @@
1
- import { usePublicClient } from "@berachain/wagmi/hooks";
2
- import useSWR from "@berachain/utils/pkg/swr";
3
-
4
- import { getBgtIncentiveDistributorPaused } from "../../actions/pol/getBgtIncentiveDistributorPaused";
5
- import type {
6
- DefaultHookOptions,
7
- DefaultHookReturnType,
8
- } from "../../types/global";
9
-
10
- /**
11
- * Client hook around `getBgtIncentiveDistributorPaused`. When `paused()` is
12
- * true, users can no longer self-claim incentives and the bot distributes them
13
- * on their behalf. Fails closed (`false`) so a read error never blocks the UI.
14
- */
15
- export function useBgtIncentiveDistributorPaused(
16
- options?: DefaultHookOptions,
17
- ): DefaultHookReturnType<boolean> {
18
- const publicClient = usePublicClient();
19
-
20
- const QUERY_KEY = publicClient
21
- ? (["useBgtIncentiveDistributorPaused", publicClient.chain?.id] as const)
22
- : null;
23
-
24
- return useSWR(
25
- QUERY_KEY,
26
- async () =>
27
- getBgtIncentiveDistributorPaused({ publicClient }).catch(() => false),
28
- {
29
- revalidateOnFocus: false,
30
- revalidateOnReconnect: false,
31
- ...options,
32
- },
33
- );
34
- }
@@ -1,148 +0,0 @@
1
- import { useCallback, useMemo } from "react";
2
-
3
- import { useBeraWallet } from "@berachain/wagmi/hooks";
4
- import { useSWR } from "@berachain/utils/pkg/swr";
5
-
6
- import { getRewardProofsByValidator } from "../../actions/pol/getRewardProofsByValidator";
7
- import { getUserClaimableIncentives } from "../../actions/pol/getUserClaimableIncentives";
8
- import { POLLING } from "../../enum/polling";
9
- import { BeraError } from "../../errors/BeraError";
10
- import { BeraMonitoring } from "../../errors/BeraMonitoring";
11
- import { InvalidArgumentError } from "../../errors/InvalidArgumentError";
12
- import type { BribeBoostRewardProof } from "../../types/bribeBoost";
13
- import type { DefaultHookReturnType } from "../../types/global";
14
- import { formatIncentivesTokenMap } from "../../utils/formatIncentivesTokenMap";
15
-
16
- interface UseUserClaimableIncentivesReturnType
17
- extends DefaultHookReturnType<BribeBoostRewardProof[]> {
18
- tokenMap?: Set<string> | undefined;
19
- }
20
-
21
- export function useUserClaimableIncentives(): UseUserClaimableIncentivesReturnType {
22
- const { address: account } = useBeraWallet();
23
-
24
- const REWARDS_QUERY_KEY = account
25
- ? (["useUserClaimableIncentives", account] as const)
26
- : null;
27
-
28
- const allRewardsResponse = useSWR(
29
- REWARDS_QUERY_KEY,
30
- async ([, account]) => {
31
- if (!account) {
32
- throw new BeraError({
33
- message: "useUserClaimableIncentives needs a logged in account",
34
- level: "error",
35
- });
36
- }
37
-
38
- // Get all reward tokens and all claimable validator associated with the account
39
- return await getUserClaimableIncentives({
40
- account,
41
- });
42
- },
43
- {
44
- revalidateOnFocus: false,
45
- revalidateOnReconnect: false,
46
- revalidateIfStale: false,
47
- refreshInterval: POLLING.SLOW,
48
- },
49
- );
50
-
51
- const allRewards = allRewardsResponse?.data;
52
- const tokenMap = useMemo(() => {
53
- // Return empty set if no incentives data or still loading
54
- if (!allRewards) {
55
- return undefined;
56
- }
57
-
58
- // If the data is not an array, capture an error
59
- if (!Array.isArray(allRewards)) {
60
- BeraMonitoring.captureException(
61
- new BeraError({
62
- message: "Incorrect aggregated incentives data receieved.",
63
- level: "error",
64
- extra: {
65
- allRewards,
66
- account: account,
67
- },
68
- }),
69
- );
70
- return undefined;
71
- }
72
-
73
- return formatIncentivesTokenMap(allRewards);
74
- }, [allRewards, account]);
75
-
76
- const QUERY_KEY =
77
- account && allRewards
78
- ? (["useUserClaimableIncentives", account, allRewards] as const)
79
- : null;
80
-
81
- const swrResponse = useSWR(
82
- QUERY_KEY,
83
- async ([, account, allRewards]) => {
84
- if (!account) {
85
- throw new InvalidArgumentError({
86
- property: "account",
87
- value: account,
88
- expected: "Address",
89
- });
90
- }
91
-
92
- // Return empty set if no incentives data or still loading
93
- if (!allRewards) {
94
- return [];
95
- }
96
-
97
- if (!Array.isArray(allRewards)) {
98
- // If the data is unexpected, throw an error
99
- throw new InvalidArgumentError({
100
- message:
101
- "Incorrect aggregated incentives data receieved to calculate proofs.",
102
- property: "allRewards",
103
- value: allRewards,
104
- expected: "Array",
105
- level: "error",
106
- });
107
- }
108
-
109
- const validatorsSet = new Set(allRewards.map((item) => item.validator));
110
- const validatorAddresses = Array.from(validatorsSet);
111
-
112
- // Get total count of rewards for each validator in increments of MAX_PROOFS_SIZE_PER_INCENTIVE_CLAIM
113
- return await Promise.all(
114
- validatorAddresses.map(async (validator) => {
115
- const proofsData = await getRewardProofsByValidator({
116
- account: account,
117
- validator: validator as `0x${string}`,
118
- page: 1,
119
- perPage: 10_000,
120
- });
121
-
122
- return {
123
- ...proofsData,
124
- validator: validator,
125
- };
126
- }),
127
- );
128
- },
129
- {
130
- revalidateOnFocus: false,
131
- revalidateOnReconnect: false,
132
- revalidateIfStale: false,
133
- refreshInterval: POLLING.SLOW,
134
- },
135
- );
136
-
137
- const refresh = useCallback(() => {
138
- allRewardsResponse?.refresh();
139
- swrResponse?.refresh();
140
- }, [allRewardsResponse, swrResponse]);
141
-
142
- return {
143
- ...swrResponse,
144
- isLoading: allRewardsResponse?.isLoading || swrResponse?.isLoading,
145
- tokenMap,
146
- refresh,
147
- };
148
- }
@@ -1,37 +0,0 @@
1
- import type { Address } from "viem";
2
-
3
- import type { GetValidatorAnalyticsQuery } from "@berachain/graphql/pol/subgraph";
4
- import { useSWR } from "@berachain/utils/pkg/swr";
5
-
6
- import { getValidatorAnalytics } from "../../actions/validators/getValidatorAnalytics";
7
- import { POLLING } from "../../enum/polling";
8
- import type { DefaultHookReturnType } from "../../types/global";
9
-
10
- /**
11
- * @deprecated will be removed in pol vNext
12
- */
13
- export function useValidatorAnalytics({
14
- pubkey,
15
- dayRange,
16
- }: {
17
- pubkey: Address | undefined;
18
- dayRange: number;
19
- }): DefaultHookReturnType<GetValidatorAnalyticsQuery> {
20
- const QUERY_KEY =
21
- pubkey && dayRange
22
- ? (["useValidatorAnalytics", pubkey, dayRange] as const)
23
- : null;
24
-
25
- return useSWR(
26
- QUERY_KEY,
27
- async ([, pubkey, dayRange]) => {
28
- return await getValidatorAnalytics({
29
- pubkey: pubkey,
30
- dayRange,
31
- });
32
- },
33
- {
34
- refreshInterval: POLLING.SLOW,
35
- },
36
- );
37
- }
@@ -1,19 +0,0 @@
1
- import type { BribeBoostRewardItem } from "../types/bribeBoost";
2
-
3
- export function formatIncentivesTokenMap(
4
- allRewards: BribeBoostRewardItem[],
5
- ): Set<string> {
6
- const tokenMap = new Set<string>();
7
-
8
- for (const item of allRewards) {
9
- if (Array.isArray(item.rewards)) {
10
- for (const reward of item.rewards) {
11
- if (reward.token) {
12
- tokenMap.add(reward.token);
13
- }
14
- }
15
- }
16
- }
17
-
18
- return tokenMap;
19
- }
@@ -1,124 +0,0 @@
1
- import { BeraError } from "../errors/BeraError";
2
- import { InvalidArgumentError } from "../errors/InvalidArgumentError";
3
- import { RequestError } from "../errors/RequestError";
4
- import { beraFetchJson } from "./beraFetch";
5
-
6
- const LAYERZERO_SCAN_MAINNET_URL = "https://api-mainnet.layerzero-scan.com";
7
-
8
- export enum LayerZeroMessageStatus {
9
- INFLIGHT = "INFLIGHT",
10
- DELIVERED = "DELIVERED",
11
- FAILED = "FAILED",
12
- }
13
-
14
- export type LayerZeroMessage = {
15
- srcUaAddress: string;
16
- dstUaAddress: string;
17
- srcChainId: number;
18
- dstChainId: number;
19
- dstTxHash?: string;
20
- dstTxError?: string;
21
- srcTxHash?: string;
22
- srcBlockHash?: string;
23
- srcBlockNumber?: string;
24
- srcUaNonce: number;
25
- status: LayerZeroMessageStatus;
26
- };
27
-
28
- export type LayerZeroDeliveredMessage = LayerZeroMessage & {
29
- dstTxHash: string;
30
- };
31
-
32
- type GetMessagesBySrcTxHashResponse = {
33
- messages: LayerZeroMessage[];
34
- };
35
-
36
- function sleep(ms: number) {
37
- return new Promise((resolve) => setTimeout(resolve, ms));
38
- }
39
-
40
- async function getMessagesBySrcTxHash(
41
- srcTxHash: string,
42
- ): Promise<GetMessagesBySrcTxHashResponse> {
43
- return beraFetchJson<GetMessagesBySrcTxHashResponse>({
44
- url: `${LAYERZERO_SCAN_MAINNET_URL}/tx/${srcTxHash}`,
45
- type: "rest",
46
- name: "LayerZero Scan",
47
- });
48
- }
49
-
50
- export type WaitForMessageReceivedOptions = {
51
- pollInterval?: number;
52
- timeout?: number;
53
- };
54
-
55
- /**
56
- * Polls LayerZero scan API until the cross-chain message is delivered or fails.
57
- * HTTP errors are silently retried until timeout.
58
- *
59
- * @param srcTxHash - The source transaction hash to track
60
- * @param options - Configuration options
61
- * @param options.pollInterval - Polling interval in ms (default: 3000)
62
- * @param options.timeout - Timeout in ms (default: 600000 / 10 minutes)
63
- * @returns The delivered message with destination tx hash
64
- * @throws InvalidArgumentError if srcTxHash is missing
65
- * @throws BeraError if message fails, times out, or multiple messages found
66
- */
67
- export async function waitForLayerZeroMessageReceived(
68
- srcTxHash: string,
69
- options: WaitForMessageReceivedOptions = {},
70
- ): Promise<LayerZeroDeliveredMessage> {
71
- const { pollInterval = 3000, timeout = 600_000 } = options;
72
-
73
- if (!srcTxHash) {
74
- throw new InvalidArgumentError({
75
- property: "srcTxHash",
76
- value: srcTxHash,
77
- expected: "string",
78
- });
79
- }
80
-
81
- const startTime = Date.now();
82
-
83
- while (true) {
84
- // check timeout
85
- if (Date.now() - startTime > timeout) {
86
- throw new BeraError({
87
- message: `LayerZero message tracking timed out after ${timeout}ms`,
88
- reason: "LAYERZERO_TIMEOUT",
89
- level: "warning",
90
- });
91
- }
92
-
93
- try {
94
- const { messages } = await getMessagesBySrcTxHash(srcTxHash);
95
- const message = messages[0];
96
-
97
- if (messages.length > 1) {
98
- throw new BeraError({
99
- message: "More than one LayerZero message found for transaction",
100
- reason: "LAYERZERO_MULTIPLE_MESSAGES",
101
- });
102
- }
103
-
104
- if (message?.status === LayerZeroMessageStatus.FAILED) {
105
- throw new BeraError({
106
- message: `LayerZero message failed: ${message.dstTxError}`,
107
- reason: "LAYERZERO_MESSAGE_FAILED",
108
- });
109
- }
110
-
111
- if (message?.status === LayerZeroMessageStatus.DELIVERED) {
112
- return message as LayerZeroDeliveredMessage;
113
- }
114
- } catch (error) {
115
- // re-throw non-retryable errors (validation, timeout, failed message)
116
- // but allow RequestError to retry (network issues, temporary API errors)
117
- if (error instanceof BeraError && !(error instanceof RequestError)) {
118
- throw error;
119
- }
120
- }
121
-
122
- await sleep(pollInterval);
123
- }
124
- }