@ape.swap/bonds-sdk 3.3.0-test.6 → 3.3.0-test.8
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/uikit-sdk/Modal/styles.js +1 -1
- package/dist/components/uikit-sdk/Modal/styles.js.map +1 -1
- package/dist/components/uikit-sdk/Svg/tokens/ROBINHOOD.d.ts +4 -0
- package/dist/components/uikit-sdk/Svg/tokens/ROBINHOOD.js +9 -0
- package/dist/components/uikit-sdk/Svg/tokens/ROBINHOOD.js.map +1 -0
- package/dist/config/constants/addresses.d.ts +0 -1
- package/dist/config/constants/addresses.js +2 -17
- package/dist/config/constants/addresses.js.map +1 -1
- package/dist/config/constants/chains.js +5 -0
- package/dist/config/constants/chains.js.map +1 -1
- package/dist/config/constants/networks.js +1 -0
- package/dist/config/constants/networks.js.map +1 -1
- package/dist/config/constants/tokens.js +10 -11
- package/dist/config/constants/tokens.js.map +1 -1
- package/dist/config/constants/variables.js +1 -0
- package/dist/config/constants/variables.js.map +1 -1
- package/dist/state/bonds/useBondsData.js +3 -3
- package/dist/state/bonds/useBondsData.js.map +1 -1
- package/dist/state/bonds/useBondsList.d.ts +2 -2
- package/dist/state/bonds/useBondsList.js +6 -18
- package/dist/state/bonds/useBondsList.js.map +1 -1
- package/dist/state/bonds/utils.js +0 -2
- package/dist/state/bonds/utils.js.map +1 -1
- package/dist/state/useSDKConfig.d.ts +2 -0
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/state/zap/getChainParam.d.ts +2 -1
- package/dist/state/zap/getChainParam.js +4 -1
- package/dist/state/zap/getChainParam.js.map +1 -1
- package/dist/theme/base.js +1 -1
- package/dist/theme/base.js.map +1 -1
- package/dist/views/BuyBond/BuyBond.js +6 -3
- package/dist/views/BuyBond/BuyBond.js.map +1 -1
- package/dist/views/YourBonds/YourBonds.js +1 -1
- package/dist/views/YourBonds/YourBonds.js.map +1 -1
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/state/bonds/utils.ts"],"sourcesContent":["import { BondsData, TrueBondPrices } from '../../types/bonds'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { BillsConfig, BillVersion, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport multicall from '../../utils/multicall'\nimport launchBondsABI_V2_4_1 from '../../config/abi/launchBond_v2_4_1.json'\nimport BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../config/abi/erc20.json'\nimport { reportError } from '../../utils/reportError'\nimport BigNumber from 'bignumber.js'\nimport axios from 'axios'\nimport { TIER_MAPPING } from '../tiers/useTierPoints'\nimport { chunk } from 'lodash'\n\nexport const fetchBondsDataPreTGE = async (\n chain: number,\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEBonds: PreTGEConfig[],\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n if (!preTGEBonds?.length) return []\n const data = []\n const chainId = chain as ChainId\n\n const preTGEBondsIds: number[] = []\n const launchBondsCalls = preTGEBonds.flatMap((bond) => {\n preTGEBondsIds.push(bond.index)\n const bill = bond\n return [\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'trueBillPrice',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'totalPrincipalBilled',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'finalized',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'minPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'maxPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'startVestingTimestamp',\n },\n ]\n })\n const vals = await multicall(chainId, launchBondsABI_V2_4_1, launchBondsCalls)\n const chunkSize = vals.length / preTGEBonds.length\n const chunkedBills = chunk(vals, chunkSize)\n const returnedBills = chunkedBills?.map((chunk: any, index) => {\n const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index])!\n\n const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] = chunk\n const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms\n\n const initPrice = getBalanceNumber(\n trueBillPrice,\n bondConfig?.lpToken?.decimals?.[bondConfig?.chainId as ChainId] ?? 18,\n )\n\n const lpPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n const earnTokenPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n\n const principalTokenPrice = lpPrice?.toString() ?? '0'\n const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString()\n\n const bonus = Math.round((bondConfig.tgePrice! / initPrice) * 100 - 100)\n\n const data: BondsData = {\n ...bondConfig,\n initialRelease: initialRelease / 10000,\n vestingTerm: parseInt(vestingTerm),\n trueBondPrices: [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice?.toString(),\n bonus,\n bonusWithFee: bonus, // placeholder, wont be used\n discount: bonus, // placeholder, wont be used\n discountWithFee: bonus, // placeholder, wont be used\n },\n ],\n maxTotalPayout: maxTotalPayout?.toString(),\n totalPrincipalBilled: totalPrincipalBilled?.toString(),\n payoutTokenPrice,\n principalTokenPrice,\n totalRaise: totalRaise?.toString(),\n finalized: finalized[0],\n minPoints: minPoints.toString(),\n maxPoints: maxPoints.toString(),\n startVestingTimestamp: startVestingTimestamp?.toString(),\n initTime: { [bondConfig.chainId]: parseInt(terms[1]) },\n finishTime: parseInt(terms[0]),\n initPrice,\n soldOut: finalized[0] || (parseInt(terms[0]) ?? 0) < Date.now() / 1000 || bondConfig.soldOut,\n }\n return data\n })\n data.push(returnedBills)\n return data.flat()\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },\n })\n return []\n }\n}\n\nexport const fetchBondsData = async (\n chainId: number,\n bills: BillsConfig[],\n apiUrl: string,\n tokenPrices?: TokenPrices[],\n priceApiUrl?: string,\n) => {\n if (!tokenPrices) return []\n try {\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPrincipal',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'paused',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to the chunk that will be passed to cleanBillsData\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n acc.push(treasuryBalances[pos - 1])\n }\n return acc\n }, [])\n\n //\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return await cleanBillsData(billIds, chunkedBills, chainId, bills, tokenPrices, priceApiUrl)\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n\nconst cleanBillsData = async (\n billIds: number[],\n chunkedBills: any[],\n chainId: ChainId,\n bills: BillsConfig[],\n tokenPrices?: TokenPrices[],\n priceApiUrl?: string,\n): Promise<BondsData[]> => {\n const data: BondsData[] = await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n let principalTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (principalTokenPrice === undefined || !!principalTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${priceApiUrl}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', res.data.price)\n principalTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.lpToken.symbol)\n }\n }\n\n let payoutTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (payoutTokenPrice === undefined || !!payoutTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${priceApiUrl}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', res.data.price)\n payoutTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.earnToken.symbol)\n }\n }\n const lpPrice = principalTokenPrice?.price ?? 0\n const earnTokenPrice = payoutTokenPrice?.price ?? 0\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n ] = chunk\n const trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')\n .minus(new BigNumber(totalPayoutGiven))\n .div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))\n .toNumber()\n const treasuryBalance = getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonusWithFee: getBonusWithFee(feeInPayout, data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(feeInPayout, data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining: treasuryBalance\n ? Math.min(treasuryBalance, tokensRemaining).toString()\n : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n }\n return cleanedData\n }),\n )\n return data\n}\n\nexport const getBonusWithFee = (\n feeInPayout: number,\n trueBillPrice: string,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const trueBondPrice = new BigNumber(trueBillPrice).plus(new BigNumber(trueBillPrice).times(reverseFee))\n const priceUSDMinusFee = getBalanceNumber(trueBondPrice) * lpPrice\n const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0\n}\n\nconst getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n\nconst getRawDiscount = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n\n return ((earnTokenPrice - lpPrice * trueBondPrice) / earnTokenPrice) * 100\n}\n\nconst getDiscountWithFee = (feeInPayout: number, trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n const trueBondPriceWithFee = trueBondPrice * (1 / ((100 - (feeInPayout ?? 0)) / 100))\n\n return ((earnTokenPrice - lpPrice * trueBondPriceWithFee) / earnTokenPrice) * 100\n}\n"],"names":["launchBondsABI_V2_4_1","BOND_2_4_0","ERC20ABI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/state/bonds/utils.ts"],"sourcesContent":["import { BondsData, TrueBondPrices } from '../../types/bonds'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { BillsConfig, BillVersion, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport multicall from '../../utils/multicall'\nimport launchBondsABI_V2_4_1 from '../../config/abi/launchBond_v2_4_1.json'\nimport BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../config/abi/erc20.json'\nimport { reportError } from '../../utils/reportError'\nimport BigNumber from 'bignumber.js'\nimport axios from 'axios'\nimport { TIER_MAPPING } from '../tiers/useTierPoints'\nimport { chunk } from 'lodash'\n\nexport const fetchBondsDataPreTGE = async (\n chain: number,\n tokenPrices: Partial<Record<ChainId, TokenPrices[]>>,\n preTGEBonds: PreTGEConfig[],\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n if (!preTGEBonds?.length) return []\n const data = []\n const chainId = chain as ChainId\n\n const preTGEBondsIds: number[] = []\n const launchBondsCalls = preTGEBonds.flatMap((bond) => {\n preTGEBondsIds.push(bond.index)\n const bill = bond\n return [\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'trueBillPrice',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'totalPrincipalBilled',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'finalized',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'minPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'maxPoints',\n },\n {\n address: bill.contractAddress[bill.chainId] as string,\n name: 'startVestingTimestamp',\n },\n ]\n })\n const vals = await multicall(chainId, launchBondsABI_V2_4_1, launchBondsCalls)\n const chunkSize = vals.length / preTGEBonds.length\n const chunkedBills = chunk(vals, chunkSize)\n const returnedBills = chunkedBills?.map((chunk: any, index) => {\n const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index])!\n\n const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] = chunk\n const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms\n\n const initPrice = getBalanceNumber(\n trueBillPrice,\n bondConfig?.lpToken?.decimals?.[bondConfig?.chainId as ChainId] ?? 18,\n )\n\n const lpPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n const earnTokenPrice =\n tokenPrices?.[bondConfig?.chainId]?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() ===\n bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase(),\n )?.price ?? 0\n\n const principalTokenPrice = lpPrice?.toString() ?? '0'\n const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString()\n\n const bonus = Math.round((bondConfig.tgePrice! / initPrice) * 100 - 100)\n\n const data: BondsData = {\n ...bondConfig,\n initialRelease: initialRelease / 10000,\n vestingTerm: parseInt(vestingTerm),\n trueBondPrices: [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice?.toString(),\n bonus,\n bonusWithFee: bonus, // placeholder, wont be used\n discount: bonus, // placeholder, wont be used\n discountWithFee: bonus, // placeholder, wont be used\n },\n ],\n maxTotalPayout: maxTotalPayout?.toString(),\n totalPrincipalBilled: totalPrincipalBilled?.toString(),\n payoutTokenPrice,\n principalTokenPrice,\n totalRaise: totalRaise?.toString(),\n finalized: finalized[0],\n minPoints: minPoints.toString(),\n maxPoints: maxPoints.toString(),\n startVestingTimestamp: startVestingTimestamp?.toString(),\n initTime: { [bondConfig.chainId]: parseInt(terms[1]) },\n finishTime: parseInt(terms[0]),\n initPrice,\n soldOut: finalized[0] || (parseInt(terms[0]) ?? 0) < Date.now() / 1000 || bondConfig.soldOut,\n }\n return data\n })\n data.push(returnedBills)\n return data.flat()\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },\n })\n return []\n }\n}\n\nexport const fetchBondsData = async (\n chainId: number,\n bills: BillsConfig[],\n apiUrl: string,\n tokenPrices?: TokenPrices[],\n priceApiUrl?: string,\n) => {\n try {\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPrincipal',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'paused',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to the chunk that will be passed to cleanBillsData\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n acc.push(treasuryBalances[pos - 1])\n }\n return acc\n }, [])\n\n //\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return await cleanBillsData(billIds, chunkedBills, chainId, bills, tokenPrices, priceApiUrl)\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n\nconst cleanBillsData = async (\n billIds: number[],\n chunkedBills: any[],\n chainId: ChainId,\n bills: BillsConfig[],\n tokenPrices?: TokenPrices[],\n priceApiUrl?: string,\n): Promise<BondsData[]> => {\n const data: BondsData[] = await Promise.all(\n chunkedBills?.map(async (chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n let principalTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (principalTokenPrice === undefined || !!principalTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${priceApiUrl}/realtime/price?token=${bill?.lpToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.lpToken.symbol, '. Price: ', res.data.price)\n principalTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.lpToken.symbol)\n }\n }\n\n let payoutTokenPrice = tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.tokenAddress?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )\n\n if (payoutTokenPrice === undefined || !!payoutTokenPrice.error) {\n try {\n // Missing token price, therefor make a single call to api to fetch it\n const res = await axios.get(\n `${priceApiUrl}/realtime/price?token=${bill?.earnToken?.address?.[bill?.chainId]}&chain=${bill?.chainId}`,\n )\n console.log('Individual call for: ', bill.earnToken.symbol, '. Price: ', res.data.price)\n payoutTokenPrice = res.data\n } catch {\n console.error('Failed to fetch price for: ', bill.earnToken.symbol)\n }\n }\n const lpPrice = principalTokenPrice?.price ?? 0\n const earnTokenPrice = payoutTokenPrice?.price ?? 0\n\n const [\n trueBillPriceFromChunk,\n totalPayoutGiven,\n terms,\n maxTotalPayout,\n feeInPayoutRaw,\n feeInPrincipalRaw,\n paused,\n ,\n customTreasuryBalance,\n ] = chunk\n const trueBillPrice = trueBillPriceFromChunk\n\n const feeInPayout = Number(feeInPayoutRaw / 10000)\n const feeInPrincipal = Number(feeInPrincipalRaw / 10000)\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')\n .minus(new BigNumber(totalPayoutGiven))\n .div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))\n .toNumber()\n const treasuryBalance = getBalanceNumber(customTreasuryBalance, bill?.earnToken?.decimals?.[bill?.chainId] ?? 18)\n\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data?.points?.toString(),\n trueBondPrice: data?.trueBondPrice.toString(),\n bonus: getRawBonus(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n bonusWithFee: getBonusWithFee(feeInPayout, data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discount: getRawDiscount(data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n discountWithFee: getDiscountWithFee(feeInPayout, data?.trueBondPrice.toString(), lpPrice, earnTokenPrice),\n boost: TIER_MAPPING[data?.points?.toString() as keyof typeof TIER_MAPPING],\n }\n })\n } else {\n const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n const discount = getRawDiscount(trueBillPrice, lpPrice, earnTokenPrice)\n const discountWithFee = getDiscountWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n trueBondPrices = [\n {\n points: '0',\n boost: 0,\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n discount,\n discountWithFee,\n },\n ]\n }\n const cleanedData: BondsData = {\n ...bill,\n soldOut: paused[0] ? true : bill.soldOut,\n feeInPayout,\n feeInPrincipal,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString(),\n payoutTokenPrice: earnTokenPrice?.toString(),\n tokensRemaining: treasuryBalance\n ? Math.min(treasuryBalance, tokensRemaining).toString()\n : tokensRemaining.toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: typeof vestingTerm === 'number' ? vestingTerm : parseInt(vestingTerm),\n }\n return cleanedData\n }),\n )\n return data\n}\n\nexport const getBonusWithFee = (\n feeInPayout: number,\n trueBillPrice: string,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const trueBondPrice = new BigNumber(trueBillPrice).plus(new BigNumber(trueBillPrice).times(reverseFee))\n const priceUSDMinusFee = getBalanceNumber(trueBondPrice) * lpPrice\n const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0\n}\n\nconst getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n\nconst getRawDiscount = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n\n return ((earnTokenPrice - lpPrice * trueBondPrice) / earnTokenPrice) * 100\n}\n\nconst getDiscountWithFee = (feeInPayout: number, trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const trueBondPrice = getBalanceNumber(trueBillPrice.toString())\n const trueBondPriceWithFee = trueBondPrice * (1 / ((100 - (feeInPayout ?? 0)) / 100))\n\n return ((earnTokenPrice - lpPrice * trueBondPriceWithFee) / earnTokenPrice) * 100\n}\n"],"names":["launchBondsABI_V2_4_1","BOND_2_4_0","ERC20ABI"],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export interface SDKPropsDTO {
|
|
|
17
17
|
highestCompatibleVersion?: string;
|
|
18
18
|
customRPCS?: Partial<Record<ChainId, string[]>>;
|
|
19
19
|
openWalletConnectors?: OpenWalletConnectorsDTO;
|
|
20
|
+
customBranch?: string;
|
|
20
21
|
}
|
|
21
22
|
export interface SDKProps {
|
|
22
23
|
referenceId: string;
|
|
@@ -35,6 +36,7 @@ export interface SDKProps {
|
|
|
35
36
|
openWalletConnectors: {
|
|
36
37
|
evm: boolean;
|
|
37
38
|
};
|
|
39
|
+
customBranch?: string;
|
|
38
40
|
}
|
|
39
41
|
export declare const useSDKConfig: (config?: SDKPropsDTO) => SDKProps;
|
|
40
42
|
export type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl' | 'priceApi';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { useEffect } from 'react'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport { setWalletConnectorOpener } from '../config/constants/walletConnectors'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n priceApi: 'https://price-api.ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n priceApi: 'https://price-api.ape.bond',\n}\n\nexport interface OpenWalletConnectorsDTO {\n evm?: () => void\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n theme?: any\n highestCompatibleVersion?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors?: OpenWalletConnectorsDTO\n}\n\nexport interface SDKProps {\n referenceId: string\n chains: number[]\n hotBondChains: number[]\n useHotBonds: boolean\n useTiers: boolean\n useTGEBonds: boolean\n showLowValueBonds: boolean\n bondPartner?: string\n namingPreference: 'Discount' | 'Bonus'\n urls: Record<URLKeys, string>\n theme?: any\n highestCompatibleVersion?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors: {\n evm: boolean\n }\n}\n\nexport const useSDKConfig = (config?: SDKPropsDTO): SDKProps => {\n const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls\n\n const initialData: SDKProps = {\n referenceId: '',\n chains: [],\n hotBondChains: [ChainId.BSC, ChainId.MATIC],\n useHotBonds: true,\n useTiers: false,\n useTGEBonds: false,\n showLowValueBonds: false,\n bondPartner: undefined,\n namingPreference: 'Bonus',\n ...config,\n openWalletConnectors: {\n evm: !!config?.openWalletConnectors?.evm,\n },\n urls: { ...urls, ...config?.urls },\n highestCompatibleVersion: '2.1.3',\n }\n\n const evmConnectorOpener = config?.openWalletConnectors?.evm\n\n useEffect(() => {\n if (config?.customRPCS) {\n setCustomRPCS(config.customRPCS)\n }\n if (evmConnectorOpener) {\n console.log('set evm wallet opener')\n setWalletConnectorOpener('evm', evmConnectorOpener)\n }\n }, [config?.customRPCS, evmConnectorOpener])\n\n const { data } = useQuery({\n queryKey: [QUERY_KEYS.SDK_CONFIG],\n queryFn: () => {\n throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop')\n },\n initialData,\n })\n return data as SDKProps\n}\n\nexport type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl' | 'priceApi'\n\nexport const useURLByEnvironment = (key: URLKeys) => {\n const config = useSDKConfig()\n return config?.urls?.[key] as string\n}\n"],"names":[],"mappings":";;;;;;;AAOA;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,QAAQ,EAAE,4BAA4B;CACvC;AAED;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,8BAA8B;AACrC,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE,4BAA4B;CACvC;
|
|
1
|
+
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { useEffect } from 'react'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport { setWalletConnectorOpener } from '../config/constants/walletConnectors'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n priceApi: 'https://price-api.ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n priceApi: 'https://price-api.ape.bond',\n}\n\nexport interface OpenWalletConnectorsDTO {\n evm?: () => void\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n theme?: any\n highestCompatibleVersion?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors?: OpenWalletConnectorsDTO\n customBranch?: string\n}\n\nexport interface SDKProps {\n referenceId: string\n chains: number[]\n hotBondChains: number[]\n useHotBonds: boolean\n useTiers: boolean\n useTGEBonds: boolean\n showLowValueBonds: boolean\n bondPartner?: string\n namingPreference: 'Discount' | 'Bonus'\n urls: Record<URLKeys, string>\n theme?: any\n highestCompatibleVersion?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors: {\n evm: boolean\n }\n customBranch?: string\n}\n\nexport const useSDKConfig = (config?: SDKPropsDTO): SDKProps => {\n const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls\n\n const initialData: SDKProps = {\n referenceId: '',\n chains: [],\n hotBondChains: [ChainId.BSC, ChainId.MATIC],\n useHotBonds: true,\n useTiers: false,\n useTGEBonds: false,\n showLowValueBonds: false,\n bondPartner: undefined,\n namingPreference: 'Bonus',\n ...config,\n openWalletConnectors: {\n evm: !!config?.openWalletConnectors?.evm,\n },\n urls: { ...urls, ...config?.urls },\n highestCompatibleVersion: '2.1.3',\n }\n\n const evmConnectorOpener = config?.openWalletConnectors?.evm\n\n useEffect(() => {\n if (config?.customRPCS) {\n setCustomRPCS(config.customRPCS)\n }\n if (evmConnectorOpener) {\n console.log('set evm wallet opener')\n setWalletConnectorOpener('evm', evmConnectorOpener)\n }\n }, [config?.customRPCS, evmConnectorOpener])\n\n const { data } = useQuery({\n queryKey: [QUERY_KEYS.SDK_CONFIG],\n queryFn: () => {\n throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop')\n },\n initialData,\n })\n return data as SDKProps\n}\n\nexport type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl' | 'priceApi'\n\nexport const useURLByEnvironment = (key: URLKeys) => {\n const config = useSDKConfig()\n return config?.urls?.[key] as string\n}\n"],"names":[],"mappings":";;;;;;;AAOA;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,QAAQ,EAAE,4BAA4B;CACvC;AAED;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,8BAA8B;AACrC,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE,4BAA4B;CACvC;AA4CM,MAAM,YAAY,GAAG,CAAC,MAAoB,KAAc;AAC7D,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,WAAW,GAAG,WAAW;AAE9E,IAAA,MAAM,WAAW,GAAa;AAC5B,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AAC3C,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,iBAAiB,EAAE,KAAK;AACxB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,GAAG,MAAM;AACT,QAAA,oBAAoB,EAAE;AACpB,YAAA,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG;AACzC,SAAA;QACD,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE;AAClC,QAAA,wBAAwB,EAAE,OAAO;KAClC;AAED,IAAA,MAAM,kBAAkB,GAAG,MAAM,EAAE,oBAAoB,EAAE,GAAG;IAE5D,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,EAAE,UAAU,EAAE;AACtB,YAAA,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;QAClC;QACA,IAAI,kBAAkB,EAAE;AACtB,YAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACpC,YAAA,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACrD;IACF,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE5C,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,MAAK;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;QACvG,CAAC;QACD,WAAW;AACZ,KAAA,CAAC;AACF,IAAA,OAAO,IAAgB;AACzB;AAIO,MAAM,mBAAmB,GAAG,CAAC,GAAY,KAAI;AAClD,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,OAAO,MAAM,EAAE,IAAI,GAAG,GAAG,CAAW;AACtC;;;;"}
|
|
@@ -9,7 +9,8 @@ declare enum NetworkNames {
|
|
|
9
9
|
AVAX = "ava",
|
|
10
10
|
BLAST = "bls",
|
|
11
11
|
SONIC = "son",
|
|
12
|
-
BERACHAIN = "ber"
|
|
12
|
+
BERACHAIN = "ber",
|
|
13
|
+
ROBINHOOD = "rob"
|
|
13
14
|
}
|
|
14
15
|
export declare const getChainParam: (chain?: ChainId) => NetworkNames | null;
|
|
15
16
|
export declare const getLpType: (protocol?: Protocols) => "ichi" | "solidly" | "univ2" | "curve" | null;
|
|
@@ -12,6 +12,7 @@ var NetworkNames;
|
|
|
12
12
|
NetworkNames["BLAST"] = "bls";
|
|
13
13
|
NetworkNames["SONIC"] = "son";
|
|
14
14
|
NetworkNames["BERACHAIN"] = "ber";
|
|
15
|
+
NetworkNames["ROBINHOOD"] = "rob";
|
|
15
16
|
})(NetworkNames || (NetworkNames = {}));
|
|
16
17
|
const getChainParam = (chain) => {
|
|
17
18
|
return chain === ChainId.LINEA
|
|
@@ -34,7 +35,9 @@ const getChainParam = (chain) => {
|
|
|
34
35
|
? NetworkNames.SONIC
|
|
35
36
|
: chain === ChainId.BERACHAIN
|
|
36
37
|
? NetworkNames.BERACHAIN
|
|
37
|
-
:
|
|
38
|
+
: chain === ChainId.ROBINHOOD
|
|
39
|
+
? NetworkNames.ROBINHOOD
|
|
40
|
+
: null;
|
|
38
41
|
};
|
|
39
42
|
const getLpType = (protocol) => {
|
|
40
43
|
return protocol === Protocols.Algebra
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getChainParam.js","sources":["../../../src/state/zap/getChainParam.ts"],"sourcesContent":["import { ChainId, Protocols } from '@ape.swap/apeswap-lists'\n\nenum NetworkNames {\n MAINNET = 'eth',\n BNB = 'bnb',\n POLYGON = 'pol',\n ARBITRUM = 'arb',\n LINEA = 'lna',\n BASE = 'bas',\n AVAX = 'ava',\n BLAST = 'bls',\n SONIC = 'son',\n BERACHAIN = 'ber',\n}\n\nexport const getChainParam = (chain?: ChainId): NetworkNames | null => {\n return chain === ChainId.LINEA\n ? NetworkNames.LINEA\n : chain === ChainId.MATIC\n ? NetworkNames.POLYGON\n : chain === ChainId.BSC\n ? NetworkNames.BNB\n : chain === ChainId.BASE\n ? NetworkNames.BASE\n : chain === ChainId.ARBITRUM\n ? NetworkNames.ARBITRUM\n : chain === ChainId.MAINNET\n ? NetworkNames.MAINNET\n : chain === ChainId.AVAX\n ? NetworkNames.AVAX\n : chain === ChainId.BLAST\n ? NetworkNames.BLAST\n : chain === ChainId.SONIC\n ? NetworkNames.SONIC\n : chain === ChainId.BERACHAIN\n ? NetworkNames.BERACHAIN\n : null\n}\n\nexport const getLpType = (protocol?: Protocols): 'ichi' | 'solidly' | 'univ2' | 'curve' | null => {\n return protocol === Protocols.Algebra\n ? 'ichi'\n : protocol === Protocols.Solidly\n ? 'solidly'\n : protocol === Protocols.V2\n ? 'univ2'\n : protocol === Protocols.V3 // This might be a hot fix. Lets revisit this on the future\n ? 'ichi'\n : protocol === Protocols.Curve\n ? 'curve'\n : null\n}\n"],"names":[],"mappings":";;AAEA,IAAK,
|
|
1
|
+
{"version":3,"file":"getChainParam.js","sources":["../../../src/state/zap/getChainParam.ts"],"sourcesContent":["import { ChainId, Protocols } from '@ape.swap/apeswap-lists'\n\nenum NetworkNames {\n MAINNET = 'eth',\n BNB = 'bnb',\n POLYGON = 'pol',\n ARBITRUM = 'arb',\n LINEA = 'lna',\n BASE = 'bas',\n AVAX = 'ava',\n BLAST = 'bls',\n SONIC = 'son',\n BERACHAIN = 'ber',\n ROBINHOOD = 'rob',\n}\n\nexport const getChainParam = (chain?: ChainId): NetworkNames | null => {\n return chain === ChainId.LINEA\n ? NetworkNames.LINEA\n : chain === ChainId.MATIC\n ? NetworkNames.POLYGON\n : chain === ChainId.BSC\n ? NetworkNames.BNB\n : chain === ChainId.BASE\n ? NetworkNames.BASE\n : chain === ChainId.ARBITRUM\n ? NetworkNames.ARBITRUM\n : chain === ChainId.MAINNET\n ? NetworkNames.MAINNET\n : chain === ChainId.AVAX\n ? NetworkNames.AVAX\n : chain === ChainId.BLAST\n ? NetworkNames.BLAST\n : chain === ChainId.SONIC\n ? NetworkNames.SONIC\n : chain === ChainId.BERACHAIN\n ? NetworkNames.BERACHAIN\n : chain === ChainId.ROBINHOOD\n ? NetworkNames.ROBINHOOD\n : null\n}\n\nexport const getLpType = (protocol?: Protocols): 'ichi' | 'solidly' | 'univ2' | 'curve' | null => {\n return protocol === Protocols.Algebra\n ? 'ichi'\n : protocol === Protocols.Solidly\n ? 'solidly'\n : protocol === Protocols.V2\n ? 'univ2'\n : protocol === Protocols.V3 // This might be a hot fix. Lets revisit this on the future\n ? 'ichi'\n : protocol === Protocols.Curve\n ? 'curve'\n : null\n}\n"],"names":[],"mappings":";;AAEA,IAAK,YAYJ;AAZD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe;AACf,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe;AACf,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,KAAgB;AAChB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,KAAY;AACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,KAAY;AACZ,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,KAAiB;AACjB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,KAAiB;AACnB,CAAC,EAZI,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAcV,MAAM,aAAa,GAAG,CAAC,KAAe,KAAyB;AACpE,IAAA,OAAO,KAAK,KAAK,OAAO,CAAC;UACrB,YAAY,CAAC;AACf,UAAE,KAAK,KAAK,OAAO,CAAC;cAChB,YAAY,CAAC;AACf,cAAE,KAAK,KAAK,OAAO,CAAC;kBAChB,YAAY,CAAC;AACf,kBAAE,KAAK,KAAK,OAAO,CAAC;sBAChB,YAAY,CAAC;AACf,sBAAE,KAAK,KAAK,OAAO,CAAC;0BAChB,YAAY,CAAC;AACf,0BAAE,KAAK,KAAK,OAAO,CAAC;8BAChB,YAAY,CAAC;AACf,8BAAE,KAAK,KAAK,OAAO,CAAC;kCAChB,YAAY,CAAC;AACf,kCAAE,KAAK,KAAK,OAAO,CAAC;sCAChB,YAAY,CAAC;AACf,sCAAE,KAAK,KAAK,OAAO,CAAC;0CAChB,YAAY,CAAC;AACf,0CAAE,KAAK,KAAK,OAAO,CAAC;8CAChB,YAAY,CAAC;AACf,8CAAE,KAAK,KAAK,OAAO,CAAC;kDAChB,YAAY,CAAC;kDACb,IAAI;AAC9B;AAEO,MAAM,SAAS,GAAG,CAAC,QAAoB,KAAmD;AAC/F,IAAA,OAAO,QAAQ,KAAK,SAAS,CAAC;AAC5B,UAAE;AACF,UAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,cAAE;AACF,cAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,kBAAE;AACF,kBAAE,QAAQ,KAAK,SAAS,CAAC,EAAE;AACzB,sBAAE;AACF,sBAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,0BAAE;0BACA,IAAI;AAClB;;;;"}
|
package/dist/theme/base.js
CHANGED
package/dist/theme/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["export type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nexport const breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal:
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["export type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nexport const breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 59 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
|
|
@@ -89,11 +89,12 @@ const BuyBond = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, isPro
|
|
|
89
89
|
const isGoldRush = bondData?.billArt?.collection === BillArtCollection.GoldenTicket_Collection1;
|
|
90
90
|
const zapEnabled = supportedByLIFI.includes(bondData?.chainId);
|
|
91
91
|
const exceedsMaxBuy = getMaxBuy(bondData, SDKConfig.showLowValueBonds).lt(getPayoutAmount(bondData, depositAmount, userPoints ?? '0'));
|
|
92
|
+
getPayoutAmount(bondData, depositAmount, userPoints ?? '0') < 0.0001;
|
|
92
93
|
const exceedsBalance = new BigNumber(inputCurrencyBalance ?? '0').lt(inputValue);
|
|
93
94
|
// Loading State
|
|
94
95
|
const [loadingTx, setLoadingTx] = useState(false);
|
|
95
96
|
const { addToastError } = usePopups();
|
|
96
|
-
const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTxHash(buyTxHash,
|
|
97
|
+
const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTxHash(buyTxHash, bondChain);
|
|
97
98
|
const load = loadingTx || (isConfirming && !isConfirmed);
|
|
98
99
|
// State Handlers
|
|
99
100
|
const handleCurrencySelect = useCallback((newInputToken) => {
|
|
@@ -139,7 +140,7 @@ const BuyBond = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, isPro
|
|
|
139
140
|
},
|
|
140
141
|
});
|
|
141
142
|
try {
|
|
142
|
-
const maxPrice = new BigNumber(trueBondPrice ?? '0').times(
|
|
143
|
+
const maxPrice = new BigNumber(trueBondPrice ?? '0').times(1.02).toFixed(0); // multiply it by 1.02
|
|
143
144
|
const rawAmount = adjustDecimals(inputValue);
|
|
144
145
|
const amount = new BigNumber(rawAmount).times(new BigNumber(10).pow(decimals ?? 18)).toString();
|
|
145
146
|
const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers;
|
|
@@ -335,7 +336,9 @@ const BuyBond = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, isPro
|
|
|
335
336
|
? 'something went wrong'
|
|
336
337
|
: !inputValue || parseFloat(inputValue) === 0
|
|
337
338
|
? 'Insert amount'
|
|
338
|
-
:
|
|
339
|
+
: isZap && fetchingZapQuote
|
|
340
|
+
? 'Loading'
|
|
341
|
+
: `buy` })) })] })] })] })) : (jsx(Fragment, {}));
|
|
339
342
|
};
|
|
340
343
|
|
|
341
344
|
export { BuyBond as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuyBond.js","sources":["../../../src/views/BuyBond/BuyBond.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport { BigNumber } from 'bignumber.js'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport QuestionCircle from '../../components/uikit-sdk/Svg/Icons/QuestionCircle'\nimport Text from '../../components/uikit-sdk/Text'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport { adjustDecimals } from '../../utils/convertToTokenValue'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { useAccount, useChainId, useSendTransaction, useWriteContract } from 'wagmi'\nimport useModal from '../../hooks/useModal'\nimport ZapModal from '../ZapModal'\nimport { BillArtCollection, BillVersion, ChainId, Token } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTxHash } from '../../hooks/useMonitorTxHash'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { formatNumber, formatUSDNumber, getMaxBuy, getPayoutAmount } from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { supportedByLIFI } from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport { findHighestTrueBondPrice } from './findHighestTrueBondPrice'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport { useIsMobile } from '../../hooks/useIsMobile'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\n\nexport interface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (hash: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBond: React.FC<BuyBondProps> = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, isProjectView }) => {\n const SDKConfig = useSDKConfig()\n // Hooks\n const userChainId = useChainId()\n const { address: account } = useAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: userPoints } = useTierPoints()\n const bondData = bonds?.find(\n (bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase(),\n )!\n const isMobile = useIsMobile()\n\n // Tier Gating\n const userTier = getUserTier(userPoints ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(userPoints, bondData)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZap = inputTokenString?.toLowerCase() !== bondData?.lpToken?.address?.[bondData?.chainId]?.toLowerCase()\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZap\n\n // Estimations\n const depositAmount = isZap ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumber(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const isGoldRush = bondData?.billArt?.collection === BillArtCollection.GoldenTicket_Collection1\n const zapEnabled = supportedByLIFI.includes(bondData?.chainId)\n const exceedsMaxBuy = getMaxBuy(bondData, SDKConfig.showLowValueBonds).lt(\n getPayoutAmount(bondData, depositAmount, userPoints ?? '0'),\n )\n const exceedsBalance = new BigNumber(inputCurrencyBalance ?? '0').lt(inputValue)\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTxHash(buyTxHash, userChainId)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleOpenZapModal = () => {\n onOpenZapModal()\n track({\n event: 'getTokenClick',\n chain: bondData?.chainId,\n data: {\n bond: bondData?.earnToken.symbol,\n token: bondData?.lpToken?.symbol,\n },\n })\n }\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZap ? SoulZapTokenManager?.[bondData?.chainId as ChainId] : bondData?.contractAddress?.[bondData.chainId]) ??\n null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = new BigNumber(trueBondPrice ?? '0').times(102).div(100).toFixed(0) // multiply it by 1.02\n const rawAmount = adjustDecimals(inputValue)\n const amount = new BigNumber(rawAmount).times(new BigNumber(10).pow(decimals ?? 18)).toString()\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n handlePurchasedBond?.(hash)\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'lp-buy',\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = new BigNumber(inputValue ?? '0').toFixed(18, 5)\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n handlePurchasedBond?.(hash)\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'zap-buy',\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZap) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const [onOpenZapModal] = useModal(\n <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,\n true,\n true,\n 'zapModal',\n )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n const [hasCheckedTrack, setHasCheckedTrack] = useState<boolean>(false)\n useEffect(() => {\n if (\n inputCurrencyBalance !== undefined &&\n inputCurrencyBalance === '0' &&\n !hasChecked &&\n bondChain &&\n zapEnabled &&\n sortedZapList?.length > 0 &&\n sortedZapList[0].usdValue !== 0\n ) {\n setHasChecked(true)\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n if (bondData && !hasCheckedTrack) {\n setHasCheckedTrack(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, sortedZapList, bondData])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex className={`modal-content ${isGoldRush ? 'gold-rush' : ''}`}>\n {!isProjectView && <div className=\"gold-ribbon\"></div>}\n <Flex className=\"modaltable-container\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex sx={{ width: '100%', display: isProjectView ? ['flex', 'flex', 'flex', 'none'] : 'flex' }}>\n <BondCards bondData={bondData} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZap}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={() => setInputValue(new BigNumber(inputCurrencyBalance ?? '0')?.toString())}\n handleCurrencySelect={handleCurrencySelect}\n chainId={bondData?.chainId}\n enableZap={zapEnabled}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n />\n {SDKConfig.useTiers && <GetUpToComponent bond={bondData} depositAmount={depositAmount} />}\n {bondData?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, display: 'flex', alignItems: 'center', gap: '10px' }}>\n <SafeHTMLComponent html={bondData?.warningCard} />\n {bondData?.chainId === ChainId.SONIC && bondData?.earnToken.symbol.toLowerCase() === 'moon' && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Text sx={{ textTransform: 'none' }}>\n Open the 'cog' icon menu in the top right and set the Slippage Tolerance to 5% or more.\n </Text>\n }\n width=\"315px\"\n placement=\"topRight\"\n transformTip=\"translate(9%, -10%)\"\n >\n <QuestionCircle width={14} color=\"textDisabledButton\" />\n </TooltipBubble>\n )}\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container\">\n {account && (\n <Flex className=\"button-container get\">\n <Button\n className=\"action-button\"\n onClick={() =>\n bondData.billVersion === BillVersion.V4 && SDKConfig.useTiers && zapEnabled\n ? window.open('http://ape.bond/tier-staking', '_blank')\n : zapEnabled\n ? handleOpenZapModal()\n : openExternal()\n }\n variant=\"secondary\"\n fullWidth\n >\n {bondData.billVersion === BillVersion.V4 && SDKConfig.useTiers && zapEnabled\n ? `Get ${!isMobile ? 'your' : ''} Tier`\n : `Get ${getSymbol(bondData?.lpToken)}`}\n </Button>\n </Flex>\n )}\n <Flex className=\"button-container buy\">\n {!account ? (\n <ConnectButton />\n ) : isUserRestricted ? (\n <Button className=\"action-button\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsMaxBuy ||\n exceedsBalance ||\n (isZap && !zapData)\n }\n onClick={handleOpenModal}\n >\n {exceedsMaxBuy\n ? 'Exceeds Max Buy'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : `buy`}\n </Button>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default BuyBond\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BuyBond.js","sources":["../../../src/views/BuyBond/BuyBond.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport { BigNumber } from 'bignumber.js'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport QuestionCircle from '../../components/uikit-sdk/Svg/Icons/QuestionCircle'\nimport Text from '../../components/uikit-sdk/Text'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport { adjustDecimals } from '../../utils/convertToTokenValue'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { useAccount, useChainId, useSendTransaction, useWriteContract } from 'wagmi'\nimport useModal from '../../hooks/useModal'\nimport ZapModal from '../ZapModal'\nimport { BillArtCollection, BillVersion, ChainId, Token } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTxHash } from '../../hooks/useMonitorTxHash'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { formatNumber, formatUSDNumber, getMaxBuy, getPayoutAmount } from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { supportedByLIFI } from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport { findHighestTrueBondPrice } from './findHighestTrueBondPrice'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport { useIsMobile } from '../../hooks/useIsMobile'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\n\nexport interface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (hash: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBond: React.FC<BuyBondProps> = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, isProjectView }) => {\n const SDKConfig = useSDKConfig()\n // Hooks\n const userChainId = useChainId()\n const { address: account } = useAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: userPoints } = useTierPoints()\n const bondData = bonds?.find(\n (bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase(),\n )!\n const isMobile = useIsMobile()\n\n // Tier Gating\n const userTier = getUserTier(userPoints ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(userPoints, bondData)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZap = inputTokenString?.toLowerCase() !== bondData?.lpToken?.address?.[bondData?.chainId]?.toLowerCase()\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZap\n\n // Estimations\n const depositAmount = isZap ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumber(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const isGoldRush = bondData?.billArt?.collection === BillArtCollection.GoldenTicket_Collection1\n const zapEnabled = supportedByLIFI.includes(bondData?.chainId)\n const exceedsMaxBuy = getMaxBuy(bondData, SDKConfig.showLowValueBonds).lt(\n getPayoutAmount(bondData, depositAmount, userPoints ?? '0'),\n )\n const bondTooSmall = getPayoutAmount(bondData, depositAmount, userPoints ?? '0') < 0.0001\n const exceedsBalance = new BigNumber(inputCurrencyBalance ?? '0').lt(inputValue)\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTxHash(buyTxHash, bondChain)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleOpenZapModal = () => {\n onOpenZapModal()\n track({\n event: 'getTokenClick',\n chain: bondData?.chainId,\n data: {\n bond: bondData?.earnToken.symbol,\n token: bondData?.lpToken?.symbol,\n },\n })\n }\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZap ? SoulZapTokenManager?.[bondData?.chainId as ChainId] : bondData?.contractAddress?.[bondData.chainId]) ??\n null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = new BigNumber(trueBondPrice ?? '0').times(1.02).toFixed(0) // multiply it by 1.02\n const rawAmount = adjustDecimals(inputValue)\n const amount = new BigNumber(rawAmount).times(new BigNumber(10).pow(decimals ?? 18)).toString()\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n handlePurchasedBond?.(hash)\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'lp-buy',\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = new BigNumber(inputValue ?? '0').toFixed(18, 5)\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n handlePurchasedBond?.(hash)\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: 'zap-buy',\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZap) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const [onOpenZapModal] = useModal(\n <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,\n true,\n true,\n 'zapModal',\n )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n const [hasCheckedTrack, setHasCheckedTrack] = useState<boolean>(false)\n useEffect(() => {\n if (\n inputCurrencyBalance !== undefined &&\n inputCurrencyBalance === '0' &&\n !hasChecked &&\n bondChain &&\n zapEnabled &&\n sortedZapList?.length > 0 &&\n sortedZapList[0].usdValue !== 0\n ) {\n setHasChecked(true)\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n if (bondData && !hasCheckedTrack) {\n setHasCheckedTrack(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, sortedZapList, bondData])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex className={`modal-content ${isGoldRush ? 'gold-rush' : ''}`}>\n {!isProjectView && <div className=\"gold-ribbon\"></div>}\n <Flex className=\"modaltable-container\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex sx={{ width: '100%', display: isProjectView ? ['flex', 'flex', 'flex', 'none'] : 'flex' }}>\n <BondCards bondData={bondData} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZap}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={() => setInputValue(new BigNumber(inputCurrencyBalance ?? '0')?.toString())}\n handleCurrencySelect={handleCurrencySelect}\n chainId={bondData?.chainId}\n enableZap={zapEnabled}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n />\n {SDKConfig.useTiers && <GetUpToComponent bond={bondData} depositAmount={depositAmount} />}\n {bondData?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, display: 'flex', alignItems: 'center', gap: '10px' }}>\n <SafeHTMLComponent html={bondData?.warningCard} />\n {bondData?.chainId === ChainId.SONIC && bondData?.earnToken.symbol.toLowerCase() === 'moon' && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Text sx={{ textTransform: 'none' }}>\n Open the 'cog' icon menu in the top right and set the Slippage Tolerance to 5% or more.\n </Text>\n }\n width=\"315px\"\n placement=\"topRight\"\n transformTip=\"translate(9%, -10%)\"\n >\n <QuestionCircle width={14} color=\"textDisabledButton\" />\n </TooltipBubble>\n )}\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container\">\n {account && (\n <Flex className=\"button-container get\">\n <Button\n className=\"action-button\"\n onClick={() =>\n bondData.billVersion === BillVersion.V4 && SDKConfig.useTiers && zapEnabled\n ? window.open('http://ape.bond/tier-staking', '_blank')\n : zapEnabled\n ? handleOpenZapModal()\n : openExternal()\n }\n variant=\"secondary\"\n fullWidth\n >\n {bondData.billVersion === BillVersion.V4 && SDKConfig.useTiers && zapEnabled\n ? `Get ${!isMobile ? 'your' : ''} Tier`\n : `Get ${getSymbol(bondData?.lpToken)}`}\n </Button>\n </Flex>\n )}\n <Flex className=\"button-container buy\">\n {!account ? (\n <ConnectButton />\n ) : isUserRestricted ? (\n <Button className=\"action-button\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsMaxBuy ||\n exceedsBalance ||\n (isZap && !zapData)\n }\n onClick={handleOpenModal}\n >\n {exceedsMaxBuy\n ? 'Exceeds Max Buy'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : isZap && fetchingZapQuote\n ? 'Loading'\n : `buy`}\n </Button>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default BuyBond\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -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 { useAccount } from 'wagmi'\nimport UserBondRow from './components/UserBondRow'\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 usePreTGEUserBonds from '../../state/preTGEBonds/usePreTGEUserBonds'\nimport PreTGEUserRow from '../PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\ntype SortDirection = 'asc' | 'desc'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useAccount()\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds } = usePreTGEUserBonds()\n const preTGEBondsToRender = preTGEUserBonds?.filter(\n (userBond) => parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0,\n )\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'pending',\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 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 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 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 ? (\n <PlaceholderMonkey text={'You are not connected.'} />\n ) : (bondsToRender && bondsToRender?.length > 0) || (preTGEBondsToRender && preTGEBondsToRender.length > 0) ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => (\n <PreTGEUserRow userBond={userBond} key={index} />\n ))}\n {bondsToRender?.map((bill: UserBill, index) => (\n <UserBondRow bill={bill} key={`${bill.id}-${index}`} />\n ))}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <PlaceholderMonkey text={'No results, change filters.'} />\n ) : userBondsFetched && bondsToRender?.length === 0 ? (\n <PlaceholderMonkey text={'You do not own any Bonds.'} />\n ) : (\n <Flex className=\"yourbonds-spinner\">\n <Spinner size={100} />\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["usePreTGEUserBonds","_jsxs","_jsx","_Fragment","PreTGEUserRow"],"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 { useAccount } from 'wagmi'\nimport UserBondRow from './components/UserBondRow'\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 usePreTGEUserBonds from '../../state/preTGEBonds/usePreTGEUserBonds'\nimport PreTGEUserRow from '../PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nexport type SortableKeys = 'claimable' | 'pending' | 'terms'\ntype SortDirection = 'asc' | 'desc'\n\nconst YourBonds = ({ showOnly }: { showOnly?: string }) => {\n useTokenPrices()\n // Hooks\n const SDKConfig = useSDKConfig()\n const { address: account } = useAccount()\n const { data: userBonds, isFetched: userBondsFetched } = useUserBonds()\n const { data: chainFilterOption, setChainFilterOption } = useChainFilterOption()\n const { data: preTGEUserBonds } = usePreTGEUserBonds()\n const preTGEBondsToRender = preTGEUserBonds?.filter(\n (userBond) => parseFloat(userBond?.accountInfo?.depositAmount ?? '0') > 0,\n )\n\n // State\n const [sortConfig, setSortConfig] = useState<{ key: SortableKeys; direction: SortDirection } | null>({\n key: 'pending',\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 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 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.totalPayout !== '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 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 ? (\n <PlaceholderMonkey text={'You are not connected.'} />\n ) : (bondsToRender && bondsToRender?.length > 0) || (preTGEBondsToRender && preTGEBondsToRender.length > 0) ? (\n <>\n {preTGEBondsToRender?.map((userBond, index) => (\n <PreTGEUserRow userBond={userBond} key={index} />\n ))}\n {bondsToRender?.map((bill: UserBill, index) => (\n <UserBondRow bill={bill} key={`${bill.id}-${index}`} />\n ))}\n </>\n ) : inputValue !== '' || !chainFilterOption.includes('All Chains') ? (\n <PlaceholderMonkey text={'No results, change filters.'} />\n ) : userBondsFetched && bondsToRender?.length === 0 ? (\n <PlaceholderMonkey text={'You do not own any Bonds.'} />\n ) : (\n <Flex className=\"yourbonds-spinner\">\n <Spinner size={100} />\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default YourBonds\n"],"names":["usePreTGEUserBonds","_jsxs","_jsx","_Fragment","PreTGEUserRow"],"mappings":"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"}
|