@ape.swap/bonds-sdk 7.0.0-test.3 → 7.0.0-test.5
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 +18 -27
- package/dist/adapters/aptos/index.js +10 -10
- package/dist/adapters/aptos/index.js.map +1 -1
- package/dist/adapters/aptos/{AptosAccountBridge.js → state/AptosAccountBridge.js} +1 -1
- package/dist/adapters/aptos/state/AptosAccountBridge.js.map +1 -0
- package/dist/adapters/aptos/{fetchBondsDataAptos.d.ts → state/fetchBondsDataAptos.d.ts} +2 -2
- package/dist/adapters/aptos/{fetchBondsDataAptos.js → state/fetchBondsDataAptos.js} +3 -3
- package/dist/adapters/aptos/state/fetchBondsDataAptos.js.map +1 -0
- package/dist/adapters/aptos/{fetchUsersBondsAptos.d.ts → state/fetchUsersBondsAptos.d.ts} +2 -2
- package/dist/adapters/aptos/{fetchUsersBondsAptos.js → state/fetchUsersBondsAptos.js} +4 -4
- package/dist/adapters/aptos/state/fetchUsersBondsAptos.js.map +1 -0
- package/dist/adapters/aptos/{useAPTAccount.js → state/useAPTAccount.js} +2 -2
- package/dist/adapters/aptos/state/useAPTAccount.js.map +1 -0
- package/dist/adapters/aptos/{useAptosZapQuote.d.ts → state/useAptosZapQuote.d.ts} +2 -2
- package/dist/adapters/aptos/{useAptosZapQuote.js → state/useAptosZapQuote.js} +4 -4
- package/dist/adapters/aptos/state/useAptosZapQuote.js.map +1 -0
- package/dist/adapters/aptos/{useCurrencyBalanceAptos.js → state/useCurrencyBalanceAptos.js} +2 -2
- package/dist/adapters/aptos/state/useCurrencyBalanceAptos.js.map +1 -0
- package/dist/adapters/aptos/{aptosHelpers.d.ts → utils/aptosHelpers.d.ts} +1 -1
- package/dist/adapters/aptos/{aptosHelpers.js → utils/aptosHelpers.js} +1 -1
- package/dist/adapters/aptos/utils/aptosHelpers.js.map +1 -0
- package/dist/adapters/aptos/{ActionsAptos.d.ts → views/ActionsAptos.d.ts} +1 -1
- package/dist/adapters/aptos/{ActionsAptos.js → views/ActionsAptos.js} +11 -11
- package/dist/adapters/aptos/views/ActionsAptos.js.map +1 -0
- package/dist/adapters/aptos/{BuyComponentAptos.js → views/BuyComponentAptos.js} +29 -29
- package/dist/adapters/aptos/views/BuyComponentAptos.js.map +1 -0
- package/dist/adapters/aptos/{ClaimAllActionAptos.d.ts → views/ClaimAllActionAptos.d.ts} +1 -1
- package/dist/adapters/aptos/{ClaimAllActionAptos.js → views/ClaimAllActionAptos.js} +10 -10
- package/dist/adapters/aptos/views/ClaimAllActionAptos.js.map +1 -0
- package/dist/adapters/aptos/{ConnectAptosWalletButton.js → views/ConnectAptosWalletButton.js} +4 -4
- package/dist/adapters/aptos/views/ConnectAptosWalletButton.js.map +1 -0
- package/dist/adapters/aptos/{ConnectToAptosBanner.js → views/ConnectToAptosBanner.js} +6 -6
- package/dist/adapters/aptos/views/ConnectToAptosBanner.js.map +1 -0
- package/dist/adapters/aptos/{TransferActionAptos.d.ts → views/TransferActionAptos.d.ts} +1 -1
- package/dist/adapters/aptos/{TransferActionAptos.js → views/TransferActionAptos.js} +1 -1
- package/dist/adapters/aptos/views/TransferActionAptos.js.map +1 -0
- package/dist/adapters/aptos/{UserBondRowAptos.d.ts → views/UserBondRowAptos.d.ts} +1 -1
- package/dist/adapters/aptos/{UserBondRowAptos.js → views/UserBondRowAptos.js} +22 -22
- package/dist/adapters/aptos/views/UserBondRowAptos.js.map +1 -0
- package/dist/adapters/evm/index.js +16 -16
- package/dist/adapters/evm/index.js.map +1 -1
- package/dist/adapters/evm/{EvmAccountBridge.js → state/EvmAccountBridge.js} +1 -1
- package/dist/adapters/evm/state/EvmAccountBridge.js.map +1 -0
- package/dist/adapters/evm/{balances.d.ts → state/balances.d.ts} +1 -1
- package/dist/adapters/evm/{balances.js → state/balances.js} +5 -5
- package/dist/adapters/evm/state/balances.js.map +1 -0
- package/dist/adapters/evm/{fetchBondsDataEVM.d.ts → state/fetchBondsDataEVM.d.ts} +2 -2
- package/dist/adapters/evm/{fetchBondsDataEVM.js → state/fetchBondsDataEVM.js} +8 -8
- package/dist/adapters/evm/state/fetchBondsDataEVM.js.map +1 -0
- package/dist/adapters/evm/{fetchUsersBondsEVM.d.ts → state/fetchUsersBondsEVM.d.ts} +2 -2
- package/dist/adapters/evm/{fetchUsersBondsEVM.js → state/fetchUsersBondsEVM.js} +4 -4
- package/dist/adapters/evm/state/fetchUsersBondsEVM.js.map +1 -0
- package/dist/adapters/evm/{getTierPoints.d.ts → state/getTierPoints.d.ts} +1 -1
- package/dist/adapters/evm/{getTierPoints.js → state/getTierPoints.js} +5 -5
- package/dist/adapters/evm/state/getTierPoints.js.map +1 -0
- package/dist/adapters/evm/{preTGE → state/preTGE}/fetchBondsDataPreTGE.d.ts +2 -2
- package/dist/adapters/evm/{preTGE → state/preTGE}/fetchBondsDataPreTGE.js +5 -5
- package/dist/adapters/evm/state/preTGE/fetchBondsDataPreTGE.js.map +1 -0
- package/dist/adapters/evm/{preTGE → state/preTGE}/fetchUserBondsPreTGE.d.ts +2 -2
- package/dist/adapters/evm/{preTGE → state/preTGE}/fetchUserBondsPreTGE.js +5 -5
- package/dist/adapters/evm/state/preTGE/fetchUserBondsPreTGE.js.map +1 -0
- package/dist/adapters/evm/{useAllowance.js → state/useAllowance.js} +9 -9
- package/dist/adapters/evm/state/useAllowance.js.map +1 -0
- package/dist/adapters/evm/{useEVMAccount.js → state/useEVMAccount.js} +1 -1
- package/dist/adapters/evm/state/useEVMAccount.js.map +1 -0
- package/dist/adapters/evm/{useMonitorTx.js → state/useMonitorTx.js} +1 -1
- package/dist/adapters/evm/state/useMonitorTx.js.map +1 -0
- package/dist/adapters/evm/{useSoulZapBondQuote.d.ts → state/useSoulZapBondQuote.d.ts} +1 -1
- package/dist/adapters/evm/{useSoulZapBondQuote.js → state/useSoulZapBondQuote.js} +9 -9
- package/dist/adapters/evm/state/useSoulZapBondQuote.js.map +1 -0
- package/dist/adapters/evm/{useTierProofSignature.js → state/useTierProofSignature.js} +4 -4
- package/dist/adapters/evm/state/useTierProofSignature.js.map +1 -0
- package/dist/adapters/evm/{multicall.js → utils/multicall.js} +3 -3
- package/dist/adapters/evm/utils/multicall.js.map +1 -0
- package/dist/adapters/evm/{Actions.d.ts → views/Actions.d.ts} +1 -1
- package/dist/adapters/evm/{Actions.js → views/Actions.js} +18 -18
- package/dist/adapters/evm/views/Actions.js.map +1 -0
- package/dist/adapters/evm/{BuyComponent.d.ts → views/BuyComponent.d.ts} +1 -1
- package/dist/adapters/evm/{BuyComponent.js → views/BuyComponent.js} +44 -44
- package/dist/adapters/evm/views/BuyComponent.js.map +1 -0
- package/dist/adapters/evm/{ClaimAllActionEVM.d.ts → views/ClaimAllActionEVM.d.ts} +1 -1
- package/dist/adapters/evm/{ClaimAllActionEVM.js → views/ClaimAllActionEVM.js} +9 -9
- package/dist/adapters/evm/views/ClaimAllActionEVM.js.map +1 -0
- package/dist/adapters/evm/{ConnectToEvmBanner.js → views/ConnectToEvmBanner.js} +4 -4
- package/dist/adapters/evm/views/ConnectToEvmBanner.js.map +1 -0
- package/dist/adapters/evm/{TransactionModal.d.ts → views/TransactionModal.d.ts} +2 -2
- package/dist/adapters/evm/{TransactionModal.js → views/TransactionModal.js} +21 -21
- package/dist/adapters/evm/views/TransactionModal.js.map +1 -0
- package/dist/adapters/evm/{TransferAction.d.ts → views/TransferAction.d.ts} +1 -1
- package/dist/adapters/evm/{TransferAction.js → views/TransferAction.js} +8 -8
- package/dist/adapters/evm/views/TransferAction.js.map +1 -0
- package/dist/adapters/evm/{UserBondRow.d.ts → views/UserBondRow.d.ts} +1 -1
- package/dist/adapters/evm/{UserBondRow.js → views/UserBondRow.js} +27 -27
- package/dist/adapters/evm/views/UserBondRow.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/BuyComponentPreTGE.js +26 -26
- package/dist/adapters/evm/views/preTGE/BuyComponentPreTGE.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/ModalHandlerPreTGE.js +3 -3
- package/dist/adapters/evm/views/preTGE/ModalHandlerPreTGE.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/PreTGEActions.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/PreTGEActions.js +9 -9
- package/dist/adapters/evm/views/preTGE/PreTGEActions.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowPreTGE.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowPreTGE.js +9 -9
- package/dist/adapters/evm/views/preTGE/UserBondRowPreTGE.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowYield.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/UserBondRowYield.js +10 -10
- package/dist/adapters/evm/views/preTGE/UserBondRowYield.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/YourBondsModalYield.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/YourBondsModalYield.js +22 -22
- package/dist/adapters/evm/views/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +10 -10
- package/dist/adapters/evm/views/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -0
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.d.ts +1 -1
- package/dist/adapters/evm/{preTGE → views/preTGE}/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js +5 -5
- package/dist/adapters/evm/views/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -0
- package/dist/adapters/lifi/index.js +1 -1
- package/dist/adapters/lifi/index.js.map +1 -1
- package/dist/adapters/lifi/{LifiModal.d.ts → views/LifiModal.d.ts} +1 -1
- package/dist/adapters/lifi/{LifiModal.js → views/LifiModal.js} +5 -5
- package/dist/adapters/lifi/views/LifiModal.js.map +1 -0
- package/dist/adapters/lifi/views/LifiWidgetContent.js.map +1 -0
- package/dist/adapters/solana/{solanaConstants.js → constants/solanaConstants.js} +1 -1
- package/dist/adapters/solana/constants/solanaConstants.js.map +1 -0
- package/dist/adapters/solana/index.d.ts +1 -1
- package/dist/adapters/solana/index.js +10 -10
- package/dist/adapters/solana/index.js.map +1 -1
- package/dist/adapters/solana/{SolanaAccountBridge.js → state/SolanaAccountBridge.js} +1 -1
- package/dist/adapters/solana/state/SolanaAccountBridge.js.map +1 -0
- package/dist/adapters/solana/{fetchBondsDataSOL.d.ts → state/fetchBondsDataSOL.d.ts} +2 -2
- package/dist/adapters/solana/{fetchBondsDataSOL.js → state/fetchBondsDataSOL.js} +8 -8
- package/dist/adapters/solana/state/fetchBondsDataSOL.js.map +1 -0
- package/dist/adapters/solana/{fetchUsersBondsSOL.d.ts → state/fetchUsersBondsSOL.d.ts} +2 -2
- package/dist/adapters/solana/{fetchUsersBondsSOL.js → state/fetchUsersBondsSOL.js} +5 -5
- package/dist/adapters/solana/state/fetchUsersBondsSOL.js.map +1 -0
- package/dist/adapters/solana/{useCurrencyBalanceSolana.js → state/useCurrencyBalanceSolana.js} +3 -3
- package/dist/adapters/solana/state/useCurrencyBalanceSolana.js.map +1 -0
- package/dist/adapters/solana/{useJupiterSolanaQuote.d.ts → state/useJupiterSolanaQuote.d.ts} +1 -1
- package/dist/adapters/solana/{useJupiterSolanaQuote.js → state/useJupiterSolanaQuote.js} +3 -3
- package/dist/adapters/solana/state/useJupiterSolanaQuote.js.map +1 -0
- package/dist/adapters/solana/{useSOLAccount.js → state/useSOLAccount.js} +1 -1
- package/dist/adapters/solana/state/useSOLAccount.js.map +1 -0
- package/dist/adapters/solana/{calculateSolanaTrueBillPrice.js → utils/calculateSolanaTrueBillPrice.js} +1 -1
- package/dist/adapters/solana/utils/calculateSolanaTrueBillPrice.js.map +1 -0
- package/dist/adapters/solana/{codecs → utils/codecs}/bondCodec.js +1 -1
- package/dist/adapters/solana/utils/codecs/bondCodec.js.map +1 -0
- package/dist/adapters/solana/{codecs → utils/codecs}/bondIssuanceCodec.js +1 -1
- package/dist/adapters/solana/utils/codecs/bondIssuanceCodec.js.map +1 -0
- package/dist/adapters/solana/{codecs → utils/codecs}/bondPricingCodec.js +1 -1
- package/dist/adapters/solana/utils/codecs/bondPricingCodec.js.map +1 -0
- package/dist/adapters/solana/{codecs → utils/codecs}/bondTermCodec.js +1 -1
- package/dist/adapters/solana/utils/codecs/bondTermCodec.js.map +1 -0
- package/dist/adapters/solana/utils/derivePda.js.map +1 -0
- package/dist/adapters/solana/utils/getSolanaAccount.js.map +1 -0
- package/dist/adapters/solana/utils/polyfills.js.map +1 -0
- package/dist/adapters/solana/utils/solanaAtaHelper.js.map +1 -0
- package/dist/adapters/solana/utils/solanaMulticall.js.map +1 -0
- package/dist/adapters/solana/{solanaRpc.js → utils/solanaRpc.js} +1 -1
- package/dist/adapters/solana/utils/solanaRpc.js.map +1 -0
- package/dist/adapters/solana/{ActionsSolana.d.ts → views/ActionsSolana.d.ts} +1 -1
- package/dist/adapters/solana/{ActionsSolana.js → views/ActionsSolana.js} +13 -13
- package/dist/adapters/solana/views/ActionsSolana.js.map +1 -0
- package/dist/adapters/solana/{BuyComponentSolana.js → views/BuyComponentSolana.js} +37 -37
- package/dist/adapters/solana/views/BuyComponentSolana.js.map +1 -0
- package/dist/adapters/solana/{ConnectSolanaWalletButton.js → views/ConnectSolanaWalletButton.js} +4 -4
- package/dist/adapters/solana/views/ConnectSolanaWalletButton.js.map +1 -0
- package/dist/adapters/solana/{ConnectToSolanaBanner.js → views/ConnectToSolanaBanner.js} +5 -5
- package/dist/adapters/solana/views/ConnectToSolanaBanner.js.map +1 -0
- package/dist/adapters/solana/{TransferActionSolana.d.ts → views/TransferActionSolana.d.ts} +1 -1
- package/dist/adapters/solana/{TransferActionSolana.js → views/TransferActionSolana.js} +6 -6
- package/dist/adapters/solana/views/TransferActionSolana.js.map +1 -0
- package/dist/adapters/solana/{UserBondRowSolana.d.ts → views/UserBondRowSolana.d.ts} +1 -1
- package/dist/adapters/solana/{UserBondRowSolana.js → views/UserBondRowSolana.js} +23 -23
- package/dist/adapters/solana/views/UserBondRowSolana.js.map +1 -0
- package/dist/adapters/sui/constants/suiConstants.js.map +1 -0
- package/dist/adapters/sui/constants/suiZapTokens.js.map +1 -0
- package/dist/adapters/sui/index.js +10 -10
- package/dist/adapters/sui/index.js.map +1 -1
- package/dist/adapters/sui/{SuiAccountBridge.js → state/SuiAccountBridge.js} +1 -1
- package/dist/adapters/sui/state/SuiAccountBridge.js.map +1 -0
- package/dist/adapters/sui/{fetchBondsDataSui.d.ts → state/fetchBondsDataSui.d.ts} +2 -2
- package/dist/adapters/sui/{fetchBondsDataSui.js → state/fetchBondsDataSui.js} +3 -3
- package/dist/adapters/sui/state/fetchBondsDataSui.js.map +1 -0
- package/dist/adapters/sui/{fetchUsersBondsSUI.d.ts → state/fetchUsersBondsSUI.d.ts} +2 -2
- package/dist/adapters/sui/{fetchUsersBondsSUI.js → state/fetchUsersBondsSUI.js} +4 -4
- package/dist/adapters/sui/state/fetchUsersBondsSUI.js.map +1 -0
- package/dist/adapters/sui/{useCurrencyBalanceSui.js → state/useCurrencyBalanceSui.js} +2 -2
- package/dist/adapters/sui/state/useCurrencyBalanceSui.js.map +1 -0
- package/dist/adapters/sui/{useSUIAccount.js → state/useSUIAccount.js} +1 -1
- package/dist/adapters/sui/state/useSUIAccount.js.map +1 -0
- package/dist/adapters/sui/{useSuiZapQuote.d.ts → state/useSuiZapQuote.d.ts} +1 -1
- package/dist/adapters/sui/{useSuiZapQuote.js → state/useSuiZapQuote.js} +5 -5
- package/dist/adapters/sui/state/useSuiZapQuote.js.map +1 -0
- package/dist/adapters/sui/{suiHelpers.js → utils/suiHelpers.js} +1 -1
- package/dist/adapters/sui/utils/suiHelpers.js.map +1 -0
- package/dist/adapters/sui/{ActionsSui.d.ts → views/ActionsSui.d.ts} +1 -1
- package/dist/adapters/sui/{ActionsSui.js → views/ActionsSui.js} +11 -11
- package/dist/adapters/sui/views/ActionsSui.js.map +1 -0
- package/dist/adapters/sui/{BuyComponentSui.js → views/BuyComponentSui.js} +32 -32
- package/dist/adapters/sui/views/BuyComponentSui.js.map +1 -0
- package/dist/adapters/sui/{ClaimAllActionSui.d.ts → views/ClaimAllActionSui.d.ts} +1 -1
- package/dist/adapters/sui/{ClaimAllActionSui.js → views/ClaimAllActionSui.js} +10 -10
- package/dist/adapters/sui/views/ClaimAllActionSui.js.map +1 -0
- package/dist/adapters/sui/{ConnectToSuiBanner.js → views/ConnectToSuiBanner.js} +6 -6
- package/dist/adapters/sui/views/ConnectToSuiBanner.js.map +1 -0
- package/dist/adapters/sui/{TransferActionSui.d.ts → views/TransferActionSui.d.ts} +1 -1
- package/dist/adapters/sui/{TransferActionSui.js → views/TransferActionSui.js} +7 -7
- package/dist/adapters/sui/views/TransferActionSui.js.map +1 -0
- package/dist/adapters/sui/{UserBondRowSui.d.ts → views/UserBondRowSui.d.ts} +1 -1
- package/dist/adapters/sui/{UserBondRowSui.js → views/UserBondRowSui.js} +22 -22
- package/dist/adapters/sui/views/UserBondRowSui.js.map +1 -0
- package/dist/components/NetworkFilter/index.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/CoinGecko.js +3 -1
- package/dist/components/uikit-sdk/Svg/Icons/CoinGecko.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js +3 -1
- package/dist/components/uikit-sdk/Svg/Icons/GiftBox.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/L1X.js +3 -1
- package/dist/components/uikit-sdk/Svg/Icons/L1X.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/Success.js +3 -1
- package/dist/components/uikit-sdk/Svg/Icons/Success.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/AVAX.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/AVAX.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/BLAST.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/BLAST.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/INEVM.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/INEVM.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/IOTA.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/IOTA.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/SOL.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/SOL.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/TLOS.js +3 -1
- package/dist/components/uikit-sdk/Svg/tokens/TLOS.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/state/bonds/useBondsData.js.map +1 -1
- package/package.json +3 -7
- package/dist/adapters/all/index.d.ts +0 -13
- package/dist/adapters/all/index.js +0 -15
- package/dist/adapters/all/index.js.map +0 -1
- package/dist/adapters/aptos/ActionsAptos.js.map +0 -1
- package/dist/adapters/aptos/AptosAccountBridge.js.map +0 -1
- package/dist/adapters/aptos/BuyComponentAptos.js.map +0 -1
- package/dist/adapters/aptos/ClaimAllActionAptos.js.map +0 -1
- package/dist/adapters/aptos/ConnectAptosWalletButton.js.map +0 -1
- package/dist/adapters/aptos/ConnectToAptosBanner.js.map +0 -1
- package/dist/adapters/aptos/TransferActionAptos.js.map +0 -1
- package/dist/adapters/aptos/UserBondRowAptos.js.map +0 -1
- package/dist/adapters/aptos/aptosHelpers.js.map +0 -1
- package/dist/adapters/aptos/fetchBondsDataAptos.js.map +0 -1
- package/dist/adapters/aptos/fetchUsersBondsAptos.js.map +0 -1
- package/dist/adapters/aptos/useAPTAccount.js.map +0 -1
- package/dist/adapters/aptos/useAptosZapQuote.js.map +0 -1
- package/dist/adapters/aptos/useCurrencyBalanceAptos.js.map +0 -1
- package/dist/adapters/evm/Actions.js.map +0 -1
- package/dist/adapters/evm/BuyComponent.js.map +0 -1
- package/dist/adapters/evm/ClaimAllActionEVM.js.map +0 -1
- package/dist/adapters/evm/ConnectToEvmBanner.js.map +0 -1
- package/dist/adapters/evm/EvmAccountBridge.js.map +0 -1
- package/dist/adapters/evm/TransactionModal.js.map +0 -1
- package/dist/adapters/evm/TransferAction.js.map +0 -1
- package/dist/adapters/evm/UserBondRow.js.map +0 -1
- package/dist/adapters/evm/balances.js.map +0 -1
- package/dist/adapters/evm/fetchBondsDataEVM.js.map +0 -1
- package/dist/adapters/evm/fetchUsersBondsEVM.js.map +0 -1
- package/dist/adapters/evm/getTierPoints.js.map +0 -1
- package/dist/adapters/evm/multicall.js.map +0 -1
- package/dist/adapters/evm/preTGE/BuyComponentPreTGE.js.map +0 -1
- package/dist/adapters/evm/preTGE/ModalHandlerPreTGE.js.map +0 -1
- package/dist/adapters/evm/preTGE/PreTGEActions.js.map +0 -1
- package/dist/adapters/evm/preTGE/UserBondRowPreTGE.js.map +0 -1
- package/dist/adapters/evm/preTGE/UserBondRowYield.js.map +0 -1
- package/dist/adapters/evm/preTGE/YourBondsModalYield/YourBondsModalYield.js.map +0 -1
- package/dist/adapters/evm/preTGE/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +0 -1
- package/dist/adapters/evm/preTGE/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +0 -1
- package/dist/adapters/evm/preTGE/fetchBondsDataPreTGE.js.map +0 -1
- package/dist/adapters/evm/preTGE/fetchUserBondsPreTGE.js.map +0 -1
- package/dist/adapters/evm/useAllowance.js.map +0 -1
- package/dist/adapters/evm/useEVMAccount.js.map +0 -1
- package/dist/adapters/evm/useMonitorTx.js.map +0 -1
- package/dist/adapters/evm/useSoulZapBondQuote.js.map +0 -1
- package/dist/adapters/evm/useTierProofSignature.js.map +0 -1
- package/dist/adapters/lifi/LifiModal.js.map +0 -1
- package/dist/adapters/lifi/LifiWidgetContent.js.map +0 -1
- package/dist/adapters/solana/ActionsSolana.js.map +0 -1
- package/dist/adapters/solana/BuyComponentSolana.js.map +0 -1
- package/dist/adapters/solana/ConnectSolanaWalletButton.js.map +0 -1
- package/dist/adapters/solana/ConnectToSolanaBanner.js.map +0 -1
- package/dist/adapters/solana/SolanaAccountBridge.js.map +0 -1
- package/dist/adapters/solana/TransferActionSolana.js.map +0 -1
- package/dist/adapters/solana/UserBondRowSolana.js.map +0 -1
- package/dist/adapters/solana/calculateSolanaTrueBillPrice.js.map +0 -1
- package/dist/adapters/solana/codecs/bondCodec.js.map +0 -1
- package/dist/adapters/solana/codecs/bondIssuanceCodec.js.map +0 -1
- package/dist/adapters/solana/codecs/bondPricingCodec.js.map +0 -1
- package/dist/adapters/solana/codecs/bondTermCodec.js.map +0 -1
- package/dist/adapters/solana/derivePda.js.map +0 -1
- package/dist/adapters/solana/fetchBondsDataSOL.js.map +0 -1
- package/dist/adapters/solana/fetchUsersBondsSOL.js.map +0 -1
- package/dist/adapters/solana/getSolanaAccount.js.map +0 -1
- package/dist/adapters/solana/polyfills.js.map +0 -1
- package/dist/adapters/solana/solanaAtaHelper.js.map +0 -1
- package/dist/adapters/solana/solanaConstants.js.map +0 -1
- package/dist/adapters/solana/solanaMulticall.js.map +0 -1
- package/dist/adapters/solana/solanaRpc.js.map +0 -1
- package/dist/adapters/solana/useCurrencyBalanceSolana.js.map +0 -1
- package/dist/adapters/solana/useJupiterSolanaQuote.js.map +0 -1
- package/dist/adapters/solana/useSOLAccount.js.map +0 -1
- package/dist/adapters/sui/ActionsSui.js.map +0 -1
- package/dist/adapters/sui/BuyComponentSui.js.map +0 -1
- package/dist/adapters/sui/ClaimAllActionSui.js.map +0 -1
- package/dist/adapters/sui/ConnectToSuiBanner.js.map +0 -1
- package/dist/adapters/sui/SuiAccountBridge.js.map +0 -1
- package/dist/adapters/sui/TransferActionSui.js.map +0 -1
- package/dist/adapters/sui/UserBondRowSui.js.map +0 -1
- package/dist/adapters/sui/fetchBondsDataSui.js.map +0 -1
- package/dist/adapters/sui/fetchUsersBondsSUI.js.map +0 -1
- package/dist/adapters/sui/suiConstants.js.map +0 -1
- package/dist/adapters/sui/suiHelpers.js.map +0 -1
- package/dist/adapters/sui/suiZapTokens.js.map +0 -1
- package/dist/adapters/sui/useCurrencyBalanceSui.js.map +0 -1
- package/dist/adapters/sui/useSUIAccount.js.map +0 -1
- package/dist/adapters/sui/useSuiZapQuote.js.map +0 -1
- /package/dist/adapters/aptos/{AptosAccountBridge.d.ts → state/AptosAccountBridge.d.ts} +0 -0
- /package/dist/adapters/aptos/{useAPTAccount.d.ts → state/useAPTAccount.d.ts} +0 -0
- /package/dist/adapters/aptos/{useCurrencyBalanceAptos.d.ts → state/useCurrencyBalanceAptos.d.ts} +0 -0
- /package/dist/adapters/aptos/{aptosBonds.d.ts → types/aptosBonds.d.ts} +0 -0
- /package/dist/adapters/aptos/{BuyComponentAptos.d.ts → views/BuyComponentAptos.d.ts} +0 -0
- /package/dist/adapters/aptos/{ConnectAptosWalletButton.d.ts → views/ConnectAptosWalletButton.d.ts} +0 -0
- /package/dist/adapters/aptos/{ConnectToAptosBanner.d.ts → views/ConnectToAptosBanner.d.ts} +0 -0
- /package/dist/adapters/evm/{EvmAccountBridge.d.ts → state/EvmAccountBridge.d.ts} +0 -0
- /package/dist/adapters/evm/{useAllowance.d.ts → state/useAllowance.d.ts} +0 -0
- /package/dist/adapters/evm/{useEVMAccount.d.ts → state/useEVMAccount.d.ts} +0 -0
- /package/dist/adapters/evm/{useMonitorTx.d.ts → state/useMonitorTx.d.ts} +0 -0
- /package/dist/adapters/evm/{useTierProofSignature.d.ts → state/useTierProofSignature.d.ts} +0 -0
- /package/dist/adapters/evm/{multicall.d.ts → utils/multicall.d.ts} +0 -0
- /package/dist/adapters/evm/{ConnectToEvmBanner.d.ts → views/ConnectToEvmBanner.d.ts} +0 -0
- /package/dist/adapters/evm/{preTGE → views/preTGE}/BuyComponentPreTGE.d.ts +0 -0
- /package/dist/adapters/evm/{preTGE → views/preTGE}/ModalHandlerPreTGE.d.ts +0 -0
- /package/dist/adapters/lifi/{LifiWidgetContent.d.ts → views/LifiWidgetContent.d.ts} +0 -0
- /package/dist/adapters/lifi/{LifiWidgetContent.js → views/LifiWidgetContent.js} +0 -0
- /package/dist/adapters/solana/{solanaConstants.d.ts → constants/solanaConstants.d.ts} +0 -0
- /package/dist/adapters/solana/{SolanaAccountBridge.d.ts → state/SolanaAccountBridge.d.ts} +0 -0
- /package/dist/adapters/solana/{useCurrencyBalanceSolana.d.ts → state/useCurrencyBalanceSolana.d.ts} +0 -0
- /package/dist/adapters/solana/{useSOLAccount.d.ts → state/useSOLAccount.d.ts} +0 -0
- /package/dist/adapters/solana/{helius.d.ts → types/helius.d.ts} +0 -0
- /package/dist/adapters/solana/{solanaBonds.d.ts → types/solanaBonds.d.ts} +0 -0
- /package/dist/adapters/solana/{calculateSolanaTrueBillPrice.d.ts → utils/calculateSolanaTrueBillPrice.d.ts} +0 -0
- /package/dist/adapters/solana/{codecs → utils/codecs}/bondCodec.d.ts +0 -0
- /package/dist/adapters/solana/{codecs → utils/codecs}/bondIssuanceCodec.d.ts +0 -0
- /package/dist/adapters/solana/{codecs → utils/codecs}/bondPricingCodec.d.ts +0 -0
- /package/dist/adapters/solana/{codecs → utils/codecs}/bondTermCodec.d.ts +0 -0
- /package/dist/adapters/solana/{codecs → utils/codecs}/index.d.ts +0 -0
- /package/dist/adapters/solana/{derivePda.d.ts → utils/derivePda.d.ts} +0 -0
- /package/dist/adapters/solana/{derivePda.js → utils/derivePda.js} +0 -0
- /package/dist/adapters/solana/{getSolanaAccount.d.ts → utils/getSolanaAccount.d.ts} +0 -0
- /package/dist/adapters/solana/{getSolanaAccount.js → utils/getSolanaAccount.js} +0 -0
- /package/dist/adapters/solana/{polyfills.d.ts → utils/polyfills.d.ts} +0 -0
- /package/dist/adapters/solana/{polyfills.js → utils/polyfills.js} +0 -0
- /package/dist/adapters/solana/{solanaAtaHelper.d.ts → utils/solanaAtaHelper.d.ts} +0 -0
- /package/dist/adapters/solana/{solanaAtaHelper.js → utils/solanaAtaHelper.js} +0 -0
- /package/dist/adapters/solana/{solanaMulticall.d.ts → utils/solanaMulticall.d.ts} +0 -0
- /package/dist/adapters/solana/{solanaMulticall.js → utils/solanaMulticall.js} +0 -0
- /package/dist/adapters/solana/{solanaRpc.d.ts → utils/solanaRpc.d.ts} +0 -0
- /package/dist/adapters/solana/{BuyComponentSolana.d.ts → views/BuyComponentSolana.d.ts} +0 -0
- /package/dist/adapters/solana/{ConnectSolanaWalletButton.d.ts → views/ConnectSolanaWalletButton.d.ts} +0 -0
- /package/dist/adapters/solana/{ConnectToSolanaBanner.d.ts → views/ConnectToSolanaBanner.d.ts} +0 -0
- /package/dist/adapters/sui/{suiConstants.d.ts → constants/suiConstants.d.ts} +0 -0
- /package/dist/adapters/sui/{suiConstants.js → constants/suiConstants.js} +0 -0
- /package/dist/adapters/sui/{suiZapTokens.d.ts → constants/suiZapTokens.d.ts} +0 -0
- /package/dist/adapters/sui/{suiZapTokens.js → constants/suiZapTokens.js} +0 -0
- /package/dist/adapters/sui/{SuiAccountBridge.d.ts → state/SuiAccountBridge.d.ts} +0 -0
- /package/dist/adapters/sui/{useCurrencyBalanceSui.d.ts → state/useCurrencyBalanceSui.d.ts} +0 -0
- /package/dist/adapters/sui/{useSUIAccount.d.ts → state/useSUIAccount.d.ts} +0 -0
- /package/dist/adapters/sui/{suiHelpers.d.ts → utils/suiHelpers.d.ts} +0 -0
- /package/dist/adapters/sui/{BuyComponentSui.d.ts → views/BuyComponentSui.d.ts} +0 -0
- /package/dist/adapters/sui/{ConnectToSuiBanner.d.ts → views/ConnectToSuiBanner.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuyComponentAptos.js","sources":["../../../../src/adapters/aptos/views/BuyComponentAptos.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport clsx from 'clsx'\nimport { ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\n\nimport useBondsData from '../../../state/bonds/useBondsData'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { usePopups } from '../../../state/popups/usePopups'\nimport { useSlippage } from '../../../state/slippage/useSlippage'\nimport { BondsData } from '../../../types/bonds'\nimport { formatUSDNumber, getMaxBuy, getPayoutAmount, getPrincipalAmount } from '../../../utils/displayHelpers'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { reportError } from '../../../utils/reportError'\nimport { MCBuyComponentStyles } from '../../../utils/campaignStyles'\nimport track from '../../../utils/track'\nimport { remove0xPrefix } from '../../../utils/remove0xPrefix'\nimport { getSymbol } from '../../../utils/getNativeTicker'\n\nimport useAPTAccount from '../state/useAPTAccount'\nimport useTokenFromZapList from '../../../hooks/useTokenFromZapList'\nimport useSortedZapList from '../../../hooks/useSortedZapList'\nimport useAptosZapQuote from '../state/useAptosZapQuote'\nimport { findAptosZapToken } from '../../../config/constants/aptosZapTokens'\nimport ConnectAptosWalletButton from './ConnectAptosWalletButton'\nimport TokenSelectorPanel from '../../../components/TokenSelectorPanel'\nimport BondModalHeader from '../../../views/BuyBond/components/BondModalHeader'\nimport BondCards from '../../../views/BuyBond/components/BondCards/BondCards'\nimport Estimations from '../../../views/BuyBond/components/Estimations'\nimport ProjectDescription from '../../../views/BuyBond/components/ProjectDescription'\n\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Text from '../../../components/uikit-sdk/Text'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport SafeHTMLComponent from '../../../components/SafeHTMLComponent'\n\nimport { APTOS_DEPOSIT_FUNCTION } from '../../../constants/aptosConstants'\nimport { extractBillMinted, extractDepositEvent, getAptosClient, readAptosMarketInfo } from '../utils/aptosHelpers'\nimport { mulDivRound, parseUnits, toFixedString } from '../../../utils/fixedPoint'\n\n// (100 + slippage) / 100 as an exact integer fraction, scaled by 1e6 to preserve fractional\n// slippage percentages (e.g. 0.5%) without a float precompute.\nconst slippageMaxPrice = (priceBig: bigint, slippage: number): bigint =>\n mulDivRound(priceBig, parseUnits(String(100 + slippage), 6), parseUnits('100', 6), 'ceil')\n\ninterface BuyComponentAptosProps {\n onDismiss?: () => void\n bondAddress?: string\n bondChain?: number\n setBillId?: (id: string) => void\n isProjectView?: boolean\n}\n\nconst BuyComponentAptos: React.FC<BuyComponentAptosProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n isProjectView,\n setBillId,\n}) => {\n const SDKConfig = useSDKConfig()\n\n // Hooks\n const { address: aptosAccount, signAndSubmitTransaction } = useAPTAccount()\n const { data: bonds } = useBondsData()\n const { addToastError, addToastSuccess } = usePopups()\n const { solSlippage: slippage } = useSlippage() // reuse Sol slippage bucket for Aptos\n\n const bondData: BondsData | undefined = bonds?.find(\n (bond) => bond?.contractAddress?.[bond?.chainId]?.toLowerCase() === bondAddress?.toLowerCase(),\n )\n\n // Derived pricing (same path the Solana no-tier branch uses).\n const trueBondPriceData = findHighestTrueBondPrice('0', bondData?.trueBondPrices)\n\n // State\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData?.chainId])\n const [loadingTx, setLoadingTx] = useState(false)\n\n // Token selection — reuses the same infrastructure as Solana\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const principalAddress = bondData?.lpToken?.address?.[bondData?.chainId]\n // APT native ('NATIVE') and APT metadata ('0xa') are the same token — not a zap\n const isNativeMatchingPrincipal = inputTokenString === 'NATIVE' && principalAddress?.toLowerCase() === '0xa'\n const isZap =\n !!inputTokenString &&\n !!principalAddress &&\n !isNativeMatchingPrincipal &&\n inputTokenString.toLowerCase() !== principalAddress.toLowerCase()\n\n // Zap quote from Panora DEX aggregator\n const aptosZapToken = findAptosZapToken(\n inputToken && inputToken !== 'NATIVE'\n ? inputToken?.address?.[ChainId.APTOS]\n : inputToken === 'NATIVE'\n ? '0xa'\n : undefined,\n )\n const [fetchingZapQuote, panoraQuote, zapDepositAmount, zapError] = useAptosZapQuote(\n inputValue,\n aptosZapToken,\n bondData,\n aptosAccount,\n slippage,\n )\n\n // Sorted zap list (balances + prices)\n const { sortedZapList, isFetched: zapListFetched } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n\n // Estimations — use zapDepositAmount if swapping\n const depositAmount = isZap ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = $${formatUSDNumber(\n (parseFloat(inputValue || '0') * (inputTokenPrice ?? 0)).toString(),\n )}`\n\n const exceedsRealMaxBuy = getMaxBuy(bondData, true) <= getPayoutAmount(bondData, depositAmount, '0')\n const exceedsSafeMaxBuy =\n getMaxBuy(bondData, false) * (isZap ? 0.995 : 0.9995) <= getPayoutAmount(bondData, depositAmount, '0')\n const exceedsBalance = Number(inputCurrencyBalance ?? '0') < Number(inputValue)\n\n const load = loadingTx || (fetchingZapQuote && !!inputValue)\n\n // Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleMaxButton = () => {\n const balance = Number(inputCurrencyBalance ?? '0')\n const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 6\n const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds)\n\n if (!isZap) {\n const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), '0')\n if (maxPossibleUserPurchase > maxBuyAmount) {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), '0')\n setInputValue(toFixedString(principalForMaxBuy, principalDecimals, 'trunc'))\n } else {\n setInputValue(toFixedString(inputCurrencyBalance ?? '0', principalDecimals, 'trunc'))\n }\n } else {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), '0')\n const principalForMaxBuyUSD = principalForMaxBuy * Number(bondData?.principalTokenPrice ?? 0)\n const maxBuyAmountInSelectedToken = principalForMaxBuyUSD / (inputTokenPrice ?? 0)\n const decimals =\n enrichedTokenData?.token === 'NATIVE' ? 8 : (enrichedTokenData?.token.decimals[bondData?.chainId!] ?? 8)\n\n if (balance >= maxBuyAmountInSelectedToken) {\n setInputValue(toFixedString(maxBuyAmountInSelectedToken, decimals, 'trunc'))\n } else {\n setInputValue(toFixedString(inputCurrencyBalance ?? '0', decimals, 'trunc'))\n }\n }\n }\n\n const handleBuyCallback = async () => {\n if (!aptosAccount || !bondData || !inputValue) return\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n setLoadingTx(true)\n\n const principalDecimals = bondData.lpToken.decimals[bondData.chainId] ?? 6\n const atomicAmount = parseUnits(inputValue, principalDecimals, 'floor').toString()\n\n const market = bondData.contractAddress[bondData.chainId] ?? ''\n\n // Read fresh pricing from the contract\n const marketInfo = await readAptosMarketInfo(market)\n const trueBillPriceU64 = marketInfo[17] // u64 scaled 1e8\n const atomicMaxPrice = slippageMaxPrice(BigInt(trueBillPriceU64), slippage).toString()\n\n const response = await signAndSubmitTransaction?.({\n data: {\n function: APTOS_DEPOSIT_FUNCTION,\n typeArguments: [],\n functionArguments: [market, atomicAmount, atomicMaxPrice, aptosAccount],\n },\n })\n if (!response?.hash) throw new Error('No tx hash returned by wallet')\n\n const aptos = getAptosClient()\n await aptos.waitForTransaction({ transactionHash: response.hash })\n // waitForTransaction may not include events — fetch full tx details separately\n const txDetails = await aptos.getTransactionByHash({ transactionHash: response.hash })\n const txnWithEvents = txDetails as unknown as { events?: Array<{ type: string; data: any }> }\n const depositEvent = extractDepositEvent(txnWithEvents)\n const newBillId = depositEvent?.bill_id ?? extractBillMinted(txnWithEvents)?.bill_id ?? ''\n\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'lp-buy',\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(market),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n\n addToastSuccess(response.hash, bondChain as ChainId)\n setBillId?.(newBillId)\n } catch (error: any) {\n console.error('Error during Aptos bond purchase:', error)\n addToastError(error?.message || 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: error?.message,\n extraInfo: { type: 'aptosBuyBond', error: error?.message },\n chainId: bondChain,\n account: aptosAccount,\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n const handleZapCallback = async () => {\n if (loadingTx || !aptosAccount || !bondData || !panoraQuote || !signAndSubmitTransaction) return\n\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n\n try {\n setLoadingTx(true)\n const aptos = getAptosClient()\n\n // TX1: Execute Panora swap — the quote's txData contains the entry\n // function payload ready for the wallet adapter.\n const swapTxData = panoraQuote.txData\n if (!swapTxData || !swapTxData.function) {\n throw new Error('Panora quote missing txData')\n }\n\n const swapResponse = await signAndSubmitTransaction({\n data: swapTxData as any,\n })\n if (!swapResponse?.hash) throw new Error('No tx hash returned for swap')\n\n await aptos.waitForTransaction({ transactionHash: swapResponse.hash })\n\n // TX2: Deposit into bond with the swapped principal tokens.\n // Use the deposit amount from the quote (what we received from the swap).\n const principalDecimals = bondData.lpToken.decimals[bondData.chainId] ?? 6\n const depositAmountAtomic = parseUnits(zapDepositAmount, principalDecimals, 'floor').toString()\n\n const market = bondData.contractAddress[bondData.chainId] ?? ''\n\n // Read fresh pricing\n const marketInfo = await readAptosMarketInfo(market)\n const trueBillPriceU64 = marketInfo[17]\n const atomicMaxPrice = slippageMaxPrice(BigInt(trueBillPriceU64), slippage).toString()\n\n const depositResponse = await signAndSubmitTransaction({\n data: {\n function: APTOS_DEPOSIT_FUNCTION,\n typeArguments: [],\n functionArguments: [market, depositAmountAtomic, atomicMaxPrice, aptosAccount],\n },\n })\n if (!depositResponse?.hash) throw new Error('No tx hash returned for deposit')\n\n await aptos.waitForTransaction({ transactionHash: depositResponse.hash })\n const txDetails = await aptos.getTransactionByHash({ transactionHash: depositResponse.hash })\n const txnWithEvents = txDetails as unknown as { events?: Array<{ type: string; data: any }> }\n const depositEvent = extractDepositEvent(txnWithEvents)\n const newBillId = depositEvent?.bill_id ?? extractBillMinted(txnWithEvents)?.bill_id ?? ''\n\n // Track zap events\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bond',\n token1: getSymbol(inputToken),\n token2: bondData?.lpToken.symbol ?? '',\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'zap-buy-two-tx',\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(market),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n\n addToastSuccess(depositResponse.hash, bondChain as ChainId)\n setBillId?.(newBillId)\n } catch (error: any) {\n console.error('Error during Aptos zap + bond purchase:', error)\n addToastError(error?.message || 'Unknown error during swap and bond')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: error?.message,\n extraInfo: { type: 'aptosPanoraZapBuyBond', error: error?.message, quote: panoraQuote },\n chainId: bondChain,\n account: aptosAccount,\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n const handleBuy = () => {\n if (loadingTx) return\n if (isZap) {\n handleZapCallback()\n } else {\n handleBuyCallback()\n }\n }\n\n // Sync inputTokenString when bondData loads after initial render\n useEffect(() => {\n const addr = bondData?.lpToken?.address?.[bondData?.chainId]\n if (addr && !inputTokenString) {\n setInputTokenString(addr)\n }\n }, [bondData?.lpToken?.address, bondData?.chainId]) // eslint-disable-line react-hooks/exhaustive-deps\n\n // Auto-select highest balance token when zap list loads\n const [hasChecked, setHasChecked] = useState(false)\n useEffect(() => {\n if (zapListFetched && !hasChecked) {\n if (parseFloat(inputCurrencyBalance ?? '0') < 0.0001) {\n setInputTokenString(\n sortedZapList[0]?.token === 'NATIVE' ? 'NATIVE' : sortedZapList[0]?.token.address[bondChain as ChainId],\n )\n }\n setHasChecked(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, zapListFetched])\n\n const hasPositiveBonus = (trueBondPriceData?.bonusWithFee ?? 0) > 0\n\n const canBuy =\n !load &&\n !!aptosAccount &&\n !bondData?.soldOut &&\n !!inputValue &&\n parseFloat(inputValue) > 0 &&\n !exceedsRealMaxBuy &&\n !exceedsBalance &&\n hasPositiveBonus &&\n !SDKConfig.blockSales &&\n !zapError &&\n !(isZap && !panoraQuote)\n\n return bondData ? (\n <Flex\n className=\"modal-content ape:flex ape:flex-col ape:rounded-[10px] ape:bg-white2 ape:w-full ape:p-[15px] ape:min-[800px]:p-[20px]\"\n style={{ ...MCBuyComponentStyles[bondData?.marketingCampaign as MarketingCampaign] }}\n >\n <Flex className=\"modaltable-container ape:w-full ape:flex ape:flex-col ape:relative\">\n <BondModalHeader bondData={bondData} onDismiss={onDismiss} hidePromotionUi />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex className={clsx('ape:w-full', isProjectView ? 'ape:hidden ape:lg:flex' : 'ape:flex')}>\n <BondCards bondData={bondData} isDoingMaxBuy={exceedsSafeMaxBuy && !exceedsRealMaxBuy} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={inputValue}\n inputTokenPrice={inputTokenPrice}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZap}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={handleMaxButton}\n handleCurrencySelect={handleCurrencySelect}\n bondChainId={ChainId.APTOS}\n enableZap={true}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance ?? undefined}\n selectedTokenPrice={inputTokenPrice}\n isConnected={!!aptosAccount}\n />\n {bondData?.warningCard && (\n <Flex\n className=\"ape:w-full ape:justify-center ape:mt-[10px] ape:rounded-normal ape:p-[2px_10px]\"\n style={{ background: '#DE62F366' }}\n >\n <Text as=\"div\" size=\"12px\" className=\"ape:font-normal ape:flex ape:items-center ape:gap-[10px]\">\n <SafeHTMLComponent html={bondData?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container ape:w-full ape:flex ape:relative ape:flex-row ape:pt-[10px] ape:justify-between\">\n <Flex className=\"button-container buy ape:justify-center ape:items-center ape:cursor-pointer ape:w-full\">\n {!aptosAccount ? (\n <ConnectAptosWalletButton />\n ) : (\n <Button\n className=\"action-button ape:w-full ape:text-[14px]! ape:lg:text-[16px]!\"\n load={load}\n disabled={!canBuy}\n onClick={handleBuy}\n >\n {SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : exceedsRealMaxBuy\n ? 'Exceeds Max Buy. Reduce amount'\n : exceedsBalance\n ? 'Insufficient balance'\n : zapError\n ? 'Swap quote failed'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : 'buy'}\n </Button>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\n\nexport default BuyComponentAptos\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ClaimAllActionProps } from '
|
|
2
|
+
import type { ClaimAllActionProps } from '../../types';
|
|
3
3
|
/** Claim All for Aptos: Aptos has no batchRedeem, so every bill is claimed in its own transaction. */
|
|
4
4
|
declare const ClaimAllActionAptos: React.FC<ClaimAllActionProps>;
|
|
5
5
|
export default ClaimAllActionAptos;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
4
|
-
import Button from '
|
|
5
|
-
import Text from '
|
|
6
|
-
import useUserBonds from '
|
|
7
|
-
import { usePopups } from '
|
|
8
|
-
import { useSDKConfig } from '
|
|
9
|
-
import track from '
|
|
10
|
-
import { reportError } from '
|
|
11
|
-
import { APTOS_CLAIM_FUNCTION } from '
|
|
12
|
-
import useAPTAccount from '
|
|
13
|
-
import { getAptosClient } from '
|
|
4
|
+
import Button from '../../../components/uikit-sdk/Button/Button.js';
|
|
5
|
+
import Text from '../../../components/uikit-sdk/Text/index.js';
|
|
6
|
+
import useUserBonds from '../../../state/bonds/useUserBonds.js';
|
|
7
|
+
import { usePopups } from '../../../state/popups/usePopups.js';
|
|
8
|
+
import { useSDKConfig } from '../../../state/useSDKConfig.js';
|
|
9
|
+
import track from '../../../utils/track.js';
|
|
10
|
+
import { reportError } from '../../../utils/reportError.js';
|
|
11
|
+
import { APTOS_CLAIM_FUNCTION } from '../../../constants/aptosConstants.js';
|
|
12
|
+
import useAPTAccount from '../state/useAPTAccount.js';
|
|
13
|
+
import { getAptosClient } from '../utils/aptosHelpers.js';
|
|
14
14
|
|
|
15
15
|
/** Claim All for Aptos: Aptos has no batchRedeem, so every bill is claimed in its own transaction. */
|
|
16
16
|
const ClaimAllActionAptos = ({ bondsToClaim }) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaimAllActionAptos.js","sources":["../../../../src/adapters/aptos/views/ClaimAllActionAptos.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport Text from '../../../components/uikit-sdk/Text'\nimport useUserBonds from '../../../state/bonds/useUserBonds'\nimport { usePopups } from '../../../state/popups/usePopups'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport track from '../../../utils/track'\nimport { reportError } from '../../../utils/reportError'\nimport { APTOS_CLAIM_FUNCTION } from '../../../constants/aptosConstants'\nimport type { ClaimAllActionProps } from '../../types'\nimport useAPTAccount from '../state/useAPTAccount'\nimport { getAptosClient } from '../utils/aptosHelpers'\n\n/** Claim All for Aptos: Aptos has no batchRedeem, so every bill is claimed in its own transaction. */\nconst ClaimAllActionAptos: React.FC<ClaimAllActionProps> = ({ bondsToClaim }) => {\n const { address: aptosAccount, signAndSubmitTransaction } = useAPTAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError, addToastSuccess } = usePopups()\n const { refetch } = useUserBonds()\n const [loadingTx, setLoadingTx] = useState(false)\n\n const ownedBillsAmount = bondsToClaim.reduce((total, group) => total + (group.userOwnedBills?.length || 0), 0)\n\n const handleClaim = async () => {\n if (!aptosAccount || !bondsToClaim.length) return\n\n setLoadingTx(true)\n try {\n const allBills = bondsToClaim.flatMap((group) =>\n group.userOwnedBills.map((b) => ({ bill: b, market: group.bond.contractAddress[group.bond.chainId] })),\n )\n\n let lastTxHash = ''\n for (const { bill, market } of allBills) {\n if (!market || !bill.id) continue\n\n track({\n event: 'bond',\n chain: ChainId.APTOS,\n data: { cat: 'claimAll', address: market, earnToken: bill.bond?.earnToken?.symbol },\n })\n\n const response = await signAndSubmitTransaction?.({\n data: {\n function: APTOS_CLAIM_FUNCTION,\n typeArguments: [],\n functionArguments: [market, bill.id],\n },\n })\n if (!response?.hash) throw new Error('No tx hash returned by wallet')\n lastTxHash = response.hash\n\n const aptos = getAptosClient()\n await aptos.waitForTransaction({ transactionHash: response.hash })\n }\n\n refetch()\n addToastSuccess(lastTxHash, ChainId.APTOS)\n } catch (error: any) {\n console.error('Aptos Claim All failed:', error)\n addToastError(error?.message ?? 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'aptosClaimAll', bondsOfSelectedChain: bondsToClaim, error },\n chainId: ChainId.APTOS,\n account: aptosAccount ?? '',\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <>\n <Text size=\"14px\" weight={400} className=\"ape:mt-[15px]\">\n {`You'll claim`} {ownedBillsAmount} Bonds in {ownedBillsAmount} transaction{ownedBillsAmount > 1 ? 's' : ''}.\n </Text>\n <Button\n className=\"ape:mt-[15px] ape:w-full\"\n onClick={handleClaim}\n disabled={!aptosAccount || loadingTx || !ownedBillsAmount}\n load={loadingTx}\n >\n {!aptosAccount ? 'Connect Aptos Wallet' : 'Claim'}\n </Button>\n </>\n )\n}\n\nexport default ClaimAllActionAptos\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
package/dist/adapters/aptos/{ConnectAptosWalletButton.js → views/ConnectAptosWalletButton.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useSDKConfig } from '
|
|
3
|
-
import { openAptosWalletConnector } from '
|
|
4
|
-
import Flex from '
|
|
5
|
-
import Button from '
|
|
2
|
+
import { useSDKConfig } from '../../../state/useSDKConfig.js';
|
|
3
|
+
import { openAptosWalletConnector } from '../../../config/constants/walletConnectors.js';
|
|
4
|
+
import Flex from '../../../components/uikit-sdk/Flex/index.js';
|
|
5
|
+
import Button from '../../../components/uikit-sdk/Button/Button.js';
|
|
6
6
|
|
|
7
7
|
// Minimal wrapper around `@aptos-labs/wallet-adapter-ant-design::WalletSelector`,
|
|
8
8
|
// structured identically to `ConnectSolanaWalletButton`. The ant-design
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectAptosWalletButton.js","sources":["../../../../src/adapters/aptos/views/ConnectAptosWalletButton.tsx"],"sourcesContent":["import { useSDKConfig } from '../../../state/useSDKConfig'\nimport { openAptosWalletConnector } from '../../../config/constants/walletConnectors'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Button from '../../../components/uikit-sdk/Button/Button'\n\n// Minimal wrapper around `@aptos-labs/wallet-adapter-ant-design::WalletSelector`,\n// structured identically to `ConnectSolanaWalletButton`. The ant-design\n// component ships a prebuilt modal that auto-detects every AIP-62 wallet\n// (Petra, Pontem, Martian, Nightly, OKX, …) — we just control its visibility\n// from our button.\n//\n// Note: `WalletSelector` renders two things — a `.wallet-button` trigger and\n// the modal itself (the modal is a portal into document.body). We only want\n// the modal here; the trigger would double up with our themed Connect button.\n// Wrapping the `WalletSelector` in a `display: none` div hides the trigger\n// while leaving the portal-mounted modal fully functional. This is the\n// lightest-touch workaround that avoids forking or css-overriding the\n// ant-design component.\nconst ConnectAptosWalletButton = ({ navBarFlag }: { navBarFlag?: boolean }) => {\n const config = useSDKConfig()\n const handleConnect = config?.openWalletConnectors?.aptos ? openAptosWalletConnector : undefined\n\n return (\n <Flex className=\"ape:h-full ape:items-center\" style={{ width: navBarFlag ? 'auto' : '100%' }}>\n <Button\n fullWidth\n onClick={handleConnect}\n className=\"ape:p-[10px]\"\n style={{ height: navBarFlag ? '32.5px' : '45px', backgroundColor: navBarFlag ? '#00c59a' : undefined }}\n disabled={!handleConnect}\n >\n Connect to Aptos\n </Button>\n </Flex>\n )\n}\n\nexport default ConnectAptosWalletButton\n"],"names":["_jsx"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wBAAwB,GAAG,CAAC,EAAE,UAAU,EAA4B,KAAI;AAC5E,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,aAAa,GAAG,MAAM,EAAE,oBAAoB,EAAE,KAAK,GAAG,wBAAwB,GAAG,SAAS;AAEhG,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,6BAA6B,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,YAC1FA,GAAA,CAAC,MAAM,EAAA,EACL,SAAS,QACT,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,EAAE,EACtG,QAAQ,EAAE,CAAC,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,CAGjB,EAAA,CACJ;AAEX;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useSDKConfig } from '
|
|
3
|
-
import { openAptosWalletConnector } from '
|
|
4
|
-
import Flex from '
|
|
5
|
-
import Button from '
|
|
6
|
-
import Text from '
|
|
7
|
-
import APTOS from '
|
|
2
|
+
import { useSDKConfig } from '../../../state/useSDKConfig.js';
|
|
3
|
+
import { openAptosWalletConnector } from '../../../config/constants/walletConnectors.js';
|
|
4
|
+
import Flex from '../../../components/uikit-sdk/Flex/index.js';
|
|
5
|
+
import Button from '../../../components/uikit-sdk/Button/Button.js';
|
|
6
|
+
import Text from '../../../components/uikit-sdk/Text/index.js';
|
|
7
|
+
import APTOS from '../../../components/uikit-sdk/Svg/tokens/APTOS.js';
|
|
8
8
|
|
|
9
9
|
// Banner rendered in Your Bonds when the user has not connected an Aptos
|
|
10
10
|
// wallet. Uses the same visual language as `ConnectToSolanaBanner` (see the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectToAptosBanner.js","sources":["../../../../src/adapters/aptos/views/ConnectToAptosBanner.tsx"],"sourcesContent":["import { useSDKConfig } from '../../../state/useSDKConfig'\nimport { openAptosWalletConnector } from '../../../config/constants/walletConnectors'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport Text from '../../../components/uikit-sdk/Text'\nimport APTOS from '../../../components/uikit-sdk/Svg/tokens/APTOS'\n\n// Banner rendered in Your Bonds when the user has not connected an Aptos\n// wallet. Uses the same visual language as `ConnectToSolanaBanner` (see the\n// sibling file) but hosts the Ant Design `WalletSelector` modal internally\n// — Aptos does not expose a global `useWalletModal` hook like Solana does,\n// so each entry point controls its own modal visibility.\nexport default function ConnectToAptosBanner() {\n const config = useSDKConfig()\n const handleConnect = config?.openWalletConnectors?.aptos ? openAptosWalletConnector : undefined\n return (\n <Flex\n className=\"ape:w-full ape:h-[75px] ape:p-[10px] ape:rounded-[10px] ape:justify-between ape:items-center ape:border-none ape:cursor-pointer ape:hover:opacity-90\"\n style={{ background: 'linear-gradient(135deg, #2B2B2B 0%, #1A1A2E 100%)' }}\n onClick={handleConnect}\n >\n <Flex className=\"ape:w-full ape:max-w-[300px] ape:gap-[10px] ape:items-center\">\n <Flex className=\"ape:min-w-[30px] ape:min-h-[30px] ape:rounded-full ape:overflow-hidden\">\n <APTOS width=\"30\" />\n </Flex>\n <Flex className=\"ape:flex-col\">\n <Text size=\"15px\" className=\"ape:font-bold ape:flex ape:items-center\" style={{ lineHeight: '18.5px' }}>\n Aptos\n <Text\n as=\"span\"\n size=\"10px\"\n className=\"ape:font-semibold ape:p-[4px_6px] ape:rounded-[4px] ape:ml-[6px] ape:mr-[6px]\"\n style={{ color: '#FAFAFA', background: 'rgba(250, 250, 250, 0.3)', lineHeight: '8px' }}\n >\n NEW\n </Text>\n </Text>\n <div className=\"ape:font-normal ape:text-[10px] ape:text-gray-300\">\n Connect your wallet to view your Aptos Bonds!\n </div>\n </Flex>\n </Flex>\n <Flex className=\"ape:min-w-[100px]\">\n <Button className=\"ape:border-none ape:h-[31px] ape:w-[210px] ape:xl:w-[100px] ape:text-[14px]! ape:font-bold ape:bg-text ape:border-text ape:enabled:hover:text-text ape:enabled:hover:bg-primary-button ape:text-primary-button\">\n Connect\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACc,SAAU,oBAAoB,GAAA;AAC1C,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,MAAM,aAAa,GAAG,MAAM,EAAE,oBAAoB,EAAE,KAAK,GAAG,wBAAwB,GAAG,SAAS;AAChG,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAC,sJAAsJ,EAChK,KAAK,EAAE,EAAE,UAAU,EAAE,mDAAmD,EAAE,EAC1E,OAAO,EAAE,aAAa,EAAA,QAAA,EAAA,CAEtBA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAAA,CAC5EC,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,wEAAwE,EAAA,QAAA,EACtFA,GAAA,CAAC,KAAK,EAAA,EAAC,KAAK,EAAC,IAAI,EAAA,CAAG,EAAA,CACf,EACPD,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CAC5BA,IAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAAA,OAAA,EAEnGC,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,+EAA+E,EACzF,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,KAAA,EAAA,CAGjF,CAAA,EAAA,CACF,EACPA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mDAAmD,EAAA,QAAA,EAAA,+CAAA,EAAA,CAE5D,CAAA,EAAA,CACD,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,iNAAiN,EAAA,QAAA,EAAA,SAAA,EAAA,CAE1N,EAAA,CACJ,CAAA,EAAA,CACF;AAEX;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import Button from '
|
|
2
|
+
import Button from '../../../components/uikit-sdk/Button/Button.js';
|
|
3
3
|
|
|
4
4
|
// TODO(APTOS): replace with the real transfer flow — sign a
|
|
5
5
|
// `bond_nft::transfer(market, bill_id, to)` entry function call and refetch
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferActionAptos.js","sources":["../../../../src/adapters/aptos/views/TransferActionAptos.tsx"],"sourcesContent":["import React from 'react'\nimport { UserBill } from '../../../types/yourbonds'\nimport Button from '../../../components/uikit-sdk/Button/Button'\n\n// TODO(APTOS): replace with the real transfer flow — sign a\n// `bond_nft::transfer(market, bill_id, to)` entry function call and refetch\n// user bonds, mirroring the Solana path.\nconst TransferActionAptos = ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n userBill,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n toAddress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n disabled,\n}: {\n userBill?: UserBill\n toAddress?: string\n disabled?: boolean\n}) => {\n return (\n <Button disabled className=\"ape:text-[14px] ape:w-full\">\n Transfer not yet supported on Aptos\n </Button>\n )\n}\n\nexport default TransferActionAptos\n"],"names":["_jsx"],"mappings":";;;AAIA;AACA;AACA;AACA,MAAM,mBAAmB,GAAG,CAAC;AAC3B;AACA,QAAQ;AACR;AACA,SAAS;AACT;AACA,QAAQ,GAKT,KAAI;IACH,QACEA,GAAA,CAAC,MAAM,EAAA,EAAC,QAAQ,EAAA,IAAA,EAAC,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,qCAAA,EAAA,CAE9C;AAEb;;;;"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
4
|
-
import TokenInfoAndName from '
|
|
5
|
-
import { formatNumberSI } from '
|
|
6
|
-
import Button from '
|
|
7
|
-
import TooltipBubble from '
|
|
8
|
-
import Flex from '
|
|
9
|
-
import { NETWORK_LABEL } from '
|
|
10
|
-
import { getTimeLeftForFullyVested, getPendingVestingString, claimable, pending, getPercentageVested } from '
|
|
11
|
-
import useModal from '
|
|
12
|
-
import { usePopups } from '
|
|
13
|
-
import BondInfoTooltip from '
|
|
14
|
-
import { getTimePeriods } from '
|
|
15
|
-
import ProfitCard from '
|
|
16
|
-
import ProgressBar from '
|
|
17
|
-
import ProgressBarWrapper from '
|
|
18
|
-
import { useSDKConfig } from '
|
|
19
|
-
import YourBondsModal from '
|
|
20
|
-
import { reportError } from '
|
|
4
|
+
import TokenInfoAndName from '../../../components/TokenInfoAndName/index.js';
|
|
5
|
+
import { formatNumberSI } from '../../../utils/formatNumber.js';
|
|
6
|
+
import Button from '../../../components/uikit-sdk/Button/Button.js';
|
|
7
|
+
import TooltipBubble from '../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
8
|
+
import Flex from '../../../components/uikit-sdk/Flex/index.js';
|
|
9
|
+
import { NETWORK_LABEL } from '../../../config/constants/chains.js';
|
|
10
|
+
import { getTimeLeftForFullyVested, getPendingVestingString, claimable, pending, getPercentageVested } from '../../../utils/displayHelpers.js';
|
|
11
|
+
import useModal from '../../../hooks/useModal.js';
|
|
12
|
+
import { usePopups } from '../../../state/popups/usePopups.js';
|
|
13
|
+
import BondInfoTooltip from '../../../components/Tooltip/Tooltip.js';
|
|
14
|
+
import { getTimePeriods } from '../../../utils/getTimePeriods.js';
|
|
15
|
+
import ProfitCard from '../../../views/YourBonds/components/ProfitCard/ProfitCard.js';
|
|
16
|
+
import ProgressBar from '../../../components/ProgressBar/ProgressBar.js';
|
|
17
|
+
import ProgressBarWrapper from '../../../components/ProgressBar/ProgressBarWrapper.js';
|
|
18
|
+
import { useSDKConfig } from '../../../state/useSDKConfig.js';
|
|
19
|
+
import YourBondsModal from '../../../views/YourBondsModal/YourBondsModal.js';
|
|
20
|
+
import { reportError } from '../../../utils/reportError.js';
|
|
21
21
|
import { useQueryClient } from '@tanstack/react-query';
|
|
22
|
-
import useAPTAccount from '
|
|
23
|
-
import { APTOS_CLAIM_FUNCTION } from '
|
|
24
|
-
import { getAptosClient } from '
|
|
25
|
-
import { QUERY_KEYS } from '
|
|
26
|
-
import More from '
|
|
22
|
+
import useAPTAccount from '../state/useAPTAccount.js';
|
|
23
|
+
import { APTOS_CLAIM_FUNCTION } from '../../../constants/aptosConstants.js';
|
|
24
|
+
import { getAptosClient } from '../utils/aptosHelpers.js';
|
|
25
|
+
import { QUERY_KEYS } from '../../../config/constants/queryKeys.js';
|
|
26
|
+
import More from '../../../components/uikit-sdk/Svg/Icons/More.js';
|
|
27
27
|
|
|
28
28
|
// Row renderer for Aptos user bonds. Structure and layout mirror
|
|
29
29
|
// `UserBondRowSolana` so the Your Bonds grid stays visually consistent
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserBondRowAptos.js","sources":["../../../../src/adapters/aptos/views/UserBondRowAptos.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nimport TokenInfoAndName from '../../../components/TokenInfoAndName'\nimport { formatNumberSI } from '../../../utils/formatNumber'\nimport Button from '../../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../../components/uikit-sdk/TooltipBubble'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport { NETWORK_LABEL } from '../../../config/constants/chains'\nimport { UserBill } from '../../../types/yourbonds'\nimport {\n claimable,\n getPendingVestingString,\n getPercentageVested,\n getTimeLeftForFullyVested,\n pending,\n} from '../../../utils/displayHelpers'\nimport useModal from '../../../hooks/useModal'\nimport { usePopups } from '../../../state/popups/usePopups'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport { getTimePeriods } from '../../../utils/getTimePeriods'\nimport ProfitCard from '../../../views/YourBonds/components/ProfitCard/ProfitCard'\nimport ProgressBar from '../../../components/ProgressBar/ProgressBar'\nimport ProgressBarWrapper from '../../../components/ProgressBar/ProgressBarWrapper'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport YourBondsModal from '../../../views/YourBondsModal/YourBondsModal'\nimport { reportError } from '../../../utils/reportError'\n\nimport { useQueryClient } from '@tanstack/react-query'\nimport useAPTAccount from '../state/useAPTAccount'\nimport { APTOS_CLAIM_FUNCTION } from '../../../constants/aptosConstants'\nimport { getAptosClient } from '../utils/aptosHelpers'\nimport { QUERY_KEYS } from '../../../config/constants/queryKeys'\nimport More from '../../../components/uikit-sdk/Svg/Icons/More'\n\n// Row renderer for Aptos user bonds. Structure and layout mirror\n// `UserBondRowSolana` so the Your Bonds grid stays visually consistent\n// across VMs. The only meaningful divergence is `handleClaim`, which either\n// writes into the React Query cache (simulation) or calls the Aptos\n// wallet adapter (real path). Everything else is a pass-through of the\n// shared `UserBill` projection + `displayHelpers` utilities.\nconst UserBondRowAptos = ({ bill }: { bill: UserBill }) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const queryClient = useQueryClient()\n const { address: aptosAccount, signAndSubmitTransaction } = useAPTAccount()\n const { addToastError, addToastSuccess } = usePopups()\n\n // State\n const [loadingTx, setLoadingTx] = useState(false)\n\n // Static Data\n const earnTokenPrice = parseFloat(bill?.bond?.payoutTokenPrice ?? '0')\n const vestingCliff = bill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const vestingStartTimestamp = parseInt(bill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - vestingStartTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(vestingStartTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const [onOpenPurchasedBond] = useModal(<YourBondsModal userBill={bill} />)\n\n const handleClaim = async () => {\n if (loadingTx || !aptosAccount) return\n\n try {\n setLoadingTx(true)\n\n // The contract's `claim` entry function takes `(market, bill_id: u64)` —\n // the scalar bill_id, NOT the object address.\n const market = bill?.bond?.contractAddress?.[bill?.bond?.chainId ?? 0]\n if (!market) throw new Error('Missing bond market address')\n if (!bill.id) throw new Error('Missing bill ID')\n\n const response = await signAndSubmitTransaction?.({\n data: {\n function: APTOS_CLAIM_FUNCTION,\n typeArguments: [],\n functionArguments: [market, bill.id],\n },\n })\n if (!response?.hash) throw new Error('No tx hash returned by wallet')\n\n const aptos = getAptosClient()\n await aptos.waitForTransaction({ transactionHash: response.hash })\n\n await queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.USER_BONDS] })\n addToastSuccess(response.hash, ChainId.APTOS)\n } catch (error: any) {\n console.error('Aptos claim failed:', error)\n addToastError(error?.message ?? 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n chainId: ChainId.APTOS,\n account: aptosAccount ?? '',\n extraInfo: { type: 'aptosClaim', bill, error },\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <div\n className=\"your-bonds ape:flex ape:flex-col ape:w-full ape:justify-around ape:bg-white2 ape:mb-[5px] ape:rounded-[10px] ape:cursor-pointer ape:hover:bg-white3 ape:min-[1000px]:flex-row ape:min-[1000px]:h-[70px]\"\n onClick={() => onOpenPurchasedBond()}\n >\n <div className=\"token-info-container ape:flex ape:w-full ape:min-[1000px]:w-[30%] ape:min-[1000px]:min-w-[300px]\">\n <TokenInfoAndName\n tokenSymbol={bill.bond?.earnToken.symbol}\n chain={bill?.bond?.chainId}\n vestEnds={getTimeLeftForFullyVested(bill) > 0 ? `Ends in ${getPendingVestingString(bill)}` : `Fully Vested`}\n isHotBond\n />\n <div className=\"tooltip-column ape:flex ape:w-[50px] ape:items-center ape:ml-[10px] ape:min-[1000px]:hidden\">\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={bill?.bond?.earnToken.address[bill?.bond.chainId] || ''}\n earnTokenSymbol={bill?.bond?.earnToken.symbol || ''}\n bondContract={bill?.address ?? ''}\n projectLink={bill?.bond?.projectLink}\n twitter={bill?.bond?.twitter}\n chain={bill?.bond?.chainId as number}\n cgId={bill?.bond?.cgId}\n dexscreener={bill?.bond?.dexscreener}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(5%, 0%)\"\n >\n <Flex className=\"ape:opacity-80\">\n <More width=\"25px\" />\n </Flex>\n </TooltipBubble>\n </div>\n </div>\n <div className=\"your-bonds-columns-container ape:flex ape:flex-col ape:items-center ape:justify-end ape:w-full ape:min-[1000px]:w-[70%] ape:min-[1000px]:justify-between ape:min-[1000px]:flex-row ape:min-[1000px]:pr-[20px]\">\n <Flex className=\"ape:w-[125px]\">\n <ProfitCard userBond={bill} />\n </Flex>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Claimable\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(claimable(bill), 4)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {`($${(claimable(bill) * earnTokenPrice).toFixed(2)})`}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content ape:flex ape:items-center ape:justify-between ape:w-full ape:px-[10px] ape:text-[14px] ape:min-[1000px]:w-[130px] ape:min-[1000px]:justify-center ape:min-[1000px]:mt-0\">\n <div className=\"your-bonds-content-title ape:flex ape:text-[12px] ape:font-medium ape:opacity-60 ape:min-[1000px]:hidden\">\n Pending\n </div>\n <div className=\"your-bonds-content-tokens-amount ape:flex ape:items-center ape:text-[14px] ape:font-semibold\">\n {formatNumberSI(pending(bill), 4)}\n <div className=\"your-bonds-content-tokens-usd-amount ape:opacity-60 ape:text-[12px] ape:font-normal ape:ml-[4px] ape:text-text-disabled-button\">\n {`($${(pending(bill) * earnTokenPrice).toFixed(2)})`}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content hide-mobile ape:hidden ape:min-[1000px]:flex\">\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={getPercentageVested(bill)} />}\n style={{\n width: '127px',\n height: '25px',\n flexDirection: 'column',\n justifyContent: 'center',\n }}\n hideOnMobile\n showTooltip={true}\n toolTip={\n getTimeLeftForFullyVested(bill) > 0\n ? `Fully vested in ${getPendingVestingString(bill)}.`\n : `Fully Vested.`\n }\n />\n </div>\n <div className=\"your-bonds-column-button ape:flex ape:w-full ape:items-center ape:justify-center ape:p-[10px] ape:min-[1000px]:w-[210px] ape:min-[1000px]:p-0\">\n {!aptosAccount ? (\n <Button className=\"button ape:text-[14px]! ape:p-[6px] ape:h-[30px]\" disabled={true} fullWidth>\n Connect to {NETWORK_LABEL[ChainId.APTOS]}\n </Button>\n ) : (\n <Button\n className=\"button ape:text-[14px]! ape:p-[6px] ape:h-[30px]\"\n disabled={claimable(bill) === 0 || loadingTx || isPendingCliff}\n load={loadingTx}\n onClick={(event) => {\n event.stopPropagation()\n if (!loadingTx) handleClaim()\n }}\n fullWidth\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default UserBondRowAptos\n"],"names":["_jsx","_jsxs","Tooltip"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import EvmAccountBridge from './EvmAccountBridge.js';
|
|
3
|
-
import { fetchBondsDataEVM } from './fetchBondsDataEVM.js';
|
|
4
|
-
import { fetchUsersBondsEVM } from './fetchUsersBondsEVM.js';
|
|
5
|
-
import { getTokensBalanceEVM, getTokenBalanceEVM } from './balances.js';
|
|
6
|
-
import { getTierPoints } from './getTierPoints.js';
|
|
7
|
-
import BuyComponent from './BuyComponent.js';
|
|
8
|
-
import UserBondRow from './UserBondRow.js';
|
|
9
|
-
import Actions from './Actions.js';
|
|
10
|
-
import TransferAction from './TransferAction.js';
|
|
11
|
-
import ClaimAllActionEVM from './ClaimAllActionEVM.js';
|
|
12
|
-
import ConnectToEVMBanner from './ConnectToEvmBanner.js';
|
|
13
|
-
import { fetchBondsDataPreTGE } from './preTGE/fetchBondsDataPreTGE.js';
|
|
14
|
-
import { fetchUserBondsPreTGE } from './preTGE/fetchUserBondsPreTGE.js';
|
|
15
|
-
import ModalHandlerPreTGE from './preTGE/ModalHandlerPreTGE.js';
|
|
16
|
-
import UserBondRowPreTGE from './preTGE/UserBondRowPreTGE.js';
|
|
17
|
-
import UserBondRowYield from './preTGE/UserBondRowYield.js';
|
|
2
|
+
import EvmAccountBridge from './state/EvmAccountBridge.js';
|
|
3
|
+
import { fetchBondsDataEVM } from './state/fetchBondsDataEVM.js';
|
|
4
|
+
import { fetchUsersBondsEVM } from './state/fetchUsersBondsEVM.js';
|
|
5
|
+
import { getTokensBalanceEVM, getTokenBalanceEVM } from './state/balances.js';
|
|
6
|
+
import { getTierPoints } from './state/getTierPoints.js';
|
|
7
|
+
import BuyComponent from './views/BuyComponent.js';
|
|
8
|
+
import UserBondRow from './views/UserBondRow.js';
|
|
9
|
+
import Actions from './views/Actions.js';
|
|
10
|
+
import TransferAction from './views/TransferAction.js';
|
|
11
|
+
import ClaimAllActionEVM from './views/ClaimAllActionEVM.js';
|
|
12
|
+
import ConnectToEVMBanner from './views/ConnectToEvmBanner.js';
|
|
13
|
+
import { fetchBondsDataPreTGE } from './state/preTGE/fetchBondsDataPreTGE.js';
|
|
14
|
+
import { fetchUserBondsPreTGE } from './state/preTGE/fetchUserBondsPreTGE.js';
|
|
15
|
+
import ModalHandlerPreTGE from './views/preTGE/ModalHandlerPreTGE.js';
|
|
16
|
+
import UserBondRowPreTGE from './views/preTGE/UserBondRowPreTGE.js';
|
|
17
|
+
import UserBondRowYield from './views/preTGE/UserBondRowYield.js';
|
|
18
18
|
|
|
19
19
|
const NON_EVM_CHAINS = [ChainId.SOL, ChainId.APTOS, ChainId.SUI];
|
|
20
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/adapters/evm/index.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport type { ChainAdapter } from '../types'\nimport EvmAccountBridge from './EvmAccountBridge'\nimport { fetchBondsDataEVM } from './fetchBondsDataEVM'\nimport { fetchUsersBondsEVM } from './fetchUsersBondsEVM'\nimport { getTokenBalanceEVM, getTokensBalanceEVM } from './balances'\nimport { getTierPoints } from './getTierPoints'\nimport BuyComponent from './BuyComponent'\nimport UserBondRow from './UserBondRow'\nimport Actions from './Actions'\nimport TransferAction from './TransferAction'\nimport ClaimAllActionEVM from './ClaimAllActionEVM'\nimport ConnectToEVMBanner from './ConnectToEvmBanner'\nimport { fetchBondsDataPreTGE } from './preTGE/fetchBondsDataPreTGE'\nimport { fetchUserBondsPreTGE } from './preTGE/fetchUserBondsPreTGE'\nimport ModalHandlerPreTGE from './preTGE/ModalHandlerPreTGE'\nimport UserBondRowPreTGE from './preTGE/UserBondRowPreTGE'\nimport UserBondRowYield from './preTGE/UserBondRowYield'\n\nconst NON_EVM_CHAINS: ChainId[] = [ChainId.SOL, ChainId.APTOS, ChainId.SUI]\n\n/**\n * EVM bonds (every chain that isn't Solana, Aptos or Sui), plus tiers and PreTGE / launch / Yield bonds. Requires\n * `wagmi` and `viem`, and the consumer must mount a `WagmiProvider` (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).\n */\nexport const evmAdapter: ChainAdapter = {\n ecosystem: 'evm',\n supportsChain: (chainId) => !NON_EVM_CHAINS.includes(chainId),\n AccountBridge: EvmAccountBridge,\n\n // EVM bonds come from the realtime API; fetchBondsData is only the on-chain (multicall) fallback. Bills are\n // enriched with api-v2 NFT metadata.\n usesRealtimeApi: true,\n fetchBondsData: (chainId, bonds, tokenPrices, apiUrl) => fetchBondsDataEVM(chainId, bonds, apiUrl, tokenPrices),\n fetchUserBonds: (chainId, account, bonds, tokenPrices) => fetchUsersBondsEVM(chainId, account, bonds, tokenPrices),\n enrichUserBondsViaApi: true,\n getTokenBalance: getTokenBalanceEVM,\n getTokensBalances: getTokensBalanceEVM,\n\n BuyComponent,\n UserBondRow,\n BondActions: Actions,\n TransferAction,\n ClaimAllAction: ClaimAllActionEVM,\n ConnectBanner: ConnectToEVMBanner,\n\n getTierPoints,\n preTGE: {\n fetchBondsData: fetchBondsDataPreTGE,\n fetchUserBonds: fetchUserBondsPreTGE,\n ModalHandler: ModalHandlerPreTGE,\n UserBondRow: UserBondRowPreTGE,\n YieldRow: UserBondRowYield,\n },\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc,GAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AAE3E;;;AAGG;AACI,MAAM,UAAU,GAAiB;AACtC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,aAAa,EAAE,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7D,IAAA,aAAa,EAAE,gBAAgB;;;AAI/B,IAAA,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;IAC/G,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,KAAK,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;AAClH,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,eAAe,EAAE,kBAAkB;AACnC,IAAA,iBAAiB,EAAE,mBAAmB;IAEtC,YAAY;IACZ,WAAW;AACX,IAAA,WAAW,EAAE,OAAO;IACpB,cAAc;AACd,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,aAAa,EAAE,kBAAkB;IAEjC,aAAa;AACb,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,QAAQ,EAAE,gBAAgB;AAC3B,KAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/adapters/evm/index.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport type { ChainAdapter } from '../types'\nimport EvmAccountBridge from './state/EvmAccountBridge'\nimport { fetchBondsDataEVM } from './state/fetchBondsDataEVM'\nimport { fetchUsersBondsEVM } from './state/fetchUsersBondsEVM'\nimport { getTokenBalanceEVM, getTokensBalanceEVM } from './state/balances'\nimport { getTierPoints } from './state/getTierPoints'\nimport BuyComponent from './views/BuyComponent'\nimport UserBondRow from './views/UserBondRow'\nimport Actions from './views/Actions'\nimport TransferAction from './views/TransferAction'\nimport ClaimAllActionEVM from './views/ClaimAllActionEVM'\nimport ConnectToEVMBanner from './views/ConnectToEvmBanner'\nimport { fetchBondsDataPreTGE } from './state/preTGE/fetchBondsDataPreTGE'\nimport { fetchUserBondsPreTGE } from './state/preTGE/fetchUserBondsPreTGE'\nimport ModalHandlerPreTGE from './views/preTGE/ModalHandlerPreTGE'\nimport UserBondRowPreTGE from './views/preTGE/UserBondRowPreTGE'\nimport UserBondRowYield from './views/preTGE/UserBondRowYield'\n\nconst NON_EVM_CHAINS: ChainId[] = [ChainId.SOL, ChainId.APTOS, ChainId.SUI]\n\n/**\n * EVM bonds (every chain that isn't Solana, Aptos or Sui), plus tiers and PreTGE / launch / Yield bonds. Requires\n * `wagmi` and `viem`, and the consumer must mount a `WagmiProvider` (see docs/PLAN_CHAIN_ADAPTERS.md, section 3.2).\n */\nexport const evmAdapter: ChainAdapter = {\n ecosystem: 'evm',\n supportsChain: (chainId) => !NON_EVM_CHAINS.includes(chainId),\n AccountBridge: EvmAccountBridge,\n\n // EVM bonds come from the realtime API; fetchBondsData is only the on-chain (multicall) fallback. Bills are\n // enriched with api-v2 NFT metadata.\n usesRealtimeApi: true,\n fetchBondsData: (chainId, bonds, tokenPrices, apiUrl) => fetchBondsDataEVM(chainId, bonds, apiUrl, tokenPrices),\n fetchUserBonds: (chainId, account, bonds, tokenPrices) => fetchUsersBondsEVM(chainId, account, bonds, tokenPrices),\n enrichUserBondsViaApi: true,\n getTokenBalance: getTokenBalanceEVM,\n getTokensBalances: getTokensBalanceEVM,\n\n BuyComponent,\n UserBondRow,\n BondActions: Actions,\n TransferAction,\n ClaimAllAction: ClaimAllActionEVM,\n ConnectBanner: ConnectToEVMBanner,\n\n getTierPoints,\n preTGE: {\n fetchBondsData: fetchBondsDataPreTGE,\n fetchUserBonds: fetchUserBondsPreTGE,\n ModalHandler: ModalHandlerPreTGE,\n UserBondRow: UserBondRowPreTGE,\n YieldRow: UserBondRowYield,\n },\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,MAAM,cAAc,GAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AAE3E;;;AAGG;AACI,MAAM,UAAU,GAAiB;AACtC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,aAAa,EAAE,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7D,IAAA,aAAa,EAAE,gBAAgB;;;AAI/B,IAAA,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;IAC/G,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,KAAK,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;AAClH,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,eAAe,EAAE,kBAAkB;AACnC,IAAA,iBAAiB,EAAE,mBAAmB;IAEtC,YAAY;IACZ,WAAW;AACX,IAAA,WAAW,EAAE,OAAO;IACpB,cAAc;AACd,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,aAAa,EAAE,kBAAkB;IAEjC,aAAa;AACb,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,QAAQ,EAAE,gBAAgB;AAC3B,KAAA;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import useEVMAccount from './useEVMAccount.js';
|
|
2
|
-
import { usePublishChainAccount } from '
|
|
2
|
+
import { usePublishChainAccount } from '../../../state/chainAccount/useChainAccount.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Publishes the connected EVM account (or the debugging `evmAddress`) and the wallet's current chain for core code;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmAccountBridge.js","sources":["../../../../src/adapters/evm/state/EvmAccountBridge.tsx"],"sourcesContent":["import useEVMAccount from './useEVMAccount'\nimport { usePublishChainAccount } from '../../../state/chainAccount/useChainAccount'\n\n/**\n * Publishes the connected EVM account (or the debugging `evmAddress`) and the wallet's current chain for core code;\n * see ChainAdapter.AccountBridge. wagmi hooks throw without a WagmiProvider, which registering evmAdapter requires.\n */\nconst EvmAccountBridge = () => {\n const { address, chainId } = useEVMAccount()\n usePublishChainAccount('evm', { address: address ?? null, connected: !!address, chainId })\n return null\n}\n\nexport default EvmAccountBridge\n"],"names":[],"mappings":";;;AAGA;;;AAGG;AACH,MAAM,gBAAgB,GAAG,MAAK;IAC5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AAC5C,IAAA,sBAAsB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AAC1F,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChainId, Token } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import type { TokenBalance } from '
|
|
2
|
+
import type { TokenBalance } from '../../types';
|
|
3
3
|
/** Balance of one token (or the native coin) on an EVM chain. */
|
|
4
4
|
export declare const getTokenBalanceEVM: (chainId: ChainId, currency: "NATIVE" | Token, account: string) => Promise<string>;
|
|
5
5
|
/** Balances of several tokens (and/or the native coin) on an EVM chain, in two multicalls. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import multicallV2Abi from '
|
|
2
|
-
import erc20ABI from '
|
|
3
|
-
import { MULTICALL_V2 } from '
|
|
4
|
-
import { formatUnits } from '
|
|
5
|
-
import multicall from '
|
|
1
|
+
import multicallV2Abi from '../../../config/abi/multicallv2.json.js';
|
|
2
|
+
import erc20ABI from '../../../config/abi/erc20.json.js';
|
|
3
|
+
import { MULTICALL_V2 } from '../../../config/constants/addresses.js';
|
|
4
|
+
import { formatUnits } from '../../../utils/fixedPoint.js';
|
|
5
|
+
import multicall from '../utils/multicall.js';
|
|
6
6
|
|
|
7
7
|
/** Balance of one token (or the native coin) on an EVM chain. */
|
|
8
8
|
const getTokenBalanceEVM = async (chainId, currency, account) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balances.js","sources":["../../../../src/adapters/evm/state/balances.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport multicallV2Abi from '../../../config/abi/multicallv2.json'\nimport erc20ABI from '../../../config/abi/erc20.json'\nimport { MULTICALL_V2 } from '../../../config/constants/addresses'\nimport { formatUnits } from '../../../utils/fixedPoint'\nimport type { TokenBalance } from '../../types'\nimport multicall, { Call } from '../utils/multicall'\n\n/** Balance of one token (or the native coin) on an EVM chain. */\nexport const getTokenBalanceEVM = async (chainId: ChainId, currency: 'NATIVE' | Token, account: string) => {\n const calls: Call[] = [\n {\n address: currency === 'NATIVE' ? MULTICALL_V2[chainId]! : currency.address[chainId]!,\n name: currency === 'NATIVE' ? 'getEthBalance' : 'balanceOf',\n params: [account],\n },\n ]\n const data = await multicall(chainId, currency === 'NATIVE' ? multicallV2Abi : erc20ABI, calls)\n return formatUnits(data[0] ?? 0, currency === 'NATIVE' ? 18 : currency.decimals![chainId]!)\n}\n\n/** Balances of several tokens (and/or the native coin) on an EVM chain, in two multicalls. */\nexport const getTokensBalanceEVM = async (\n chainId: ChainId,\n account: string,\n tokens: ('NATIVE' | Token)[],\n): Promise<TokenBalance[]> => {\n const callsToken: Call[] = tokens\n .filter((token) => token !== 'NATIVE')\n .map((token) => {\n return {\n address: token?.address?.[chainId] ?? '',\n name: 'balanceOf',\n params: [account],\n }\n })\n const callNative: Call[] = tokens\n .filter((token) => token === 'NATIVE')\n .map(() => {\n return {\n address: MULTICALL_V2[chainId]!,\n name: 'getEthBalance',\n params: [account],\n }\n })\n const [dataToken, dataNative] = await Promise.all([\n multicall(chainId, erc20ABI, callsToken),\n multicall(chainId, multicallV2Abi, callNative),\n ])\n\n const balancesToken = dataToken.map((balance: any, i: number) => {\n const token = tokens.find(\n (token) =>\n token !== 'NATIVE' &&\n (token as Token)?.address?.[chainId]?.toLowerCase() === callsToken[i].address.toLowerCase(),\n )\n return {\n address: (token as Token)?.address[chainId] as string,\n balance: formatUnits(balance[0], (token as Token).decimals![chainId]!),\n }\n })\n const balancesNative = dataNative.map((balance: any) => {\n return {\n address: 'NATIVE',\n balance: formatUnits(balance[0], 18),\n }\n })\n return [...balancesToken, ...balancesNative]\n}\n"],"names":[],"mappings":";;;;;;AAQA;AACO,MAAM,kBAAkB,GAAG,OAAO,OAAgB,EAAE,QAA0B,EAAE,OAAe,KAAI;AACxG,IAAA,MAAM,KAAK,GAAW;AACpB,QAAA;AACE,YAAA,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAE;YACpF,IAAI,EAAE,QAAQ,KAAK,QAAQ,GAAG,eAAe,GAAG,WAAW;YAC3D,MAAM,EAAE,CAAC,OAAO,CAAC;AAClB,SAAA;KACF;IACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,cAAc,GAAG,QAAQ,EAAE,KAAK,CAAC;IAC/F,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAS,CAAC,OAAO,CAAE,CAAC;AAC7F;AAEA;AACO,MAAM,mBAAmB,GAAG,OACjC,OAAgB,EAChB,OAAe,EACf,MAA4B,KACD;IAC3B,MAAM,UAAU,GAAW;SACxB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ;AACpC,SAAA,GAAG,CAAC,CAAC,KAAK,KAAI;QACb,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;AACH,IAAA,CAAC,CAAC;IACJ,MAAM,UAAU,GAAW;SACxB,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ;SACpC,GAAG,CAAC,MAAK;QACR,OAAO;AACL,YAAA,OAAO,EAAE,YAAY,CAAC,OAAO,CAAE;AAC/B,YAAA,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;AACH,IAAA,CAAC,CAAC;IACJ,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChD,QAAA,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;AACxC,QAAA,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC;AAC/C,KAAA,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,CAAS,KAAI;AAC9D,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,KAAK,KACJ,KAAK,KAAK,QAAQ;YACjB,KAAe,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAC9F;QACD,OAAO;AACL,YAAA,OAAO,EAAG,KAAe,EAAE,OAAO,CAAC,OAAO,CAAW;AACrD,YAAA,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAG,KAAe,CAAC,QAAS,CAAC,OAAO,CAAE,CAAC;SACvE;AACH,IAAA,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAY,KAAI;QACrD,OAAO;AACL,YAAA,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACrC;AACH,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC;AAC9C;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { BillsConfig } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import { TokenPrices } from '
|
|
3
|
-
import { BondsData } from '
|
|
2
|
+
import { TokenPrices } from '../../../state/tokenPrices/useTokenPrices';
|
|
3
|
+
import { BondsData } from '../../../types/bonds';
|
|
4
4
|
export declare const fetchBondsDataEVM: (chainId: number, bonds: BillsConfig[], apiUrl: string, tokenPrices?: TokenPrices[]) => Promise<BondsData[]>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import multicall from '
|
|
3
|
-
import BOND_ABI from '
|
|
4
|
-
import erc20ABI from '
|
|
2
|
+
import multicall from '../utils/multicall.js';
|
|
3
|
+
import BOND_ABI from '../../../config/abi/BOND_2_4_0.json.js';
|
|
4
|
+
import erc20ABI from '../../../config/abi/erc20.json.js';
|
|
5
5
|
import chunk from 'lodash-es/chunk.js';
|
|
6
|
-
import { getBonusWithFee, getDiscountWithFee, getRawBonus, getRawDiscount } from '
|
|
7
|
-
import { formatUnits } from '
|
|
8
|
-
import { getBalanceNumber } from '
|
|
9
|
-
import { TIER_MAPPING } from '
|
|
10
|
-
import { resolveBondTokenPrices } from '
|
|
6
|
+
import { getBonusWithFee, getDiscountWithFee, getRawBonus, getRawDiscount } from '../../../state/bonds/fetchBondsData/bondPricing.js';
|
|
7
|
+
import { formatUnits } from '../../../utils/fixedPoint.js';
|
|
8
|
+
import { getBalanceNumber } from '../../../utils/getBalanceNumber.js';
|
|
9
|
+
import { TIER_MAPPING } from '../../../state/tiers/tiers.js';
|
|
10
|
+
import { resolveBondTokenPrices } from '../../../state/tokenPrices/resolveTokenPrice.js';
|
|
11
11
|
|
|
12
12
|
const fetchBondsDataEVM = async (chainId, bonds, apiUrl, tokenPrices) => {
|
|
13
13
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBondsDataEVM.js","sources":["../../../../src/adapters/evm/state/fetchBondsDataEVM.ts"],"sourcesContent":["import { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport multicall from '../utils/multicall'\nimport BOND_2_4_0 from '../../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../../config/abi/erc20.json'\nimport chunk from 'lodash-es/chunk.js'\nimport {\n getBonusWithFee,\n getDiscountWithFee,\n getRawBonus,\n getRawDiscount,\n} from '../../../state/bonds/fetchBondsData/bondPricing'\nimport { formatUnits } from '../../../utils/fixedPoint'\nimport { getBalanceNumber } from '../../../utils/getBalanceNumber'\nimport { BondsData, TrueBondPrices } from '../../../types/bonds'\nimport { TIER_MAPPING } from '../../../state/tiers/tiers'\nimport { resolveBondTokenPrices } from '../../../state/tokenPrices/resolveTokenPrice'\n\nexport const fetchBondsDataEVM = async (\n chainId: number,\n bonds: BillsConfig[],\n apiUrl: string,\n tokenPrices?: TokenPrices[],\n) => {\n try {\n const bills = bonds.filter((b) => !b.soldOut)\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPrincipal',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'paused',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to each bill's chunk\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n // balanceOf has a single output, so multicall wraps it as [balance] — unwrap it\n acc.push(treasuryBalances[pos - 1][0])\n }\n return acc\n }, [])\n\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n const { lpPrice, earnTokenPrice } = await resolveBondTokenPrices(bill, tokenPrices)\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n ] = chunk as any\n const trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const tierBoostRate = bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = Number(\n formatUnits(\n BigInt(maxTotalPayout ?? '0') - BigInt(totalPayoutGiven),\n bill?.earnToken.decimals[bill?.chainId] ?? 18,\n ),\n )\n const treasuryBalance = customTreasuryBalance\n ? getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n : null\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n bonusWithFee: getBonusWithFee(\n feeInPayout,\n tierBoostRate,\n data?.trueBondPrice.toString(),\n lpPrice,\n earnTokenPrice,\n ),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, tierBoostRate, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining:\n treasuryBalance !== null\n ? Math.min(treasuryBalance, tokensRemaining).toString()\n : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n tierBoostRate: bill.tierBoostRate === undefined ? 1 : bill.tierBoostRate,\n }\n return cleanedData\n }),\n )\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n"],"names":["BOND_2_4_0","ERC20ABI"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UserOwnedBillsData } from '
|
|
1
|
+
import { UserOwnedBillsData } from '../../../types/yourbonds';
|
|
2
2
|
import { BillsConfig, ChainId } from '@ape.swap/apeswap-lists';
|
|
3
|
-
import { TokenPrices } from '
|
|
3
|
+
import { TokenPrices } from '../../../state/tokenPrices/useTokenPrices';
|
|
4
4
|
export declare const fetchUsersBondsEVM: (chainId: ChainId, account: string, bondData: BillsConfig[], tokenPrices: Partial<Record<ChainId, TokenPrices[]>>) => Promise<UserOwnedBillsData[]>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import billAbi from '
|
|
2
|
-
import multicall from '
|
|
1
|
+
import billAbi from '../../../config/abi/BOND_2_0_0.json.js';
|
|
2
|
+
import multicall from '../utils/multicall.js';
|
|
3
3
|
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
4
|
-
import { apiGet } from '
|
|
5
|
-
import { PRICE_API_URL } from '
|
|
4
|
+
import { apiGet } from '../../../utils/httpClient.js';
|
|
5
|
+
import { PRICE_API_URL } from '../../../config/constants/variables.js';
|
|
6
6
|
|
|
7
7
|
const fetchUsersBondsEVM = async (chainId, account, bondData, tokenPrices) => {
|
|
8
8
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchUsersBondsEVM.js","sources":["../../../../src/adapters/evm/state/fetchUsersBondsEVM.ts"],"sourcesContent":["import billAbi from '../../../config/abi/BOND_2_0_0.json'\nimport multicall from '../utils/multicall'\nimport { UserBill, UserOwnedBillsData } from '../../../types/yourbonds'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../../state/tokenPrices/useTokenPrices'\nimport { BondsData } from '../../../types/bonds'\nimport { apiGet } from '../../../utils/httpClient'\nimport { PRICE_API_URL } from '../../../config/constants/variables'\n\nexport const fetchUsersBondsEVM = async (\n chainId: ChainId,\n account: string,\n bondData: BillsConfig[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n): Promise<UserOwnedBillsData[]> => {\n try {\n if (!account) {\n return []\n }\n const bonds: BillsConfig[] = bondData\n\n // Fetch and set user owned bill data without NFT Data\n const userOwnedBills = await fetchUserOwnedBills(chainId, account, bonds, tokenPrices)\n const mapUserOwnedBills = bonds.map((bill: BillsConfig) =>\n userOwnedBills.filter((b) => b.address.toLowerCase() === bill.contractAddress[bill.chainId]?.toLowerCase()),\n )\n const userOwnedBillsData = bonds.map((bill: BillsConfig, i: number) => ({\n index: bill.index,\n userOwnedBills: mapUserOwnedBills[i],\n }))\n\n const combinedData = userOwnedBillsData.map((data) => {\n const enrichedUserBills = data.userOwnedBills.map((bill) => {\n return {\n ...bill,\n }\n })\n return {\n ...data,\n userOwnedBills: enrichedUserBills,\n }\n })\n\n return Promise.resolve(combinedData)\n } catch (error) {\n console.error('Error fetching user owned bills data:', error)\n return Promise.reject(error)\n }\n}\n\nconst fetchUserOwnedBills = async (\n chainId: ChainId,\n account: string,\n bonds: BillsConfig[],\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n): Promise<UserBill[]> => {\n // Maps all the bills in the list repo to make a call to each of them to get Bills Id and paused state (only for V4)\n const billIdAndPausedCalls = bonds.flatMap((b, index) => {\n const calls = [\n {\n address: b.contractAddress[b.chainId] ?? '',\n name: 'getBillIds',\n params: [account],\n bondIndex: index,\n },\n ]\n // Only add paused call for V4 bonds\n if (b.billVersion === BillVersion.V4) {\n calls.push({\n address: b.contractAddress[b.chainId] ?? '',\n name: 'paused',\n params: [],\n bondIndex: index,\n })\n }\n return calls\n })\n const billIdAndPausedResults = await multicall(chainId, billAbi, billIdAndPausedCalls, true, 15)\n\n // Separate billIds and pausedStates from results, tracking which bonds have paused calls\n const billIds: any[] = []\n const pausedStates: Map<string, boolean> = new Map()\n let resultIndex = 0\n\n bonds.forEach((b) => {\n // First result is always getBillIds\n billIds.push(billIdAndPausedResults?.[resultIndex])\n resultIndex++\n\n // Next result is paused only if V4\n if (b.billVersion === BillVersion.V4) {\n pausedStates.set(\n b.contractAddress[b.chainId]?.toLowerCase() as string,\n billIdAndPausedResults?.[resultIndex]?.[0] ?? false,\n )\n resultIndex++\n }\n })\n const billDataCalls: any = []\n const billVersions: any = []\n\n billIds?.forEach((idArray: any, index: number) =>\n idArray[0].forEach((id: bigint) => {\n if (id > 0) {\n billDataCalls.push({\n address: bonds[index].contractAddress[bonds[index].chainId],\n name: bonds[index].billVersion !== BillVersion.V1 ? 'getBillInfo' : 'billInfo',\n params: [id],\n bond: bonds[index],\n })\n billDataCalls.push({\n address: bonds[index].contractAddress[bonds[index].chainId],\n name: bonds[index].billVersion !== BillVersion.V1 ? 'claimablePayout' : 'pendingPayoutFor',\n params: [id],\n bond: bonds[index],\n })\n billVersions.push(bonds[index].billVersion)\n }\n }),\n )\n const billData = await multicall(chainId, billAbi, billDataCalls, true, 150)\n const result = []\n\n for (let i = 0; i < billVersions.length; i++) {\n const billPos = i === 0 ? 0 : i * 2\n let bond: BondsData = billDataCalls[billPos].bond\n\n let principalTokenPrice = tokenPrices?.[bond.chainId]?.find(\n (tokenPrice) => tokenPrice.tokenAddress?.toLowerCase() === bond?.lpToken?.address?.[bond.chainId]?.toLowerCase(),\n )?.price\n\n let payoutTokenPrice = tokenPrices?.[bond.chainId]?.find(\n (tokenPrice: TokenPrices) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bond?.earnToken?.address?.[bond.chainId]?.toLowerCase(),\n )?.price\n\n if (principalTokenPrice === undefined) {\n try {\n const res = await apiGet<{ price: string }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.lpToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n console.log('Individual call for: ', bond.lpToken.symbol, '. Price: ', res.price)\n principalTokenPrice = parseFloat(res.price ?? '0')\n } catch {\n principalTokenPrice = 0\n }\n }\n if (payoutTokenPrice === undefined) {\n try {\n const res = await apiGet<{ price: string }>(\n `${PRICE_API_URL}/realtime/price?token=${bond?.earnToken?.address?.[bond?.chainId]}&chain=${bond?.chainId}`,\n )\n console.log('Individual call for: ', bond.earnToken.symbol, '. Price: ', res.price)\n payoutTokenPrice = parseFloat(res.price ?? '0')\n } catch {\n payoutTokenPrice = 0\n }\n }\n\n bond = {\n ...bond,\n payoutTokenPrice: payoutTokenPrice?.toString(),\n principalTokenPrice: principalTokenPrice?.toString(),\n }\n const paused = pausedStates.get(bond.contractAddress[bond.chainId]?.toLowerCase() as string) ?? false\n\n const data =\n billVersions[i] !== BillVersion.V1\n ? {\n address: billDataCalls[billPos].address,\n id: billDataCalls[billPos].params[0].toString(),\n payout: (\n BigInt(billData[billPos][0]?.payout.toString()) - BigInt(billData[billPos][0]?.payoutClaimed.toString())\n ).toString(),\n totalPayout: billData[billPos][0]?.payout.toString(),\n payoutClaimed: billData[billPos][0]?.payoutClaimed.toString(),\n billNftAddress: bond.billNnftAddress[bond.chainId] ?? '',\n vesting: billData[billPos][0]?.vesting.toString(),\n vestingTerm: billData[billPos][0]?.vestingTerm.toString(),\n lastBlockTimestamp: billData[billPos][0]?.lastClaimTimestamp.toString(),\n vestingStartTimestamp: billData[billPos][0]?.vestingStartTimestamp.toString(),\n truePricePaid: billData[billPos][0]?.truePricePaid.toString(),\n pendingRewards: billData[billPos + 1][0].toString(),\n paused,\n bond,\n }\n : {\n address: billDataCalls[billPos].address,\n id: billDataCalls[billPos].params[0].toString(),\n payoutClaimed: billData?.[billPos]?.[0]?.payoutClaimed?.toString(),\n payout: billData[billPos][0].toString(),\n billNftAddress: bond.billNnftAddress[bond.chainId] ?? '',\n vesting: billData[billPos][1].toString(),\n lastBlockTimestamp: billData[billPos][2].toString(),\n truePricePaid: billData[billPos][3].toString(),\n pendingRewards: billData[billPos + 1][0].toString(),\n paused,\n bond,\n }\n result.push(data)\n }\n\n return result\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { TierPoints } from '
|
|
1
|
+
import { TierPoints } from '../../../state/tiers/tiers';
|
|
2
2
|
/** Tier points of an EVM address: escrow weight on the BSC lens contract, or its best promotion if that's higher. */
|
|
3
3
|
export declare const getTierPoints: (account: string, apiUrl: string) => Promise<TierPoints>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import lensContractABI from '
|
|
3
|
-
import { LENS_CONTRACT } from '
|
|
4
|
-
import { reportError } from '
|
|
5
|
-
import { TIERS_WEIGHT, NO_TIER_POINTS } from '
|
|
6
|
-
import multicall from '
|
|
2
|
+
import lensContractABI from '../../../config/abi/lensContract.json.js';
|
|
3
|
+
import { LENS_CONTRACT } from '../../../config/constants/addresses.js';
|
|
4
|
+
import { reportError } from '../../../utils/reportError.js';
|
|
5
|
+
import { TIERS_WEIGHT, NO_TIER_POINTS } from '../../../state/tiers/tiers.js';
|
|
6
|
+
import multicall from '../utils/multicall.js';
|
|
7
7
|
|
|
8
8
|
/** Tier points of an EVM address: escrow weight on the BSC lens contract, or its best promotion if that's higher. */
|
|
9
9
|
const getTierPoints = async (account, apiUrl) => {
|