@ape.swap/bonds-sdk 5.1.49-test.5 → 5.1.50
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/TokenSelectorModal/TokenRow.d.ts +2 -1
- package/dist/components/TokenSelectorModal/TokenRow.js +2 -8
- package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
- package/dist/components/TokenSelectorModal/index.d.ts +1 -0
- package/dist/components/TokenSelectorModal/index.js +2 -2
- package/dist/components/TokenSelectorModal/index.js.map +1 -1
- package/dist/components/TokenSelectorPanel/index.d.ts +2 -1
- package/dist/components/TokenSelectorPanel/index.js +2 -2
- package/dist/components/TokenSelectorPanel/index.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/APTOS.js.map +1 -1
- package/dist/config/constants/networks.js +1 -2
- package/dist/config/constants/networks.js.map +1 -1
- package/dist/config/constants/suiZapTokens.d.ts +2 -10
- package/dist/config/constants/suiZapTokens.js +9 -26
- package/dist/config/constants/suiZapTokens.js.map +1 -1
- package/dist/config/constants/tokens.js +0 -12
- package/dist/config/constants/tokens.js.map +1 -1
- package/dist/config/constants/tooltips.js.map +1 -1
- package/dist/constants/suiConstants.d.ts +0 -1
- package/dist/constants/suiConstants.js +1 -7
- package/dist/constants/suiConstants.js.map +1 -1
- package/dist/hooks/useMonitorTx.js.map +1 -1
- package/dist/hooks/useSortedZapList.js +1 -3
- package/dist/hooks/useSortedZapList.js.map +1 -1
- package/dist/state/bonds/fetchBillsUserAptos.js +2 -2
- package/dist/state/bonds/fetchBillsUserAptos.js.map +1 -1
- package/dist/state/bonds/fetchBillsUserSui.js +3 -5
- package/dist/state/bonds/fetchBillsUserSui.js.map +1 -1
- package/dist/state/bonds/fetchBondsDataSui.js +9 -11
- package/dist/state/bonds/fetchBondsDataSui.js.map +1 -1
- package/dist/state/bonds/useUserBonds.js.map +1 -1
- package/dist/state/zap/useSuiZapQuote.d.ts +2 -2
- package/dist/state/zap/useSuiZapQuote.js +2 -2
- package/dist/state/zap/useSuiZapQuote.js.map +1 -1
- package/dist/utils/aptosHelpers.js.map +1 -1
- package/dist/utils/suiHelpers.js +3 -2
- package/dist/utils/suiHelpers.js.map +1 -1
- package/dist/views/BuyBond/BuyComponent.js +1 -1
- package/dist/views/BuyBond/BuyComponent.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.js +1 -1
- package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentPreTGE.js +1 -1
- package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.js +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSui.js +1 -36
- package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
- package/dist/views/BuyBond/components/Estimations.js +6 -7
- package/dist/views/BuyBond/components/Estimations.js.map +1 -1
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +2 -1
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/YourBonds/YourBonds.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js +0 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js.map +1 -1
- package/package.json +2 -2
- package/dist/state/bonds/useBondNFTData.d.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YourBonds.js","sources":["../../../src/views/YourBonds/YourBonds.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react'\nimport { Flex, Spinner } from 'theme-ui'\nimport { UserBill } from '../../types/yourbonds'\nimport { claimableUSD, pendingUSD, getTimeLeftForFullyVested } from '../../utils/displayHelpers'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport PlaceholderMonkey from '../../components/PlaceholderMonkey'\nimport useChainFilterOption from '../../state/chainFilterOption/useChainFilterOption'\nimport YourBondsMenu from './components/YourBondsMenu/YourBondsMenu'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport ConnectToSolanaBanner from '../../components/ConnectoToVmBanners/ConnectToSolanaBanner'\nimport ConnectToEVMBanner from '../../components/ConnectoToVmBanners/ConnectToEvmBanner'\nimport ConnectToAptosBanner from '../../components/ConnectoToVmBanners/ConnectToAptosBanner'\nimport ConnectToSuiBanner from '../../components/ConnectoToVmBanners/ConnectToSuiBanner'\nimport {\n UserBondRowPreTGE,\n UserBondRowSolana,\n UserBondRowAptos,\n UserBondRowSui,\n UserBondRow,\n} from './components/UserBondRow'\nimport useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport useBondsData from '../../state/bonds/useBondsData'\n\ntype SortDirection = 'asc' | 'desc'\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n useBondsData()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useEVMAccount()\n const { publicKey: solanaAccount } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds, isFetched: preTGEFetched } = useUserBondsPreTGE()\n const hasFetched = userBondsFetched && (preTGEFetched || !account)\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'claimable',\n direction: 'desc',\n })\n\n const [inputValue, setInputValue] = useState('')\n const filterOptions = ['CLAIMABLE', 'ALL']\n const [filterOption, setFilterOption] = useState(filterOptions[0])\n\n const preTGEBondsToRender = preTGEUserBonds\n ?.filter((userBond) => {\n if (!userBond?.accountInfo?.hasRedeemed) {\n return parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0\n } else {\n return userBond?.userOwnedBillsData?.payout !== '0'\n }\n })\n .filter(\n (userBond) =>\n chainFilterOption.includes(userBond.chainId?.toString() ?? '') || chainFilterOption.includes('All Chains'),\n )\n .filter((userBond) => userBond.earnToken.symbol?.toLowerCase().includes(inputValue.toLowerCase()))\n\n const handleSort = (key: SortableKeys) => {\n let direction: SortDirection = 'desc'\n if (sortConfig?.key === key && sortConfig?.direction === 'desc') {\n direction = 'asc'\n }\n setSortConfig({ key, direction })\n }\n\n const bondsToRender = useMemo((): UserBill[] => {\n if (!userBonds) return []\n let bondsToReturn = userBonds\n\n // Handle Filtering //\n\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.onlyPartner ? bond.bond.bondPartner === SDKConfig.bondPartner : true\n })\n\n if (SDKConfig.bondPartner) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.bondPartner === SDKConfig.bondPartner\n })\n }\n\n // Filter Single Token View\n if (showOnly) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond?.bond?.earnToken?.symbol?.toLowerCase() === showOnly.toLowerCase()\n })\n }\n\n // Filter by search query\n if (inputValue !== '') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return [\n bond?.bond?.showcaseTokenName?.toLowerCase(),\n bond?.bond?.earnToken?.symbol?.toLowerCase(),\n bond?.bond?.lpToken?.symbol?.toLowerCase(),\n ].some((property) => property?.includes(inputValue.toLowerCase()))\n })\n }\n\n // Filter by chain selector\n if (!chainFilterOption.includes('All Chains')) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return chainFilterOption.includes(bond?.bond?.chainId?.toString() ?? '')\n })\n }\n\n // Filter by filter option (claimable or all buttons)\n if (filterOption === 'CLAIMABLE') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n if (bond?.bond?.vestingCliff) {\n return bond.payout !== '0'\n }\n return bond.pendingRewards !== '0'\n })\n }\n\n // Handle sorting //\n if (sortConfig !== null) {\n bondsToReturn = bondsToReturn?.sort((a, b) => {\n let aValue: number, bValue: number\n\n if (sortConfig.key === 'claimable') {\n aValue = claimableUSD(a)\n bValue = claimableUSD(b)\n } else if (sortConfig.key === 'pending') {\n aValue = pendingUSD(a)\n bValue = pendingUSD(b)\n } else if (sortConfig.key === 'terms') {\n // little nasty trick to have the lowest time (closest to being fully vested) show up first when sorting ascending\n const aRemainingTime = getTimeLeftForFullyVested(b)\n const bRemainingTime = getTimeLeftForFullyVested(a)\n\n aValue = aRemainingTime\n bValue = bRemainingTime\n } else {\n aValue = a[sortConfig.key]\n bValue = b[sortConfig.key]\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n }\n return bondsToReturn\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [userBonds, sortConfig, inputValue, chainFilterOption, filterOption, userBondsFetched])\n\n const handleFilterOption = useCallback((newOption: string) => {\n setFilterOption(newOption)\n }, [])\n\n const hasBonds = useMemo(() => {\n return (bondsToRender && bondsToRender.length > 0) || !!preTGEBondsToRender?.length\n }, [bondsToRender, preTGEBondsToRender])\n\n return (\n <Flex className=\"yourbonds table-container\">\n {!showOnly && (\n <YourBondsMenu\n chainFilterOption={chainFilterOption}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={handleFilterOption}\n setInputValue={setInputValue}\n inputValue={inputValue}\n handleSort={handleSort}\n />\n )}\n {!account && !solanaAccount && !aptosAccount && !suiAccount ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey text={'You are not connected.'} />\n </Flex>\n ) : hasBonds && hasFetched ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => (\n <UserBondRowPreTGE userBond={userBond} key={index} />\n ))}\n {bondsToRender.map((bond) => {\n if (bond.bond?.chainId === ChainId.SOL)\n return <UserBondRowSolana bill={bond} key={`${bond?.billNftAddress}-${bond.id}`} />\n if (bond.bond?.chainId === ChainId.APTOS)\n return <UserBondRowAptos bill={bond} key={`aptos-${bond?.id}`} />\n if (bond.bond?.chainId === ChainId.SUI)\n return <UserBondRowSui bill={bond} key={`sui-${bond?.id}`} />\n return <UserBondRow bill={bond} key={`${bond?.id}-${bond?.billNftAddress}`} />\n })}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey text={'No results, change filters.'} />\n </Flex>\n ) : hasFetched && !hasBonds ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey\n text={`You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.`}\n />\n </Flex>\n ) : (\n <Flex className=\"placeholder-monkey-wrapper\">\n <Spinner size={100} />\n </Flex>\n )}\n <Flex\n sx={{\n width: '100%',\n flexDirection: ['column', 'column', 'column', 'column', 'column', 'row'],\n gap: '10px',\n my: '10px',\n }}\n >\n {!solanaAccount && SDKConfig.chains?.includes(ChainId.SOL) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToSolanaBanner />\n </Flex>\n )}\n {!aptosAccount && SDKConfig.chains?.includes(ChainId.APTOS) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToAptosBanner />\n </Flex>\n )}\n {!suiAccount && SDKConfig.chains?.includes(ChainId.SUI) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToSuiBanner />\n </Flex>\n )}\n {!account && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToEVMBanner />\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["_jsxs","_jsx","_Fragment","ConnectToSolanaBanner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YourBonds.js","sources":["../../../src/views/YourBonds/YourBonds.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react'\nimport { Flex, Spinner } from 'theme-ui'\nimport { UserBill } from '../../types/yourbonds'\nimport { claimableUSD, pendingUSD, getTimeLeftForFullyVested } from '../../utils/displayHelpers'\nimport useUserBonds from '../../state/bonds/useUserBonds'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport PlaceholderMonkey from '../../components/PlaceholderMonkey'\nimport useChainFilterOption from '../../state/chainFilterOption/useChainFilterOption'\nimport YourBondsMenu from './components/YourBondsMenu/YourBondsMenu'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport ConnectToSolanaBanner from '../../components/ConnectoToVmBanners/ConnectToSolanaBanner'\nimport ConnectToEVMBanner from '../../components/ConnectoToVmBanners/ConnectToEvmBanner'\nimport ConnectToAptosBanner from '../../components/ConnectoToVmBanners/ConnectToAptosBanner'\nimport ConnectToSuiBanner from '../../components/ConnectoToVmBanners/ConnectToSuiBanner'\nimport {\n UserBondRowPreTGE,\n UserBondRowSolana,\n UserBondRowAptos,\n UserBondRowSui,\n UserBondRow,\n} from './components/UserBondRow'\nimport useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../hooks/accounts/useSUIAccount'\nimport useBondsData from '../../state/bonds/useBondsData'\n\ntype SortDirection = 'asc' | 'desc'\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n useBondsData()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useEVMAccount()\n const { publicKey: solanaAccount } = useSOLAccount()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds, isFetched: preTGEFetched } = useUserBondsPreTGE()\n const hasFetched = userBondsFetched && (preTGEFetched || !account)\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'claimable',\n direction: 'desc',\n })\n\n const [inputValue, setInputValue] = useState('')\n const filterOptions = ['CLAIMABLE', 'ALL']\n const [filterOption, setFilterOption] = useState(filterOptions[0])\n\n const preTGEBondsToRender = preTGEUserBonds\n ?.filter((userBond) => {\n if (!userBond?.accountInfo?.hasRedeemed) {\n return parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0\n } else {\n return userBond?.userOwnedBillsData?.payout !== '0'\n }\n })\n .filter(\n (userBond) =>\n chainFilterOption.includes(userBond.chainId?.toString() ?? '') || chainFilterOption.includes('All Chains'),\n )\n .filter((userBond) => userBond.earnToken.symbol?.toLowerCase().includes(inputValue.toLowerCase()))\n\n const handleSort = (key: SortableKeys) => {\n let direction: SortDirection = 'desc'\n if (sortConfig?.key === key && sortConfig?.direction === 'desc') {\n direction = 'asc'\n }\n setSortConfig({ key, direction })\n }\n\n const bondsToRender = useMemo((): UserBill[] => {\n if (!userBonds) return []\n let bondsToReturn = userBonds\n\n // Handle Filtering //\n\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.onlyPartner ? bond.bond.bondPartner === SDKConfig.bondPartner : true\n })\n\n if (SDKConfig.bondPartner) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond.bond?.bondPartner === SDKConfig.bondPartner\n })\n }\n\n // Filter Single Token View\n if (showOnly) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return bond?.bond?.earnToken?.symbol?.toLowerCase() === showOnly.toLowerCase()\n })\n }\n\n // Filter by search query\n if (inputValue !== '') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return [\n bond?.bond?.showcaseTokenName?.toLowerCase(),\n bond?.bond?.earnToken?.symbol?.toLowerCase(),\n bond?.bond?.lpToken?.symbol?.toLowerCase(),\n ].some((property) => property?.includes(inputValue.toLowerCase()))\n })\n }\n\n // Filter by chain selector\n if (!chainFilterOption.includes('All Chains')) {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n return chainFilterOption.includes(bond?.bond?.chainId?.toString() ?? '')\n })\n }\n\n // Filter by filter option (claimable or all buttons)\n if (filterOption === 'CLAIMABLE') {\n bondsToReturn = bondsToReturn?.filter((bond) => {\n if (bond?.bond?.vestingCliff) {\n return bond.payout !== '0'\n }\n return bond.pendingRewards !== '0'\n })\n }\n\n // Handle sorting //\n if (sortConfig !== null) {\n bondsToReturn = bondsToReturn?.sort((a, b) => {\n let aValue: number, bValue: number\n\n if (sortConfig.key === 'claimable') {\n aValue = claimableUSD(a)\n bValue = claimableUSD(b)\n } else if (sortConfig.key === 'pending') {\n aValue = pendingUSD(a)\n bValue = pendingUSD(b)\n } else if (sortConfig.key === 'terms') {\n // little nasty trick to have the lowest time (closest to being fully vested) show up first when sorting ascending\n const aRemainingTime = getTimeLeftForFullyVested(b)\n const bRemainingTime = getTimeLeftForFullyVested(a)\n\n aValue = aRemainingTime\n bValue = bRemainingTime\n } else {\n aValue = a[sortConfig.key]\n bValue = b[sortConfig.key]\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n }\n return bondsToReturn\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [userBonds, sortConfig, inputValue, chainFilterOption, filterOption, userBondsFetched])\n\n const handleFilterOption = useCallback((newOption: string) => {\n setFilterOption(newOption)\n }, [])\n\n const hasBonds = useMemo(() => {\n return (bondsToRender && bondsToRender.length > 0) || !!preTGEBondsToRender?.length\n }, [bondsToRender, preTGEBondsToRender])\n\n return (\n <Flex className=\"yourbonds table-container\">\n {!showOnly && (\n <YourBondsMenu\n chainFilterOption={chainFilterOption}\n setChainFilterOption={setChainFilterOption}\n filterOptions={filterOptions}\n filterOption={filterOption}\n setFilterOption={handleFilterOption}\n setInputValue={setInputValue}\n inputValue={inputValue}\n handleSort={handleSort}\n />\n )}\n {!account && !solanaAccount && !aptosAccount && !suiAccount ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey text={'You are not connected.'} />\n </Flex>\n ) : hasBonds && hasFetched ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => (\n <UserBondRowPreTGE userBond={userBond} key={index} />\n ))}\n {bondsToRender.map((bond) => {\n if (bond.bond?.chainId === ChainId.SOL)\n return <UserBondRowSolana bill={bond} key={`${bond?.billNftAddress}-${bond.id}`} />\n if (bond.bond?.chainId === ChainId.APTOS) return <UserBondRowAptos bill={bond} key={`aptos-${bond?.id}`} />\n if (bond.bond?.chainId === ChainId.SUI) return <UserBondRowSui bill={bond} key={`sui-${bond?.id}`} />\n return <UserBondRow bill={bond} key={`${bond?.id}-${bond?.billNftAddress}`} />\n })}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey text={'No results, change filters.'} />\n </Flex>\n ) : hasFetched && !hasBonds ? (\n <Flex className=\"placeholder-monkey-wrapper\">\n <PlaceholderMonkey\n text={`You do not own any ${[account && 'EVM', solanaAccount && 'SOL', aptosAccount && 'Aptos', suiAccount && 'Sui'].filter(Boolean).join(' nor ') || 'EVM'} Bonds.`}\n />\n </Flex>\n ) : (\n <Flex className=\"placeholder-monkey-wrapper\">\n <Spinner size={100} />\n </Flex>\n )}\n <Flex\n sx={{\n width: '100%',\n flexDirection: ['column', 'column', 'column', 'column', 'column', 'row'],\n gap: '10px',\n my: '10px',\n }}\n >\n {!solanaAccount && SDKConfig.chains?.includes(ChainId.SOL) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToSolanaBanner />\n </Flex>\n )}\n {!aptosAccount && SDKConfig.chains?.includes(ChainId.APTOS) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToAptosBanner />\n </Flex>\n )}\n {!suiAccount && SDKConfig.chains?.includes(ChainId.SUI) && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToSuiBanner />\n </Flex>\n )}\n {!account && (\n <Flex sx={{ width: '100%', mt: '5px' }}>\n <ConnectToEVMBanner />\n </Flex>\n )}\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["_jsxs","_jsx","_Fragment","ConnectToSolanaBanner"],"mappings":"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"}
|
|
@@ -19,7 +19,6 @@ const TransferActionSui = ({ userBill, toAddress, disabled, onDismiss, }) => {
|
|
|
19
19
|
const { addToastError, addToastSuccess } = usePopups();
|
|
20
20
|
// State
|
|
21
21
|
const [loadingTx, setLoadingTx] = useState(false);
|
|
22
|
-
const [connectModalOpen, setConnectModalOpen] = useState(false);
|
|
23
22
|
const load = loadingTx;
|
|
24
23
|
const handleTransfer = async () => {
|
|
25
24
|
if (loadingTx || !suiAccount || !userBill || !signAndExecuteTransaction || !toAddress)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferActionSui.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/TransferActionSui.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Transaction } from '@mysten/sui/transactions'\nimport {
|
|
1
|
+
{"version":3,"file":"TransferActionSui.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/TransferActionSui.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nimport { UserBill } from '../../../../types/yourbonds'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { reportError } from '../../../../utils/reportError'\nimport { getSuiClient, verifySuiTxSuccess } from '../../../../utils/suiHelpers'\nimport useSUIAccount from '../../../../hooks/accounts/useSUIAccount'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../../../config/constants/queryKeys'\n\nconst TransferActionSui = ({\n userBill,\n toAddress,\n disabled,\n onDismiss,\n}: {\n userBill?: UserBill\n toAddress?: string\n disabled?: boolean\n onDismiss?: () => void\n}) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const queryClient = useQueryClient()\n const { address: suiAccount, signAndExecuteTransaction } = useSUIAccount()\n const { addToastError, addToastSuccess } = usePopups()\n\n // State\n const [loadingTx, setLoadingTx] = useState(false)\n\n const load = loadingTx\n\n const handleTransfer = async () => {\n if (loadingTx || !suiAccount || !userBill || !signAndExecuteTransaction || !toAddress) return\n\n try {\n setLoadingTx(true)\n\n // The BondNFT object ID is stored in `userBill.address`\n const nftObjectId = userBill?.address\n if (!nftObjectId) throw new Error('Missing bond NFT object ID')\n\n const tx = new Transaction()\n\n // Standard Sui PTB object transfer: move the NFT to the recipient\n tx.transferObjects([tx.object(nftObjectId)], tx.pure.address(toAddress))\n\n tx.setSender(suiAccount)\n tx.setGasBudget(10_000_000)\n\n // Pre-build so the wallet receives fully-resolved bytes\n const suiClient = getSuiClient()\n const builtBytes = await tx.build({ client: suiClient })\n const prebuiltTx = Transaction.from(builtBytes)\n\n const response = await signAndExecuteTransaction({ transaction: prebuiltTx })\n\n const digest = response?.digest\n if (!digest) throw new Error('No tx digest returned by wallet')\n\n await suiClient.waitForTransaction({ digest })\n await verifySuiTxSuccess(digest)\n\n await queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.USER_BONDS] })\n addToastSuccess(digest, ChainId.SUI)\n setTimeout(() => onDismiss?.(), 1500)\n } catch (error: any) {\n console.error('Sui transfer failed:', error)\n addToastError(error?.message ?? 'Unknown error')\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n account: suiAccount ?? '',\n chainId: ChainId.SUI,\n extraInfo: { type: 'suiTransfer', userBill, toAddress, error },\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <Button onClick={handleTransfer} load={load} disabled={load || disabled} fullWidth>\n transfer\n </Button>\n )\n}\n\nexport default TransferActionSui\n"],"names":["_jsx"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Ape Bond SDK",
|
|
4
4
|
"author": "Ape Bond",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "5.1.
|
|
6
|
+
"version": "5.1.50",
|
|
7
7
|
"module": "dist/main.js",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"types": "dist/main.d.ts",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"wagmi": "2.19.5"
|
|
154
154
|
},
|
|
155
155
|
"dependencies": {
|
|
156
|
-
"@ape.swap/apeswap-lists": "4.5.
|
|
156
|
+
"@ape.swap/apeswap-lists": "4.5.19",
|
|
157
157
|
"@emotion/react": "11.14.0",
|
|
158
158
|
"@jup-ag/api": "6.0.45",
|
|
159
159
|
"bignumber.js": "9.3.1",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
|
-
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
3
|
-
import { UserBillNftData } from '../../types/yourbonds';
|
|
4
|
-
/**
|
|
5
|
-
* @deprecated This hook is deprecated and will be removed in future releases. Do NOT use.
|
|
6
|
-
*/
|
|
7
|
-
export default function useBondNFTData(id?: string, billNftAddress?: string, chainId?: ChainId): UseQueryResult<UserBillNftData | null>;
|
|
8
|
-
export declare const getBondNFTData: (apiV2URL: string, id: string, billNftAddress: string, chainId: ChainId) => Promise<UserBillNftData | null>;
|