@ape.swap/bonds-sdk 6.2.1 → 6.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MenuSelect/MenuSelect.d.ts +1 -1
- package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBarWrapper.d.ts +1 -1
- package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
- package/dist/components/TokenInfoAndName/index.d.ts +0 -1
- package/dist/components/TokenInfoAndName/index.js +1 -1
- package/dist/components/TokenInfoAndName/index.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/uikit-sdk/Button/Button.js +0 -36
- package/dist/components/uikit-sdk/Button/Button.js.map +1 -1
- package/dist/components/uikit-sdk/Button/types.d.ts +6 -10
- package/dist/components/uikit-sdk/Button/types.js +0 -5
- package/dist/components/uikit-sdk/Button/types.js.map +1 -1
- package/dist/components/uikit-sdk/Checkbox/types.d.ts +2 -1
- package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -1
- package/dist/components/uikit-sdk/Skeleton/styles.d.ts +0 -12
- package/dist/components/uikit-sdk/Skeleton/styles.js +1 -1
- package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.d.ts +2 -2
- package/dist/components/uikit-sdk/Svg/styles.d.ts +0 -2
- package/dist/components/uikit-sdk/Svg/styles.js.map +1 -1
- package/dist/components/uikit-sdk/Text/types.d.ts +1 -1
- package/dist/components/uikit-sdk/Text/types.js +1 -1
- package/dist/components/uikit-sdk/Text/types.js.map +1 -1
- package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -1
- package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
- package/dist/config/constants/aptosZapTokens.d.ts +0 -9
- package/dist/config/constants/aptosZapTokens.js +1 -2
- package/dist/config/constants/aptosZapTokens.js.map +1 -1
- package/dist/config/constants/networks.d.ts +0 -2
- package/dist/config/constants/networks.js +1 -1
- package/dist/config/constants/networks.js.map +1 -1
- package/dist/config/constants/tokens.d.ts +1 -2
- package/dist/constants/aptosConstants.d.ts +0 -6
- package/dist/constants/aptosConstants.js +15 -1
- package/dist/constants/aptosConstants.js.map +1 -1
- package/dist/constants/solanaConstants.d.ts +0 -6
- package/dist/constants/solanaConstants.js +0 -21
- package/dist/constants/solanaConstants.js.map +1 -1
- package/dist/constants/suiConstants.d.ts +0 -5
- package/dist/constants/suiConstants.js +11 -0
- package/dist/constants/suiConstants.js.map +1 -1
- package/dist/hooks/useSortedZapList.d.ts +1 -1
- package/dist/hooks/useSortedZapList.js +1 -2
- package/dist/hooks/useSortedZapList.js.map +1 -1
- package/dist/hooks/useTokenFromZapList.js +0 -1
- package/dist/hooks/useTokenFromZapList.js.map +1 -1
- package/dist/state/balance/useCurrencyBalanceSolana.d.ts +0 -2
- package/dist/state/balance/useCurrencyBalanceSolana.js +0 -1
- package/dist/state/balance/useCurrencyBalanceSolana.js.map +1 -1
- package/dist/state/bondApiStats/useGetBondApiStats.d.ts +0 -1
- package/dist/state/bondApiStats/useGetBondApiStats.js +1 -1
- package/dist/state/bondApiStats/useGetBondApiStats.js.map +1 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.d.ts +1 -2
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js +1 -1
- package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +1 -1
- package/dist/state/bonds/useBondsList.d.ts +1 -2
- package/dist/state/bonds/useBondsList.js +1 -1
- package/dist/state/bonds/useBondsList.js.map +1 -1
- package/dist/state/bonds/useBondsListPreTGE.d.ts +1 -2
- package/dist/state/bonds/useBondsListPreTGE.js +1 -1
- package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
- package/dist/state/bonds/useTierProofSignature.d.ts +0 -1
- package/dist/state/bonds/useTierProofSignature.js +1 -1
- package/dist/state/bonds/useTierProofSignature.js.map +1 -1
- package/dist/state/bonds/useUserBondsPreTGE.d.ts +3 -4
- package/dist/state/bonds/useUserBondsPreTGE.js +1 -1
- package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
- package/dist/state/historicalPrice/useHistoricalPrice.d.ts +1 -2
- package/dist/state/historicalPrice/useHistoricalPrice.js +1 -1
- package/dist/state/historicalPrice/useHistoricalPrice.js.map +1 -1
- package/dist/state/hotBonds/useHotBonds.d.ts +0 -2
- package/dist/state/hotBonds/useHotBonds.js +1 -1
- package/dist/state/hotBonds/useHotBonds.js.map +1 -1
- package/dist/state/price/useCurrencyPrice.js +1 -2
- package/dist/state/price/useCurrencyPrice.js.map +1 -1
- package/dist/state/recommendations/useGetBondRecommendations.d.ts +0 -1
- package/dist/state/recommendations/useGetBondRecommendations.js +1 -1
- package/dist/state/recommendations/useGetBondRecommendations.js.map +1 -1
- package/dist/state/tiers/useTierPoints.d.ts +0 -6
- package/dist/state/tiers/useTierPoints.js +1 -1
- package/dist/state/tiers/useTierPoints.js.map +1 -1
- package/dist/state/zap/useAptosZapQuote.d.ts +1 -16
- package/dist/state/zap/useAptosZapQuote.js.map +1 -1
- package/dist/state/zap/useSoulZapBondQuote.js +0 -1
- package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
- package/dist/state/zap/useSuiZapQuote.d.ts +1 -1
- package/dist/state/zap/useSuiZapQuote.js.map +1 -1
- package/dist/theme/base.d.ts +1 -4
- package/dist/theme/base.js +1 -1
- package/dist/theme/base.js.map +1 -1
- package/dist/theme/components.d.ts +0 -20
- package/dist/theme/components.js +1 -1
- package/dist/theme/components.js.map +1 -1
- package/dist/types/aptosBonds.d.ts +0 -60
- package/dist/types/bondIssuanceCodec.d.ts +0 -1
- package/dist/types/bondIssuanceCodec.js.map +1 -1
- package/dist/types/bondTermCodec.d.ts +0 -1
- package/dist/types/bondTermCodec.js.map +1 -1
- package/dist/types/solanaBonds.d.ts +4 -3
- package/dist/utils/aptosHelpers.d.ts +1 -14
- package/dist/utils/aptosHelpers.js +30 -2
- package/dist/utils/aptosHelpers.js.map +1 -1
- package/dist/utils/calculateSolanaTrueBillPrice.d.ts +0 -1
- package/dist/utils/calculateSolanaTrueBillPrice.js +0 -5
- package/dist/utils/calculateSolanaTrueBillPrice.js.map +1 -1
- package/dist/utils/convertToBigish.d.ts +0 -1
- package/dist/utils/convertToBigish.js +1 -1
- package/dist/utils/convertToBigish.js.map +1 -1
- package/dist/utils/displayHelpers.d.ts +0 -6
- package/dist/utils/displayHelpers.js +1 -1
- package/dist/utils/displayHelpers.js.map +1 -1
- package/dist/utils/formatNumber.d.ts +0 -7
- package/dist/utils/formatNumber.js +1 -1
- package/dist/utils/formatNumber.js.map +1 -1
- package/dist/utils/getNativeTicker.js +0 -1
- package/dist/utils/getNativeTicker.js.map +1 -1
- package/dist/utils/suiHelpers.d.ts +0 -2
- package/dist/utils/suiHelpers.js +13 -15
- package/dist/utils/suiHelpers.js.map +1 -1
- package/dist/views/Bonds/Bonds.d.ts +0 -4
- package/dist/views/Bonds/Bonds.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.d.ts +1 -1
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.d.ts +1 -1
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
- package/dist/views/Bonds/utils.d.ts +0 -2
- package/dist/views/Bonds/utils.js.map +1 -1
- package/dist/views/BuyBond/BuyBondModal.d.ts +1 -1
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSui.d.ts +1 -1
- package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.d.ts +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
- package/dist/views/ProjectView/components/BondStats/types.d.ts +2 -1
- package/dist/views/ProjectView/components/BondStats/types.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.d.ts +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/package.json +6 -5
- package/dist/components/AccordionText/index.d.ts +0 -6
- package/dist/components/RestrictedRegionModal/index.d.ts +0 -5
- package/dist/components/TabNavigation/index.d.ts +0 -8
- package/dist/components/uikit-sdk/Input/NumericInput.d.ts +0 -9
- package/dist/components/uikit-sdk/Modal/ModalFooter.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Audit.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Fire.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/FullLogo.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Instagram.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Language.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Medium.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Pool.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Reddit.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Telegram.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/Icons/Website.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/BSC.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/CELO.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/CRONOS.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/FANTOM.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/OKX.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.d.ts +0 -4
- package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.d.ts +0 -4
- package/dist/config/constants/tokens.js +0 -36
- package/dist/config/constants/tokens.js.map +0 -1
- package/dist/contexts/RefreshContext.d.ts +0 -10
- package/dist/hooks/useRefresh.d.ts +0 -6
- package/dist/hooks/useTimer.d.ts +0 -2
- package/dist/state/bondApiStats/useUserApiStats.d.ts +0 -22
- package/dist/state/bonds/aptosBondsConfig.d.ts +0 -4
- package/dist/state/bonds/fetchUsersBonds/getBillNftData.d.ts +0 -9
- package/dist/state/geoFencing/useGeoFencing.d.ts +0 -5
- package/dist/state/zap/useSoulZapTokenQuote.d.ts +0 -3
- package/dist/state/zap/useTierOptimizationPreview.d.ts +0 -27
- package/dist/views/ZapModal/index.d.ts +0 -13
- package/dist/views/ZapModal/styles.d.ts +0 -2
|
@@ -34,6 +34,11 @@ if (typeof window !== 'undefined' &&
|
|
|
34
34
|
const APTOS_FULLNODE_URL = IS_APTOS_MAINNET
|
|
35
35
|
? 'https://api.mainnet.aptoslabs.com/v1'
|
|
36
36
|
: 'https://api.testnet.aptoslabs.com/v1';
|
|
37
|
+
// export const APTOS_INDEXER_URL = IS_APTOS_MAINNET
|
|
38
|
+
// ? 'https://api.mainnet.aptoslabs.com/v1/graphql'
|
|
39
|
+
// : 'https://api.testnet.aptoslabs.com/v1/graphql'
|
|
40
|
+
//
|
|
41
|
+
// export const APTOS_EXPLORER_URL = 'https://explorer.aptoslabs.com'
|
|
37
42
|
// ---------------------------------------------------------------------------
|
|
38
43
|
// API key rotation (same pattern as HELIUS_SOL_RPC_ENDPOINTS in networks.ts)
|
|
39
44
|
// ---------------------------------------------------------------------------
|
|
@@ -50,6 +55,15 @@ const getRandomAptosApiKey = () => {
|
|
|
50
55
|
return undefined;
|
|
51
56
|
return pool[Math.floor(Math.random() * pool.length)];
|
|
52
57
|
};
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Module / entry function paths (stable across networks)
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Built directly from `APTOS_CONTRACT_ADDRESS` so TypeScript infers each
|
|
62
|
+
// entry as `${string}::${string}::${string}`, which is exactly what the
|
|
63
|
+
// Aptos ts-sdk's `InputEntryFunctionData.function` field expects. Going via
|
|
64
|
+
// an intermediate `APTOS_BOND_MODULE` constant makes TS collapse the inner
|
|
65
|
+
// template literal and lose the third segment — avoid that.
|
|
66
|
+
// export const APTOS_BOND_MODULE = `${APTOS_CONTRACT_ADDRESS}::bond`
|
|
53
67
|
// Typed narrowly so the Aptos ts-sdk `InputEntryFunctionData.function` field
|
|
54
68
|
// (which expects `${string}::${string}::${string}`) accepts them directly.
|
|
55
69
|
// Entry functions (write path)
|
|
@@ -74,5 +88,5 @@ const APTOS_VIEW_NFT_ADDRESS = `${APTOS_CONTRACT_ADDRESS}::bond_nft::nft_address
|
|
|
74
88
|
// ---------------------------------------------------------------------------
|
|
75
89
|
const APTOS_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg';
|
|
76
90
|
|
|
77
|
-
export {
|
|
91
|
+
export { APTOS_CLAIM_FUNCTION, APTOS_DEPOSIT_FUNCTION, APTOS_FULLNODE_URL, APTOS_NETWORK, APTOS_PLACEHOLDER_BILL_IMAGE, APTOS_VIEW_BILL_INFO, APTOS_VIEW_BOND_MARKET_BY_ID, APTOS_VIEW_MARKET_INFO, APTOS_VIEW_NFT_ADDRESS, APTOS_VIEW_USER_BILLS, APTOS_VIEW_VESTING_PROGRESS, IS_APTOS_MAINNET, getRandomAptosApiKey };
|
|
78
92
|
//# sourceMappingURL=aptosConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptosConstants.js","sources":["../../src/constants/aptosConstants.ts"],"sourcesContent":["import { Network } from '@aptos-labs/ts-sdk'\n\n// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_APTOS_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_APTOS_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_APTOS_MAINNET = typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_APTOS_NETWORK === 'mainnet'\n\nexport const APTOS_NETWORK: Network = IS_APTOS_MAINNET ? Network.MAINNET : Network.TESTNET\n\n// ---------------------------------------------------------------------------\n// Contract address (single Move package containing bond, factory, treasury)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move deployment (see CLAUDE.md).\n// Mainnet is a placeholder until PLAN_002 or a future mainnet deploy lands.\n// TODO(aptos): Replace APTOS_CONTRACT_ADDRESS_MAINNET when mainnet is deployed.\nconst APTOS_CONTRACT_ADDRESS_TESTNET = '0xa1cec270b22272c801092d031ba609091f2164988a5b96cde8d9bdac0de4287b'\nconst APTOS_CONTRACT_ADDRESS_MAINNET = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\
|
|
1
|
+
{"version":3,"file":"aptosConstants.js","sources":["../../src/constants/aptosConstants.ts"],"sourcesContent":["import { Network } from '@aptos-labs/ts-sdk'\n\n// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_APTOS_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_APTOS_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_APTOS_MAINNET = typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_APTOS_NETWORK === 'mainnet'\n\nexport const APTOS_NETWORK: Network = IS_APTOS_MAINNET ? Network.MAINNET : Network.TESTNET\n\n// ---------------------------------------------------------------------------\n// Contract address (single Move package containing bond, factory, treasury)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move deployment (see CLAUDE.md).\n// Mainnet is a placeholder until PLAN_002 or a future mainnet deploy lands.\n// TODO(aptos): Replace APTOS_CONTRACT_ADDRESS_MAINNET when mainnet is deployed.\nconst APTOS_CONTRACT_ADDRESS_TESTNET = '0xa1cec270b22272c801092d031ba609091f2164988a5b96cde8d9bdac0de4287b'\nconst APTOS_CONTRACT_ADDRESS_MAINNET = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\nconst APTOS_CONTRACT_ADDRESS = IS_APTOS_MAINNET ? APTOS_CONTRACT_ADDRESS_MAINNET : APTOS_CONTRACT_ADDRESS_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Aptos interaction.\nif (\n typeof window !== 'undefined' &&\n IS_APTOS_MAINNET &&\n APTOS_CONTRACT_ADDRESS === APTOS_CONTRACT_ADDRESS_MAINNET &&\n APTOS_CONTRACT_ADDRESS_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] APTOS_CONTRACT_ADDRESS is still the placeholder in production. ' +\n 'Replace APTOS_CONTRACT_ADDRESS_MAINNET in src/constants/aptosConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Network endpoints (fullnode + indexer + explorer)\n// ---------------------------------------------------------------------------\n// Note: Aptos Labs authenticates via the `Authorization: Bearer <key>` header,\n// NOT via query parameters (unlike Helius). We therefore keep the URLs clean\n// and inject the key through `clientConfig.HEADERS` (see aptosHelpers.ts).\nexport const APTOS_FULLNODE_URL = IS_APTOS_MAINNET\n ? 'https://api.mainnet.aptoslabs.com/v1'\n : 'https://api.testnet.aptoslabs.com/v1'\n\n// export const APTOS_INDEXER_URL = IS_APTOS_MAINNET\n// ? 'https://api.mainnet.aptoslabs.com/v1/graphql'\n// : 'https://api.testnet.aptoslabs.com/v1/graphql'\n//\n// export const APTOS_EXPLORER_URL = 'https://explorer.aptoslabs.com'\n\n// ---------------------------------------------------------------------------\n// API key rotation (same pattern as HELIUS_SOL_RPC_ENDPOINTS in networks.ts)\n// ---------------------------------------------------------------------------\n// TODO(APTOS): the testnet key below is a temporary dev key owned by Tomás.\n// Rotate it and add more keys for load balancing before the public testnet\n// launch.\nconst APTOS_API_KEYS_TESTNET: string[] = ['aptoslabs_WmE77ykde6q_5vYSpFBrmsexdQF71Rp44az5BQNt51DeV']\n\n// TODO(APTOS): mainnet keys are pending — they will be generated once a\n// production deployment exists.\nconst APTOS_API_KEYS_MAINNET: string[] = []\n\nexport const getRandomAptosApiKey = (): string | undefined => {\n const pool = IS_APTOS_MAINNET ? APTOS_API_KEYS_MAINNET : APTOS_API_KEYS_TESTNET\n if (pool.length === 0) return undefined\n return pool[Math.floor(Math.random() * pool.length)]\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `APTOS_CONTRACT_ADDRESS` so TypeScript infers each\n// entry as `${string}::${string}::${string}`, which is exactly what the\n// Aptos ts-sdk's `InputEntryFunctionData.function` field expects. Going via\n// an intermediate `APTOS_BOND_MODULE` constant makes TS collapse the inner\n// template literal and lose the third segment — avoid that.\n// export const APTOS_BOND_MODULE = `${APTOS_CONTRACT_ADDRESS}::bond`\n// Typed narrowly so the Aptos ts-sdk `InputEntryFunctionData.function` field\n// (which expects `${string}::${string}::${string}`) accepts them directly.\n\n// Entry functions (write path)\nexport const APTOS_DEPOSIT_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::deposit`\nexport const APTOS_CLAIM_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::claim`\n\n// View functions (read path, PLAN_001 Etapa 5b).\n// Names verified against apebond-move-playground routes:\n// - app/bond-market-info → bond::market_info\n// - app/bond-bill-info → bond::bill_info\n// - app/bond-nft-user-bills → bond_nft::user_bills\n// - app/bond-nft-vesting-progress → bond_nft::vesting_progress\n// - app/bond-nft-bond-market-by-id → bond_nft::bond_market_by_id\n// - app/bond-nft-nft-address → bond_nft::nft_address\nexport const APTOS_VIEW_MARKET_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::market_info`\nexport const APTOS_VIEW_BILL_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::bill_info`\nexport const APTOS_VIEW_USER_BILLS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::user_bills`\nexport const APTOS_VIEW_VESTING_PROGRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::vesting_progress`\nexport const APTOS_VIEW_BOND_MARKET_BY_ID: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::bond_market_by_id`\nexport const APTOS_VIEW_NFT_ADDRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::nft_address`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const APTOS_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,yBAAyB,KAAK;AAEtG,MAAM,aAAa,GAAY,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAA8B,GAAG,oEAAoE;AAC3G,MAAM,8BAA8B,GAAG,oEAAoE;AAE3G,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,8BAA8B,GAAG,8BAA8B;AAEjH;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,gBAAgB;AAChB,IAAA,sBAAsB,KAAK,8BAA8B;AACzD,IAAA,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnD;IACA,OAAO,CAAC,IAAI,CACV,+EAA+E;AAC7E,QAAA,4FAA4F,CAC/F;AACH;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG;AAChC,MAAE;MACA;AAEJ;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAa,CAAC,yDAAyD,CAAC;AAEpG;AACA;AACA,MAAM,sBAAsB,GAAa,EAAE;AAEpC,MAAM,oBAAoB,GAAG,MAAyB;IAC3D,MAAM,IAAI,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB;AAC/E,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;AACvC,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,sBAAsB,GAAsC,CAAA,EAAG,sBAAsB;AAC3F,MAAM,oBAAoB,GAAsC,CAAA,EAAG,sBAAsB;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAsC,CAAA,EAAG,sBAAsB;AAC3F,MAAM,oBAAoB,GAAsC,CAAA,EAAG,sBAAsB;AACzF,MAAM,qBAAqB,GAAsC,CAAA,EAAG,sBAAsB;AAC1F,MAAM,2BAA2B,GAAsC,CAAA,EAAG,sBAAsB;AAChG,MAAM,4BAA4B,GAAsC,CAAA,EAAG,sBAAsB;AACjG,MAAM,sBAAsB,GAAsC,CAAA,EAAG,sBAAsB;AAElG;AACA;AACA;AACO,MAAM,4BAA4B,GAAG;;;;"}
|
|
@@ -2,7 +2,6 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
2
2
|
import { Buffer } from 'buffer';
|
|
3
3
|
export declare const PROGRAM_ID: PublicKey;
|
|
4
4
|
export declare const MPL_CORE_PROGRAM_ID: PublicKey;
|
|
5
|
-
export declare const SOLANA_DUMMY_PUBLIC_KEY: PublicKey;
|
|
6
5
|
export declare const BOND_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
7
6
|
export declare const BOND_ISSUANCE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
8
7
|
export declare const BOND_PRICING_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
@@ -10,8 +9,3 @@ export declare const BOND_TERM_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
|
10
9
|
export declare const DEPOSIT_DISCRIMINATOR: Buffer<ArrayBuffer>;
|
|
11
10
|
export declare const CLAIM_DISCRIMINATOR: Buffer<ArrayBuffer>;
|
|
12
11
|
export declare const CLAIMABLE_PAYOUT_DISCRIMINATOR: Buffer<ArrayBuffer>;
|
|
13
|
-
export declare const TRUE_BILL_PRICE_DISCRIMINATOR: Buffer<ArrayBuffer>;
|
|
14
|
-
export declare const FEE_PAYOUT_CONST_SEED: Buffer<ArrayBuffer>;
|
|
15
|
-
export declare const FEE_PAYOUT_PDA_PROGRAM: PublicKey;
|
|
16
|
-
export declare const COMMON_CONST_SEED: Buffer<ArrayBuffer>;
|
|
17
|
-
export declare const COMMON_PDA_PROGRAM: PublicKey;
|
|
@@ -5,8 +5,6 @@ import { Buffer } from 'buffer';
|
|
|
5
5
|
// Program constants
|
|
6
6
|
const PROGRAM_ID = new PublicKey(solanaProgramIdl.address);
|
|
7
7
|
const MPL_CORE_PROGRAM_ID = new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d');
|
|
8
|
-
// Used for fee payer in view transactions that don't require a fee payer
|
|
9
|
-
new PublicKey('11111111111111111111111111111112');
|
|
10
8
|
// Accounts discriminators
|
|
11
9
|
const BOND_DISCRIMINATOR = new Uint8Array([224, 128, 48, 251, 182, 246, 111, 196]);
|
|
12
10
|
const BOND_ISSUANCE_DISCRIMINATOR = new Uint8Array([243, 27, 35, 153, 15, 167, 245, 230]);
|
|
@@ -16,25 +14,6 @@ const BOND_TERM_DISCRIMINATOR = new Uint8Array([45, 207, 18, 171, 171, 222, 242,
|
|
|
16
14
|
const DEPOSIT_DISCRIMINATOR = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]);
|
|
17
15
|
const CLAIM_DISCRIMINATOR = Buffer.from([62, 198, 214, 193, 213, 159, 108, 210]);
|
|
18
16
|
const CLAIMABLE_PAYOUT_DISCRIMINATOR = Buffer.from([180, 245, 240, 160, 170, 121, 123, 10]);
|
|
19
|
-
Buffer.from([105, 2, 40, 104, 17, 101, 241, 72]);
|
|
20
|
-
// PDA constants
|
|
21
|
-
Buffer.from([
|
|
22
|
-
6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58,
|
|
23
|
-
140, 245, 133, 126, 255, 0, 169,
|
|
24
|
-
]);
|
|
25
|
-
new PublicKey(Buffer.from([
|
|
26
|
-
140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142,
|
|
27
|
-
123, 216, 219, 233, 248, 89,
|
|
28
|
-
]));
|
|
29
|
-
// Common constants
|
|
30
|
-
Buffer.from([
|
|
31
|
-
6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58,
|
|
32
|
-
140, 245, 133, 126, 255, 0, 169,
|
|
33
|
-
]);
|
|
34
|
-
new PublicKey(Buffer.from([
|
|
35
|
-
140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142,
|
|
36
|
-
123, 216, 219, 233, 248, 89,
|
|
37
|
-
]));
|
|
38
17
|
|
|
39
18
|
export { BOND_DISCRIMINATOR, BOND_ISSUANCE_DISCRIMINATOR, BOND_PRICING_DISCRIMINATOR, BOND_TERM_DISCRIMINATOR, CLAIMABLE_PAYOUT_DISCRIMINATOR, CLAIM_DISCRIMINATOR, DEPOSIT_DISCRIMINATOR, MPL_CORE_PROGRAM_ID, PROGRAM_ID };
|
|
40
19
|
//# sourceMappingURL=solanaConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solanaConstants.js","sources":["../../src/constants/solanaConstants.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js'\nimport solanaProgramIdl from '../config/idl/solanaProgramIdl.json'\nimport { Buffer } from 'buffer'\n\n// Program constants\nexport const PROGRAM_ID = new PublicKey(solanaProgramIdl.address)\nexport const MPL_CORE_PROGRAM_ID = new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d')\n\n//
|
|
1
|
+
{"version":3,"file":"solanaConstants.js","sources":["../../src/constants/solanaConstants.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js'\nimport solanaProgramIdl from '../config/idl/solanaProgramIdl.json'\nimport { Buffer } from 'buffer'\n\n// Program constants\nexport const PROGRAM_ID = new PublicKey(solanaProgramIdl.address)\nexport const MPL_CORE_PROGRAM_ID = new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d')\n\n// Accounts discriminators\nexport const BOND_DISCRIMINATOR = new Uint8Array([224, 128, 48, 251, 182, 246, 111, 196])\nexport const BOND_ISSUANCE_DISCRIMINATOR = new Uint8Array([243, 27, 35, 153, 15, 167, 245, 230])\nexport const BOND_PRICING_DISCRIMINATOR = new Uint8Array([61, 208, 225, 148, 202, 31, 36, 34])\nexport const BOND_TERM_DISCRIMINATOR = new Uint8Array([45, 207, 18, 171, 171, 222, 242, 107])\n\n// Instructions discriminators\nexport const DEPOSIT_DISCRIMINATOR = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182])\nexport const CLAIM_DISCRIMINATOR = Buffer.from([62, 198, 214, 193, 213, 159, 108, 210])\nexport const CLAIMABLE_PAYOUT_DISCRIMINATOR = Buffer.from([180, 245, 240, 160, 170, 121, 123, 10])\n"],"names":[],"mappings":";;;;AAIA;AACO,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,OAAO;MACnD,mBAAmB,GAAG,IAAI,SAAS,CAAC,8CAA8C;AAE/F;AACO,MAAM,kBAAkB,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjF,MAAM,2BAA2B,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxF,MAAM,0BAA0B,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACtF,MAAM,uBAAuB,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAE5F;AACO,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChF,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/E,MAAM,8BAA8B,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;;;;"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
export declare const IS_SUI_MAINNET = true;
|
|
2
2
|
export declare const SUI_NETWORK: 'mainnet' | 'testnet';
|
|
3
3
|
export declare const SUI_PACKAGE_ID: string;
|
|
4
|
-
export declare const SUI_BOND_MODULE: string;
|
|
5
4
|
export declare const SUI_DEPOSIT_FUNCTION: string;
|
|
6
5
|
export declare const SUI_CLAIM_FUNCTION: string;
|
|
7
|
-
export declare const SUI_VIEW_MARKET_INFO: string;
|
|
8
|
-
export declare const SUI_VIEW_BILL_INFO: string;
|
|
9
|
-
export declare const SUI_VIEW_VESTING_PROGRESS: string;
|
|
10
|
-
export declare const SUI_VIEW_USER_BILLS: string;
|
|
11
6
|
export declare const SUI_PLACEHOLDER_BILL_IMAGE = "https://www.ape.bond/images/bills/hidden-bill.jpg";
|
|
@@ -15,9 +15,20 @@ if (typeof window !== 'undefined' &&
|
|
|
15
15
|
console.warn('[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +
|
|
16
16
|
'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.');
|
|
17
17
|
}
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Module / entry function paths (stable across networks)
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Built directly from `SUI_PACKAGE_ID` so each path follows the
|
|
22
|
+
// `package::module::function` convention used by the Sui Move VM.
|
|
23
|
+
// export const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`
|
|
18
24
|
// Entry functions (write path)
|
|
19
25
|
const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`;
|
|
20
26
|
const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`;
|
|
27
|
+
// View / read functions
|
|
28
|
+
// export const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`
|
|
29
|
+
// export const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`
|
|
30
|
+
// export const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`
|
|
31
|
+
// export const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`
|
|
21
32
|
// ---------------------------------------------------------------------------
|
|
22
33
|
// Placeholder bill image (shown until backend enrichment is available)
|
|
23
34
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\
|
|
1
|
+
{"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\n// export const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`\n\n// Entry functions (write path)\nexport const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`\nexport const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`\n\n// View / read functions\n// export const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`\n// export const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`\n// export const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`\n// export const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAU9B,MAAM,sBAAsB,GAAG,oEAAoE;AAE5F,MAAM,cAAc,GAAoB,sBAAsB;AAErE;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,cAAc;AACd,IAAA,cAAc,KAAK,sBAAsB;AACzC,IAAA,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C;IACA,OAAO,CAAC,IAAI,CACV,uEAAuE;AACrE,QAAA,kFAAkF,CACrF;AACH;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,oBAAoB,GAAG,CAAA,EAAG,cAAc;AAC9C,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc;AAEnD;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACO,MAAM,0BAA0B,GAAG;;;;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import { zapInputTokens, WNATIVE } from '@ape.swap/apeswap-lists';
|
|
2
2
|
import useTokenPrices from '../state/tokenPrices/useTokenPrices.js';
|
|
3
3
|
import uniqBy from 'lodash-es/uniqBy.js';
|
|
4
4
|
import useUserTokensBalance from '../state/balance/useUserTokensBalance.js';
|
|
5
|
-
import { zapInputTokens, WNATIVE } from '@ape.swap/apeswap-lists';
|
|
6
5
|
|
|
7
6
|
const useSortedZapList = (chainId, principalToken) => {
|
|
8
7
|
const zapList = [...(zapInputTokens[chainId] ?? []), principalToken];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortedZapList.js","sources":["../../src/hooks/useSortedZapList.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { WNATIVE, zapInputTokens } from '
|
|
1
|
+
{"version":3,"file":"useSortedZapList.js","sources":["../../src/hooks/useSortedZapList.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport useTokenPrices from '../state/tokenPrices/useTokenPrices'\nimport uniqBy from 'lodash-es/uniqBy.js'\nimport useUserTokensBalance from '../state/balance/useUserTokensBalance'\n\ninterface SortedZapList {\n token: 'NATIVE' | Token\n price: number\n balance?: string\n usdValue: number\n}\nconst useSortedZapList = (\n chainId?: ChainId,\n principalToken?: Token,\n): { sortedZapList: SortedZapList[]; isFetched: boolean } => {\n const zapList = [...(zapInputTokens[chainId as ChainId] ?? []), principalToken]\n\n //@ts-ignore\n const uniqueTokensList: ('NATIVE' | Token)[] = getUniqueTokensList(zapList, chainId as ChainId, principalToken)\n const { data: tokenPrices, isFetched: tokensFetched } = useTokenPrices()\n const { data: balances, isFetched: balancesFetched } = useUserTokensBalance(uniqueTokensList, chainId as ChainId)\n\n //@ts-ignore\n const sortedZapList: SortedZapList[] = uniqueTokensList\n .map((list: 'NATIVE' | Token) => {\n const token: Token = list === 'NATIVE' && chainId ? (WNATIVE[chainId] as Token) : (list as Token)\n const findPrice = tokenPrices?.[chainId!]?.find(\n (tokenPrice) =>\n tokenPrice.chainId === chainId &&\n tokenPrice?.tokenAddress?.toLowerCase() === token?.address?.[chainId as ChainId]?.toLowerCase(),\n )\n const price = isNaN(Number(findPrice?.price)) ? 0 : Number(findPrice?.price)\n const balance = balances?.find((balance) =>\n list === 'NATIVE'\n ? balance.address === 'NATIVE'\n : balance.address.toLowerCase() === token?.address?.[chainId as ChainId]?.toLowerCase(),\n )?.balance\n return {\n token: list === 'NATIVE' ? 'NATIVE' : token,\n price,\n balance,\n usdValue: Number(balance) * price,\n }\n })\n .sort((a, b) => {\n return b.usdValue - a.usdValue\n })\n\n return { sortedZapList, isFetched: tokensFetched && balancesFetched }\n}\n\nconst getUniqueTokensList = (zapList: Token[], chainId: ChainId, principalToken?: Token): ('NATIVE' | Token)[] => {\n const parsedList =\n zapList?.filter((token) => {\n return token?.address?.[chainId]?.toLowerCase() !== principalToken?.address?.[chainId]?.toLowerCase()\n }) ?? []\n\n // If principal token IS the native token (e.g. APT on Aptos), skip adding it\n // separately — 'NATIVE' already covers it and uniqBy can't dedup them because\n // 'NATIVE' is a string without an .address property.\n const principalIsNative =\n principalToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const inputTokenList: (Token | 'NATIVE')[] =\n principalToken && !principalIsNative ? [principalToken, 'NATIVE', ...parsedList] : ['NATIVE', ...parsedList]\n\n return uniqBy(inputTokenList, `address.[${chainId}]`)\n}\n\nexport default useSortedZapList\n"],"names":[],"mappings":";;;;;AAYA,MAAM,gBAAgB,GAAG,CACvB,OAAiB,EACjB,cAAsB,KACoC;AAC1D,IAAA,MAAM,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,OAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC;;IAG/E,MAAM,gBAAgB,GAAyB,mBAAmB,CAAC,OAAO,EAAE,OAAkB,EAAE,cAAc,CAAC;AAC/G,IAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE;AACxE,IAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,OAAkB,CAAC;;IAGjH,MAAM,aAAa,GAAoB;AACpC,SAAA,GAAG,CAAC,CAAC,IAAsB,KAAI;AAC9B,QAAA,MAAM,KAAK,GAAU,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAI,OAAO,CAAC,OAAO,CAAW,GAAI,IAAc;AACjG,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,OAAQ,CAAC,EAAE,IAAI,CAC7C,CAAC,UAAU,KACT,UAAU,CAAC,OAAO,KAAK,OAAO;AAC9B,YAAA,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,OAAO,GAAG,OAAkB,CAAC,EAAE,WAAW,EAAE,CAClG;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;AAC5E,QAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,KACrC,IAAI,KAAK;AACP,cAAE,OAAO,CAAC,OAAO,KAAK;cACpB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,OAAO,GAAG,OAAkB,CAAC,EAAE,WAAW,EAAE,CAC1F,EAAE,OAAO;QACV,OAAO;YACL,KAAK,EAAE,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK;YAC3C,KAAK;YACL,OAAO;AACP,YAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK;SAClC;AACH,IAAA,CAAC;AACA,SAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACb,QAAA,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;AAChC,IAAA,CAAC,CAAC;IAEJ,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,IAAI,eAAe,EAAE;AACvE;AAEA,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,OAAgB,EAAE,cAAsB,KAA0B;IAC/G,MAAM,UAAU,GACd,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,KAAI;QACxB,OAAO,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE;IACvG,CAAC,CAAC,IAAI,EAAE;;;;IAKV,MAAM,iBAAiB,GACrB,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE;IAE3G,MAAM,cAAc,GAClB,cAAc,IAAI,CAAC,iBAAiB,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC;IAE9G,OAAO,MAAM,CAAC,cAAc,EAAE,YAAY,OAAO,CAAA,CAAA,CAAG,CAAC;AACvD,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenFromZapList.js","sources":["../../src/hooks/useTokenFromZapList.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { zapInputTokens } from '
|
|
1
|
+
{"version":3,"file":"useTokenFromZapList.js","sources":["../../src/hooks/useTokenFromZapList.ts"],"sourcesContent":["import { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { zapInputTokens } from '@ape.swap/apeswap-lists'\n\nconst useTokenFromZapList = (\n tokenString?: string,\n chainId?: ChainId,\n principalToken?: Token,\n): Token | 'NATIVE' | undefined => {\n if (tokenString === 'NATIVE') return 'NATIVE'\n if (!tokenString || !chainId) return undefined\n const zapList = principalToken ? [...(zapInputTokens[chainId] ?? []), principalToken] : zapInputTokens[chainId]\n return zapList?.find((token: Token) => token.address[chainId]?.toLowerCase() === tokenString?.toLowerCase())\n}\n\nexport default useTokenFromZapList\n"],"names":[],"mappings":";;AAGA,MAAM,mBAAmB,GAAG,CAC1B,WAAoB,EACpB,OAAiB,EACjB,cAAsB,KACU;IAChC,IAAI,WAAW,KAAK,QAAQ;AAAE,QAAA,OAAO,QAAQ;AAC7C,IAAA,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,SAAS;IAC9C,MAAM,OAAO,GAAG,cAAc,GAAG,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/G,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,CAAC;AAC9G;;;;"}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
1
|
import { Token } from '@ape.swap/apeswap-lists';
|
|
3
|
-
export default function useCurrencyBalanceSolana(currency: 'NATIVE' | Token | null, account: string | null): UseQueryResult<string | null>;
|
|
4
2
|
export declare const getTokenBalanceSolana: (currency: "NATIVE" | Token | null, account: string | null) => Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrencyBalanceSolana.js","sources":["../../../src/state/balance/useCurrencyBalanceSolana.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useCurrencyBalanceSolana.js","sources":["../../../src/state/balance/useCurrencyBalanceSolana.ts"],"sourcesContent":["import { Connection, PublicKey } from '@solana/web3.js'\nimport { getAccount } from '@solana/spl-token'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport BigNumber from 'bignumber.js'\nimport { getRPC } from '../../config/constants/networks'\nimport { getTokenProgramForMint } from '../../utils/solanaAtaHelper'\nimport { getAssociatedTokenAddress } from '@solana/spl-token'\n\n// Use devnet or your custom cluster URL\nexport const getTokenBalanceSolana = async (\n currency: 'NATIVE' | Token | null,\n account: string | null,\n): Promise<string | null> => {\n if (!account || !currency) return null\n\n const connection = new Connection(getRPC(ChainId.SOL), 'confirmed')\n const userPubkey = new PublicKey(account)\n\n try {\n if (currency === 'NATIVE') {\n const lamports = await connection.getBalance(userPubkey)\n const sol = new BigNumber(lamports).dividedBy(1e9)\n return sol.toString()\n } else {\n const mint = new PublicKey(currency?.address?.[ChainId.SOL] as string)\n // Detect token program to get correct ATA (supports Token-2022)\n const tokenProgram = await getTokenProgramForMint(connection, mint)\n const ata = await getAssociatedTokenAddress(mint, userPubkey, true, tokenProgram)\n if (!ata) return '0'\n const tokenAccount = await getAccount(connection, ata, undefined, tokenProgram)\n const amount = new BigNumber(tokenAccount.amount.toString()).dividedBy(\n new BigNumber(10).pow(currency?.decimals?.[ChainId.SOL] as number),\n )\n return amount.toString()\n }\n } catch {\n // If account doesn't exist (e.g. never received that token)\n return '0'\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQA;AACO,MAAM,qBAAqB,GAAG,OACnC,QAAiC,EACjC,OAAsB,KACI;AAC1B,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI;AAEtC,IAAA,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;AACnE,IAAA,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC;AAEzC,IAAA,IAAI;AACF,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;AACxD,YAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AAClD,YAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;QACvB;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAW,CAAC;;YAEtE,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC;AACnE,YAAA,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC;AACjF,YAAA,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,GAAG;AACpB,YAAA,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC;AAC/E,YAAA,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CACpE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAW,CAAC,CACnE;AACD,YAAA,OAAO,MAAM,CAAC,QAAQ,EAAE;QAC1B;IACF;AAAE,IAAA,MAAM;;AAEN,QAAA,OAAO,GAAG;IACZ;AACF;;;;"}
|
|
@@ -21,5 +21,4 @@ export interface BondApiStats {
|
|
|
21
21
|
valueRemaining: number;
|
|
22
22
|
Sales: Sales[];
|
|
23
23
|
}
|
|
24
|
-
export declare const getBondApiStats: (contractAddress?: string) => Promise<BondApiStats>;
|
|
25
24
|
export default function useGetBondApiStats(contractAddress?: string): import("@tanstack/react-query").UseQueryResult<BondApiStats, Error>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetBondApiStats.js","sources":["../../../src/state/bondApiStats/useGetBondApiStats.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\n\nexport interface Sales {\n billNftId: number\n chainId: number\n contractAddress: string\n createdAddressOwner: string\n createdAt: number\n deposit: number\n dollarValue: number\n lp: string\n payout: number\n payoutToken: string\n payoutTokenPrice: number\n referenceId: string\n transactionHash: string\n vestingTime: number\n}\n\nexport interface BondApiStats {\n ROE: string\n percentageSold: number\n totalDollarValue: number\n valueRemaining: number\n Sales: Sales[]\n}\n\
|
|
1
|
+
{"version":3,"file":"useGetBondApiStats.js","sources":["../../../src/state/bondApiStats/useGetBondApiStats.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\n\nexport interface Sales {\n billNftId: number\n chainId: number\n contractAddress: string\n createdAddressOwner: string\n createdAt: number\n deposit: number\n dollarValue: number\n lp: string\n payout: number\n payoutToken: string\n payoutTokenPrice: number\n referenceId: string\n transactionHash: string\n vestingTime: number\n}\n\nexport interface BondApiStats {\n ROE: string\n percentageSold: number\n totalDollarValue: number\n valueRemaining: number\n Sales: Sales[]\n}\n\nconst getBondApiStats = async (contractAddress?: string): Promise<BondApiStats> => {\n const { data } = await axios.get(`https://api.ape.bond/collector/salesInfo/bond/${contractAddress}/0`)\n return data\n}\n\nexport default function useGetBondApiStats(contractAddress?: string) {\n return useQuery({\n queryKey: [`${QUERY_KEYS.BOND_API_STATS}-${contractAddress}`],\n queryFn: () => getBondApiStats(contractAddress),\n refetchInterval: 300000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n retry: 1,\n })\n}\n"],"names":[],"mappings":";;;;AA6BA,MAAM,eAAe,GAAG,OAAO,eAAwB,KAA2B;AAChF,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,8CAAA,EAAiD,eAAe,CAAA,EAAA,CAAI,CAAC;AACtG,IAAA,OAAO,IAAI;AACb,CAAC;AAEa,SAAU,kBAAkB,CAAC,eAAwB,EAAA;AACjE,IAAA,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,CAAA,EAAG,UAAU,CAAC,cAAc,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;AAC7D,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,eAAe,CAAC;AAC/C,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UserOwnedBillsData } from '../../../types/yourbonds';
|
|
2
2
|
import { BillsConfig, ChainId } from '@ape.swap/apeswap-lists';
|
|
3
3
|
import { TokenPrices } from '../../tokenPrices/useTokenPrices';
|
|
4
4
|
export declare const fetchUsersBondsEVM: (chainId: ChainId, account: string, bondData: BillsConfig[], tokenPrices: Partial<Record<ChainId, TokenPrices[]>>) => Promise<UserOwnedBillsData[]>;
|
|
5
|
-
export declare const fetchUserOwnedBills: (chainId: ChainId, account: string, bonds: BillsConfig[], tokenPrices: Partial<Record<ChainId, TokenPrices[]>>) => Promise<UserBill[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUsersBondsEVM.js","sources":["../../../../src/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.ts"],"sourcesContent":["import billAbi from '../../../config/abi/BOND_2_0_0.json'\nimport BigNumber from 'bignumber.js'\nimport multicall from '../../../utils/multicall'\nimport { UserBill, UserOwnedBillsData } from '../../../types/yourbonds'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { BondsData } from '../../../types/bonds'\nimport axios from 'axios'\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\nexport const 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 axios.get(\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.data.price)\n principalTokenPrice = parseFloat(res.data.price ?? '0')\n } catch {\n principalTokenPrice = 0\n }\n }\n if (payoutTokenPrice === undefined) {\n try {\n const res = await axios.get(\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.data.price)\n payoutTokenPrice = parseFloat(res.data.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: new BigNumber(billData[billPos][0]?.payout.toString())\n .minus(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
|
+
{"version":3,"file":"fetchUsersBondsEVM.js","sources":["../../../../src/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.ts"],"sourcesContent":["import billAbi from '../../../config/abi/BOND_2_0_0.json'\nimport BigNumber from 'bignumber.js'\nimport multicall from '../../../utils/multicall'\nimport { UserBill, UserOwnedBillsData } from '../../../types/yourbonds'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../../tokenPrices/useTokenPrices'\nimport { BondsData } from '../../../types/bonds'\nimport axios from 'axios'\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 axios.get(\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.data.price)\n principalTokenPrice = parseFloat(res.data.price ?? '0')\n } catch {\n principalTokenPrice = 0\n }\n }\n if (payoutTokenPrice === undefined) {\n try {\n const res = await axios.get(\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.data.price)\n payoutTokenPrice = parseFloat(res.data.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: new BigNumber(billData[billPos][0]?.payout.toString())\n .minus(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,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
2
|
import { BillsConfig, ChainId } from '@ape.swap/apeswap-lists';
|
|
3
3
|
export default function useBondsList(): UseQueryResult<Record<ChainId, BillsConfig[]>>;
|
|
4
|
-
export declare const getBondsList: (queryClient: QueryClient) => Promise<Record<ChainId, BillsConfig[]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBondsList.js","sources":["../../../src/state/bonds/useBondsList.ts"],"sourcesContent":["import { QueryClient, useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { SDKProps } from '../useSDKConfig'\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\n\nexport default function useBondsList(): UseQueryResult<Record<ChainId, BillsConfig[]>> {\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST],\n queryFn: ({ client }) => getBondsList(client),\n staleTime: Infinity,\n refetchInterval: 600000, // 10 min\n refetchOnWindowFocus: false,\n })\n}\n\
|
|
1
|
+
{"version":3,"file":"useBondsList.js","sources":["../../../src/state/bonds/useBondsList.ts"],"sourcesContent":["import { QueryClient, useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { SDKProps } from '../useSDKConfig'\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\n\nexport default function useBondsList(): UseQueryResult<Record<ChainId, BillsConfig[]>> {\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST],\n queryFn: ({ client }) => getBondsList(client),\n staleTime: Infinity,\n refetchInterval: 600000, // 10 min\n refetchOnWindowFocus: false,\n })\n}\n\nconst getBondsList = async (queryClient: QueryClient): Promise<Record<ChainId, BillsConfig[]>> => {\n const { urls, customBranch, chains } = queryClient?.getQueryData([QUERY_KEYS.SDK_CONFIG]) as SDKProps\n const realTimeApiURL = urls['realTimeApi']\n\n const response = await axios.get(`${realTimeApiURL}/utils/bonds${customBranch ? `?branch=${customBranch}` : ''}`)\n const bondList: BillsConfig[] = response.data\n return bondList.reduce(\n (acc, bond) => {\n // Exclude ACF to ABOND bonds, fixed price bonds, and migration bonds\n if (\n bond.contractAddress[bond.chainId]?.toLowerCase() === ACF_TO_ABOND.toLowerCase() ||\n bond.billVersion === BillVersion.FixedPrice ||\n bond.billType === 'migration'\n ) {\n return acc\n }\n\n // Only process bonds that belong to the chains selected by the user\n if (chains.includes(bond.chainId)) {\n // Initialize acc[bond.chainId] if it doesn't exist yet\n if (!acc[bond.chainId]) {\n acc[bond.chainId] = []\n }\n\n // Safely push the bond to the array\n acc[bond.chainId].push(bond)\n }\n return acc\n },\n {} as Record<number, BillsConfig[]>,\n )\n}\n"],"names":[],"mappings":";;;;;;AAOc,SAAU,YAAY,GAAA;AAClC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,YAAY,CAAC,MAAM,CAAC;AAC7C,QAAA,SAAS,EAAE,QAAQ;QACnB,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC5B,KAAA,CAAC;AACJ;AAEA,MAAM,YAAY,GAAG,OAAO,WAAwB,KAA6C;AAC/F,IAAA,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAa;AACrG,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,cAAc,CAAA,YAAA,EAAe,YAAY,GAAG,CAAA,QAAA,EAAW,YAAY,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CAAC;AACjH,IAAA,MAAM,QAAQ,GAAkB,QAAQ,CAAC,IAAI;IAC7C,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,GAAG,EAAE,IAAI,KAAI;;AAEZ,QAAA,IACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;AAChF,YAAA,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU;AAC3C,YAAA,IAAI,CAAC,QAAQ,KAAK,WAAW,EAC7B;AACA,YAAA,OAAO,GAAG;QACZ;;QAGA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;YAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtB,gBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB;;YAGA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B;AACA,QAAA,OAAO,GAAG;IACZ,CAAC,EACD,EAAmC,CACpC;AACH,CAAC;;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
2
|
import { PreTGEConfig } from '@ape.swap/apeswap-lists';
|
|
3
3
|
export default function useBondsListPreTGE(): UseQueryResult<PreTGEConfig[]>;
|
|
4
|
-
export declare const getPreTGEList: (queryClient: QueryClient) => Promise<PreTGEConfig[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBondsListPreTGE.js","sources":["../../../src/state/bonds/useBondsListPreTGE.ts"],"sourcesContent":["import { QueryClient, useQuery, useQueryClient, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { SDKProps } from '../useSDKConfig'\n\nexport default function useBondsListPreTGE(): UseQueryResult<PreTGEConfig[]> {\n const queryClient = useQueryClient()\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST_PRE_TGE],\n queryFn: () => getPreTGEList(queryClient),\n staleTime: Infinity,\n refetchInterval: 300000, // 5 min\n refetchOnWindowFocus: false,\n })\n}\n\
|
|
1
|
+
{"version":3,"file":"useBondsListPreTGE.js","sources":["../../../src/state/bonds/useBondsListPreTGE.ts"],"sourcesContent":["import { QueryClient, useQuery, useQueryClient, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { SDKProps } from '../useSDKConfig'\n\nexport default function useBondsListPreTGE(): UseQueryResult<PreTGEConfig[]> {\n const queryClient = useQueryClient()\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST_PRE_TGE],\n queryFn: () => getPreTGEList(queryClient),\n staleTime: Infinity,\n refetchInterval: 300000, // 5 min\n refetchOnWindowFocus: false,\n })\n}\n\nconst getPreTGEList = async (queryClient: QueryClient): Promise<PreTGEConfig[]> => {\n const { urls, customBranch } = queryClient?.getQueryData([QUERY_KEYS.SDK_CONFIG]) as SDKProps\n const realTimeApiURL = urls['realTimeApi']\n const response = await axios.get(\n `${realTimeApiURL}/utils/pre-tge-bonds${customBranch ? `?branch=${customBranch}` : ''}`,\n )\n return response.data\n}\n"],"names":[],"mappings":";;;;AAMc,SAAU,kBAAkB,GAAA;AACxC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;AACzC,QAAA,OAAO,EAAE,MAAM,aAAa,CAAC,WAAW,CAAC;AACzC,QAAA,SAAS,EAAE,QAAQ;QACnB,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC5B,KAAA,CAAC;AACJ;AAEA,MAAM,aAAa,GAAG,OAAO,WAAwB,KAA6B;AAChF,IAAA,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAa;AAC7F,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,CAAA,EAAG,cAAc,CAAA,oBAAA,EAAuB,YAAY,GAAG,CAAA,QAAA,EAAW,YAAY,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CACxF;IACD,OAAO,QAAQ,CAAC,IAAI;AACtB,CAAC;;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
2
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
3
3
|
export default function useTierProofSignature(bondAddress?: string, chainId?: ChainId, isUserRestricted?: boolean): UseQueryResult<string | null>;
|
|
4
|
-
export declare const getTierProofSig: (apiAddress: string, account: string, bondAddress: string, chainId: ChainId) => Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTierProofSignature.js","sources":["../../../src/state/bonds/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\
|
|
1
|
+
{"version":3,"file":"useTierProofSignature.js","sources":["../../../src/state/bonds/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\nconst getTierProofSig = async (\n apiAddress: string,\n account: string,\n bondAddress: string,\n chainId: ChainId,\n): Promise<string | null> => {\n try {\n const requestBody = {\n user: account, // Use the account as the \"user\" parameter\n bond: bondAddress, // Use the bondAddress\n chainId: chainId, // Use the specified chainId (Polygon)\n }\n\n const response = await axios.post(`${apiAddress}/tier-signature`, requestBody)\n return response.data.tierProofSignature\n } catch (e) {\n reportError({\n apiUrl: apiAddress,\n error: e,\n extraInfo: { type: 'getTierProofSig', bondAddress, e },\n chainId,\n account,\n })\n return null\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQc,SAAU,qBAAqB,CAC3C,WAAoB,EACpB,OAAiB,EACjB,gBAA0B,EAAA;IAE1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AAC5C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;AAEzC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACtF,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU,EAAE,OAAQ,EAAE,WAAY,EAAE,OAAQ,CAAC;AAC5E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,gBAAgB;AAC5G,KAAA,CAAC;AACJ;AAEA,MAAM,eAAe,GAAG,OACtB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAgB,KACU;AAC1B,IAAA,IAAI;AACF,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;AAED,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,EAAE,WAAW,CAAC;AAC9E,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB;IACzC;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;AACV,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,EAAE;YACtD,OAAO;YACP,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AACF,CAAC;;;;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
|
-
import {
|
|
2
|
+
import { PreTGEConfig } from '@ape.swap/apeswap-lists';
|
|
3
3
|
import { UserBill } from '../../types/yourbonds';
|
|
4
|
-
import { TokenPrices } from '../tokenPrices/useTokenPrices';
|
|
5
4
|
import { YieldData } from '../../types/bonds';
|
|
6
|
-
|
|
5
|
+
interface AccountInfo {
|
|
7
6
|
hasRedeemed: boolean;
|
|
8
7
|
hasRefunded?: boolean;
|
|
9
8
|
payout: string;
|
|
@@ -26,4 +25,4 @@ export interface PreTGEUserBonds extends PreTGEConfig {
|
|
|
26
25
|
endTime?: number;
|
|
27
26
|
}
|
|
28
27
|
export default function useUserBondsPreTGE(): UseQueryResult<PreTGEUserBonds[]>;
|
|
29
|
-
export
|
|
28
|
+
export {};
|
|
@@ -222,5 +222,5 @@ const fetchPreTGEUserBonds = async (chains, tokenPrices, preTGEList, account, ap
|
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
224
|
|
|
225
|
-
export { useUserBondsPreTGE as default
|
|
225
|
+
export { useUserBondsPreTGE as default };
|
|
226
226
|
//# sourceMappingURL=useUserBondsPreTGE.js.map
|