@berachain/berajs 0.2.8-beta.4 → 0.2.8-beta.7

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 (181) hide show
  1. package/dist/abi/exports.cjs +1 -4452
  2. package/dist/abi/exports.cjs.map +1 -1
  3. package/dist/abi/exports.mjs +1 -4452
  4. package/dist/abi/exports.mjs.map +1 -1
  5. package/dist/actions/exports.cjs +1 -918
  6. package/dist/actions/exports.cjs.map +1 -1
  7. package/dist/actions/exports.d.cts +95 -50
  8. package/dist/actions/exports.d.ts +95 -50
  9. package/dist/actions/exports.mjs +1 -918
  10. package/dist/actions/exports.mjs.map +1 -1
  11. package/dist/chunk-3MZ7MLKF.mjs +2 -0
  12. package/dist/{chunk-PBCE7JTE.mjs.map → chunk-3MZ7MLKF.mjs.map} +1 -1
  13. package/dist/chunk-53TSJM6P.cjs +2 -0
  14. package/dist/chunk-53TSJM6P.cjs.map +1 -0
  15. package/dist/chunk-575OK77P.mjs +2 -0
  16. package/dist/{chunk-GLWPRM33.mjs.map → chunk-575OK77P.mjs.map} +1 -1
  17. package/dist/chunk-5W7UKRHX.mjs +2 -0
  18. package/dist/{chunk-J6EHBYSV.mjs.map → chunk-5W7UKRHX.mjs.map} +1 -1
  19. package/dist/chunk-6K252BGM.mjs +2 -0
  20. package/dist/{chunk-CYBZH6U3.mjs.map → chunk-6K252BGM.mjs.map} +1 -1
  21. package/dist/chunk-CWKDFUFR.mjs +2 -0
  22. package/dist/{chunk-OWUI3VPI.mjs.map → chunk-CWKDFUFR.mjs.map} +1 -1
  23. package/dist/chunk-D6L7LTA2.cjs +2 -0
  24. package/dist/chunk-D6L7LTA2.cjs.map +1 -0
  25. package/dist/chunk-DDEQFR3M.cjs +2 -0
  26. package/dist/chunk-DDEQFR3M.cjs.map +1 -0
  27. package/dist/chunk-DKY4QPWU.cjs +2 -0
  28. package/dist/chunk-DKY4QPWU.cjs.map +1 -0
  29. package/dist/chunk-DTBJO6VT.cjs +2 -0
  30. package/dist/chunk-DTBJO6VT.cjs.map +1 -0
  31. package/dist/chunk-ESAVA5OD.mjs +2 -0
  32. package/dist/{chunk-ALPEMPZI.mjs.map → chunk-ESAVA5OD.mjs.map} +1 -1
  33. package/dist/chunk-JDZGYU5T.mjs +2 -0
  34. package/dist/{chunk-WEULAXBE.mjs.map → chunk-JDZGYU5T.mjs.map} +1 -1
  35. package/dist/chunk-JLFBRMOF.cjs +2 -0
  36. package/dist/chunk-JLFBRMOF.cjs.map +1 -0
  37. package/dist/chunk-KT6L4K4K.cjs +2 -0
  38. package/dist/chunk-KT6L4K4K.cjs.map +1 -0
  39. package/dist/chunk-MASD43N5.mjs +4 -0
  40. package/dist/chunk-MASD43N5.mjs.map +1 -0
  41. package/dist/chunk-MGGPHKA2.cjs +4 -0
  42. package/dist/chunk-MGGPHKA2.cjs.map +1 -0
  43. package/dist/chunk-MK5NS5B5.mjs +2 -0
  44. package/dist/{chunk-7TFV6UKF.mjs.map → chunk-MK5NS5B5.mjs.map} +1 -1
  45. package/dist/chunk-NAXAZJJY.mjs +2 -0
  46. package/dist/{chunk-ZCEFC2TK.mjs.map → chunk-NAXAZJJY.mjs.map} +1 -1
  47. package/dist/chunk-NLVWRMGD.mjs +2 -0
  48. package/dist/{chunk-GWSTVITN.mjs.map → chunk-NLVWRMGD.mjs.map} +1 -1
  49. package/dist/chunk-OGBD5YOG.mjs +2 -0
  50. package/dist/{chunk-JA4DHMTG.mjs.map → chunk-OGBD5YOG.mjs.map} +1 -1
  51. package/dist/chunk-OGJMSGB2.mjs +2 -0
  52. package/dist/{chunk-KL6YZ5VR.mjs.map → chunk-OGJMSGB2.mjs.map} +1 -1
  53. package/dist/chunk-OIYXOKTT.cjs +2 -0
  54. package/dist/chunk-OIYXOKTT.cjs.map +1 -0
  55. package/dist/chunk-OUD27MU7.cjs +2 -0
  56. package/dist/chunk-OUD27MU7.cjs.map +1 -0
  57. package/dist/chunk-QFLDL4UV.cjs +2 -0
  58. package/dist/chunk-QFLDL4UV.cjs.map +1 -0
  59. package/dist/chunk-RSDCKN4Q.mjs +2 -0
  60. package/dist/chunk-RSDCKN4Q.mjs.map +1 -0
  61. package/dist/chunk-RWOICHRW.cjs +2 -0
  62. package/dist/chunk-RWOICHRW.cjs.map +1 -0
  63. package/dist/chunk-SSPFPAWX.mjs +2 -0
  64. package/dist/{chunk-WAFQFAI7.mjs.map → chunk-SSPFPAWX.mjs.map} +1 -1
  65. package/dist/chunk-UENDEN3M.mjs +2 -0
  66. package/dist/{chunk-MKS6W5NI.mjs.map → chunk-UENDEN3M.mjs.map} +1 -1
  67. package/dist/chunk-UFIM7WQ4.cjs +2 -0
  68. package/dist/chunk-UFIM7WQ4.cjs.map +1 -0
  69. package/dist/chunk-WRFDB3QJ.cjs +2 -0
  70. package/dist/chunk-WRFDB3QJ.cjs.map +1 -0
  71. package/dist/chunk-XNJLSA6P.cjs +2 -0
  72. package/dist/chunk-XNJLSA6P.cjs.map +1 -0
  73. package/dist/chunk-ZYXVUXFQ.cjs +2 -0
  74. package/dist/chunk-ZYXVUXFQ.cjs.map +1 -0
  75. package/dist/contexts/exports.cjs +1 -82
  76. package/dist/contexts/exports.cjs.map +1 -1
  77. package/dist/contexts/exports.mjs +1 -82
  78. package/dist/contexts/exports.mjs.map +1 -1
  79. package/dist/enum/exports.cjs +1 -58
  80. package/dist/enum/exports.cjs.map +1 -1
  81. package/dist/enum/exports.d.cts +1 -1
  82. package/dist/enum/exports.d.ts +1 -1
  83. package/dist/enum/exports.mjs +1 -58
  84. package/dist/enum/exports.mjs.map +1 -1
  85. package/dist/errors/exports.cjs +1 -38
  86. package/dist/errors/exports.cjs.map +1 -1
  87. package/dist/errors/exports.mjs +1 -38
  88. package/dist/{getValidatorQueuedOperatorAddress-DUZOmxLV.d.ts → getValidatorQueuedOperatorAddress-BcyxE9uw.d.ts} +2 -2
  89. package/dist/{getValidatorQueuedOperatorAddress-BQXkSFd9.d.cts → getValidatorQueuedOperatorAddress-Cql_D50j.d.cts} +2 -2
  90. package/dist/{global.d-SU9Epq0M.d.ts → global.d-5w_lvl2J.d.ts} +1 -1
  91. package/dist/{global.d-6aSWIkV_.d.cts → global.d-B7IeayVX.d.cts} +1 -1
  92. package/dist/hooks/exports.cjs +3 -8327
  93. package/dist/hooks/exports.cjs.map +1 -1
  94. package/dist/hooks/exports.d.cts +4 -4
  95. package/dist/hooks/exports.d.ts +4 -4
  96. package/dist/hooks/exports.mjs +3 -8327
  97. package/dist/hooks/exports.mjs.map +1 -1
  98. package/dist/{txnEnum-CCuQUFlh.d.cts → txnEnum-7_o92X3N.d.cts} +2 -0
  99. package/dist/{txnEnum-CCuQUFlh.d.ts → txnEnum-7_o92X3N.d.ts} +2 -0
  100. package/dist/types/exports.d.cts +2 -2
  101. package/dist/types/exports.d.ts +2 -2
  102. package/dist/utils/exports.cjs +1 -786
  103. package/dist/utils/exports.cjs.map +1 -1
  104. package/dist/utils/exports.mjs +1 -786
  105. package/dist/utils/exports.mjs.map +1 -1
  106. package/package.json +5 -5
  107. package/src/actions/clients/getApolloClient.ts +11 -4
  108. package/src/actions/dex/aggregators/base.ts +1 -3
  109. package/src/actions/dex/getOnChainPool.ts +1 -1
  110. package/src/actions/enso/getBendMultiplyBundle.ts +9 -2
  111. package/src/actions/enso/util.ts +6 -8
  112. package/src/actions/governance/checkProposalField.ts +108 -54
  113. package/src/actions/governance/computeActualStatus.ts +7 -3
  114. package/src/actions/governance/getAllProposals.ts +15 -8
  115. package/src/actions/governance/getBodyErrors.ts +13 -5
  116. package/src/actions/governance/getDecodedFunctionData.ts +31 -27
  117. package/src/actions/governance/getProposalDetails.ts +8 -4
  118. package/src/actions/governance/getProposalFromTx.ts +19 -10
  119. package/src/actions/governance/getProposalParams.ts +17 -17
  120. package/src/actions/governance/getProposalVotes.ts +7 -3
  121. package/src/actions/governance/getQuorum.ts +7 -7
  122. package/src/actions/governance/parseProposalBody.ts +19 -9
  123. package/src/actions/pol/getRewardVaultIncentives.ts +2 -2
  124. package/src/actions/tokens/getTokenInformation.ts +8 -15
  125. package/src/actions/tokens/getUnderlyingToken.ts +1 -3
  126. package/src/enum/txnEnum.ts +2 -0
  127. package/src/errors/BeraError.ts +7 -2
  128. package/src/hooks/dex/usePoolHistoricalData.ts +1 -1
  129. package/src/hooks/enso/useBendZapSupply.ts +1 -1
  130. package/src/hooks/perps/usePythUpdateFee.ts +1 -1
  131. package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
  132. package/dist/chunk-24HMIYTN.cjs +0 -36
  133. package/dist/chunk-24HMIYTN.cjs.map +0 -1
  134. package/dist/chunk-2LL77B3T.cjs +0 -135
  135. package/dist/chunk-2LL77B3T.cjs.map +0 -1
  136. package/dist/chunk-3LXVARBJ.cjs +0 -417
  137. package/dist/chunk-3LXVARBJ.cjs.map +0 -1
  138. package/dist/chunk-4HDIUUSV.cjs +0 -130
  139. package/dist/chunk-4HDIUUSV.cjs.map +0 -1
  140. package/dist/chunk-7ONKBHXY.cjs +0 -169
  141. package/dist/chunk-7ONKBHXY.cjs.map +0 -1
  142. package/dist/chunk-7TFV6UKF.mjs +0 -24
  143. package/dist/chunk-A4FPM7U3.cjs +0 -63
  144. package/dist/chunk-A4FPM7U3.cjs.map +0 -1
  145. package/dist/chunk-A7P3JVU7.cjs +0 -4694
  146. package/dist/chunk-A7P3JVU7.cjs.map +0 -1
  147. package/dist/chunk-ALPEMPZI.mjs +0 -417
  148. package/dist/chunk-BEHP54S3.cjs +0 -24
  149. package/dist/chunk-BEHP54S3.cjs.map +0 -1
  150. package/dist/chunk-CYBZH6U3.mjs +0 -135
  151. package/dist/chunk-EWBKSMPG.cjs +0 -13
  152. package/dist/chunk-EWBKSMPG.cjs.map +0 -1
  153. package/dist/chunk-GLWPRM33.mjs +0 -13
  154. package/dist/chunk-GWSTVITN.mjs +0 -572
  155. package/dist/chunk-H3Z37RYU.cjs +0 -15
  156. package/dist/chunk-H3Z37RYU.cjs.map +0 -1
  157. package/dist/chunk-HCC4FJTD.cjs +0 -97
  158. package/dist/chunk-HCC4FJTD.cjs.map +0 -1
  159. package/dist/chunk-J6EHBYSV.mjs +0 -97
  160. package/dist/chunk-JA4DHMTG.mjs +0 -15
  161. package/dist/chunk-KL6YZ5VR.mjs +0 -63
  162. package/dist/chunk-MILSHCKW.cjs +0 -168
  163. package/dist/chunk-MILSHCKW.cjs.map +0 -1
  164. package/dist/chunk-MKS6W5NI.mjs +0 -403
  165. package/dist/chunk-MXWPP6MS.cjs +0 -572
  166. package/dist/chunk-MXWPP6MS.cjs.map +0 -1
  167. package/dist/chunk-OWUI3VPI.mjs +0 -169
  168. package/dist/chunk-PBCE7JTE.mjs +0 -36
  169. package/dist/chunk-QISQSMCV.cjs +0 -1843
  170. package/dist/chunk-QISQSMCV.cjs.map +0 -1
  171. package/dist/chunk-SYWYIMY7.mjs +0 -4694
  172. package/dist/chunk-SYWYIMY7.mjs.map +0 -1
  173. package/dist/chunk-TDW5SPXR.cjs +0 -244
  174. package/dist/chunk-TDW5SPXR.cjs.map +0 -1
  175. package/dist/chunk-TGHG6Q3C.cjs +0 -403
  176. package/dist/chunk-TGHG6Q3C.cjs.map +0 -1
  177. package/dist/chunk-WAFQFAI7.mjs +0 -130
  178. package/dist/chunk-WEULAXBE.mjs +0 -168
  179. package/dist/chunk-ZCEFC2TK.mjs +0 -244
  180. package/dist/chunk-ZV7DCQQY.mjs +0 -1843
  181. package/dist/chunk-ZV7DCQQY.mjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{g as y}from"./chunk-RSDCKN4Q.mjs";async function F(e){if(e.headers.get("content-type")?.includes("application/json"))return e.json();{let t=await e.text();try{return JSON.parse(t)}catch{return{message:"Unknown error, can't decode response into JSON",cause:t}}}}async function C(e,n){try{let t=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...n});if(!t.ok){let r=await F(t);throw new y({cause:r,response:t,endpoint:e})}return t}catch(t){throw t instanceof y?t:new y({cause:t,endpoint:e,response:void 0})}}async function te(e,n){return(await C(e,{...n,headers:{Accept:"application/json",...n?.headers}})).json()}import{parseEther as O}from"viem";var oe=O("0.005"),se=1e5,ue=1,ie=.1,ae=50,me=7920027n;var fe=e=>2n*BigInt(e);function be(e){return Math.floor(e/1e3)}function V(e){return e*1e3}function j(e){return e*V(60)}function J(e){return e*60}function q(e){return e*j(60)}function G(e){return e*J(60)}function S(e){return e*q(24)}function w(e){return e*G(24)}function pe(e){return e*S(7)}function de(e){return e*w(7)}function he(e){return e*S(30)}function Ne(e){return e*w(30)}function ge(e){return e*S(365)}function xe(e){return e*w(365)}function Me(e){let n=new Date;return n.setDate(n.getDate()-e)*1e3}var X=["January","February","March","April","May","June","July","August","September","October","November","December"],k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ie(e,n){let t=new Date(e*1e3),r=t.getDate(),u="th";return r===1||r===21||r===31?u="st":r===2||r===22?u="nd":(r===3||r===23)&&(u="rd"),n?`${k[t.getMonth()]} ${r}`:`${X[t.getMonth()]} ${r}${u}, ${t.getFullYear()}`}function Te(...e){let n=e[0],t,r,u,l;if(typeof e[1]!="object")t=e[1]??!1,r=e[2]??!1,l=e[3]??!1,u=!0;else{let s=e[1];t=s.condensed??!1;let o=s.greaterUnit??"hours";o==="days"?(r=!0,u=!0):o==="hours"?(r=!1,u=!0,l=!1):(r=!1,u=!0),l=s.showSeconds??!1}let a=Math.floor(n/(3600*24)),i=Math.floor(n%(3600*24)/3600),c=Math.floor(n%3600/60),m=n%60;if(r||(i+=a*24,a=0),a===0&&i===0&&c===0)return t?"< 1 M":"less than a minute";let N=a>0?`${a}${t?"D":" day"}${!t&&a!==1?"s":""}`:"",g=i>0?`${i}${t?"H":" hour"}${!t&&i!==1?"s":""}`:"",M=c>0&&u||!a&&!i?`${c}${t?"M":" minute"}${!t&&c!==1?"s":""}`:"",I=m>0&&l?`${m}${t?"S":" second"}${!t&&m!==1?"s":""}`:"";return[N,g,M,I].filter(Boolean).join(t?" ":", ")}import U from"bignumber.js";U.set({EXPONENTIAL_AT:1e9});var D=U;var _=["","K","M","B","T","P","E","Z","Y"];function L(e){return e instanceof D?e:new D(e)}function Y(e,n){return L(e).shiftedBy(n*-1)}function $e(e,n={}){if(typeof n=="number"){let d=n;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let b=Number(e).toFixed(d);return b=b.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),b}let{visibleDecimals:t,compact:r=!0,percent:u=!1,roundDown:l=!1,roundUp:a=!1,compactThreshold:i,maxValue:c,symbol:m,prefixText:N="",suffixText:g="",showIsSmallerThanMin:M=!0,ifNullish:I=""}=n||{};if(e==null)return I;let s=u?Number(e)*100:Number(e);if(Number.isNaN(s))return"NaN";if(s===Number.POSITIVE_INFINITY)return"Infinity";if(s===Number.NEGATIVE_INFINITY)return"-Infinity";let o=t??0;s===0?o=0:t===void 0&&(Math.abs(s)>1||u||m==="USD"?o=2:o=7);let E=10**-o,$=s!==0&&Math.abs(s)<Math.abs(E),R=s<0,B=c?Math.abs(s)>c:!1,p=$?E:s,T=r&&(!i||Math.abs(s)>i);l&&!T?p=Math.trunc(Number(p)*10**o)/10**o:a&&!T&&(p=Math.ceil(Number(p)*10**o)/10**o);let x;if(B)x=s>c?"\u221E":"-\u221E";else if(T){let d=L(p),b=d.abs().toFixed(0).length;i&&Math.abs(s)<=i&&(b=0);let A=Math.min(Math.floor(b?(b-1)/3:0),_.length-1),P=_[A],h=Y(d,3*A).toNumber();l?h=Math.trunc(Number(h)*10**o)/10**o:a&&(h=Math.ceil(Number(h)*10**o)/10**o),x=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(h)}${P}`}else{let d=new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(Math.abs(p));x=`${R?"-":""}${d}`}let f=[];return N&&f.push(N),$&&M&&f.push(s<0?">":"<"),m?.toLowerCase()==="usd"&&!u&&f.push("$"),f.push(x),u&&f.push("%"),m?.toLowerCase()!=="usd"&&typeof m<"u"&&f.push(" ",m),g&&f.push(g),f.join("")}var Ae=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Number(e)??0:0,Fe=(e,n)=>{if(!e)return"0";let[t="0",r="0"]=`${e}`.split(".");return`${t}.${r.substring(0,n)}`};import{createTestClient as K,http as z}from"viem";import{defaultChainId as H,getRpcUrls as Z}from"@berachain/config/internal";function Re(e=H){let n=Z(e);if(!n.isAnvil)throw new Error("No anvil RPC URL found");return K({mode:"anvil",transport:z(n.jsonRpcUrl)})}export{D as a,F as b,C as c,te as d,oe as e,se as f,ue as g,ie as h,ae as i,me as j,fe as k,be as l,V as m,j as n,J as o,q as p,G as q,S as r,w as s,pe as t,de as u,he as v,Ne as w,ge as x,xe as y,Me as z,Ie as A,Te as B,$e as C,Ae as D,Fe as E,Re as F};
2
+ //# sourceMappingURL=chunk-ESAVA5OD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/getErrorResponse.ts","../src/utils/beraFetch.ts","../src/utils/constants.ts","../src/utils/pythHoneyUtils.ts","../src/utils/time.ts","../src/utils/formatTimestamps.ts","../../utils/src/pkg/bignumber.js.ts","../src/utils/formatNumber.ts","../src/utils/getTestClient.ts"],"sourcesContent":["/**\n * @deprecated use beraFetch instead\n */\nexport async function getErrorResponse(response: Response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (contentType?.includes(\"application/json\")) {\n return response.json();\n } else {\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return {\n message: \"Unknown error, can't decode response into JSON\",\n cause: text,\n };\n }\n }\n}\n","import { RequestError } from \"../errors/RequestError\";\nimport { getErrorResponse } from \"./getErrorResponse\";\n\ntype RequestOptions = RequestInit;\n\nexport async function beraFetch(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n try {\n const response = await fetch(\n typeof endpoint === \"string\" || endpoint instanceof URL\n ? endpoint\n : endpoint.url,\n {\n ...options,\n },\n );\n if (!response.ok) {\n const error = await getErrorResponse(response);\n throw new RequestError({\n cause: error,\n // @to-do import getErrorResponse logic in this function\n // when it's removed from other places\n response: response,\n endpoint,\n });\n }\n return response;\n } catch (error) {\n if (error instanceof RequestError) {\n throw error;\n }\n\n throw new RequestError({\n cause: error,\n endpoint,\n response: undefined,\n });\n }\n}\n\nexport async function beraFetchJson<T>(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n const response = await beraFetch(endpoint, {\n ...options,\n headers: {\n Accept: \"application/json\",\n ...options?.headers,\n },\n });\n return response.json() as Promise<T>;\n}\n","import { parseEther } from \"viem\";\n\n// the buffer of the cap limit, if the user gets close to 10% of the cap limit\n// they should be warned\nexport const CAP_LIMIT_BUFFER = parseEther(\"0.005\");\n\n/**\n * Maximum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MAX_CUSTOM_DEADLINE = 100000;\n\n/**\n * Minimum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MIN_CUSTOM_DEADLINE = 1;\n\n/**\n * Minimum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MIN_CUSTOM_SLIPPAGE = 0.1;\n\n/**\n * Maximum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MAX_CUSTOM_SLIPPAGE = 50;\n\n/**\n * Default gas limit used by MetaMask\n * @see {@link https://github.com/MetaMask/metamask-extension/blob/06cf7459b963e26d0ae60312d4f9a342d07ab89d/ui/pages/confirmations/send/send.constants.js#L8}\n */\nexport const DEFAULT_METAMASK_GAS_LIMIT = 7920027n;\n","export const getPythDefaultUpdateFee = (tokenListLength: number) => {\n return 2n * BigInt(tokenListLength);\n};\n","/**\n * Convert milliseconds to seconds\n */\nexport function msToSeconds(ms: number): number {\n return Math.floor(ms / 1000);\n}\n\n/**\n * Time utility functions for converting between different time units.\n *\n * This utility file provides functions to convert between seconds, minutes, hours, and days.\n * Note on naming conventions: We use \"seconds\" instead of \"secondsToMs\" because JavaScript\n * is typically based in milliseconds, so the conversion to milliseconds is the more common\n * and expected operation. We use \"xxxInSeconds\" when converting to second-based units.\n */\n\n/**\n * Convert seconds to milliseconds\n */\nexport function seconds(seconds: number): number {\n return seconds * 1000;\n}\n\n/**\n * Convert minutes to milliseconds\n */\nexport function minutes(minutes: number): number {\n return minutes * seconds(60);\n}\n\n/**\n * Convert minutes to seconds\n */\nexport function minutesInSeconds(minutes: number): number {\n return minutes * 60;\n}\n\n/**\n * Convert hours to milliseconds\n */\nexport function hours(hours: number): number {\n return hours * minutes(60);\n}\n\n/**\n * Convert hours to seconds\n */\nexport function hoursInSeconds(hours: number): number {\n return hours * minutesInSeconds(60);\n}\n\n/**\n * Convert days to milliseconds\n */\nexport function days(days: number): number {\n return days * hours(24);\n}\n\n/**\n * Convert days to seconds\n */\nexport function daysInSeconds(days: number): number {\n return days * hoursInSeconds(24);\n}\n\n/**\n * Convert weeks to milliseconds\n */\nexport function weeks(weeks: number): number {\n return weeks * days(7);\n}\n\n/**\n * Convert weeks to seconds\n */\nexport function weeksInSeconds(weeks: number): number {\n return weeks * daysInSeconds(7);\n}\n\n/**\n * Convert months to milliseconds using 30 days per month\n */\nexport function months(months: number): number {\n return months * days(30);\n}\n\n/**\n * Convert months to seconds using 30 days per month\n */\nexport function monthsInSeconds(months: number): number {\n return months * daysInSeconds(30);\n}\n\n/**\n * Convert years to milliseconds using 365 days per year\n */\nexport function years(years: number): number {\n return years * days(365);\n}\n\n/**\n * Convert years to seconds using 365 days per year\n */\nexport function yearsInSeconds(years: number): number {\n return years * daysInSeconds(365);\n}\n","export function calculateTimestampFromDays(daysRange: number): number {\n const currentDate = new Date();\n return currentDate.setDate(currentDate.getDate() - daysRange) * 1000;\n}\n\nconst monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst shortMonthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport function formatUnixTimestamp(unixTimestamp: number, isShort?: boolean) {\n const date = new Date(unixTimestamp * 1000);\n\n const day = date.getDate();\n let daySuffix = \"th\";\n\n if (day === 1 || day === 21 || day === 31) {\n daySuffix = \"st\";\n } else if (day === 2 || day === 22) {\n daySuffix = \"nd\";\n } else if (day === 3 || day === 23) {\n daySuffix = \"rd\";\n }\n\n if (isShort) {\n return `${shortMonthNames[date.getMonth()]} ${day}`;\n }\n\n return `${\n monthNames[date.getMonth()]\n } ${day}${daySuffix}, ${date.getFullYear()}`;\n}\n\ntype LegacyArgs = [number, boolean?, boolean?, boolean?];\ntype FormatTimeLeftArgs = [\n number,\n {\n condensed?: boolean;\n greaterUnit?: \"days\" | \"hours\" | \"minutes\";\n showSeconds?: boolean;\n },\n];\n\n/**\n * Formats the time left into a string like \"8 hours, 23 minutes\".\n *\n * @param timeLeftInSeconds - The time left in seconds.\n * @returns A formatted string representing the time left.\n */\nexport function formatTimeLeft(\n ...args: FormatTimeLeftArgs | LegacyArgs\n): string {\n const timeLeftInSeconds = args[0];\n let condensed: boolean;\n\n let showDays: boolean;\n\n let showMinutes: boolean;\n let showSeconds: boolean;\n\n if (typeof args[1] !== \"object\") {\n condensed = args[1] ?? false;\n showDays = args[2] ?? false;\n showSeconds = args[3] ?? false;\n showMinutes = true;\n } else {\n const opts = args[1];\n condensed = opts.condensed ?? false;\n const greaterUnit = opts.greaterUnit ?? \"hours\";\n\n if (greaterUnit === \"days\") {\n showDays = true;\n showMinutes = true;\n } else if (greaterUnit === \"hours\") {\n showDays = false;\n showMinutes = true;\n showSeconds = false;\n } else {\n // minutes is the default\n showDays = false;\n showMinutes = true;\n }\n showSeconds = opts.showSeconds ?? false;\n }\n\n let days = Math.floor(timeLeftInSeconds / (3600 * 24));\n let hours = Math.floor((timeLeftInSeconds % (3600 * 24)) / 3600);\n const minutes = Math.floor((timeLeftInSeconds % 3600) / 60);\n const seconds = timeLeftInSeconds % 60;\n\n // If showDays=false, roll days into hours\n if (!showDays) {\n hours += days * 24;\n days = 0;\n }\n\n if (days === 0 && hours === 0 && minutes === 0) {\n return condensed ? \"< 1 M\" : \"less than a minute\";\n }\n\n const daysDisplay =\n days > 0\n ? `${days}${condensed ? \"D\" : \" day\"}${\n !condensed && days !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const hoursDisplay =\n hours > 0\n ? `${hours}${condensed ? \"H\" : \" hour\"}${\n !condensed && hours !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const minutesDisplay =\n (minutes > 0 && showMinutes) || (!days && !hours)\n ? `${minutes}${condensed ? \"M\" : \" minute\"}${\n !condensed && minutes !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n const secondsDisplay =\n seconds > 0 && showSeconds\n ? `${seconds}${condensed ? \"S\" : \" second\"}${\n !condensed && seconds !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n return [daysDisplay, hoursDisplay, minutesDisplay, secondsDisplay]\n .filter(Boolean)\n .join(condensed ? \" \" : \", \");\n}\n","// biome-ignore lint/style/noRestrictedImports: the only import of bignumber.js is allowed here\nimport BigNumber from \"bignumber.js\";\n\nBigNumber.set({\n // The EXPONENTIAL_AT option defines the exponent value(s) at which toString returns exponential notation.\n // - Single number: the exponent magnitude at and above which exponential notation is used (e.g., `1e9` here disables it for almost all values).\n // - 1e9 is the maximum value supported by BigNumber.js.\n // See: https://mikemcl.github.io/bignumber.js/#exponential-at\n EXPONENTIAL_AT: 1e9,\n});\n\nexport default BigNumber;\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport type BigNumberValue = string | number | BigNumber;\n\nexport interface FormatNumberOptions {\n /** Number of visible decimal places */\n visibleDecimals?: number;\n /** Whether to use compact notation (K, M, B, etc.) */\n compact?: boolean;\n /** Show as percentage */\n percent?: boolean;\n /** Round down instead of normal rounding */\n roundDown?: boolean;\n /** Round up instead of normal rounding */\n roundUp?: boolean;\n /** Threshold above which compact notation is used */\n compactThreshold?: number;\n /** Maximum value to display (shows ∞ if exceeded) */\n maxValue?: number;\n /** Currency symbol (e.g., \"USD\" for $) */\n symbol?: string;\n /** Prefix text */\n prefixText?: string;\n /** Suffix text */\n suffixText?: string;\n /** Show \"< min\" or \"> min\" indicators for very small values */\n showIsSmallerThanMin?: boolean;\n /** Text to show if value is null/undefined */\n ifNullish?: string;\n}\n\nconst POSTFIXES = [\"\", \"K\", \"M\", \"B\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n\nfunction valueToBigNumber(amount: BigNumberValue): BigNumber {\n if (amount instanceof BigNumber) return amount;\n return new BigNumber(amount);\n}\n\nfunction normalizeBN(n: BigNumberValue, decimals: number): BigNumber {\n return valueToBigNumber(n).shiftedBy(decimals * -1);\n}\n\nexport function formatNumber(\n value: BigNumberValue | undefined | null,\n options: FormatNumberOptions | number = {},\n): string {\n if (typeof options === \"number\") {\n const decimals = options;\n if (value === undefined || value === null) {\n return \"\";\n }\n\n if (typeof value === \"object\") {\n throw new Error(\"Value must be a number if using deprecated version\");\n }\n\n // Convert to string with up to 8 decimal places\n let formatted = Number(value).toFixed(decimals);\n // Remove trailing zeros and decimal point if not needed\n formatted = formatted.replace(/(\\.\\d*?[1-9])0+$|\\.0*$/, \"$1\");\n return formatted;\n }\n\n const {\n visibleDecimals,\n compact = true,\n percent = false,\n roundDown = false,\n roundUp = false,\n compactThreshold,\n maxValue,\n symbol,\n prefixText = \"\",\n suffixText = \"\",\n showIsSmallerThanMin = true,\n ifNullish = \"\",\n } = options || {};\n\n // Handle null/undefined values\n if (value === undefined || value === null) {\n return ifNullish;\n }\n\n const number = percent ? Number(value) * 100 : Number(value);\n\n // Handle special numeric values\n if (Number.isNaN(number)) {\n return \"NaN\";\n }\n if (number === Number.POSITIVE_INFINITY) {\n return \"Infinity\";\n }\n if (number === Number.NEGATIVE_INFINITY) {\n return \"-Infinity\";\n }\n\n // Determine decimal places\n let decimals: number = visibleDecimals ?? 0;\n if (number === 0) {\n decimals = 0;\n } else if (visibleDecimals === undefined) {\n if (Math.abs(number) > 1 || percent || symbol === \"USD\") {\n decimals = 2;\n } else {\n decimals = 7;\n }\n }\n\n const minValue = 10 ** -(decimals as number);\n const isSmallerThanMin =\n number !== 0 && Math.abs(number) < Math.abs(minValue);\n const isNegative = number < 0;\n const isBiggerThanMax = maxValue ? Math.abs(number) > maxValue : false;\n\n let formattedNumber = isSmallerThanMin ? minValue : number;\n const forceCompact =\n compact && (!compactThreshold || Math.abs(number) > compactThreshold);\n\n // Apply rounding for non-compact numbers\n if (roundDown && !forceCompact) {\n formattedNumber =\n Math.trunc(Number(formattedNumber) * 10 ** decimals) / 10 ** decimals;\n } else if (roundUp && !forceCompact) {\n formattedNumber =\n Math.ceil(Number(formattedNumber) * 10 ** decimals) / 10 ** decimals;\n }\n\n let formattedValue: string;\n\n if (isBiggerThanMax) {\n formattedValue = number > maxValue! ? \"∞\" : \"-∞\";\n } else if (!forceCompact) {\n const absFormatted = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals,\n }).format(Math.abs(formattedNumber));\n formattedValue = `${isNegative ? \"-\" : \"\"}${absFormatted}`;\n } else {\n // Compact number formatting\n const bnValue = valueToBigNumber(formattedNumber);\n let integerPlaces = bnValue.abs().toFixed(0).length;\n if (compactThreshold && Math.abs(number) <= compactThreshold) {\n integerPlaces = 0;\n }\n\n const significantDigitsGroup = Math.min(\n Math.floor(integerPlaces ? (integerPlaces - 1) / 3 : 0),\n POSTFIXES.length - 1,\n );\n\n const postfix = POSTFIXES[significantDigitsGroup];\n let compactValue = normalizeBN(\n bnValue,\n 3 * significantDigitsGroup,\n ).toNumber();\n\n if (roundDown) {\n compactValue =\n Math.trunc(Number(compactValue) * 10 ** decimals) / 10 ** decimals;\n } else if (roundUp) {\n compactValue =\n Math.ceil(Number(compactValue) * 10 ** decimals) / 10 ** decimals;\n }\n\n const prefix = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals,\n }).format(compactValue);\n\n formattedValue = `${prefix}${postfix}`;\n }\n\n // Build the final formatted string\n const parts: string[] = [];\n\n // Add prefix text\n if (prefixText) {\n parts.push(prefixText);\n }\n\n // Add smaller than indicator\n if (isSmallerThanMin && showIsSmallerThanMin) {\n parts.push(number < 0 ? \">\" : \"<\");\n }\n\n // Add USD symbol\n if (symbol?.toLowerCase() === \"usd\" && !percent) {\n parts.push(\"$\");\n }\n\n // Add the formatted number\n parts.push(formattedValue);\n\n // Add percentage symbol\n if (percent) {\n parts.push(\"%\");\n }\n\n // Add other symbols\n if (symbol?.toLowerCase() !== \"usd\" && typeof symbol !== \"undefined\") {\n parts.push(\" \", symbol);\n }\n\n // Add suffix text\n if (suffixText) {\n parts.push(suffixText);\n }\n\n return parts.join(\"\");\n}\nexport const getSafeNumber = (value: string | undefined): number => {\n if (!value) return 0;\n return Number(value) > Number.MAX_SAFE_INTEGER\n ? Number.MAX_SAFE_INTEGER\n : (Number(value) ?? 0);\n};\n\nexport const truncateDecimal = (\n value: string | number | undefined,\n maxDecimal: number,\n): string => {\n if (!value) return \"0\";\n const [integerPart = \"0\", decimalPart = \"0\"] = `${value}`.split(\".\");\n return `${integerPart}.${decimalPart.substring(0, maxDecimal)}`;\n};\n","import { createTestClient, http } from \"viem\";\n\nimport {\n type ChainId,\n defaultChainId,\n getRpcUrls,\n} from \"@berachain/config/internal\";\n\nexport function getTestClient(chainId: ChainId = defaultChainId) {\n const rpc = getRpcUrls(chainId);\n\n if (!rpc.isAnvil) {\n throw new Error(\"No anvil RPC URL found\");\n }\n return createTestClient({\n mode: \"anvil\",\n transport: http(rpc.jsonRpcUrl),\n });\n}\n"],"mappings":"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","names":["seconds","minutes","hours","days","weeks","months","years","days","hours","minutes","seconds","decimals"]}
1
+ {"version":3,"sources":["../src/utils/getErrorResponse.ts","../src/utils/beraFetch.ts","../src/utils/constants.ts","../src/utils/pythHoneyUtils.ts","../src/utils/time.ts","../src/utils/formatTimestamps.ts","../../utils/src/pkg/bignumber.js.ts","../src/utils/formatNumber.ts","../src/utils/getTestClient.ts"],"sourcesContent":["/**\n * @deprecated use beraFetch instead\n */\nexport async function getErrorResponse(response: Response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (contentType?.includes(\"application/json\")) {\n return response.json();\n } else {\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return {\n message: \"Unknown error, can't decode response into JSON\",\n cause: text,\n };\n }\n }\n}\n","import { RequestError } from \"../errors/RequestError\";\nimport { getErrorResponse } from \"./getErrorResponse\";\n\ntype RequestOptions = RequestInit;\n\nexport async function beraFetch(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n try {\n const response = await fetch(\n typeof endpoint === \"string\" || endpoint instanceof URL\n ? endpoint\n : endpoint.url,\n {\n ...options,\n },\n );\n if (!response.ok) {\n const error = await getErrorResponse(response);\n throw new RequestError({\n cause: error,\n // @to-do import getErrorResponse logic in this function\n // when it's removed from other places\n response: response,\n endpoint,\n });\n }\n return response;\n } catch (error) {\n if (error instanceof RequestError) {\n throw error;\n }\n\n throw new RequestError({\n cause: error,\n endpoint,\n response: undefined,\n });\n }\n}\n\nexport async function beraFetchJson<T>(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n const response = await beraFetch(endpoint, {\n ...options,\n headers: {\n Accept: \"application/json\",\n ...options?.headers,\n },\n });\n return response.json() as Promise<T>;\n}\n","import { parseEther } from \"viem\";\n\n// the buffer of the cap limit, if the user gets close to 10% of the cap limit\n// they should be warned\nexport const CAP_LIMIT_BUFFER = parseEther(\"0.005\");\n\n/**\n * Maximum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MAX_CUSTOM_DEADLINE = 100000;\n\n/**\n * Minimum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MIN_CUSTOM_DEADLINE = 1;\n\n/**\n * Minimum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MIN_CUSTOM_SLIPPAGE = 0.1;\n\n/**\n * Maximum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MAX_CUSTOM_SLIPPAGE = 50;\n\n/**\n * Default gas limit used by MetaMask\n * @see {@link https://github.com/MetaMask/metamask-extension/blob/06cf7459b963e26d0ae60312d4f9a342d07ab89d/ui/pages/confirmations/send/send.constants.js#L8}\n */\nexport const DEFAULT_METAMASK_GAS_LIMIT = 7920027n;\n","export const getPythDefaultUpdateFee = (tokenListLength: number) => {\n return 2n * BigInt(tokenListLength);\n};\n","/**\n * Convert milliseconds to seconds\n */\nexport function msToSeconds(ms: number): number {\n return Math.floor(ms / 1000);\n}\n\n/**\n * Time utility functions for converting between different time units.\n *\n * This utility file provides functions to convert between seconds, minutes, hours, and days.\n * Note on naming conventions: We use \"seconds\" instead of \"secondsToMs\" because JavaScript\n * is typically based in milliseconds, so the conversion to milliseconds is the more common\n * and expected operation. We use \"xxxInSeconds\" when converting to second-based units.\n */\n\n/**\n * Convert seconds to milliseconds\n */\nexport function seconds(seconds: number): number {\n return seconds * 1000;\n}\n\n/**\n * Convert minutes to milliseconds\n */\nexport function minutes(minutes: number): number {\n return minutes * seconds(60);\n}\n\n/**\n * Convert minutes to seconds\n */\nexport function minutesInSeconds(minutes: number): number {\n return minutes * 60;\n}\n\n/**\n * Convert hours to milliseconds\n */\nexport function hours(hours: number): number {\n return hours * minutes(60);\n}\n\n/**\n * Convert hours to seconds\n */\nexport function hoursInSeconds(hours: number): number {\n return hours * minutesInSeconds(60);\n}\n\n/**\n * Convert days to milliseconds\n */\nexport function days(days: number): number {\n return days * hours(24);\n}\n\n/**\n * Convert days to seconds\n */\nexport function daysInSeconds(days: number): number {\n return days * hoursInSeconds(24);\n}\n\n/**\n * Convert weeks to milliseconds\n */\nexport function weeks(weeks: number): number {\n return weeks * days(7);\n}\n\n/**\n * Convert weeks to seconds\n */\nexport function weeksInSeconds(weeks: number): number {\n return weeks * daysInSeconds(7);\n}\n\n/**\n * Convert months to milliseconds using 30 days per month\n */\nexport function months(months: number): number {\n return months * days(30);\n}\n\n/**\n * Convert months to seconds using 30 days per month\n */\nexport function monthsInSeconds(months: number): number {\n return months * daysInSeconds(30);\n}\n\n/**\n * Convert years to milliseconds using 365 days per year\n */\nexport function years(years: number): number {\n return years * days(365);\n}\n\n/**\n * Convert years to seconds using 365 days per year\n */\nexport function yearsInSeconds(years: number): number {\n return years * daysInSeconds(365);\n}\n","export function calculateTimestampFromDays(daysRange: number): number {\n const currentDate = new Date();\n return currentDate.setDate(currentDate.getDate() - daysRange) * 1000;\n}\n\nconst monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst shortMonthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport function formatUnixTimestamp(unixTimestamp: number, isShort?: boolean) {\n const date = new Date(unixTimestamp * 1000);\n\n const day = date.getDate();\n let daySuffix = \"th\";\n\n if (day === 1 || day === 21 || day === 31) {\n daySuffix = \"st\";\n } else if (day === 2 || day === 22) {\n daySuffix = \"nd\";\n } else if (day === 3 || day === 23) {\n daySuffix = \"rd\";\n }\n\n if (isShort) {\n return `${shortMonthNames[date.getMonth()]} ${day}`;\n }\n\n return `${\n monthNames[date.getMonth()]\n } ${day}${daySuffix}, ${date.getFullYear()}`;\n}\n\ntype LegacyArgs = [number, boolean?, boolean?, boolean?];\ntype FormatTimeLeftArgs = [\n number,\n {\n condensed?: boolean;\n greaterUnit?: \"days\" | \"hours\" | \"minutes\";\n showSeconds?: boolean;\n },\n];\n\n/**\n * Formats the time left into a string like \"8 hours, 23 minutes\".\n *\n * @param timeLeftInSeconds - The time left in seconds.\n * @returns A formatted string representing the time left.\n */\nexport function formatTimeLeft(\n ...args: FormatTimeLeftArgs | LegacyArgs\n): string {\n const timeLeftInSeconds = args[0];\n let condensed: boolean;\n\n let showDays: boolean;\n\n let showMinutes: boolean;\n let showSeconds: boolean;\n\n if (typeof args[1] !== \"object\") {\n condensed = args[1] ?? false;\n showDays = args[2] ?? false;\n showSeconds = args[3] ?? false;\n showMinutes = true;\n } else {\n const opts = args[1];\n condensed = opts.condensed ?? false;\n const greaterUnit = opts.greaterUnit ?? \"hours\";\n\n if (greaterUnit === \"days\") {\n showDays = true;\n showMinutes = true;\n } else if (greaterUnit === \"hours\") {\n showDays = false;\n showMinutes = true;\n showSeconds = false;\n } else {\n // minutes is the default\n showDays = false;\n showMinutes = true;\n }\n showSeconds = opts.showSeconds ?? false;\n }\n\n let days = Math.floor(timeLeftInSeconds / (3600 * 24));\n let hours = Math.floor((timeLeftInSeconds % (3600 * 24)) / 3600);\n const minutes = Math.floor((timeLeftInSeconds % 3600) / 60);\n const seconds = timeLeftInSeconds % 60;\n\n // If showDays=false, roll days into hours\n if (!showDays) {\n hours += days * 24;\n days = 0;\n }\n\n if (days === 0 && hours === 0 && minutes === 0) {\n return condensed ? \"< 1 M\" : \"less than a minute\";\n }\n\n const daysDisplay =\n days > 0\n ? `${days}${condensed ? \"D\" : \" day\"}${\n !condensed && days !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const hoursDisplay =\n hours > 0\n ? `${hours}${condensed ? \"H\" : \" hour\"}${\n !condensed && hours !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const minutesDisplay =\n (minutes > 0 && showMinutes) || (!days && !hours)\n ? `${minutes}${condensed ? \"M\" : \" minute\"}${\n !condensed && minutes !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n const secondsDisplay =\n seconds > 0 && showSeconds\n ? `${seconds}${condensed ? \"S\" : \" second\"}${\n !condensed && seconds !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n return [daysDisplay, hoursDisplay, minutesDisplay, secondsDisplay]\n .filter(Boolean)\n .join(condensed ? \" \" : \", \");\n}\n","// biome-ignore lint/style/noRestrictedImports: the only import of bignumber.js is allowed here\nimport BigNumber from \"bignumber.js\";\n\nBigNumber.set({\n // The EXPONENTIAL_AT option defines the exponent value(s) at which toString returns exponential notation.\n // - Single number: the exponent magnitude at and above which exponential notation is used (e.g., `1e9` here disables it for almost all values).\n // - 1e9 is the maximum value supported by BigNumber.js.\n // See: https://mikemcl.github.io/bignumber.js/#exponential-at\n EXPONENTIAL_AT: 1e9,\n});\n\nexport default BigNumber;\n","import BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nexport type BigNumberValue = string | number | BigNumber;\n\nexport interface FormatNumberOptions {\n /** Number of visible decimal places */\n visibleDecimals?: number;\n /** Whether to use compact notation (K, M, B, etc.) */\n compact?: boolean;\n /** Show as percentage */\n percent?: boolean;\n /** Round down instead of normal rounding */\n roundDown?: boolean;\n /** Round up instead of normal rounding */\n roundUp?: boolean;\n /** Threshold above which compact notation is used */\n compactThreshold?: number;\n /** Maximum value to display (shows ∞ if exceeded) */\n maxValue?: number;\n /** Currency symbol (e.g., \"USD\" for $) */\n symbol?: string;\n /** Prefix text */\n prefixText?: string;\n /** Suffix text */\n suffixText?: string;\n /** Show \"< min\" or \"> min\" indicators for very small values */\n showIsSmallerThanMin?: boolean;\n /** Text to show if value is null/undefined */\n ifNullish?: string;\n}\n\nconst POSTFIXES = [\"\", \"K\", \"M\", \"B\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n\nfunction valueToBigNumber(amount: BigNumberValue): BigNumber {\n if (amount instanceof BigNumber) return amount;\n return new BigNumber(amount);\n}\n\nfunction normalizeBN(n: BigNumberValue, decimals: number): BigNumber {\n return valueToBigNumber(n).shiftedBy(decimals * -1);\n}\n\nexport function formatNumber(\n value: BigNumberValue | undefined | null,\n options: FormatNumberOptions | number = {},\n): string {\n if (typeof options === \"number\") {\n const decimals = options;\n if (value === undefined || value === null) {\n return \"\";\n }\n\n if (typeof value === \"object\") {\n throw new Error(\"Value must be a number if using deprecated version\");\n }\n\n // Convert to string with up to 8 decimal places\n let formatted = Number(value).toFixed(decimals);\n // Remove trailing zeros and decimal point if not needed\n formatted = formatted.replace(/(\\.\\d*?[1-9])0+$|\\.0*$/, \"$1\");\n return formatted;\n }\n\n const {\n visibleDecimals,\n compact = true,\n percent = false,\n roundDown = false,\n roundUp = false,\n compactThreshold,\n maxValue,\n symbol,\n prefixText = \"\",\n suffixText = \"\",\n showIsSmallerThanMin = true,\n ifNullish = \"\",\n } = options || {};\n\n // Handle null/undefined values\n if (value === undefined || value === null) {\n return ifNullish;\n }\n\n const number = percent ? Number(value) * 100 : Number(value);\n\n // Handle special numeric values\n if (Number.isNaN(number)) {\n return \"NaN\";\n }\n if (number === Number.POSITIVE_INFINITY) {\n return \"Infinity\";\n }\n if (number === Number.NEGATIVE_INFINITY) {\n return \"-Infinity\";\n }\n\n // Determine decimal places\n let decimals: number = visibleDecimals ?? 0;\n if (number === 0) {\n decimals = 0;\n } else if (visibleDecimals === undefined) {\n if (Math.abs(number) > 1 || percent || symbol === \"USD\") {\n decimals = 2;\n } else {\n decimals = 7;\n }\n }\n\n const minValue = 10 ** -(decimals as number);\n const isSmallerThanMin =\n number !== 0 && Math.abs(number) < Math.abs(minValue);\n const isNegative = number < 0;\n const isBiggerThanMax = maxValue ? Math.abs(number) > maxValue : false;\n\n let formattedNumber = isSmallerThanMin ? minValue : number;\n const forceCompact =\n compact && (!compactThreshold || Math.abs(number) > compactThreshold);\n\n // Apply rounding for non-compact numbers\n if (roundDown && !forceCompact) {\n formattedNumber =\n Math.trunc(Number(formattedNumber) * 10 ** decimals) / 10 ** decimals;\n } else if (roundUp && !forceCompact) {\n formattedNumber =\n Math.ceil(Number(formattedNumber) * 10 ** decimals) / 10 ** decimals;\n }\n\n let formattedValue: string;\n\n if (isBiggerThanMax) {\n formattedValue = number > maxValue! ? \"∞\" : \"-∞\";\n } else if (!forceCompact) {\n const absFormatted = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals,\n }).format(Math.abs(formattedNumber));\n formattedValue = `${isNegative ? \"-\" : \"\"}${absFormatted}`;\n } else {\n // Compact number formatting\n const bnValue = valueToBigNumber(formattedNumber);\n let integerPlaces = bnValue.abs().toFixed(0).length;\n if (compactThreshold && Math.abs(number) <= compactThreshold) {\n integerPlaces = 0;\n }\n\n const significantDigitsGroup = Math.min(\n Math.floor(integerPlaces ? (integerPlaces - 1) / 3 : 0),\n POSTFIXES.length - 1,\n );\n\n const postfix = POSTFIXES[significantDigitsGroup];\n let compactValue = normalizeBN(\n bnValue,\n 3 * significantDigitsGroup,\n ).toNumber();\n\n if (roundDown) {\n compactValue =\n Math.trunc(Number(compactValue) * 10 ** decimals) / 10 ** decimals;\n } else if (roundUp) {\n compactValue =\n Math.ceil(Number(compactValue) * 10 ** decimals) / 10 ** decimals;\n }\n\n const prefix = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals,\n }).format(compactValue);\n\n formattedValue = `${prefix}${postfix}`;\n }\n\n // Build the final formatted string\n const parts: string[] = [];\n\n // Add prefix text\n if (prefixText) {\n parts.push(prefixText);\n }\n\n // Add smaller than indicator\n if (isSmallerThanMin && showIsSmallerThanMin) {\n parts.push(number < 0 ? \">\" : \"<\");\n }\n\n // Add USD symbol\n if (symbol?.toLowerCase() === \"usd\" && !percent) {\n parts.push(\"$\");\n }\n\n // Add the formatted number\n parts.push(formattedValue);\n\n // Add percentage symbol\n if (percent) {\n parts.push(\"%\");\n }\n\n // Add other symbols\n if (symbol?.toLowerCase() !== \"usd\" && typeof symbol !== \"undefined\") {\n parts.push(\" \", symbol);\n }\n\n // Add suffix text\n if (suffixText) {\n parts.push(suffixText);\n }\n\n return parts.join(\"\");\n}\nexport const getSafeNumber = (value: string | undefined): number => {\n if (!value) return 0;\n return Number(value) > Number.MAX_SAFE_INTEGER\n ? Number.MAX_SAFE_INTEGER\n : (Number(value) ?? 0);\n};\n\nexport const truncateDecimal = (\n value: string | number | undefined,\n maxDecimal: number,\n): string => {\n if (!value) return \"0\";\n const [integerPart = \"0\", decimalPart = \"0\"] = `${value}`.split(\".\");\n return `${integerPart}.${decimalPart.substring(0, maxDecimal)}`;\n};\n","import { createTestClient, http } from \"viem\";\n\nimport {\n type ChainId,\n defaultChainId,\n getRpcUrls,\n} from \"@berachain/config/internal\";\n\nexport function getTestClient(chainId: ChainId = defaultChainId) {\n const rpc = getRpcUrls(chainId);\n\n if (!rpc.isAnvil) {\n throw new Error(\"No anvil RPC URL found\");\n }\n return createTestClient({\n mode: \"anvil\",\n transport: http(rpc.jsonRpcUrl),\n });\n}\n"],"mappings":"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","names":["getErrorResponse","response","text","beraFetch","endpoint","options","response","error","getErrorResponse","RequestError","beraFetchJson","parseEther","CAP_LIMIT_BUFFER","MAX_CUSTOM_DEADLINE","MIN_CUSTOM_DEADLINE","MIN_CUSTOM_SLIPPAGE","MAX_CUSTOM_SLIPPAGE","DEFAULT_METAMASK_GAS_LIMIT","getPythDefaultUpdateFee","tokenListLength","msToSeconds","ms","seconds","minutes","minutesInSeconds","hours","hoursInSeconds","days","daysInSeconds","weeks","weeksInSeconds","months","monthsInSeconds","years","yearsInSeconds","calculateTimestampFromDays","daysRange","currentDate","monthNames","shortMonthNames","formatUnixTimestamp","unixTimestamp","isShort","date","day","daySuffix","formatTimeLeft","args","timeLeftInSeconds","condensed","showDays","showMinutes","showSeconds","opts","greaterUnit","days","hours","minutes","seconds","daysDisplay","hoursDisplay","minutesDisplay","secondsDisplay","BigNumber","bignumber_js_default","POSTFIXES","valueToBigNumber","amount","bignumber_js_default","normalizeBN","n","decimals","formatNumber","value","options","formatted","visibleDecimals","compact","percent","roundDown","roundUp","compactThreshold","maxValue","symbol","prefixText","suffixText","showIsSmallerThanMin","ifNullish","number","minValue","isSmallerThanMin","isNegative","isBiggerThanMax","formattedNumber","forceCompact","formattedValue","bnValue","integerPlaces","significantDigitsGroup","postfix","compactValue","absFormatted","parts","getSafeNumber","truncateDecimal","maxDecimal","integerPart","decimalPart","createTestClient","http","defaultChainId","getRpcUrls","getTestClient","chainId","rpc"]}
@@ -0,0 +1,2 @@
1
+ var L=(O=>(O.ENSO_ROUTER="enso.router",O.POL_REWARD_VAULT="pol.rewardVault",O.BEX_POOL="bex.pool",O.ERC20="others.erc20",O.ERC4626="others.erc4626",O.POL_STAKE_VAULT="pol.stakeVault",O.BEX_EXPLOITED_FUND_DISTRIBUTOR="bex.exploitedFundDistributor",O.TW_MINIMAL_ACCOUNT="thirdweb.minimalAccount",O))(L||{});var U=(D=>(D.Governance="Governance",D.Fixed="Fixed",D.Custom="Custom",D))(U||{}),I=(C=>(C.USDBACKED="USD-Backed Stablecoin",C.ALGORITHMIC="Algorithmic Stablecoin",C))(I||{}),B=(N=>(N.POOL_TYPE="Pool Type",N.SELECT_TOKENS="Select Tokens",N.DEPOSIT_LIQUIDITY="Deposit Liquidity",N.SET_PARAMETERS="Set Parameters",N.SET_INFO="Set Info",N))(B||{}),S=(_=>(_.ERC4626="Mint",_.Oogabooga="Oogabooga",_.Fly="Fly",_.HubPools="Hub Pools",_.Wrap="Wrap",_.Unwrap="Unwrap",_.KyberSwap="KyberSwap",_.OpenOcean="OpenOcean",_.Haiku="Haiku",_.Enso="Enso",_.EnsoErc4626="Enso (Mint)",_.RedeemBgt="RedeemBgt",_.Honey="Honey",_))(S||{}),A=(C=>(C.SWAP="SWAP",C.ZAP="ZAP",C))(A||{});var P=(R=>(R.RESET_AMOUNTS="RESET_AMOUNTS",R.ACTION_TYPE_CHANGE="ACTION_TYPE_CHANGE",R.COLLATERALS_CHANGE="COLLATERALS_CHANGE",R.FROM_AMOUNT_CHANGE="FROM_AMOUNT_CHANGE",R.TO_AMOUNT_CHANGE="TO_AMOUNT_CHANGE",R.PREVIEW_CHANGE="PREVIEW_CHANGE",R.IS_BASKET_MODE_ENABLED_CHANGE="IS_BASKET_MODE_ENABLED_CHANGE",R.IS_TYPING_CHANGE="IS_TYPING_CHANGE",R.IS_SUBMITTING_CHANGE="IS_SUBMITTING_CHANGE",R.IS_LOADING_CHANGE="IS_LOADING_CHANGE",R))(P||{});var l=(E=>(E.TEST="Test",E.SEND="Send tokens",E.APPROVAL="Approval",E.SWAP="Swap",E.WRAP="Wrap",E.UNWRAP="Unwrap",E.CREATE_POOL="Create Pool",E.ADD_LIQUIDITY="Add Liquidity",E.WITHDRAW_LIQUIDITY="Withdraw Liquidity",E.DELEGATE="Delegate",E.REDELEGATE="Redelegate",E.QUEUE_BOOST="Queue Boost",E.ACTIVATE_BOOST="Activate Boost",E.QUEUE_UNBOOSTING_ALL="Queue Drop Boost All",E.UNBOOST="Drop Boost",E.QUEUE_UNBOOST="Queue Drop Boost",E.CANCEL_UNBOOST="Cancel Drop Boost",E.CANCEL_BOOST="Cancel Boost",E.UNBONDING="Unbonding",E.CANCEL_UNBONDING="Cancel Unbonding",E.SUBMIT_PROPOSAL="Submit Proposal",E.CANCEL_PROPOSAL="Cancel Proposal",E.EXECUTE_PROPOSAL="Execute Proposal",E.QUEUE_PROPOSAL="Queue Proposal",E.VOTE="Vote",E.MODIFY_REWARD_DURATION="Change Reward Duration",E.MODIFY_REWARD_RATE="Change Reward Rate",E.RESET_REWARD_MODE="Reset Reward Mode",E.CREATE_BRIBE="Add Incentives",E.CLAIMING_BRIBES="Claiming Incentives",E.CLAIMING_REWARDS="Claiming BGT",E.CLAIM_ALL_REWARDS="Claim All Rewards",E.RECOVER_FUNDS="Recover Bex Funds",E.REDEEM_BGT="Redeem BGT",E.MINT_HONEY="Mint Honey",E.REDEEM_HONEY="Redeem Honey",E.SUPPLY="Supply",E.WITHDRAW="Withdraw",E.BORROW="Borrow",E.REPAY="Repay",E.STAKE="Stake",E.UNSTAKE="Unstake",E.ENSO_ROUTE="Enso Route",E.MARKET_LONG="Market Long",E.MARKET_SHORT="Market Short",E.LIMIT_LONG="Limit Long",E.LIMIT_SHORT="Limit Short",E.CANCEL_ORDER="Cancel Order",E.CANCEL_ALL_ORDERS="Cancel All Orders",E.EDIT_PERPS_ORDER="Edit Perps Order",E.DEPOSIT_HONEY="Deposit Honey",E.START_WITHDRAW_REQUEST="Start Withdraw Request",E.CANCEL_WITHDRAW_REQUEST="Cancel Withdraw Request",E.WITHDRAW_HONEY="Withdraw Honey",E.DELEGATE_OCT="Delegate",E.REVOKE_OCT="Revoke",E.REFER="Refer",E.CREATE_REWARDS_VAULT="Create Reward Vault",E.APPLYING_REWARD_ALLOCATION="Apply Reward Allocation",E.APPLYING_OPERATOR_CHANGE="Apply Operator Change",E.CANCELING_OPERATOR_CHANGE="Cancel Operator Change",E.REQUEST_OPERATOR_CHANGE="Request Operator Change",E.APPLYING_REWARD_ALLOCATOR_CHANGE="Apply Reward Allocator Change",E.APPLYING_COMMISSION_CHANGE="Apply Commission Change",E.BONDING_BERA="Stake BERA",E.ZAP_STAKE_BERA="Zap Stake BERA",E.UNBONDING_BERA="Unstake BERA",E.QUEUE_UNBONDING_BERA="Queue Unstake BERA",E.BEND_MARKET_REPAY_AND_WITHDRAW_COLLATERAL="Bend Market Repay and Withdraw Collateral",E.BEND_MARKET_SUPPLY_COLLATERAL_AND_BORROW="Bend Market Supply Collateral and Borrow",E.BEND_MARKET_MULTIPLY="Bend Market Multiply",E.BEND_MARKET_DEMULTIPLY="Bend Market Demultiply",E.BEND_VAULT_SUPPLY="Bend Vault Supply",E.BEND_VAULT_WITHDRAW="Bend Vault Withdraw",E.BEND_CURATOR_REALLOCATE="Bend Curator Reallocate",E.BEND_CURATOR_UPDATE_MARKET_SUPPLY_CAP="Bend Curator Update Market Supply Cap",E.BEND_CURATOR_REVOKE_PENDING_SUPPLY_CAP="Bend Curator Revoke Pending Supply Cap",E.BEND_CURATOR_ACCEPT_PENDING_SUPPLY_CAP="Bend Curator Accept Pending Supply Cap",E.BEND_CURATOR_UPDATE_SUPPLY_QUEUE="Bend Curator Update Supply Queue",E.BEND_CURATOR_UPDATE_WITHDRAW_QUEUE="Bend Curator Update Withdraw Queue",E.BEND_CURATOR_TRANSFER_OWNER="Bend Curator Transfer Owner",E.BEND_CURATOR_CHANGE_GUARDIAN="Bend Curator Change Guardian",E.BEND_CURATOR_SET_CURATOR="Bend Curator Set Curator",E.BEND_CURATOR_SET_ALLOCATOR="Bend Curator Set Allocator",E))(l||{});export{L as a,U as b,I as c,B as d,S as e,A as f,P as g,l as h};
2
+ //# sourceMappingURL=chunk-JDZGYU5T.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enum/contracts.ts","../src/enum/dex.ts","../src/enum/honey.ts","../src/enum/txnEnum.ts"],"sourcesContent":["/**\n * A list of contract names that are not mapped in the devrel's contract mapping or that are generated by factories (e.g. RewardVault).\n */\nexport enum ContractName {\n ENSO_ROUTER = \"enso.router\",\n POL_REWARD_VAULT = \"pol.rewardVault\",\n BEX_POOL = \"bex.pool\",\n ERC20 = \"others.erc20\",\n ERC4626 = \"others.erc4626\",\n POL_STAKE_VAULT = \"pol.stakeVault\",\n BEX_EXPLOITED_FUND_DISTRIBUTOR = \"bex.exploitedFundDistributor\",\n TW_MINIMAL_ACCOUNT = \"thirdweb.minimalAccount\",\n}\n","export enum OwnershipType {\n Governance = \"Governance\",\n Fixed = \"Fixed\",\n Custom = \"Custom\",\n}\n\nexport enum ParameterPreset {\n USDBACKED = \"USD-Backed Stablecoin\",\n ALGORITHMIC = \"Algorithmic Stablecoin\",\n}\n\nexport enum PoolCreationStep {\n POOL_TYPE = \"Pool Type\",\n SELECT_TOKENS = \"Select Tokens\",\n DEPOSIT_LIQUIDITY = \"Deposit Liquidity\",\n SET_PARAMETERS = \"Set Parameters\",\n SET_INFO = \"Set Info\",\n}\n\nexport enum Aggregators {\n ERC4626 = \"Mint\",\n Oogabooga = \"Oogabooga\",\n Fly = \"Fly\",\n HubPools = \"Hub Pools\",\n Wrap = \"Wrap\",\n Unwrap = \"Unwrap\",\n KyberSwap = \"KyberSwap\",\n OpenOcean = \"OpenOcean\",\n Haiku = \"Haiku\",\n Enso = \"Enso\",\n EnsoErc4626 = \"Enso (Mint)\",\n RedeemBgt = \"RedeemBgt\",\n Honey = \"Honey\",\n}\n\nexport enum SwapReferrer {\n SWAP = \"SWAP\",\n ZAP = \"ZAP\",\n}\n","export enum HoneySwapAction {\n RESET_AMOUNTS = \"RESET_AMOUNTS\",\n ACTION_TYPE_CHANGE = \"ACTION_TYPE_CHANGE\",\n COLLATERALS_CHANGE = \"COLLATERALS_CHANGE\",\n FROM_AMOUNT_CHANGE = \"FROM_AMOUNT_CHANGE\",\n TO_AMOUNT_CHANGE = \"TO_AMOUNT_CHANGE\",\n PREVIEW_CHANGE = \"PREVIEW_CHANGE\",\n IS_BASKET_MODE_ENABLED_CHANGE = \"IS_BASKET_MODE_ENABLED_CHANGE\",\n IS_TYPING_CHANGE = \"IS_TYPING_CHANGE\",\n IS_SUBMITTING_CHANGE = \"IS_SUBMITTING_CHANGE\",\n IS_LOADING_CHANGE = \"IS_LOADING_CHANGE\",\n}\n","export enum TransactionActionType {\n /**\n * Used for testing purposes.\n */\n TEST = \"Test\",\n\n // used to send gas token on ERC20\n SEND = \"Send tokens\",\n\n APPROVAL = \"Approval\",\n SWAP = \"Swap\",\n WRAP = \"Wrap\",\n UNWRAP = \"Unwrap\",\n\n CREATE_POOL = \"Create Pool\",\n ADD_LIQUIDITY = \"Add Liquidity\",\n WITHDRAW_LIQUIDITY = \"Withdraw Liquidity\",\n\n DELEGATE = \"Delegate\",\n REDELEGATE = \"Redelegate\",\n\n QUEUE_BOOST = \"Queue Boost\",\n ACTIVATE_BOOST = \"Activate Boost\",\n QUEUE_UNBOOSTING_ALL = \"Queue Drop Boost All\",\n UNBOOST = \"Drop Boost\",\n QUEUE_UNBOOST = \"Queue Drop Boost\",\n CANCEL_UNBOOST = \"Cancel Drop Boost\",\n CANCEL_BOOST = \"Cancel Boost\",\n\n UNBONDING = \"Unbonding\",\n CANCEL_UNBONDING = \"Cancel Unbonding\",\n\n SUBMIT_PROPOSAL = \"Submit Proposal\",\n CANCEL_PROPOSAL = \"Cancel Proposal\",\n EXECUTE_PROPOSAL = \"Execute Proposal\",\n QUEUE_PROPOSAL = \"Queue Proposal\",\n VOTE = \"Vote\",\n\n MODIFY_REWARD_DURATION = \"Change Reward Duration\",\n MODIFY_REWARD_RATE = \"Change Reward Rate\",\n RESET_REWARD_MODE = \"Reset Reward Mode\",\n CREATE_BRIBE = \"Add Incentives\",\n CLAIMING_BRIBES = \"Claiming Incentives\", // claiming others\n CLAIMING_REWARDS = \"Claiming BGT\",\n CLAIM_ALL_REWARDS = \"Claim All Rewards\",\n\n RECOVER_FUNDS = \"Recover Bex Funds\",\n\n REDEEM_BGT = \"Redeem BGT\",\n\n MINT_HONEY = \"Mint Honey\",\n REDEEM_HONEY = \"Redeem Honey\",\n\n SUPPLY = \"Supply\",\n WITHDRAW = \"Withdraw\",\n BORROW = \"Borrow\",\n REPAY = \"Repay\",\n\n STAKE = \"Stake\",\n UNSTAKE = \"Unstake\",\n\n ENSO_ROUTE = \"Enso Route\",\n // PERPS\n\n MARKET_LONG = \"Market Long\",\n MARKET_SHORT = \"Market Short\",\n LIMIT_LONG = \"Limit Long\",\n LIMIT_SHORT = \"Limit Short\",\n CANCEL_ORDER = \"Cancel Order\",\n CANCEL_ALL_ORDERS = \"Cancel All Orders\",\n EDIT_PERPS_ORDER = \"Edit Perps Order\",\n DEPOSIT_HONEY = \"Deposit Honey\",\n START_WITHDRAW_REQUEST = \"Start Withdraw Request\",\n CANCEL_WITHDRAW_REQUEST = \"Cancel Withdraw Request\",\n WITHDRAW_HONEY = \"Withdraw Honey\",\n DELEGATE_OCT = \"Delegate\",\n REVOKE_OCT = \"Revoke\",\n REFER = \"Refer\",\n\n // POL\n CREATE_REWARDS_VAULT = \"Create Reward Vault\",\n APPLYING_REWARD_ALLOCATION = \"Apply Reward Allocation\",\n APPLYING_OPERATOR_CHANGE = \"Apply Operator Change\",\n CANCELING_OPERATOR_CHANGE = \"Cancel Operator Change\",\n REQUEST_OPERATOR_CHANGE = \"Request Operator Change\",\n APPLYING_REWARD_ALLOCATOR_CHANGE = \"Apply Reward Allocator Change\",\n APPLYING_COMMISSION_CHANGE = \"Apply Commission Change\",\n\n BONDING_BERA = \"Stake BERA\",\n ZAP_STAKE_BERA = \"Zap Stake BERA\",\n UNBONDING_BERA = \"Unstake BERA\",\n QUEUE_UNBONDING_BERA = \"Queue Unstake BERA\",\n\n // BEND\n BEND_MARKET_REPAY_AND_WITHDRAW_COLLATERAL = \"Bend Market Repay and Withdraw Collateral\",\n BEND_MARKET_SUPPLY_COLLATERAL_AND_BORROW = \"Bend Market Supply Collateral and Borrow\",\n BEND_VAULT_SUPPLY = \"Bend Vault Supply\",\n BEND_VAULT_WITHDRAW = \"Bend Vault Withdraw\",\n\n // BEND CURATOR\n BEND_CURATOR_REALLOCATE = \"Bend Curator Reallocate\",\n BEND_CURATOR_UPDATE_MARKET_SUPPLY_CAP = \"Bend Curator Update Market Supply Cap\",\n BEND_CURATOR_REVOKE_PENDING_SUPPLY_CAP = \"Bend Curator Revoke Pending Supply Cap\",\n BEND_CURATOR_ACCEPT_PENDING_SUPPLY_CAP = \"Bend Curator Accept Pending Supply Cap\",\n BEND_CURATOR_UPDATE_SUPPLY_QUEUE = \"Bend Curator Update Supply Queue\",\n BEND_CURATOR_UPDATE_WITHDRAW_QUEUE = \"Bend Curator Update Withdraw Queue\",\n BEND_CURATOR_TRANSFER_OWNER = \"Bend Curator Transfer Owner\",\n BEND_CURATOR_CHANGE_GUARDIAN = \"Bend Curator Change Guardian\",\n BEND_CURATOR_SET_CURATOR = \"Bend Curator Set Curator\",\n BEND_CURATOR_SET_ALLOCATOR = \"Bend Curator Set Allocator\",\n}\n"],"mappings":"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","names":["ContractName","OwnershipType","ParameterPreset","PoolCreationStep","Aggregators","SwapReferrer","HoneySwapAction","TransactionActionType"]}
1
+ {"version":3,"sources":["../src/enum/contracts.ts","../src/enum/dex.ts","../src/enum/honey.ts","../src/enum/txnEnum.ts"],"sourcesContent":["/**\n * A list of contract names that are not mapped in the devrel's contract mapping or that are generated by factories (e.g. RewardVault).\n */\nexport enum ContractName {\n ENSO_ROUTER = \"enso.router\",\n POL_REWARD_VAULT = \"pol.rewardVault\",\n BEX_POOL = \"bex.pool\",\n ERC20 = \"others.erc20\",\n ERC4626 = \"others.erc4626\",\n POL_STAKE_VAULT = \"pol.stakeVault\",\n BEX_EXPLOITED_FUND_DISTRIBUTOR = \"bex.exploitedFundDistributor\",\n TW_MINIMAL_ACCOUNT = \"thirdweb.minimalAccount\",\n}\n","export enum OwnershipType {\n Governance = \"Governance\",\n Fixed = \"Fixed\",\n Custom = \"Custom\",\n}\n\nexport enum ParameterPreset {\n USDBACKED = \"USD-Backed Stablecoin\",\n ALGORITHMIC = \"Algorithmic Stablecoin\",\n}\n\nexport enum PoolCreationStep {\n POOL_TYPE = \"Pool Type\",\n SELECT_TOKENS = \"Select Tokens\",\n DEPOSIT_LIQUIDITY = \"Deposit Liquidity\",\n SET_PARAMETERS = \"Set Parameters\",\n SET_INFO = \"Set Info\",\n}\n\nexport enum Aggregators {\n ERC4626 = \"Mint\",\n Oogabooga = \"Oogabooga\",\n Fly = \"Fly\",\n HubPools = \"Hub Pools\",\n Wrap = \"Wrap\",\n Unwrap = \"Unwrap\",\n KyberSwap = \"KyberSwap\",\n OpenOcean = \"OpenOcean\",\n Haiku = \"Haiku\",\n Enso = \"Enso\",\n EnsoErc4626 = \"Enso (Mint)\",\n RedeemBgt = \"RedeemBgt\",\n Honey = \"Honey\",\n}\n\nexport enum SwapReferrer {\n SWAP = \"SWAP\",\n ZAP = \"ZAP\",\n}\n","export enum HoneySwapAction {\n RESET_AMOUNTS = \"RESET_AMOUNTS\",\n ACTION_TYPE_CHANGE = \"ACTION_TYPE_CHANGE\",\n COLLATERALS_CHANGE = \"COLLATERALS_CHANGE\",\n FROM_AMOUNT_CHANGE = \"FROM_AMOUNT_CHANGE\",\n TO_AMOUNT_CHANGE = \"TO_AMOUNT_CHANGE\",\n PREVIEW_CHANGE = \"PREVIEW_CHANGE\",\n IS_BASKET_MODE_ENABLED_CHANGE = \"IS_BASKET_MODE_ENABLED_CHANGE\",\n IS_TYPING_CHANGE = \"IS_TYPING_CHANGE\",\n IS_SUBMITTING_CHANGE = \"IS_SUBMITTING_CHANGE\",\n IS_LOADING_CHANGE = \"IS_LOADING_CHANGE\",\n}\n","export enum TransactionActionType {\n /**\n * Used for testing purposes.\n */\n TEST = \"Test\",\n\n // used to send gas token on ERC20\n SEND = \"Send tokens\",\n\n APPROVAL = \"Approval\",\n SWAP = \"Swap\",\n WRAP = \"Wrap\",\n UNWRAP = \"Unwrap\",\n\n CREATE_POOL = \"Create Pool\",\n ADD_LIQUIDITY = \"Add Liquidity\",\n WITHDRAW_LIQUIDITY = \"Withdraw Liquidity\",\n\n DELEGATE = \"Delegate\",\n REDELEGATE = \"Redelegate\",\n\n QUEUE_BOOST = \"Queue Boost\",\n ACTIVATE_BOOST = \"Activate Boost\",\n QUEUE_UNBOOSTING_ALL = \"Queue Drop Boost All\",\n UNBOOST = \"Drop Boost\",\n QUEUE_UNBOOST = \"Queue Drop Boost\",\n CANCEL_UNBOOST = \"Cancel Drop Boost\",\n CANCEL_BOOST = \"Cancel Boost\",\n\n UNBONDING = \"Unbonding\",\n CANCEL_UNBONDING = \"Cancel Unbonding\",\n\n SUBMIT_PROPOSAL = \"Submit Proposal\",\n CANCEL_PROPOSAL = \"Cancel Proposal\",\n EXECUTE_PROPOSAL = \"Execute Proposal\",\n QUEUE_PROPOSAL = \"Queue Proposal\",\n VOTE = \"Vote\",\n\n MODIFY_REWARD_DURATION = \"Change Reward Duration\",\n MODIFY_REWARD_RATE = \"Change Reward Rate\",\n RESET_REWARD_MODE = \"Reset Reward Mode\",\n CREATE_BRIBE = \"Add Incentives\",\n CLAIMING_BRIBES = \"Claiming Incentives\", // claiming others\n CLAIMING_REWARDS = \"Claiming BGT\",\n CLAIM_ALL_REWARDS = \"Claim All Rewards\",\n\n RECOVER_FUNDS = \"Recover Bex Funds\",\n\n REDEEM_BGT = \"Redeem BGT\",\n\n MINT_HONEY = \"Mint Honey\",\n REDEEM_HONEY = \"Redeem Honey\",\n\n SUPPLY = \"Supply\",\n WITHDRAW = \"Withdraw\",\n BORROW = \"Borrow\",\n REPAY = \"Repay\",\n\n STAKE = \"Stake\",\n UNSTAKE = \"Unstake\",\n\n ENSO_ROUTE = \"Enso Route\",\n // PERPS\n\n MARKET_LONG = \"Market Long\",\n MARKET_SHORT = \"Market Short\",\n LIMIT_LONG = \"Limit Long\",\n LIMIT_SHORT = \"Limit Short\",\n CANCEL_ORDER = \"Cancel Order\",\n CANCEL_ALL_ORDERS = \"Cancel All Orders\",\n EDIT_PERPS_ORDER = \"Edit Perps Order\",\n DEPOSIT_HONEY = \"Deposit Honey\",\n START_WITHDRAW_REQUEST = \"Start Withdraw Request\",\n CANCEL_WITHDRAW_REQUEST = \"Cancel Withdraw Request\",\n WITHDRAW_HONEY = \"Withdraw Honey\",\n DELEGATE_OCT = \"Delegate\",\n REVOKE_OCT = \"Revoke\",\n REFER = \"Refer\",\n\n // POL\n CREATE_REWARDS_VAULT = \"Create Reward Vault\",\n APPLYING_REWARD_ALLOCATION = \"Apply Reward Allocation\",\n APPLYING_OPERATOR_CHANGE = \"Apply Operator Change\",\n CANCELING_OPERATOR_CHANGE = \"Cancel Operator Change\",\n REQUEST_OPERATOR_CHANGE = \"Request Operator Change\",\n APPLYING_REWARD_ALLOCATOR_CHANGE = \"Apply Reward Allocator Change\",\n APPLYING_COMMISSION_CHANGE = \"Apply Commission Change\",\n\n BONDING_BERA = \"Stake BERA\",\n ZAP_STAKE_BERA = \"Zap Stake BERA\",\n UNBONDING_BERA = \"Unstake BERA\",\n QUEUE_UNBONDING_BERA = \"Queue Unstake BERA\",\n\n // BEND\n BEND_MARKET_REPAY_AND_WITHDRAW_COLLATERAL = \"Bend Market Repay and Withdraw Collateral\",\n BEND_MARKET_SUPPLY_COLLATERAL_AND_BORROW = \"Bend Market Supply Collateral and Borrow\",\n BEND_MARKET_MULTIPLY = \"Bend Market Multiply\",\n BEND_MARKET_DEMULTIPLY = \"Bend Market Demultiply\",\n BEND_VAULT_SUPPLY = \"Bend Vault Supply\",\n BEND_VAULT_WITHDRAW = \"Bend Vault Withdraw\",\n\n // BEND CURATOR\n BEND_CURATOR_REALLOCATE = \"Bend Curator Reallocate\",\n BEND_CURATOR_UPDATE_MARKET_SUPPLY_CAP = \"Bend Curator Update Market Supply Cap\",\n BEND_CURATOR_REVOKE_PENDING_SUPPLY_CAP = \"Bend Curator Revoke Pending Supply Cap\",\n BEND_CURATOR_ACCEPT_PENDING_SUPPLY_CAP = \"Bend Curator Accept Pending Supply Cap\",\n BEND_CURATOR_UPDATE_SUPPLY_QUEUE = \"Bend Curator Update Supply Queue\",\n BEND_CURATOR_UPDATE_WITHDRAW_QUEUE = \"Bend Curator Update Withdraw Queue\",\n BEND_CURATOR_TRANSFER_OWNER = \"Bend Curator Transfer Owner\",\n BEND_CURATOR_CHANGE_GUARDIAN = \"Bend Curator Change Guardian\",\n BEND_CURATOR_SET_CURATOR = \"Bend Curator Set Curator\",\n BEND_CURATOR_SET_ALLOCATOR = \"Bend Curator Set Allocator\",\n}\n"],"mappings":"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","names":["ContractName","OwnershipType","ParameterPreset","PoolCreationStep","Aggregators","SwapReferrer","HoneySwapAction","TransactionActionType"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkUFIM7WQ4cjs = require('./chunk-UFIM7WQ4.cjs');var _chunkDDEQFR3Mcjs = require('./chunk-DDEQFR3M.cjs');var _chunkZYXVUXFQcjs = require('./chunk-ZYXVUXFQ.cjs');var _chunkQFLDL4UVcjs = require('./chunk-QFLDL4UV.cjs');var _chunk53TSJM6Pcjs = require('./chunk-53TSJM6P.cjs');var _react = require('react');var _edgeconfig = require('@berachain/config/internal/edge-config');var _jsxruntime = require('react/jsx-runtime');var W=_react.createContext.call(void 0, void 0);function pe({children:e,flags:t,aggregators:a,swberaAprWindow:n="DAY"}){return _jsxruntime.jsx.call(void 0, W.Provider,{value:{..._chunkDDEQFR3Mcjs.a,...t,aggregators:a?Object.entries(a).filter(([,r])=>_edgeconfig.isFlagEnabled.call(void 0, r)).map(([r])=>r):void 0,swberaAprWindow:n},children:e})}function D(){let e=_react.useContext.call(void 0, W);if(!e)throw new Error("BeraFlagsProvider not found");return e}function fe(e){return D()[e]}var w=_react.createContext.call(void 0, {protocol:{isPaused:!1,factories:{composableStable:"enabled",weighted:"enabled",allPaused:!1}},onPoolChange:()=>{},pool:void 0});function Te(){let e=_react.useContext.call(void 0, w);if(!e)throw new (0, _chunk53TSJM6Pcjs.f)({level:"fatal",message:"BexStateContext is not defined"});return e}function he({children:e,isVaultPaused:t,labels:a,factories:n}){let[r,u]=_react.useState.call(void 0, ),s=_nullishCoalesce((_optionalChain([r, 'optionalAccess', _2 => _2.isPaused])&&!_optionalChain([r, 'optionalAccess', _3 => _3.isInRecoveryMode])), () => (!1)),l=t||_optionalChain([r, 'optionalAccess', _4 => _4.isPaused]);return _jsxruntime.jsx.call(void 0, w.Provider,{value:{protocol:{isPaused:t,factories:{...n,allPaused:n.composableStable==="paused"&&n.weighted==="paused"}},labels:a,onPoolChange:u,pool:r?{...r,disablePoolWithdrawals:!!s,disablePoolDeposits:!!l}:void 0},children:e})}var _mainnet = require('@berachain/config/mainnet');function ve(){return _react.useContext.call(void 0, F)}var F=_react.createContext.call(void 0, _mainnet.mainnet.averageBlockTime);function Ee({children:e,blockTime:t,...a}){let{config:n}=_chunkZYXVUXFQcjs.a.call(void 0, a);return _jsxruntime.jsx.call(void 0, F.Provider,{value:_nullishCoalesce(t, () => (n.averageBlockTime)),children:e})}var L=_react.createContext.call(void 0, void 0);function Fe({children:e,...t}){return _jsxruntime.jsx.call(void 0, L.Provider,{value:t,children:e})}function Le(){let e=_react.useContext.call(void 0, L);if(!e)throw new Error("useHoneyConfig must be used within a HoneyConfigProvider");return e}var _swr = require('swr'); var _swr2 = _interopRequireDefault(_swr);var _hooks = require('@berachain/wagmi/hooks');var _core = require('@wagmi/core');var _viem = require('viem');async function R({account:e,wagmiConfig:t,chainId:a,ensoClient:n}){let u=(await n.getBalances({useEoa:!0,chainId:_nullishCoalesce(a, () => ("all")),eoaAddress:e})).map(o=>({name:o.name,symbol:o.symbol,decimals:o.decimals,address:_chunkZYXVUXFQcjs.e.call(void 0, o.token,"ETH")?_chunkZYXVUXFQcjs.b.address:o.token,logoURI:o.logoUri,balance:{raw:o.amount.toString(),formatted:_viem.formatUnits.call(void 0, BigInt(o.amount),o.decimals)},chainId:Number(o.chainId),price:Number(o.price)})),s=Object.groupBy(u,o=>_nullishCoalesce(o.chainId, () => (0))),l=await Promise.allSettled(Object.entries(s).map(async([o,i])=>{if(!i)return;let p=_core.getChains.call(void 0, t).find(d=>d.id===Number(o));if(!p)return;let k=_optionalChain([p, 'access', _5 => _5.contracts, 'optionalAccess', _6 => _6.multicall3, 'optionalAccess', _7 => _7.address]);if(!k)return _chunkQFLDL4UVcjs.g.captureException(new (0, _chunk53TSJM6Pcjs.h)({property:"multicallAddress",value:k,expected:"Address",chainId:Number(o)})),i;let f=await _core.multicall.call(void 0, t,{chainId:Number(o),contracts:i.map(d=>_chunkUFIM7WQ4cjs.b.call(void 0, {token:d,account:e,multicallAddress:k})),allowFailure:!0}),x=[];for(let d=0;d<i.length;d++){let T=i[d];if(f[d].status==="success"){let C=f[d].result;x.push({...T,balance:{raw:_nullishCoalesce(_optionalChain([C, 'optionalAccess', _8 => _8.toString, 'call', _9 => _9()]), () => ("0")),formatted:_viem.formatUnits.call(void 0, _nullishCoalesce(C, () => (0n)),T.decimals)}})}else console.error("error getting balance",f[d].error),_chunkQFLDL4UVcjs.g.captureException(_chunkQFLDL4UVcjs.a.call(void 0, {cause:f[d].error})),x.push(T)}return x})),c=[];for(let o of l)o.status==="fulfilled"?c.push(..._nullishCoalesce(o.value, () => ([]))):_chunkQFLDL4UVcjs.g.captureException(_chunkQFLDL4UVcjs.a.call(void 0, {cause:o.reason}));return c.sort((o,i)=>{let p=Number(o.balance.formatted)*(_nullishCoalesce(o.price, () => (0)));return Number(i.balance.formatted)*(_nullishCoalesce(i.price, () => (0)))-p})}function A({chainId:e}={},t){let{address:a}=_hooks.useBeraWallet.call(void 0, ),n=_hooks.useConfig.call(void 0, ),r=!!a&&(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _10 => _10.opts, 'optionalAccess', _11 => _11.isEnabled]), () => (!0))),s=_swr2.default.call(void 0, r&&n?["useEnsoUserTokensWithBalances",a,e]:null,async([,l,c])=>R({account:l,wagmiConfig:n,chainId:_nullishCoalesce(c, () => ("all")),ensoClient:_chunkUFIM7WQ4cjs.a.call(void 0, )}),{refreshInterval:1e5,isEnabled:r,..._optionalChain([t, 'optionalAccess', _12 => _12.opts])});return{...s,refresh:()=>s.mutate()}}function H({defaultTokenList:e=[],externalList:t=[]}){if(e.length===0)return{tokenList:t,customTokenList:t,featuredTokenList:[]};let a=e.map(s=>({...s,default:!0})),n=a.filter(s=>_optionalChain([s, 'access', _13 => _13.tags, 'optionalAccess', _14 => _14.some, 'call', _15 => _15(l=>l==="featured")])),r=[...a,...t];return{tokenList:r.filter((s,l)=>r.findIndex(c=>_chunkZYXVUXFQcjs.e.call(void 0, c,s))===l),customTokenList:t,featuredTokenList:n}}var ie=_react.createContext.call(void 0, void 0);function je({children:e,defaultTokens:t,edgeConfigTokenList:a,userTokens:n,onAddToken:r,onRemoveToken:u}){let{data:s,refresh:l}=A(),{tokenList:c=[],featuredTokenList:o=[]}=_react.useMemo.call(void 0, ()=>H({defaultTokenList:[...t,..._optionalChain([a, 'optionalAccess', _16 => _16.filter, 'call', _17 => _17(i=>_edgeconfig.isFlagEnabled.call(void 0, i.enabled))])],externalList:[...n,...(_nullishCoalesce(s, () => ([]))).map(i=>({...i,balance:void 0,price:void 0}))]}),[t,n,a,s]);return _jsxruntime.jsx.call(void 0, ie.Provider,{value:{tokenList:c,userTokens:n,featuredTokens:o,ensoTokens:s,onAddToken(i){r(i,{defaultTokens:t,userTokens:n,tokenList:c})},onRemoveToken:u,refresh:()=>{l()}},children:e})}exports.a = pe; exports.b = D; exports.c = fe; exports.d = w; exports.e = Te; exports.f = he; exports.g = ve; exports.h = F; exports.i = Ee; exports.j = L; exports.k = Fe; exports.l = Le; exports.m = A; exports.n = ie; exports.o = je;
2
+ //# sourceMappingURL=chunk-JLFBRMOF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-JLFBRMOF.cjs","../src/contexts/BeraFlags/BeraFlags.tsx","../src/contexts/BexStatusProvider.tsx","../src/contexts/block-time-provider.tsx","../src/contexts/HoneyConfigProvider.tsx","../src/hooks/enso/useEnsoUserTokensWithBalances.ts","../src/actions/enso/getEnsoUserTokensWithBalances.ts","../src/contexts/TokensProvider.tsx","../src/utils/formatTokenList.ts"],"names":["BeraFlagContext","createContext","BeraFlagsProvider","children","flags","aggregators","swberaAprWindow","jsx","defaultFlags","value","isFlagEnabled","key","useBeraFlags","context","useContext","useBeraFlag","BexStateContext","useBexStatus","BeraError","BexStatusProvider","isVaultPaused","labels","factories","poolState","setPoolState","useState","disablePoolWithdrawals","disablePoolDeposits","useBlockTime","BlockTimeContext","mainnet","BlockTimeProvider","blockTime","args","config","parseBaseArgs","HoneyConfigContext","HoneyConfigProvider","props","useHoneyConfig","getEnsoUserTokensWithBalances","account","wagmiConfig","chainId","ensoClient","tokens","balance","isToken","beraToken","formatUnits","tokenByChainId","a","balances","chainTokens","chainConfig","getChains","chain","multicallAddress","BeraMonitoring","InvalidArgumentError","multicall","token","getBalanceCall","tokensWithBalances","index","initBeraError","flattenedBalances","result","b","aValue","useEnsoUserTokensWithBalances","options","fromAddress","useBeraWallet","useConfig","isEnabled","swrResponse","useSWR","getEnsoClient","formatTokenList","defaultTokenList","externalList","defaultList","featuredTokenList","tag","mergedList","item","i","TokenContext","TokensProvider","defaultTokens","edgeConfigTokenList","userTokens","onAddToken","onRemoveToken","ensoTokens","refresh","tokenList","useMemo","t","tk"],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-JLFBRMOF.cjs","sourcesContent":[null,"import { createContext, useContext } from \"react\";\n\nimport {\n type EdgeConfigSchema,\n isFlagEnabled,\n} from \"@berachain/config/internal/edge-config\";\n\nimport { type BeraFlags, defaultFlags } from \"./defaultFlags\";\n\nexport type { BeraFlags };\n\nexport type BeraFlagsContextReturn = BeraFlags & {\n /**\n * A list of aggregators that are enabled. If not provided, all aggregators are enabled.\n */\n aggregators: string[] | undefined;\n swberaAprWindow: Exclude<\n EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"],\n undefined\n >;\n};\n\nconst BeraFlagContext = createContext<BeraFlagsContextReturn | undefined>(\n undefined,\n);\n\nexport function BeraFlagsProvider({\n children,\n flags,\n aggregators,\n swberaAprWindow = \"DAY\",\n}: {\n children: React.ReactNode;\n flags: BeraFlags;\n aggregators?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"aggregators\"];\n swberaAprWindow?: EdgeConfigSchema[\"pol\"][\"swberaAprWindow\"];\n}) {\n return (\n <BeraFlagContext.Provider\n value={{\n ...defaultFlags,\n ...flags,\n aggregators: aggregators\n ? Object.entries(aggregators)\n .filter(([, value]) => isFlagEnabled(value))\n .map(([key]) => key)\n : undefined,\n swberaAprWindow,\n }}\n >\n {children}\n </BeraFlagContext.Provider>\n );\n}\n\nexport function useBeraFlags() {\n const context = useContext(BeraFlagContext);\n if (!context) {\n throw new Error(\"BeraFlagsProvider not found\");\n }\n return context;\n}\n\nexport function useBeraFlag<T extends keyof BeraFlagsContextReturn>(\n key: T,\n): BeraFlagsContextReturn[T] {\n const flags = useBeraFlags();\n return flags[key];\n}\n","import {\n createContext,\n type Dispatch,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useState,\n} from \"react\";\nimport type { Hex } from \"viem\";\n\nimport type { EdgeConfigSchema } from \"@berachain/config/internal/edge-config\";\n\nimport { BeraError } from \"../errors/BeraError\";\n\ntype FactoryStatus = {\n /**\n * If the composable stable factory is enabled\n */\n composableStable: \"paused\" | \"enabled\";\n /**\n * If the weighted factory is enabled\n */\n weighted: \"paused\" | \"enabled\";\n};\nexport interface BexStatusProviderProps {\n isVaultPaused: boolean;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n };\n factories: FactoryStatus;\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}\n\nexport const BexStateContext = createContext<{\n protocol: {\n isPaused: boolean;\n factories: FactoryStatus & { allPaused: boolean };\n };\n onPoolChange: Dispatch<SetStateAction<BexStatusProviderProps[\"pool\"]>>;\n pool?: {\n id: Hex;\n isInRecoveryMode: boolean;\n isPaused: boolean;\n disablePoolWithdrawals: boolean;\n disablePoolDeposits: boolean;\n };\n labels?: NonNullable<EdgeConfigSchema[\"bex\"]>[\"emergencyLabels\"];\n}>({\n protocol: {\n isPaused: false,\n factories: {\n composableStable: \"enabled\",\n weighted: \"enabled\",\n allPaused: false,\n },\n },\n onPoolChange: () => {},\n pool: undefined,\n});\n\n/**\n * @description Determines the status of a pool or vault and returns the appropriate messages and flags to disable functionality.\n * More information here https://www.notion.so/berachain/BEX-RecoveryMode-and-Pause-explained-17c6120abced80e0985dd589b57ff018\n *\n * @returns status flags to enable/disable/notify users across the BEX\n *\n **/\nexport function useBexStatus() {\n const context = useContext(BexStateContext);\n\n if (!context) {\n throw new BeraError({\n level: \"fatal\",\n message: \"BexStateContext is not defined\",\n });\n }\n\n return context;\n}\n\nexport function BexStatusProvider({\n children,\n isVaultPaused,\n labels,\n factories,\n}: PropsWithChildren<BexStatusProviderProps>) {\n const [poolState, setPoolState] = useState<BexStatusProviderProps[\"pool\"]>();\n // Determine whether to disable withdrawals for a pool (vault pause does not impact this)\n const disablePoolWithdrawals =\n (poolState?.isPaused && !poolState?.isInRecoveryMode) ?? false;\n\n // Determine whether to disable deposits for a pool (vault pause does not impact this)\n const disablePoolDeposits = isVaultPaused || poolState?.isPaused;\n\n // TODO: we dont yet support anything to disable staking/unstaking within reward vaults if they get paused\n\n return (\n <BexStateContext.Provider\n value={{\n protocol: {\n isPaused: isVaultPaused,\n factories: {\n ...factories,\n allPaused:\n factories.composableStable === \"paused\" &&\n factories.weighted === \"paused\",\n },\n },\n labels,\n onPoolChange: setPoolState,\n pool: poolState\n ? {\n ...poolState,\n disablePoolWithdrawals: !!disablePoolWithdrawals,\n disablePoolDeposits: !!disablePoolDeposits,\n }\n : undefined,\n }}\n >\n {children}\n </BexStateContext.Provider>\n );\n}\n","import { createContext, type PropsWithChildren, useContext } from \"react\";\n\nimport { mainnet } from \"@berachain/config/mainnet\";\n\nimport { parseBaseArgs } from \"../utils/parseBaseArgs\";\n\n/**\n * Average berachain block time in seconds\n */\nexport function useBlockTime(): number {\n return useContext(BlockTimeContext);\n}\n\nexport const BlockTimeContext = createContext<number>(\n // this is the default block time for berachain, but actually overridden by the block time provider\n mainnet.averageBlockTime,\n);\n\nexport function BlockTimeProvider({\n children,\n blockTime,\n ...args\n}: PropsWithChildren<{\n blockTime?: number;\n}> &\n BeraJS.BaseFunctionArgs) {\n const { config } = parseBaseArgs(args);\n\n return (\n <BlockTimeContext.Provider value={blockTime ?? config.averageBlockTime}>\n {children}\n </BlockTimeContext.Provider>\n );\n}\n","import { createContext, useContext } from \"react\";\n\nimport type { HoneyFeeMap } from \"../actions/honey/getHoneyFees\";\nimport type { TokenWithMetadata } from \"../types/dex\";\nimport type { PythPriceFeedMap } from \"../types/honeySwap\";\n\nexport const HoneyConfigContext = createContext<\n HoneyConfigContextReturn | undefined\n>(undefined);\n\nexport type TokenWithOrder = TokenWithMetadata & {\n order: number;\n};\nexport interface HoneyConfigContextReturn {\n /**\n * Map of the Pyth price feed ids for each collateral\n */\n priceFeedMap: PythPriceFeedMap;\n /**\n * This is the list of all the collaterals that are supported by the Honey protocol\n */\n collateralList: TokenWithOrder[];\n /**\n * This is the main collateral that is used to calculate the relative cap limit\n */\n referenceCollateral: TokenWithOrder;\n /**\n * An object that maps the redeem/mint rate for each collateral and the weighted rates for the basket mode\n */\n feeMap: HoneyFeeMap;\n flags: {\n /**\n * If true, mint/redeem will also update pyth prices\n */\n isPythWrapperEnabled: boolean;\n };\n /**\n * Honey protocol configs\n */\n protocol: {\n /**\n * Honey protocol paused state\n */\n isPaused: boolean;\n /**\n * The label for the Honey protocol paused message\n */\n pausedBannerLabel?: string;\n };\n}\n\nexport interface HoneyConfigProviderProps extends HoneyConfigContextReturn {\n children: React.ReactNode;\n}\n\nexport function HoneyConfigProvider({\n children,\n ...props\n}: HoneyConfigProviderProps) {\n return (\n <HoneyConfigContext.Provider value={props}>\n {children}\n </HoneyConfigContext.Provider>\n );\n}\n\nexport function useHoneyConfig() {\n const context = useContext(HoneyConfigContext);\n if (!context) {\n throw new Error(\"useHoneyConfig must be used within a HoneyConfigProvider\");\n }\n return context;\n}\n","import useSWR from \"swr\";\n\nimport { useBeraWallet, useConfig } from \"@berachain/wagmi/hooks\";\n\nimport { getEnsoClient } from \"../../actions/clients/getEnsoClient\";\nimport { getEnsoUserTokensWithBalances } from \"../../actions/enso/getEnsoUserTokensWithBalances\";\nimport { POLLING } from \"../../enum/polling\";\nimport type { BalanceToken } from \"../../types/dex\";\nimport type { DefaultHookOptions } from \"../../types/global\";\n\nexport function useEnsoUserTokensWithBalances(\n { chainId }: { chainId?: number } = {},\n options?: DefaultHookOptions,\n) {\n const { address: fromAddress } = useBeraWallet();\n const wagmiConfig = useConfig();\n const isEnabled = !!fromAddress && (options?.opts?.isEnabled ?? true);\n\n const QUERY_KEY =\n isEnabled && wagmiConfig\n ? ([\"useEnsoUserTokensWithBalances\", fromAddress, chainId] as const)\n : null;\n\n const swrResponse = useSWR(\n QUERY_KEY,\n async ([, fromAddress, chainId]): Promise<BalanceToken[]> =>\n getEnsoUserTokensWithBalances({\n account: fromAddress,\n wagmiConfig,\n chainId: chainId ?? \"all\",\n ensoClient: getEnsoClient(),\n }),\n {\n refreshInterval: POLLING.NORMAL,\n isEnabled,\n ...options?.opts,\n },\n );\n return {\n ...swrResponse,\n refresh: () => swrResponse.mutate(),\n };\n}\n","import type { EnsoClient } from \"@ensofinance/sdk\";\nimport { type Config, getChains, multicall } from \"@wagmi/core\";\nimport { type Address, formatUnits } from \"viem\";\n\nimport { BeraMonitoring } from \"../../errors/BeraMonitoring\";\nimport { InvalidArgumentError } from \"../../errors/InvalidArgumentError\";\nimport { initBeraError } from \"../../errors/initBeraError\";\nimport type { BalanceToken } from \"../../types/dex\";\nimport { beraToken, isToken } from \"../../utils/tokens\";\nimport { getBalanceCall } from \"../tokens/getWalletBalances\";\n\n/**\n * Get user balances for each supported chain.\n *\n * This uses enso's balance endpoint to get the balances and RPC to get fresh balances.\n */\nexport async function getEnsoUserTokensWithBalances({\n account,\n wagmiConfig,\n chainId,\n ensoClient,\n}: {\n account: Address;\n wagmiConfig: Config;\n chainId: number | \"all\";\n ensoClient: EnsoClient;\n}): Promise<BalanceToken[]> {\n const ensoBalances = await ensoClient.getBalances({\n useEoa: true,\n chainId: chainId ?? \"all\",\n eoaAddress: account,\n });\n\n const tokens: BalanceToken[] = ensoBalances.map(\n (balance) =>\n ({\n name: balance.name,\n symbol: balance.symbol,\n decimals: balance.decimals,\n address: isToken(balance.token, \"ETH\")\n ? beraToken.address\n : balance.token,\n logoURI: balance.logoUri,\n balance: {\n raw: balance.amount.toString(),\n formatted: formatUnits(BigInt(balance.amount), balance.decimals),\n },\n\n chainId: Number(\n // @ts-expect-error - balance.chainId is defined just not typed by enso\n balance.chainId,\n ),\n price: Number(balance.price),\n }) as const satisfies BalanceToken,\n );\n\n const tokenByChainId = Object.groupBy(tokens, (a) => a.chainId ?? 0);\n\n const balances = await Promise.allSettled(\n Object.entries(tokenByChainId).map(async ([chainId, chainTokens]) => {\n if (!chainTokens) return undefined;\n const chainConfig = getChains(wagmiConfig).find(\n (chain) => chain.id === Number(chainId),\n );\n\n if (!chainConfig) {\n // if we've queried a chain that is not supported, we need to return undefined\n return undefined;\n }\n\n const multicall3 = chainConfig.contracts?.multicall3;\n\n const multicallAddress = multicall3?.address;\n\n if (!multicallAddress) {\n // if multicall is not supported on this chain, we need to use the enso balance\n // first let's report the error, as this is likely unexpected\n BeraMonitoring.captureException(\n new InvalidArgumentError({\n property: \"multicallAddress\",\n value: multicallAddress,\n expected: \"Address\",\n chainId: Number(chainId),\n }),\n );\n\n // we can return the tokens as is, as the balance is already set from the enso client\n return chainTokens;\n }\n\n const balances = await multicall(wagmiConfig, {\n chainId: Number(chainId),\n contracts: chainTokens.map((token) =>\n getBalanceCall({\n token,\n account,\n multicallAddress,\n }),\n ),\n allowFailure: true,\n });\n\n const tokensWithBalances: BalanceToken[] = [];\n\n for (let index = 0; index < chainTokens.length; index++) {\n const token = chainTokens[index];\n if (balances[index].status === \"success\") {\n const balance = balances[index].result;\n\n tokensWithBalances.push({\n ...token,\n balance: {\n raw: balance?.toString() ?? \"0\",\n formatted: formatUnits(balance ?? 0n, token.decimals),\n },\n });\n } else {\n console.error(\"error getting balance\", balances[index].error);\n BeraMonitoring.captureException(\n initBeraError({ cause: balances[index].error }),\n );\n // uses enso balance as fallback\n tokensWithBalances.push(token);\n }\n }\n\n return tokensWithBalances;\n }),\n );\n\n const flattenedBalances: BalanceToken[] = [];\n for (const result of balances) {\n if (result.status === \"fulfilled\") {\n flattenedBalances.push(...(result.value ?? []));\n } else {\n BeraMonitoring.captureException(initBeraError({ cause: result.reason }));\n }\n }\n\n return flattenedBalances.sort((a, b) => {\n const aValue = Number(a.balance.formatted) * (a.price ?? 0);\n const bValue = Number(b.balance.formatted) * (b.price ?? 0);\n return bValue - aValue;\n });\n}\n","import { createContext, type PropsWithChildren, useMemo } from \"react\";\n\nimport {\n type EdgeConfigSchema,\n isFlagEnabled,\n} from \"@berachain/config/internal/edge-config\";\n\nimport { useEnsoUserTokensWithBalances } from \"../hooks/enso/useEnsoUserTokensWithBalances\";\nimport type { BalanceToken, Token, TokenWithMetadata } from \"../types/dex\";\nimport { formatTokenList } from \"../utils/formatTokenList\";\n\nexport interface TokensProviderContext {\n tokenList: TokenWithMetadata[];\n userTokens: Token[];\n featuredTokens: TokenWithMetadata[];\n onRemoveToken: (token: Token) => void;\n onAddToken: (token: Token) => void;\n refresh: () => void;\n ensoTokens: BalanceToken[] | undefined;\n}\n\nexport const TokenContext = createContext<TokensProviderContext | undefined>(\n undefined,\n);\n\nexport interface TokensProviderProps\n extends Omit<\n TokensProviderContext,\n \"tokenList\" | \"onAddToken\" | \"featuredTokens\" | \"ensoTokens\"\n > {\n onAddToken: (\n token: Token,\n context: {\n defaultTokens: TokenWithMetadata[];\n userTokens: Token[];\n tokenList: TokenWithMetadata[];\n },\n ) => void;\n defaultTokens: TokenWithMetadata[];\n edgeConfigTokenList: EdgeConfigSchema[\"tokens\"];\n}\n\nexport function TokensProvider({\n children,\n defaultTokens,\n edgeConfigTokenList,\n userTokens,\n onAddToken,\n onRemoveToken,\n}: PropsWithChildren<Omit<TokensProviderProps, \"refresh\">>) {\n const { data: ensoTokens, refresh } = useEnsoUserTokensWithBalances();\n\n const { tokenList = [], featuredTokenList = [] } = useMemo(\n () =>\n formatTokenList({\n defaultTokenList: [\n ...defaultTokens,\n ...(edgeConfigTokenList?.filter((token) =>\n isFlagEnabled(token.enabled),\n ) as TokenWithMetadata[]),\n ],\n externalList: [\n ...userTokens,\n ...(ensoTokens ?? []).map((t) => ({\n ...t,\n balance: undefined,\n price: undefined,\n })),\n ],\n }),\n [defaultTokens, userTokens, edgeConfigTokenList, ensoTokens],\n );\n\n return (\n <TokenContext.Provider\n value={{\n tokenList,\n userTokens,\n featuredTokens: featuredTokenList,\n ensoTokens,\n onAddToken(tk) {\n onAddToken(tk, { defaultTokens, userTokens, tokenList });\n },\n onRemoveToken,\n refresh: () => {\n refresh();\n },\n }}\n >\n {children}\n </TokenContext.Provider>\n );\n}\n","import type { Token, TokenWithMetadata } from \"../types/dex\";\nimport { isToken } from \"./tokens\";\n\nexport interface FormatTokenListReturnType {\n /**\n * Token list including custom tokens\n */\n tokenList: Token[];\n /**\n * Custom token list (added by the user)\n */\n customTokenList?: Token[];\n /**\n * Featured token list\n */\n featuredTokenList?: Token[];\n}\n\nfunction formatTokenList({\n defaultTokenList = [],\n externalList = [],\n}: {\n defaultTokenList: TokenWithMetadata[];\n externalList?: Token[];\n}): FormatTokenListReturnType {\n if (defaultTokenList.length === 0) {\n return {\n tokenList: externalList,\n customTokenList: externalList,\n featuredTokenList: [],\n };\n }\n\n const defaultList = defaultTokenList.map((token) => {\n return { ...token, default: true };\n });\n\n const featuredTokenList = defaultList.filter((token) => {\n return token.tags?.some((tag) => tag === \"featured\");\n });\n\n const mergedList = [...defaultList, ...externalList];\n\n const uniqueList = mergedList.filter(\n (item, index) => mergedList.findIndex((i) => isToken(i, item)) === index,\n );\n\n return {\n tokenList: uniqueList,\n customTokenList: externalList,\n featuredTokenList,\n };\n}\n\nexport { formatTokenList };\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk53TSJM6Pcjs = require('./chunk-53TSJM6P.cjs');async function F(e){if(_optionalChain([e, 'access', _2 => _2.headers, 'access', _3 => _3.get, 'call', _4 => _4("content-type"), 'optionalAccess', _5 => _5.includes, 'call', _6 => _6("application/json")]))return e.json();{let t=await e.text();try{return JSON.parse(t)}catch (e2){return{message:"Unknown error, can't decode response into JSON",cause:t}}}}async function C(e,n){try{let t=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...n});if(!t.ok){let r=await F(t);throw new (0, _chunk53TSJM6Pcjs.g)({cause:r,response:t,endpoint:e})}return t}catch(t){throw t instanceof _chunk53TSJM6Pcjs.g?t:new (0, _chunk53TSJM6Pcjs.g)({cause:t,endpoint:e,response:void 0})}}async function te(e,n){return(await C(e,{...n,headers:{Accept:"application/json",..._optionalChain([n, 'optionalAccess', _7 => _7.headers])}})).json()}var _viem = require('viem');var oe=_viem.parseEther.call(void 0, "0.005"),se= exports.f =1e5,ue= exports.g =1,ie= exports.h =.1,ae= exports.i =50,me= exports.j =7920027n;var fe=e=>2n*BigInt(e);function be(e){return Math.floor(e/1e3)}function V(e){return e*1e3}function j(e){return e*V(60)}function J(e){return e*60}function q(e){return e*j(60)}function G(e){return e*J(60)}function S(e){return e*q(24)}function w(e){return e*G(24)}function pe(e){return e*S(7)}function de(e){return e*w(7)}function he(e){return e*S(30)}function Ne(e){return e*w(30)}function ge(e){return e*S(365)}function xe(e){return e*w(365)}function Me(e){let n=new Date;return n.setDate(n.getDate()-e)*1e3}var X=["January","February","March","April","May","June","July","August","September","October","November","December"],k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ie(e,n){let t=new Date(e*1e3),r=t.getDate(),u="th";return r===1||r===21||r===31?u="st":r===2||r===22?u="nd":(r===3||r===23)&&(u="rd"),n?`${k[t.getMonth()]} ${r}`:`${X[t.getMonth()]} ${r}${u}, ${t.getFullYear()}`}function Te(...e){let n=e[0],t,r,u,l;if(typeof e[1]!="object")t=_nullishCoalesce(e[1], () => (!1)),r=_nullishCoalesce(e[2], () => (!1)),l=_nullishCoalesce(e[3], () => (!1)),u=!0;else{let s=e[1];t=_nullishCoalesce(s.condensed, () => (!1));let o=_nullishCoalesce(s.greaterUnit, () => ("hours"));o==="days"?(r=!0,u=!0):o==="hours"?(r=!1,u=!0,l=!1):(r=!1,u=!0),l=_nullishCoalesce(s.showSeconds, () => (!1))}let a=Math.floor(n/(3600*24)),i=Math.floor(n%(3600*24)/3600),c=Math.floor(n%3600/60),m=n%60;if(r||(i+=a*24,a=0),a===0&&i===0&&c===0)return t?"< 1 M":"less than a minute";let N=a>0?`${a}${t?"D":" day"}${!t&&a!==1?"s":""}`:"",g=i>0?`${i}${t?"H":" hour"}${!t&&i!==1?"s":""}`:"",M=c>0&&u||!a&&!i?`${c}${t?"M":" minute"}${!t&&c!==1?"s":""}`:"",I=m>0&&l?`${m}${t?"S":" second"}${!t&&m!==1?"s":""}`:"";return[N,g,M,I].filter(Boolean).join(t?" ":", ")}var _bignumberjs = require('bignumber.js'); var _bignumberjs2 = _interopRequireDefault(_bignumberjs);_bignumberjs2.default.set({EXPONENTIAL_AT:1e9});var D=_bignumberjs2.default;var _=["","K","M","B","T","P","E","Z","Y"];function L(e){return e instanceof D?e:new D(e)}function Y(e,n){return L(e).shiftedBy(n*-1)}function $e(e,n={}){if(typeof n=="number"){let d=n;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let b=Number(e).toFixed(d);return b=b.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),b}let{visibleDecimals:t,compact:r=!0,percent:u=!1,roundDown:l=!1,roundUp:a=!1,compactThreshold:i,maxValue:c,symbol:m,prefixText:N="",suffixText:g="",showIsSmallerThanMin:M=!0,ifNullish:I=""}=n||{};if(e==null)return I;let s=u?Number(e)*100:Number(e);if(Number.isNaN(s))return"NaN";if(s===Number.POSITIVE_INFINITY)return"Infinity";if(s===Number.NEGATIVE_INFINITY)return"-Infinity";let o=_nullishCoalesce(t, () => (0));s===0?o=0:t===void 0&&(Math.abs(s)>1||u||m==="USD"?o=2:o=7);let E=10**-o,$=s!==0&&Math.abs(s)<Math.abs(E),R=s<0,B=c?Math.abs(s)>c:!1,p=$?E:s,T=r&&(!i||Math.abs(s)>i);l&&!T?p=Math.trunc(Number(p)*10**o)/10**o:a&&!T&&(p=Math.ceil(Number(p)*10**o)/10**o);let x;if(B)x=s>c?"\u221E":"-\u221E";else if(T){let d=L(p),b=d.abs().toFixed(0).length;i&&Math.abs(s)<=i&&(b=0);let A=Math.min(Math.floor(b?(b-1)/3:0),_.length-1),P=_[A],h=Y(d,3*A).toNumber();l?h=Math.trunc(Number(h)*10**o)/10**o:a&&(h=Math.ceil(Number(h)*10**o)/10**o),x=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(h)}${P}`}else{let d=new Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:o}).format(Math.abs(p));x=`${R?"-":""}${d}`}let f=[];return N&&f.push(N),$&&M&&f.push(s<0?">":"<"),_optionalChain([m, 'optionalAccess', _8 => _8.toLowerCase, 'call', _9 => _9()])==="usd"&&!u&&f.push("$"),f.push(x),u&&f.push("%"),_optionalChain([m, 'optionalAccess', _10 => _10.toLowerCase, 'call', _11 => _11()])!=="usd"&&typeof m<"u"&&f.push(" ",m),g&&f.push(g),f.join("")}var Ae=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:_nullishCoalesce(Number(e), () => (0)):0,Fe= exports.E =(e,n)=>{if(!e)return"0";let[t="0",r="0"]=`${e}`.split(".");return`${t}.${r.substring(0,n)}`};var _internal = require('@berachain/config/internal');function Re(e=_internal.defaultChainId){let n=_internal.getRpcUrls.call(void 0, e);if(!n.isAnvil)throw new Error("No anvil RPC URL found");return _viem.createTestClient.call(void 0, {mode:"anvil",transport:_viem.http.call(void 0, n.jsonRpcUrl)})}exports.a = D; exports.b = F; exports.c = C; exports.d = te; exports.e = oe; exports.f = se; exports.g = ue; exports.h = ie; exports.i = ae; exports.j = me; exports.k = fe; exports.l = be; exports.m = V; exports.n = j; exports.o = J; exports.p = q; exports.q = G; exports.r = S; exports.s = w; exports.t = pe; exports.u = de; exports.v = he; exports.w = Ne; exports.x = ge; exports.y = xe; exports.z = Me; exports.A = Ie; exports.B = Te; exports.C = $e; exports.D = Ae; exports.E = Fe; exports.F = Re;
2
+ //# sourceMappingURL=chunk-KT6L4K4K.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-KT6L4K4K.cjs","../src/utils/getErrorResponse.ts","../src/utils/beraFetch.ts","../src/utils/constants.ts","../src/utils/pythHoneyUtils.ts","../src/utils/time.ts","../src/utils/formatTimestamps.ts"],"names":["getErrorResponse","response","text","beraFetch","endpoint","options","error","RequestError","beraFetchJson","CAP_LIMIT_BUFFER","parseEther","MAX_CUSTOM_DEADLINE","MIN_CUSTOM_DEADLINE","MIN_CUSTOM_SLIPPAGE","MAX_CUSTOM_SLIPPAGE","DEFAULT_METAMASK_GAS_LIMIT","getPythDefaultUpdateFee","tokenListLength","msToSeconds","ms","seconds","minutes","minutesInSeconds","hours","hoursInSeconds","days","daysInSeconds","weeks","weeksInSeconds","months","monthsInSeconds","years","yearsInSeconds","calculateTimestampFromDays","daysRange","currentDate","monthNames","shortMonthNames","formatUnixTimestamp","unixTimestamp","isShort","date","day","daySuffix"],"mappings":"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","file":"/Users/pong/coding/monobera/packages/berajs/dist/chunk-KT6L4K4K.cjs","sourcesContent":[null,"/**\n * @deprecated use beraFetch instead\n */\nexport async function getErrorResponse(response: Response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (contentType?.includes(\"application/json\")) {\n return response.json();\n } else {\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return {\n message: \"Unknown error, can't decode response into JSON\",\n cause: text,\n };\n }\n }\n}\n","import { RequestError } from \"../errors/RequestError\";\nimport { getErrorResponse } from \"./getErrorResponse\";\n\ntype RequestOptions = RequestInit;\n\nexport async function beraFetch(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n try {\n const response = await fetch(\n typeof endpoint === \"string\" || endpoint instanceof URL\n ? endpoint\n : endpoint.url,\n {\n ...options,\n },\n );\n if (!response.ok) {\n const error = await getErrorResponse(response);\n throw new RequestError({\n cause: error,\n // @to-do import getErrorResponse logic in this function\n // when it's removed from other places\n response: response,\n endpoint,\n });\n }\n return response;\n } catch (error) {\n if (error instanceof RequestError) {\n throw error;\n }\n\n throw new RequestError({\n cause: error,\n endpoint,\n response: undefined,\n });\n }\n}\n\nexport async function beraFetchJson<T>(\n endpoint: ConstructorParameters<typeof RequestError>[0][\"endpoint\"],\n options?: RequestOptions,\n) {\n const response = await beraFetch(endpoint, {\n ...options,\n headers: {\n Accept: \"application/json\",\n ...options?.headers,\n },\n });\n return response.json() as Promise<T>;\n}\n","import { parseEther } from \"viem\";\n\n// the buffer of the cap limit, if the user gets close to 10% of the cap limit\n// they should be warned\nexport const CAP_LIMIT_BUFFER = parseEther(\"0.005\");\n\n/**\n * Maximum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MAX_CUSTOM_DEADLINE = 100000;\n\n/**\n * Minimum allowed input for a custom deadline in seconds.\n * @type {number}\n */\nexport const MIN_CUSTOM_DEADLINE = 1;\n\n/**\n * Minimum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MIN_CUSTOM_SLIPPAGE = 0.1;\n\n/**\n * Maximum allowed input for a custom slippage tolerance percentage.\n * @type {number}\n */\nexport const MAX_CUSTOM_SLIPPAGE = 50;\n\n/**\n * Default gas limit used by MetaMask\n * @see {@link https://github.com/MetaMask/metamask-extension/blob/06cf7459b963e26d0ae60312d4f9a342d07ab89d/ui/pages/confirmations/send/send.constants.js#L8}\n */\nexport const DEFAULT_METAMASK_GAS_LIMIT = 7920027n;\n","export const getPythDefaultUpdateFee = (tokenListLength: number) => {\n return 2n * BigInt(tokenListLength);\n};\n","/**\n * Convert milliseconds to seconds\n */\nexport function msToSeconds(ms: number): number {\n return Math.floor(ms / 1000);\n}\n\n/**\n * Time utility functions for converting between different time units.\n *\n * This utility file provides functions to convert between seconds, minutes, hours, and days.\n * Note on naming conventions: We use \"seconds\" instead of \"secondsToMs\" because JavaScript\n * is typically based in milliseconds, so the conversion to milliseconds is the more common\n * and expected operation. We use \"xxxInSeconds\" when converting to second-based units.\n */\n\n/**\n * Convert seconds to milliseconds\n */\nexport function seconds(seconds: number): number {\n return seconds * 1000;\n}\n\n/**\n * Convert minutes to milliseconds\n */\nexport function minutes(minutes: number): number {\n return minutes * seconds(60);\n}\n\n/**\n * Convert minutes to seconds\n */\nexport function minutesInSeconds(minutes: number): number {\n return minutes * 60;\n}\n\n/**\n * Convert hours to milliseconds\n */\nexport function hours(hours: number): number {\n return hours * minutes(60);\n}\n\n/**\n * Convert hours to seconds\n */\nexport function hoursInSeconds(hours: number): number {\n return hours * minutesInSeconds(60);\n}\n\n/**\n * Convert days to milliseconds\n */\nexport function days(days: number): number {\n return days * hours(24);\n}\n\n/**\n * Convert days to seconds\n */\nexport function daysInSeconds(days: number): number {\n return days * hoursInSeconds(24);\n}\n\n/**\n * Convert weeks to milliseconds\n */\nexport function weeks(weeks: number): number {\n return weeks * days(7);\n}\n\n/**\n * Convert weeks to seconds\n */\nexport function weeksInSeconds(weeks: number): number {\n return weeks * daysInSeconds(7);\n}\n\n/**\n * Convert months to milliseconds using 30 days per month\n */\nexport function months(months: number): number {\n return months * days(30);\n}\n\n/**\n * Convert months to seconds using 30 days per month\n */\nexport function monthsInSeconds(months: number): number {\n return months * daysInSeconds(30);\n}\n\n/**\n * Convert years to milliseconds using 365 days per year\n */\nexport function years(years: number): number {\n return years * days(365);\n}\n\n/**\n * Convert years to seconds using 365 days per year\n */\nexport function yearsInSeconds(years: number): number {\n return years * daysInSeconds(365);\n}\n","export function calculateTimestampFromDays(daysRange: number): number {\n const currentDate = new Date();\n return currentDate.setDate(currentDate.getDate() - daysRange) * 1000;\n}\n\nconst monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst shortMonthNames = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport function formatUnixTimestamp(unixTimestamp: number, isShort?: boolean) {\n const date = new Date(unixTimestamp * 1000);\n\n const day = date.getDate();\n let daySuffix = \"th\";\n\n if (day === 1 || day === 21 || day === 31) {\n daySuffix = \"st\";\n } else if (day === 2 || day === 22) {\n daySuffix = \"nd\";\n } else if (day === 3 || day === 23) {\n daySuffix = \"rd\";\n }\n\n if (isShort) {\n return `${shortMonthNames[date.getMonth()]} ${day}`;\n }\n\n return `${\n monthNames[date.getMonth()]\n } ${day}${daySuffix}, ${date.getFullYear()}`;\n}\n\ntype LegacyArgs = [number, boolean?, boolean?, boolean?];\ntype FormatTimeLeftArgs = [\n number,\n {\n condensed?: boolean;\n greaterUnit?: \"days\" | \"hours\" | \"minutes\";\n showSeconds?: boolean;\n },\n];\n\n/**\n * Formats the time left into a string like \"8 hours, 23 minutes\".\n *\n * @param timeLeftInSeconds - The time left in seconds.\n * @returns A formatted string representing the time left.\n */\nexport function formatTimeLeft(\n ...args: FormatTimeLeftArgs | LegacyArgs\n): string {\n const timeLeftInSeconds = args[0];\n let condensed: boolean;\n\n let showDays: boolean;\n\n let showMinutes: boolean;\n let showSeconds: boolean;\n\n if (typeof args[1] !== \"object\") {\n condensed = args[1] ?? false;\n showDays = args[2] ?? false;\n showSeconds = args[3] ?? false;\n showMinutes = true;\n } else {\n const opts = args[1];\n condensed = opts.condensed ?? false;\n const greaterUnit = opts.greaterUnit ?? \"hours\";\n\n if (greaterUnit === \"days\") {\n showDays = true;\n showMinutes = true;\n } else if (greaterUnit === \"hours\") {\n showDays = false;\n showMinutes = true;\n showSeconds = false;\n } else {\n // minutes is the default\n showDays = false;\n showMinutes = true;\n }\n showSeconds = opts.showSeconds ?? false;\n }\n\n let days = Math.floor(timeLeftInSeconds / (3600 * 24));\n let hours = Math.floor((timeLeftInSeconds % (3600 * 24)) / 3600);\n const minutes = Math.floor((timeLeftInSeconds % 3600) / 60);\n const seconds = timeLeftInSeconds % 60;\n\n // If showDays=false, roll days into hours\n if (!showDays) {\n hours += days * 24;\n days = 0;\n }\n\n if (days === 0 && hours === 0 && minutes === 0) {\n return condensed ? \"< 1 M\" : \"less than a minute\";\n }\n\n const daysDisplay =\n days > 0\n ? `${days}${condensed ? \"D\" : \" day\"}${\n !condensed && days !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const hoursDisplay =\n hours > 0\n ? `${hours}${condensed ? \"H\" : \" hour\"}${\n !condensed && hours !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n\n const minutesDisplay =\n (minutes > 0 && showMinutes) || (!days && !hours)\n ? `${minutes}${condensed ? \"M\" : \" minute\"}${\n !condensed && minutes !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n const secondsDisplay =\n seconds > 0 && showSeconds\n ? `${seconds}${condensed ? \"S\" : \" second\"}${\n !condensed && seconds !== 1 ? \"s\" : \"\"\n }`\n : \"\";\n return [daysDisplay, hoursDisplay, minutesDisplay, secondsDisplay]\n .filter(Boolean)\n .join(condensed ? \" \" : \", \");\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import{a as Oe}from"./chunk-NLVWRMGD.mjs";import{B as $e,D as K,F as ve,a as k,b as ue,c as Qe,d as Ue,e as de,j as Be,k as Le,l as S,m as Me,r as He,y as te,z as Je}from"./chunk-ESAVA5OD.mjs";import{a as c,b as ce,d as We,e as V}from"./chunk-5W7UKRHX.mjs";import{a as De,b as _e,c as H}from"./chunk-SSPFPAWX.mjs";import{a as D,b as j,c as v,d as Pe,g as M}from"./chunk-CWKDFUFR.mjs";import{c as le,d as qe,e as ee,f as B,g as $,h as x}from"./chunk-RSDCKN4Q.mjs";import{formatEther as Ut}from"viem";import{metaMorphoV11Abi as Wt}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function go({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:Wt,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:Ut(a)}}import{ApolloClient as Lt,ServerError as Ot}from"@apollo/client";import{appConfig as Mt}from"@berachain/config/internal";var me=class extends Lt{url;constructor(t){super(t),this.url=t.url}async query(t){let r=Ht(t.query),a={url:this.url,type:"graphql"},o={"operation.type":"query","operation.source.url":a.url,"operation.source.type":a.type,"operation.source.queryName":r};try{let i=()=>super.query(t),s=await De.startSpan({name:`GraphQL ${r}`,op:"BeraApolloClient.query",attributes:o},i);if(s.error||s.data===void 0)throw new B({level:"fatal",tags:o,message:"Bera Apollo Client: No data returned from query, but error should be thrown since errorPolicy is none"});return{data:s.data}}catch(i){throw!Mt.env.isProduction&&console.error("BeraApolloClient error",i),Ot.is(i)?new $({response:i.response,cause:i,statusCode:i.statusCode,endpoint:a,tags:o}):i instanceof TypeError?new $({level:"fatal",reason:"TypeError",response:i,cause:i,endpoint:a,tags:o}):new $({response:i,tags:o,cause:i,endpoint:a})}}};function Ht(e){return e.definitions.find(r=>r.kind==="OperationDefinition")?.name?.value}import{InMemoryCache as _t}from"@apollo/client";import{HttpLink as Jt}from"@apollo/client/link/http";import{getUriFromLink as je}from"@berachain/config";import{currentDapp as $t}from"@berachain/config/internal";import jt from"@berachain/graphql/dex/api";import{gql as Fo}from"@apollo/client";function Kt(e){let t=typeof e=="string"?void 0:e.headers,r=!!$t,a=process.env.VERCEL_ENV==="test";return{uri:je(e),headers:{...t,"x-graphql-client-name":`berachain.${r?"dapps":a?"test":"berajs"}`,"x-graphql-client-version":`${process.env.VERCEL_TARGET_ENV}.${process.env.VERCEL_GIT_COMMIT_SHA}`}}}function _(e,{ssrMode:t,inMemoryCacheOptions:r}={}){let a=je(e),o=typeof e=="string"?void 0:e.headers;return new me({url:a,link:new Jt({uri:a,headers:o}),defaultOptions:{query:{errorPolicy:"none",fetchPolicy:"no-cache"}},cache:new _t(r),ssrMode:t})}function b(e,{...t}){let{config:r}=c(t);switch(e){case"api":return _(Kt(r.api),{inMemoryCacheOptions:{possibleTypes:jt.possibleTypes}});case"bend.whisk":if(!r.bend.whiskApi)throw new B({message:"Bend whisk API is not configured on this chain",level:"error"});return _(r.bend.whiskApi);case"honey.subgraph":return _(r.honey.subgraph);case"pol.subgraph":return _(r.pol.subgraph);case"pol.fees":return _(r.pol.feesSubgraph);case"governance.subgraph":return _(r.governance.subgraph);case"bex.subgraph":return _(r.bex.subgraph)}}import{formatUnits as Yt,isAddress as Ke,zeroAddress as zt}from"viem";var Ye=class e{static PATH_NOT_FOUND_REASON="NO_SWAP_PATHS";needsAccountForQuote=!1;notFoundMessages=[];config;chainId;constructor(t={}){let{config:r,chainId:a}=c(t);this.config=r,this.chainId=a}url="";parseAddresses(t,r){if(!Ke(t)||!Ke(r))throw new B({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:V(t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:V(r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:V(t,"BERA"),isTokenOutNative:V(r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new B({message:"aggregatorsFeeBps is required",level:"error"});let a=new k(t).times(r).dividedBy(1e4).toFixed(0,k.ROUND_DOWN);return new k(t).minus(a).toFixed(0,k.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:i}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:i??zt}}getMinAmountOut(t,r){if(r===void 0)throw new B({message:"slippage is required",level:"error"});let a=new k(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return V(t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:Yt(BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new B({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return Qe({url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=D({cause:a});throw this.notFoundMessages.some(i=>o.message.includes(i))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}};import{API_CHAIN_NAMES as Xt,BALANCER_QUERIES as Zt,BALANCER_RELAYER as er,BalancerApi as Mo,CHAINS as tr,COMPOSABLE_STABLE_POOL_FACTORY as rr,NATIVE_ASSETS as ar,Token as or,VAULT as nr,WEIGHTED_POOL_FACTORY_BALANCER_V2 as ir}from"@berachain-foundation/berancer-sdk";import{zeroAddress as Re}from"viem";import{berachain as ze,berachainBepolia as sr}from"viem/chains";import{chainConfigs as lr}from"@berachain/config/internal";for(let e of Object.keys(lr)){let{config:t,chainId:r}=c({chainId:Number(e)});Xt[r]=t.bex.chainName,tr[r]=r===ze.id?ze:sr,er[r]=t.bex.relayer,nr[r]=t.bex.vault,Zt[r]=t.bex.queries,ir[r]=Re,rr[r]=Re;let a=new or(r,Re,ce.decimals,ce.name,ce.symbol,t.tokens.wbera);ar[r]=a}import{GetPools as ur}from"@berachain/graphql/dex/api";import{GqlPoolOrderBy as cr,GqlPoolOrderDirection as dr}from"@berachain/graphql/pol/api";async function en({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:i,fetchPolicy:s,userAddress:n,blacklistedPoolIds:l,...d}={}){let{config:u}=c(d),f=await b("api",d).query({query:ur,variables:{textSearch:e,chain:t??u.bex.chainName,first:r,orderBy:a??cr.TotalLiquidity,orderDirection:o??dr.Desc,skip:i,userAddress:n,blacklistedPoolIds:l},fetchPolicy:s});return{pools:f.data.poolGetPools??[],count:f.data.count??0}}import{GetPool as mr}from"@berachain/graphql/dex/api";async function nn({poolId:e,account:t,...r}){let{config:a}=c(r),s=(await b("api",r).query({query:mr,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!s)throw new Error(`Pool not found for id: ${e} and user ${t}`);return s}import{GetGlobalLiquidityAndSwapVolume as pr}from"@berachain/graphql/dex/api";async function dn(e={}){let{config:t}=c(e);return(await b("api",e).query({query:pr,variables:{chain:t.bex.chainName}})).data}import{weightedPoolV4Abi_V2 as fr}from"@berachain-foundation/berancer-sdk";async function Xe({publicClient:e,poolAddress:t}){let r=fr,a=await e.multicall({contracts:[{address:t,abi:r,functionName:"inRecoveryMode"},{address:t,abi:r,functionName:"getPausedState"}],allowFailure:!1});return{isPoolInRecoveryMode:a[0],isPoolPaused:a[1][0]}}import{stablePoolAbi_V3 as gr,vaultV2Abi as br,weightedPoolFactoryAbi_V3 as Ze,weightedPoolV4Abi_V2 as pe}from"@berachain-foundation/berancer-sdk";import{erc20Abi as et,formatEther as tt,formatUnits as yr,isAddress as Ar,isHex as hr}from"viem";import{GqlPoolType as rt}from"@berachain/graphql/pol/api";async function Pn({poolId:e,publicClient:t,...r}){let{config:a}=c(r),o=e.slice(0,42);if(!Ar(o)||!hr(e))throw new x({property:"poolId",value:e,expected:"Hex"});try{let[i,s,n,l,d,u,m,f,g]=await Promise.all([t.readContract({address:o,abi:et,functionName:"name"}),t.readContract({address:a.bex.vault,abi:br,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:et,functionName:"totalSupply"}),t.readContract({address:o,abi:pe,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:pe,functionName:"version"}),t.readContract({address:o,abi:pe,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:Ze,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:Ze,functionName:"isPoolFromFactory",args:[o]}),Xe({publicClient:t,poolAddress:o})]),p=Number(u),A=JSON.parse(d),h,P,y;if(m?[h,y]=await Promise.all([t.readContract({address:o,abi:[{type:"function",name:"getActualSupply",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],functionName:"getActualSupply"}),t.readContract({address:o,abi:gr,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(P=await t.readContract({address:o,abi:pe,functionName:"getNormalizedWeights"})),!m&&!f)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:i,address:o,id:e,poolTokens:[s[0],s[1].map(String),Number(s[2])],totalSupply:yr(h??n,p),swapFee:tt(l),decimals:p,weights:P?.map(I=>tt(I)),version:A,factory:m?a.bex.factories.composableStable:a.bex.factories.weighted,type:m?rt.Stable:rt.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(i){throw D({cause:i})}}import{GetPoolEvents as wr}from"@berachain/graphql/dex/api";async function Sn({poolId:e,typeInArray:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:wr,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}import{isHex as Cr}from"viem";import{GetPoolHistoricalData as Pr}from"@berachain/graphql/dex/api";async function Fn({poolId:e,chain:t,...r}){if(!e||!Cr(e))throw new x({property:"poolId",value:e,expected:"hex string"});let a=b("api",r),{data:o}=await a.query({query:Pr,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}import{isAddress as at,isHex as Br}from"viem";function Y({fieldOrType:e,value:t,required:r=!0,baseUrl:a,components:o}){if(!["bool","string"].includes(e)&&r&&(t==null||t===""))return"Required";if(e.startsWith("uint")||e.startsWith("int")){if(typeof t!="string")return"Invalid amount";try{let s=BigInt(t);if(e.startsWith("uint")&&s<0n)return"Negative amount"}catch{return"Invalid amount"}return null}switch(e){case"string":return t!==void 0&&typeof t!="string"?"Invalid amount":null;case"bool":return typeof t!="boolean"?"Invalid amount":null;case"title":return typeof t!="string"||t.length===0?"Required":null;case"description":return typeof t!="string"||t.length===0?"Required":null;case"forumLink":{if(typeof t!="string"||t.length===0)return"Required";if(!URL.canParse(t))return"Invalid address";let s=new URL(a);return t.startsWith(s.toString())?null:"Must be a berachain forum link"}case"address":return typeof t!="string"||!at(t,{strict:!0})?"Invalid address":null;case"hex":return typeof t!="string"||!Br(t,{strict:!0})?"Invalid address":null;case"abi":if(typeof t!="string")return"Invalid ABI";try{JSON.parse(t)}catch{return"Invalid ABI"}return null;case"action":return typeof t!="string"||!at(t,{strict:!0})?"Invalid address":null;case"tuple":if(typeof t=="object"&&Array.isArray(o)){let s={};for(let n of o){let l=n,d=l.name;s[d]=Y({fieldOrType:l.type,value:t[d],components:l.components})}return Object.values(s).every(n=>n===null)?null:s}return null;case"tuple[]":if(Array.isArray(t)){let s=t.map(n=>Y({fieldOrType:"tuple",value:n,components:o}));return s.every(n=>n===null)?null:s}return null;case"logoURI":return t===void 0||t===""?null:typeof t!="string"||!URL.canParse(t)||new URL(t).protocol!=="https:"?"Must be HTTPS or IPFS":null;case"url":return t===void 0||t===""?null:typeof t!="string"||!URL.canParse(t)||new URL(t).protocol!=="https:"?"Must be HTTPS":null;default:return console.error(`Invalid field or type: ${e}`),null}}import{ProposalStatus as C}from"@berachain/graphql/governance";var vr=!1,Qn=[C.Active,C.PendingQueue,C.PendingExecution,C.Defeated,C.QuorumNotReached];function fe(e,t){let r=Date.now()/1e3;if(t!==void 0){if(e.status===C.CanceledByGuardian)return C.CanceledByGuardian;if(t===2)return Number(e.voteStartAt)<r?C.CanceledByUser:C.CanceledByGuardian;if(t===3)return e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:C.Defeated:C.QuorumNotReached;if(t===4)return C.PendingQueue;if(t===5)return Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:C.InQueue;if(t===6)return console.warn("Unexpected expired state on proposal id: ",e.id),C.Defeated}return e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:vr&&t===1&&e.quorum&&BigInt(e.quorum)<BigInt(e.pollResult.totalTowardsQuorum)&&Number(e.pollResult.forPercentage)>Number(e.pollResult.againstPercentage)?C.PendingQueue:e.status===C.Pending?Number(e.voteStartAt)<r&&Number(e.voteEndAt)>r?C.Active:Number(e.voteEndAt)<r?e.pollResult?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:e.pollResult?.against>e.pollResult?.for?C.Defeated:C.PendingQueue:C.QuorumNotReached:C.Pending:e.status===C.Active&&Number(e.voteEndAt)<r?!e.quorum||BigInt(e.quorum)>BigInt(e.pollResult.totalTowardsQuorum)?C.QuorumNotReached:BigInt(e.pollResult?.against??0n)>BigInt(e.pollResult?.for??0n)?C.Defeated:C.PendingQueue:e.status===C.InQueue&&Number(e.queueEnd)<Date.now()/1e3?C.PendingExecution:e.status}import{GetProposals as Rr,SearchProposals as Vr}from"@berachain/graphql/governance";async function Mn({where:e,orderBy:t,orderDirection:r,offset:a=0,perPage:o=20,text:i,...s}){try{if(o>1e3)throw new Error("perPage must be less than 1000");let n=b("governance.subgraph",s),[l]=await Promise.all([i?n.query({query:Vr,variables:{offset:a,limit:o,where:e,text:i}}):n.query({query:Rr,variables:{offset:a,limit:o,where:e,orderBy:t,orderDirection:r}})]);return l.data.proposals.map(d=>({...d,status:fe(d)}))}catch(n){throw console.error("getAllProposals:",n),n}}function Jn({proposal:e,currentTopic:t}){let r={};return r.title=Y({fieldOrType:"title",value:e.title}),r.description=Y({fieldOrType:"description",value:e.description}),r.forumLink=Y({fieldOrType:"forumLink",value:e.forumLink,baseUrl:t.forumLink}),r}import{GetProposal as Sr}from"@berachain/graphql/governance";async function zn({proposalId:e,...t}){let a=await b("governance.subgraph",t).query({query:Sr,variables:{id:e}});if(a.data.proposal)return{...a.data.proposal,status:fe(a.data.proposal)}}import ot from"gray-matter";function kr(e){let t=/#(?:([\w-]+)# )?(.+)\n([\s\S]*)/,r=e.match(t);if(r){let a=r[1]||null,o=r[2],i=r[3].replace(`
2
+ `,"<br />");return{type:a,title:o,content:i}}throw new Error("Invalid proposal body")}function nt(e){if(!e)return{isFrontMatter:!1,data:{title:"Loading..."},content:"",matter:"",language:"",orig:"",stringify:()=>""};let t=e?.description??"";if(ot.test(t))return{...ot(t),isFrontMatter:!0};try{let r=kr(t);return{isFrontMatter:!1,data:{title:r.title},content:r.content,matter:"",language:"",orig:t,stringify:()=>t}}catch{return{isFrontMatter:!1,data:{title:e?.description?.split(`
3
+ `)[0].slice(0,100)},content:t,matter:"",language:"",orig:t,stringify:()=>t}}}import{parseEventLogs as Nr}from"viem";import{berachainGovernanceAbi as Gr}from"@berachain/abis/gov/berachainGovernance";import{ProposalStatus as xr}from"@berachain/graphql/governance";async function ii(e){v(e.publicClient);let t;"tx"in e?t=e.tx:t=await e.publicClient.getTransactionReceipt({hash:e.txHash});let r=t?.logs?Nr({abi:Gr,logs:t.logs,eventName:"ProposalCreated"})?.at(0):void 0;if(!t||!r)return null;let a=await e.publicClient.getBlock({blockNumber:t.blockNumber}),o=nt({description:r?.args.description});return{id:String(r.args.proposalId),proposalId:String(r?.args.proposalId),createdAt:a.timestamp.toString(),title:o.data.title,createdAtBlock:a.timestamp.toString(),voteStartAt:String(r?.args.voteStart),voteEndAt:String(r?.args.voteEnd),proposer:r?.args.proposer,description:o.content,unverifiedForumLink:o.data.forumLink,pollResult:{for:"0",forVotersCount:0,forPercentage:"0",against:"0",againstVotersCount:0,againstPercentage:"0",abstain:"0",abstainVotersCount:0,abstainPercentage:"0",total:"0",totalVotersCount:0,totalTowardsQuorum:"0"},status:xr.Pending,quorum:null,topics:o.data.topics,votes:[],executableCalls:r?.args.targets.map((i,s)=>({__typename:"ExecutableCall",id:`${t.transactionHash}-${s}`,target:i,value:String(r?.args.values[s]),calldata:r?.args.calldatas[s]})),timelock:void 0}}import{GetProposalVotes as Tr}from"@berachain/graphql/governance";async function ci({variables:e,...t}){return b("governance.subgraph",t).query({query:Tr,variables:e})}import{Aggregation_Interval as Fr,GetChartData as Er}from"@berachain/graphql/honey";async function fi({days:e,...t}){return(await b("honey.subgraph",t).query({query:Er,variables:{interval:Fr.Day,first:e}})).data}import{honeyFactoryAbi as Ir}from"@berachain/abis/honey/honeyFactory";async function Ai({client:e,collateralList:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.honey.factory,abi:Ir,functionName:"getWeights"});return t.reduce((s,n,l)=>Object.assign(s,{[n.address]:o[l]}),{})}catch(o){throw console.log(o),o}}import{erc20Abi as Ve}from"viem";async function it({address:e,publicClient:t,chainId:r}){try{v(t);let[a,o,i]=await Promise.all([t.readContract({address:e,abi:Ve,functionName:"decimals"}),t.readContract({address:e,abi:Ve,functionName:"name"}),t.readContract({address:e,abi:Ve,functionName:"symbol"})]);return{address:e,decimals:a,name:o,symbol:i,chainId:r}}catch(a){throw D({cause:a})}}import{honeyFactoryAbi as Se}from"@berachain/abis/honey/honeyFactory";async function ke({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=c(a),[i,s]=await Promise.all([e.readContract({address:o.honey.factory,abi:Se,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:Se,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<i;f++)n.push(e.readContract({address:o.honey.factory,abi:Se,functionName:"registeredAssets",args:[BigInt(f)]}));let l=await Promise.all(n),u=(await Promise.all(l.map(f=>{let g=t?.find(p=>V(p,f));return g||it({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,g)=>l.indexOf(f.address)-l.indexOf(g.address)).map((f,g)=>({...f,order:g}));if(r?.length){let f=[];for(let g of r){let p=u.find(A=>V(A.address,g.address));p&&(f.push(p),u.splice(u.indexOf(p),1))}u.unshift(...f)}let m=u.find(f=>V(f,s));if(!u)throw new Error("Collateral tokens not found");if(!m)throw new Error("Reference collateral address not found");return{collaterals:u,referenceCollateral:m}}import{parseUnits as qr}from"viem";import{honeyFactoryAbi as st}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as Dr}from"@berachain/abis/honey/honeyFactoryReader";async function lt({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:i}=c(o);try{let s=e.readContract({address:i.honey.factory,abi:st,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:i.honey.factory,abi:st,functionName:"isPegged",args:[t.address]});if(a&&r){let u=r.prices.map(m=>qr(m,18));n=e.readContract({address:i.honey.reader,abi:Dr,functionName:"isPeggedWithPrice",args:[t.address,u[0]]})}let[l,d]=await Promise.all([s,n]);return{isBlacklisted:l,isDepegged:!d}}catch(s){throw console.log(s),s}}import{parseEther as ct}from"viem";import{honeyFactoryAbi as Wr}from"@berachain/abis/honey/honeyFactory";import{parseEther as Qr}from"viem";import{collateralVaultAbi as Ur}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as ut}from"@berachain/abis/honey/honeyFactory";async function re({client:e,asset:t,amount:r,...a}){let{config:o}=c(a);try{let[i,s]=await Promise.all([e.readContract({address:o.honey.factory,abi:ut,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:ut,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:i,abi:Ur,functionName:"balanceOf",args:[o.honey.factory]})+Qr(r??"0")-s}catch(i){throw console.log(i),i}}var Lr=ct("1");async function $i({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:i,...s}){let{config:n}=c(s);try{let l=await e.readContract({address:n.honey.factory,abi:Wr,functionName:"globalCap"});if(l>=Lr)return!1;let[{collaterals:d},u]=await Promise.all([ke({client:e}),Or({client:e,asset:t,amount:r,latestPrices:i,isPythWrapperEnabled:o})]);if(!u)return;for(let m in u)if((a&&V(d[m],t)||!a&&V(d[m],t))&&u[m]>l-de)return!0;return!1}catch(l){throw console.log(l),l}}async function Or({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:i}=await ke({client:e}),s=0n,n=[];for(let l of i){let d=await lt({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(d?.isBlacklisted||d?.isDepegged)continue;let u=await re({client:e,asset:l.address,amount:V(l,t)?r:"0"});u&&(s+=u,n.push(u))}if(s===0n)return n;for(let l in i)n[l]=ct(n[l].toString())/s;return n}import{GetGlobalData as Mr}from"@berachain/graphql/honey";async function zi({...e}={}){return(await b("honey.subgraph",e).query({query:Mr})).data}import{parseUnits as dt}from"viem";import{honeyFactoryReaderAbi as mt}from"@berachain/abis/honey/honeyFactoryReader";var Hr=(l=>(l.Mint="previewMintHoney",l.MintWithPrice="previewMintHoneyWithPrices",l.RequiredCollateral="previewMintCollaterals",l.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",l.Redeem="previewRedeemCollaterals",l.RedeemWithPrice="previewRedeemCollateralsWithPrices",l.HoneyToRedeem="previewRedeemHoney",l.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",l))(Hr||{});async function rs({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:i,isPythWrapperEnabled:s,...n}){let{config:l}=c(n);try{let d=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",u=dt(a,d?t.decimals:18),m,f=[t.address,u];if(s&&i){let p=i.prices.map(A=>dt(A,18));f=[t.address,u,p]}if(d){let p=await e.readContract({address:l.honey.reader,abi:mt,functionName:o,args:f});m={collaterals:p[0],honey:p[1]}}else m={collaterals:await e.readContract({address:l.honey.reader,abi:mt,functionName:o,args:f}),honey:u};let g=r.reduce((p,A)=>{let h=A.order;return A.address===t.address&&m.collaterals[h]===BigInt(0)?Object.assign(p,{[A.address]:m.collaterals[0]}):Object.assign(p,{[A.address]:m.collaterals[h]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=m.collaterals[0]),{collaterals:g,honey:m.honey}}catch(d){throw console.log("error",d),d}}import{formatUnits as _r}from"viem";import{collateralVaultAbi as Ne}from"@berachain/abis/honey/collateralVault";import{honeyFactoryAbi as pt}from"@berachain/abis/honey/honeyFactory";async function ls({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=c(a),i=r??o.honey.factory;return await Promise.all(t.map(async n=>{let l=await e.readContract({address:o.honey.factory,abi:pt,functionName:"vaults",args:[n.address]}),[d,u,[m,f]]=await Promise.all([e.readContract({address:l,abi:Ne,functionName:"balanceOf",args:[i]}),e.readContract({address:i,abi:pt,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:l,abi:Ne,functionName:"custodyInfo"})]),g=await e.readContract({address:l,abi:Ne,functionName:"convertToAssets",args:[d-u]});return{...n,balance:{raw:g.toString(),formatted:_r(g,n.decimals)},vault:m?f:l}}))}import{HermesClient as Jr}from"@pythnetwork/hermes-client";import{formatUnits as $r}from"viem";var jr="https://hermes.pyth.network";async function ft({priceFeedId:e}){let r=await new Jr(jr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:r.parsed?.flatMap(a=>$r(BigInt(a.price.price),a.price.expo*-1))??[]}}import{parseEther as Kr}from"viem";import{honeyFactoryAbi as Yr}from"@berachain/abis/honey/honeyFactory";async function As({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...i}){let{config:s}=c(i);if(t===o.address)return!1;try{let[n]=await Promise.all([e.readContract({address:s.honey.factory,abi:Yr,functionName:"relativeCap",args:[t]})]),[l,d]=await Promise.all([re({client:e,asset:t,amount:a?r:void 0}),re({client:e,asset:o.address,amount:a?void 0:r})]);return d===0n?l!==0n:Kr((l??0n).toString())/(d??0n)>=n-de}catch(n){throw console.log(n),n}}async function gt({client:e,priceFeedId:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.external.pyth,abi:Oe,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}import{parseUnits as bt}from"viem";import{honeyFactoryAbi as zr}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryPythWrapperAbi as Xr}from"@berachain/abis/honey/honeyFactoryPythWrapper";var xs=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...i})=>{let{config:s}=c(i),n=We(i),{actionType:l,fromAmount:d,collaterals:u,isBasketModeEnabled:m}=e,f=o?s.honey.pythWrapper:s.honey.factory,g=a.map(p=>p.address);if(d[0]&&g.length){let p=l==="mint";if(o&&t&&r){let h=(await ft({priceFeedId:Object.values(r)})).calldata,P=0n;try{P=await gt({client:t,priceFeedId:h})}catch{P=Le(u.length)}return({account:y})=>{let I=[h,u[0]?.address,bt(d[0],(p?u[0]?.decimals:n?.decimals)??18),y,!!m];return{address:f,abi:Xr,functionName:p?"mint":"redeem",params:I,value:P}}}return({account:A})=>{let h=[u[0]?.address,bt(d[0],(p?u[0]?.decimals:n?.decimals)??18),A,!!m];return{value:0n,address:f,abi:zr,functionName:p?"mint":"redeem",params:h}}}throw new Error("Something went wrong while creating the Honey swap payload")};import{parseUnits as Zr}from"viem";import{honeyFactoryAbi as ea}from"@berachain/abis/honey/honeyFactory";import{honeyFactoryReaderAbi as ta}from"@berachain/abis/honey/honeyFactoryReader";async function Ds({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...i}){let{config:s}=c(i);if(o&&a){if(r.length===0)return;let l=a.prices.map(u=>Zr(u,18));return await e.readContract({address:s.honey.reader,abi:ta,functionName:"isBasketModeEnabledWithPrices",args:[t,l]})}return await e.readContract({address:s.honey.factory,abi:ea,functionName:"isBasketModeEnabled",args:[t]})}async function Ls({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(j(e,"block"),v(a),t>e){let i=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(i.timestamp)}}return{timestamp:S(Date.now())+r*(Number(e)-Number(t))}}import{formatUnits as Ge}from"viem";import{rewardVaultAbi as z}from"@berachain/abis/pol/rewards/rewardVault";var ra=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(ra||{});async function Js(e,t){let[r,a,o,i,s,n]=await Promise.all([t.readContract({address:e,abi:z,functionName:"rewardsDuration"}),t.readContract({address:e,abi:z,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:z,functionName:"rewardRate"}),t.readContract({address:e,abi:z,functionName:"periodFinish"}),t.readContract({address:e,abi:z,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:z,functionName:"minRewardDurationForTargetRate"})]),l=o*(i-BigInt(S(Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:s===0n?"duration":"targetRate",manager:a,rewardRate:Ge(o,36),periodFinish:Number(i),availableRewards:Ge(l,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:Ge(s,36)}}function ge(e,t,r){return e?r*t*te(1)/e:null}function aa(e,t,r){return r?e*r/(t*te(1)):0}function Ks({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:i,...s}){let n=S(Date.now());if(n>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(s.mode==="targetRate"||s.mode==="targetApr"){let m,{minRewardDurationForTargetRate:f,currentDuration:g}=s;if(s.mode==="targetRate"?m=s.rewardRate:m=aa(s.apr,a,r),m===0){let h=Math.min(g,i),P=e?e/h:0;return{apr:ge(r,a,P),duration:h,rewardRate:P,targetRate:null,periodFinish:h+n,mode:"duration"}}let p=f||o,A=e?e/m:0;if(A<p){let h=e?e/p:0;return{apr:ge(r,a,h),duration:p,rewardRate:h,targetRate:h.toString(),periodFinish:p+n,mode:null}}return{apr:ge(r,a,m),duration:A,rewardRate:m,targetRate:m.toString(),periodFinish:A+n,mode:null}}let{duration:l}=s,d=e/l;return{apr:ge(r,a,d),mode:null,targetRate:null,duration:l,rewardRate:d,periodFinish:l+n}}async function Zs({address:e,account:t,...r}){let{config:a}=c(r),o=`${a.staking}/vaults/${e}/earnings/${t}`;return Ue({url:o,type:"rest"})}import{formatUnits as oa}from"viem";import{rewardVaultAbi as na}from"@berachain/abis/pol/rewards/rewardVault";import{GetVaults as ia}from"@berachain/graphql/pol/api";async function be({filter:e,publicClient:t,...r}={}){let o=await b("api",r).query({query:ia,variables:e}),i=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async n=>{if(t)return Promise.allSettled(n.activeIncentives.map(l=>t.readContract({abi:na,address:n.address,functionName:"incentives",args:[l.tokenAddress]})))})),s=o.data.polGetRewardVaults.vaults.map((n,l)=>{let d=0,u=n.activeIncentives.map((m,f)=>{let g=Number(m.remainingAmountUsd)&&Number(m.remainingAmount)?Number(m.remainingAmountUsd)/Number(m.remainingAmount):0,p=i[l]?.status==="fulfilled"&&i[l]?.value?.[f]?.status==="fulfilled"?oa(BigInt(i[l].value[f].value[2]),m.token.decimals):m.remainingAmount;return d+=Number(p)*Number(g),{...m,remainingAmount:p}});return{...n,dynamicData:{...n.dynamicData,allTimeReceivedBGTAmount:n.dynamicData?.allTimeReceivedBGTAmount??"0",bgtCapturePercentage:n.dynamicData?.bgtCapturePercentage??"0",activeIncentivesValueUsd:d.toString(),activeIncentivesRateUsd:n.dynamicData?.activeIncentivesRateUsd??"0",bgtCapturePerBlock:n.dynamicData?.bgtCapturePerBlock??"0"},activeIncentives:u}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:s}}import{GlobalData as sa}from"@berachain/graphql/pol/api";async function yt(e={}){let{config:t}=c(e),a=await b("api",e).query({query:sa,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}import{formatEther as la}from"viem";import{bgtAbi as ua}from"@berachain/abis/pol/bgt";async function At({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ua,functionName:"totalBoosts",args:[]});return la(a)}catch(a){throw console.log(a),a}}import{erc20Abi as ca,formatEther as da}from"viem";async function ht({publicClient:e,...t}){let{config:r}=c(t);v(e);try{let a=await e.readContract({address:r.tokens.bgt,abi:ca,functionName:"totalSupply",args:[]});return da(a??0n)}catch(a){throw console.log(a),a}}import{GqlRewardVaultOrderBy as ma,GqlRewardVaultOrderDirection as pa}from"@berachain/graphql/pol/api";async function wt(e){let{gaugeList:t}=await be({filter:{orderBy:ma.Apr,orderDirection:pa.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function kl(e){let[t,r,a,o]=await Promise.allSettled([yt(),wt(300),ht({publicClient:e}),At({publicClient:e})]);return t.status==="rejected"&&M.captureException(D({cause:t.reason,level:"warning"})),r.status==="rejected"&&M.captureException(D({cause:r.reason,level:"warning"})),a.status==="rejected"&&M.captureException(D({cause:a.reason,level:"warning"})),o.status==="rejected"&&M.captureException(D({cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}import{GetIncentiveFeeClaimStats as fa}from"@berachain/graphql/pol/fees";async function Ct({...e}){let t=b("pol.fees",e),{data:r}=await t.query({query:fa});if(r.incentiveFeeClaims.length>0){let a=r?.incentiveFeeClaims.reduce((s,n)=>s+Number(n.payoutAmount),3e4),i=(r?.incentiveFeeClaims.filter(s=>Number(s.timestamp)/1e3>Date.now()-He(1))).reduce((s,n)=>s+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:i}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function Il(e={}){let{config:t}=c(e);try{let a=await(await fetch(t.lists.rewardVaultList)).json();if(!a.protocols)throw new Error("Missing protocols in market list");return{marketList:a.protocols,marketDictionary:a.protocols.reduce((o,i)=>(o[i.name]=i,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Wl({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:i}=c(o),s=await fetch(`${i.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!s.ok){let l=await ue(s);throw new B({message:"Failed to fetch proofs on server",cause:{error:l,result:s,account:e,validator:t},reason:l?.reason})}return await s.json()}import{formatUnits as ga,parseUnits as ba}from"viem";import{wberaStakerVaultAbi as ya}from"@berachain/abis/pol/wberaStakerVault";async function _l({address:e,publicClient:t}){return v(t),t.readContract({address:e,abi:ya,functionName:"previewRedeem",args:[ba("1",18)]}).then(r=>Number(ga(r,18))).catch(()=>0)}import{GetRewardVault as Aa}from"@berachain/graphql/pol/api";async function zl({address:e,chainName:t,...r}){let{config:a}=c(r),o=t??a.bex.chainName,i=b("api",r),{data:s}=await i.query({query:Aa,variables:{vaultId:e,chain:o}});if(!s?.rewardVault)throw new _e({resource:"Reward vault",id:e,chainId:a.chainId});return s.rewardVault}import{isSameAddress as Pt}from"@berachain-foundation/berancer-sdk";import{erc20Abi as ye,formatUnits as ae}from"viem";import{rewardVaultAbi as xe}from"@berachain/abis/pol/rewards/rewardVault";function oe(e,t){return e.status==="success"?e.result:t}async function ou({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:xe,functionName:"getWhitelistedTokens"}),i=a.findIndex(n=>Pt(t,n))!==-1?await r.readContract({address:e,abi:xe,functionName:"totalSupply"}):0n,s=await Promise.allSettled(a.map(async n=>{let[l,d,u,m,f]=await r.multicall({allowFailure:!0,contracts:[{address:e,abi:xe,functionName:"incentives",args:[n]},{address:n,abi:ye,functionName:"decimals"},{address:n,abi:ye,functionName:"name"},{address:n,abi:ye,functionName:"symbol"},{address:n,abi:ye,functionName:"balanceOf",args:[e]}]});if(l.status==="failure")throw new B({cause:l.error,message:"Failed to get incentive info. This is not possible.",level:"error",extra:{token:n,address:e}});let[g,p,A,h]=l.result,P=oe(d,18);return{token:n,manager:h,minIncentiveRate:ae(g,P),incentiveRate:ae(p,P),remainingAmount:ae(A,P),name:oe(u,void 0),symbol:oe(m,void 0),decimals:P,pendingAmount:Pt(t,n)?ae(oe(f,0n)-i-A,P):ae(oe(f,0n)-A,P)}}));return s.forEach((n,l)=>{n.status==="rejected"&&M.captureException(new B({reason:n.reason,message:"Incorrect incentives token received.",level:"error",extra:{token:a[l],address:e,error:n.reason}}))}),s.map(n=>n.status==="fulfilled"?n.value:null).filter(n=>n!==null)}import{rewardVaultAbi as ha}from"@berachain/abis/pol/rewards/rewardVault";async function su({address:e,publicClient:t}){return await t.readContract({address:e,abi:ha,functionName:"stakeToken"})}import{GetSWberaVaultMetadata as wa,GqlSWberaVaultMetadataResolution as Bt}from"@berachain/graphql/pol/api";function Ca(e){return e==="DAY"?Bt.OneDay:Bt.SevenDays}async function mu({window:e,...t}){let{config:r}=c(t),a=b("api",t);try{let o=await a.query({query:wa,variables:{chain:r.bex.chainName,resolution:Ca(e??"DAY")}}),{apr:i}=o.data.polGetSWberaVaultMetadata;return Number(i)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}import{GetSWberaVaultSnapshots as Pa,GqlVaultSnapshotDataRange as Ba}from"@berachain/graphql/pol/api";async function yu({chain:e,range:t=Ba.ThirtyDays,...r}={}){let{config:a}=c(r),o=b("api",r);try{return(await o.query({query:Pa,variables:{chain:e??a.bex.chainName,range:t}})).data.polGetSWberaVaultSnapshots}catch(i){throw console.error("Failed to get SW Bera Snapshots",i),i}}import{wberaStakerVaultAbi as va}from"@berachain/abis/pol/wberaStakerVault";async function ne({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:va,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}import{erc20Abi as Ae,erc4626Abi as ie}from"viem";async function Vu({address:e,underlyingAsset:t,publicClient:r,blockTime:a}){v(r);let o=26;try{let i=await r.getBlock({blockTag:"latest"}),s=Math.floor(o*60*60/a),n=i.number-BigInt(s),[l,d,u,m,f,g,p,A,h,P,y]=await Promise.all([r.readContract({address:e,abi:ie,functionName:"totalAssets"}),r.readContract({address:e,abi:ie,functionName:"totalSupply"}),r.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:i.number}),r.readContract({address:t,abi:Ae,functionName:"balanceOf",args:[e]}),r.readContract({address:e,abi:ie,functionName:"totalAssets",blockNumber:n}),r.readContract({address:e,abi:Ae,functionName:"totalSupply",blockNumber:n}),r.readContract({address:e,abi:ie,functionName:"previewRedeem",args:[10n**18n],blockNumber:n}),r.readContract({address:t,abi:Ae,functionName:"balanceOf",args:[e],blockNumber:n}),r.readContract({address:t,abi:Ae,functionName:"totalSupply"}),ne({publicClient:r,address:e}),Ct({})]),I=new k(p.toString()),N=new k(u.toString());return{address:e,current:{exchangeRate:N.toString(),totalSupply:new k(d.toString()).dividedBy(1e18).toString(),totalAssets:new k(l.toString()).dividedBy(1e18).toString(),tvl:new k(m.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:I.toString(),totalSupply:new k(g.toString()).dividedBy(1e18).toString(),totalAssets:new k(f.toString()).dividedBy(1e18).toString(),tvl:new k(A.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new k(h.toString()).dividedBy(1e18).toString(),lockPeriod:P,totalBuyBacks:y.sumAllClaims,totalBuyBacksInLast24Hours:y.sumClaimsInLast24Hours}}catch(i){throw console.error("Failed to get SW Bera Vault Metadata",i),i}}import{wberaStakerVaultAbi as he}from"@berachain/abis/pol/wberaStakerVault";function vt(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=S(r);return $e(a,!0,!0)}async function Fu({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function i(s,n){let[l,d,u]=s,m=l,f=Number(u)+Number(n),g=S(Date.now()),p=f-g;if(m>0){let A=vt(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:m,timeRemaining:A})}}switch(a){case"V1":{let[s,n]=await Promise.all([r.readContract({address:e,abi:he,functionName:"withdrawalRequests",args:[t]}),ne({publicClient:r,address:e})]);return i(s,n),o}case"V2":{let[s,n]=await Promise.all([r.readContract({address:e,abi:he,functionName:"getERC721WithdrawalRequestIds",args:[t]}),ne({publicClient:r,address:e})]);if(V(e,"SWBERA")){let u=await r.readContract({address:e,abi:he,functionName:"withdrawalRequests",args:[t]});i(u,n)}let d=(await Promise.all(s.map(async u=>{let m=await r.readContract({address:e,abi:he,functionName:"getERC721WithdrawalRequest",args:[u]}),{assets:f,requestTime:g}=m;if(!f||!g)throw new Error("Invalid withdrawal request");let p=f,A=Number(g)+Number(n),h=S(Date.now()),P=A-h;if(p>0){let y=vt(P<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:u,receiptTokenAddress:e}}return null}))).filter(u=>u!==null);return o.push(...d),o}}}import{wberaStakerVaultAbi as Ra}from"@berachain/abis/pol/wberaStakerVault";async function Du({vaultAddresses:e,publicClient:t}){v(t);try{let r=await Promise.all(e.map(async o=>t.readContract({address:o,abi:Ra,functionName:"totalAssets"})));return e.reduce((o,i,s)=>(o[i]=r[s],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function Ou({account:e,...t}){let{config:r}=c(t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await ue(a);throw new B({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:o?.error})}return a.json()}import{rewardVaultAbi as Va}from"@berachain/abis/pol/rewards/rewardVault";async function Rt({account:e,vaultAddress:t,publicClient:r}){if(!r)throw new Error("Missing public client");if(!e)throw new Error("Missing user account");if(!t)throw new Error("Missing vault address");return r.readContract({address:t,abi:Va,functionName:"earned",args:[e]})}import{formatEther as Te}from"viem";import{rewardVaultAbi as Vt}from"@berachain/abis/pol/rewards/rewardVault";async function St({account:e,vaultAddress:t,publicClient:r}){v(r),Pe(e,"account"),Pe(t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:Vt,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:Vt,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}import{rewardVaultAbi as Sa}from"@berachain/abis/pol/rewards/rewardVault";async function kt({vaultAddress:e,publicClient:t}){if(!t)throw new Error("Missing public client");if(!e)throw new Error("Missing vault address");try{return await t.readContract({address:e,abi:Sa,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function tc({account:e,vaultAddress:t,publicClient:r}){let[a,o,i]=await Promise.all([St({account:e,vaultAddress:t,publicClient:r}),Rt({account:e,vaultAddress:t,publicClient:r}),kt({vaultAddress:t,publicClient:r})]),s=a.balance-a.delegated,n=i>0n?Number(Number.parseFloat(Te(a.balance))/Number.parseFloat(Te(i))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:s,rewards:Te(o),percentage:n}}import{formatUnits as Fe}from"viem";import{rewardVaultAbi as Nt}from"@berachain/abis/pol/rewards/rewardVault";import{GetUserVaults as ka}from"@berachain/graphql/pol/api";async function cc({account:e,publicClient:t,...r}){let{config:a}=c(r),s=(await b("api",r).query({query:ka,variables:{userId:e,chain:a.bex.chainName}})).data?.userVaultDeposits?.deposits;if(!s)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[n,l]=await Promise.all([t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:Nt,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:s.map(g=>({address:g.vaultAddress,abi:Nt,functionName:"balanceOf",args:[e]}))})]),{userVaults:d,total:u}=s.reduce((g,p,A)=>{let h=n[A],P=l[A];if(g.total+=h,!p.vault)return M.captureException(new B({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),g;if(h>0n||P>0n){let y=p.vault.dynamicData?.tvl&&Number(p.vault.stakingTokenAmount)!==0?Number(p.vault.dynamicData?.tvl??0)/Number(p.vault.stakingTokenAmount):null;g.userVaults.push({...p,vault:p.vault,unclaimedBgt:Fe(h,18),formattedBalance:Fe(P,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),m=[...d].sort((g,p)=>{if(g.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!g.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(g.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:m.reduce((g,p)=>{let A=Number(p.vault.dynamicData?.tvl??0);if(A===0)return g;let h=Number.parseFloat(p.vault.stakingTokenAmount),P=A/h;return g+P*Number(p.formattedBalance)},0),totalBgtRewards:Fe(u,18),vaults:m}}import{GetVaultHistory as Na}from"@berachain/graphql/pol/api";async function gc({vault:e,chain:t,...r}){let{config:a}=c(r);return(await b("api",r).query({query:Na,variables:{...r,vaultId:e,chain:t??a.bex.chainName}})).data.polGetRewardVaultSnapshots}import{GetVaultValidators as Ga}from"@berachain/graphql/pol/api";async function hc({address:e,onlyActiveValidators:t,...r}){return(await b("api",r).query({query:Ga,variables:{vaultId:e,isActive:t}})).data.validators.validators??[]}import{getAddress as xa,zeroAddress as Ta}from"viem";import{GetTokenCurrentPrices as Fa}from"@berachain/graphql/dex/api";async function Sc({addressIn:e,...t}){let{config:r,chainId:a}=c(t),o=e.map(n=>n.toLowerCase()).filter((n,l,d)=>n&&d.indexOf(n)===l),i=b("api",t),{data:s}=await i.query({query:Fa,variables:{chains:[r.bex.chainName],addressIn:o}});return s.tokenGetCurrentPrices.reduce((n,l)=>{if(!l.price||!l.address)return n;let d=l.address;return n[xa(d)]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},n[d.toLowerCase()]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},V(d,"WBERA")&&(n[Ta]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a},n[r.tokens.bgt]={price:K(l.price.toString()),updatedAt:l.updatedAt,chainId:a}),n},{})}import{getPublicClient as Ea}from"@wagmi/core";import{erc20Abi as Ia,formatUnits as qa}from"viem";async function Tc({items:e,account:t,config:r}){j(e,"items"),j(r,"config"),j(t,"account");let a=Object.groupBy(e,i=>i.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([i,s])=>{if(!s)return[];let n=Ea(r,{chainId:Number(i)});return v(n,`publicClient ${i}`),(await n.multicall({contracts:s.map(u=>({address:u.token.address,abi:Ia,functionName:"allowance",args:[t,u.spender]}))})).map((u,m)=>{let f=s[m];return u.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:u.result.toString(),formatted:qa(u.result,f.token.decimals)},needsApproval:u.result<BigInt(f.amount.raw)}}).filter(u=>!!u)}))).flatMap(i=>i.status==="fulfilled"?i.value:void 0).filter(i=>!!i)}import{getPublicClient as Ua,getWalletClient as Wa,switchChain as La}from"@wagmi/core";import{BaseError as Oa,createWalletClient as Ma,decodeErrorResult as Ha,HttpRequestError as _a,http as Ja}from"viem";import{ChainId as $a,defaultChainId as Tt}from"@berachain/config/internal";import{AbiFunctionSignatureNotFoundError as Da,decodeFunctionData as Qa}from"viem";async function Gt({publicClient:e,abi:t,...r}){let a=[...le,...t??[]],o,i,s,n,l,d,u;if("txHash"in r){let m=await e.getTransaction({hash:r.txHash});if(!m.to)throw new x({property:"tx",value:m,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});l=m.input,i=m.to,s=m.from,n=m.value,o=m.blockNumber}else if(o=r.blockNumber,i=r.to,s=r.account,n=r.value,"data"in r)l=r.data;else if("functionName"in r&&"args"in r)d=r.functionName,u=r.args;else if(!n)throw new x({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(l)await e.call({data:l,to:i,account:s,blockNumber:o,value:n});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)d=r.functionName,u=r.args;else if(l){if(!a){let m=await e.call({data:l,to:i,account:s,blockNumber:o,value:n});throw new Error(`Getting revert reason for successful simulation. Data: ${l}`,{cause:m})}try{let m=Qa({abi:a,data:l});d=m.functionName,u=m.args}catch(m){throw m instanceof Da&&await e.call({data:l,to:i,account:s,blockNumber:o,value:n}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&d?(await e.simulateContract({functionName:d,args:u,abi:a,address:i,account:s,blockNumber:o}),new H({message:"Getting revert reason for successful simulation",functionName:d,to:i,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(m){if(m instanceof Error)return ee({error:m,abi:a,revertIfUnknown:!0});throw m}}var ja=Me(1),xt=(e,t)=>e*(100n+BigInt(t))/100n;function Ee({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){t?.(new B({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}));return}return e.value}}function Ka(e=Tt){return e===$a.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function ed(e){if(process.env.NODE_ENV==="development"&&!e.contractName&&e.address&&!("calls"in e||e.calls))throw console.warn("beraWriteContract: Contract name is required. Either update the contract mapping in devrel or provide a contract name in ContractName enum","This is a development error and will be thrown in development mode only."),new x({property:"contractName",value:e.contractName,expected:"ContractName",displayMessage:`[DEV] Contract name is required as it's not mapped in the devrel's contract mapping ${e.address}`,level:"error"});let{address:t,calls:r,value:a,gasLimit:o,onLoading:i,onSuccess:s,onWarning:n,onError:l,onSubmission:d,wagmiConfig:u,walletClient:m,account:f,txConfirmationTimeout:g=12e4,chainId:p=Tt,impersonateAccount:A=Ka(p),errorsAbi:h=[],pollingInterval:P=ja,...y}=e;i?.(e);let I="data"in y?y.data:void 0,N=[...le,...h,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],T=m;if(!u){l?.(new x({property:"wagmiConfig",value:u,expected:"Config"}),e);return}if(!(T?.account?.type==="local"))try{await La(u,{chainId:p})}catch(R){let G=R;l?.(new B({cause:G,displayMessage:"There was an error switching to the chain."}),e);return}if(!T)try{T=await Wa(u,{chainId:p})}catch(R){l?.(new B({cause:R,displayMessage:"There was an error connecting to the wallet."}),e);return}if(!T){l?.(new x({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:T,expected:"WalletClient"}),e);return}let q=f||T.account;if(!q){l?.(new x({property:"account",value:q,expected:"Account"}),e);return}let se=typeof q=="string"?q:q.address,W=Ua(u,{chainId:p});try{v(W)}catch(R){l?.(R,e);return}if(A){let R=ve(p);await R.impersonateAccount({address:se}),T=Ma({transport:Ja(R.transport.url),account:q,chain:T.chain})}let F,Z={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let R=W.getTransactionCount({address:se,blockTag:"latest"}).catch(()=>{}),G={account:se,to:t,address:t,chainId:p,value:a};if(r){let E=r.map(w=>{if("abi"in w&&Array.isArray(N)&&N.push(...w.abi),"data"in w)return{to:w.address,data:w.data,value:w.value??0n};if("abi"in w&&"functionName"in w){let L="params"in w?w.params:void 0;return{to:w.address,abi:w.abi,functionName:w.functionName,args:L,value:w.value??0n}}return{to:w.address,value:w.value??0n}});if(e.enableSimulateCalls){let w=await W.simulateCalls({calls:E,account:q}),L=w.results.findIndex(O=>O.status==="failure");if(L!==-1){if(w.block.number===null)throw new x({property:"blockNumber",value:w.block.number,expected:"bigint",message:"Block number is null"});let O=w.results[L],{reason:Ce}=O.data&&O.data!=="0x"?{reason:qe(Ha({data:O.data,abi:N}))}:ee({error:O.error,revertIfUnknown:!1,abi:N});l?.(new H({cause:O.error,txHash:F,chainId:p,reason:Ce,abi:N,input:Z,blockNumber:w.block.number}),e);return}}if(process.env.NODE_ENV==="test")throw new x({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let Q=await T.sendCalls({calls:E,account:q,forceAtomic:!0});d?.({id:Q.id},e);let U=await T.waitForCallsStatus({id:Q.id,pollingInterval:P,timeout:g});if(U.status==="success"){let w=U.receipts?.[0];if(!w)throw new B({message:"Call status is success but no receipt was found",cause:U,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return s?.(w,e),w}throw console.error("wallet_sendCalls: Call failed",U),new H({cause:U,level:"error",input:Z,txHash:F,abi:N,chainId:p})}if(I){let[E,Q,U]=await Promise.allSettled([W.call({...G,data:I}),o??W.estimateGas({...G,data:I}),R]);if(E.status==="rejected")throw E.reason;let w=Q.status==="fulfilled"?xt(Q.value,10):Be;F=await T.sendTransaction({data:I,to:t,account:q,gas:w,chainId:p,nonce:Ee({nonceResult:U,onWarning(L){n?.(L,e)}}),value:a}),d?.({txHash:F},e)}else if("abi"in y&&"functionName"in y){let{abi:E,functionName:Q}=y,U="params"in y?y.params:void 0,[w,L,O]=await Promise.allSettled([W.simulateContract({...G,abi:N,functionName:Q,args:U,account:q}),o??W.estimateContractGas({...G,abi:N,functionName:Q,args:U}),R]);if(w.status==="rejected")throw w.reason;let Ce=o??(L.status==="fulfilled"?xt(L.value,10):Be);F=await T.writeContract({...w.value.request,chainId:p,gas:Ce,nonce:Ee({nonceResult:O,onWarning(Qt){n?.(Qt,e)}})}),d?.({txHash:F},e)}else{let[E]=await Promise.allSettled([R]);F=await T.sendTransaction({chainId:p,to:t,value:a,account:q,nonce:Ee({nonceResult:E,onWarning(Q){n?.(Q,e)}})}),d?.({txHash:F},e)}process.env.NODE_ENV==="test"&&await ve(p).mine({blocks:1});let J=await W.waitForTransactionReceipt({hash:F,pollingInterval:P,timeout:g,confirmations:1});if(J.status==="success")s?.(J,e);else{let E=await Gt({publicClient:W,blockNumber:J.blockNumber,to:t,account:se,abi:N,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:I});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",E),l?.(new H({reason:E.reason,txHash:F,receipt:J,to:t,functionName:"functionName"in y?y.functionName:void 0,input:Z,chainId:p,abi:N,blockNumber:J.blockNumber}),e)}return J}catch(R){if(R instanceof B)l?.(R,e);else if(R instanceof Error){let G=ee({error:R,revertIfUnknown:!1,abi:N});if(G&&G.rootCause instanceof Oa&&"url"in G.rootCause){l?.(new $({cause:G.rootCause,response:void 0,endpoint:{url:G.rootCause.url,type:"rpc"},statusCode:G.rootCause instanceof _a?G.rootCause.status:void 0}),e);return}l?.(new H({cause:R,to:t,txHash:F,chainId:p,abi:N,functionName:"functionName"in y?y.functionName:void 0,input:Z}),e)}else l?.(new H({cause:R,txHash:F,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:Z,abi:N}),e)}}import{GetValidators as Ya}from"@berachain/graphql/pol/api";async function Ft({variables:e={},...t}={}){let{config:r}=c(t);return(await b("api",t).query({query:Ya,variables:{chain:r.bex.chainName,...e}})).data}import{isAddressEqual as za}from"viem";async function ld({allocation:e}){let t=await be({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=e?.start.blockNumber??0;return e?.weights.map(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:t?.gaugeList.find(o=>za(o.address,a.receiver))}))}import{GetValidator as Xa}from"@berachain/graphql/pol/api";async function pd({id:e,...t}){let{config:r}=c(t);return(await b("api",t).query({query:Xa,variables:{id:e,chain:r.bex.chainName}})).data}import{GetValidatorBlockStats as Za}from"@berachain/graphql/pol/subgraph";async function yd({pubKey:e,first:t=1,...r}){let a=b("pol.subgraph",r);try{return(await a.query({query:Za,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}import{beraChefAbi as Et}from"@berachain/abis/pol/rewards/beraChef";function X(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function eo(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function Cd({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let[o,i]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:Et,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:Et,functionName:"getSetActiveRewardAllocation",args:[t]})]),[s,n]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},i.startBlock!==0n?e.getBlock({blockNumber:BigInt(i.startBlock)}):{timestamp:0}]),l=X(o,Number(s.timestamp)),d=X(i,Number(n.timestamp)),u=!1;return d.start.blockNumber===0?u=!0:u=!eo(d,l),{activeRewardAllocation:l,setRewardAllocation:d,isBaseline:u,isNeverSet:d?.start.blockNumber===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}import{beraChefAbi as to}from"@berachain/abis/pol/rewards/beraChef";function Vd(e){return e.start.blockNumber===0}async function Sd({client:e,...t}){let{config:r}=c(t),a=await e.readContract({address:r.pol.beraChef,abi:to,functionName:"getDefaultRewardAllocation",args:[]});return X({...a,startBlock:0n},0)}async function Nd({client:e,valPubKey:t}){return 5614}import{formatEther as we}from"viem";import{bgtAbi as Ie}from"@berachain/abis/pol/bgt";async function It({account:e,pubkey:t,publicClient:r,...a}){let{config:o}=c(a);if(!e)throw new Error("account is required");if(!r)throw new Error("publicClient is required");let[i,s,n]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:Ie,functionName:"dropBoostQueue",args:[e,t]})]),l=i-n[1];return{pubkey:t,droppableBoostAmount:we(l),activeBoostAmount:we(i),queuedBoostAmount:we(s[1]),queuedDropBoostAmount:we(n[1]),queuedBoostStartBlock:s[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:s[1]>0n||n[1]>0n,hasActiveBoosts:i>0n,hasDroppableBoosts:l>0n}}import{formatEther as ao,parseEther as Dt}from"viem";import{GetUserValidatorInformation as ro}from"@berachain/graphql/pol/api";async function qt({account:e,...t}){let{config:r}=c(t);return b("api",t).query({query:ro,variables:{address:e.toLowerCase(),chain:r.bex.chainName}})}async function Hd({account:e,publicClient:t,chain:r,...a}){let{config:o}=c(a),i=r??o.bex.chainName,s=await qt({account:e}),[n,l]=await Promise.all([Ft({variables:{chain:i,where:{idIn:s.data.polGetValidatorBoosts.boosts.map(d=>d.validatorId)}}}),Promise.all(s.data.polGetValidatorBoosts.boosts.filter(d=>!!d.validator).map(d=>It({account:e,pubkey:d.validator.pubkey,publicClient:t})))]);return n?.validators.validators.map(d=>{let u=l.find(f=>f.pubkey.toLowerCase()===d.pubkey.toLowerCase());if(!u)throw new Error("User deposited not found");let m=Dt(u?.activeBoostAmount??"0")-Dt(u?.queuedDropBoostAmount);return{...d,userBoosts:{pubkey:u.pubkey,activeBoostAmount:u?.activeBoostAmount,queuedBoostAmount:u?.queuedBoostAmount,queuedBoostStartBlock:Number(u?.queuedBoostStartBlock),queuedDropBoostAmount:u?.queuedDropBoostAmount,queuedDropBoostStartBlock:Number(u?.queuedDropBoostStartBlock),droppableBoostAmount:ao(m),hasPendingBoosts:Number(u?.queuedBoostAmount)>0||Number(u?.queuedDropBoostAmount)>0,hasActiveBoosts:Number(u?.activeBoostAmount)>0,hasDroppableBoosts:m>0n}}})}var oo=[{validatorAddress:"0x8f51e63d9921a461be29e73dca1c2385e1adc5943fbb36ded4ba96025ee8a783184d1118da08171f6ea831153c878a6d",earning:.045,staked:{amount:16114000000000000000n,formattedAmount:"161.14"},rewards:{amount:15214000000000000000n,formattedAmount:"152.14"}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0x97b21253b17f4e814fe7505c15c18e68c85ab2477274ad370a762df50e3eb4cb1a48451e089bc22e158d7448549a8ab9",earning:.045,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:16159000000000000000n,formattedAmount:"161.59"}],unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:S(Date.now()-72e6)}]}},{staked:{amount:241514000000000000000n,formattedAmount:"2415.14"},validatorAddress:"0xa4e4b63514f54d61da5197359f11ff1fc2930788ba2ffdd30c2fc059cbe0221020197bf9446b16ac347f36c7517a8686",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:1159000000000000000n,formattedAmount:"11.59",timestamp:S(Date.now()-36e6)}]}},{validatorAddress:"0xb0511ec039591e98bd4e183ba70b85572214a7ad8ca1a43e96ad3495d3821054927bc542e5482ec9733e35b7ef0b1f03",earning:.045,staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:1159000000000000000n,formattedAmount:"11.59"}]}}];async function $d(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?oo:[]}import{GetValidatorAnalytics as no}from"@berachain/graphql/pol/subgraph";async function Xd({pubkey:e,dayRange:t,...r}){return(await b("pol.subgraph",r).query({query:no,variables:{pubKey:e,timestamp:Je(t).toString()}})).data}import{beraChefAbi as io}from"@berachain/abis/pol/rewards/beraChef";async function rm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:io,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(o??0n)/1e4}var nm=(e,t,r)=>{if(!t||!e)return 0;let a=te(1)/r;return(t?a*(Number(e.dynamicData?.stakedBeraAmount)/t):0)*Number.parseFloat(e.dynamicData?.rewardRate??"0")};import{beaconDepositAbi as so}from"@berachain/abis/pol/beaconDeposit";async function um({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:so,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}import{beraChefAbi as lo}from"@berachain/abis/pol/rewards/beraChef";async function pm({client:e,pubKey:t,...r}){let{config:a}=c(r),o=await e.readContract({address:a.pol.beraChef,abi:lo,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}import{beaconDepositAbi as uo}from"@berachain/abis/pol/beaconDeposit";async function ym({client:e,pubKey:t,...r}){let{config:a}=c(r);try{return await e.readContract({address:a.depositContract,abi:uo,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}import{beraChefAbi as co}from"@berachain/abis/pol/rewards/beraChef";async function Pm({client:e,pubKey:t,...r}){let{config:a}=c(r);try{let o=await e.readContract({address:a.pol.beraChef,abi:co,functionName:"getQueuedRewardAllocation",args:[t]});return X(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}export{go as a,me as b,b as c,Fo as d,Ye as e,Mo as f,en as g,nn as h,dn as i,Xe as j,Pn as k,Sn as l,Fn as m,Y as n,Qn as o,fe as p,Mn as q,Jn as r,zn as s,nt as t,ii as u,ci as v,fi as w,Ai as x,it as y,ke as z,lt as A,$i as B,zi as C,Hr as D,rs as E,ls as F,ft as G,As as H,gt as I,xs as J,Ds as K,Ls as L,ra as M,Js as N,Ks as O,Zs as P,be as Q,kl as R,Ct as S,Il as T,Wl as U,_l as V,zl as W,ou as X,su as Y,mu as Z,yu as _,ne as $,Vu as aa,Fu as ba,Du as ca,Ou as da,Rt as ea,tc as fa,cc as ga,gc as ha,hc as ia,Sc as ja,Tc as ka,Ka as la,ed as ma,Ft as na,ld as oa,pd as pa,yd as qa,X as ra,eo as sa,Cd as ta,Vd as ua,Sd as va,Nd as wa,It as xa,Hd as ya,$d as za,Xd as Aa,rm as Ba,nm as Ca,um as Da,pm as Ea,ym as Fa,Pm as Ga};
4
+ //# sourceMappingURL=chunk-MASD43N5.mjs.map