@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":"YourBondModalHeader.js","sources":["../../../../../../../src/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../../../../components/uikit-sdk/TokenImage'\nimport Flex from '../../../../../../components/uikit-sdk/Flex'\nimport Skeleton from '../../../../../../components/uikit-sdk/Skeleton'\nimport { PreTGEUserBonds } from '../../../../../../state/bonds/useUserBondsPreTGE'\nimport ListTag from '../../../../../../components/uikit-sdk/Tag/ListTag'\nimport Close from '../../../../../../components/uikit-sdk/Svg/Icons/Close'\n\nconst YourBondModalHeader = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Static Data\n const payoutTokenSymbol = userBill?.underlyingEarnToken?.symbol\n\n return (\n <Flex className=\"ape:w-full ape:justify-between ape:items-center\">\n <Flex className=\"ape:items-center ape:gap-[7px]\">\n {payoutTokenSymbol ? (\n <>\n <TokenImage symbol={payoutTokenSymbol} size={30} chain={userBill?.chainId} />\n <div className=\"ape:text-[16px] ape:md:text-[18px] ape:font-bold ape:opacity-70 ape:overflow-hidden ape:whitespace-nowrap ape:text-ellipsis ape:max-w-[100px]\">\n {payoutTokenSymbol}\n </div>\n <ListTag text={'Yield Bond'} />\n </>\n ) : (\n <>\n <Skeleton\n animation=\"waves\"\n style={{ width: '30px', height: '30px', borderRadius: '55px', marginRight: '10px' }}\n />\n <Skeleton animation=\"waves\" style={{ width: '100px', borderRadius: 'var(--ape-radius-normal)' }} />\n </>\n )}\n </Flex>\n <Flex className=\"svg-close ape:cursor-pointer ape:p-[2px_5px]\" onClick={onDismiss}>\n <Close width={'16px'} />\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBondModalHeader\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA0D,KAAI;;AAE9G,IAAA,MAAM,iBAAiB,GAAG,QAAQ,EAAE,mBAAmB,EAAE,MAAM;AAE/D,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAAA,CAC/DC,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAC7C,iBAAiB,IAChBD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAA,CAAI,EAC7EA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+IAA+I,EAAA,QAAA,EAC3J,iBAAiB,EAAA,CACd,EACNA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,YAAY,EAAA,CAAI,CAAA,EAAA,CAC9B,KAEHD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,QAAQ,IACP,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAA,CACnF,EACFA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,EAAA,CAAI,CAAA,EAAA,CAClG,CACJ,EAAA,CACI,EACPA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,8CAA8C,EAAC,OAAO,EAAE,SAAS,EAAA,QAAA,EAC/EA,IAAC,KAAK,EAAA,EAAC,KAAK,EAAE,MAAM,EAAA,CAAI,EAAA,CACnB,CAAA,EAAA,CACF;AAEX;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { BondsData } from '../../../types/bonds';
|
|
2
2
|
import { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists';
|
|
3
|
-
import { TokenPrices } from '
|
|
3
|
+
import { TokenPrices } from '../../../state/tokenPrices/useTokenPrices';
|
|
4
4
|
export declare const fetchBondsDataPreTGE: (chain: number, tokenPrices: Partial<Record<ChainId, TokenPrices[]>>, preTGEBonds: PreTGEConfig[], apiUrl?: string) => Promise<BondsData[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getBalanceNumber } from '../../../utils/getBalanceNumber.js';
|
|
2
|
-
import multicall from '
|
|
2
|
+
import multicall from '../multicall.js';
|
|
3
3
|
import chunk from 'lodash-es/chunk.js';
|
|
4
4
|
import LaunchBondABI_V_2_4_1 from '../../../config/abi/launchBond_v2_4_1.json.js';
|
|
5
5
|
import Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBondsDataPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/fetchBondsDataPreTGE.ts"],"sourcesContent":["import { BondsData } from '../../../types/bonds'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport multicall from '../multicall'\nimport chunk from 'lodash-es/chunk.js'\nimport launchBondsABI_V2_4_1 from '../../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../../utils/reportError'\n\nexport const fetchBondsDataPreTGE = async (\n chain: number,\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEBonds: PreTGEConfig[],\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n if (!preTGEBonds?.length) return []\n const data = []\n const chainId = chain as ChainId\n\n const preTGEBondsIds: number[] = []\n const launchBondsCalls = preTGEBonds.flatMap((bond) => {\n preTGEBondsIds.push(bond.index)\n const bill = bond\n return [\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'trueBillPrice',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'totalPrincipalBilled',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'finalized',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'minPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'maxPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'startVestingTimestamp',\n },\n ]\n })\n const vals = await multicall(chainId, launchBondsABI_V2_4_1, launchBondsCalls)\n const chunkSize = vals.length / preTGEBonds.length\n const chunkedBills = chunk(vals, chunkSize)\n const returnedBills = await Promise.all(\n chunkedBills?.map(async (chunk: any, index) => {\n const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index])!\n\n const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] =\n chunk\n const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms\n\n const initPrice = getBalanceNumber(\n trueBillPrice,\n bondConfig?.lpToken?.decimals?.[bondConfig?.chainId as ChainId] ?? 18,\n )\n\n const lpPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n const earnTokenPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n\n const principalTokenPrice = lpPrice?.toString() ?? '0'\n const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString()\n\n const bonus = Math.round((bondConfig.tgePrice! / initPrice) * 100 - 100)\n\n const endTime = parseInt(terms[0])\n const startTime = parseInt(terms[1])\n const now = Math.floor(Date.now() / 1000)\n const progress = Math.min(1, Math.max(0, (now - startTime) / (endTime - startTime)))\n const currentAPR =\n bondConfig.startAPR != null && bondConfig.endAPR != null && endTime > startTime\n ? bondConfig.startAPR + (bondConfig.endAPR - bondConfig.startAPR) * progress\n : 0\n let rewardDistributionEnd = 0\n if (bondConfig.yieldBond) {\n const calls = [\n {\n address: bondConfig.earnToken.address[bondConfig.chainId] ?? '',\n name: 'vestingEnd',\n },\n ]\n const res = await multicall(bondConfig.chainId, Vault_Shares_ABI, calls)\n rewardDistributionEnd = parseInt(res[0][0])\n }\n const data: BondsData = {\n ...bondConfig,\n initialRelease: initialRelease / 10000,\n vestingTerm: parseInt(vestingTerm),\n trueBondPrices: [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice?.toString(),\n bonus,\n bonusWithFee: bonus, // placeholder, wont be used\n discount: bonus, // placeholder, wont be used\n discountWithFee: bonus, // placeholder, wont be used\n },\n ],\n maxTotalPayout: maxTotalPayout?.toString(),\n totalPrincipalBilled: totalPrincipalBilled?.toString(),\n payoutTokenPrice,\n principalTokenPrice,\n totalRaise: totalRaise?.toString(),\n finalized: finalized[0],\n minPoints: minPoints.toString(),\n maxPoints: maxPoints.toString(),\n startVestingTimestamp: startVestingTimestamp?.toString(),\n initTime: { [bondConfig.chainId]: parseInt(terms[1]) },\n finishTime: parseInt(terms[0]),\n initPrice,\n soldOut: finalized[0] || (parseInt(terms[0]) ?? 0) < Date.now() / 1000 || bondConfig.soldOut,\n yieldData: {\n apr: bondConfig.finalAPR || currentAPR,\n rewardDistributionEnd,\n },\n }\n return data\n }),\n )\n data.push(returnedBills)\n return data.flat()\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },\n })\n return []\n }\n}\n"],"names":["launchBondsABI_V2_4_1"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import { TokenPrices } from '../../../state/tokenPrices/useTokenPrices';
|
|
3
|
+
import type { PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE';
|
|
4
|
+
/** The EVM account's PreTGE / launch bonds and Yield positions (on-chain reads). Used by core's useUserBondsPreTGE. */
|
|
5
|
+
export declare const fetchUserBondsPreTGE: (chains: number[], tokenPrices: Partial<Record<ChainId, TokenPrices[]>>, preTGEList: PreTGEConfig[], account: string, apiUrl: string) => Promise<PreTGEUserBonds[]>;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import LaunchBondABI_V_2_4_1 from '../../../config/abi/launchBond_v2_4_1.json.js';
|
|
2
|
+
import Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json.js';
|
|
3
|
+
import { reportError } from '../../../utils/reportError.js';
|
|
4
|
+
import { getBalanceNumber } from '../../../utils/getBalanceNumber.js';
|
|
5
|
+
import multicall from '../multicall.js';
|
|
6
|
+
|
|
7
|
+
/** The EVM account's PreTGE / launch bonds and Yield positions (on-chain reads). Used by core's useUserBondsPreTGE. */
|
|
8
|
+
const fetchUserBondsPreTGE = async (chains, tokenPrices, preTGEList, account, apiUrl) => {
|
|
9
|
+
try {
|
|
10
|
+
const preTGEBonds = preTGEList.filter((bond) => chains.includes(bond.chainId));
|
|
11
|
+
const results = await Promise.all(preTGEBonds.map(async (bond) => {
|
|
12
|
+
try {
|
|
13
|
+
const calls = [
|
|
14
|
+
{
|
|
15
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
16
|
+
name: 'getBillIds',
|
|
17
|
+
params: [account],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
21
|
+
name: 'accountInfo',
|
|
22
|
+
params: [account],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
26
|
+
name: 'hasRedeemed',
|
|
27
|
+
params: [account],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
31
|
+
name: 'finalized',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
35
|
+
name: 'terms',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
39
|
+
name: 'trueBillPrice',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
const res = await multicall(bond.chainId, LaunchBondABI_V_2_4_1, calls);
|
|
43
|
+
const billId = res?.[0]?.[0]?.[0]?.toString();
|
|
44
|
+
let userOwnedBillsData;
|
|
45
|
+
if (billId) {
|
|
46
|
+
const billDataCalls = [
|
|
47
|
+
{
|
|
48
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
49
|
+
name: 'getBillInfo',
|
|
50
|
+
params: [billId],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
54
|
+
name: 'billNft',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
58
|
+
name: 'claimablePayout',
|
|
59
|
+
params: [billId],
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
const billData = await multicall(bond.chainId, LaunchBondABI_V_2_4_1, billDataCalls);
|
|
63
|
+
userOwnedBillsData = {
|
|
64
|
+
address: bond.contractAddress[bond.chainId] ?? '',
|
|
65
|
+
id: billId,
|
|
66
|
+
payout: (BigInt(billData[0][0]?.payout.toString()) - BigInt(billData[0][0]?.payoutClaimed.toString())).toString(),
|
|
67
|
+
payoutClaimed: billData[0][0]?.payoutClaimed.toString(),
|
|
68
|
+
billNftAddress: billData[1][0]?.toString(),
|
|
69
|
+
// vesting: billData[0][0]?.vesting?.toString(),
|
|
70
|
+
vestingTerm: billData[0][0]?.vestingTerm?.toString(),
|
|
71
|
+
lastBlockTimestamp: billData[0][0]?.lastClaimTimestamp?.toString(),
|
|
72
|
+
vestingStartTimestamp: billData[0][0]?.vestingStartTimestamp?.toString(),
|
|
73
|
+
truePricePaid: billData[0][0]?.truePricePaid?.toString(),
|
|
74
|
+
pendingRewards: billData[2][0]?.toString(),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const accountInfo = {
|
|
78
|
+
hasRedeemed: res[2][0],
|
|
79
|
+
payout: res[1][0].toString(),
|
|
80
|
+
depositAmount: res[1][1].toString(),
|
|
81
|
+
payoutClaimed: res[1][2].toString(),
|
|
82
|
+
vesting: res[1][3].toString(),
|
|
83
|
+
vestingTerm: res[1][4].toString(),
|
|
84
|
+
vestingStartTimestamp: res[1][5].toString(),
|
|
85
|
+
lastClaimTimestamp: res[1][6].toString(),
|
|
86
|
+
truePricePaid: res[1][7].toString(),
|
|
87
|
+
};
|
|
88
|
+
const finalized = res[3][0];
|
|
89
|
+
const terms = res[4];
|
|
90
|
+
const endTime = parseInt(terms[0]);
|
|
91
|
+
const startTime = parseInt(terms[1]);
|
|
92
|
+
const vestingTerm = parseInt(res[4][2]);
|
|
93
|
+
const trueBillPrice = res[5]?.[0]?.toString();
|
|
94
|
+
const initPrice = getBalanceNumber(trueBillPrice, bond?.lpToken?.decimals?.[bond?.chainId]);
|
|
95
|
+
const initialRelease = terms?.[5];
|
|
96
|
+
const earnTokenAddress = bond.yieldBond
|
|
97
|
+
? bond.underlyingEarnToken?.address[bond.chainId]?.toLowerCase()
|
|
98
|
+
: bond.earnToken.address[bond.chainId]?.toLowerCase();
|
|
99
|
+
const earnTokenPrice = tokenPrices?.[bond?.chainId]?.find((tokenPrice) => tokenPrice.tokenAddress?.toLowerCase() === earnTokenAddress)?.price;
|
|
100
|
+
const now = Math.floor(Date.now() / 1000);
|
|
101
|
+
const progress = Math.min(1, Math.max(0, (now - startTime) / (endTime - startTime)));
|
|
102
|
+
const currentAPR = bond.startAPR != null && bond.endAPR != null && endTime > startTime
|
|
103
|
+
? bond.startAPR + (bond.endAPR - bond.startAPR) * progress
|
|
104
|
+
: 0;
|
|
105
|
+
const apr = bond.finalAPR || currentAPR;
|
|
106
|
+
let depositedAssets = 0;
|
|
107
|
+
let claimableRewards = '0';
|
|
108
|
+
let futureRewards = 0;
|
|
109
|
+
let rewardDistributionEnd = 0;
|
|
110
|
+
let claimed = 0;
|
|
111
|
+
let vaultTokenBalance = '0';
|
|
112
|
+
if (bond.yieldBond) {
|
|
113
|
+
const calls = [
|
|
114
|
+
{
|
|
115
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
116
|
+
name: 'maxWithdraw',
|
|
117
|
+
params: [account],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
121
|
+
name: 'pendingRewards',
|
|
122
|
+
params: [account],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
126
|
+
name: 'claimedAssets',
|
|
127
|
+
params: [account],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
131
|
+
name: 'vestingEnd',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
135
|
+
name: 'balanceOf',
|
|
136
|
+
params: [account],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
address: bond.earnToken.address[bond.chainId] ?? '',
|
|
140
|
+
name: 'earned',
|
|
141
|
+
params: [account],
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
const res = await multicall(bond.chainId, Vault_Shares_ABI, calls);
|
|
145
|
+
depositedAssets = getBalanceNumber(res[0][0].toString());
|
|
146
|
+
futureRewards = getBalanceNumber(res[1][0].toString());
|
|
147
|
+
claimed = getBalanceNumber(res[2][0].toString());
|
|
148
|
+
rewardDistributionEnd = parseInt(res[3][0]);
|
|
149
|
+
vaultTokenBalance = res[4][0].toString();
|
|
150
|
+
claimableRewards = res[5][0].toString();
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
...bond,
|
|
154
|
+
accountInfo,
|
|
155
|
+
userOwnedBillsData,
|
|
156
|
+
endTime,
|
|
157
|
+
finalized,
|
|
158
|
+
vestingTerm,
|
|
159
|
+
initPrice,
|
|
160
|
+
initialRelease: initialRelease / 10000,
|
|
161
|
+
earnTokenPrice: bond.yieldBond
|
|
162
|
+
? earnTokenPrice
|
|
163
|
+
: !earnTokenPrice || earnTokenPrice === 0
|
|
164
|
+
? initPrice
|
|
165
|
+
: earnTokenPrice,
|
|
166
|
+
yieldData: {
|
|
167
|
+
apr,
|
|
168
|
+
claimableRewards: accountInfo.hasRedeemed ? claimableRewards : '0',
|
|
169
|
+
rewardDistributionEnd,
|
|
170
|
+
claimed,
|
|
171
|
+
depositedAssets,
|
|
172
|
+
vaultTokenBalance,
|
|
173
|
+
futureRewards,
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
console.error(e);
|
|
179
|
+
reportError({
|
|
180
|
+
apiUrl,
|
|
181
|
+
error: e,
|
|
182
|
+
extraInfo: { type: 'fetchPreTGEUserBonds', bond, e },
|
|
183
|
+
account,
|
|
184
|
+
chainId: bond.chainId,
|
|
185
|
+
});
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
}));
|
|
189
|
+
return results.filter((bond) => bond !== undefined);
|
|
190
|
+
}
|
|
191
|
+
catch (e) {
|
|
192
|
+
console.log(e);
|
|
193
|
+
reportError({
|
|
194
|
+
apiUrl,
|
|
195
|
+
error: e,
|
|
196
|
+
extraInfo: { type: 'fetchPreTGEUserBonds', e },
|
|
197
|
+
account,
|
|
198
|
+
});
|
|
199
|
+
return [];
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
export { fetchUserBondsPreTGE };
|
|
204
|
+
//# sourceMappingURL=fetchUserBondsPreTGE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchUserBondsPreTGE.js","sources":["../../../../src/adapters/evm/preTGE/fetchUserBondsPreTGE.ts"],"sourcesContent":["import { ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport launchBondsABI_V2_4_1 from '../../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../../utils/reportError'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport type { AccountInfo, PreTGEUserBonds } from '../../../state/bonds/useUserBondsPreTGE'\nimport multicall from '../multicall'\n\n/** The EVM account's PreTGE / launch bonds and Yield positions (on-chain reads). Used by core's useUserBondsPreTGE. */\nexport const fetchUserBondsPreTGE = async (\n chains: number[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEList: PreTGEConfig[],\n account: string,\n apiUrl: string,\n): Promise<PreTGEUserBonds[]> => {\n try {\n const preTGEBonds = preTGEList.filter((bond) => chains.includes(bond.chainId))\n const results: (PreTGEUserBonds | undefined)[] = await Promise.all(\n preTGEBonds.map(async (bond): Promise<PreTGEUserBonds | undefined> => {\n try {\n const calls = [\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'getBillIds',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'accountInfo',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'hasRedeemed',\n params: [account],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'finalized',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'trueBillPrice',\n },\n ]\n\n const res = await multicall(bond.chainId, launchBondsABI_V2_4_1, calls)\n const billId = res?.[0]?.[0]?.[0]?.toString()\n\n let userOwnedBillsData\n if (billId) {\n const billDataCalls: any = [\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'getBillInfo',\n params: [billId],\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'billNft',\n },\n {\n address: bond.contractAddress[bond.chainId] ?? '',\n name: 'claimablePayout',\n params: [billId],\n },\n ]\n const billData = await multicall(bond.chainId, launchBondsABI_V2_4_1, billDataCalls)\n userOwnedBillsData = {\n address: bond.contractAddress[bond.chainId] ?? '',\n id: billId,\n payout: (\n BigInt(billData[0][0]?.payout.toString()) - BigInt(billData[0][0]?.payoutClaimed.toString())\n ).toString(),\n payoutClaimed: billData[0][0]?.payoutClaimed.toString(),\n billNftAddress: billData[1][0]?.toString(),\n // vesting: billData[0][0]?.vesting?.toString(),\n vestingTerm: billData[0][0]?.vestingTerm?.toString(),\n lastBlockTimestamp: billData[0][0]?.lastClaimTimestamp?.toString(),\n vestingStartTimestamp: billData[0][0]?.vestingStartTimestamp?.toString(),\n truePricePaid: billData[0][0]?.truePricePaid?.toString(),\n pendingRewards: billData[2][0]?.toString(),\n }\n }\n const accountInfo: AccountInfo = {\n hasRedeemed: res[2][0],\n payout: res[1][0].toString(),\n depositAmount: res[1][1].toString(),\n payoutClaimed: res[1][2].toString(),\n vesting: res[1][3].toString(),\n vestingTerm: res[1][4].toString(),\n vestingStartTimestamp: res[1][5].toString(),\n lastClaimTimestamp: res[1][6].toString(),\n truePricePaid: res[1][7].toString(),\n }\n\n const finalized: boolean = res[3][0]\n const terms = res[4]\n const endTime = parseInt(terms[0])\n const startTime = parseInt(terms[1])\n const vestingTerm = parseInt(res[4][2])\n const trueBillPrice = res[5]?.[0]?.toString()\n const initPrice = getBalanceNumber(trueBillPrice, bond?.lpToken?.decimals?.[bond?.chainId] as number)\n const initialRelease = terms?.[5]\n const earnTokenAddress = bond.yieldBond\n ? bond.underlyingEarnToken?.address[bond.chainId]?.toLowerCase()\n : bond.earnToken.address[bond.chainId]?.toLowerCase()\n const earnTokenPrice = tokenPrices?.[bond?.chainId]?.find(\n (tokenPrice) => tokenPrice.tokenAddress?.toLowerCase() === earnTokenAddress,\n )?.price\n\n const now = Math.floor(Date.now() / 1000)\n const progress = Math.min(1, Math.max(0, (now - startTime) / (endTime - startTime)))\n const currentAPR =\n bond.startAPR != null && bond.endAPR != null && endTime > startTime\n ? bond.startAPR + (bond.endAPR - bond.startAPR) * progress\n : 0\n const apr = bond.finalAPR || currentAPR\n\n let depositedAssets = 0\n let claimableRewards = '0'\n let futureRewards = 0\n let rewardDistributionEnd = 0\n let claimed = 0\n let vaultTokenBalance = '0'\n if (bond.yieldBond) {\n const calls = [\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'maxWithdraw',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'pendingRewards',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'claimedAssets',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'vestingEnd',\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'balanceOf',\n params: [account],\n },\n {\n address: bond.earnToken.address[bond.chainId] ?? '',\n name: 'earned',\n params: [account],\n },\n ]\n const res = await multicall(bond.chainId, Vault_Shares_ABI, calls)\n depositedAssets = getBalanceNumber(res[0][0].toString())\n futureRewards = getBalanceNumber(res[1][0].toString())\n claimed = getBalanceNumber(res[2][0].toString())\n rewardDistributionEnd = parseInt(res[3][0])\n vaultTokenBalance = res[4][0].toString()\n claimableRewards = res[5][0].toString()\n }\n\n return {\n ...bond,\n accountInfo,\n userOwnedBillsData,\n endTime,\n finalized,\n vestingTerm,\n initPrice,\n initialRelease: initialRelease / 10000,\n earnTokenPrice: bond.yieldBond\n ? earnTokenPrice\n : !earnTokenPrice || earnTokenPrice === 0\n ? initPrice\n : earnTokenPrice,\n yieldData: {\n apr,\n claimableRewards: accountInfo.hasRedeemed ? claimableRewards : '0',\n rewardDistributionEnd,\n claimed,\n depositedAssets,\n vaultTokenBalance,\n futureRewards,\n },\n }\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'fetchPreTGEUserBonds', bond, e },\n account,\n chainId: bond.chainId,\n })\n return undefined\n }\n }),\n )\n\n return results.filter((bond) => bond !== undefined)\n } catch (e) {\n console.log(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'fetchPreTGEUserBonds', e },\n account,\n })\n return []\n }\n}\n"],"names":["launchBondsABI_V2_4_1"],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
2
|
import erc20ABI from '../../config/abi/erc20.json.js';
|
|
3
3
|
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
4
|
-
import multicall from '
|
|
4
|
+
import multicall from './multicall.js';
|
|
5
5
|
import { convertToBigish } from '../../utils/convertToBigish.js';
|
|
6
6
|
import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
|
|
7
7
|
import USDT_ETH_ABI from '../../config/abi/usdtETH.json.js';
|
|
8
8
|
import { useState, useEffect, useCallback } from 'react';
|
|
9
9
|
import { useWriteContract } from 'wagmi';
|
|
10
|
-
import { useMonitorTx } from '
|
|
11
|
-
import { usePopups } from '
|
|
10
|
+
import { useMonitorTx } from './useMonitorTx.js';
|
|
11
|
+
import { usePopups } from '../../state/popups/usePopups.js';
|
|
12
12
|
import { reportError } from '../../utils/reportError.js';
|
|
13
|
-
import { useURLByEnvironment } from '
|
|
13
|
+
import { useURLByEnvironment } from '../../state/useSDKConfig.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* useAllowance hook: fetches the amount approved by the user for a given token
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAllowance.js","sources":["../../../src/adapters/evm/useAllowance.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport erc20ABI from '../../config/abi/erc20.json'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport multicall, { Call } from './multicall'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport ERC_20_ABI from '../../config/abi/erc20.json'\nimport USDT_ETH_ABI from '../../config/abi/usdtETH.json'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useWriteContract } from 'wagmi'\nimport { useMonitorTx } from './useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../../state/useSDKConfig'\n\n/**\n * useAllowance hook: fetches the amount approved by the user for a given token\n * useApproval hook: returns the approval state (not approved, pending or approved) and a function to approve on chain\n * getTokenAllowance function fetches the allowance on chain\n */\n\nexport enum ApprovalState {\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport default function useAllowance(\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): UseQueryResult<number | null> {\n return useQuery({\n queryKey: [\n QUERY_KEYS.ALLOWANCE,\n account ?? '',\n chainId,\n currency === 'NATIVE' ? currency : currency?.symbol,\n spender,\n ],\n queryFn: () => getTokenAllowance(currency, spender, account, chainId),\n refetchInterval: 10000, // i.e. 10 sec\n refetchOnWindowFocus: false,\n retry: 1,\n })\n}\n\nexport const getTokenAllowance = async (\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): Promise<number | null> => {\n if (currency === 'NATIVE') return null\n // if (!account) {\n // console.log('Account disconnected')\n // } else if (!currency) {\n // console.log('No currency selected')\n // } else if (!chainId) {\n // console.log('No chainId selected')\n // } else if (!spender) {\n // console.log('No spender selected')\n // }\n if (!account || !currency || !chainId || !spender) return null\n const calls: Call[] = [\n {\n address: currency.address[chainId]!,\n name: 'allowance',\n params: [account, spender],\n },\n ]\n const data = await multicall(chainId, erc20ABI, calls)\n return getBalanceNumber(data[0][0] ?? 0, currency.decimals![chainId]!)\n}\n\nexport const useApproval = (\n amount: string,\n currency: 'NATIVE' | Token | null,\n spender: string | null,\n account: string | null,\n chainId: ChainId | null,\n): [ApprovalState, () => Promise<string | null | undefined>] => {\n const apiUrl = useURLByEnvironment('apiV2')\n const [confirmingTxOnWallet, setConfirmingTxOnWallet] = useState(false)\n const { data: allowance, refetch } = useAllowance(currency, spender, account, chainId)\n\n const { writeContractAsync, data: txHash, reset } = useWriteContract()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(txHash, chainId as ChainId)\n const { addToastError } = usePopups()\n const confirmingTxOnChain = isConfirming && !isConfirmed\n\n useEffect(() => {\n if (txHash && isConfirmed) {\n setTimeout(() => {\n refetch()\n console.log('refetch allowance')\n reset()\n }, 1500)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, confirmingTxOnChain, isConfirmed])\n\n const handleApprove = useCallback(async () => {\n if (!chainId || !amount || currency === 'NATIVE' || !currency) return null\n const decimals = currency.decimals![chainId]\n const tokenAddress = currency.address[chainId] as `0x${string}`\n if (!decimals || !tokenAddress) return null\n try {\n const bigishAmount = convertToBigish(amount, decimals)\n setConfirmingTxOnWallet(true)\n const hash = await writeContractAsync({\n address: tokenAddress,\n abi:\n tokenAddress?.toLowerCase() === '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase()\n ? USDT_ETH_ABI\n : ERC_20_ABI,\n functionName: 'approve',\n args: [spender, bigishAmount],\n account: account as `0x${string}`,\n chain: chainId as any,\n })\n setConfirmingTxOnWallet(false)\n // Adding a delay as I suspect RPCs need to catch up as the txs are indexed onchain too fast\n await new Promise((resolve) => setTimeout(resolve, 1500))\n return hash\n } catch (error: any) {\n setConfirmingTxOnWallet(false)\n console.error('Approval failed:', error)\n addToastError(error?.shortMessage || error?.details || error?.message)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'approval', tokenAddress: tokenAddress, spenderAddress: spender, error },\n chainId,\n account: account!,\n })\n throw error\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [amount, currency, chainId])\n\n let approvalState: ApprovalState = ApprovalState.NOT_APPROVED\n\n if (allowance && amount) {\n approvalState = allowance >= parseFloat(amount) ? ApprovalState.APPROVED : ApprovalState.NOT_APPROVED\n }\n if (currency === 'NATIVE') {\n approvalState = ApprovalState.APPROVED\n }\n if (confirmingTxOnChain || confirmingTxOnWallet) {\n approvalState = ApprovalState.PENDING\n }\n\n return [approvalState ?? ApprovalState.NOT_APPROVED, handleApprove]\n}\n"],"names":["ERC_20_ABI"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEVMAccount.js","sources":["../../../src/adapters/evm/useEVMAccount.ts"],"sourcesContent":["import { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nconst useEVMAccount = () => {\n const SDKConfig = useSDKConfig()\n const account = useAccount()\n\n return {\n ...account,\n address:\n SDKConfig.evmAddress && account.address\n ? (SDKConfig.evmAddress as `0x${string}` | undefined)\n : (account.address as `0x${string}` | undefined),\n }\n}\n\nexport default useEVMAccount\n"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GAAG,MAAK;AACzB,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;IAE5B,OAAO;AACL,QAAA,GAAG,OAAO;AACV,QAAA,OAAO,EACL,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC;cAC3B,SAAS,CAAC;cACV,OAAO,CAAC,OAAqC;KACrD;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useWaitForTransactionReceipt } from 'wagmi';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { usePopups } from '
|
|
3
|
+
import { usePopups } from '../../state/popups/usePopups.js';
|
|
4
4
|
|
|
5
5
|
const useMonitorTx = (txHash, chainId) => {
|
|
6
6
|
const { addToastError, addToastSuccess } = usePopups();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMonitorTx.js","sources":["../../../src/adapters/evm/useMonitorTx.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { useWaitForTransactionReceipt } from 'wagmi'\nimport { useEffect } from 'react'\nimport { usePopups } from '../../state/popups/usePopups'\nimport type { TransactionReceipt } from 'viem'\n\nexport const useMonitorTx = (\n txHash?: string | null,\n chainId?: ChainId,\n): { isLoading: boolean; isSuccess: boolean; data: TransactionReceipt | undefined } => {\n const { addToastError, addToastSuccess } = usePopups()\n const transactionReceipt = useWaitForTransactionReceipt({\n confirmations: 0,\n chainId: chainId,\n hash: txHash as `0x${string}`,\n })\n const { isLoading, isSuccess: isConfirmed, error, isError, data } = transactionReceipt ?? {}\n\n useEffect(() => {\n if (txHash && isError) {\n addToastError(error.message, txHash, chainId)\n }\n if (txHash && isConfirmed) {\n addToastSuccess(txHash, chainId)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [txHash, isError, isConfirmed, isLoading])\n\n return { isLoading: txHash ? isLoading : false, isSuccess: txHash ? isConfirmed : false, data }\n}\n"],"names":[],"mappings":";;;;MAMa,YAAY,GAAG,CAC1B,MAAsB,EACtB,OAAiB,KACmE;IACpF,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE;IACtD,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AACtD,QAAA,aAAa,EAAE,CAAC;AAChB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE,MAAuB;AAC9B,KAAA,CAAC;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,IAAI,EAAE;IAE5F,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QAC/C;AACA,QAAA,IAAI,MAAM,IAAI,WAAW,EAAE;AACzB,YAAA,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;QAClC;;IAEF,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE;AACjG;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { dexFactories, Wrappers, BillVersion, zapInputTokens, WNATIVE } from '@ape.swap/apeswap-lists';
|
|
3
|
-
import { getChainParam, getLpType } from '
|
|
3
|
+
import { getChainParam, getLpType } from '../../state/zap/getChainParam.js';
|
|
4
4
|
import { apiPost } from '../../utils/httpClient.js';
|
|
5
5
|
import { useQuery } from '@tanstack/react-query';
|
|
6
6
|
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
7
|
-
import useCurrencyPrice from '
|
|
8
|
-
import { useSlippage } from '
|
|
7
|
+
import useCurrencyPrice from '../../state/price/useCurrencyPrice.js';
|
|
8
|
+
import { useSlippage } from '../../state/slippage/useSlippage.js';
|
|
9
9
|
import useDebounce from '../../hooks/useDebounce.js';
|
|
10
10
|
import { zapSupported, SOUL_ZAP_API } from '../../config/constants/variables.js';
|
|
11
|
-
import { useSDKConfig } from '
|
|
11
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
12
12
|
import { parseUnits, formatUnits } from '../../utils/fixedPoint.js';
|
|
13
13
|
|
|
14
14
|
const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProofSig) => {
|
|
@@ -117,16 +117,7 @@ const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProof
|
|
|
117
117
|
return null;
|
|
118
118
|
}
|
|
119
119
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
120
|
-
}, [
|
|
121
|
-
bigishInputAmount,
|
|
122
|
-
principalContractAddress,
|
|
123
|
-
chainName,
|
|
124
|
-
account,
|
|
125
|
-
vault,
|
|
126
|
-
lpType,
|
|
127
|
-
router,
|
|
128
|
-
slippage,
|
|
129
|
-
]);
|
|
120
|
+
}, [bigishInputAmount, principalContractAddress, chainName, account, vault, lpType, router, slippage]);
|
|
130
121
|
const queryKey = useMemo(() => {
|
|
131
122
|
if (!zapInputData)
|
|
132
123
|
return null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/adapters/evm/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from '../../state/zap/getChainParam'\nimport { apiPost } from '../../utils/httpClient'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../../state/slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { formatUnits, parseUnits } from '../../utils/fixedPoint'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n integrator: 'apebond',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n slippage: slippage,\n lpAddress: isReserveBond ? undefined : vault,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [bigishInputAmount, principalContractAddress, chainName, account, vault, lpType, router, slippage])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await apiPost<any>(SOUL_ZAP_API, zapInputData)\n return response?.result?.data ?? response\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD =\n Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals![chainId] ?? 18)) * (toToken0Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD =\n Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals![chainId] ?? 18)) * (toToken1Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD + toToken1USD // youSpendUSD\n const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate!) / 100)).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = Number(formatUnits(tier.tierCost, decimals))\n const input = Number(formatUnits(tier.bondInput, decimals))\n const profit = Number(formatUnits(tier.profit, decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
2
|
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
3
|
import { apiPost } from '../../utils/httpClient.js';
|
|
4
|
-
import { useSDKConfig } from '
|
|
4
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
5
5
|
import { reportError } from '../../utils/reportError.js';
|
|
6
|
-
import useEVMAccount from '
|
|
6
|
+
import useEVMAccount from './useEVMAccount.js';
|
|
7
7
|
|
|
8
8
|
function useTierProofSignature(bondAddress, chainId, isUserRestricted) {
|
|
9
9
|
const { address: account } = useEVMAccount();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTierProofSignature.js","sources":["../../../src/adapters/evm/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { apiPost } from '../../utils/httpClient'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\nimport useEVMAccount from './useEVMAccount'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\nconst getTierProofSig = async (\n apiAddress: string,\n account: string,\n bondAddress: string,\n chainId: ChainId,\n): Promise<string | null> => {\n try {\n const requestBody = {\n user: account, // Use the account as the \"user\" parameter\n bond: bondAddress, // Use the bondAddress\n chainId: chainId, // Use the specified chainId (Polygon)\n }\n\n const response = await apiPost<{ tierProofSignature: string }>(`${apiAddress}/tier-signature`, requestBody)\n return response.tierProofSignature\n } catch (e) {\n reportError({\n apiUrl: apiAddress,\n error: e,\n extraInfo: { type: 'getTierProofSig', bondAddress, e },\n chainId,\n account,\n })\n return null\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQc,SAAU,qBAAqB,CAC3C,WAAoB,EACpB,OAAiB,EACjB,gBAA0B,EAAA;IAE1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AAC5C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;AAEzC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACtF,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU,EAAE,OAAQ,EAAE,WAAY,EAAE,OAAQ,CAAC;AAC5E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,gBAAgB;AAC5G,KAAA,CAAC;AACJ;AAEA,MAAM,eAAe,GAAG,OACtB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAgB,KACU;AAC1B,IAAA,IAAI;AACF,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAiC,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,EAAE,WAAW,CAAC;QAC3G,OAAO,QAAQ,CAAC,kBAAkB;IACpC;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;AACV,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,EAAE;YACtD,OAAO;YACP,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AACF,CAAC;;;;"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { LiFiWidget } from '@lifi/widget';
|
|
3
|
+
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
3
4
|
import Modal from '../../components/uikit-sdk/Modal/index.js';
|
|
4
5
|
import ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader.js';
|
|
5
6
|
|
|
7
|
+
// LiFi identifies Solana with its own chain id instead of ApeBond's ChainId.SOL.
|
|
8
|
+
const LIFI_SOLANA_CHAIN_ID = 1151111081099710;
|
|
9
|
+
const toLifiChainId = (chainId) => (chainId === ChainId.SOL ? LIFI_SOLANA_CHAIN_ID : chainId);
|
|
6
10
|
const getFees = async (fromTokenSymbol, toTokenSymbol) => {
|
|
7
11
|
const stableCoins = ['FRAX', 'USDC', 'USDT', 'DAI', 'BUSD', 'TUSD', 'USDD', 'FDUSD'];
|
|
8
12
|
const isFromStable = stableCoins.includes(fromTokenSymbol);
|
|
@@ -12,7 +16,7 @@ const getFees = async (fromTokenSymbol, toTokenSymbol) => {
|
|
|
12
16
|
}
|
|
13
17
|
return isFromStable && isToStable ? 0.001 : 0.003;
|
|
14
18
|
};
|
|
15
|
-
const LifiModal = ({ bondChain, principalToken, onDismiss
|
|
19
|
+
const LifiModal = ({ bondChain, principalToken, onDismiss }) => {
|
|
16
20
|
const config = {
|
|
17
21
|
appearance: 'dark',
|
|
18
22
|
loadFonts: false,
|
|
@@ -43,16 +47,16 @@ const LifiModal = ({ bondChain, principalToken, onDismiss, }) => {
|
|
|
43
47
|
},
|
|
44
48
|
// fromToken: 'BNB',
|
|
45
49
|
// fromChain: ChainId.BSC,
|
|
46
|
-
toChain: bondChain,
|
|
50
|
+
toChain: toLifiChainId(bondChain),
|
|
47
51
|
toToken: principalToken,
|
|
48
52
|
sdkConfig: {
|
|
49
53
|
rpcUrls: {
|
|
50
|
-
[
|
|
54
|
+
[LIFI_SOLANA_CHAIN_ID]: [
|
|
51
55
|
'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',
|
|
52
56
|
],
|
|
53
57
|
},
|
|
54
58
|
},
|
|
55
|
-
variant: '
|
|
59
|
+
variant: 'compact',
|
|
56
60
|
integrator: 'apeswap',
|
|
57
61
|
feeConfig: {
|
|
58
62
|
calculateFee: async (params) => {
|
|
@@ -60,7 +64,7 @@ const LifiModal = ({ bondChain, principalToken, onDismiss, }) => {
|
|
|
60
64
|
},
|
|
61
65
|
},
|
|
62
66
|
};
|
|
63
|
-
return (jsxs(Modal, { className: "ape:justify-center ape:items-center ape:p-0!", children: [jsx(ModalHeader, { className: "ape:px-6 ape:pt-4", onDismiss: onDismiss, hideDivider: true, children: "Swap & Bridge with LIFI" }), jsx(LiFiWidget, { ...config })] }));
|
|
67
|
+
return (jsxs(Modal, { className: "lifi-bridge-modal ape:justify-center ape:items-center ape:p-0! ape:h-fit!", children: [jsx(ModalHeader, { className: "ape:px-6 ape:pt-4", onDismiss: onDismiss, hideDivider: true, children: "Swap & Bridge with LIFI" }), jsx(LiFiWidget, { ...config })] }));
|
|
64
68
|
};
|
|
65
69
|
|
|
66
70
|
export { LifiModal as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifiModal.js","sources":["../../../src/adapters/lifi/LifiModal.tsx"],"sourcesContent":["import React from 'react'\nimport { LiFiWidget } from '@lifi/widget'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport type { BridgeModalProps } from '../types'\n\n// LiFi identifies Solana with its own chain id instead of ApeBond's ChainId.SOL.\nconst LIFI_SOLANA_CHAIN_ID = 1151111081099710\n\nconst toLifiChainId = (chainId: ChainId): number => (chainId === ChainId.SOL ? LIFI_SOLANA_CHAIN_ID : chainId)\n\nconst getFees = async (fromTokenSymbol: string, toTokenSymbol: string): Promise<number> => {\n const stableCoins = ['FRAX', 'USDC', 'USDT', 'DAI', 'BUSD', 'TUSD', 'USDD', 'FDUSD']\n const isFromStable = stableCoins.includes(fromTokenSymbol)\n const isToStable = stableCoins.includes(toTokenSymbol)\n if (toTokenSymbol.toLowerCase() === 'abond') {\n return 0\n }\n return isFromStable && isToStable ? 0.001 : 0.003\n}\n\nconst LifiModal: React.FC<BridgeModalProps> = ({ bondChain, principalToken, onDismiss }) => {\n const config = {\n appearance: 'dark' as const,\n loadFonts: false,\n theme: {\n typography: {\n fontFamily: 'Poppins',\n },\n colorSchemes: {\n dark: {\n palette: {\n background: {\n default: '#161420',\n paper: '#1F1D29',\n },\n primary: {\n main: '#6560C5',\n },\n secondary: {\n main: '#6560C5',\n },\n },\n },\n },\n container: {\n boxShadow: '0px 8px 32px rgba(0, 0, 0, 0.08)',\n borderRadius: '16px',\n },\n },\n // fromToken: 'BNB',\n // fromChain: ChainId.BSC,\n toChain: toLifiChainId(bondChain),\n toToken: principalToken,\n sdkConfig: {\n rpcUrls: {\n [LIFI_SOLANA_CHAIN_ID]: [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n ],\n },\n },\n variant: 'compact' as const,\n integrator: 'apeswap',\n feeConfig: {\n calculateFee: async (params: any) => {\n return getFees(params.fromToken.symbol, params.toToken.symbol)\n },\n },\n }\n\n return (\n <Modal className=\"lifi-bridge-modal ape:justify-center ape:items-center ape:p-0! ape:h-fit!\">\n <ModalHeader className=\"ape:px-6 ape:pt-4\" onDismiss={onDismiss} hideDivider>\n Swap & Bridge with LIFI\n </ModalHeader>\n <LiFiWidget {...config} />\n </Modal>\n )\n}\n\nexport default LifiModal\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAOA;AACA,MAAM,oBAAoB,GAAG,gBAAgB;AAE7C,MAAM,aAAa,GAAG,CAAC,OAAgB,MAAc,OAAO,KAAK,OAAO,CAAC,GAAG,GAAG,oBAAoB,GAAG,OAAO,CAAC;AAE9G,MAAM,OAAO,GAAG,OAAO,eAAuB,EAAE,aAAqB,KAAqB;AACxF,IAAA,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACpF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtD,IAAA,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC3C,QAAA,OAAO,CAAC;IACV;IACA,OAAO,YAAY,IAAI,UAAU,GAAG,KAAK,GAAG,KAAK;AACnD,CAAC;AAED,MAAM,SAAS,GAA+B,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,KAAI;AACzF,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,UAAU,EAAE,MAAe;AAC3B,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE;AACV,gBAAA,UAAU,EAAE,SAAS;AACtB,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE;AACP,wBAAA,UAAU,EAAE;AACV,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACD,wBAAA,SAAS,EAAE;AACT,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,SAAS,EAAE,kCAAkC;AAC7C,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA;AACF,SAAA;;;AAGD,QAAA,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;AACjC,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE;gBACP,CAAC,oBAAoB,GAAG;oBACtB,oGAAoG;AACrG,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,SAAkB;AAC3B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE;AACT,YAAA,YAAY,EAAE,OAAO,MAAW,KAAI;AAClC,gBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC;AACF,SAAA;KACF;AAED,IAAA,QACEA,IAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,2EAA2E,EAAA,QAAA,EAAA,CAC1FC,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAE9D,EACdA,GAAA,CAAC,UAAU,EAAA,EAAA,GAAK,MAAM,EAAA,CAAI,CAAA,EAAA,CACpB;AAEZ;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BridgeAdapter } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Cross-chain "Swap & Bridge" through the LiFi widget (v3). Optional: without it, the buy flows fall back to their
|
|
4
|
+
* non-bridge options. Requires `@lifi/widget` and its peers (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).
|
|
5
|
+
*/
|
|
6
|
+
export declare const lifiAdapter: BridgeAdapter;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import LifiModal from './LifiModal.js';
|
|
3
|
+
|
|
4
|
+
// Bond chains the LiFi widget can bridge funds to.
|
|
5
|
+
const LIFI_SUPPORTED_CHAINS = [
|
|
6
|
+
ChainId.MAINNET,
|
|
7
|
+
ChainId.MATIC,
|
|
8
|
+
ChainId.BSC,
|
|
9
|
+
ChainId.BASE,
|
|
10
|
+
ChainId.ARBITRUM,
|
|
11
|
+
ChainId.HYPEREVM,
|
|
12
|
+
ChainId.ROBINHOOD,
|
|
13
|
+
ChainId.LINEA,
|
|
14
|
+
ChainId.AVAX,
|
|
15
|
+
ChainId.BLAST,
|
|
16
|
+
ChainId.SONIC,
|
|
17
|
+
ChainId.BERACHAIN,
|
|
18
|
+
ChainId.UNICHAIN,
|
|
19
|
+
ChainId.MONAD,
|
|
20
|
+
ChainId.KATANA,
|
|
21
|
+
ChainId.SOL,
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Cross-chain "Swap & Bridge" through the LiFi widget (v3). Optional: without it, the buy flows fall back to their
|
|
25
|
+
* non-bridge options. Requires `@lifi/widget` and its peers (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).
|
|
26
|
+
*/
|
|
27
|
+
const lifiAdapter = {
|
|
28
|
+
kind: 'lifi',
|
|
29
|
+
supportsChain: (chainId) => LIFI_SUPPORTED_CHAINS.includes(chainId),
|
|
30
|
+
BridgeModal: LifiModal,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { lifiAdapter };
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/adapters/lifi/index.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport type { BridgeAdapter } from '../types'\nimport LifiModal from './LifiModal'\n\n// Bond chains the LiFi widget can bridge funds to.\nconst LIFI_SUPPORTED_CHAINS: ChainId[] = [\n ChainId.MAINNET,\n ChainId.MATIC,\n ChainId.BSC,\n ChainId.BASE,\n ChainId.ARBITRUM,\n ChainId.HYPEREVM,\n ChainId.ROBINHOOD,\n ChainId.LINEA,\n ChainId.AVAX,\n ChainId.BLAST,\n ChainId.SONIC,\n ChainId.BERACHAIN,\n ChainId.UNICHAIN,\n ChainId.MONAD,\n ChainId.KATANA,\n ChainId.SOL,\n]\n\n/**\n * Cross-chain \"Swap & Bridge\" through the LiFi widget (v3). Optional: without it, the buy flows fall back to their\n * non-bridge options. Requires `@lifi/widget` and its peers (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).\n */\nexport const lifiAdapter: BridgeAdapter = {\n kind: 'lifi',\n supportsChain: (chainId) => LIFI_SUPPORTED_CHAINS.includes(chainId),\n BridgeModal: LifiModal,\n}\n"],"names":[],"mappings":";;;AAIA;AACA,MAAM,qBAAqB,GAAc;AACvC,IAAA,OAAO,CAAC,OAAO;AACf,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,MAAM;AACd,IAAA,OAAO,CAAC,GAAG;CACZ;AAED;;;AAGG;AACI,MAAM,WAAW,GAAkB;AACxC,IAAA,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnE,IAAA,WAAW,EAAE,SAAS;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
+
import type { BridgeAdapter, ChainAdapter, Ecosystem, SDKAdapter } from './types';
|
|
3
|
+
/** Idempotent: adapters are keyed by ecosystem, so registering the same list on every render is safe. */
|
|
4
|
+
export declare const registerAdapters: (adapters: SDKAdapter[]) => void;
|
|
5
|
+
export declare const getRegisteredAdapters: () => ChainAdapter[];
|
|
6
|
+
export declare const getAdapterByEcosystem: (ecosystem: Ecosystem) => ChainAdapter | undefined;
|
|
7
|
+
export declare const getAdapterForChain: (chainId: ChainId) => ChainAdapter | undefined;
|
|
8
|
+
export declare const getBridgeAdapter: () => BridgeAdapter | undefined;
|