@berachain/berajs 0.2.8-beta.9 → 0.2.10

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 (254) hide show
  1. package/dist/{BeraError-_mQdkanr.d.cts → BeraError-7-A5JYy_.d.ts} +31 -2
  2. package/dist/{HoneyConfigProvider-DVP_9KZn.d.ts → HoneyConfigProvider-Dkj-_a5x.d.ts} +1 -1
  3. package/dist/{RequestError-BRIiJgHk.d.ts → RequestError-DBOIV65x.d.ts} +1 -1
  4. package/dist/abi/exports.mjs +4452 -2
  5. package/dist/actions/clients/exports.d.ts +78 -0
  6. package/dist/actions/clients/exports.mjs +21 -0
  7. package/dist/actions/exports.d.ts +154 -207
  8. package/dist/actions/exports.mjs +853 -2
  9. package/dist/actions/governance/exports.d.ts +140 -0
  10. package/dist/actions/governance/exports.mjs +226 -0
  11. package/dist/actions/server/exports.d.ts +13 -0
  12. package/dist/actions/server/exports.mjs +27 -0
  13. package/dist/chunk-3JJLQ2JX.mjs +211 -0
  14. package/dist/chunk-7YVNSDXG.mjs +86 -0
  15. package/dist/chunk-AUOPN6NK.mjs +96 -0
  16. package/dist/chunk-BGMRHTBQ.mjs +23 -0
  17. package/dist/chunk-CDK4YV3D.mjs +571 -0
  18. package/dist/chunk-DKMAIU74.mjs +62 -0
  19. package/dist/chunk-DQRH5VE3.mjs +25 -0
  20. package/dist/chunk-E7YFXBBQ.mjs +349 -0
  21. package/dist/chunk-GUURQAME.mjs +326 -0
  22. package/dist/chunk-GY6B3PD5.mjs +89 -0
  23. package/dist/chunk-HQCOU6GY.mjs +243 -0
  24. package/dist/chunk-HYDP32P6.mjs +135 -0
  25. package/dist/chunk-IXIBY5FP.mjs +80 -0
  26. package/dist/chunk-KHXJDYA4.mjs +1776 -0
  27. package/dist/chunk-NBYLMO2L.mjs +14 -0
  28. package/dist/chunk-O2NQFKJK.mjs +170 -0
  29. package/dist/chunk-P5WXXULM.mjs +54 -0
  30. package/dist/chunk-QBBOWFMH.mjs +4129 -0
  31. package/dist/chunk-QVHEM4BG.mjs +35 -0
  32. package/dist/chunk-SGIJVHZO.mjs +12 -0
  33. package/dist/chunk-SZ5C44L5.mjs +35 -0
  34. package/dist/chunk-WNBWX23Q.mjs +426 -0
  35. package/dist/chunk-Y6THHG77.mjs +126 -0
  36. package/dist/chunk-ZLTMIFCZ.mjs +165 -0
  37. package/dist/contexts/exports.d.ts +2 -2
  38. package/dist/contexts/exports.mjs +85 -2
  39. package/dist/enum/exports.d.ts +1 -1
  40. package/dist/enum/exports.mjs +46 -2
  41. package/dist/enum/governance/exports.d.ts +60 -0
  42. package/dist/enum/governance/exports.mjs +14 -0
  43. package/dist/errors/exports.d.ts +4 -3
  44. package/dist/errors/exports.mjs +48 -2
  45. package/dist/getApolloClient-BcUTGFUb.d.ts +40 -0
  46. package/dist/{getValidatorQueuedOperatorAddress-BcyxE9uw.d.ts → getValidatorQueuedOperatorAddress-DphU3qhE.d.ts} +2 -2
  47. package/dist/{global.d-5w_lvl2J.d.ts → global.d-BuGDKh4k.d.ts} +4 -240
  48. package/dist/hooks/exports.d.ts +83 -226
  49. package/dist/hooks/exports.mjs +7463 -4
  50. package/dist/hooks/governance/exports.d.ts +181 -0
  51. package/dist/hooks/governance/exports.mjs +888 -0
  52. package/dist/pol.d-Dw5SQcRX.d.ts +153 -0
  53. package/dist/{txnEnum-7_o92X3N.d.cts → txnEnum-ByI5dtDi.d.ts} +2 -60
  54. package/dist/types/exports.d.ts +9 -9
  55. package/dist/types/exports.mjs +0 -1
  56. package/dist/types/governance/exports.d.ts +109 -0
  57. package/dist/types/governance/exports.mjs +0 -0
  58. package/dist/{useHoneySwapState-B494PQDl.d.ts → useHoneySwapState-vFmuFF0g.d.ts} +1 -1
  59. package/dist/utils/exports.d.ts +15 -6
  60. package/dist/utils/exports.mjs +827 -2
  61. package/package.json +49 -13
  62. package/src/actions/__test/transports.ts +61 -0
  63. package/src/actions/clients/exports.ts +7 -0
  64. package/src/actions/clients/fetchBeep.ts +34 -0
  65. package/src/actions/clients/fetchOpenApi.ts +93 -0
  66. package/src/actions/clients/fetchOpenApi.unit.test.ts +223 -0
  67. package/src/actions/clients/fetchRailwayBackend.ts +34 -0
  68. package/src/actions/clients/getApolloClient.ts +58 -23
  69. package/src/actions/clients/getEnsoClient.ts +20 -9
  70. package/src/actions/dex/aggregators/enso/enso.ts +27 -17
  71. package/src/actions/dex/aggregators/enso/ensoErc4626.ts +2 -2
  72. package/src/actions/dex/aggregators/kyberswap.ts +18 -23
  73. package/src/actions/enso/__tests__/getEnsoUserTokensWithBalances.debug.test.ts +3 -6
  74. package/src/actions/enso/getEnsoUserTokensWithBalances.ts +18 -0
  75. package/src/actions/exports.ts +5 -9
  76. package/src/actions/governance/exports.ts +9 -0
  77. package/src/actions/governance/getAllProposals.ts +10 -65
  78. package/src/actions/governance/getProposalDetails.ts +6 -33
  79. package/src/actions/governance/getProposalVotes.ts +8 -15
  80. package/src/actions/honey/getChartData.ts +27 -21
  81. package/src/actions/honey/getHoney24hVolume.ts +19 -22
  82. package/src/actions/honey/getPythLatestPrices.ts +7 -0
  83. package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +1 -1
  84. package/src/actions/pol/getAutoclaimedIncentives.ts +41 -0
  85. package/src/actions/pol/getAutoclaimedIncentivesTxHash.ts +41 -0
  86. package/src/actions/pol/getBeraTokenTotalSupply.ts +45 -0
  87. package/src/actions/pol/getBgtIncentiveDistributorPaused.ts +28 -0
  88. package/src/actions/pol/getEarnedStakedBeraVault.ts +20 -20
  89. package/src/actions/pol/getGlobalData.ts +1 -0
  90. package/src/actions/pol/getHeroEarnVaults.ts +62 -0
  91. package/src/actions/pol/getIncentiveFeeClaimStats.ts +19 -38
  92. package/src/actions/pol/getRewardVaults.ts +4 -4
  93. package/src/actions/pol/getSWBeraVaultMetadata.ts +1 -1
  94. package/src/actions/pol/getStakingDailyAssets.ts +18 -17
  95. package/src/actions/server/exports.ts +1 -0
  96. package/src/actions/server/getDailyValidatorBlockStats.ts +33 -0
  97. package/src/actions/tokens/getWalletBalances.integration.test.ts +3 -6
  98. package/src/actions/transactions/beraWriteContract.integration.test.ts +3 -6
  99. package/src/actions/validators/getDailyValidatorBlockStats.ts +25 -24
  100. package/src/actions/validators/getValidatorAnalytics.ts +20 -21
  101. package/src/actions/validators/getValidatorIncentiveDistribution.ts +33 -0
  102. package/src/actions/validators/utils/getValidatorBoostApy.ts +1 -1
  103. package/src/enum/contracts.ts +1 -0
  104. package/src/enum/exports.ts +0 -1
  105. package/src/enum/governance/exports.ts +1 -0
  106. package/src/errors/BeraError.ts +47 -7
  107. package/src/errors/BeraTracing.unit.test.ts +65 -0
  108. package/src/errors/RequestError.ts +25 -4
  109. package/src/errors/RequestError.unit.test.ts +55 -0
  110. package/src/errors/errorMap.ts +8 -0
  111. package/src/errors/exports.ts +5 -0
  112. package/src/errors/getRevertReason.integration.test.ts +3 -3
  113. package/src/errors/spanStatus.ts +78 -0
  114. package/src/errors/spanStatus.unit.test.ts +62 -0
  115. package/src/hooks/dex/useCreatePool.ts +1 -88
  116. package/src/hooks/dex/useOnChainPoolData.ts +27 -2
  117. package/src/hooks/dex/usePriceImpact.ts +12 -5
  118. package/src/hooks/enso/useBendDemultiply.ts +9 -1
  119. package/src/hooks/enso/useBendMultiply.ts +9 -1
  120. package/src/hooks/enso/useBendZapSupply.ts +26 -7
  121. package/src/hooks/enso/useEnsoSwapBundle.ts +17 -3
  122. package/src/hooks/enso/useEnsoUserTokensWithBalances.ts +13 -2
  123. package/src/hooks/exports.ts +3 -15
  124. package/src/hooks/governance/exports.ts +14 -0
  125. package/src/hooks/pol/useAutoclaimedIncentives.ts +40 -0
  126. package/src/hooks/pol/useAutoclaimedIncentivesTxHash.ts +45 -0
  127. package/src/hooks/pol/useStakedAPR.ts +2 -2
  128. package/src/hooks/pol/useStakedSnapshots.ts +5 -9
  129. package/src/hooks/validators/useValidator.ts +6 -8
  130. package/src/hooks/validators/useValidatorIncentiveDistribution.ts +39 -0
  131. package/src/types/bribe-boost.d.ts +19 -0
  132. package/src/types/exports.ts +0 -1
  133. package/src/types/governance/exports.ts +1 -0
  134. package/src/utils/beraFetch.ts +9 -3
  135. package/src/utils/exports.ts +1 -0
  136. package/src/utils/getServerSideClient.ts +4 -2
  137. package/src/utils/polyfillAbortSignalAny.ts +53 -0
  138. package/src/utils/polyfillAbortSignalAny.unit.test.ts +81 -0
  139. package/src/utils/sanitizeRpcUrl.ts +22 -0
  140. package/src/utils/tracedTransport.ts +35 -0
  141. package/dist/BeraError-_mQdkanr.d.ts +0 -94
  142. package/dist/BexStatusProvider-DRymVlQf.d.cts +0 -70
  143. package/dist/HoneyConfigProvider-DfkjmzEf.d.cts +0 -390
  144. package/dist/RequestError-DSUzJ1Iy.d.cts +0 -144
  145. package/dist/abi/exports.cjs +0 -2
  146. package/dist/abi/exports.cjs.map +0 -1
  147. package/dist/abi/exports.d.cts +0 -6574
  148. package/dist/abi/exports.mjs.map +0 -1
  149. package/dist/actions/exports.cjs +0 -2
  150. package/dist/actions/exports.cjs.map +0 -1
  151. package/dist/actions/exports.d.cts +0 -1650
  152. package/dist/actions/exports.mjs.map +0 -1
  153. package/dist/chunk-45HIEVNI.cjs +0 -4
  154. package/dist/chunk-45HIEVNI.cjs.map +0 -1
  155. package/dist/chunk-47ILYVHC.mjs +0 -2
  156. package/dist/chunk-47ILYVHC.mjs.map +0 -1
  157. package/dist/chunk-575OK77P.mjs +0 -2
  158. package/dist/chunk-575OK77P.mjs.map +0 -1
  159. package/dist/chunk-5NVZG5N6.mjs +0 -2
  160. package/dist/chunk-5NVZG5N6.mjs.map +0 -1
  161. package/dist/chunk-6DIA6PXV.cjs +0 -2
  162. package/dist/chunk-6DIA6PXV.cjs.map +0 -1
  163. package/dist/chunk-6JJIZCVY.cjs +0 -2
  164. package/dist/chunk-6JJIZCVY.cjs.map +0 -1
  165. package/dist/chunk-7F72ZH4Q.mjs +0 -2
  166. package/dist/chunk-7F72ZH4Q.mjs.map +0 -1
  167. package/dist/chunk-AUA42YIG.mjs +0 -4
  168. package/dist/chunk-AUA42YIG.mjs.map +0 -1
  169. package/dist/chunk-BC2WX6O6.cjs +0 -2
  170. package/dist/chunk-BC2WX6O6.cjs.map +0 -1
  171. package/dist/chunk-CJOZC5Z2.cjs +0 -2
  172. package/dist/chunk-CJOZC5Z2.cjs.map +0 -1
  173. package/dist/chunk-D6L7LTA2.cjs +0 -2
  174. package/dist/chunk-D6L7LTA2.cjs.map +0 -1
  175. package/dist/chunk-DDEQFR3M.cjs +0 -2
  176. package/dist/chunk-DDEQFR3M.cjs.map +0 -1
  177. package/dist/chunk-GXV2JA36.mjs +0 -2
  178. package/dist/chunk-GXV2JA36.mjs.map +0 -1
  179. package/dist/chunk-ISYNEDET.mjs +0 -2
  180. package/dist/chunk-ISYNEDET.mjs.map +0 -1
  181. package/dist/chunk-JDDRTHFG.mjs +0 -2
  182. package/dist/chunk-JDDRTHFG.mjs.map +0 -1
  183. package/dist/chunk-JDZGYU5T.mjs +0 -2
  184. package/dist/chunk-JDZGYU5T.mjs.map +0 -1
  185. package/dist/chunk-LVOXBZMA.cjs +0 -2
  186. package/dist/chunk-LVOXBZMA.cjs.map +0 -1
  187. package/dist/chunk-MK5NS5B5.mjs +0 -2
  188. package/dist/chunk-MK5NS5B5.mjs.map +0 -1
  189. package/dist/chunk-NAXAZJJY.mjs +0 -2
  190. package/dist/chunk-NAXAZJJY.mjs.map +0 -1
  191. package/dist/chunk-NLVWRMGD.mjs +0 -2
  192. package/dist/chunk-NLVWRMGD.mjs.map +0 -1
  193. package/dist/chunk-OGBD5YOG.mjs +0 -2
  194. package/dist/chunk-OGBD5YOG.mjs.map +0 -1
  195. package/dist/chunk-OGJMSGB2.mjs +0 -2
  196. package/dist/chunk-OGJMSGB2.mjs.map +0 -1
  197. package/dist/chunk-OIYXOKTT.cjs +0 -2
  198. package/dist/chunk-OIYXOKTT.cjs.map +0 -1
  199. package/dist/chunk-OUD27MU7.cjs +0 -2
  200. package/dist/chunk-OUD27MU7.cjs.map +0 -1
  201. package/dist/chunk-PRLVZIKD.mjs +0 -2
  202. package/dist/chunk-PRLVZIKD.mjs.map +0 -1
  203. package/dist/chunk-Q2SNRLW3.cjs +0 -2
  204. package/dist/chunk-Q2SNRLW3.cjs.map +0 -1
  205. package/dist/chunk-REWME3FY.cjs +0 -2
  206. package/dist/chunk-REWME3FY.cjs.map +0 -1
  207. package/dist/chunk-RJN36GBU.mjs +0 -2
  208. package/dist/chunk-RJN36GBU.mjs.map +0 -1
  209. package/dist/chunk-RWOICHRW.cjs +0 -2
  210. package/dist/chunk-RWOICHRW.cjs.map +0 -1
  211. package/dist/chunk-S4CDSVLK.cjs +0 -2
  212. package/dist/chunk-S4CDSVLK.cjs.map +0 -1
  213. package/dist/chunk-SFEULGSX.cjs +0 -2
  214. package/dist/chunk-SFEULGSX.cjs.map +0 -1
  215. package/dist/chunk-WBTS6KFG.mjs +0 -2
  216. package/dist/chunk-WBTS6KFG.mjs.map +0 -1
  217. package/dist/chunk-WRFDB3QJ.cjs +0 -2
  218. package/dist/chunk-WRFDB3QJ.cjs.map +0 -1
  219. package/dist/chunk-XNJLSA6P.cjs +0 -2
  220. package/dist/chunk-XNJLSA6P.cjs.map +0 -1
  221. package/dist/contexts/exports.cjs +0 -2
  222. package/dist/contexts/exports.cjs.map +0 -1
  223. package/dist/contexts/exports.d.cts +0 -66
  224. package/dist/contexts/exports.mjs.map +0 -1
  225. package/dist/defaultFlags-D6KfkTZx.d.cts +0 -10
  226. package/dist/dex-C_BB0b0O.d.cts +0 -37
  227. package/dist/enum/exports.cjs +0 -2
  228. package/dist/enum/exports.cjs.map +0 -1
  229. package/dist/enum/exports.d.cts +0 -23
  230. package/dist/enum/exports.mjs.map +0 -1
  231. package/dist/errors/exports.cjs +0 -2
  232. package/dist/errors/exports.cjs.map +0 -1
  233. package/dist/errors/exports.d.cts +0 -327
  234. package/dist/errors/exports.mjs.map +0 -1
  235. package/dist/getValidatorQueuedOperatorAddress-Cql_D50j.d.cts +0 -562
  236. package/dist/global.d-B7IeayVX.d.cts +0 -474
  237. package/dist/honey-CYm0RWf4.d.cts +0 -14
  238. package/dist/hooks/exports.cjs +0 -4
  239. package/dist/hooks/exports.cjs.map +0 -1
  240. package/dist/hooks/exports.d.cts +0 -1734
  241. package/dist/hooks/exports.mjs.map +0 -1
  242. package/dist/polling-BKnyavLI.d.cts +0 -8
  243. package/dist/txnEnum-7_o92X3N.d.ts +0 -164
  244. package/dist/types/exports.cjs +0 -1
  245. package/dist/types/exports.cjs.map +0 -1
  246. package/dist/types/exports.d.cts +0 -90
  247. package/dist/types/exports.mjs.map +0 -1
  248. package/dist/useHoneySwapState-D6vpv19r.d.cts +0 -32
  249. package/dist/utils/exports.cjs +0 -2
  250. package/dist/utils/exports.cjs.map +0 -1
  251. package/dist/utils/exports.d.cts +0 -420
  252. package/dist/utils/exports.mjs.map +0 -1
  253. package/src/actions/dex/getIsTokenExploited.ts +0 -63
  254. package/src/hooks/dex/useExploitedTokens.ts +0 -57
