@ape.swap/bonds-sdk 6.0.8 → 6.1.0-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/components/uikit-sdk/Tag/ListTag.js +1 -1
  2. package/dist/components/uikit-sdk/Tag/ListTag.js.map +1 -1
  3. package/dist/config/abi/Vault_Shares.json.js +1540 -0
  4. package/dist/config/abi/Vault_Shares.json.js.map +1 -0
  5. package/dist/state/bonds/fetchBondsData/fetchBondsDataPreTGE.js +25 -2
  6. package/dist/state/bonds/fetchBondsData/fetchBondsDataPreTGE.js.map +1 -1
  7. package/dist/state/bonds/useBondsData.js +2 -0
  8. package/dist/state/bonds/useBondsData.js.map +1 -1
  9. package/dist/state/bonds/useBondsList.js +0 -20
  10. package/dist/state/bonds/useBondsList.js.map +1 -1
  11. package/dist/state/bonds/useBondsListPreTGE.d.ts +2 -2
  12. package/dist/state/bonds/useBondsListPreTGE.js +8 -20
  13. package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
  14. package/dist/state/bonds/useUserBondsPreTGE.d.ts +3 -0
  15. package/dist/state/bonds/useUserBondsPreTGE.js +74 -2
  16. package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
  17. package/dist/types/bonds.d.ts +10 -0
  18. package/dist/utils/dates/formatDate.d.ts +1 -1
  19. package/dist/utils/dates/formatDate.js +7 -8
  20. package/dist/utils/dates/formatDate.js.map +1 -1
  21. package/dist/views/Bonds/Bonds.js +2 -0
  22. package/dist/views/Bonds/Bonds.js.map +1 -1
  23. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +1 -1
  24. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
  25. package/dist/views/Bonds/components/BondRows/SoldOutRows.js +3 -1
  26. package/dist/views/Bonds/components/BondRows/SoldOutRows.js.map +1 -1
  27. package/dist/views/BuyBond/BuyComponentPreTGE.js +7 -2
  28. package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
  29. package/dist/views/BuyBond/ParticipationSuccessful.js +20 -6
  30. package/dist/views/BuyBond/ParticipationSuccessful.js.map +1 -1
  31. package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js +20 -4
  32. package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js.map +1 -1
  33. package/dist/views/TransactionModal/TransactionModal.js +15 -4
  34. package/dist/views/TransactionModal/TransactionModal.js.map +1 -1
  35. package/dist/views/YourBonds/YourBonds.js +7 -1
  36. package/dist/views/YourBonds/YourBonds.js.map +1 -1
  37. package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js +23 -5
  38. package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js.map +1 -1
  39. package/dist/views/YourBonds/components/UserBondRow/UserBondRowYield.d.ts +6 -0
  40. package/dist/views/YourBonds/components/UserBondRow/UserBondRowYield.js +50 -0
  41. package/dist/views/YourBonds/components/UserBondRow/UserBondRowYield.js.map +1 -0
  42. package/dist/views/YourBondsModalYield/YourBondsModalYield.d.ts +7 -0
  43. package/dist/views/YourBondsModalYield/YourBondsModalYield.js +219 -0
  44. package/dist/views/YourBondsModalYield/YourBondsModalYield.js.map +1 -0
  45. package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.d.ts +8 -0
  46. package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +71 -0
  47. package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -0
  48. package/dist/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.d.ts +7 -0
  49. package/dist/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js +32 -0
  50. package/dist/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -0
  51. package/package.json +2 -2
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE';
3
+ declare const UserBondRowYield: ({ userBond }: {
4
+ userBond: PreTGEUserBonds;
5
+ }) => React.JSX.Element;
6
+ export default UserBondRowYield;
@@ -0,0 +1,50 @@
1
+ import { jsx, jsxs } from 'theme-ui/jsx-runtime';
2
+ import TokenInfoAndName from '../../../../components/TokenInfoAndName/index.js';
3
+ import Svg from '../../../../components/uikit-sdk/Svg/index.js';
4
+ import TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble/index.js';
5
+ import BondInfoTooltip from '../../../../components/Tooltip/Tooltip.js';
6
+ import { Flex } from 'theme-ui';
7
+ import { formatTimeLeft, getTimePeriods } from '../../../../utils/getTimePeriods.js';
8
+ import useModal from '../../../../hooks/useModal.js';
9
+ import YourBondsModalYield from '../../../YourBondsModalYield/YourBondsModalYield.js';
10
+ import Button from '../../../../components/uikit-sdk/Button/Button.js';
11
+ import { formatNumberSI } from '../../../../utils/formatNumber.js';
12
+ import { getBalanceNumber } from '../../../../utils/getBalanceNumber.js';
13
+
14
+ const UserBondRowYield = ({ userBond }) => {
15
+ const saleFinalized = userBond.finalized;
16
+ const hasRedeemed = userBond?.accountInfo?.hasRedeemed;
17
+ const isRedeemable = !hasRedeemed && saleFinalized;
18
+ const redeemableIn = formatTimeLeft((userBond?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true);
19
+ const timeLeftForFullyVested = (userBond.yieldData?.rewardDistributionEnd ?? 0) - Date.now() / 1000;
20
+ const timePeriods = getTimePeriods(timeLeftForFullyVested, true);
21
+ const vestingString = isRedeemable && userBond.yieldBond
22
+ ? ''
23
+ : hasRedeemed
24
+ ? `${timePeriods.days}d ${timePeriods.hours}h ${timePeriods.minutes}m`
25
+ : '';
26
+ const earnTokenPrice = userBond?.earnTokenPrice ?? 0;
27
+ const pending = userBond?.yieldData?.depositedAssets ?? 0;
28
+ const pendingUSD = pending * earnTokenPrice;
29
+ const claimable = getBalanceNumber(userBond?.yieldData?.claimableRewards ?? '0');
30
+ const claimableUSD = claimable * earnTokenPrice;
31
+ const endTimeFinished = Date.now() > (userBond?.endTime ?? 0) * 1000;
32
+ const [onOpenPurchasedBond] = useModal(jsx(YourBondsModalYield, { userBill: userBond }), false, false, `yourBondsModalYield${userBond.contractAddress[userBond.chainId]}`);
33
+ return (jsxs("div", { className: "your-bonds", onClick: onOpenPurchasedBond, children: [jsxs("div", { className: "token-info-container", children: [jsx(TokenInfoAndName, { tokenSymbol: userBond?.underlyingEarnToken?.symbol, chain: userBond.chainId, tag: userBond.tags?.[0], vestEnds: isRedeemable ? 'Activate Yield!' : !hasRedeemed ? `Claim in ${redeemableIn}` : `Ends in ${vestingString}`, isHotBond: true }), jsx("div", { className: "tooltip-column", children: jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(BondInfoTooltip, { earnTokenContract: userBond?.earnToken.address[userBond?.chainId] || '', earnTokenSymbol: userBond?.earnToken.symbol || '', bondContract: userBond?.contractAddress?.[userBond?.chainId] || '', projectLink: userBond?.projectLink, twitter: userBond?.twitter, chain: userBond?.chainId }), width: "205px", placement: "bottomRight", transformTip: "translate(5%, 0%)", children: jsx(Flex, { sx: {
34
+ opacity: 0.8,
35
+ }, children: jsx(Svg, { icon: "more", width: "25px" }) }) }) })] }), jsxs("div", { className: "your-bonds-columns-container", children: [jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'], width: '125px' } }), jsxs("div", { className: "your-bonds-content", children: [jsx("div", { className: "your-bonds-content-title", children: "Claimable" }), jsxs("div", { className: "your-bonds-content-tokens-amount", children: [hasRedeemed ? formatNumberSI(claimable) : '', jsx("div", { className: "your-bonds-content-tokens-usd-amount", children: hasRedeemed ? `($${formatNumberSI(claimableUSD)})` : '-' })] })] }), jsxs("div", { className: "your-bonds-content", children: [jsx("div", { className: "your-bonds-content-title", children: "Pending" }), jsxs("div", { className: "your-bonds-content-tokens-amount", children: [hasRedeemed ? formatNumberSI(pending) : '', jsx("div", { className: "your-bonds-content-tokens-usd-amount", children: hasRedeemed ? `($${formatNumberSI(pendingUSD)})` : '-' })] })] }), jsx("div", { className: "your-bonds-content hide-mobile", children: vestingString }), jsx("div", { className: "your-bonds-column-button", children: jsx(Button, { sx: {
36
+ fontSize: '14px',
37
+ height: '30px',
38
+ background: !saleFinalized && 'var(--theme-ui-colors-white4) !important',
39
+ width: '100%',
40
+ }, disabled: !saleFinalized, children: isRedeemable
41
+ ? 'Activate Yield'
42
+ : endTimeFinished && !saleFinalized
43
+ ? 'Claim enabled soon'
44
+ : !hasRedeemed
45
+ ? `Claim in ${redeemableIn}`
46
+ : `Claim` }) })] })] }));
47
+ };
48
+
49
+ export { UserBondRowYield as default };
50
+ //# sourceMappingURL=UserBondRowYield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserBondRowYield.js","sources":["../../../../../src/views/YourBonds/components/UserBondRow/UserBondRowYield.tsx"],"sourcesContent":["import React from 'react'\nimport TokenInfoAndName from '../../../../components/TokenInfoAndName'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\nimport { Flex } from 'theme-ui'\nimport { formatTimeLeft, getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport useModal from '../../../../hooks/useModal'\nimport YourBondsModalYield from '../../../YourBondsModalYield/YourBondsModalYield'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\n\nconst UserBondRowYield = ({ userBond }: { userBond: PreTGEUserBonds }) => {\n const saleFinalized = userBond.finalized\n const hasRedeemed = userBond?.accountInfo?.hasRedeemed\n const isRedeemable = !hasRedeemed && saleFinalized\n\n const redeemableIn = formatTimeLeft((userBond?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n const timeLeftForFullyVested = (userBond.yieldData?.rewardDistributionEnd ?? 0) - Date.now() / 1000\n const timePeriods = getTimePeriods(timeLeftForFullyVested, true)\n const vestingString =\n isRedeemable && userBond.yieldBond\n ? ''\n : hasRedeemed\n ? `${timePeriods.days}d ${timePeriods.hours}h ${timePeriods.minutes}m`\n : ''\n\n const earnTokenPrice = userBond?.earnTokenPrice ?? 0\n const pending = userBond?.yieldData?.depositedAssets ?? 0\n const pendingUSD = pending * earnTokenPrice\n const claimable = getBalanceNumber(userBond?.yieldData?.claimableRewards ?? '0')\n const claimableUSD = claimable * earnTokenPrice\n const endTimeFinished = Date.now() > (userBond?.endTime ?? 0) * 1000\n\n const [onOpenPurchasedBond] = useModal(\n <YourBondsModalYield userBill={userBond} />,\n false,\n false,\n `yourBondsModalYield${userBond.contractAddress[userBond.chainId]}`,\n )\n\n return (\n <div className=\"your-bonds\" onClick={onOpenPurchasedBond}>\n <div className=\"token-info-container\">\n <TokenInfoAndName\n tokenSymbol={userBond?.underlyingEarnToken?.symbol}\n chain={userBond.chainId}\n tag={userBond.tags?.[0]}\n vestEnds={\n isRedeemable ? 'Activate Yield!' : !hasRedeemed ? `Claim in ${redeemableIn}` : `Ends in ${vestingString}`\n }\n isHotBond\n />\n <div className=\"tooltip-column\">\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={userBond?.earnToken.address[userBond?.chainId] || ''}\n earnTokenSymbol={userBond?.earnToken.symbol || ''}\n bondContract={userBond?.contractAddress?.[userBond?.chainId] || ''}\n projectLink={userBond?.projectLink}\n twitter={userBond?.twitter}\n chain={userBond?.chainId}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(5%, 0%)\"\n >\n <Flex\n sx={{\n opacity: 0.8,\n }}\n >\n <Svg icon=\"more\" width=\"25px\" />\n </Flex>\n </TooltipBubble>\n </div>\n </div>\n <div className=\"your-bonds-columns-container\">\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'], width: '125px' }} />\n <div className=\"your-bonds-content\">\n <div className=\"your-bonds-content-title\">Claimable</div>\n <div className=\"your-bonds-content-tokens-amount\">\n {hasRedeemed ? formatNumberSI(claimable) : ''}\n <div className=\"your-bonds-content-tokens-usd-amount\">\n {hasRedeemed ? `($${formatNumberSI(claimableUSD)})` : '-'}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content\">\n <div className=\"your-bonds-content-title\">Pending</div>\n <div className=\"your-bonds-content-tokens-amount\">\n {hasRedeemed ? formatNumberSI(pending) : ''}\n <div className=\"your-bonds-content-tokens-usd-amount\">\n {hasRedeemed ? `($${formatNumberSI(pendingUSD)})` : '-'}\n </div>\n </div>\n </div>\n <div className=\"your-bonds-content hide-mobile\">{vestingString}</div>\n <div className=\"your-bonds-column-button\">\n <Button\n sx={{\n fontSize: '14px',\n height: '30px',\n background: !saleFinalized && 'var(--theme-ui-colors-white4) !important',\n width: '100%',\n }}\n disabled={!saleFinalized}\n >\n {isRedeemable\n ? 'Activate Yield'\n : endTimeFinished && !saleFinalized\n ? 'Claim enabled soon'\n : !hasRedeemed\n ? `Claim in ${redeemableIn}`\n : `Claim`}\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default UserBondRowYield\n"],"names":["_jsx","_jsxs","Tooltip"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { PreTGEUserBonds } from '../../state/bonds/useUserBondsPreTGE';
3
+ declare const YourBondsModalYield: ({ userBill, onDismiss }: {
4
+ userBill?: PreTGEUserBonds;
5
+ onDismiss?: () => void;
6
+ }) => React.JSX.Element;
7
+ export default YourBondsModalYield;
@@ -0,0 +1,219 @@
1
+ import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import TokenImage from '../../components/uikit-sdk/TokenImage/index.js';
4
+ import { formatNumberSI } from '../../utils/formatNumber.js';
5
+ import { UserBillTooltipText } from '../../config/constants/tooltips.js';
6
+ import YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader.js';
7
+ import Modal from '../../components/uikit-sdk/Modal/index.js';
8
+ import Flex from '../../components/uikit-sdk/Flex/index.js';
9
+ import Svg from '../../components/uikit-sdk/Svg/index.js';
10
+ import Button from '../../components/uikit-sdk/Button/Button.js';
11
+ import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
12
+ import Text from '../../components/uikit-sdk/Text/index.js';
13
+ import useUserBondsPreTGE from '../../state/bonds/useUserBondsPreTGE.js';
14
+ import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
15
+ import { formatUTCDate } from '../../utils/dates/formatDate.js';
16
+ import useEVMAccount from '../../hooks/accounts/useEVMAccount.js';
17
+ import { useSwitchChain, useWriteContract } from 'wagmi';
18
+ import LaunchBondABI_V_2_4_1 from '../../config/abi/launchBond_v2_4_1.json.js';
19
+ import Vault_Shares_ABI from '../../config/abi/Vault_Shares.json.js';
20
+ import { reportError } from '../../utils/reportError.js';
21
+ import { useSDKConfig } from '../../state/useSDKConfig.js';
22
+ import { usePopups } from '../../state/popups/usePopups.js';
23
+ import { useMonitorTx } from '../../hooks/useMonitorTx.js';
24
+ import { formatTimeLeft } from '../../utils/getTimePeriods.js';
25
+ import useModal from '../../hooks/useModal.js';
26
+ import UnstakeModalYield from './components/UnstakeModalYield/UnstakeModalYield.js';
27
+
28
+ const YourBondsModalYield = ({ userBill, onDismiss }) => {
29
+ // Hooks
30
+ const { refetch } = useUserBondsPreTGE();
31
+ const { address: account, chainId } = useEVMAccount();
32
+ const { switchChainAsync } = useSwitchChain();
33
+ const { writeContractAsync } = useWriteContract();
34
+ const SDKConfig = useSDKConfig();
35
+ const { addToastError } = usePopups();
36
+ //State
37
+ const [loading, setLoading] = useState(false);
38
+ const [hash, setHash] = useState('');
39
+ const [useLocal, setUseLocal] = useState(false);
40
+ const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId);
41
+ // Static Data
42
+ const depositUSD = getBalanceNumber(userBill?.accountInfo?.depositAmount ?? '0'); // assumes raise is in stables
43
+ const payoutSymbol = userBill?.underlyingEarnToken?.symbol;
44
+ const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0');
45
+ const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0);
46
+ const claimedUSD = (userBill?.yieldData?.claimed ?? 0) * (userBill?.earnTokenPrice ?? 0);
47
+ const saleFinalized = userBill?.finalized;
48
+ const hasRedeemed = userBill?.accountInfo?.hasRedeemed;
49
+ const canRedeem = saleFinalized && !hasRedeemed;
50
+ const endTimeFinished = Date.now() > (userBill?.endTime ?? 0) * 1000;
51
+ const depositedAssets = userBill?.yieldData?.depositedAssets ?? 0;
52
+ const depositedAssetsUSD = depositedAssets * (userBill?.earnTokenPrice ?? 0);
53
+ const redeemableInLong = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, false);
54
+ const redeemableInShort = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true);
55
+ // Handlers
56
+ const handleRedeemBond = async () => {
57
+ setLoading(true);
58
+ writeContractAsync({
59
+ address: userBill?.contractAddress[userBill?.chainId],
60
+ abi: LaunchBondABI_V_2_4_1,
61
+ functionName: 'redeem',
62
+ chain: userBill?.chainId,
63
+ account,
64
+ })
65
+ .then((r) => {
66
+ setHash(r);
67
+ })
68
+ .catch((e) => {
69
+ console.error(e.message);
70
+ reportError({
71
+ apiUrl: SDKConfig?.urls?.apiV2,
72
+ error: e.message,
73
+ extraInfo: { type: 'redeemLaunchBond', error: e.message },
74
+ chainId: userBill?.chainId,
75
+ account,
76
+ });
77
+ addToastError(e.shortMessage);
78
+ })
79
+ .finally(() => setLoading(false));
80
+ };
81
+ const handleClaim = async () => {
82
+ setLoading(true);
83
+ setHash('');
84
+ if (!userBill?.userOwnedBillsData?.id)
85
+ return;
86
+ writeContractAsync({
87
+ address: userBill?.earnToken.address[userBill?.chainId],
88
+ abi: Vault_Shares_ABI,
89
+ functionName: 'withdraw',
90
+ args: [userBill?.yieldData?.claimableRewards, account, account],
91
+ chain: userBill?.chainId,
92
+ account,
93
+ })
94
+ .then((r) => {
95
+ setHash(r);
96
+ })
97
+ .catch((e) => {
98
+ console.error(e.message);
99
+ reportError({
100
+ apiUrl: SDKConfig?.urls?.apiV2,
101
+ error: e.message,
102
+ extraInfo: { type: 'claimLaunchBond', error: e.message },
103
+ chainId: userBill?.chainId,
104
+ account,
105
+ });
106
+ addToastError(e.shortMessage);
107
+ })
108
+ .finally(() => setLoading(false));
109
+ };
110
+ const handleClick = () => {
111
+ if (hasRedeemed) {
112
+ handleClaim();
113
+ }
114
+ else {
115
+ handleRedeemBond();
116
+ }
117
+ };
118
+ const handleModalClose = useCallback(() => {
119
+ console.log('refetch!');
120
+ refetch();
121
+ setTimeout(() => onDismiss?.(), 1500);
122
+ }, [refetch, onDismiss]);
123
+ const [onOpenUnstakeModal] = useModal(jsx(UnstakeModalYield, { userBill: userBill, onSuccessFullTx: handleModalClose }), false, false, `unstakeModalYield${userBill?.contractAddress[userBill?.chainId]}`);
124
+ useEffect(() => {
125
+ if (isSuccess) {
126
+ console.log('refetch!');
127
+ refetch();
128
+ }
129
+ }, [isSuccess, refetch]);
130
+ return (jsx(Modal, { sx: {
131
+ width: '400px',
132
+ overflowY: 'unset !important',
133
+ background: 'white2',
134
+ p: '0px',
135
+ top: '56%',
136
+ }, onDismiss: onDismiss, children: jsx(Flex, { sx: {
137
+ flexDirection: 'column',
138
+ borderRadius: 'normal',
139
+ position: 'relative',
140
+ background: 'white2',
141
+ p: '20px',
142
+ }, children: jsxs(Flex, { sx: { flexDirection: 'column' }, children: [jsx(YourBondModalHeader, { userBill: userBill, onDismiss: onDismiss }), jsxs(Flex, { sx: { mt: '10px', flexDirection: 'column', gap: '10px' }, children: [jsxs(Flex, { sx: { width: '100%', gap: '15px', position: 'relative' }, children: [jsxs(Flex, { sx: {
143
+ background: 'white3',
144
+ borderRadius: 'normal',
145
+ justifyContent: 'space-between',
146
+ p: '10px',
147
+ width: '65%',
148
+ alignItems: 'center',
149
+ fontSize: '14px',
150
+ }, children: [jsx(Flex, { children: "Deposit" }), jsx(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: saleFinalized && hasRedeemed ? (jsxs(Fragment, { children: [jsx(TokenImage, { symbol: userBill?.underlyingEarnToken?.symbol, size: 18 }), formatNumberSI(depositedAssets), jsxs("span", { sx: { color: 'textDisabledButton', fontSize: '12px' }, children: ["($", formatNumberSI(depositedAssetsUSD), ")"] })] })) : (jsxs(Fragment, { children: [jsx(TokenImage, { symbol: userBill?.lpToken.symbol, size: 18 }), formatNumberSI(depositUSD)] })) })] }), jsx(Flex, { sx: { position: 'absolute', top: '50%', left: '65%', transform: 'translateY(-50%) translateX(-50%)' }, children: jsx(Svg, { icon: "arrow", direction: "right", width: '5px' }) }), jsxs(Flex, { sx: {
151
+ background: 'white3',
152
+ borderRadius: 'normal',
153
+ justifyContent: 'space-between',
154
+ p: '10px',
155
+ width: '34%',
156
+ alignItems: 'center',
157
+ fontSize: '14px',
158
+ }, children: [jsx(Flex, { children: "APR" }), jsxs(Flex, { sx: { color: 'success', fontWeight: 700 }, children: [userBill?.yieldData?.apr?.toFixed(), "%"] })] })] }), jsxs(Flex, { sx: {
159
+ flexDirection: 'column',
160
+ fontSize: '12px',
161
+ fontWeight: 400,
162
+ }, children: [jsx(Flex, { sx: {
163
+ width: '100%',
164
+ justifyContent: 'space-between',
165
+ alignItems: 'center',
166
+ p: '4px 10px',
167
+ background: 'white4',
168
+ height: '26px',
169
+ borderRadius: '10px 10px 0 0',
170
+ }, children: hasRedeemed ? (jsxs(Fragment, { children: [jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [jsx(Flex, { sx: { opacity: 0.6 }, children: "Vault Ends" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "This is the date when reward distribution finishes." }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon", children: jsx(Svg, { icon: "questionCircle", width: "12px", color: 'textDisabledButton' }) }) })] }), jsx(Flex, { sx: { alignItems: 'center' }, children: formatUTCDate(new Date((userBill?.yieldData?.rewardDistributionEnd ?? 0) * 1000)) })] })) : (jsxs(Fragment, { children: [jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [jsx(Flex, { sx: { opacity: 0.6 }, children: "Yield starts in" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "Time left for the vault to start accruing rewards." }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon", children: jsx(Svg, { icon: "questionCircle", width: "12px", color: 'textDisabledButton' }) }) })] }), endTimeFinished && !canRedeem ? ('Soon...') : canRedeem ? ('Activate Yield') : (jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [redeemableInLong, jsx(TooltipBubble, { className: "tooltip-bubble", body: jsxs(Flex, { onClick: () => setUseLocal(!useLocal), sx: { cursor: 'pointer' }, children: ["Claimable at", ' ', formatUTCDate(new Date((userBill?.redeemTime ?? 0) * 1000), false, useLocal), ' ', useLocal ? 'Local' : 'UTC'] }), width: "230px", placement: "bottomRight", transformTip: "translate(10%, 0%)", children: jsx(Flex, { className: "block-header icon", children: jsx(Svg, { icon: "questionCircle", width: "12px", color: 'textDisabledButton' }) }) })] }))] })) }), jsxs(Flex, { sx: {
171
+ width: '100%',
172
+ justifyContent: 'space-between',
173
+ alignItems: 'center',
174
+ p: '4px 10px',
175
+ background: 'white3',
176
+ height: '26px',
177
+ }, children: [jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [jsx(Flex, { sx: { opacity: 0.6 }, children: "Claimable Rewards" }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "Amount of tokens that can be claimed in this moment" }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon", children: jsx(Svg, { icon: "questionCircle", width: "12px", color: 'textDisabledButton' }) }) })] }), jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { symbol: payoutSymbol, size: 18 }), jsx(Text, { sx: { fontSize: '12px', fontWeight: 700, ml: '10px' }, children: formatNumberSI(claimableRewards, 4) }), jsxs(Text, { sx: {
178
+ fontSize: ['10px', '10px', '10px', '12px'],
179
+ fontWeight: 400,
180
+ ml: '10px',
181
+ opacity: 0.6,
182
+ }, children: ["($", formatNumberSI(claimableRewardsUSD), ")"] })] })] }), jsxs(Flex, { sx: {
183
+ width: '100%',
184
+ justifyContent: 'space-between',
185
+ alignItems: 'center',
186
+ p: '4px 10px',
187
+ background: 'white4',
188
+ height: '26px',
189
+ borderRadius: '0px 0px 10px 10px',
190
+ }, children: [jsxs(Flex, { sx: { alignItems: 'center', gap: '5px' }, children: [jsx(Flex, { sx: { opacity: 0.6 }, children: "Claimed " }), jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: UserBillTooltipText.Claimed }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, 0%)", children: jsx(Flex, { className: "block-header icon", children: jsx(Svg, { icon: "questionCircle", width: "12px", color: 'textDisabledButton' }) }) })] }), jsxs(Flex, { sx: { alignItems: 'center' }, children: [jsx(TokenImage, { symbol: payoutSymbol, size: 18 }), jsx(Text, { sx: { fontSize: '12px', fontWeight: 700, ml: '10px' }, children: formatNumberSI(userBill?.yieldData?.claimed, 4) }), jsxs(Text, { sx: {
191
+ fontSize: ['10px', '10px', '10px', '12px'],
192
+ fontWeight: 400,
193
+ ml: '10px',
194
+ opacity: 0.6,
195
+ }, children: ["($", formatNumberSI(claimedUSD), ")"] })] })] })] }), jsxs(Flex, { sx: {
196
+ width: '100%',
197
+ justifyContent: 'space-between',
198
+ gap: ['10px', '10px', '10px', '15px'],
199
+ height: '40px',
200
+ }, children: [jsx(Button, { sx: { width: '65%' }, disabled: !saleFinalized || loading || isLoadingOnChain, load: loading || isLoadingOnChain, onClick: () => {
201
+ if (chainId !== userBill?.chainId) {
202
+ switchChainAsync({ chainId: userBill?.chainId })
203
+ .then(() => {
204
+ handleClick();
205
+ })
206
+ .catch();
207
+ }
208
+ else {
209
+ handleClick();
210
+ }
211
+ }, children: canRedeem
212
+ ? 'Activate yield'
213
+ : hasRedeemed
214
+ ? 'Claim rewards'
215
+ : `Claimable ${endTimeFinished && !saleFinalized ? 'soon' : `in ${redeemableInShort}`}` }), jsx(Button, { sx: { width: '34%' }, disabled: !saleFinalized || !hasRedeemed, variant: "secondary", onClick: onOpenUnstakeModal, children: "Unstake" })] })] })] }) }) }));
216
+ };
217
+
218
+ export { YourBondsModalYield as default };
219
+ //# sourceMappingURL=YourBondsModalYield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YourBondsModalYield.js","sources":["../../../src/views/YourBondsModalYield/YourBondsModalYield.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../config/constants/tooltips'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\nimport useUserBondsPreTGE, { PreTGEUserBonds } from '../../state/bonds/useUserBondsPreTGE'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { formatUTCDate } from '../../utils/dates/formatDate'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport LaunchBondABI_V_2_4_1 from '../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../utils/reportError'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { formatTimeLeft } from '../../utils/getTimePeriods'\nimport useModal from '../../hooks/useModal'\nimport UnstakeModalYield from './components/UnstakeModalYield/UnstakeModalYield'\n\nconst YourBondsModalYield = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Hooks\n const { refetch } = useUserBondsPreTGE()\n const { address: account, chainId } = useEVMAccount()\n const { switchChainAsync } = useSwitchChain()\n const { writeContractAsync } = useWriteContract()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n //State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [useLocal, setUseLocal] = useState(false)\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const depositUSD = getBalanceNumber(userBill?.accountInfo?.depositAmount ?? '0') // assumes raise is in stables\n const payoutSymbol = userBill?.underlyingEarnToken?.symbol\n const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0')\n const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0)\n const claimedUSD = (userBill?.yieldData?.claimed ?? 0) * (userBill?.earnTokenPrice ?? 0)\n const saleFinalized = userBill?.finalized\n const hasRedeemed = userBill?.accountInfo?.hasRedeemed\n const canRedeem = saleFinalized && !hasRedeemed\n const endTimeFinished = Date.now() > (userBill?.endTime ?? 0) * 1000\n const depositedAssets = userBill?.yieldData?.depositedAssets ?? 0\n const depositedAssetsUSD = depositedAssets * (userBill?.earnTokenPrice ?? 0)\n\n const redeemableInLong = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, false)\n const redeemableInShort = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n\n // Handlers\n const handleRedeemBond = async () => {\n setLoading(true)\n writeContractAsync({\n address: userBill?.contractAddress[userBill?.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'redeem',\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'redeemLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClaim = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'withdraw',\n args: [userBill?.yieldData?.claimableRewards, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClick = () => {\n if (hasRedeemed) {\n handleClaim()\n } else {\n handleRedeemBond()\n }\n }\n\n const handleModalClose = useCallback(() => {\n console.log('refetch!')\n refetch()\n setTimeout(() => onDismiss?.(), 1500)\n }, [refetch, onDismiss])\n\n const [onOpenUnstakeModal] = useModal(\n <UnstakeModalYield userBill={userBill} onSuccessFullTx={handleModalClose} />,\n false,\n false,\n `unstakeModalYield${userBill?.contractAddress[userBill?.chainId]}`,\n )\n\n useEffect(() => {\n if (isSuccess) {\n console.log('refetch!')\n refetch()\n }\n }, [isSuccess, refetch])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n p: '0px',\n top: '56%',\n }}\n onDismiss={onDismiss}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n borderRadius: 'normal',\n position: 'relative',\n background: 'white2',\n p: '20px',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex sx={{ mt: '10px', flexDirection: 'column', gap: '10px' }}>\n <Flex sx={{ width: '100%', gap: '15px', position: 'relative' }}>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '65%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Deposit</Flex>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {saleFinalized && hasRedeemed ? (\n <>\n <TokenImage symbol={userBill?.underlyingEarnToken?.symbol} size={18} />\n {formatNumberSI(depositedAssets)}\n <span sx={{ color: 'textDisabledButton', fontSize: '12px' }}>\n (${formatNumberSI(depositedAssetsUSD)})\n </span>\n </>\n ) : (\n <>\n <TokenImage symbol={userBill?.lpToken.symbol} size={18} />\n {formatNumberSI(depositUSD)}\n </>\n )}\n </Flex>\n </Flex>\n <Flex\n sx={{ position: 'absolute', top: '50%', left: '65%', transform: 'translateY(-50%) translateX(-50%)' }}\n >\n <Svg icon=\"arrow\" direction=\"right\" width={'5px'} />\n </Flex>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '34%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>APR</Flex>\n <Flex sx={{ color: 'success', fontWeight: 700 }}>{userBill?.yieldData?.apr?.toFixed()}%</Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n flexDirection: 'column',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '10px 10px 0 0',\n }}\n >\n {hasRedeemed ? (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Vault Ends</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date when reward distribution finishes.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n {formatUTCDate(new Date((userBill?.yieldData?.rewardDistributionEnd ?? 0) * 1000))}\n </Flex>\n </>\n ) : (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Yield starts in</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Time left for the vault to start accruing rewards.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n {endTimeFinished && !canRedeem ? (\n 'Soon...'\n ) : canRedeem ? (\n 'Activate Yield'\n ) : (\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {redeemableInLong}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex onClick={() => setUseLocal(!useLocal)} sx={{ cursor: 'pointer' }}>\n Claimable at{' '}\n {formatUTCDate(new Date((userBill?.redeemTime ?? 0) * 1000), false, useLocal)}{' '}\n {useLocal ? 'Local' : 'UTC'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n )}\n </>\n )}\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimable Rewards</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Amount of tokens that can be claimed in this moment</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimableRewards, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimableRewardsUSD)})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '0px 0px 10px 10px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimed </Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(userBill?.yieldData?.claimed, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimedUSD)})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n gap: ['10px', '10px', '10px', '15px'],\n height: '40px',\n }}\n >\n <Button\n sx={{ width: '65%' }}\n disabled={!saleFinalized || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={() => {\n if (chainId !== userBill?.chainId) {\n switchChainAsync({ chainId: userBill?.chainId! })\n .then(() => {\n handleClick()\n })\n .catch()\n } else {\n handleClick()\n }\n }}\n >\n {canRedeem\n ? 'Activate yield'\n : hasRedeemed\n ? 'Claim rewards'\n : `Claimable ${endTimeFinished && !saleFinalized ? 'soon' : `in ${redeemableInShort}`}`}\n </Button>\n <Button\n sx={{ width: '34%' }}\n disabled={!saleFinalized || !hasRedeemed}\n variant=\"secondary\"\n onClick={onOpenUnstakeModal}\n >\n Unstake\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModalYield\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA0D,KAAI;;AAE9G,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE;IACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AACrD,IAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE;AAC7C,IAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE;AACjD,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE;;IAGrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IACpC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/C,IAAA,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAGxF,IAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,IAAI,GAAG,CAAC,CAAA;AAChF,IAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,mBAAmB,EAAE,MAAM;AAC1D,IAAA,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,IAAI,GAAG,CAAC;IACvF,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,QAAQ,EAAE,cAAc,IAAI,CAAC,CAAC;AAC9E,IAAA,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,IAAI,CAAC,KAAK,QAAQ,EAAE,cAAc,IAAI,CAAC,CAAC;AACxF,IAAA,MAAM,aAAa,GAAG,QAAQ,EAAE,SAAS;AACzC,IAAA,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,EAAE,WAAW;AACtD,IAAA,MAAM,SAAS,GAAG,aAAa,IAAI,CAAC,WAAW;AAC/C,IAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,IAAI;IACpE,MAAM,eAAe,GAAG,QAAQ,EAAE,SAAS,EAAE,eAAe,IAAI,CAAC;IACjE,MAAM,kBAAkB,GAAG,eAAe,IAAI,QAAQ,EAAE,cAAc,IAAI,CAAC,CAAC;IAE5E,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAC/G,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;;AAG/G,IAAA,MAAM,gBAAgB,GAAG,YAAW;QAClC,UAAU,CAAC,IAAI,CAAC;AAChB,QAAA,kBAAkB,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAkB;AACtE,YAAA,GAAG,EAAE,qBAAqB;AAC1B,YAAA,YAAY,EAAE,QAAQ;YACtB,KAAK,EAAE,QAAQ,EAAE,OAAc;YAC/B,OAAO;SACR;AACE,aAAA,IAAI,CAAC,CAAC,CAAC,KAAI;YACV,OAAO,CAAC,CAAC,CAAC;AACZ,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,CAAC,KAAI;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACxB,YAAA,WAAW,CAAC;AACV,gBAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;gBAC9B,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;gBACzD,OAAO,EAAE,QAAQ,EAAE,OAAO;gBAC1B,OAAO;AACR,aAAA,CAAC;AACF,YAAA,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;AAC/B,QAAA,CAAC;aACA,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,YAAW;QAC7B,UAAU,CAAC,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC;AACX,QAAA,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE;YAAE;AACvC,QAAA,kBAAkB,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAkB;AACxE,YAAA,GAAG,EAAE,gBAAgB;AACrB,YAAA,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC;YAC/D,KAAK,EAAE,QAAQ,EAAE,OAAc;YAC/B,OAAO;SACR;AACE,aAAA,IAAI,CAAC,CAAC,CAAC,KAAI;YACV,OAAO,CAAC,CAAC,CAAC;AACZ,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,CAAC,KAAI;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AACxB,YAAA,WAAW,CAAC;AACV,gBAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;gBAC9B,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;gBACxD,OAAO,EAAE,QAAQ,EAAE,OAAO;gBAC1B,OAAO;AACR,aAAA,CAAC;AACF,YAAA,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;AAC/B,QAAA,CAAC;aACA,OAAO,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,WAAW,EAAE;AACf,YAAA,WAAW,EAAE;QACf;aAAO;AACL,YAAA,gBAAgB,EAAE;QACpB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAK;AACxC,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACvB,QAAA,OAAO,EAAE;QACT,UAAU,CAAC,MAAM,SAAS,IAAI,EAAE,IAAI,CAAC;AACvC,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAExB,IAAA,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CACnCA,GAAA,CAAC,iBAAiB,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAA,CAAI,EAC5E,KAAK,EACL,KAAK,EACL,oBAAoB,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA,CAAE,CACnE;IAED,SAAS,CAAC,MAAK;QACb,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACvB,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAExB,IAAA,QACEA,GAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,SAAS,EAAE,kBAAkB;AAC7B,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,CAAC,EAAE,KAAK;AACR,YAAA,GAAG,EAAE,KAAK;SACX,EACD,SAAS,EAAE,SAAS,EAAA,QAAA,EAEpBA,IAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,CAAC,EAAE,MAAM;AACV,aAAA,EAAA,QAAA,EAEDC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnCD,GAAA,CAAC,mBAAmB,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,EACjEC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC5DA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,CAC5DA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,YAAY,EAAE,QAAQ;AACtB,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,CAAC,EAAE,MAAM;AACT,4CAAA,KAAK,EAAE,KAAK;AACZ,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,QAAQ,EAAE,MAAM;AACjB,yCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAe,EACpBA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAC3C,aAAa,IAAI,WAAW,IAC3BC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEF,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EACtE,cAAc,CAAC,eAAe,CAAC,EAChCC,IAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAAA,IAAA,EACtD,cAAc,CAAC,kBAAkB,CAAC,EAAA,GAAA,CAAA,EAAA,CAChC,CAAA,EAAA,CACN,KAEHA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEF,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EACzD,cAAc,CAAC,UAAU,CAAC,CAAA,EAAA,CAC1B,CACJ,GACI,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,mCAAmC,EAAE,EAAA,QAAA,EAErGA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,GAC/C,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,YAAY,EAAE,QAAQ;AACtB,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,CAAC,EAAE,MAAM;AACT,4CAAA,KAAK,EAAE,KAAK;AACZ,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,QAAQ,EAAE,MAAM;AACjB,yCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAW,EAChBC,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CACzF,IACF,EACPA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,aAAa,EAAE,QAAQ;AACvB,oCAAA,QAAQ,EAAE,MAAM;AAChB,oCAAA,UAAU,EAAE,GAAG;AAChB,iCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,KAAK,EAAE,MAAM;AACb,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,CAAC,EAAE,UAAU;AACb,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,MAAM,EAAE,MAAM;AACd,4CAAA,YAAY,EAAE,eAAe;AAC9B,yCAAA,EAAA,QAAA,EAEA,WAAW,IACVC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,YAAA,EAAA,CAAmB,EAC7CA,IAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,sEAA2D,EACtE,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,oBAAoB,EAAA,CAAI,EAAA,CAClE,GACO,CAAA,EAAA,CACX,EACPA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAC/B,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAA,CAC7E,IACN,KAEHC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAwB,EAClDA,GAAA,CAAC,aAAa,IACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,CAA0D,EACrE,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,oBAAoB,EAAA,CAAI,GAClE,EAAA,CACO,CAAA,EAAA,CACX,EACN,eAAe,IAAI,CAAC,SAAS,IAC5B,SAAS,IACP,SAAS,IACX,gBAAgB,KAEhBC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC3C,gBAAgB,EACjBD,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EACFC,IAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,6BACvD,GAAG,EACf,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,GAAG,EACjF,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAA,EAAA,CACtB,EAET,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,aAAa,EACvB,YAAY,EAAC,oBAAoB,YAEjCD,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,IAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,oBAAoB,GAAI,EAAA,CAClE,EAAA,CACO,IACX,CACR,CAAA,EAAA,CACA,CACJ,EAAA,CACI,EACPC,KAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,KAAK,EAAE,MAAM;AACb,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,CAAC,EAAE,UAAU;AACb,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,MAAM,EAAE,MAAM;AACf,yCAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA0B,EACpDA,GAAA,CAAC,aAAa,IACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,CAA2D,EACtE,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,oBAAoB,EAAA,CAAI,EAAA,CAClE,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EAC9CA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACxD,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAA,CAC/B,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;4DACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,4DAAA,UAAU,EAAE,GAAG;AACf,4DAAA,EAAE,EAAE,MAAM;AACV,4DAAA,OAAO,EAAE,GAAG;AACb,yDAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAEE,cAAc,CAAC,mBAAmB,CAAC,EAAA,GAAA,CAAA,EAAA,CACjC,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACPA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,KAAK,EAAE,MAAM;AACb,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,CAAC,EAAE,UAAU;AACb,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,MAAM,EAAE,MAAM;AACd,4CAAA,YAAY,EAAE,mBAAmB;AAClC,yCAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,UAAA,EAAA,CAAiB,EAC3CA,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,mBAAmB,CAAC,OAAO,EAAA,CAAQ,EAChD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,oBAAoB,EAAA,CAAI,EAAA,CAClE,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAI,EAC9CA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACxD,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAA,CAC3C,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;4DACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,4DAAA,UAAU,EAAE,GAAG;AACf,4DAAA,EAAE,EAAE,MAAM;AACV,4DAAA,OAAO,EAAE,GAAG;AACb,yDAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAEE,cAAc,CAAC,UAAU,CAAC,EAAA,GAAA,CAAA,EAAA,CACxB,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACPA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,cAAc,EAAE,eAAe;oCAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACrC,oCAAA,MAAM,EAAE,MAAM;AACf,iCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,MAAM,EAAA,EACL,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EACpB,QAAQ,EAAE,CAAC,aAAa,IAAI,OAAO,IAAI,gBAAgB,EACvD,IAAI,EAAE,OAAO,IAAI,gBAAgB,EACjC,OAAO,EAAE,MAAK;AACZ,4CAAA,IAAI,OAAO,KAAK,QAAQ,EAAE,OAAO,EAAE;gDACjC,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAQ,EAAE;qDAC7C,IAAI,CAAC,MAAK;AACT,oDAAA,WAAW,EAAE;AACf,gDAAA,CAAC;AACA,qDAAA,KAAK,EAAE;4CACZ;iDAAO;AACL,gDAAA,WAAW,EAAE;4CACf;AACF,wCAAA,CAAC,YAEA;AACC,8CAAE;AACF,8CAAE;AACA,kDAAE;kDACA,CAAA,UAAA,EAAa,eAAe,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,CAAA,GAAA,EAAM,iBAAiB,CAAA,CAAE,CAAA,CAAE,EAAA,CACpF,EACTA,IAAC,MAAM,EAAA,EACL,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EACpB,QAAQ,EAAE,CAAC,aAAa,IAAI,CAAC,WAAW,EACxC,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,kBAAkB,EAAA,QAAA,EAAA,SAAA,EAAA,CAGpB,CAAA,EAAA,CACJ,IACF,CAAA,EAAA,CACF,EAAA,CACF,EAAA,CACD;AAEZ;;;;"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE';
3
+ declare const UnstakeModalYield: ({ userBill, onSuccessFullTx, onDismiss, }: {
4
+ userBill?: PreTGEUserBonds;
5
+ onSuccessFullTx?: () => void;
6
+ onDismiss?: () => void;
7
+ }) => React.JSX.Element;
8
+ export default UnstakeModalYield;
@@ -0,0 +1,71 @@
1
+ import { jsx, jsxs } from 'theme-ui/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+ import Modal from '../../../../components/uikit-sdk/Modal/index.js';
4
+ import Flex from '../../../../components/uikit-sdk/Flex/index.js';
5
+ import Vault_Shares_ABI from '../../../../config/abi/Vault_Shares.json.js';
6
+ import { useWriteContract } from 'wagmi';
7
+ import useEVMAccount from '../../../../hooks/accounts/useEVMAccount.js';
8
+ import { useSDKConfig } from '../../../../state/useSDKConfig.js';
9
+ import { usePopups } from '../../../../state/popups/usePopups.js';
10
+ import Checkbox from '../../../../components/uikit-sdk/Checkbox/index.js';
11
+ import Button from '../../../../components/uikit-sdk/Button/Button.js';
12
+ import { formatNumberSI } from '../../../../utils/formatNumber.js';
13
+ import { useMonitorTx } from '../../../../hooks/useMonitorTx.js';
14
+
15
+ const UnstakeModalYield = ({ userBill, onSuccessFullTx, onDismiss, }) => {
16
+ // Hooks
17
+ const { writeContractAsync } = useWriteContract();
18
+ const { address: account } = useEVMAccount();
19
+ const SDKConfig = useSDKConfig();
20
+ const { addToastError } = usePopups();
21
+ // State
22
+ const [loading, setLoading] = useState(false);
23
+ const [hash, setHash] = useState('');
24
+ const [acknowledge, setAcknowledge] = useState(false);
25
+ const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId);
26
+ // Static Data
27
+ const futureRewards = userBill?.yieldData?.futureRewards ?? 0;
28
+ const handleUnstake = async () => {
29
+ setLoading(true);
30
+ setHash('');
31
+ if (!userBill?.userOwnedBillsData?.id)
32
+ return;
33
+ writeContractAsync({
34
+ address: userBill?.earnToken.address[userBill?.chainId],
35
+ abi: Vault_Shares_ABI,
36
+ functionName: 'redeem',
37
+ args: [userBill?.yieldData?.vaultTokenBalance, account, account],
38
+ chain: userBill?.chainId,
39
+ account,
40
+ })
41
+ .then((r) => {
42
+ setHash(r);
43
+ })
44
+ .catch((e) => {
45
+ console.error(e.message);
46
+ reportError({
47
+ apiUrl: SDKConfig?.urls?.apiV2,
48
+ error: e.message,
49
+ extraInfo: { type: 'claimLaunchBond', error: e.message },
50
+ chainId: userBill?.chainId,
51
+ account,
52
+ });
53
+ addToastError(e.shortMessage);
54
+ })
55
+ .finally(() => setLoading(false));
56
+ };
57
+ useEffect(() => {
58
+ if (isSuccess) {
59
+ onSuccessFullTx?.();
60
+ }
61
+ }, [isSuccess, onSuccessFullTx]);
62
+ return (jsx(Modal, { sx: {
63
+ width: '400px',
64
+ overflowY: 'unset !important',
65
+ background: 'white2',
66
+ top: '56%',
67
+ }, title: 'Confirm Unstake', onDismiss: onDismiss, children: jsxs(Flex, { sx: { width: '100%', flexDirection: 'column' }, children: [jsx(Flex, { sx: { fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }, children: "Are you sure you want to unstake?" }), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 400, mt: '10px' }, children: `You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).` }), jsxs(Flex, { sx: { width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }, children: [jsx(Checkbox, { checked: acknowledge, onChange: () => setAcknowledge(!acknowledge), sx: { mr: '10px' } }), "I understand and I want to proceed to unstake."] }), jsxs(Flex, { sx: { width: '100%', gap: '10px', mt: '15px' }, children: [jsx(Button, { sx: { width: '100%', fontSize: '14px', height: '35px' }, disabled: !acknowledge || loading || isLoadingOnChain, load: loading, onClick: handleUnstake, children: "Unstake" }), jsx(Button, { variant: "secondary", sx: { width: '100%', height: '35px', fontSize: '14px' }, onClick: onDismiss, children: "Cancel" })] })] }) }));
68
+ };
69
+
70
+ export { UnstakeModalYield as default };
71
+ //# sourceMappingURL=UnstakeModalYield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnstakeModalYield.js","sources":["../../../../../src/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Vault_Shares_ABI from '../../../../config/abi/Vault_Shares.json'\nimport { useWriteContract } from 'wagmi'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\n\nconst UnstakeModalYield = ({\n userBill,\n onSuccessFullTx,\n onDismiss,\n}: {\n userBill?: PreTGEUserBonds\n onSuccessFullTx?: () => void\n onDismiss?: () => void\n}) => {\n // Hooks\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n // State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [acknowledge, setAcknowledge] = useState(false)\n\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const futureRewards = userBill?.yieldData?.futureRewards ?? 0\n\n const handleUnstake = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'redeem',\n args: [userBill?.yieldData?.vaultTokenBalance, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (isSuccess) {\n onSuccessFullTx?.()\n }\n }, [isSuccess, onSuccessFullTx])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n top: '56%',\n }}\n title={'Confirm Unstake'}\n onDismiss={onDismiss}\n >\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }}>\n Are you sure you want to unstake?\n </Flex>\n <Flex\n sx={{ fontSize: '14px', fontWeight: 400, mt: '10px' }}\n >{`You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).`}</Flex>\n <Flex sx={{ width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }}>\n <Checkbox checked={acknowledge} onChange={() => setAcknowledge(!acknowledge)} sx={{ mr: '10px' }} />I\n understand and I want to proceed to unstake.\n </Flex>\n <Flex sx={{ width: '100%', gap: '10px', mt: '15px' }}>\n <Button\n sx={{ width: '100%', fontSize: '14px', height: '35px' }}\n disabled={!acknowledge || loading || isLoadingOnChain}\n load={loading}\n onClick={handleUnstake}\n >\n Unstake\n </Button>\n <Button variant=\"secondary\" sx={{ width: '100%', height: '35px', fontSize: '14px' }} onClick={onDismiss}>\n Cancel\n </Button>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default UnstakeModalYield\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE';
3
+ declare const YourBondModalHeader: ({ userBill, onDismiss }: {
4
+ userBill?: PreTGEUserBonds;
5
+ onDismiss?: () => void;
6
+ }) => React.JSX.Element;
7
+ export default YourBondModalHeader;
@@ -0,0 +1,32 @@
1
+ import { jsxs, jsx, Fragment } from 'theme-ui/jsx-runtime';
2
+ import TokenImage from '../../../../components/uikit-sdk/TokenImage/index.js';
3
+ import { Box } from 'theme-ui';
4
+ import Flex from '../../../../components/uikit-sdk/Flex/index.js';
5
+ import Skeleton from '../../../../components/uikit-sdk/Skeleton/index.js';
6
+ import Svg from '../../../../components/uikit-sdk/Svg/index.js';
7
+ import ListTag from '../../../../components/uikit-sdk/Tag/ListTag.js';
8
+
9
+ const YourBondModalHeader = ({ userBill, onDismiss }) => {
10
+ // Static Data
11
+ const payoutTokenSymbol = userBill?.underlyingEarnToken?.symbol;
12
+ return (jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', alignItems: 'center' }, children: [jsx(Flex, { sx: { alignItems: 'center', gap: '7px' }, children: payoutTokenSymbol ? (jsxs(Fragment, { children: [jsx(TokenImage, { symbol: payoutTokenSymbol, size: 30, chain: userBill?.chainId }), jsx(Box, { sx: {
13
+ fontSize: ['16px', '16px', '16px', '18px'],
14
+ fontWeight: 700,
15
+ opacity: 0.7,
16
+ overflow: 'hidden',
17
+ whiteSpace: 'nowrap',
18
+ textOverflow: 'ellipsis',
19
+ maxWidth: '100px',
20
+ }, children: payoutTokenSymbol }), jsx(ListTag, { text: 'Yield Bond' })] })) : (jsxs(Fragment, { children: [jsx(Skeleton, { animation: "waves", sx: {
21
+ width: '30px',
22
+ height: '30px',
23
+ borderRadius: '55px',
24
+ mr: '10px',
25
+ } }), jsx(Skeleton, { animation: "waves", sx: {
26
+ width: '100px',
27
+ borderRadius: 'normal',
28
+ } })] })) }), jsx(Flex, { className: "svg-close", onClick: onDismiss, sx: { cursor: 'pointer', p: '2px 5px' }, children: jsx(Svg, { icon: "close", width: '16px' }) })] }));
29
+ };
30
+
31
+ export { YourBondModalHeader as default };
32
+ //# sourceMappingURL=YourBondModalHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YourBondModalHeader.js","sources":["../../../../../src/views/YourBondsModalYield/components/YourBondModalHeader/YourBondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { Box } from 'theme-ui'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Skeleton from '../../../../components/uikit-sdk/Skeleton'\nimport { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport ListTag from '../../../../components/uikit-sdk/Tag/ListTag'\n\nconst YourBondModalHeader = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Static Data\n const payoutTokenSymbol = userBill?.underlyingEarnToken?.symbol\n\n return (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex sx={{ alignItems: 'center', gap: '7px' }}>\n {payoutTokenSymbol ? (\n <>\n <TokenImage symbol={payoutTokenSymbol} size={30} chain={userBill?.chainId} />\n <Box\n sx={{\n fontSize: ['16px', '16px', '16px', '18px'],\n fontWeight: 700,\n opacity: 0.7,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n maxWidth: '100px',\n }}\n >\n {payoutTokenSymbol}\n </Box>\n <ListTag text={'Yield Bond'} />\n </>\n ) : (\n <>\n <Skeleton\n animation=\"waves\"\n sx={{\n width: '30px',\n height: '30px',\n borderRadius: '55px',\n mr: '10px',\n }}\n />\n <Skeleton\n animation=\"waves\"\n sx={{\n width: '100px',\n borderRadius: 'normal',\n }}\n />\n </>\n )}\n </Flex>\n <Flex className=\"svg-close\" onClick={onDismiss} sx={{ cursor: 'pointer', p: '2px 5px' }}>\n <Svg icon=\"close\" width={'16px'} />\n </Flex>\n </Flex>\n )\n}\n\nexport default YourBondModalHeader\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;;;AASA,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA0D,KAAI;;AAE9G,IAAA,MAAM,iBAAiB,GAAG,QAAQ,EAAE,mBAAmB,EAAE,MAAM;AAE/D,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChFC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAC3C,iBAAiB,IAChBD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAA,CAAI,EAC7EA,GAAA,CAAC,GAAG,EAAA,EACF,EAAE,EAAE;gCACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,gCAAA,UAAU,EAAE,GAAG;AACf,gCAAA,OAAO,EAAE,GAAG;AACZ,gCAAA,QAAQ,EAAE,QAAQ;AAClB,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,YAAY,EAAE,UAAU;AACxB,gCAAA,QAAQ,EAAE,OAAO;6BAClB,EAAA,QAAA,EAEA,iBAAiB,EAAA,CACd,EACNA,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,YAAY,EAAA,CAAI,CAAA,EAAA,CAC9B,KAEHD,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAC,QAAQ,EAAA,EACP,SAAS,EAAC,OAAO,EACjB,EAAE,EAAE;AACF,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,YAAY,EAAE,MAAM;AACpB,gCAAA,EAAE,EAAE,MAAM;6BACX,EAAA,CACD,EACFA,IAAC,QAAQ,EAAA,EACP,SAAS,EAAC,OAAO,EACjB,EAAE,EAAE;AACF,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,YAAY,EAAE,QAAQ;AACvB,6BAAA,EAAA,CACD,IACD,CACJ,EAAA,CACI,EACPA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAA,QAAA,EACrFA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,MAAM,GAAI,EAAA,CAC9B,CAAA,EAAA,CACF;AAEX;;;;"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "6.0.8",
6
+ "version": "6.1.0-test.0",
7
7
  "module": "dist/main.js",
8
8
  "type": "module",
9
9
  "types": "dist/main.d.ts",
@@ -153,7 +153,7 @@
153
153
  "wagmi": "2.19.5"
154
154
  },
155
155
  "dependencies": {
156
- "@ape.swap/apeswap-lists": "4.5.19",
156
+ "@ape.swap/apeswap-lists": "4.6.0-test.2",
157
157
  "@emotion/react": "11.14.0",
158
158
  "@jup-ag/api": "6.0.45",
159
159
  "bignumber.js": "9.3.1",