@ape.swap/bonds-sdk 6.2.28 → 7.0.0-test.0
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/README.md +205 -114
- package/dist/adapters/all/index.d.ts +13 -0
- package/dist/adapters/all/index.js +15 -0
- package/dist/adapters/all/index.js.map +1 -0
- package/dist/{views/YourBondsModal/components/Actions → adapters/aptos}/ActionsAptos.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/Actions → adapters/aptos}/ActionsAptos.js +11 -11
- package/dist/adapters/aptos/ActionsAptos.js.map +1 -0
- package/dist/adapters/aptos/AptosAccountBridge.d.ts +3 -0
- package/dist/adapters/aptos/AptosAccountBridge.js +12 -0
- package/dist/adapters/aptos/AptosAccountBridge.js.map +1 -0
- package/dist/{views/BuyBond → adapters/aptos}/BuyComponentAptos.js +8 -8
- package/dist/adapters/aptos/BuyComponentAptos.js.map +1 -0
- package/dist/adapters/aptos/ClaimAllActionAptos.d.ts +5 -0
- package/dist/adapters/aptos/ClaimAllActionAptos.js +73 -0
- package/dist/adapters/aptos/ClaimAllActionAptos.js.map +1 -0
- package/dist/{components/ConnectAptosWalletButton → adapters/aptos}/ConnectAptosWalletButton.js +2 -2
- package/dist/adapters/aptos/ConnectAptosWalletButton.js.map +1 -0
- package/dist/{components/ConnectoToVmBanners → adapters/aptos}/ConnectToAptosBanner.js +4 -4
- package/dist/adapters/aptos/ConnectToAptosBanner.js.map +1 -0
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/aptos}/TransferActionAptos.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/aptos}/TransferActionAptos.js +1 -1
- package/dist/adapters/aptos/TransferActionAptos.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/aptos}/UserBondRowAptos.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/aptos}/UserBondRowAptos.js +22 -22
- package/dist/adapters/aptos/UserBondRowAptos.js.map +1 -0
- package/dist/{utils → adapters/aptos}/aptosHelpers.d.ts +1 -1
- package/dist/{utils → adapters/aptos}/aptosHelpers.js +1 -1
- package/dist/adapters/aptos/aptosHelpers.js.map +1 -0
- package/dist/{state/bonds/fetchBondsData → adapters/aptos}/fetchBondsDataAptos.d.ts +2 -2
- package/dist/{state/bonds/fetchBondsData → adapters/aptos}/fetchBondsDataAptos.js +3 -3
- package/dist/adapters/aptos/fetchBondsDataAptos.js.map +1 -0
- package/dist/{state/bonds/fetchUsersBonds → adapters/aptos}/fetchUsersBondsAptos.d.ts +2 -2
- package/dist/{state/bonds/fetchUsersBonds → adapters/aptos}/fetchUsersBondsAptos.js +4 -4
- package/dist/adapters/aptos/fetchUsersBondsAptos.js.map +1 -0
- package/dist/adapters/aptos/index.d.ts +6 -0
- package/dist/adapters/aptos/index.js +37 -0
- package/dist/adapters/aptos/index.js.map +1 -0
- package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.js +1 -1
- package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.js.map +1 -1
- package/dist/adapters/aptos/useAptosZapQuote.js.map +1 -0
- package/dist/{state/balance → adapters/aptos}/useCurrencyBalanceAptos.js +1 -1
- package/dist/adapters/aptos/useCurrencyBalanceAptos.js.map +1 -0
- package/dist/{views/YourBondsModal/components/Actions → adapters/evm}/Actions.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/Actions → adapters/evm}/Actions.js +18 -18
- package/dist/adapters/evm/Actions.js.map +1 -0
- package/dist/adapters/evm/BuyComponent.d.ts +5 -0
- package/dist/{views/BuyBond → adapters/evm}/BuyComponent.js +44 -27
- package/dist/adapters/evm/BuyComponent.js.map +1 -0
- package/dist/adapters/evm/ClaimAllActionEVM.d.ts +5 -0
- package/dist/adapters/evm/ClaimAllActionEVM.js +60 -0
- package/dist/adapters/evm/ClaimAllActionEVM.js.map +1 -0
- package/dist/{components/ConnectoToVmBanners → adapters/evm}/ConnectToEvmBanner.js +3 -3
- package/dist/adapters/evm/ConnectToEvmBanner.js.map +1 -0
- package/dist/adapters/evm/EvmAccountBridge.d.ts +6 -0
- package/dist/adapters/evm/EvmAccountBridge.js +15 -0
- package/dist/adapters/evm/EvmAccountBridge.js.map +1 -0
- package/dist/{views/TransactionModal → adapters/evm}/TransactionModal.d.ts +1 -1
- package/dist/{views/TransactionModal → adapters/evm}/TransactionModal.js +5 -4
- package/dist/adapters/evm/TransactionModal.js.map +1 -0
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/evm}/TransferAction.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/evm}/TransferAction.js +8 -8
- package/dist/adapters/evm/TransferAction.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm}/UserBondRow.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm}/UserBondRow.js +27 -27
- package/dist/adapters/evm/UserBondRow.js.map +1 -0
- package/dist/adapters/evm/balances.d.ts +6 -0
- package/dist/adapters/evm/balances.js +61 -0
- package/dist/adapters/evm/balances.js.map +1 -0
- package/dist/{state/bonds/fetchBondsData → adapters/evm}/fetchBondsDataEVM.d.ts +2 -2
- package/dist/{state/bonds/fetchBondsData → adapters/evm}/fetchBondsDataEVM.js +8 -8
- package/dist/adapters/evm/fetchBondsDataEVM.js.map +1 -0
- package/dist/{state/bonds/fetchUsersBonds → adapters/evm}/fetchUsersBondsEVM.d.ts +2 -2
- package/dist/{state/bonds/fetchUsersBonds → adapters/evm}/fetchUsersBondsEVM.js +4 -4
- package/dist/adapters/evm/fetchUsersBondsEVM.js.map +1 -0
- package/dist/adapters/evm/getTierPoints.d.ts +3 -0
- package/dist/adapters/evm/getTierPoints.js +48 -0
- package/dist/adapters/evm/getTierPoints.js.map +1 -0
- package/dist/adapters/evm/index.d.ts +6 -0
- package/dist/adapters/evm/index.js +53 -0
- package/dist/adapters/evm/index.js.map +1 -0
- package/dist/{utils → adapters/evm}/multicall.js +3 -3
- package/dist/adapters/evm/multicall.js.map +1 -0
- package/dist/{views/BuyBond → adapters/evm/preTGE}/BuyComponentPreTGE.js +27 -27
- package/dist/adapters/evm/preTGE/BuyComponentPreTGE.js.map +1 -0
- package/dist/{views/Bonds/components/BondRows → adapters/evm/preTGE}/ModalHandlerPreTGE.js +4 -4
- package/dist/adapters/evm/preTGE/ModalHandlerPreTGE.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/PreTGEActions.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/PreTGEActions.js +9 -9
- package/dist/adapters/evm/preTGE/PreTGEActions.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowPreTGE.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowPreTGE.js +9 -9
- package/dist/adapters/evm/preTGE/UserBondRowPreTGE.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowYield.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/evm/preTGE}/UserBondRowYield.js +11 -11
- package/dist/adapters/evm/preTGE/UserBondRowYield.js.map +1 -0
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/YourBondsModalYield.d.ts +1 -1
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/YourBondsModalYield.js +22 -22
- package/dist/adapters/evm/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +1 -0
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.d.ts +1 -1
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +10 -10
- package/dist/adapters/evm/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -0
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.d.ts +1 -1
- package/dist/{views → adapters/evm/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js +5 -5
- package/dist/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -0
- package/dist/{state/bonds/fetchBondsData → adapters/evm/preTGE}/fetchBondsDataPreTGE.d.ts +1 -1
- package/dist/{state/bonds/fetchBondsData → adapters/evm/preTGE}/fetchBondsDataPreTGE.js +1 -1
- package/dist/adapters/evm/preTGE/fetchBondsDataPreTGE.js.map +1 -0
- package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.d.ts +5 -0
- package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js +204 -0
- package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js.map +1 -0
- package/dist/{state/allowance → adapters/evm}/useAllowance.js +4 -4
- package/dist/adapters/evm/useAllowance.js.map +1 -0
- package/dist/adapters/evm/useEVMAccount.js.map +1 -0
- package/dist/{hooks → adapters/evm}/useMonitorTx.js +1 -1
- package/dist/adapters/evm/useMonitorTx.js.map +1 -0
- package/dist/{state/zap → adapters/evm}/useSoulZapBondQuote.js +5 -14
- package/dist/adapters/evm/useSoulZapBondQuote.js.map +1 -0
- package/dist/{state/bonds → adapters/evm}/useTierProofSignature.js +2 -2
- package/dist/adapters/evm/useTierProofSignature.js.map +1 -0
- package/dist/adapters/lifi/LifiModal.d.ts +4 -0
- package/dist/{views/LifiModal → adapters/lifi}/LifiModal.js +9 -5
- package/dist/adapters/lifi/LifiModal.js.map +1 -0
- package/dist/adapters/lifi/index.d.ts +6 -0
- package/dist/adapters/lifi/index.js +34 -0
- package/dist/adapters/lifi/index.js.map +1 -0
- package/dist/adapters/registry.d.ts +8 -0
- package/dist/adapters/registry.js +24 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/{views/YourBondsModal/components/Actions → adapters/solana}/ActionsSolana.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/Actions → adapters/solana}/ActionsSolana.js +13 -13
- package/dist/adapters/solana/ActionsSolana.js.map +1 -0
- package/dist/{views/BuyBond → adapters/solana}/BuyComponentSolana.js +18 -15
- package/dist/adapters/solana/BuyComponentSolana.js.map +1 -0
- package/dist/{components/ConnectSolanaWalletButton → adapters/solana}/ConnectSolanaWalletButton.js +2 -2
- package/dist/adapters/solana/ConnectSolanaWalletButton.js.map +1 -0
- package/dist/{components/ConnectoToVmBanners → adapters/solana}/ConnectToSolanaBanner.js +3 -3
- package/dist/adapters/solana/ConnectToSolanaBanner.js.map +1 -0
- package/dist/adapters/solana/SolanaAccountBridge.d.ts +3 -0
- package/dist/adapters/solana/SolanaAccountBridge.js +13 -0
- package/dist/adapters/solana/SolanaAccountBridge.js.map +1 -0
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/solana}/TransferActionSolana.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/solana}/TransferActionSolana.js +6 -6
- package/dist/adapters/solana/TransferActionSolana.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/solana}/UserBondRowSolana.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/solana}/UserBondRowSolana.js +23 -23
- package/dist/adapters/solana/UserBondRowSolana.js.map +1 -0
- package/dist/{utils → adapters/solana}/calculateSolanaTrueBillPrice.js +1 -1
- package/dist/adapters/solana/calculateSolanaTrueBillPrice.js.map +1 -0
- package/dist/{types → adapters/solana/codecs}/bondCodec.d.ts +2 -2
- package/dist/{types → adapters/solana/codecs}/bondCodec.js +2 -3
- package/dist/adapters/solana/codecs/bondCodec.js.map +1 -0
- package/dist/{types → adapters/solana/codecs}/bondIssuanceCodec.d.ts +2 -2
- package/dist/{types → adapters/solana/codecs}/bondIssuanceCodec.js +2 -3
- package/dist/adapters/solana/codecs/bondIssuanceCodec.js.map +1 -0
- package/dist/{types → adapters/solana/codecs}/bondPricingCodec.d.ts +1 -1
- package/dist/{types → adapters/solana/codecs}/bondPricingCodec.js +2 -2
- package/dist/adapters/solana/codecs/bondPricingCodec.js.map +1 -0
- package/dist/{types → adapters/solana/codecs}/bondTermCodec.d.ts +1 -1
- package/dist/{types → adapters/solana/codecs}/bondTermCodec.js +2 -2
- package/dist/adapters/solana/codecs/bondTermCodec.js.map +1 -0
- package/dist/adapters/solana/derivePda.js.map +1 -0
- package/dist/{state/bonds/fetchBondsData → adapters/solana}/fetchBondsDataSOL.d.ts +2 -2
- package/dist/{state/bonds/fetchBondsData → adapters/solana}/fetchBondsDataSOL.js +8 -8
- package/dist/adapters/solana/fetchBondsDataSOL.js.map +1 -0
- package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.d.ts +2 -2
- package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.js +5 -5
- package/dist/{state/bonds/fetchUsersBonds → adapters/solana}/fetchUsersBondsSOL.js.map +1 -1
- package/dist/{utils → adapters/solana}/getSolanaAccount.d.ts +1 -1
- package/dist/{utils → adapters/solana}/getSolanaAccount.js +4 -4
- package/dist/adapters/solana/getSolanaAccount.js.map +1 -0
- package/dist/adapters/solana/index.d.ts +8 -0
- package/dist/adapters/solana/index.js +40 -0
- package/dist/adapters/solana/index.js.map +1 -0
- package/dist/adapters/solana/polyfills.d.ts +1 -0
- package/dist/adapters/solana/polyfills.js +7 -0
- package/dist/adapters/solana/polyfills.js.map +1 -0
- package/dist/adapters/solana/solanaAtaHelper.js.map +1 -0
- package/dist/{constants → adapters/solana}/solanaConstants.js +1 -1
- package/dist/adapters/solana/solanaConstants.js.map +1 -0
- package/dist/adapters/solana/solanaMulticall.js.map +1 -0
- package/dist/{utils → adapters/solana}/solanaRpc.js +2 -2
- package/dist/adapters/solana/solanaRpc.js.map +1 -0
- package/dist/{state/balance → adapters/solana}/useCurrencyBalanceSolana.d.ts +4 -0
- package/dist/{state/balance → adapters/solana}/useCurrencyBalanceSolana.js +9 -2
- package/dist/adapters/solana/useCurrencyBalanceSolana.js.map +1 -0
- package/dist/adapters/solana/useJupiterSolanaQuote.js.map +1 -0
- package/dist/adapters/solana/useSOLAccount.js.map +1 -0
- package/dist/{views/YourBondsModal/components/Actions → adapters/sui}/ActionsSui.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/Actions → adapters/sui}/ActionsSui.js +11 -11
- package/dist/adapters/sui/ActionsSui.js.map +1 -0
- package/dist/{views/BuyBond → adapters/sui}/BuyComponentSui.js +9 -9
- package/dist/adapters/sui/BuyComponentSui.js.map +1 -0
- package/dist/adapters/sui/ClaimAllActionSui.d.ts +5 -0
- package/dist/adapters/sui/ClaimAllActionSui.js +89 -0
- package/dist/adapters/sui/ClaimAllActionSui.js.map +1 -0
- package/dist/{components/ConnectoToVmBanners → adapters/sui}/ConnectToSuiBanner.js +4 -4
- package/dist/adapters/sui/ConnectToSuiBanner.js.map +1 -0
- package/dist/adapters/sui/SuiAccountBridge.d.ts +3 -0
- package/dist/adapters/sui/SuiAccountBridge.js +12 -0
- package/dist/adapters/sui/SuiAccountBridge.js.map +1 -0
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/sui}/TransferActionSui.d.ts +1 -1
- package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/sui}/TransferActionSui.js +7 -7
- package/dist/adapters/sui/TransferActionSui.js.map +1 -0
- package/dist/{views/YourBonds/components/UserBondRow → adapters/sui}/UserBondRowSui.d.ts +1 -1
- package/dist/{views/YourBonds/components/UserBondRow → adapters/sui}/UserBondRowSui.js +22 -22
- package/dist/adapters/sui/UserBondRowSui.js.map +1 -0
- package/dist/{state/bonds/fetchBondsData → adapters/sui}/fetchBondsDataSui.d.ts +2 -2
- package/dist/{state/bonds/fetchBondsData → adapters/sui}/fetchBondsDataSui.js +3 -3
- package/dist/adapters/sui/fetchBondsDataSui.js.map +1 -0
- package/dist/{state/bonds/fetchUsersBonds → adapters/sui}/fetchUsersBondsSUI.d.ts +2 -2
- package/dist/{state/bonds/fetchUsersBonds → adapters/sui}/fetchUsersBondsSUI.js +4 -4
- package/dist/adapters/sui/fetchUsersBondsSUI.js.map +1 -0
- package/dist/adapters/sui/index.d.ts +6 -0
- package/dist/adapters/sui/index.js +37 -0
- package/dist/adapters/sui/index.js.map +1 -0
- package/dist/adapters/sui/suiConstants.js.map +1 -0
- package/dist/{utils → adapters/sui}/suiHelpers.js +1 -1
- package/dist/adapters/sui/suiHelpers.js.map +1 -0
- package/dist/adapters/sui/suiZapTokens.js.map +1 -0
- package/dist/{state/balance → adapters/sui}/useCurrencyBalanceSui.js +1 -1
- package/dist/adapters/sui/useCurrencyBalanceSui.js.map +1 -0
- package/dist/adapters/sui/useSUIAccount.js.map +1 -0
- package/dist/{state/zap → adapters/sui}/useSuiZapQuote.js +1 -1
- package/dist/adapters/sui/useSuiZapQuote.js.map +1 -0
- package/dist/adapters/types.d.ts +110 -0
- package/dist/components/TokenSelectorPanel/index.js +6 -16
- package/dist/components/TokenSelectorPanel/index.js.map +1 -1
- package/dist/config/constants/chains.d.ts +0 -2
- package/dist/config/constants/chains.js +0 -2
- package/dist/config/constants/chains.js.map +1 -1
- package/dist/config/constants/queryKeys.d.ts +1 -0
- package/dist/config/constants/queryKeys.js +1 -0
- package/dist/config/constants/queryKeys.js.map +1 -1
- package/dist/config/constants/variables.d.ts +0 -1
- package/dist/config/constants/variables.js +1 -19
- package/dist/config/constants/variables.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/providers/index.js +3 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/state/balance/useCurrencyBalance.js +3 -23
- package/dist/state/balance/useCurrencyBalance.js.map +1 -1
- package/dist/state/balance/useUserTokensBalance.js +8 -78
- package/dist/state/balance/useUserTokensBalance.js.map +1 -1
- package/dist/state/bonds/fetchBondsData/{cleanBillsData.js → bondPricing.js} +1 -1
- package/dist/state/bonds/fetchBondsData/bondPricing.js.map +1 -0
- package/dist/state/bonds/useBondsData.js +23 -35
- package/dist/state/bonds/useBondsData.js.map +1 -1
- package/dist/state/bonds/useUserBonds.d.ts +3 -1
- package/dist/state/bonds/useUserBonds.js +21 -33
- package/dist/state/bonds/useUserBonds.js.map +1 -1
- package/dist/state/bonds/useUserBondsPreTGE.d.ts +1 -2
- package/dist/state/bonds/useUserBondsPreTGE.js +7 -203
- package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
- package/dist/state/chainAccount/useChainAccount.d.ts +13 -0
- package/dist/state/chainAccount/useChainAccount.js +30 -0
- package/dist/state/chainAccount/useChainAccount.js.map +1 -0
- package/dist/state/hotBonds/useHotBonds.js +1 -1
- package/dist/state/hotBonds/useHotBonds.js.map +1 -1
- package/dist/state/tiers/tiers.d.ts +66 -0
- package/dist/state/tiers/tiers.js +97 -0
- package/dist/state/tiers/tiers.js.map +1 -0
- package/dist/state/tiers/useTierPoints.d.ts +2 -66
- package/dist/state/tiers/useTierPoints.js +13 -145
- package/dist/state/tiers/useTierPoints.js.map +1 -1
- package/dist/state/useSDKConfig.d.ts +3 -0
- package/dist/state/useSDKConfig.js +53 -6
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils/displayHelpers.js +1 -1
- package/dist/utils/displayHelpers.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/BondRow.js +6 -2
- package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ModalHandler.js +8 -35
- package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js +2 -1
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
- package/dist/views/Bonds/components/CheckURL/index.js +8 -4
- package/dist/views/Bonds/components/CheckURL/index.js.map +1 -1
- package/dist/views/Bonds/components/RecommendationCards/index.js +3 -3
- package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -1
- package/dist/views/Bonds/utils.js +1 -1
- package/dist/views/Bonds/utils.js.map +1 -1
- package/dist/views/BuyBond/BuyBondModal.js +2 -7
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
- package/dist/views/BuyBond/ChainBuyComponent.d.ts +5 -0
- package/dist/views/BuyBond/ChainBuyComponent.js +11 -0
- package/dist/views/BuyBond/ChainBuyComponent.js.map +1 -0
- package/dist/views/BuyBond/components/BondModalHeader.js +2 -1
- package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js +1 -1
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -1
- package/dist/views/BuyBond/components/Estimations.js +2 -1
- package/dist/views/BuyBond/components/Estimations.js.map +1 -1
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +2 -1
- package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
- package/dist/views/BuyBond/index.d.ts +2 -2
- package/dist/views/BuyBond/index.js.map +1 -1
- package/dist/views/BuyBond/utils.js +1 -1
- package/dist/views/BuyBond/utils.js.map +1 -1
- package/dist/views/ProjectView/ProjectView.js +2 -2
- package/dist/views/ProjectView/ProjectView.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js +2 -2
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js +2 -2
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
- package/dist/views/ProjectView/components/PriceChart/index.js +1 -1
- package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -1
- package/dist/views/ProjectView/components/RecommendationCards/index.js +4 -4
- package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
- package/dist/views/SingleBond/SingleBond.js +2 -2
- package/dist/views/SingleBond/SingleBond.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +4 -3
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/YourBonds/YourBonds.js +25 -28
- package/dist/views/YourBonds/YourBonds.js.map +1 -1
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +8 -175
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -1
- package/dist/views/YourBonds/components/ClaimAll/index.js +4 -6
- package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -1
- package/dist/views/YourBondsModal/YourBondsModal.js +3 -5
- package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -1
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +3 -3
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +3 -6
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
- package/package.json +88 -5
- package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js.map +0 -1
- package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js.map +0 -1
- package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js.map +0 -1
- package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js.map +0 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +0 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js.map +0 -1
- package/dist/config/constants/suiZapTokens.js.map +0 -1
- package/dist/constants/solanaConstants.js.map +0 -1
- package/dist/constants/suiConstants.js.map +0 -1
- package/dist/hooks/accounts/useEVMAccount.js.map +0 -1
- package/dist/hooks/accounts/useSOLAccount.js.map +0 -1
- package/dist/hooks/accounts/useSUIAccount.js.map +0 -1
- package/dist/hooks/useMonitorTx.js.map +0 -1
- package/dist/providers/AptosWalletProvider.d.ts +0 -5
- package/dist/providers/SolanaWalletProvider.d.ts +0 -5
- package/dist/providers/SuiWalletProvider.d.ts +0 -5
- package/dist/state/allowance/useAllowance.js.map +0 -1
- package/dist/state/balance/useCurrencyBalanceAptos.js.map +0 -1
- package/dist/state/balance/useCurrencyBalanceSolana.js.map +0 -1
- package/dist/state/balance/useCurrencyBalanceSui.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/cleanBillsData.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataPreTGE.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js.map +0 -1
- package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js.map +0 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsAptos.js.map +0 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +0 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSUI.js.map +0 -1
- package/dist/state/bonds/useTierProofSignature.js.map +0 -1
- package/dist/state/zap/useAptosZapQuote.js.map +0 -1
- package/dist/state/zap/useJupiterSolanaQuote.js.map +0 -1
- package/dist/state/zap/useSoulZapBondQuote.js.map +0 -1
- package/dist/state/zap/useSuiZapQuote.js.map +0 -1
- package/dist/types/bondCodec.js.map +0 -1
- package/dist/types/bondIssuanceCodec.js.map +0 -1
- package/dist/types/bondPricingCodec.js.map +0 -1
- package/dist/types/bondTermCodec.js.map +0 -1
- package/dist/utils/aptosHelpers.js.map +0 -1
- package/dist/utils/calculateSolanaTrueBillPrice.js.map +0 -1
- package/dist/utils/derivePda.js.map +0 -1
- package/dist/utils/getSolanaAccount.js.map +0 -1
- package/dist/utils/multicall.js.map +0 -1
- package/dist/utils/solanaAtaHelper.js.map +0 -1
- package/dist/utils/solanaMulticall.js.map +0 -1
- package/dist/utils/solanaRpc.js.map +0 -1
- package/dist/utils/suiHelpers.js.map +0 -1
- package/dist/views/Bonds/components/BondRows/ModalHandlerPreTGE.js.map +0 -1
- package/dist/views/BuyBond/BuyComponent.d.ts +0 -11
- package/dist/views/BuyBond/BuyComponent.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentAptos.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentPreTGE.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentSolana.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentSui.js.map +0 -1
- package/dist/views/LifiModal/LifiModal.d.ts +0 -6
- package/dist/views/LifiModal/LifiModal.js.map +0 -1
- package/dist/views/TransactionModal/TransactionModal.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowAptos.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowYield.js.map +0 -1
- package/dist/views/YourBonds/components/UserBondRow/index.d.ts +0 -5
- package/dist/views/YourBondsModal/components/Actions/Actions.js.map +0 -1
- package/dist/views/YourBondsModal/components/Actions/ActionsAptos.js.map +0 -1
- package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js.map +0 -1
- package/dist/views/YourBondsModal/components/Actions/ActionsSui.js.map +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionAptos.js.map +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js.map +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js.map +0 -1
- package/dist/views/YourBondsModalYield/YourBondsModalYield.js.map +0 -1
- package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +0 -1
- package/dist/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +0 -1
- /package/dist/{views/BuyBond → adapters/aptos}/BuyComponentAptos.d.ts +0 -0
- /package/dist/{components/ConnectAptosWalletButton → adapters/aptos}/ConnectAptosWalletButton.d.ts +0 -0
- /package/dist/{components/ConnectoToVmBanners → adapters/aptos}/ConnectToAptosBanner.d.ts +0 -0
- /package/dist/{types → adapters/aptos}/aptosBonds.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/aptos}/useAPTAccount.d.ts +0 -0
- /package/dist/{state/zap → adapters/aptos}/useAptosZapQuote.d.ts +0 -0
- /package/dist/{state/zap → adapters/aptos}/useAptosZapQuote.js +0 -0
- /package/dist/{state/balance → adapters/aptos}/useCurrencyBalanceAptos.d.ts +0 -0
- /package/dist/{components/ConnectoToVmBanners → adapters/evm}/ConnectToEvmBanner.d.ts +0 -0
- /package/dist/{utils → adapters/evm}/multicall.d.ts +0 -0
- /package/dist/{views/BuyBond → adapters/evm/preTGE}/BuyComponentPreTGE.d.ts +0 -0
- /package/dist/{views/Bonds/components/BondRows → adapters/evm/preTGE}/ModalHandlerPreTGE.d.ts +0 -0
- /package/dist/{state/allowance → adapters/evm}/useAllowance.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/evm}/useEVMAccount.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/evm}/useEVMAccount.js +0 -0
- /package/dist/{hooks → adapters/evm}/useMonitorTx.d.ts +0 -0
- /package/dist/{state/zap → adapters/evm}/useSoulZapBondQuote.d.ts +0 -0
- /package/dist/{state/bonds → adapters/evm}/useTierProofSignature.d.ts +0 -0
- /package/dist/{views/BuyBond → adapters/solana}/BuyComponentSolana.d.ts +0 -0
- /package/dist/{components/ConnectSolanaWalletButton → adapters/solana}/ConnectSolanaWalletButton.d.ts +0 -0
- /package/dist/{components/ConnectoToVmBanners → adapters/solana}/ConnectToSolanaBanner.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/calculateSolanaTrueBillPrice.d.ts +0 -0
- /package/dist/{types → adapters/solana/codecs}/index.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/derivePda.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/derivePda.js +0 -0
- /package/dist/{types → adapters/solana}/helius.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/solanaAtaHelper.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/solanaAtaHelper.js +0 -0
- /package/dist/{types → adapters/solana}/solanaBonds.d.ts +0 -0
- /package/dist/{constants → adapters/solana}/solanaConstants.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/solanaMulticall.d.ts +0 -0
- /package/dist/{utils → adapters/solana}/solanaMulticall.js +0 -0
- /package/dist/{utils → adapters/solana}/solanaRpc.d.ts +0 -0
- /package/dist/{state/zap → adapters/solana}/useJupiterSolanaQuote.d.ts +0 -0
- /package/dist/{state/zap → adapters/solana}/useJupiterSolanaQuote.js +0 -0
- /package/dist/{hooks/accounts → adapters/solana}/useSOLAccount.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/solana}/useSOLAccount.js +0 -0
- /package/dist/{views/BuyBond → adapters/sui}/BuyComponentSui.d.ts +0 -0
- /package/dist/{components/ConnectoToVmBanners → adapters/sui}/ConnectToSuiBanner.d.ts +0 -0
- /package/dist/{constants → adapters/sui}/suiConstants.d.ts +0 -0
- /package/dist/{constants → adapters/sui}/suiConstants.js +0 -0
- /package/dist/{utils → adapters/sui}/suiHelpers.d.ts +0 -0
- /package/dist/{config/constants → adapters/sui}/suiZapTokens.d.ts +0 -0
- /package/dist/{config/constants → adapters/sui}/suiZapTokens.js +0 -0
- /package/dist/{state/balance → adapters/sui}/useCurrencyBalanceSui.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/sui}/useSUIAccount.d.ts +0 -0
- /package/dist/{hooks/accounts → adapters/sui}/useSUIAccount.js +0 -0
- /package/dist/{state/zap → adapters/sui}/useSuiZapQuote.d.ts +0 -0
- /package/dist/state/bonds/fetchBondsData/{cleanBillsData.d.ts → bondPricing.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionModal.js","sources":["../../../src/adapters/evm/TransactionModal.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport StepBubble from '../../components/StepBubble'\nimport LoadingSpinner from '../../components/LoadingSpinner'\nimport { useSwitchChain } from 'wagmi'\nimport { NETWORK_LABEL } from '../../config/constants/chains'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport { ApprovalState } from './useAllowance'\nimport {\n discountEarnTokenPriceForUser,\n earnTokenPrice,\n getPayoutAmount,\n getVestingTermsString,\n} from '../../utils/displayHelpers'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport useTierPoints from '../../state/tiers/useTierPoints'\nimport { getUserTier, TIERS_WEIGHT } from '../../state/tiers/tiers'\nimport { BondsData } from '../../types/bonds'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useMonitorTx } from './useMonitorTx'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport isArray from 'lodash-es/isArray.js'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport useEVMAccount from './useEVMAccount'\nimport Arrow from '../../components/uikit-sdk/Svg/Icons/Arrow'\n\nconst stepDelay = 1000\n\nconst TransactionModal = ({\n onDismiss,\n txChain,\n approvalState,\n approveCallback,\n loadingTx,\n txCallback,\n bondData,\n inputToken,\n inputValue,\n depositAmount,\n buyTxHash,\n rateChanged,\n}: {\n onDismiss?: () => void\n txChain?: number\n approvalState?: ApprovalState\n approveCallback?: () => Promise<void>\n loadingTx?: boolean\n txCallback?: () => void\n bondData: BondsData\n inputToken: Token | 'NATIVE' | undefined\n inputValue: string\n depositAmount: string\n buyTxHash?: string\n rateChanged: boolean\n}) => {\n // Hooks\n const { chain } = useEVMAccount()\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints } = tierPointsState || {}\n const inputTokenPrice = useCurrencyPrice(inputToken ?? null, txChain as ChainId)\n const { switchChainAsync } = useSwitchChain()\n const SDKConfig = useSDKConfig()\n\n // Flow\n const initialChain = useMemo(\n () => chain?.id,\n /* eslint-disable react-hooks/exhaustive-deps */\n [],\n )\n const showSwitchChainFlow = txChain !== initialChain\n // const showSwitchChainFlow = true\n const [hasToSwitchChain, setHasToSwitchChain] = useState<boolean>(showSwitchChainFlow)\n const [hasToApprove, setHasToApprove] = useState<boolean>(true)\n\n // Loading state\n const [loadingSwitchChain, setLoadingSwitchChain] = useState<boolean>(false)\n const [approveLoading, setApproveLoading] = useState<boolean>(false)\n\n // Values for regular bonds\n const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, promotionalPoints ?? '0')\n const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0')\n const preTGEEstimatedOutput = parseFloat(inputValue) / (bondData?.initPrice ?? 0)\n const preTGEEstimatedOutputUSD = preTGEEstimatedOutput * (bondData?.tgePrice ?? 0)\n\n const handleSwitchChain = () => {\n setLoadingSwitchChain(true)\n switchChainAsync({ chainId: txChain! })\n .then(() => {\n setHasToSwitchChain(false)\n setApproveLoading(true)\n })\n .catch((e) => console.error(e))\n .finally(() => {\n setLoadingSwitchChain(false)\n })\n }\n\n const handleApprove = () => {\n setApproveLoading(true)\n approveCallback?.().catch(() => {\n setApproveLoading(false)\n })\n }\n\n // Switch Chain Step #1\n const hasTriggeredSwitch = useRef(false)\n useEffect(() => {\n if (hasToSwitchChain && !hasTriggeredSwitch.current) {\n setLoadingSwitchChain(true)\n const delay = setTimeout(() => {\n hasTriggeredSwitch.current = true\n handleSwitchChain()\n }, stepDelay)\n return () => clearTimeout(delay)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain])\n\n // Trigger approve Step #2\n const hasTriggeredApproval = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain || !showSwitchChainFlow) {\n if (approvalState === ApprovalState.APPROVED) {\n setApproveLoading(true)\n const delay = setTimeout(() => {\n setApproveLoading(false)\n setHasToApprove(false)\n }, stepDelay)\n return () => clearTimeout(delay)\n } else if (!hasTriggeredApproval.current && approvalState !== ApprovalState.PENDING) {\n setApproveLoading(true)\n hasTriggeredApproval.current = true\n handleApprove()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, approvalState])\n\n // Execute main tx Step #3\n const hasTriggeredTx = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain && !hasToApprove && !hasTriggeredTx.current) {\n hasTriggeredTx.current = true\n if (rateChanged) {\n onDismiss?.()\n } else {\n setApproveLoading(false)\n txCallback?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, hasToApprove, txCallback])\n\n // Close modal if a hash is found. Final Step\n const { data: txReceipt, isSuccess, isLoading: verifyingTx } = useMonitorTx(buyTxHash, txChain)\n useEffect(() => {\n if (buyTxHash && txReceipt) {\n if (isSuccess) {\n onDismiss?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [buyTxHash, txReceipt, isSuccess])\n\n const currentStep: number = showSwitchChainFlow ? (hasToSwitchChain ? 1 : hasToApprove ? 2 : 3) : hasToApprove ? 1 : 2\n const splited = typeof inputToken !== 'string' ? inputToken?.symbol?.split('-') : undefined\n const trueBondPrice = findHighestTrueBondPrice(\n // @ts-ignore\n TIERS_WEIGHT[getUserTier(promotionalPoints)] ?? '0',\n bondData?.trueBondPrices,\n )\n\n return (\n <Modal>\n <ModalHeader onDismiss={onDismiss} hideDivider />\n <Flex className=\"ape:flex-col ape:w-full\">\n <Flex className=\"ape:w-full ape:items-center ape:p-[10px]\">\n {showSwitchChainFlow && (\n <StepBubble number={1} title={'Switch Chain'} currentStep={currentStep} loading={loadingSwitchChain} />\n )}\n <StepBubble\n number={showSwitchChainFlow ? 2 : 1}\n title={'Approve'}\n currentStep={currentStep}\n loading={approveLoading || approvalState === ApprovalState.PENDING}\n />\n <StepBubble\n number={showSwitchChainFlow ? 3 : 2}\n title={'Buy'}\n currentStep={currentStep}\n loading={loadingTx || verifyingTx}\n hideBar\n />\n </Flex>\n <Flex className=\"ape:w-full ape:mt-[40px] ape:justify-center\">\n <LoadingSpinner\n isLoading={\n loadingSwitchChain ||\n approveLoading ||\n loadingTx ||\n verifyingTx ||\n approvalState === ApprovalState.PENDING\n }\n size={100}\n />\n </Flex>\n <Flex className=\"ape:w-full ape:justify-center ape:mt-[10px]\">\n {hasToSwitchChain\n ? loadingSwitchChain\n ? 'Switching Chain...'\n : 'Switch Chain'\n : hasToApprove\n ? approveLoading || approvalState === ApprovalState.PENDING\n ? 'Approving...'\n : 'Approve Contract'\n : loadingTx || verifyingTx\n ? 'Buying...'\n : 'Buy'}\n </Flex>\n {bondData.billType === 'fcfs' ? (\n <Flex className=\"ape:w-full ape:flex-col ape:mt-[20px]\">\n <Flex\n className=\"ape:w-full ape:bg-white3 ape:p-[5px] ape:rounded-normal ape:justify-center\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n {bondData.underlyingEarnToken?.symbol || bondData.earnToken?.symbol}\n {!bondData.yieldBond && <>({getTimePeriods(bondData?.vestingTerm).months} Mo)</>}\n </Flex>\n <Flex className=\"ape:w-full ape:bg-white3 ape:p-[10px] ape:rounded-normal ape:mt-[10px]\">\n <TokenImage\n symbol={bondData.underlyingEarnToken?.symbol || bondData.earnToken?.symbol}\n size={40}\n chain={txChain}\n />\n <Flex className=\"ape:w-full ape:justify-between ape:items-center\">\n <Flex className=\"ape:flex-col ape:text-[12px] ape:ml-[10px]\">\n {bondData.yieldBond ? (\n <>{bondData.underlyingEarnToken?.symbol || bondData.earnToken?.symbol}</>\n ) : (\n <>\n <Flex\n className=\"ape:font-normal ape:line-through\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n ${bondData.tgePrice}\n </Flex>\n <Flex className=\"ape:font-semibold\" style={{ color: 'green' }}>\n ${bondData.initPrice}\n </Flex>\n </>\n )}\n </Flex>\n <Flex\n className=\"ape:p-[5px] ape:rounded-normal ape:border ape:leading-[18px]\"\n style={{\n borderColor: 'var(--ape-color-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'var(--ape-color-success)',\n }}\n >\n {bondData.yieldBond\n ? `${bondData.yieldData?.apr.toFixed()} % APR`\n : `${trueBondPrice?.bonusWithFee?.toFixed(2)} % Bonus`}\n </Flex>\n </Flex>\n </Flex>\n <Flex className=\"ape:w-full ape:justify-between ape:mt-[10px]\">\n <Flex className=\"ape:p-[10px] ape:rounded-normal ape:bg-white3 ape:items-center ape:w-[45%]\">\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex className=\"ape:text-[14px] ape:font-semibold ape:mx-[5px]\">\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex\n className=\"ape:text-[12px] ape:font-normal\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Arrow direction={'right'} width={'10px'} />\n <Flex className=\"ape:p-[10px] ape:rounded-normal ape:bg-white3 ape:items-center ape:w-[45%] ape:gap-[5px]\">\n <TokenImage\n symbol={\n bondData.yieldBond\n ? bondData.underlyingEarnToken?.symbol || bondData.earnToken?.symbol\n : getSymbol(bondData.earnToken, txChain)\n }\n chain={txChain}\n size={20}\n />\n {bondData.yieldBond ? (\n <Flex className=\"ape:text-[14px] ape:font-semibold\">${formatNumberSI(preTGEEstimatedOutputUSD)}</Flex>\n ) : (\n <>\n <Flex className=\"ape:text-[14px] ape:font-semibold ape:mx-[5px]\">\n {formatNumberSI(preTGEEstimatedOutput, 4)}\n </Flex>\n <Flex\n className=\"ape:text-[12px] ape:font-normal\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n (${formatNumberSI(preTGEEstimatedOutputUSD)})\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex className=\"ape:w-full ape:flex-col ape:mt-[20px]\">\n <Flex\n className=\"ape:w-full ape:bg-white3 ape:p-[5px] ape:rounded-normal ape:justify-center\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n {bondData.earnToken.symbol} ({getVestingTermsString(bondData)})\n </Flex>\n <Flex className=\"ape:w-full ape:bg-white3 ape:p-[10px] ape:rounded-normal ape:mt-[10px]\">\n <TokenImage symbol={bondData.earnToken.symbol} size={40} chain={txChain} />\n <Flex className=\"ape:w-full ape:justify-between ape:items-center\">\n <Flex className=\"ape:flex-col ape:text-[12px] ape:ml-[10px]\">\n <Flex\n className=\"ape:font-normal ape:line-through\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n ${earnTokenPrice(bondData)}\n </Flex>\n <Flex className=\"ape:font-semibold\" style={{ color: 'green' }}>\n $\n {discountEarnTokenPriceForUser(\n bondData,\n SDKConfig.useTiers,\n getUserTier(promotionalPoints!) ?? undefined,\n )}\n </Flex>\n </Flex>\n <Flex\n className=\"ape:p-[5px] ape:rounded-normal ape:border ape:leading-[18px]\"\n style={{\n borderColor: 'var(--ape-color-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'var(--ape-color-success)',\n }}\n >\n {trueBondPrice?.bonusWithFee?.toFixed(2)} % Bonus\n </Flex>\n </Flex>\n </Flex>\n <Flex className=\"ape:w-full ape:justify-between ape:mt-[10px]\">\n <Flex className=\"ape:p-[10px] ape:rounded-normal ape:bg-white3 ape:items-center ape:w-[45%]\">\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex className=\"ape:text-[14px] ape:font-semibold ape:mx-[5px]\">\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex\n className=\"ape:text-[12px] ape:font-normal\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Arrow direction={'right'} width={'10px'} />\n <Flex className=\"ape:p-[10px] ape:rounded-normal ape:bg-white3 ape:items-center ape:w-[45%]\">\n <TokenImage symbol={getSymbol(bondData.earnToken, txChain)} chain={txChain} size={20} />\n <Flex className=\"ape:text-[14px] ape:font-semibold ape:mx-[5px]\">\n {formatNumberSI(estimatedOutputAmount, 4)}\n </Flex>\n <Flex\n className=\"ape:text-[12px] ape:font-normal\"\n style={{ color: 'var(--ape-color-text-disabled-button)' }}\n >\n (${formatNumberSI(estimatedOutputUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )}\n\n {/*\n\n Action Buttons\n\n */}\n <Flex className=\"ape:mt-[20px]\">\n {hasToSwitchChain ? (\n <Button load={loadingSwitchChain} disabled={loadingSwitchChain} onClick={handleSwitchChain} fullWidth>\n switch to {NETWORK_LABEL[txChain!]}\n </Button>\n ) : !hasToApprove ? (\n <Button load={loadingTx || verifyingTx} disabled={loadingTx || verifyingTx} onClick={txCallback} fullWidth>\n buy\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={approvalState === ApprovalState.PENDING || approveLoading}\n disabled={approvalState === ApprovalState.PENDING || approveLoading}\n onClick={handleApprove}\n fullWidth\n >\n Approve\n </Button>\n )}\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TransactionModal\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
|
package/dist/{views/YourBondsModal/components/TransferBondModal → adapters/evm}/TransferAction.js
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useChainId, useSwitchChain, useWriteContract } from 'wagmi';
|
|
4
|
-
import BOND_NFT_ABI from '
|
|
5
|
-
import Button from '
|
|
6
|
-
import { useMonitorTx } from '
|
|
7
|
-
import { usePopups } from '
|
|
8
|
-
import track from '
|
|
9
|
-
import { reportError } from '
|
|
10
|
-
import { useSDKConfig } from '
|
|
11
|
-
import useEVMAccount from '
|
|
4
|
+
import BOND_NFT_ABI from '../../config/abi/bondNft.json.js';
|
|
5
|
+
import Button from '../../components/uikit-sdk/Button/Button.js';
|
|
6
|
+
import { useMonitorTx } from './useMonitorTx.js';
|
|
7
|
+
import { usePopups } from '../../state/popups/usePopups.js';
|
|
8
|
+
import track from '../../utils/track.js';
|
|
9
|
+
import { reportError } from '../../utils/reportError.js';
|
|
10
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
11
|
+
import useEVMAccount from './useEVMAccount.js';
|
|
12
12
|
|
|
13
13
|
const TransferAction = ({ userBill, toAddress, disabled, }) => {
|
|
14
14
|
// Hooks
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferAction.js","sources":["../../../src/adapters/evm/TransferAction.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport BOND_NFT_ABI from '../../config/abi/bondNft.json'\nimport { UserBill } from '../../types/yourbonds'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { useMonitorTx } from './useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport track from '../../utils/track'\nimport { reportError } from '../../utils/reportError'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport useEVMAccount from './useEVMAccount'\n\nconst TransferAction = ({\n userBill,\n toAddress,\n disabled,\n}: {\n userBill?: UserBill\n toAddress?: string\n disabled?: boolean\n}) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const userChainId = useChainId()\n const { address: account } = useEVMAccount()\n const { switchChainAsync } = useSwitchChain()\n\n // State\n const [transferTxHash, setTransferTxHash] = useState<string | null>(null)\n const [loadingTx, setLoadingTx] = useState(false)\n const { writeContractAsync } = useWriteContract()\n const { isLoading, isSuccess: isConfirmed } = useMonitorTx(transferTxHash, userBill?.bond?.chainId)\n const { addToastError } = usePopups()\n\n const load = loadingTx || (isLoading && !isConfirmed)\n const handleTransfer = async () => {\n const address: `0x${string}` = userBill?.billNftAddress as `0x${string}`\n try {\n if (userChainId !== userBill?.bond?.chainId) {\n await switchChainAsync({ chainId: userBill?.bond?.chainId as ChainId })\n }\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_NFT_ABI,\n functionName: 'safeTransferFrom',\n args: [account, toAddress, userBill?.id],\n chain: userChainId as any,\n account: account,\n })\n if (tx) {\n setTransferTxHash(tx)\n track({\n event: 'bond',\n chain: userChainId,\n data: {\n cat: 'transfer',\n type: userBill?.bond?.billType ?? '',\n id: userBill?.id,\n from: account,\n to: toAddress,\n earnToken: userBill?.bond?.earnToken.symbol,\n },\n })\n }\n setLoadingTx(false)\n } catch (error: any) {\n console.error('Transfer failed:', error)\n setLoadingTx(false)\n addToastError(error.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'transfer', userBill, error },\n chainId: userChainId,\n account,\n })\n }\n }\n return (\n <Button onClick={handleTransfer} load={load} disabled={load || disabled} fullWidth>\n transfer\n </Button>\n )\n}\n\nexport default TransferAction\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
-
import Flex from '
|
|
4
|
-
import TokenInfoAndName from '
|
|
5
|
-
import { formatNumberSI } from '
|
|
6
|
-
import Button from '
|
|
7
|
-
import TooltipBubble from '
|
|
8
|
-
import { getTimeLeftForFullyVested, getPendingVestingString, claimable, pending, getPercentageVested } from '
|
|
3
|
+
import Flex from '../../components/uikit-sdk/Flex/index.js';
|
|
4
|
+
import TokenInfoAndName from '../../components/TokenInfoAndName/index.js';
|
|
5
|
+
import { formatNumberSI } from '../../utils/formatNumber.js';
|
|
6
|
+
import Button from '../../components/uikit-sdk/Button/Button.js';
|
|
7
|
+
import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
|
|
8
|
+
import { getTimeLeftForFullyVested, getPendingVestingString, claimable, pending, getPercentageVested } from '../../utils/displayHelpers.js';
|
|
9
9
|
import { useChainId, useSwitchChain, useWriteContract } from 'wagmi';
|
|
10
|
-
import BOND_ABI from '
|
|
11
|
-
import useModal from '
|
|
12
|
-
import YourBondsModal from '
|
|
13
|
-
import { usePopups } from '
|
|
14
|
-
import { useMonitorTx } from '
|
|
15
|
-
import BondInfoTooltip from '
|
|
16
|
-
import track from '
|
|
17
|
-
import { remove0xPrefix } from '
|
|
18
|
-
import { getTimePeriods } from '
|
|
19
|
-
import { reportError } from '
|
|
20
|
-
import { useSDKConfig } from '
|
|
21
|
-
import useEVMAccount from '
|
|
22
|
-
import useUserBonds from '
|
|
23
|
-
import ProfitCard from '
|
|
24
|
-
import ProgressBarWrapper from '
|
|
25
|
-
import ProgressBar from '
|
|
26
|
-
import AbondModal from '
|
|
27
|
-
import OabondModal from '
|
|
28
|
-
import PmusdModal from '
|
|
29
|
-
import More from '
|
|
30
|
-
import PostClaimModal from '
|
|
10
|
+
import BOND_ABI from '../../config/abi/BOND_2_4_0.json.js';
|
|
11
|
+
import useModal from '../../hooks/useModal.js';
|
|
12
|
+
import YourBondsModal from '../../views/YourBondsModal/YourBondsModal.js';
|
|
13
|
+
import { usePopups } from '../../state/popups/usePopups.js';
|
|
14
|
+
import { useMonitorTx } from './useMonitorTx.js';
|
|
15
|
+
import BondInfoTooltip from '../../components/Tooltip/Tooltip.js';
|
|
16
|
+
import track from '../../utils/track.js';
|
|
17
|
+
import { remove0xPrefix } from '../../utils/remove0xPrefix.js';
|
|
18
|
+
import { getTimePeriods } from '../../utils/getTimePeriods.js';
|
|
19
|
+
import { reportError } from '../../utils/reportError.js';
|
|
20
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
21
|
+
import useEVMAccount from './useEVMAccount.js';
|
|
22
|
+
import useUserBonds from '../../state/bonds/useUserBonds.js';
|
|
23
|
+
import ProfitCard from '../../views/YourBonds/components/ProfitCard/ProfitCard.js';
|
|
24
|
+
import ProgressBarWrapper from '../../components/ProgressBar/ProgressBarWrapper.js';
|
|
25
|
+
import ProgressBar from '../../components/ProgressBar/ProgressBar.js';
|
|
26
|
+
import AbondModal from '../../components/CustomClaimModals/AbondModal.js';
|
|
27
|
+
import OabondModal from '../../components/CustomClaimModals/OabondModal.js';
|
|
28
|
+
import PmusdModal from '../../components/CustomClaimModals/PmusdModal.js';
|
|
29
|
+
import More from '../../components/uikit-sdk/Svg/Icons/More.js';
|
|
30
|
+
import PostClaimModal from '../../components/CustomClaimModals/PostClaimModal.js';
|
|
31
31
|
|
|
32
32
|
const UserBondRow = ({ bill }) => {
|
|
33
33
|
// Hooks
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserBondRow.js","sources":["../../../src/adapters/evm/UserBondRow.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport TokenInfoAndName from '../../components/TokenInfoAndName'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport { UserBill } from '../../types/yourbonds'\nimport {\n claimable,\n getPendingVestingString,\n getPercentageVested,\n getTimeLeftForFullyVested,\n pending,\n} from '../../utils/displayHelpers'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport BOND_ABI from '../../config/abi/BOND_2_4_0.json'\nimport useModal from '../../hooks/useModal'\nimport YourBondsModal from '../../views/YourBondsModal/YourBondsModal'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { useMonitorTx } from './useMonitorTx'\nimport Tooltip from '../../components/Tooltip/Tooltip'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { reportError } from '../../utils/reportError'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport useEVMAccount from './useEVMAccount'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport ProfitCard from '../../views/YourBonds/components/ProfitCard/ProfitCard'\nimport ProgressBarWrapper from '../../components/ProgressBar/ProgressBarWrapper'\nimport ProgressBar from '../../components/ProgressBar/ProgressBar'\nimport { AbondModal, OabondModal, PmusdModal } from '../../components/CustomClaimModals'\nimport More from '../../components/uikit-sdk/Svg/Icons/More'\nimport PostClaimModal from '../../components/CustomClaimModals/PostClaimModal'\n\nconst UserBondRow = ({ bill }: { bill: UserBill }) => {\n // Hooks\n const userChainId = useChainId()\n const SDKConfig = useSDKConfig()\n const { address: account } = useEVMAccount()\n const { switchChain } = useSwitchChain()\n const { writeContractAsync } = useWriteContract()\n const { addToastError } = usePopups()\n const { refetch: refetchUserBonds } = useUserBonds()\n const [onOpenPurchasedBond] = useModal(<YourBondsModal userBill={bill} />)\n\n // State\n const [claimTxHash, setClaimTxHash] = useState<string | null>(null)\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(claimTxHash, bill?.bond?.chainId)\n const [loadingTx, setLoadingTx] = useState(false)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n const handleClaim = async (billId: string, billAddress: string) => {\n if (userChainId !== bill?.bond?.chainId) {\n await switchChain({ chainId: bill?.bond?.chainId! })\n }\n const address: `0x${string}` = billAddress as `0x${string}`\n try {\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_ABI,\n functionName: 'redeem',\n args: [billId],\n chain: userChainId as any,\n account,\n })\n setLoadingTx(false)\n\n if (tx) {\n setClaimTxHash(tx)\n track({\n event: 'bond',\n chain: bill?.bond?.chainId,\n data: {\n cat: 'claim',\n bondType: bill?.bond?.billType,\n address: remove0xPrefix(bill?.bond?.contractAddress?.[bill?.bond?.chainId]),\n earnToken: bill?.bond?.earnToken.symbol,\n },\n })\n }\n } catch (error: any) {\n setLoadingTx(false)\n console.error('Claim failed:', error)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'claim', bill, error },\n chainId: bill?.bond?.chainId,\n account,\n })\n }\n }\n\n // Display Info\n const earnTokenPrice = parseFloat(bill?.bond?.payoutTokenPrice ?? '0')\n const vestingCliff = bill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(bill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n // Modals\n const [openCircularModal] = useModal(<AbondModal />, true, false, 'circularModal')\n const [openOABONDModal] = useModal(<OabondModal />, true, false, 'oABONDModal')\n const [openPmusdModal] = useModal(<PmusdModal />, true, false, 'pmUSDModal')\n const [openPostClaimFlowModal] = useModal(\n <PostClaimModal\n tokenSymbol={bill?.bond?.earnToken?.symbol!}\n text={bill?.bond?.postClaimFlow?.text!}\n imgUrl={bill?.bond?.postClaimFlow?.imgUrl!}\n ctaUrl={bill?.bond?.postClaimFlow?.ctaUrl!}\n />,\n true,\n false,\n 'postClaimFlowModal',\n )\n\n useEffect(() => {\n if (isConfirmed) {\n refetchUserBonds()\n if (bill?.bond?.earnToken.symbol.toLowerCase() === 'abond') {\n openCircularModal()\n }\n if (bill?.bond?.earnToken.symbol.toLowerCase() === 'oabond') {\n openOABONDModal()\n }\n if (bill?.bond?.earnToken.symbol.toLowerCase() === 'pmusd') {\n openPmusdModal()\n }\n if (bill?.bond?.postClaimFlow) {\n openPostClaimFlowModal()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [isConfirmed])\n\n return (\n <div\n className=\"your-bonds ape:flex ape:flex-col ape:w-full ape:justify-around ape:bg-white2 ape:mb-[5px] ape:rounded-[10px] ape:cursor-pointer ape:hover:bg-white3 ape:min-[1000px]:flex-row ape:min-[1000px]:h-[70px]\"\n onClick={onOpenPurchasedBond}\n >\n <div className=\"token-info-container ape:flex ape:w-full ape:min-[1000px]:w-[30%] ape:min-[1000px]:min-w-[300px]\">\n <TokenInfoAndName\n tokenSymbol={bill?.bond?.earnToken?.symbol}\n chain={bill?.bond?.chainId}\n tag={bill?.bond?.tags?.[0]}\n vestEnds={getTimeLeftForFullyVested(bill) > 0 ? `Ends in ${getPendingVestingString(bill)}` : `Fully Vested`}\n isHotBond\n />\n <div className=\"tooltip-column ape:flex ape:w-[50px] ape:items-center ape:ml-[10px] ape:min-[1000px]:hidden\">\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={bill?.bond?.earnToken.address[bill?.bond.chainId] || ''}\n earnTokenSymbol={bill?.bond?.earnToken.symbol || ''}\n bondContract={bill?.address ?? ''}\n projectLink={bill?.bond?.projectLink}\n twitter={bill?.bond?.twitter}\n chain={bill?.bond?.chainId!}\n cgId={bill?.bond?.cgId}\n dexscreener={bill?.bond?.dexscreener}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(5%, 0%)\"\n >\n <Flex className=\"ape:opacity-80\">\n <More width=\"25px\" />\n </Flex>\n </TooltipBubble>\n </div>\n </div>\n <div className=\"your-bonds-columns-container ape:flex ape:flex-col ape:items-center ape:justify-end ape:w-full ape:min-[1000px]:w-[70%] ape:min-[1000px]:justify-between ape:min-[1000px]:flex-row ape:min-[1000px]:pr-[20px]\">\n <Flex className=\"ape:w-[125px]\">\n <ProfitCard userBond={bill} />\n </Flex>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Claimable\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(claimable(bill), 3)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {`($${(claimable(bill) * earnTokenPrice).toFixed(2)})`}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Pending\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(pending(bill), 3)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {`($${(pending(bill) * earnTokenPrice).toFixed(2)})`}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content hide-mobile ape:hidden ape:min-[1000px]:flex\">\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={getPercentageVested(bill)} />}\n style={{\n width: '127px',\n height: '25px',\n flexDirection: 'column',\n justifyContent: 'center',\n }}\n hideOnMobile\n showTooltip={true}\n toolTip={\n getTimeLeftForFullyVested(bill) > 0\n ? `Fully vested in ${getPendingVestingString(bill)}.`\n : `Fully Vested.`\n }\n />\n </div>\n <div className=\"your-bonds-column-button ape:flex ape:w-full ape:items-center ape:justify-center ape:p-[10px] ape:min-[1000px]:w-[210px] ape:min-[1000px]:p-0\">\n <Button\n className=\"button ape:text-[14px]! ape:p-[6px] ape:h-[30px]\"\n disabled={claimable(bill) === 0 || load || isPendingCliff || bill.paused}\n load={load}\n onClick={(event) => {\n event.stopPropagation()\n handleClaim(bill.id, bill.address)\n }}\n fullWidth\n >\n {bill.paused\n ? 'claims disabled'\n : isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default UserBondRow\n"],"names":["_jsx","_jsxs","Tooltip"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ChainId, Token } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import type { TokenBalance } from '../types';
|
|
3
|
+
/** Balance of one token (or the native coin) on an EVM chain. */
|
|
4
|
+
export declare const getTokenBalanceEVM: (chainId: ChainId, currency: "NATIVE" | Token, account: string) => Promise<string>;
|
|
5
|
+
/** Balances of several tokens (and/or the native coin) on an EVM chain, in two multicalls. */
|
|
6
|
+
export declare const getTokensBalanceEVM: (chainId: ChainId, account: string, tokens: ("NATIVE" | Token)[]) => Promise<TokenBalance[]>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import multicallV2Abi from '../../config/abi/multicallv2.json.js';
|
|
2
|
+
import erc20ABI from '../../config/abi/erc20.json.js';
|
|
3
|
+
import { MULTICALL_V2 } from '../../config/constants/addresses.js';
|
|
4
|
+
import { formatUnits } from '../../utils/fixedPoint.js';
|
|
5
|
+
import multicall from './multicall.js';
|
|
6
|
+
|
|
7
|
+
/** Balance of one token (or the native coin) on an EVM chain. */
|
|
8
|
+
const getTokenBalanceEVM = async (chainId, currency, account) => {
|
|
9
|
+
const calls = [
|
|
10
|
+
{
|
|
11
|
+
address: currency === 'NATIVE' ? MULTICALL_V2[chainId] : currency.address[chainId],
|
|
12
|
+
name: currency === 'NATIVE' ? 'getEthBalance' : 'balanceOf',
|
|
13
|
+
params: [account],
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
const data = await multicall(chainId, currency === 'NATIVE' ? multicallV2Abi : erc20ABI, calls);
|
|
17
|
+
return formatUnits(data[0] ?? 0, currency === 'NATIVE' ? 18 : currency.decimals[chainId]);
|
|
18
|
+
};
|
|
19
|
+
/** Balances of several tokens (and/or the native coin) on an EVM chain, in two multicalls. */
|
|
20
|
+
const getTokensBalanceEVM = async (chainId, account, tokens) => {
|
|
21
|
+
const callsToken = tokens
|
|
22
|
+
.filter((token) => token !== 'NATIVE')
|
|
23
|
+
.map((token) => {
|
|
24
|
+
return {
|
|
25
|
+
address: token?.address?.[chainId] ?? '',
|
|
26
|
+
name: 'balanceOf',
|
|
27
|
+
params: [account],
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
const callNative = tokens
|
|
31
|
+
.filter((token) => token === 'NATIVE')
|
|
32
|
+
.map(() => {
|
|
33
|
+
return {
|
|
34
|
+
address: MULTICALL_V2[chainId],
|
|
35
|
+
name: 'getEthBalance',
|
|
36
|
+
params: [account],
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
const [dataToken, dataNative] = await Promise.all([
|
|
40
|
+
multicall(chainId, erc20ABI, callsToken),
|
|
41
|
+
multicall(chainId, multicallV2Abi, callNative),
|
|
42
|
+
]);
|
|
43
|
+
const balancesToken = dataToken.map((balance, i) => {
|
|
44
|
+
const token = tokens.find((token) => token !== 'NATIVE' &&
|
|
45
|
+
token?.address?.[chainId]?.toLowerCase() === callsToken[i].address.toLowerCase());
|
|
46
|
+
return {
|
|
47
|
+
address: token?.address[chainId],
|
|
48
|
+
balance: formatUnits(balance[0], token.decimals[chainId]),
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
const balancesNative = dataNative.map((balance) => {
|
|
52
|
+
return {
|
|
53
|
+
address: 'NATIVE',
|
|
54
|
+
balance: formatUnits(balance[0], 18),
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return [...balancesToken, ...balancesNative];
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { getTokenBalanceEVM, getTokensBalanceEVM };
|
|
61
|
+
//# sourceMappingURL=balances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balances.js","sources":["../../../src/adapters/evm/balances.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport multicallV2Abi from '../../config/abi/multicallv2.json'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { MULTICALL_V2 } from '../../config/constants/addresses'\nimport { formatUnits } from '../../utils/fixedPoint'\nimport type { TokenBalance } from '../types'\nimport multicall, { Call } from './multicall'\n\n/** Balance of one token (or the native coin) on an EVM chain. */\nexport const getTokenBalanceEVM = async (chainId: ChainId, currency: 'NATIVE' | Token, account: string) => {\n const calls: Call[] = [\n {\n address: currency === 'NATIVE' ? MULTICALL_V2[chainId]! : currency.address[chainId]!,\n name: currency === 'NATIVE' ? 'getEthBalance' : 'balanceOf',\n params: [account],\n },\n ]\n const data = await multicall(chainId, currency === 'NATIVE' ? multicallV2Abi : erc20ABI, calls)\n return formatUnits(data[0] ?? 0, currency === 'NATIVE' ? 18 : currency.decimals![chainId]!)\n}\n\n/** Balances of several tokens (and/or the native coin) on an EVM chain, in two multicalls. */\nexport const getTokensBalanceEVM = async (\n chainId: ChainId,\n account: string,\n tokens: ('NATIVE' | Token)[],\n): Promise<TokenBalance[]> => {\n const callsToken: Call[] = tokens\n .filter((token) => token !== 'NATIVE')\n .map((token) => {\n return {\n address: token?.address?.[chainId] ?? '',\n name: 'balanceOf',\n params: [account],\n }\n })\n const callNative: Call[] = tokens\n .filter((token) => token === 'NATIVE')\n .map(() => {\n return {\n address: MULTICALL_V2[chainId]!,\n name: 'getEthBalance',\n params: [account],\n }\n })\n const [dataToken, dataNative] = await Promise.all([\n multicall(chainId, erc20ABI, callsToken),\n multicall(chainId, multicallV2Abi, callNative),\n ])\n\n const balancesToken = dataToken.map((balance: any, i: number) => {\n const token = tokens.find(\n (token) =>\n token !== 'NATIVE' &&\n (token as Token)?.address?.[chainId]?.toLowerCase() === callsToken[i].address.toLowerCase(),\n )\n return {\n address: (token as Token)?.address[chainId] as string,\n balance: formatUnits(balance[0], (token as Token).decimals![chainId]!),\n }\n })\n const balancesNative = dataNative.map((balance: any) => {\n return {\n address: 'NATIVE',\n balance: formatUnits(balance[0], 18),\n }\n })\n return [...balancesToken, ...balancesNative]\n}\n"],"names":[],"mappings":";;;;;;AAQA;AACO,MAAM,kBAAkB,GAAG,OAAO,OAAgB,EAAE,QAA0B,EAAE,OAAe,KAAI;AACxG,IAAA,MAAM,KAAK,GAAW;AACpB,QAAA;AACE,YAAA,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAE;YACpF,IAAI,EAAE,QAAQ,KAAK,QAAQ,GAAG,eAAe,GAAG,WAAW;YAC3D,MAAM,EAAE,CAAC,OAAO,CAAC;AAClB,SAAA;KACF;IACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,cAAc,GAAG,QAAQ,EAAE,KAAK,CAAC;IAC/F,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAS,CAAC,OAAO,CAAE,CAAC;AAC7F;AAEA;AACO,MAAM,mBAAmB,GAAG,OACjC,OAAgB,EAChB,OAAe,EACf,MAA4B,KACD;IAC3B,MAAM,UAAU,GAAW;SACxB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ;AACpC,SAAA,GAAG,CAAC,CAAC,KAAK,KAAI;QACb,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;AACH,IAAA,CAAC,CAAC;IACJ,MAAM,UAAU,GAAW;SACxB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ;SACpC,GAAG,CAAC,MAAK;QACR,OAAO;AACL,YAAA,OAAO,EAAE,YAAY,CAAC,OAAO,CAAE;AAC/B,YAAA,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;AACH,IAAA,CAAC,CAAC;IACJ,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChD,QAAA,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;AACxC,QAAA,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC;AAC/C,KAAA,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,CAAS,KAAI;AAC9D,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,KAAK,KACJ,KAAK,KAAK,QAAQ;YACjB,KAAe,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAC9F;QACD,OAAO;AACL,YAAA,OAAO,EAAG,KAAe,EAAE,OAAO,CAAC,OAAO,CAAW;AACrD,YAAA,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAG,KAAe,CAAC,QAAS,CAAC,OAAO,CAAE,CAAC;SACvE;AACH,IAAA,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAY,KAAI;QACrD,OAAO;AACL,YAAA,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACrC;AACH,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC;AAC9C;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { BillsConfig } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import { TokenPrices } from '../../tokenPrices/useTokenPrices';
|
|
3
|
-
import { BondsData } from '
|
|
2
|
+
import { TokenPrices } from '../../state/tokenPrices/useTokenPrices';
|
|
3
|
+
import { BondsData } from '../../types/bonds';
|
|
4
4
|
export declare const fetchBondsDataEVM: (chainId: number, bonds: BillsConfig[], apiUrl: string, tokenPrices?: TokenPrices[]) => Promise<BondsData[]>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import multicall from '
|
|
3
|
-
import BOND_ABI from '
|
|
4
|
-
import erc20ABI from '
|
|
2
|
+
import multicall from './multicall.js';
|
|
3
|
+
import BOND_ABI from '../../config/abi/BOND_2_4_0.json.js';
|
|
4
|
+
import erc20ABI from '../../config/abi/erc20.json.js';
|
|
5
5
|
import chunk from 'lodash-es/chunk.js';
|
|
6
|
-
import { getBonusWithFee, getDiscountWithFee, getRawBonus, getRawDiscount } from '
|
|
7
|
-
import { formatUnits } from '
|
|
8
|
-
import { getBalanceNumber } from '
|
|
9
|
-
import { TIER_MAPPING } from '../../tiers/
|
|
10
|
-
import { resolveBondTokenPrices } from '../../tokenPrices/resolveTokenPrice.js';
|
|
6
|
+
import { getBonusWithFee, getDiscountWithFee, getRawBonus, getRawDiscount } from '../../state/bonds/fetchBondsData/bondPricing.js';
|
|
7
|
+
import { formatUnits } from '../../utils/fixedPoint.js';
|
|
8
|
+
import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
|
|
9
|
+
import { TIER_MAPPING } from '../../state/tiers/tiers.js';
|
|
10
|
+
import { resolveBondTokenPrices } from '../../state/tokenPrices/resolveTokenPrice.js';
|
|
11
11
|
|
|
12
12
|
const fetchBondsDataEVM = async (chainId, bonds, apiUrl, tokenPrices) => {
|
|
13
13
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBondsDataEVM.js","sources":["../../../src/adapters/evm/fetchBondsDataEVM.ts"],"sourcesContent":["import { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../state/tokenPrices/useTokenPrices'\nimport multicall from './multicall'\nimport BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../config/abi/erc20.json'\nimport chunk from 'lodash-es/chunk.js'\nimport {\n getBonusWithFee,\n getDiscountWithFee,\n getRawBonus,\n getRawDiscount,\n} from '../../state/bonds/fetchBondsData/bondPricing'\nimport { formatUnits } from '../../utils/fixedPoint'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { BondsData, TrueBondPrices } from '../../types/bonds'\nimport { TIER_MAPPING } from '../../state/tiers/tiers'\nimport { resolveBondTokenPrices } from '../../state/tokenPrices/resolveTokenPrice'\n\nexport const fetchBondsDataEVM = async (\n chainId: number,\n bonds: BillsConfig[],\n apiUrl: string,\n tokenPrices?: TokenPrices[],\n) => {\n try {\n const bills = bonds.filter((b) => !b.soldOut)\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPrincipal',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'paused',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to each bill's chunk\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n // balanceOf has a single output, so multicall wraps it as [balance] — unwrap it\n acc.push(treasuryBalances[pos - 1][0])\n }\n return acc\n }, [])\n\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n const { lpPrice, earnTokenPrice } = await resolveBondTokenPrices(bill, tokenPrices)\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n ] = chunk as any\n const trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const tierBoostRate = bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = Number(\n formatUnits(\n BigInt(maxTotalPayout ?? '0') - BigInt(totalPayoutGiven),\n bill?.earnToken.decimals[bill?.chainId] ?? 18,\n ),\n )\n const treasuryBalance = customTreasuryBalance\n ? getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n : null\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n bonusWithFee: getBonusWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining:\n treasuryBalance !== null\n ? Math.min(treasuryBalance, tokensRemaining).toString()\n : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n tierBoostRate: bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate,\n }\n return cleanedData\n }),\n )\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n"],"names":["BOND_2_4_0","ERC20ABI"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UserOwnedBillsData } from '
|
|
1
|
+
import { UserOwnedBillsData } from '../../types/yourbonds';
|
|
2
2
|
import { BillsConfig, ChainId } from '@ape.swap/apeswap-lists';
|
|
3
|
-
import { TokenPrices } from '../../tokenPrices/useTokenPrices';
|
|
3
|
+
import { TokenPrices } from '../../state/tokenPrices/useTokenPrices';
|
|
4
4
|
export declare const fetchUsersBondsEVM: (chainId: ChainId, account: string, bondData: BillsConfig[], tokenPrices: Partial<Record<ChainId, TokenPrices[]>>) => Promise<UserOwnedBillsData[]>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import billAbi from '
|
|
2
|
-
import multicall from '
|
|
1
|
+
import billAbi from '../../config/abi/BOND_2_0_0.json.js';
|
|
2
|
+
import multicall from './multicall.js';
|
|
3
3
|
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
4
|
-
import { apiGet } from '
|
|
5
|
-
import { PRICE_API_URL } from '
|
|
4
|
+
import { apiGet } from '../../utils/httpClient.js';
|
|
5
|
+
import { PRICE_API_URL } from '../../config/constants/variables.js';
|
|
6
6
|
|
|
7
7
|
const fetchUsersBondsEVM = async (chainId, account, bondData, tokenPrices) => {
|
|
8
8
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchUsersBondsEVM.js","sources":["../../../src/adapters/evm/fetchUsersBondsEVM.ts"],"sourcesContent":["import billAbi from '../../config/abi/BOND_2_0_0.json'\nimport multicall from './multicall'\nimport { UserBill, UserOwnedBillsData } from '../../types/yourbonds'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../state/tokenPrices/useTokenPrices'\nimport { BondsData } from '../../types/bonds'\nimport { apiGet } from '../../utils/httpClient'\nimport { PRICE_API_URL } from '../../config/constants/variables'\n\nexport const fetchUsersBondsEVM = async (\n chainId: ChainId,\n account: string,\n bondData: BillsConfig[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n): Promise<UserOwnedBillsData[]> => {\n try {\n if (!account) {\n return []\n }\n const bonds: BillsConfig[] = bondData\n\n // Fetch and set user owned bill data without NFT Data\n const userOwnedBills = await fetchUserOwnedBills(chainId, account, bonds, tokenPrices)\n const mapUserOwnedBills = bonds.map((bill: BillsConfig) =>\n userOwnedBills.filter((b) => b.address.toLowerCase() === bill.contractAddress[bill.chainId]?.toLowerCase()),\n )\n const userOwnedBillsData = bonds.map((bill: BillsConfig, i: number) => ({\n index: bill.index,\n userOwnedBills: mapUserOwnedBills[i],\n }))\n\n const combinedData = userOwnedBillsData.map((data) => {\n const enrichedUserBills = data.userOwnedBills.map((bill) => {\n return {\n ...bill,\n }\n })\n return {\n ...data,\n userOwnedBills: enrichedUserBills,\n }\n })\n\n return Promise.resolve(combinedData)\n } catch (error) {\n console.error('Error fetching user owned bills data:', error)\n return Promise.reject(error)\n }\n}\n\nconst fetchUserOwnedBills = async (\n chainId: ChainId,\n account: string,\n bonds: BillsConfig[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n): Promise<UserBill[]> => {\n // Maps all the bills in the list repo to make a call to each of them to get Bills Id and paused state (only for V4)\n const billIdAndPausedCalls = bonds.flatMap((b, index) => {\n const calls = [\n {\n address: b.contractAddress[b.chainId] ?? '',\n name: 'getBillIds',\n params: [account],\n bondIndex: index,\n },\n ]\n // Only add paused call for V4 bonds\n if (b.billVersion === BillVersion.V4) {\n calls.push({\n address: b.contractAddress[b.chainId] ?? '',\n name: 'paused',\n params: [],\n bondIndex: index,\n })\n }\n return calls\n })\n const billIdAndPausedResults = await multicall(chainId, billAbi, billIdAndPausedCalls, true, 15)\n\n // Separate billIds and pausedStates from results, tracking which bonds have paused calls\n const billIds: any[] = []\n const pausedStates: Map<string, boolean> = new Map()\n let resultIndex = 0\n\n bonds.forEach((b) => {\n // First result is always getBillIds\n billIds.push(billIdAndPausedResults?.[resultIndex])\n resultIndex++\n\n // Next result is paused only if V4\n if (b.billVersion === BillVersion.V4) {\n pausedStates.set(\n b.contractAddress[b.chainId]?.toLowerCase() as string,\n billIdAndPausedResults?.[resultIndex]?.[0] ?? false,\n )\n resultIndex++\n }\n })\n const billDataCalls: any = []\n const billVersions: any = []\n\n billIds?.forEach((idArray: any, index: number) =>\n idArray[0].forEach((id: bigint) => {\n if (id > 0) {\n billDataCalls.push({\n address: bonds[index].contractAddress[bonds[index].chainId],\n name: bonds[index].billVersion !== BillVersion.V1 ? 'getBillInfo' : 'billInfo',\n params: [id],\n bond: bonds[index],\n })\n billDataCalls.push({\n address: bonds[index].contractAddress[bonds[index].chainId],\n name: bonds[index].billVersion !== BillVersion.V1 ? 'claimablePayout' : 'pendingPayoutFor',\n params: [id],\n bond: bonds[index],\n })\n billVersions.push(bonds[index].billVersion)\n }\n }),\n )\n const billData = await multicall(chainId, billAbi, billDataCalls, true, 150)\n const result = []\n\n for (let i = 0; i < billVersions.length; i++) {\n const billPos = i === 0 ? 0 : i * 2\n let bond: BondsData = billDataCalls[billPos].bond\n\n let principalTokenPrice = tokenPrices?.[bond.chainId]?.find(\n (tokenPrice) => tokenPrice.tokenAddress?.toLowerCase() === bond?.lpToken?.address?.[bond.chainId]?.toLowerCase(),\n )?.price\n\n let payoutTokenPrice = tokenPrices?.[bond.chainId]?.find(\n (tokenPrice: TokenPrices) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bond?.earnToken?.address?.[bond.chainId]?.toLowerCase(),\n )?.price\n\n if (principalTokenPrice === undefined) {\n try {\n const res = await apiGet<{ price: string }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n console.log('Individual call for: ', bond.lpToken.symbol, '. Price: ', res.price)\n principalTokenPrice = parseFloat(res.price ?? '0')\n } catch {\n principalTokenPrice = 0\n }\n }\n if (payoutTokenPrice === undefined) {\n try {\n const res = await apiGet<{ price: string }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n console.log('Individual call for: ', bond.earnToken.symbol, '. Price: ', res.price)\n payoutTokenPrice = parseFloat(res.price ?? '0')\n } catch {\n payoutTokenPrice = 0\n }\n }\n\n bond = {\n ...bond,\n payoutTokenPrice: payoutTokenPrice?.toString(),\n principalTokenPrice: principalTokenPrice?.toString(),\n }\n const paused = pausedStates.get(bond.contractAddress[bond.chainId]?.toLowerCase() as string) ?? false\n\n const data =\n billVersions[i] !== BillVersion.V1\n ? {\n address: billDataCalls[billPos].address,\n id: billDataCalls[billPos].params[0].toString(),\n payout: (\n BigInt(billData[billPos][0]?.payout.toString()) - BigInt(billData[billPos][0]?.payoutClaimed.toString())\n ).toString(),\n totalPayout: billData[billPos][0]?.payout.toString(),\n payoutClaimed: billData[billPos][0]?.payoutClaimed.toString(),\n billNftAddress: bond.billNnftAddress[bond.chainId] ?? '',\n vesting: billData[billPos][0]?.vesting.toString(),\n vestingTerm: billData[billPos][0]?.vestingTerm.toString(),\n lastBlockTimestamp: billData[billPos][0]?.lastClaimTimestamp.toString(),\n vestingStartTimestamp: billData[billPos][0]?.vestingStartTimestamp.toString(),\n truePricePaid: billData[billPos][0]?.truePricePaid.toString(),\n pendingRewards: billData[billPos + 1][0].toString(),\n paused,\n bond,\n }\n : {\n address: billDataCalls[billPos].address,\n id: billDataCalls[billPos].params[0].toString(),\n payoutClaimed: billData?.[billPos]?.[0]?.payoutClaimed?.toString(),\n payout: billData[billPos][0].toString(),\n billNftAddress: bond.billNnftAddress[bond.chainId] ?? '',\n vesting: billData[billPos][1].toString(),\n lastBlockTimestamp: billData[billPos][2].toString(),\n truePricePaid: billData[billPos][3].toString(),\n pendingRewards: billData[billPos + 1][0].toString(),\n paused,\n bond,\n }\n result.push(data)\n }\n\n return result\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import lensContractABI from '../../config/abi/lensContract.json.js';
|
|
3
|
+
import { LENS_CONTRACT } from '../../config/constants/addresses.js';
|
|
4
|
+
import { reportError } from '../../utils/reportError.js';
|
|
5
|
+
import { TIERS_WEIGHT, NO_TIER_POINTS } from '../../state/tiers/tiers.js';
|
|
6
|
+
import multicall from './multicall.js';
|
|
7
|
+
|
|
8
|
+
/** Tier points of an EVM address: escrow weight on the BSC lens contract, or its best promotion if that's higher. */
|
|
9
|
+
const getTierPoints = async (account, apiUrl) => {
|
|
10
|
+
try {
|
|
11
|
+
const res = await multicall(ChainId.BSC, lensContractABI, [
|
|
12
|
+
{
|
|
13
|
+
address: LENS_CONTRACT,
|
|
14
|
+
name: 'getEscrowWeight',
|
|
15
|
+
params: [account],
|
|
16
|
+
},
|
|
17
|
+
]);
|
|
18
|
+
const onChainPoints = BigInt(res[0][0].toString()) * 2n;
|
|
19
|
+
const promotionsData = await fetch(`${apiUrl}/tier-promotion?user=${account}`)
|
|
20
|
+
.then((res) => res.json())
|
|
21
|
+
.then((data) => data)
|
|
22
|
+
.catch((err) => {
|
|
23
|
+
console.error('Error fetching promotions:', err);
|
|
24
|
+
return {};
|
|
25
|
+
});
|
|
26
|
+
const promotionalTier = promotionsData?.bestPromotion?.tier;
|
|
27
|
+
const bestPromotionPoints = BigInt(promotionalTier ? TIERS_WEIGHT[promotionalTier] : 0);
|
|
28
|
+
return {
|
|
29
|
+
onChainPoints: onChainPoints.toString(),
|
|
30
|
+
promotionalPoints: bestPromotionPoints > onChainPoints ? bestPromotionPoints.toString() : onChainPoints.toString(),
|
|
31
|
+
promotion: bestPromotionPoints > onChainPoints ? promotionsData?.bestPromotion?.promotion : null,
|
|
32
|
+
eligibleChains: promotionsData?.bestPromotion?.eligibleChains || undefined,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
console.error(e);
|
|
37
|
+
reportError({
|
|
38
|
+
apiUrl,
|
|
39
|
+
error: e,
|
|
40
|
+
extraInfo: { type: 'fetchUserPoints', e },
|
|
41
|
+
account,
|
|
42
|
+
});
|
|
43
|
+
return NO_TIER_POINTS;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { getTierPoints };
|
|
48
|
+
//# sourceMappingURL=getTierPoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTierPoints.js","sources":["../../../src/adapters/evm/getTierPoints.ts"],"sourcesContent":["import { ChainId, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport lensContractABI from '../../config/abi/lensContract.json'\nimport { LENS_CONTRACT } from '../../config/constants/addresses'\nimport { reportError } from '../../utils/reportError'\nimport { NO_TIER_POINTS, TIERS_WEIGHT, TierPoints } from '../../state/tiers/tiers'\nimport multicall from './multicall'\n\n/** Tier points of an EVM address: escrow weight on the BSC lens contract, or its best promotion if that's higher. */\nexport const getTierPoints = async (account: string, apiUrl: string): Promise<TierPoints> => {\n try {\n const res = await multicall(ChainId.BSC, lensContractABI, [\n {\n address: LENS_CONTRACT,\n name: 'getEscrowWeight',\n params: [account],\n },\n ])\n const onChainPoints = BigInt(res[0][0].toString()) * 2n\n\n const promotionsData = await fetch(`${apiUrl}/tier-promotion?user=${account}`)\n .then((res) => res.json())\n .then((data) => data)\n .catch((err) => {\n console.error('Error fetching promotions:', err)\n return {}\n })\n const promotionalTier: LaunchBondTiers | null = promotionsData?.bestPromotion?.tier\n\n const bestPromotionPoints = BigInt(promotionalTier ? TIERS_WEIGHT[promotionalTier] : 0)\n\n return {\n onChainPoints: onChainPoints.toString(),\n promotionalPoints:\n bestPromotionPoints > onChainPoints ? bestPromotionPoints.toString() : onChainPoints.toString(),\n promotion: bestPromotionPoints > onChainPoints ? promotionsData?.bestPromotion?.promotion : null,\n eligibleChains: promotionsData?.bestPromotion?.eligibleChains || undefined,\n }\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'fetchUserPoints', e },\n account,\n })\n return NO_TIER_POINTS\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOA;AACO,MAAM,aAAa,GAAG,OAAO,OAAe,EAAE,MAAc,KAAyB;AAC1F,IAAA,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE;AACxD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,CAAC,OAAO,CAAC;AAClB,aAAA;AACF,SAAA,CAAC;AACF,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;QAEvD,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAA,qBAAA,EAAwB,OAAO,CAAA,CAAE;aAC1E,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE;AACxB,aAAA,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;AACnB,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC;AAChD,YAAA,OAAO,EAAE;AACX,QAAA,CAAC,CAAC;AACJ,QAAA,MAAM,eAAe,GAA2B,cAAc,EAAE,aAAa,EAAE,IAAI;AAEnF,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAEvF,OAAO;AACL,YAAA,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE;AACvC,YAAA,iBAAiB,EACf,mBAAmB,GAAG,aAAa,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE;AACjG,YAAA,SAAS,EAAE,mBAAmB,GAAG,aAAa,GAAG,cAAc,EAAE,aAAa,EAAE,SAAS,GAAG,IAAI;AAChG,YAAA,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,IAAI,SAAS;SAC3E;IACH;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;YACzC,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,cAAc;IACvB;AACF;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ChainAdapter } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* EVM bonds (every chain that isn't Solana, Aptos or Sui), plus tiers and PreTGE / launch / Yield bonds. Requires
|
|
4
|
+
* `wagmi` and `viem`, and the consumer must mount a `WagmiProvider` (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).
|
|
5
|
+
*/
|
|
6
|
+
export declare const evmAdapter: ChainAdapter;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import EvmAccountBridge from './EvmAccountBridge.js';
|
|
3
|
+
import { fetchBondsDataEVM } from './fetchBondsDataEVM.js';
|
|
4
|
+
import { fetchUsersBondsEVM } from './fetchUsersBondsEVM.js';
|
|
5
|
+
import { getTokensBalanceEVM, getTokenBalanceEVM } from './balances.js';
|
|
6
|
+
import { getTierPoints } from './getTierPoints.js';
|
|
7
|
+
import BuyComponent from './BuyComponent.js';
|
|
8
|
+
import UserBondRow from './UserBondRow.js';
|
|
9
|
+
import Actions from './Actions.js';
|
|
10
|
+
import TransferAction from './TransferAction.js';
|
|
11
|
+
import ClaimAllActionEVM from './ClaimAllActionEVM.js';
|
|
12
|
+
import ConnectToEVMBanner from './ConnectToEvmBanner.js';
|
|
13
|
+
import { fetchBondsDataPreTGE } from './preTGE/fetchBondsDataPreTGE.js';
|
|
14
|
+
import { fetchUserBondsPreTGE } from './preTGE/fetchUserBondsPreTGE.js';
|
|
15
|
+
import ModalHandlerPreTGE from './preTGE/ModalHandlerPreTGE.js';
|
|
16
|
+
import UserBondRowPreTGE from './preTGE/UserBondRowPreTGE.js';
|
|
17
|
+
import UserBondRowYield from './preTGE/UserBondRowYield.js';
|
|
18
|
+
|
|
19
|
+
const NON_EVM_CHAINS = [ChainId.SOL, ChainId.APTOS, ChainId.SUI];
|
|
20
|
+
/**
|
|
21
|
+
* EVM bonds (every chain that isn't Solana, Aptos or Sui), plus tiers and PreTGE / launch / Yield bonds. Requires
|
|
22
|
+
* `wagmi` and `viem`, and the consumer must mount a `WagmiProvider` (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).
|
|
23
|
+
*/
|
|
24
|
+
const evmAdapter = {
|
|
25
|
+
ecosystem: 'evm',
|
|
26
|
+
supportsChain: (chainId) => !NON_EVM_CHAINS.includes(chainId),
|
|
27
|
+
AccountBridge: EvmAccountBridge,
|
|
28
|
+
// EVM bonds come from the realtime API; fetchBondsData is only the on-chain (multicall) fallback. Bills are
|
|
29
|
+
// enriched with api-v2 NFT metadata.
|
|
30
|
+
usesRealtimeApi: true,
|
|
31
|
+
fetchBondsData: (chainId, bonds, tokenPrices, apiUrl) => fetchBondsDataEVM(chainId, bonds, apiUrl, tokenPrices),
|
|
32
|
+
fetchUserBonds: (chainId, account, bonds, tokenPrices) => fetchUsersBondsEVM(chainId, account, bonds, tokenPrices),
|
|
33
|
+
enrichUserBondsViaApi: true,
|
|
34
|
+
getTokenBalance: getTokenBalanceEVM,
|
|
35
|
+
getTokensBalances: getTokensBalanceEVM,
|
|
36
|
+
BuyComponent,
|
|
37
|
+
UserBondRow,
|
|
38
|
+
BondActions: Actions,
|
|
39
|
+
TransferAction,
|
|
40
|
+
ClaimAllAction: ClaimAllActionEVM,
|
|
41
|
+
ConnectBanner: ConnectToEVMBanner,
|
|
42
|
+
getTierPoints,
|
|
43
|
+
preTGE: {
|
|
44
|
+
fetchBondsData: fetchBondsDataPreTGE,
|
|
45
|
+
fetchUserBonds: fetchUserBondsPreTGE,
|
|
46
|
+
ModalHandler: ModalHandlerPreTGE,
|
|
47
|
+
UserBondRow: UserBondRowPreTGE,
|
|
48
|
+
YieldRow: UserBondRowYield,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { evmAdapter };
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/adapters/evm/index.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport type { ChainAdapter } from '../types'\nimport EvmAccountBridge from './EvmAccountBridge'\nimport { fetchBondsDataEVM } from './fetchBondsDataEVM'\nimport { fetchUsersBondsEVM } from './fetchUsersBondsEVM'\nimport { getTokenBalanceEVM, getTokensBalanceEVM } from './balances'\nimport { getTierPoints } from './getTierPoints'\nimport BuyComponent from './BuyComponent'\nimport UserBondRow from './UserBondRow'\nimport Actions from './Actions'\nimport TransferAction from './TransferAction'\nimport ClaimAllActionEVM from './ClaimAllActionEVM'\nimport ConnectToEVMBanner from './ConnectToEvmBanner'\nimport { fetchBondsDataPreTGE } from './preTGE/fetchBondsDataPreTGE'\nimport { fetchUserBondsPreTGE } from './preTGE/fetchUserBondsPreTGE'\nimport ModalHandlerPreTGE from './preTGE/ModalHandlerPreTGE'\nimport UserBondRowPreTGE from './preTGE/UserBondRowPreTGE'\nimport UserBondRowYield from './preTGE/UserBondRowYield'\n\nconst NON_EVM_CHAINS: ChainId[] = [ChainId.SOL, ChainId.APTOS, ChainId.SUI]\n\n/**\n * EVM bonds (every chain that isn't Solana, Aptos or Sui), plus tiers and PreTGE / launch / Yield bonds. Requires\n * `wagmi` and `viem`, and the consumer must mount a `WagmiProvider` (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).\n */\nexport const evmAdapter: ChainAdapter = {\n ecosystem: 'evm',\n supportsChain: (chainId) => !NON_EVM_CHAINS.includes(chainId),\n AccountBridge: EvmAccountBridge,\n\n // EVM bonds come from the realtime API; fetchBondsData is only the on-chain (multicall) fallback. Bills are\n // enriched with api-v2 NFT metadata.\n usesRealtimeApi: true,\n fetchBondsData: (chainId, bonds, tokenPrices, apiUrl) => fetchBondsDataEVM(chainId, bonds, apiUrl, tokenPrices),\n fetchUserBonds: (chainId, account, bonds, tokenPrices) => fetchUsersBondsEVM(chainId, account, bonds, tokenPrices),\n enrichUserBondsViaApi: true,\n getTokenBalance: getTokenBalanceEVM,\n getTokensBalances: getTokensBalanceEVM,\n\n BuyComponent,\n UserBondRow,\n BondActions: Actions,\n TransferAction,\n ClaimAllAction: ClaimAllActionEVM,\n ConnectBanner: ConnectToEVMBanner,\n\n getTierPoints,\n preTGE: {\n fetchBondsData: fetchBondsDataPreTGE,\n fetchUserBonds: fetchUserBondsPreTGE,\n ModalHandler: ModalHandlerPreTGE,\n UserBondRow: UserBondRowPreTGE,\n YieldRow: UserBondRowYield,\n },\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc,GAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AAE3E;;;AAGG;AACI,MAAM,UAAU,GAAiB;AACtC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,aAAa,EAAE,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7D,IAAA,aAAa,EAAE,gBAAgB;;;AAI/B,IAAA,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;IAC/G,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,KAAK,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;AAClH,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,eAAe,EAAE,kBAAkB;AACnC,IAAA,iBAAiB,EAAE,mBAAmB;IAEtC,YAAY;IACZ,WAAW;AACX,IAAA,WAAW,EAAE,OAAO;IACpB,cAAc;AACd,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,aAAa,EAAE,kBAAkB;IAEjC,aAAa;AACb,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,QAAQ,EAAE,gBAAgB;AAC3B,KAAA;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createPublicClient, http, encodeFunctionData, decodeFunctionResult } from 'viem';
|
|
2
|
-
import multicallV2Abi from '
|
|
2
|
+
import multicallV2Abi from '../../config/abi/multicallv2.json.js';
|
|
3
3
|
import chunk from 'lodash-es/chunk.js';
|
|
4
4
|
import flatten from 'lodash-es/flatten.js';
|
|
5
|
-
import { getRPC } from '
|
|
6
|
-
import { MULTICALL_V2 } from '
|
|
5
|
+
import { getRPC } from '../../config/constants/networks.js';
|
|
6
|
+
import { MULTICALL_V2 } from '../../config/constants/addresses.js';
|
|
7
7
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
8
8
|
|
|
9
9
|
// Wraps decoded result in an array when the function has a single output,
|