@berachain/berajs 0.1.0 → 0.1.2
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.
- package/dist/{dex-jD95agMv.d.cts → HoneyConfigProvider-6PXZJMSU.d.cts} +172 -172
- package/dist/{dex-CxzGqVLe.d.ts → HoneyConfigProvider-CwDFrt02.d.ts} +172 -172
- package/dist/abi/index.cjs +2 -1
- package/dist/abi/index.cjs.map +1 -0
- package/dist/abi/index.mjs +2 -1
- package/dist/abi/index.mjs.map +1 -0
- package/dist/actions/index.cjs +2 -1
- package/dist/actions/index.cjs.map +1 -0
- package/dist/actions/index.d.cts +8 -8
- package/dist/actions/index.d.ts +8 -8
- package/dist/actions/index.mjs +2 -1
- package/dist/actions/index.mjs.map +1 -0
- package/dist/chunk-22MQVFHP.cjs +2 -0
- package/dist/chunk-22MQVFHP.cjs.map +1 -0
- package/dist/chunk-3TKSVFZ3.mjs +2 -0
- package/dist/chunk-3TKSVFZ3.mjs.map +1 -0
- package/dist/chunk-6VF3RF53.cjs +3 -0
- package/dist/chunk-6VF3RF53.cjs.map +1 -0
- package/dist/{chunk-2422CKAT.mjs → chunk-6W22TFYA.mjs} +2 -1
- package/dist/chunk-6W22TFYA.mjs.map +1 -0
- package/dist/chunk-AMRJ4B36.mjs +2 -0
- package/dist/chunk-AMRJ4B36.mjs.map +1 -0
- package/dist/{chunk-4IBBLGNS.mjs → chunk-DS2ZDVKU.mjs} +1 -0
- package/dist/chunk-DS2ZDVKU.mjs.map +1 -0
- package/dist/{chunk-B47PDJZM.cjs → chunk-ED43NYSE.cjs} +2 -1
- package/dist/chunk-ED43NYSE.cjs.map +1 -0
- package/dist/chunk-EU4WFADK.cjs +2 -0
- package/dist/chunk-EU4WFADK.cjs.map +1 -0
- package/dist/{chunk-ASRHUDAH.mjs → chunk-HCTFDGXL.mjs} +1 -0
- package/dist/chunk-HCTFDGXL.mjs.map +1 -0
- package/dist/{chunk-K4NZIO2Z.mjs → chunk-IOSYBHKU.mjs} +1 -0
- package/dist/chunk-IOSYBHKU.mjs.map +1 -0
- package/dist/{chunk-4GY57XKG.cjs → chunk-JMKLDDKY.cjs} +1 -0
- package/dist/chunk-JMKLDDKY.cjs.map +1 -0
- package/dist/chunk-KMKUXP2S.mjs +3 -0
- package/dist/chunk-KMKUXP2S.mjs.map +1 -0
- package/dist/chunk-OJXJ6CZ4.mjs +4 -0
- package/dist/chunk-OJXJ6CZ4.mjs.map +1 -0
- package/dist/{chunk-VA37UBED.mjs → chunk-PHIOKO3A.mjs} +2 -1
- package/dist/chunk-PHIOKO3A.mjs.map +1 -0
- package/dist/{chunk-IKAE7CQU.cjs → chunk-QCK474XD.cjs} +1 -0
- package/dist/chunk-QCK474XD.cjs.map +1 -0
- package/dist/chunk-REDXXUK7.cjs +2 -0
- package/dist/chunk-REDXXUK7.cjs.map +1 -0
- package/dist/{chunk-K2FCHQHA.cjs → chunk-S74ZMG2G.cjs} +2 -1
- package/dist/chunk-S74ZMG2G.cjs.map +1 -0
- package/dist/{chunk-NOV7UCGA.cjs → chunk-TOAXF4YW.cjs} +1 -0
- package/dist/chunk-TOAXF4YW.cjs.map +1 -0
- package/dist/chunk-UZ5CB33M.cjs +2 -0
- package/dist/chunk-UZ5CB33M.cjs.map +1 -0
- package/dist/chunk-VYWYJR63.mjs +2 -0
- package/dist/chunk-VYWYJR63.mjs.map +1 -0
- package/dist/{chunk-WZLPSG5R.cjs → chunk-XFPTQMAK.cjs} +3 -2
- package/dist/chunk-XFPTQMAK.cjs.map +1 -0
- package/dist/chunk-YK4NINF5.mjs +2 -0
- package/dist/chunk-YK4NINF5.mjs.map +1 -0
- package/dist/contexts/index.cjs +2 -1
- package/dist/contexts/index.cjs.map +1 -0
- package/dist/contexts/index.d.cts +7 -5
- package/dist/contexts/index.d.ts +7 -5
- package/dist/contexts/index.mjs +2 -1
- package/dist/contexts/index.mjs.map +1 -0
- package/dist/enum/index.cjs +2 -1
- package/dist/enum/index.cjs.map +1 -0
- package/dist/enum/index.d.cts +1 -1
- package/dist/enum/index.d.ts +1 -1
- package/dist/enum/index.mjs +2 -1
- package/dist/enum/index.mjs.map +1 -0
- package/dist/errors/index.cjs +2 -1
- package/dist/errors/index.cjs.map +1 -0
- package/dist/errors/index.d.cts +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.mjs +2 -1
- package/dist/errors/index.mjs.map +1 -0
- package/dist/{getValidatorQueuedOperatorAddress-9jSXlAse.d.ts → getValidatorQueuedOperatorAddress-9xY2RUGe.d.cts} +2 -2
- package/dist/{getValidatorQueuedOperatorAddress-BCYlvah3.d.cts → getValidatorQueuedOperatorAddress-Ne2zoiiV.d.ts} +2 -2
- package/dist/hooks/index.cjs +3 -2
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.cts +9 -9
- package/dist/hooks/index.d.ts +9 -9
- package/dist/hooks/index.mjs +3 -2
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/{staking-Bw46L2PT.d.ts → staking-F9Nx9TKD.d.ts} +1 -1
- package/dist/{staking-BxYDlMtj.d.cts → staking-f4BpYH7l.d.cts} +1 -1
- package/dist/{txnEnum-Diichv9Z.d.cts → txnEnum-BQKDfaeH.d.cts} +1 -0
- package/dist/{txnEnum-Diichv9Z.d.ts → txnEnum-BQKDfaeH.d.ts} +1 -0
- package/dist/types/index.cjs +2 -1
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +5 -5
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.mjs +2 -1
- package/dist/types/index.mjs.map +1 -0
- package/dist/{useHoneySwapState-YfMSTWY3.d.cts → useHoneySwapState-C-9BV4VB.d.cts} +1 -1
- package/dist/{useHoneySwapState-CD8v6y1k.d.ts → useHoneySwapState-CUY5Sm1b.d.ts} +1 -1
- package/dist/utils/index.cjs +2 -1
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +5 -5
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.mjs +2 -1
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +4 -3
- package/src/abi/bend/bundler.ts +60 -0
- package/src/abi/bend/generalAdapter.ts +362 -0
- package/src/abi/bend/metaMorpho.ts +2584 -0
- package/src/abi/bend/morpho.ts +444 -0
- package/src/abi/bend/morphoVault.ts +1456 -0
- package/src/abi/bend/publicAllocator.ts +355 -0
- package/src/abi/bex/aggregatorsRouter.ts +492 -0
- package/src/abi/bex/balancerComposableStablePoolFactoryV6.ts +283 -0
- package/src/abi/bex/balancerPoolCreationHelper.ts +267 -0
- package/src/abi/bex/balancerVault.ts +757 -0
- package/src/abi/enso/ensoRouterAbi.ts +140 -0
- package/src/abi/governance/governance.ts +1016 -0
- package/src/abi/governance/governanceTimelock.ts +589 -0
- package/src/abi/honey/collateralVault.ts +1144 -0
- package/src/abi/honey/honey.ts +563 -0
- package/src/abi/honey/honeyFactory.ts +1270 -0
- package/src/abi/honey/honeyFactoryReader.ts +894 -0
- package/src/abi/honey/honeyRootOracle.ts +492 -0
- package/src/abi/honey/pythPriceOracle.ts +619 -0
- package/src/abi/honey/pythWrapper.ts +446 -0
- package/src/abi/index.ts +35 -0
- package/src/abi/pol/beaconDeposit.ts +595 -0
- package/src/abi/pol/beraChef.ts +1019 -0
- package/src/abi/pol/bgt.ts +1008 -0
- package/src/abi/pol/bgtIncentiveDistributor.ts +640 -0
- package/src/abi/pol/bgtStaker.ts +1034 -0
- package/src/abi/pol/rewardAllocationFactory.ts +408 -0
- package/src/abi/pol/rewardVault.ts +1928 -0
- package/src/abi/pol/rewardVaultFactory.ts +586 -0
- package/src/abi/pol/rewardVaultHelper.ts +882 -0
- package/src/abi/pol/stakeBeraVault.ts +1116 -0
- package/src/abi/pol/stakeBeraVaultWithdrawalRequest.ts +618 -0
- package/src/abi/pol/wbera.ts +366 -0
- package/src/abi/pyth/pyth.ts +566 -0
- package/src/abi/pyth/pythErrors.ts +72 -0
- package/src/abi/utils/EIP7702StatelessDelegator.ts +523 -0
- package/src/abi/utils/bundler3errors.ts +6 -0
- package/src/abi/utils/commonAbiErrors.ts +9 -0
- package/src/abi/utils/erc20errors.ts +74 -0
- package/src/abi/utils/merkleDistributor.ts +838 -0
- package/src/abi/utils/multicall3.ts +242 -0
- package/src/abi/utils/openChainErrors.ts +139 -0
- package/src/abi/utils/upgradableBeacon.ts +86 -0
- package/src/actions/bend/getConvertToAssets.ts +23 -0
- package/src/actions/bend/getMaxDeposit.ts +21 -0
- package/src/actions/clients/BeraApolloClient.ts +125 -0
- package/src/actions/clients/getApolloClient.ts +109 -0
- package/src/actions/clients/getEnsoClient.ts +24 -0
- package/src/actions/dex/__tests__/aggregators.unit.test.ts +112 -0
- package/src/actions/dex/__tests__/allPools.integration.test.ts +13 -0
- package/src/actions/dex/__tests__/getOnChainPool.unit.test.ts +15 -0
- package/src/actions/dex/__tests__/haiku.integration.test.ts +40 -0
- package/src/actions/dex/aggregators/base.ts +174 -0
- package/src/actions/dex/aggregators/bex.ts +255 -0
- package/src/actions/dex/aggregators/bgt.ts +50 -0
- package/src/actions/dex/aggregators/enso.ts +113 -0
- package/src/actions/dex/aggregators/fly.ts +136 -0
- package/src/actions/dex/aggregators/haiku.ts +171 -0
- package/src/actions/dex/aggregators/honey.ts +245 -0
- package/src/actions/dex/aggregators/kyberswap.ts +142 -0
- package/src/actions/dex/aggregators/oogabooga.ts +110 -0
- package/src/actions/dex/aggregators/openOcean.ts +142 -0
- package/src/actions/dex/aggregators/wbera.ts +72 -0
- package/src/actions/dex/b-sdk.ts +48 -0
- package/src/actions/dex/getAllPools.ts +60 -0
- package/src/actions/dex/getApiPool.ts +47 -0
- package/src/actions/dex/getGlobalLiquidityAndSwapVolume.ts +29 -0
- package/src/actions/dex/getIsTokenExploited.ts +63 -0
- package/src/actions/dex/getOnChainPool.ts +216 -0
- package/src/actions/dex/getPoolEvents.ts +35 -0
- package/src/actions/dex/getPoolHistoricalData.ts +51 -0
- package/src/actions/dex/getPoolPausedState.ts +40 -0
- package/src/actions/dex/getPoolWithState.ts +24 -0
- package/src/actions/dex/getSubgraphPool.ts +30 -0
- package/src/actions/dex/getTransactionCount.ts +29 -0
- package/src/actions/dex/getVaultPausedState.ts +21 -0
- package/src/actions/enso/bend.ts +143 -0
- package/src/actions/enso/getEnsoUserToken.debug.test.ts +57 -0
- package/src/actions/enso/getEnsoUserToken.ts +133 -0
- package/src/actions/enso/util.ts +60 -0
- package/src/actions/enso/zap.ts +78 -0
- package/src/actions/governance/__tests__/checkProposalField.unit.test.ts +108 -0
- package/src/actions/governance/__tests__/getDecodedFunctionData.integration.test.ts +127 -0
- package/src/actions/governance/__tests__/getQuorum.integration.test.ts +39 -0
- package/src/actions/governance/checkProposalField.ts +211 -0
- package/src/actions/governance/computeActualStatus.ts +154 -0
- package/src/actions/governance/constants.ts +7 -0
- package/src/actions/governance/getAllProposals.ts +75 -0
- package/src/actions/governance/getBodyErrors.ts +28 -0
- package/src/actions/governance/getDecodedFunctionData.ts +170 -0
- package/src/actions/governance/getProposalDetails.ts +40 -0
- package/src/actions/governance/getProposalFromTx.ts +101 -0
- package/src/actions/governance/getProposalParams.ts +247 -0
- package/src/actions/governance/getProposalVotes.ts +20 -0
- package/src/actions/governance/getQuorum.ts +38 -0
- package/src/actions/governance/parseProposalBody.ts +73 -0
- package/src/actions/honey/getChartData.ts +27 -0
- package/src/actions/honey/getCollateralWeights.ts +50 -0
- package/src/actions/honey/getGlobalCapLimit.ts +148 -0
- package/src/actions/honey/getHoneyCollaterals.ts +139 -0
- package/src/actions/honey/getHoneyFees.ts +100 -0
- package/src/actions/honey/getHoneyGlobalData.ts +21 -0
- package/src/actions/honey/getHoneyPausedState.ts +25 -0
- package/src/actions/honey/getHoneyPreview.ts +152 -0
- package/src/actions/honey/getHoneyPythPriceOracle.ts +21 -0
- package/src/actions/honey/getHoneyRootPriceOracle.ts +23 -0
- package/src/actions/honey/getHoneyVaultsBalance.ts +86 -0
- package/src/actions/honey/getPythLatestPrices.ts +54 -0
- package/src/actions/honey/getRelativeCapLimit.ts +83 -0
- package/src/actions/honey/getSharesWithoutFees.ts +65 -0
- package/src/actions/honey/getSwapPayload.ts +128 -0
- package/src/actions/honey/isBadCollateralAsset.ts +77 -0
- package/src/actions/honey/isBasketModeEnabled.ts +47 -0
- package/src/actions/honey/tests/pyth.integration.test.ts +63 -0
- package/src/actions/index.ts +105 -0
- package/src/actions/misc/getBlockTimestamp.ts +41 -0
- package/src/actions/pol/__tests__/getAllValidators.integration.test.ts +55 -0
- package/src/actions/pol/__tests__/getValidator.integration.test.ts +32 -0
- package/src/actions/pol/__tests__/rewardVaults.integration.test.ts +34 -0
- package/src/actions/pol/getBGTGlobalInfo.ts +43 -0
- package/src/actions/pol/getBgtAprSimulation.ts +207 -0
- package/src/actions/pol/getBgtAprSimultaion.unit.test.ts +297 -0
- package/src/actions/pol/getBgtTokenTotalBoosts.ts +30 -0
- package/src/actions/pol/getBgtTokenTotalSupply.ts +29 -0
- package/src/actions/pol/getBlockTime.ts +43 -0
- package/src/actions/pol/getGlobalCuttingBoard.ts +25 -0
- package/src/actions/pol/getGlobalData.ts +74 -0
- package/src/actions/pol/getIncentiveFeeClaimStats.ts +43 -0
- package/src/actions/pol/getMarkets.ts +36 -0
- package/src/actions/pol/getRewardProofsByValidator.ts +49 -0
- package/src/actions/pol/getRewardTokenToBeraRate.ts +30 -0
- package/src/actions/pol/getRewardVault.ts +54 -0
- package/src/actions/pol/getRewardVaultBeaconImplementation.integration.test.ts +18 -0
- package/src/actions/pol/getRewardVaultBeaconImplementation.ts +35 -0
- package/src/actions/pol/getRewardVaultDurationConstants.integration.test.ts +24 -0
- package/src/actions/pol/getRewardVaultDurationConstants.ts +45 -0
- package/src/actions/pol/getRewardVaultFromToken.ts +30 -0
- package/src/actions/pol/getRewardVaultIncentives.ts +122 -0
- package/src/actions/pol/getRewardVaultRewards.ts +109 -0
- package/src/actions/pol/getRewardVaultStakingToken.ts +19 -0
- package/src/actions/pol/getRewardVaults.ts +106 -0
- package/src/actions/pol/getSWBeraVaultMetadata.ts +166 -0
- package/src/actions/pol/getSWBeraWithdrawal.ts +165 -0
- package/src/actions/pol/getStakeWithdrawalCooldown.ts +21 -0
- package/src/actions/pol/getStakedBeraAPR.ts +56 -0
- package/src/actions/pol/getStakedBeraSnapshots.ts +48 -0
- package/src/actions/pol/getStakingTokenInformation.ts +60 -0
- package/src/actions/pol/getUserClaimableIncentives.ts +40 -0
- package/src/actions/pol/getUserVaultInfo.ts +52 -0
- package/src/actions/pol/getUserVaults.ts +185 -0
- package/src/actions/pol/getUserVaultsBalance.ts +54 -0
- package/src/actions/pol/getUserVaultsReward.ts +32 -0
- package/src/actions/pol/getVaultHistory.ts +43 -0
- package/src/actions/pol/getVaultValidators.ts +31 -0
- package/src/actions/pol/getVaultsSupply.ts +28 -0
- package/src/actions/prices/__tests__/prices.integration.test.ts +29 -0
- package/src/actions/prices/getTokenCurrentPrices.ts +79 -0
- package/src/actions/pyth/getHoneyPythFeeds.ts +46 -0
- package/src/actions/pyth/getUpdateFee.ts +27 -0
- package/src/actions/tokens/getAllowances.ts +59 -0
- package/src/actions/tokens/getTokenInformation.ts +57 -0
- package/src/actions/tokens/getTokens.ts +19 -0
- package/src/actions/tokens/getWalletBalances.integration.test.ts +40 -0
- package/src/actions/tokens/getWalletBalances.ts +123 -0
- package/src/actions/transactions/beraWriteContract.integration.test.ts +251 -0
- package/src/actions/transactions/beraWriteContract.ts +722 -0
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.integration.test.ts +40 -0
- package/src/actions/validators/getActiveBoostAndCommissionChangeDelay.ts +109 -0
- package/src/actions/validators/getAllValidators.ts +33 -0
- package/src/actions/validators/getApiEnrichedAllocation.ts +33 -0
- package/src/actions/validators/getApiValidator.ts +38 -0
- package/src/actions/validators/getBaselineRewardAllocation.ts +26 -0
- package/src/actions/validators/getDailyValidatorBlockStats.ts +37 -0
- package/src/actions/validators/getDefaultRewardAllocation.ts +39 -0
- package/src/actions/validators/getManagedValidatorByAccount.ts +32 -0
- package/src/actions/validators/getStakingPoolBatch.ts +20 -0
- package/src/actions/validators/getUserActiveValidators.ts +101 -0
- package/src/actions/validators/getUserBoosts.ts +28 -0
- package/src/actions/validators/getUserBoostsOnValidator.ts +70 -0
- package/src/actions/validators/getUserStakingPositions.ts +225 -0
- package/src/actions/validators/getValidatorAnalytics.ts +34 -0
- package/src/actions/validators/getValidatorCommission.ts +24 -0
- package/src/actions/validators/getValidatorEstimatedBgtPerYear.ts +25 -0
- package/src/actions/validators/getValidatorOperatorAddress.ts +27 -0
- package/src/actions/validators/getValidatorQueuedCommission.ts +30 -0
- package/src/actions/validators/getValidatorQueuedOperatorAddress.ts +32 -0
- package/src/actions/validators/getValidatorQueuedRewardAllocation.ts +31 -0
- package/src/actions/validators/getValidatorRewardAllocation.ts +158 -0
- package/src/actions/validators/getValidatorRewardAllocatorAddress.ts +38 -0
- package/src/actions/validators/utils/__tests__/validatorUtils.integration.test.ts +36 -0
- package/src/actions/validators/utils/getValidatorBoostApy.ts +59 -0
- package/src/contexts/BeraFlags/BeraFlags.tsx +69 -0
- package/src/contexts/BeraFlags/defaultFlags.ts +42 -0
- package/src/contexts/BexStatusProvider.tsx +125 -0
- package/src/contexts/HoneyConfigProvider.tsx +73 -0
- package/src/contexts/SwrFallback.tsx +34 -0
- package/src/contexts/TokensProvider.tsx +66 -0
- package/src/contexts/berajsProvider/context.tsx +49 -0
- package/src/contexts/berajsProvider/index.ts +2 -0
- package/src/contexts/berajsProvider/useBeraJs.ts +18 -0
- package/src/contexts/block-time-provider.tsx +34 -0
- package/src/contexts/index.ts +14 -0
- package/src/data/contracts.ts +398 -0
- package/src/enum/dex.ts +10 -0
- package/src/enum/index.ts +4 -0
- package/src/enum/polling.ts +8 -0
- package/src/enum/slippage.ts +19 -0
- package/src/enum/txnEnum.ts +101 -0
- package/src/errors/BeraError.ts +202 -0
- package/src/errors/InvalidArgumentError.ts +81 -0
- package/src/errors/NotFoundError.ts +34 -0
- package/src/errors/RequestError.ts +207 -0
- package/src/errors/TransactionFailedError.ts +93 -0
- package/src/errors/assert.ts +144 -0
- package/src/errors/assert.unit.test.ts +110 -0
- package/src/errors/errorMap.ts +1157 -0
- package/src/errors/getErrorMessage.ts +40 -0
- package/src/errors/getRevertReason.integration.test.ts +449 -0
- package/src/errors/getRevertReason.ts +179 -0
- package/src/errors/index.ts +8 -0
- package/src/errors/initBeraError.ts +46 -0
- package/src/errors/parseViemError.ts +239 -0
- package/src/hooks/bend/useGetConvertToAssets.ts +42 -0
- package/src/hooks/dex/useAggregatorsQuotes.ts +502 -0
- package/src/hooks/dex/useAggregatorsRouterFeeBps.ts +34 -0
- package/src/hooks/dex/useAllUserPools.ts +38 -0
- package/src/hooks/dex/useApiPool.ts +53 -0
- package/src/hooks/dex/useBexStatus.ts +1 -0
- package/src/hooks/dex/useCreatePool.ts +437 -0
- package/src/hooks/dex/useExploitedTokens.ts +57 -0
- package/src/hooks/dex/useGlobalLiquidityAndSwapVolume.ts +22 -0
- package/src/hooks/dex/useLiquidityMismatch.ts +195 -0
- package/src/hooks/dex/useLpPosition.ts +115 -0
- package/src/hooks/dex/useMultipleTokenApprovalsWithSlippage.ts +92 -0
- package/src/hooks/dex/useOnChainPoolData.ts +126 -0
- package/src/hooks/dex/usePollPoolCreationRelayerApproval.ts +54 -0
- package/src/hooks/dex/usePollVaultIsPaused.ts +30 -0
- package/src/hooks/dex/usePool.ts +59 -0
- package/src/hooks/dex/usePoolEvents.ts +22 -0
- package/src/hooks/dex/usePoolHistoricalData.ts +44 -0
- package/src/hooks/dex/usePools.ts +83 -0
- package/src/hooks/enso/useBendTransactionRequests.ts +247 -0
- package/src/hooks/enso/useEnsoZap.ts +166 -0
- package/src/hooks/enso/useZapTransactionRequests.ts +81 -0
- package/src/hooks/governance/useCreateProposal.ts +88 -0
- package/src/hooks/governance/useGetPastVotes.ts +63 -0
- package/src/hooks/governance/useHasVoted.ts +38 -0
- package/src/hooks/governance/useIsCanceller.ts +43 -0
- package/src/hooks/governance/usePollAllProposals.ts +232 -0
- package/src/hooks/governance/usePollProposal.ts +96 -0
- package/src/hooks/governance/usePollProposalThreshold.ts +41 -0
- package/src/hooks/governance/usePollProposalVotes.ts +64 -0
- package/src/hooks/governance/usePollUserDelegates.ts +70 -0
- package/src/hooks/governance/useProposalFromTx.ts +37 -0
- package/src/hooks/governance/useProposalSnapshot.ts +44 -0
- package/src/hooks/governance/useProposalState.ts +48 -0
- package/src/hooks/governance/useProposalTimelockState.ts +61 -0
- package/src/hooks/governance/useQuorum.ts +42 -0
- package/src/hooks/honey/useCappedGlobally.ts +92 -0
- package/src/hooks/honey/useCappedRelatively.ts +88 -0
- package/src/hooks/honey/useCollateralWeights.ts +48 -0
- package/src/hooks/honey/useHoneyAlerts.ts +314 -0
- package/src/hooks/honey/useHoneyBalances.ts +79 -0
- package/src/hooks/honey/useHoneyChartData.ts +17 -0
- package/src/hooks/honey/useHoneyGlobalData.ts +22 -0
- package/src/hooks/honey/useHoneySwapState.ts +202 -0
- package/src/hooks/honey/useHoneyVaultsBalance.ts +41 -0
- package/src/hooks/honey/useIsBadCollateralAsset.ts +73 -0
- package/src/hooks/honey/useIsBasketModeEnabled.ts +70 -0
- package/src/hooks/honey/usePythLatestPrices.ts +41 -0
- package/src/hooks/index.ts +124 -0
- package/src/hooks/perps/usePythUpdateFee.ts +43 -0
- package/src/hooks/pol/useBgtAprSimulation.ts +22 -0
- package/src/hooks/pol/useBgtUnstakedBalance.ts +50 -0
- package/src/hooks/pol/useClaimableFees.ts +38 -0
- package/src/hooks/pol/useEarnedStakedBeraVault.ts +59 -0
- package/src/hooks/pol/useHighestVaultsAPR.ts +57 -0
- package/src/hooks/pol/useOnChainRewardVault.ts +114 -0
- package/src/hooks/pol/usePollGlobalData.ts +31 -0
- package/src/hooks/pol/usePollMarkets.ts +32 -0
- package/src/hooks/pol/useQueuedBeraUnlock.ts +70 -0
- package/src/hooks/pol/useRewardTokenToBeraRate.ts +45 -0
- package/src/hooks/pol/useRewardVault.ts +51 -0
- package/src/hooks/pol/useRewardVaultBalanceFromStakingToken.ts +82 -0
- package/src/hooks/pol/useRewardVaultFromToken.ts +58 -0
- package/src/hooks/pol/useRewardVaultIncentives.ts +37 -0
- package/src/hooks/pol/useRewardVaultRewards.ts +37 -0
- package/src/hooks/pol/useRewardVaults.ts +45 -0
- package/src/hooks/pol/useStakedBeraSnapshots.ts +27 -0
- package/src/hooks/pol/useUserVaultInfo.ts +46 -0
- package/src/hooks/pol/useUserVaults.ts +40 -0
- package/src/hooks/pol/useVaultAddress.ts +31 -0
- package/src/hooks/pol/useVaultHistory.ts +29 -0
- package/src/hooks/pol/useVaultValidators.ts +33 -0
- package/src/hooks/tokens/useBeraCurrentPrice.ts +12 -0
- package/src/hooks/tokens/useMultipleTokenInformation.ts +62 -0
- package/src/hooks/tokens/usePollAllowances.ts +60 -0
- package/src/hooks/tokens/usePollBalance.ts +113 -0
- package/src/hooks/tokens/usePollWalletBalances.ts +75 -0
- package/src/hooks/tokens/useStakingTokenInformation.ts +54 -0
- package/src/hooks/tokens/useTokenCurrentPrice.ts +19 -0
- package/src/hooks/tokens/useTokenCurrentPrices.ts +57 -0
- package/src/hooks/tokens/useTokenInformation.ts +59 -0
- package/src/hooks/tokens/useTokens.ts +26 -0
- package/src/hooks/tokens/useTotalSupply.ts +22 -0
- package/src/hooks/transactions/TransactionStoreContext.tsx +59 -0
- package/src/hooks/transactions/transactionStore.ts +275 -0
- package/src/hooks/transactions/transactionStore.unit.test.ts +508 -0
- package/src/hooks/transactions/useAddRecentTransaction.ts +29 -0
- package/src/hooks/transactions/useRecentTransactions.ts +27 -0
- package/src/hooks/useBlockToTimestamp.ts +51 -0
- package/src/hooks/useContractWrite/index.ts +2 -0
- package/src/hooks/useContractWrite/stateReducer.ts +60 -0
- package/src/hooks/useContractWrite/types.ts +88 -0
- package/src/hooks/useContractWrite/useBeraContractWrite.ts +137 -0
- package/src/hooks/useGetVerifiedAbi.ts +47 -0
- package/src/hooks/useHistoryState.ts +64 -0
- package/src/hooks/usePrevious.ts +13 -0
- package/src/hooks/validators/useAllValidators.ts +48 -0
- package/src/hooks/validators/useApiEnrichedAllocation.ts +17 -0
- package/src/hooks/validators/useApiValidator.ts +37 -0
- package/src/hooks/validators/useBaselineRewardAllocation.ts +16 -0
- package/src/hooks/validators/useDailyValidatorBlockStats.ts +35 -0
- package/src/hooks/validators/useDefaultRewardAllocation.ts +32 -0
- package/src/hooks/validators/useManagedValidatorByAccount.ts +40 -0
- package/src/hooks/validators/useManagedValidatorRole.ts +119 -0
- package/src/hooks/validators/useOnChainValidator.ts +66 -0
- package/src/hooks/validators/useStakingPoolBatch.ts +45 -0
- package/src/hooks/validators/useSubgraphUserValidators.ts +36 -0
- package/src/hooks/validators/useUserActiveValidators.ts +44 -0
- package/src/hooks/validators/useUserBoostsOnValidator.ts +45 -0
- package/src/hooks/validators/useUserClaimableIncentives.ts +149 -0
- package/src/hooks/validators/useUserStakingPositions.ts +62 -0
- package/src/hooks/validators/useValidator.ts +83 -0
- package/src/hooks/validators/useValidatorAnalytics.ts +36 -0
- package/src/hooks/validators/useValidatorCommission.ts +36 -0
- package/src/hooks/validators/useValidatorEstimatedBgtPerYear.ts +24 -0
- package/src/hooks/validators/useValidatorQueuedCommission.ts +41 -0
- package/src/hooks/validators/useValidatorQueuedOperatorAddress.ts +39 -0
- package/src/hooks/validators/useValidatorQueuedRewardAllocation.ts +37 -0
- package/src/hooks/validators/useValidatorRewardAllocation.ts +36 -0
- package/src/hooks/validators/validatorRoleManager.ts +0 -0
- package/src/types/bribe-boost.ts +50 -0
- package/src/types/dex.ts +196 -0
- package/src/types/enso.ts +42 -0
- package/src/types/global.ts +230 -0
- package/src/types/governance.ts +174 -0
- package/src/types/honeySwap.ts +35 -0
- package/src/types/index.ts +8 -0
- package/src/types/pol.ts +52 -0
- package/src/types/staking.ts +7 -0
- package/src/utils/beraFetch.ts +55 -0
- package/src/utils/constants.ts +35 -0
- package/src/utils/formatAggregatorsQuotes.ts +57 -0
- package/src/utils/formatAggregatorsQuotes.unit.test.ts +191 -0
- package/src/utils/formatIncentivesTokenMap.ts +19 -0
- package/src/utils/formatInputTokenValue.ts +12 -0
- package/src/utils/formatNumber.ts +225 -0
- package/src/utils/formatNumber.unit.test.ts +245 -0
- package/src/utils/formatTimestamps.ts +155 -0
- package/src/utils/formatTimestamps.unit.test.ts +395 -0
- package/src/utils/formatTokenList.ts +61 -0
- package/src/utils/formatUsd.ts +46 -0
- package/src/utils/getContractName.ts +27 -0
- package/src/utils/getContractName.unit.test.ts +64 -0
- package/src/utils/getErrorResponse.ts +20 -0
- package/src/utils/getHoneySwapMessage.test.ts +116 -0
- package/src/utils/getHoneySwapMessage.ts +70 -0
- package/src/utils/getServerSideClient.ts +49 -0
- package/src/utils/getTestClient.ts +19 -0
- package/src/utils/hasAnyTruthyValues.ts +17 -0
- package/src/utils/index.ts +27 -0
- package/src/utils/isDifferenceExceedingThreshold.ts +13 -0
- package/src/utils/isSubgraphStale.ts +10 -0
- package/src/utils/math.ts +28 -0
- package/src/utils/math.unit.test.ts +49 -0
- package/src/utils/parseBaseArgs.ts +23 -0
- package/src/utils/parseBaseArgs.unit.test.ts +55 -0
- package/src/utils/poolNamings.ts +54 -0
- package/src/utils/pythHoneyUtils.ts +3 -0
- package/src/utils/sentryBeforeSend.ts +52 -0
- package/src/utils/test-utils.ts +2 -0
- package/src/utils/time.ts +106 -0
- package/src/utils/time.unit.test.ts +76 -0
- package/src/utils/tokenWrapping.ts +16 -0
- package/src/utils/tokens.ts +106 -0
- package/src/utils/tokens.unit.test.ts +98 -0
- package/src/utils/truncateHash.ts +20 -0
- package/src/utils/truncateHash.unit.test.ts +19 -0
- package/src/utils/validatorUptimeStatus.ts +30 -0
- package/dist/chunk-3V2MGZRD.mjs +0 -2
- package/dist/chunk-4E5JGLUM.cjs +0 -1
- package/dist/chunk-AHAZC5K3.mjs +0 -1
- package/dist/chunk-ELUMRVNE.mjs +0 -1
- package/dist/chunk-JHCSZSJS.mjs +0 -1
- package/dist/chunk-KIA6GUIN.cjs +0 -1
- package/dist/chunk-LX5CM4Y6.cjs +0 -1
- package/dist/chunk-LZPBQLKP.mjs +0 -3
- package/dist/chunk-M5BKM52U.cjs +0 -1
- package/dist/chunk-MTBICGRP.mjs +0 -1
- package/dist/chunk-WDFIETJS.cjs +0 -2
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import type { Config, GetWalletClientReturnType } from "@wagmi/core";
|
|
2
|
+
import type { SWRConfiguration, SWRResponse } from "swr";
|
|
3
|
+
import type {
|
|
4
|
+
Abi,
|
|
5
|
+
Account,
|
|
6
|
+
Address,
|
|
7
|
+
ContractFunctionArgs,
|
|
8
|
+
ContractFunctionName,
|
|
9
|
+
Hex,
|
|
10
|
+
TransactionReceipt,
|
|
11
|
+
WalletCallReceipt,
|
|
12
|
+
} from "viem";
|
|
13
|
+
|
|
14
|
+
import type { BeraConfig, ChainId } from "@berachain/config";
|
|
15
|
+
|
|
16
|
+
import type { TransactionActionType } from "~/enum/txnEnum";
|
|
17
|
+
import type {
|
|
18
|
+
IUseContractWriteArgs,
|
|
19
|
+
TxnEventKeys,
|
|
20
|
+
} from "~/hooks/useContractWrite/types";
|
|
21
|
+
import type { Token } from "./dex";
|
|
22
|
+
|
|
23
|
+
export type DefaultHookOptions = {
|
|
24
|
+
opts?: SWRConfiguration & { isEnabled?: boolean };
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type DefaultHookReturnType<T = any> = Omit<
|
|
28
|
+
SWRResponse<T, any, any>,
|
|
29
|
+
"mutate"
|
|
30
|
+
> & {
|
|
31
|
+
refresh: () => void;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export interface TokenBalance {
|
|
35
|
+
address: Address;
|
|
36
|
+
/**
|
|
37
|
+
* Balance in wei, should be string to be serializable in JSON
|
|
38
|
+
*/
|
|
39
|
+
balance: bigint | string;
|
|
40
|
+
formattedBalance: string;
|
|
41
|
+
/**
|
|
42
|
+
* Balance in USD
|
|
43
|
+
*/
|
|
44
|
+
usdValue?: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface AllowanceToken extends Token {
|
|
48
|
+
allowance: bigint;
|
|
49
|
+
formattedAllowance: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type IContractWriteFn = <
|
|
53
|
+
abi extends Abi | undefined = undefined,
|
|
54
|
+
functionName extends abi extends Abi
|
|
55
|
+
? ContractFunctionName<abi>
|
|
56
|
+
: never = abi extends Abi ? ContractFunctionName<abi> : never,
|
|
57
|
+
params extends abi extends Abi
|
|
58
|
+
? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
|
|
59
|
+
: never = abi extends Abi
|
|
60
|
+
? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
|
|
61
|
+
: never,
|
|
62
|
+
>(
|
|
63
|
+
props: IContractWrite<abi, functionName, params>,
|
|
64
|
+
) => Promise<
|
|
65
|
+
| TransactionReceipt
|
|
66
|
+
| WalletCallReceipt<bigint, "success" | "reverted">
|
|
67
|
+
| undefined
|
|
68
|
+
>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Posthog must be able to serialize this. BigInts are not supported.
|
|
72
|
+
*/
|
|
73
|
+
type AllowedEventData = number | string | boolean | null | undefined;
|
|
74
|
+
|
|
75
|
+
type EventData = Record<
|
|
76
|
+
string,
|
|
77
|
+
| AllowedEventData
|
|
78
|
+
| AllowedEventData[]
|
|
79
|
+
| Record<
|
|
80
|
+
string,
|
|
81
|
+
| AllowedEventData
|
|
82
|
+
| AllowedEventData[]
|
|
83
|
+
| Record<string, AllowedEventData | AllowedEventData[]>
|
|
84
|
+
>
|
|
85
|
+
>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* A list of contract names that are not mapped in the devrel's contract mapping or that are generated by factories (e.g. RewardVault).
|
|
89
|
+
*/
|
|
90
|
+
export enum ContractName {
|
|
91
|
+
ENSO_ROUTER = "enso.router",
|
|
92
|
+
POL_REWARD_VAULT = "pol.rewardVault",
|
|
93
|
+
BEX_POOL = "bex.pool",
|
|
94
|
+
ERC20 = "others.erc20",
|
|
95
|
+
BEX_EXPLOITED_FUND_DISTRIBUTOR = "bex.exploitedFundDistributor",
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export type IContractWrite<
|
|
99
|
+
abi extends Abi | undefined = undefined,
|
|
100
|
+
functionName extends abi extends Abi
|
|
101
|
+
? ContractFunctionName<abi>
|
|
102
|
+
: never = abi extends Abi ? ContractFunctionName<abi> : never,
|
|
103
|
+
params extends abi extends Abi
|
|
104
|
+
? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
|
|
105
|
+
: never = abi extends Abi
|
|
106
|
+
? ContractFunctionArgs<abi, "payable" | "nonpayable", functionName>
|
|
107
|
+
: never,
|
|
108
|
+
> = {
|
|
109
|
+
/**
|
|
110
|
+
* A message that will be shown to user while the transaction is pending.
|
|
111
|
+
*
|
|
112
|
+
* @example "Sending approvals"
|
|
113
|
+
*/
|
|
114
|
+
message: string;
|
|
115
|
+
/**
|
|
116
|
+
* The chain ID of the transaction.
|
|
117
|
+
*
|
|
118
|
+
* @default berachainChainId
|
|
119
|
+
*/
|
|
120
|
+
chainId?: ChainId;
|
|
121
|
+
/**
|
|
122
|
+
* The type of transaction to be performed. It will be stored in the transaction history.
|
|
123
|
+
*
|
|
124
|
+
* Generally uses infinite tense.
|
|
125
|
+
* @example TransactionActionType.APPROVAL => "Approve tokens"
|
|
126
|
+
*/
|
|
127
|
+
actionType: TransactionActionType;
|
|
128
|
+
txnName?: string;
|
|
129
|
+
gasLimit?: bigint;
|
|
130
|
+
account?: Account | Address;
|
|
131
|
+
/**
|
|
132
|
+
* Wheter the transaction can be sent by any account. Before setting this to true, make sure smart contract doesn't rely on `msg.sender`.
|
|
133
|
+
*
|
|
134
|
+
* Only transaction with permissionless flag set to true can be sent with overriden account.
|
|
135
|
+
* Everything else will throw an error.
|
|
136
|
+
*/
|
|
137
|
+
permissionless?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* The event to be tracked more specifically.
|
|
140
|
+
* If not provided, the event will be tracked with the message and actionType.
|
|
141
|
+
*/
|
|
142
|
+
track?: {
|
|
143
|
+
eventName: string;
|
|
144
|
+
eventData?: EventData;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* A wagmi config used to get wallet clients, switch chains, etc.
|
|
149
|
+
*
|
|
150
|
+
* This is preferred over providing clients as state updates are kept synched in this config object w/o re-rendering.
|
|
151
|
+
*/
|
|
152
|
+
wagmiConfig?: Config;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* walletClient should only be provided for tests or scripts.
|
|
156
|
+
*
|
|
157
|
+
* Wagmi Config is preferred.
|
|
158
|
+
*/
|
|
159
|
+
walletClient?: GetWalletClientReturnType | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* The name of the contract to be used for the transaction. By default, it will be devrel's contract mapping.
|
|
162
|
+
* Custom values will be ignored if the address is already mapped in the devrel's contract mapping.
|
|
163
|
+
*
|
|
164
|
+
* @example "pol.rewardVault"
|
|
165
|
+
*/
|
|
166
|
+
contractName?: ContractName;
|
|
167
|
+
/**
|
|
168
|
+
* This is a canonical list of ABIs that will be used to parse the error.
|
|
169
|
+
*
|
|
170
|
+
* This is an useful way to parse errors when providing raw data with no ABI.
|
|
171
|
+
*/
|
|
172
|
+
errorsAbi?: Abi;
|
|
173
|
+
} & IUseContractWriteArgs<abi, functionName, params> &
|
|
174
|
+
(abi extends Abi
|
|
175
|
+
? {
|
|
176
|
+
abi: abi;
|
|
177
|
+
functionName: functionName;
|
|
178
|
+
params: params;
|
|
179
|
+
address: Address;
|
|
180
|
+
calls?: never;
|
|
181
|
+
value?: bigint;
|
|
182
|
+
}
|
|
183
|
+
:
|
|
184
|
+
| {
|
|
185
|
+
data: Hex;
|
|
186
|
+
address: Address;
|
|
187
|
+
value?: bigint;
|
|
188
|
+
calls?: never;
|
|
189
|
+
}
|
|
190
|
+
| {
|
|
191
|
+
value: bigint;
|
|
192
|
+
address: Address;
|
|
193
|
+
data?: Hex;
|
|
194
|
+
calls?: never;
|
|
195
|
+
}
|
|
196
|
+
| {
|
|
197
|
+
value?: never;
|
|
198
|
+
address?: never;
|
|
199
|
+
calls: (Omit<
|
|
200
|
+
IContractWrite,
|
|
201
|
+
| "calls"
|
|
202
|
+
| "gasLimit"
|
|
203
|
+
| "account"
|
|
204
|
+
| "address"
|
|
205
|
+
| "message"
|
|
206
|
+
| "actionType"
|
|
207
|
+
| TxnEventKeys
|
|
208
|
+
> & {
|
|
209
|
+
address: Address;
|
|
210
|
+
})[];
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
declare global {
|
|
214
|
+
export namespace BeraJS {
|
|
215
|
+
export type BaseFunctionArgs = {
|
|
216
|
+
/**
|
|
217
|
+
* If only chainId is provided, config will be inferred from it
|
|
218
|
+
*
|
|
219
|
+
* @default `import { defaultChainId } from "@berachain/config/internal";`
|
|
220
|
+
*/
|
|
221
|
+
chainId?: ChainId;
|
|
222
|
+
/**
|
|
223
|
+
* A config to infer the default values of the other arguments
|
|
224
|
+
*
|
|
225
|
+
* @default chainConfigs[chainId]
|
|
226
|
+
*/
|
|
227
|
+
config?: BeraConfig;
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { AbiFunction, Address, Hex } from "viem";
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
ProposalVoteFragment,
|
|
5
|
+
ProposalWithVotesFragment,
|
|
6
|
+
} from "@berachain/graphql/governance";
|
|
7
|
+
|
|
8
|
+
export type Proposal = ProposalWithVotesFragment;
|
|
9
|
+
|
|
10
|
+
export type Vote = ProposalVoteFragment;
|
|
11
|
+
|
|
12
|
+
export type Voter = Address;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Maps the proposal state from the governor contract to a more human-readable format.
|
|
16
|
+
* Don't edit this enum manually, it's synced with the governor contract.
|
|
17
|
+
*
|
|
18
|
+
* @see https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/governance/IGovernor.sol
|
|
19
|
+
*/
|
|
20
|
+
export enum ProposalState {
|
|
21
|
+
Pending = 0,
|
|
22
|
+
Active = 1,
|
|
23
|
+
Canceled = 2,
|
|
24
|
+
Defeated = 3,
|
|
25
|
+
Succeeded = 4,
|
|
26
|
+
Queued = 5,
|
|
27
|
+
Expired = 6,
|
|
28
|
+
Executed = 7,
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type ProposalVotes = {
|
|
32
|
+
yes: number;
|
|
33
|
+
no: number;
|
|
34
|
+
abstain: number;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const VoteColorMap = {
|
|
38
|
+
yes: "#059669",
|
|
39
|
+
1: "#059669",
|
|
40
|
+
no: "#DC2629",
|
|
41
|
+
2: "#DC2629",
|
|
42
|
+
veto: "#0284C7",
|
|
43
|
+
4: "#0284C7",
|
|
44
|
+
abstain: "#78716c",
|
|
45
|
+
3: "#78716c",
|
|
46
|
+
yes_secondary: "#ECFDF5",
|
|
47
|
+
no_secondary: "#FEF2F2",
|
|
48
|
+
veto_secondary: "#F0F9FF",
|
|
49
|
+
abstain_secondary: "#E7E5E4",
|
|
50
|
+
default: "#57534e",
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export enum VoteEnum {
|
|
54
|
+
AGAINST = "no",
|
|
55
|
+
FOR = "yes",
|
|
56
|
+
ABSTAIN = "abstain",
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export type PROPOSAL_GENRE = "berahub" | "honey" | "bend" | "berps" | "general";
|
|
60
|
+
|
|
61
|
+
export type CustomProposalActionErrors = {
|
|
62
|
+
type?: null | ProposalErrorCodes;
|
|
63
|
+
target?: null | ProposalErrorCodes;
|
|
64
|
+
value?: null | ProposalErrorCodes;
|
|
65
|
+
ABI?: null | ProposalErrorCodes;
|
|
66
|
+
functionSignature?: null | ProposalErrorCodes;
|
|
67
|
+
args?: (null | ProposalErrorCodes)[];
|
|
68
|
+
vault?: null | ProposalErrorCodes;
|
|
69
|
+
isFriend?: null | ProposalErrorCodes;
|
|
70
|
+
to?: null | ProposalErrorCodes;
|
|
71
|
+
amount?: null | ProposalErrorCodes;
|
|
72
|
+
minIncentiveRate?: null | ProposalErrorCodes;
|
|
73
|
+
managerAddress?: null | ProposalErrorCodes;
|
|
74
|
+
input?: null | ProposalErrorCodes;
|
|
75
|
+
token?: null | ProposalErrorCodes;
|
|
76
|
+
rawCalldata?: null | ProposalErrorCodes;
|
|
77
|
+
message?: null | ProposalErrorCodes;
|
|
78
|
+
} | null;
|
|
79
|
+
|
|
80
|
+
export type CustomProposalErrors = {
|
|
81
|
+
title?: null | ProposalErrorCodes;
|
|
82
|
+
description?: null | ProposalErrorCodes;
|
|
83
|
+
forumLink?: null | ProposalErrorCodes;
|
|
84
|
+
actions?: CustomProposalActionErrors[];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export enum ProposalErrorCodes {
|
|
88
|
+
REQUIRED = "Required",
|
|
89
|
+
INVALID_AMOUNT = "Invalid amount",
|
|
90
|
+
NEGATIVE_AMOUNT = "Negative amount",
|
|
91
|
+
INVALID_ADDRESS = "Invalid address",
|
|
92
|
+
INVALID_ACTION = "Invalid action",
|
|
93
|
+
INVALID_ABI = "Invalid ABI",
|
|
94
|
+
MUST_BE_HTTPS = "Must be HTTPS",
|
|
95
|
+
MUST_BE_HTTPS_OR_IPFS = "Must be HTTPS or IPFS",
|
|
96
|
+
INVALID_BASEPATH = "Must be a berachain forum link",
|
|
97
|
+
/**
|
|
98
|
+
* Mainly used when it's not a reward vault
|
|
99
|
+
*/
|
|
100
|
+
INVALID_CONTRACT = "This is not a valid contract",
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export type GovernanceTopic = {
|
|
104
|
+
id: PROPOSAL_GENRE;
|
|
105
|
+
color: string;
|
|
106
|
+
icon: React.ReactNode;
|
|
107
|
+
iconBackground?: string;
|
|
108
|
+
name: string;
|
|
109
|
+
slug: string;
|
|
110
|
+
forumLink: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
comingSoon?: boolean;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export enum ProposalTypeEnum {
|
|
116
|
+
CUSTOM_PROPOSAL = "custom-action",
|
|
117
|
+
WHITELIST_REWARD_VAULT = "whitelist-reward-vault",
|
|
118
|
+
BLACKLIST_REWARD_VAULT = "blacklist-reward-vault",
|
|
119
|
+
ERC20_TRANSFER = "erc20-transfer",
|
|
120
|
+
WHITELIST_REWARD_VAULT_INCENTIVE = "whitelist-reward-vault-incentive",
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export type CustomProposal = {
|
|
124
|
+
title: string;
|
|
125
|
+
description: any;
|
|
126
|
+
actions: ProposalAction[];
|
|
127
|
+
forumLink: string;
|
|
128
|
+
topic: Set<PROPOSAL_GENRE>;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export type SafeProposalAction = {
|
|
132
|
+
value: bigint;
|
|
133
|
+
target: "" | Address;
|
|
134
|
+
} & (
|
|
135
|
+
| {
|
|
136
|
+
type: ProposalTypeEnum.CUSTOM_PROPOSAL;
|
|
137
|
+
input: "ABI" | "rawCalldata" | "message";
|
|
138
|
+
ABI: string;
|
|
139
|
+
_isVerifiedAbi?: boolean;
|
|
140
|
+
functionSignature: string;
|
|
141
|
+
args: string[];
|
|
142
|
+
rawCalldata: Hex;
|
|
143
|
+
message: string;
|
|
144
|
+
}
|
|
145
|
+
| {
|
|
146
|
+
type:
|
|
147
|
+
| ProposalTypeEnum.WHITELIST_REWARD_VAULT
|
|
148
|
+
| ProposalTypeEnum.BLACKLIST_REWARD_VAULT;
|
|
149
|
+
vault: Address;
|
|
150
|
+
}
|
|
151
|
+
| {
|
|
152
|
+
type: ProposalTypeEnum.ERC20_TRANSFER;
|
|
153
|
+
to: Address;
|
|
154
|
+
amount: string;
|
|
155
|
+
}
|
|
156
|
+
| {
|
|
157
|
+
type: ProposalTypeEnum.WHITELIST_REWARD_VAULT_INCENTIVE;
|
|
158
|
+
vault: Address;
|
|
159
|
+
token: Address;
|
|
160
|
+
minIncentiveRate: string;
|
|
161
|
+
managerAddress: Address;
|
|
162
|
+
}
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
export type ProposalAction = Partial<SafeProposalAction> & {
|
|
166
|
+
type: SafeProposalAction["type"];
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export type VerifiedAbi = {
|
|
170
|
+
abiItem?: AbiFunction;
|
|
171
|
+
functionName?: string;
|
|
172
|
+
args: readonly unknown[];
|
|
173
|
+
functionSignature?: string;
|
|
174
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Address, Hex } from "viem";
|
|
2
|
+
|
|
3
|
+
import type { HoneyPreviewResult } from "~/actions/honey/getHoneyPreview";
|
|
4
|
+
import type { TokenWithOrder } from "~/contexts/HoneyConfigProvider";
|
|
5
|
+
|
|
6
|
+
export enum HoneySwapAction {
|
|
7
|
+
RESET_AMOUNTS = "RESET_AMOUNTS",
|
|
8
|
+
ACTION_TYPE_CHANGE = "ACTION_TYPE_CHANGE",
|
|
9
|
+
COLLATERALS_CHANGE = "COLLATERALS_CHANGE",
|
|
10
|
+
FROM_AMOUNT_CHANGE = "FROM_AMOUNT_CHANGE",
|
|
11
|
+
TO_AMOUNT_CHANGE = "TO_AMOUNT_CHANGE",
|
|
12
|
+
PREVIEW_CHANGE = "PREVIEW_CHANGE",
|
|
13
|
+
IS_BASKET_MODE_ENABLED_CHANGE = "IS_BASKET_MODE_ENABLED_CHANGE",
|
|
14
|
+
IS_TYPING_CHANGE = "IS_TYPING_CHANGE",
|
|
15
|
+
IS_SUBMITTING_CHANGE = "IS_SUBMITTING_CHANGE",
|
|
16
|
+
IS_LOADING_CHANGE = "IS_LOADING_CHANGE",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type PythPriceFeedMap = Record<Address, Hex>;
|
|
20
|
+
|
|
21
|
+
export type HoneySwapActions =
|
|
22
|
+
| { type: HoneySwapAction.RESET_AMOUNTS }
|
|
23
|
+
| { type: HoneySwapAction.ACTION_TYPE_CHANGE; value: "mint" | "redeem" }
|
|
24
|
+
| { type: HoneySwapAction.COLLATERALS_CHANGE; value: TokenWithOrder[] }
|
|
25
|
+
| { type: HoneySwapAction.FROM_AMOUNT_CHANGE; index: number; value: string }
|
|
26
|
+
| { type: HoneySwapAction.TO_AMOUNT_CHANGE; index: number; value: string }
|
|
27
|
+
| {
|
|
28
|
+
type: HoneySwapAction.PREVIEW_CHANGE;
|
|
29
|
+
value: HoneyPreviewResult;
|
|
30
|
+
changedAsset: Address;
|
|
31
|
+
}
|
|
32
|
+
| { type: HoneySwapAction.IS_BASKET_MODE_ENABLED_CHANGE; value: boolean }
|
|
33
|
+
| { type: HoneySwapAction.IS_TYPING_CHANGE; value: boolean }
|
|
34
|
+
| { type: HoneySwapAction.IS_SUBMITTING_CHANGE; value: boolean }
|
|
35
|
+
| { type: HoneySwapAction.IS_LOADING_CHANGE; value: boolean };
|
package/src/types/pol.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
2
|
+
|
|
3
|
+
import type { ApiValidatorFragment } from "@berachain/graphql/pol/api";
|
|
4
|
+
|
|
5
|
+
import type { Token } from "./dex";
|
|
6
|
+
|
|
7
|
+
export type IncentiveReward = {
|
|
8
|
+
tokenMetadata: Token | undefined;
|
|
9
|
+
tokenPrice: number;
|
|
10
|
+
tokenValue: number;
|
|
11
|
+
id: string;
|
|
12
|
+
dist_id: string;
|
|
13
|
+
token: string;
|
|
14
|
+
recipient: string;
|
|
15
|
+
formattedAmount: string;
|
|
16
|
+
amount: string;
|
|
17
|
+
merkle_proof: string[];
|
|
18
|
+
available_at: number;
|
|
19
|
+
};
|
|
20
|
+
export interface IncentiveRewardChunksWithValidatorData {
|
|
21
|
+
validator: ApiValidatorFragment | undefined;
|
|
22
|
+
maxTimestamp: number | undefined;
|
|
23
|
+
minTimestamp: number | undefined;
|
|
24
|
+
totalValue: number;
|
|
25
|
+
tokenTotals: {
|
|
26
|
+
address: Address;
|
|
27
|
+
amount: number;
|
|
28
|
+
value: number;
|
|
29
|
+
metadata: Token | undefined;
|
|
30
|
+
}[];
|
|
31
|
+
rewards: IncentiveReward[];
|
|
32
|
+
isCurrent: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface AggregatedTokenTotals {
|
|
36
|
+
address: Address;
|
|
37
|
+
amount: number;
|
|
38
|
+
value: number;
|
|
39
|
+
metadata: Token | undefined;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type ClaimedIncentives = Record<string, string>;
|
|
43
|
+
|
|
44
|
+
export type ClaimedIncentivesLocalState = Record<string, ClaimedIncentives>;
|
|
45
|
+
|
|
46
|
+
export interface UserVaultInfo {
|
|
47
|
+
balance: bigint;
|
|
48
|
+
delegatedBalance: bigint;
|
|
49
|
+
withdrawableBalance: bigint;
|
|
50
|
+
rewards: string;
|
|
51
|
+
percentage: string;
|
|
52
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RequestError } from "~/errors/RequestError";
|
|
2
|
+
import { getErrorResponse } from "./getErrorResponse";
|
|
3
|
+
|
|
4
|
+
type RequestOptions = RequestInit;
|
|
5
|
+
|
|
6
|
+
export async function beraFetch(
|
|
7
|
+
endpoint: ConstructorParameters<typeof RequestError>[0]["endpoint"],
|
|
8
|
+
options?: RequestOptions,
|
|
9
|
+
) {
|
|
10
|
+
try {
|
|
11
|
+
const response = await fetch(
|
|
12
|
+
typeof endpoint === "string" || endpoint instanceof URL
|
|
13
|
+
? endpoint
|
|
14
|
+
: endpoint.url,
|
|
15
|
+
{
|
|
16
|
+
...options,
|
|
17
|
+
},
|
|
18
|
+
);
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
const error = await getErrorResponse(response);
|
|
21
|
+
throw new RequestError({
|
|
22
|
+
cause: error,
|
|
23
|
+
// @to-do import getErrorResponse logic in this function
|
|
24
|
+
// when it's removed from other places
|
|
25
|
+
response: response,
|
|
26
|
+
endpoint,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return response;
|
|
30
|
+
} catch (error) {
|
|
31
|
+
if (error instanceof RequestError) {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
throw new RequestError({
|
|
36
|
+
cause: error,
|
|
37
|
+
endpoint,
|
|
38
|
+
response: undefined,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export async function beraFetchJson<T>(
|
|
44
|
+
endpoint: ConstructorParameters<typeof RequestError>[0]["endpoint"],
|
|
45
|
+
options?: RequestOptions,
|
|
46
|
+
) {
|
|
47
|
+
const response = await beraFetch(endpoint, {
|
|
48
|
+
...options,
|
|
49
|
+
headers: {
|
|
50
|
+
Accept: "application/json",
|
|
51
|
+
...options?.headers,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
return response.json() as Promise<T>;
|
|
55
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { parseEther } from "viem";
|
|
2
|
+
|
|
3
|
+
// the buffer of the cap limit, if the user gets close to 10% of the cap limit
|
|
4
|
+
// they should be warned
|
|
5
|
+
export const CAP_LIMIT_BUFFER = parseEther("0.005");
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Maximum allowed input for a custom deadline in seconds.
|
|
9
|
+
* @type {number}
|
|
10
|
+
*/
|
|
11
|
+
export const MAX_CUSTOM_DEADLINE = 100000;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Minimum allowed input for a custom deadline in seconds.
|
|
15
|
+
* @type {number}
|
|
16
|
+
*/
|
|
17
|
+
export const MIN_CUSTOM_DEADLINE = 1;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Minimum allowed input for a custom slippage tolerance percentage.
|
|
21
|
+
* @type {number}
|
|
22
|
+
*/
|
|
23
|
+
export const MIN_CUSTOM_SLIPPAGE = 0.1;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Maximum allowed input for a custom slippage tolerance percentage.
|
|
27
|
+
* @type {number}
|
|
28
|
+
*/
|
|
29
|
+
export const MAX_CUSTOM_SLIPPAGE = 50;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Default gas limit used by MetaMask
|
|
33
|
+
* @see {@link https://github.com/MetaMask/metamask-extension/blob/06cf7459b963e26d0ae60312d4f9a342d07ab89d/ui/pages/confirmations/send/send.constants.js#L8}
|
|
34
|
+
*/
|
|
35
|
+
export const DEFAULT_METAMASK_GAS_LIMIT = 7920027n;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
import { formatUnits } from "viem";
|
|
3
|
+
|
|
4
|
+
import type { IAggregatorQuote, IRawAggregatorQuote, Token } from "~/types";
|
|
5
|
+
import { computePriceImpact } from "./math";
|
|
6
|
+
|
|
7
|
+
export const formatAggregatorsQuotes = (
|
|
8
|
+
rawQuotes: (IRawAggregatorQuote | IRawAggregatorQuote<false>)[],
|
|
9
|
+
selectedFrom: Token | undefined,
|
|
10
|
+
selectedTo: Token | undefined,
|
|
11
|
+
tokenInPrice: number,
|
|
12
|
+
tokenOutPrice: number,
|
|
13
|
+
): IAggregatorQuote[] =>
|
|
14
|
+
rawQuotes
|
|
15
|
+
.map((quote) => {
|
|
16
|
+
const amountOut = formatUnits(
|
|
17
|
+
BigInt(quote.amountOut),
|
|
18
|
+
selectedTo?.decimals || 18,
|
|
19
|
+
);
|
|
20
|
+
const amountIn = formatUnits(
|
|
21
|
+
BigInt(quote.amountIn),
|
|
22
|
+
selectedFrom?.decimals || 18,
|
|
23
|
+
);
|
|
24
|
+
const amountOutUsd = new BigNumber(amountOut)
|
|
25
|
+
.times(tokenOutPrice)
|
|
26
|
+
.toFixed();
|
|
27
|
+
const amountInUsd = new BigNumber(amountIn).times(tokenInPrice).toFixed();
|
|
28
|
+
const priceImpactPercentage = computePriceImpact(
|
|
29
|
+
(tokenInPrice || 0).toString(),
|
|
30
|
+
(tokenOutPrice || 0).toString(),
|
|
31
|
+
amountIn,
|
|
32
|
+
amountOut,
|
|
33
|
+
);
|
|
34
|
+
return {
|
|
35
|
+
...quote,
|
|
36
|
+
exchangeRate: new BigNumber(amountOut).div(amountIn).toNumber(),
|
|
37
|
+
amountIn,
|
|
38
|
+
amountOut,
|
|
39
|
+
amountOutUsd,
|
|
40
|
+
amountInUsd,
|
|
41
|
+
priceImpactPercentage,
|
|
42
|
+
};
|
|
43
|
+
})
|
|
44
|
+
.sort((a, b) => new BigNumber(b.amountOut).minus(a.amountOut).toNumber())
|
|
45
|
+
.map((quote, _, allQuotes) => ({
|
|
46
|
+
...quote,
|
|
47
|
+
relativeLossPercentage: computePriceImpact(
|
|
48
|
+
// hardcoded to 1 since we're calculating relative loss percentage
|
|
49
|
+
// between this quote's output amount and the best quote's output amount.
|
|
50
|
+
// The input amounts are the same for all quotes, so we use 1 as a base
|
|
51
|
+
// to get the pure percentage difference between outputs.
|
|
52
|
+
"1",
|
|
53
|
+
"1",
|
|
54
|
+
allQuotes[0].amountOut,
|
|
55
|
+
quote.amountOut,
|
|
56
|
+
),
|
|
57
|
+
}));
|