@huma-finance/widgets 0.0.62-beta.611 → 0.0.62-beta.616
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/API.md +0 -185
- package/dist/cjs/index.cjs +481 -1661
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -116
- package/dist/index.js +484 -1661
- package/dist/index.js.map +1 -1
- package/package.json +9 -12
- package/src/components/InputAmountModal.tsx +2 -12
- package/src/components/Lend/addRedemptionV2/2-ChooseAmount.tsx +6 -1
- package/src/components/Lend/supplyV2/6-Success.tsx +10 -8
- package/src/components/Lend/supplyV2/7-Notifications.tsx +6 -1
- package/src/components/Notifi/NotifiContextWrapper.tsx +57 -0
- package/src/components/Notifi/NotifiSubscriptionModal.tsx +118 -113
- package/src/components/WidgetWrapper.tsx +4 -6
- package/src/hooks/useNotifi.ts +28 -17
- package/src/index.tsx +7 -124
- package/src/store/widgets.reducers.ts +0 -5
- package/src/store/widgets.store.ts +0 -1
- package/src/theme/coreThemeConstants.ts +1 -1
- package/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx +0 -86
- package/src/components/CreditLine/solanaBorrow/2-ApproveAllowance.tsx +0 -87
- package/src/components/CreditLine/solanaBorrow/index.tsx +0 -96
- package/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx +0 -114
- package/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx +0 -183
- package/src/components/Lend/solanaAddRedemption/3-Transfer.tsx +0 -102
- package/src/components/Lend/solanaAddRedemption/4-Done.tsx +0 -29
- package/src/components/Lend/solanaAddRedemption/index.tsx +0 -140
- package/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx +0 -114
- package/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx +0 -99
- package/src/components/Lend/solanaCancelRedemption/3-Done.tsx +0 -55
- package/src/components/Lend/solanaCancelRedemption/index.tsx +0 -152
- package/src/components/Lend/solanaSupply/1-ChooseTranche.tsx +0 -116
- package/src/components/Lend/solanaSupply/2-Evaluation.tsx +0 -0
- package/src/components/Lend/solanaSupply/3-ChooseAmount.tsx +0 -130
- package/src/components/Lend/solanaSupply/4-Transfer.tsx +0 -89
- package/src/components/Lend/solanaSupply/5-Success.tsx +0 -50
- package/src/components/Lend/solanaSupply/index.tsx +0 -143
- package/src/components/SolanaTxDoneModal.tsx +0 -115
- package/src/components/SolanaTxSendModal.tsx +0 -61
- package/src/components/SolanaViewOnExplorer.tsx +0 -29
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
|
2
|
-
import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, usePoolUnderlyingToken, useFactoring,
|
|
2
|
+
import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, usePoolUnderlyingToken, useFactoring, Provider as Provider$1 } from '@huma-finance/web-shared';
|
|
3
3
|
import { useTheme, css, Box, Typography, Tooltip, Button, Dialog, Slider, Input, Divider, TextField, FormControl, FormLabel, RadioGroup, FormControlLabel, Radio, Snackbar, Alert, Link, Skeleton, TablePagination, LinearProgress, createTheme, ThemeProvider } from '@mui/material';
|
|
4
4
|
import { useAtom, Provider as Provider$2 } from 'jotai';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import React__default, { useCallback, useState, useEffect, useMemo, useRef } from 'react';
|
|
7
7
|
import { useSelector, useDispatch, Provider } from 'react-redux';
|
|
8
|
-
import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi,
|
|
8
|
+
import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi, CreditState, isEmpty, CreditStateV2, upScale, toBigNumber, TRANSFER_ABI, FirstLossCoverIndex, combineStyles, timestampToLL, getTrancheAssetsAndShares, IdentityService, CHAINS, configUtil, IdentityServiceV2, IdentityVerificationStatusV2, CampaignService, CAMPAIGN_REFERENCE_CODE, KYC_PROVIDER, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, CreditEventText, SuperfluidPoolProcessor_ABI, hasRFActiveLoan, getWalletAddressAbbr, PoolMap, CreditEvent, ChainEnum, getBlockchainConfigFromChain } from '@huma-finance/shared';
|
|
9
9
|
import { useWeb3React } from '@web3-react/core';
|
|
10
10
|
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
11
11
|
import { useResetAtom } from 'jotai/utils';
|
|
@@ -15,16 +15,17 @@ import { css as css$1 } from '@emotion/react';
|
|
|
15
15
|
import ChevronLeftOutlinedIcon from '@mui/icons-material/ChevronLeftOutlined';
|
|
16
16
|
import CloseIcon from '@mui/icons-material/Close';
|
|
17
17
|
import { MaxUint256 } from '@ethersproject/constants';
|
|
18
|
-
import { BigNumber, ethers, Contract } from 'ethers';
|
|
18
|
+
import { BigNumber, ethers, Contract, providers } from 'ethers';
|
|
19
19
|
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
20
20
|
import ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp';
|
|
21
|
-
import {
|
|
21
|
+
import { useNotifiFrontendClientContext, useNotifiTenantConfigContext, useNotifiTopicContext, useNotifiTargetContext, useNotifiUserSettingContext, FtuStage, NotifiContextProvider } from '@notifi-network/notifi-react';
|
|
22
|
+
import '@notifi-network/notifi-frontend-client';
|
|
22
23
|
import { NumericFormat } from 'react-number-format';
|
|
23
24
|
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
|
|
24
25
|
import dayjs from 'dayjs';
|
|
25
26
|
import Persona from 'persona';
|
|
26
|
-
import moment from 'moment';
|
|
27
27
|
import { drawdownWithReceivable, HumaContext, HumaReceivableFactory, makePaymentWithReceivable, makePrincipalPaymentAndDrawdownWithReceivable, SubgraphService } from '@huma-finance/sdk';
|
|
28
|
+
import moment from 'moment';
|
|
28
29
|
import { gql, useQuery, ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
29
30
|
import Table from '@mui/material/Table';
|
|
30
31
|
import TableBody from '@mui/material/TableBody';
|
|
@@ -33,10 +34,7 @@ import TableContainer from '@mui/material/TableContainer';
|
|
|
33
34
|
import TableHead from '@mui/material/TableHead';
|
|
34
35
|
import TableRow from '@mui/material/TableRow';
|
|
35
36
|
import { getAddress } from '@ethersproject/address';
|
|
36
|
-
import {
|
|
37
|
-
import { TOKEN_2022_PROGRAM_ID, createApproveCheckedInstruction } from '@solana/spl-token';
|
|
38
|
-
import { useWallet, useConnection } from '@solana/wallet-adapter-react';
|
|
39
|
-
import { Transaction, PublicKey } from '@solana/web3.js';
|
|
37
|
+
import { arrayify } from '@ethersproject/bytes';
|
|
40
38
|
|
|
41
39
|
function _taggedTemplateLiteral(strings, raw) {
|
|
42
40
|
if (!raw) {
|
|
@@ -99,7 +97,6 @@ const widgetSlice = createSlice({
|
|
|
99
97
|
state.withdrawShares = undefined;
|
|
100
98
|
state.redeemAmount = undefined;
|
|
101
99
|
state.redeemShares = undefined;
|
|
102
|
-
state.solanaSignature = undefined;
|
|
103
100
|
},
|
|
104
101
|
setStep: (state, _ref) => {
|
|
105
102
|
let {
|
|
@@ -190,16 +187,10 @@ const widgetSlice = createSlice({
|
|
|
190
187
|
} = _ref12;
|
|
191
188
|
state.multisend = payload;
|
|
192
189
|
},
|
|
193
|
-
|
|
190
|
+
setError: (state, _ref13) => {
|
|
194
191
|
let {
|
|
195
192
|
payload
|
|
196
193
|
} = _ref13;
|
|
197
|
-
state.solanaSignature = payload;
|
|
198
|
-
},
|
|
199
|
-
setError: (state, _ref14) => {
|
|
200
|
-
let {
|
|
201
|
-
payload
|
|
202
|
-
} = _ref14;
|
|
203
194
|
state.errorMessage = payload.errorMessage;
|
|
204
195
|
state.errorReason = payload.errorReason;
|
|
205
196
|
state.step = WIDGET_STEP.Error;
|
|
@@ -220,8 +211,7 @@ const {
|
|
|
220
211
|
setWithdrawAmount,
|
|
221
212
|
setWithdrawShares,
|
|
222
213
|
setRedeemAmount,
|
|
223
|
-
setRedeemShares
|
|
224
|
-
setSolanaSignature
|
|
214
|
+
setRedeemShares
|
|
225
215
|
} = widgetSlice.actions;
|
|
226
216
|
var widgetsReducers = widgetSlice.reducer;
|
|
227
217
|
|
|
@@ -231,7 +221,7 @@ var SorryImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAFTCAYAAAC52Y
|
|
|
231
221
|
|
|
232
222
|
var AutoPaybackImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAAFkCAYAAACjPXVqAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAJL6SURBVHgB7Z0JYBNl+sbfaQu9S7hvGu6blhuk2nCoKCpVUVfdXYq7KuquoKviqru064nrCnU90PW/tIsHIkirAgJCUwXkppX7bApyI6SUFgql+c/7zUwySXNOJpmkfX+7sWmSljRfMs+83/d8zwtAEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBeAsHBEEQRL1Bx4NfZBeIjIzUS/dfu3bNJHs4XjcjUM8gcSPUIOO5556bGRcXl7p+/fr8lStXFvC3GUH44BAEoTKigOl50Uq1WCypffr0SW7btm1q+/btdbGxsbqOHTtCkyZN2GM7derk9HccOXIEysvL4cKFC+w6r2/FFRUV5nXr1pXU1taa+IcU4yVchY/EjfALvV4/c968eVkGgwFycnIgKysLxM+Cib8M5C/17oyQIIINr2UoZAYUsJSUlHResFL79esH/fv3Z+IlCZla7NixgwkeL3RQVlZW/N133xVzHFfAV30odiYgiHrOzOLiYgvCi5qF/97xkgUEQSiCFzRDs2bN5tx7772l77//vuXHH3+0aAn++3/9618tt99+eyH/3Kaj4AJBeACnGAziRQ/hgX727NnsTT9nzhxJzM7zFZyFr+ak70uBIAivQUHjK7I506dPP//tt99a+CrJEorw1ZwFBXfkyJEodJkkdIQjug5t9DOfefj1819/tN2Cl1nPzbM8fN9z29u27DCHvz8VQpQnn3yyFN/kpaWlFv6NLQmZfsaMGed5pNvwogOCIFyC62d8hTYzIyPjPFZHoSporvj5558tjz/+uIX/G+aRyBGMLh17Fm/9+rzlwBqL08snbxdafn/nk6X9ew6eB0JVFxLw1dlMFDVErNKYsOF9zzzzTD7e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Pc6+xkYkMiOM3R5ti/RrHPbw8V9fLb0711RFIcmEZ0jcCIJIbR2tN3SPGzi5Z/zg1EFNxjLRYchUS/gvZ/2vfTUnXyATzSicnVPT7qqjSUSen8mEMyLCJpBiL7xtF1bDB0f/NJC/sRgIwgMkbgRByNGDaEjpL3NeMura8+tsJ5D3pZOwbSIHuxtlJhFhWrPWIqme7V/hf1GtOFWZ+8uLxevOLx4IBOEFJG4EQbhCz18M1zW9fWJybJ+MgUljoUUjMdxZfIB9tJdYgbH0kwjZ9gIpF9NB+RymIq2PlPbayTaSowvzr/vGkZGE8BoSN4IgvAGdl4YBiTdkdIjpPrFfYpoODSkIZ9+VQLY/zhl1I76s1Arf2wTONiu6/vwSmHfshc5Ae9sILyFxIwhCCcx52TV2oGFwE2zCOky41SJtCHcyFelYxcldKPKN4Q4Px5tfPXhProm6bRM+QOJGEIS/GLrGp2boY/pO7J0wXI+GFCFdxJX5RI6TSs7hK3YT/+fhyaOBum0TPkDiRhCEmmAciWFs89/w63T9DL3ih0Fz1oTV8zQlYlfRsU5uHHx6/DXTml9pbxvhGyRuBEEECj1/MQxpcvPklMQbWLfx5qLz0rGas24Yt6alCPvosJHq8/tuJCMJ4TMkbgRBBAM9fzH0Sbhu4tAmNxk6x/bTdYrtbbX5u+L7s5+aPj/xGk5JmoAgfIDEjSAILWBNWAckpqfzU5f6XnxV57gut+z0x+bFp2ajsNGmbcJnSNwIgtAa1oS1d/yIlMYRMalXai+bN5qX5Z27emIOUMVGEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEAQRXP4f8kfGser8rBoAAAAASUVORK5CYII=";
|
|
233
223
|
|
|
234
|
-
var _templateObject$
|
|
224
|
+
var _templateObject$r, _templateObject2$o, _templateObject3$i, _templateObject4$d, _templateObject5$7, _templateObject6$6, _templateObject7$5, _templateObject8$3;
|
|
235
225
|
function ErrorModal(_ref) {
|
|
236
226
|
let {
|
|
237
227
|
title,
|
|
@@ -248,13 +238,13 @@ function ErrorModal(_ref) {
|
|
|
248
238
|
errorReason = 'Oops! Something went wrong';
|
|
249
239
|
}
|
|
250
240
|
const styles = {
|
|
251
|
-
wrapper: css(_templateObject$
|
|
252
|
-
header: css(_templateObject2$
|
|
253
|
-
sorry: css(_templateObject3$
|
|
254
|
-
content: css(_templateObject4$
|
|
255
|
-
errorIcon: css(_templateObject5$
|
|
256
|
-
messageWrapper: css(_templateObject6$
|
|
257
|
-
errorMessage: css(_templateObject7$
|
|
241
|
+
wrapper: css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
242
|
+
header: css(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
243
|
+
sorry: css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
|
|
244
|
+
content: css(_templateObject4$d || (_templateObject4$d = _taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ", ";\n position: relative;\n margin-top: ", ";\n height: 79px;\n "])), theme.spacing(2, 0), theme.spacing(9)),
|
|
245
|
+
errorIcon: css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
|
|
246
|
+
messageWrapper: css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
|
|
247
|
+
errorMessage: css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: 14px;\n font-weight: 400;\n color: ", ";\n cursor: pointer;\n display: -webkit-box;\n line-height: 16px;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: ", ";\n "])), theme.spacing(0.5), theme.palette.text.primary, theme.spacing(2)),
|
|
258
248
|
okButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
259
249
|
};
|
|
260
250
|
const handleCloseModal = useCallback(() => {
|
|
@@ -1643,7 +1633,7 @@ function HumaLoading(_ref2) {
|
|
|
1643
1633
|
});
|
|
1644
1634
|
}
|
|
1645
1635
|
|
|
1646
|
-
var _templateObject$
|
|
1636
|
+
var _templateObject$q, _templateObject2$n, _templateObject3$h, _templateObject4$c;
|
|
1647
1637
|
function WrapperModal(_ref) {
|
|
1648
1638
|
let {
|
|
1649
1639
|
title,
|
|
@@ -1652,10 +1642,10 @@ function WrapperModal(_ref) {
|
|
|
1652
1642
|
} = _ref;
|
|
1653
1643
|
const theme = useTheme();
|
|
1654
1644
|
const styles = {
|
|
1655
|
-
wrapper: css(_templateObject$
|
|
1656
|
-
header: css(_templateObject2$
|
|
1657
|
-
content: css(_templateObject3$
|
|
1658
|
-
bottom: css(_templateObject4$
|
|
1645
|
+
wrapper: css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
1646
|
+
header: css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteral(["\n ", ";\n font-weight: 700;\n font-size: 20px;\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
1647
|
+
content: css(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary),
|
|
1648
|
+
bottom: css(_templateObject4$c || (_templateObject4$c = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
1659
1649
|
};
|
|
1660
1650
|
return jsxs(Box, {
|
|
1661
1651
|
css: styles.wrapper,
|
|
@@ -1670,7 +1660,7 @@ function WrapperModal(_ref) {
|
|
|
1670
1660
|
});
|
|
1671
1661
|
}
|
|
1672
1662
|
|
|
1673
|
-
var _templateObject$
|
|
1663
|
+
var _templateObject$p, _templateObject2$m;
|
|
1674
1664
|
function LoadingModal(_ref) {
|
|
1675
1665
|
let {
|
|
1676
1666
|
title,
|
|
@@ -1680,8 +1670,8 @@ function LoadingModal(_ref) {
|
|
|
1680
1670
|
} = _ref;
|
|
1681
1671
|
const theme = useTheme();
|
|
1682
1672
|
const styles = {
|
|
1683
|
-
loader: css(_templateObject$
|
|
1684
|
-
bottom: css(_templateObject2$
|
|
1673
|
+
loader: css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
|
|
1674
|
+
bottom: css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
1685
1675
|
};
|
|
1686
1676
|
return jsxs(WrapperModal, {
|
|
1687
1677
|
title: title,
|
|
@@ -1708,8 +1698,7 @@ function WidgetWrapper(_ref) {
|
|
|
1708
1698
|
const theme = useTheme();
|
|
1709
1699
|
const dispatch = useAppDispatch();
|
|
1710
1700
|
const {
|
|
1711
|
-
step
|
|
1712
|
-
solanaSignature
|
|
1701
|
+
step
|
|
1713
1702
|
} = useAppSelector(selectWidgetState);
|
|
1714
1703
|
const [{
|
|
1715
1704
|
state,
|
|
@@ -1725,14 +1714,12 @@ function WidgetWrapper(_ref) {
|
|
|
1725
1714
|
}
|
|
1726
1715
|
}, [dispatch, failReason, state]);
|
|
1727
1716
|
useEffect(() => {
|
|
1728
|
-
if (step === WIDGET_STEP.Done &&
|
|
1729
|
-
if (handleSuccess
|
|
1717
|
+
if (step === WIDGET_STEP.Done && txReceipt) {
|
|
1718
|
+
if (handleSuccess) {
|
|
1730
1719
|
handleSuccess(txReceipt.blockNumber);
|
|
1731
|
-
} else if (handleSuccess && solanaSignature) {
|
|
1732
|
-
handleSuccess(0); // solana tx doesn't have block number
|
|
1733
1720
|
}
|
|
1734
1721
|
}
|
|
1735
|
-
}, [handleSuccess,
|
|
1722
|
+
}, [handleSuccess, step, txReceipt]);
|
|
1736
1723
|
const handleCloseModal = useCallback(() => {
|
|
1737
1724
|
reset();
|
|
1738
1725
|
dispatch(resetState());
|
|
@@ -1759,7 +1746,7 @@ function WidgetWrapper(_ref) {
|
|
|
1759
1746
|
});
|
|
1760
1747
|
}
|
|
1761
1748
|
|
|
1762
|
-
var _templateObject$
|
|
1749
|
+
var _templateObject$o;
|
|
1763
1750
|
function BottomButton(_ref) {
|
|
1764
1751
|
let {
|
|
1765
1752
|
variant,
|
|
@@ -1767,7 +1754,7 @@ function BottomButton(_ref) {
|
|
|
1767
1754
|
onClick,
|
|
1768
1755
|
children
|
|
1769
1756
|
} = _ref;
|
|
1770
|
-
const styles = css(_templateObject$
|
|
1757
|
+
const styles = css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
|
|
1771
1758
|
return jsx(Box, {
|
|
1772
1759
|
css: styles,
|
|
1773
1760
|
children: jsx(Button, {
|
|
@@ -1800,7 +1787,7 @@ function ViewOnExplorer(_ref) {
|
|
|
1800
1787
|
});
|
|
1801
1788
|
}
|
|
1802
1789
|
|
|
1803
|
-
var _templateObject$
|
|
1790
|
+
var _templateObject$n, _templateObject2$l;
|
|
1804
1791
|
function ApproveAllowanceModal(_ref) {
|
|
1805
1792
|
let {
|
|
1806
1793
|
poolInfo,
|
|
@@ -1838,8 +1825,8 @@ function ApproveAllowanceModal(_ref) {
|
|
|
1838
1825
|
}
|
|
1839
1826
|
}, [handleSuccess, reset, resetAfterSuccess, state, symbol]);
|
|
1840
1827
|
const styles = {
|
|
1841
|
-
iconWrapper: css(_templateObject$
|
|
1842
|
-
description: css(_templateObject2$
|
|
1828
|
+
iconWrapper: css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
|
|
1829
|
+
description: css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
|
|
1843
1830
|
};
|
|
1844
1831
|
const sendIncreaseAllowance = useCallback(async () => {
|
|
1845
1832
|
const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
|
|
@@ -1891,7 +1878,7 @@ function ApproveAllowanceModal(_ref) {
|
|
|
1891
1878
|
});
|
|
1892
1879
|
}
|
|
1893
1880
|
|
|
1894
|
-
function ApproveAllowance$
|
|
1881
|
+
function ApproveAllowance$c(_ref) {
|
|
1895
1882
|
let {
|
|
1896
1883
|
poolInfo,
|
|
1897
1884
|
amount
|
|
@@ -1909,7 +1896,7 @@ function ApproveAllowance$d(_ref) {
|
|
|
1909
1896
|
});
|
|
1910
1897
|
}
|
|
1911
1898
|
|
|
1912
|
-
var _templateObject$
|
|
1899
|
+
var _templateObject$m, _templateObject2$k, _templateObject3$g, _templateObject4$b, _templateObject5$6, _templateObject6$5;
|
|
1913
1900
|
function TxDoneModal(_ref) {
|
|
1914
1901
|
let {
|
|
1915
1902
|
content,
|
|
@@ -1921,12 +1908,12 @@ function TxDoneModal(_ref) {
|
|
|
1921
1908
|
const dispatch = useAppDispatch();
|
|
1922
1909
|
const reset = useResetAtom(txAtom);
|
|
1923
1910
|
const styles = {
|
|
1924
|
-
wrapper: css(_templateObject$
|
|
1925
|
-
header: css(_templateObject2$
|
|
1926
|
-
content: css(_templateObject3$
|
|
1927
|
-
subContent: css(_templateObject4$
|
|
1928
|
-
check: css(_templateObject5$
|
|
1929
|
-
doneButton: css(_templateObject6$
|
|
1911
|
+
wrapper: css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
1912
|
+
header: css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
1913
|
+
content: css(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
|
|
1914
|
+
subContent: css(_templateObject4$b || (_templateObject4$b = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
|
|
1915
|
+
check: css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
|
|
1916
|
+
doneButton: css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
|
|
1930
1917
|
};
|
|
1931
1918
|
const handleCloseModal = useCallback(() => {
|
|
1932
1919
|
reset();
|
|
@@ -1968,7 +1955,7 @@ function TxDoneModal(_ref) {
|
|
|
1968
1955
|
});
|
|
1969
1956
|
}
|
|
1970
1957
|
|
|
1971
|
-
function Success$
|
|
1958
|
+
function Success$e(_ref) {
|
|
1972
1959
|
let {
|
|
1973
1960
|
poolInfo,
|
|
1974
1961
|
handleAction
|
|
@@ -2033,10 +2020,10 @@ function CreditLineApprove(_ref) {
|
|
|
2033
2020
|
loadingTitle: "Approve Allowance",
|
|
2034
2021
|
handleClose: handleClose,
|
|
2035
2022
|
handleSuccess: handleSuccess,
|
|
2036
|
-
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
2023
|
+
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$c, {
|
|
2037
2024
|
poolInfo: poolInfo,
|
|
2038
2025
|
amount: amount
|
|
2039
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
2026
|
+
}), step === WIDGET_STEP.Done && jsx(Success$e, {
|
|
2040
2027
|
poolInfo: poolInfo,
|
|
2041
2028
|
handleAction: handleClose
|
|
2042
2029
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
@@ -2047,7 +2034,7 @@ function CreditLineApprove(_ref) {
|
|
|
2047
2034
|
});
|
|
2048
2035
|
}
|
|
2049
2036
|
|
|
2050
|
-
var _templateObject$
|
|
2037
|
+
var _templateObject$l, _templateObject2$j;
|
|
2051
2038
|
function ApproveAllowanceModalV2(_ref) {
|
|
2052
2039
|
let {
|
|
2053
2040
|
poolInfo,
|
|
@@ -2082,8 +2069,8 @@ function ApproveAllowanceModalV2(_ref) {
|
|
|
2082
2069
|
}
|
|
2083
2070
|
}, [handleSuccess, reset, resetAfterSuccess, state]);
|
|
2084
2071
|
const styles = {
|
|
2085
|
-
iconWrapper: css(_templateObject$
|
|
2086
|
-
description: css(_templateObject2$
|
|
2072
|
+
iconWrapper: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
|
|
2073
|
+
description: css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
|
|
2087
2074
|
};
|
|
2088
2075
|
const sendIncreaseAllowance = useCallback(async () => {
|
|
2089
2076
|
const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
|
|
@@ -2132,7 +2119,7 @@ function ApproveAllowanceModalV2(_ref) {
|
|
|
2132
2119
|
});
|
|
2133
2120
|
}
|
|
2134
2121
|
|
|
2135
|
-
function ApproveAllowance$
|
|
2122
|
+
function ApproveAllowance$b(_ref) {
|
|
2136
2123
|
let {
|
|
2137
2124
|
poolInfo,
|
|
2138
2125
|
poolUnderlyingToken
|
|
@@ -2150,7 +2137,7 @@ function ApproveAllowance$c(_ref) {
|
|
|
2150
2137
|
});
|
|
2151
2138
|
}
|
|
2152
2139
|
|
|
2153
|
-
function Success$
|
|
2140
|
+
function Success$d(_ref) {
|
|
2154
2141
|
let {
|
|
2155
2142
|
handleAction
|
|
2156
2143
|
} = _ref;
|
|
@@ -2202,10 +2189,10 @@ function AutoPaybackV2(_ref) {
|
|
|
2202
2189
|
loadingTitle: "Auto Payback",
|
|
2203
2190
|
handleClose: handleClose,
|
|
2204
2191
|
handleSuccess: handleSuccess,
|
|
2205
|
-
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
2192
|
+
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$b, {
|
|
2206
2193
|
poolInfo: poolInfo,
|
|
2207
2194
|
poolUnderlyingToken: poolUnderlyingToken
|
|
2208
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
2195
|
+
}), step === WIDGET_STEP.Done && jsx(Success$d, {
|
|
2209
2196
|
handleAction: handleClose
|
|
2210
2197
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
2211
2198
|
title: "Auto Payback",
|
|
@@ -2260,17 +2247,17 @@ const useEA = () => {
|
|
|
2260
2247
|
|
|
2261
2248
|
var spinner = "data:image/gif;base64,R0lGODlhuQEjAfcAAFFRUVFRUVFRUVFRUVNTU1dXV1hYWFlZWVlZWVxcXGtra4ODg5GRkZmZmZmZmZmZmZqampubm52dnaGhoaioqLCwsLe3t7y8vL29vb29vb29vb6+vr6+vr6+vr+/v8HBwcTExMjIyMvLy83Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztHR0dfX1+7u7vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBAAj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ3qHAgAIItKhABSgixkCLNNKoAAoxEsZijTwiwEGOge3YI484AtlXBUMOqYCRaKEAAQNQwuiQkEnW+COTY6mowJZcKgABQxxUOSQDWIrFwQJdpkmmQhCI2eOSZX6FApppqsmmmz3G+dWKddZ55UFt4mmjnl2h0Gefax4UpqAtLkAoVxAc2qdCVLr55aNa8Slpl0UeNKOgcCrkJJQQdIqpUZpuuqWpBlWa5KX+CLUpwKy0IiDlqUSlqiqrBXHgKo+JHqQArcTSGiquQVWgKpeOLmRolcEahECx1ApwLLI/0akqrAsFWuMCvBI0bLXUNovtT8qqaq5DKFRQAQfhElQBueT+eW5PutYZb0bj0lvstffuFGmfC9jbEQr+khswUBykugC3H82bMLX7LowTChiXBMHE1Bps8Vgbc0ysxx+HhbDItFZcclco07ryWQu0HO3LJY1KqsoqnSwyzSk9CeXPDEAMEwMiC81zSEAnHXRNRCds9NEf+az0z0+3FDK5t0ItkopTJ33T1bMiULXWHUnddZQ5ZUz2SWcnPfbaWLUN9NtwWyU31XWDZfb+2STnjRXXcvutt9xZCw7p2YUbfrjSiSveFQcQRN6345RXbvnlmGeu+eacd+7556CHLvp37UYOQQU4j15UBaa33rjqR7HeuuuwLwX57LOnXjtPuOP++u5A9Y478EcJPzvxRhnfOvJFKR/578zvdLvxukdvk/LQWy+w8NobJbvpk3f/E8bVi2/++einr/767LfPHAocxB+/+zzJbz+89ON0//3l52/S/vfzH03gB0D5CXAmBbSfRMjXvwM6K4HzgwgDyefAjBAwgRKcIAUreBEIVk+DDOTgRS64vwyCsIEiLAgJDWhCEKYQIxjD3wJPiMIXboSGNbShRk6ow5dosIeSMVEbEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pTdCwgAIfkECQUAmQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc9PT09PT09PT09PT1CQkJKSkpPT09QUFBRUVFTU1NYWFhdXV1iYmJmZmZpaWlpaWlpaWlsbGxycnJ/f3+MjIyampqqqqqvr6+xsbGxsbGxsbGxsbGysrKysrK1tbW4uLi7u7u8vLy9vb29vb2+vr6+vr6+vr7AwMDExMTHx8fKysrMzMzQ0NDV1dXi4uLv7+/7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAzCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiid+VQMEEE1DQAYqJlSDBAzTW+EAFMBZWgY08PjBBjoJ10GOPPwLpFwtDDomjkWix0EEHJUBEQZJDMmlWByxm2SILDVE55ItWirWilloumRCSXvJoZphejUmmlmAihGaaNVLA5ldYvvmmQnPSeeOdXump55oG+VljnIBmxYKgeio0gaEPcJmoVnkyqqVCJRha5EIslFCCpJMiVamlLC70KJ2cToDAqqzaGapR/iWQeulCM3oZZUIVsKorq4i+GpSsLLq60JRDSgDqQRTsqiwChPrqk5uW3spQrDZK0GxBHSy7rLTO/iSrsB9pu+wD3QYVq6Ui5Squsr2Wu9O5b4L70QPrKkuuu0B14GYFx4JU77L4qsXCv8oGnNbABOtqcFoJK7zwWfQ2LMHDZ2XbMLcUn1RCBxV00K9MEf87ccYocVzByShjDBPC/5KMEsowo9zuSyX8+7HLIJkcM8w3vxTyrpviTNLORN9E7aoPUNCz0B6VQPTOSzNN6dMxqyw1V1RXfXVYOmdt9daKZo0y2GGJfbJQTnpMtkZOZw2UjALEHTcBE0S9dkNdx2w3/k0PyO233EHfLRELRf+EwN+IC3Cv4BV5+nVOhyeOeOCMT0WB5JLPXPlTmEuOwOZUVdC55HuDblTfoyN+relKEZA64iOz7tTriC8uO1Ou0y537LcvhbruAqzee1GiAy9A6cMDZfznyTN1ue6aN19U5KlTLr1AGz+J/EzUY2779QKl/eT428f0e+LWSy/++OS/LcHfBBgLvkHs1//kUGmXL3v29rc/P1P9s9//ABhA9g1wKQU04AGTksAnPW6BQFlf/yCoFP7Z74EUfFv/MJjBCNZPfx0MoQhHSMISmvCEKEyh1DrlKRCq8CUsdJynXvgTGdqQhjyxoQ1diEON6VCGuj3MyQ+BGESjDXGGRbTJET+VRJvEUIdNNKIOeRjFkTyRiVXMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzPAEBAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQklJSVBQUFZWVlhYWFlZWVpaWmBgYG1tbXNzc3R0dHR0dHV1dXd3d3x8fIGBgYmJiZKSkqGhoaysrLCwsLGxsbKysrKysrKysrKysrOzs7a2tr29vcbGxsvLy8zMzM3Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztLS0tjY2Orq6vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ4H2wwYoooKhYBQ/EKKMEH7hYGAoy5ihjBTYKhqOOQPLY419AFvlAi0OmhQKSD31gJJASJGkWChVQYKWVGzhEwZNASknWBleGaSWTCXEJZI1eggWmmGIyZKaOWab5FZtsClnmmzKiKSdXVdIpJpkGSYBnjIDuiZWfdSq0waAPGMoVCoiyudCgcTqaFaSRhrnQomZGuakECISKAI2WIpXplXYmBOOTniaEwgL+osaKQKOlFnUqlg1xCiQFC30g668IFFprTx/cChGYOwpLEArAAjvsUH0iWulHDzT7K6/PBhVpqh4xa+2v2QoVbZjTfkTBt79yG25PG1Tgrp4iwYpurK2ui9a8stJq7734iqrvvmZV2++oAKNVwcAIlFvwWAgv3BIKHygL07n4quswSe26667CMQn87b8Xk/SBxiS7K3FLHgNbb8gklezyTQcDyzHLIGXsssYzw9SuBBJUAC/NLd9cMtBkUSk0yUSPNfLRGictltFMW+z0VlG7O3VYNgv989V8Hp0zThssUEAAARTwwNdcOwR1yWjXtMHYZMdNdgEnp51ryVvrRIH+3HzH3bbdT+3d9+B/A77UB4MnHoDhVyGg+ODYMj7V44MXIPlUFVA+eN2XG/WA5n0X3rlQn4Mut9SjH1W66WSLnvpPmbNONuevCyV72bU75TjrkeeuFOKs++6U4Jq73vmStNckQfHCI6TiiivmrdPbiRcgvfDQZ7+iUGHDbbbxl2uv/fXNIyW+9uU/hcL52Sef/k/Ps7+B++8TKz+L9S+1/v35M3U/+P3Lyf7OF0CmDDB7BXQKxDYQsQQ68IEQjKAEJ0jBClqwgEu6YFGQx0ENAoWDIPRgT0AYQhHuhIQlNCFOUNhBFa6QhRl04U1gSD8ZpgSGNnwhCXOokxTy8IeWQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUquRYQACH5BAkFAJkAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUlJSWVlZYGBgZmZmaGhoaWlpampqbm5uc3NzdHR0dXV1dXV1eXl5gYGBioqKkpKSmZmZn5+fp6enrq6us7Oztra2uLi4vLy8vb29vb29vr6+vr6+vr6+v7+/wsLCyMjIzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7O0NDQ2dnZ5+fn+Pj4/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AMwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4onhoaAiiot5IIEDMDoAwQUsHvZijDhCgEKNg92I44878vjXBT8WKaOQf0FgZJE0ImmWBxNIIOUFQTJE5JI/QuAkWShEKeWXEjS5kI9YxrilWCiAqaYEEzBEZpkOnBmWl2t+KSZCb5Yp51cu1qnmQlfCeeSeXdHpp5QeKISCoDC2SShXh6p550F5GvloV5GCOelBSpa56UEX3BjmpUllaidDKHRqpKMKTYDAq/6wvsoqqUOFamqVC01QJASJLgRBrMAioCWtRJk6K6oXTDDBBb0u5ECwwUpAbK2Z4uqRq9AG++m0O9laZ7MgZQttnNwGBaWax37kgbjQgluuTyh4IK9J2LIb67bvjiWBvcCmmy9Z+/ILq7//ilWvwPgW/BUKAsOqcFrPCjzsw082bC3FJXlwwcYbuyvTwdkmjPFHHJe88U0gAyvyyB2Z7PJNqUbLMkoau1zyxTPV7PHMI9n8Ms9k+Wwy0EELzTHRYxl9NNJhKc0s02GhoDTUYtVs88476foqBARTLZHPWOfkQABkl022tF5fJHXJ5prtNtkEpM2VB2/XHbfcWRFQd/7d5OJd1QR77x2230zpHfjbfRMOFQqH7624VBc0XjfOjycVueRuU175UZdjXrbmmxfFuOdlh/6U4Z4nbrpSgJM++OpEod646rAnRbfkd9fe1O2B5657QfHKKy/oOI1dN9q/FyT88vMKpbWwXesePPPDJ/8U9cxb7xT2y2vP1PTce88U98KLvxT5zdvUJQJkIzAB8eKjD79KKBAAwP3430+7+QSRb5ME+Qsg/lamPez9T4AIBAABtaei+anEAwlMoAP5R5MARBCBCKAgUC5wQQlq0CcO6CACo/fBmYgQgyXkyQkFGIAU7mSFAWyhC3MCw/xlcIY4QUAN7zcxHNZkAvE7BMDrfDiQBq6IJDuUIREXYsQGkgSAMFwgDptoRJJY8IT7WyJBqFhFK4rwhlpMCBedWBIIXJCEYRzjEUuSqiveLwDICyMTx7iSNcqxIXS8Y0+4qEd4kbGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618lOEAUEACH5BAkFAJcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRU1NTWFhYYmJiZ2dnaWlpbGxscXFxeXl5f39/gYGBgoKCgoKCg4ODhoaGi4uLkpKSlZWVmJiYmpqanp6epaWlqqqqr6+vsrKytra2v7+/x8fHy8vLzc3Nzc3Nzc3Nzs7Ozs7Ozs7Ozs7Ozs7Oz8/P09PT39/f9fX1/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopniUBhE44GIFJKhoGAcu1lhjBTIOpoGNPDoQQY6AkdBjjzgC2VcFQ/ZoJFocaOBkjA8l2aMGS5KlQQVYZgljQzRKaeOPVYZ1pZZacsDQjl7aGCZYY5KpJZQJoZmmi2t+5aabVCok5JwOFFnnVhzc6SZDLc5p5p9btSkolnAi1KWXYCKqlaKLNooQkl5aihAJY+Yp6YqLvtkQpkMeqqcDB6SqqgOafvoTCf6hZvkQB4XeOKqquKrqqatBxVqBqQ6RwAEHrR5UQa7IHrArrz7BGupIJCSbLLNCOXsnSRFIi6yf1P5EKbAhaTttt0MV+1G04uZqLrlipqsuu2lp4C6u68LrFbrzHmBvWvkeoMC+aB0777IAj6WAu/8WrFKTToI7E77SJqzwSQw7aXG9LJFwcLIOTIxSxRZfjNOOuDpAsMcihayykyibBfLKGmDcMlYwq+zwzF3VrDLOYuls8c08a/XyyjIHTZXPJxutFac1l9tp0UovxPTOQckbwNVYHwB11AkJqwGxQimA9dhYc8s1VmKTrXakZ1sVgdpwB5B0206REDfcBNBdlf4Dd8M9t95KEdC32hID/tTgaudt+FN2I0724lA5PrbikDcluOQBFF65Unxj/vfm5WJOOehLve3456QPdQDiHafuVNpxm+36QCTUXvtQVpN9ANCu2+47UU1iGfPsm/r+O/F1G2888k0pvzzzSzl/PPRJSW879UpZfztOgUYQwZbY6yk9ThUEAMD56Acge/gCWW+T3ejHj76+7Buk/E0kyK//+QFsXX9M5tuf/gLwv58oQIACZFsBc4JABC5wJxVooABR98CWHFCC+lNgBWdCAAzqj34brEkHPRg/EIZwJgcgYfxad8KZRECF6FtfC1uSPxgCYIYihKEJcQgTDsDQf8E8HEkEPUjBIKLkhRKUoRFdooEA6o8AQFyiSTggtvMRwAG8k6IWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEwmrwICACH5BAkFAJYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHWVlZWVlZWVlZWVlZWVlZXFxcZWVlb29vdHR0dnZ2e3t7gYGBhYWFiIiIioqKjIyMjY2Njo6OkJCQlJSUnJycpKSkqqqqsbGxtbW1ubm5vLy8v7+/wsLCx8fHy8vLzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7Oz8/P0tLS29vb7u7u+Pj4/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALQkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopojUBRRQcAEJKiJGQQQ01hjBBjESZuOOEVyQY2Az8mgjjj/2dYGQPBaZFgkbwAgRkjw6qaRYJLDYYos+OgTljllOCdYGV4bZYkMkbGljl152RYKYYqKZkJk1upmmVlayeSWRCsFJI55zbmVnmwwdCWefav4pZkNwykmoVWAaemVDG2xJAUQkSLnoUWs6OiakSE7a0AUJhCqqopcCpamLEAlKIwV8JkTCAv6ixprAAqUWVeefJcmqawK1EnWrmK1+BOuusdLaq1C/thisR6ASK+uyx+5U5ZWkejSss6J6Gu1a2Oq6LVvdyvott+GKOq5a5Zp7LloUpKvtumWRkC68abXbbbX0isTkBtDKFAG27+Zr0gYXFFxwvzDZqyu+An9k8MMF63TBsAsw3LBHBENsMMIXc1Wlxg93XFbGIBdsqchfkVzyySirWbLBLY/1csQxh6UyxBzXfNXNBxO1L8s6V3RzzjdFYIAASAtgQMBBWwR0TxckLXXSRDf9FAVTZy1A1VYvFbXWWT/d9VNHgz01r2NT9bXZU4udtlIJsJ01028zVbbcSUdQd/5UeE9t7N5O3d233oA7FXffSNNd+FFr9+324kQJzjbakDPVONuPVz4U1nJzrTlQl0/t+d6VZp5TBFMv/bmrpZde1M+rs96667E/NXvrtTt1++y5M7U77r0r9TvtwSc1vLQmF8/Q8TdtkAAA0Ef/t/IH7Y7TAtFnH73i1AN/kwHahw8A5dQD9bz44RNevk8XoI++6evHJID74pMfP04k0I/+/Tu1r3/4o+MfSiLwv/BxT4AvIWABs3dABLaEAgvMnsUcqJINRDB6FLzJBQEggAzaRIELnKAHUzK/AnZwhDXJXwFReBMVuu+ELCwa+hoYQ5gcKVQ9qqEOd8jDHvrwh5VADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpR0DAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTk5OTo6Ojw8PEpKSlpaWmRkZGhoaGhoaGhoaGlpaWpqam1tbXR0dHt7e4GBgYWFhYqKio2NjY2NjY6Ojo6OjpKSkpeXl5ubm6CgoKmpqbCwsLi4uMDAwMPDw8jIyMzMzM3Nzc7Ozs7Ozs7Ozs7Ozs/Pz9XV1d3d3ezs7PX19f7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaIlAkffGCCiol9oMEFNNLYAYyFzVjjjhe8iCNgHfAo5I9/mSCkkDcSyVeQR/KopFkfdCCllD42pGOTNVb5JFhTdimlQ1jyqOWWXXlpZkNh7jgmmVpFaWaXVqZJI5tfvXnmQkamqQGdXtnpZZxhrsnnVX7CCeiRSQ66VaFTPnTljh84ZIIGEVQaQaKKFsVoB4ImZEIHM2oQqUOUWmoqppkG9WmhJV1g6qv+EeyZ6lBuvllSB7DCiuqsPtVqKEm55sorUau6aBKuwb466rBruZqsqbIyq9azr14g7VrUmmrttWk5m2203JqFbLadhhtWthFsa+5ZH5C7bkvlyjRurru+SxKLLbYY70tGwtqjvSnlK7CxOX2qgQacApwSvgPrqzC7DQv8MJQR5zsxWQxXfDFZFVu8sVgdt/ixWBkPPPJYJTt88lgm03oBAzAz8O/KYD0Q880y09yVCTj3/IDOW/UsdARAY/Wy0D3XW/RTSCO9NFUdNC30vk8fpYHUSVcd1dFYx6y01khd3bXXYD8V9dgwU132UGjDvPZTXGP99dtGjU003U7xLPX+z3hDZbPQ6vZtdtwXLCu4QSYknvjhUynuOONQOS455HlLrjjlTVl+OeZLab4450p5rjboPmmuU9QGpG7AA3OTPjlOHzCg+uwGMDA65bevpAHtvBvQOuk4ddB777kDH9PwvR9g/E8XIN/778sf7zzvDES/kwnT9269Th9kz3vx25/Uvfezgx9+SdiTr/r5OKm/PvvoBxmr4QdF4H7g8H8kvAD8918A/gRJH/nyJxIG9O+A/fMdQprnPXARkCMGQKAE+ae0B2QPgA/MyAEmyMFO2Q95GMzgRTTAQQ4qDyEfsCDtHmA+ES4kgiWcIP0M4qYZujAjH4ghB+92w5VcQIfiEzRAD1nyACBOcIgrMaAREYhElRRxiQdsYkpICEX+CVGKKKki/0KIRZBssIot7OJEcghFLorxIz804hXPeJIIAHGNbDxJBwpQQh7GMSXNo6MVIxDGO2rkc34MpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMZ1wCAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUFBQUFBQUFBQUFBQUpKSllZWWZmZm5ubnJycnR0dHR0dHR0dHR0dHR0dHV1dXV1dXZ2dnh4eHx8fH9/f4GBgYSEhIiIiIyMjJCQkJSUlJeXl5mZmZmZmZqampqamp2dnaGhoaenp62trbGxsbOzs7S0tLe3t7u7u7+/v8LCwsXFxcjIyM3NzdLS0tbW1tvb2+Tk5O7u7vX19f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaoonUnhOCiiy+sWNgKL9YYwgkyCvaCjTbimONfPPIY44987RhkjT4SWdYKJzS5AkQtHlmjkmQx2eSVJwzJUJRSukilWFZieaVDXHb5ZVhiptkQjV16eaZXYabZpJYKtRnCk292JaeYdCbEppR5erUnln0mVKaNhQZ61aBXJorQny8m2ZCRG2SpKFIvMCqpQ5megKdDK1wg6qgXbODopT4x+qlIJ5Dq6gX+q6Ia1KAlvfDqq7IWlWasIW1wq6sh5FrUC8SeZOuvrgrrVqvIksqrsmYx26yom0Ib7bSjVmttldiKeuq2YXV7AbhqhYCttuSONe0G6a6FLLvtrkTsvDtJm228Ks2rb7E6vbDCCt/iG9K++gqMFsH7GmwWwgUrTBbD9Do8FsT8ShwWxQFbjBXEGj9McMdlNUzUCb6W+izIW50gwcosr4wuylZd0PLMEgQLs1Yy0zyzzTdbpbLONPd8FdA68yx0VC8QrfPRU62gdNBMR/Xz0yxHHZXTVFdt9VNJZ73y1lB5XTPYT039NNlQ5ay00WgzpXbRbUcVAtAvx60UyaJucLL+3Xz37fffgAcu+OCBzp1AAhfUTfhPGyDg+OOOs734Ty8kAPnlCEgwuVCWY3655pv7JIHnnkseuk0vkE56xqe7dIHqnsPb+k2we57A7DjV7jnutOt+Oe82+Q757cDTNLrwCIxbPElMZnwC8gjsvTxGFxwwwPXXSyA98qBP31EI2IePPfEHPe87695DdIH47A+AQEIh6K54+hFt0H777z+qegLo0+/Q/feT3UFC0DnHJWB+/lMfAO83qf4l8CELvB8CH9iRF0Swfd2joElOcEH25U+DJgFfB8P3QRCShIMjxF4JTSgSC6bwespjIUkQ8MIBSE+GGxHhCFeIw5BYb4SqE+zhRVx4wRgKcSQrKOIRUZKA+x0giEvUyAsad73MQTGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuDxaQAAAIfkECQUAJQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdRUVFRUVFRUVFRUVFRUVFUVFRZWVlhYWFpaWlvb29ycnJ0dHR1dXV1dXV3d3eAgICKioqPj4+VlZWZmZmbm5uioqKqqqqwsLC3t7e/v7/FxcXNzc3c3Nze3t7r6+vx8fH7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBLCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqKJ1G1xAAQUXZLDiYS6+aCMFG8w4WI032pijjn/x2KONQP415JAyFmnWBhtk8ONDGxzZ4wVKktVkBlhmCaWUPVYp1pVZhulQlFy+SKWXYIWpppMOlWkmml+BuSaWDgl5JJxxzilmQ2RKeSaeXMk555ZH/gnoVoKuGZGdT46ZwQWNHmqUnlpKxKREFESg6aaGSjoUpWyStMGmpGpKgaeTzhlpSKW2eiqq/kQJelKmrZaaJKxu1eoqrm6NqmupvLaVwa+lrhpsWcMSu6mxx47lq7IRNLsWtBG8Ki1aF0DL7LVi0aprp9ya5W2p4IZ7EpPbzhQlqZCauxK68Lq7Frz0ypsWvfHauyS+6Oq7L7+X+usswOkKjCjABluJcMID18vwkkhdIPGtD4M1agMYZ2xtxVxdkPHHGD9QMMdQZQDyyQ2QrNUDKIP8gMpXedwyyCPDnBTLM3+8sc1Q5ewyz1P5DDLQUgmd8ctEQ4Wz0DsnvZTMQtfs9FBGIz21Uyb7fHVUUJ8s8tZRXQxy02A/JXGMZaet9tpst+3223Af26KZUse9k8kG5K33/td2E/WA3oDrTXbfO/0d+OGDE37TBYc3bgDFiueEgOOHpxy5ToxTfjjkl9MUgeaId45TA6AHbrXoNJFe+t6o22T46gYk3jpLFMCed7mzt7SB7QjkLhLeAgSPgOwlvA468b5TtAECwTffvAG4C6S65pYnz9EGzmff/OkFLU+99R1hr/34shsPeLTgc8T8+OOnG6XqDeCYPkcXsM9+7/Oz1ID97OfPEv/si57/QCI+AGYPfQM0SQEN2DwEJrAkDMwe8h64kQg6T4AU5MgDLBi8DCqQg9zzYEg2yEADiPAk6wMg504YkhSOzwB1Y2FGaje+EMqwJBmgQMgweMMe+vCHhEAMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTk4tIAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhz09PT09PT09PT09PT09PT8/P0REREpKSk5OTlBQUFBQUFFRUVFRUVFRUVFRUVFRUVRUVF9fX25ubnp6en9/f4GBgYGBgYGBgYKCgoODg4eHh5CQkJmZmaGhoaurq7CwsLGxsbW1tby8vMXFxc3Nzdra2uXl5fLy8vv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4nUkgACCCCSseJgILtboooyE0WijjTgG1uKOO/b4F5BACukXkTvGaCRZJIjgpJNKOoSkjSIsOdaTWML40JQ1VmklWE1m+eSWXIIQ5ZddiYnlmQrpOCWaYKmJJZlIsgmnVnKOSWeSd36Vp5MRuXnjRHb2WdSfhYJEAgeMMmqmoUjleRIIjVbKAQiQGhVmlpNaaimmmRa1aaIfLeqppaHGdaqnoKba1qr+nrrqFqyoysoWrZXaeiuujOq6FqW4eulrWrwOu5YItJJqrFimeqrsslc2+ii01FZr7bXYZqvtttx26+23b5HwLLhXgYDBueduICy5WZGwAbrwYsABu1rFa+8G9F7Fgb32tppvVCTwy++/U+0rcLzrEtzUwfbOq/BTDMfr8MMLR4zuxBQvZbDFCWeMVMAWY+CxUxsf7O/ISkWML8pNgcwvxiwzZS686sY8lbg256zzzjz37PPPQJso7rhB98SBBEgnDXPRPpGQ9NNJE820TCJAbbUEUk/90tVXa70TBlxbvbTXM4XdNdk2gWC21VkXLQIGDQggNwQri3T02k+fjLb+QE7L7bffBYy90d14I6032iIU8Pfic4ekduFId0w2CYozzjgEikKO9N4FxW255SJ/BHbhoXP+Agefp+7QvkjL+2zVhbfds+epMy74QBw0oPvuupeOEOFhH+41CbV/3oBCEvCufAMQSD7QBmbfrjUIxX+eUPLLL6/s41Y7Tzbq1TP+e/bZS8AQshtswIHsQIMf/t8IkU++9KY3JML7fx9vUO7yL495/RapHP7MZxDs9U95ALSIBPAnt8NB4IDL814CF3I//OnPIBCM4AQpggH8Oe+BGdwd+zYokAVW73ZwC6HuSFgRE36uAMITCAhU2AACsnAiIIAA4wrgu4SAMIOzMbyhlNIVxIKIIIQ9FOJJ+Nc/GypRJTOUXxKfmJIU8k4CRaSiSdw0Qi168YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pcKCwgAIfkECQUAkgAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFBQUFERERMTExUVFRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhZWVlZWVlZWVlZWVlZWVldXV1jY2NqampycnJ6enqBgYGHh4eLi4uNjY2NjY2Ojo6Ojo6Ojo6Pj4+RkZGVlZWcnJynp6eurq6wsLCxsbGysrKysrKzs7O1tbW5ubm9vb3Dw8PKysrNzc3Ozs7Ozs7f39/p6enu7u7y8vL+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAlCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqCJ2N9ywomIuxCijiy8OdoOMOLogQ42C5ZgjjTz2daOPOAbpF5E5GnlWi0xGhGSRSo7F5JRANvSkjFFKSWWTDslwpQtZhrXllBBdWWWYXI1JpkNDEokmWGpyyaaPO775VZwtSjSkDGfauRWeKcmAwqA6+plUnCfdMOiii/ZpaFBjJsropCg8ilSeKVE6KZiWwiWopow62ilaoG46qlulMsrpqWuluuiq/qym5YKrKNQZa1qKunorW7OWCuuupIL6K7Bo9aoqsW8NKSqyzDbr7LPQRivttNRWa+212DZ34wjcjjBstli50O24I9gK7lUokEvut+dCJa665C7bLlPwqlvpvFLdUK+6+Er17r7dytuvUf8CPILAAxNVMMAIJyyUvgZz6/BTEY9w78RMLQxvwxgHle6+7HZ8lMbchizyUdt2a/LJLLfs8sswxyzzzDTXbHO+KGyg8wYocHxzTSPsLDTPPwPVwdBDj1B0T0cjnfTSOrngtNM+Q51S01MLrbTVNmXtNNcKudBBBRVocDBJN3iNNNgHoYDAAHDHPUAF5nqUttpCs12Q/gZy9w33xXbjnbfeAlXg9+FbfyS4zh0QLkkHh0de90Y5C76yzTdEHnkFD/XqQsOLOw655ocLfMPYZKdewcoy4F21zG+T7nfibatuewUbLNR61q/LLPvhGiSEwu23575Q5UIDrnfmv/fN+UE3EE887Qkp6zhBzDcf9/MGoS697ddXpL3cjRsU/fe3Ux++Q4aPP4DyAg2P/u3rS+SC+wMgNML89NcfUfvNU59AvMc/svkvIjLQHvcMsr8Cpu6ATvrdAg3iAgeSLXgQhIgMYgc8hliwAvDLIEOG1zcNXE4SDSygCCvipdc58IQr3Mj50BfCGI5EA9+DoQ07IjXb1XCHjSjpHRCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHSceAAAAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzU1NTU1NTU1NTU1NTU1NTU1NTU1NTc3Nz4+PkhISE9PT1BQUFBQUFBQUFBQUFBQUFBQUFFRUVFRUVJSUlVVVVxcXGNjY2dnZ2hoaGhoaGhoaGhoaGlpaWlpaWlpaWlpaWlpaWpqam5ubnJycnZ2dnp6en5+foKCgoaGhomJiYyMjI2NjY2NjY6Ojo+Pj5OTk5qamqamprKysrq6ur29vb6+vsHBwcfHx87OztTU1Nvb2+Pj4+zs7Pv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oos4oRDDTDC2GJhMdZYw4yC2WgjjoDpWCMOPPb1oo8xBnkWDkhKRGSNRpKF5JNJPjTkkk2KBSWUES0pY5VgXYnlQ1py2aWXT2bpI5BiekVmmWb+mOZXa0YpEZtvwrlmSi/KIMONdSZFZkp6Bhpon0hdCaigiBI6F6KM8qmoWzgwyuijb9UgKaJoUrrWpZhqyhangmbqKVqWgiqDqKOeZaoMqa5V6qX+qLZq1quIOiprWpF2eiukse7q66/ABivssMQWa+yxyCar7HCRwgDDqct2hQMMLVRrLQzRaoWDtdxa22u2UHUrLrbgUiWDuOLaWu5T6I67blTbttvtu1DFK6+19D5l770t5Msuvy2Q6+9Blqrb07n8GuxvCxIM4LDDEgjcE78SDwxDww9nPIAECt+0r7jfrtuCxiQ7zGpP07o78EAwlOxyxx7L4Cy0Kw/ksssS1HyUBze7XLHOQPWMM9BD1SC0y0QLNfLRJMOc9E0nME3yyU9PLLXGVFe9kwxXZ6z1T11D/LVPGF/dL001UBuw0zob3TXaJ5Ag99wnhKwzCVf/3BL+DHP3PXfWVVfAtAczyeD34SSwvTLePevdUtyI933C2ALVUHbGHtitkuGR+w341+ee0MLnMUHe+dxnUy6RzGubdPrhqkNUgwcS1G67BKmH9LrfsTvE8O3AV6D5Raa/PnnvC/0O/PLDV8T37iSQjvxAMixvvQQVhIQD9CRMr9D11+fO0IvNS/L86Y57Xz341jcEgwfwxy8+Qi2cPr/3A9HO/vLSD0RC/ACEX/8GUj/EpQ9/+7Ne+nAQwAZ64ICVK6DcWlC+3iVwefcTyP8cGEDF4S8iFwReBt/HwQZ+kCMVCKHtpFdCB3rwhA05gQpr1ysGtjCAGYRhlmZIuIPI4IbsATyeDi+ivwt27IdAjF/3hoiREOZwdkmEnxCZWBEcJHCKB4ki/CBIRYcUcXlc3GASK9hFhdTgBCms3QMdAkUgYrGMK2lBEuFYuhuSkY4hIWED34hHl8DgBPAjQQte2MdCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6PxOQAAAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFCQkJFRUVMTExPT09QUFBQUFBQUFBRUVFRUVFRUVFUVFRcXFxkZGRoaGhoaGhoaGhoaGhoaGhpaWlpaWltbW1xcXF6enqDg4OMjIySkpKXl5eZmZmampqampqbm5udnZ2ioqKtra21tbW9vb3Dw8PIyMjOzs7R0dHd3d3j4+Pq6ur4+Pj+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLOa0wosrtGgYjDTGKKNgNdJ4I2A56rijXz36+ONeQcI4JF9FvngkkUUuyWSQTj5ZY5RITknllRUqiaVeK5zg5Zc2bkkXCl+WeUKYYsLVpZllpikXm2y6CRecZsrp1pp0emlnW3jmuWdbeX75J1uBnoDCoIT6iehafba5KKBlHvropJRWaumlmGaq6aacdurpp6CKuQIKKKAZ6lYniKDqqpKemtWq/rCqeoKrWMVq66y0UrWCrbbmShWvt/oqFbC9CgsVsbEaeyyyqyr7FLOyOuvUrsxKa9AKHDQgwLYNcGDqTsziaq1AEGxr7rkYAIXsuAKtoO258ArQwLc5pRprq9a6G+++DQQ1aqnsDvTuvvFCEHBRJxCsML4H/1Suwvtq0LBQECs8MVAoVEwwvRfflLDG8XLccU0ZgwyvyCPTZDK8Kfc0sMnptgzuytuKOxOZhsos0MsV90uTCBwELbQIMn8MMsMuYSv00kGjPK4IINsME9NUc1A0z+fO+3PVTBMtswg8Q+D1TEpzvbTOA5GJtEwnmM201Gg3RKrTHAHt9tBxOyQC/gQN9N23BnRjZPfdHIydN0IrYOD34n13MNLgd8N9+EAr8M044xKHhALhTU+OkOWXM251SJw77rlBGoSu+toabX534DK7q3romS+0qwYY5M6B5AZBTjXvk4M9e+gMiZD78ccDzlDbVbPueerDX45yB8hXn3vgqQYtAvCnKx49484bb331tZ+ekfff+8164uNbb7j5FmWbvt8cU9++9fBndML8fRuM0P3jc17+HgK6772PIAC0HvcG2JD9pc9//0sg8g7IwIjIL3oClCDyFlhBhlwwdBBYIO40iAHYdTAhJyig38qXEPFJkIUnpEjbcqcBEZiQhByMoUhOIMHR6bAloTy8nw9/2JIVjLB6OSRiSailKgEq8YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsNRIQACH5BAkFADcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUVFRU1NTVlZWWFhYWFhYWFhYWFhYWFhYWVlZW1tbYGBgaGhocHBwc3NzdHR0dHR0dHR0dHR0dXV1dXV1dXV1dXV1dnZ2eXl5fHx8goKCiIiIj4+PlZWVmJiYmZmZmZmZmpqampqam5ubnZ2do6OjqKiora2tsbGxt7e3wMDAx8fHzMzM1NTU5eXl7u7u9vb2/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiizq9MILLSL24owwxjgYjTTaGBiOOOr4F485+tgXkDMKOSSRNRqpF5JJKpkXkk7yBWSUR75I5ZVYZrlVCyt0uUKTWs7l5ZgrhEkXl2R22YKZcaGZZpdgsqnWm2OuKWdbdI55J555drknW32uYOefab3QJ6FsuUnmoIimpaiajbb1ApotxBnppZhmqummnHbq6aeghirqqKSWaupMhpagagllnprVCv6rxlqCpa4+1YKsstJaK1O44rqrVLf2Gquuvx4Fq7CrMlrsUsjG2uqyTB3brLLQIhVss8RWO1Szqmpb0AodPMDAAx9Qu9O1vWbragkCtOuuu8/2JG2u3gqEwbv4ttsBUKmuGq+29+ab7771GvWBwAiXUHBRCDe88LYNI/zvwzw9ELHAGFAM1MUIa/wTxwJ77BPI+YrcEwMku/uAyTx1kHK7CrPs4ssC4GSlzDcEDDLBM936wc8fzCozySvTVALQSAfN8gscM1DT0UkjHbPJOg9c0wpRR23uwy90gHK7DHygrkpZZ41zTy+UHfXZPGGtNtJjs522uAwwgMHUIrn99v7PcePsdd2A1/3AxB2lvTffbC+EQeCM1433R4f/nLhCfzfO+NYaQf024ZPfsILllhcd0uGdI0Q36Iw/ntALmnNukOFll37QC6hbnvFCXWOg++53O6Q50KrLfkMJtVu+0Aq8J4/BBw95ibnsxBfPuEIvKK988MJPFL30gFNuvfLPZ+/Q59wLnlAL3yvPvPgXlV/3+geVkL7y7F9UufS6zq983/W/fnrtPDuI/pLHv/59S3qiQ0gHBri7AhqQICv4H+NupxD5MZCCD5xI1xr3AOwVpHoM9GAGm5csiHyAgSN0yQLn57oUlmSF1muhC0uCvOSJbYYxmVSlcMjDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56ck8BAQAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzo6Ojk5OTo6Ojw8PEFBQUlJSU9PT1BQUFFRUVFRUVFRUVJSUlVVVV5eXmZmZmhoaGhoaGhoaGlpaWlpaWlpaWlpaW1tbXV1dXx8fICAgIGBgYGBgYGBgYGBgYKCgoKCgoKCgoODg4WFhYiIiIuLi5GRkZaWlpubm6GhoaampqysrK+vr7GxsbKysrKysrW1tbi4uLy8vL29vcDAwMXFxcvLy8zMzNLS0t/f3/r6+v7+/v7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostlicDTDC6GJhMdY4o2A15njjXznquGNfPdr4I19BxjgkkEUeSWSQSiIpZJNIQinllFRyZYMMWMpgQ5V3ZemlDFzS9aWXW4YJ15VjZmkmXGmSuaZbbWZZ5ptrxYnlnHSu5MIHH5TgQk5otolnnibZQEEAiCYaAAU42UloSh8oKimiJ9gU6JeDPirSoZNO+oGlY2aqKUiRdtpppZYaOWpJNphqagL+q4LFqauexuoVra/aypUMuJqq61Yn9Nrpn79iFaywkhJbrFUuICspmMta1aqziUaLVQLUBsCAtVeVkC2q3FaFLbLbhmsVr8iKai5Ux+KqbE8yuCCvC+quq5AN43aaQL03zevvu/Y65MKsiFIAME///hvwRKoGlXDCC0v7sMIRUxXvxPPyW3FSF2NM78ZSdYyxxiAbZYPH8pYsFcoHq0yQCyeUcELLCGPsMkIfJKDzzgl86vDDNxvkAgM8F80AtD+JTHLFJxTttM5IB30Uvk8/LXVSFFT99AVXGyWD1lV3XVTOYDsNrthAZV120T6jnfbabLsdlNpw69y23D2RXXf+AmfjvZMLe+u8tN8yEV03o4T7BHjdg6MkwwmQnxA14XqD3TdMj0eu+eR4V/705S/BrPnonMs99NMUlO6SDaO3Djree1Ig+weqv+R66zQnntPtrev+E+u8a+67RI/z+cEJjVsEfPCQD/+QDLJHH/3dITEfufMNnSD99rInP5H1zWOv0MDccz9S5sF777eh5XNPvUfWi69QCe2X33jHEAUvv0L1l/96QScwnvFKMDj0Ra52+2Nf/6T3voLYQIAQ/EDuDNKw/SUEegtk4EIiGEEEWlAiCswgBRo4kAByEIIf5IgIo1cChZwwghNMIUQusMLUXfCFEZRhRsgnQoWYEIfbxtNhRj4gwgn+EIgkFGJEMvg/gRwRiEocYv2aKBAZIJFPLYwiRlxAQwYO7oq00+JGruQ9KwIxi2J0SQmAqL40wu+FbXSjR1gnwBJ4UI54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8lNqQQEACH5BAkFADUAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHREREREREQ0NDSUlJUlJSV1dXWFhYWVlZWVlZW1tbYmJibm5uc3NzdHR0dHR0dXV1dXV1dXV1eHh4fX19gICAgYGBgYGBgoKCgoKCg4ODhoaGjIyMk5OTnJycoqKiqKiora2tsLCwsbGxs7Oztra2urq6vr6+xcXFysrKzMzM1tbW39/f7Ozs8fHx9vb2/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AawgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPboo3wpBJnCj3QJaeSQRL51pJFJKrmkkE229SSUUao1JZVVonVlkFmyZMIIJuy0ZZcodYCAAGiiuUAHOI1JJkkpEJDmnGgigGRNU75J0gh09onmnTQtqedIJvhpKKCDanWmoX0ukChXfDLqZ5iPZrWApH5iUGlWmPpJwKZXpdCpn6BaJeqodJZqFaqpqkoVq/5pIuAqVRDAKsAGs05VKKyI5urUpahq6utUi2Iq67BUySnpsUClYIIJvSKrEAaM4grUlyNkm2200iLUwQJyErCmUNhqqy2l3U6VgrnsjsBtuku12y68UsnLLr1QrWuvtvhCtS+//Tr1b7YBO6Wvve/262zCOpXLLroFCzTCAghUXDEEEPvk8LYRD5QCxRaHjAAEQzkLbccei6wyAo6ifBTIK4dMsstEmRmzyiPQPBTMN1vcss4/mdDzygwDTZPNQ4ecs9E9IZ10xUszvZPTT0ctdU4jPB1y0VfDpLXFXfO0wddshr2T1j8Hiu3JXWedNNcpdSD33B1YzbTbN8NdJv7dfJs9tsrW1sT34GWHPcLcGc9kAuF86222S4zzbffjN0XeN+UOfVm34xdZTjfmDHUAweikY1yS53ODnlAKpbcOQeAhLe4550yz7nrrsIOEuuoIYXC764l3lILltBttwu+3R8QlRLIPXrzRGyDvOtfDY2A9BhtMrtDhc2vPu0DSu+49QR1cbz7233cUfuuFe3v++bmnb9H6pbdvkAnvv2+//BTRT/r4NShf/s7HP4yIzn8LGeD7AFjAhvhvfwRJgQLPB8EGPuSA4VsI/iZ4vQpa0CEY/B3DJMhB63nwgw0JYeu4VkLrBQ+FEAkhBhhIvhbC0CUb4CANbxi7CZ6Qh5lwyuECgQiTxeUwe0RMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycoJBQQAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdSUlJSUlJSUlJVVVVYWFhYWFhZWVlZWVlaWlpfX19tbW1ycnJ0dHR0dHR0dHR0dHR0dHR1dXV1dXV1dXV4eHiCgoKKioqNjY2NjY2Ojo6Ojo6Ojo6Ojo6QkJCUlJSZmZmhoaGqqqqxsbG1tbW6urq8vLy9vb2/v7/CwsLHx8fOzs7U1NTi4uLz8/P4+Pj+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0CupMKQRAYZF5FIqmCkW0kmuSRbTSL55FpRFjllWlUOeSWWWW55kgoVHADAmAdsoORNXXpZkgRjtunmBjhVqSZJYrppJwAKxCnlnCMpcOefEvDp1QZ/FvqBoFwVqiiiWn2gaKEiMIoVm4/eWYGkV1X6Z56YVqXpnQd06umnbnIqqlSUkgoAnKdKJYKq/mOe0OpUsIY6q6uqynqrVBV8yuquvFZ6qFBaAvvQCXXaqcCZP6lwwrPQMmvsQidsUIEEFXwgrU/OQuvtttNC5e24uoYbFbnjgmvuUuiOu6647UL77lPxyjtvU/WeoO69R9XLr1Pdkrvvuip8oMABCEswbFABR/vvQB8gLPHEkQ5V7MMChTnxxmVifNQGHIe8sMcMh2wyyUNpbPLGv6Ls08ohm+oyTyrAHPLMPiFr88YD4zxTzTtP7HNPQQs99E4SFH3ApUfrJILSPTcdk8owM21Tt1FjfDDMgdp0wgdgh12uz0mbbDVNIoSt9gcVDy1C2RJLMPZMX6+t9tw+O5u1/kt22y11T3X3Hfbef7uUtuBiF/6QlSYdjvgHeCteULUSVF75yCIFjnjkkgv0geWgV845RwU/jnnnA20Q+uqjb+R4322jPtDbq69e0utqxy67QLXXfvpHuLO9e0G09x76sRskv4EIhAukwuHMD1+Q6saHnnW1ymevu/QUXVs96FFjn332v3MPEfXfV96zCuO3v0Hr5i/0efqVLySC++3HT5EK9GO7EP7ta57+COK977WOfQDMHvwGeBD+fa9lDUyg9hgokRNUD4IIkaDyFkhBg4DJdw7RYPIE2MGBFMxay4PI/SRYvhKKRIMkdGFGEshBGXrkA+6LoQ03cgIR+FCHjTsMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHeauAAAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh1lZWVJSUlpaWmNjY2dnZ2lpaWlpaW5ubn19fYGBgYGBgYKCgoKCgoKCgoSEhIiIiI2NjZGRkZWVlZiYmJmZmZmZmZmZmZmZmZqampubm56enqKioqioqK6urrKysri4uLu7u729vb+/v8PDw8nJyc3NzdDQ0NnZ2d7e3uXl5fj4+P7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oosfuQBBAxA4EGLhHkAQAA45hgAAzQCdoCOQOI4Y497GRDkkRgQmRcDRzYpgpJ2idDklFDWZeSURw5ZZVxYNmnAlnFJ2eWRYMKFwZhklunWmWgCqaZbHrTp5ptslSCnjnS2dSeOSea5Fpty+qmnnDwKupadaAJgaFtxdqnoom2VcCWSkMLlAZM5AgBBpZxm96IBBhwAwZOdMnpjkAaUUKpaEHTZ56r+ZQGKpZawhoUomrWONemYhebq1a1t+vqVrGjSKmxWmMr56rHI7rkss1e1euez0FZF7JjGVlvVntpqleyYm3ab1amOiqtVo12Sai5W6B4JgLrrNhtkuEGVIMK9Iqgab0UeYOBvtj7hKzC8+2I1sMD6FmzwwfgqjJW9DN+bsMNTRYzvxBRHBXHEGGcMlcUEe/wxxyJXFXHJC5WAAQMsY9CxTxvni3JCJTAA6s2gMvDyzEh5gPPPoO7MM1GSAg300EsdYDTQvSJdlM9LAw2w0z/ZHPXP9FIt1NVAH6A1UVwf/fXWYd/s9dhBKV22AU2j3RMGaxswtds5rX023T9BzXX+yHjvBPfVc7/kweCE902Q3lLfVALhjHsg9NgeqM124C4t3jjjhgt1+eWZA7V5453D/Dnjj4cuk+WjO266Qy+yzIDLJqE++uoMieD67TGalPrgtCt0Ke64lyRC6qWvDjzwWYeUeu8JwXg87pRrNHzjfDMv0PPIQ9QvBqpHBHHxtP+O/e2s+2u+v+Bbr/34wTN0/vuwq6+R+Oy3fRD88MuvUc31s5wy/u+Lnv4a0r/XLWR7ADTfADFCP+y5L4HnWyBGnIe96EHwfOmTYPOwR637XdBfGmQg8tKHQAiGMCOoy6BAPli9E+rugi4UXAJjCBOVBZCGMymBDnHIwx768IeHQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKTFAoIACH5BAkFAC0AIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHZWVlXl5eZmZmb29vdHR0dXV1d3d3fn5+h4eHjIyMjY2NjY2NjY2Njo6OkJCQlZWVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmpqampqam5ubn5+fp6enr6+vs7OzuLi4vLy8wcHBxcXFy8vLzc3Nzs7O0dHR1dXV3t7e7Ozs+/v7/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AWwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiyCBMKLLRqWQQA01iiABzECBkKNPNqYY18z9ihkACX8mNeOQw5pJF5JJtnAknV50GSSUNI1ZZIZVCnXlUMeoCVcJXCp5JduhSlmj2S+dSaPAqTp1po1PukmWwfAGQAIc7Jl5pp5tlXnmXj2ydaZcgrKlgBXZmmoW0EOGeiib3nwpwANFAnppdl5kMGmj2LaVgNDKuppWiAgmqQAlo5aFpJXpqqqWP6mXtnmq2I1yiWOtIIF56y5drXnma72mpWUcHYqLFbErmnssVYlCyyzWv0qJrRbxcqll9QOq2y2WhUgJrbcZmXtkAWEy9WfXZrblQfe8ljAsj6VIG+w6k70Ir0/zasvvvVWta++/W71L8ABYzXwvAVfdTDCCVu1ML8NO/VwxP4eTLHDA1/MEAgedAxxTwRrnBC7BZRsMq4iP3WAySyXDG7KS63ccssvw3xUAzPnLKrNRZWQ8888H0Xyzy3DG7RPOBPd8s5HAyWz0iYX2jRQSUNdMtNT95SB1SdnHZTPXBfwsdc3Pa201GSDzHXaQoFN9NgtldCxByDAHXQJZked0/7cfBvtdQkZHHBAAxnYzRLfiPvNtk4cI8634YvP5LjjkQM1OeKV/3Q535lHpCmnKG0+d+cOZdDA6ag3gPJIjV+uOOkCpS474SaJDvtCs8++ekhyT367QiDkPvtJif+ukPC6Q1TCvRTJazzuyMvuEOCbVv/68xKVEL30DH1e/ffYb6T99qhv/P35GewefkXkn461QeijD/n6CZlO/tjUx1+9+vRLRP77BfGe/jbVv4t4YHtwE+AAC2hA5NlNgfpj4EUAJzv+ISR/A7SgBCPiPIkMsHobdAkG0Xe9EIpkhNYzIUxA8D0PzE+FMIyhDGdIwxra8IY4zKEOd8jDHvrwh3hADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSUnqBAQAIfkECQUAMAAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc1NTU1NTU1NTU2NjY5OTlHR0dhYWFra2twcHB0dHR0dHR0dHR1dXV2dnZ7e3uEhISLi4uNjY2NjY2NjY2NjY2NjY2NjY2Ojo6QkJCRkZGVlZWcnJyjo6Opqamtra2wsLCxsbGxsbGxsbGysrKysrK4uLjCwsLIyMjOzs7X19fj4+Pu7u7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBhCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogkgocCCSSgUGJjKDBQQAAwBkCAASSsiNgFBMSoI4wH2FjYATsGGUABKvoIGJBCBkmAkX+RkGSSPTJ5FgoPGFDAlQds0NCLTwpZpJRjHXDlmGRqmZAJXSb5AJhioUDmm2OuidAFaQpZAJthwalnARcgZECdQuL5lZh7wvklQVwCqqOgXblZKJxRFpSoojAyytUDj+p5qEAPUBrjnZZqZWWmb5pJkJOeBsBAqFqRCmef/gbl6GmNrGLl6puwFkQnpaDWetWtZSI0aZom+IoVocDSapCbgOZqbFUbAHulQsw+SYCpz1olrbNzyrpjpNleRcKtBjxEwgUHHPCAsuFmdYGrm7bL1ruFGhCvvGyhgCyZ3OIL14kXXLBBsf4WHB4KCBtMFwkMpOvwA/cqjNYDDlecbr8Sm9WwxRavmjFa6HLMMbYftynyyRGXzFXIJ1uMscpctXwyzGLJLDLNYOlrs8U4g7Uzzz179bPDHge98tBZGi300Ep7RcLP7DatFcsnkyy1Vhu0HPXVXG2w8QEMbM31aQiXnfLYWJltNtpeqa0221y5vTbcWsldNt112302/t5P6b03307ZDXjecw/+0N2Gp30BA4wzbnXiT3nd+ORhQx6V5JRPLrblR5mQ+ed/cw7UA59n/rLoQrVYeuaoJ8Xw6pQT3HpRr8PeuOyzD1W77QzgnntQqvPOQOi/40Q673IWr7vwvisP1OKwn+58T8d/Lj1MhU9vEOaNr5sTCiaELz7xuZOwwfnN0wS++OyTr/1N7Mef/vs9rS9/+O7TL9P98esfFP/s899E7JcSAOJPgBAxQcAWKLCT2O9+CDQXAyeYv4oYMIINOdcEKWgS/mGwIRsMoQPb90GGaDCEDKxgCUuCwg1u7iAoimGKVgiSFk7whQQ5kQxjOD8aWsSG8AzE4UB2uEMV+jAhGwBiwHo4RCLu8IgbUaASM+hEGRoRigZRohBhoMMqxhCLGrHh45blRRmCMSMoQOEYyVhGEjDxjBBBQRIDNkNztfGKcIxiG/MYkzLikY8bqSIgZ9LFOg7ykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzGIa85jITKYyl8nMZjrzmdCMpjSnSc1qWvOa2MymNrfJzW5685vgDKc4x0nOcprznOhMpzrXWcuAAAAh+QQJBQA1ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQkREREdHR1hYWGlpaXR0dHx8fICAgIGBgYGBgYKCgoKCgoKCgoWFhYqKipKSkpeXl5mZmZmZmZmZmZmZmZmZmZqampqampubm6CgoKioqK2trbCwsLGxsbGxsbKysrKysrKysrOzs7W1tbi4uLy8vMHBwcjIyM/Pz9vb2/X19fv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AGsIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaCJTIyAQwIoBGKDBiYihYACLNK74IoyDaVDjjgEcgGNgI/DIo48/9rWCkELeWKRZIzhwwAEIaLBCQw4gKeSSZY1gwJZcbokAQ1YKOQKWYjnQ5ZlbopBQkGHuSCSZXpmJJppqHqRjmzvC6ZWWc86JUJV41qhnV332qSRBEgQq6KBa8VkomgexqWiLjGol56NnTmnQpDZWmtUBmNJ50IyTauqpVaCG2mWdBUmK55v+p1aFgKpdmloQoG0aECtWGtDKpUIH4MnqrlSt4KsBXyqkIpK6EovVrLQOixAKwdboorNa0eoARChooMEItmJ7lYyYwipuW8YWKsG5c/V6JgLSsgvXCiigEK68+Oarr0QpPnmAA2Pu2xYKCPhrMAL3CkzWCAY3/GTACmfp8MQJR+xVwRM3vK3FYjGcscPxcryVBB87fKjIXJXs8MYod6Wyxi1f/LK/LMeslQYzP3myzVetkPMBFfNMlZMvryv0Vj6/fHRXSWeM8NJxTlwz1FytoIEDWEtJ9dZcd+3112CHLfbYZJdt9tkVdYu1AxqEjHZSK0iw9tw7v33UCnPnjXX+0HYHpbfeRvdtVJN/5+224D4VDjjiRSmuN+ND4e343JALJfnkWFcuFOZrax7U1ZhD7HnimI8eFOGKi256T6jrrfrqPVmdd900rWD77bAXVC/fMt3uO++52/T778H/NLzvxcd+PPLJ67Q88803BLxHz9sePUMjeKv94R9Vf31CVmsvPu3dL/89QuGPL/5J5p9vkPrqvy4S9O4TlD782tcvU/b4iz+9QCsYgQDBpb+N8K9/3vrfABcovwLyC4Hamx4DGejAi3QLguSz3wQpWMGKYLCBrdrgAjtYkQPiT4IiHOD/SGgQE44PhCFMIQFZOBEXJvAhMhTgCmloEBSoMCKoOYQhD0MSwBRyb4gh8aEIkciSInKQiU30ob2gSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWxAoIACH5BAkFADYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUlJSVVVVV1dXY2NjcnJyfn5+ioqKjY2NjY2NjY2Njo6Ojo6Ojo6OkJCQlZWVmJiYmZmZmZmZmZmZmZmZmpqampqam5ubnJycnp6eo6Ojqampr6+vs7Oztra2urq6vLy8vb29vb29vb29vb29vr6+vr6+vr6+wMDAxMTEzc3N3t7e8fHx+/v7/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoYlMZJHCAAQg80MKJiSUgwIw0znjAizAO1oIBNfY4YwY5Csajjz6CEORfBxCpJI5HngVCBlCm4BAISip5QJNltZCAAVx2eQCQCyVZJZFYjgVCl2h2icBCYyoJZplenZnmnFci1EKbRCYAp1c7zumnngelgKePa+7J1ZZ++skkQYIOWmOhhmqVaKIPIORojW9GepWck6ZZp0FDXrqoplVl0KmfCD1wqQAGkJqVqf6nppnQqka6ehWssXaZEJWDQmprVX3myqJCGeD56a9WrShspgedWWWlyGLFaawOmdojtNFmhUCuUkLUwqjZansqs+G29UCiB9RablwtPKAsi+SuK++89Na7WAsZPKAvCODam9YDCAQscIv+rtXCwAgjAGjBZyWQMMILMzwWwA8jrK7EYVX8MMZigaBxwv1y/OrHFov8FcUkB3yxyVplkLLAK7OMVQovBxyyzFXV7CvOWXmccsw8X4VyxdgGvdXQCBdt9FY+l7w0WC2AIPXNT1dt9dVYZ6311lx37fXXYIftUApQZtCt2FDlq+/aDwCN9lFqs712vG8TFbfca7tdN/5Q7eKN995w+4233oDzJLjfhRN1+N+JC7W43I0LdffhdEeeU9+PU235TY/ru3lQmAv+uVChQz76UCnIfTZO37Z+elGtx6756zbJLjvtP9keO+4+6e467zz5/i3wwQtPPENRl716ScLPDvyTZSuPku/HKwR99NKfZHv1CZGNPfbc2/T994SHnxK+44PvbQspOG++t+mr3xD7KdRv//saoR8/lA7Rb///+MvI/so2tv8Z0H0BTMgAzTY/AzowgRbRX/oK6EAAQrAi3hvfQypowAtG8HpQKl9BOGhBD1ZkdxHxHwdN2BISto+FLawgAmH4EQfOkIYgGR4Od8jDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56cooBAQAh+QQJBQA3ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTo6Oj8/P0hISE5OTlBQUFBQUFBQUFJSUlVVVVpaWmBgYGtra3d3d4CAgIqKipCQkJWVlZeXl5iYmJmZmZqampqampqampubm6Wlpa+vr7GxsbGxsbKysrKysrKysrKysra2tru7u729vb29vb6+vr6+vr6+vr6+vsHBwcTExMnJyc/Pz9nZ2e3t7fv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AG8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaGJTLoSAgQQYpHCiYik4oMCMNCqAwYuGSVDjjgo4gONgEPDIIwM/AhaCkEL6WKRaLqTgAkRIInnjkmWF8IADWGIJwZMLYRBlklSSBUGWZGI5ZUIMfCkkl2F+dWWZZZ55kJpChtDmV2PCCaedCNHJI593bhWCnoQm5OeOgAaa1ZuEluninIfSyKaiWDWqpwQIBRmpApRq5YKlcEKAkAubYpoQBg4EoGoADyTa6VD+MYJK5gMJaernqavmqqoCj74q1KeyZikqmn66OtADuiYbwLC+BhVslnIelOaXxgqErLLJMtusTxI868CkmSL5LUIYYIstuNvqBKys2irkggQPzOgABL3Oaa6ynKbr06Cg0vpRCPdiW6++OqHa6APoanRtwLqaSjBPKTBKZrsdKcBwsko+3FMKGEDwAAQYJMzRxcnmq7FZJOtq8slkWZyyqv6yLObLqkYrs0kphhCCyC25QHMAN6eUAgREF00vTS6TTHHQIXVstNE29/wy0yZJ8PTVUbME8MUDU/3R0FdfzbNKKQTMq9ckWR320w7LtHDDaJe0dtg3hZDn0XGTBPb+3EaPnbdVe/NNtN9/UxW44IQXPpXgRiv+ldqCZ+24VS4wvvTkWDk9d7WYY2X32l13vhXkREsu+lYupH766qy37vrrsMcu++y012777SeloDvuVLmAwe/Ah8z7UyoGH3zowxfFsfHGJ558T8xH/zxSvkff/PRGFW898MhjD/32wXPuPU/ghz8+rOX/7vz5NaVvOvs5aW999/AXDH79RMkPvPj485Qi9z5RXf+OkroCrm+ANTGgAREYFAUukIE/ceADIeg/CQqQgjux4AUxuBDdhcBJKrEgBxmSAp2ZUGcpkeAIO3jCFh4wIxNc4UFy1sITytAmNawh/W6okhzWUCLtG+ThRnzYQojo7oggFKJGiGhDhyARiS9UIkKYqLMdDuSJT5QiRkrIROdhEYpavAgTrSiQJn3xiGEUYw7JWMYzojGNFuGiCQ9oRjfC0SVuTOIdV5LHPeLxi358SR31GMhCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6EznMwMCACH5BAkFADAAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHQUFBQUFBQUFBRUVFS0tLUlJSV1dXWVlZWVlZWlpaXV1dbm5uhISEk5OTmJiYmZmZmZmZmZmZmpqanp6ep6enra2tsLCwsbGxsbGxsrKys7OztLS0t7e3urq6vb29wMDAxcXFycnJzMzMzc3Nzc3Nzs7Ozs7Oz8/P1NTU3Nzc7u7u/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AYQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoolMmeOCBCScyJgECMMbIAIstFmZCjDjGKEGNg3mQ448IMMAjYDcC+WMGQ/q1gJFA0phkWRIsIOUCDHjQUJFM5tjAk2RFOeWXCziJ0ItZ/silWF6C+aWYBi1ZZo5ngpWmml8q5OabMbIZZ1Z00rkjQnfiiYCee1o1Z59TJtSAoDEWyhWidCJ5kI+MLuDoVpCq+edBjCJgZUImRAnjAptealSmYJZaUAaCWoqQCf4LBCDrrLK6aipRqH4pKUKLvplQBrQGOyuht/LUQK5SEjtQr0aGiZAHwkYbgLLF4uQBsrYqdC2QqhYkbbQIVBsUA7l+2pAHEjDAgAS7IsTAt9FuKa5PsGYq70fwSjvvT/X2ea9HwOYrrLn78nSolAR79K7AwXZbsE4eZMAutRrFyjCt/z5MlsUXy5qxxmI10PGsDoP8FbQjT2sySya0fFPK4a6cUrrqqttuTBKMfLPMInlQ88/qUpwSAhdny3PPQCctNEpE5xvz0SQlnfTHLzUtrdFQg5SB1EknDBOrwi7gddYfNcA10CW/ZILEEoxNNkhnJ/22WHEDPXdYdf98t/6cea+798l9L/23VGbHnfbgVplQN+JgmVA42oyLhW7NEgge+eWYZ6755px37vnnoIcu+uikE+ly6VSxLcHqbqOOVKirxx67607JbvvqtC+l+u2r75z7ULzf/vtRsAcfu+XD24Su8ccnT1TxzCPvPE3Mzz498NX7fj1P0PO+PVHL8y799zN1v/r45NOUYgYrpu/++/DHL//89GPWMvr1sxRxBvxngH/+J+mfANkHQJwMcICtKyDLDjhABdKEgQP8nwM7AkEBIu9+95vgRirYP8thEIMazMj+Kii4D34whBdZGwcfYkIQotAiIzwgRFrowhdSJIYdnCENT2dDiqyPf6UJfNUOJdjDFO6wiC45IhJZ1sIlqi2DToyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1qSLyAAOw==";
|
|
2262
2249
|
|
|
2263
|
-
var _templateObject$
|
|
2250
|
+
var _templateObject$k, _templateObject2$i, _templateObject3$f, _templateObject4$a;
|
|
2264
2251
|
function SignIn(_ref) {
|
|
2265
2252
|
let {
|
|
2266
2253
|
description
|
|
2267
2254
|
} = _ref;
|
|
2268
2255
|
const theme = useTheme();
|
|
2269
2256
|
const styles = {
|
|
2270
|
-
wrapper: css(_templateObject$
|
|
2271
|
-
header: css(_templateObject2$
|
|
2272
|
-
icon: css(_templateObject3$
|
|
2273
|
-
content: css(_templateObject4$
|
|
2257
|
+
wrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
2258
|
+
header: css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2259
|
+
icon: css(_templateObject3$f || (_templateObject3$f = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
|
|
2260
|
+
content: css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8))
|
|
2274
2261
|
};
|
|
2275
2262
|
return jsxs(Box, {
|
|
2276
2263
|
css: styles.wrapper,
|
|
@@ -2291,7 +2278,7 @@ function SignIn(_ref) {
|
|
|
2291
2278
|
});
|
|
2292
2279
|
}
|
|
2293
2280
|
|
|
2294
|
-
var _templateObject$
|
|
2281
|
+
var _templateObject$j, _templateObject2$h, _templateObject3$e, _templateObject4$9, _templateObject5$5, _templateObject6$4, _templateObject7$4;
|
|
2295
2282
|
function Evaluation$4(_ref) {
|
|
2296
2283
|
let {
|
|
2297
2284
|
poolInfo,
|
|
@@ -2323,13 +2310,13 @@ function Evaluation$4(_ref) {
|
|
|
2323
2310
|
fetchData();
|
|
2324
2311
|
}, [account, chainId, checkingEA, handleApprove, poolInfo.assetAddress, poolInfo.pool, isWalletOwnershipVerified]);
|
|
2325
2312
|
const styles = {
|
|
2326
|
-
wrapper: css(_templateObject$
|
|
2327
|
-
header: css(_templateObject2$
|
|
2328
|
-
content: css(_templateObject3$
|
|
2329
|
-
checkWrapper: css(_templateObject4$
|
|
2330
|
-
checkIcon: css(_templateObject5$
|
|
2331
|
-
congratsWrapper: css(_templateObject6$
|
|
2332
|
-
bottom: css(_templateObject7$
|
|
2313
|
+
wrapper: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
2314
|
+
header: css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2315
|
+
content: css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8)),
|
|
2316
|
+
checkWrapper: css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n ", "\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowVCentered, theme.palette.text.secondary),
|
|
2317
|
+
checkIcon: css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
|
|
2318
|
+
congratsWrapper: css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n padding: ", ";\n ", "\n margin-top: ", ";\n height: 52px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0.9),\n rgba(255, 255, 255, 0.9)\n ),\n #2e7d32;\n border-radius: 4px;\n "])), theme.spacing(0, 2), theme.cssMixins.rowVCentered, theme.spacing(8)),
|
|
2319
|
+
bottom: css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
2333
2320
|
};
|
|
2334
2321
|
const goToNextStep = () => {
|
|
2335
2322
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -2392,7 +2379,7 @@ function Evaluation$4(_ref) {
|
|
|
2392
2379
|
});
|
|
2393
2380
|
}
|
|
2394
2381
|
|
|
2395
|
-
var _templateObject$
|
|
2382
|
+
var _templateObject$i, _templateObject2$g, _templateObject3$d, _templateObject4$8, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
2396
2383
|
function ChooseAmountModal(_ref) {
|
|
2397
2384
|
let {
|
|
2398
2385
|
title,
|
|
@@ -2419,13 +2406,13 @@ function ChooseAmountModal(_ref) {
|
|
|
2419
2406
|
} = useMQ();
|
|
2420
2407
|
const [inputTouched, setInputTouched] = useState(false);
|
|
2421
2408
|
const styles = {
|
|
2422
|
-
subTitle: css(_templateObject$
|
|
2423
|
-
description2: css(_templateObject2$
|
|
2424
|
-
chosenAmountWrapper: css(_templateObject3$
|
|
2425
|
-
chosenAmount: css(_templateObject4$
|
|
2426
|
-
chosenAmountSymbol: css(_templateObject5$
|
|
2427
|
-
inputAmountWrapper: css(_templateObject6$
|
|
2428
|
-
inputAmount: css(_templateObject7$
|
|
2409
|
+
subTitle: css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
|
|
2410
|
+
description2: css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(2)),
|
|
2411
|
+
chosenAmountWrapper: css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteral(["\n ", ";\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n background-clip: text;\n -webkit-text-fill-color: transparent;\n font-weight: 700;\n font-size: 32px;\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(1), theme.spacing(4)),
|
|
2412
|
+
chosenAmount: css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
|
|
2413
|
+
chosenAmountSymbol: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
|
|
2414
|
+
inputAmountWrapper: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
|
|
2415
|
+
inputAmount: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
|
|
2429
2416
|
inputField: css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
|
|
2430
2417
|
maxButton: css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n width: 80px;\n "]))),
|
|
2431
2418
|
amountAvailable: css(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-bottom: ", ";\n font-size: 16px;\n & > svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(0.5), theme.spacing(12), theme.spacing(0.5)),
|
|
@@ -2575,7 +2562,7 @@ function ChooseAmountModal(_ref) {
|
|
|
2575
2562
|
});
|
|
2576
2563
|
}
|
|
2577
2564
|
|
|
2578
|
-
function ChooseAmount$
|
|
2565
|
+
function ChooseAmount$c(_ref) {
|
|
2579
2566
|
let {
|
|
2580
2567
|
poolInfo,
|
|
2581
2568
|
accountStats
|
|
@@ -2635,7 +2622,7 @@ function ChooseAmount$f(_ref) {
|
|
|
2635
2622
|
});
|
|
2636
2623
|
}
|
|
2637
2624
|
|
|
2638
|
-
function ApproveAllowance$
|
|
2625
|
+
function ApproveAllowance$a(_ref) {
|
|
2639
2626
|
let {
|
|
2640
2627
|
poolInfo
|
|
2641
2628
|
} = _ref;
|
|
@@ -2694,7 +2681,7 @@ function TxSendModal(_ref) {
|
|
|
2694
2681
|
});
|
|
2695
2682
|
}
|
|
2696
2683
|
|
|
2697
|
-
function Transfer$
|
|
2684
|
+
function Transfer$f(_ref) {
|
|
2698
2685
|
let {
|
|
2699
2686
|
poolInfo
|
|
2700
2687
|
} = _ref;
|
|
@@ -2717,7 +2704,7 @@ function Transfer$i(_ref) {
|
|
|
2717
2704
|
});
|
|
2718
2705
|
}
|
|
2719
2706
|
|
|
2720
|
-
function Success$
|
|
2707
|
+
function Success$c(_ref) {
|
|
2721
2708
|
let {
|
|
2722
2709
|
poolInfo,
|
|
2723
2710
|
creditRecord,
|
|
@@ -2742,182 +2729,114 @@ function Success$d(_ref) {
|
|
|
2742
2729
|
});
|
|
2743
2730
|
}
|
|
2744
2731
|
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
}
|
|
2752
|
-
};
|
|
2753
|
-
checkNotifiChainSupported();
|
|
2754
|
-
}, [chainId]);
|
|
2755
|
-
return {
|
|
2756
|
-
notifiChainSupported
|
|
2757
|
-
};
|
|
2758
|
-
};
|
|
2759
|
-
const useNotifiClient = (account, chainId) => {
|
|
2760
|
-
const [notifiClient, setNotifiClient] = useState(null);
|
|
2761
|
-
const {
|
|
2762
|
-
notifiChainSupported
|
|
2763
|
-
} = useDoesChainSupportNotifi(chainId);
|
|
2764
|
-
useEffect(() => {
|
|
2765
|
-
const createNotifiClient = async () => {
|
|
2766
|
-
if (account != null && chainId != null && notifiChainSupported) {
|
|
2767
|
-
const client = newFrontendClient({
|
|
2768
|
-
account: {
|
|
2769
|
-
publicKey: account
|
|
2770
|
-
},
|
|
2771
|
-
tenantId: 'humafinanceprod',
|
|
2772
|
-
env: 'Production',
|
|
2773
|
-
walletBlockchain: getBlockchainConfigFromChain(chainId)
|
|
2774
|
-
});
|
|
2775
|
-
await client.initialize();
|
|
2776
|
-
setNotifiClient(client);
|
|
2777
|
-
}
|
|
2778
|
-
};
|
|
2779
|
-
createNotifiClient();
|
|
2780
|
-
}, [account, chainId, notifiChainSupported]);
|
|
2781
|
-
return {
|
|
2782
|
-
notifiClient
|
|
2783
|
-
};
|
|
2784
|
-
};
|
|
2785
|
-
const useIsFirstTimeNotifiUser = (account, chainId) => {
|
|
2786
|
-
const [isFirstTimeNotifiUser, setIsFirstTimeNotifiUser] = useState(false);
|
|
2787
|
-
const {
|
|
2788
|
-
notifiClient
|
|
2789
|
-
} = useNotifiClient(account, chainId);
|
|
2790
|
-
const {
|
|
2791
|
-
notifiChainSupported
|
|
2792
|
-
} = useDoesChainSupportNotifi(chainId);
|
|
2793
|
-
useEffect(() => {
|
|
2794
|
-
const checkIsFirstTimeNotifiUser = async () => {
|
|
2795
|
-
if (notifiClient != null && notifiChainSupported) {
|
|
2796
|
-
const {
|
|
2797
|
-
userState
|
|
2798
|
-
} = notifiClient;
|
|
2799
|
-
// If the user is not authenticated or expired, they are a first time user
|
|
2800
|
-
if (userState == null || userState.status !== 'authenticated' && userState.status !== 'expired') {
|
|
2801
|
-
setIsFirstTimeNotifiUser(true);
|
|
2802
|
-
} else if (userState.status === 'authenticated') {
|
|
2803
|
-
var _targetGroups$;
|
|
2804
|
-
// If a user is authenticated, check if they have a target group (AKA email)
|
|
2805
|
-
// associated with their wallet. If they do not, show them the notifi onboarding flow.
|
|
2806
|
-
const targetGroups = await notifiClient.getTargetGroups();
|
|
2807
|
-
const emailTargets = (_targetGroups$ = targetGroups[0]) === null || _targetGroups$ === void 0 || (_targetGroups$ = _targetGroups$.emailTargets) === null || _targetGroups$ === void 0 ? void 0 : _targetGroups$[0];
|
|
2808
|
-
if (emailTargets == null || emailTargets.emailAddress == null) {
|
|
2809
|
-
setIsFirstTimeNotifiUser(true);
|
|
2810
|
-
}
|
|
2811
|
-
}
|
|
2812
|
-
}
|
|
2813
|
-
};
|
|
2814
|
-
checkIsFirstTimeNotifiUser();
|
|
2815
|
-
}, [notifiChainSupported, notifiClient]);
|
|
2816
|
-
return {
|
|
2817
|
-
isFirstTimeNotifiUser
|
|
2818
|
-
};
|
|
2732
|
+
var _templateObject$h, _templateObject2$f, _templateObject3$c, _templateObject4$7, _templateObject5$3;
|
|
2733
|
+
const validateDefaultTargetGroup = async frontendClient => {
|
|
2734
|
+
var _await$frontendClient;
|
|
2735
|
+
// NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login
|
|
2736
|
+
const targetGroup = (_await$frontendClient = await (frontendClient === null || frontendClient === void 0 ? void 0 : frontendClient.fetchFusionData())) === null || _await$frontendClient === void 0 || (_await$frontendClient = _await$frontendClient.targetGroup) === null || _await$frontendClient === void 0 ? void 0 : _await$frontendClient.find(group => (group === null || group === void 0 ? void 0 : group.name) === 'Default');
|
|
2737
|
+
return !!targetGroup;
|
|
2819
2738
|
};
|
|
2820
|
-
|
|
2821
|
-
var _templateObject$l, _templateObject2$j, _templateObject3$g, _templateObject4$8, _templateObject5$4;
|
|
2822
|
-
function getIdFromEventType(eventType) {
|
|
2823
|
-
if (eventType.type === 'directPush') {
|
|
2824
|
-
const directPushEventType = eventType;
|
|
2825
|
-
return directPushEventType.directPushId.value;
|
|
2826
|
-
}
|
|
2827
|
-
if (eventType.type === 'broadcast') {
|
|
2828
|
-
const broadcastEventType = eventType;
|
|
2829
|
-
return broadcastEventType.broadcastId.value;
|
|
2830
|
-
}
|
|
2831
|
-
return '';
|
|
2832
|
-
}
|
|
2833
|
-
async function fetchEventTypes(notifiClient) {
|
|
2834
|
-
var _process$env$REACT_AP, _subscriptionConfig$e;
|
|
2835
|
-
const subscribedAlerts = await notifiClient.getAlerts();
|
|
2836
|
-
const subscriptionConfig = await notifiClient.fetchSubscriptionCard({
|
|
2837
|
-
id: (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '',
|
|
2838
|
-
type: 'SUBSCRIPTION_CARD'
|
|
2839
|
-
});
|
|
2840
|
-
const eventTypes = subscriptionConfig === null || subscriptionConfig === void 0 || (_subscriptionConfig$e = subscriptionConfig.eventTypes) === null || _subscriptionConfig$e === void 0 ? void 0 : _subscriptionConfig$e.map(eventType => {
|
|
2841
|
-
const eventTypeId = getIdFromEventType(eventType);
|
|
2842
|
-
let enabled = false;
|
|
2843
|
-
// Check whether the user is subscribed to the event
|
|
2844
|
-
const subscribedAlert = subscribedAlerts === null || subscribedAlerts === void 0 ? void 0 : subscribedAlerts.find(alert => alert.filterOptions.indexOf(eventTypeId) >= 0);
|
|
2845
|
-
if (subscribedAlert) {
|
|
2846
|
-
enabled = true;
|
|
2847
|
-
}
|
|
2848
|
-
return {
|
|
2849
|
-
...eventType,
|
|
2850
|
-
enabled
|
|
2851
|
-
};
|
|
2852
|
-
});
|
|
2853
|
-
return eventTypes;
|
|
2854
|
-
}
|
|
2855
2739
|
function NotifiSubscriptionModal(_ref) {
|
|
2856
2740
|
let {
|
|
2741
|
+
successText,
|
|
2857
2742
|
handleSuccess
|
|
2858
2743
|
} = _ref;
|
|
2859
2744
|
const theme = useTheme();
|
|
2860
2745
|
const reset = useResetAtom(txAtom);
|
|
2861
2746
|
const dispatch = useAppDispatch();
|
|
2862
|
-
const {
|
|
2863
|
-
account,
|
|
2864
|
-
chainId,
|
|
2865
|
-
provider
|
|
2866
|
-
} = useWeb3React();
|
|
2867
2747
|
const [showSuccessScreen, setShowSuccessScreen] = useState(false);
|
|
2868
2748
|
const [isLoading, setIsLoading] = useState(false);
|
|
2869
2749
|
const [emailAddress, setEmailAddress] = useState('');
|
|
2870
2750
|
const [emailValid, setEmailValid] = useState();
|
|
2871
2751
|
const {
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2752
|
+
frontendClientStatus: {
|
|
2753
|
+
isInitialized,
|
|
2754
|
+
isAuthenticated,
|
|
2755
|
+
isExpired
|
|
2756
|
+
},
|
|
2757
|
+
frontendClient,
|
|
2758
|
+
login
|
|
2759
|
+
} = useNotifiFrontendClientContext();
|
|
2760
|
+
const {
|
|
2761
|
+
fusionEventTopics
|
|
2762
|
+
} = useNotifiTenantConfigContext();
|
|
2763
|
+
const {
|
|
2764
|
+
subscribeAlertsDefault
|
|
2765
|
+
} = useNotifiTopicContext();
|
|
2766
|
+
const {
|
|
2767
|
+
targetDocument: {
|
|
2768
|
+
targetGroupId
|
|
2769
|
+
},
|
|
2770
|
+
updateTargetInputs,
|
|
2771
|
+
renewTargetGroup
|
|
2772
|
+
} = useNotifiTargetContext();
|
|
2773
|
+
const {
|
|
2774
|
+
ftuStage,
|
|
2775
|
+
isLoading: isLoadingFtuStage,
|
|
2776
|
+
updateFtuStage
|
|
2777
|
+
} = useNotifiUserSettingContext();
|
|
2879
2778
|
const handleEmailAddressChange = event => {
|
|
2880
2779
|
var _event$target$value;
|
|
2881
2780
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
2882
2781
|
setEmailValid(emailRegex.test((_event$target$value = event.target.value) !== null && _event$target$value !== void 0 ? _event$target$value : ''));
|
|
2883
2782
|
setEmailAddress(event.target.value);
|
|
2884
2783
|
};
|
|
2784
|
+
useEffect(() => {
|
|
2785
|
+
async function subscribe() {
|
|
2786
|
+
if (!isInitialized || !isAuthenticated || !targetGroupId || isLoadingFtuStage) {
|
|
2787
|
+
return;
|
|
2788
|
+
}
|
|
2789
|
+
|
|
2790
|
+
// If a user is authenticated but already finished with the FTU (First Time User) setup
|
|
2791
|
+
// (AKA their login expired and they logged back in), then we can skip the subscription step.
|
|
2792
|
+
if (ftuStage !== FtuStage.Done) {
|
|
2793
|
+
var _await$frontendClient2, _targetGroup$emailTar;
|
|
2794
|
+
await updateTargetInputs('email', {
|
|
2795
|
+
value: emailAddress
|
|
2796
|
+
});
|
|
2797
|
+
// Authorize this email address for this wallet
|
|
2798
|
+
|
|
2799
|
+
if (!targetGroupId) {
|
|
2800
|
+
setIsLoading(false);
|
|
2801
|
+
return;
|
|
2802
|
+
}
|
|
2803
|
+
await subscribeAlertsDefault(fusionEventTopics, targetGroupId);
|
|
2804
|
+
await updateFtuStage(FtuStage.Done);
|
|
2805
|
+
const targetGroup = (_await$frontendClient2 = await (frontendClient === null || frontendClient === void 0 ? void 0 : frontendClient.fetchFusionData())) === null || _await$frontendClient2 === void 0 || (_await$frontendClient2 = _await$frontendClient2.targetGroup) === null || _await$frontendClient2 === void 0 ? void 0 : _await$frontendClient2.find(group => (group === null || group === void 0 ? void 0 : group.name) === 'Default');
|
|
2806
|
+
const emailTarget = targetGroup === null || targetGroup === void 0 || (_targetGroup$emailTar = targetGroup.emailTargets) === null || _targetGroup$emailTar === void 0 ? void 0 : _targetGroup$emailTar[0];
|
|
2807
|
+
if (emailTarget && !emailTarget.isConfirmed) {
|
|
2808
|
+
await frontendClient.sendEmailTargetVerification({
|
|
2809
|
+
targetId: emailTarget.id
|
|
2810
|
+
});
|
|
2811
|
+
}
|
|
2812
|
+
}
|
|
2813
|
+
setShowSuccessScreen(true);
|
|
2814
|
+
setIsLoading(false);
|
|
2815
|
+
}
|
|
2816
|
+
subscribe();
|
|
2817
|
+
}, [isInitialized, isAuthenticated, targetGroupId, updateTargetInputs, emailAddress, subscribeAlertsDefault, fusionEventTopics, updateFtuStage, isLoadingFtuStage, ftuStage, frontendClient]);
|
|
2818
|
+
useEffect(() => {
|
|
2819
|
+
const loginIfExpired = async () => {
|
|
2820
|
+
if (isExpired) {
|
|
2821
|
+
await login();
|
|
2822
|
+
}
|
|
2823
|
+
};
|
|
2824
|
+
loginIfExpired();
|
|
2825
|
+
}, [isExpired, login]);
|
|
2885
2826
|
const logInAndSubscribe = async () => {
|
|
2886
|
-
if (
|
|
2827
|
+
if (!isAuthenticated) {
|
|
2887
2828
|
setIsLoading(true);
|
|
2888
2829
|
|
|
2889
2830
|
// Ask user to sign a message to authenticate
|
|
2890
2831
|
try {
|
|
2891
|
-
await
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2832
|
+
await login();
|
|
2833
|
+
const isDefaultTargetExist = await validateDefaultTargetGroup(frontendClient);
|
|
2834
|
+
if (!isDefaultTargetExist) {
|
|
2835
|
+
await renewTargetGroup();
|
|
2836
|
+
}
|
|
2895
2837
|
} catch (e) {
|
|
2896
2838
|
setIsLoading(false);
|
|
2897
|
-
return;
|
|
2898
|
-
}
|
|
2899
|
-
|
|
2900
|
-
// Fetch all event types
|
|
2901
|
-
const fetchedEventTypes = await fetchEventTypes(notifiClient);
|
|
2902
|
-
|
|
2903
|
-
// Authorize this email address for this wallet
|
|
2904
|
-
await notifiClient.ensureTargetGroup({
|
|
2905
|
-
name: 'Default',
|
|
2906
|
-
emailAddress: emailAddress
|
|
2907
|
-
});
|
|
2908
|
-
|
|
2909
|
-
// Intentionally running this in serial because the Notifi ensureAlert can't handle
|
|
2910
|
-
// multiple calls. Notified their team to fix this.
|
|
2911
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
2912
|
-
for (const eventType of fetchedEventTypes) {
|
|
2913
|
-
// eslint-disable-next-line no-await-in-loop
|
|
2914
|
-
await notifiClient.ensureAlert({
|
|
2915
|
-
eventType,
|
|
2916
|
-
inputs: {}
|
|
2917
|
-
});
|
|
2918
2839
|
}
|
|
2919
|
-
setShowSuccessScreen(true);
|
|
2920
|
-
setIsLoading(false);
|
|
2921
2840
|
}
|
|
2922
2841
|
};
|
|
2923
2842
|
const handleCloseModal = useCallback(() => {
|
|
@@ -2926,11 +2845,11 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2926
2845
|
handleSuccess();
|
|
2927
2846
|
}, [dispatch, handleSuccess, reset]);
|
|
2928
2847
|
const styles = {
|
|
2929
|
-
disclaimer: css(_templateObject$
|
|
2930
|
-
inputField: css(_templateObject2$
|
|
2931
|
-
inputWrapper: css(_templateObject3$
|
|
2932
|
-
header: css(_templateObject4$
|
|
2933
|
-
check: css(_templateObject5$
|
|
2848
|
+
disclaimer: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(6)),
|
|
2849
|
+
inputField: css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
|
|
2850
|
+
inputWrapper: css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
|
|
2851
|
+
header: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2852
|
+
check: css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
|
|
2934
2853
|
};
|
|
2935
2854
|
if (isLoading) {
|
|
2936
2855
|
return jsx(LoadingModal, {
|
|
@@ -2947,7 +2866,7 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2947
2866
|
}), jsx(BottomButton, {
|
|
2948
2867
|
variant: "contained",
|
|
2949
2868
|
onClick: handleCloseModal,
|
|
2950
|
-
children:
|
|
2869
|
+
children: successText !== null && successText !== void 0 ? successText : 'DONE'
|
|
2951
2870
|
})]
|
|
2952
2871
|
});
|
|
2953
2872
|
}
|
|
@@ -2955,7 +2874,6 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2955
2874
|
title: "Connect Your Email",
|
|
2956
2875
|
children: [jsx(Typography, {
|
|
2957
2876
|
variant: "body2",
|
|
2958
|
-
textAlign: "justify",
|
|
2959
2877
|
margin: theme.spacing(6, 0, 4, 0),
|
|
2960
2878
|
children: "Connect your emails to receive important update about your account."
|
|
2961
2879
|
}), jsx(Box, {
|
|
@@ -2966,7 +2884,9 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2966
2884
|
type: "email",
|
|
2967
2885
|
value: emailAddress,
|
|
2968
2886
|
onChange: handleEmailAddressChange,
|
|
2969
|
-
variant: "
|
|
2887
|
+
variant: "outlined",
|
|
2888
|
+
color: "primary",
|
|
2889
|
+
focused: true
|
|
2970
2890
|
})
|
|
2971
2891
|
}), jsx(Box, {
|
|
2972
2892
|
css: styles.disclaimer,
|
|
@@ -2974,7 +2894,7 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2974
2894
|
}), jsx(BottomButton, {
|
|
2975
2895
|
variant: "contained",
|
|
2976
2896
|
onClick: logInAndSubscribe,
|
|
2977
|
-
disabled: !emailValid || isLoading,
|
|
2897
|
+
disabled: !emailValid || isLoading || !isInitialized,
|
|
2978
2898
|
children: "CONNECT EMAIL"
|
|
2979
2899
|
})]
|
|
2980
2900
|
});
|
|
@@ -2989,6 +2909,63 @@ function Notifications$4(_ref) {
|
|
|
2989
2909
|
});
|
|
2990
2910
|
}
|
|
2991
2911
|
|
|
2912
|
+
const useDoesChainSupportNotifi = chainId => {
|
|
2913
|
+
const [notifiChainSupported, setNotifiChainSupported] = useState(false);
|
|
2914
|
+
useEffect(() => {
|
|
2915
|
+
const checkNotifiChainSupported = async () => {
|
|
2916
|
+
if (chainId != null) {
|
|
2917
|
+
setNotifiChainSupported(doesChainSupportNotifi(chainId, checkIsDev()));
|
|
2918
|
+
}
|
|
2919
|
+
};
|
|
2920
|
+
checkNotifiChainSupported();
|
|
2921
|
+
}, [chainId]);
|
|
2922
|
+
return {
|
|
2923
|
+
notifiChainSupported
|
|
2924
|
+
};
|
|
2925
|
+
};
|
|
2926
|
+
|
|
2927
|
+
// Check if user is authenticated
|
|
2928
|
+
// If not authenticated or expired, have user login
|
|
2929
|
+
// After login, check FTU stage
|
|
2930
|
+
// If FTU stage is not Done, go to signup flow. Otherwise, skip to next step
|
|
2931
|
+
|
|
2932
|
+
const useIsFirstTimeNotifiUser = (account, chainId) => {
|
|
2933
|
+
const [isFirstTimeNotifiUser, setIsFirstTimeNotifiUser] = useState(false);
|
|
2934
|
+
const {
|
|
2935
|
+
frontendClientStatus: {
|
|
2936
|
+
isInitialized,
|
|
2937
|
+
isAuthenticated,
|
|
2938
|
+
isExpired
|
|
2939
|
+
}
|
|
2940
|
+
} = useNotifiFrontendClientContext();
|
|
2941
|
+
const {
|
|
2942
|
+
ftuStage,
|
|
2943
|
+
isLoading: isLoadingFtu
|
|
2944
|
+
} = useNotifiUserSettingContext();
|
|
2945
|
+
const {
|
|
2946
|
+
notifiChainSupported
|
|
2947
|
+
} = useDoesChainSupportNotifi(chainId);
|
|
2948
|
+
useEffect(() => {
|
|
2949
|
+
const checkIsFirstTimeNotifiUser = async () => {
|
|
2950
|
+
if (isInitialized && notifiChainSupported) {
|
|
2951
|
+
// If the user is not authenticated or expired, they are possibly a first time user.
|
|
2952
|
+
if (!isAuthenticated || isExpired) {
|
|
2953
|
+
setIsFirstTimeNotifiUser(true);
|
|
2954
|
+
} else if (isAuthenticated) {
|
|
2955
|
+
// If a user is authenticated, check if they've completed all the FTU (First Time User) stages.
|
|
2956
|
+
if (ftuStage !== FtuStage.Done) {
|
|
2957
|
+
setIsFirstTimeNotifiUser(true);
|
|
2958
|
+
}
|
|
2959
|
+
}
|
|
2960
|
+
}
|
|
2961
|
+
};
|
|
2962
|
+
checkIsFirstTimeNotifiUser();
|
|
2963
|
+
}, [ftuStage, isAuthenticated, isExpired, isInitialized, isLoadingFtu, notifiChainSupported]);
|
|
2964
|
+
return {
|
|
2965
|
+
isFirstTimeNotifiUser
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
|
|
2992
2969
|
function CreditLineBorrow(_ref) {
|
|
2993
2970
|
let {
|
|
2994
2971
|
poolName: poolNameStr,
|
|
@@ -3052,14 +3029,14 @@ function CreditLineBorrow(_ref) {
|
|
|
3052
3029
|
children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
|
|
3053
3030
|
poolInfo: poolInfo,
|
|
3054
3031
|
handleApprove: approveCallback
|
|
3055
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
3032
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
|
|
3056
3033
|
poolInfo: poolInfo,
|
|
3057
3034
|
accountStats: accountStats
|
|
3058
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
3035
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$a, {
|
|
3059
3036
|
poolInfo: poolInfo
|
|
3060
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
3037
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
|
|
3061
3038
|
poolInfo: poolInfo
|
|
3062
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
3039
|
+
}), step === WIDGET_STEP.Done && jsx(Success$c, {
|
|
3063
3040
|
poolInfo: poolInfo,
|
|
3064
3041
|
handleAction: setupNotificationsOrClose,
|
|
3065
3042
|
creditRecord: creditRecord,
|
|
@@ -3074,7 +3051,7 @@ function CreditLineBorrow(_ref) {
|
|
|
3074
3051
|
});
|
|
3075
3052
|
}
|
|
3076
3053
|
|
|
3077
|
-
var _templateObject$
|
|
3054
|
+
var _templateObject$g, _templateObject2$e, _templateObject3$b, _templateObject4$6, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8$1;
|
|
3078
3055
|
function InputAmountModal(_ref) {
|
|
3079
3056
|
let {
|
|
3080
3057
|
title,
|
|
@@ -3083,7 +3060,6 @@ function InputAmountModal(_ref) {
|
|
|
3083
3060
|
tokenSymbol,
|
|
3084
3061
|
suffix: defaultSuffix,
|
|
3085
3062
|
currentAmount,
|
|
3086
|
-
minimumAmount,
|
|
3087
3063
|
maxAmount,
|
|
3088
3064
|
maxAmountText = 'MAX',
|
|
3089
3065
|
maxAmountTitle,
|
|
@@ -3095,13 +3071,13 @@ function InputAmountModal(_ref) {
|
|
|
3095
3071
|
const [inputTouched, setInputTouched] = useState(false);
|
|
3096
3072
|
const suffix = " ".concat(defaultSuffix !== null && defaultSuffix !== void 0 ? defaultSuffix : tokenSymbol);
|
|
3097
3073
|
const styles = {
|
|
3098
|
-
inputAmountWrapper: css(_templateObject$
|
|
3099
|
-
inputAmount: css(_templateObject2$
|
|
3100
|
-
inputField: css(_templateObject3$
|
|
3101
|
-
maxWrapper: css(_templateObject4$
|
|
3102
|
-
maxTitle: css(_templateObject5$
|
|
3103
|
-
max: css(_templateObject6$
|
|
3104
|
-
info: css(_templateObject7$
|
|
3074
|
+
inputAmountWrapper: css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
|
|
3075
|
+
inputAmount: css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
|
|
3076
|
+
inputField: css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n input {\n width: 100%;\n color: ", ";\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n "])), theme.palette.text.primary),
|
|
3077
|
+
maxWrapper: css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
|
|
3078
|
+
maxTitle: css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n position: absolute;\n color: ", ";\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ", ";\n width: 200px;\n text-align: right;\n "])), theme.palette.text.primary, theme.spacing(-3)),
|
|
3079
|
+
max: css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n display: flex;\n min-width: fit-content;\n justify-content: center;\n align-items: center;\n border-radius: 32px;\n padding: 4px 10px;\n gap: 8px;\n font-weight: 700;\n font-size: 13px;\n line-height: 22px;\n letter-spacing: 0.46px;\n "]))),
|
|
3080
|
+
info: css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.palette.text.secondary),
|
|
3105
3081
|
subInfo: css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: ", ";\n "])), theme.spacing(6))
|
|
3106
3082
|
};
|
|
3107
3083
|
const onChange = event => {
|
|
@@ -3118,9 +3094,6 @@ function InputAmountModal(_ref) {
|
|
|
3118
3094
|
if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {
|
|
3119
3095
|
return true;
|
|
3120
3096
|
}
|
|
3121
|
-
if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount) {
|
|
3122
|
-
return true;
|
|
3123
|
-
}
|
|
3124
3097
|
return false;
|
|
3125
3098
|
};
|
|
3126
3099
|
const getEndAdornment = () => jsxs(Box, {
|
|
@@ -3162,11 +3135,6 @@ function InputAmountModal(_ref) {
|
|
|
3162
3135
|
css: styles.info,
|
|
3163
3136
|
children: info
|
|
3164
3137
|
}, info))
|
|
3165
|
-
}), !!minimumAmount && minimumAmount > 0 && jsx(Box, {
|
|
3166
|
-
children: jsxs(Typography, {
|
|
3167
|
-
css: styles.info,
|
|
3168
|
-
children: ["Minimum deposit: ", minimumAmount, " ", tokenSymbol]
|
|
3169
|
-
}, 'minDeposit')
|
|
3170
3138
|
}), jsx(BottomButton, {
|
|
3171
3139
|
variant: "contained",
|
|
3172
3140
|
onClick: handleAction,
|
|
@@ -3176,7 +3144,7 @@ function InputAmountModal(_ref) {
|
|
|
3176
3144
|
});
|
|
3177
3145
|
}
|
|
3178
3146
|
|
|
3179
|
-
function ChooseAmount$
|
|
3147
|
+
function ChooseAmount$b(_ref) {
|
|
3180
3148
|
let {
|
|
3181
3149
|
poolInfo,
|
|
3182
3150
|
poolUnderlyingToken,
|
|
@@ -3229,7 +3197,7 @@ function ChooseAmount$e(_ref) {
|
|
|
3229
3197
|
});
|
|
3230
3198
|
}
|
|
3231
3199
|
|
|
3232
|
-
function ApproveAllowance$
|
|
3200
|
+
function ApproveAllowance$9(_ref) {
|
|
3233
3201
|
let {
|
|
3234
3202
|
poolInfo,
|
|
3235
3203
|
poolUnderlyingToken
|
|
@@ -3287,7 +3255,7 @@ function TxSendModalV2(_ref) {
|
|
|
3287
3255
|
});
|
|
3288
3256
|
}
|
|
3289
3257
|
|
|
3290
|
-
function Transfer$
|
|
3258
|
+
function Transfer$e(_ref) {
|
|
3291
3259
|
let {
|
|
3292
3260
|
poolInfo
|
|
3293
3261
|
} = _ref;
|
|
@@ -3321,7 +3289,7 @@ function Transfer$h(_ref) {
|
|
|
3321
3289
|
});
|
|
3322
3290
|
}
|
|
3323
3291
|
|
|
3324
|
-
function Success$
|
|
3292
|
+
function Success$b(_ref) {
|
|
3325
3293
|
let {
|
|
3326
3294
|
poolUnderlyingToken,
|
|
3327
3295
|
creditRecord,
|
|
@@ -3418,16 +3386,16 @@ function CreditLineBorrowV2(_ref) {
|
|
|
3418
3386
|
handleSuccess: handleSuccessCallback,
|
|
3419
3387
|
children: [!step && jsx(LoadingModal, {
|
|
3420
3388
|
title: "Borrow"
|
|
3421
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
3389
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
|
|
3422
3390
|
poolInfo: poolInfo,
|
|
3423
3391
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3424
3392
|
accountStats: accountStats
|
|
3425
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
3393
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$9, {
|
|
3426
3394
|
poolInfo: poolInfo,
|
|
3427
3395
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3428
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
3396
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
|
|
3429
3397
|
poolInfo: poolInfo
|
|
3430
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
3398
|
+
}), step === WIDGET_STEP.Done && jsx(Success$b, {
|
|
3431
3399
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3432
3400
|
handleAction: setupNotificationsOrClose,
|
|
3433
3401
|
creditRecord: accountStats.creditRecord,
|
|
@@ -3442,7 +3410,7 @@ function CreditLineBorrowV2(_ref) {
|
|
|
3442
3410
|
});
|
|
3443
3411
|
}
|
|
3444
3412
|
|
|
3445
|
-
function ChooseAmount$
|
|
3413
|
+
function ChooseAmount$a(_ref) {
|
|
3446
3414
|
let {
|
|
3447
3415
|
payoffAmount,
|
|
3448
3416
|
totalDueAmount,
|
|
@@ -3493,7 +3461,7 @@ function ChooseAmount$d(_ref) {
|
|
|
3493
3461
|
});
|
|
3494
3462
|
}
|
|
3495
3463
|
|
|
3496
|
-
function ApproveAllowance$
|
|
3464
|
+
function ApproveAllowance$8(_ref) {
|
|
3497
3465
|
let {
|
|
3498
3466
|
poolInfo
|
|
3499
3467
|
} = _ref;
|
|
@@ -3507,7 +3475,7 @@ function ApproveAllowance$9(_ref) {
|
|
|
3507
3475
|
});
|
|
3508
3476
|
}
|
|
3509
3477
|
|
|
3510
|
-
function Transfer$
|
|
3478
|
+
function Transfer$d(_ref) {
|
|
3511
3479
|
let {
|
|
3512
3480
|
poolInfo
|
|
3513
3481
|
} = _ref;
|
|
@@ -3533,7 +3501,7 @@ function Transfer$g(_ref) {
|
|
|
3533
3501
|
});
|
|
3534
3502
|
}
|
|
3535
3503
|
|
|
3536
|
-
function Success$
|
|
3504
|
+
function Success$a(_ref) {
|
|
3537
3505
|
let {
|
|
3538
3506
|
poolInfo,
|
|
3539
3507
|
handleAction
|
|
@@ -3599,15 +3567,15 @@ function CreditLinePayment(_ref) {
|
|
|
3599
3567
|
loadingTitle: "Make Payment",
|
|
3600
3568
|
handleClose: handleClose,
|
|
3601
3569
|
handleSuccess: handleSuccess,
|
|
3602
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
3570
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$a, {
|
|
3603
3571
|
poolInfo: poolInfo,
|
|
3604
3572
|
payoffAmount: payoffAmount,
|
|
3605
3573
|
totalDueAmount: totalDueAmount
|
|
3606
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
3574
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$8, {
|
|
3607
3575
|
poolInfo: poolInfo
|
|
3608
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
3576
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$d, {
|
|
3609
3577
|
poolInfo: poolInfo
|
|
3610
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
3578
|
+
}), step === WIDGET_STEP.Done && jsx(Success$a, {
|
|
3611
3579
|
poolInfo: poolInfo,
|
|
3612
3580
|
handleAction: handleClose
|
|
3613
3581
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
@@ -3618,7 +3586,7 @@ function CreditLinePayment(_ref) {
|
|
|
3618
3586
|
});
|
|
3619
3587
|
}
|
|
3620
3588
|
|
|
3621
|
-
function ChooseAmount$
|
|
3589
|
+
function ChooseAmount$9(_ref) {
|
|
3622
3590
|
let {
|
|
3623
3591
|
payoffAmount: payoffAmountBN,
|
|
3624
3592
|
totalDueAmount: totalDueAmountBN,
|
|
@@ -3679,7 +3647,7 @@ function ChooseAmount$c(_ref) {
|
|
|
3679
3647
|
});
|
|
3680
3648
|
}
|
|
3681
3649
|
|
|
3682
|
-
function ApproveAllowance$
|
|
3650
|
+
function ApproveAllowance$7(_ref) {
|
|
3683
3651
|
let {
|
|
3684
3652
|
poolInfo,
|
|
3685
3653
|
poolUnderlyingToken
|
|
@@ -3697,7 +3665,7 @@ function ApproveAllowance$8(_ref) {
|
|
|
3697
3665
|
});
|
|
3698
3666
|
}
|
|
3699
3667
|
|
|
3700
|
-
function Transfer$
|
|
3668
|
+
function Transfer$c(_ref) {
|
|
3701
3669
|
let {
|
|
3702
3670
|
poolInfo,
|
|
3703
3671
|
poolUnderlyingToken
|
|
@@ -3732,7 +3700,7 @@ function Transfer$f(_ref) {
|
|
|
3732
3700
|
});
|
|
3733
3701
|
}
|
|
3734
3702
|
|
|
3735
|
-
function Success$
|
|
3703
|
+
function Success$9(_ref) {
|
|
3736
3704
|
let {
|
|
3737
3705
|
poolUnderlyingToken,
|
|
3738
3706
|
handleAction
|
|
@@ -3803,18 +3771,18 @@ function CreditLinePaymentV2(_ref) {
|
|
|
3803
3771
|
loadingTitle: "Pay",
|
|
3804
3772
|
handleClose: handleClose,
|
|
3805
3773
|
handleSuccess: handleSuccess,
|
|
3806
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
3774
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
|
|
3807
3775
|
poolInfo: poolInfo,
|
|
3808
3776
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3809
3777
|
payoffAmount: payoffAmount,
|
|
3810
3778
|
totalDueAmount: totalDueAmount
|
|
3811
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
3779
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$7, {
|
|
3812
3780
|
poolInfo: poolInfo,
|
|
3813
3781
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3814
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
3782
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
|
|
3815
3783
|
poolInfo: poolInfo,
|
|
3816
3784
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3817
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
3785
|
+
}), step === WIDGET_STEP.Done && jsx(Success$9, {
|
|
3818
3786
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3819
3787
|
handleAction: handleClose
|
|
3820
3788
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
@@ -3825,7 +3793,7 @@ function CreditLinePaymentV2(_ref) {
|
|
|
3825
3793
|
});
|
|
3826
3794
|
}
|
|
3827
3795
|
|
|
3828
|
-
function ApproveAllowance$
|
|
3796
|
+
function ApproveAllowance$6(_ref) {
|
|
3829
3797
|
let {
|
|
3830
3798
|
poolInfo,
|
|
3831
3799
|
poolUnderlyingToken,
|
|
@@ -3844,7 +3812,7 @@ function ApproveAllowance$7(_ref) {
|
|
|
3844
3812
|
});
|
|
3845
3813
|
}
|
|
3846
3814
|
|
|
3847
|
-
function Success$
|
|
3815
|
+
function Success$8(_ref) {
|
|
3848
3816
|
let {
|
|
3849
3817
|
amountToDeposit,
|
|
3850
3818
|
poolUnderlyingToken,
|
|
@@ -3862,7 +3830,7 @@ function Success$9(_ref) {
|
|
|
3862
3830
|
});
|
|
3863
3831
|
}
|
|
3864
3832
|
|
|
3865
|
-
function Transfer$
|
|
3833
|
+
function Transfer$b(_ref) {
|
|
3866
3834
|
let {
|
|
3867
3835
|
poolInfo,
|
|
3868
3836
|
amountToDeposit,
|
|
@@ -3939,15 +3907,15 @@ function SupplyFirstLossCover(_ref) {
|
|
|
3939
3907
|
loadingTitle: title,
|
|
3940
3908
|
handleClose: handleClose,
|
|
3941
3909
|
handleSuccess: handleSuccess,
|
|
3942
|
-
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
3910
|
+
children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$6, {
|
|
3943
3911
|
poolInfo: poolInfo,
|
|
3944
3912
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3945
3913
|
amountToDeposit: minAmountToDeposit
|
|
3946
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
3914
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
|
|
3947
3915
|
poolInfo: poolInfo,
|
|
3948
3916
|
amountToDeposit: minAmountToDeposit,
|
|
3949
3917
|
title: title
|
|
3950
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
3918
|
+
}), step === WIDGET_STEP.Done && jsx(Success$8, {
|
|
3951
3919
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3952
3920
|
handleAction: handleClose,
|
|
3953
3921
|
amountToDeposit: minAmountToDeposit
|
|
@@ -3996,7 +3964,7 @@ function Evaluation$3(_ref) {
|
|
|
3996
3964
|
});
|
|
3997
3965
|
}
|
|
3998
3966
|
|
|
3999
|
-
function ChooseAmount$
|
|
3967
|
+
function ChooseAmount$8(_ref) {
|
|
4000
3968
|
var _receivable;
|
|
4001
3969
|
let {
|
|
4002
3970
|
poolInfo,
|
|
@@ -4061,7 +4029,7 @@ function ChooseAmount$b(_ref) {
|
|
|
4061
4029
|
});
|
|
4062
4030
|
}
|
|
4063
4031
|
|
|
4064
|
-
var _templateObject$
|
|
4032
|
+
var _templateObject$f, _templateObject2$d, _templateObject3$a, _templateObject4$5, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
|
|
4065
4033
|
function ConfirmTransferModal(_ref) {
|
|
4066
4034
|
let {
|
|
4067
4035
|
title,
|
|
@@ -4072,13 +4040,13 @@ function ConfirmTransferModal(_ref) {
|
|
|
4072
4040
|
} = _ref;
|
|
4073
4041
|
const theme = useTheme();
|
|
4074
4042
|
const styles = {
|
|
4075
|
-
wrapper: css(_templateObject$
|
|
4076
|
-
header: css(_templateObject2$
|
|
4077
|
-
description: css(_templateObject3$
|
|
4078
|
-
transferWrapper: css(_templateObject4$
|
|
4079
|
-
transfer: css(_templateObject5$
|
|
4080
|
-
transferItem: css(_templateObject6$
|
|
4081
|
-
arrow: css(_templateObject7$
|
|
4043
|
+
wrapper: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
|
|
4044
|
+
header: css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
4045
|
+
description: css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.palette.text.secondary, theme.spacing(4)),
|
|
4046
|
+
transferWrapper: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
|
|
4047
|
+
transfer: css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n ", "\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n margin-bottom: ", ";\n position: relative;\n box-sizing: border-box;\n "])), theme.cssMixins.rowSpaceBetweened, theme.cssMixins.rowVCentered, theme.palette.text.primary, theme.spacing(3, 2), theme.spacing(1)),
|
|
4048
|
+
transferItem: css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
|
|
4049
|
+
arrow: css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n @keyframes bounceAlpha {\n 0% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n 25% {\n opacity: 0;\n transform: translateX(10px) scale(0.9);\n }\n 26% {\n opacity: 0;\n transform: translateX(-10px) scale(0.9);\n }\n 55% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n }\n animation-name: bounceAlpha;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n color: ", ";\n position: absolute;\n margin: auto;\n top: 0;\n left: calc(15% + 36px);\n bottom: 0;\n right: 0;\n width: 16px;\n height: 16px;\n "])), theme.palette.primary.main),
|
|
4082
4050
|
arrowFirst: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n "]))),
|
|
4083
4051
|
okButton: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
|
|
4084
4052
|
usdcIcon: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n width: 22px;\n margin-right: ", ";\n & > path:first-of-type {\n fill: #76707e;\n }\n "])), theme.spacing(2))
|
|
@@ -4201,7 +4169,7 @@ function ApproveNFT(_ref) {
|
|
|
4201
4169
|
});
|
|
4202
4170
|
}
|
|
4203
4171
|
|
|
4204
|
-
function Transfer$
|
|
4172
|
+
function Transfer$a(_ref) {
|
|
4205
4173
|
let {
|
|
4206
4174
|
poolInfo,
|
|
4207
4175
|
tokenId
|
|
@@ -4226,7 +4194,7 @@ function Transfer$d(_ref) {
|
|
|
4226
4194
|
});
|
|
4227
4195
|
}
|
|
4228
4196
|
|
|
4229
|
-
function Success$
|
|
4197
|
+
function Success$7(_ref) {
|
|
4230
4198
|
let {
|
|
4231
4199
|
handleAction
|
|
4232
4200
|
} = _ref;
|
|
@@ -4277,16 +4245,16 @@ function InvoiceFactoringBorrow(_ref) {
|
|
|
4277
4245
|
children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
|
|
4278
4246
|
poolInfo: poolInfo,
|
|
4279
4247
|
tokenId: tokenId.toString()
|
|
4280
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
4248
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
|
|
4281
4249
|
poolInfo: poolInfo,
|
|
4282
4250
|
accountStats: accountStats
|
|
4283
4251
|
}), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer$2, {}), step === WIDGET_STEP.ApproveNFT && jsx(ApproveNFT, {
|
|
4284
4252
|
poolInfo: poolInfo,
|
|
4285
4253
|
tokenId: tokenId.toString()
|
|
4286
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
4254
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$a, {
|
|
4287
4255
|
poolInfo: poolInfo,
|
|
4288
4256
|
tokenId: tokenId.toString()
|
|
4289
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
4257
|
+
}), step === WIDGET_STEP.Done && jsx(Success$7, {
|
|
4290
4258
|
handleAction: handleClose
|
|
4291
4259
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
4292
4260
|
title: "Invoice Factoring",
|
|
@@ -4296,7 +4264,7 @@ function InvoiceFactoringBorrow(_ref) {
|
|
|
4296
4264
|
});
|
|
4297
4265
|
}
|
|
4298
4266
|
|
|
4299
|
-
function ChooseAmount$
|
|
4267
|
+
function ChooseAmount$7(_ref) {
|
|
4300
4268
|
let {
|
|
4301
4269
|
creditRecord,
|
|
4302
4270
|
poolInfo
|
|
@@ -4347,7 +4315,7 @@ function ChooseAmount$a(_ref) {
|
|
|
4347
4315
|
});
|
|
4348
4316
|
}
|
|
4349
4317
|
|
|
4350
|
-
function ApproveAllowance$
|
|
4318
|
+
function ApproveAllowance$5(_ref) {
|
|
4351
4319
|
let {
|
|
4352
4320
|
poolInfo
|
|
4353
4321
|
} = _ref;
|
|
@@ -4361,7 +4329,7 @@ function ApproveAllowance$6(_ref) {
|
|
|
4361
4329
|
});
|
|
4362
4330
|
}
|
|
4363
4331
|
|
|
4364
|
-
function Transfer$
|
|
4332
|
+
function Transfer$9(_ref) {
|
|
4365
4333
|
let {
|
|
4366
4334
|
poolInfo
|
|
4367
4335
|
} = _ref;
|
|
@@ -4387,7 +4355,7 @@ function Transfer$c(_ref) {
|
|
|
4387
4355
|
});
|
|
4388
4356
|
}
|
|
4389
4357
|
|
|
4390
|
-
function Success$
|
|
4358
|
+
function Success$6(_ref) {
|
|
4391
4359
|
let {
|
|
4392
4360
|
poolInfo,
|
|
4393
4361
|
handleAction
|
|
@@ -4441,14 +4409,14 @@ function InvoiceFactoringPayment(_ref) {
|
|
|
4441
4409
|
loadingTitle: "Make Payment",
|
|
4442
4410
|
handleClose: handleClose,
|
|
4443
4411
|
handleSuccess: handleSuccess,
|
|
4444
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
4412
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$7, {
|
|
4445
4413
|
creditRecord: creditRecord,
|
|
4446
4414
|
poolInfo: poolInfo
|
|
4447
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
4415
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$5, {
|
|
4448
4416
|
poolInfo: poolInfo
|
|
4449
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
4417
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
|
|
4450
4418
|
poolInfo: poolInfo
|
|
4451
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
4419
|
+
}), step === WIDGET_STEP.Done && jsx(Success$6, {
|
|
4452
4420
|
poolInfo: poolInfo,
|
|
4453
4421
|
handleAction: handleClose
|
|
4454
4422
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
@@ -4459,8 +4427,8 @@ function InvoiceFactoringPayment(_ref) {
|
|
|
4459
4427
|
});
|
|
4460
4428
|
}
|
|
4461
4429
|
|
|
4462
|
-
var _templateObject$
|
|
4463
|
-
function ChooseTranche$
|
|
4430
|
+
var _templateObject$e, _templateObject2$c, _templateObject3$9;
|
|
4431
|
+
function ChooseTranche$1(_ref) {
|
|
4464
4432
|
let {
|
|
4465
4433
|
selectedTranche,
|
|
4466
4434
|
changeTranche
|
|
@@ -4468,9 +4436,9 @@ function ChooseTranche$4(_ref) {
|
|
|
4468
4436
|
const theme = useTheme();
|
|
4469
4437
|
const dispatch = useAppDispatch();
|
|
4470
4438
|
const styles = {
|
|
4471
|
-
subTitle: css(_templateObject$
|
|
4472
|
-
radioGroup: css(_templateObject2$
|
|
4473
|
-
formControl: css(_templateObject3$
|
|
4439
|
+
subTitle: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
4440
|
+
radioGroup: css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
4441
|
+
formControl: css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
4474
4442
|
};
|
|
4475
4443
|
const handleNext = () => {
|
|
4476
4444
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -4515,7 +4483,7 @@ function ChooseTranche$4(_ref) {
|
|
|
4515
4483
|
});
|
|
4516
4484
|
}
|
|
4517
4485
|
|
|
4518
|
-
function ChooseAmount$
|
|
4486
|
+
function ChooseAmount$6(_ref) {
|
|
4519
4487
|
let {
|
|
4520
4488
|
poolInfo,
|
|
4521
4489
|
poolUnderlyingToken,
|
|
@@ -4542,10 +4510,11 @@ function ChooseAmount$9(_ref) {
|
|
|
4542
4510
|
const lockupEndTime = depositRecord.lastDepositTime.toNumber() + lpConfig.withdrawalLockoutPeriodInDays * SECONDS_IN_A_DAY;
|
|
4543
4511
|
if (nextEpochStartTime < lockupEndTime) {
|
|
4544
4512
|
const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
|
|
4513
|
+
const withdrawTime = lockupEndTimeDayjs.add(1, 'month');
|
|
4545
4514
|
dispatch(setStep(WIDGET_STEP.Error));
|
|
4546
4515
|
dispatch(setError({
|
|
4547
4516
|
errorReason: 'Redemption too soon',
|
|
4548
|
-
errorMessage: "Your last deposit was on ".concat(timestampToLL(depositRecord.lastDepositTime.toNumber()), ". You can
|
|
4517
|
+
errorMessage: "Your last deposit was on ".concat(timestampToLL(depositRecord.lastDepositTime.toNumber()), ". You can begin submitting redemption requests on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ", which can be redeemed starting ").concat(timestampToLL(withdrawTime.unix()), ".")
|
|
4549
4518
|
}));
|
|
4550
4519
|
}
|
|
4551
4520
|
}
|
|
@@ -4580,7 +4549,7 @@ function ChooseAmount$9(_ref) {
|
|
|
4580
4549
|
});
|
|
4581
4550
|
}
|
|
4582
4551
|
|
|
4583
|
-
function Transfer$
|
|
4552
|
+
function Transfer$8(_ref) {
|
|
4584
4553
|
let {
|
|
4585
4554
|
poolInfo,
|
|
4586
4555
|
poolUnderlyingToken,
|
|
@@ -4613,7 +4582,7 @@ function Transfer$b(_ref) {
|
|
|
4613
4582
|
});
|
|
4614
4583
|
}
|
|
4615
4584
|
|
|
4616
|
-
function Done$
|
|
4585
|
+
function Done$2(_ref) {
|
|
4617
4586
|
let {
|
|
4618
4587
|
handleAction
|
|
4619
4588
|
} = _ref;
|
|
@@ -4723,18 +4692,18 @@ function AddRedemptionV2(_ref) {
|
|
|
4723
4692
|
loadingTitle: title,
|
|
4724
4693
|
handleClose: handleClose,
|
|
4725
4694
|
handleSuccess: handleRedeemSuccess,
|
|
4726
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$
|
|
4695
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
|
|
4727
4696
|
selectedTranche: trancheInfo === null || trancheInfo === void 0 ? void 0 : trancheInfo.tranche,
|
|
4728
4697
|
changeTranche: handleChangeTranche
|
|
4729
|
-
}), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$
|
|
4698
|
+
}), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$6, {
|
|
4730
4699
|
poolInfo: poolInfo,
|
|
4731
4700
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4732
4701
|
trancheInfo: trancheInfo
|
|
4733
|
-
}), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$
|
|
4702
|
+
}), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$8, {
|
|
4734
4703
|
poolInfo: poolInfo,
|
|
4735
4704
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4736
4705
|
trancheInfo: trancheInfo
|
|
4737
|
-
}), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$
|
|
4706
|
+
}), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$2, {
|
|
4738
4707
|
handleAction: handleClose
|
|
4739
4708
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
4740
4709
|
title: title,
|
|
@@ -4745,7 +4714,7 @@ function AddRedemptionV2(_ref) {
|
|
|
4745
4714
|
});
|
|
4746
4715
|
}
|
|
4747
4716
|
|
|
4748
|
-
function Transfer$
|
|
4717
|
+
function Transfer$7(_ref) {
|
|
4749
4718
|
let {
|
|
4750
4719
|
poolInfo,
|
|
4751
4720
|
trancheType,
|
|
@@ -4771,7 +4740,7 @@ function Transfer$a(_ref) {
|
|
|
4771
4740
|
});
|
|
4772
4741
|
}
|
|
4773
4742
|
|
|
4774
|
-
function Done$
|
|
4743
|
+
function Done$1(_ref) {
|
|
4775
4744
|
let {
|
|
4776
4745
|
poolUnderlyingToken,
|
|
4777
4746
|
redemptionInfo,
|
|
@@ -4832,11 +4801,11 @@ function CancelRedemptionV2(_ref) {
|
|
|
4832
4801
|
loadingTitle: title,
|
|
4833
4802
|
handleClose: handleClose,
|
|
4834
4803
|
handleSuccess: handleRedeemSuccess,
|
|
4835
|
-
children: [step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
4804
|
+
children: [step === WIDGET_STEP.Transfer && jsx(Transfer$7, {
|
|
4836
4805
|
poolInfo: poolInfo,
|
|
4837
4806
|
trancheType: trancheType,
|
|
4838
4807
|
redemptionInfo: redemptionInfo
|
|
4839
|
-
}), step === WIDGET_STEP.Done && jsx(Done$
|
|
4808
|
+
}), step === WIDGET_STEP.Done && jsx(Done$1, {
|
|
4840
4809
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4841
4810
|
handleAction: handleClose,
|
|
4842
4811
|
redemptionInfo: redemptionInfo
|
|
@@ -4849,7 +4818,7 @@ function CancelRedemptionV2(_ref) {
|
|
|
4849
4818
|
});
|
|
4850
4819
|
}
|
|
4851
4820
|
|
|
4852
|
-
var _templateObject$
|
|
4821
|
+
var _templateObject$d, _templateObject2$b;
|
|
4853
4822
|
function EvaluationEA(_ref) {
|
|
4854
4823
|
let {
|
|
4855
4824
|
poolInfo,
|
|
@@ -4863,8 +4832,8 @@ function EvaluationEA(_ref) {
|
|
|
4863
4832
|
} = useWeb3React();
|
|
4864
4833
|
const [loading, setLoading] = useState(false);
|
|
4865
4834
|
const styles = {
|
|
4866
|
-
iconWrapper: css(_templateObject$
|
|
4867
|
-
description: css(_templateObject2$
|
|
4835
|
+
iconWrapper: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
4836
|
+
description: css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
|
|
4868
4837
|
};
|
|
4869
4838
|
const approveLender = async () => {
|
|
4870
4839
|
if (account) {
|
|
@@ -4959,7 +4928,7 @@ function HumaSnackBar(_ref2) {
|
|
|
4959
4928
|
});
|
|
4960
4929
|
}
|
|
4961
4930
|
|
|
4962
|
-
var _templateObject$
|
|
4931
|
+
var _templateObject$c, _templateObject2$a;
|
|
4963
4932
|
const KYCProvider = 'Securitize';
|
|
4964
4933
|
// TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.
|
|
4965
4934
|
const JiaPoolCopies = {
|
|
@@ -5025,8 +4994,8 @@ function EvaluationKYC(_ref) {
|
|
|
5025
4994
|
const docSignatureCompleted = docSignatureStatus === 'completed';
|
|
5026
4995
|
const [openSnackBar, setOpenSnackBar] = useState(false);
|
|
5027
4996
|
const styles = {
|
|
5028
|
-
iconWrapper: css(_templateObject$
|
|
5029
|
-
description: css(_templateObject2$
|
|
4997
|
+
iconWrapper: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
4998
|
+
description: css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
|
|
5030
4999
|
};
|
|
5031
5000
|
const {
|
|
5032
5001
|
envelopeKey,
|
|
@@ -5238,7 +5207,7 @@ function Evaluation$2(_ref) {
|
|
|
5238
5207
|
});
|
|
5239
5208
|
}
|
|
5240
5209
|
|
|
5241
|
-
function ChooseAmount$
|
|
5210
|
+
function ChooseAmount$5(_ref) {
|
|
5242
5211
|
let {
|
|
5243
5212
|
allowance,
|
|
5244
5213
|
withdrawlLockoutSeconds,
|
|
@@ -5281,7 +5250,7 @@ function ChooseAmount$8(_ref) {
|
|
|
5281
5250
|
});
|
|
5282
5251
|
}
|
|
5283
5252
|
|
|
5284
|
-
function ApproveAllowance$
|
|
5253
|
+
function ApproveAllowance$4(_ref) {
|
|
5285
5254
|
let {
|
|
5286
5255
|
poolInfo
|
|
5287
5256
|
} = _ref;
|
|
@@ -5295,7 +5264,7 @@ function ApproveAllowance$5(_ref) {
|
|
|
5295
5264
|
});
|
|
5296
5265
|
}
|
|
5297
5266
|
|
|
5298
|
-
function Transfer$
|
|
5267
|
+
function Transfer$6(_ref) {
|
|
5299
5268
|
let {
|
|
5300
5269
|
poolInfo
|
|
5301
5270
|
} = _ref;
|
|
@@ -5318,7 +5287,7 @@ function Transfer$9(_ref) {
|
|
|
5318
5287
|
});
|
|
5319
5288
|
}
|
|
5320
5289
|
|
|
5321
|
-
function Success$
|
|
5290
|
+
function Success$5(_ref) {
|
|
5322
5291
|
let {
|
|
5323
5292
|
poolInfo,
|
|
5324
5293
|
handleAction,
|
|
@@ -5445,16 +5414,16 @@ function LendSupply(_ref) {
|
|
|
5445
5414
|
poolInfo: poolInfo,
|
|
5446
5415
|
handleClose: handleClose,
|
|
5447
5416
|
handleApproveSuccess: handleApproveSuccess
|
|
5448
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
5417
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$5, {
|
|
5449
5418
|
poolInfo: poolInfo,
|
|
5450
5419
|
allowance: allowance,
|
|
5451
5420
|
underlyingTokenBalance: balanceWithoutDecimals,
|
|
5452
5421
|
withdrawlLockoutSeconds: withdrawlLockoutSeconds
|
|
5453
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
5422
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$4, {
|
|
5454
5423
|
poolInfo: poolInfo
|
|
5455
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
5424
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$6, {
|
|
5456
5425
|
poolInfo: poolInfo
|
|
5457
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
5426
|
+
}), step === WIDGET_STEP.Done && jsx(Success$5, {
|
|
5458
5427
|
poolInfo: poolInfo,
|
|
5459
5428
|
handleAction: setupNotificationsOrClose,
|
|
5460
5429
|
hasNextStep: isFirstTimeNotifiUser
|
|
@@ -5469,8 +5438,8 @@ function LendSupply(_ref) {
|
|
|
5469
5438
|
});
|
|
5470
5439
|
}
|
|
5471
5440
|
|
|
5472
|
-
var _templateObject$
|
|
5473
|
-
function ChooseTranche
|
|
5441
|
+
var _templateObject$b, _templateObject2$9, _templateObject3$8;
|
|
5442
|
+
function ChooseTranche(_ref) {
|
|
5474
5443
|
let {
|
|
5475
5444
|
poolUnderlyingToken,
|
|
5476
5445
|
selectedTranche,
|
|
@@ -5479,9 +5448,9 @@ function ChooseTranche$3(_ref) {
|
|
|
5479
5448
|
const theme = useTheme();
|
|
5480
5449
|
const dispatch = useAppDispatch();
|
|
5481
5450
|
const styles = {
|
|
5482
|
-
subTitle: css(_templateObject$
|
|
5483
|
-
radioGroup: css(_templateObject2$
|
|
5484
|
-
formControl: css(_templateObject3$
|
|
5451
|
+
subTitle: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
5452
|
+
radioGroup: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
5453
|
+
formControl: css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
5485
5454
|
};
|
|
5486
5455
|
const handleNext = () => {
|
|
5487
5456
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -5531,7 +5500,7 @@ function ChooseTranche$3(_ref) {
|
|
|
5531
5500
|
});
|
|
5532
5501
|
}
|
|
5533
5502
|
|
|
5534
|
-
var _templateObject$
|
|
5503
|
+
var _templateObject$a, _templateObject2$8, _templateObject3$7;
|
|
5535
5504
|
function PersonaEvaluation(_ref) {
|
|
5536
5505
|
let {
|
|
5537
5506
|
poolInfo,
|
|
@@ -5797,9 +5766,9 @@ function PersonaEvaluation(_ref) {
|
|
|
5797
5766
|
}
|
|
5798
5767
|
};
|
|
5799
5768
|
const styles = {
|
|
5800
|
-
iconWrapper: css(_templateObject$
|
|
5801
|
-
description: css(_templateObject2$
|
|
5802
|
-
points: css(_templateObject3$
|
|
5769
|
+
iconWrapper: css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
5770
|
+
description: css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary),
|
|
5771
|
+
points: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
|
|
5803
5772
|
};
|
|
5804
5773
|
if (!loadingType) {
|
|
5805
5774
|
return jsxs(WrapperModal, {
|
|
@@ -5831,7 +5800,7 @@ function PersonaEvaluation(_ref) {
|
|
|
5831
5800
|
});
|
|
5832
5801
|
}
|
|
5833
5802
|
|
|
5834
|
-
var _templateObject$
|
|
5803
|
+
var _templateObject$9, _templateObject2$7;
|
|
5835
5804
|
const LoadingCopiesByType = {
|
|
5836
5805
|
verificationStatus: {
|
|
5837
5806
|
description: "Checking your verification status..."
|
|
@@ -6036,8 +6005,8 @@ function SecuritizeEvaluation(_ref) {
|
|
|
6036
6005
|
onClose: () => setOpenSnackBar(false)
|
|
6037
6006
|
});
|
|
6038
6007
|
const styles = {
|
|
6039
|
-
iconWrapper: css(_templateObject$
|
|
6040
|
-
description: css(_templateObject2$
|
|
6008
|
+
iconWrapper: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
6009
|
+
description: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary)
|
|
6041
6010
|
};
|
|
6042
6011
|
if (!loadingType) {
|
|
6043
6012
|
return jsxs(WrapperModal, {
|
|
@@ -6093,7 +6062,7 @@ function Evaluation$1(_ref) {
|
|
|
6093
6062
|
return null;
|
|
6094
6063
|
}
|
|
6095
6064
|
|
|
6096
|
-
function ChooseAmount$
|
|
6065
|
+
function ChooseAmount$4(_ref) {
|
|
6097
6066
|
let {
|
|
6098
6067
|
poolInfo,
|
|
6099
6068
|
lpConfig,
|
|
@@ -6176,7 +6145,7 @@ function ChooseAmount$7(_ref) {
|
|
|
6176
6145
|
});
|
|
6177
6146
|
}
|
|
6178
6147
|
|
|
6179
|
-
function ApproveAllowance$
|
|
6148
|
+
function ApproveAllowance$3(_ref) {
|
|
6180
6149
|
let {
|
|
6181
6150
|
poolInfo
|
|
6182
6151
|
} = _ref;
|
|
@@ -6193,7 +6162,7 @@ function ApproveAllowance$4(_ref) {
|
|
|
6193
6162
|
});
|
|
6194
6163
|
}
|
|
6195
6164
|
|
|
6196
|
-
function Transfer$
|
|
6165
|
+
function Transfer$5(_ref) {
|
|
6197
6166
|
let {
|
|
6198
6167
|
poolInfo,
|
|
6199
6168
|
trancheType
|
|
@@ -6225,7 +6194,7 @@ function Transfer$8(_ref) {
|
|
|
6225
6194
|
});
|
|
6226
6195
|
}
|
|
6227
6196
|
|
|
6228
|
-
function Success$
|
|
6197
|
+
function Success$4(_ref) {
|
|
6229
6198
|
let {
|
|
6230
6199
|
poolInfo,
|
|
6231
6200
|
lpConfig,
|
|
@@ -6288,8 +6257,9 @@ function Success$5(_ref) {
|
|
|
6288
6257
|
}, [campaign, dispatch, handleAction, isFirstTimeNotifiUser, notifiChainSupported]);
|
|
6289
6258
|
const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
|
|
6290
6259
|
const getSubContent = () => {
|
|
6291
|
-
const
|
|
6292
|
-
|
|
6260
|
+
const redemptionTime = dayjs().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
|
|
6261
|
+
const withdrawTime = redemptionTime.add(1, 'month');
|
|
6262
|
+
return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(redemptionTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
|
|
6293
6263
|
};
|
|
6294
6264
|
const getButtonText = () => {
|
|
6295
6265
|
if (hasNextStep) {
|
|
@@ -6319,11 +6289,12 @@ function Notifications$1(_ref) {
|
|
|
6319
6289
|
}
|
|
6320
6290
|
}, [campaign, dispatch, handleAction]);
|
|
6321
6291
|
return jsx(NotifiSubscriptionModal, {
|
|
6292
|
+
successText: campaign ? 'VIEW POINTS' : undefined,
|
|
6322
6293
|
handleSuccess: handleUserAction
|
|
6323
6294
|
});
|
|
6324
6295
|
}
|
|
6325
6296
|
|
|
6326
|
-
var _templateObject$
|
|
6297
|
+
var _templateObject$8, _templateObject2$6, _templateObject3$6, _templateObject4$4, _templateObject5, _templateObject6, _templateObject7;
|
|
6327
6298
|
var STATE = /*#__PURE__*/function (STATE) {
|
|
6328
6299
|
STATE["Loading"] = "Loading";
|
|
6329
6300
|
STATE["SignIn"] = "SignIn";
|
|
@@ -6411,13 +6382,13 @@ function PointsEarned(_ref) {
|
|
|
6411
6382
|
handleAction();
|
|
6412
6383
|
}, [dispatch, handleAction, reset]);
|
|
6413
6384
|
const styles = {
|
|
6414
|
-
wrapper: css(_templateObject$
|
|
6415
|
-
congrats: css(_templateObject2$
|
|
6416
|
-
ribbon: css(_templateObject3$
|
|
6417
|
-
ribbonContent: css(_templateObject4$
|
|
6418
|
-
entirePoints: css(_templateObject5
|
|
6419
|
-
entirePointsDetails: css(_templateObject6
|
|
6420
|
-
everyday: css(_templateObject7
|
|
6385
|
+
wrapper: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
6386
|
+
congrats: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
|
|
6387
|
+
ribbon: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n position: relative;\n ", ";\n font-weight: 700;\n margin-top: ", ";\n color: ", ";\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.cssMixins.rowHCentered, theme.spacing(-8), theme.palette.text.primary),
|
|
6388
|
+
ribbonContent: css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
|
|
6389
|
+
entirePoints: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(7)),
|
|
6390
|
+
entirePointsDetails: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(4)),
|
|
6391
|
+
everyday: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
|
|
6421
6392
|
};
|
|
6422
6393
|
if (state === STATE.SignIn) {
|
|
6423
6394
|
return jsx(SignIn, {
|
|
@@ -6548,7 +6519,7 @@ function LendSupplyV2(_ref) {
|
|
|
6548
6519
|
loadingTitle: "Supply ".concat(poolUnderlyingToken.symbol),
|
|
6549
6520
|
handleClose: handleClose,
|
|
6550
6521
|
handleSuccess: handleSuccess,
|
|
6551
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche
|
|
6522
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
|
|
6552
6523
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
6553
6524
|
selectedTranche: selectedTranche,
|
|
6554
6525
|
changeTranche: setSelectedTranche
|
|
@@ -6559,19 +6530,19 @@ function LendSupplyV2(_ref) {
|
|
|
6559
6530
|
changeTranche: setSelectedTranche,
|
|
6560
6531
|
pointsTestnetExperience: pointsTestnetExperience,
|
|
6561
6532
|
campaign: campaign
|
|
6562
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
6533
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
|
|
6563
6534
|
poolInfo: poolInfo,
|
|
6564
6535
|
lpConfig: lpConfig,
|
|
6565
6536
|
juniorAssets: juniorAssets,
|
|
6566
6537
|
seniorAssets: seniorAssets,
|
|
6567
6538
|
selectedTranche: selectedTranche,
|
|
6568
6539
|
isUniTranche: isUniTranche
|
|
6569
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
6540
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$3, {
|
|
6570
6541
|
poolInfo: poolInfo
|
|
6571
|
-
}), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$
|
|
6542
|
+
}), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$5, {
|
|
6572
6543
|
poolInfo: poolInfo,
|
|
6573
6544
|
trancheType: selectedTranche
|
|
6574
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
6545
|
+
}), step === WIDGET_STEP.Done && jsx(Success$4, {
|
|
6575
6546
|
poolInfo: poolInfo,
|
|
6576
6547
|
lpConfig: lpConfig,
|
|
6577
6548
|
campaign: campaign,
|
|
@@ -6636,7 +6607,7 @@ function CheckWithdrawable(_ref) {
|
|
|
6636
6607
|
});
|
|
6637
6608
|
}
|
|
6638
6609
|
|
|
6639
|
-
function ChooseAmount$
|
|
6610
|
+
function ChooseAmount$3(_ref) {
|
|
6640
6611
|
let {
|
|
6641
6612
|
lenderPosition,
|
|
6642
6613
|
poolBalance,
|
|
@@ -6674,7 +6645,7 @@ function ChooseAmount$6(_ref) {
|
|
|
6674
6645
|
});
|
|
6675
6646
|
}
|
|
6676
6647
|
|
|
6677
|
-
function Transfer$
|
|
6648
|
+
function Transfer$4(_ref) {
|
|
6678
6649
|
let {
|
|
6679
6650
|
poolInfo
|
|
6680
6651
|
} = _ref;
|
|
@@ -6697,7 +6668,7 @@ function Transfer$7(_ref) {
|
|
|
6697
6668
|
});
|
|
6698
6669
|
}
|
|
6699
6670
|
|
|
6700
|
-
function Success$
|
|
6671
|
+
function Success$3(_ref) {
|
|
6701
6672
|
let {
|
|
6702
6673
|
poolInfo,
|
|
6703
6674
|
handleAction
|
|
@@ -6787,13 +6758,13 @@ function LendWithdraw(_ref) {
|
|
|
6787
6758
|
children: [step === WIDGET_STEP.CheckWithdrawable && jsx(CheckWithdrawable, {
|
|
6788
6759
|
poolInfo: poolInfo,
|
|
6789
6760
|
handleClose: handleClose
|
|
6790
|
-
}), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$
|
|
6761
|
+
}), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$3, {
|
|
6791
6762
|
poolInfo: poolInfo,
|
|
6792
6763
|
lenderPosition: lenderPosition,
|
|
6793
6764
|
poolBalance: poolBalance
|
|
6794
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
6765
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$4, {
|
|
6795
6766
|
poolInfo: poolInfo
|
|
6796
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
6767
|
+
}), step === WIDGET_STEP.Done && jsx(Success$3, {
|
|
6797
6768
|
poolInfo: poolInfo,
|
|
6798
6769
|
handleAction: handleClose
|
|
6799
6770
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
@@ -6805,7 +6776,7 @@ function LendWithdraw(_ref) {
|
|
|
6805
6776
|
});
|
|
6806
6777
|
}
|
|
6807
6778
|
|
|
6808
|
-
var _templateObject$
|
|
6779
|
+
var _templateObject$7, _templateObject2$5, _templateObject3$5, _templateObject4$3;
|
|
6809
6780
|
function ConfirmTransfer$1(_ref) {
|
|
6810
6781
|
let {
|
|
6811
6782
|
poolInfo,
|
|
@@ -6847,10 +6818,10 @@ function ConfirmTransfer$1(_ref) {
|
|
|
6847
6818
|
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
6848
6819
|
};
|
|
6849
6820
|
const styles = {
|
|
6850
|
-
itemWrapper: css(_templateObject$
|
|
6851
|
-
item: css(_templateObject2$
|
|
6852
|
-
itemValue: css(_templateObject3$
|
|
6853
|
-
divider: css(_templateObject4$
|
|
6821
|
+
itemWrapper: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n margin-top: ", ";\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n "])), theme.spacing(9), theme.palette.text.primary),
|
|
6822
|
+
item: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
|
|
6823
|
+
itemValue: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
|
|
6824
|
+
divider: css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
|
|
6854
6825
|
};
|
|
6855
6826
|
return jsxs(WrapperModal, {
|
|
6856
6827
|
title: "Withdraw ".concat(symbol),
|
|
@@ -6894,7 +6865,7 @@ function ConfirmTransfer$1(_ref) {
|
|
|
6894
6865
|
});
|
|
6895
6866
|
}
|
|
6896
6867
|
|
|
6897
|
-
function Transfer$
|
|
6868
|
+
function Transfer$3(_ref) {
|
|
6898
6869
|
let {
|
|
6899
6870
|
poolInfo,
|
|
6900
6871
|
tranche,
|
|
@@ -6920,7 +6891,7 @@ function Transfer$6(_ref) {
|
|
|
6920
6891
|
});
|
|
6921
6892
|
}
|
|
6922
6893
|
|
|
6923
|
-
function Done
|
|
6894
|
+
function Done(_ref) {
|
|
6924
6895
|
let {
|
|
6925
6896
|
poolUnderlyingToken,
|
|
6926
6897
|
withdrawAmount,
|
|
@@ -7020,11 +6991,11 @@ function LendWithdrawV2(_ref) {
|
|
|
7020
6991
|
redemptionStatus: redemptionStatus,
|
|
7021
6992
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7022
6993
|
poolIsClosed: poolIsClosed
|
|
7023
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer$
|
|
6994
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer$3, {
|
|
7024
6995
|
poolInfo: poolInfo,
|
|
7025
6996
|
tranche: trancheType,
|
|
7026
6997
|
poolIsClosed: poolIsClosed
|
|
7027
|
-
}), step === WIDGET_STEP.Done && jsx(Done
|
|
6998
|
+
}), step === WIDGET_STEP.Done && jsx(Done, {
|
|
7028
6999
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7029
7000
|
withdrawAmount: redemptionStatus.withdrawableAssets,
|
|
7030
7001
|
handleAction: handleClose
|
|
@@ -7037,7 +7008,7 @@ function LendWithdrawV2(_ref) {
|
|
|
7037
7008
|
});
|
|
7038
7009
|
}
|
|
7039
7010
|
|
|
7040
|
-
function ChooseAmount$
|
|
7011
|
+
function ChooseAmount$2(_ref) {
|
|
7041
7012
|
let {
|
|
7042
7013
|
poolInfo,
|
|
7043
7014
|
poolUnderlyingToken,
|
|
@@ -7101,7 +7072,7 @@ function ChooseAmount$5(_ref) {
|
|
|
7101
7072
|
});
|
|
7102
7073
|
}
|
|
7103
7074
|
|
|
7104
|
-
function ApproveAllowance$
|
|
7075
|
+
function ApproveAllowance$2(_ref) {
|
|
7105
7076
|
let {
|
|
7106
7077
|
poolInfo,
|
|
7107
7078
|
poolUnderlyingToken
|
|
@@ -7160,7 +7131,7 @@ function ApproveReceivable$1(_ref) {
|
|
|
7160
7131
|
});
|
|
7161
7132
|
}
|
|
7162
7133
|
|
|
7163
|
-
function Transfer$
|
|
7134
|
+
function Transfer$2(_ref) {
|
|
7164
7135
|
let {
|
|
7165
7136
|
poolInfo,
|
|
7166
7137
|
tokenId
|
|
@@ -7205,7 +7176,7 @@ function Transfer$5(_ref) {
|
|
|
7205
7176
|
});
|
|
7206
7177
|
}
|
|
7207
7178
|
|
|
7208
|
-
function Success$
|
|
7179
|
+
function Success$2(_ref) {
|
|
7209
7180
|
let {
|
|
7210
7181
|
poolUnderlyingToken,
|
|
7211
7182
|
creditRecord,
|
|
@@ -7301,21 +7272,21 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
|
|
|
7301
7272
|
loadingTitle: "Borrow",
|
|
7302
7273
|
handleClose: handleClose,
|
|
7303
7274
|
handleSuccess: handleSuccessCallback,
|
|
7304
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$
|
|
7275
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
|
|
7305
7276
|
poolInfo: poolInfo,
|
|
7306
7277
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7307
7278
|
accountStats: accountStats,
|
|
7308
7279
|
tokenId: tokenId
|
|
7309
|
-
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$
|
|
7280
|
+
}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$2, {
|
|
7310
7281
|
poolInfo: poolInfo,
|
|
7311
7282
|
poolUnderlyingToken: poolUnderlyingToken
|
|
7312
7283
|
}), step === WIDGET_STEP.ApproveNFT && tokenId && jsx(ApproveReceivable$1, {
|
|
7313
7284
|
poolInfo: poolInfo,
|
|
7314
7285
|
tokenId: tokenId
|
|
7315
|
-
}), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$
|
|
7286
|
+
}), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$2, {
|
|
7316
7287
|
poolInfo: poolInfo,
|
|
7317
7288
|
tokenId: tokenId
|
|
7318
|
-
}), step === WIDGET_STEP.Done && jsx(Success$
|
|
7289
|
+
}), step === WIDGET_STEP.Done && jsx(Success$2, {
|
|
7319
7290
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7320
7291
|
handleAction: setupNotificationsOrClose,
|
|
7321
7292
|
creditRecord: accountStats.creditRecord,
|
|
@@ -7330,7 +7301,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
|
|
|
7330
7301
|
});
|
|
7331
7302
|
}
|
|
7332
7303
|
|
|
7333
|
-
var _templateObject$
|
|
7304
|
+
var _templateObject$6, _templateObject2$4, _templateObject3$4;
|
|
7334
7305
|
function ChoosePaymentType(_ref) {
|
|
7335
7306
|
let {
|
|
7336
7307
|
paymentType,
|
|
@@ -7339,9 +7310,9 @@ function ChoosePaymentType(_ref) {
|
|
|
7339
7310
|
const theme = useTheme();
|
|
7340
7311
|
const dispatch = useAppDispatch();
|
|
7341
7312
|
const styles = {
|
|
7342
|
-
subTitle: css(_templateObject$
|
|
7343
|
-
radioGroup: css(_templateObject2$
|
|
7344
|
-
formControl: css(_templateObject3$
|
|
7313
|
+
subTitle: css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
7314
|
+
radioGroup: css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
7315
|
+
formControl: css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
7345
7316
|
};
|
|
7346
7317
|
const handleNext = () => {
|
|
7347
7318
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -7386,7 +7357,7 @@ function ChoosePaymentType(_ref) {
|
|
|
7386
7357
|
});
|
|
7387
7358
|
}
|
|
7388
7359
|
|
|
7389
|
-
function ChooseAmount$
|
|
7360
|
+
function ChooseAmount$1(_ref) {
|
|
7390
7361
|
let {
|
|
7391
7362
|
payoffAmount: payoffAmountBN,
|
|
7392
7363
|
poolInfo,
|
|
@@ -7440,7 +7411,7 @@ function ChooseAmount$4(_ref) {
|
|
|
7440
7411
|
});
|
|
7441
7412
|
}
|
|
7442
7413
|
|
|
7443
|
-
function ApproveAllowance$
|
|
7414
|
+
function ApproveAllowance$1(_ref) {
|
|
7444
7415
|
let {
|
|
7445
7416
|
poolInfo,
|
|
7446
7417
|
poolUnderlyingToken,
|
|
@@ -7568,7 +7539,7 @@ function ApproveReceivable(_ref) {
|
|
|
7568
7539
|
});
|
|
7569
7540
|
}
|
|
7570
7541
|
|
|
7571
|
-
function Transfer$
|
|
7542
|
+
function Transfer$1(_ref) {
|
|
7572
7543
|
let {
|
|
7573
7544
|
poolInfo,
|
|
7574
7545
|
poolUnderlyingToken,
|
|
@@ -7626,7 +7597,7 @@ function Transfer$4(_ref) {
|
|
|
7626
7597
|
});
|
|
7627
7598
|
}
|
|
7628
7599
|
|
|
7629
|
-
function Success$
|
|
7600
|
+
function Success$1(_ref) {
|
|
7630
7601
|
let {
|
|
7631
7602
|
poolUnderlyingToken,
|
|
7632
7603
|
paymentType,
|
|
@@ -7719,12 +7690,12 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
|
|
|
7719
7690
|
children: [step === WIDGET_STEP.ChoosePaymentType && jsx(ChoosePaymentType, {
|
|
7720
7691
|
paymentType: paymentType,
|
|
7721
7692
|
changePaymentType: setPaymentType
|
|
7722
|
-
}), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$
|
|
7693
|
+
}), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$1, {
|
|
7723
7694
|
poolInfo: poolInfo,
|
|
7724
7695
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7725
7696
|
payoffAmount: payoffAmount,
|
|
7726
7697
|
paymentType: paymentType
|
|
7727
|
-
}), step === WIDGET_STEP.ApproveAllowance && paymentType && jsx(ApproveAllowance$
|
|
7698
|
+
}), step === WIDGET_STEP.ApproveAllowance && paymentType && jsx(ApproveAllowance$1, {
|
|
7728
7699
|
poolInfo: poolInfo,
|
|
7729
7700
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7730
7701
|
paymentType: paymentType
|
|
@@ -7735,14 +7706,14 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
|
|
|
7735
7706
|
}), step === WIDGET_STEP.ApproveNFT && borrowTokenId && jsx(ApproveReceivable, {
|
|
7736
7707
|
poolInfo: poolInfo,
|
|
7737
7708
|
tokenId: borrowTokenId
|
|
7738
|
-
}), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$
|
|
7709
|
+
}), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$1, {
|
|
7739
7710
|
poolInfo: poolInfo,
|
|
7740
7711
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7741
7712
|
paymentType: paymentType,
|
|
7742
7713
|
paymentTokenId: tokenId,
|
|
7743
7714
|
borrowTokenId: borrowTokenId,
|
|
7744
7715
|
setSuccessTxReceipt: setSuccessTxReceipt
|
|
7745
|
-
}), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$
|
|
7716
|
+
}), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$1, {
|
|
7746
7717
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7747
7718
|
paymentType: paymentType,
|
|
7748
7719
|
handleAction: handleClose,
|
|
@@ -7782,7 +7753,7 @@ const useElementDimensions = ref => {
|
|
|
7782
7753
|
return dimensions;
|
|
7783
7754
|
};
|
|
7784
7755
|
|
|
7785
|
-
var _templateObject$
|
|
7756
|
+
var _templateObject$5, _templateObject2$3, _templateObject3$3;
|
|
7786
7757
|
// @TODO: Move HumaTable along with Superfluid widget to Dapp package
|
|
7787
7758
|
function HumaTable(_ref) {
|
|
7788
7759
|
let {
|
|
@@ -7801,9 +7772,9 @@ function HumaTable(_ref) {
|
|
|
7801
7772
|
} = useElementDimensions(ref);
|
|
7802
7773
|
const isLoading = !columns || !rows;
|
|
7803
7774
|
const styles = {
|
|
7804
|
-
tableHeader: css(_templateObject$
|
|
7805
|
-
tableBody: css(_templateObject2$
|
|
7806
|
-
empty: css(_templateObject3$
|
|
7775
|
+
tableHeader: css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "])), theme.cssMixins.rowVCentered),
|
|
7776
|
+
tableBody: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "]))),
|
|
7777
|
+
empty: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: ", ";\n font-weight: 400;\n font-size: 14px;\n "])), theme.spacing(2))
|
|
7807
7778
|
};
|
|
7808
7779
|
const handleChangePage = (event, newPage) => {
|
|
7809
7780
|
setPage(newPage);
|
|
@@ -7930,8 +7901,8 @@ function HumaTable(_ref) {
|
|
|
7930
7901
|
});
|
|
7931
7902
|
}
|
|
7932
7903
|
|
|
7933
|
-
var _templateObject$
|
|
7934
|
-
const GET_ACTIVITY = gql(_templateObject$
|
|
7904
|
+
var _templateObject$4, _templateObject2$2, _templateObject3$2, _templateObject4$2;
|
|
7905
|
+
const GET_ACTIVITY = gql(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n query GetCreditLineActivity($pool: String!, $owner: String!, $event: [Int]!) {\n creditEvents(\n where: { pool: $pool, owner: $owner, event_in: $event }\n orderBy: timestamp\n orderDirection: desc\n ) {\n id\n amount\n timestamp\n owner\n pool\n event\n }\n }\n"])));
|
|
7935
7906
|
const columns = [{
|
|
7936
7907
|
title: 'Action',
|
|
7937
7908
|
dataIndex: 'eventText'
|
|
@@ -7992,9 +7963,9 @@ function Activity(_ref) {
|
|
|
7992
7963
|
setEvents(result);
|
|
7993
7964
|
}, [data === null || data === void 0 ? void 0 : data.creditEvents, decimals]);
|
|
7994
7965
|
const styles = {
|
|
7995
|
-
wrapper: css(_templateObject2$
|
|
7996
|
-
title: css(_templateObject3$
|
|
7997
|
-
tableWrapper: css(_templateObject4$
|
|
7966
|
+
wrapper: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
|
|
7967
|
+
title: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n font-weight: 800;\n font-size: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
|
|
7968
|
+
tableWrapper: css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n box-shadow: 0px 4px 40px 8px rgba(0, 0, 0, 0.04);\n border-radius: 24px;\n padding: ", ";\n "])), getPadding())
|
|
7998
7969
|
};
|
|
7999
7970
|
return jsxs(Box, {
|
|
8000
7971
|
css: styles.wrapper,
|
|
@@ -8065,7 +8036,7 @@ function Evaluation(_ref) {
|
|
|
8065
8036
|
});
|
|
8066
8037
|
}
|
|
8067
8038
|
|
|
8068
|
-
function ChooseAmount
|
|
8039
|
+
function ChooseAmount(_ref) {
|
|
8069
8040
|
var _poolInfo$extra;
|
|
8070
8041
|
let {
|
|
8071
8042
|
poolInfo,
|
|
@@ -8179,7 +8150,7 @@ function ConfirmTransfer() {
|
|
|
8179
8150
|
});
|
|
8180
8151
|
}
|
|
8181
8152
|
|
|
8182
|
-
function ApproveAllowance
|
|
8153
|
+
function ApproveAllowance(_ref) {
|
|
8183
8154
|
let {
|
|
8184
8155
|
poolInfo
|
|
8185
8156
|
} = _ref;
|
|
@@ -8251,7 +8222,7 @@ function Permit(_ref) {
|
|
|
8251
8222
|
});
|
|
8252
8223
|
}
|
|
8253
8224
|
|
|
8254
|
-
function Transfer
|
|
8225
|
+
function Transfer(_ref) {
|
|
8255
8226
|
let {
|
|
8256
8227
|
poolInfo
|
|
8257
8228
|
} = _ref;
|
|
@@ -8280,7 +8251,7 @@ function Transfer$3(_ref) {
|
|
|
8280
8251
|
});
|
|
8281
8252
|
}
|
|
8282
8253
|
|
|
8283
|
-
function Success
|
|
8254
|
+
function Success(_ref) {
|
|
8284
8255
|
let {
|
|
8285
8256
|
handleAction
|
|
8286
8257
|
} = _ref;
|
|
@@ -8330,19 +8301,19 @@ function StreamFactoringBorrow(_ref) {
|
|
|
8330
8301
|
poolInfo: poolInfo,
|
|
8331
8302
|
payerAddress: payerAddress,
|
|
8332
8303
|
superToken: superToken
|
|
8333
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount
|
|
8304
|
+
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount, {
|
|
8334
8305
|
poolInfo: poolInfo,
|
|
8335
8306
|
currentFlowRate: currentFlowRate
|
|
8336
|
-
}), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance
|
|
8307
|
+
}), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance, {
|
|
8337
8308
|
poolInfo: poolInfo
|
|
8338
8309
|
}), step === WIDGET_STEP.Permit && account && jsx(Permit, {
|
|
8339
8310
|
poolInfo: poolInfo,
|
|
8340
8311
|
payerAddress: payerAddress,
|
|
8341
8312
|
borrower: account,
|
|
8342
8313
|
superToken: superToken
|
|
8343
|
-
}), step === WIDGET_STEP.Transfer && jsx(Transfer
|
|
8314
|
+
}), step === WIDGET_STEP.Transfer && jsx(Transfer, {
|
|
8344
8315
|
poolInfo: poolInfo
|
|
8345
|
-
}), step === WIDGET_STEP.Done && jsx(Success
|
|
8316
|
+
}), step === WIDGET_STEP.Done && jsx(Success, {
|
|
8346
8317
|
handleAction: handleClose
|
|
8347
8318
|
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
8348
8319
|
title: "Stream Borrowing",
|
|
@@ -8352,7 +8323,7 @@ function StreamFactoringBorrow(_ref) {
|
|
|
8352
8323
|
});
|
|
8353
8324
|
}
|
|
8354
8325
|
|
|
8355
|
-
var _templateObject$
|
|
8326
|
+
var _templateObject$3, _templateObject2$1, _templateObject3$1, _templateObject4$1;
|
|
8356
8327
|
function UpcomingList(_ref) {
|
|
8357
8328
|
let {
|
|
8358
8329
|
items,
|
|
@@ -8378,10 +8349,10 @@ function UpcomingList(_ref) {
|
|
|
8378
8349
|
return theme.spacing(0, 2, 2, 2);
|
|
8379
8350
|
};
|
|
8380
8351
|
const styles = {
|
|
8381
|
-
title: css(_templateObject$
|
|
8382
|
-
description: css(_templateObject2$
|
|
8383
|
-
tableWrapper: css(_templateObject3$
|
|
8384
|
-
progress: css(_templateObject4$
|
|
8352
|
+
title: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
|
|
8353
|
+
description: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
|
|
8354
|
+
tableWrapper: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
|
|
8355
|
+
progress: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
|
|
8385
8356
|
};
|
|
8386
8357
|
return jsxs(Box, {
|
|
8387
8358
|
children: [jsx(Box, {
|
|
@@ -8410,7 +8381,7 @@ function UpcomingList(_ref) {
|
|
|
8410
8381
|
});
|
|
8411
8382
|
}
|
|
8412
8383
|
|
|
8413
|
-
var _templateObject$
|
|
8384
|
+
var _templateObject$2, _templateObject2, _templateObject3, _templateObject4;
|
|
8414
8385
|
function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
8415
8386
|
var _ref2$1 = process.env.NODE_ENV === "production" ? {
|
|
8416
8387
|
name: "1llo5fb",
|
|
@@ -8488,10 +8459,10 @@ function FactoredList(_ref) {
|
|
|
8488
8459
|
return theme.spacing(0, 2, 2, 2);
|
|
8489
8460
|
};
|
|
8490
8461
|
const styles = {
|
|
8491
|
-
title: css(_templateObject$
|
|
8492
|
-
description: css(_templateObject2
|
|
8493
|
-
tableWrapper: css(_templateObject3
|
|
8494
|
-
progress: css(_templateObject4
|
|
8462
|
+
title: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
|
|
8463
|
+
description: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
|
|
8464
|
+
tableWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
|
|
8465
|
+
progress: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
|
|
8495
8466
|
};
|
|
8496
8467
|
return jsxs(Box, {
|
|
8497
8468
|
children: [jsxs(Box, {
|
|
@@ -8568,7 +8539,7 @@ function SuperfluidFactoredList(_ref) {
|
|
|
8568
8539
|
});
|
|
8569
8540
|
}
|
|
8570
8541
|
|
|
8571
|
-
var _templateObject$
|
|
8542
|
+
var _templateObject$1;
|
|
8572
8543
|
function TableActionButton(_ref) {
|
|
8573
8544
|
let {
|
|
8574
8545
|
title,
|
|
@@ -8576,7 +8547,7 @@ function TableActionButton(_ref) {
|
|
|
8576
8547
|
handleClick,
|
|
8577
8548
|
disabled = false
|
|
8578
8549
|
} = _ref;
|
|
8579
|
-
const styles = css(_templateObject$
|
|
8550
|
+
const styles = css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n border: none;\n padding: 0;\n background: ", ";\n &:hover {\n border: none;\n }\n "])), disabled ? 'unset !important' : 'inherit');
|
|
8580
8551
|
return jsx(Button, {
|
|
8581
8552
|
className: className,
|
|
8582
8553
|
variant: disabled ? undefined : 'outlined',
|
|
@@ -8589,9 +8560,9 @@ function TableActionButton(_ref) {
|
|
|
8589
8560
|
});
|
|
8590
8561
|
}
|
|
8591
8562
|
|
|
8592
|
-
var _templateObject
|
|
8563
|
+
var _templateObject;
|
|
8593
8564
|
function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
8594
|
-
const GET_RECEIVED_STREAMS = gql(_templateObject
|
|
8565
|
+
const GET_RECEIVED_STREAMS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetReceivedStreams($receiver: String!, $tokenIds: [String]!) {\n streams(\n where: { receiver: $receiver, token_in: $tokenIds, currentFlowRate_gt: 0 }\n orderBy: updatedAtTimestamp\n orderDirection: desc\n ) {\n id\n currentFlowRate\n sender {\n id\n }\n token {\n id\n symbol\n decimals\n }\n }\n }\n"])));
|
|
8595
8566
|
const getUpcomingColumns = (userHasActiveLoan, handleGetPaid) => [{
|
|
8596
8567
|
title: '',
|
|
8597
8568
|
dataIndex: 'icon',
|
|
@@ -8845,7 +8816,7 @@ const coreThemeConstants = {
|
|
|
8845
8816
|
borderRadius: {
|
|
8846
8817
|
md: 4
|
|
8847
8818
|
},
|
|
8848
|
-
fontFamily: ['
|
|
8819
|
+
fontFamily: ['Red-Hat-Display', '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"'].join(','),
|
|
8849
8820
|
letterSpacing: {
|
|
8850
8821
|
lg: '2px',
|
|
8851
8822
|
md: '1px',
|
|
@@ -9238,1126 +9209,80 @@ const themeHuma = createTheme(themeBase, {
|
|
|
9238
9209
|
components: components(themeBase)
|
|
9239
9210
|
});
|
|
9240
9211
|
|
|
9241
|
-
|
|
9242
|
-
function ChooseTranche$2(_ref) {
|
|
9243
|
-
let {
|
|
9244
|
-
poolUnderlyingToken,
|
|
9245
|
-
selectedTranche,
|
|
9246
|
-
changeTranche
|
|
9247
|
-
} = _ref;
|
|
9248
|
-
const theme = useTheme();
|
|
9249
|
-
const dispatch = useAppDispatch();
|
|
9250
|
-
const styles = {
|
|
9251
|
-
subTitle: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
9252
|
-
radioGroup: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
9253
|
-
formControl: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
9254
|
-
};
|
|
9255
|
-
const handleNext = () => {
|
|
9256
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9257
|
-
};
|
|
9258
|
-
const items = [{
|
|
9259
|
-
label: 'Senior',
|
|
9260
|
-
value: 'senior'
|
|
9261
|
-
}, {
|
|
9262
|
-
label: 'Junior',
|
|
9263
|
-
value: 'junior'
|
|
9264
|
-
}];
|
|
9265
|
-
return jsxs(WrapperModal, {
|
|
9266
|
-
title: "Supply ".concat(poolUnderlyingToken.symbol),
|
|
9267
|
-
children: [jsxs(FormControl, {
|
|
9268
|
-
children: [jsx(FormLabel, {
|
|
9269
|
-
css: styles.subTitle,
|
|
9270
|
-
children: "Select Tranche Type"
|
|
9271
|
-
}), jsx(RadioGroup, {
|
|
9272
|
-
"aria-labelledby": "buttons-group-label",
|
|
9273
|
-
name: "radio-buttons-group",
|
|
9274
|
-
css: styles.radioGroup,
|
|
9275
|
-
onChange: e => changeTranche(e.target.value),
|
|
9276
|
-
children: items.map(item => jsx(FormControlLabel, {
|
|
9277
|
-
value: item.value,
|
|
9278
|
-
control: jsx(Radio, {
|
|
9279
|
-
sx: {
|
|
9280
|
-
'& .MuiSvgIcon-root': {
|
|
9281
|
-
fontSize: 24
|
|
9282
|
-
}
|
|
9283
|
-
}
|
|
9284
|
-
}),
|
|
9285
|
-
label: item.label,
|
|
9286
|
-
css: styles.formControl
|
|
9287
|
-
}, item.label))
|
|
9288
|
-
})]
|
|
9289
|
-
}), jsx(BottomButton, {
|
|
9290
|
-
variant: "contained",
|
|
9291
|
-
disabled: !selectedTranche,
|
|
9292
|
-
onClick: handleNext,
|
|
9293
|
-
children: "NEXT"
|
|
9294
|
-
})]
|
|
9295
|
-
});
|
|
9296
|
-
}
|
|
9297
|
-
|
|
9298
|
-
function ChooseAmount$2(_ref) {
|
|
9212
|
+
function NotifiContextWrapper(_ref) {
|
|
9299
9213
|
let {
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
tokenAccount,
|
|
9303
|
-
selectedTranche,
|
|
9304
|
-
isUniTranche
|
|
9214
|
+
chainId,
|
|
9215
|
+
children
|
|
9305
9216
|
} = _ref;
|
|
9306
|
-
const dispatch = useAppDispatch();
|
|
9307
|
-
const {
|
|
9308
|
-
symbol,
|
|
9309
|
-
decimals
|
|
9310
|
-
} = poolInfo.underlyingMint;
|
|
9311
|
-
const [currentAmount, setCurrentAmount] = useState(0);
|
|
9312
|
-
const balance = useMemo(() => new BN(tokenAccount.amount), [tokenAccount.amount]);
|
|
9313
9217
|
const {
|
|
9314
|
-
|
|
9315
|
-
|
|
9316
|
-
} =
|
|
9317
|
-
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
seniorTrancheAssets,
|
|
9321
|
-
juniorTrancheAssets
|
|
9322
|
-
} = poolState;
|
|
9323
|
-
const juniorTrancheAssetsBN = new BN(juniorTrancheAssets);
|
|
9324
|
-
const seniorTrancheAssetsBN = new BN(seniorTrancheAssets);
|
|
9325
|
-
const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN);
|
|
9326
|
-
const totalAvailableCapBN = new BN(liquidityCap).sub(totalDeployedBN);
|
|
9327
|
-
const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(maxSeniorJuniorRatio);
|
|
9328
|
-
let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN);
|
|
9329
|
-
seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) ? totalAvailableCapBN : seniorAvailableCapBN;
|
|
9330
|
-
return {
|
|
9331
|
-
juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN),
|
|
9332
|
-
seniorAvailableCapBN
|
|
9333
|
-
};
|
|
9334
|
-
}, [poolState]);
|
|
9335
|
-
const handleChangeAmount = newAmount => {
|
|
9336
|
-
setCurrentAmount(newAmount);
|
|
9337
|
-
dispatch(setSupplyAmount(Number(newAmount)));
|
|
9338
|
-
};
|
|
9339
|
-
const handleAction = () => {
|
|
9340
|
-
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9341
|
-
};
|
|
9342
|
-
const getTrancheCap = () => {
|
|
9343
|
-
if (selectedTranche === 'junior') {
|
|
9344
|
-
return juniorAvailableCapBN;
|
|
9345
|
-
}
|
|
9346
|
-
return seniorAvailableCapBN;
|
|
9347
|
-
};
|
|
9348
|
-
const getMinAmount = () => {
|
|
9349
|
-
const minAmount = poolState.minDepositAmount ? SolanaTokenUtils.formatUnits(new BN(poolState.minDepositAmount), decimals) : 0;
|
|
9350
|
-
return Math.max(0, Math.ceil(Number(minAmount)));
|
|
9351
|
-
};
|
|
9352
|
-
const getMaxAmount = () => {
|
|
9353
|
-
const trancheCap = getTrancheCap();
|
|
9354
|
-
return balance.gt(trancheCap) ? trancheCap : balance;
|
|
9355
|
-
};
|
|
9356
|
-
const getInfos = () => {
|
|
9357
|
-
const trancheCap = getTrancheCap();
|
|
9358
|
-
const currentAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
|
|
9359
|
-
const remainingCap = trancheCap.sub(currentAmountBN);
|
|
9360
|
-
if (remainingCap.ltn(0)) {
|
|
9361
|
-
return ['0 remaining capacity'];
|
|
9218
|
+
account,
|
|
9219
|
+
provider
|
|
9220
|
+
} = useWeb3React();
|
|
9221
|
+
const signer = useMemo(() => {
|
|
9222
|
+
if (provider instanceof providers.JsonRpcProvider) {
|
|
9223
|
+
return provider.getSigner();
|
|
9362
9224
|
}
|
|
9363
|
-
return
|
|
9364
|
-
};
|
|
9365
|
-
|
|
9366
|
-
title: "Enter Amount",
|
|
9367
|
-
subTitle: "Depositing to ".concat(isUniTranche ? 'uni tranche' : selectedTranche, " tranche"),
|
|
9368
|
-
tokenSymbol: symbol,
|
|
9369
|
-
currentAmount: currentAmount,
|
|
9370
|
-
handleChangeAmount: handleChangeAmount,
|
|
9371
|
-
minimumAmount: getMinAmount(),
|
|
9372
|
-
maxAmount: Number(SolanaTokenUtils.formatUnits(getMaxAmount(), decimals)),
|
|
9373
|
-
maxAmountTitle: "".concat(formatNumber(SolanaTokenUtils.formatUnits(balance, decimals)), " balance"),
|
|
9374
|
-
infos: getInfos(),
|
|
9375
|
-
handleAction: handleAction,
|
|
9376
|
-
actionText: "SUPPLY"
|
|
9377
|
-
});
|
|
9378
|
-
}
|
|
9379
|
-
|
|
9380
|
-
function SolanaViewOnExplorer(_ref) {
|
|
9381
|
-
let {
|
|
9382
|
-
chainId,
|
|
9383
|
-
signature
|
|
9384
|
-
} = _ref;
|
|
9385
|
-
const link = getSolanaExplorerUrl(chainId, signature, 'tx');
|
|
9386
|
-
if (!link) {
|
|
9225
|
+
return undefined;
|
|
9226
|
+
}, [provider]);
|
|
9227
|
+
if (account == null || signer == null || chainId == null) {
|
|
9387
9228
|
return null;
|
|
9388
9229
|
}
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9230
|
+
let cardId = '';
|
|
9231
|
+
if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {
|
|
9232
|
+
var _process$env$REACT_AP;
|
|
9233
|
+
cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
|
|
9234
|
+
} else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {
|
|
9235
|
+
var _process$env$REACT_AP2;
|
|
9236
|
+
cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
|
|
9237
|
+
} else if (chainId === ChainEnum.Scroll || chainId === ChainEnum.ScrollSepolia) {
|
|
9238
|
+
var _process$env$REACT_AP3;
|
|
9239
|
+
cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
|
|
9240
|
+
}
|
|
9241
|
+
return jsx(NotifiContextProvider, {
|
|
9242
|
+
tenantId: "humafinanceprod",
|
|
9243
|
+
env: "Production",
|
|
9244
|
+
signMessage: async message => {
|
|
9245
|
+
const result = await signer.signMessage(message);
|
|
9246
|
+
return arrayify(result);
|
|
9247
|
+
},
|
|
9248
|
+
walletPublicKey: account,
|
|
9249
|
+
walletBlockchain: getBlockchainConfigFromChain(chainId),
|
|
9250
|
+
cardId: cardId,
|
|
9251
|
+
children: children
|
|
9397
9252
|
});
|
|
9398
9253
|
}
|
|
9399
9254
|
|
|
9400
|
-
function
|
|
9401
|
-
let {
|
|
9402
|
-
chainId,
|
|
9403
|
-
tx,
|
|
9404
|
-
handleSuccess
|
|
9405
|
-
} = _ref;
|
|
9406
|
-
const dispatch = useAppDispatch();
|
|
9407
|
-
const {
|
|
9408
|
-
sendTransaction
|
|
9409
|
-
} = useWallet();
|
|
9255
|
+
function Widget(props) {
|
|
9410
9256
|
const {
|
|
9411
|
-
|
|
9412
|
-
|
|
9413
|
-
|
|
9257
|
+
children,
|
|
9258
|
+
provider
|
|
9259
|
+
} = props;
|
|
9260
|
+
const [chainId, setChainId] = useState(undefined);
|
|
9414
9261
|
useEffect(() => {
|
|
9415
|
-
async
|
|
9416
|
-
if (
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
try {
|
|
9420
|
-
const latestBlockHash = await connection.getLatestBlockhash();
|
|
9421
|
-
const signature = await sendTransaction(tx, connection);
|
|
9422
|
-
setSignature(signature);
|
|
9423
|
-
dispatch(setSolanaSignature(signature));
|
|
9424
|
-
await connection.confirmTransaction({
|
|
9425
|
-
blockhash: latestBlockHash.blockhash,
|
|
9426
|
-
lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
|
|
9427
|
-
signature
|
|
9428
|
-
});
|
|
9429
|
-
handleSuccess();
|
|
9430
|
-
} catch (error) {
|
|
9431
|
-
const err = error;
|
|
9432
|
-
dispatch(setError({
|
|
9433
|
-
errorMessage: (err === null || err === void 0 ? void 0 : err.message) || ''
|
|
9434
|
-
}));
|
|
9262
|
+
const getChainId = async () => {
|
|
9263
|
+
if (provider instanceof JsonRpcProvider) {
|
|
9264
|
+
const network = await provider.getNetwork();
|
|
9265
|
+
setChainId(network === null || network === void 0 ? void 0 : network.chainId);
|
|
9435
9266
|
}
|
|
9436
|
-
}
|
|
9437
|
-
|
|
9438
|
-
}, [
|
|
9439
|
-
return jsx(
|
|
9440
|
-
|
|
9441
|
-
|
|
9442
|
-
|
|
9443
|
-
|
|
9444
|
-
|
|
9445
|
-
|
|
9446
|
-
|
|
9447
|
-
|
|
9448
|
-
|
|
9449
|
-
|
|
9450
|
-
|
|
9451
|
-
|
|
9452
|
-
|
|
9453
|
-
|
|
9454
|
-
|
|
9455
|
-
const {
|
|
9456
|
-
publicKey
|
|
9457
|
-
} = useWallet();
|
|
9458
|
-
const {
|
|
9459
|
-
supplyAmount
|
|
9460
|
-
} = useAppSelector(selectWidgetState);
|
|
9461
|
-
const {
|
|
9462
|
-
decimals
|
|
9463
|
-
} = poolInfo.underlyingMint;
|
|
9464
|
-
const supplyBigNumber = SolanaTokenUtils.parseUnits(String(supplyAmount), decimals);
|
|
9465
|
-
const [transaction, setTransaction] = useState();
|
|
9466
|
-
const program = useHumaProgram(poolInfo.chainId);
|
|
9467
|
-
const handleSuccess = useCallback(() => {
|
|
9468
|
-
dispatch(setStep(WIDGET_STEP.Done));
|
|
9469
|
-
}, [dispatch]);
|
|
9470
|
-
useEffect(() => {
|
|
9471
|
-
async function getTx() {
|
|
9472
|
-
if (!publicKey || transaction) {
|
|
9473
|
-
return;
|
|
9474
|
-
}
|
|
9475
|
-
const {
|
|
9476
|
-
underlyingTokenATA,
|
|
9477
|
-
seniorTrancheATA,
|
|
9478
|
-
juniorTrancheATA
|
|
9479
|
-
} = getTokenAccounts(poolInfo, publicKey);
|
|
9480
|
-
const tx = await program.methods.deposit(supplyBigNumber).accountsPartial({
|
|
9481
|
-
depositor: publicKey,
|
|
9482
|
-
poolConfig: poolInfo.poolConfig,
|
|
9483
|
-
underlyingMint: poolInfo.underlyingMint.address,
|
|
9484
|
-
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
9485
|
-
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
9486
|
-
depositorUnderlyingToken: underlyingTokenATA,
|
|
9487
|
-
depositorTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
9488
|
-
humaConfig: poolInfo.humaConfig,
|
|
9489
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID
|
|
9490
|
-
}).transaction();
|
|
9491
|
-
setTransaction(tx);
|
|
9492
|
-
}
|
|
9493
|
-
getTx();
|
|
9494
|
-
}, [poolInfo, program.methods, publicKey, selectedTranche, supplyBigNumber, transaction]);
|
|
9495
|
-
return jsx(SolanaTxSendModal, {
|
|
9496
|
-
tx: transaction,
|
|
9497
|
-
chainId: poolInfo.chainId,
|
|
9498
|
-
handleSuccess: handleSuccess
|
|
9499
|
-
});
|
|
9500
|
-
}
|
|
9501
|
-
|
|
9502
|
-
var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
9503
|
-
function SolanaTxDoneModal(_ref) {
|
|
9504
|
-
let {
|
|
9505
|
-
content,
|
|
9506
|
-
subContent,
|
|
9507
|
-
handleAction,
|
|
9508
|
-
solanaSignature,
|
|
9509
|
-
chainId,
|
|
9510
|
-
buttonText
|
|
9511
|
-
} = _ref;
|
|
9512
|
-
const theme = useTheme();
|
|
9513
|
-
const dispatch = useAppDispatch();
|
|
9514
|
-
const styles = {
|
|
9515
|
-
wrapper: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
9516
|
-
header: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
9517
|
-
content: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
|
|
9518
|
-
subContent: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
|
|
9519
|
-
check: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
|
|
9520
|
-
bottomButtonGroup: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
|
|
9521
|
-
bottomButton: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(1))
|
|
9522
|
-
};
|
|
9523
|
-
const handleCloseModal = useCallback(() => {
|
|
9524
|
-
dispatch(resetState());
|
|
9525
|
-
handleAction();
|
|
9526
|
-
}, [dispatch, handleAction]);
|
|
9527
|
-
return jsxs(Box, {
|
|
9528
|
-
css: styles.wrapper,
|
|
9529
|
-
children: [jsx(Typography, {
|
|
9530
|
-
variant: "h6",
|
|
9531
|
-
css: styles.header,
|
|
9532
|
-
children: "Transaction Completed"
|
|
9533
|
-
}), jsx(Box, {
|
|
9534
|
-
css: styles.check,
|
|
9535
|
-
children: jsx(CheckIcon, {})
|
|
9536
|
-
}), jsx(Box, {
|
|
9537
|
-
css: styles.content,
|
|
9538
|
-
children: content.map(item => jsx(Box, {
|
|
9539
|
-
sx: {
|
|
9540
|
-
marginTop: theme.spacing(1)
|
|
9541
|
-
},
|
|
9542
|
-
children: item
|
|
9543
|
-
}, item))
|
|
9544
|
-
}), subContent && jsx(Box, {
|
|
9545
|
-
css: styles.subContent,
|
|
9546
|
-
children: subContent.map(item => jsx(Box, {
|
|
9547
|
-
sx: {
|
|
9548
|
-
marginTop: theme.spacing(1)
|
|
9549
|
-
},
|
|
9550
|
-
children: item
|
|
9551
|
-
}, item))
|
|
9552
|
-
}), jsxs(Box, {
|
|
9553
|
-
css: styles.bottomButtonGroup,
|
|
9554
|
-
children: [solanaSignature && chainId && jsx(SolanaViewOnExplorer, {
|
|
9555
|
-
signature: solanaSignature,
|
|
9556
|
-
chainId: chainId
|
|
9557
|
-
}), jsx(Button, {
|
|
9558
|
-
className: "transaction-done-modal-close-btn",
|
|
9559
|
-
variant: "contained",
|
|
9560
|
-
fullWidth: true,
|
|
9561
|
-
css: styles.bottomButton,
|
|
9562
|
-
onClick: handleCloseModal,
|
|
9563
|
-
children: !buttonText ? 'DONE' : buttonText
|
|
9564
|
-
})]
|
|
9565
|
-
})]
|
|
9566
|
-
});
|
|
9567
|
-
}
|
|
9568
|
-
|
|
9569
|
-
function Success(_ref) {
|
|
9570
|
-
let {
|
|
9571
|
-
poolInfo,
|
|
9572
|
-
poolState,
|
|
9573
|
-
handleAction
|
|
9574
|
-
} = _ref;
|
|
9575
|
-
const {
|
|
9576
|
-
supplyAmount,
|
|
9577
|
-
solanaSignature
|
|
9578
|
-
} = useAppSelector(selectWidgetState);
|
|
9579
|
-
const {
|
|
9580
|
-
symbol
|
|
9581
|
-
} = poolInfo.underlyingMint;
|
|
9582
|
-
const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
|
|
9583
|
-
const getSubContent = () => {
|
|
9584
|
-
const currentTime = moment().add(poolState.withdrawalLockupPeriodDays, 'days');
|
|
9585
|
-
return ["First redemption date: ".concat(timeUtil.timestampToLL(currentTime.unix()), ". You can redeem end of each month after.")];
|
|
9586
|
-
};
|
|
9587
|
-
return jsx(SolanaTxDoneModal, {
|
|
9588
|
-
handleAction: handleAction,
|
|
9589
|
-
content: content,
|
|
9590
|
-
subContent: getSubContent(),
|
|
9591
|
-
chainId: poolInfo.chainId,
|
|
9592
|
-
solanaSignature: solanaSignature,
|
|
9593
|
-
buttonText: "DONE"
|
|
9594
|
-
});
|
|
9595
|
-
}
|
|
9596
|
-
|
|
9597
|
-
function SolanaLendSupply(_ref) {
|
|
9598
|
-
let {
|
|
9599
|
-
poolInfo,
|
|
9600
|
-
poolState,
|
|
9601
|
-
handleClose,
|
|
9602
|
-
handleSuccess
|
|
9603
|
-
} = _ref;
|
|
9604
|
-
const dispatch = useDispatch();
|
|
9605
|
-
const {
|
|
9606
|
-
seniorLenderApproved,
|
|
9607
|
-
juniorLenderApproved,
|
|
9608
|
-
loading: isLoadingLenderAccounts
|
|
9609
|
-
} = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9610
|
-
const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo);
|
|
9611
|
-
const {
|
|
9612
|
-
step,
|
|
9613
|
-
errorMessage
|
|
9614
|
-
} = useAppSelector(selectWidgetState);
|
|
9615
|
-
const isUniTranche = poolState.maxSeniorJuniorRatio === 0;
|
|
9616
|
-
const [selectedTranche, setSelectedTranche] = useState();
|
|
9617
|
-
useEffect(() => {
|
|
9618
|
-
if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {
|
|
9619
|
-
if (juniorLenderApproved && !seniorLenderApproved) {
|
|
9620
|
-
setSelectedTranche('junior');
|
|
9621
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9622
|
-
return;
|
|
9623
|
-
}
|
|
9624
|
-
if (seniorLenderApproved && !juniorLenderApproved) {
|
|
9625
|
-
setSelectedTranche('senior');
|
|
9626
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9627
|
-
return;
|
|
9628
|
-
}
|
|
9629
|
-
if (juniorLenderApproved && seniorLenderApproved) {
|
|
9630
|
-
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
9631
|
-
// return
|
|
9632
|
-
}
|
|
9633
|
-
|
|
9634
|
-
// if (poolInfo.supplyLink) {
|
|
9635
|
-
// openInNewTab(poolInfo.supplyLink)
|
|
9636
|
-
// handleClose()
|
|
9637
|
-
// }
|
|
9638
|
-
}
|
|
9639
|
-
}, [dispatch, handleClose, poolInfo, step, isLoadingLenderAccounts, juniorLenderApproved, seniorLenderApproved, isLoadingTokenAccount]);
|
|
9640
|
-
if (isLoadingLenderAccounts || isLoadingTokenAccount) {
|
|
9641
|
-
return jsx(WidgetWrapper, {
|
|
9642
|
-
isOpen: true,
|
|
9643
|
-
isLoading: true,
|
|
9644
|
-
loadingTitle: "Supply",
|
|
9645
|
-
handleClose: handleClose,
|
|
9646
|
-
handleSuccess: handleSuccess
|
|
9647
|
-
});
|
|
9648
|
-
}
|
|
9649
|
-
return jsxs(WidgetWrapper, {
|
|
9650
|
-
isOpen: true,
|
|
9651
|
-
loadingTitle: "Supply ".concat(poolInfo.underlyingMint.symbol),
|
|
9652
|
-
handleClose: handleClose,
|
|
9653
|
-
handleSuccess: handleSuccess,
|
|
9654
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$2, {
|
|
9655
|
-
poolUnderlyingToken: poolInfo.underlyingMint,
|
|
9656
|
-
selectedTranche: selectedTranche,
|
|
9657
|
-
changeTranche: setSelectedTranche
|
|
9658
|
-
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
|
|
9659
|
-
poolInfo: poolInfo,
|
|
9660
|
-
poolState: poolState,
|
|
9661
|
-
tokenAccount: tokenAccount,
|
|
9662
|
-
selectedTranche: selectedTranche,
|
|
9663
|
-
isUniTranche: isUniTranche
|
|
9664
|
-
}), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$2, {
|
|
9665
|
-
poolInfo: poolInfo,
|
|
9666
|
-
selectedTranche: selectedTranche
|
|
9667
|
-
}), step === WIDGET_STEP.Done && jsx(Success, {
|
|
9668
|
-
poolInfo: poolInfo,
|
|
9669
|
-
poolState: poolState,
|
|
9670
|
-
handleAction: handleClose
|
|
9671
|
-
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
9672
|
-
title: "Supply",
|
|
9673
|
-
errorReason: "Sorry there was an error",
|
|
9674
|
-
errorMessage: errorMessage,
|
|
9675
|
-
handleOk: handleClose
|
|
9676
|
-
})]
|
|
9677
|
-
});
|
|
9678
|
-
}
|
|
9679
|
-
|
|
9680
|
-
function ChooseAmount$1(_ref) {
|
|
9681
|
-
let {
|
|
9682
|
-
poolInfo,
|
|
9683
|
-
poolState,
|
|
9684
|
-
selectedTranche,
|
|
9685
|
-
lenderState
|
|
9686
|
-
} = _ref;
|
|
9687
|
-
const dispatch = useAppDispatch();
|
|
9688
|
-
const {
|
|
9689
|
-
symbol
|
|
9690
|
-
} = poolInfo.underlyingMint;
|
|
9691
|
-
const [currentAmount, setCurrentAmount] = useState(0);
|
|
9692
|
-
const [currentShares, setCurrentShares] = useState(0);
|
|
9693
|
-
const {
|
|
9694
|
-
mintAccount,
|
|
9695
|
-
loading: isLoadingTrancheMintAccounts
|
|
9696
|
-
} = useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
9697
|
-
const {
|
|
9698
|
-
seniorTokenAccount,
|
|
9699
|
-
juniorTokenAccount,
|
|
9700
|
-
loading: isLoadingTokenAccounts
|
|
9701
|
-
} = useTrancheTokenAccounts(poolInfo);
|
|
9702
|
-
const maxSharesFormatted = useMemo(() => {
|
|
9703
|
-
if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals)) {
|
|
9704
|
-
return 0;
|
|
9705
|
-
}
|
|
9706
|
-
return SolanaTokenUtils.formatUnits(selectedTranche === 'senior' ? new BN(seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount) : new BN(juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount), mintAccount.decimals);
|
|
9707
|
-
}, [mintAccount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount]);
|
|
9708
|
-
const sharePrice = useMemo(() => {
|
|
9709
|
-
if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals) || !(mintAccount !== null && mintAccount !== void 0 && mintAccount.supply)) {
|
|
9710
|
-
return 0;
|
|
9711
|
-
}
|
|
9712
|
-
const mintSupplyFormatted = Number(SolanaTokenUtils.formatUnits(new BN(mintAccount.supply), mintAccount.decimals));
|
|
9713
|
-
if (mintSupplyFormatted === 0) {
|
|
9714
|
-
return 0;
|
|
9715
|
-
}
|
|
9716
|
-
const seniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN(poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets), mintAccount.decimals));
|
|
9717
|
-
if (selectedTranche === 'senior') {
|
|
9718
|
-
return seniorTrancheAssetsFormatted / mintSupplyFormatted;
|
|
9719
|
-
}
|
|
9720
|
-
const juniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN(poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets), mintAccount.decimals));
|
|
9721
|
-
return juniorTrancheAssetsFormatted / mintSupplyFormatted;
|
|
9722
|
-
}, [mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals, mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.supply, poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets, poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets, selectedTranche]);
|
|
9723
|
-
useEffect(() => {
|
|
9724
|
-
if (poolState !== null && poolState !== void 0 && poolState.withdrawalLockupPeriodDays && poolState !== null && poolState !== void 0 && poolState.epochEndTime && lenderState) {
|
|
9725
|
-
const SECONDS_IN_A_DAY = 24 * 60 * 60;
|
|
9726
|
-
const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime);
|
|
9727
|
-
const lockupEndTime = lastDepositTime + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY;
|
|
9728
|
-
if (poolState.epochEndTime < lockupEndTime) {
|
|
9729
|
-
const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
|
|
9730
|
-
dispatch(setStep(WIDGET_STEP.Error));
|
|
9731
|
-
dispatch(setError({
|
|
9732
|
-
errorReason: 'Redemption too soon',
|
|
9733
|
-
errorMessage: "Your last deposit was on ".concat(timestampToLL(lastDepositTime), ". You can redeem on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ".")
|
|
9734
|
-
}));
|
|
9735
|
-
}
|
|
9736
|
-
}
|
|
9737
|
-
}, [dispatch, lenderState, poolState.epochEndTime, poolState.withdrawalLockupPeriodDays]);
|
|
9738
|
-
const handleChangeShares = newShares => {
|
|
9739
|
-
const amount = Number(newShares) * sharePrice;
|
|
9740
|
-
setCurrentShares(Number(newShares));
|
|
9741
|
-
setCurrentAmount(amount);
|
|
9742
|
-
dispatch(setRedeemShares(Number(newShares)));
|
|
9743
|
-
dispatch(setRedeemAmount(amount));
|
|
9744
|
-
};
|
|
9745
|
-
const handleAction = () => {
|
|
9746
|
-
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9747
|
-
};
|
|
9748
|
-
if (isLoadingTokenAccounts || isLoadingTrancheMintAccounts || !lenderState || (poolState === null || poolState === void 0 ? void 0 : poolState.withdrawalLockupPeriodDays) === undefined ||
|
|
9749
|
-
// withdrawalLockupPeriodDays can be 0
|
|
9750
|
-
!(poolState !== null && poolState !== void 0 && poolState.epochEndTime)) {
|
|
9751
|
-
return jsx(LoadingModal, {
|
|
9752
|
-
title: "Redemption"
|
|
9753
|
-
});
|
|
9754
|
-
}
|
|
9755
|
-
return jsx(InputAmountModal, {
|
|
9756
|
-
title: "Redemption",
|
|
9757
|
-
subTitle: "Enter number of shares to redeem from the ".concat(selectedTranche, " tranche"),
|
|
9758
|
-
tokenSymbol: symbol,
|
|
9759
|
-
currentAmount: currentShares,
|
|
9760
|
-
handleChangeAmount: handleChangeShares,
|
|
9761
|
-
maxAmount: maxSharesFormatted,
|
|
9762
|
-
infos: ["".concat(String(formatNumber(currentAmount)), " ").concat(symbol)],
|
|
9763
|
-
maxAmountTitle: "".concat(formatNumber(maxSharesFormatted), " Shares"),
|
|
9764
|
-
suffix: "Shares",
|
|
9765
|
-
handleAction: handleAction,
|
|
9766
|
-
actionText: "REQUEST"
|
|
9767
|
-
});
|
|
9768
|
-
}
|
|
9769
|
-
|
|
9770
|
-
var _templateObject$1, _templateObject2$1, _templateObject3$1;
|
|
9771
|
-
function ChooseTranche$1(_ref) {
|
|
9772
|
-
let {
|
|
9773
|
-
selectedTranche,
|
|
9774
|
-
changeTranche
|
|
9775
|
-
} = _ref;
|
|
9776
|
-
const theme = useTheme();
|
|
9777
|
-
const dispatch = useAppDispatch();
|
|
9778
|
-
const styles = {
|
|
9779
|
-
subTitle: css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
9780
|
-
radioGroup: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
9781
|
-
formControl: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
9782
|
-
};
|
|
9783
|
-
const handleNext = () => {
|
|
9784
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9785
|
-
};
|
|
9786
|
-
const items = [{
|
|
9787
|
-
label: 'Senior',
|
|
9788
|
-
value: 'senior'
|
|
9789
|
-
}, {
|
|
9790
|
-
label: 'Junior',
|
|
9791
|
-
value: 'junior'
|
|
9792
|
-
}];
|
|
9793
|
-
return jsxs(WrapperModal, {
|
|
9794
|
-
title: "Redemption",
|
|
9795
|
-
children: [jsxs(FormControl, {
|
|
9796
|
-
children: [jsx(FormLabel, {
|
|
9797
|
-
css: styles.subTitle,
|
|
9798
|
-
children: "Select Tranche Type"
|
|
9799
|
-
}), jsx(RadioGroup, {
|
|
9800
|
-
"aria-labelledby": "buttons-group-label",
|
|
9801
|
-
name: "radio-buttons-group",
|
|
9802
|
-
css: styles.radioGroup,
|
|
9803
|
-
onChange: e => changeTranche(e.target.value),
|
|
9804
|
-
children: items.map(item => jsx(FormControlLabel, {
|
|
9805
|
-
value: item.value,
|
|
9806
|
-
control: jsx(Radio, {
|
|
9807
|
-
sx: {
|
|
9808
|
-
'& .MuiSvgIcon-root': {
|
|
9809
|
-
fontSize: 24
|
|
9810
|
-
}
|
|
9811
|
-
}
|
|
9812
|
-
}),
|
|
9813
|
-
label: item.label,
|
|
9814
|
-
css: styles.formControl
|
|
9815
|
-
}, item.label))
|
|
9816
|
-
})]
|
|
9817
|
-
}), jsx(BottomButton, {
|
|
9818
|
-
variant: "contained",
|
|
9819
|
-
disabled: !selectedTranche,
|
|
9820
|
-
onClick: handleNext,
|
|
9821
|
-
children: "NEXT"
|
|
9822
|
-
})]
|
|
9823
|
-
});
|
|
9824
|
-
}
|
|
9825
|
-
|
|
9826
|
-
function Done$1(_ref) {
|
|
9827
|
-
let {
|
|
9828
|
-
poolInfo,
|
|
9829
|
-
handleAction
|
|
9830
|
-
} = _ref;
|
|
9831
|
-
const {
|
|
9832
|
-
redeemShares,
|
|
9833
|
-
solanaSignature
|
|
9834
|
-
} = useAppSelector(selectWidgetState);
|
|
9835
|
-
const content = ["".concat(formatNumber(redeemShares), " shares requested for redemption")];
|
|
9836
|
-
return jsx(SolanaTxDoneModal, {
|
|
9837
|
-
handleAction: handleAction,
|
|
9838
|
-
content: content,
|
|
9839
|
-
chainId: poolInfo.chainId,
|
|
9840
|
-
solanaSignature: solanaSignature,
|
|
9841
|
-
buttonText: "DONE"
|
|
9842
|
-
});
|
|
9843
|
-
}
|
|
9844
|
-
|
|
9845
|
-
function Transfer$1(_ref) {
|
|
9846
|
-
let {
|
|
9847
|
-
poolInfo,
|
|
9848
|
-
selectedTranche
|
|
9849
|
-
} = _ref;
|
|
9850
|
-
const dispatch = useAppDispatch();
|
|
9851
|
-
const {
|
|
9852
|
-
publicKey
|
|
9853
|
-
} = useWallet();
|
|
9854
|
-
const {
|
|
9855
|
-
redeemShares
|
|
9856
|
-
} = useAppSelector(selectWidgetState);
|
|
9857
|
-
const {
|
|
9858
|
-
mintAccount
|
|
9859
|
-
} = useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
9860
|
-
const [transaction, setTransaction] = useState();
|
|
9861
|
-
const program = useHumaProgram(poolInfo.chainId);
|
|
9862
|
-
const redeemBN = useMemo(() => {
|
|
9863
|
-
if (!mintAccount) {
|
|
9864
|
-
return null;
|
|
9865
|
-
}
|
|
9866
|
-
return SolanaTokenUtils.parseUnits(String(redeemShares), mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals);
|
|
9867
|
-
}, [mintAccount, redeemShares]);
|
|
9868
|
-
const handleSuccess = useCallback(() => {
|
|
9869
|
-
dispatch(setStep(WIDGET_STEP.Done));
|
|
9870
|
-
}, [dispatch]);
|
|
9871
|
-
useEffect(() => {
|
|
9872
|
-
async function getTx() {
|
|
9873
|
-
if (!publicKey || !redeemBN || transaction) {
|
|
9874
|
-
return;
|
|
9875
|
-
}
|
|
9876
|
-
const {
|
|
9877
|
-
seniorTrancheATA,
|
|
9878
|
-
juniorTrancheATA,
|
|
9879
|
-
poolSeniorTrancheATA,
|
|
9880
|
-
poolJuniorTrancheATA
|
|
9881
|
-
} = getTokenAccounts(poolInfo, publicKey);
|
|
9882
|
-
const tx = await program.methods.addRedemptionRequest(redeemBN).accountsPartial({
|
|
9883
|
-
lender: publicKey,
|
|
9884
|
-
humaConfig: poolInfo.humaConfig,
|
|
9885
|
-
poolConfig: poolInfo.poolConfig,
|
|
9886
|
-
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
9887
|
-
poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
|
|
9888
|
-
lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
9889
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID
|
|
9890
|
-
}).transaction();
|
|
9891
|
-
setTransaction(tx);
|
|
9892
|
-
}
|
|
9893
|
-
getTx();
|
|
9894
|
-
}, [poolInfo, program.methods, publicKey, redeemBN, selectedTranche, transaction]);
|
|
9895
|
-
return jsx(SolanaTxSendModal, {
|
|
9896
|
-
tx: transaction,
|
|
9897
|
-
chainId: poolInfo.chainId,
|
|
9898
|
-
handleSuccess: handleSuccess
|
|
9899
|
-
});
|
|
9900
|
-
}
|
|
9901
|
-
|
|
9902
|
-
function SolanaLendAddRedemption(_ref) {
|
|
9903
|
-
let {
|
|
9904
|
-
poolInfo,
|
|
9905
|
-
poolState,
|
|
9906
|
-
handleClose,
|
|
9907
|
-
handleSuccess
|
|
9908
|
-
} = _ref;
|
|
9909
|
-
const dispatch = useDispatch();
|
|
9910
|
-
const {
|
|
9911
|
-
seniorLenderStateAccount,
|
|
9912
|
-
juniorLenderStateAccount,
|
|
9913
|
-
loading: isLoadingLenderAccounts
|
|
9914
|
-
} = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9915
|
-
const {
|
|
9916
|
-
seniorTokenAccount,
|
|
9917
|
-
juniorTokenAccount,
|
|
9918
|
-
loading: isLoadingTokenAccounts
|
|
9919
|
-
} = useTrancheTokenAccounts(poolInfo);
|
|
9920
|
-
const {
|
|
9921
|
-
step,
|
|
9922
|
-
errorMessage
|
|
9923
|
-
} = useAppSelector(selectWidgetState);
|
|
9924
|
-
const [selectedTranche, setSelectedTranche] = useState();
|
|
9925
|
-
useEffect(() => {
|
|
9926
|
-
if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {
|
|
9927
|
-
const seniorTrancheShares = new BN(seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount);
|
|
9928
|
-
const juniorTrancheShares = new BN(juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount);
|
|
9929
|
-
if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {
|
|
9930
|
-
setSelectedTranche('junior');
|
|
9931
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9932
|
-
return;
|
|
9933
|
-
}
|
|
9934
|
-
if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {
|
|
9935
|
-
setSelectedTranche('senior');
|
|
9936
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9937
|
-
return;
|
|
9938
|
-
}
|
|
9939
|
-
if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {
|
|
9940
|
-
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
9941
|
-
}
|
|
9942
|
-
}
|
|
9943
|
-
}, [dispatch, step, isLoadingLenderAccounts, isLoadingTokenAccounts, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount]);
|
|
9944
|
-
const title = 'Redemption';
|
|
9945
|
-
if (isLoadingLenderAccounts || isLoadingTokenAccounts) {
|
|
9946
|
-
return jsx(WidgetWrapper, {
|
|
9947
|
-
isOpen: true,
|
|
9948
|
-
isLoading: true,
|
|
9949
|
-
loadingTitle: title,
|
|
9950
|
-
handleClose: handleClose,
|
|
9951
|
-
handleSuccess: handleSuccess
|
|
9952
|
-
});
|
|
9953
|
-
}
|
|
9954
|
-
return jsxs(WidgetWrapper, {
|
|
9955
|
-
isOpen: true,
|
|
9956
|
-
loadingTitle: title,
|
|
9957
|
-
handleClose: handleClose,
|
|
9958
|
-
handleSuccess: handleSuccess,
|
|
9959
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
|
|
9960
|
-
selectedTranche: selectedTranche,
|
|
9961
|
-
changeTranche: setSelectedTranche
|
|
9962
|
-
}), step === WIDGET_STEP.ChooseAmount && selectedTranche && jsx(ChooseAmount$1, {
|
|
9963
|
-
poolInfo: poolInfo,
|
|
9964
|
-
poolState: poolState,
|
|
9965
|
-
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
9966
|
-
selectedTranche: selectedTranche
|
|
9967
|
-
}), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$1, {
|
|
9968
|
-
poolInfo: poolInfo,
|
|
9969
|
-
selectedTranche: selectedTranche
|
|
9970
|
-
}), step === WIDGET_STEP.Done && jsx(Done$1, {
|
|
9971
|
-
poolInfo: poolInfo,
|
|
9972
|
-
handleAction: handleClose
|
|
9973
|
-
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
9974
|
-
title: title,
|
|
9975
|
-
errorReason: "Sorry there was an error",
|
|
9976
|
-
errorMessage: errorMessage,
|
|
9977
|
-
handleOk: handleClose
|
|
9978
|
-
})]
|
|
9979
|
-
});
|
|
9980
|
-
}
|
|
9981
|
-
|
|
9982
|
-
function Transfer(_ref) {
|
|
9983
|
-
let {
|
|
9984
|
-
poolInfo,
|
|
9985
|
-
lenderState,
|
|
9986
|
-
lenderStatePDA,
|
|
9987
|
-
selectedTranche
|
|
9988
|
-
} = _ref;
|
|
9989
|
-
const dispatch = useAppDispatch();
|
|
9990
|
-
const {
|
|
9991
|
-
publicKey
|
|
9992
|
-
} = useWallet();
|
|
9993
|
-
const [transaction, setTransaction] = useState();
|
|
9994
|
-
const program = useHumaProgram(poolInfo.chainId);
|
|
9995
|
-
const handleSuccess = useCallback(() => {
|
|
9996
|
-
dispatch(setStep(WIDGET_STEP.Done));
|
|
9997
|
-
}, [dispatch]);
|
|
9998
|
-
useEffect(() => {
|
|
9999
|
-
async function getTx() {
|
|
10000
|
-
if (!publicKey || !lenderState || !lenderStatePDA || transaction) {
|
|
10001
|
-
return;
|
|
10002
|
-
}
|
|
10003
|
-
const {
|
|
10004
|
-
seniorTrancheATA,
|
|
10005
|
-
juniorTrancheATA,
|
|
10006
|
-
poolSeniorTrancheATA,
|
|
10007
|
-
poolJuniorTrancheATA
|
|
10008
|
-
} = getTokenAccounts(poolInfo, publicKey);
|
|
10009
|
-
const tx = await program.methods.cancelRedemptionRequest(lenderState.redemptionRecord.numSharesRequested).accountsPartial({
|
|
10010
|
-
lender: publicKey,
|
|
10011
|
-
humaConfig: poolInfo.humaConfig,
|
|
10012
|
-
poolConfig: poolInfo.poolConfig,
|
|
10013
|
-
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
10014
|
-
trancheState: selectedTranche === 'senior' ? poolInfo.seniorTrancheState : poolInfo.juniorTrancheState,
|
|
10015
|
-
lenderState: lenderStatePDA,
|
|
10016
|
-
poolAuthority: poolInfo.poolAuthority,
|
|
10017
|
-
poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
|
|
10018
|
-
lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
10019
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID
|
|
10020
|
-
}).transaction();
|
|
10021
|
-
setTransaction(tx);
|
|
10022
|
-
}
|
|
10023
|
-
getTx();
|
|
10024
|
-
}, [lenderState, lenderStatePDA, poolInfo, program.methods, publicKey, selectedTranche, transaction]);
|
|
10025
|
-
return jsx(SolanaTxSendModal, {
|
|
10026
|
-
tx: transaction,
|
|
10027
|
-
chainId: poolInfo.chainId,
|
|
10028
|
-
handleSuccess: handleSuccess
|
|
10029
|
-
});
|
|
10030
|
-
}
|
|
10031
|
-
|
|
10032
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
10033
|
-
function ChooseTranche(_ref) {
|
|
10034
|
-
let {
|
|
10035
|
-
selectedTranche,
|
|
10036
|
-
changeTranche
|
|
10037
|
-
} = _ref;
|
|
10038
|
-
const theme = useTheme();
|
|
10039
|
-
const dispatch = useAppDispatch();
|
|
10040
|
-
const styles = {
|
|
10041
|
-
subTitle: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
|
|
10042
|
-
radioGroup: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
10043
|
-
formControl: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
|
|
10044
|
-
};
|
|
10045
|
-
const handleNext = () => {
|
|
10046
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
10047
|
-
};
|
|
10048
|
-
const items = [{
|
|
10049
|
-
label: 'Senior',
|
|
10050
|
-
value: 'senior'
|
|
10051
|
-
}, {
|
|
10052
|
-
label: 'Junior',
|
|
10053
|
-
value: 'junior'
|
|
10054
|
-
}];
|
|
10055
|
-
return jsxs(WrapperModal, {
|
|
10056
|
-
title: "Cancel Redemption",
|
|
10057
|
-
children: [jsxs(FormControl, {
|
|
10058
|
-
children: [jsx(FormLabel, {
|
|
10059
|
-
css: styles.subTitle,
|
|
10060
|
-
children: "Select Tranche Type"
|
|
10061
|
-
}), jsx(RadioGroup, {
|
|
10062
|
-
"aria-labelledby": "buttons-group-label",
|
|
10063
|
-
name: "radio-buttons-group",
|
|
10064
|
-
css: styles.radioGroup,
|
|
10065
|
-
onChange: e => changeTranche(e.target.value),
|
|
10066
|
-
children: items.map(item => jsx(FormControlLabel, {
|
|
10067
|
-
value: item.value,
|
|
10068
|
-
control: jsx(Radio, {
|
|
10069
|
-
sx: {
|
|
10070
|
-
'& .MuiSvgIcon-root': {
|
|
10071
|
-
fontSize: 24
|
|
10072
|
-
}
|
|
10073
|
-
}
|
|
10074
|
-
}),
|
|
10075
|
-
label: item.label,
|
|
10076
|
-
css: styles.formControl
|
|
10077
|
-
}, item.label))
|
|
10078
|
-
})]
|
|
10079
|
-
}), jsx(BottomButton, {
|
|
10080
|
-
variant: "contained",
|
|
10081
|
-
disabled: !selectedTranche,
|
|
10082
|
-
onClick: handleNext,
|
|
10083
|
-
children: "NEXT"
|
|
10084
|
-
})]
|
|
10085
|
-
});
|
|
10086
|
-
}
|
|
10087
|
-
|
|
10088
|
-
function Done(_ref) {
|
|
10089
|
-
let {
|
|
10090
|
-
poolInfo,
|
|
10091
|
-
lenderState,
|
|
10092
|
-
selectedTranche,
|
|
10093
|
-
handleAction
|
|
10094
|
-
} = _ref;
|
|
10095
|
-
const {
|
|
10096
|
-
mintAccount,
|
|
10097
|
-
loading: isLoadingTrancheMintAccounts
|
|
10098
|
-
} = useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
10099
|
-
const {
|
|
10100
|
-
solanaSignature
|
|
10101
|
-
} = useAppSelector(selectWidgetState);
|
|
10102
|
-
const content = !lenderState || isLoadingTrancheMintAccounts || !mintAccount ? [''] : ["Your request to cancel the redemption of ".concat(formatNumber(SolanaTokenUtils.formatUnits(lenderState.redemptionRecord.numSharesRequested, mintAccount.decimals)), " shares has been successfully processed.")];
|
|
10103
|
-
return jsx(SolanaTxDoneModal, {
|
|
10104
|
-
handleAction: handleAction,
|
|
10105
|
-
content: content,
|
|
10106
|
-
chainId: poolInfo.chainId,
|
|
10107
|
-
solanaSignature: solanaSignature,
|
|
10108
|
-
buttonText: "DONE"
|
|
10109
|
-
});
|
|
10110
|
-
}
|
|
10111
|
-
|
|
10112
|
-
function SolanaLendCancelRedemption(_ref) {
|
|
10113
|
-
let {
|
|
10114
|
-
poolInfo,
|
|
10115
|
-
handleClose,
|
|
10116
|
-
handleSuccess
|
|
10117
|
-
} = _ref;
|
|
10118
|
-
const dispatch = useDispatch();
|
|
10119
|
-
const {
|
|
10120
|
-
seniorLenderStateAccount,
|
|
10121
|
-
juniorLenderStateAccount,
|
|
10122
|
-
juniorLenderStateAccountPDA,
|
|
10123
|
-
seniorLenderStateAccountPDA,
|
|
10124
|
-
loading: isLoadingLenderAccounts
|
|
10125
|
-
} = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
10126
|
-
const {
|
|
10127
|
-
step,
|
|
10128
|
-
errorMessage
|
|
10129
|
-
} = useAppSelector(selectWidgetState);
|
|
10130
|
-
const [selectedTranche, setSelectedTranche] = useState();
|
|
10131
|
-
useEffect(() => {
|
|
10132
|
-
if (!step && !isLoadingLenderAccounts) {
|
|
10133
|
-
const seniorTrancheSharesRequested = new BN(seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested);
|
|
10134
|
-
const juniorTrancheSharesRequested = new BN(juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested);
|
|
10135
|
-
if (juniorTrancheSharesRequested.gtn(0) && seniorTrancheSharesRequested.lten(0)) {
|
|
10136
|
-
setSelectedTranche('junior');
|
|
10137
|
-
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
10138
|
-
return;
|
|
10139
|
-
}
|
|
10140
|
-
if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.lten(0)) {
|
|
10141
|
-
setSelectedTranche('senior');
|
|
10142
|
-
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
10143
|
-
return;
|
|
10144
|
-
}
|
|
10145
|
-
if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.gtn(0)) {
|
|
10146
|
-
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
10147
|
-
}
|
|
10148
|
-
}
|
|
10149
|
-
}, [dispatch, step, isLoadingLenderAccounts, seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested, juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested]);
|
|
10150
|
-
const title = 'Cancel Redemption';
|
|
10151
|
-
if (isLoadingLenderAccounts) {
|
|
10152
|
-
return jsx(WidgetWrapper, {
|
|
10153
|
-
isOpen: true,
|
|
10154
|
-
isLoading: true,
|
|
10155
|
-
loadingTitle: title,
|
|
10156
|
-
handleClose: handleClose,
|
|
10157
|
-
handleSuccess: handleSuccess
|
|
10158
|
-
});
|
|
10159
|
-
}
|
|
10160
|
-
return jsxs(WidgetWrapper, {
|
|
10161
|
-
isOpen: true,
|
|
10162
|
-
loadingTitle: title,
|
|
10163
|
-
handleClose: handleClose,
|
|
10164
|
-
handleSuccess: handleSuccess,
|
|
10165
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
|
|
10166
|
-
selectedTranche: selectedTranche,
|
|
10167
|
-
changeTranche: setSelectedTranche
|
|
10168
|
-
}), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer, {
|
|
10169
|
-
poolInfo: poolInfo,
|
|
10170
|
-
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
10171
|
-
lenderStatePDA: selectedTranche === 'senior' ? seniorLenderStateAccountPDA : juniorLenderStateAccountPDA,
|
|
10172
|
-
selectedTranche: selectedTranche
|
|
10173
|
-
}), step === WIDGET_STEP.Done && selectedTranche && jsx(Done, {
|
|
10174
|
-
poolInfo: poolInfo,
|
|
10175
|
-
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
10176
|
-
selectedTranche: selectedTranche,
|
|
10177
|
-
handleAction: handleClose
|
|
10178
|
-
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
10179
|
-
title: title,
|
|
10180
|
-
errorReason: "Sorry there was an error",
|
|
10181
|
-
errorMessage: errorMessage,
|
|
10182
|
-
handleOk: handleClose
|
|
10183
|
-
})]
|
|
10184
|
-
});
|
|
10185
|
-
}
|
|
10186
|
-
|
|
10187
|
-
function ChooseAmount(_ref) {
|
|
10188
|
-
let {
|
|
10189
|
-
poolInfo,
|
|
10190
|
-
creditConfigAccount,
|
|
10191
|
-
tokenAccount
|
|
10192
|
-
} = _ref;
|
|
10193
|
-
const dispatch = useAppDispatch();
|
|
10194
|
-
const {
|
|
10195
|
-
symbol,
|
|
10196
|
-
decimals
|
|
10197
|
-
} = poolInfo.underlyingMint;
|
|
10198
|
-
const sentinel = useMemo(() => getSentinelAddress(poolInfo.chainId), [poolInfo.chainId]);
|
|
10199
|
-
const [currentAmount, setCurrentAmount] = useState(0);
|
|
10200
|
-
const creditAvailable = useMemo(() => SolanaTokenUtils.formatUnits(creditConfigAccount.creditAvailable, decimals), [creditConfigAccount.creditAvailable, decimals]);
|
|
10201
|
-
const handleChangeAmount = newAmount => {
|
|
10202
|
-
setCurrentAmount(newAmount);
|
|
10203
|
-
};
|
|
10204
|
-
const handleAction = useCallback(() => {
|
|
10205
|
-
var _tokenAccount$delegat;
|
|
10206
|
-
if (!tokenAccount) {
|
|
10207
|
-
return;
|
|
10208
|
-
}
|
|
10209
|
-
const borrowAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
|
|
10210
|
-
const nextStep = borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount)) || ((_tokenAccount$delegat = tokenAccount.delegate) === null || _tokenAccount$delegat === void 0 ? void 0 : _tokenAccount$delegat.toString()) !== sentinel ? WIDGET_STEP.ApproveAllowance : WIDGET_STEP.Transfer;
|
|
10211
|
-
dispatch(setBorrowInfo({
|
|
10212
|
-
borrowAmount: currentAmount,
|
|
10213
|
-
borrowAmountBN,
|
|
10214
|
-
chargedFees: 0,
|
|
10215
|
-
nextStep
|
|
10216
|
-
}));
|
|
10217
|
-
}, [currentAmount, decimals, dispatch, sentinel, tokenAccount]);
|
|
10218
|
-
return jsx(InputAmountModal, {
|
|
10219
|
-
title: "Borrow",
|
|
10220
|
-
subTitle: "Choose Amount",
|
|
10221
|
-
tokenSymbol: symbol,
|
|
10222
|
-
currentAmount: currentAmount,
|
|
10223
|
-
handleChangeAmount: handleChangeAmount,
|
|
10224
|
-
maxAmount: creditAvailable,
|
|
10225
|
-
infos: ["".concat(String(formatNumber(creditAvailable)), " ").concat(symbol, " Available")],
|
|
10226
|
-
handleAction: handleAction,
|
|
10227
|
-
actionText: "BORROW"
|
|
10228
|
-
});
|
|
10229
|
-
}
|
|
10230
|
-
|
|
10231
|
-
function ApproveAllowance(_ref) {
|
|
10232
|
-
let {
|
|
10233
|
-
poolInfo,
|
|
10234
|
-
tokenAccount
|
|
10235
|
-
} = _ref;
|
|
10236
|
-
const dispatch = useAppDispatch();
|
|
10237
|
-
const {
|
|
10238
|
-
wallet,
|
|
10239
|
-
publicKey,
|
|
10240
|
-
sendTransaction,
|
|
10241
|
-
signTransaction
|
|
10242
|
-
} = useWallet();
|
|
10243
|
-
const sentinel = useMemo(() => getSentinelAddress(poolInfo.chainId), [poolInfo.chainId]);
|
|
10244
|
-
const {
|
|
10245
|
-
connection
|
|
10246
|
-
} = useConnection();
|
|
10247
|
-
const [transaction, setTransaction] = useState();
|
|
10248
|
-
const handleSuccess = useCallback(() => {
|
|
10249
|
-
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
10250
|
-
}, [dispatch]);
|
|
10251
|
-
useEffect(() => {
|
|
10252
|
-
async function getTx() {
|
|
10253
|
-
if (!wallet || !publicKey || !connection || !signTransaction) {
|
|
10254
|
-
return;
|
|
10255
|
-
}
|
|
10256
|
-
const tx = new Transaction().add(createApproveCheckedInstruction(tokenAccount.address, new PublicKey(poolInfo.underlyingMint.address), new PublicKey(sentinel),
|
|
10257
|
-
// delegate
|
|
10258
|
-
publicKey,
|
|
10259
|
-
// owner of the wallet
|
|
10260
|
-
SolanaTokenUtils.parseUnits('100000000000',
|
|
10261
|
-
// 100 billion
|
|
10262
|
-
poolInfo.underlyingMint.decimals),
|
|
10263
|
-
// amount
|
|
10264
|
-
poolInfo.underlyingMint.decimals, undefined,
|
|
10265
|
-
// multiSigners
|
|
10266
|
-
TOKEN_2022_PROGRAM_ID));
|
|
10267
|
-
setTransaction(tx);
|
|
10268
|
-
}
|
|
10269
|
-
getTx();
|
|
10270
|
-
}, [connection, dispatch, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, publicKey, sendTransaction, sentinel, signTransaction, tokenAccount.address, wallet]);
|
|
10271
|
-
return jsx(SolanaTxSendModal, {
|
|
10272
|
-
tx: transaction,
|
|
10273
|
-
chainId: poolInfo.chainId,
|
|
10274
|
-
handleSuccess: handleSuccess
|
|
10275
|
-
});
|
|
10276
|
-
}
|
|
10277
|
-
|
|
10278
|
-
function SolanaBorrow(_ref) {
|
|
10279
|
-
let {
|
|
10280
|
-
poolInfo,
|
|
10281
|
-
handleClose,
|
|
10282
|
-
handleSuccess
|
|
10283
|
-
} = _ref;
|
|
10284
|
-
const dispatch = useDispatch();
|
|
10285
|
-
const {
|
|
10286
|
-
creditConfigAccount,
|
|
10287
|
-
loading: isLoadingBorrowerAccounts
|
|
10288
|
-
} = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
10289
|
-
const {
|
|
10290
|
-
account: tokenAccount,
|
|
10291
|
-
loading: isLoadingTokenAccounts
|
|
10292
|
-
} = usePoolUnderlyingTokenAccount(poolInfo);
|
|
10293
|
-
const {
|
|
10294
|
-
step,
|
|
10295
|
-
errorMessage
|
|
10296
|
-
} = useAppSelector(selectWidgetState);
|
|
10297
|
-
useEffect(() => {
|
|
10298
|
-
if (!step) {
|
|
10299
|
-
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
10300
|
-
}
|
|
10301
|
-
}, [dispatch, step]);
|
|
10302
|
-
const title = 'Redemption';
|
|
10303
|
-
if (isLoadingBorrowerAccounts || isLoadingTokenAccounts) {
|
|
10304
|
-
return jsx(WidgetWrapper, {
|
|
10305
|
-
isOpen: true,
|
|
10306
|
-
isLoading: true,
|
|
10307
|
-
loadingTitle: title,
|
|
10308
|
-
handleClose: handleClose,
|
|
10309
|
-
handleSuccess: handleSuccess
|
|
10310
|
-
});
|
|
10311
|
-
}
|
|
10312
|
-
return jsxs(WidgetWrapper, {
|
|
10313
|
-
isOpen: true,
|
|
10314
|
-
loadingTitle: title,
|
|
10315
|
-
handleClose: handleClose,
|
|
10316
|
-
handleSuccess: handleSuccess,
|
|
10317
|
-
children: [step === WIDGET_STEP.ChooseAmount && creditConfigAccount && tokenAccount && jsx(ChooseAmount, {
|
|
10318
|
-
poolInfo: poolInfo,
|
|
10319
|
-
creditConfigAccount: creditConfigAccount,
|
|
10320
|
-
tokenAccount: tokenAccount
|
|
10321
|
-
}), step === WIDGET_STEP.ApproveAllowance && tokenAccount && jsx(ApproveAllowance, {
|
|
10322
|
-
poolInfo: poolInfo,
|
|
10323
|
-
tokenAccount: tokenAccount
|
|
10324
|
-
}), step === WIDGET_STEP.Error && jsx(ErrorModal, {
|
|
10325
|
-
title: title,
|
|
10326
|
-
errorReason: "Sorry there was an error",
|
|
10327
|
-
errorMessage: errorMessage,
|
|
10328
|
-
handleOk: handleClose
|
|
10329
|
-
})]
|
|
10330
|
-
});
|
|
10331
|
-
}
|
|
10332
|
-
|
|
10333
|
-
function Widget(props) {
|
|
10334
|
-
const {
|
|
10335
|
-
children,
|
|
10336
|
-
provider
|
|
10337
|
-
} = props;
|
|
10338
|
-
const [chainId, setChainId] = useState(undefined);
|
|
10339
|
-
useEffect(() => {
|
|
10340
|
-
const getChainId = async () => {
|
|
10341
|
-
if (provider instanceof JsonRpcProvider) {
|
|
10342
|
-
const network = await provider.getNetwork();
|
|
10343
|
-
setChainId(network === null || network === void 0 ? void 0 : network.chainId);
|
|
10344
|
-
}
|
|
10345
|
-
};
|
|
10346
|
-
getChainId();
|
|
10347
|
-
}, [provider]);
|
|
10348
|
-
return jsx(ThemeProvider, {
|
|
10349
|
-
theme: themeHuma,
|
|
10350
|
-
children: jsx(Provider, {
|
|
10351
|
-
store: store,
|
|
10352
|
-
children: jsx(Provider$1, {
|
|
10353
|
-
...props,
|
|
10354
|
-
defaultChainId: chainId,
|
|
10355
|
-
children: jsx(Provider$2, {
|
|
10356
|
-
children: jsx(ChainSupportProvider, {
|
|
10357
|
-
children: children
|
|
10358
|
-
})
|
|
10359
|
-
})
|
|
10360
|
-
})
|
|
9267
|
+
};
|
|
9268
|
+
getChainId();
|
|
9269
|
+
}, [provider]);
|
|
9270
|
+
return jsx(ThemeProvider, {
|
|
9271
|
+
theme: themeHuma,
|
|
9272
|
+
children: jsx(Provider, {
|
|
9273
|
+
store: store,
|
|
9274
|
+
children: jsx(Provider$1, {
|
|
9275
|
+
...props,
|
|
9276
|
+
defaultChainId: chainId,
|
|
9277
|
+
children: jsx(Provider$2, {
|
|
9278
|
+
children: jsx(ChainSupportProvider, {
|
|
9279
|
+
children: jsx(NotifiContextWrapper, {
|
|
9280
|
+
chainId: chainId,
|
|
9281
|
+
children: children
|
|
9282
|
+
})
|
|
9283
|
+
})
|
|
9284
|
+
})
|
|
9285
|
+
})
|
|
10361
9286
|
})
|
|
10362
9287
|
});
|
|
10363
9288
|
}
|
|
@@ -10750,107 +9675,5 @@ function ReceivableBackedCreditLinePaymentWidgetV2(props) {
|
|
|
10750
9675
|
});
|
|
10751
9676
|
}
|
|
10752
9677
|
|
|
10753
|
-
|
|
10754
|
-
* Object representing the props passed to Solana widgets
|
|
10755
|
-
* @typedef {Object} SolanaWidgetProps
|
|
10756
|
-
*/
|
|
10757
|
-
|
|
10758
|
-
function SolanaWidget(props) {
|
|
10759
|
-
const {
|
|
10760
|
-
children
|
|
10761
|
-
} = props;
|
|
10762
|
-
return jsx(ThemeProvider, {
|
|
10763
|
-
theme: themeHuma,
|
|
10764
|
-
children: jsx(Provider, {
|
|
10765
|
-
store: store,
|
|
10766
|
-
children: children
|
|
10767
|
-
})
|
|
10768
|
-
});
|
|
10769
|
-
}
|
|
10770
|
-
|
|
10771
|
-
/**
|
|
10772
|
-
* Lend pool supply widget props for Solana pools
|
|
10773
|
-
* @typedef {Object} SolanaLendSupplyWidgetProps
|
|
10774
|
-
* @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
|
|
10775
|
-
* @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
|
|
10776
|
-
*/
|
|
10777
|
-
|
|
10778
|
-
/**
|
|
10779
|
-
* Lend pool supply widget for Solana pools
|
|
10780
|
-
*
|
|
10781
|
-
* @param {SolanaLendSupplyWidgetProps} props - Widget props
|
|
10782
|
-
*/
|
|
10783
|
-
function SolanaLendSupplyWidget(props) {
|
|
10784
|
-
return jsx(SolanaWidget, {
|
|
10785
|
-
...props,
|
|
10786
|
-
children: jsx(SolanaLendSupply, {
|
|
10787
|
-
...props
|
|
10788
|
-
})
|
|
10789
|
-
});
|
|
10790
|
-
}
|
|
10791
|
-
|
|
10792
|
-
/**
|
|
10793
|
-
* Lend pool supply widget props for Solana pools
|
|
10794
|
-
* @typedef {Object} SolanaLendAddRedemptionWidgetProps
|
|
10795
|
-
* @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
|
|
10796
|
-
* @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
|
|
10797
|
-
*/
|
|
10798
|
-
|
|
10799
|
-
/**
|
|
10800
|
-
* Lend pool supply widget for Solana pools
|
|
10801
|
-
*
|
|
10802
|
-
* @param {SolanaLendAddRedemptionWidgetProps} props - Widget props
|
|
10803
|
-
*/
|
|
10804
|
-
function SolanaLendAddRedemptionWidget(props) {
|
|
10805
|
-
return jsx(SolanaWidget, {
|
|
10806
|
-
...props,
|
|
10807
|
-
children: jsx(SolanaLendAddRedemption, {
|
|
10808
|
-
...props
|
|
10809
|
-
})
|
|
10810
|
-
});
|
|
10811
|
-
}
|
|
10812
|
-
|
|
10813
|
-
/**
|
|
10814
|
-
* Lend pool supply widget props for Solana pools
|
|
10815
|
-
* @typedef {Object} SolanaLendCancelRedemptionWidgetProps
|
|
10816
|
-
* @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
|
|
10817
|
-
* @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
|
|
10818
|
-
*/
|
|
10819
|
-
|
|
10820
|
-
/**
|
|
10821
|
-
* Lend pool supply widget for Solana pools
|
|
10822
|
-
*
|
|
10823
|
-
* @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props
|
|
10824
|
-
*/
|
|
10825
|
-
function SolanaLendCancelRedemptionWidget(props) {
|
|
10826
|
-
return jsx(SolanaWidget, {
|
|
10827
|
-
...props,
|
|
10828
|
-
children: jsx(SolanaLendCancelRedemption, {
|
|
10829
|
-
...props
|
|
10830
|
-
})
|
|
10831
|
-
});
|
|
10832
|
-
}
|
|
10833
|
-
|
|
10834
|
-
/**
|
|
10835
|
-
* Lend pool supply widget props for Solana pools
|
|
10836
|
-
* @typedef {Object} SolanaBorrowWidgetProps
|
|
10837
|
-
* @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
|
|
10838
|
-
* @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
|
|
10839
|
-
*/
|
|
10840
|
-
|
|
10841
|
-
/**
|
|
10842
|
-
* Lend pool supply widget for Solana pools
|
|
10843
|
-
*
|
|
10844
|
-
* @param {SolanaBorrowWidgetProps} props - Widget props
|
|
10845
|
-
*/
|
|
10846
|
-
function SolanaBorrowWidget(props) {
|
|
10847
|
-
return jsx(SolanaWidget, {
|
|
10848
|
-
...props,
|
|
10849
|
-
children: jsx(SolanaBorrow, {
|
|
10850
|
-
...props
|
|
10851
|
-
})
|
|
10852
|
-
});
|
|
10853
|
-
}
|
|
10854
|
-
|
|
10855
|
-
export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SolanaBorrowWidget, SolanaLendAddRedemptionWidget, SolanaLendCancelRedemptionWidget, SolanaLendSupplyWidget, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
|
|
9678
|
+
export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, NotifiContextWrapper, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
|
|
10856
9679
|
//# sourceMappingURL=index.js.map
|