@berachain/berajs 0.2.7 → 0.2.8-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/abi/exports.mjs +1 -1
  2. package/dist/actions/exports.cjs +1 -1
  3. package/dist/actions/exports.cjs.map +1 -1
  4. package/dist/actions/exports.d.cts +2 -2
  5. package/dist/actions/exports.d.ts +2 -2
  6. package/dist/actions/exports.mjs +1 -1
  7. package/dist/{chunk-LNVR4BW6.cjs → chunk-2EN6PPAW.cjs} +2 -2
  8. package/dist/{chunk-LNVR4BW6.cjs.map → chunk-2EN6PPAW.cjs.map} +1 -1
  9. package/dist/chunk-7ITWLMO7.cjs +4 -0
  10. package/dist/{chunk-4436B2EF.cjs.map → chunk-7ITWLMO7.cjs.map} +1 -1
  11. package/dist/{chunk-FM3WDBFH.mjs → chunk-EFG3OYYQ.mjs} +2 -2
  12. package/dist/{chunk-CF3LFNXG.cjs → chunk-GO5E7UUD.cjs} +2 -2
  13. package/dist/{chunk-CF3LFNXG.cjs.map → chunk-GO5E7UUD.cjs.map} +1 -1
  14. package/dist/chunk-JE5GI2OC.mjs +4 -0
  15. package/dist/chunk-JE5GI2OC.mjs.map +1 -0
  16. package/dist/{chunk-COMMLZ3O.mjs → chunk-KI66MQ43.mjs} +2 -2
  17. package/dist/contexts/exports.cjs +1 -1
  18. package/dist/contexts/exports.cjs.map +1 -1
  19. package/dist/contexts/exports.mjs +1 -1
  20. package/dist/{getValidatorQueuedOperatorAddress-BtCefJyH.d.cts → getValidatorQueuedOperatorAddress-BQXkSFd9.d.cts} +1 -0
  21. package/dist/{getValidatorQueuedOperatorAddress-B5T8_BMr.d.ts → getValidatorQueuedOperatorAddress-DUZOmxLV.d.ts} +1 -0
  22. package/dist/hooks/exports.cjs +2 -2
  23. package/dist/hooks/exports.cjs.map +1 -1
  24. package/dist/hooks/exports.d.cts +1 -1
  25. package/dist/hooks/exports.d.ts +1 -1
  26. package/dist/hooks/exports.mjs +2 -2
  27. package/package.json +2 -2
  28. package/src/actions/pol/getRewardVaultIncentives.ts +91 -46
  29. package/dist/chunk-4436B2EF.cjs +0 -4
  30. package/dist/chunk-7VQA45R5.mjs +0 -4
  31. package/dist/chunk-7VQA45R5.mjs.map +0 -1
  32. /package/dist/{chunk-FM3WDBFH.mjs.map → chunk-EFG3OYYQ.mjs.map} +0 -0
  33. /package/dist/{chunk-COMMLZ3O.mjs.map → chunk-KI66MQ43.mjs.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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 _chunk4436B2EFcjs = require('../chunk-4436B2EF.cjs');require('../chunk-OUD27MU7.cjs');var _chunkCF3LFNXGcjs = require('../chunk-CF3LFNXG.cjs');require('../chunk-OIYXOKTT.cjs');require('../chunk-WRFDB3QJ.cjs');require('../chunk-DK42F2ZM.cjs');var _chunk2YBHAMDVcjs = require('../chunk-2YBHAMDV.cjs');var _chunkNVHV2LDKcjs = require('../chunk-NVHV2LDK.cjs');var _chunk74WA35RIcjs = require('../chunk-74WA35RI.cjs');require('../chunk-NMH7LHPW.cjs');var _viem = require('viem');var _metaMorphoV11 = require('@berachain/abis/bend-metamorpho/metaMorphoV11');async function _t({vaultAddress:e,publicClient:t}){let o=await t.readContract({address:e,abi:_metaMorphoV11.metaMorphoV11Abi,functionName:"maxDeposit",args:[e]});return _viem.formatEther.call(void 0, o)}var _berancersdk = require('@berachain-foundation/berancer-sdk');var $t=e=>({type:_berancersdk.mapPoolType.call(void 0, e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});var _vault = require('@berachain/abis/bex/vault');async function zt({publicClient:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t);return(await e.readContract({address:o.bex.vault,abi:_vault.vaultAbi,functionName:"getPausedState"}))[0]}var _internal = require('@berachain/config/internal');var _beraChef = require('@berachain/abis/pol/rewards/beraChef');var _rewardVault = require('@berachain/abis/pol/rewards/rewardVault');function G(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&_optionalChain([t, 'access', _2 => _2.inputs, 'optionalAccess', _3 => _3[0], 'optionalAccess', _4 => _4.name])==="implementation")}async function N({contractAddress:e,chainId:t,publicClient:o}){let r=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${_internal.appConfig.apiKeys.private.etherscan}&chainId=${t}`,a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ABI: ${a.statusText}`);let n=await a.json();if(n.status==="0")throw new Error(n.result);let m=JSON.parse(n.result);if(!G(m))return m;let i=await o.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||_viem.trim.call(void 0, i)==="0x00")return m;let s=_viem.pad.call(void 0, _viem.trim.call(void 0, i),{size:20});return N({contractAddress:s,chainId:t,publicClient:o})}async function q({address:e,callData:t,knownAbi:o,chainId:r,publicClient:a}){try{if(_viem.decodeFunctionData.call(void 0, {data:t,abi:o}))return o}catch (e2){}try{return await N({contractAddress:e,chainId:r,publicClient:a})}catch (e3){}}function z(e,t){try{return _viem.decodeFunctionData.call(void 0, {data:e,abi:t})}catch (e4){return}}function X(e,t){return e.find(o=>o.type==="function"&&o.name===t)}function j(e){if(e)try{return _viem.toFunctionSignature.call(void 0, e)}catch(t){console.error(t)}}async function Yt({address:e,callData:t,chainId:o=_internal.defaultChainId,publicClient:r}){let a=[..._beraChef.beraChefAbi,..._rewardVault.rewardVaultAbi,..._viem.erc20Abi],n=await q({address:e,callData:t,knownAbi:a,chainId:o,publicClient:r}),m=z(t,n);if(!n||!m)return{args:[]};let i=X(n,m.functionName),s=j(i);return{abiItem:i,functionSignature:s,functionName:m.functionName,args:m.args}}var _honeyFactory = require('@berachain/abis/honey/honeyFactory');async function ar({client:e,collateralList:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);try{let a={mint:[],redeem:[]};for(let s of t)a.mint.push(e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"mintRates",args:[s.address]})),a.redeem.push(e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"redeemRates",args:[s.address]}));let[n,m,i]=await Promise.all([Promise.all(a.mint),Promise.all(a.redeem),e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"getWeights"})]);return t.reduce((s,c)=>{let p=t.indexOf(c);return s.single[c.address]={mintFee:1-+_viem.formatUnits.call(void 0, n[p],18),redeemFee:1-+_viem.formatUnits.call(void 0, m[p],18)},s.basket.mintFee+=s.single[c.address].mintFee*+_viem.formatUnits.call(void 0, i[p],18),s.basket.redeemFee+=s.single[c.address].redeemFee*+_viem.formatUnits.call(void 0, i[p],18),s},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(a){throw console.log(a),a}}var _honey = require('@berachain/abis/honey/honey');async function mr({client:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t),r=o.honey.token;return await e.readContract({address:r,abi:_honey.honeyAbi,functionName:"paused"})}var _rootPriceOracle = require('@berachain/abis/extras/rootPriceOracle');async function pr({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:_rootPriceOracle.rootPriceOracleAbi,functionName:"pythOracle"})}async function yr({publicClient:e,factory:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);return await e.readContract({address:_nullishCoalesce(t, () => (r.honey.factory)),abi:_honeyFactory.honeyFactoryAbi,functionName:"priceOracle"})}async function hr({defaultBlockTime:e,publicClient:t,blocksSpan:o,...r}){_chunk2YBHAMDVcjs.c.call(void 0, t);let{config:a}=_chunk74WA35RIcjs.a.call(void 0, r),n=_nullishCoalesce(e, () => (a.averageBlockTime)),m=_nullishCoalesce(o, () => (Math.floor(_chunkNVHV2LDKcjs.q.call(void 0, 1)/n))),i=await _optionalChain([t, 'optionalAccess', _5 => _5.getBlock, 'call', _6 => _6({blockTag:"latest"})]),s=await _optionalChain([t, 'optionalAccess', _7 => _7.getBlock, 'call', _8 => _8({blockNumber:i.number-BigInt(m)})]);return(_chunkNVHV2LDKcjs.l.call(void 0, Date.now())-Number(_optionalChain([s, 'optionalAccess', _9 => _9.timestamp])))/(Number(_optionalChain([i, 'optionalAccess', _10 => _10.number]))-Number(_optionalChain([s, 'optionalAccess', _11 => _11.number])))}var _lstStakerVault = require('@berachain/abis/pol/lst/lstStakerVault');async function Nr({tokenList:e,publicClient:t,lstStakingVaults:o,...r}){_chunk2YBHAMDVcjs.c.call(void 0, t);let{config:a}=_chunk74WA35RIcjs.a.call(void 0, {...r,chainId:_nullishCoalesce(_optionalChain([t, 'access', _12 => _12.chain, 'optionalAccess', _13 => _13.id]), () => (r.chainId))}),n=e.filter(i=>o.includes(i.address));return n.length===0?[]:(await Promise.all(n.map(async i=>({assetTokenAddress:await t.readContract({address:i.address,abi:_lstStakerVault.lstStakerVaultAbi,functionName:"asset"}),stakingToken:i})))).reduce((i,{assetTokenAddress:s,stakingToken:c})=>{let p=e.find(g=>_chunk74WA35RIcjs.e.call(void 0, g,s));return p&&i.push({id:c.address,receiptToken:c,inputTokens:[p]}),i},[])}var _rewardVaultFactory = require('@berachain/abis/pol/rewards/rewardVaultFactory');var S=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function v({publicClient:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t),r=o.pol.factory;_chunk2YBHAMDVcjs.b.call(void 0, e,"publicClient"),_chunk2YBHAMDVcjs.d.call(void 0, o.pol.factory,"factoryAddress");let a=await e.readContract({address:r,abi:_rewardVaultFactory.rewardVaultFactoryAbi,functionName:"beacon"});return await e.readContract({address:a,abi:S,functionName:"implementation"})}async function Wr({publicClient:e,...t}){_chunk2YBHAMDVcjs.c.call(void 0, e);let o=await v({publicClient:e,...t}),[r,a]=await Promise.all([e.readContract({address:o,abi:_rewardVault.rewardVaultAbi,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:o,abi:_rewardVault.rewardVaultAbi,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(r),maxRewardDuration:Number(a)}}async function Er({tokenAddress:e,publicClient:t,factoryAddress:o,...r}){let{config:a}=_chunk74WA35RIcjs.a.call(void 0, r),n=await t.readContract({address:_nullishCoalesce(o, () => (a.pol.factory)),abi:_rewardVaultFactory.rewardVaultFactoryAbi,functionName:"getVault",args:[e]});return n===_viem.zeroAddress?null:n}var _pythPriceOracle = require('@berachain/abis/extras/pythPriceOracle');async function qr({tokenList:e,publicClient:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);try{let a=await Promise.all(e.map(n=>t.readContract({address:r.honey.pythOracle,abi:_pythPriceOracle.pythPriceOracleAbi,functionName:"feeds",args:[n]})));return e.reduce((n,m,i)=>({...n,[m]:a[i]}),{})}catch(a){throw console.error("getPythPriceFeedId",a),a}}async function Kr({url:e,...t}={}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t);returnawait _asyncNullishCoalesce((await _chunkNVHV2LDKcjs.d.call(void 0, {url:_nullishCoalesce(e, () => (o.lists.tokenList)),type:"rest",name:"GitHub"})).tokens, async () => ([]))}var _bgt = require('@berachain/abis/pol/bgt');async function to({publicClient:e,ui:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o),[a,n,m,i,s,c,p,g]=await Promise.all([e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"commissionChangeDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"maxWeightPerVault"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"dropBoostDelay"}),e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"activateBoostDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(a)/1e4,boostDelay:Number(p),unboostDelay:Number(c),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(m),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(s),rewardAllocationInactivityBlockSpan:Number(g),ui:t}}function ao({rewardAllocationWeights:e,activeOnly:t=!0}){let o=e.filter(r=>_optionalChain([r, 'optionalAccess', _14 => _14.receivingVault])).reduce((r,a)=>{for(let n of _nullishCoalesce(_optionalChain([a, 'access', _15 => _15.receivingVault, 'optionalAccess', _16 => _16.activeIncentives]), () => ([]))){if(t&&n.remainingAmount==="0")continue;let m=new (0, _chunkNVHV2LDKcjs.a)(n.incentiveRate).times(a.percentage),i=new (0, _chunkNVHV2LDKcjs.a)(n.incentiveRateUsd).times(a.percentage),s=n.token.address.toLowerCase(),c=r.get(s);c?r.set(s,{...c,incentiveRate:new (0, _chunkNVHV2LDKcjs.a)(c.incentiveRate).plus(m).toString(),incentiveRateUsd:new (0, _chunkNVHV2LDKcjs.a)(c.incentiveRateUsd).plus(i).toString(),remainingAmount:new (0, _chunkNVHV2LDKcjs.a)(c.remainingAmount).plus(n.remainingAmount).toString(),remainingAmountUsd:new (0, _chunkNVHV2LDKcjs.a)(c.remainingAmountUsd).plus(n.remainingAmountUsd).toString()}):r.set(s,{...n,tokenAddress:n.token.address,token:n.token,incentiveRate:m.toString(),incentiveRateUsd:i.toString(),remainingAmount:n.remainingAmount})}return r},new Map);return Array.from(o.values())}function ae(e){return _optionalChain([e, 'optionalAccess', _17 => _17.rewardAllocationWeights, 'optionalAccess', _18 => _18.reduce, 'call', _19 => _19((t,o)=>{if(!o)return t;let r=_nullishCoalesce(_optionalChain([o, 'access', _20 => _20.receivingVault, 'optionalAccess', _21 => _21.activeIncentives, 'access', _22 => _22.filter, 'call', _23 => _23(a=>Number(a.remainingAmount)>0), 'access', _24 => _24.reduce, 'call', _25 => _25((a,n)=>{let m=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return a+Number(n.incentiveRate)*m},0)]), () => (0));return t+r*o.percentage},0)])}function io({validator:e,bgtPrice:t}){let o=Number(_nullishCoalesce(_optionalChain([e, 'access', _26 => _26.dynamicData, 'optionalAccess', _27 => _27.activeBoostAmount]), () => (0))),r=ae(e);return!r||!o?0:r*Number(_nullishCoalesce(_optionalChain([e, 'access', _28 => _28.dynamicData, 'optionalAccess', _29 => _29.lastDayDistributedBGTAmount]), () => (0)))*365/(o*t)}exports.BalancerApi = _chunk4436B2EFcjs.f; exports.BaseAggregator = _chunk4436B2EFcjs.e; exports.BeraApolloClient = _chunk4436B2EFcjs.b; exports.HoneyPreviewMethod = _chunk4436B2EFcjs.D; exports.MOCKED_PROPOSAL_STATUSES = _chunk4436B2EFcjs.o; exports.RewardVaultDistributionMode = _chunk4436B2EFcjs.M; exports.aggregateValidatorIncentives = ao; exports.beraWriteContract = _chunk4436B2EFcjs.ma; exports.checkProposalField = _chunk4436B2EFcjs.n; exports.computeActualStatus = _chunk4436B2EFcjs.p; exports.formatValidatorRewardAllocation = _chunk4436B2EFcjs.ra; exports.getActiveBoostAndCommissionChangeDelay = to; exports.getAllPools = _chunk4436B2EFcjs.g; exports.getAllProposals = _chunk4436B2EFcjs.q; exports.getAllValidators = _chunk4436B2EFcjs.na; exports.getAllowances = _chunk4436B2EFcjs.ka; exports.getApiEnrichedAllocation = _chunk4436B2EFcjs.oa; exports.getApiPool = _chunk4436B2EFcjs.h; exports.getApiValidator = _chunk4436B2EFcjs.pa; exports.getApolloClient = _chunk4436B2EFcjs.c; exports.getBalanceCall = _chunkCF3LFNXGcjs.b; exports.getBgtAprSimulation = _chunk4436B2EFcjs.O; exports.getBlockTime = hr; exports.getBlockTimestamp = _chunk4436B2EFcjs.L; exports.getBodyErrors = _chunk4436B2EFcjs.r; exports.getChartData = _chunk4436B2EFcjs.w; exports.getCollateralWeights = _chunk4436B2EFcjs.x; exports.getConvertToAssets = _chunk4436B2EFcjs.a; exports.getDailyValidatorBlockStats = _chunk4436B2EFcjs.qa; exports.getDecodedFunctionData = Yt; exports.getDefaultRewardAllocation = _chunk4436B2EFcjs.va; exports.getEarnedStakedBeraVault = _chunk4436B2EFcjs.P; exports.getEnsoClient = _chunkCF3LFNXGcjs.a; exports.getGlobalCapLimit = _chunk4436B2EFcjs.B; exports.getGlobalData = _chunk4436B2EFcjs.R; exports.getGlobalLiquidityAndSwapVolume = _chunk4436B2EFcjs.i; exports.getHoneyCollaterals = _chunk4436B2EFcjs.z; exports.getHoneyFees = ar; exports.getHoneyGlobalData = _chunk4436B2EFcjs.C; exports.getHoneyPausedState = mr; exports.getHoneyPreview = _chunk4436B2EFcjs.E; exports.getHoneyPythFeeds = qr; exports.getHoneyPythOracle = pr; exports.getHoneyRootPriceOracle = yr; exports.getHoneyVaultsBalance = _chunk4436B2EFcjs.F; exports.getIncentiveFeeClaimStats = _chunk4436B2EFcjs.S; exports.getLSTStakeConfig = Nr; exports.getMarkets = _chunk4436B2EFcjs.T; exports.getMaxDeposit = _t; exports.getOnChainPool = _chunk4436B2EFcjs.k; exports.getPoolEvents = _chunk4436B2EFcjs.l; exports.getPoolHistoricalData = _chunk4436B2EFcjs.m; exports.getPoolPausedState = _chunk4436B2EFcjs.j; exports.getPoolState = $t; exports.getProposalDetails = _chunk4436B2EFcjs.s; exports.getProposalFromTx = _chunk4436B2EFcjs.u; exports.getProposalVotes = _chunk4436B2EFcjs.v; exports.getPythLatestPrices = _chunk4436B2EFcjs.G; exports.getPythUpdateFee = _chunk4436B2EFcjs.I; exports.getRelativeCapLimit = _chunk4436B2EFcjs.H; exports.getRewardProofsByValidator = _chunk4436B2EFcjs.U; exports.getRewardTokenToBeraRate = _chunk4436B2EFcjs.V; exports.getRewardVault = _chunk4436B2EFcjs.W; exports.getRewardVaultDurationConstants = Wr; exports.getRewardVaultFromToken = Er; exports.getRewardVaultIncentives = _chunk4436B2EFcjs.X; exports.getRewardVaultRewards = _chunk4436B2EFcjs.N; exports.getRewardVaultStakingToken = _chunk4436B2EFcjs.Y; exports.getRewardVaults = _chunk4436B2EFcjs.Q; exports.getSWBeraVaultMetadata = _chunk4436B2EFcjs.aa; exports.getSWBeraWithdrawal = _chunk4436B2EFcjs.ba; exports.getStakeWithdrawalCooldown = _chunk4436B2EFcjs.$; exports.getStakedBeraAPR = _chunk4436B2EFcjs.Z; exports.getStakedBeraSnapshots = _chunk4436B2EFcjs._; exports.getStakingPoolBatch = _chunk4436B2EFcjs.wa; exports.getSwapPayload = _chunk4436B2EFcjs.J; exports.getTokenCurrentPrices = _chunk4436B2EFcjs.ja; exports.getTokenInformation = _chunk4436B2EFcjs.y; exports.getTokens = Kr; exports.getTotalStakedAmount = _chunk4436B2EFcjs.ca; exports.getUserActiveValidators = _chunk4436B2EFcjs.ya; exports.getUserBoostsOnValidator = _chunk4436B2EFcjs.xa; exports.getUserClaimableIncentives = _chunk4436B2EFcjs.da; exports.getUserStakingPositions = _chunk4436B2EFcjs.za; exports.getUserVaultInfo = _chunk4436B2EFcjs.fa; exports.getUserVaults = _chunk4436B2EFcjs.ga; exports.getUserVaultsReward = _chunk4436B2EFcjs.ea; exports.getValidatorAnalytics = _chunk4436B2EFcjs.Aa; exports.getValidatorBoostApy = io; exports.getValidatorCommission = _chunk4436B2EFcjs.Ba; exports.getValidatorEstimatedBgtPerYear = _chunk4436B2EFcjs.Ca; exports.getValidatorOperatorAddress = _chunk4436B2EFcjs.Da; exports.getValidatorQueuedCommission = _chunk4436B2EFcjs.Ea; exports.getValidatorQueuedOperatorAddress = _chunk4436B2EFcjs.Fa; exports.getValidatorQueuedRewardAllocation = _chunk4436B2EFcjs.Ga; exports.getValidatorReturnPerBgt = ae; exports.getValidatorRewardAllocation = _chunk4436B2EFcjs.ta; exports.getVaultHistory = _chunk4436B2EFcjs.ha; exports.getVaultPausedState = zt; exports.getVaultValidators = _chunk4436B2EFcjs.ia; exports.getWalletBalances = _chunkCF3LFNXGcjs.c; exports.gql = _chunk4436B2EFcjs.d; exports.isBadCollateralAsset = _chunk4436B2EFcjs.A; exports.isBasketModeEnabled = _chunk4436B2EFcjs.K; exports.isDefaultRewardAllocation = _chunk4436B2EFcjs.ua; exports.isImpersonateAccount = _chunk4436B2EFcjs.la; exports.isSameRewardAllocation = _chunk4436B2EFcjs.sa; exports.parseProposalBody = _chunk4436B2EFcjs.t;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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 _chunk7ITWLMO7cjs = require('../chunk-7ITWLMO7.cjs');var _chunkGO5E7UUDcjs = require('../chunk-GO5E7UUD.cjs');require('../chunk-WRFDB3QJ.cjs');require('../chunk-OUD27MU7.cjs');require('../chunk-OIYXOKTT.cjs');var _chunkNVHV2LDKcjs = require('../chunk-NVHV2LDK.cjs');var _chunk74WA35RIcjs = require('../chunk-74WA35RI.cjs');require('../chunk-DK42F2ZM.cjs');var _chunk2YBHAMDVcjs = require('../chunk-2YBHAMDV.cjs');require('../chunk-NMH7LHPW.cjs');var _viem = require('viem');var _metaMorphoV11 = require('@berachain/abis/bend-metamorpho/metaMorphoV11');async function _t({vaultAddress:e,publicClient:t}){let o=await t.readContract({address:e,abi:_metaMorphoV11.metaMorphoV11Abi,functionName:"maxDeposit",args:[e]});return _viem.formatEther.call(void 0, o)}var _berancersdk = require('@berachain-foundation/berancer-sdk');var $t=e=>({type:_berancersdk.mapPoolType.call(void 0, e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});var _vault = require('@berachain/abis/bex/vault');async function zt({publicClient:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t);return(await e.readContract({address:o.bex.vault,abi:_vault.vaultAbi,functionName:"getPausedState"}))[0]}var _internal = require('@berachain/config/internal');var _beraChef = require('@berachain/abis/pol/rewards/beraChef');var _rewardVault = require('@berachain/abis/pol/rewards/rewardVault');function G(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&_optionalChain([t, 'access', _2 => _2.inputs, 'optionalAccess', _3 => _3[0], 'optionalAccess', _4 => _4.name])==="implementation")}async function N({contractAddress:e,chainId:t,publicClient:o}){let r=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${_internal.appConfig.apiKeys.private.etherscan}&chainId=${t}`,a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ABI: ${a.statusText}`);let n=await a.json();if(n.status==="0")throw new Error(n.result);let m=JSON.parse(n.result);if(!G(m))return m;let i=await o.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||_viem.trim.call(void 0, i)==="0x00")return m;let s=_viem.pad.call(void 0, _viem.trim.call(void 0, i),{size:20});return N({contractAddress:s,chainId:t,publicClient:o})}async function q({address:e,callData:t,knownAbi:o,chainId:r,publicClient:a}){try{if(_viem.decodeFunctionData.call(void 0, {data:t,abi:o}))return o}catch (e2){}try{return await N({contractAddress:e,chainId:r,publicClient:a})}catch (e3){}}function z(e,t){try{return _viem.decodeFunctionData.call(void 0, {data:e,abi:t})}catch (e4){return}}function X(e,t){return e.find(o=>o.type==="function"&&o.name===t)}function j(e){if(e)try{return _viem.toFunctionSignature.call(void 0, e)}catch(t){console.error(t)}}async function Yt({address:e,callData:t,chainId:o=_internal.defaultChainId,publicClient:r}){let a=[..._beraChef.beraChefAbi,..._rewardVault.rewardVaultAbi,..._viem.erc20Abi],n=await q({address:e,callData:t,knownAbi:a,chainId:o,publicClient:r}),m=z(t,n);if(!n||!m)return{args:[]};let i=X(n,m.functionName),s=j(i);return{abiItem:i,functionSignature:s,functionName:m.functionName,args:m.args}}var _honeyFactory = require('@berachain/abis/honey/honeyFactory');async function ar({client:e,collateralList:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);try{let a={mint:[],redeem:[]};for(let s of t)a.mint.push(e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"mintRates",args:[s.address]})),a.redeem.push(e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"redeemRates",args:[s.address]}));let[n,m,i]=await Promise.all([Promise.all(a.mint),Promise.all(a.redeem),e.readContract({address:r.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"getWeights"})]);return t.reduce((s,c)=>{let p=t.indexOf(c);return s.single[c.address]={mintFee:1-+_viem.formatUnits.call(void 0, n[p],18),redeemFee:1-+_viem.formatUnits.call(void 0, m[p],18)},s.basket.mintFee+=s.single[c.address].mintFee*+_viem.formatUnits.call(void 0, i[p],18),s.basket.redeemFee+=s.single[c.address].redeemFee*+_viem.formatUnits.call(void 0, i[p],18),s},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(a){throw console.log(a),a}}var _honey = require('@berachain/abis/honey/honey');async function mr({client:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t),r=o.honey.token;return await e.readContract({address:r,abi:_honey.honeyAbi,functionName:"paused"})}var _rootPriceOracle = require('@berachain/abis/extras/rootPriceOracle');async function pr({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:_rootPriceOracle.rootPriceOracleAbi,functionName:"pythOracle"})}async function yr({publicClient:e,factory:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);return await e.readContract({address:_nullishCoalesce(t, () => (r.honey.factory)),abi:_honeyFactory.honeyFactoryAbi,functionName:"priceOracle"})}async function hr({defaultBlockTime:e,publicClient:t,blocksSpan:o,...r}){_chunk2YBHAMDVcjs.c.call(void 0, t);let{config:a}=_chunk74WA35RIcjs.a.call(void 0, r),n=_nullishCoalesce(e, () => (a.averageBlockTime)),m=_nullishCoalesce(o, () => (Math.floor(_chunkNVHV2LDKcjs.q.call(void 0, 1)/n))),i=await _optionalChain([t, 'optionalAccess', _5 => _5.getBlock, 'call', _6 => _6({blockTag:"latest"})]),s=await _optionalChain([t, 'optionalAccess', _7 => _7.getBlock, 'call', _8 => _8({blockNumber:i.number-BigInt(m)})]);return(_chunkNVHV2LDKcjs.l.call(void 0, Date.now())-Number(_optionalChain([s, 'optionalAccess', _9 => _9.timestamp])))/(Number(_optionalChain([i, 'optionalAccess', _10 => _10.number]))-Number(_optionalChain([s, 'optionalAccess', _11 => _11.number])))}var _lstStakerVault = require('@berachain/abis/pol/lst/lstStakerVault');async function Nr({tokenList:e,publicClient:t,lstStakingVaults:o,...r}){_chunk2YBHAMDVcjs.c.call(void 0, t);let{config:a}=_chunk74WA35RIcjs.a.call(void 0, {...r,chainId:_nullishCoalesce(_optionalChain([t, 'access', _12 => _12.chain, 'optionalAccess', _13 => _13.id]), () => (r.chainId))}),n=e.filter(i=>o.includes(i.address));return n.length===0?[]:(await Promise.all(n.map(async i=>({assetTokenAddress:await t.readContract({address:i.address,abi:_lstStakerVault.lstStakerVaultAbi,functionName:"asset"}),stakingToken:i})))).reduce((i,{assetTokenAddress:s,stakingToken:c})=>{let p=e.find(g=>_chunk74WA35RIcjs.e.call(void 0, g,s));return p&&i.push({id:c.address,receiptToken:c,inputTokens:[p]}),i},[])}var _rewardVaultFactory = require('@berachain/abis/pol/rewards/rewardVaultFactory');var S=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function v({publicClient:e,...t}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t),r=o.pol.factory;_chunk2YBHAMDVcjs.b.call(void 0, e,"publicClient"),_chunk2YBHAMDVcjs.d.call(void 0, o.pol.factory,"factoryAddress");let a=await e.readContract({address:r,abi:_rewardVaultFactory.rewardVaultFactoryAbi,functionName:"beacon"});return await e.readContract({address:a,abi:S,functionName:"implementation"})}async function Wr({publicClient:e,...t}){_chunk2YBHAMDVcjs.c.call(void 0, e);let o=await v({publicClient:e,...t}),[r,a]=await Promise.all([e.readContract({address:o,abi:_rewardVault.rewardVaultAbi,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:o,abi:_rewardVault.rewardVaultAbi,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(r),maxRewardDuration:Number(a)}}async function Er({tokenAddress:e,publicClient:t,factoryAddress:o,...r}){let{config:a}=_chunk74WA35RIcjs.a.call(void 0, r),n=await t.readContract({address:_nullishCoalesce(o, () => (a.pol.factory)),abi:_rewardVaultFactory.rewardVaultFactoryAbi,functionName:"getVault",args:[e]});return n===_viem.zeroAddress?null:n}var _pythPriceOracle = require('@berachain/abis/extras/pythPriceOracle');async function qr({tokenList:e,publicClient:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o);try{let a=await Promise.all(e.map(n=>t.readContract({address:r.honey.pythOracle,abi:_pythPriceOracle.pythPriceOracleAbi,functionName:"feeds",args:[n]})));return e.reduce((n,m,i)=>({...n,[m]:a[i]}),{})}catch(a){throw console.error("getPythPriceFeedId",a),a}}async function Kr({url:e,...t}={}){let{config:o}=_chunk74WA35RIcjs.a.call(void 0, t);returnawait _asyncNullishCoalesce((await _chunkNVHV2LDKcjs.d.call(void 0, {url:_nullishCoalesce(e, () => (o.lists.tokenList)),type:"rest",name:"GitHub"})).tokens, async () => ([]))}var _bgt = require('@berachain/abis/pol/bgt');async function to({publicClient:e,ui:t,...o}){let{config:r}=_chunk74WA35RIcjs.a.call(void 0, o),[a,n,m,i,s,c,p,g]=await Promise.all([e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"commissionChangeDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"maxWeightPerVault"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"dropBoostDelay"}),e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"activateBoostDelay"}),e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(a)/1e4,boostDelay:Number(p),unboostDelay:Number(c),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(m),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(s),rewardAllocationInactivityBlockSpan:Number(g),ui:t}}function ao({rewardAllocationWeights:e,activeOnly:t=!0}){let o=e.filter(r=>_optionalChain([r, 'optionalAccess', _14 => _14.receivingVault])).reduce((r,a)=>{for(let n of _nullishCoalesce(_optionalChain([a, 'access', _15 => _15.receivingVault, 'optionalAccess', _16 => _16.activeIncentives]), () => ([]))){if(t&&n.remainingAmount==="0")continue;let m=new (0, _chunkNVHV2LDKcjs.a)(n.incentiveRate).times(a.percentage),i=new (0, _chunkNVHV2LDKcjs.a)(n.incentiveRateUsd).times(a.percentage),s=n.token.address.toLowerCase(),c=r.get(s);c?r.set(s,{...c,incentiveRate:new (0, _chunkNVHV2LDKcjs.a)(c.incentiveRate).plus(m).toString(),incentiveRateUsd:new (0, _chunkNVHV2LDKcjs.a)(c.incentiveRateUsd).plus(i).toString(),remainingAmount:new (0, _chunkNVHV2LDKcjs.a)(c.remainingAmount).plus(n.remainingAmount).toString(),remainingAmountUsd:new (0, _chunkNVHV2LDKcjs.a)(c.remainingAmountUsd).plus(n.remainingAmountUsd).toString()}):r.set(s,{...n,tokenAddress:n.token.address,token:n.token,incentiveRate:m.toString(),incentiveRateUsd:i.toString(),remainingAmount:n.remainingAmount})}return r},new Map);return Array.from(o.values())}function ae(e){return _optionalChain([e, 'optionalAccess', _17 => _17.rewardAllocationWeights, 'optionalAccess', _18 => _18.reduce, 'call', _19 => _19((t,o)=>{if(!o)return t;let r=_nullishCoalesce(_optionalChain([o, 'access', _20 => _20.receivingVault, 'optionalAccess', _21 => _21.activeIncentives, 'access', _22 => _22.filter, 'call', _23 => _23(a=>Number(a.remainingAmount)>0), 'access', _24 => _24.reduce, 'call', _25 => _25((a,n)=>{let m=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return a+Number(n.incentiveRate)*m},0)]), () => (0));return t+r*o.percentage},0)])}function io({validator:e,bgtPrice:t}){let o=Number(_nullishCoalesce(_optionalChain([e, 'access', _26 => _26.dynamicData, 'optionalAccess', _27 => _27.activeBoostAmount]), () => (0))),r=ae(e);return!r||!o?0:r*Number(_nullishCoalesce(_optionalChain([e, 'access', _28 => _28.dynamicData, 'optionalAccess', _29 => _29.lastDayDistributedBGTAmount]), () => (0)))*365/(o*t)}exports.BalancerApi = _chunk7ITWLMO7cjs.f; exports.BaseAggregator = _chunk7ITWLMO7cjs.e; exports.BeraApolloClient = _chunk7ITWLMO7cjs.b; exports.HoneyPreviewMethod = _chunk7ITWLMO7cjs.D; exports.MOCKED_PROPOSAL_STATUSES = _chunk7ITWLMO7cjs.o; exports.RewardVaultDistributionMode = _chunk7ITWLMO7cjs.M; exports.aggregateValidatorIncentives = ao; exports.beraWriteContract = _chunk7ITWLMO7cjs.ma; exports.checkProposalField = _chunk7ITWLMO7cjs.n; exports.computeActualStatus = _chunk7ITWLMO7cjs.p; exports.formatValidatorRewardAllocation = _chunk7ITWLMO7cjs.ra; exports.getActiveBoostAndCommissionChangeDelay = to; exports.getAllPools = _chunk7ITWLMO7cjs.g; exports.getAllProposals = _chunk7ITWLMO7cjs.q; exports.getAllValidators = _chunk7ITWLMO7cjs.na; exports.getAllowances = _chunk7ITWLMO7cjs.ka; exports.getApiEnrichedAllocation = _chunk7ITWLMO7cjs.oa; exports.getApiPool = _chunk7ITWLMO7cjs.h; exports.getApiValidator = _chunk7ITWLMO7cjs.pa; exports.getApolloClient = _chunk7ITWLMO7cjs.c; exports.getBalanceCall = _chunkGO5E7UUDcjs.b; exports.getBgtAprSimulation = _chunk7ITWLMO7cjs.O; exports.getBlockTime = hr; exports.getBlockTimestamp = _chunk7ITWLMO7cjs.L; exports.getBodyErrors = _chunk7ITWLMO7cjs.r; exports.getChartData = _chunk7ITWLMO7cjs.w; exports.getCollateralWeights = _chunk7ITWLMO7cjs.x; exports.getConvertToAssets = _chunk7ITWLMO7cjs.a; exports.getDailyValidatorBlockStats = _chunk7ITWLMO7cjs.qa; exports.getDecodedFunctionData = Yt; exports.getDefaultRewardAllocation = _chunk7ITWLMO7cjs.va; exports.getEarnedStakedBeraVault = _chunk7ITWLMO7cjs.P; exports.getEnsoClient = _chunkGO5E7UUDcjs.a; exports.getGlobalCapLimit = _chunk7ITWLMO7cjs.B; exports.getGlobalData = _chunk7ITWLMO7cjs.R; exports.getGlobalLiquidityAndSwapVolume = _chunk7ITWLMO7cjs.i; exports.getHoneyCollaterals = _chunk7ITWLMO7cjs.z; exports.getHoneyFees = ar; exports.getHoneyGlobalData = _chunk7ITWLMO7cjs.C; exports.getHoneyPausedState = mr; exports.getHoneyPreview = _chunk7ITWLMO7cjs.E; exports.getHoneyPythFeeds = qr; exports.getHoneyPythOracle = pr; exports.getHoneyRootPriceOracle = yr; exports.getHoneyVaultsBalance = _chunk7ITWLMO7cjs.F; exports.getIncentiveFeeClaimStats = _chunk7ITWLMO7cjs.S; exports.getLSTStakeConfig = Nr; exports.getMarkets = _chunk7ITWLMO7cjs.T; exports.getMaxDeposit = _t; exports.getOnChainPool = _chunk7ITWLMO7cjs.k; exports.getPoolEvents = _chunk7ITWLMO7cjs.l; exports.getPoolHistoricalData = _chunk7ITWLMO7cjs.m; exports.getPoolPausedState = _chunk7ITWLMO7cjs.j; exports.getPoolState = $t; exports.getProposalDetails = _chunk7ITWLMO7cjs.s; exports.getProposalFromTx = _chunk7ITWLMO7cjs.u; exports.getProposalVotes = _chunk7ITWLMO7cjs.v; exports.getPythLatestPrices = _chunk7ITWLMO7cjs.G; exports.getPythUpdateFee = _chunk7ITWLMO7cjs.I; exports.getRelativeCapLimit = _chunk7ITWLMO7cjs.H; exports.getRewardProofsByValidator = _chunk7ITWLMO7cjs.U; exports.getRewardTokenToBeraRate = _chunk7ITWLMO7cjs.V; exports.getRewardVault = _chunk7ITWLMO7cjs.W; exports.getRewardVaultDurationConstants = Wr; exports.getRewardVaultFromToken = Er; exports.getRewardVaultIncentives = _chunk7ITWLMO7cjs.X; exports.getRewardVaultRewards = _chunk7ITWLMO7cjs.N; exports.getRewardVaultStakingToken = _chunk7ITWLMO7cjs.Y; exports.getRewardVaults = _chunk7ITWLMO7cjs.Q; exports.getSWBeraVaultMetadata = _chunk7ITWLMO7cjs.aa; exports.getSWBeraWithdrawal = _chunk7ITWLMO7cjs.ba; exports.getStakeWithdrawalCooldown = _chunk7ITWLMO7cjs.$; exports.getStakedBeraAPR = _chunk7ITWLMO7cjs.Z; exports.getStakedBeraSnapshots = _chunk7ITWLMO7cjs._; exports.getStakingPoolBatch = _chunk7ITWLMO7cjs.wa; exports.getSwapPayload = _chunk7ITWLMO7cjs.J; exports.getTokenCurrentPrices = _chunk7ITWLMO7cjs.ja; exports.getTokenInformation = _chunk7ITWLMO7cjs.y; exports.getTokens = Kr; exports.getTotalStakedAmount = _chunk7ITWLMO7cjs.ca; exports.getUserActiveValidators = _chunk7ITWLMO7cjs.ya; exports.getUserBoostsOnValidator = _chunk7ITWLMO7cjs.xa; exports.getUserClaimableIncentives = _chunk7ITWLMO7cjs.da; exports.getUserStakingPositions = _chunk7ITWLMO7cjs.za; exports.getUserVaultInfo = _chunk7ITWLMO7cjs.fa; exports.getUserVaults = _chunk7ITWLMO7cjs.ga; exports.getUserVaultsReward = _chunk7ITWLMO7cjs.ea; exports.getValidatorAnalytics = _chunk7ITWLMO7cjs.Aa; exports.getValidatorBoostApy = io; exports.getValidatorCommission = _chunk7ITWLMO7cjs.Ba; exports.getValidatorEstimatedBgtPerYear = _chunk7ITWLMO7cjs.Ca; exports.getValidatorOperatorAddress = _chunk7ITWLMO7cjs.Da; exports.getValidatorQueuedCommission = _chunk7ITWLMO7cjs.Ea; exports.getValidatorQueuedOperatorAddress = _chunk7ITWLMO7cjs.Fa; exports.getValidatorQueuedRewardAllocation = _chunk7ITWLMO7cjs.Ga; exports.getValidatorReturnPerBgt = ae; exports.getValidatorRewardAllocation = _chunk7ITWLMO7cjs.ta; exports.getVaultHistory = _chunk7ITWLMO7cjs.ha; exports.getVaultPausedState = zt; exports.getVaultValidators = _chunk7ITWLMO7cjs.ia; exports.getWalletBalances = _chunkGO5E7UUDcjs.c; exports.gql = _chunk7ITWLMO7cjs.d; exports.isBadCollateralAsset = _chunk7ITWLMO7cjs.A; exports.isBasketModeEnabled = _chunk7ITWLMO7cjs.K; exports.isDefaultRewardAllocation = _chunk7ITWLMO7cjs.ua; exports.isImpersonateAccount = _chunk7ITWLMO7cjs.la; exports.isSameRewardAllocation = _chunk7ITWLMO7cjs.sa; exports.parseProposalBody = _chunk7ITWLMO7cjs.t;
2
2
  //# sourceMappingURL=exports.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/actions/exports.cjs","../../src/actions/bend/getMaxDeposit.ts","../../src/actions/dex/getPoolWithState.ts","../../src/actions/dex/getVaultPausedState.ts","../../src/actions/governance/getDecodedFunctionData.ts"],"names":["getMaxDeposit","vaultAddress","publicClient","maxDeposit","metaMorphoAbi","formatEther","getPoolState","apiPool","mapPoolType","pt","getVaultPausedState","args","config","parseBaseArgs","balancerVaultAbi","isProxyABI","abi","item","_getAbi","contractAddress","chainId","url","appConfig"],"mappings":"AAAA,+1BAAwvB,iCAA8B,yDAA2D,iCAA8B,iCAA8B,iCAA8B,yDAAwD,yDAA+D,yDAAiD,iCAA8B,4BCApjC,8EAEX,MAOlD,SAAsBA,EAAAA,CAAc,CAClC,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CAAwC,CACtC,IAAMC,CAAAA,CAAa,MAAMD,CAAAA,CAAa,YAAA,CAAa,CACjD,OAAA,CAASD,CAAAA,CACT,GAAA,CAAKG,+BAAAA,CACL,YAAA,CAAc,YAAA,CACd,IAAA,CAAM,CAACH,CAAY,CACrB,CAAC,CAAA,CACD,OAAOI,+BAAAA,CAAsB,CAC/B,CCpBA,iEAIO,IAKMC,EAAAA,CAAgBC,CAAAA,EAAAA,CACpB,CACL,IAAA,CAAMC,sCAAAA,CAAYD,CAAQ,IAAI,CAAA,CAC9B,eAAA,CAAiBA,CAAAA,CAAQ,eAAA,CACzB,MAAA,CAAQA,CAAAA,CAAQ,MAAA,CAAO,GAAA,CACpBE,CAAAA,EAAAA,CACE,CACC,GAAGA,CAAAA,CACH,OAAA,CAASA,CAAAA,CAAG,OACd,CAAA,CACJ,CAAA,CACA,EAAA,CAAIF,CAAAA,CAAQ,EAAA,CACZ,OAAA,CAASA,CAAAA,CAAQ,OACnB,CAAA,CAAA,CCpBF,kDAA6C,MAI7C,SAAsBG,EAAAA,CAAoB,CACxC,YAAA,CAAAR,CAAAA,CACA,GAAGS,CACL,CAAA,CAEG,CACD,GAAM,CAAE,MAAA,CAAAC,CAAO,CAAA,CAAIC,iCAAAA,CAAkB,CAAA,CAQrC,MAAA,CANyB,MAAMX,CAAAA,CAAa,YAAA,CAAa,CACvD,OAAA,CAASU,CAAAA,CAAO,GAAA,CAAI,KAAA,CACpB,GAAA,CAAKE,eAAAA,CACL,YAAA,CAAc,gBAChB,CAAC,CAAA,CAAA,CAEuB,CAAC,CAC3B,CCrBA,sDAa0C,gEAEd,sEACG,SAGtBC,CAAAA,CAAWC,CAAAA,CAAqB,CACvC,OAAOA,CAAAA,CAAI,IAAA,CACRC,CAAAA,EACCA,CAAAA,CAAK,IAAA,GAAS,gBAAA,EACdA,CAAAA,CAAK,IAAA,GAAS,WAAA,EACbA,CAAAA,CAAK,IAAA,GAAS,aAAA,kBACbA,CAAAA,qBAAK,MAAA,4BAAA,CAAS,CAAC,CAAA,6BAAG,MAAA,GAAS,gBACjC,CACF,CAKA,MAAA,SAAeC,CAAAA,CAAQ,CACrB,eAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAlB,CACF,CAAA,CAIG,CACD,IAAMmB,CAAAA,CAAM,CAAA,sEAAA,EAAyEF,CAAe,CAAA,QAAA,EAAWG,mBAAAA,CAAU,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,SAAA,EAAYF,CAAO,CAAA,CAAA","file":"/Users/pong/coding/monobera/packages/berajs/dist/actions/exports.cjs","sourcesContent":[null,"import { type Address, formatEther, type PublicClient } from \"viem\";\n\nimport { metaMorphoV11Abi as metaMorphoAbi } from \"@berachain/abis/bend-metamorpho/metaMorphoV11\";\n\ninterface GetMaxDepositProps {\n vaultAddress: Address;\n publicClient: PublicClient;\n}\n\nexport async function getMaxDeposit({\n vaultAddress,\n publicClient,\n}: GetMaxDepositProps): Promise<string> {\n const maxDeposit = await publicClient.readContract({\n address: vaultAddress,\n abi: metaMorphoAbi,\n functionName: \"maxDeposit\",\n args: [vaultAddress],\n });\n return formatEther(maxDeposit);\n}\n","import {\n type MinimalToken,\n mapPoolType,\n type PoolState,\n} from \"@berachain-foundation/berancer-sdk\";\nimport type { Address } from \"viem\";\n\nimport type { MinimalPoolFragment } from \"@berachain/graphql/dex/api\";\n\nexport const getPoolState = (apiPool: MinimalPoolFragment): PoolState => {\n return {\n type: mapPoolType(apiPool.type),\n protocolVersion: apiPool.protocolVersion as 1 | 2 | 3,\n tokens: apiPool.tokens.map<MinimalToken>(\n (pt) =>\n ({\n ...pt,\n address: pt.address as Address,\n }) satisfies MinimalToken,\n ),\n id: apiPool.id as Address,\n address: apiPool.address as Address,\n } satisfies PoolState;\n};\n","import type { PublicClient } from \"viem\";\n\nimport { vaultAbi as balancerVaultAbi } from \"@berachain/abis/bex/vault\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\n\nexport async function getVaultPausedState({\n publicClient,\n ...args\n}: BeraJS.BaseFunctionArgs & {\n publicClient: PublicClient;\n}) {\n const { config } = parseBaseArgs(args);\n\n const vaultPausedState = await publicClient.readContract({\n address: config.bex.vault,\n abi: balancerVaultAbi,\n functionName: \"getPausedState\",\n });\n\n return vaultPausedState[0];\n}\n","import {\n type Abi,\n type AbiFunction,\n type AbiItem,\n type Address,\n decodeFunctionData,\n erc20Abi,\n type PublicClient,\n pad,\n toFunctionSignature,\n trim,\n} from \"viem\";\n\nimport { appConfig, defaultChainId } from \"@berachain/config/internal\";\n\nimport { beraChefAbi } from \"@berachain/abis/pol/rewards/beraChef\";\nimport { rewardVaultAbi } from \"@berachain/abis/pol/rewards/rewardVault\";\n\n// Function to check if ABI contains proxy-related functions\nfunction isProxyABI(abi: Abi[]): boolean {\n return abi.some(\n (item: any) =>\n item.name === \"implementation\" ||\n item.name === \"proxyType\" ||\n (item.type === \"constructor\" &&\n item.inputs?.[0]?.name === \"implementation\"),\n );\n}\n\n/**\n * {@link https://docs.berascan.com/api-endpoints/contracts}\n */\nasync function _getAbi({\n contractAddress,\n chainId,\n publicClient,\n}: {\n contractAddress: Address;\n chainId: number;\n publicClient: PublicClient;\n}) {\n const url = `https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${contractAddress}&apikey=${appConfig.apiKeys.private.etherscan}&chainId=${chainId}`;\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch ABI: ${response.statusText}`);\n }\n\n const data = await response.json();\n if (data.status === \"0\") throw new Error(data.result);\n\n const abi = JSON.parse(data.result);\n if (!isProxyABI(abi)) return abi;\n\n const implementationResult = await publicClient.getStorageAt({\n address: contractAddress,\n // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)).\n slot: \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n });\n\n // if implementation is not set, it might be a beacon proxy\n if (!implementationResult || trim(implementationResult) === \"0x00\")\n return abi;\n // storage slot has 32 byes (64 characters) but an address only has 20 bytes (40 characters)\n const implementationAddress = pad(trim(implementationResult), { size: 20 });\n return _getAbi({\n contractAddress: implementationAddress as `0x${string}`,\n chainId,\n publicClient,\n });\n}\n\nasync function _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n}: {\n address: Address;\n callData: `0x${string}`;\n knownAbi: AbiItem[];\n chainId: number;\n publicClient: PublicClient;\n}) {\n try {\n if (decodeFunctionData({ data: callData, abi: knownAbi })) {\n return knownAbi;\n }\n } catch {}\n try {\n return await _getAbi({ contractAddress: address, chainId, publicClient });\n } catch {}\n}\n\nfunction _decodeCallData(callData: `0x${string}`, abi: AbiItem[]) {\n try {\n return decodeFunctionData({ data: callData, abi });\n } catch {\n return undefined;\n }\n}\n\nfunction _findAbiItem(abi: AbiItem[], functionName: string) {\n return abi.find(\n (a: AbiItem) => a.type === \"function\" && a.name === functionName,\n ) as AbiFunction | undefined;\n}\n\nfunction _getFunctionSignature(abiItem: AbiFunction | undefined) {\n if (!abiItem) return;\n try {\n return toFunctionSignature(abiItem);\n } catch (error) {\n console.error(error);\n }\n}\n\n/**\n * Decodes the function data from a given contract address and calldata.\n *\n * This function attempts to decode the provided calldata using a known set of ABIs.\n * If the call data cannot be decoded with the known ABIs, it fetches the ABI from the blockexplorer API.\n *\n * @param address - The contract address.\n * @param callData - The calldata to decode, in hexadecimal format.\n * @returns An object containing the decoded ABI item, function signature, function name, and arguments.\n */\nexport async function getDecodedFunctionData({\n address,\n callData,\n chainId = defaultChainId,\n publicClient,\n}: {\n address: Address;\n callData: `0x${string}`;\n chainId?: number;\n publicClient: PublicClient;\n}) {\n const knownAbi = [...beraChefAbi, ...rewardVaultAbi, ...erc20Abi];\n\n const abi = await _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n });\n\n const decodedData = _decodeCallData(callData, abi);\n\n if (!abi || !decodedData) {\n return { args: [] };\n }\n\n const abiItem = _findAbiItem(abi, decodedData.functionName);\n\n const functionSignature = _getFunctionSignature(abiItem);\n\n return {\n abiItem,\n functionSignature,\n functionName: decodedData.functionName,\n args: decodedData.args as unknown[],\n };\n}\n"]}
1
+ {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/actions/exports.cjs","../../src/actions/bend/getMaxDeposit.ts","../../src/actions/dex/getPoolWithState.ts","../../src/actions/dex/getVaultPausedState.ts","../../src/actions/governance/getDecodedFunctionData.ts"],"names":["getMaxDeposit","vaultAddress","publicClient","maxDeposit","metaMorphoAbi","formatEther","getPoolState","apiPool","mapPoolType","pt","getVaultPausedState","args","config","parseBaseArgs","balancerVaultAbi","isProxyABI","abi","item","_getAbi","contractAddress","chainId","url","appConfig"],"mappings":"AAAA,+1BAAwvB,yDAA2D,iCAA8B,iCAA8B,iCAA8B,yDAA+D,yDAAiD,iCAA8B,yDAAwD,iCAA8B,4BCApjC,8EAEX,MAOlD,SAAsBA,EAAAA,CAAc,CAClC,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CAAwC,CACtC,IAAMC,CAAAA,CAAa,MAAMD,CAAAA,CAAa,YAAA,CAAa,CACjD,OAAA,CAASD,CAAAA,CACT,GAAA,CAAKG,+BAAAA,CACL,YAAA,CAAc,YAAA,CACd,IAAA,CAAM,CAACH,CAAY,CACrB,CAAC,CAAA,CACD,OAAOI,+BAAAA,CAAsB,CAC/B,CCpBA,iEAIO,IAKMC,EAAAA,CAAgBC,CAAAA,EAAAA,CACpB,CACL,IAAA,CAAMC,sCAAAA,CAAYD,CAAQ,IAAI,CAAA,CAC9B,eAAA,CAAiBA,CAAAA,CAAQ,eAAA,CACzB,MAAA,CAAQA,CAAAA,CAAQ,MAAA,CAAO,GAAA,CACpBE,CAAAA,EAAAA,CACE,CACC,GAAGA,CAAAA,CACH,OAAA,CAASA,CAAAA,CAAG,OACd,CAAA,CACJ,CAAA,CACA,EAAA,CAAIF,CAAAA,CAAQ,EAAA,CACZ,OAAA,CAASA,CAAAA,CAAQ,OACnB,CAAA,CAAA,CCpBF,kDAA6C,MAI7C,SAAsBG,EAAAA,CAAoB,CACxC,YAAA,CAAAR,CAAAA,CACA,GAAGS,CACL,CAAA,CAEG,CACD,GAAM,CAAE,MAAA,CAAAC,CAAO,CAAA,CAAIC,iCAAAA,CAAkB,CAAA,CAQrC,MAAA,CANyB,MAAMX,CAAAA,CAAa,YAAA,CAAa,CACvD,OAAA,CAASU,CAAAA,CAAO,GAAA,CAAI,KAAA,CACpB,GAAA,CAAKE,eAAAA,CACL,YAAA,CAAc,gBAChB,CAAC,CAAA,CAAA,CAEuB,CAAC,CAC3B,CCrBA,sDAa0C,gEAEd,sEACG,SAGtBC,CAAAA,CAAWC,CAAAA,CAAqB,CACvC,OAAOA,CAAAA,CAAI,IAAA,CACRC,CAAAA,EACCA,CAAAA,CAAK,IAAA,GAAS,gBAAA,EACdA,CAAAA,CAAK,IAAA,GAAS,WAAA,EACbA,CAAAA,CAAK,IAAA,GAAS,aAAA,kBACbA,CAAAA,qBAAK,MAAA,4BAAA,CAAS,CAAC,CAAA,6BAAG,MAAA,GAAS,gBACjC,CACF,CAKA,MAAA,SAAeC,CAAAA,CAAQ,CACrB,eAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,YAAA,CAAAlB,CACF,CAAA,CAIG,CACD,IAAMmB,CAAAA,CAAM,CAAA,sEAAA,EAAyEF,CAAe,CAAA,QAAA,EAAWG,mBAAAA,CAAU,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAA,SAAA,EAAYF,CAAO,CAAA,CAAA","file":"/Users/pong/coding/monobera/packages/berajs/dist/actions/exports.cjs","sourcesContent":[null,"import { type Address, formatEther, type PublicClient } from \"viem\";\n\nimport { metaMorphoV11Abi as metaMorphoAbi } from \"@berachain/abis/bend-metamorpho/metaMorphoV11\";\n\ninterface GetMaxDepositProps {\n vaultAddress: Address;\n publicClient: PublicClient;\n}\n\nexport async function getMaxDeposit({\n vaultAddress,\n publicClient,\n}: GetMaxDepositProps): Promise<string> {\n const maxDeposit = await publicClient.readContract({\n address: vaultAddress,\n abi: metaMorphoAbi,\n functionName: \"maxDeposit\",\n args: [vaultAddress],\n });\n return formatEther(maxDeposit);\n}\n","import {\n type MinimalToken,\n mapPoolType,\n type PoolState,\n} from \"@berachain-foundation/berancer-sdk\";\nimport type { Address } from \"viem\";\n\nimport type { MinimalPoolFragment } from \"@berachain/graphql/dex/api\";\n\nexport const getPoolState = (apiPool: MinimalPoolFragment): PoolState => {\n return {\n type: mapPoolType(apiPool.type),\n protocolVersion: apiPool.protocolVersion as 1 | 2 | 3,\n tokens: apiPool.tokens.map<MinimalToken>(\n (pt) =>\n ({\n ...pt,\n address: pt.address as Address,\n }) satisfies MinimalToken,\n ),\n id: apiPool.id as Address,\n address: apiPool.address as Address,\n } satisfies PoolState;\n};\n","import type { PublicClient } from \"viem\";\n\nimport { vaultAbi as balancerVaultAbi } from \"@berachain/abis/bex/vault\";\n\nimport { parseBaseArgs } from \"../../utils/parseBaseArgs\";\n\nexport async function getVaultPausedState({\n publicClient,\n ...args\n}: BeraJS.BaseFunctionArgs & {\n publicClient: PublicClient;\n}) {\n const { config } = parseBaseArgs(args);\n\n const vaultPausedState = await publicClient.readContract({\n address: config.bex.vault,\n abi: balancerVaultAbi,\n functionName: \"getPausedState\",\n });\n\n return vaultPausedState[0];\n}\n","import {\n type Abi,\n type AbiFunction,\n type AbiItem,\n type Address,\n decodeFunctionData,\n erc20Abi,\n type PublicClient,\n pad,\n toFunctionSignature,\n trim,\n} from \"viem\";\n\nimport { appConfig, defaultChainId } from \"@berachain/config/internal\";\n\nimport { beraChefAbi } from \"@berachain/abis/pol/rewards/beraChef\";\nimport { rewardVaultAbi } from \"@berachain/abis/pol/rewards/rewardVault\";\n\n// Function to check if ABI contains proxy-related functions\nfunction isProxyABI(abi: Abi[]): boolean {\n return abi.some(\n (item: any) =>\n item.name === \"implementation\" ||\n item.name === \"proxyType\" ||\n (item.type === \"constructor\" &&\n item.inputs?.[0]?.name === \"implementation\"),\n );\n}\n\n/**\n * {@link https://docs.berascan.com/api-endpoints/contracts}\n */\nasync function _getAbi({\n contractAddress,\n chainId,\n publicClient,\n}: {\n contractAddress: Address;\n chainId: number;\n publicClient: PublicClient;\n}) {\n const url = `https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${contractAddress}&apikey=${appConfig.apiKeys.private.etherscan}&chainId=${chainId}`;\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch ABI: ${response.statusText}`);\n }\n\n const data = await response.json();\n if (data.status === \"0\") throw new Error(data.result);\n\n const abi = JSON.parse(data.result);\n if (!isProxyABI(abi)) return abi;\n\n const implementationResult = await publicClient.getStorageAt({\n address: contractAddress,\n // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)).\n slot: \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n });\n\n // if implementation is not set, it might be a beacon proxy\n if (!implementationResult || trim(implementationResult) === \"0x00\")\n return abi;\n // storage slot has 32 byes (64 characters) but an address only has 20 bytes (40 characters)\n const implementationAddress = pad(trim(implementationResult), { size: 20 });\n return _getAbi({\n contractAddress: implementationAddress as `0x${string}`,\n chainId,\n publicClient,\n });\n}\n\nasync function _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n}: {\n address: Address;\n callData: `0x${string}`;\n knownAbi: AbiItem[];\n chainId: number;\n publicClient: PublicClient;\n}) {\n try {\n if (decodeFunctionData({ data: callData, abi: knownAbi })) {\n return knownAbi;\n }\n } catch {}\n try {\n return await _getAbi({ contractAddress: address, chainId, publicClient });\n } catch {}\n}\n\nfunction _decodeCallData(callData: `0x${string}`, abi: AbiItem[]) {\n try {\n return decodeFunctionData({ data: callData, abi });\n } catch {\n return undefined;\n }\n}\n\nfunction _findAbiItem(abi: AbiItem[], functionName: string) {\n return abi.find(\n (a: AbiItem) => a.type === \"function\" && a.name === functionName,\n ) as AbiFunction | undefined;\n}\n\nfunction _getFunctionSignature(abiItem: AbiFunction | undefined) {\n if (!abiItem) return;\n try {\n return toFunctionSignature(abiItem);\n } catch (error) {\n console.error(error);\n }\n}\n\n/**\n * Decodes the function data from a given contract address and calldata.\n *\n * This function attempts to decode the provided calldata using a known set of ABIs.\n * If the call data cannot be decoded with the known ABIs, it fetches the ABI from the blockexplorer API.\n *\n * @param address - The contract address.\n * @param callData - The calldata to decode, in hexadecimal format.\n * @returns An object containing the decoded ABI item, function signature, function name, and arguments.\n */\nexport async function getDecodedFunctionData({\n address,\n callData,\n chainId = defaultChainId,\n publicClient,\n}: {\n address: Address;\n callData: `0x${string}`;\n chainId?: number;\n publicClient: PublicClient;\n}) {\n const knownAbi = [...beraChefAbi, ...rewardVaultAbi, ...erc20Abi];\n\n const abi = await _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n });\n\n const decodedData = _decodeCallData(callData, abi);\n\n if (!abi || !decodedData) {\n return { args: [] };\n }\n\n const abiItem = _findAbiItem(abi, decodedData.functionName);\n\n const functionSignature = _getFunctionSignature(abiItem);\n\n return {\n abiItem,\n functionSignature,\n functionName: decodedData.functionName,\n args: decodedData.args as unknown[],\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { V as ValidatorRewardAllocation } from '../getValidatorQueuedOperatorAddress-BtCefJyH.cjs';
2
- export { B as BaseAggregator, G as GetBgtAprSimulationArgs, a as GetBgtAprSimulationResult, b as GetConvertToAssetsProps, c as GetGaugeData, d as GetHoneyVaultsBalanceResponse, e as GetMarkets, f as GetRewardVaultRewardsReturn, g as GetUserVaultsResponse, h as GetVaultHistoryArgs, i as GlobalData, I as IsBadCollateralArgs, j as IsBadCollateralResponse, O as OnChainPool, P as PoolStatus, R as RewardVaultDistributionMode, k as RewardVaultIncentive, S as StakedBeraWithdrawal, U as UserBoostsOnValidator, l as UserStakingPoolPosition, m as UserVault, n as ValidatorQueuedCommission, o as ValidatorQueuedOperatorAddress, p as ValidatorRewardAllocationRaw, q as ValidatorRewardAllocationUpdate, r as ValidatorRewardAllocationUpdateWithExpiration, s as ValidatorWithUserBoost, t as VaultMetadata, u as formatValidatorRewardAllocation, v as getBgtAprSimulation, w as getConvertToAssets, x as getGlobalData, y as getHoneyVaultsBalance, z as getMarkets, A as getOnChainPool, C as getPoolPausedState, D as getRewardVaultIncentives, E as getRewardVaultRewards, F as getRewardVaults, H as getSWBeraVaultMetadata, J as getSWBeraWithdrawal, K as getUserActiveValidators, L as getUserBoostsOnValidator, M as getUserStakingPositions, N as getUserVaults, Q as getValidatorQueuedCommission, T as getValidatorQueuedOperatorAddress, W as getValidatorRewardAllocation, X as getVaultHistory, Y as isBadCollateralAsset, Z as isSameRewardAllocation } from '../getValidatorQueuedOperatorAddress-BtCefJyH.cjs';
1
+ import { V as ValidatorRewardAllocation } from '../getValidatorQueuedOperatorAddress-BQXkSFd9.cjs';
2
+ export { B as BaseAggregator, G as GetBgtAprSimulationArgs, a as GetBgtAprSimulationResult, b as GetConvertToAssetsProps, c as GetGaugeData, d as GetHoneyVaultsBalanceResponse, e as GetMarkets, f as GetRewardVaultRewardsReturn, g as GetUserVaultsResponse, h as GetVaultHistoryArgs, i as GlobalData, I as IsBadCollateralArgs, j as IsBadCollateralResponse, O as OnChainPool, P as PoolStatus, R as RewardVaultDistributionMode, k as RewardVaultIncentive, S as StakedBeraWithdrawal, U as UserBoostsOnValidator, l as UserStakingPoolPosition, m as UserVault, n as ValidatorQueuedCommission, o as ValidatorQueuedOperatorAddress, p as ValidatorRewardAllocationRaw, q as ValidatorRewardAllocationUpdate, r as ValidatorRewardAllocationUpdateWithExpiration, s as ValidatorWithUserBoost, t as VaultMetadata, u as formatValidatorRewardAllocation, v as getBgtAprSimulation, w as getConvertToAssets, x as getGlobalData, y as getHoneyVaultsBalance, z as getMarkets, A as getOnChainPool, C as getPoolPausedState, D as getRewardVaultIncentives, E as getRewardVaultRewards, F as getRewardVaults, H as getSWBeraVaultMetadata, J as getSWBeraWithdrawal, K as getUserActiveValidators, L as getUserBoostsOnValidator, M as getUserStakingPositions, N as getUserVaults, Q as getValidatorQueuedCommission, T as getValidatorQueuedOperatorAddress, W as getValidatorRewardAllocation, X as getVaultHistory, Y as isBadCollateralAsset, Z as isSameRewardAllocation } from '../getValidatorQueuedOperatorAddress-BQXkSFd9.cjs';
3
3
  import { Address, PublicClient, AbiParameter, AbiFunction, TransactionReceipt, Abi, ContractFunctionArgs, ContractFunctionName, WalletCallReceipt } from 'viem';
4
4
  import { ApolloClient, OperationVariables, FetchPolicy } from '@apollo/client';
5
5
  export { gql } from '@apollo/client';
@@ -1,5 +1,5 @@
1
- import { V as ValidatorRewardAllocation } from '../getValidatorQueuedOperatorAddress-B5T8_BMr.js';
2
- export { B as BaseAggregator, G as GetBgtAprSimulationArgs, a as GetBgtAprSimulationResult, b as GetConvertToAssetsProps, c as GetGaugeData, d as GetHoneyVaultsBalanceResponse, e as GetMarkets, f as GetRewardVaultRewardsReturn, g as GetUserVaultsResponse, h as GetVaultHistoryArgs, i as GlobalData, I as IsBadCollateralArgs, j as IsBadCollateralResponse, O as OnChainPool, P as PoolStatus, R as RewardVaultDistributionMode, k as RewardVaultIncentive, S as StakedBeraWithdrawal, U as UserBoostsOnValidator, l as UserStakingPoolPosition, m as UserVault, n as ValidatorQueuedCommission, o as ValidatorQueuedOperatorAddress, p as ValidatorRewardAllocationRaw, q as ValidatorRewardAllocationUpdate, r as ValidatorRewardAllocationUpdateWithExpiration, s as ValidatorWithUserBoost, t as VaultMetadata, u as formatValidatorRewardAllocation, v as getBgtAprSimulation, w as getConvertToAssets, x as getGlobalData, y as getHoneyVaultsBalance, z as getMarkets, A as getOnChainPool, C as getPoolPausedState, D as getRewardVaultIncentives, E as getRewardVaultRewards, F as getRewardVaults, H as getSWBeraVaultMetadata, J as getSWBeraWithdrawal, K as getUserActiveValidators, L as getUserBoostsOnValidator, M as getUserStakingPositions, N as getUserVaults, Q as getValidatorQueuedCommission, T as getValidatorQueuedOperatorAddress, W as getValidatorRewardAllocation, X as getVaultHistory, Y as isBadCollateralAsset, Z as isSameRewardAllocation } from '../getValidatorQueuedOperatorAddress-B5T8_BMr.js';
1
+ import { V as ValidatorRewardAllocation } from '../getValidatorQueuedOperatorAddress-DUZOmxLV.js';
2
+ export { B as BaseAggregator, G as GetBgtAprSimulationArgs, a as GetBgtAprSimulationResult, b as GetConvertToAssetsProps, c as GetGaugeData, d as GetHoneyVaultsBalanceResponse, e as GetMarkets, f as GetRewardVaultRewardsReturn, g as GetUserVaultsResponse, h as GetVaultHistoryArgs, i as GlobalData, I as IsBadCollateralArgs, j as IsBadCollateralResponse, O as OnChainPool, P as PoolStatus, R as RewardVaultDistributionMode, k as RewardVaultIncentive, S as StakedBeraWithdrawal, U as UserBoostsOnValidator, l as UserStakingPoolPosition, m as UserVault, n as ValidatorQueuedCommission, o as ValidatorQueuedOperatorAddress, p as ValidatorRewardAllocationRaw, q as ValidatorRewardAllocationUpdate, r as ValidatorRewardAllocationUpdateWithExpiration, s as ValidatorWithUserBoost, t as VaultMetadata, u as formatValidatorRewardAllocation, v as getBgtAprSimulation, w as getConvertToAssets, x as getGlobalData, y as getHoneyVaultsBalance, z as getMarkets, A as getOnChainPool, C as getPoolPausedState, D as getRewardVaultIncentives, E as getRewardVaultRewards, F as getRewardVaults, H as getSWBeraVaultMetadata, J as getSWBeraWithdrawal, K as getUserActiveValidators, L as getUserBoostsOnValidator, M as getUserStakingPositions, N as getUserVaults, Q as getValidatorQueuedCommission, T as getValidatorQueuedOperatorAddress, W as getValidatorRewardAllocation, X as getVaultHistory, Y as isBadCollateralAsset, Z as isSameRewardAllocation } from '../getValidatorQueuedOperatorAddress-DUZOmxLV.js';
3
3
  import { Address, PublicClient, AbiParameter, AbiFunction, TransactionReceipt, Abi, ContractFunctionArgs, ContractFunctionName, WalletCallReceipt } from 'viem';
4
4
  import { ApolloClient, OperationVariables, FetchPolicy } from '@apollo/client';
5
5
  export { gql } from '@apollo/client';
@@ -1,2 +1,2 @@
1
- import{$ as rt,A as Fe,Aa as Dt,B as Re,Ba as Tt,C as De,Ca as It,D as Te,Da as Mt,E as Ie,Ea as Vt,F as Me,Fa as Ot,G as Ve,Ga as Wt,H as Oe,I as We,J as Je,K as Ue,L as _e,M as He,N as Ee,O as $e,P as Le,Q as Ge,R as qe,S as ze,T as Xe,U as je,V as Ke,W as Ze,X as Qe,Y as Ye,Z as et,_ as tt,a as ne,aa as ot,b as D,ba as at,c as T,ca as nt,d as I,da as it,e as se,ea as st,f as me,fa as mt,g as de,ga as dt,h as ce,ha as ct,i as pe,ia as pt,j as ue,ja as ut,k as le,ka as lt,l as fe,la as gt,m as ye,ma as bt,n as ge,na as At,o as be,oa as xt,p as Ae,pa as ht,q as xe,qa as Ct,r as he,ra as wt,s as Ce,sa as Pt,t as we,ta as kt,u as Pe,ua as Bt,v as ke,va as Nt,w as Be,wa as St,x as Ne,xa as vt,y as Se,ya as Ft,z as ve,za as Rt}from"../chunk-7VQA45R5.mjs";import"../chunk-NLVWRMGD.mjs";import{a as ie,b as ft,c as yt}from"../chunk-FM3WDBFH.mjs";import"../chunk-NAXAZJJY.mjs";import"../chunk-OGJMSGB2.mjs";import"../chunk-BEKH5EYT.mjs";import{b as h,c as l,d as C}from"../chunk-QRAIGQF2.mjs";import{a as u,d as A,l as w,q as P}from"../chunk-PLIH6KQM.mjs";import{a as d,e as x}from"../chunk-IDFMLLDY.mjs";import"../chunk-74QD4JAH.mjs";import{formatEther as M}from"viem";import{metaMorphoV11Abi as V}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function _t({vaultAddress:e,publicClient:t}){let o=await t.readContract({address:e,abi:V,functionName:"maxDeposit",args:[e]});return M(o)}import{mapPoolType as O}from"@berachain-foundation/berancer-sdk";var $t=e=>({type:O(e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});import{vaultAbi as W}from"@berachain/abis/bex/vault";async function zt({publicClient:e,...t}){let{config:o}=d(t);return(await e.readContract({address:o.bex.vault,abi:W,functionName:"getPausedState"}))[0]}import{decodeFunctionData as B,erc20Abi as J,pad as U,toFunctionSignature as _,trim as k}from"viem";import{appConfig as H,defaultChainId as E}from"@berachain/config/internal";import{beraChefAbi as $}from"@berachain/abis/pol/rewards/beraChef";import{rewardVaultAbi as L}from"@berachain/abis/pol/rewards/rewardVault";function G(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&t.inputs?.[0]?.name==="implementation")}async function N({contractAddress:e,chainId:t,publicClient:o}){let r=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${H.apiKeys.private.etherscan}&chainId=${t}`,a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ABI: ${a.statusText}`);let n=await a.json();if(n.status==="0")throw new Error(n.result);let m=JSON.parse(n.result);if(!G(m))return m;let i=await o.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||k(i)==="0x00")return m;let s=U(k(i),{size:20});return N({contractAddress:s,chainId:t,publicClient:o})}async function q({address:e,callData:t,knownAbi:o,chainId:r,publicClient:a}){try{if(B({data:t,abi:o}))return o}catch{}try{return await N({contractAddress:e,chainId:r,publicClient:a})}catch{}}function z(e,t){try{return B({data:e,abi:t})}catch{return}}function X(e,t){return e.find(o=>o.type==="function"&&o.name===t)}function j(e){if(e)try{return _(e)}catch(t){console.error(t)}}async function Yt({address:e,callData:t,chainId:o=E,publicClient:r}){let a=[...$,...L,...J],n=await q({address:e,callData:t,knownAbi:a,chainId:o,publicClient:r}),m=z(t,n);if(!n||!m)return{args:[]};let i=X(n,m.functionName),s=j(i);return{abiItem:i,functionSignature:s,functionName:m.functionName,args:m.args}}import{formatUnits as y}from"viem";import{honeyFactoryAbi as b}from"@berachain/abis/honey/honeyFactory";async function ar({client:e,collateralList:t,...o}){let{config:r}=d(o);try{let a={mint:[],redeem:[]};for(let s of t)a.mint.push(e.readContract({address:r.honey.factory,abi:b,functionName:"mintRates",args:[s.address]})),a.redeem.push(e.readContract({address:r.honey.factory,abi:b,functionName:"redeemRates",args:[s.address]}));let[n,m,i]=await Promise.all([Promise.all(a.mint),Promise.all(a.redeem),e.readContract({address:r.honey.factory,abi:b,functionName:"getWeights"})]);return t.reduce((s,c)=>{let p=t.indexOf(c);return s.single[c.address]={mintFee:1-+y(n[p],18),redeemFee:1-+y(m[p],18)},s.basket.mintFee+=s.single[c.address].mintFee*+y(i[p],18),s.basket.redeemFee+=s.single[c.address].redeemFee*+y(i[p],18),s},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(a){throw console.log(a),a}}import{honeyAbi as K}from"@berachain/abis/honey/honey";async function mr({client:e,...t}){let{config:o}=d(t),r=o.honey.token;return await e.readContract({address:r,abi:K,functionName:"paused"})}import{rootPriceOracleAbi as Z}from"@berachain/abis/extras/rootPriceOracle";async function pr({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:Z,functionName:"pythOracle"})}import{honeyFactoryAbi as Q}from"@berachain/abis/honey/honeyFactory";async function yr({publicClient:e,factory:t,...o}){let{config:r}=d(o);return await e.readContract({address:t??r.honey.factory,abi:Q,functionName:"priceOracle"})}async function hr({defaultBlockTime:e,publicClient:t,blocksSpan:o,...r}){l(t);let{config:a}=d(r),n=e??a.averageBlockTime,m=o??Math.floor(P(1)/n),i=await t?.getBlock({blockTag:"latest"}),s=await t?.getBlock({blockNumber:i.number-BigInt(m)});return(w(Date.now())-Number(s?.timestamp))/(Number(i?.number)-Number(s?.number))}import{lstStakerVaultAbi as Y}from"@berachain/abis/pol/lst/lstStakerVault";async function Nr({tokenList:e,publicClient:t,lstStakingVaults:o,...r}){l(t);let{config:a}=d({...r,chainId:t.chain?.id??r.chainId}),n=e.filter(i=>o.includes(i.address));return n.length===0?[]:(await Promise.all(n.map(async i=>({assetTokenAddress:await t.readContract({address:i.address,abi:Y,functionName:"asset"}),stakingToken:i})))).reduce((i,{assetTokenAddress:s,stakingToken:c})=>{let p=e.find(g=>x(g,s));return p&&i.push({id:c.address,receiptToken:c,inputTokens:[p]}),i},[])}import{rewardVaultAbi as F}from"@berachain/abis/pol/rewards/rewardVault";import{rewardVaultFactoryAbi as ee}from"@berachain/abis/pol/rewards/rewardVaultFactory";var S=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function v({publicClient:e,...t}){let{config:o}=d(t),r=o.pol.factory;h(e,"publicClient"),C(o.pol.factory,"factoryAddress");let a=await e.readContract({address:r,abi:ee,functionName:"beacon"});return await e.readContract({address:a,abi:S,functionName:"implementation"})}async function Wr({publicClient:e,...t}){l(e);let o=await v({publicClient:e,...t}),[r,a]=await Promise.all([e.readContract({address:o,abi:F,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:o,abi:F,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(r),maxRewardDuration:Number(a)}}import{zeroAddress as te}from"viem";import{rewardVaultFactoryAbi as re}from"@berachain/abis/pol/rewards/rewardVaultFactory";async function Er({tokenAddress:e,publicClient:t,factoryAddress:o,...r}){let{config:a}=d(r),n=await t.readContract({address:o??a.pol.factory,abi:re,functionName:"getVault",args:[e]});return n===te?null:n}import{pythPriceOracleAbi as oe}from"@berachain/abis/extras/pythPriceOracle";async function qr({tokenList:e,publicClient:t,...o}){let{config:r}=d(o);try{let a=await Promise.all(e.map(n=>t.readContract({address:r.honey.pythOracle,abi:oe,functionName:"feeds",args:[n]})));return e.reduce((n,m,i)=>({...n,[m]:a[i]}),{})}catch(a){throw console.error("getPythPriceFeedId",a),a}}async function Kr({url:e,...t}={}){let{config:o}=d(t);return(await A({url:e??o.lists.tokenList,type:"rest",name:"GitHub"})).tokens??[]}import{bgtAbi as R}from"@berachain/abis/pol/bgt";import{beraChefAbi as f}from"@berachain/abis/pol/rewards/beraChef";async function to({publicClient:e,ui:t,...o}){let{config:r}=d(o),[a,n,m,i,s,c,p,g]=await Promise.all([e.readContract({address:r.pol.beraChef,abi:f,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"commissionChangeDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"maxWeightPerVault"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:r.tokens.bgt,abi:R,functionName:"dropBoostDelay"}),e.readContract({address:r.tokens.bgt,abi:R,functionName:"activateBoostDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(a)/1e4,boostDelay:Number(p),unboostDelay:Number(c),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(m),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(s),rewardAllocationInactivityBlockSpan:Number(g),ui:t}}function ao({rewardAllocationWeights:e,activeOnly:t=!0}){let o=e.filter(r=>r?.receivingVault).reduce((r,a)=>{for(let n of a.receivingVault?.activeIncentives??[]){if(t&&n.remainingAmount==="0")continue;let m=new u(n.incentiveRate).times(a.percentage),i=new u(n.incentiveRateUsd).times(a.percentage),s=n.token.address.toLowerCase(),c=r.get(s);c?r.set(s,{...c,incentiveRate:new u(c.incentiveRate).plus(m).toString(),incentiveRateUsd:new u(c.incentiveRateUsd).plus(i).toString(),remainingAmount:new u(c.remainingAmount).plus(n.remainingAmount).toString(),remainingAmountUsd:new u(c.remainingAmountUsd).plus(n.remainingAmountUsd).toString()}):r.set(s,{...n,tokenAddress:n.token.address,token:n.token,incentiveRate:m.toString(),incentiveRateUsd:i.toString(),remainingAmount:n.remainingAmount})}return r},new Map);return Array.from(o.values())}function ae(e){return e?.rewardAllocationWeights?.reduce((t,o)=>{if(!o)return t;let r=o.receivingVault?.activeIncentives.filter(a=>Number(a.remainingAmount)>0).reduce((a,n)=>{let m=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return a+Number(n.incentiveRate)*m},0)??0;return t+r*o.percentage},0)}function io({validator:e,bgtPrice:t}){let o=Number(e.dynamicData?.activeBoostAmount??0),r=ae(e);return!r||!o?0:r*Number(e.dynamicData?.lastDayDistributedBGTAmount??0)*365/(o*t)}export{me as BalancerApi,se as BaseAggregator,D as BeraApolloClient,Te as HoneyPreviewMethod,be as MOCKED_PROPOSAL_STATUSES,He as RewardVaultDistributionMode,ao as aggregateValidatorIncentives,bt as beraWriteContract,ge as checkProposalField,Ae as computeActualStatus,wt as formatValidatorRewardAllocation,to as getActiveBoostAndCommissionChangeDelay,de as getAllPools,xe as getAllProposals,At as getAllValidators,lt as getAllowances,xt as getApiEnrichedAllocation,ce as getApiPool,ht as getApiValidator,T as getApolloClient,ft as getBalanceCall,$e as getBgtAprSimulation,hr as getBlockTime,_e as getBlockTimestamp,he as getBodyErrors,Be as getChartData,Ne as getCollateralWeights,ne as getConvertToAssets,Ct as getDailyValidatorBlockStats,Yt as getDecodedFunctionData,Nt as getDefaultRewardAllocation,Le as getEarnedStakedBeraVault,ie as getEnsoClient,Re as getGlobalCapLimit,qe as getGlobalData,pe as getGlobalLiquidityAndSwapVolume,ve as getHoneyCollaterals,ar as getHoneyFees,De as getHoneyGlobalData,mr as getHoneyPausedState,Ie as getHoneyPreview,qr as getHoneyPythFeeds,pr as getHoneyPythOracle,yr as getHoneyRootPriceOracle,Me as getHoneyVaultsBalance,ze as getIncentiveFeeClaimStats,Nr as getLSTStakeConfig,Xe as getMarkets,_t as getMaxDeposit,le as getOnChainPool,fe as getPoolEvents,ye as getPoolHistoricalData,ue as getPoolPausedState,$t as getPoolState,Ce as getProposalDetails,Pe as getProposalFromTx,ke as getProposalVotes,Ve as getPythLatestPrices,We as getPythUpdateFee,Oe as getRelativeCapLimit,je as getRewardProofsByValidator,Ke as getRewardTokenToBeraRate,Ze as getRewardVault,Wr as getRewardVaultDurationConstants,Er as getRewardVaultFromToken,Qe as getRewardVaultIncentives,Ee as getRewardVaultRewards,Ye as getRewardVaultStakingToken,Ge as getRewardVaults,ot as getSWBeraVaultMetadata,at as getSWBeraWithdrawal,rt as getStakeWithdrawalCooldown,et as getStakedBeraAPR,tt as getStakedBeraSnapshots,St as getStakingPoolBatch,Je as getSwapPayload,ut as getTokenCurrentPrices,Se as getTokenInformation,Kr as getTokens,nt as getTotalStakedAmount,Ft as getUserActiveValidators,vt as getUserBoostsOnValidator,it as getUserClaimableIncentives,Rt as getUserStakingPositions,mt as getUserVaultInfo,dt as getUserVaults,st as getUserVaultsReward,Dt as getValidatorAnalytics,io as getValidatorBoostApy,Tt as getValidatorCommission,It as getValidatorEstimatedBgtPerYear,Mt as getValidatorOperatorAddress,Vt as getValidatorQueuedCommission,Ot as getValidatorQueuedOperatorAddress,Wt as getValidatorQueuedRewardAllocation,ae as getValidatorReturnPerBgt,kt as getValidatorRewardAllocation,ct as getVaultHistory,zt as getVaultPausedState,pt as getVaultValidators,yt as getWalletBalances,I as gql,Fe as isBadCollateralAsset,Ue as isBasketModeEnabled,Bt as isDefaultRewardAllocation,gt as isImpersonateAccount,Pt as isSameRewardAllocation,we as parseProposalBody};
1
+ import{$ as rt,A as Fe,Aa as Dt,B as Re,Ba as Tt,C as De,Ca as It,D as Te,Da as Mt,E as Ie,Ea as Vt,F as Me,Fa as Ot,G as Ve,Ga as Wt,H as Oe,I as We,J as Je,K as Ue,L as _e,M as He,N as Ee,O as $e,P as Le,Q as Ge,R as qe,S as ze,T as Xe,U as je,V as Ke,W as Ze,X as Qe,Y as Ye,Z as et,_ as tt,a as ne,aa as ot,b as D,ba as at,c as T,ca as nt,d as I,da as it,e as se,ea as st,f as me,fa as mt,g as de,ga as dt,h as ce,ha as ct,i as pe,ia as pt,j as ue,ja as ut,k as le,ka as lt,l as fe,la as gt,m as ye,ma as bt,n as ge,na as At,o as be,oa as xt,p as Ae,pa as ht,q as xe,qa as Ct,r as he,ra as wt,s as Ce,sa as Pt,t as we,ta as kt,u as Pe,ua as Bt,v as ke,va as Nt,w as Be,wa as St,x as Ne,xa as vt,y as Se,ya as Ft,z as ve,za as Rt}from"../chunk-JE5GI2OC.mjs";import{a as ie,b as ft,c as yt}from"../chunk-EFG3OYYQ.mjs";import"../chunk-OGJMSGB2.mjs";import"../chunk-NLVWRMGD.mjs";import"../chunk-NAXAZJJY.mjs";import{a as u,d as A,l as w,q as P}from"../chunk-PLIH6KQM.mjs";import{a as d,e as x}from"../chunk-IDFMLLDY.mjs";import"../chunk-BEKH5EYT.mjs";import{b as h,c as l,d as C}from"../chunk-QRAIGQF2.mjs";import"../chunk-74QD4JAH.mjs";import{formatEther as M}from"viem";import{metaMorphoV11Abi as V}from"@berachain/abis/bend-metamorpho/metaMorphoV11";async function _t({vaultAddress:e,publicClient:t}){let o=await t.readContract({address:e,abi:V,functionName:"maxDeposit",args:[e]});return M(o)}import{mapPoolType as O}from"@berachain-foundation/berancer-sdk";var $t=e=>({type:O(e.type),protocolVersion:e.protocolVersion,tokens:e.tokens.map(t=>({...t,address:t.address})),id:e.id,address:e.address});import{vaultAbi as W}from"@berachain/abis/bex/vault";async function zt({publicClient:e,...t}){let{config:o}=d(t);return(await e.readContract({address:o.bex.vault,abi:W,functionName:"getPausedState"}))[0]}import{decodeFunctionData as B,erc20Abi as J,pad as U,toFunctionSignature as _,trim as k}from"viem";import{appConfig as H,defaultChainId as E}from"@berachain/config/internal";import{beraChefAbi as $}from"@berachain/abis/pol/rewards/beraChef";import{rewardVaultAbi as L}from"@berachain/abis/pol/rewards/rewardVault";function G(e){return e.some(t=>t.name==="implementation"||t.name==="proxyType"||t.type==="constructor"&&t.inputs?.[0]?.name==="implementation")}async function N({contractAddress:e,chainId:t,publicClient:o}){let r=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${e}&apikey=${H.apiKeys.private.etherscan}&chainId=${t}`,a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ABI: ${a.statusText}`);let n=await a.json();if(n.status==="0")throw new Error(n.result);let m=JSON.parse(n.result);if(!G(m))return m;let i=await o.getStorageAt({address:e,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!i||k(i)==="0x00")return m;let s=U(k(i),{size:20});return N({contractAddress:s,chainId:t,publicClient:o})}async function q({address:e,callData:t,knownAbi:o,chainId:r,publicClient:a}){try{if(B({data:t,abi:o}))return o}catch{}try{return await N({contractAddress:e,chainId:r,publicClient:a})}catch{}}function z(e,t){try{return B({data:e,abi:t})}catch{return}}function X(e,t){return e.find(o=>o.type==="function"&&o.name===t)}function j(e){if(e)try{return _(e)}catch(t){console.error(t)}}async function Yt({address:e,callData:t,chainId:o=E,publicClient:r}){let a=[...$,...L,...J],n=await q({address:e,callData:t,knownAbi:a,chainId:o,publicClient:r}),m=z(t,n);if(!n||!m)return{args:[]};let i=X(n,m.functionName),s=j(i);return{abiItem:i,functionSignature:s,functionName:m.functionName,args:m.args}}import{formatUnits as y}from"viem";import{honeyFactoryAbi as b}from"@berachain/abis/honey/honeyFactory";async function ar({client:e,collateralList:t,...o}){let{config:r}=d(o);try{let a={mint:[],redeem:[]};for(let s of t)a.mint.push(e.readContract({address:r.honey.factory,abi:b,functionName:"mintRates",args:[s.address]})),a.redeem.push(e.readContract({address:r.honey.factory,abi:b,functionName:"redeemRates",args:[s.address]}));let[n,m,i]=await Promise.all([Promise.all(a.mint),Promise.all(a.redeem),e.readContract({address:r.honey.factory,abi:b,functionName:"getWeights"})]);return t.reduce((s,c)=>{let p=t.indexOf(c);return s.single[c.address]={mintFee:1-+y(n[p],18),redeemFee:1-+y(m[p],18)},s.basket.mintFee+=s.single[c.address].mintFee*+y(i[p],18),s.basket.redeemFee+=s.single[c.address].redeemFee*+y(i[p],18),s},{single:{},basket:{mintFee:0,redeemFee:0}})}catch(a){throw console.log(a),a}}import{honeyAbi as K}from"@berachain/abis/honey/honey";async function mr({client:e,...t}){let{config:o}=d(t),r=o.honey.token;return await e.readContract({address:r,abi:K,functionName:"paused"})}import{rootPriceOracleAbi as Z}from"@berachain/abis/extras/rootPriceOracle";async function pr({pythOracle:e,publicClient:t}){return await t.readContract({address:e,abi:Z,functionName:"pythOracle"})}import{honeyFactoryAbi as Q}from"@berachain/abis/honey/honeyFactory";async function yr({publicClient:e,factory:t,...o}){let{config:r}=d(o);return await e.readContract({address:t??r.honey.factory,abi:Q,functionName:"priceOracle"})}async function hr({defaultBlockTime:e,publicClient:t,blocksSpan:o,...r}){l(t);let{config:a}=d(r),n=e??a.averageBlockTime,m=o??Math.floor(P(1)/n),i=await t?.getBlock({blockTag:"latest"}),s=await t?.getBlock({blockNumber:i.number-BigInt(m)});return(w(Date.now())-Number(s?.timestamp))/(Number(i?.number)-Number(s?.number))}import{lstStakerVaultAbi as Y}from"@berachain/abis/pol/lst/lstStakerVault";async function Nr({tokenList:e,publicClient:t,lstStakingVaults:o,...r}){l(t);let{config:a}=d({...r,chainId:t.chain?.id??r.chainId}),n=e.filter(i=>o.includes(i.address));return n.length===0?[]:(await Promise.all(n.map(async i=>({assetTokenAddress:await t.readContract({address:i.address,abi:Y,functionName:"asset"}),stakingToken:i})))).reduce((i,{assetTokenAddress:s,stakingToken:c})=>{let p=e.find(g=>x(g,s));return p&&i.push({id:c.address,receiptToken:c,inputTokens:[p]}),i},[])}import{rewardVaultAbi as F}from"@berachain/abis/pol/rewards/rewardVault";import{rewardVaultFactoryAbi as ee}from"@berachain/abis/pol/rewards/rewardVaultFactory";var S=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"initialImplementation",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"NewImplementationHasNoCode",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"}];async function v({publicClient:e,...t}){let{config:o}=d(t),r=o.pol.factory;h(e,"publicClient"),C(o.pol.factory,"factoryAddress");let a=await e.readContract({address:r,abi:ee,functionName:"beacon"});return await e.readContract({address:a,abi:S,functionName:"implementation"})}async function Wr({publicClient:e,...t}){l(e);let o=await v({publicClient:e,...t}),[r,a]=await Promise.all([e.readContract({address:o,abi:F,functionName:"MIN_REWARD_DURATION"}),e.readContract({address:o,abi:F,functionName:"MAX_REWARD_DURATION"})]);return{minRewardDuration:Number(r),maxRewardDuration:Number(a)}}import{zeroAddress as te}from"viem";import{rewardVaultFactoryAbi as re}from"@berachain/abis/pol/rewards/rewardVaultFactory";async function Er({tokenAddress:e,publicClient:t,factoryAddress:o,...r}){let{config:a}=d(r),n=await t.readContract({address:o??a.pol.factory,abi:re,functionName:"getVault",args:[e]});return n===te?null:n}import{pythPriceOracleAbi as oe}from"@berachain/abis/extras/pythPriceOracle";async function qr({tokenList:e,publicClient:t,...o}){let{config:r}=d(o);try{let a=await Promise.all(e.map(n=>t.readContract({address:r.honey.pythOracle,abi:oe,functionName:"feeds",args:[n]})));return e.reduce((n,m,i)=>({...n,[m]:a[i]}),{})}catch(a){throw console.error("getPythPriceFeedId",a),a}}async function Kr({url:e,...t}={}){let{config:o}=d(t);return(await A({url:e??o.lists.tokenList,type:"rest",name:"GitHub"})).tokens??[]}import{bgtAbi as R}from"@berachain/abis/pol/bgt";import{beraChefAbi as f}from"@berachain/abis/pol/rewards/beraChef";async function to({publicClient:e,ui:t,...o}){let{config:r}=d(o),[a,n,m,i,s,c,p,g]=await Promise.all([e.readContract({address:r.pol.beraChef,abi:f,functionName:"MAX_COMMISSION_RATE"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"commissionChangeDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"rewardAllocationBlockDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"maxWeightPerVault"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"maxNumWeightsPerRewardAllocation"}),e.readContract({address:r.tokens.bgt,abi:R,functionName:"dropBoostDelay"}),e.readContract({address:r.tokens.bgt,abi:R,functionName:"activateBoostDelay"}),e.readContract({address:r.pol.beraChef,abi:f,functionName:"rewardAllocationInactivityBlockSpan"})]);return{maxCommissionRate:Number(a)/1e4,boostDelay:Number(p),unboostDelay:Number(c),commissionChangeDelay:Number(n),rewardAllocationBlockDelay:Number(m),maxWeightPerVault:Number(i)/1e4,maxNumWeightsPerRewardAllocation:Number(s),rewardAllocationInactivityBlockSpan:Number(g),ui:t}}function ao({rewardAllocationWeights:e,activeOnly:t=!0}){let o=e.filter(r=>r?.receivingVault).reduce((r,a)=>{for(let n of a.receivingVault?.activeIncentives??[]){if(t&&n.remainingAmount==="0")continue;let m=new u(n.incentiveRate).times(a.percentage),i=new u(n.incentiveRateUsd).times(a.percentage),s=n.token.address.toLowerCase(),c=r.get(s);c?r.set(s,{...c,incentiveRate:new u(c.incentiveRate).plus(m).toString(),incentiveRateUsd:new u(c.incentiveRateUsd).plus(i).toString(),remainingAmount:new u(c.remainingAmount).plus(n.remainingAmount).toString(),remainingAmountUsd:new u(c.remainingAmountUsd).plus(n.remainingAmountUsd).toString()}):r.set(s,{...n,tokenAddress:n.token.address,token:n.token,incentiveRate:m.toString(),incentiveRateUsd:i.toString(),remainingAmount:n.remainingAmount})}return r},new Map);return Array.from(o.values())}function ae(e){return e?.rewardAllocationWeights?.reduce((t,o)=>{if(!o)return t;let r=o.receivingVault?.activeIncentives.filter(a=>Number(a.remainingAmount)>0).reduce((a,n)=>{let m=Number(n.remainingAmountUsd)/Number(n.remainingAmount);return a+Number(n.incentiveRate)*m},0)??0;return t+r*o.percentage},0)}function io({validator:e,bgtPrice:t}){let o=Number(e.dynamicData?.activeBoostAmount??0),r=ae(e);return!r||!o?0:r*Number(e.dynamicData?.lastDayDistributedBGTAmount??0)*365/(o*t)}export{me as BalancerApi,se as BaseAggregator,D as BeraApolloClient,Te as HoneyPreviewMethod,be as MOCKED_PROPOSAL_STATUSES,He as RewardVaultDistributionMode,ao as aggregateValidatorIncentives,bt as beraWriteContract,ge as checkProposalField,Ae as computeActualStatus,wt as formatValidatorRewardAllocation,to as getActiveBoostAndCommissionChangeDelay,de as getAllPools,xe as getAllProposals,At as getAllValidators,lt as getAllowances,xt as getApiEnrichedAllocation,ce as getApiPool,ht as getApiValidator,T as getApolloClient,ft as getBalanceCall,$e as getBgtAprSimulation,hr as getBlockTime,_e as getBlockTimestamp,he as getBodyErrors,Be as getChartData,Ne as getCollateralWeights,ne as getConvertToAssets,Ct as getDailyValidatorBlockStats,Yt as getDecodedFunctionData,Nt as getDefaultRewardAllocation,Le as getEarnedStakedBeraVault,ie as getEnsoClient,Re as getGlobalCapLimit,qe as getGlobalData,pe as getGlobalLiquidityAndSwapVolume,ve as getHoneyCollaterals,ar as getHoneyFees,De as getHoneyGlobalData,mr as getHoneyPausedState,Ie as getHoneyPreview,qr as getHoneyPythFeeds,pr as getHoneyPythOracle,yr as getHoneyRootPriceOracle,Me as getHoneyVaultsBalance,ze as getIncentiveFeeClaimStats,Nr as getLSTStakeConfig,Xe as getMarkets,_t as getMaxDeposit,le as getOnChainPool,fe as getPoolEvents,ye as getPoolHistoricalData,ue as getPoolPausedState,$t as getPoolState,Ce as getProposalDetails,Pe as getProposalFromTx,ke as getProposalVotes,Ve as getPythLatestPrices,We as getPythUpdateFee,Oe as getRelativeCapLimit,je as getRewardProofsByValidator,Ke as getRewardTokenToBeraRate,Ze as getRewardVault,Wr as getRewardVaultDurationConstants,Er as getRewardVaultFromToken,Qe as getRewardVaultIncentives,Ee as getRewardVaultRewards,Ye as getRewardVaultStakingToken,Ge as getRewardVaults,ot as getSWBeraVaultMetadata,at as getSWBeraWithdrawal,rt as getStakeWithdrawalCooldown,et as getStakedBeraAPR,tt as getStakedBeraSnapshots,St as getStakingPoolBatch,Je as getSwapPayload,ut as getTokenCurrentPrices,Se as getTokenInformation,Kr as getTokens,nt as getTotalStakedAmount,Ft as getUserActiveValidators,vt as getUserBoostsOnValidator,it as getUserClaimableIncentives,Rt as getUserStakingPositions,mt as getUserVaultInfo,dt as getUserVaults,st as getUserVaultsReward,Dt as getValidatorAnalytics,io as getValidatorBoostApy,Tt as getValidatorCommission,It as getValidatorEstimatedBgtPerYear,Mt as getValidatorOperatorAddress,Vt as getValidatorQueuedCommission,Ot as getValidatorQueuedOperatorAddress,Wt as getValidatorQueuedRewardAllocation,ae as getValidatorReturnPerBgt,kt as getValidatorRewardAllocation,ct as getVaultHistory,zt as getVaultPausedState,pt as getVaultValidators,yt as getWalletBalances,I as gql,Fe as isBadCollateralAsset,Ue as isBasketModeEnabled,Bt as isDefaultRewardAllocation,gt as isImpersonateAccount,Pt as isSameRewardAllocation,we as parseProposalBody};
2
2
  //# sourceMappingURL=exports.mjs.map
@@ -1,2 +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 _chunkCF3LFNXGcjs = require('./chunk-CF3LFNXG.cjs');var _chunk2YBHAMDVcjs = require('./chunk-2YBHAMDV.cjs');var _chunkDDEQFR3Mcjs = require('./chunk-DDEQFR3M.cjs');var _chunk74WA35RIcjs = require('./chunk-74WA35RI.cjs');var _chunkNMH7LHPWcjs = require('./chunk-NMH7LHPW.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, _chunkNMH7LHPWcjs.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}=_chunk74WA35RIcjs.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:_chunk74WA35RIcjs.e.call(void 0, o.token,"ETH")?_chunk74WA35RIcjs.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 _chunk2YBHAMDVcjs.g.captureException(new (0, _chunkNMH7LHPWcjs.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=>_chunkCF3LFNXGcjs.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),_chunk2YBHAMDVcjs.g.captureException(_chunk2YBHAMDVcjs.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, () => ([]))):_chunk2YBHAMDVcjs.g.captureException(_chunk2YBHAMDVcjs.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:_chunkCF3LFNXGcjs.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=>_chunk74WA35RIcjs.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-LNVR4BW6.cjs.map
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 _chunkGO5E7UUDcjs = require('./chunk-GO5E7UUD.cjs');var _chunkDDEQFR3Mcjs = require('./chunk-DDEQFR3M.cjs');var _chunk74WA35RIcjs = require('./chunk-74WA35RI.cjs');var _chunk2YBHAMDVcjs = require('./chunk-2YBHAMDV.cjs');var _chunkNMH7LHPWcjs = require('./chunk-NMH7LHPW.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, _chunkNMH7LHPWcjs.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}=_chunk74WA35RIcjs.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:_chunk74WA35RIcjs.e.call(void 0, o.token,"ETH")?_chunk74WA35RIcjs.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 _chunk2YBHAMDVcjs.g.captureException(new (0, _chunkNMH7LHPWcjs.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=>_chunkGO5E7UUDcjs.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),_chunk2YBHAMDVcjs.g.captureException(_chunk2YBHAMDVcjs.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, () => ([]))):_chunk2YBHAMDVcjs.g.captureException(_chunk2YBHAMDVcjs.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:_chunkGO5E7UUDcjs.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=>_chunk74WA35RIcjs.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-2EN6PPAW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-LNVR4BW6.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-LNVR4BW6.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"]}
1
+ {"version":3,"sources":["/Users/pong/coding/monobera/packages/berajs/dist/chunk-2EN6PPAW.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-2EN6PPAW.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"]}