@huma-finance/widgets 0.0.62-beta.633 → 0.0.62-beta.634
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 +195 -0
- package/dist/cjs/index.cjs +1871 -299
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.d.ts +138 -2
- package/dist/index.js +1869 -302
- package/dist/index.js.map +1 -1
- package/package.json +18 -8
- package/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx +1 -0
- package/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx +67 -0
- package/src/components/CreditLine/solanaBorrow/2-Transfer.tsx +159 -0
- package/src/components/CreditLine/solanaBorrow/3-Done.tsx +38 -0
- package/src/components/CreditLine/solanaBorrow/index.tsx +93 -0
- package/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx +75 -0
- package/src/components/CreditLine/solanaPayment/2-Transfer.tsx +92 -0
- package/src/components/CreditLine/solanaPayment/3-Done.tsx +60 -0
- package/src/components/CreditLine/solanaPayment/index.tsx +86 -0
- package/src/components/InputAmountModal.tsx +13 -2
- package/src/components/Lend/{supplyV2/components → components}/PersonaEvaluation.tsx +19 -13
- package/src/components/Lend/{supplyV2/components → components}/SecuritizeEvaluation.tsx +7 -8
- package/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx +114 -0
- package/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx +183 -0
- package/src/components/Lend/solanaAddRedemption/3-Transfer.tsx +102 -0
- package/src/components/Lend/solanaAddRedemption/4-Done.tsx +29 -0
- package/src/components/Lend/solanaAddRedemption/index.tsx +155 -0
- package/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx +114 -0
- package/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx +99 -0
- package/src/components/Lend/solanaCancelRedemption/3-Done.tsx +55 -0
- package/src/components/Lend/solanaCancelRedemption/index.tsx +162 -0
- package/src/components/Lend/solanaSupply/1-Evaluation.tsx +43 -0
- package/src/components/Lend/solanaSupply/2-ChooseTranche.tsx +116 -0
- package/src/components/Lend/solanaSupply/3-ChooseAmount.tsx +131 -0
- package/src/components/Lend/solanaSupply/4-Transfer.tsx +137 -0
- package/src/components/Lend/solanaSupply/5-Success.tsx +52 -0
- package/src/components/Lend/solanaSupply/index.tsx +155 -0
- package/src/components/Lend/supplyV2/2-Evaluation.tsx +4 -3
- package/src/components/Lend/supplyV2/6-Success.tsx +3 -3
- package/src/components/SolanaTxDoneModal.tsx +119 -0
- package/src/components/SolanaTxSendModal.tsx +61 -0
- package/src/components/SolanaViewOnExplorer.tsx +29 -0
- package/src/components/WidgetWrapper.tsx +6 -4
- package/src/index.tsx +139 -0
- package/src/store/widgets.reducers.ts +5 -0
- package/src/store/widgets.store.ts +1 -0
package/dist/cjs/index.cjs
CHANGED
|
@@ -30,6 +30,10 @@ var Persona = require('persona');
|
|
|
30
30
|
var sdk = require('@huma-finance/sdk');
|
|
31
31
|
var moment = require('moment');
|
|
32
32
|
var address = require('@ethersproject/address');
|
|
33
|
+
var anchor = require('@coral-xyz/anchor');
|
|
34
|
+
var splToken = require('@solana/spl-token');
|
|
35
|
+
var walletAdapterReact = require('@solana/wallet-adapter-react');
|
|
36
|
+
var web3_js = require('@solana/web3.js');
|
|
33
37
|
var bytes = require('@ethersproject/bytes');
|
|
34
38
|
|
|
35
39
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -106,6 +110,7 @@ const widgetSlice = toolkit.createSlice({
|
|
|
106
110
|
state.withdrawShares = undefined;
|
|
107
111
|
state.redeemAmount = undefined;
|
|
108
112
|
state.redeemShares = undefined;
|
|
113
|
+
state.solanaSignature = undefined;
|
|
109
114
|
},
|
|
110
115
|
setStep: (state, _ref) => {
|
|
111
116
|
let {
|
|
@@ -196,10 +201,16 @@ const widgetSlice = toolkit.createSlice({
|
|
|
196
201
|
} = _ref12;
|
|
197
202
|
state.multisend = payload;
|
|
198
203
|
},
|
|
199
|
-
|
|
204
|
+
setSolanaSignature: (state, _ref13) => {
|
|
200
205
|
let {
|
|
201
206
|
payload
|
|
202
207
|
} = _ref13;
|
|
208
|
+
state.solanaSignature = payload;
|
|
209
|
+
},
|
|
210
|
+
setError: (state, _ref14) => {
|
|
211
|
+
let {
|
|
212
|
+
payload
|
|
213
|
+
} = _ref14;
|
|
203
214
|
state.errorMessage = payload.errorMessage;
|
|
204
215
|
state.errorReason = payload.errorReason;
|
|
205
216
|
state.step = WIDGET_STEP.Error;
|
|
@@ -220,7 +231,8 @@ const {
|
|
|
220
231
|
setWithdrawAmount,
|
|
221
232
|
setWithdrawShares,
|
|
222
233
|
setRedeemAmount,
|
|
223
|
-
setRedeemShares
|
|
234
|
+
setRedeemShares,
|
|
235
|
+
setSolanaSignature
|
|
224
236
|
} = widgetSlice.actions;
|
|
225
237
|
var widgetsReducers = widgetSlice.reducer;
|
|
226
238
|
|
|
@@ -230,7 +242,7 @@ var SorryImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAFTCAYAAAC52Y
|
|
|
230
242
|
|
|
231
243
|
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=";
|
|
232
244
|
|
|
233
|
-
var _templateObject$
|
|
245
|
+
var _templateObject$p, _templateObject2$o, _templateObject3$i, _templateObject4$b, _templateObject5$8, _templateObject6$7, _templateObject7$5, _templateObject8$3;
|
|
234
246
|
function ErrorModal(_ref) {
|
|
235
247
|
let {
|
|
236
248
|
title,
|
|
@@ -247,12 +259,12 @@ function ErrorModal(_ref) {
|
|
|
247
259
|
errorReason = 'Oops! Something went wrong';
|
|
248
260
|
}
|
|
249
261
|
const styles = {
|
|
250
|
-
wrapper: material.css(_templateObject$
|
|
251
|
-
header: material.css(_templateObject2$
|
|
252
|
-
sorry: material.css(_templateObject3$
|
|
253
|
-
content: material.css(_templateObject4$
|
|
254
|
-
errorIcon: material.css(_templateObject5$
|
|
255
|
-
messageWrapper: material.css(_templateObject6$
|
|
262
|
+
wrapper: material.css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
263
|
+
header: material.css(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
264
|
+
sorry: material.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)),
|
|
265
|
+
content: material.css(_templateObject4$b || (_templateObject4$b = _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)),
|
|
266
|
+
errorIcon: material.css(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
|
|
267
|
+
messageWrapper: material.css(_templateObject6$7 || (_templateObject6$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
|
|
256
268
|
errorMessage: material.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)),
|
|
257
269
|
okButton: material.css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
258
270
|
};
|
|
@@ -1625,7 +1637,7 @@ function HumaLoading(_ref2) {
|
|
|
1625
1637
|
});
|
|
1626
1638
|
}
|
|
1627
1639
|
|
|
1628
|
-
var _templateObject$
|
|
1640
|
+
var _templateObject$o, _templateObject2$n, _templateObject3$h, _templateObject4$a;
|
|
1629
1641
|
function WrapperModal(_ref) {
|
|
1630
1642
|
let {
|
|
1631
1643
|
title,
|
|
@@ -1634,10 +1646,10 @@ function WrapperModal(_ref) {
|
|
|
1634
1646
|
} = _ref;
|
|
1635
1647
|
const theme = material.useTheme();
|
|
1636
1648
|
const styles = {
|
|
1637
|
-
wrapper: material.css(_templateObject$
|
|
1638
|
-
header: material.css(_templateObject2$
|
|
1639
|
-
content: material.css(_templateObject3$
|
|
1640
|
-
bottom: material.css(_templateObject4$
|
|
1649
|
+
wrapper: material.css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
1650
|
+
header: material.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)),
|
|
1651
|
+
content: material.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),
|
|
1652
|
+
bottom: material.css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
1641
1653
|
};
|
|
1642
1654
|
return jsxRuntime.jsxs(material.Box, {
|
|
1643
1655
|
css: styles.wrapper,
|
|
@@ -1652,7 +1664,7 @@ function WrapperModal(_ref) {
|
|
|
1652
1664
|
});
|
|
1653
1665
|
}
|
|
1654
1666
|
|
|
1655
|
-
var _templateObject$
|
|
1667
|
+
var _templateObject$n, _templateObject2$m;
|
|
1656
1668
|
function LoadingModal(_ref) {
|
|
1657
1669
|
let {
|
|
1658
1670
|
title,
|
|
@@ -1662,8 +1674,8 @@ function LoadingModal(_ref) {
|
|
|
1662
1674
|
} = _ref;
|
|
1663
1675
|
const theme = material.useTheme();
|
|
1664
1676
|
const styles = {
|
|
1665
|
-
loader: material.css(_templateObject$
|
|
1666
|
-
bottom: material.css(_templateObject2$
|
|
1677
|
+
loader: material.css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
|
|
1678
|
+
bottom: material.css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
1667
1679
|
};
|
|
1668
1680
|
return jsxRuntime.jsxs(WrapperModal, {
|
|
1669
1681
|
title: title,
|
|
@@ -1690,7 +1702,8 @@ function WidgetWrapper(_ref) {
|
|
|
1690
1702
|
const theme = material.useTheme();
|
|
1691
1703
|
const dispatch = useAppDispatch();
|
|
1692
1704
|
const {
|
|
1693
|
-
step
|
|
1705
|
+
step,
|
|
1706
|
+
solanaSignature
|
|
1694
1707
|
} = useAppSelector(selectWidgetState);
|
|
1695
1708
|
const [{
|
|
1696
1709
|
state,
|
|
@@ -1706,12 +1719,14 @@ function WidgetWrapper(_ref) {
|
|
|
1706
1719
|
}
|
|
1707
1720
|
}, [dispatch, failReason, state]);
|
|
1708
1721
|
React.useEffect(() => {
|
|
1709
|
-
if (step === WIDGET_STEP.Done && txReceipt) {
|
|
1710
|
-
if (handleSuccess) {
|
|
1722
|
+
if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) {
|
|
1723
|
+
if (handleSuccess && txReceipt) {
|
|
1711
1724
|
handleSuccess(txReceipt.blockNumber);
|
|
1725
|
+
} else if (handleSuccess && solanaSignature) {
|
|
1726
|
+
handleSuccess(0); // solana tx doesn't have block number
|
|
1712
1727
|
}
|
|
1713
1728
|
}
|
|
1714
|
-
}, [handleSuccess, step, txReceipt]);
|
|
1729
|
+
}, [handleSuccess, solanaSignature, step, txReceipt]);
|
|
1715
1730
|
const handleCloseModal = React.useCallback(() => {
|
|
1716
1731
|
reset();
|
|
1717
1732
|
dispatch(resetState());
|
|
@@ -1738,7 +1753,7 @@ function WidgetWrapper(_ref) {
|
|
|
1738
1753
|
});
|
|
1739
1754
|
}
|
|
1740
1755
|
|
|
1741
|
-
var _templateObject$
|
|
1756
|
+
var _templateObject$m;
|
|
1742
1757
|
function BottomButton(_ref) {
|
|
1743
1758
|
let {
|
|
1744
1759
|
variant,
|
|
@@ -1746,7 +1761,7 @@ function BottomButton(_ref) {
|
|
|
1746
1761
|
onClick,
|
|
1747
1762
|
children
|
|
1748
1763
|
} = _ref;
|
|
1749
|
-
const styles = material.css(_templateObject$
|
|
1764
|
+
const styles = material.css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
|
|
1750
1765
|
return jsxRuntime.jsx(material.Box, {
|
|
1751
1766
|
css: styles,
|
|
1752
1767
|
children: jsxRuntime.jsx(material.Button, {
|
|
@@ -1779,7 +1794,7 @@ function ViewOnExplorer(_ref) {
|
|
|
1779
1794
|
});
|
|
1780
1795
|
}
|
|
1781
1796
|
|
|
1782
|
-
var _templateObject$
|
|
1797
|
+
var _templateObject$l, _templateObject2$l;
|
|
1783
1798
|
function ApproveAllowanceModal(_ref) {
|
|
1784
1799
|
let {
|
|
1785
1800
|
poolInfo,
|
|
@@ -1817,8 +1832,8 @@ function ApproveAllowanceModal(_ref) {
|
|
|
1817
1832
|
}
|
|
1818
1833
|
}, [handleSuccess, reset, resetAfterSuccess, state, symbol]);
|
|
1819
1834
|
const styles = {
|
|
1820
|
-
iconWrapper: material.css(_templateObject$
|
|
1821
|
-
description: material.css(_templateObject2$
|
|
1835
|
+
iconWrapper: material.css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
|
|
1836
|
+
description: material.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))
|
|
1822
1837
|
};
|
|
1823
1838
|
const sendIncreaseAllowance = React.useCallback(async () => {
|
|
1824
1839
|
const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
|
|
@@ -1888,7 +1903,7 @@ function ApproveAllowance$c(_ref) {
|
|
|
1888
1903
|
});
|
|
1889
1904
|
}
|
|
1890
1905
|
|
|
1891
|
-
var _templateObject$
|
|
1906
|
+
var _templateObject$k, _templateObject2$k, _templateObject3$g, _templateObject4$9, _templateObject5$7, _templateObject6$6;
|
|
1892
1907
|
function TxDoneModal(_ref) {
|
|
1893
1908
|
let {
|
|
1894
1909
|
content,
|
|
@@ -1900,12 +1915,12 @@ function TxDoneModal(_ref) {
|
|
|
1900
1915
|
const dispatch = useAppDispatch();
|
|
1901
1916
|
const reset = utils.useResetAtom(webShared.txAtom);
|
|
1902
1917
|
const styles = {
|
|
1903
|
-
wrapper: material.css(_templateObject$
|
|
1904
|
-
header: material.css(_templateObject2$
|
|
1905
|
-
content: material.css(_templateObject3$
|
|
1906
|
-
subContent: material.css(_templateObject4$
|
|
1907
|
-
check: material.css(_templateObject5$
|
|
1908
|
-
doneButton: material.css(_templateObject6$
|
|
1918
|
+
wrapper: material.css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
1919
|
+
header: material.css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
1920
|
+
content: material.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)),
|
|
1921
|
+
subContent: material.css(_templateObject4$9 || (_templateObject4$9 = _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)),
|
|
1922
|
+
check: material.css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
|
|
1923
|
+
doneButton: material.css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
|
|
1909
1924
|
};
|
|
1910
1925
|
const handleCloseModal = React.useCallback(() => {
|
|
1911
1926
|
reset();
|
|
@@ -1947,7 +1962,7 @@ function TxDoneModal(_ref) {
|
|
|
1947
1962
|
});
|
|
1948
1963
|
}
|
|
1949
1964
|
|
|
1950
|
-
function Success$
|
|
1965
|
+
function Success$f(_ref) {
|
|
1951
1966
|
let {
|
|
1952
1967
|
poolInfo,
|
|
1953
1968
|
handleAction
|
|
@@ -2015,7 +2030,7 @@ function CreditLineApprove(_ref) {
|
|
|
2015
2030
|
children: [step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$c, {
|
|
2016
2031
|
poolInfo: poolInfo,
|
|
2017
2032
|
amount: amount
|
|
2018
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
2033
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$f, {
|
|
2019
2034
|
poolInfo: poolInfo,
|
|
2020
2035
|
handleAction: handleClose
|
|
2021
2036
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
@@ -2026,7 +2041,7 @@ function CreditLineApprove(_ref) {
|
|
|
2026
2041
|
});
|
|
2027
2042
|
}
|
|
2028
2043
|
|
|
2029
|
-
var _templateObject$
|
|
2044
|
+
var _templateObject$j, _templateObject2$j;
|
|
2030
2045
|
function ApproveAllowanceModalV2(_ref) {
|
|
2031
2046
|
let {
|
|
2032
2047
|
poolInfo,
|
|
@@ -2061,8 +2076,8 @@ function ApproveAllowanceModalV2(_ref) {
|
|
|
2061
2076
|
}
|
|
2062
2077
|
}, [handleSuccess, reset, resetAfterSuccess, state]);
|
|
2063
2078
|
const styles = {
|
|
2064
|
-
iconWrapper: material.css(_templateObject$
|
|
2065
|
-
description: material.css(_templateObject2$
|
|
2079
|
+
iconWrapper: material.css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
|
|
2080
|
+
description: material.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))
|
|
2066
2081
|
};
|
|
2067
2082
|
const sendIncreaseAllowance = React.useCallback(async () => {
|
|
2068
2083
|
const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
|
|
@@ -2129,7 +2144,7 @@ function ApproveAllowance$b(_ref) {
|
|
|
2129
2144
|
});
|
|
2130
2145
|
}
|
|
2131
2146
|
|
|
2132
|
-
function Success$
|
|
2147
|
+
function Success$e(_ref) {
|
|
2133
2148
|
let {
|
|
2134
2149
|
handleAction
|
|
2135
2150
|
} = _ref;
|
|
@@ -2184,7 +2199,7 @@ function AutoPaybackV2(_ref) {
|
|
|
2184
2199
|
children: [step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$b, {
|
|
2185
2200
|
poolInfo: poolInfo,
|
|
2186
2201
|
poolUnderlyingToken: poolUnderlyingToken
|
|
2187
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
2202
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$e, {
|
|
2188
2203
|
handleAction: handleClose
|
|
2189
2204
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
2190
2205
|
title: "Auto Payback",
|
|
@@ -2239,17 +2254,17 @@ const useEA = () => {
|
|
|
2239
2254
|
|
|
2240
2255
|
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==";
|
|
2241
2256
|
|
|
2242
|
-
var _templateObject$
|
|
2257
|
+
var _templateObject$i, _templateObject2$i, _templateObject3$f, _templateObject4$8;
|
|
2243
2258
|
function SignIn(_ref) {
|
|
2244
2259
|
let {
|
|
2245
2260
|
description
|
|
2246
2261
|
} = _ref;
|
|
2247
2262
|
const theme = material.useTheme();
|
|
2248
2263
|
const styles = {
|
|
2249
|
-
wrapper: material.css(_templateObject$
|
|
2250
|
-
header: material.css(_templateObject2$
|
|
2251
|
-
icon: material.css(_templateObject3$
|
|
2252
|
-
content: material.css(_templateObject4$
|
|
2264
|
+
wrapper: material.css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
2265
|
+
header: material.css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2266
|
+
icon: material.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)),
|
|
2267
|
+
content: material.css(_templateObject4$8 || (_templateObject4$8 = _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))
|
|
2253
2268
|
};
|
|
2254
2269
|
return jsxRuntime.jsxs(material.Box, {
|
|
2255
2270
|
css: styles.wrapper,
|
|
@@ -2270,8 +2285,8 @@ function SignIn(_ref) {
|
|
|
2270
2285
|
});
|
|
2271
2286
|
}
|
|
2272
2287
|
|
|
2273
|
-
var _templateObject$
|
|
2274
|
-
function Evaluation$
|
|
2288
|
+
var _templateObject$h, _templateObject2$h, _templateObject3$e, _templateObject4$7, _templateObject5$6, _templateObject6$5, _templateObject7$4;
|
|
2289
|
+
function Evaluation$5(_ref) {
|
|
2275
2290
|
let {
|
|
2276
2291
|
poolInfo,
|
|
2277
2292
|
handleApprove
|
|
@@ -2302,12 +2317,12 @@ function Evaluation$4(_ref) {
|
|
|
2302
2317
|
fetchData();
|
|
2303
2318
|
}, [account, chainId, checkingEA, handleApprove, poolInfo.assetAddress, poolInfo.pool, isWalletOwnershipVerified]);
|
|
2304
2319
|
const styles = {
|
|
2305
|
-
wrapper: material.css(_templateObject$
|
|
2306
|
-
header: material.css(_templateObject2$
|
|
2307
|
-
content: material.css(_templateObject3$
|
|
2308
|
-
checkWrapper: material.css(_templateObject4$
|
|
2309
|
-
checkIcon: material.css(_templateObject5$
|
|
2310
|
-
congratsWrapper: material.css(_templateObject6$
|
|
2320
|
+
wrapper: material.css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
2321
|
+
header: material.css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2322
|
+
content: material.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)),
|
|
2323
|
+
checkWrapper: material.css(_templateObject4$7 || (_templateObject4$7 = _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),
|
|
2324
|
+
checkIcon: material.css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
|
|
2325
|
+
congratsWrapper: material.css(_templateObject6$5 || (_templateObject6$5 = _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)),
|
|
2311
2326
|
bottom: material.css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
|
|
2312
2327
|
};
|
|
2313
2328
|
const goToNextStep = () => {
|
|
@@ -2371,7 +2386,7 @@ function Evaluation$4(_ref) {
|
|
|
2371
2386
|
});
|
|
2372
2387
|
}
|
|
2373
2388
|
|
|
2374
|
-
var _templateObject$
|
|
2389
|
+
var _templateObject$g, _templateObject2$g, _templateObject3$d, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
2375
2390
|
function ChooseAmountModal(_ref) {
|
|
2376
2391
|
let {
|
|
2377
2392
|
title,
|
|
@@ -2398,12 +2413,12 @@ function ChooseAmountModal(_ref) {
|
|
|
2398
2413
|
} = webShared.useMQ();
|
|
2399
2414
|
const [inputTouched, setInputTouched] = React.useState(false);
|
|
2400
2415
|
const styles = {
|
|
2401
|
-
subTitle: material.css(_templateObject$
|
|
2402
|
-
description2: material.css(_templateObject2$
|
|
2403
|
-
chosenAmountWrapper: material.css(_templateObject3$
|
|
2404
|
-
chosenAmount: material.css(_templateObject4$
|
|
2405
|
-
chosenAmountSymbol: material.css(_templateObject5$
|
|
2406
|
-
inputAmountWrapper: material.css(_templateObject6$
|
|
2416
|
+
subTitle: material.css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
|
|
2417
|
+
description2: material.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)),
|
|
2418
|
+
chosenAmountWrapper: material.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)),
|
|
2419
|
+
chosenAmount: material.css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
|
|
2420
|
+
chosenAmountSymbol: material.css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
|
|
2421
|
+
inputAmountWrapper: material.css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
|
|
2407
2422
|
inputAmount: material.css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
|
|
2408
2423
|
inputField: material.css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
|
|
2409
2424
|
maxButton: material.css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n width: 80px;\n "]))),
|
|
@@ -2554,7 +2569,7 @@ function ChooseAmountModal(_ref) {
|
|
|
2554
2569
|
});
|
|
2555
2570
|
}
|
|
2556
2571
|
|
|
2557
|
-
function ChooseAmount$
|
|
2572
|
+
function ChooseAmount$g(_ref) {
|
|
2558
2573
|
let {
|
|
2559
2574
|
poolInfo,
|
|
2560
2575
|
accountStats
|
|
@@ -2673,7 +2688,7 @@ function TxSendModal(_ref) {
|
|
|
2673
2688
|
});
|
|
2674
2689
|
}
|
|
2675
2690
|
|
|
2676
|
-
function Transfer$
|
|
2691
|
+
function Transfer$k(_ref) {
|
|
2677
2692
|
let {
|
|
2678
2693
|
poolInfo
|
|
2679
2694
|
} = _ref;
|
|
@@ -2696,7 +2711,7 @@ function Transfer$f(_ref) {
|
|
|
2696
2711
|
});
|
|
2697
2712
|
}
|
|
2698
2713
|
|
|
2699
|
-
function Success$
|
|
2714
|
+
function Success$d(_ref) {
|
|
2700
2715
|
let {
|
|
2701
2716
|
poolInfo,
|
|
2702
2717
|
creditRecord,
|
|
@@ -2721,7 +2736,7 @@ function Success$c(_ref) {
|
|
|
2721
2736
|
});
|
|
2722
2737
|
}
|
|
2723
2738
|
|
|
2724
|
-
var _templateObject$
|
|
2739
|
+
var _templateObject$f, _templateObject2$f, _templateObject3$c, _templateObject4$5, _templateObject5$4;
|
|
2725
2740
|
const validateDefaultTargetGroup = async frontendClient => {
|
|
2726
2741
|
var _await$frontendClient;
|
|
2727
2742
|
// NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login
|
|
@@ -2837,11 +2852,11 @@ function NotifiSubscriptionModal(_ref) {
|
|
|
2837
2852
|
handleSuccess();
|
|
2838
2853
|
}, [dispatch, handleSuccess, reset]);
|
|
2839
2854
|
const styles = {
|
|
2840
|
-
disclaimer: material.css(_templateObject$
|
|
2841
|
-
inputField: material.css(_templateObject2$
|
|
2842
|
-
inputWrapper: material.css(_templateObject3$
|
|
2843
|
-
header: material.css(_templateObject4$
|
|
2844
|
-
check: material.css(_templateObject5$
|
|
2855
|
+
disclaimer: material.css(_templateObject$f || (_templateObject$f = _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)),
|
|
2856
|
+
inputField: material.css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
|
|
2857
|
+
inputWrapper: material.css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
|
|
2858
|
+
header: material.css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
2859
|
+
check: material.css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
|
|
2845
2860
|
};
|
|
2846
2861
|
if (isLoading) {
|
|
2847
2862
|
return jsxRuntime.jsx(LoadingModal, {
|
|
@@ -3018,17 +3033,17 @@ function CreditLineBorrow(_ref) {
|
|
|
3018
3033
|
loadingTitle: "Borrow",
|
|
3019
3034
|
handleClose: handleClose,
|
|
3020
3035
|
handleSuccess: handleSuccess,
|
|
3021
|
-
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$
|
|
3036
|
+
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$5, {
|
|
3022
3037
|
poolInfo: poolInfo,
|
|
3023
3038
|
handleApprove: approveCallback
|
|
3024
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
3039
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$g, {
|
|
3025
3040
|
poolInfo: poolInfo,
|
|
3026
3041
|
accountStats: accountStats
|
|
3027
3042
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$a, {
|
|
3028
3043
|
poolInfo: poolInfo
|
|
3029
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
3044
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$k, {
|
|
3030
3045
|
poolInfo: poolInfo
|
|
3031
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
3046
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$d, {
|
|
3032
3047
|
poolInfo: poolInfo,
|
|
3033
3048
|
handleAction: setupNotificationsOrClose,
|
|
3034
3049
|
creditRecord: creditRecord,
|
|
@@ -3043,7 +3058,7 @@ function CreditLineBorrow(_ref) {
|
|
|
3043
3058
|
});
|
|
3044
3059
|
}
|
|
3045
3060
|
|
|
3046
|
-
var _templateObject$
|
|
3061
|
+
var _templateObject$e, _templateObject2$e, _templateObject3$b, _templateObject4$4, _templateObject5$3, _templateObject6$3, _templateObject7$2, _templateObject8$1;
|
|
3047
3062
|
function InputAmountModal(_ref) {
|
|
3048
3063
|
let {
|
|
3049
3064
|
title,
|
|
@@ -3052,6 +3067,7 @@ function InputAmountModal(_ref) {
|
|
|
3052
3067
|
tokenSymbol,
|
|
3053
3068
|
suffix: defaultSuffix,
|
|
3054
3069
|
currentAmount,
|
|
3070
|
+
minimumAmount,
|
|
3055
3071
|
maxAmount,
|
|
3056
3072
|
maxAmountText = 'MAX',
|
|
3057
3073
|
maxAmountTitle,
|
|
@@ -3063,12 +3079,12 @@ function InputAmountModal(_ref) {
|
|
|
3063
3079
|
const [inputTouched, setInputTouched] = React.useState(false);
|
|
3064
3080
|
const suffix = " ".concat(defaultSuffix !== null && defaultSuffix !== void 0 ? defaultSuffix : tokenSymbol);
|
|
3065
3081
|
const styles = {
|
|
3066
|
-
inputAmountWrapper: material.css(_templateObject$
|
|
3067
|
-
inputAmount: material.css(_templateObject2$
|
|
3068
|
-
inputField: material.css(_templateObject3$
|
|
3069
|
-
maxWrapper: material.css(_templateObject4$
|
|
3070
|
-
maxTitle: material.css(_templateObject5$
|
|
3071
|
-
max: material.css(_templateObject6$
|
|
3082
|
+
inputAmountWrapper: material.css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
|
|
3083
|
+
inputAmount: material.css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
|
|
3084
|
+
inputField: material.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),
|
|
3085
|
+
maxWrapper: material.css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
|
|
3086
|
+
maxTitle: material.css(_templateObject5$3 || (_templateObject5$3 = _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)),
|
|
3087
|
+
max: material.css(_templateObject6$3 || (_templateObject6$3 = _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 white-space: nowrap;\n "]))),
|
|
3072
3088
|
info: material.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),
|
|
3073
3089
|
subInfo: material.css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: ", ";\n "])), theme.spacing(6))
|
|
3074
3090
|
};
|
|
@@ -3086,6 +3102,9 @@ function InputAmountModal(_ref) {
|
|
|
3086
3102
|
if (!shared.isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {
|
|
3087
3103
|
return true;
|
|
3088
3104
|
}
|
|
3105
|
+
if (!shared.isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount) {
|
|
3106
|
+
return true;
|
|
3107
|
+
}
|
|
3089
3108
|
return false;
|
|
3090
3109
|
};
|
|
3091
3110
|
const getEndAdornment = () => jsxRuntime.jsxs(material.Box, {
|
|
@@ -3127,6 +3146,11 @@ function InputAmountModal(_ref) {
|
|
|
3127
3146
|
css: styles.info,
|
|
3128
3147
|
children: info
|
|
3129
3148
|
}, info))
|
|
3149
|
+
}), !!minimumAmount && minimumAmount > 0 && jsxRuntime.jsx(material.Box, {
|
|
3150
|
+
children: jsxRuntime.jsxs(material.Typography, {
|
|
3151
|
+
css: styles.info,
|
|
3152
|
+
children: ["Minimum deposit: ", minimumAmount, " ", tokenSymbol]
|
|
3153
|
+
}, 'minDeposit')
|
|
3130
3154
|
}), jsxRuntime.jsx(BottomButton, {
|
|
3131
3155
|
variant: "contained",
|
|
3132
3156
|
onClick: handleAction,
|
|
@@ -3136,7 +3160,7 @@ function InputAmountModal(_ref) {
|
|
|
3136
3160
|
});
|
|
3137
3161
|
}
|
|
3138
3162
|
|
|
3139
|
-
function ChooseAmount$
|
|
3163
|
+
function ChooseAmount$f(_ref) {
|
|
3140
3164
|
let {
|
|
3141
3165
|
poolInfo,
|
|
3142
3166
|
poolUnderlyingToken,
|
|
@@ -3247,7 +3271,7 @@ function TxSendModalV2(_ref) {
|
|
|
3247
3271
|
});
|
|
3248
3272
|
}
|
|
3249
3273
|
|
|
3250
|
-
function Transfer$
|
|
3274
|
+
function Transfer$j(_ref) {
|
|
3251
3275
|
let {
|
|
3252
3276
|
poolInfo
|
|
3253
3277
|
} = _ref;
|
|
@@ -3281,7 +3305,7 @@ function Transfer$e(_ref) {
|
|
|
3281
3305
|
});
|
|
3282
3306
|
}
|
|
3283
3307
|
|
|
3284
|
-
function Success$
|
|
3308
|
+
function Success$c(_ref) {
|
|
3285
3309
|
let {
|
|
3286
3310
|
poolUnderlyingToken,
|
|
3287
3311
|
creditRecord,
|
|
@@ -3378,16 +3402,16 @@ function CreditLineBorrowV2(_ref) {
|
|
|
3378
3402
|
handleSuccess: handleSuccessCallback,
|
|
3379
3403
|
children: [!step && jsxRuntime.jsx(LoadingModal, {
|
|
3380
3404
|
title: "Borrow"
|
|
3381
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
3405
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$f, {
|
|
3382
3406
|
poolInfo: poolInfo,
|
|
3383
3407
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3384
3408
|
accountStats: accountStats
|
|
3385
3409
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$9, {
|
|
3386
3410
|
poolInfo: poolInfo,
|
|
3387
3411
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3388
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
3412
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$j, {
|
|
3389
3413
|
poolInfo: poolInfo
|
|
3390
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
3414
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$c, {
|
|
3391
3415
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3392
3416
|
handleAction: setupNotificationsOrClose,
|
|
3393
3417
|
creditRecord: accountStats.creditRecord,
|
|
@@ -3402,7 +3426,7 @@ function CreditLineBorrowV2(_ref) {
|
|
|
3402
3426
|
});
|
|
3403
3427
|
}
|
|
3404
3428
|
|
|
3405
|
-
function ChooseAmount$
|
|
3429
|
+
function ChooseAmount$e(_ref) {
|
|
3406
3430
|
let {
|
|
3407
3431
|
payoffAmount,
|
|
3408
3432
|
totalDueAmount,
|
|
@@ -3467,7 +3491,7 @@ function ApproveAllowance$8(_ref) {
|
|
|
3467
3491
|
});
|
|
3468
3492
|
}
|
|
3469
3493
|
|
|
3470
|
-
function Transfer$
|
|
3494
|
+
function Transfer$i(_ref) {
|
|
3471
3495
|
let {
|
|
3472
3496
|
poolInfo
|
|
3473
3497
|
} = _ref;
|
|
@@ -3493,7 +3517,7 @@ function Transfer$d(_ref) {
|
|
|
3493
3517
|
});
|
|
3494
3518
|
}
|
|
3495
3519
|
|
|
3496
|
-
function Success$
|
|
3520
|
+
function Success$b(_ref) {
|
|
3497
3521
|
let {
|
|
3498
3522
|
poolInfo,
|
|
3499
3523
|
handleAction
|
|
@@ -3559,15 +3583,15 @@ function CreditLinePayment(_ref) {
|
|
|
3559
3583
|
loadingTitle: "Make Payment",
|
|
3560
3584
|
handleClose: handleClose,
|
|
3561
3585
|
handleSuccess: handleSuccess,
|
|
3562
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
3586
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$e, {
|
|
3563
3587
|
poolInfo: poolInfo,
|
|
3564
3588
|
payoffAmount: payoffAmount,
|
|
3565
3589
|
totalDueAmount: totalDueAmount
|
|
3566
3590
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$8, {
|
|
3567
3591
|
poolInfo: poolInfo
|
|
3568
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
3592
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$i, {
|
|
3569
3593
|
poolInfo: poolInfo
|
|
3570
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
3594
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$b, {
|
|
3571
3595
|
poolInfo: poolInfo,
|
|
3572
3596
|
handleAction: handleClose
|
|
3573
3597
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
@@ -3578,7 +3602,7 @@ function CreditLinePayment(_ref) {
|
|
|
3578
3602
|
});
|
|
3579
3603
|
}
|
|
3580
3604
|
|
|
3581
|
-
function ChooseAmount$
|
|
3605
|
+
function ChooseAmount$d(_ref) {
|
|
3582
3606
|
let {
|
|
3583
3607
|
payoffAmount: payoffAmountBN,
|
|
3584
3608
|
totalDueAmount: totalDueAmountBN,
|
|
@@ -3600,6 +3624,8 @@ function ChooseAmount$9(_ref) {
|
|
|
3600
3624
|
} = webShared.usePoolSafeAllowanceV2(poolInfo.poolName, account, provider);
|
|
3601
3625
|
const totalDueAmount = Number(ethers.ethers.utils.formatUnits(totalDueAmountBN, decimals));
|
|
3602
3626
|
const payoffAmount = Number(ethers.ethers.utils.formatUnits(payoffAmountBN, decimals));
|
|
3627
|
+
|
|
3628
|
+
// TODO: Remove redundant useEffect
|
|
3603
3629
|
React.useEffect(() => {
|
|
3604
3630
|
setCurrentAmount(totalDueAmount);
|
|
3605
3631
|
}, [totalDueAmount]);
|
|
@@ -3657,7 +3683,7 @@ function ApproveAllowance$7(_ref) {
|
|
|
3657
3683
|
});
|
|
3658
3684
|
}
|
|
3659
3685
|
|
|
3660
|
-
function Transfer$
|
|
3686
|
+
function Transfer$h(_ref) {
|
|
3661
3687
|
let {
|
|
3662
3688
|
poolInfo,
|
|
3663
3689
|
poolUnderlyingToken
|
|
@@ -3692,7 +3718,7 @@ function Transfer$c(_ref) {
|
|
|
3692
3718
|
});
|
|
3693
3719
|
}
|
|
3694
3720
|
|
|
3695
|
-
function Success$
|
|
3721
|
+
function Success$a(_ref) {
|
|
3696
3722
|
let {
|
|
3697
3723
|
poolUnderlyingToken,
|
|
3698
3724
|
handleAction
|
|
@@ -3763,7 +3789,7 @@ function CreditLinePaymentV2(_ref) {
|
|
|
3763
3789
|
loadingTitle: "Pay",
|
|
3764
3790
|
handleClose: handleClose,
|
|
3765
3791
|
handleSuccess: handleSuccess,
|
|
3766
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
3792
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$d, {
|
|
3767
3793
|
poolInfo: poolInfo,
|
|
3768
3794
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3769
3795
|
payoffAmount: payoffAmount,
|
|
@@ -3771,10 +3797,10 @@ function CreditLinePaymentV2(_ref) {
|
|
|
3771
3797
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$7, {
|
|
3772
3798
|
poolInfo: poolInfo,
|
|
3773
3799
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3774
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
3800
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$h, {
|
|
3775
3801
|
poolInfo: poolInfo,
|
|
3776
3802
|
poolUnderlyingToken: poolUnderlyingToken
|
|
3777
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
3803
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$a, {
|
|
3778
3804
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3779
3805
|
handleAction: handleClose
|
|
3780
3806
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
@@ -3804,7 +3830,7 @@ function ApproveAllowance$6(_ref) {
|
|
|
3804
3830
|
});
|
|
3805
3831
|
}
|
|
3806
3832
|
|
|
3807
|
-
function Success$
|
|
3833
|
+
function Success$9(_ref) {
|
|
3808
3834
|
let {
|
|
3809
3835
|
amountToDeposit,
|
|
3810
3836
|
poolUnderlyingToken,
|
|
@@ -3822,7 +3848,7 @@ function Success$8(_ref) {
|
|
|
3822
3848
|
});
|
|
3823
3849
|
}
|
|
3824
3850
|
|
|
3825
|
-
function Transfer$
|
|
3851
|
+
function Transfer$g(_ref) {
|
|
3826
3852
|
let {
|
|
3827
3853
|
poolInfo,
|
|
3828
3854
|
amountToDeposit,
|
|
@@ -3903,11 +3929,11 @@ function SupplyFirstLossCover(_ref) {
|
|
|
3903
3929
|
poolInfo: poolInfo,
|
|
3904
3930
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3905
3931
|
amountToDeposit: minAmountToDeposit
|
|
3906
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
3932
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$g, {
|
|
3907
3933
|
poolInfo: poolInfo,
|
|
3908
3934
|
amountToDeposit: minAmountToDeposit,
|
|
3909
3935
|
title: title
|
|
3910
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
3936
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$9, {
|
|
3911
3937
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
3912
3938
|
handleAction: handleClose,
|
|
3913
3939
|
amountToDeposit: minAmountToDeposit
|
|
@@ -3919,7 +3945,7 @@ function SupplyFirstLossCover(_ref) {
|
|
|
3919
3945
|
});
|
|
3920
3946
|
}
|
|
3921
3947
|
|
|
3922
|
-
function Evaluation$
|
|
3948
|
+
function Evaluation$4(_ref) {
|
|
3923
3949
|
let {
|
|
3924
3950
|
poolInfo,
|
|
3925
3951
|
tokenId
|
|
@@ -3956,7 +3982,7 @@ function Evaluation$3(_ref) {
|
|
|
3956
3982
|
});
|
|
3957
3983
|
}
|
|
3958
3984
|
|
|
3959
|
-
function ChooseAmount$
|
|
3985
|
+
function ChooseAmount$c(_ref) {
|
|
3960
3986
|
var _receivable;
|
|
3961
3987
|
let {
|
|
3962
3988
|
poolInfo,
|
|
@@ -4021,7 +4047,7 @@ function ChooseAmount$8(_ref) {
|
|
|
4021
4047
|
});
|
|
4022
4048
|
}
|
|
4023
4049
|
|
|
4024
|
-
var _templateObject$
|
|
4050
|
+
var _templateObject$d, _templateObject2$d, _templateObject3$a, _templateObject4$3, _templateObject5$2, _templateObject6$2, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
|
|
4025
4051
|
function ConfirmTransferModal(_ref) {
|
|
4026
4052
|
let {
|
|
4027
4053
|
title,
|
|
@@ -4032,12 +4058,12 @@ function ConfirmTransferModal(_ref) {
|
|
|
4032
4058
|
} = _ref;
|
|
4033
4059
|
const theme = material.useTheme();
|
|
4034
4060
|
const styles = {
|
|
4035
|
-
wrapper: material.css(_templateObject$
|
|
4036
|
-
header: material.css(_templateObject2$
|
|
4037
|
-
description: material.css(_templateObject3$
|
|
4038
|
-
transferWrapper: material.css(_templateObject4$
|
|
4039
|
-
transfer: material.css(_templateObject5$
|
|
4040
|
-
transferItem: material.css(_templateObject6$
|
|
4061
|
+
wrapper: material.css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
|
|
4062
|
+
header: material.css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
4063
|
+
description: material.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)),
|
|
4064
|
+
transferWrapper: material.css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
|
|
4065
|
+
transfer: material.css(_templateObject5$2 || (_templateObject5$2 = _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)),
|
|
4066
|
+
transferItem: material.css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
|
|
4041
4067
|
arrow: material.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),
|
|
4042
4068
|
arrowFirst: material.css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n "]))),
|
|
4043
4069
|
okButton: material.css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
|
|
@@ -4161,7 +4187,7 @@ function ApproveNFT(_ref) {
|
|
|
4161
4187
|
});
|
|
4162
4188
|
}
|
|
4163
4189
|
|
|
4164
|
-
function Transfer$
|
|
4190
|
+
function Transfer$f(_ref) {
|
|
4165
4191
|
let {
|
|
4166
4192
|
poolInfo,
|
|
4167
4193
|
tokenId
|
|
@@ -4186,7 +4212,7 @@ function Transfer$a(_ref) {
|
|
|
4186
4212
|
});
|
|
4187
4213
|
}
|
|
4188
4214
|
|
|
4189
|
-
function Success$
|
|
4215
|
+
function Success$8(_ref) {
|
|
4190
4216
|
let {
|
|
4191
4217
|
handleAction
|
|
4192
4218
|
} = _ref;
|
|
@@ -4234,19 +4260,19 @@ function InvoiceFactoringBorrow(_ref) {
|
|
|
4234
4260
|
isOpen: true,
|
|
4235
4261
|
handleClose: handleClose,
|
|
4236
4262
|
handleSuccess: handleSuccess,
|
|
4237
|
-
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$
|
|
4263
|
+
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$4, {
|
|
4238
4264
|
poolInfo: poolInfo,
|
|
4239
4265
|
tokenId: tokenId.toString()
|
|
4240
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
4266
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$c, {
|
|
4241
4267
|
poolInfo: poolInfo,
|
|
4242
4268
|
accountStats: accountStats
|
|
4243
4269
|
}), step === WIDGET_STEP.ConfirmTransfer && jsxRuntime.jsx(ConfirmTransfer$2, {}), step === WIDGET_STEP.ApproveNFT && jsxRuntime.jsx(ApproveNFT, {
|
|
4244
4270
|
poolInfo: poolInfo,
|
|
4245
4271
|
tokenId: tokenId.toString()
|
|
4246
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
4272
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$f, {
|
|
4247
4273
|
poolInfo: poolInfo,
|
|
4248
4274
|
tokenId: tokenId.toString()
|
|
4249
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
4275
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$8, {
|
|
4250
4276
|
handleAction: handleClose
|
|
4251
4277
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
4252
4278
|
title: "Invoice Factoring",
|
|
@@ -4256,7 +4282,7 @@ function InvoiceFactoringBorrow(_ref) {
|
|
|
4256
4282
|
});
|
|
4257
4283
|
}
|
|
4258
4284
|
|
|
4259
|
-
function ChooseAmount$
|
|
4285
|
+
function ChooseAmount$b(_ref) {
|
|
4260
4286
|
let {
|
|
4261
4287
|
creditRecord,
|
|
4262
4288
|
poolInfo
|
|
@@ -4321,7 +4347,7 @@ function ApproveAllowance$5(_ref) {
|
|
|
4321
4347
|
});
|
|
4322
4348
|
}
|
|
4323
4349
|
|
|
4324
|
-
function Transfer$
|
|
4350
|
+
function Transfer$e(_ref) {
|
|
4325
4351
|
let {
|
|
4326
4352
|
poolInfo
|
|
4327
4353
|
} = _ref;
|
|
@@ -4347,7 +4373,7 @@ function Transfer$9(_ref) {
|
|
|
4347
4373
|
});
|
|
4348
4374
|
}
|
|
4349
4375
|
|
|
4350
|
-
function Success$
|
|
4376
|
+
function Success$7(_ref) {
|
|
4351
4377
|
let {
|
|
4352
4378
|
poolInfo,
|
|
4353
4379
|
handleAction
|
|
@@ -4401,14 +4427,14 @@ function InvoiceFactoringPayment(_ref) {
|
|
|
4401
4427
|
loadingTitle: "Make Payment",
|
|
4402
4428
|
handleClose: handleClose,
|
|
4403
4429
|
handleSuccess: handleSuccess,
|
|
4404
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
4430
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$b, {
|
|
4405
4431
|
creditRecord: creditRecord,
|
|
4406
4432
|
poolInfo: poolInfo
|
|
4407
4433
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$5, {
|
|
4408
4434
|
poolInfo: poolInfo
|
|
4409
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
4435
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$e, {
|
|
4410
4436
|
poolInfo: poolInfo
|
|
4411
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
4437
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$7, {
|
|
4412
4438
|
poolInfo: poolInfo,
|
|
4413
4439
|
handleAction: handleClose
|
|
4414
4440
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
@@ -4419,8 +4445,8 @@ function InvoiceFactoringPayment(_ref) {
|
|
|
4419
4445
|
});
|
|
4420
4446
|
}
|
|
4421
4447
|
|
|
4422
|
-
var _templateObject$
|
|
4423
|
-
function ChooseTranche$
|
|
4448
|
+
var _templateObject$c, _templateObject2$c, _templateObject3$9;
|
|
4449
|
+
function ChooseTranche$4(_ref) {
|
|
4424
4450
|
let {
|
|
4425
4451
|
selectedTranche,
|
|
4426
4452
|
changeTranche
|
|
@@ -4428,9 +4454,9 @@ function ChooseTranche$1(_ref) {
|
|
|
4428
4454
|
const theme = material.useTheme();
|
|
4429
4455
|
const dispatch = useAppDispatch();
|
|
4430
4456
|
const styles = {
|
|
4431
|
-
subTitle: material.css(_templateObject$
|
|
4432
|
-
radioGroup: material.css(_templateObject2$
|
|
4433
|
-
formControl: material.css(_templateObject3$
|
|
4457
|
+
subTitle: material.css(_templateObject$c || (_templateObject$c = _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)),
|
|
4458
|
+
radioGroup: material.css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
4459
|
+
formControl: material.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)
|
|
4434
4460
|
};
|
|
4435
4461
|
const handleNext = () => {
|
|
4436
4462
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -4475,7 +4501,7 @@ function ChooseTranche$1(_ref) {
|
|
|
4475
4501
|
});
|
|
4476
4502
|
}
|
|
4477
4503
|
|
|
4478
|
-
function ChooseAmount$
|
|
4504
|
+
function ChooseAmount$a(_ref) {
|
|
4479
4505
|
let {
|
|
4480
4506
|
poolInfo,
|
|
4481
4507
|
poolUnderlyingToken,
|
|
@@ -4541,7 +4567,7 @@ function ChooseAmount$6(_ref) {
|
|
|
4541
4567
|
});
|
|
4542
4568
|
}
|
|
4543
4569
|
|
|
4544
|
-
function Transfer$
|
|
4570
|
+
function Transfer$d(_ref) {
|
|
4545
4571
|
let {
|
|
4546
4572
|
poolInfo,
|
|
4547
4573
|
poolUnderlyingToken,
|
|
@@ -4574,7 +4600,7 @@ function Transfer$8(_ref) {
|
|
|
4574
4600
|
});
|
|
4575
4601
|
}
|
|
4576
4602
|
|
|
4577
|
-
function Done$
|
|
4603
|
+
function Done$6(_ref) {
|
|
4578
4604
|
let {
|
|
4579
4605
|
handleAction
|
|
4580
4606
|
} = _ref;
|
|
@@ -4684,18 +4710,18 @@ function AddRedemptionV2(_ref) {
|
|
|
4684
4710
|
loadingTitle: title,
|
|
4685
4711
|
handleClose: handleClose,
|
|
4686
4712
|
handleSuccess: handleRedeemSuccess,
|
|
4687
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche$
|
|
4713
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche$4, {
|
|
4688
4714
|
selectedTranche: trancheInfo === null || trancheInfo === void 0 ? void 0 : trancheInfo.tranche,
|
|
4689
4715
|
changeTranche: handleChangeTranche
|
|
4690
|
-
}), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsxRuntime.jsx(ChooseAmount$
|
|
4716
|
+
}), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsxRuntime.jsx(ChooseAmount$a, {
|
|
4691
4717
|
poolInfo: poolInfo,
|
|
4692
4718
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4693
4719
|
trancheInfo: trancheInfo
|
|
4694
|
-
}), step === WIDGET_STEP.Transfer && trancheInfo && jsxRuntime.jsx(Transfer$
|
|
4720
|
+
}), step === WIDGET_STEP.Transfer && trancheInfo && jsxRuntime.jsx(Transfer$d, {
|
|
4695
4721
|
poolInfo: poolInfo,
|
|
4696
4722
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4697
4723
|
trancheInfo: trancheInfo
|
|
4698
|
-
}), step === WIDGET_STEP.Done && trancheInfo && jsxRuntime.jsx(Done$
|
|
4724
|
+
}), step === WIDGET_STEP.Done && trancheInfo && jsxRuntime.jsx(Done$6, {
|
|
4699
4725
|
handleAction: handleClose
|
|
4700
4726
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
4701
4727
|
title: title,
|
|
@@ -4706,7 +4732,7 @@ function AddRedemptionV2(_ref) {
|
|
|
4706
4732
|
});
|
|
4707
4733
|
}
|
|
4708
4734
|
|
|
4709
|
-
function Transfer$
|
|
4735
|
+
function Transfer$c(_ref) {
|
|
4710
4736
|
let {
|
|
4711
4737
|
poolInfo,
|
|
4712
4738
|
trancheType,
|
|
@@ -4732,7 +4758,7 @@ function Transfer$7(_ref) {
|
|
|
4732
4758
|
});
|
|
4733
4759
|
}
|
|
4734
4760
|
|
|
4735
|
-
function Done$
|
|
4761
|
+
function Done$5(_ref) {
|
|
4736
4762
|
let {
|
|
4737
4763
|
poolUnderlyingToken,
|
|
4738
4764
|
redemptionInfo,
|
|
@@ -4793,11 +4819,11 @@ function CancelRedemptionV2(_ref) {
|
|
|
4793
4819
|
loadingTitle: title,
|
|
4794
4820
|
handleClose: handleClose,
|
|
4795
4821
|
handleSuccess: handleRedeemSuccess,
|
|
4796
|
-
children: [step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
4822
|
+
children: [step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$c, {
|
|
4797
4823
|
poolInfo: poolInfo,
|
|
4798
4824
|
trancheType: trancheType,
|
|
4799
4825
|
redemptionInfo: redemptionInfo
|
|
4800
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done$
|
|
4826
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done$5, {
|
|
4801
4827
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
4802
4828
|
handleAction: handleClose,
|
|
4803
4829
|
redemptionInfo: redemptionInfo
|
|
@@ -4810,7 +4836,7 @@ function CancelRedemptionV2(_ref) {
|
|
|
4810
4836
|
});
|
|
4811
4837
|
}
|
|
4812
4838
|
|
|
4813
|
-
var _templateObject$
|
|
4839
|
+
var _templateObject$b, _templateObject2$b;
|
|
4814
4840
|
function EvaluationEA(_ref) {
|
|
4815
4841
|
let {
|
|
4816
4842
|
poolInfo,
|
|
@@ -4824,8 +4850,8 @@ function EvaluationEA(_ref) {
|
|
|
4824
4850
|
} = core.useWeb3React();
|
|
4825
4851
|
const [loading, setLoading] = React.useState(false);
|
|
4826
4852
|
const styles = {
|
|
4827
|
-
iconWrapper: material.css(_templateObject$
|
|
4828
|
-
description: material.css(_templateObject2$
|
|
4853
|
+
iconWrapper: material.css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
4854
|
+
description: material.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)
|
|
4829
4855
|
};
|
|
4830
4856
|
const approveLender = async () => {
|
|
4831
4857
|
if (account) {
|
|
@@ -4920,7 +4946,7 @@ function HumaSnackBar(_ref2) {
|
|
|
4920
4946
|
});
|
|
4921
4947
|
}
|
|
4922
4948
|
|
|
4923
|
-
var _templateObject$
|
|
4949
|
+
var _templateObject$a, _templateObject2$a;
|
|
4924
4950
|
const KYCProvider = 'Securitize';
|
|
4925
4951
|
// TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.
|
|
4926
4952
|
const JiaPoolCopies = {
|
|
@@ -4986,8 +5012,8 @@ function EvaluationKYC(_ref) {
|
|
|
4986
5012
|
const docSignatureCompleted = docSignatureStatus === 'completed';
|
|
4987
5013
|
const [openSnackBar, setOpenSnackBar] = React.useState(false);
|
|
4988
5014
|
const styles = {
|
|
4989
|
-
iconWrapper: material.css(_templateObject$
|
|
4990
|
-
description: material.css(_templateObject2$
|
|
5015
|
+
iconWrapper: material.css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
5016
|
+
description: material.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)
|
|
4991
5017
|
};
|
|
4992
5018
|
const {
|
|
4993
5019
|
envelopeKey,
|
|
@@ -5178,7 +5204,7 @@ function EvaluationKYC(_ref) {
|
|
|
5178
5204
|
});
|
|
5179
5205
|
}
|
|
5180
5206
|
|
|
5181
|
-
function Evaluation$
|
|
5207
|
+
function Evaluation$3(_ref) {
|
|
5182
5208
|
var _poolInfo$extra;
|
|
5183
5209
|
let {
|
|
5184
5210
|
poolInfo,
|
|
@@ -5199,7 +5225,7 @@ function Evaluation$2(_ref) {
|
|
|
5199
5225
|
});
|
|
5200
5226
|
}
|
|
5201
5227
|
|
|
5202
|
-
function ChooseAmount$
|
|
5228
|
+
function ChooseAmount$9(_ref) {
|
|
5203
5229
|
let {
|
|
5204
5230
|
allowance,
|
|
5205
5231
|
withdrawlLockoutSeconds,
|
|
@@ -5256,7 +5282,7 @@ function ApproveAllowance$4(_ref) {
|
|
|
5256
5282
|
});
|
|
5257
5283
|
}
|
|
5258
5284
|
|
|
5259
|
-
function Transfer$
|
|
5285
|
+
function Transfer$b(_ref) {
|
|
5260
5286
|
let {
|
|
5261
5287
|
poolInfo
|
|
5262
5288
|
} = _ref;
|
|
@@ -5279,7 +5305,7 @@ function Transfer$6(_ref) {
|
|
|
5279
5305
|
});
|
|
5280
5306
|
}
|
|
5281
5307
|
|
|
5282
|
-
function Success$
|
|
5308
|
+
function Success$6(_ref) {
|
|
5283
5309
|
let {
|
|
5284
5310
|
poolInfo,
|
|
5285
5311
|
handleAction,
|
|
@@ -5402,20 +5428,20 @@ function LendSupply(_ref) {
|
|
|
5402
5428
|
loadingTitle: "Supply ".concat(poolInfo.poolUnderlyingToken.symbol),
|
|
5403
5429
|
handleClose: handleClose,
|
|
5404
5430
|
handleSuccess: handleSupplySuccess,
|
|
5405
|
-
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$
|
|
5431
|
+
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$3, {
|
|
5406
5432
|
poolInfo: poolInfo,
|
|
5407
5433
|
handleClose: handleClose,
|
|
5408
5434
|
handleApproveSuccess: handleApproveSuccess
|
|
5409
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
5435
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$9, {
|
|
5410
5436
|
poolInfo: poolInfo,
|
|
5411
5437
|
allowance: allowance,
|
|
5412
5438
|
underlyingTokenBalance: balanceWithoutDecimals,
|
|
5413
5439
|
withdrawlLockoutSeconds: withdrawlLockoutSeconds
|
|
5414
5440
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$4, {
|
|
5415
5441
|
poolInfo: poolInfo
|
|
5416
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
5442
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$b, {
|
|
5417
5443
|
poolInfo: poolInfo
|
|
5418
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
5444
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$6, {
|
|
5419
5445
|
poolInfo: poolInfo,
|
|
5420
5446
|
handleAction: setupNotificationsOrClose,
|
|
5421
5447
|
hasNextStep: isFirstTimeNotifiUser
|
|
@@ -5430,8 +5456,8 @@ function LendSupply(_ref) {
|
|
|
5430
5456
|
});
|
|
5431
5457
|
}
|
|
5432
5458
|
|
|
5433
|
-
var _templateObject$
|
|
5434
|
-
function ChooseTranche(_ref) {
|
|
5459
|
+
var _templateObject$9, _templateObject2$9, _templateObject3$8;
|
|
5460
|
+
function ChooseTranche$3(_ref) {
|
|
5435
5461
|
let {
|
|
5436
5462
|
poolUnderlyingToken,
|
|
5437
5463
|
selectedTranche,
|
|
@@ -5440,9 +5466,9 @@ function ChooseTranche(_ref) {
|
|
|
5440
5466
|
const theme = material.useTheme();
|
|
5441
5467
|
const dispatch = useAppDispatch();
|
|
5442
5468
|
const styles = {
|
|
5443
|
-
subTitle: material.css(_templateObject$
|
|
5444
|
-
radioGroup: material.css(_templateObject2$
|
|
5445
|
-
formControl: material.css(_templateObject3$
|
|
5469
|
+
subTitle: material.css(_templateObject$9 || (_templateObject$9 = _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)),
|
|
5470
|
+
radioGroup: material.css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
5471
|
+
formControl: material.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)
|
|
5446
5472
|
};
|
|
5447
5473
|
const handleNext = () => {
|
|
5448
5474
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -5492,13 +5518,14 @@ function ChooseTranche(_ref) {
|
|
|
5492
5518
|
});
|
|
5493
5519
|
}
|
|
5494
5520
|
|
|
5495
|
-
var _templateObject$
|
|
5521
|
+
var _templateObject$8, _templateObject2$8, _templateObject3$7;
|
|
5496
5522
|
function PersonaEvaluation(_ref) {
|
|
5497
5523
|
let {
|
|
5498
5524
|
poolInfo,
|
|
5499
5525
|
isUniTranche,
|
|
5500
5526
|
campaign,
|
|
5501
5527
|
pointsTestnetExperience,
|
|
5528
|
+
chainType,
|
|
5502
5529
|
changeTranche,
|
|
5503
5530
|
handleClose
|
|
5504
5531
|
} = _ref;
|
|
@@ -5508,7 +5535,7 @@ function PersonaEvaluation(_ref) {
|
|
|
5508
5535
|
const {
|
|
5509
5536
|
account,
|
|
5510
5537
|
chainId
|
|
5511
|
-
} =
|
|
5538
|
+
} = webShared.useChainInfo(isDev, chainType);
|
|
5512
5539
|
const {
|
|
5513
5540
|
errorType,
|
|
5514
5541
|
setError: setAuthError,
|
|
@@ -5758,9 +5785,9 @@ function PersonaEvaluation(_ref) {
|
|
|
5758
5785
|
}
|
|
5759
5786
|
};
|
|
5760
5787
|
const styles = {
|
|
5761
|
-
iconWrapper: material.css(_templateObject$
|
|
5762
|
-
description: material.css(_templateObject2$
|
|
5763
|
-
points: material.css(_templateObject3$
|
|
5788
|
+
iconWrapper: material.css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
5789
|
+
description: material.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),
|
|
5790
|
+
points: material.css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
|
|
5764
5791
|
};
|
|
5765
5792
|
if (!loadingType) {
|
|
5766
5793
|
return jsxRuntime.jsxs(WrapperModal, {
|
|
@@ -5792,7 +5819,7 @@ function PersonaEvaluation(_ref) {
|
|
|
5792
5819
|
});
|
|
5793
5820
|
}
|
|
5794
5821
|
|
|
5795
|
-
var _templateObject$
|
|
5822
|
+
var _templateObject$7, _templateObject2$7;
|
|
5796
5823
|
const LoadingCopiesByType = {
|
|
5797
5824
|
verificationStatus: {
|
|
5798
5825
|
description: "Checking your verification status..."
|
|
@@ -5997,8 +6024,8 @@ function SecuritizeEvaluation(_ref) {
|
|
|
5997
6024
|
onClose: () => setOpenSnackBar(false)
|
|
5998
6025
|
});
|
|
5999
6026
|
const styles = {
|
|
6000
|
-
iconWrapper: material.css(_templateObject$
|
|
6001
|
-
description: material.css(_templateObject2$
|
|
6027
|
+
iconWrapper: material.css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
|
|
6028
|
+
description: material.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)
|
|
6002
6029
|
};
|
|
6003
6030
|
if (!loadingType) {
|
|
6004
6031
|
return jsxRuntime.jsxs(WrapperModal, {
|
|
@@ -6025,7 +6052,7 @@ function SecuritizeEvaluation(_ref) {
|
|
|
6025
6052
|
});
|
|
6026
6053
|
}
|
|
6027
6054
|
|
|
6028
|
-
function Evaluation$
|
|
6055
|
+
function Evaluation$2(_ref) {
|
|
6029
6056
|
var _poolInfo$KYC, _poolInfo$KYC2;
|
|
6030
6057
|
let {
|
|
6031
6058
|
poolInfo,
|
|
@@ -6048,13 +6075,14 @@ function Evaluation$1(_ref) {
|
|
|
6048
6075
|
isUniTranche: isUniTranche,
|
|
6049
6076
|
pointsTestnetExperience: pointsTestnetExperience,
|
|
6050
6077
|
campaign: campaign,
|
|
6078
|
+
chainType: shared.CHAIN_TYPE.EVM,
|
|
6051
6079
|
changeTranche: changeTranche
|
|
6052
6080
|
});
|
|
6053
6081
|
}
|
|
6054
6082
|
return null;
|
|
6055
6083
|
}
|
|
6056
6084
|
|
|
6057
|
-
function ChooseAmount$
|
|
6085
|
+
function ChooseAmount$8(_ref) {
|
|
6058
6086
|
let {
|
|
6059
6087
|
poolInfo,
|
|
6060
6088
|
lpConfig,
|
|
@@ -6154,7 +6182,7 @@ function ApproveAllowance$3(_ref) {
|
|
|
6154
6182
|
});
|
|
6155
6183
|
}
|
|
6156
6184
|
|
|
6157
|
-
function Transfer$
|
|
6185
|
+
function Transfer$a(_ref) {
|
|
6158
6186
|
let {
|
|
6159
6187
|
poolInfo,
|
|
6160
6188
|
trancheType
|
|
@@ -6186,7 +6214,7 @@ function Transfer$5(_ref) {
|
|
|
6186
6214
|
});
|
|
6187
6215
|
}
|
|
6188
6216
|
|
|
6189
|
-
function Success$
|
|
6217
|
+
function Success$5(_ref) {
|
|
6190
6218
|
let {
|
|
6191
6219
|
poolInfo,
|
|
6192
6220
|
lpConfig,
|
|
@@ -6249,9 +6277,9 @@ function Success$4(_ref) {
|
|
|
6249
6277
|
}, [campaign, dispatch, handleAction, isFirstTimeNotifiUser, notifiChainSupported]);
|
|
6250
6278
|
const content = ["You successfully supplied ".concat(shared.formatMoney(supplyAmount), " ").concat(symbol, ".")];
|
|
6251
6279
|
const getSubContent = () => {
|
|
6252
|
-
const
|
|
6253
|
-
const withdrawTime =
|
|
6254
|
-
return ["You can begin submitting redemption requests on ".concat(shared.timeUtil.timestampToLL(
|
|
6280
|
+
const lockupEndTime = dayjs__default["default"]().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
|
|
6281
|
+
const withdrawTime = lockupEndTime.add(1, 'month');
|
|
6282
|
+
return ["You can begin submitting redemption requests on ".concat(shared.timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(shared.timeUtil.timestampToLL(withdrawTime.unix()), ".")];
|
|
6255
6283
|
};
|
|
6256
6284
|
const getButtonText = () => {
|
|
6257
6285
|
if (hasNextStep) {
|
|
@@ -6286,7 +6314,7 @@ function Notifications$1(_ref) {
|
|
|
6286
6314
|
});
|
|
6287
6315
|
}
|
|
6288
6316
|
|
|
6289
|
-
var _templateObject$
|
|
6317
|
+
var _templateObject$6, _templateObject2$6, _templateObject3$6, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7;
|
|
6290
6318
|
var STATE = /*#__PURE__*/function (STATE) {
|
|
6291
6319
|
STATE["Loading"] = "Loading";
|
|
6292
6320
|
STATE["SignIn"] = "SignIn";
|
|
@@ -6374,12 +6402,12 @@ function PointsEarned(_ref) {
|
|
|
6374
6402
|
handleAction();
|
|
6375
6403
|
}, [dispatch, handleAction, reset]);
|
|
6376
6404
|
const styles = {
|
|
6377
|
-
wrapper: material.css(_templateObject$
|
|
6378
|
-
congrats: material.css(_templateObject2$
|
|
6379
|
-
ribbon: material.css(_templateObject3$
|
|
6380
|
-
ribbonContent: material.css(_templateObject4$
|
|
6381
|
-
entirePoints: material.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)),
|
|
6382
|
-
entirePointsDetails: material.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)),
|
|
6405
|
+
wrapper: material.css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
6406
|
+
congrats: material.css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
|
|
6407
|
+
ribbon: material.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),
|
|
6408
|
+
ribbonContent: material.css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
|
|
6409
|
+
entirePoints: material.css(_templateObject5$1 || (_templateObject5$1 = _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)),
|
|
6410
|
+
entirePointsDetails: material.css(_templateObject6$1 || (_templateObject6$1 = _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)),
|
|
6383
6411
|
everyday: material.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
|
|
6384
6412
|
};
|
|
6385
6413
|
if (state === STATE.SignIn) {
|
|
@@ -6511,18 +6539,18 @@ function LendSupplyV2(_ref) {
|
|
|
6511
6539
|
loadingTitle: "Supply ".concat(poolUnderlyingToken.symbol),
|
|
6512
6540
|
handleClose: handleClose,
|
|
6513
6541
|
handleSuccess: handleSuccess,
|
|
6514
|
-
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche, {
|
|
6542
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche$3, {
|
|
6515
6543
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
6516
6544
|
selectedTranche: selectedTranche,
|
|
6517
6545
|
changeTranche: setSelectedTranche
|
|
6518
|
-
}), step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$
|
|
6546
|
+
}), step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$2, {
|
|
6519
6547
|
poolInfo: poolInfo,
|
|
6520
6548
|
handleClose: handleClose,
|
|
6521
6549
|
isUniTranche: isUniTranche,
|
|
6522
6550
|
changeTranche: setSelectedTranche,
|
|
6523
6551
|
pointsTestnetExperience: pointsTestnetExperience,
|
|
6524
6552
|
campaign: campaign
|
|
6525
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
6553
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$8, {
|
|
6526
6554
|
poolInfo: poolInfo,
|
|
6527
6555
|
lpConfig: lpConfig,
|
|
6528
6556
|
juniorAssets: juniorAssets,
|
|
@@ -6531,10 +6559,10 @@ function LendSupplyV2(_ref) {
|
|
|
6531
6559
|
isUniTranche: isUniTranche
|
|
6532
6560
|
}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance$3, {
|
|
6533
6561
|
poolInfo: poolInfo
|
|
6534
|
-
}), step === WIDGET_STEP.Transfer && selectedTranche && jsxRuntime.jsx(Transfer$
|
|
6562
|
+
}), step === WIDGET_STEP.Transfer && selectedTranche && jsxRuntime.jsx(Transfer$a, {
|
|
6535
6563
|
poolInfo: poolInfo,
|
|
6536
6564
|
trancheType: selectedTranche
|
|
6537
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
6565
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$5, {
|
|
6538
6566
|
poolInfo: poolInfo,
|
|
6539
6567
|
lpConfig: lpConfig,
|
|
6540
6568
|
campaign: campaign,
|
|
@@ -6599,7 +6627,7 @@ function CheckWithdrawable(_ref) {
|
|
|
6599
6627
|
});
|
|
6600
6628
|
}
|
|
6601
6629
|
|
|
6602
|
-
function ChooseAmount$
|
|
6630
|
+
function ChooseAmount$7(_ref) {
|
|
6603
6631
|
let {
|
|
6604
6632
|
lenderPosition,
|
|
6605
6633
|
poolBalance,
|
|
@@ -6637,7 +6665,7 @@ function ChooseAmount$3(_ref) {
|
|
|
6637
6665
|
});
|
|
6638
6666
|
}
|
|
6639
6667
|
|
|
6640
|
-
function Transfer$
|
|
6668
|
+
function Transfer$9(_ref) {
|
|
6641
6669
|
let {
|
|
6642
6670
|
poolInfo
|
|
6643
6671
|
} = _ref;
|
|
@@ -6660,7 +6688,7 @@ function Transfer$4(_ref) {
|
|
|
6660
6688
|
});
|
|
6661
6689
|
}
|
|
6662
6690
|
|
|
6663
|
-
function Success$
|
|
6691
|
+
function Success$4(_ref) {
|
|
6664
6692
|
let {
|
|
6665
6693
|
poolInfo,
|
|
6666
6694
|
handleAction
|
|
@@ -6750,13 +6778,13 @@ function LendWithdraw(_ref) {
|
|
|
6750
6778
|
children: [step === WIDGET_STEP.CheckWithdrawable && jsxRuntime.jsx(CheckWithdrawable, {
|
|
6751
6779
|
poolInfo: poolInfo,
|
|
6752
6780
|
handleClose: handleClose
|
|
6753
|
-
}), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsxRuntime.jsx(ChooseAmount$
|
|
6781
|
+
}), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsxRuntime.jsx(ChooseAmount$7, {
|
|
6754
6782
|
poolInfo: poolInfo,
|
|
6755
6783
|
lenderPosition: lenderPosition,
|
|
6756
6784
|
poolBalance: poolBalance
|
|
6757
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
6785
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$9, {
|
|
6758
6786
|
poolInfo: poolInfo
|
|
6759
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
6787
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$4, {
|
|
6760
6788
|
poolInfo: poolInfo,
|
|
6761
6789
|
handleAction: handleClose
|
|
6762
6790
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
@@ -6768,7 +6796,7 @@ function LendWithdraw(_ref) {
|
|
|
6768
6796
|
});
|
|
6769
6797
|
}
|
|
6770
6798
|
|
|
6771
|
-
var _templateObject$
|
|
6799
|
+
var _templateObject$5, _templateObject2$5, _templateObject3$5, _templateObject4$1;
|
|
6772
6800
|
function ConfirmTransfer$1(_ref) {
|
|
6773
6801
|
let {
|
|
6774
6802
|
poolInfo,
|
|
@@ -6810,10 +6838,10 @@ function ConfirmTransfer$1(_ref) {
|
|
|
6810
6838
|
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
6811
6839
|
};
|
|
6812
6840
|
const styles = {
|
|
6813
|
-
itemWrapper: material.css(_templateObject$
|
|
6814
|
-
item: material.css(_templateObject2$
|
|
6815
|
-
itemValue: material.css(_templateObject3$
|
|
6816
|
-
divider: material.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
|
|
6841
|
+
itemWrapper: material.css(_templateObject$5 || (_templateObject$5 = _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),
|
|
6842
|
+
item: material.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)),
|
|
6843
|
+
itemValue: material.css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
|
|
6844
|
+
divider: material.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
|
|
6817
6845
|
};
|
|
6818
6846
|
return jsxRuntime.jsxs(WrapperModal, {
|
|
6819
6847
|
title: "Withdraw ".concat(symbol),
|
|
@@ -6857,7 +6885,7 @@ function ConfirmTransfer$1(_ref) {
|
|
|
6857
6885
|
});
|
|
6858
6886
|
}
|
|
6859
6887
|
|
|
6860
|
-
function Transfer$
|
|
6888
|
+
function Transfer$8(_ref) {
|
|
6861
6889
|
let {
|
|
6862
6890
|
poolInfo,
|
|
6863
6891
|
tranche,
|
|
@@ -6883,7 +6911,7 @@ function Transfer$3(_ref) {
|
|
|
6883
6911
|
});
|
|
6884
6912
|
}
|
|
6885
6913
|
|
|
6886
|
-
function Done(_ref) {
|
|
6914
|
+
function Done$4(_ref) {
|
|
6887
6915
|
let {
|
|
6888
6916
|
poolUnderlyingToken,
|
|
6889
6917
|
withdrawAmount,
|
|
@@ -6983,11 +7011,11 @@ function LendWithdrawV2(_ref) {
|
|
|
6983
7011
|
redemptionStatus: redemptionStatus,
|
|
6984
7012
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
6985
7013
|
poolIsClosed: poolIsClosed
|
|
6986
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$
|
|
7014
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$8, {
|
|
6987
7015
|
poolInfo: poolInfo,
|
|
6988
7016
|
tranche: trancheType,
|
|
6989
7017
|
poolIsClosed: poolIsClosed
|
|
6990
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done, {
|
|
7018
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done$4, {
|
|
6991
7019
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
6992
7020
|
withdrawAmount: redemptionStatus.withdrawableAssets,
|
|
6993
7021
|
handleAction: handleClose
|
|
@@ -7000,7 +7028,7 @@ function LendWithdrawV2(_ref) {
|
|
|
7000
7028
|
});
|
|
7001
7029
|
}
|
|
7002
7030
|
|
|
7003
|
-
function ChooseAmount$
|
|
7031
|
+
function ChooseAmount$6(_ref) {
|
|
7004
7032
|
let {
|
|
7005
7033
|
poolInfo,
|
|
7006
7034
|
poolUnderlyingToken,
|
|
@@ -7123,7 +7151,7 @@ function ApproveReceivable$1(_ref) {
|
|
|
7123
7151
|
});
|
|
7124
7152
|
}
|
|
7125
7153
|
|
|
7126
|
-
function Transfer$
|
|
7154
|
+
function Transfer$7(_ref) {
|
|
7127
7155
|
let {
|
|
7128
7156
|
poolInfo,
|
|
7129
7157
|
tokenId
|
|
@@ -7168,7 +7196,7 @@ function Transfer$2(_ref) {
|
|
|
7168
7196
|
});
|
|
7169
7197
|
}
|
|
7170
7198
|
|
|
7171
|
-
function Success$
|
|
7199
|
+
function Success$3(_ref) {
|
|
7172
7200
|
let {
|
|
7173
7201
|
poolUnderlyingToken,
|
|
7174
7202
|
creditRecord,
|
|
@@ -7264,7 +7292,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
|
|
|
7264
7292
|
loadingTitle: "Borrow",
|
|
7265
7293
|
handleClose: handleClose,
|
|
7266
7294
|
handleSuccess: handleSuccessCallback,
|
|
7267
|
-
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$
|
|
7295
|
+
children: [step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$6, {
|
|
7268
7296
|
poolInfo: poolInfo,
|
|
7269
7297
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7270
7298
|
accountStats: accountStats,
|
|
@@ -7275,10 +7303,10 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
|
|
|
7275
7303
|
}), step === WIDGET_STEP.ApproveNFT && tokenId && jsxRuntime.jsx(ApproveReceivable$1, {
|
|
7276
7304
|
poolInfo: poolInfo,
|
|
7277
7305
|
tokenId: tokenId
|
|
7278
|
-
}), step === WIDGET_STEP.Transfer && tokenId && jsxRuntime.jsx(Transfer$
|
|
7306
|
+
}), step === WIDGET_STEP.Transfer && tokenId && jsxRuntime.jsx(Transfer$7, {
|
|
7279
7307
|
poolInfo: poolInfo,
|
|
7280
7308
|
tokenId: tokenId
|
|
7281
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$
|
|
7309
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$3, {
|
|
7282
7310
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7283
7311
|
handleAction: setupNotificationsOrClose,
|
|
7284
7312
|
creditRecord: accountStats.creditRecord,
|
|
@@ -7293,7 +7321,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
|
|
|
7293
7321
|
});
|
|
7294
7322
|
}
|
|
7295
7323
|
|
|
7296
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
7324
|
+
var _templateObject$4, _templateObject2$4, _templateObject3$4;
|
|
7297
7325
|
function ChoosePaymentType(_ref) {
|
|
7298
7326
|
let {
|
|
7299
7327
|
paymentType,
|
|
@@ -7302,9 +7330,9 @@ function ChoosePaymentType(_ref) {
|
|
|
7302
7330
|
const theme = material.useTheme();
|
|
7303
7331
|
const dispatch = useAppDispatch();
|
|
7304
7332
|
const styles = {
|
|
7305
|
-
subTitle: material.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)),
|
|
7306
|
-
radioGroup: material.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
7307
|
-
formControl: material.css(_templateObject3 || (_templateObject3 = _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)
|
|
7333
|
+
subTitle: material.css(_templateObject$4 || (_templateObject$4 = _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)),
|
|
7334
|
+
radioGroup: material.css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
7335
|
+
formControl: material.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)
|
|
7308
7336
|
};
|
|
7309
7337
|
const handleNext = () => {
|
|
7310
7338
|
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
@@ -7349,7 +7377,7 @@ function ChoosePaymentType(_ref) {
|
|
|
7349
7377
|
});
|
|
7350
7378
|
}
|
|
7351
7379
|
|
|
7352
|
-
function ChooseAmount$
|
|
7380
|
+
function ChooseAmount$5(_ref) {
|
|
7353
7381
|
let {
|
|
7354
7382
|
payoffAmount: payoffAmountBN,
|
|
7355
7383
|
poolInfo,
|
|
@@ -7531,7 +7559,7 @@ function ApproveReceivable(_ref) {
|
|
|
7531
7559
|
});
|
|
7532
7560
|
}
|
|
7533
7561
|
|
|
7534
|
-
function Transfer$
|
|
7562
|
+
function Transfer$6(_ref) {
|
|
7535
7563
|
let {
|
|
7536
7564
|
poolInfo,
|
|
7537
7565
|
poolUnderlyingToken,
|
|
@@ -7589,7 +7617,7 @@ function Transfer$1(_ref) {
|
|
|
7589
7617
|
});
|
|
7590
7618
|
}
|
|
7591
7619
|
|
|
7592
|
-
function Success$
|
|
7620
|
+
function Success$2(_ref) {
|
|
7593
7621
|
let {
|
|
7594
7622
|
poolUnderlyingToken,
|
|
7595
7623
|
paymentType,
|
|
@@ -7682,7 +7710,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
|
|
|
7682
7710
|
children: [step === WIDGET_STEP.ChoosePaymentType && jsxRuntime.jsx(ChoosePaymentType, {
|
|
7683
7711
|
paymentType: paymentType,
|
|
7684
7712
|
changePaymentType: setPaymentType
|
|
7685
|
-
}), step === WIDGET_STEP.ChooseAmount && paymentType && jsxRuntime.jsx(ChooseAmount$
|
|
7713
|
+
}), step === WIDGET_STEP.ChooseAmount && paymentType && jsxRuntime.jsx(ChooseAmount$5, {
|
|
7686
7714
|
poolInfo: poolInfo,
|
|
7687
7715
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7688
7716
|
payoffAmount: payoffAmount,
|
|
@@ -7698,14 +7726,14 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
|
|
|
7698
7726
|
}), step === WIDGET_STEP.ApproveNFT && borrowTokenId && jsxRuntime.jsx(ApproveReceivable, {
|
|
7699
7727
|
poolInfo: poolInfo,
|
|
7700
7728
|
tokenId: borrowTokenId
|
|
7701
|
-
}), step === WIDGET_STEP.Transfer && paymentType && jsxRuntime.jsx(Transfer$
|
|
7729
|
+
}), step === WIDGET_STEP.Transfer && paymentType && jsxRuntime.jsx(Transfer$6, {
|
|
7702
7730
|
poolInfo: poolInfo,
|
|
7703
7731
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7704
7732
|
paymentType: paymentType,
|
|
7705
7733
|
paymentTokenId: tokenId,
|
|
7706
7734
|
borrowTokenId: borrowTokenId,
|
|
7707
7735
|
setSuccessTxReceipt: setSuccessTxReceipt
|
|
7708
|
-
}), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsxRuntime.jsx(Success$
|
|
7736
|
+
}), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsxRuntime.jsx(Success$2, {
|
|
7709
7737
|
poolUnderlyingToken: poolUnderlyingToken,
|
|
7710
7738
|
paymentType: paymentType,
|
|
7711
7739
|
handleAction: handleClose,
|
|
@@ -7718,7 +7746,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
|
|
|
7718
7746
|
});
|
|
7719
7747
|
}
|
|
7720
7748
|
|
|
7721
|
-
function Evaluation(_ref) {
|
|
7749
|
+
function Evaluation$1(_ref) {
|
|
7722
7750
|
let {
|
|
7723
7751
|
poolInfo,
|
|
7724
7752
|
payerAddress,
|
|
@@ -7756,7 +7784,7 @@ function Evaluation(_ref) {
|
|
|
7756
7784
|
});
|
|
7757
7785
|
}
|
|
7758
7786
|
|
|
7759
|
-
function ChooseAmount(_ref) {
|
|
7787
|
+
function ChooseAmount$4(_ref) {
|
|
7760
7788
|
var _poolInfo$extra;
|
|
7761
7789
|
let {
|
|
7762
7790
|
poolInfo,
|
|
@@ -7942,7 +7970,7 @@ function Permit(_ref) {
|
|
|
7942
7970
|
});
|
|
7943
7971
|
}
|
|
7944
7972
|
|
|
7945
|
-
function Transfer(_ref) {
|
|
7973
|
+
function Transfer$5(_ref) {
|
|
7946
7974
|
let {
|
|
7947
7975
|
poolInfo
|
|
7948
7976
|
} = _ref;
|
|
@@ -7971,7 +7999,7 @@ function Transfer(_ref) {
|
|
|
7971
7999
|
});
|
|
7972
8000
|
}
|
|
7973
8001
|
|
|
7974
|
-
function Success(_ref) {
|
|
8002
|
+
function Success$1(_ref) {
|
|
7975
8003
|
let {
|
|
7976
8004
|
handleAction
|
|
7977
8005
|
} = _ref;
|
|
@@ -8017,11 +8045,11 @@ function StreamFactoringBorrow(_ref) {
|
|
|
8017
8045
|
isOpen: isOpen,
|
|
8018
8046
|
handleClose: handleClose,
|
|
8019
8047
|
handleSuccess: handleSuccess,
|
|
8020
|
-
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation, {
|
|
8048
|
+
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation$1, {
|
|
8021
8049
|
poolInfo: poolInfo,
|
|
8022
8050
|
payerAddress: payerAddress,
|
|
8023
8051
|
superToken: superToken
|
|
8024
|
-
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount, {
|
|
8052
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$4, {
|
|
8025
8053
|
poolInfo: poolInfo,
|
|
8026
8054
|
currentFlowRate: currentFlowRate
|
|
8027
8055
|
}), step === WIDGET_STEP.ConfirmTransfer && jsxRuntime.jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsxRuntime.jsx(ApproveAllowance, {
|
|
@@ -8031,9 +8059,9 @@ function StreamFactoringBorrow(_ref) {
|
|
|
8031
8059
|
payerAddress: payerAddress,
|
|
8032
8060
|
borrower: account,
|
|
8033
8061
|
superToken: superToken
|
|
8034
|
-
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer, {
|
|
8062
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$5, {
|
|
8035
8063
|
poolInfo: poolInfo
|
|
8036
|
-
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success, {
|
|
8064
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success$1, {
|
|
8037
8065
|
handleAction: handleClose
|
|
8038
8066
|
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
8039
8067
|
title: "Stream Borrowing",
|
|
@@ -8558,86 +8586,1512 @@ const themeHuma = material.createTheme(themeBase, {
|
|
|
8558
8586
|
components: components(themeBase)
|
|
8559
8587
|
});
|
|
8560
8588
|
|
|
8561
|
-
function
|
|
8589
|
+
function Evaluation(_ref) {
|
|
8590
|
+
var _poolInfo$KYC;
|
|
8562
8591
|
let {
|
|
8563
|
-
|
|
8564
|
-
|
|
8592
|
+
poolInfo,
|
|
8593
|
+
isUniTranche,
|
|
8594
|
+
pointsTestnetExperience,
|
|
8595
|
+
campaign,
|
|
8596
|
+
changeTranche,
|
|
8597
|
+
handleClose
|
|
8565
8598
|
} = _ref;
|
|
8566
|
-
|
|
8567
|
-
|
|
8568
|
-
|
|
8569
|
-
|
|
8570
|
-
|
|
8571
|
-
|
|
8572
|
-
|
|
8573
|
-
|
|
8574
|
-
|
|
8575
|
-
|
|
8576
|
-
|
|
8577
|
-
|
|
8578
|
-
|
|
8579
|
-
|
|
8580
|
-
if (chainId === shared.ChainEnum.Celo || chainId === shared.ChainEnum.Alfajores) {
|
|
8581
|
-
var _process$env$REACT_AP;
|
|
8582
|
-
cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
|
|
8583
|
-
} else if (chainId === shared.ChainEnum.Polygon || chainId === shared.ChainEnum.Amoy) {
|
|
8584
|
-
var _process$env$REACT_AP2;
|
|
8585
|
-
cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
|
|
8586
|
-
} else if (chainId === shared.ChainEnum.Scroll || chainId === shared.ChainEnum.ScrollSepolia) {
|
|
8587
|
-
var _process$env$REACT_AP3;
|
|
8588
|
-
cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
|
|
8599
|
+
if ((_poolInfo$KYC = poolInfo.KYC) !== null && _poolInfo$KYC !== void 0 && _poolInfo$KYC.Persona) {
|
|
8600
|
+
return jsxRuntime.jsx(PersonaEvaluation, {
|
|
8601
|
+
poolInfo: {
|
|
8602
|
+
KYC: poolInfo.KYC,
|
|
8603
|
+
juniorTrancheVault: poolInfo.juniorTrancheMint,
|
|
8604
|
+
seniorTrancheVault: poolInfo.seniorTrancheMint
|
|
8605
|
+
},
|
|
8606
|
+
handleClose: handleClose,
|
|
8607
|
+
isUniTranche: isUniTranche,
|
|
8608
|
+
pointsTestnetExperience: pointsTestnetExperience,
|
|
8609
|
+
campaign: campaign,
|
|
8610
|
+
chainType: shared.CHAIN_TYPE.SOLANA,
|
|
8611
|
+
changeTranche: changeTranche
|
|
8612
|
+
});
|
|
8589
8613
|
}
|
|
8590
|
-
return
|
|
8591
|
-
tenantId: "humafinanceprod",
|
|
8592
|
-
env: "Production",
|
|
8593
|
-
signMessage: async message => {
|
|
8594
|
-
const result = await signer.signMessage(message);
|
|
8595
|
-
return bytes.arrayify(result);
|
|
8596
|
-
},
|
|
8597
|
-
walletPublicKey: account,
|
|
8598
|
-
walletBlockchain: shared.getBlockchainConfigFromChain(chainId),
|
|
8599
|
-
cardId: cardId,
|
|
8600
|
-
children: children
|
|
8601
|
-
});
|
|
8602
|
-
}
|
|
8603
|
-
|
|
8604
|
-
function Widget(props) {
|
|
8605
|
-
const {
|
|
8606
|
-
children,
|
|
8607
|
-
provider
|
|
8608
|
-
} = props;
|
|
8609
|
-
const [chainId, setChainId] = React.useState(undefined);
|
|
8610
|
-
React.useEffect(() => {
|
|
8611
|
-
const getChainId = async () => {
|
|
8612
|
-
if (provider instanceof providers.JsonRpcProvider) {
|
|
8613
|
-
const network = await provider.getNetwork();
|
|
8614
|
-
setChainId(network === null || network === void 0 ? void 0 : network.chainId);
|
|
8615
|
-
}
|
|
8616
|
-
};
|
|
8617
|
-
getChainId();
|
|
8618
|
-
}, [provider]);
|
|
8619
|
-
return jsxRuntime.jsx(material.ThemeProvider, {
|
|
8620
|
-
theme: themeHuma,
|
|
8621
|
-
children: jsxRuntime.jsx(reactRedux.Provider, {
|
|
8622
|
-
store: store,
|
|
8623
|
-
children: jsxRuntime.jsx(webShared.Provider, {
|
|
8624
|
-
...props,
|
|
8625
|
-
defaultChainId: chainId,
|
|
8626
|
-
children: jsxRuntime.jsx(jotai.Provider, {
|
|
8627
|
-
children: jsxRuntime.jsx(ChainSupportProvider, {
|
|
8628
|
-
children: jsxRuntime.jsx(NotifiContextWrapper, {
|
|
8629
|
-
chainId: chainId,
|
|
8630
|
-
children: children
|
|
8631
|
-
})
|
|
8632
|
-
})
|
|
8633
|
-
})
|
|
8634
|
-
})
|
|
8635
|
-
})
|
|
8636
|
-
});
|
|
8614
|
+
return null;
|
|
8637
8615
|
}
|
|
8638
8616
|
|
|
8639
|
-
|
|
8640
|
-
|
|
8617
|
+
var _templateObject$3, _templateObject2$3, _templateObject3$3;
|
|
8618
|
+
function ChooseTranche$2(_ref) {
|
|
8619
|
+
let {
|
|
8620
|
+
poolUnderlyingToken,
|
|
8621
|
+
selectedTranche,
|
|
8622
|
+
changeTranche
|
|
8623
|
+
} = _ref;
|
|
8624
|
+
const theme = material.useTheme();
|
|
8625
|
+
const dispatch = useAppDispatch();
|
|
8626
|
+
const styles = {
|
|
8627
|
+
subTitle: material.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)),
|
|
8628
|
+
radioGroup: material.css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
8629
|
+
formControl: material.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)
|
|
8630
|
+
};
|
|
8631
|
+
const handleNext = () => {
|
|
8632
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
8633
|
+
};
|
|
8634
|
+
const items = [{
|
|
8635
|
+
label: 'Senior',
|
|
8636
|
+
value: 'senior'
|
|
8637
|
+
}, {
|
|
8638
|
+
label: 'Junior',
|
|
8639
|
+
value: 'junior'
|
|
8640
|
+
}];
|
|
8641
|
+
return jsxRuntime.jsxs(WrapperModal, {
|
|
8642
|
+
title: "Supply ".concat(poolUnderlyingToken.symbol),
|
|
8643
|
+
children: [jsxRuntime.jsxs(material.FormControl, {
|
|
8644
|
+
children: [jsxRuntime.jsx(material.FormLabel, {
|
|
8645
|
+
css: styles.subTitle,
|
|
8646
|
+
children: "Select Tranche Type"
|
|
8647
|
+
}), jsxRuntime.jsx(material.RadioGroup, {
|
|
8648
|
+
"aria-labelledby": "buttons-group-label",
|
|
8649
|
+
name: "radio-buttons-group",
|
|
8650
|
+
css: styles.radioGroup,
|
|
8651
|
+
onChange: e => changeTranche(e.target.value),
|
|
8652
|
+
children: items.map(item => jsxRuntime.jsx(material.FormControlLabel, {
|
|
8653
|
+
value: item.value,
|
|
8654
|
+
control: jsxRuntime.jsx(material.Radio, {
|
|
8655
|
+
sx: {
|
|
8656
|
+
'& .MuiSvgIcon-root': {
|
|
8657
|
+
fontSize: 24
|
|
8658
|
+
}
|
|
8659
|
+
}
|
|
8660
|
+
}),
|
|
8661
|
+
label: item.label,
|
|
8662
|
+
css: styles.formControl
|
|
8663
|
+
}, item.label))
|
|
8664
|
+
})]
|
|
8665
|
+
}), jsxRuntime.jsx(BottomButton, {
|
|
8666
|
+
variant: "contained",
|
|
8667
|
+
disabled: !selectedTranche,
|
|
8668
|
+
onClick: handleNext,
|
|
8669
|
+
children: "NEXT"
|
|
8670
|
+
})]
|
|
8671
|
+
});
|
|
8672
|
+
}
|
|
8673
|
+
|
|
8674
|
+
function ChooseAmount$3(_ref) {
|
|
8675
|
+
let {
|
|
8676
|
+
poolInfo,
|
|
8677
|
+
poolState,
|
|
8678
|
+
tokenAccount,
|
|
8679
|
+
selectedTranche,
|
|
8680
|
+
isUniTranche
|
|
8681
|
+
} = _ref;
|
|
8682
|
+
const dispatch = useAppDispatch();
|
|
8683
|
+
const {
|
|
8684
|
+
symbol,
|
|
8685
|
+
decimals
|
|
8686
|
+
} = poolInfo.underlyingMint;
|
|
8687
|
+
const [currentAmount, setCurrentAmount] = React.useState(0);
|
|
8688
|
+
const balance = tokenAccount ? new anchor.BN(tokenAccount.amount.toString()) : new anchor.BN(0);
|
|
8689
|
+
const {
|
|
8690
|
+
juniorAvailableCapBN,
|
|
8691
|
+
seniorAvailableCapBN
|
|
8692
|
+
} = React.useMemo(() => {
|
|
8693
|
+
const {
|
|
8694
|
+
maxSeniorJuniorRatio,
|
|
8695
|
+
liquidityCap,
|
|
8696
|
+
seniorTrancheAssets,
|
|
8697
|
+
juniorTrancheAssets
|
|
8698
|
+
} = poolState;
|
|
8699
|
+
const juniorTrancheAssetsBN = new anchor.BN(juniorTrancheAssets !== null && juniorTrancheAssets !== void 0 ? juniorTrancheAssets : 0);
|
|
8700
|
+
const seniorTrancheAssetsBN = new anchor.BN(seniorTrancheAssets !== null && seniorTrancheAssets !== void 0 ? seniorTrancheAssets : 0);
|
|
8701
|
+
const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN);
|
|
8702
|
+
const totalAvailableCapBN = new anchor.BN(liquidityCap !== null && liquidityCap !== void 0 ? liquidityCap : 0).sub(totalDeployedBN);
|
|
8703
|
+
const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(maxSeniorJuniorRatio !== null && maxSeniorJuniorRatio !== void 0 ? maxSeniorJuniorRatio : 0);
|
|
8704
|
+
let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN);
|
|
8705
|
+
seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) ? totalAvailableCapBN : seniorAvailableCapBN;
|
|
8706
|
+
return {
|
|
8707
|
+
juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN),
|
|
8708
|
+
seniorAvailableCapBN
|
|
8709
|
+
};
|
|
8710
|
+
}, [poolState]);
|
|
8711
|
+
const handleChangeAmount = newAmount => {
|
|
8712
|
+
setCurrentAmount(newAmount);
|
|
8713
|
+
dispatch(setSupplyAmount(Number(newAmount)));
|
|
8714
|
+
};
|
|
8715
|
+
const handleAction = () => {
|
|
8716
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
8717
|
+
};
|
|
8718
|
+
const getTrancheCap = () => {
|
|
8719
|
+
if (selectedTranche === 'junior') {
|
|
8720
|
+
return juniorAvailableCapBN;
|
|
8721
|
+
}
|
|
8722
|
+
return seniorAvailableCapBN;
|
|
8723
|
+
};
|
|
8724
|
+
const getMinAmount = () => {
|
|
8725
|
+
const minAmount = poolState.minDepositAmount ? shared.SolanaTokenUtils.formatUnits(new anchor.BN(poolState.minDepositAmount), decimals) : 0;
|
|
8726
|
+
return Math.max(0, Math.ceil(Number(minAmount)));
|
|
8727
|
+
};
|
|
8728
|
+
const getMaxAmount = () => {
|
|
8729
|
+
const trancheCap = getTrancheCap();
|
|
8730
|
+
return balance.gt(trancheCap) ? trancheCap : balance;
|
|
8731
|
+
};
|
|
8732
|
+
const getInfos = () => {
|
|
8733
|
+
const trancheCap = getTrancheCap();
|
|
8734
|
+
const currentAmountBN = shared.SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
|
|
8735
|
+
const remainingCap = trancheCap.sub(currentAmountBN);
|
|
8736
|
+
if (remainingCap.ltn(0)) {
|
|
8737
|
+
return ['0 remaining capacity'];
|
|
8738
|
+
}
|
|
8739
|
+
return ["".concat(shared.formatNumber(shared.SolanaTokenUtils.formatUnits(remainingCap, decimals)), " remaining capacity")];
|
|
8740
|
+
};
|
|
8741
|
+
return jsxRuntime.jsx(InputAmountModal, {
|
|
8742
|
+
title: "Enter Amount",
|
|
8743
|
+
subTitle: "Depositing to ".concat(isUniTranche ? 'uni tranche' : selectedTranche, " tranche"),
|
|
8744
|
+
tokenSymbol: symbol,
|
|
8745
|
+
currentAmount: currentAmount,
|
|
8746
|
+
handleChangeAmount: handleChangeAmount,
|
|
8747
|
+
minimumAmount: getMinAmount(),
|
|
8748
|
+
maxAmount: Number(shared.SolanaTokenUtils.formatUnits(getMaxAmount(), decimals)),
|
|
8749
|
+
maxAmountTitle: "".concat(shared.formatNumber(shared.SolanaTokenUtils.formatUnits(balance, decimals)), " balance"),
|
|
8750
|
+
infos: getInfos(),
|
|
8751
|
+
handleAction: handleAction,
|
|
8752
|
+
actionText: "SUPPLY"
|
|
8753
|
+
});
|
|
8754
|
+
}
|
|
8755
|
+
|
|
8756
|
+
function SolanaViewOnExplorer(_ref) {
|
|
8757
|
+
let {
|
|
8758
|
+
chainId,
|
|
8759
|
+
signature
|
|
8760
|
+
} = _ref;
|
|
8761
|
+
const link = shared.getSolanaExplorerUrl(chainId, signature, 'tx');
|
|
8762
|
+
if (!link) {
|
|
8763
|
+
return null;
|
|
8764
|
+
}
|
|
8765
|
+
return jsxRuntime.jsx(material.Button, {
|
|
8766
|
+
fullWidth: true,
|
|
8767
|
+
variant: "outlined",
|
|
8768
|
+
onClick: () => shared.openInNewTab(link),
|
|
8769
|
+
children: jsxRuntime.jsx(material.Box, {
|
|
8770
|
+
component: "span",
|
|
8771
|
+
children: "VIEW ON EXPLORER"
|
|
8772
|
+
})
|
|
8773
|
+
});
|
|
8774
|
+
}
|
|
8775
|
+
|
|
8776
|
+
function SolanaTxSendModal(_ref) {
|
|
8777
|
+
let {
|
|
8778
|
+
chainId,
|
|
8779
|
+
tx,
|
|
8780
|
+
handleSuccess
|
|
8781
|
+
} = _ref;
|
|
8782
|
+
const dispatch = useAppDispatch();
|
|
8783
|
+
const {
|
|
8784
|
+
sendTransaction
|
|
8785
|
+
} = walletAdapterReact.useWallet();
|
|
8786
|
+
const {
|
|
8787
|
+
connection
|
|
8788
|
+
} = walletAdapterReact.useConnection();
|
|
8789
|
+
const [signature, setSignature] = React.useState('');
|
|
8790
|
+
React.useEffect(() => {
|
|
8791
|
+
async function sendTx() {
|
|
8792
|
+
if (!connection || !tx) {
|
|
8793
|
+
return;
|
|
8794
|
+
}
|
|
8795
|
+
try {
|
|
8796
|
+
const latestBlockHash = await connection.getLatestBlockhash();
|
|
8797
|
+
const signature = await sendTransaction(tx, connection);
|
|
8798
|
+
setSignature(signature);
|
|
8799
|
+
dispatch(setSolanaSignature(signature));
|
|
8800
|
+
await connection.confirmTransaction({
|
|
8801
|
+
blockhash: latestBlockHash.blockhash,
|
|
8802
|
+
lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
|
|
8803
|
+
signature
|
|
8804
|
+
});
|
|
8805
|
+
handleSuccess();
|
|
8806
|
+
} catch (error) {
|
|
8807
|
+
const err = error;
|
|
8808
|
+
dispatch(setError({
|
|
8809
|
+
errorMessage: (err === null || err === void 0 ? void 0 : err.message) || ''
|
|
8810
|
+
}));
|
|
8811
|
+
}
|
|
8812
|
+
}
|
|
8813
|
+
sendTx();
|
|
8814
|
+
}, [connection, dispatch, handleSuccess, sendTransaction, tx]);
|
|
8815
|
+
return jsxRuntime.jsx(LoadingModal, {
|
|
8816
|
+
title: "Transaction Pending",
|
|
8817
|
+
description: "Waiting for confirmation...",
|
|
8818
|
+
children: jsxRuntime.jsx(SolanaViewOnExplorer, {
|
|
8819
|
+
chainId: chainId,
|
|
8820
|
+
signature: signature
|
|
8821
|
+
})
|
|
8822
|
+
});
|
|
8823
|
+
}
|
|
8824
|
+
|
|
8825
|
+
function Transfer$4(_ref) {
|
|
8826
|
+
let {
|
|
8827
|
+
poolInfo,
|
|
8828
|
+
selectedTranche
|
|
8829
|
+
} = _ref;
|
|
8830
|
+
const dispatch = useAppDispatch();
|
|
8831
|
+
const {
|
|
8832
|
+
publicKey
|
|
8833
|
+
} = walletAdapterReact.useWallet();
|
|
8834
|
+
const {
|
|
8835
|
+
supplyAmount
|
|
8836
|
+
} = useAppSelector(selectWidgetState);
|
|
8837
|
+
const {
|
|
8838
|
+
decimals
|
|
8839
|
+
} = poolInfo.underlyingMint;
|
|
8840
|
+
const supplyBigNumber = shared.SolanaTokenUtils.parseUnits(String(supplyAmount), decimals);
|
|
8841
|
+
const [transaction, setTransaction] = React.useState();
|
|
8842
|
+
const {
|
|
8843
|
+
juniorLenderApprovedAccountPDA,
|
|
8844
|
+
seniorLenderApprovedAccountPDA,
|
|
8845
|
+
seniorLenderStateAccount,
|
|
8846
|
+
juniorLenderStateAccount,
|
|
8847
|
+
loading: isLoadingLenderAccounts
|
|
8848
|
+
} = webShared.useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
8849
|
+
const program = webShared.useHumaProgram(poolInfo.chainId);
|
|
8850
|
+
const handleSuccess = React.useCallback(() => {
|
|
8851
|
+
dispatch(setStep(WIDGET_STEP.Done));
|
|
8852
|
+
}, [dispatch]);
|
|
8853
|
+
React.useEffect(() => {
|
|
8854
|
+
async function getTx() {
|
|
8855
|
+
if (!publicKey || transaction || isLoadingLenderAccounts) {
|
|
8856
|
+
return;
|
|
8857
|
+
}
|
|
8858
|
+
const tx = new web3_js.Transaction();
|
|
8859
|
+
const {
|
|
8860
|
+
underlyingTokenATA,
|
|
8861
|
+
seniorTrancheATA,
|
|
8862
|
+
juniorTrancheATA
|
|
8863
|
+
} = shared.getTokenAccounts(poolInfo, publicKey);
|
|
8864
|
+
if (selectedTranche === 'senior' && !seniorLenderStateAccount || selectedTranche === 'junior' && !juniorLenderStateAccount) {
|
|
8865
|
+
const createLenderAccountsTx = await program.methods.createLenderAccounts().accountsPartial({
|
|
8866
|
+
lender: publicKey,
|
|
8867
|
+
humaConfig: poolInfo.humaConfig,
|
|
8868
|
+
poolConfig: poolInfo.poolConfig,
|
|
8869
|
+
approvedLender: selectedTranche === 'senior' ? seniorLenderApprovedAccountPDA : juniorLenderApprovedAccountPDA,
|
|
8870
|
+
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
8871
|
+
lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
8872
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
8873
|
+
}).transaction();
|
|
8874
|
+
tx.add(createLenderAccountsTx);
|
|
8875
|
+
}
|
|
8876
|
+
const depositTx = await program.methods.deposit(supplyBigNumber).accountsPartial({
|
|
8877
|
+
depositor: publicKey,
|
|
8878
|
+
poolConfig: poolInfo.poolConfig,
|
|
8879
|
+
underlyingMint: poolInfo.underlyingMint.address,
|
|
8880
|
+
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
8881
|
+
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
8882
|
+
depositorUnderlyingToken: underlyingTokenATA,
|
|
8883
|
+
depositorTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
8884
|
+
humaConfig: poolInfo.humaConfig,
|
|
8885
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
8886
|
+
}).transaction();
|
|
8887
|
+
tx.add(depositTx);
|
|
8888
|
+
setTransaction(tx);
|
|
8889
|
+
}
|
|
8890
|
+
getTx();
|
|
8891
|
+
}, [isLoadingLenderAccounts, juniorLenderApprovedAccountPDA, juniorLenderStateAccount, poolInfo, program.methods, publicKey, selectedTranche, seniorLenderApprovedAccountPDA, seniorLenderStateAccount, supplyBigNumber, transaction]);
|
|
8892
|
+
if (isLoadingLenderAccounts) {
|
|
8893
|
+
return jsxRuntime.jsx(LoadingModal, {
|
|
8894
|
+
title: "Supply"
|
|
8895
|
+
});
|
|
8896
|
+
}
|
|
8897
|
+
return jsxRuntime.jsx(SolanaTxSendModal, {
|
|
8898
|
+
tx: transaction,
|
|
8899
|
+
chainId: poolInfo.chainId,
|
|
8900
|
+
handleSuccess: handleSuccess
|
|
8901
|
+
});
|
|
8902
|
+
}
|
|
8903
|
+
|
|
8904
|
+
var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4, _templateObject5, _templateObject6;
|
|
8905
|
+
function SolanaTxDoneModal(_ref) {
|
|
8906
|
+
let {
|
|
8907
|
+
content,
|
|
8908
|
+
subContent,
|
|
8909
|
+
handleAction,
|
|
8910
|
+
solanaSignature,
|
|
8911
|
+
chainId,
|
|
8912
|
+
buttonText
|
|
8913
|
+
} = _ref;
|
|
8914
|
+
const theme = material.useTheme();
|
|
8915
|
+
const dispatch = useAppDispatch();
|
|
8916
|
+
const styles = {
|
|
8917
|
+
wrapper: material.css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
8918
|
+
header: material.css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
|
|
8919
|
+
content: material.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)),
|
|
8920
|
+
subContent: material.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)),
|
|
8921
|
+
check: material.css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
|
|
8922
|
+
bottomButtonGroup: material.css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n row-gap: ", ";\n column-gap: ", ";\n\n button {\n height: 40px;\n margin-top: ", ";\n }\n "])), theme.spacing(1), theme.spacing(1), theme.spacing(1))
|
|
8923
|
+
};
|
|
8924
|
+
const handleCloseModal = React.useCallback(() => {
|
|
8925
|
+
dispatch(resetState());
|
|
8926
|
+
handleAction();
|
|
8927
|
+
}, [dispatch, handleAction]);
|
|
8928
|
+
return jsxRuntime.jsxs(material.Box, {
|
|
8929
|
+
css: styles.wrapper,
|
|
8930
|
+
children: [jsxRuntime.jsx(material.Typography, {
|
|
8931
|
+
variant: "h6",
|
|
8932
|
+
css: styles.header,
|
|
8933
|
+
children: "Transaction Completed"
|
|
8934
|
+
}), jsxRuntime.jsx(material.Box, {
|
|
8935
|
+
css: styles.check,
|
|
8936
|
+
children: jsxRuntime.jsx(CheckIcon, {})
|
|
8937
|
+
}), jsxRuntime.jsx(material.Box, {
|
|
8938
|
+
css: styles.content,
|
|
8939
|
+
children: content.map(item => jsxRuntime.jsx(material.Box, {
|
|
8940
|
+
sx: {
|
|
8941
|
+
marginTop: theme.spacing(1)
|
|
8942
|
+
},
|
|
8943
|
+
children: item
|
|
8944
|
+
}, item))
|
|
8945
|
+
}), subContent && jsxRuntime.jsx(material.Box, {
|
|
8946
|
+
css: styles.subContent,
|
|
8947
|
+
children: subContent.map(item => jsxRuntime.jsx(material.Box, {
|
|
8948
|
+
sx: {
|
|
8949
|
+
marginTop: theme.spacing(1)
|
|
8950
|
+
},
|
|
8951
|
+
children: item
|
|
8952
|
+
}, item))
|
|
8953
|
+
}), jsxRuntime.jsxs(material.Box, {
|
|
8954
|
+
css: styles.bottomButtonGroup,
|
|
8955
|
+
children: [solanaSignature && chainId && jsxRuntime.jsx(SolanaViewOnExplorer, {
|
|
8956
|
+
signature: solanaSignature,
|
|
8957
|
+
chainId: chainId
|
|
8958
|
+
}), jsxRuntime.jsx(material.Button, {
|
|
8959
|
+
className: "transaction-done-modal-close-btn",
|
|
8960
|
+
variant: "contained",
|
|
8961
|
+
fullWidth: true,
|
|
8962
|
+
onClick: handleCloseModal,
|
|
8963
|
+
children: !buttonText ? 'DONE' : buttonText
|
|
8964
|
+
})]
|
|
8965
|
+
})]
|
|
8966
|
+
});
|
|
8967
|
+
}
|
|
8968
|
+
|
|
8969
|
+
function Success(_ref) {
|
|
8970
|
+
let {
|
|
8971
|
+
poolInfo,
|
|
8972
|
+
poolState,
|
|
8973
|
+
handleAction
|
|
8974
|
+
} = _ref;
|
|
8975
|
+
const {
|
|
8976
|
+
supplyAmount,
|
|
8977
|
+
solanaSignature
|
|
8978
|
+
} = useAppSelector(selectWidgetState);
|
|
8979
|
+
const {
|
|
8980
|
+
symbol
|
|
8981
|
+
} = poolInfo.underlyingMint;
|
|
8982
|
+
const content = ["You successfully supplied ".concat(shared.formatMoney(supplyAmount), " ").concat(symbol, ".")];
|
|
8983
|
+
const getSubContent = () => {
|
|
8984
|
+
var _poolState$withdrawal;
|
|
8985
|
+
const lockupEndTime = dayjs__default["default"]().add((_poolState$withdrawal = poolState.withdrawalLockupPeriodDays) !== null && _poolState$withdrawal !== void 0 ? _poolState$withdrawal : 0, 'day').date(1);
|
|
8986
|
+
const withdrawTime = lockupEndTime.add(1, 'month');
|
|
8987
|
+
return ["You can begin submitting redemption requests on ".concat(shared.timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(shared.timeUtil.timestampToLL(withdrawTime.unix()), ".")];
|
|
8988
|
+
};
|
|
8989
|
+
return jsxRuntime.jsx(SolanaTxDoneModal, {
|
|
8990
|
+
handleAction: handleAction,
|
|
8991
|
+
content: content,
|
|
8992
|
+
subContent: getSubContent(),
|
|
8993
|
+
chainId: poolInfo.chainId,
|
|
8994
|
+
solanaSignature: solanaSignature,
|
|
8995
|
+
buttonText: "DONE"
|
|
8996
|
+
});
|
|
8997
|
+
}
|
|
8998
|
+
|
|
8999
|
+
function SolanaLendSupply(_ref) {
|
|
9000
|
+
let {
|
|
9001
|
+
poolInfo,
|
|
9002
|
+
poolState,
|
|
9003
|
+
pointsTestnetExperience,
|
|
9004
|
+
handleClose,
|
|
9005
|
+
handleSuccess
|
|
9006
|
+
} = _ref;
|
|
9007
|
+
const dispatch = reactRedux.useDispatch();
|
|
9008
|
+
const {
|
|
9009
|
+
isUniTranche
|
|
9010
|
+
} = poolState;
|
|
9011
|
+
const {
|
|
9012
|
+
seniorLenderApproved,
|
|
9013
|
+
juniorLenderApproved,
|
|
9014
|
+
loading: isLoadingLenderAccounts
|
|
9015
|
+
} = webShared.useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9016
|
+
const [tokenAccount, isLoadingTokenAccount] = webShared.useTokenAccount(poolInfo);
|
|
9017
|
+
const {
|
|
9018
|
+
step,
|
|
9019
|
+
errorMessage
|
|
9020
|
+
} = useAppSelector(selectWidgetState);
|
|
9021
|
+
const [selectedTranche, setSelectedTranche] = React.useState();
|
|
9022
|
+
React.useEffect(() => {
|
|
9023
|
+
if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {
|
|
9024
|
+
if (!juniorLenderApproved && !seniorLenderApproved) {
|
|
9025
|
+
dispatch(setStep(WIDGET_STEP.Evaluation));
|
|
9026
|
+
return;
|
|
9027
|
+
}
|
|
9028
|
+
if (juniorLenderApproved && !seniorLenderApproved) {
|
|
9029
|
+
setSelectedTranche('junior');
|
|
9030
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9031
|
+
return;
|
|
9032
|
+
}
|
|
9033
|
+
if (seniorLenderApproved && !juniorLenderApproved) {
|
|
9034
|
+
setSelectedTranche('senior');
|
|
9035
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9036
|
+
return;
|
|
9037
|
+
}
|
|
9038
|
+
if (juniorLenderApproved && seniorLenderApproved) {
|
|
9039
|
+
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
9040
|
+
}
|
|
9041
|
+
}
|
|
9042
|
+
}, [dispatch, handleClose, poolInfo, step, isLoadingLenderAccounts, juniorLenderApproved, seniorLenderApproved, isLoadingTokenAccount]);
|
|
9043
|
+
if (isLoadingLenderAccounts || isLoadingTokenAccount) {
|
|
9044
|
+
return jsxRuntime.jsx(WidgetWrapper, {
|
|
9045
|
+
isOpen: true,
|
|
9046
|
+
isLoading: true,
|
|
9047
|
+
loadingTitle: "Supply",
|
|
9048
|
+
handleClose: handleClose,
|
|
9049
|
+
handleSuccess: handleSuccess
|
|
9050
|
+
});
|
|
9051
|
+
}
|
|
9052
|
+
return jsxRuntime.jsxs(WidgetWrapper, {
|
|
9053
|
+
isOpen: true,
|
|
9054
|
+
loadingTitle: "Supply ".concat(poolInfo.underlyingMint.symbol),
|
|
9055
|
+
handleClose: handleClose,
|
|
9056
|
+
handleSuccess: handleSuccess,
|
|
9057
|
+
children: [step === WIDGET_STEP.Evaluation && jsxRuntime.jsx(Evaluation, {
|
|
9058
|
+
poolInfo: poolInfo,
|
|
9059
|
+
isUniTranche: !!isUniTranche,
|
|
9060
|
+
pointsTestnetExperience: pointsTestnetExperience,
|
|
9061
|
+
handleClose: handleClose,
|
|
9062
|
+
changeTranche: setSelectedTranche
|
|
9063
|
+
}), step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche$2, {
|
|
9064
|
+
poolUnderlyingToken: poolInfo.underlyingMint,
|
|
9065
|
+
selectedTranche: selectedTranche,
|
|
9066
|
+
changeTranche: setSelectedTranche
|
|
9067
|
+
}), step === WIDGET_STEP.ChooseAmount && jsxRuntime.jsx(ChooseAmount$3, {
|
|
9068
|
+
poolInfo: poolInfo,
|
|
9069
|
+
poolState: poolState,
|
|
9070
|
+
tokenAccount: tokenAccount,
|
|
9071
|
+
selectedTranche: selectedTranche,
|
|
9072
|
+
isUniTranche: isUniTranche
|
|
9073
|
+
}), step === WIDGET_STEP.Transfer && selectedTranche && jsxRuntime.jsx(Transfer$4, {
|
|
9074
|
+
poolInfo: poolInfo,
|
|
9075
|
+
selectedTranche: selectedTranche
|
|
9076
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Success, {
|
|
9077
|
+
poolInfo: poolInfo,
|
|
9078
|
+
poolState: poolState,
|
|
9079
|
+
handleAction: handleClose
|
|
9080
|
+
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
9081
|
+
title: "Supply",
|
|
9082
|
+
errorReason: "Sorry there was an error",
|
|
9083
|
+
errorMessage: errorMessage,
|
|
9084
|
+
handleOk: handleClose
|
|
9085
|
+
})]
|
|
9086
|
+
});
|
|
9087
|
+
}
|
|
9088
|
+
|
|
9089
|
+
function ChooseAmount$2(_ref) {
|
|
9090
|
+
let {
|
|
9091
|
+
poolInfo,
|
|
9092
|
+
poolState,
|
|
9093
|
+
selectedTranche,
|
|
9094
|
+
lenderState
|
|
9095
|
+
} = _ref;
|
|
9096
|
+
const dispatch = useAppDispatch();
|
|
9097
|
+
const {
|
|
9098
|
+
symbol
|
|
9099
|
+
} = poolInfo.underlyingMint;
|
|
9100
|
+
const [currentAmount, setCurrentAmount] = React.useState(0);
|
|
9101
|
+
const [currentShares, setCurrentShares] = React.useState(0);
|
|
9102
|
+
const {
|
|
9103
|
+
mintAccount,
|
|
9104
|
+
loading: isLoadingTrancheMintAccounts
|
|
9105
|
+
} = webShared.useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
9106
|
+
const {
|
|
9107
|
+
seniorTokenAccount,
|
|
9108
|
+
juniorTokenAccount,
|
|
9109
|
+
loading: isLoadingTokenAccounts
|
|
9110
|
+
} = webShared.useTrancheTokenAccounts(poolInfo);
|
|
9111
|
+
const maxSharesFormatted = React.useMemo(() => {
|
|
9112
|
+
var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
|
|
9113
|
+
if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals)) {
|
|
9114
|
+
return 0;
|
|
9115
|
+
}
|
|
9116
|
+
return shared.SolanaTokenUtils.formatUnits(selectedTranche === 'senior' ? new anchor.BN((_seniorTokenAccount$a = seniorTokenAccount === null || seniorTokenAccount === void 0 || (_seniorTokenAccount$a2 = seniorTokenAccount.amount) === null || _seniorTokenAccount$a2 === void 0 ? void 0 : _seniorTokenAccount$a2.toString()) !== null && _seniorTokenAccount$a !== void 0 ? _seniorTokenAccount$a : 0) : new anchor.BN((_juniorTokenAccount$a = juniorTokenAccount === null || juniorTokenAccount === void 0 || (_juniorTokenAccount$a2 = juniorTokenAccount.amount) === null || _juniorTokenAccount$a2 === void 0 ? void 0 : _juniorTokenAccount$a2.toString()) !== null && _juniorTokenAccount$a !== void 0 ? _juniorTokenAccount$a : 0), mintAccount.decimals);
|
|
9117
|
+
}, [mintAccount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount]);
|
|
9118
|
+
const sharePrice = React.useMemo(() => {
|
|
9119
|
+
var _poolState$seniorTran, _poolState$juniorTran;
|
|
9120
|
+
if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals) || !(mintAccount !== null && mintAccount !== void 0 && mintAccount.supply)) {
|
|
9121
|
+
return 0;
|
|
9122
|
+
}
|
|
9123
|
+
const mintSupplyFormatted = Number(shared.SolanaTokenUtils.formatUnits(new anchor.BN(mintAccount.supply.toString()), mintAccount.decimals));
|
|
9124
|
+
if (mintSupplyFormatted === 0) {
|
|
9125
|
+
return 0;
|
|
9126
|
+
}
|
|
9127
|
+
const seniorTrancheAssetsFormatted = Number(shared.SolanaTokenUtils.formatUnits(new anchor.BN((_poolState$seniorTran = poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets) !== null && _poolState$seniorTran !== void 0 ? _poolState$seniorTran : 0), mintAccount.decimals));
|
|
9128
|
+
if (selectedTranche === 'senior') {
|
|
9129
|
+
return seniorTrancheAssetsFormatted / mintSupplyFormatted;
|
|
9130
|
+
}
|
|
9131
|
+
const juniorTrancheAssetsFormatted = Number(shared.SolanaTokenUtils.formatUnits(new anchor.BN((_poolState$juniorTran = poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets) !== null && _poolState$juniorTran !== void 0 ? _poolState$juniorTran : 0), mintAccount.decimals));
|
|
9132
|
+
return juniorTrancheAssetsFormatted / mintSupplyFormatted;
|
|
9133
|
+
}, [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]);
|
|
9134
|
+
React.useEffect(() => {
|
|
9135
|
+
if (poolState !== null && poolState !== void 0 && poolState.withdrawalLockupPeriodDays && poolState !== null && poolState !== void 0 && poolState.epochEndTime && lenderState) {
|
|
9136
|
+
const SECONDS_IN_A_DAY = 24 * 60 * 60;
|
|
9137
|
+
const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime);
|
|
9138
|
+
const lockupEndTime = lastDepositTime + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY;
|
|
9139
|
+
if (poolState.epochEndTime < lockupEndTime) {
|
|
9140
|
+
const lockupEndTimeDayjs = dayjs__default["default"].unix(lockupEndTime).date(1);
|
|
9141
|
+
dispatch(setStep(WIDGET_STEP.Error));
|
|
9142
|
+
dispatch(setError({
|
|
9143
|
+
errorReason: 'Redemption too soon',
|
|
9144
|
+
errorMessage: "Your last deposit was on ".concat(shared.timestampToLL(lastDepositTime), ". You can redeem on ").concat(shared.timestampToLL(lockupEndTimeDayjs.unix()), ".")
|
|
9145
|
+
}));
|
|
9146
|
+
}
|
|
9147
|
+
}
|
|
9148
|
+
}, [dispatch, lenderState, poolState.epochEndTime, poolState.withdrawalLockupPeriodDays]);
|
|
9149
|
+
const handleChangeShares = newShares => {
|
|
9150
|
+
const amount = Number(newShares) * sharePrice;
|
|
9151
|
+
setCurrentShares(Number(newShares));
|
|
9152
|
+
setCurrentAmount(amount);
|
|
9153
|
+
dispatch(setRedeemShares(Number(newShares)));
|
|
9154
|
+
dispatch(setRedeemAmount(amount));
|
|
9155
|
+
};
|
|
9156
|
+
const handleAction = () => {
|
|
9157
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9158
|
+
};
|
|
9159
|
+
if (isLoadingTokenAccounts || isLoadingTrancheMintAccounts || !lenderState || (poolState === null || poolState === void 0 ? void 0 : poolState.withdrawalLockupPeriodDays) === undefined ||
|
|
9160
|
+
// withdrawalLockupPeriodDays can be 0
|
|
9161
|
+
!(poolState !== null && poolState !== void 0 && poolState.epochEndTime)) {
|
|
9162
|
+
return jsxRuntime.jsx(LoadingModal, {
|
|
9163
|
+
title: "Redemption"
|
|
9164
|
+
});
|
|
9165
|
+
}
|
|
9166
|
+
return jsxRuntime.jsx(InputAmountModal, {
|
|
9167
|
+
title: "Redemption",
|
|
9168
|
+
subTitle: "Enter number of shares to redeem from the ".concat(selectedTranche, " tranche"),
|
|
9169
|
+
tokenSymbol: symbol,
|
|
9170
|
+
currentAmount: currentShares,
|
|
9171
|
+
handleChangeAmount: handleChangeShares,
|
|
9172
|
+
maxAmount: maxSharesFormatted,
|
|
9173
|
+
infos: ["".concat(String(shared.formatNumber(currentAmount)), " ").concat(symbol)],
|
|
9174
|
+
maxAmountTitle: "".concat(shared.formatNumber(maxSharesFormatted), " Shares"),
|
|
9175
|
+
suffix: "Shares",
|
|
9176
|
+
handleAction: handleAction,
|
|
9177
|
+
actionText: "REQUEST"
|
|
9178
|
+
});
|
|
9179
|
+
}
|
|
9180
|
+
|
|
9181
|
+
var _templateObject$1, _templateObject2$1, _templateObject3$1;
|
|
9182
|
+
function ChooseTranche$1(_ref) {
|
|
9183
|
+
let {
|
|
9184
|
+
selectedTranche,
|
|
9185
|
+
changeTranche
|
|
9186
|
+
} = _ref;
|
|
9187
|
+
const theme = material.useTheme();
|
|
9188
|
+
const dispatch = useAppDispatch();
|
|
9189
|
+
const styles = {
|
|
9190
|
+
subTitle: material.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)),
|
|
9191
|
+
radioGroup: material.css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
9192
|
+
formControl: material.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)
|
|
9193
|
+
};
|
|
9194
|
+
const handleNext = () => {
|
|
9195
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9196
|
+
};
|
|
9197
|
+
const items = [{
|
|
9198
|
+
label: 'Senior',
|
|
9199
|
+
value: 'senior'
|
|
9200
|
+
}, {
|
|
9201
|
+
label: 'Junior',
|
|
9202
|
+
value: 'junior'
|
|
9203
|
+
}];
|
|
9204
|
+
return jsxRuntime.jsxs(WrapperModal, {
|
|
9205
|
+
title: "Redemption",
|
|
9206
|
+
children: [jsxRuntime.jsxs(material.FormControl, {
|
|
9207
|
+
children: [jsxRuntime.jsx(material.FormLabel, {
|
|
9208
|
+
css: styles.subTitle,
|
|
9209
|
+
children: "Select Tranche Type"
|
|
9210
|
+
}), jsxRuntime.jsx(material.RadioGroup, {
|
|
9211
|
+
"aria-labelledby": "buttons-group-label",
|
|
9212
|
+
name: "radio-buttons-group",
|
|
9213
|
+
css: styles.radioGroup,
|
|
9214
|
+
onChange: e => changeTranche(e.target.value),
|
|
9215
|
+
children: items.map(item => jsxRuntime.jsx(material.FormControlLabel, {
|
|
9216
|
+
value: item.value,
|
|
9217
|
+
control: jsxRuntime.jsx(material.Radio, {
|
|
9218
|
+
sx: {
|
|
9219
|
+
'& .MuiSvgIcon-root': {
|
|
9220
|
+
fontSize: 24
|
|
9221
|
+
}
|
|
9222
|
+
}
|
|
9223
|
+
}),
|
|
9224
|
+
label: item.label,
|
|
9225
|
+
css: styles.formControl
|
|
9226
|
+
}, item.label))
|
|
9227
|
+
})]
|
|
9228
|
+
}), jsxRuntime.jsx(BottomButton, {
|
|
9229
|
+
variant: "contained",
|
|
9230
|
+
disabled: !selectedTranche,
|
|
9231
|
+
onClick: handleNext,
|
|
9232
|
+
children: "NEXT"
|
|
9233
|
+
})]
|
|
9234
|
+
});
|
|
9235
|
+
}
|
|
9236
|
+
|
|
9237
|
+
function Done$3(_ref) {
|
|
9238
|
+
let {
|
|
9239
|
+
poolInfo,
|
|
9240
|
+
handleAction
|
|
9241
|
+
} = _ref;
|
|
9242
|
+
const {
|
|
9243
|
+
redeemShares,
|
|
9244
|
+
solanaSignature
|
|
9245
|
+
} = useAppSelector(selectWidgetState);
|
|
9246
|
+
const content = ["".concat(shared.formatNumber(redeemShares), " shares requested for redemption")];
|
|
9247
|
+
return jsxRuntime.jsx(SolanaTxDoneModal, {
|
|
9248
|
+
handleAction: handleAction,
|
|
9249
|
+
content: content,
|
|
9250
|
+
chainId: poolInfo.chainId,
|
|
9251
|
+
solanaSignature: solanaSignature,
|
|
9252
|
+
buttonText: "DONE"
|
|
9253
|
+
});
|
|
9254
|
+
}
|
|
9255
|
+
|
|
9256
|
+
function Transfer$3(_ref) {
|
|
9257
|
+
let {
|
|
9258
|
+
poolInfo,
|
|
9259
|
+
selectedTranche
|
|
9260
|
+
} = _ref;
|
|
9261
|
+
const dispatch = useAppDispatch();
|
|
9262
|
+
const {
|
|
9263
|
+
publicKey
|
|
9264
|
+
} = walletAdapterReact.useWallet();
|
|
9265
|
+
const {
|
|
9266
|
+
redeemShares
|
|
9267
|
+
} = useAppSelector(selectWidgetState);
|
|
9268
|
+
const {
|
|
9269
|
+
mintAccount
|
|
9270
|
+
} = webShared.useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
9271
|
+
const [transaction, setTransaction] = React.useState();
|
|
9272
|
+
const program = webShared.useHumaProgram(poolInfo.chainId);
|
|
9273
|
+
const redeemBN = React.useMemo(() => {
|
|
9274
|
+
if (!mintAccount) {
|
|
9275
|
+
return null;
|
|
9276
|
+
}
|
|
9277
|
+
return shared.SolanaTokenUtils.parseUnits(String(redeemShares), mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals);
|
|
9278
|
+
}, [mintAccount, redeemShares]);
|
|
9279
|
+
const handleSuccess = React.useCallback(() => {
|
|
9280
|
+
dispatch(setStep(WIDGET_STEP.Done));
|
|
9281
|
+
}, [dispatch]);
|
|
9282
|
+
React.useEffect(() => {
|
|
9283
|
+
async function getTx() {
|
|
9284
|
+
if (!publicKey || !redeemBN || transaction) {
|
|
9285
|
+
return;
|
|
9286
|
+
}
|
|
9287
|
+
const {
|
|
9288
|
+
seniorTrancheATA,
|
|
9289
|
+
juniorTrancheATA,
|
|
9290
|
+
poolSeniorTrancheATA,
|
|
9291
|
+
poolJuniorTrancheATA
|
|
9292
|
+
} = shared.getTokenAccounts(poolInfo, publicKey);
|
|
9293
|
+
const tx = await program.methods.addRedemptionRequest(redeemBN).accountsPartial({
|
|
9294
|
+
lender: publicKey,
|
|
9295
|
+
humaConfig: poolInfo.humaConfig,
|
|
9296
|
+
poolConfig: poolInfo.poolConfig,
|
|
9297
|
+
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
9298
|
+
poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
|
|
9299
|
+
lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
9300
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
9301
|
+
}).transaction();
|
|
9302
|
+
setTransaction(tx);
|
|
9303
|
+
}
|
|
9304
|
+
getTx();
|
|
9305
|
+
}, [poolInfo, program.methods, publicKey, redeemBN, selectedTranche, transaction]);
|
|
9306
|
+
return jsxRuntime.jsx(SolanaTxSendModal, {
|
|
9307
|
+
tx: transaction,
|
|
9308
|
+
chainId: poolInfo.chainId,
|
|
9309
|
+
handleSuccess: handleSuccess
|
|
9310
|
+
});
|
|
9311
|
+
}
|
|
9312
|
+
|
|
9313
|
+
function SolanaLendAddRedemption(_ref) {
|
|
9314
|
+
let {
|
|
9315
|
+
poolInfo,
|
|
9316
|
+
poolState,
|
|
9317
|
+
tranche,
|
|
9318
|
+
handleClose,
|
|
9319
|
+
handleSuccess
|
|
9320
|
+
} = _ref;
|
|
9321
|
+
const dispatch = reactRedux.useDispatch();
|
|
9322
|
+
const {
|
|
9323
|
+
seniorLenderStateAccount,
|
|
9324
|
+
juniorLenderStateAccount,
|
|
9325
|
+
loading: isLoadingLenderAccounts
|
|
9326
|
+
} = webShared.useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9327
|
+
const {
|
|
9328
|
+
seniorTokenAccount,
|
|
9329
|
+
juniorTokenAccount,
|
|
9330
|
+
loading: isLoadingTokenAccounts
|
|
9331
|
+
} = webShared.useTrancheTokenAccounts(poolInfo);
|
|
9332
|
+
const {
|
|
9333
|
+
step,
|
|
9334
|
+
errorMessage
|
|
9335
|
+
} = useAppSelector(selectWidgetState);
|
|
9336
|
+
const [selectedTranche, setSelectedTranche] = React.useState(tranche);
|
|
9337
|
+
React.useEffect(() => {
|
|
9338
|
+
if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {
|
|
9339
|
+
var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
|
|
9340
|
+
const seniorTrancheShares = new anchor.BN((_seniorTokenAccount$a = seniorTokenAccount === null || seniorTokenAccount === void 0 || (_seniorTokenAccount$a2 = seniorTokenAccount.amount) === null || _seniorTokenAccount$a2 === void 0 ? void 0 : _seniorTokenAccount$a2.toString()) !== null && _seniorTokenAccount$a !== void 0 ? _seniorTokenAccount$a : 0);
|
|
9341
|
+
const juniorTrancheShares = new anchor.BN((_juniorTokenAccount$a = juniorTokenAccount === null || juniorTokenAccount === void 0 || (_juniorTokenAccount$a2 = juniorTokenAccount.amount) === null || _juniorTokenAccount$a2 === void 0 ? void 0 : _juniorTokenAccount$a2.toString()) !== null && _juniorTokenAccount$a !== void 0 ? _juniorTokenAccount$a : 0);
|
|
9342
|
+
if (selectedTranche) {
|
|
9343
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9344
|
+
return;
|
|
9345
|
+
}
|
|
9346
|
+
if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {
|
|
9347
|
+
setSelectedTranche('junior');
|
|
9348
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9349
|
+
return;
|
|
9350
|
+
}
|
|
9351
|
+
if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {
|
|
9352
|
+
setSelectedTranche('senior');
|
|
9353
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9354
|
+
return;
|
|
9355
|
+
}
|
|
9356
|
+
if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {
|
|
9357
|
+
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
9358
|
+
}
|
|
9359
|
+
}
|
|
9360
|
+
}, [dispatch, step, isLoadingLenderAccounts, isLoadingTokenAccounts, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche]);
|
|
9361
|
+
const title = 'Redemption';
|
|
9362
|
+
if (isLoadingLenderAccounts || isLoadingTokenAccounts) {
|
|
9363
|
+
return jsxRuntime.jsx(WidgetWrapper, {
|
|
9364
|
+
isOpen: true,
|
|
9365
|
+
isLoading: true,
|
|
9366
|
+
loadingTitle: title,
|
|
9367
|
+
handleClose: handleClose,
|
|
9368
|
+
handleSuccess: handleSuccess
|
|
9369
|
+
});
|
|
9370
|
+
}
|
|
9371
|
+
return jsxRuntime.jsxs(WidgetWrapper, {
|
|
9372
|
+
isOpen: true,
|
|
9373
|
+
loadingTitle: title,
|
|
9374
|
+
handleClose: handleClose,
|
|
9375
|
+
handleSuccess: handleSuccess,
|
|
9376
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche$1, {
|
|
9377
|
+
selectedTranche: selectedTranche,
|
|
9378
|
+
changeTranche: setSelectedTranche
|
|
9379
|
+
}), step === WIDGET_STEP.ChooseAmount && selectedTranche && jsxRuntime.jsx(ChooseAmount$2, {
|
|
9380
|
+
poolInfo: poolInfo,
|
|
9381
|
+
poolState: poolState,
|
|
9382
|
+
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
9383
|
+
selectedTranche: selectedTranche
|
|
9384
|
+
}), step === WIDGET_STEP.Transfer && selectedTranche && jsxRuntime.jsx(Transfer$3, {
|
|
9385
|
+
poolInfo: poolInfo,
|
|
9386
|
+
selectedTranche: selectedTranche
|
|
9387
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done$3, {
|
|
9388
|
+
poolInfo: poolInfo,
|
|
9389
|
+
handleAction: handleClose
|
|
9390
|
+
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
9391
|
+
title: title,
|
|
9392
|
+
errorReason: "Sorry there was an error",
|
|
9393
|
+
errorMessage: errorMessage,
|
|
9394
|
+
handleOk: handleClose
|
|
9395
|
+
})]
|
|
9396
|
+
});
|
|
9397
|
+
}
|
|
9398
|
+
|
|
9399
|
+
function Transfer$2(_ref) {
|
|
9400
|
+
let {
|
|
9401
|
+
poolInfo,
|
|
9402
|
+
lenderState,
|
|
9403
|
+
lenderStatePDA,
|
|
9404
|
+
selectedTranche
|
|
9405
|
+
} = _ref;
|
|
9406
|
+
const dispatch = useAppDispatch();
|
|
9407
|
+
const {
|
|
9408
|
+
publicKey
|
|
9409
|
+
} = walletAdapterReact.useWallet();
|
|
9410
|
+
const [transaction, setTransaction] = React.useState();
|
|
9411
|
+
const program = webShared.useHumaProgram(poolInfo.chainId);
|
|
9412
|
+
const handleSuccess = React.useCallback(() => {
|
|
9413
|
+
dispatch(setStep(WIDGET_STEP.Done));
|
|
9414
|
+
}, [dispatch]);
|
|
9415
|
+
React.useEffect(() => {
|
|
9416
|
+
async function getTx() {
|
|
9417
|
+
if (!publicKey || !lenderState || !lenderStatePDA || transaction) {
|
|
9418
|
+
return;
|
|
9419
|
+
}
|
|
9420
|
+
const {
|
|
9421
|
+
seniorTrancheATA,
|
|
9422
|
+
juniorTrancheATA,
|
|
9423
|
+
poolSeniorTrancheATA,
|
|
9424
|
+
poolJuniorTrancheATA
|
|
9425
|
+
} = shared.getTokenAccounts(poolInfo, publicKey);
|
|
9426
|
+
const tx = await program.methods.cancelRedemptionRequest(lenderState.redemptionRecord.numSharesRequested).accountsPartial({
|
|
9427
|
+
lender: publicKey,
|
|
9428
|
+
humaConfig: poolInfo.humaConfig,
|
|
9429
|
+
poolConfig: poolInfo.poolConfig,
|
|
9430
|
+
trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
|
|
9431
|
+
trancheState: selectedTranche === 'senior' ? poolInfo.seniorTrancheState : poolInfo.juniorTrancheState,
|
|
9432
|
+
lenderState: lenderStatePDA,
|
|
9433
|
+
poolAuthority: poolInfo.poolAuthority,
|
|
9434
|
+
poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
|
|
9435
|
+
lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
|
|
9436
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
9437
|
+
}).transaction();
|
|
9438
|
+
setTransaction(tx);
|
|
9439
|
+
}
|
|
9440
|
+
getTx();
|
|
9441
|
+
}, [lenderState, lenderStatePDA, poolInfo, program.methods, publicKey, selectedTranche, transaction]);
|
|
9442
|
+
return jsxRuntime.jsx(SolanaTxSendModal, {
|
|
9443
|
+
tx: transaction,
|
|
9444
|
+
chainId: poolInfo.chainId,
|
|
9445
|
+
handleSuccess: handleSuccess
|
|
9446
|
+
});
|
|
9447
|
+
}
|
|
9448
|
+
|
|
9449
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
9450
|
+
function ChooseTranche(_ref) {
|
|
9451
|
+
let {
|
|
9452
|
+
selectedTranche,
|
|
9453
|
+
changeTranche
|
|
9454
|
+
} = _ref;
|
|
9455
|
+
const theme = material.useTheme();
|
|
9456
|
+
const dispatch = useAppDispatch();
|
|
9457
|
+
const styles = {
|
|
9458
|
+
subTitle: material.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)),
|
|
9459
|
+
radioGroup: material.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
|
|
9460
|
+
formControl: material.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)
|
|
9461
|
+
};
|
|
9462
|
+
const handleNext = () => {
|
|
9463
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9464
|
+
};
|
|
9465
|
+
const items = [{
|
|
9466
|
+
label: 'Senior',
|
|
9467
|
+
value: 'senior'
|
|
9468
|
+
}, {
|
|
9469
|
+
label: 'Junior',
|
|
9470
|
+
value: 'junior'
|
|
9471
|
+
}];
|
|
9472
|
+
return jsxRuntime.jsxs(WrapperModal, {
|
|
9473
|
+
title: "Cancel Redemption",
|
|
9474
|
+
children: [jsxRuntime.jsxs(material.FormControl, {
|
|
9475
|
+
children: [jsxRuntime.jsx(material.FormLabel, {
|
|
9476
|
+
css: styles.subTitle,
|
|
9477
|
+
children: "Select Tranche Type"
|
|
9478
|
+
}), jsxRuntime.jsx(material.RadioGroup, {
|
|
9479
|
+
"aria-labelledby": "buttons-group-label",
|
|
9480
|
+
name: "radio-buttons-group",
|
|
9481
|
+
css: styles.radioGroup,
|
|
9482
|
+
onChange: e => changeTranche(e.target.value),
|
|
9483
|
+
children: items.map(item => jsxRuntime.jsx(material.FormControlLabel, {
|
|
9484
|
+
value: item.value,
|
|
9485
|
+
control: jsxRuntime.jsx(material.Radio, {
|
|
9486
|
+
sx: {
|
|
9487
|
+
'& .MuiSvgIcon-root': {
|
|
9488
|
+
fontSize: 24
|
|
9489
|
+
}
|
|
9490
|
+
}
|
|
9491
|
+
}),
|
|
9492
|
+
label: item.label,
|
|
9493
|
+
css: styles.formControl
|
|
9494
|
+
}, item.label))
|
|
9495
|
+
})]
|
|
9496
|
+
}), jsxRuntime.jsx(BottomButton, {
|
|
9497
|
+
variant: "contained",
|
|
9498
|
+
disabled: !selectedTranche,
|
|
9499
|
+
onClick: handleNext,
|
|
9500
|
+
children: "NEXT"
|
|
9501
|
+
})]
|
|
9502
|
+
});
|
|
9503
|
+
}
|
|
9504
|
+
|
|
9505
|
+
function Done$2(_ref) {
|
|
9506
|
+
let {
|
|
9507
|
+
poolInfo,
|
|
9508
|
+
lenderState,
|
|
9509
|
+
selectedTranche,
|
|
9510
|
+
handleAction
|
|
9511
|
+
} = _ref;
|
|
9512
|
+
const {
|
|
9513
|
+
mintAccount,
|
|
9514
|
+
loading: isLoadingTrancheMintAccounts
|
|
9515
|
+
} = webShared.useTrancheMintAccounts(poolInfo, selectedTranche);
|
|
9516
|
+
const {
|
|
9517
|
+
solanaSignature
|
|
9518
|
+
} = useAppSelector(selectWidgetState);
|
|
9519
|
+
const content = !lenderState || isLoadingTrancheMintAccounts || !mintAccount ? [''] : ["Your request to cancel the redemption of ".concat(shared.formatNumber(shared.SolanaTokenUtils.formatUnits(lenderState.redemptionRecord.numSharesRequested, mintAccount.decimals)), " shares has been successfully processed.")];
|
|
9520
|
+
return jsxRuntime.jsx(SolanaTxDoneModal, {
|
|
9521
|
+
handleAction: handleAction,
|
|
9522
|
+
content: content,
|
|
9523
|
+
chainId: poolInfo.chainId,
|
|
9524
|
+
solanaSignature: solanaSignature,
|
|
9525
|
+
buttonText: "DONE"
|
|
9526
|
+
});
|
|
9527
|
+
}
|
|
9528
|
+
|
|
9529
|
+
function SolanaLendCancelRedemption(_ref) {
|
|
9530
|
+
let {
|
|
9531
|
+
poolInfo,
|
|
9532
|
+
tranche,
|
|
9533
|
+
handleClose,
|
|
9534
|
+
handleSuccess
|
|
9535
|
+
} = _ref;
|
|
9536
|
+
const dispatch = reactRedux.useDispatch();
|
|
9537
|
+
const {
|
|
9538
|
+
seniorLenderStateAccount,
|
|
9539
|
+
juniorLenderStateAccount,
|
|
9540
|
+
juniorLenderStateAccountPDA,
|
|
9541
|
+
seniorLenderStateAccountPDA,
|
|
9542
|
+
loading: isLoadingLenderAccounts
|
|
9543
|
+
} = webShared.useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9544
|
+
const {
|
|
9545
|
+
step,
|
|
9546
|
+
errorMessage
|
|
9547
|
+
} = useAppSelector(selectWidgetState);
|
|
9548
|
+
const [selectedTranche, setSelectedTranche] = React.useState(tranche);
|
|
9549
|
+
React.useEffect(() => {
|
|
9550
|
+
if (!step && !isLoadingLenderAccounts) {
|
|
9551
|
+
var _seniorLenderStateAcc, _juniorLenderStateAcc;
|
|
9552
|
+
const seniorTrancheSharesRequested = new anchor.BN((_seniorLenderStateAcc = seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _seniorLenderStateAcc !== void 0 ? _seniorLenderStateAcc : 0);
|
|
9553
|
+
const juniorTrancheSharesRequested = new anchor.BN((_juniorLenderStateAcc = juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _juniorLenderStateAcc !== void 0 ? _juniorLenderStateAcc : 0);
|
|
9554
|
+
if (selectedTranche) {
|
|
9555
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9556
|
+
return;
|
|
9557
|
+
}
|
|
9558
|
+
if (juniorTrancheSharesRequested.gtn(0) && seniorTrancheSharesRequested.lten(0)) {
|
|
9559
|
+
setSelectedTranche('junior');
|
|
9560
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9561
|
+
return;
|
|
9562
|
+
}
|
|
9563
|
+
if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.lten(0)) {
|
|
9564
|
+
setSelectedTranche('senior');
|
|
9565
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9566
|
+
return;
|
|
9567
|
+
}
|
|
9568
|
+
if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.gtn(0)) {
|
|
9569
|
+
dispatch(setStep(WIDGET_STEP.ChooseTranche));
|
|
9570
|
+
}
|
|
9571
|
+
}
|
|
9572
|
+
}, [dispatch, step, isLoadingLenderAccounts, seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested, juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested, selectedTranche]);
|
|
9573
|
+
const title = 'Cancel Redemption';
|
|
9574
|
+
if (isLoadingLenderAccounts) {
|
|
9575
|
+
return jsxRuntime.jsx(WidgetWrapper, {
|
|
9576
|
+
isOpen: true,
|
|
9577
|
+
isLoading: true,
|
|
9578
|
+
loadingTitle: title,
|
|
9579
|
+
handleClose: handleClose,
|
|
9580
|
+
handleSuccess: handleSuccess
|
|
9581
|
+
});
|
|
9582
|
+
}
|
|
9583
|
+
return jsxRuntime.jsxs(WidgetWrapper, {
|
|
9584
|
+
isOpen: true,
|
|
9585
|
+
loadingTitle: title,
|
|
9586
|
+
handleClose: handleClose,
|
|
9587
|
+
handleSuccess: handleSuccess,
|
|
9588
|
+
children: [step === WIDGET_STEP.ChooseTranche && jsxRuntime.jsx(ChooseTranche, {
|
|
9589
|
+
selectedTranche: selectedTranche,
|
|
9590
|
+
changeTranche: setSelectedTranche
|
|
9591
|
+
}), step === WIDGET_STEP.Transfer && selectedTranche && jsxRuntime.jsx(Transfer$2, {
|
|
9592
|
+
poolInfo: poolInfo,
|
|
9593
|
+
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
9594
|
+
lenderStatePDA: selectedTranche === 'senior' ? seniorLenderStateAccountPDA : juniorLenderStateAccountPDA,
|
|
9595
|
+
selectedTranche: selectedTranche
|
|
9596
|
+
}), step === WIDGET_STEP.Done && selectedTranche && jsxRuntime.jsx(Done$2, {
|
|
9597
|
+
poolInfo: poolInfo,
|
|
9598
|
+
lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
|
|
9599
|
+
selectedTranche: selectedTranche,
|
|
9600
|
+
handleAction: handleClose
|
|
9601
|
+
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
9602
|
+
title: title,
|
|
9603
|
+
errorReason: "Sorry there was an error",
|
|
9604
|
+
errorMessage: errorMessage,
|
|
9605
|
+
handleOk: handleClose
|
|
9606
|
+
})]
|
|
9607
|
+
});
|
|
9608
|
+
}
|
|
9609
|
+
|
|
9610
|
+
function ChooseAmount$1(_ref) {
|
|
9611
|
+
let {
|
|
9612
|
+
poolInfo,
|
|
9613
|
+
creditConfigAccount
|
|
9614
|
+
} = _ref;
|
|
9615
|
+
const dispatch = useAppDispatch();
|
|
9616
|
+
const {
|
|
9617
|
+
symbol,
|
|
9618
|
+
decimals
|
|
9619
|
+
} = poolInfo.underlyingMint;
|
|
9620
|
+
const [currentAmount, setCurrentAmount] = React.useState(0);
|
|
9621
|
+
const creditAvailable = React.useMemo(() => shared.SolanaTokenUtils.formatUnits(creditConfigAccount.creditAvailable, decimals), [creditConfigAccount.creditAvailable, decimals]);
|
|
9622
|
+
const handleChangeAmount = newAmount => {
|
|
9623
|
+
setCurrentAmount(newAmount);
|
|
9624
|
+
};
|
|
9625
|
+
const handleAction = React.useCallback(() => {
|
|
9626
|
+
const borrowAmountBN = shared.SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
|
|
9627
|
+
dispatch(setBorrowInfo({
|
|
9628
|
+
borrowAmount: currentAmount,
|
|
9629
|
+
borrowAmountBN: JSON.parse(borrowAmountBN.toString()),
|
|
9630
|
+
chargedFees: 0,
|
|
9631
|
+
nextStep: WIDGET_STEP.Transfer
|
|
9632
|
+
}));
|
|
9633
|
+
}, [currentAmount, decimals, dispatch]);
|
|
9634
|
+
return jsxRuntime.jsx(InputAmountModal, {
|
|
9635
|
+
title: "Borrow",
|
|
9636
|
+
subTitle: "Choose Amount",
|
|
9637
|
+
tokenSymbol: symbol,
|
|
9638
|
+
currentAmount: currentAmount,
|
|
9639
|
+
handleChangeAmount: handleChangeAmount,
|
|
9640
|
+
maxAmount: creditAvailable,
|
|
9641
|
+
infos: ["".concat(String(shared.formatNumber(creditAvailable)), " ").concat(symbol, " Available")],
|
|
9642
|
+
handleAction: handleAction,
|
|
9643
|
+
actionText: "BORROW"
|
|
9644
|
+
});
|
|
9645
|
+
}
|
|
9646
|
+
|
|
9647
|
+
function Transfer$1(_ref) {
|
|
9648
|
+
let {
|
|
9649
|
+
poolInfo
|
|
9650
|
+
} = _ref;
|
|
9651
|
+
const dispatch = useAppDispatch();
|
|
9652
|
+
const {
|
|
9653
|
+
wallet,
|
|
9654
|
+
publicKey
|
|
9655
|
+
} = walletAdapterReact.useWallet();
|
|
9656
|
+
const sentinel = shared.getSentinelAddress(poolInfo.chainId);
|
|
9657
|
+
const {
|
|
9658
|
+
connection
|
|
9659
|
+
} = walletAdapterReact.useConnection();
|
|
9660
|
+
const [transaction, setTransaction] = React.useState();
|
|
9661
|
+
const program = webShared.useHumaProgram(poolInfo.chainId);
|
|
9662
|
+
const {
|
|
9663
|
+
borrowAmountBN: borrowAmountBNJson
|
|
9664
|
+
} = useAppSelector(selectWidgetState);
|
|
9665
|
+
const handleSuccess = React.useCallback(() => {
|
|
9666
|
+
dispatch(setStep(WIDGET_STEP.Done));
|
|
9667
|
+
}, [dispatch]);
|
|
9668
|
+
React.useEffect(() => {
|
|
9669
|
+
async function getTx() {
|
|
9670
|
+
var _borrowAmountBNJson$t, _tokenAccount$delegat;
|
|
9671
|
+
if (!wallet || !publicKey || !connection) {
|
|
9672
|
+
return;
|
|
9673
|
+
}
|
|
9674
|
+
const {
|
|
9675
|
+
underlyingTokenATA
|
|
9676
|
+
} = shared.getTokenAccounts(poolInfo, publicKey);
|
|
9677
|
+
const tx = new web3_js.Transaction();
|
|
9678
|
+
|
|
9679
|
+
// Create user token account if it doesn't exist
|
|
9680
|
+
let tokenAccount;
|
|
9681
|
+
try {
|
|
9682
|
+
tokenAccount = await splToken.getAccount(connection, underlyingTokenATA, undefined, splToken.TOKEN_2022_PROGRAM_ID);
|
|
9683
|
+
} catch (error) {
|
|
9684
|
+
// TokenAccountNotFoundError can be possible if the associated address has already received some lamports,
|
|
9685
|
+
// becoming a system account. Assuming program derived addressing is safe, this is the only case for the
|
|
9686
|
+
// TokenInvalidAccountOwnerError in this code path.
|
|
9687
|
+
if (error instanceof splToken.TokenAccountNotFoundError || error instanceof splToken.TokenInvalidAccountOwnerError) {
|
|
9688
|
+
// As this isn't atomic, it's possible others can create associated accounts meanwhile.
|
|
9689
|
+
tx.add(splToken.createAssociatedTokenAccountInstruction(publicKey, underlyingTokenATA, publicKey, new web3_js.PublicKey(poolInfo.underlyingMint.address), splToken.TOKEN_2022_PROGRAM_ID, splToken.ASSOCIATED_TOKEN_PROGRAM_ID));
|
|
9690
|
+
}
|
|
9691
|
+
}
|
|
9692
|
+
|
|
9693
|
+
// Approve allowance to the sentinel if the account is new or delegated amount is not enough
|
|
9694
|
+
const borrowAmountBN = new anchor.BN((_borrowAmountBNJson$t = borrowAmountBNJson === null || borrowAmountBNJson === void 0 ? void 0 : borrowAmountBNJson.toString()) !== null && _borrowAmountBNJson$t !== void 0 ? _borrowAmountBNJson$t : '0');
|
|
9695
|
+
if (!tokenAccount || borrowAmountBN.gt(new anchor.BN(tokenAccount.delegatedAmount.toString())) || ((_tokenAccount$delegat = tokenAccount.delegate) === null || _tokenAccount$delegat === void 0 ? void 0 : _tokenAccount$delegat.toString()) !== sentinel) {
|
|
9696
|
+
tx.add(splToken.createApproveCheckedInstruction(underlyingTokenATA, new web3_js.PublicKey(poolInfo.underlyingMint.address), new web3_js.PublicKey(sentinel),
|
|
9697
|
+
// delegate
|
|
9698
|
+
publicKey,
|
|
9699
|
+
// owner of the wallet
|
|
9700
|
+
BigInt(shared.SolanaTokenUtils.parseUnits('100000000000',
|
|
9701
|
+
// 100 billion
|
|
9702
|
+
poolInfo.underlyingMint.decimals).toString()),
|
|
9703
|
+
// amount
|
|
9704
|
+
poolInfo.underlyingMint.decimals, undefined,
|
|
9705
|
+
// multiSigners
|
|
9706
|
+
splToken.TOKEN_2022_PROGRAM_ID));
|
|
9707
|
+
}
|
|
9708
|
+
const {
|
|
9709
|
+
creditConfigAccount,
|
|
9710
|
+
creditStateAccount
|
|
9711
|
+
} = shared.getCreditAccounts(poolInfo, publicKey);
|
|
9712
|
+
// borrowAmountBNJson is stored as a raw number string in this flow
|
|
9713
|
+
const programTx = await program.methods.drawdown(borrowAmountBN).accountsPartial({
|
|
9714
|
+
borrower: publicKey,
|
|
9715
|
+
humaConfig: poolInfo.humaConfig,
|
|
9716
|
+
poolConfig: poolInfo.poolConfig,
|
|
9717
|
+
poolState: poolInfo.poolState,
|
|
9718
|
+
creditConfig: creditConfigAccount,
|
|
9719
|
+
creditState: creditStateAccount,
|
|
9720
|
+
poolAuthority: poolInfo.poolAuthority,
|
|
9721
|
+
underlyingMint: poolInfo.underlyingMint.address,
|
|
9722
|
+
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
9723
|
+
borrowerUnderlyingToken: underlyingTokenATA,
|
|
9724
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
9725
|
+
}).transaction();
|
|
9726
|
+
tx.add(programTx);
|
|
9727
|
+
setTransaction(tx);
|
|
9728
|
+
}
|
|
9729
|
+
getTx();
|
|
9730
|
+
}, [borrowAmountBNJson, connection, dispatch, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, sentinel, wallet]);
|
|
9731
|
+
return jsxRuntime.jsx(SolanaTxSendModal, {
|
|
9732
|
+
tx: transaction,
|
|
9733
|
+
chainId: poolInfo.chainId,
|
|
9734
|
+
handleSuccess: handleSuccess
|
|
9735
|
+
});
|
|
9736
|
+
}
|
|
9737
|
+
|
|
9738
|
+
function Done$1(_ref) {
|
|
9739
|
+
let {
|
|
9740
|
+
poolInfo,
|
|
9741
|
+
poolState,
|
|
9742
|
+
handleAction
|
|
9743
|
+
} = _ref;
|
|
9744
|
+
const {
|
|
9745
|
+
borrowAmount,
|
|
9746
|
+
solanaSignature
|
|
9747
|
+
} = useAppSelector(selectWidgetState);
|
|
9748
|
+
const {
|
|
9749
|
+
symbol
|
|
9750
|
+
} = poolInfo.underlyingMint;
|
|
9751
|
+
const dueDate = shared.timeUtil.timestampToLL(poolState.epochEndTime);
|
|
9752
|
+
const content = ["".concat(shared.formatNumber(borrowAmount), " ").concat(symbol, " is now in your wallet."), "Note: your first automatic payment will occur after ".concat(dueDate, ".")];
|
|
9753
|
+
return jsxRuntime.jsx(SolanaTxDoneModal, {
|
|
9754
|
+
handleAction: handleAction,
|
|
9755
|
+
content: content,
|
|
9756
|
+
chainId: poolInfo.chainId,
|
|
9757
|
+
solanaSignature: solanaSignature,
|
|
9758
|
+
buttonText: "DONE"
|
|
9759
|
+
});
|
|
9760
|
+
}
|
|
9761
|
+
|
|
9762
|
+
function SolanaBorrow(_ref) {
|
|
9763
|
+
let {
|
|
9764
|
+
poolInfo,
|
|
9765
|
+
poolState,
|
|
9766
|
+
handleClose,
|
|
9767
|
+
handleSuccess
|
|
9768
|
+
} = _ref;
|
|
9769
|
+
const title = 'Borrow';
|
|
9770
|
+
const dispatch = reactRedux.useDispatch();
|
|
9771
|
+
const {
|
|
9772
|
+
step,
|
|
9773
|
+
errorMessage
|
|
9774
|
+
} = useAppSelector(selectWidgetState);
|
|
9775
|
+
const {
|
|
9776
|
+
creditConfigAccount
|
|
9777
|
+
} = webShared.useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9778
|
+
React.useEffect(() => {
|
|
9779
|
+
if (!step && creditConfigAccount) {
|
|
9780
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9781
|
+
}
|
|
9782
|
+
}, [creditConfigAccount, dispatch, step]);
|
|
9783
|
+
if (!creditConfigAccount) {
|
|
9784
|
+
return jsxRuntime.jsx(WidgetWrapper, {
|
|
9785
|
+
isOpen: true,
|
|
9786
|
+
isLoading: true,
|
|
9787
|
+
loadingTitle: title,
|
|
9788
|
+
handleClose: handleClose,
|
|
9789
|
+
handleSuccess: handleSuccess
|
|
9790
|
+
});
|
|
9791
|
+
}
|
|
9792
|
+
return jsxRuntime.jsxs(WidgetWrapper, {
|
|
9793
|
+
isOpen: true,
|
|
9794
|
+
loadingTitle: title,
|
|
9795
|
+
handleClose: handleClose,
|
|
9796
|
+
handleSuccess: handleSuccess,
|
|
9797
|
+
children: [step === WIDGET_STEP.ChooseAmount && creditConfigAccount && jsxRuntime.jsx(ChooseAmount$1, {
|
|
9798
|
+
poolInfo: poolInfo,
|
|
9799
|
+
creditConfigAccount: creditConfigAccount
|
|
9800
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer$1, {
|
|
9801
|
+
poolInfo: poolInfo
|
|
9802
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done$1, {
|
|
9803
|
+
poolInfo: poolInfo,
|
|
9804
|
+
poolState: poolState,
|
|
9805
|
+
handleAction: handleClose
|
|
9806
|
+
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
9807
|
+
title: title,
|
|
9808
|
+
errorReason: "Sorry there was an error",
|
|
9809
|
+
errorMessage: errorMessage,
|
|
9810
|
+
handleOk: handleClose
|
|
9811
|
+
})]
|
|
9812
|
+
});
|
|
9813
|
+
}
|
|
9814
|
+
|
|
9815
|
+
function ChooseAmount(_ref) {
|
|
9816
|
+
let {
|
|
9817
|
+
poolInfo,
|
|
9818
|
+
creditStateAccount
|
|
9819
|
+
} = _ref;
|
|
9820
|
+
const dispatch = useAppDispatch();
|
|
9821
|
+
const {
|
|
9822
|
+
symbol,
|
|
9823
|
+
decimals
|
|
9824
|
+
} = poolInfo.underlyingMint;
|
|
9825
|
+
const [currentAmount, setCurrentAmount] = React.useState(0);
|
|
9826
|
+
const totalDueAmount = React.useMemo(() => Number(shared.SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.totalDueAmount, decimals)), [creditStateAccount.creditRecord.totalDueAmount, decimals]);
|
|
9827
|
+
const payoffAmount = React.useMemo(() => Number(shared.SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.payoffAmount, decimals)), [creditStateAccount.creditRecord.payoffAmount, decimals]);
|
|
9828
|
+
React.useEffect(() => {
|
|
9829
|
+
setCurrentAmount(totalDueAmount);
|
|
9830
|
+
dispatch(setPaymentAmount({
|
|
9831
|
+
paymentAmount: totalDueAmount
|
|
9832
|
+
}));
|
|
9833
|
+
}, [dispatch, totalDueAmount]);
|
|
9834
|
+
const handleChangeAmount = newAmount => {
|
|
9835
|
+
setCurrentAmount(newAmount);
|
|
9836
|
+
dispatch(setPaymentAmount({
|
|
9837
|
+
paymentAmount: newAmount
|
|
9838
|
+
}));
|
|
9839
|
+
};
|
|
9840
|
+
const handleAction = React.useCallback(() => {
|
|
9841
|
+
dispatch(setStep(WIDGET_STEP.Transfer));
|
|
9842
|
+
}, [dispatch]);
|
|
9843
|
+
return jsxRuntime.jsx(InputAmountModal, {
|
|
9844
|
+
title: "Make Payment",
|
|
9845
|
+
subTitle: "Choose Amount",
|
|
9846
|
+
tokenSymbol: symbol,
|
|
9847
|
+
currentAmount: currentAmount,
|
|
9848
|
+
handleChangeAmount: handleChangeAmount,
|
|
9849
|
+
maxAmount: payoffAmount,
|
|
9850
|
+
maxAmountText: "Pay Off",
|
|
9851
|
+
infos: ["".concat(shared.formatNumber(totalDueAmount.toFixed(0)), " Due")],
|
|
9852
|
+
handleAction: handleAction,
|
|
9853
|
+
actionText: "PAY"
|
|
9854
|
+
});
|
|
9855
|
+
}
|
|
9856
|
+
|
|
9857
|
+
function Transfer(_ref) {
|
|
9858
|
+
let {
|
|
9859
|
+
poolInfo
|
|
9860
|
+
} = _ref;
|
|
9861
|
+
const dispatch = useAppDispatch();
|
|
9862
|
+
const {
|
|
9863
|
+
wallet,
|
|
9864
|
+
publicKey
|
|
9865
|
+
} = walletAdapterReact.useWallet();
|
|
9866
|
+
const {
|
|
9867
|
+
connection
|
|
9868
|
+
} = walletAdapterReact.useConnection();
|
|
9869
|
+
const [transaction, setTransaction] = React.useState();
|
|
9870
|
+
const program = webShared.useHumaProgram(poolInfo.chainId);
|
|
9871
|
+
const {
|
|
9872
|
+
paymentAmount
|
|
9873
|
+
} = useAppSelector(selectWidgetState);
|
|
9874
|
+
const {
|
|
9875
|
+
decimals
|
|
9876
|
+
} = poolInfo.underlyingMint;
|
|
9877
|
+
const handleSuccess = React.useCallback(() => {
|
|
9878
|
+
dispatch(setStep(WIDGET_STEP.Done));
|
|
9879
|
+
}, [dispatch]);
|
|
9880
|
+
React.useEffect(() => {
|
|
9881
|
+
async function getTx() {
|
|
9882
|
+
if (!wallet || !publicKey || !connection || !paymentAmount) {
|
|
9883
|
+
return;
|
|
9884
|
+
}
|
|
9885
|
+
const {
|
|
9886
|
+
underlyingTokenATA
|
|
9887
|
+
} = shared.getTokenAccounts(poolInfo, publicKey);
|
|
9888
|
+
const {
|
|
9889
|
+
creditConfigAccount,
|
|
9890
|
+
creditStateAccount
|
|
9891
|
+
} = shared.getCreditAccounts(poolInfo, publicKey);
|
|
9892
|
+
const paymentAmountBN = shared.SolanaTokenUtils.parseUnits(paymentAmount.toString(), decimals);
|
|
9893
|
+
const tx = await program.methods.makePayment(paymentAmountBN).accountsPartial({
|
|
9894
|
+
signer: publicKey,
|
|
9895
|
+
humaConfig: poolInfo.humaConfig,
|
|
9896
|
+
poolConfig: poolInfo.poolConfig,
|
|
9897
|
+
poolState: poolInfo.poolState,
|
|
9898
|
+
creditConfig: creditConfigAccount,
|
|
9899
|
+
creditState: creditStateAccount,
|
|
9900
|
+
poolAuthority: poolInfo.poolAuthority,
|
|
9901
|
+
underlyingMint: poolInfo.underlyingMint.address,
|
|
9902
|
+
poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
|
|
9903
|
+
borrowerUnderlyingToken: underlyingTokenATA,
|
|
9904
|
+
tokenProgram: splToken.TOKEN_2022_PROGRAM_ID
|
|
9905
|
+
}).transaction();
|
|
9906
|
+
setTransaction(tx);
|
|
9907
|
+
}
|
|
9908
|
+
getTx();
|
|
9909
|
+
}, [connection, decimals, dispatch, paymentAmount, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, wallet]);
|
|
9910
|
+
return jsxRuntime.jsx(SolanaTxSendModal, {
|
|
9911
|
+
tx: transaction,
|
|
9912
|
+
chainId: poolInfo.chainId,
|
|
9913
|
+
handleSuccess: handleSuccess
|
|
9914
|
+
});
|
|
9915
|
+
}
|
|
9916
|
+
|
|
9917
|
+
function Done(_ref) {
|
|
9918
|
+
let {
|
|
9919
|
+
poolInfo,
|
|
9920
|
+
handleAction
|
|
9921
|
+
} = _ref;
|
|
9922
|
+
const {
|
|
9923
|
+
solanaSignature
|
|
9924
|
+
} = useAppSelector(selectWidgetState);
|
|
9925
|
+
const {
|
|
9926
|
+
symbol
|
|
9927
|
+
} = poolInfo.underlyingMint;
|
|
9928
|
+
const {
|
|
9929
|
+
connection
|
|
9930
|
+
} = walletAdapterReact.useConnection();
|
|
9931
|
+
const [tokensPaid, setTokensPaid] = React.useState(null);
|
|
9932
|
+
React.useEffect(() => {
|
|
9933
|
+
const fetchTokensPaid = async () => {
|
|
9934
|
+
var _txData$meta, _txData$meta2;
|
|
9935
|
+
if (!solanaSignature) {
|
|
9936
|
+
return;
|
|
9937
|
+
}
|
|
9938
|
+
const txData = await connection.getTransaction(solanaSignature, {
|
|
9939
|
+
maxSupportedTransactionVersion: 2
|
|
9940
|
+
});
|
|
9941
|
+
const preTokenBalance = txData === null || txData === void 0 || (_txData$meta = txData.meta) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta.preTokenBalances) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta[0]) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta.uiTokenAmount) === null || _txData$meta === void 0 ? void 0 : _txData$meta.uiAmount;
|
|
9942
|
+
const postTokenBalance = txData === null || txData === void 0 || (_txData$meta2 = txData.meta) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2.postTokenBalances) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2[0]) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2.uiTokenAmount) === null || _txData$meta2 === void 0 ? void 0 : _txData$meta2.uiAmount;
|
|
9943
|
+
if (preTokenBalance && postTokenBalance) {
|
|
9944
|
+
setTokensPaid(preTokenBalance - postTokenBalance);
|
|
9945
|
+
}
|
|
9946
|
+
};
|
|
9947
|
+
fetchTokensPaid();
|
|
9948
|
+
}, [connection, solanaSignature]);
|
|
9949
|
+
const content = React.useMemo(() => {
|
|
9950
|
+
if (tokensPaid !== null) {
|
|
9951
|
+
return ["You successfully paid ".concat(shared.formatNumber(tokensPaid), " ").concat(symbol, ".")];
|
|
9952
|
+
}
|
|
9953
|
+
return ['Your payment to the pool was successful'];
|
|
9954
|
+
}, [tokensPaid, symbol]);
|
|
9955
|
+
return jsxRuntime.jsx(SolanaTxDoneModal, {
|
|
9956
|
+
handleAction: handleAction,
|
|
9957
|
+
content: content,
|
|
9958
|
+
chainId: poolInfo.chainId,
|
|
9959
|
+
solanaSignature: solanaSignature,
|
|
9960
|
+
buttonText: "DONE"
|
|
9961
|
+
});
|
|
9962
|
+
}
|
|
9963
|
+
|
|
9964
|
+
function SolanaPayment(_ref) {
|
|
9965
|
+
let {
|
|
9966
|
+
poolInfo,
|
|
9967
|
+
handleClose,
|
|
9968
|
+
handleSuccess
|
|
9969
|
+
} = _ref;
|
|
9970
|
+
const title = 'Make Payment';
|
|
9971
|
+
const dispatch = reactRedux.useDispatch();
|
|
9972
|
+
const {
|
|
9973
|
+
step,
|
|
9974
|
+
errorMessage
|
|
9975
|
+
} = useAppSelector(selectWidgetState);
|
|
9976
|
+
const {
|
|
9977
|
+
creditStateAccount
|
|
9978
|
+
} = webShared.useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
|
|
9979
|
+
React.useEffect(() => {
|
|
9980
|
+
if (!step && creditStateAccount) {
|
|
9981
|
+
dispatch(setStep(WIDGET_STEP.ChooseAmount));
|
|
9982
|
+
}
|
|
9983
|
+
}, [creditStateAccount, dispatch, step]);
|
|
9984
|
+
if (!creditStateAccount) {
|
|
9985
|
+
return jsxRuntime.jsx(WidgetWrapper, {
|
|
9986
|
+
isOpen: true,
|
|
9987
|
+
isLoading: true,
|
|
9988
|
+
loadingTitle: title,
|
|
9989
|
+
handleClose: handleClose,
|
|
9990
|
+
handleSuccess: handleSuccess
|
|
9991
|
+
});
|
|
9992
|
+
}
|
|
9993
|
+
return jsxRuntime.jsxs(WidgetWrapper, {
|
|
9994
|
+
isOpen: true,
|
|
9995
|
+
loadingTitle: title,
|
|
9996
|
+
handleClose: handleClose,
|
|
9997
|
+
handleSuccess: handleSuccess,
|
|
9998
|
+
children: [step === WIDGET_STEP.ChooseAmount && creditStateAccount && jsxRuntime.jsx(ChooseAmount, {
|
|
9999
|
+
poolInfo: poolInfo,
|
|
10000
|
+
creditStateAccount: creditStateAccount
|
|
10001
|
+
}), step === WIDGET_STEP.Transfer && jsxRuntime.jsx(Transfer, {
|
|
10002
|
+
poolInfo: poolInfo
|
|
10003
|
+
}), step === WIDGET_STEP.Done && jsxRuntime.jsx(Done, {
|
|
10004
|
+
poolInfo: poolInfo,
|
|
10005
|
+
handleAction: handleClose
|
|
10006
|
+
}), step === WIDGET_STEP.Error && jsxRuntime.jsx(ErrorModal, {
|
|
10007
|
+
title: title,
|
|
10008
|
+
errorReason: "Sorry there was an error",
|
|
10009
|
+
errorMessage: errorMessage,
|
|
10010
|
+
handleOk: handleClose
|
|
10011
|
+
})]
|
|
10012
|
+
});
|
|
10013
|
+
}
|
|
10014
|
+
|
|
10015
|
+
function NotifiContextWrapper(_ref) {
|
|
10016
|
+
let {
|
|
10017
|
+
chainId,
|
|
10018
|
+
children
|
|
10019
|
+
} = _ref;
|
|
10020
|
+
const {
|
|
10021
|
+
account,
|
|
10022
|
+
provider
|
|
10023
|
+
} = core.useWeb3React();
|
|
10024
|
+
const signer = React.useMemo(() => {
|
|
10025
|
+
if (provider instanceof ethers.providers.JsonRpcProvider) {
|
|
10026
|
+
return provider.getSigner();
|
|
10027
|
+
}
|
|
10028
|
+
return undefined;
|
|
10029
|
+
}, [provider]);
|
|
10030
|
+
if (account == null || signer == null || chainId == null) {
|
|
10031
|
+
return null;
|
|
10032
|
+
}
|
|
10033
|
+
let cardId = '';
|
|
10034
|
+
if (chainId === shared.ChainEnum.Celo || chainId === shared.ChainEnum.Alfajores) {
|
|
10035
|
+
var _process$env$REACT_AP;
|
|
10036
|
+
cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
|
|
10037
|
+
} else if (chainId === shared.ChainEnum.Polygon || chainId === shared.ChainEnum.Amoy) {
|
|
10038
|
+
var _process$env$REACT_AP2;
|
|
10039
|
+
cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
|
|
10040
|
+
} else if (chainId === shared.ChainEnum.Scroll || chainId === shared.ChainEnum.ScrollSepolia) {
|
|
10041
|
+
var _process$env$REACT_AP3;
|
|
10042
|
+
cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
|
|
10043
|
+
}
|
|
10044
|
+
return jsxRuntime.jsx(notifiReact.NotifiContextProvider, {
|
|
10045
|
+
tenantId: "humafinanceprod",
|
|
10046
|
+
env: "Production",
|
|
10047
|
+
signMessage: async message => {
|
|
10048
|
+
const result = await signer.signMessage(message);
|
|
10049
|
+
return bytes.arrayify(result);
|
|
10050
|
+
},
|
|
10051
|
+
walletPublicKey: account,
|
|
10052
|
+
walletBlockchain: shared.getBlockchainConfigFromChain(chainId),
|
|
10053
|
+
cardId: cardId,
|
|
10054
|
+
children: children
|
|
10055
|
+
});
|
|
10056
|
+
}
|
|
10057
|
+
|
|
10058
|
+
function Widget(props) {
|
|
10059
|
+
const {
|
|
10060
|
+
children,
|
|
10061
|
+
provider
|
|
10062
|
+
} = props;
|
|
10063
|
+
const [chainId, setChainId] = React.useState(undefined);
|
|
10064
|
+
React.useEffect(() => {
|
|
10065
|
+
const getChainId = async () => {
|
|
10066
|
+
if (provider instanceof providers.JsonRpcProvider) {
|
|
10067
|
+
const network = await provider.getNetwork();
|
|
10068
|
+
setChainId(network === null || network === void 0 ? void 0 : network.chainId);
|
|
10069
|
+
}
|
|
10070
|
+
};
|
|
10071
|
+
getChainId();
|
|
10072
|
+
}, [provider]);
|
|
10073
|
+
return jsxRuntime.jsx(material.ThemeProvider, {
|
|
10074
|
+
theme: themeHuma,
|
|
10075
|
+
children: jsxRuntime.jsx(reactRedux.Provider, {
|
|
10076
|
+
store: store,
|
|
10077
|
+
children: jsxRuntime.jsx(webShared.Provider, {
|
|
10078
|
+
...props,
|
|
10079
|
+
defaultChainId: chainId,
|
|
10080
|
+
children: jsxRuntime.jsx(jotai.Provider, {
|
|
10081
|
+
children: jsxRuntime.jsx(ChainSupportProvider, {
|
|
10082
|
+
children: jsxRuntime.jsx(NotifiContextWrapper, {
|
|
10083
|
+
chainId: chainId,
|
|
10084
|
+
children: children
|
|
10085
|
+
})
|
|
10086
|
+
})
|
|
10087
|
+
})
|
|
10088
|
+
})
|
|
10089
|
+
})
|
|
10090
|
+
});
|
|
10091
|
+
}
|
|
10092
|
+
|
|
10093
|
+
/**
|
|
10094
|
+
* Invoice factoring pool borrow widget props
|
|
8641
10095
|
* @typedef {Object} InvoiceFactoringBorrowWidgetProps
|
|
8642
10096
|
* @property {InvoiceFactoringBorrowProps} InvoiceFactoringBorrowProps - Invoice factoring pool borrow props.
|
|
8643
10097
|
* @property {WidgetProps} WidgetProps - Widget general props.
|
|
@@ -9024,6 +10478,119 @@ function ReceivableBackedCreditLinePaymentWidgetV2(props) {
|
|
|
9024
10478
|
});
|
|
9025
10479
|
}
|
|
9026
10480
|
|
|
10481
|
+
/**
|
|
10482
|
+
* Object representing the props passed to Solana widgets
|
|
10483
|
+
* @typedef {Object} SolanaWidgetProps
|
|
10484
|
+
*/
|
|
10485
|
+
|
|
10486
|
+
function SolanaWidget(props) {
|
|
10487
|
+
const {
|
|
10488
|
+
children
|
|
10489
|
+
} = props;
|
|
10490
|
+
return jsxRuntime.jsx(material.ThemeProvider, {
|
|
10491
|
+
theme: themeHuma,
|
|
10492
|
+
children: jsxRuntime.jsx(reactRedux.Provider, {
|
|
10493
|
+
store: store,
|
|
10494
|
+
children: children
|
|
10495
|
+
})
|
|
10496
|
+
});
|
|
10497
|
+
}
|
|
10498
|
+
|
|
10499
|
+
/**
|
|
10500
|
+
* Lend pool supply widget props for Solana pools
|
|
10501
|
+
* @typedef {Object} SolanaLendSupplyWidgetProps
|
|
10502
|
+
*/
|
|
10503
|
+
|
|
10504
|
+
/**
|
|
10505
|
+
* Lend pool supply widget for Solana pools
|
|
10506
|
+
*
|
|
10507
|
+
* @param {SolanaLendSupplyWidgetProps} props - Widget props
|
|
10508
|
+
*/
|
|
10509
|
+
function SolanaLendSupplyWidget(props) {
|
|
10510
|
+
return jsxRuntime.jsx(SolanaWidget, {
|
|
10511
|
+
...props,
|
|
10512
|
+
children: jsxRuntime.jsx(SolanaLendSupply, {
|
|
10513
|
+
...props
|
|
10514
|
+
})
|
|
10515
|
+
});
|
|
10516
|
+
}
|
|
10517
|
+
|
|
10518
|
+
/**
|
|
10519
|
+
* Lend pool supply widget props for Solana pools
|
|
10520
|
+
* @typedef {Object} SolanaLendAddRedemptionWidgetProps
|
|
10521
|
+
*/
|
|
10522
|
+
|
|
10523
|
+
/**
|
|
10524
|
+
* Lend pool supply widget for Solana pools
|
|
10525
|
+
*
|
|
10526
|
+
* @param {SolanaLendAddRedemptionWidgetProps} props - Widget props
|
|
10527
|
+
*/
|
|
10528
|
+
function SolanaLendAddRedemptionWidget(props) {
|
|
10529
|
+
return jsxRuntime.jsx(SolanaWidget, {
|
|
10530
|
+
...props,
|
|
10531
|
+
children: jsxRuntime.jsx(SolanaLendAddRedemption, {
|
|
10532
|
+
...props
|
|
10533
|
+
})
|
|
10534
|
+
});
|
|
10535
|
+
}
|
|
10536
|
+
|
|
10537
|
+
/**
|
|
10538
|
+
* Lend pool supply widget props for Solana pools
|
|
10539
|
+
* @typedef {Object} SolanaLendCancelRedemptionWidgetProps
|
|
10540
|
+
*/
|
|
10541
|
+
|
|
10542
|
+
/**
|
|
10543
|
+
* Lend pool supply widget for Solana pools
|
|
10544
|
+
*
|
|
10545
|
+
* @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props
|
|
10546
|
+
*/
|
|
10547
|
+
function SolanaLendCancelRedemptionWidget(props) {
|
|
10548
|
+
return jsxRuntime.jsx(SolanaWidget, {
|
|
10549
|
+
...props,
|
|
10550
|
+
children: jsxRuntime.jsx(SolanaLendCancelRedemption, {
|
|
10551
|
+
...props
|
|
10552
|
+
})
|
|
10553
|
+
});
|
|
10554
|
+
}
|
|
10555
|
+
|
|
10556
|
+
/**
|
|
10557
|
+
* Lend pool supply widget props for Solana pools
|
|
10558
|
+
* @typedef {Object} SolanaBorrowWidgetProps
|
|
10559
|
+
*/
|
|
10560
|
+
|
|
10561
|
+
/**
|
|
10562
|
+
* Lend pool supply widget for Solana pools
|
|
10563
|
+
*
|
|
10564
|
+
* @param {SolanaBorrowWidgetProps} props - Widget props
|
|
10565
|
+
*/
|
|
10566
|
+
function SolanaBorrowWidget(props) {
|
|
10567
|
+
return jsxRuntime.jsx(SolanaWidget, {
|
|
10568
|
+
...props,
|
|
10569
|
+
children: jsxRuntime.jsx(SolanaBorrow, {
|
|
10570
|
+
...props
|
|
10571
|
+
})
|
|
10572
|
+
});
|
|
10573
|
+
}
|
|
10574
|
+
|
|
10575
|
+
/**
|
|
10576
|
+
* Lend pool supply widget props for Solana pools
|
|
10577
|
+
* @typedef {Object} SolanaPaymentWidgetProps
|
|
10578
|
+
*/
|
|
10579
|
+
|
|
10580
|
+
/**
|
|
10581
|
+
* Lend pool supply widget for Solana pools
|
|
10582
|
+
*
|
|
10583
|
+
* @param {SolanaPaymentWidgetProps} props - Widget props
|
|
10584
|
+
*/
|
|
10585
|
+
function SolanaPaymentWidget(props) {
|
|
10586
|
+
return jsxRuntime.jsx(SolanaWidget, {
|
|
10587
|
+
...props,
|
|
10588
|
+
children: jsxRuntime.jsx(SolanaPayment, {
|
|
10589
|
+
...props
|
|
10590
|
+
})
|
|
10591
|
+
});
|
|
10592
|
+
}
|
|
10593
|
+
|
|
9027
10594
|
exports.AddRedemptionWidgetV2 = AddRedemptionWidgetV2;
|
|
9028
10595
|
exports.AutoPaybackWidgetV2 = AutoPaybackWidgetV2;
|
|
9029
10596
|
exports.CancelRedemptionWidgetV2 = CancelRedemptionWidgetV2;
|
|
@@ -9041,6 +10608,11 @@ exports.LendWithdrawWidgetV2 = LendWithdrawWidgetV2;
|
|
|
9041
10608
|
exports.NotifiContextWrapper = NotifiContextWrapper;
|
|
9042
10609
|
exports.ReceivableBackedCreditLineBorrowWidgetV2 = ReceivableBackedCreditLineBorrowWidgetV2;
|
|
9043
10610
|
exports.ReceivableBackedCreditLinePaymentWidgetV2 = ReceivableBackedCreditLinePaymentWidgetV2;
|
|
10611
|
+
exports.SolanaBorrowWidget = SolanaBorrowWidget;
|
|
10612
|
+
exports.SolanaLendAddRedemptionWidget = SolanaLendAddRedemptionWidget;
|
|
10613
|
+
exports.SolanaLendCancelRedemptionWidget = SolanaLendCancelRedemptionWidget;
|
|
10614
|
+
exports.SolanaLendSupplyWidget = SolanaLendSupplyWidget;
|
|
10615
|
+
exports.SolanaPaymentWidget = SolanaPaymentWidget;
|
|
9044
10616
|
exports.SuperfluidFactoringWidget = SuperfluidFactoringWidget;
|
|
9045
10617
|
exports.SupplyFirstLossCoverWidget = SupplyFirstLossCoverWidget;
|
|
9046
10618
|
//# sourceMappingURL=index.cjs.map
|