@@ -1,2 +1,853 @@
1
- import{$ as rt,A as ve,Aa as Rt,B as De,Ba as Tt,C as Re,Ca as It,D as Te,Da as Mt,E as Ie,Ea as Vt,F as Me,Fa as Ot,G as Ve,Ga as Wt,H as Oe,I as We,J as Je,K as Ue,L as _e,M as He,N as Ee,O as Ge,P as $e,Q as Le,R as qe,S as ze,T as Xe,U as je,V as Ke,W as Ze,X as Qe,Y as Ye,Z as et,_ as tt,a as ae,aa as ot,b as R,ba as nt,c as T,ca as at,d as I,da as it,e as se,ea as st,f as me,fa as mt,g as de,ga as dt,h as ce,ha as ct,i as pe,ia as pt,j as ue,ja as ut,k as le,ka as lt,l as fe,la as yt,m as ge,ma as bt,n as ye,na as At,o as be,oa as xt,p as Ae,pa as ht,q as xe,qa as Ct,r as he,ra as Pt,s as Ce,sa as wt,t as Pe,ta as kt,u as we,ua as Bt,v as ke,va as Ft,w as Be,wa as Nt,x as Fe,xa as St,y as Ne,ya as vt,z as Se,za as Dt}from"../chunk-AUA42YIG.mjs";import"../chunk-NLVWRMGD.mjs";import{a as ie,b as ft,c as gt}from"../chunk-47ILYVHC.mjs";import"../chunk-NAXAZJJY.mjs";import"../chunk-OGJMSGB2.mjs";import"../chunk-RJN36GBU.mjs";import{b as h,c as l,d as C}from"../chunk-WBTS6KFG.mjs";import{a as u,d as A,l as P,q as w}from"../chunk-JDDRTHFG.mjs";import{a as d,e as x}from"../chunk-5NVZG5N6.mjs";import"../chunk-PRLVZIKD.mjs";import"../chunk-GXV2JA36.mjs";import{formatEther as M}from"viem";import{metaMorphoV11Abi as V}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function _t({vaultAddress:e,publicClient:t}){let r=await t.readContract({address:e,abi:V,functionName:"maxDeposit",args:[e]});return M(r)}import{mapPoolType as O}from"@berachain-foundation/berancer-sdk";var Gt=e=>({type:O(e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});import{vaultAbi as W}from"@berachain/abis/bex/vault";async function zt({publicClient:e,...t}){let{config:r}=d(t);return(await e.readContract({address:r.bex.vault,abi:W,functionName:"getPausedState"}))[0]}import{decodeFunctionData as B,erc20Abi as J,pad as U,toFunctionSignature as _,trim as k}from"viem";import{appConfig as H,defaultChainId as E}from"@berachain/config/internal";import{beraChefAbi as G}from"@berachain/abis/pol/rewards/beraChef";import{rewardVaultAbi as $}from"@berachain/abis/pol/rewards/rewardVault";function L(e){return e.some(t=>{let r=t;return r.name==="implementation"||r.name==="proxyType"||r.type==="constructor"&&r.inputs?.[0]?.name==="implementation"})}async function F({contractAddress:e,chainId:t,publicClient:r}){let o=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${H.apiKeys.private.etherscan}&chainId=${t}`,n=await fetch(o);if(!n.ok)throw new Error(`Failed to fetch ABI: ${n.statusText}`);let a=await n.json();if(a.status==="0")throw new Error(a.result);let m=JSON.parse(a.result);if(!L(m))return m;let i=await r.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||k(i)==="0x00")return m;let s=U(k(i),{size:20});return F({contractAddress:s,chainId:t,publicClient:r})}async function q({address:e,callData:t,knownAbi:r,chainId:o,publicClient:n}){try{if(B({data:t,abi:r}))return r}catch{}return F({contractAddress:e,chainId:o,publicClient:n}).catch(()=>{})}function z(e,t){try{return B({data:e,abi:t})}catch{return}}function X(e,t){return e.find(r=>r.type==="function"&&r.name===t)}function j(e){if(e)try{return _(e)}catch(t){console.error(t)}}async function Yt({address:e,callData:t,chainId:r=E,publicClient:o}){let n=[...G,...$,...J],a=await q({address:e,callData:t,knownAbi:n,chainId:r,publicClient:o}),m=z(t,a);if(!a||!m)return{args:[]};let i=X(a,m.functionName),s=j(i);return{abiItem:i,functionSignature:s,functionName:m.functionName,args:m.args}}import{formatUnits as g}from"viem";import{honeyFactoryAbi as b}from"@berachain/abis/honey/honeyFactory";async function nr({client:e,collateralList:t,...r}){let{config:o}=d(r);try{let n={mint:[],redeem:[]};for(let s of t)n.mint.push(e.readContract({address:o.honey.factory,abi:b,functionName:"mintRates",args:[s.address]})),n.redeem.push(e.readContract({address:o.honey.factory,abi:b,functionName:"redeemRates",args:[s.address]}));let[a,m,i]=await Promise.all([Promise.all(n.mint),Promise.all(n.redeem),e.readContract({address:o.honey.factory,abi:b,functionName:"getWeights"})]);return t.reduce((s,c)=>{let p=t.indexOf(c);return s.single[c.address]={mintFee:1-+g(a[p],18),redeemFee:1-+g(m[p],18)},s.basket.mintFee+=s.single[c.address].mintFee*+g(i[p],18),s.basket.redeemFee+=s.single[c.address].redeemFee*+g(i[p],18),s},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(n){throw console.log(n),n}}import{honeyAbi as K}from"@berachain/abis/honey/honey";async function mr({client:e,...t}){let{config:r}=d(t),o=r.honey.token;return await e.readContract({address:o,abi:K,functionName:"paused"})}import{rootPriceOracleAbi as Z}from"@berachain/abis/extras/rootPriceOracle";async function pr({pythOracle:e,publicClient:t}){return t.readContract({address:e,abi:Z,functionName:"pythOracle"})}import{honeyFactoryAbi as Q}from"@berachain/abis/honey/honeyFactory";async function gr({publicClient:e,factory:t,...r}){let{config:o}=d(r);return e.readContract({address:t??o.honey.factory,abi:Q,functionName:"priceOracle"})}async function hr({defaultBlockTime:e,publicClient:t,blocksSpan:r,...o}){l(t);let{config:n}=d(o),a=e??n.averageBlockTime,m=r??Math.floor(w(1)/a),i=await t?.getBlock({blockTag:"latest"}),s=await t?.getBlock({blockNumber:i.number-BigInt(m)});return(P(Date.now())-Number(s?.timestamp))/(Number(i?.number)-Number(s?.number))}import{lstStakerVaultAbi as Y}from"@berachain/abis/pol/lst/lstStakerVault";async function Fr({tokenList:e,publicClient:t,lstStakingVaults:r,...o}){l(t);let{config:n}=d({...o,chainId:t.chain?.id??o.chainId}),a=e.filter(i=>r.includes(i.address));return a.length===0?[]:(await Promise.all(a.map(async i=>({assetTokenAddress:await t.readContract({address:i.address,abi:Y,functionName:"asset"}),stakingToken:i})))).reduce((i,{assetTokenAddress:s,stakingToken:c})=>{let p=e.find(y=>x(y,s));return p&&i.push({id:c.address,receiptToken:c,inputTokens:[p]}),i},[])}import{rewardVaultAbi as v}from"@berachain/abis/pol/rewards/rewardVault";import{rewardVaultFactoryAbi as ee}from"@berachain/abis/pol/rewards/rewardVaultFactory";var N=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function S({publicClient:e,...t}){let{config:r}=d(t),o=r.pol.factory;h(e,"publicClient"),C(r.pol.factory,"factoryAddress");let n=await e.readContract({address:o,abi:ee,functionName:"beacon"});return e.readContract({address:n,abi:N,functionName:"implementation"})}async function Wr({publicClient:e,...t}){l(e);let r=await S({publicClient:e,...t}),[o,n]=await Promise.all([e.readContract({address:r,abi:v,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:r,abi:v,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(o),maxRewardDuration:Number(n)}}import{zeroAddress as te}from"viem";import{rewardVaultFactoryAbi as re}from"@berachain/abis/pol/rewards/rewardVaultFactory";async function Er({tokenAddress:e,publicClient:t,factoryAddress:r,...o}){let{config:n}=d(o),a=await t.readContract({address:r??n.pol.factory,abi:re,functionName:"getVault",args:[e]});return a===te?null:a}import{pythPriceOracleAbi as oe}from"@berachain/abis/extras/pythPriceOracle";async function qr({tokenList:e,publicClient:t,...r}){let{config:o}=d(r);try{let n=await Promise.all(e.map(a=>t.readContract({address:o.honey.pythOracle,abi:oe,functionName:"feeds",args:[a]})));return e.reduce((a,m,i)=>({...a,[m]:n[i]}),{})}catch(n){throw console.error("getPythPriceFeedId",n),n}}async function Kr({url:e,...t}={}){let{config:r}=d(t);return(await A({url:e??r.lists.tokenList,type:"rest",name:"GitHub"})).tokens??[]}import{bgtAbi as D}from"@berachain/abis/pol/bgt";import{beraChefAbi as f}from"@berachain/abis/pol/rewards/beraChef";async function to({publicClient:e,ui:t,...r}){let{config:o}=d(r),[n,a,m,i,s,c,p,y]=await Promise.all([e.readContract({address:o.pol.beraChef,abi:f,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:o.pol.beraChef,abi:f,functionName:"commissionChangeDelay"}),e.readContract({address:o.pol.beraChef,abi:f,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:o.pol.beraChef,abi:f,functionName:"maxWeightPerVault"}),e.readContract({address:o.pol.beraChef,abi:f,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:o.tokens.bgt,abi:D,functionName:"dropBoostDelay"}),e.readContract({address:o.tokens.bgt,abi:D,functionName:"activateBoostDelay"}),e.readContract({address:o.pol.beraChef,abi:f,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(n)/1e4,boostDelay:Number(p),unboostDelay:Number(c),commissionChangeDelay:Number(a),rewardAllocationBlockDelay:Number(m),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(s),rewardAllocationInactivityBlockSpan:Number(y),ui:t}}function no({rewardAllocationWeights:e,activeOnly:t=!0}){let r=e.filter(o=>o?.receivingVault).reduce((o,n)=>{for(let a of n.receivingVault?.activeIncentives??[]){if(t&&a.remainingAmount==="0")continue;let m=new u(a.incentiveRate).times(n.percentage),i=new u(a.incentiveRateUsd).times(n.percentage),s=a.token.address.toLowerCase(),c=o.get(s);c?o.set(s,{...c,incentiveRate:new u(c.incentiveRate).plus(m).toString(),incentiveRateUsd:new u(c.incentiveRateUsd).plus(i).toString(),remainingAmount:new u(c.remainingAmount).plus(a.remainingAmount).toString(),remainingAmountUsd:new u(c.remainingAmountUsd).plus(a.remainingAmountUsd).toString()}):o.set(s,{...a,tokenAddress:a.token.address,token:a.token,incentiveRate:m.toString(),incentiveRateUsd:i.toString(),remainingAmount:a.remainingAmount})}return o},new Map);return Array.from(r.values())}function ne(e){return e?.rewardAllocationWeights?.reduce((t,r)=>{if(!r)return t;let o=r.receivingVault?.activeIncentives.filter(n=>Number(n.remainingAmount)>0).reduce((n,a)=>{let m=Number(a.remainingAmountUsd)/Number(a.remainingAmount);return n+Number(a.incentiveRate)*m},0)??0;return t+o*r.percentage},0)}function io({validator:e,bgtPrice:t}){let r=Number(e.dynamicData?.activeBoostAmount??0),o=ne(e);return!o||!r?0:o*Number(e.dynamicData?.lastDayDistributedBGTAmount??0)*365/(r*t)}export{me as BalancerApi,se as BaseAggregator,R as BeraApolloClient,Te as HoneyPreviewMethod,be as MOCKED_PROPOSAL_STATUSES,He as RewardVaultDistributionMode,no as aggregateValidatorIncentives,bt as beraWriteContract,ye as checkProposalField,Ae as computeActualStatus,Pt as formatValidatorRewardAllocation,to as getActiveBoostAndCommissionChangeDelay,de as getAllPools,xe as getAllProposals,At as getAllValidators,lt as getAllowances,xt as getApiEnrichedAllocation,ce as getApiPool,ht as getApiValidator,T as getApolloClient,ft as getBalanceCall,Ge as getBgtAprSimulation,hr as getBlockTime,_e as getBlockTimestamp,he as getBodyErrors,Be as getChartData,Fe as getCollateralWeights,ae as getConvertToAssets,Ct as getDailyValidatorBlockStats,Yt as getDecodedFunctionData,Ft as getDefaultRewardAllocation,$e as getEarnedStakedBeraVault,ie as getEnsoClient,De as getGlobalCapLimit,qe as getGlobalData,pe as getGlobalLiquidityAndSwapVolume,Re as getHoney24hVolume,Se as getHoneyCollaterals,nr as getHoneyFees,mr as getHoneyPausedState,Ie as getHoneyPreview,qr as getHoneyPythFeeds,pr as getHoneyPythOracle,gr as getHoneyRootPriceOracle,Me as getHoneyVaultsBalance,ze as getIncentiveFeeClaimStats,Fr as getLSTStakeConfig,Xe as getMarkets,_t as getMaxDeposit,le as getOnChainPool,fe as getPoolEvents,ge as getPoolHistoricalData,ue as getPoolPausedState,Gt as getPoolState,Ce as getProposalDetails,we as getProposalFromTx,ke as getProposalVotes,Ve as getPythLatestPrices,We as getPythUpdateFee,Oe as getRelativeCapLimit,je as getRewardProofsByValidator,Ke as getRewardTokenToBeraRate,Ze as getRewardVault,Wr as getRewardVaultDurationConstants,Er as getRewardVaultFromToken,Qe as getRewardVaultIncentives,Ee as getRewardVaultRewards,Ye as getRewardVaultStakingToken,Le as getRewardVaults,ot as getSWBeraVaultMetadata,nt as getSWBeraWithdrawal,rt as getStakeWithdrawalCooldown,et as getStakedBeraAPR,tt as getStakedBeraSnapshots,Nt as getStakingPoolBatch,Je as getSwapPayload,ut as getTokenCurrentPrices,Ne as getTokenInformation,Kr as getTokens,at as getTotalStakedAmount,vt as getUserActiveValidators,St as getUserBoostsOnValidator,it as getUserClaimableIncentives,Dt as getUserStakingPositions,mt as getUserVaultInfo,dt as getUserVaults,st as getUserVaultsReward,Rt as getValidatorAnalytics,io as getValidatorBoostApy,Tt as getValidatorCommission,It as getValidatorEstimatedBgtPerYear,Mt as getValidatorOperatorAddress,Vt as getValidatorQueuedCommission,Ot as getValidatorQueuedOperatorAddress,Wt as getValidatorQueuedRewardAllocation,ne as getValidatorReturnPerBgt,kt as getValidatorRewardAllocation,ct as getVaultHistory,zt as getVaultPausedState,pt as getVaultValidators,gt as getWalletBalances,I as gql,ve as isBadCollateralAsset,Ue as isBasketModeEnabled,Bt as isDefaultRewardAllocation,yt as isImpersonateAccount,wt as isSameRewardAllocation,Pe as parseProposalBody};
2
- //# sourceMappingURL=exports.mjs.map
1
+ import {
2
+ BalancerApi,
3
+ BaseAggregator,
4
+ HoneyPreviewMethod,
5
+ RewardVaultDistributionMode,
6
+ beraWriteContract,
7
+ formatValidatorRewardAllocation,
8
+ getAllPools,
9
+ getAllValidators,
10
+ getAllowances,
11
+ getApiEnrichedAllocation,
12
+ getApiPool,
13
+ getApiValidator,
14
+ getAutoclaimedIncentives,
15
+ getAutoclaimedIncentivesTxHash,
16
+ getBgtAprSimulation,
17
+ getBlockTimestamp,
18
+ getChartData,
19
+ getCollateralWeights,
20
+ getConvertToAssets,
21
+ getDailyValidatorBlockStats,
22
+ getDefaultRewardAllocation,
23
+ getEarnedStakedBeraVault,
24
+ getGlobalCapLimit,
25
+ getGlobalData,
26
+ getGlobalLiquidityAndSwapVolume,
27
+ getHoney24hVolume,
28
+ getHoneyCollaterals,
29
+ getHoneyPreview,
30
+ getHoneyVaultsBalance,
31
+ getIncentiveFeeClaimStats,
32
+ getMarkets,
33
+ getOnChainPool,
34
+ getPoolEvents,
35
+ getPoolHistoricalData,
36
+ getPoolPausedState,
37
+ getPythLatestPrices,
38
+ getPythUpdateFee,
39
+ getRelativeCapLimit,
40
+ getRewardProofsByValidator,
41
+ getRewardTokenToBeraRate,
42
+ getRewardVault,
43
+ getRewardVaultIncentives,
44
+ getRewardVaultRewards,
45
+ getRewardVaultStakingToken,
46
+ getRewardVaults,
47
+ getSWBeraVaultMetadata,
48
+ getSWBeraWithdrawal,
49
+ getStakeWithdrawalCooldown,
50
+ getStakedBeraAPR,
51
+ getStakedBeraSnapshots,
52
+ getStakingPoolBatch,
53
+ getSwapPayload,
54
+ getTokenCurrentPrices,
55
+ getTokenInformation,
56
+ getTotalStakedAmount,
57
+ getUserActiveValidators,
58
+ getUserBoostsOnValidator,
59
+ getUserClaimableIncentives,
60
+ getUserStakingPositions,
61
+ getUserVaultInfo,
62
+ getUserVaults,
63
+ getUserVaultsReward,
64
+ getValidatorAnalytics,
65
+ getValidatorCommission,
66
+ getValidatorEstimatedBgtPerYear,
67
+ getValidatorOperatorAddress,
68
+ getValidatorQueuedCommission,
69
+ getValidatorQueuedOperatorAddress,
70
+ getValidatorQueuedRewardAllocation,
71
+ getValidatorRewardAllocation,
72
+ getVaultHistory,
73
+ getVaultValidators,
74
+ isBadCollateralAsset,
75
+ isBasketModeEnabled,
76
+ isDefaultRewardAllocation,
77
+ isImpersonateAccount,
78
+ isSameRewardAllocation
79
+ } from "../chunk-QBBOWFMH.mjs";
80
+ import "../chunk-P5WXXULM.mjs";
81
+ import {
82
+ BeraApolloClient,
83
+ getApolloClient,
84
+ gql
85
+ } from "../chunk-3JJLQ2JX.mjs";
86
+ import "../chunk-CDK4YV3D.mjs";
87
+ import {
88
+ getBalanceCall,
89
+ getEnsoClient,
90
+ getWalletBalances
91
+ } from "../chunk-HYDP32P6.mjs";
92
+ import "../chunk-HQCOU6GY.mjs";
93
+ import "../chunk-AUOPN6NK.mjs";
94
+ import "../chunk-7YVNSDXG.mjs";
95
+ import {
96
+ assertAddress,
97
+ assertDefined,
98
+ assertPublicClient
99
+ } from "../chunk-GY6B3PD5.mjs";
100
+ import {
101
+ bignumber_js_default,
102
+ hoursInSeconds,
103
+ msToSeconds
104
+ } from "../chunk-E7YFXBBQ.mjs";
105
+ import {
106
+ beraFetchJson
107
+ } from "../chunk-Y6THHG77.mjs";
108
+ import {
109
+ isToken
110
+ } from "../chunk-IXIBY5FP.mjs";
111
+ import {
112
+ parseBaseArgs
113
+ } from "../chunk-DQRH5VE3.mjs";
114
+ import "../chunk-SZ5C44L5.mjs";
115
+ import "../chunk-ZLTMIFCZ.mjs";
116
+ import "../chunk-KHXJDYA4.mjs";
117
+
118
+ // src/actions/bend/getMaxDeposit.ts
119
+ import { formatEther } from "viem";
120
+ import { metaMorphoV11Abi as metaMorphoAbi } from "@berachain/abis/bend-metamorpho/metaMorphoV11";
121
+ async function getMaxDeposit({
122
+ vaultAddress,
123
+ publicClient
124
+ }) {
125
+ const maxDeposit = await publicClient.readContract({
126
+ address: vaultAddress,
127
+ abi: metaMorphoAbi,
128
+ functionName: "maxDeposit",
129
+ args: [vaultAddress]
130
+ });
131
+ return formatEther(maxDeposit);
132
+ }
133
+
134
+ // src/actions/dex/getPoolWithState.ts
135
+ import {
136
+ mapPoolType
137
+ } from "@berachain-foundation/berancer-sdk";
138
+ var getPoolState = (apiPool) => {
139
+ return {
140
+ type: mapPoolType(apiPool.type),
141
+ protocolVersion: apiPool.protocolVersion,
142
+ tokens: apiPool.tokens.map(
143
+ (pt) => ({
144
+ ...pt,
145
+ address: pt.address
146
+ })
147
+ ),
148
+ id: apiPool.id,
149
+ address: apiPool.address
150
+ };
151
+ };
152
+
153
+ // src/actions/dex/getVaultPausedState.ts
154
+ import { vaultAbi as balancerVaultAbi } from "@berachain/abis/bex/vault";
155
+ async function getVaultPausedState({
156
+ publicClient,
157
+ ...args
158
+ }) {
159
+ const { config } = parseBaseArgs(args);
160
+ const vaultPausedState = await publicClient.readContract({
161
+ address: config.bex.vault,
162
+ abi: balancerVaultAbi,
163
+ functionName: "getPausedState"
164
+ });
165
+ return vaultPausedState[0];
166
+ }
167
+
168
+ // src/actions/honey/getHoneyFees.ts
169
+ import { formatUnits } from "viem";
170
+ import { honeyFactoryAbi } from "@berachain/abis/honey/honeyFactory";
171
+ async function getHoneyFees({
172
+ client,
173
+ collateralList,
174
+ ...args
175
+ }) {
176
+ const { config } = parseBaseArgs(args);
177
+ try {
178
+ const promiseList = {
179
+ mint: [],
180
+ redeem: []
181
+ };
182
+ for (const coll of collateralList) {
183
+ promiseList.mint.push(
184
+ client.readContract({
185
+ address: config.honey.factory,
186
+ abi: honeyFactoryAbi,
187
+ functionName: "mintRates",
188
+ args: [coll.address]
189
+ })
190
+ );
191
+ promiseList.redeem.push(
192
+ client.readContract({
193
+ address: config.honey.factory,
194
+ abi: honeyFactoryAbi,
195
+ functionName: "redeemRates",
196
+ args: [coll.address]
197
+ })
198
+ );
199
+ }
200
+ const [mintRates, redeemRates, collateralWeights] = await Promise.all([
201
+ Promise.all(promiseList.mint),
202
+ Promise.all(promiseList.redeem),
203
+ // fetch the collateral weights, needed to calculate the weighted basket rates
204
+ client.readContract({
205
+ address: config.honey.factory,
206
+ abi: honeyFactoryAbi,
207
+ functionName: "getWeights"
208
+ })
209
+ ]);
210
+ return collateralList.reduce(
211
+ (acc, coll) => {
212
+ const collIdx = collateralList.indexOf(coll);
213
+ acc.single[coll.address] = {
214
+ mintFee: 1 - +formatUnits(mintRates[collIdx], 18),
215
+ redeemFee: 1 - +formatUnits(redeemRates[collIdx], 18)
216
+ };
217
+ acc.basket.mintFee += acc.single[coll.address].mintFee * +formatUnits(collateralWeights[collIdx], 18);
218
+ acc.basket.redeemFee += acc.single[coll.address].redeemFee * +formatUnits(collateralWeights[collIdx], 18);
219
+ return acc;
220
+ },
221
+ {
222
+ single: {},
223
+ basket: { mintFee: 0, redeemFee: 0 }
224
+ }
225
+ );
226
+ } catch (e) {
227
+ console.log(e);
228
+ throw e;
229
+ }
230
+ }
231
+
232
+ // src/actions/honey/getHoneyPausedState.ts
233
+ import { honeyAbi } from "@berachain/abis/honey/honey";
234
+ async function getHoneyPausedState({
235
+ client,
236
+ ...args
237
+ }) {
238
+ const { config } = parseBaseArgs(args);
239
+ const honeyAddress = config.honey.token;
240
+ const honeyPausedState = await client.readContract({
241
+ address: honeyAddress,
242
+ abi: honeyAbi,
243
+ functionName: "paused"
244
+ });
245
+ return honeyPausedState;
246
+ }
247
+
248
+ // src/actions/honey/getHoneyPythPriceOracle.ts
249
+ import { rootPriceOracleAbi as honeyRootOracleAbi } from "@berachain/abis/extras/rootPriceOracle";
250
+ async function getHoneyPythOracle({
251
+ pythOracle,
252
+ publicClient
253
+ }) {
254
+ return publicClient.readContract({
255
+ address: pythOracle,
256
+ abi: honeyRootOracleAbi,
257
+ functionName: "pythOracle"
258
+ });
259
+ }
260
+
261
+ // src/actions/honey/getHoneyRootPriceOracle.ts
262
+ import { honeyFactoryAbi as honeyFactoryAbi2 } from "@berachain/abis/honey/honeyFactory";
263
+ async function getHoneyRootPriceOracle({
264
+ publicClient,
265
+ factory,
266
+ ...args
267
+ }) {
268
+ const { config } = parseBaseArgs(args);
269
+ return publicClient.readContract({
270
+ address: factory ?? config.honey.factory,
271
+ abi: honeyFactoryAbi2,
272
+ functionName: "priceOracle"
273
+ });
274
+ }
275
+
276
+ // src/actions/pol/getBeraTokenTotalSupply.ts
277
+ import { ChainId } from "@berachain/config";
278
+ async function getBeraTokenTotalSupply(args = {}) {
279
+ const { config } = parseBaseArgs(args);
280
+ const network = config.chainId === ChainId.MAINNET ? "mainnet" : "bepolia";
281
+ const supplyMonitor = config.pol.supplyMonitor;
282
+ const baseUrl = typeof supplyMonitor === "string" ? supplyMonitor : supplyMonitor.uri;
283
+ const data = await beraFetchJson(
284
+ {
285
+ url: `${baseUrl}/api/stats/bera?network=${network}`,
286
+ name: typeof supplyMonitor === "string" ? "supply-monitor-bera" : supplyMonitor.name,
287
+ type: "rest"
288
+ },
289
+ { cache: "no-store" }
290
+ );
291
+ return data.totalSupply.toString();
292
+ }
293
+
294
+ // src/actions/pol/getBgtIncentiveDistributorPaused.ts
295
+ import { bgtIncentiveDistributorAbi } from "@berachain/abis/pol/rewards/bgtIncentiveDistributor";
296
+ async function getBgtIncentiveDistributorPaused({
297
+ publicClient,
298
+ ...args
299
+ }) {
300
+ assertPublicClient(publicClient);
301
+ const { config } = parseBaseArgs(args);
302
+ return publicClient.readContract({
303
+ address: config.pol.bgtIncentiveDistributor,
304
+ abi: bgtIncentiveDistributorAbi,
305
+ functionName: "paused"
306
+ });
307
+ }
308
+
309
+ // src/actions/pol/getBlockTime.ts
310
+ async function getBlockTime({
311
+ defaultBlockTime,
312
+ publicClient,
313
+ blocksSpan,
314
+ ...args
315
+ }) {
316
+ assertPublicClient(publicClient);
317
+ const { config } = parseBaseArgs(args);
318
+ const blockTime = defaultBlockTime ?? config.averageBlockTime;
319
+ const span = blocksSpan ?? Math.floor(hoursInSeconds(1) / blockTime);
320
+ const currentBlock = await publicClient?.getBlock({ blockTag: "latest" });
321
+ const oldestBlock = await publicClient?.getBlock({
322
+ blockNumber: currentBlock.number - BigInt(span)
323
+ });
324
+ return (
325
+ // we need to use current timestamp as the latest block might not have been minted (chain halted)
326
+ (msToSeconds(Date.now()) - Number(oldestBlock?.timestamp)) / (Number(currentBlock?.number) - Number(oldestBlock?.number))
327
+ );
328
+ }
329
+
330
+ // src/actions/pol/getHeroEarnVaults.ts
331
+ import {
332
+ GetHeroEarnVaults
333
+ } from "@berachain/graphql/pol/api";
334
+ async function getHeroEarnVaults({
335
+ bestAprExcludedAddresses = [],
336
+ ...args
337
+ } = {}) {
338
+ const bexApiGraphqlClient = getApolloClient("api", args);
339
+ const res = await bexApiGraphqlClient.query({
340
+ query: GetHeroEarnVaults,
341
+ variables: { bestAprExcludedAddresses }
342
+ });
343
+ return {
344
+ bestApr: res.data.bestApr.vaults,
345
+ bendRewardVault: res.data.bendRewardVault.vaults,
346
+ bendVaults: res.data.bendVaults
347
+ };
348
+ }
349
+
350
+ // src/actions/pol/getLSTStakeConfig.ts
351
+ import { lstStakerVaultAbi } from "@berachain/abis/pol/lst/lstStakerVault";
352
+ async function getLSTStakeConfig({
353
+ tokenList,
354
+ publicClient,
355
+ lstStakingVaults,
356
+ ...args
357
+ }) {
358
+ assertPublicClient(publicClient);
359
+ const { config } = parseBaseArgs({
360
+ ...args,
361
+ chainId: publicClient.chain?.id ?? args.chainId
362
+ });
363
+ const lstStakingTokens = tokenList.filter(
364
+ (token) => lstStakingVaults.includes(token.address)
365
+ );
366
+ if (lstStakingTokens.length === 0) {
367
+ return [];
368
+ }
369
+ const assets = await Promise.all(
370
+ lstStakingTokens.map(async (stakingToken) => {
371
+ const assetTokenAddress = await publicClient.readContract({
372
+ address: stakingToken.address,
373
+ abi: lstStakerVaultAbi,
374
+ functionName: "asset"
375
+ });
376
+ return { assetTokenAddress, stakingToken };
377
+ })
378
+ );
379
+ return assets.reduce(
380
+ (acc, { assetTokenAddress, stakingToken }) => {
381
+ const assetToken = tokenList.find(
382
+ (token) => isToken(token, assetTokenAddress)
383
+ );
384
+ if (!assetToken) return acc;
385
+ acc.push({
386
+ id: stakingToken.address,
387
+ receiptToken: stakingToken,
388
+ inputTokens: [assetToken]
389
+ });
390
+ return acc;
391
+ },
392
+ []
393
+ );
394
+ }
395
+
396
+ // src/actions/pol/getRewardVaultDurationConstants.ts
397
+ import { rewardVaultAbi } from "@berachain/abis/pol/rewards/rewardVault";
398
+
399
+ // src/actions/pol/getRewardVaultBeaconImplementation.ts
400
+ import { rewardVaultFactoryAbi } from "@berachain/abis/pol/rewards/rewardVaultFactory";
401
+
402
+ // src/abi/utils/upgradableBeacon.ts
403
+ var upgradableBeaconAbi = [
404
+ {
405
+ inputs: [
406
+ { internalType: "address", name: "initialOwner", type: "address" },
407
+ {
408
+ internalType: "address",
409
+ name: "initialImplementation",
410
+ type: "address"
411
+ }
412
+ ],
413
+ stateMutability: "payable",
414
+ type: "constructor"
415
+ },
416
+ { inputs: [], name: "NewImplementationHasNoCode", type: "error" },
417
+ { inputs: [], name: "NewOwnerIsZeroAddress", type: "error" },
418
+ { inputs: [], name: "Unauthorized", type: "error" },
419
+ {
420
+ anonymous: false,
421
+ inputs: [
422
+ {
423
+ indexed: true,
424
+ internalType: "address",
425
+ name: "oldOwner",
426
+ type: "address"
427
+ },
428
+ {
429
+ indexed: true,
430
+ internalType: "address",
431
+ name: "newOwner",
432
+ type: "address"
433
+ }
434
+ ],
435
+ name: "OwnershipTransferred",
436
+ type: "event"
437
+ },
438
+ {
439
+ anonymous: false,
440
+ inputs: [
441
+ {
442
+ indexed: true,
443
+ internalType: "address",
444
+ name: "implementation",
445
+ type: "address"
446
+ }
447
+ ],
448
+ name: "Upgraded",
449
+ type: "event"
450
+ },
451
+ {
452
+ inputs: [],
453
+ name: "implementation",
454
+ outputs: [{ internalType: "address", name: "result", type: "address" }],
455
+ stateMutability: "view",
456
+ type: "function"
457
+ },
458
+ {
459
+ inputs: [],
460
+ name: "owner",
461
+ outputs: [{ internalType: "address", name: "result", type: "address" }],
462
+ stateMutability: "view",
463
+ type: "function"
464
+ },
465
+ {
466
+ inputs: [],
467
+ name: "renounceOwnership",
468
+ outputs: [],
469
+ stateMutability: "nonpayable",
470
+ type: "function"
471
+ },
472
+ {
473
+ inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
474
+ name: "transferOwnership",
475
+ outputs: [],
476
+ stateMutability: "nonpayable",
477
+ type: "function"
478
+ },
479
+ {
480
+ inputs: [
481
+ { internalType: "address", name: "newImplementation", type: "address" }
482
+ ],
483
+ name: "upgradeTo",
484
+ outputs: [],
485
+ stateMutability: "nonpayable",
486
+ type: "function"
487
+ }
488
+ ];
489
+
490
+ // src/actions/pol/getRewardVaultBeaconImplementation.ts
491
+ async function getRewardVaultBeaconImplementation({
492
+ publicClient,
493
+ ...args
494
+ }) {
495
+ const { config } = parseBaseArgs(args);
496
+ const factoryAddress = config.pol.factory;
497
+ assertDefined(publicClient, "publicClient");
498
+ assertAddress(config.pol.factory, "factoryAddress");
499
+ const beacon = await publicClient.readContract({
500
+ address: factoryAddress,
501
+ abi: rewardVaultFactoryAbi,
502
+ functionName: "beacon"
503
+ });
504
+ return publicClient.readContract({
505
+ address: beacon,
506
+ abi: upgradableBeaconAbi,
507
+ functionName: "implementation"
508
+ });
509
+ }
510
+
511
+ // src/actions/pol/getRewardVaultDurationConstants.ts
512
+ async function getRewardVaultDurationConstants({
513
+ publicClient,
514
+ ...baseArgs
515
+ }) {
516
+ assertPublicClient(publicClient);
517
+ const beaconImplementation = await getRewardVaultBeaconImplementation({
518
+ publicClient,
519
+ ...baseArgs
520
+ });
521
+ const [minRewardDuration, maxRewardDuration] = await Promise.all([
522
+ publicClient.readContract({
523
+ address: beaconImplementation,
524
+ abi: rewardVaultAbi,
525
+ functionName: "MIN_REWARD_DURATION"
526
+ }),
527
+ publicClient.readContract({
528
+ address: beaconImplementation,
529
+ abi: rewardVaultAbi,
530
+ functionName: "MAX_REWARD_DURATION"
531
+ })
532
+ ]);
533
+ return {
534
+ minRewardDuration: Number(minRewardDuration),
535
+ maxRewardDuration: Number(maxRewardDuration)
536
+ };
537
+ }
538
+
539
+ // src/actions/pol/getRewardVaultFromToken.ts
540
+ import { zeroAddress } from "viem";
541
+ import { rewardVaultFactoryAbi as rewardVaultFactoryAbi2 } from "@berachain/abis/pol/rewards/rewardVaultFactory";
542
+ async function getRewardVaultFromToken({
543
+ tokenAddress,
544
+ publicClient,
545
+ factoryAddress,
546
+ ...args
547
+ }) {
548
+ const { config } = parseBaseArgs(args);
549
+ const vaultAddress = await publicClient.readContract({
550
+ address: factoryAddress ?? config.pol.factory,
551
+ abi: rewardVaultFactoryAbi2,
552
+ functionName: "getVault",
553
+ args: [tokenAddress]
554
+ });
555
+ if (vaultAddress === zeroAddress) {
556
+ return null;
557
+ }
558
+ return vaultAddress;
559
+ }
560
+
561
+ // src/actions/pyth/getHoneyPythFeeds.ts
562
+ import { pythPriceOracleAbi } from "@berachain/abis/extras/pythPriceOracle";
563
+ async function getHoneyPythFeeds({
564
+ tokenList,
565
+ publicClient,
566
+ ...args
567
+ }) {
568
+ const { config } = parseBaseArgs(args);
569
+ try {
570
+ const priceFeedIds = await Promise.all(
571
+ tokenList.map(
572
+ (token) => publicClient.readContract({
573
+ address: config.honey.pythOracle,
574
+ abi: pythPriceOracleAbi,
575
+ functionName: "feeds",
576
+ args: [token]
577
+ })
578
+ )
579
+ );
580
+ return tokenList.reduce(
581
+ (acc, token, index) => ({
582
+ ...acc,
583
+ [token]: priceFeedIds[index]
584
+ }),
585
+ {}
586
+ );
587
+ } catch (e) {
588
+ console.error("getPythPriceFeedId", e);
589
+ throw e;
590
+ }
591
+ }
592
+
593
+ // src/actions/tokens/getTokens.ts
594
+ async function getTokens({
595
+ url,
596
+ ...args
597
+ } = {}) {
598
+ const { config } = parseBaseArgs(args);
599
+ const tokenList = await beraFetchJson({
600
+ url: url ?? config.lists.tokenList,
601
+ type: "rest",
602
+ name: "GitHub"
603
+ });
604
+ return tokenList.tokens ?? [];
605
+ }
606
+
607
+ // src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts
608
+ import { bgtAbi } from "@berachain/abis/pol/bgt";
609
+ import { beraChefAbi } from "@berachain/abis/pol/rewards/beraChef";
610
+ async function getActiveBoostAndCommissionChangeDelay({
611
+ publicClient,
612
+ ui,
613
+ ...args
614
+ }) {
615
+ const { config } = parseBaseArgs(args);
616
+ const [
617
+ maxCommissionRate,
618
+ commissionChangeDelay,
619
+ rewardAllocationBlockDelay,
620
+ maxWeightPerVault,
621
+ maxNumWeightsPerRewardAllocation,
622
+ dropBoostDelay,
623
+ activateBoostDelay,
624
+ rewardAllocationInactivityBlockSpan
625
+ ] = await Promise.all([
626
+ publicClient.readContract({
627
+ address: config.pol.beraChef,
628
+ abi: beraChefAbi,
629
+ functionName: "MAX_COMMISSION_RATE"
630
+ }),
631
+ publicClient.readContract({
632
+ address: config.pol.beraChef,
633
+ abi: beraChefAbi,
634
+ functionName: "commissionChangeDelay"
635
+ }),
636
+ publicClient.readContract({
637
+ address: config.pol.beraChef,
638
+ abi: beraChefAbi,
639
+ functionName: "rewardAllocationBlockDelay"
640
+ }),
641
+ publicClient.readContract({
642
+ address: config.pol.beraChef,
643
+ abi: beraChefAbi,
644
+ functionName: "maxWeightPerVault"
645
+ }),
646
+ publicClient.readContract({
647
+ address: config.pol.beraChef,
648
+ abi: beraChefAbi,
649
+ functionName: "maxNumWeightsPerRewardAllocation"
650
+ }),
651
+ publicClient.readContract({
652
+ address: config.tokens.bgt,
653
+ abi: bgtAbi,
654
+ functionName: "dropBoostDelay"
655
+ }),
656
+ publicClient.readContract({
657
+ address: config.tokens.bgt,
658
+ abi: bgtAbi,
659
+ functionName: "activateBoostDelay"
660
+ }),
661
+ publicClient.readContract({
662
+ address: config.pol.beraChef,
663
+ abi: beraChefAbi,
664
+ functionName: "rewardAllocationInactivityBlockSpan"
665
+ })
666
+ ]);
667
+ return {
668
+ maxCommissionRate: Number(maxCommissionRate) / 1e4,
669
+ boostDelay: Number(activateBoostDelay),
670
+ unboostDelay: Number(dropBoostDelay),
671
+ commissionChangeDelay: Number(commissionChangeDelay),
672
+ rewardAllocationBlockDelay: Number(rewardAllocationBlockDelay),
673
+ maxWeightPerVault: Number(maxWeightPerVault) / 1e4,
674
+ maxNumWeightsPerRewardAllocation: Number(maxNumWeightsPerRewardAllocation),
675
+ rewardAllocationInactivityBlockSpan: Number(
676
+ rewardAllocationInactivityBlockSpan
677
+ ),
678
+ ui
679
+ };
680
+ }
681
+
682
+ // src/actions/validators/utils/aggregateValidatorIncentives.ts
683
+ function aggregateValidatorIncentives({
684
+ rewardAllocationWeights,
685
+ activeOnly = true
686
+ }) {
687
+ const map = rewardAllocationWeights.filter((x) => x?.receivingVault).reduce((acc, rv) => {
688
+ for (const incentive of rv.receivingVault?.activeIncentives ?? []) {
689
+ if (activeOnly && incentive.remainingAmount === "0") {
690
+ continue;
691
+ }
692
+ const incentiveRate = new bignumber_js_default(incentive.incentiveRate).times(
693
+ rv.percentage
694
+ );
695
+ const incentiveRateUsd = new bignumber_js_default(
696
+ incentive.incentiveRateUsd
697
+ ).times(rv.percentage);
698
+ const token = incentive.token.address.toLowerCase();
699
+ const existing = acc.get(token);
700
+ if (existing) {
701
+ acc.set(token, {
702
+ ...existing,
703
+ incentiveRate: new bignumber_js_default(existing.incentiveRate).plus(incentiveRate).toString(),
704
+ incentiveRateUsd: new bignumber_js_default(existing.incentiveRateUsd).plus(incentiveRateUsd).toString(),
705
+ remainingAmount: new bignumber_js_default(existing.remainingAmount).plus(incentive.remainingAmount).toString(),
706
+ remainingAmountUsd: new bignumber_js_default(existing.remainingAmountUsd).plus(incentive.remainingAmountUsd).toString()
707
+ });
708
+ } else {
709
+ acc.set(token, {
710
+ ...incentive,
711
+ tokenAddress: incentive.token.address,
712
+ token: incentive.token,
713
+ incentiveRate: incentiveRate.toString(),
714
+ incentiveRateUsd: incentiveRateUsd.toString(),
715
+ remainingAmount: incentive.remainingAmount
716
+ });
717
+ }
718
+ }
719
+ return acc;
720
+ }, /* @__PURE__ */ new Map());
721
+ return Array.from(map.values());
722
+ }
723
+
724
+ // src/actions/validators/utils/getValidatorBoostApy.ts
725
+ function getValidatorReturnPerBgt(validator) {
726
+ return validator?.rewardAllocationWeights?.reduce((acc, ab) => {
727
+ if (!ab) return acc;
728
+ const totalIncentiveValue = ab.receivingVault?.activeIncentives.filter((inc) => Number(inc.remainingAmount) > 0).reduce((totalIncentiveValue2, currIncentive) => {
729
+ const tokenPrice = Number(currIncentive.remainingAmountUsd) / Number(currIncentive.remainingAmount);
730
+ return totalIncentiveValue2 + Number(currIncentive.incentiveRate) * tokenPrice;
731
+ }, 0) ?? 0;
732
+ return acc + totalIncentiveValue * ab.percentage;
733
+ }, 0);
734
+ }
735
+ function getValidatorBoostApy({
736
+ validator,
737
+ bgtPrice
738
+ }) {
739
+ const validatorActiveBoostAmount = Number(
740
+ validator.dynamicData?.activeBoostAmount ?? 0
741
+ );
742
+ const returnPerBgt = getValidatorReturnPerBgt(validator);
743
+ if (!returnPerBgt || !validatorActiveBoostAmount) {
744
+ return 0;
745
+ }
746
+ const boostApy = returnPerBgt * Number(validator.dynamicData?.lastDayDistributedRewards ?? 0) * 365 / (validatorActiveBoostAmount * bgtPrice);
747
+ return boostApy;
748
+ }
749
+ export {
750
+ BalancerApi,
751
+ BaseAggregator,
752
+ BeraApolloClient,
753
+ HoneyPreviewMethod,
754
+ RewardVaultDistributionMode,
755
+ aggregateValidatorIncentives,
756
+ beraWriteContract,
757
+ formatValidatorRewardAllocation,
758
+ getActiveBoostAndCommissionChangeDelay,
759
+ getAllPools,
760
+ getAllValidators,
761
+ getAllowances,
762
+ getApiEnrichedAllocation,
763
+ getApiPool,
764
+ getApiValidator,
765
+ getApolloClient,
766
+ getAutoclaimedIncentives,
767
+ getAutoclaimedIncentivesTxHash,
768
+ getBalanceCall,
769
+ getBeraTokenTotalSupply,
770
+ getBgtAprSimulation,
771
+ getBgtIncentiveDistributorPaused,
772
+ getBlockTime,
773
+ getBlockTimestamp,
774
+ getChartData,
775
+ getCollateralWeights,
776
+ getConvertToAssets,
777
+ getDailyValidatorBlockStats,
778
+ getDefaultRewardAllocation,
779
+ getEarnedStakedBeraVault,
780
+ getEnsoClient,
781
+ getGlobalCapLimit,
782
+ getGlobalData,
783
+ getGlobalLiquidityAndSwapVolume,
784
+ getHeroEarnVaults,
785
+ getHoney24hVolume,
786
+ getHoneyCollaterals,
787
+ getHoneyFees,
788
+ getHoneyPausedState,
789
+ getHoneyPreview,
790
+ getHoneyPythFeeds,
791
+ getHoneyPythOracle,
792
+ getHoneyRootPriceOracle,
793
+ getHoneyVaultsBalance,
794
+ getIncentiveFeeClaimStats,
795
+ getLSTStakeConfig,
796
+ getMarkets,
797
+ getMaxDeposit,
798
+ getOnChainPool,
799
+ getPoolEvents,
800
+ getPoolHistoricalData,
801
+ getPoolPausedState,
802
+ getPoolState,
803
+ getPythLatestPrices,
804
+ getPythUpdateFee,
805
+ getRelativeCapLimit,
806
+ getRewardProofsByValidator,
807
+ getRewardTokenToBeraRate,
808
+ getRewardVault,
809
+ getRewardVaultDurationConstants,
810
+ getRewardVaultFromToken,
811
+ getRewardVaultIncentives,
812
+ getRewardVaultRewards,
813
+ getRewardVaultStakingToken,
814
+ getRewardVaults,
815
+ getSWBeraVaultMetadata,
816
+ getSWBeraWithdrawal,
817
+ getStakeWithdrawalCooldown,
818
+ getStakedBeraAPR,
819
+ getStakedBeraSnapshots,
820
+ getStakingPoolBatch,
821
+ getSwapPayload,
822
+ getTokenCurrentPrices,
823
+ getTokenInformation,
824
+ getTokens,
825
+ getTotalStakedAmount,
826
+ getUserActiveValidators,
827
+ getUserBoostsOnValidator,
828
+ getUserClaimableIncentives,
829
+ getUserStakingPositions,
830
+ getUserVaultInfo,
831
+ getUserVaults,
832
+ getUserVaultsReward,
833
+ getValidatorAnalytics,
834
+ getValidatorBoostApy,
835
+ getValidatorCommission,
836
+ getValidatorEstimatedBgtPerYear,
837
+ getValidatorOperatorAddress,
838
+ getValidatorQueuedCommission,
839
+ getValidatorQueuedOperatorAddress,
840
+ getValidatorQueuedRewardAllocation,
841
+ getValidatorReturnPerBgt,
842
+ getValidatorRewardAllocation,
843
+ getVaultHistory,
844
+ getVaultPausedState,
845
+ getVaultValidators,
846
+ getWalletBalances,
847
+ gql,
848
+ isBadCollateralAsset,
849
+ isBasketModeEnabled,
850
+ isDefaultRewardAllocation,
851
+ isImpersonateAccount,
852
+ isSameRewardAllocation
853
+ };