@huma-finance/widgets 0.0.73-beta.922 → 0.0.73-beta.939
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/.env.example +3 -3
- package/{.eslintrc.js → .eslintrc.cjs} +1 -2
- package/.prettierrc.json +16 -0
- package/API.md +1 -1
- package/dist/index.js +220452 -11016
- package/dist/src/components/ApolloWrapper.d.ts +4 -0
- package/dist/src/components/ApproveAllowanceModal.d.ts +13 -0
- package/dist/src/components/ApproveAllowanceModalV2.d.ts +14 -0
- package/dist/src/components/BottomButton.d.ts +9 -0
- package/dist/src/components/ChainSupportProvider.d.ts +2 -0
- package/dist/src/components/ChooseAmountModal.d.ts +23 -0
- package/dist/src/components/ConfirmTransferModal.d.ts +19 -0
- package/dist/src/components/CreditLine/approve/1-ApproveAllowance.d.ts +9 -0
- package/dist/src/components/CreditLine/approve/2-Success.d.ts +8 -0
- package/dist/src/components/CreditLine/approve/index.d.ts +20 -0
- package/dist/src/components/CreditLine/autoPaybackV2/1-ApproveAllowance.d.ts +8 -0
- package/dist/src/components/CreditLine/autoPaybackV2/2-Success.d.ts +6 -0
- package/dist/src/components/CreditLine/autoPaybackV2/index.d.ts +15 -0
- package/dist/src/components/CreditLine/borrow/1-Evaluation.d.ts +8 -0
- package/dist/src/components/CreditLine/borrow/2-ChooseAmount.d.ts +8 -0
- package/dist/src/components/CreditLine/borrow/3-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/CreditLine/borrow/4-Transfer.d.ts +7 -0
- package/dist/src/components/CreditLine/borrow/5-Success.d.ts +10 -0
- package/dist/src/components/CreditLine/borrow/6-Notifications.d.ts +6 -0
- package/dist/src/components/CreditLine/borrow/index.d.ts +19 -0
- package/dist/src/components/CreditLine/borrowV2/1-ChooseAmount.d.ts +9 -0
- package/dist/src/components/CreditLine/borrowV2/2-ApproveAllowance.d.ts +8 -0
- package/dist/src/components/CreditLine/borrowV2/3-Transfer.d.ts +7 -0
- package/dist/src/components/CreditLine/borrowV2/4-Success.d.ts +10 -0
- package/dist/src/components/CreditLine/borrowV2/5-Notifications.d.ts +6 -0
- package/dist/src/components/CreditLine/borrowV2/index.d.ts +15 -0
- package/dist/src/components/CreditLine/payment/1-ChooseAmount.d.ts +9 -0
- package/dist/src/components/CreditLine/payment/2-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/CreditLine/payment/3-Transfer.d.ts +7 -0
- package/dist/src/components/CreditLine/payment/4-Success.d.ts +8 -0
- package/dist/src/components/CreditLine/payment/index.d.ts +17 -0
- package/dist/src/components/CreditLine/paymentV2/1-ChooseAmount.d.ts +11 -0
- package/dist/src/components/CreditLine/paymentV2/2-ApproveAllowance.d.ts +8 -0
- package/dist/src/components/CreditLine/paymentV2/3-Transfer.d.ts +8 -0
- package/dist/src/components/CreditLine/paymentV2/4-Success.d.ts +8 -0
- package/dist/src/components/CreditLine/paymentV2/index.d.ts +15 -0
- package/dist/src/components/CreditLine/solanaBorrow/1-ChooseAmount.d.ts +9 -0
- package/dist/src/components/CreditLine/solanaBorrow/2-Transfer.d.ts +7 -0
- package/dist/src/components/CreditLine/solanaBorrow/3-Done.d.ts +10 -0
- package/dist/src/components/CreditLine/solanaBorrow/index.d.ts +17 -0
- package/dist/src/components/CreditLine/solanaPayment/1-ChooseAmount.d.ts +9 -0
- package/dist/src/components/CreditLine/solanaPayment/2-Transfer.d.ts +7 -0
- package/dist/src/components/CreditLine/solanaPayment/3-Done.d.ts +8 -0
- package/dist/src/components/CreditLine/solanaPayment/index.d.ts +14 -0
- package/dist/src/components/CreditLine/supplyFLC/1-ApproveAllowance.d.ts +10 -0
- package/dist/src/components/CreditLine/supplyFLC/2-Transfer.d.ts +10 -0
- package/dist/src/components/CreditLine/supplyFLC/3-Success.d.ts +10 -0
- package/dist/src/components/CreditLine/supplyFLC/index.d.ts +15 -0
- package/dist/src/components/ErrorModal.d.ts +12 -0
- package/dist/src/components/HumaLoading.d.ts +7 -0
- package/dist/src/components/HumaSnackBar.d.ts +10 -0
- package/dist/src/components/InputAmountModal.d.ts +18 -0
- package/dist/src/components/InvoiceFactoring/borrow/1-Evaluation.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/borrow/2-ChooseAmount.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/borrow/3-ConfirmTransfer.d.ts +2 -0
- package/dist/src/components/InvoiceFactoring/borrow/4-ApproveNFT.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/borrow/5-Transfer.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/borrow/6-Success.d.ts +6 -0
- package/dist/src/components/InvoiceFactoring/borrow/index.d.ts +20 -0
- package/dist/src/components/InvoiceFactoring/payment/1-ChooseAmount.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/payment/2-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/InvoiceFactoring/payment/3-Transfer.d.ts +7 -0
- package/dist/src/components/InvoiceFactoring/payment/4-Success.d.ts +8 -0
- package/dist/src/components/InvoiceFactoring/payment/index.d.ts +17 -0
- package/dist/src/components/Lend/addRedemptionV2/1-ChooseTranche.d.ts +8 -0
- package/dist/src/components/Lend/addRedemptionV2/2-ChooseAmount.d.ts +10 -0
- package/dist/src/components/Lend/addRedemptionV2/3-Transfer.d.ts +10 -0
- package/dist/src/components/Lend/addRedemptionV2/4-Done.d.ts +6 -0
- package/dist/src/components/Lend/addRedemptionV2/index.d.ts +23 -0
- package/dist/src/components/Lend/cancelRedemptionV2 /1-Transfer.d.ts +10 -0
- package/dist/src/components/Lend/cancelRedemptionV2 /2-Done.d.ts +10 -0
- package/dist/src/components/Lend/cancelRedemptionV2 /index.d.ts +22 -0
- package/dist/src/components/Lend/components/ApproveLenderBase.d.ts +14 -0
- package/dist/src/components/Lend/components/PersonaEvaluation.d.ts +17 -0
- package/dist/src/components/Lend/components/SecuritizeEvaluation.d.ts +8 -0
- package/dist/src/components/Lend/solanaAddRedemption/1-ChooseTranche.d.ts +8 -0
- package/dist/src/components/Lend/solanaAddRedemption/2-ChooseAmount.d.ts +11 -0
- package/dist/src/components/Lend/solanaAddRedemption/3-Transfer.d.ts +8 -0
- package/dist/src/components/Lend/solanaAddRedemption/4-Done.d.ts +8 -0
- package/dist/src/components/Lend/solanaAddRedemption/index.d.ts +19 -0
- package/dist/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.d.ts +8 -0
- package/dist/src/components/Lend/solanaCancelRedemption/2-Transfer.d.ts +11 -0
- package/dist/src/components/Lend/solanaCancelRedemption/3-Done.d.ts +11 -0
- package/dist/src/components/Lend/solanaCancelRedemption/index.d.ts +16 -0
- package/dist/src/components/Lend/solanaEnableAutoRedemption/1-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/Lend/solanaEnableAutoRedemption/2-Transfer.d.ts +9 -0
- package/dist/src/components/Lend/solanaEnableAutoRedemption/3-Success.d.ts +10 -0
- package/dist/src/components/Lend/solanaEnableAutoRedemption/index.d.ts +18 -0
- package/dist/src/components/Lend/solanaSupply/1-Evaluation.d.ts +12 -0
- package/dist/src/components/Lend/solanaSupply/2-ApproveLender.d.ts +10 -0
- package/dist/src/components/Lend/solanaSupply/3-ChooseTranche.d.ts +9 -0
- package/dist/src/components/Lend/solanaSupply/4-ChooseAmount.d.ts +13 -0
- package/dist/src/components/Lend/solanaSupply/5-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/Lend/solanaSupply/6-Transfer.d.ts +11 -0
- package/dist/src/components/Lend/solanaSupply/7-Success.d.ts +12 -0
- package/dist/src/components/Lend/solanaSupply/8-PointsEarned.d.ts +11 -0
- package/dist/src/components/Lend/solanaSupply/index.d.ts +24 -0
- package/dist/src/components/Lend/solanaWithdraw/1-ConfirmTransfer.d.ts +9 -0
- package/dist/src/components/Lend/solanaWithdraw/2-Transfer.d.ts +9 -0
- package/dist/src/components/Lend/solanaWithdraw/3-Done.d.ts +10 -0
- package/dist/src/components/Lend/solanaWithdraw/index.d.ts +25 -0
- package/dist/src/components/Lend/stellarSupply/1-Evaluation.d.ts +4 -0
- package/dist/src/components/Lend/stellarSupply/2-ChooseTranche.d.ts +9 -0
- package/dist/src/components/Lend/stellarSupply/3-ChooseAmount.d.ts +12 -0
- package/dist/src/components/Lend/stellarSupply/4-Transfer.d.ts +8 -0
- package/dist/src/components/Lend/stellarSupply/5-Success.d.ts +10 -0
- package/dist/src/components/Lend/stellarSupply/index.d.ts +22 -0
- package/dist/src/components/Lend/supply/1-Evaluation/EvaluationEA.d.ts +8 -0
- package/dist/src/components/Lend/supply/1-Evaluation/EvaluationKYC.d.ts +8 -0
- package/dist/src/components/Lend/supply/1-Evaluation/index.d.ts +9 -0
- package/dist/src/components/Lend/supply/2-ChooseAmount.d.ts +11 -0
- package/dist/src/components/Lend/supply/3-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/Lend/supply/4-Transfer.d.ts +7 -0
- package/dist/src/components/Lend/supply/5-Success.d.ts +9 -0
- package/dist/src/components/Lend/supply/6-Notifications.d.ts +6 -0
- package/dist/src/components/Lend/supply/index.d.ts +17 -0
- package/dist/src/components/Lend/supplyV2/1-ChooseTranche.d.ts +9 -0
- package/dist/src/components/Lend/supplyV2/2-Evaluation.d.ts +12 -0
- package/dist/src/components/Lend/supplyV2/3-ApproveLender.d.ts +10 -0
- package/dist/src/components/Lend/supplyV2/4-ChooseAmount.d.ts +14 -0
- package/dist/src/components/Lend/supplyV2/5-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/Lend/supplyV2/6-Transfer.d.ts +11 -0
- package/dist/src/components/Lend/supplyV2/7-Success.d.ts +13 -0
- package/dist/src/components/Lend/supplyV2/8-Notifications.d.ts +8 -0
- package/dist/src/components/Lend/supplyV2/index.d.ts +23 -0
- package/dist/src/components/Lend/withdraw/1-CheckWithdrawble.d.ts +8 -0
- package/dist/src/components/Lend/withdraw/2-ChooseAmount.d.ts +10 -0
- package/dist/src/components/Lend/withdraw/3-Transfer.d.ts +7 -0
- package/dist/src/components/Lend/withdraw/4-Success.d.ts +8 -0
- package/dist/src/components/Lend/withdraw/index.d.ts +17 -0
- package/dist/src/components/Lend/withdrawV2/1-ConfirmTransfer.d.ts +11 -0
- package/dist/src/components/Lend/withdrawV2/2-Transfer.d.ts +9 -0
- package/dist/src/components/Lend/withdrawV2/3-Done.d.ts +10 -0
- package/dist/src/components/Lend/withdrawV2/index.d.ts +17 -0
- package/dist/src/components/LoadingModal.d.ts +9 -0
- package/dist/src/components/Notifi/NotifiContextWrapper.d.ts +7 -0
- package/dist/src/components/Notifi/NotifiSubscriptionModal.d.ts +7 -0
- package/dist/src/components/NumericFormatCustom.d.ts +14 -0
- package/dist/src/components/PointsEarned.d.ts +10 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/1-ChooseAmount.d.ts +10 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/2-ApproveAllowance.d.ts +8 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/3-ApproveReceivable.d.ts +8 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/4-Transfer.d.ts +8 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/5-Success.d.ts +10 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/6-Notifications.d.ts +6 -0
- package/dist/src/components/ReceivableBackedCreditLine/borrow/index.d.ts +17 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/1-ChoosePaymentType.d.ts +8 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/2-ChooseAmount.d.ts +12 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/3-ApproveAllowance.d.ts +10 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/4-CreateReceivable.d.ts +9 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/5-ApproveReceivable.d.ts +8 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/6-Transfer.d.ts +14 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/7-Success.d.ts +12 -0
- package/dist/src/components/ReceivableBackedCreditLine/payment/index.d.ts +21 -0
- package/dist/src/components/SignIn.d.ts +6 -0
- package/dist/src/components/SolanaErrorModal.d.ts +13 -0
- package/dist/src/components/SolanaTxDoneModal.d.ts +12 -0
- package/dist/src/components/SolanaTxSendModal.d.ts +12 -0
- package/dist/src/components/SolanaViewOnExplorer.d.ts +8 -0
- package/dist/src/components/StellarTxDoneModal.d.ts +12 -0
- package/dist/src/components/StellarTxSendModal.d.ts +8 -0
- package/dist/src/components/StellarViewOnExplorer.d.ts +8 -0
- package/dist/src/components/StreamFactoring/borrow/1-Evaluation.d.ts +9 -0
- package/dist/src/components/StreamFactoring/borrow/2-ChooseAmount.d.ts +8 -0
- package/dist/src/components/StreamFactoring/borrow/3-ConfirmTransfer.d.ts +2 -0
- package/dist/src/components/StreamFactoring/borrow/4-ApproveAllowance.d.ts +7 -0
- package/dist/src/components/StreamFactoring/borrow/5-Permit.d.ts +10 -0
- package/dist/src/components/StreamFactoring/borrow/6-Transfer.d.ts +7 -0
- package/dist/src/components/StreamFactoring/borrow/7-Success.d.ts +6 -0
- package/dist/src/components/StreamFactoring/borrow/index.d.ts +13 -0
- package/dist/src/components/StreamFactoring/payment/ChooseAmount.d.ts +8 -0
- package/dist/src/components/StreamFactoring/payment/Success.d.ts +8 -0
- package/dist/src/components/StreamFactoring/payment/Transfer.d.ts +7 -0
- package/dist/src/components/StreamFactoring/payment/index.d.ts +10 -0
- package/dist/src/components/SuperfluidFactoring/index.d.ts +12 -0
- package/dist/src/components/TxDoneModal.d.ts +9 -0
- package/dist/src/components/TxSendModal.d.ts +13 -0
- package/dist/src/components/TxSendModalV2.d.ts +13 -0
- package/dist/src/components/ViewOnExplorer.d.ts +6 -0
- package/dist/src/components/WidgetWrapper.d.ts +11 -0
- package/dist/src/components/WrapperModal.d.ts +8 -0
- package/dist/src/components/buttons/TableActionButton.d.ts +8 -0
- package/dist/src/components/buttons/index.d.ts +1 -0
- package/dist/src/components/humaModal/HumaModal.d.ts +13 -0
- package/dist/src/components/humaModal/HumaModalHeader.d.ts +12 -0
- package/dist/src/components/humaModal/index.d.ts +2 -0
- package/dist/src/components/icons/index.d.ts +23 -0
- package/dist/src/components/images/index.d.ts +3 -0
- package/dist/src/cosmos/CreditLineBorrow.fixture.d.ts +2 -0
- package/dist/src/cosmos/CreditLinePayment.fixture.d.ts +2 -0
- package/dist/src/cosmos/InvoiceFactoringBorrow.fixture.d.ts +2 -0
- package/dist/src/cosmos/InvoiceFactoringPayment.fixture.d.ts +2 -0
- package/dist/src/cosmos/LendSupply.fixture.d.ts +2 -0
- package/dist/src/cosmos/LendWithdraw.fixture.d.ts +2 -0
- package/dist/src/cosmos/SDKTesting.fixture.d.ts +2 -0
- package/dist/src/cosmos/SuperfluidFactoringBorrow.fixture.d.ts +2 -0
- package/dist/src/cosmos/WalletWrapper.d.ts +3 -0
- package/dist/src/cosmos/utils/index.d.ts +18 -0
- package/dist/src/hooks/useEA.d.ts +8 -0
- package/dist/src/hooks/useElementDimensions.d.ts +5 -0
- package/dist/src/hooks/useNotifi.d.ts +10 -0
- package/dist/src/hooks/useRedux.d.ts +6 -0
- package/dist/src/index.d.ts +385 -0
- package/dist/src/reportWebVitals.d.ts +3 -0
- package/dist/src/setupTests.d.ts +0 -0
- package/dist/src/store/index.d.ts +10 -0
- package/dist/src/store/widgets.reducers.d.ts +56 -0
- package/dist/src/store/widgets.selectors.d.ts +2 -0
- package/dist/src/store/widgets.store.d.ts +59 -0
- package/dist/src/theme/breakpoints.d.ts +5 -0
- package/dist/src/theme/components.d.ts +2 -0
- package/dist/src/theme/coreThemeConstants.d.ts +18 -0
- package/dist/src/theme/cssMixins.d.ts +20 -0
- package/dist/src/theme/hooks/useGetSizes.d.ts +12 -0
- package/dist/src/theme/index.d.ts +2 -0
- package/dist/src/theme/palette.d.ts +53 -0
- package/dist/src/theme/shape.d.ts +2 -0
- package/dist/src/theme/theme.types.d.ts +71 -0
- package/dist/src/theme/typography.d.ts +2 -0
- package/dist/vite.config.d.ts +2 -0
- package/package.json +21 -34
- package/src/components/Lend/components/ApproveLenderBase.tsx +6 -3
- package/src/components/Lend/components/PersonaEvaluation.tsx +5 -2
- package/src/components/Lend/components/SecuritizeEvaluation.tsx +5 -2
- package/src/components/Lend/solanaSupply/6-Transfer.tsx +1 -1
- package/src/components/Lend/solanaSupply/8-PointsEarned.tsx +6 -2
- package/src/components/Lend/supply/1-Evaluation/EvaluationKYC.tsx +5 -2
- package/src/components/Lend/supplyV2/2-Evaluation.tsx +2 -2
- package/src/components/Lend/supplyV2/3-ApproveLender.tsx +1 -1
- package/src/components/Lend/supplyV2/6-Transfer.tsx +1 -2
- package/src/components/Lend/supplyV2/index.tsx +1 -1
- package/src/components/Notifi/NotifiContextWrapper.tsx +3 -3
- package/src/components/PointsEarned.tsx +3 -3
- package/src/components/icons/index.tsx +21 -21
- package/src/cosmos/InvoiceFactoringBorrow.fixture.tsx +1 -1
- package/src/cosmos/SuperfluidFactoringBorrow.fixture.tsx +2 -4
- package/src/cosmos/utils/index.ts +4 -2
- package/src/hooks/useEA.ts +1 -2
- package/src/hooks/useNotifi.ts +1 -1
- package/src/index.tsx +4 -7
- package/tsconfig.json +20 -17
- package/vite-env.d.ts +2 -0
- package/vite.config.ts +48 -0
- package/webpack.cosmos.js +1 -1
- package/.prettierrc.js +0 -16
- package/babel.config.js +0 -15
- package/config-overrides.js +0 -9
- package/dist/cjs/index.cjs +0 -11779
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -758
- package/dist/index.js.map +0 -1
- package/public/favicon.ico +0 -0
- package/public/index.html +0 -40
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +0 -25
- package/public/robots.txt +0 -3
- package/rollup.config.js +0 -81
- package/src/cosmos/utils/env.ts +0 -6
- package/src/react-app-env.d.ts +0 -1
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../src/hooks/useRedux.ts","../src/store/widgets.store.ts","../src/store/widgets.reducers.ts","../src/components/images/approve-lender.png","../src/components/images/sorry.png","../src/components/images/auto-payback.png","../src/components/ErrorModal.tsx","../src/components/humaModal/HumaModal.tsx","../src/components/humaModal/HumaModalHeader.tsx","../src/components/ChainSupportProvider.tsx","../src/store/widgets.selectors.ts","../src/components/icons/receipt.svg","../src/components/icons/loader.svg","../src/components/icons/check.svg","../src/components/icons/check-green.svg","../src/components/icons/check-circle.svg","../src/components/icons/usdc.svg","../src/components/icons/celo.svg","../src/components/icons/congratulations.svg","../src/components/icons/ribbon.svg","../src/components/icons/huma-points.svg","../src/components/icons/index.tsx","../src/components/HumaLoading.tsx","../src/components/WrapperModal.tsx","../src/components/LoadingModal.tsx","../src/components/WidgetWrapper.tsx","../src/components/BottomButton.tsx","../src/components/ViewOnExplorer.tsx","../src/components/ApproveAllowanceModal.tsx","../src/components/CreditLine/approve/1-ApproveAllowance.tsx","../src/components/TxDoneModal.tsx","../src/components/CreditLine/approve/2-Success.tsx","../src/components/CreditLine/approve/index.tsx","../src/components/ApproveAllowanceModalV2.tsx","../src/components/CreditLine/autoPaybackV2/1-ApproveAllowance.tsx","../src/components/CreditLine/autoPaybackV2/2-Success.tsx","../src/components/CreditLine/autoPaybackV2/index.tsx","../src/hooks/useEA.ts","../src/components/icons/spinner.gif","../src/components/SignIn.tsx","../src/components/CreditLine/borrow/1-Evaluation.tsx","../src/components/ChooseAmountModal.tsx","../src/components/CreditLine/borrow/2-ChooseAmount.tsx","../src/components/CreditLine/borrow/3-ApproveAllowance.tsx","../src/components/TxSendModal.tsx","../src/components/CreditLine/borrow/4-Transfer.tsx","../src/components/CreditLine/borrow/5-Success.tsx","../src/components/Notifi/NotifiSubscriptionModal.tsx","../src/components/CreditLine/borrow/6-Notifications.tsx","../src/hooks/useNotifi.ts","../src/components/CreditLine/borrow/index.tsx","../src/components/InputAmountModal.tsx","../src/components/CreditLine/borrowV2/1-ChooseAmount.tsx","../src/components/CreditLine/borrowV2/2-ApproveAllowance.tsx","../src/components/TxSendModalV2.tsx","../src/components/CreditLine/borrowV2/3-Transfer.tsx","../src/components/CreditLine/borrowV2/4-Success.tsx","../src/components/CreditLine/borrowV2/5-Notifications.tsx","../src/components/CreditLine/borrowV2/index.tsx","../src/components/CreditLine/payment/1-ChooseAmount.tsx","../src/components/CreditLine/payment/2-ApproveAllowance.tsx","../src/components/CreditLine/payment/3-Transfer.tsx","../src/components/CreditLine/payment/4-Success.tsx","../src/components/CreditLine/payment/index.tsx","../src/components/CreditLine/paymentV2/1-ChooseAmount.tsx","../src/components/CreditLine/paymentV2/2-ApproveAllowance.tsx","../src/components/CreditLine/paymentV2/3-Transfer.tsx","../src/components/CreditLine/paymentV2/4-Success.tsx","../src/components/CreditLine/paymentV2/index.tsx","../src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx","../src/components/SolanaViewOnExplorer.tsx","../src/components/SolanaTxSendModal.tsx","../src/components/CreditLine/solanaBorrow/2-Transfer.tsx","../src/components/SolanaTxDoneModal.tsx","../src/components/CreditLine/solanaBorrow/3-Done.tsx","../src/components/SolanaErrorModal.tsx","../src/components/CreditLine/solanaBorrow/index.tsx","../src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx","../src/components/CreditLine/solanaPayment/2-Transfer.tsx","../src/components/CreditLine/solanaPayment/3-Done.tsx","../src/components/CreditLine/solanaPayment/index.tsx","../src/components/CreditLine/supplyFLC/1-ApproveAllowance.tsx","../src/components/CreditLine/supplyFLC/3-Success.tsx","../src/components/CreditLine/supplyFLC/2-Transfer.tsx","../src/components/CreditLine/supplyFLC/index.tsx","../src/components/InvoiceFactoring/borrow/1-Evaluation.tsx","../src/components/InvoiceFactoring/borrow/2-ChooseAmount.tsx","../src/components/ConfirmTransferModal.tsx","../src/components/InvoiceFactoring/borrow/3-ConfirmTransfer.tsx","../src/components/InvoiceFactoring/borrow/4-ApproveNFT.tsx","../src/components/InvoiceFactoring/borrow/5-Transfer.tsx","../src/components/InvoiceFactoring/borrow/6-Success.tsx","../src/components/InvoiceFactoring/borrow/index.tsx","../src/components/InvoiceFactoring/payment/1-ChooseAmount.tsx","../src/components/InvoiceFactoring/payment/2-ApproveAllowance.tsx","../src/components/InvoiceFactoring/payment/3-Transfer.tsx","../src/components/InvoiceFactoring/payment/4-Success.tsx","../src/components/InvoiceFactoring/payment/index.tsx","../src/components/Lend/addRedemptionV2/1-ChooseTranche.tsx","../src/components/Lend/addRedemptionV2/2-ChooseAmount.tsx","../src/components/Lend/addRedemptionV2/3-Transfer.tsx","../src/components/Lend/addRedemptionV2/4-Done.tsx","../src/components/Lend/addRedemptionV2/index.tsx","../src/components/Lend/cancelRedemptionV2 /1-Transfer.tsx","../src/components/Lend/cancelRedemptionV2 /2-Done.tsx","../src/components/Lend/cancelRedemptionV2 /index.tsx","../src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx","../src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx","../src/components/Lend/solanaAddRedemption/4-Done.tsx","../src/components/Lend/solanaAddRedemption/3-Transfer.tsx","../src/components/Lend/solanaAddRedemption/index.tsx","../src/components/Lend/solanaCancelRedemption/2-Transfer.tsx","../src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx","../src/components/Lend/solanaCancelRedemption/3-Done.tsx","../src/components/Lend/solanaCancelRedemption/index.tsx","../src/components/Lend/solanaEnableAutoRedemption/2-Transfer.tsx","../src/components/Lend/solanaEnableAutoRedemption/3-Success.tsx","../src/components/Lend/solanaEnableAutoRedemption/1-ApproveAllowance.tsx","../src/components/Lend/solanaEnableAutoRedemption/index.tsx","../src/components/PointsEarned.tsx","../src/components/Lend/components/PersonaEvaluation.tsx","../src/components/Lend/solanaSupply/1-Evaluation.tsx","../src/components/Lend/components/ApproveLenderBase.tsx","../src/components/Lend/solanaSupply/2-ApproveLender.tsx","../src/components/Lend/solanaSupply/3-ChooseTranche.tsx","../src/components/Lend/solanaSupply/4-ChooseAmount.tsx","../src/components/Lend/solanaSupply/5-ApproveAllowance.tsx","../src/components/Lend/solanaSupply/6-Transfer.tsx","../src/components/Lend/solanaSupply/7-Success.tsx","../src/components/Lend/solanaSupply/index.tsx","../src/components/Lend/solanaWithdraw/1-ConfirmTransfer.tsx","../src/components/Lend/solanaWithdraw/2-Transfer.tsx","../src/components/Lend/solanaWithdraw/3-Done.tsx","../src/components/Lend/solanaWithdraw/index.tsx","../src/components/Lend/stellarSupply/2-ChooseTranche.tsx","../src/components/Lend/stellarSupply/3-ChooseAmount.tsx","../src/components/StellarTxSendModal.tsx","../src/components/Lend/stellarSupply/4-Transfer.tsx","../src/components/StellarViewOnExplorer.tsx","../src/components/StellarTxDoneModal.tsx","../src/components/Lend/stellarSupply/5-Success.tsx","../src/components/Lend/stellarSupply/index.tsx","../src/components/Lend/supply/1-Evaluation/EvaluationEA.tsx","../src/components/HumaSnackBar.tsx","../src/components/Lend/supply/1-Evaluation/EvaluationKYC.tsx","../src/components/Lend/supply/1-Evaluation/index.tsx","../src/components/Lend/supply/2-ChooseAmount.tsx","../src/components/Lend/supply/3-ApproveAllowance.tsx","../src/components/Lend/supply/4-Transfer.tsx","../src/components/Lend/supply/5-Success.tsx","../src/components/Lend/supply/6-Notifications.tsx","../src/components/Lend/supply/index.tsx","../src/components/Lend/supplyV2/1-ChooseTranche.tsx","../src/components/Lend/components/SecuritizeEvaluation.tsx","../src/components/Lend/supplyV2/2-Evaluation.tsx","../src/components/Lend/supplyV2/3-ApproveLender.tsx","../src/components/Lend/supplyV2/4-ChooseAmount.tsx","../src/components/Lend/supplyV2/5-ApproveAllowance.tsx","../src/components/Lend/supplyV2/6-Transfer.tsx","../src/components/Lend/supplyV2/7-Success.tsx","../src/components/Lend/supplyV2/8-Notifications.tsx","../src/components/Lend/supplyV2/index.tsx","../src/components/Lend/withdraw/1-CheckWithdrawble.tsx","../src/components/Lend/withdraw/2-ChooseAmount.tsx","../src/components/Lend/withdraw/3-Transfer.tsx","../src/components/Lend/withdraw/4-Success.tsx","../src/components/Lend/withdraw/index.tsx","../src/components/Lend/withdrawV2/1-ConfirmTransfer.tsx","../src/components/Lend/withdrawV2/2-Transfer.tsx","../src/components/Lend/withdrawV2/3-Done.tsx","../src/components/Lend/withdrawV2/index.tsx","../src/components/Notifi/NotifiContextWrapper.tsx","../src/components/ReceivableBackedCreditLine/borrow/1-ChooseAmount.tsx","../src/components/ReceivableBackedCreditLine/borrow/2-ApproveAllowance.tsx","../src/components/ReceivableBackedCreditLine/borrow/3-ApproveReceivable.tsx","../src/components/ReceivableBackedCreditLine/borrow/4-Transfer.tsx","../src/components/ReceivableBackedCreditLine/borrow/5-Success.tsx","../src/components/ReceivableBackedCreditLine/borrow/6-Notifications.tsx","../src/components/ReceivableBackedCreditLine/borrow/index.tsx","../src/components/ReceivableBackedCreditLine/payment/1-ChoosePaymentType.tsx","../src/components/ReceivableBackedCreditLine/payment/2-ChooseAmount.tsx","../src/components/ReceivableBackedCreditLine/payment/3-ApproveAllowance.tsx","../src/components/ReceivableBackedCreditLine/payment/4-CreateReceivable.tsx","../src/components/ReceivableBackedCreditLine/payment/5-ApproveReceivable.tsx","../src/components/ReceivableBackedCreditLine/payment/6-Transfer.tsx","../src/components/ReceivableBackedCreditLine/payment/7-Success.tsx","../src/components/ReceivableBackedCreditLine/payment/index.tsx","../src/components/StreamFactoring/borrow/1-Evaluation.tsx","../src/components/StreamFactoring/borrow/2-ChooseAmount.tsx","../src/components/StreamFactoring/borrow/3-ConfirmTransfer.tsx","../src/components/StreamFactoring/borrow/4-ApproveAllowance.tsx","../src/components/StreamFactoring/borrow/5-Permit.tsx","../src/components/StreamFactoring/borrow/6-Transfer.tsx","../src/components/StreamFactoring/borrow/7-Success.tsx","../src/components/StreamFactoring/borrow/index.tsx","../src/components/SuperfluidFactoring/index.tsx","../src/store/index.ts","../src/theme/breakpoints.ts","../src/theme/components.ts","../src/theme/coreThemeConstants.ts","../src/theme/cssMixins.ts","../src/theme/palette.ts","../src/theme/shape.ts","../src/theme/typography.ts","../src/theme/index.ts","../src/index.tsx"],"sourcesContent":["export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'\nimport type { RootState, AppDispatch } from '../store'\n\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\nexport const useAppDispatch = () => useDispatch<AppDispatch>()\nexport const useAppSelector: TypedUseSelectorHook<RootState> = useSelector\n","import { Approval } from '@huma-finance/shared'\n\nexport enum WIDGET_TYPE {\n BORROW = 'BORROW',\n PAYMENT = 'PAYMENT',\n}\n\nexport enum WIDGET_STEP {\n SignIn = 'SignIn',\n ChooseTranche = 'ChooseTranche',\n ChoosePaymentType = 'ChoosePaymentType',\n Evaluation = 'Evaluation',\n FirstLossCover = 'FirstLossCover',\n ChooseAmount = 'ChooseAmount',\n ApproveLender = 'ApproveLender',\n Permit = 'Permit',\n ApproveAllowance = 'ApproveAllowance',\n MintNFT = 'MintNFT',\n ConfirmTransfer = 'ConfirmTransfer',\n ApproveNFT = 'ApproveNFT',\n Transfer = 'Transfer',\n CheckWithdrawable = 'CheckWithdrawable',\n Notifications = 'Notifications',\n PointsEarned = 'PointsEarned',\n Done = 'Done',\n Error = 'Error',\n}\n\nexport type WidgetStream = Partial<{\n borrowFlowrate: string\n durationInSeconds: number\n}>\n\nexport type MultisendPayload = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n addresses: any[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callData: any[]\n}\n\nexport type WidgetState = {\n step?: WIDGET_STEP\n type?: WIDGET_TYPE\n approval?: Approval\n borrowAmount?: number\n borrowAmountBN?: JSON\n chargedFees?: number\n borrowAmountNet?: number\n remainder?: number\n paymentAmount?: number\n remainDueAmount?: number\n supplyAmount?: number\n withdrawAmount?: number\n withdrawShares?: number\n redeemAmount?: number\n redeemShares?: number\n errorMessage?: string\n errorReason?: string\n tokenId?: string\n stream?: WidgetStream\n multisend?: MultisendPayload\n solanaSignature?: string\n pointsAccumulated?: number\n txHash?: string\n}\n\nexport const initialWidgetState: WidgetState = {}\n","import { Approval } from '@huma-finance/shared'\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\n\nimport {\n initialWidgetState,\n MultisendPayload,\n WIDGET_STEP,\n WidgetStream,\n} from './widgets.store'\n\nexport const widgetSlice = createSlice({\n name: 'widget',\n initialState: initialWidgetState,\n reducers: {\n resetState: (state) => {\n state.errorReason = ''\n state.errorMessage = ''\n state.step = undefined\n state.approval = undefined\n state.borrowAmount = undefined\n state.borrowAmountBN = undefined\n state.chargedFees = undefined\n state.borrowAmountNet = undefined\n state.remainder = undefined\n state.tokenId = undefined\n state.paymentAmount = undefined\n state.remainDueAmount = undefined\n state.stream = undefined\n state.multisend = undefined\n state.supplyAmount = undefined\n state.withdrawAmount = undefined\n state.withdrawShares = undefined\n state.redeemAmount = undefined\n state.redeemShares = undefined\n state.solanaSignature = undefined\n state.txHash = undefined\n },\n setStep: (state, { payload }: PayloadAction<WIDGET_STEP>) => {\n state.step = payload\n },\n setApproval: (\n state,\n { payload }: PayloadAction<Approval & { nextStep: WIDGET_STEP }>,\n ) => {\n state.approval = payload\n if (Number(payload.terms.creditLimit) > 0) {\n state.step = payload.nextStep\n } else {\n state.errorMessage =\n 'Sorry, there was an error with your transaction. Please try submitting again.'\n state.step = WIDGET_STEP.Error\n }\n },\n setBorrowInfo: (\n state,\n {\n payload,\n }: PayloadAction<{\n borrowAmount: number\n borrowAmountBN: JSON\n chargedFees: number\n nextStep: WIDGET_STEP\n remainder?: number\n }>,\n ) => {\n state.borrowAmount = payload.borrowAmount\n state.borrowAmountBN = payload.borrowAmountBN\n state.remainder = payload.remainder\n state.chargedFees = payload.chargedFees\n state.borrowAmountNet = payload.borrowAmount - payload.chargedFees\n state.step = payload.nextStep\n },\n setTokenId: (state, { payload }: PayloadAction<string>) => {\n state.tokenId = payload\n },\n setPaymentAmount: (\n state,\n {\n payload,\n }: PayloadAction<{ paymentAmount: number; remainDueAmount?: number }>,\n ) => {\n state.paymentAmount = payload.paymentAmount\n state.remainDueAmount = payload.remainDueAmount\n },\n setSupplyAmount: (state, { payload }: PayloadAction<number>) => {\n state.supplyAmount = payload\n },\n setWithdrawAmount: (state, { payload }: PayloadAction<number>) => {\n state.withdrawAmount = payload\n },\n setWithdrawShares: (state, { payload }: PayloadAction<number>) => {\n state.withdrawShares = payload\n },\n setRedeemAmount: (state, { payload }: PayloadAction<number>) => {\n state.redeemAmount = payload\n },\n setRedeemShares: (state, { payload }: PayloadAction<number>) => {\n state.redeemShares = payload\n },\n setStream: (state, { payload }: PayloadAction<WidgetStream>) => {\n const stream = state.stream ?? {}\n state.stream = { ...stream, ...payload }\n },\n setMultisend: (state, { payload }: PayloadAction<MultisendPayload>) => {\n state.multisend = payload\n },\n setSolanaSignature: (state, { payload }: PayloadAction<string>) => {\n state.solanaSignature = payload\n },\n setTxHash: (state, { payload }: PayloadAction<string>) => {\n state.txHash = payload\n },\n setPointsAccumulated: (\n state,\n { payload }: PayloadAction<number | undefined>,\n ) => {\n state.pointsAccumulated = payload\n },\n setError: (\n state,\n {\n payload,\n }: PayloadAction<{ errorMessage: string; errorReason?: string }>,\n ) => {\n state.errorMessage = payload.errorMessage\n state.errorReason = payload.errorReason\n state.step = WIDGET_STEP.Error\n },\n },\n})\n\nexport const {\n resetState,\n setStep,\n setApproval,\n setBorrowInfo,\n setError,\n setTokenId,\n setPaymentAmount,\n setStream,\n setMultisend,\n setSupplyAmount,\n setWithdrawAmount,\n setWithdrawShares,\n setRedeemAmount,\n setRedeemShares,\n setSolanaSignature,\n setTxHash,\n setPointsAccumulated,\n} = widgetSlice.actions\n\nexport default widgetSlice.reducer\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"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=\"","import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'\nimport { Box, Button, css, Tooltip, Typography, useTheme } from '@mui/material'\nimport { txAtom } from '@huma-finance/web-shared'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback } from 'react'\n\nimport { openInNewTab } from '@huma-finance/shared'\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { resetState } from '../store/widgets.reducers'\nimport { SorryImg } from './images'\n\ntype Props = {\n title: string\n errorReason?: string\n errorMessage?: string\n errorUrl?: string\n handleOk: () => void\n okText?: string\n shouldResetState?: boolean\n}\n\nexport function ErrorModal({\n title,\n errorReason,\n errorMessage,\n errorUrl,\n handleOk,\n okText = 'OKAY',\n shouldResetState = true,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const reset = useResetAtom(txAtom)\n\n if (!errorReason) {\n errorReason = 'Oops! Something went wrong'\n }\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n sorry: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(12)};\n margin-right: ${theme.spacing(4)};\n & > img {\n width: 170px;\n }\n `,\n content: css`\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ${theme.spacing(2, 0)};\n position: relative;\n margin-top: ${theme.spacing(9)};\n height: 79px;\n `,\n errorIcon: css`\n position: absolute;\n font-size: 20px;\n color: ${theme.palette.error.main};\n margin: ${theme.spacing(0, 2)};\n `,\n messageWrapper: css`\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n padding-left: ${theme.spacing(6)};\n `,\n errorMessage: css`\n margin-top: ${theme.spacing(0.5)};\n font-size: 14px;\n font-weight: 400;\n color: ${theme.palette.text.primary};\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: ${theme.spacing(2)};\n `,\n bottomButtonGroup: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n row-gap: ${theme.spacing(1)};\n column-gap: ${theme.spacing(1)};\n\n button {\n height: 40px;\n margin-top: ${theme.spacing(1)};\n }\n `,\n }\n\n const handleCloseModal = useCallback(() => {\n reset()\n handleOk()\n if (shouldResetState) {\n dispatch(resetState())\n }\n }, [dispatch, handleOk, reset, shouldResetState])\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n {title}\n </Typography>\n <Box css={styles.sorry}>\n <img src={SorryImg} alt='sorry' />\n </Box>\n <Box css={styles.content}>\n <ErrorOutlineIcon css={styles.errorIcon} />\n <Box css={styles.messageWrapper}>\n <Box>{errorReason}</Box>\n <Tooltip title={errorMessage} placement='top'>\n <Box css={styles.errorMessage}>{errorMessage}</Box>\n </Tooltip>\n </Box>\n </Box>\n <Box css={styles.bottomButtonGroup}>\n {errorUrl && (\n <Button\n variant='outlined'\n fullWidth\n onClick={() => openInNewTab(errorUrl)}\n >\n SEE DETAILS\n </Button>\n )}\n <Button variant='contained' fullWidth onClick={handleCloseModal}>\n {okText}\n </Button>\n </Box>\n </Box>\n )\n}\n","import { css } from '@emotion/react'\nimport { Dialog } from '@mui/material'\nimport { useMQ } from '@huma-finance/web-shared'\nimport React from 'react'\n\ntype HumaModalType = {\n children?: React.ReactNode\n isOpen: boolean\n onClose: () => void\n overflow?: string\n overflowY?: 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto'\n width?: string\n padding?: string\n disableBackdropClick?: boolean\n}\n\nexport function HumaModal({\n children,\n isOpen,\n onClose,\n overflow,\n overflowY,\n width = '480px',\n padding = '32px',\n disableBackdropClick = false,\n}: HumaModalType): React.ReactElement {\n const { isXsSize } = useMQ()\n\n const styles = {\n wrapper: css`\n max-width: 100vw;\n width: ${isXsSize ? '100%' : width};\n height: auto;\n padding: ${padding};\n box-sizing: border-box;\n `,\n }\n\n const handleClose = (reason: 'backdropClick' | 'escapeKeyDown') => {\n if (!disableBackdropClick) {\n onClose()\n } else if (reason !== 'backdropClick' && reason !== 'escapeKeyDown') {\n onClose()\n }\n }\n\n return (\n <Dialog\n id='huma-modal'\n disableScrollLock\n maxWidth={false}\n fullScreen={isXsSize}\n open={isOpen}\n PaperProps={{\n style: {\n border: '1px solid #202020',\n background: 'rgba(255, 255, 255, 0.05)',\n backdropFilter: 'blur(50px)',\n borderRadius: '16px',\n overflow: overflow || 'inherit',\n overflowY: overflowY || 'inherit',\n },\n }}\n onClose={(event, reason) => handleClose(reason)}\n >\n <div css={styles.wrapper}>{children}</div>\n </Dialog>\n )\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { css } from '@emotion/react'\nimport ChevronLeftOutlinedIcon from '@mui/icons-material/ChevronLeftOutlined'\nimport CloseIcon from '@mui/icons-material/Close'\nimport { useTheme } from '@mui/material'\nimport React from 'react'\n\ntype HumaModalHeaderType = {\n allowBack?: boolean\n children?: React.ReactNode\n hideClose?: boolean\n onBack?: () => void\n onClose: () => void\n title?: React.ReactNode\n height?: number\n}\n\nexport function HumaModalHeader({\n hideClose,\n allowBack,\n onBack = (): void => {},\n onClose,\n height = 52,\n ...props\n}: HumaModalHeaderType): React.ReactElement {\n const theme = useTheme()\n const styles = {\n buttonBackWrapper: css`\n cursor: pointer;\n position: absolute;\n left: ${theme.spacing(2)};\n top: ${theme.spacing(3)};\n `,\n buttonClose: css`\n &:hover {\n stroke: ${theme.palette.grey[200]};\n }\n stroke: ${theme.palette.common.white};\n `,\n buttonCloseWrapper: css`\n cursor: pointer;\n position: absolute;\n right: ${theme.spacing(3)};\n top: ${theme.spacing(3)};\n z-index: 1;\n `,\n headerBand: css`\n height: ${height}px;\n `,\n }\n\n return (\n <div>\n <div css={styles.headerBand}>\n {props.title}\n {!!allowBack && (\n <div css={styles.buttonBackWrapper} onClick={onBack}>\n <ChevronLeftOutlinedIcon height={16} width={16} />\n </div>\n )}\n {!hideClose && (\n <div css={styles.buttonCloseWrapper} onClick={onClose}>\n <CloseIcon css={styles.buttonClose} height={16} width={16} />\n </div>\n )}\n </div>\n <div>{props.children}</div>\n </div>\n )\n}\n","import { supportedChainId } from '@huma-finance/shared'\nimport { useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { useEffect, useState } from 'react'\n\nimport { WCProps } from '../utilTypes'\nimport { ErrorModal } from './ErrorModal'\nimport { HumaModal, HumaModalHeader } from './humaModal'\n\nexport function ChainSupportProvider({\n children,\n}: WCProps): React.ReactElement | null {\n const theme = useTheme()\n const { chainId } = useWeb3React()\n const chainSupported = !!supportedChainId(chainId)\n const [chainNotSupportedOpen, setChainNotSupportedOpen] = useState(false)\n\n useEffect(() => {\n setChainNotSupportedOpen(!chainSupported)\n }, [chainSupported])\n\n const handleClose = () => {\n setChainNotSupportedOpen(false)\n }\n\n if (!chainId) {\n return null\n }\n\n if (chainSupported) {\n return children as React.ReactElement\n }\n\n return (\n <HumaModal\n isOpen={chainNotSupportedOpen}\n overflowY='auto'\n onClose={handleClose}\n width='480px'\n padding={theme.spacing(4, 5)}\n disableBackdropClick\n >\n <HumaModalHeader onClose={handleClose} height={0} />\n <ErrorModal\n title='Network Not Supported'\n errorReason='Please switch to a supported network.'\n handleOk={handleClose}\n okText='Close'\n />\n </HumaModal>\n )\n}\n","import { RootState } from '.'\n\nexport const selectWidgetState = (state: RootState) => state.widget\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18%2017H6V15H18V17ZM18%2013H6V11H18V13ZM18%209H6V7H18V9ZM3%2022L4.5%2020.5L6%2022L7.5%2020.5L9%2022L10.5%2020.5L12%2022L13.5%2020.5L15%2022L16.5%2020.5L18%2022L19.5%2020.5L21%2022V2L19.5%203.5L18%202L16.5%203.5L15%202L13.5%203.5L12%202L10.5%203.5L9%202L7.5%203.5L6%202L4.5%203.5L3%202V22Z%22%20fill%3D%22%2376707E%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20id%3D%22huma-loader%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2081%2080%22%3E%20%20%3Cpath%20stroke%3D%22url%28%23SS%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M40.976%200v26.34%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23bbb%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M42.877%2026.471%2046.542.39%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23dd%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m44.742%2026.866%207.26-25.317%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ff%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m46.533%2027.518%2010.712-24.06%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23hh%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M48.215%2028.414%2062.172%206.078%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23jj%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M49.756%2029.536%2066.687%209.358%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ll%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m51.127%2030.86%2019.575-17.625%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23nn%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m52.302%2032.36%2021.835-14.728%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23pp%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m53.256%2034.01%2023.671-11.545%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23rr%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m53.97%2035.778%2025.049-8.139%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23tt%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m54.43%2037.628%2025.938-4.574%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23vv%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m54.627%2039.523%2026.324-.92%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23xx%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m80.756%2044.181-26.194-2.753%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23zz%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m79.787%2049.677-25.555-6.372%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23BB%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m78.063%2054.984-24.419-9.866%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23DD%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m75.617%2060-22.81-13.169%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23FF%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M72.496%2064.627%2051.74%2048.41%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23HH%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M68.763%2068.774%2050.465%2049.826%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23JJ%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M64.487%2072.36%2049.005%2051.053%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23LL%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M59.754%2075.318%2047.39%2052.063%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23NN%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M54.657%2077.588%2045.649%2052.84%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23PP%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m49.292%2079.126-5.476-25.762%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23RR%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m43.766%2079.903-1.837-26.276%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23aaa%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m38.185%2079.903%201.838-26.276%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ccc%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m32.66%2079.126%205.475-25.762%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ee%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m27.295%2077.588%209.007-24.748%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23gg%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m22.196%2075.318%2012.365-23.255%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ii%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m17.464%2072.36%2015.482-21.308%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23kk%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m13.188%2068.774%2018.298-18.948%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23mm%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M9.455%2064.627%2030.211%2048.41%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23oo%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m6.334%2060%2022.81-13.169%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23qq%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m3.889%2054.984%2024.418-9.866%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ss%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m2.164%2049.677%2025.555-6.372%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23uu%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22m1.194%2044.181%2026.195-2.753%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23ww%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M27.324%2039.523%201%2038.603%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23yy%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M27.52%2037.628%201.584%2033.054%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23AA%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M27.98%2035.778%202.934%2027.639%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23CC%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M28.695%2034.01%205.023%2022.465%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23EE%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M29.65%2032.36%207.814%2017.632%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23GG%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M30.825%2030.86%2011.25%2013.235%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23II%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M32.195%2029.536%2015.264%209.358%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23KK%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M33.736%2028.414%2019.778%206.078%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23MM%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M35.418%2027.518%2024.706%203.458%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23OO%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M37.21%2026.866%2029.95%201.549%22%2F%3E%20%20%3Cpath%20stroke%3D%22url%28%23QQ%29%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.5%22%20d%3D%22M39.075%2026.471%2035.409.39%22%2F%3E%20%20%3Cdefs%3E%20%20%20%20%3ClinearGradient%20id%3D%22aaa%22%20x1%3D%2240.023%22%20x2%3D%2234.391%22%20y1%3D%2256.16%22%20y2%3D%2256.46%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22bbb%22%20x1%3D%2246.542%22%20x2%3D%2235.401%22%20y1%3D%222.903%22%20y2%3D%224.096%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ccc%22%20x1%3D%2238.135%22%20x2%3D%2221.729%22%20y1%3D%2255.847%22%20y2%3D%2258.503%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22dd%22%20x1%3D%2252.002%22%20x2%3D%2230.699%22%20y1%3D%223.989%22%20y2%3D%228.642%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ee%22%20x1%3D%2236.302%22%20x2%3D%2210.586%22%20y1%3D%2255.225%22%20y2%3D%2262.354%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ff%22%20x1%3D%2257.245%22%20x2%3D%2227.708%22%20y1%3D%225.777%22%20y2%3D%2215.793%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22gg%22%20x1%3D%2234.561%22%20x2%3D%221.902%22%20y1%3D%2254.305%22%20y2%3D%2267.53%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22hh%22%20x1%3D%2262.172%22%20x2%3D%2227.185%22%20y1%3D%228.231%22%20y2%3D%2224.881%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ii%22%20x1%3D%2232.946%22%20x2%3D%22-3.495%22%20y1%3D%2253.106%22%20y2%3D%2273.27%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22jj%22%20x1%3D%2266.687%22%20x2%3D%2229.728%22%20y1%3D%2211.303%22%20y2%3D%2234.922%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22kk%22%20x1%3D%2231.486%22%20x2%3D%22-5.021%22%20y1%3D%2251.653%22%20y2%3D%2278.503%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ll%22%20x1%3D%2270.702%22%20x2%3D%2235.621%22%20y1%3D%2214.934%22%20y2%3D%2244.607%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22mm%22%20x1%3D%2230.211%22%20x2%3D%22-2.509%22%20y1%3D%2249.974%22%20y2%3D%2281.869%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22nn%22%20x1%3D%2274.137%22%20x2%3D%2244.628%22%20y1%3D%2219.052%22%20y2%3D%2252.371%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22oo%22%20x1%3D%2229.143%22%20x2%3D%223.551%22%20y1%3D%2248.1%22%20y2%3D%2281.86%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22pp%22%20x1%3D%2276.927%22%20x2%3D%2255.762%22%20y1%3D%2223.578%22%20y2%3D%2256.629%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22qq%22%20x1%3D%2228.307%22%20x2%3D%2211.82%22%20y1%3D%2246.069%22%20y2%3D%2277.149%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22rr%22%20x1%3D%2279.019%22%20x2%3D%2267.161%22%20y1%3D%2228.424%22%20y2%3D%2256.218%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ss%22%20x1%3D%2227.719%22%20x2%3D%2220.115%22%20y1%3D%2243.919%22%20y2%3D%2267.15%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22tt%22%20x1%3D%2280.368%22%20x2%3D%2276.311%22%20y1%3D%2233.495%22%20y2%3D%2251.018%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22uu%22%20x1%3D%2227.389%22%20x2%3D%2225.884%22%20y1%3D%2241.694%22%20y2%3D%2252.599%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22vv%22%20x1%3D%2280.951%22%20x2%3D%2280.781%22%20y1%3D%2238.692%22%20y2%3D%2242.397%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22ww%22%20x1%3D%2227.324%22%20x2%3D%2227.154%22%20y1%3D%2238.692%22%20y2%3D%2242.397%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22xx%22%20x1%3D%2280.756%22%20x2%3D%2279.251%22%20y1%3D%2241.694%22%20y2%3D%2252.599%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22yy%22%20x1%3D%2227.521%22%20x2%3D%2223.464%22%20y1%3D%2233.495%22%20y2%3D%2251.018%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22zz%22%20x1%3D%2279.787%22%20x2%3D%2272.183%22%20y1%3D%2243.919%22%20y2%3D%2267.15%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22AA%22%20x1%3D%2227.981%22%20x2%3D%2216.123%22%20y1%3D%2228.424%22%20y2%3D%2256.218%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22BB%22%20x1%3D%2278.063%22%20x2%3D%2261.576%22%20y1%3D%2246.069%22%20y2%3D%2277.149%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22CC%22%20x1%3D%2228.695%22%20x2%3D%227.529%22%20y1%3D%2223.578%22%20y2%3D%2256.629%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22DD%22%20x1%3D%2275.617%22%20x2%3D%2250.025%22%20y1%3D%2248.1%22%20y2%3D%2281.86%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22EE%22%20x1%3D%2229.649%22%20x2%3D%22.14%22%20y1%3D%2219.052%22%20y2%3D%2252.371%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22FF%22%20x1%3D%2272.496%22%20x2%3D%2239.777%22%20y1%3D%2249.974%22%20y2%3D%2281.869%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22GG%22%20x1%3D%2230.825%22%20x2%3D%22-4.256%22%20y1%3D%2214.934%22%20y2%3D%2244.607%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22HH%22%20x1%3D%2268.763%22%20x2%3D%2232.255%22%20y1%3D%2251.653%22%20y2%3D%2278.503%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22II%22%20x1%3D%2232.195%22%20x2%3D%22-4.765%22%20y1%3D%2211.303%22%20y2%3D%2234.922%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22JJ%22%20x1%3D%2264.487%22%20x2%3D%2228.046%22%20y1%3D%2253.106%22%20y2%3D%2273.27%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22KK%22%20x1%3D%2233.736%22%20x2%3D%22-1.251%22%20y1%3D%228.231%22%20y2%3D%2224.881%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22LL%22%20x1%3D%2259.754%22%20x2%3D%2227.096%22%20y1%3D%2254.305%22%20y2%3D%2267.53%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22MM%22%20x1%3D%2235.418%22%20x2%3D%225.881%22%20y1%3D%225.777%22%20y2%3D%2215.793%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22NN%22%20x1%3D%2254.657%22%20x2%3D%2228.94%22%20y1%3D%2255.225%22%20y2%3D%2262.354%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22OO%22%20x1%3D%2237.21%22%20x2%3D%2215.907%22%20y1%3D%223.989%22%20y2%3D%228.642%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22PP%22%20x1%3D%2249.292%22%20x2%3D%2232.887%22%20y1%3D%2255.847%22%20y2%3D%2258.503%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22QQ%22%20x1%3D%2239.075%22%20x2%3D%2227.933%22%20y1%3D%222.903%22%20y2%3D%224.096%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22RR%22%20x1%3D%2243.766%22%20x2%3D%2238.134%22%20y1%3D%2256.16%22%20y2%3D%2256.46%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%20%20%3ClinearGradient%20id%3D%22SS%22%20x1%3D%2241.976%22%20x2%3D%2238.904%22%20y1%3D%222.539%22%20y2%3D%222.628%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%237632E0%22%2F%3E%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FE557A%22%2F%3E%20%20%20%20%3C%2FlinearGradient%3E%20%20%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22120%22%20height%3D%22120%22%20viewBox%3D%220%200%20120%20120%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20cx%3D%2260%22%20cy%3D%2260%22%20r%3D%2260%22%20fill%3D%22%23F7F1FF%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M83.7014%2047.556L69.2159%2062.0532L54.7304%2076.5504C54.4962%2076.7143%2054.2854%2076.8314%2054.0044%2076.8314C53.7233%2076.8314%2053.5126%2076.7143%2053.2784%2076.5504L36.2986%2059.5472C35.9005%2059.1725%2035.9005%2058.4933%2036.2986%2058.1185L39.9375%2054.3438C40.3122%2053.969%2040.9914%2053.969%2041.3661%2054.3438L54.0044%2066.8436L78.4464%2042.281C78.8211%2041.9063%2079.5003%2041.9063%2079.875%2042.281L83.7014%2046.1273C84.0995%2046.5021%2084.0995%2047.1812%2083.7014%2047.556Z%22%20fill%3D%22url%28%23paint0_linear_158_26261%29%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22paint0_linear_158_26261%22%20x1%3D%2284%22%20y1%3D%2245.3572%22%20x2%3D%2213.7792%22%20y2%3D%22119.057%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23A363F4%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF6A8A%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%3E%20%20%3Cpath%20fill%3D%22%2345CB71%22%20fill-rule%3D%22evenodd%22%20d%3D%22m20.888%207.333-5.432%205.437-5.432%205.436a.458.458%200%200%201-.272.106.458.458%200%200%201-.273-.106L3.112%2011.83a.376.376%200%200%201%200-.536L4.477%209.88c.14-.14.395-.14.535%200l4.74%204.687%209.165-9.21a.392.392%200%200%201%20.536%200l1.435%201.442c.15.14.15.395%200%20.535Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2222%22%20height%3D%2222%22%20fill%3D%22none%22%20viewBox%3D%220%200%2022%2022%22%3E%20%20%3Cpath%20fill%3D%22%232E7D32%22%20d%3D%22m15.207%206.948-6.04%206.041-3.291-3.282L4.583%2011l4.583%204.583L16.5%208.25l-1.293-1.302ZM11%201.833C5.94%201.833%201.833%205.94%201.833%2011S5.94%2020.167%2011%2020.167%2020.166%2016.06%2020.166%2011%2016.06%201.833%2011%201.833Zm0%2016.5A7.331%207.331%200%200%201%203.666%2011%207.331%207.331%200%200%201%2011%203.667%207.331%207.331%200%200%201%2018.333%2011%207.331%207.331%200%200%201%2011%2018.333Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20data-name%3D%2286977684-12db-4850-8f30-233a7c267d11%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%202000%202000%22%3E%20%20%3Cpath%20d%3D%22M1000%202000c554.17%200%201000-445.83%201000-1000S1554.17%200%201000%200%200%20445.83%200%201000s445.83%201000%201000%201000z%22%20fill%3D%22%232775ca%22%2F%3E%20%20%3Cpath%20d%3D%22M1275%201158.33c0-145.83-87.5-195.83-262.5-216.66-125-16.67-150-50-150-108.34s41.67-95.83%20125-95.83c75%200%20116.67%2025%20137.5%2087.5%204.17%2012.5%2016.67%2020.83%2029.17%2020.83h66.66c16.67%200%2029.17-12.5%2029.17-29.16v-4.17c-16.67-91.67-91.67-162.5-187.5-170.83v-100c0-16.67-12.5-29.17-33.33-33.34h-62.5c-16.67%200-29.17%2012.5-33.34%2033.34v95.83c-125%2016.67-204.16%20100-204.16%20204.17%200%20137.5%2083.33%20191.66%20258.33%20212.5%20116.67%2020.83%20154.17%2045.83%20154.17%20112.5s-58.34%20112.5-137.5%20112.5c-108.34%200-145.84-45.84-158.34-108.34-4.16-16.66-16.66-25-29.16-25h-70.84c-16.66%200-29.16%2012.5-29.16%2029.17v4.17c16.66%20104.16%2083.33%20179.16%20220.83%20200v100c0%2016.66%2012.5%2029.16%2033.33%2033.33h62.5c16.67%200%2029.17-12.5%2033.34-33.33v-100c125-20.84%20208.33-108.34%20208.33-220.84z%22%20fill%3D%22%23fff%22%2F%3E%20%20%3Cpath%20d%3D%22M787.5%201595.83c-325-116.66-491.67-479.16-370.83-800%2062.5-175%20200-308.33%20370.83-370.83%2016.67-8.33%2025-20.83%2025-41.67V325c0-16.67-8.33-29.17-25-33.33-4.17%200-12.5%200-16.67%204.16-395.83%20125-612.5%20545.84-487.5%20941.67%2075%20233.33%20254.17%20412.5%20487.5%20487.5%2016.67%208.33%2033.34%200%2037.5-16.67%204.17-4.16%204.17-8.33%204.17-16.66v-58.34c0-12.5-12.5-29.16-25-37.5zM1229.17%20295.83c-16.67-8.33-33.34%200-37.5%2016.67-4.17%204.17-4.17%208.33-4.17%2016.67v58.33c0%2016.67%2012.5%2033.33%2025%2041.67%20325%20116.66%20491.67%20479.16%20370.83%20800-62.5%20175-200%20308.33-370.83%20370.83-16.67%208.33-25%2020.83-25%2041.67V1700c0%2016.67%208.33%2029.17%2025%2033.33%204.17%200%2012.5%200%2016.67-4.16%20395.83-125%20612.5-545.84%20487.5-941.67-75-237.5-258.34-416.67-487.5-491.67z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20%20viewBox%3D%220%200%20250%20250%22%20style%3D%22enable-background%3Anew%200%200%20250%20250%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.stcelo%7Bfill%3A%23FCFF52%3B%7D%3C%2Fstyle%3E%3Ccircle%20class%3D%22stcelo%22%20cx%3D%22125%22%20cy%3D%22125%22%20r%3D%22125%22%2F%3E%3Cpath%20d%3D%22M188.9%2C60.7H60.7v128.2h128.2v-44.8h-21.3c-7.3%2C16.3-23.8%2C27.7-42.7%2C27.7c-26%2C0-47.1-21.3-47.1-47.1c0-25.9%2C21.1-47%2C47.1-47%20c19.3%2C0%2C35.8%2C11.7%2C43.1%2C28.4h20.9V60.7z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20468%20213%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M398.09%2073.0033C396.974%2072.3286%20395.798%2071.7584%20394.578%2071.3C393.928%2071.0873%20393.251%2070.968%20392.567%2070.9458C391.782%2070.9078%20390.998%2071.0555%20390.281%2071.377C389.452%2071.7705%20388.744%2072.38%20388.231%2073.1416C387.719%2073.9032%20387.421%2074.7886%20387.37%2075.705C387.372%2076.8094%20387.652%2077.8955%20388.181%2078.8644C388.646%2079.8565%20389.202%2080.8061%20389.585%2081.8374C389.548%2081.7336%20389.512%2081.6298%20389.476%2081.526C389.652%2081.9657%20389.771%2082.4262%20389.829%2082.8962C389.793%2082.7924%20389.807%2082.6815%20389.789%2082.5711C389.819%2082.8256%20389.816%2083.0827%20389.782%2083.3366C389.796%2083.2257%20389.811%2083.1147%20389.834%2083.0005C389.796%2083.2126%20389.734%2083.4195%20389.648%2083.617L389.788%2083.2922C389.707%2083.4779%20389.6%2083.651%20389.47%2083.8064L389.684%2083.5405C389.507%2083.7539%20389.303%2083.9432%20389.077%2084.1035L389.349%2083.9127C389.111%2084.0739%20388.856%2084.2093%20388.59%2084.3168L388.901%2084.2075C388.641%2084.2986%20388.371%2084.3612%20388.097%2084.3941L388.426%2084.3636C388.07%2084.3995%20387.71%2084.3903%20387.357%2084.3361L387.693%2084.3878C387.316%2084.3269%20386.95%2084.2167%20386.603%2084.0602L386.918%2084.2039C385.746%2083.672%20384.756%2082.8431%20383.512%2082.3787C382.976%2082.1937%20382.413%2082.1009%20381.847%2082.1044C381.106%2082.0952%20380.383%2082.3266%20379.785%2082.7637C379.188%2083.2008%20378.748%2083.8201%20378.533%2084.5285C378.332%2085.1147%20378.258%2085.7367%20378.315%2086.3536C378.406%2087.3366%20378.627%2088.3031%20378.973%2089.2276C379.34%2090.1642%20379.603%2091.1378%20379.759%2092.1313C379.722%2092.0275%20379.737%2091.9166%20379.719%2091.8062C379.77%2092.246%20379.762%2092.6907%20379.696%2093.1285L379.747%2092.7925C379.693%2093.1438%20379.597%2093.4873%20379.46%2093.8154L379.603%2093.5C379.491%2093.7418%20379.35%2093.9691%20379.184%2094.1771L379.407%2093.9079C379.272%2094.0601%20379.122%2094.1981%20378.958%2094.3198L379.23%2094.1289C379.052%2094.2447%20378.863%2094.343%20378.666%2094.4224L378.977%2094.3131C378.734%2094.404%20378.48%2094.4612%20378.221%2094.4832L378.567%2094.3512C378.23%2094.3767%20377.891%2094.364%20377.557%2094.3133L377.884%2094.3683C377.392%2094.282%20376.914%2094.1288%20376.463%2093.913L376.778%2094.0567C375.982%2093.6897%20375.231%2093.2113%20374.438%2092.8221C373.629%2092.4018%20372.752%2092.1317%20371.847%2092.0247C370.991%2091.927%20370.125%2092.094%20369.366%2092.5033C368.571%2092.9697%20367.961%2093.6965%20367.64%2094.5608C367.474%2094.9893%20367.386%2095.4436%20367.379%2095.9027C367.38%2096.45%20367.487%2096.992%20367.695%2097.4981C367.776%2097.6504%20367.887%2097.7846%20368.021%2097.8924C368.156%2098.0001%20368.311%2098.0792%20368.477%2098.1247C368.794%2098.2235%20369.137%2098.1962%20369.435%2098.0484C369.732%2097.9005%20369.961%2097.6436%20370.074%2097.331L370.129%2097.0044C370.138%2096.7826%20370.087%2096.5626%20369.98%2096.3679C370.016%2096.4717%20370.053%2096.5755%20370.089%2096.6793C370.023%2096.4891%20369.975%2096.2928%20369.947%2096.0933C369.984%2096.1971%20369.973%2096.3174%20369.987%2096.4184C369.964%2096.1878%20369.968%2095.9553%20369.998%2095.7256C369.987%2095.8355%20369.969%2095.9446%20369.943%2096.0522C369.989%2095.8075%20370.061%2095.5688%20370.16%2095.3404L370.016%2095.6557C370.122%2095.4295%20370.253%2095.2162%20370.408%2095.0202L370.185%2095.2894C370.324%2095.1248%20370.482%2094.9769%20370.655%2094.8487L370.383%2095.0396C370.557%2094.9158%20370.747%2094.817%20370.948%2094.7461L370.636%2094.8553C370.869%2094.7738%20371.11%2094.7211%20371.355%2094.6985L371.026%2094.729C371.36%2094.6981%20371.697%2094.712%20372.027%2094.7702L371.7%2094.7153C372.194%2094.8042%20372.675%2094.9561%20373.13%2095.1672L372.815%2095.0235C374.041%2095.7318%20375.32%2096.3461%20376.639%2096.861C377.239%2097.0409%20377.867%2097.1114%20378.492%2097.0691C379.19%2097.041%20379.87%2096.8355%20380.466%2096.472C380.866%2096.2027%20381.218%2095.8679%20381.507%2095.4816C381.742%2095.1434%20381.93%2094.7743%20382.065%2094.3848C382.286%2093.7785%20382.395%2093.137%20382.386%2092.4917C382.353%2091.4311%20382.147%2090.383%20381.775%2089.3892C381.374%2088.3797%20381.087%2087.3288%20380.919%2086.2558C380.952%2086.3502%20380.989%2086.4539%20380.949%2086.5842C380.912%2086.2295%20380.918%2085.8714%20380.968%2085.5181L380.913%2085.8447C380.954%2085.5794%20381.031%2085.3207%20381.141%2085.0758L380.997%2085.3912C381.081%2085.2016%20381.19%2085.0243%20381.321%2084.8642L381.097%2085.1334C381.213%2084.9914%20381.347%2084.8658%20381.496%2084.7603L381.224%2084.9511C381.367%2084.8555%20381.521%2084.7767%20381.682%2084.7162L381.371%2084.8255C381.561%2084.7573%20381.759%2084.7127%20381.96%2084.6929L381.632%2084.7234C381.901%2084.7034%20382.172%2084.7151%20382.439%2084.7581C382.329%2084.7465%20382.22%2084.7282%20382.112%2084.7032C382.498%2084.7743%20382.873%2084.8916%20383.231%2085.0524L382.916%2084.9088C383.648%2085.2451%20384.27%2085.7477%20385.016%2086.1219C385.815%2086.5783%20386.705%2086.8557%20387.622%2086.9348C388.47%2086.999%20389.32%2086.8361%20390.085%2086.4629C390.701%2086.1513%20391.24%2085.7051%20391.661%2085.1572C391.971%2084.7217%20392.186%2084.2266%20392.295%2083.7034C392.403%2083.1801%20392.401%2082.6401%20392.29%2082.1175C392.114%2081.1783%20391.796%2080.2714%20391.347%2079.4282C390.912%2078.5211%20390.411%2077.6371%20390.061%2076.7001C390.097%2076.8039%20390.134%2076.9077%20390.17%2077.0115C390.027%2076.6526%20389.931%2076.2768%20389.884%2075.8932C389.92%2075.997%20389.906%2076.1079%20389.914%2076.2217C389.894%2075.9417%20389.905%2075.6604%20389.948%2075.383C389.925%2075.4972%20389.911%2075.6082%20389.897%2075.7191C389.947%2075.3771%20390.044%2075.0435%20390.185%2074.7278L390.044%2075.0526C390.184%2074.737%20390.366%2074.4417%20390.584%2074.1744L390.361%2074.4436C390.566%2074.1939%20390.8%2073.9694%20391.059%2073.7748L390.786%2073.9656C391.042%2073.788%20391.319%2073.6443%20391.611%2073.5384L391.3%2073.6476C391.59%2073.5477%20391.89%2073.4814%20392.195%2073.4501L391.867%2073.4806C392.246%2073.4499%20392.627%2073.4619%20393.003%2073.5165C392.893%2073.5049%20392.784%2073.4866%20392.676%2073.4615C393.41%2073.6026%20394.122%2073.8369%20394.797%2074.1588L394.481%2074.0151C395.249%2074.3604%20395.98%2074.7822%20396.717%2075.1913C397.01%2075.3698%20397.361%2075.4288%20397.697%2075.3562C397.871%2075.318%20398.035%2075.2458%20398.182%2075.1436C398.328%2075.0415%20398.452%2074.9114%20398.547%2074.7609C398.716%2074.4661%20398.762%2074.1173%20398.676%2073.7889C398.591%2073.4605%20398.38%2073.1786%20398.09%2073.0033Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M225.287%2047.5673C224.952%2048.8275%20224.735%2050.1159%20224.637%2051.4161C224.615%2052.0997%20224.691%2052.783%20224.861%2053.4454C225.045%2054.2099%20225.406%2054.9203%20225.916%2055.5189C226.526%2056.2045%20227.31%2056.7131%20228.184%2056.9913C229.059%2057.2694%20229.993%2057.3069%20230.887%2057.0997C231.946%2056.7873%20232.91%2056.2148%20233.692%2055.4345C234.514%2054.7102%20235.269%2053.9105%20236.152%2053.2536C236.062%2053.3177%20235.973%2053.3817%20235.884%2053.4458C236.256%2053.1535%20236.665%2052.9103%20237.1%2052.7221C237.01%2052.7862%20236.9%2052.8038%20236.799%2052.8516C237.035%2052.7521%20237.282%2052.6822%20237.535%2052.6436C237.425%2052.6612%20237.315%2052.6788%20237.198%2052.6883C237.413%2052.6652%20237.629%2052.6673%20237.842%2052.6943L237.491%2052.6506C237.692%2052.6761%20237.888%2052.7303%20238.074%2052.8114L237.759%2052.6805C238.013%2052.7907%20238.252%2052.9338%20238.47%2053.1061L238.21%2052.8984C238.432%2053.0816%20238.633%2053.2879%20238.811%2053.5136L238.619%2053.2454C238.779%2053.4697%20238.915%2053.7108%20239.023%2053.9644L238.902%2053.6576C239.036%2053.9895%20239.128%2054.337%20239.175%2054.6918L239.131%2054.3548C239.178%2054.7329%20239.175%2055.1155%20239.122%2055.4929L239.171%2055.1499C238.989%2056.4242%20238.471%2057.6072%20238.375%2058.9314C238.347%2059.4972%20238.416%2060.0635%20238.578%2060.6062C238.777%2061.3195%20239.202%2061.949%20239.789%2062.4001C240.376%2062.8512%20241.094%2063.0996%20241.834%2063.1078C242.453%2063.1361%20243.071%2063.0329%20243.647%2062.8053C244.565%2062.4423%20245.431%2061.9586%20246.221%2061.3671C247.018%2060.7528%20247.878%2060.2269%20248.788%2059.7987C248.699%2059.8627%20248.588%2059.8803%20248.487%2059.9282C248.895%2059.7561%20249.324%2059.639%20249.763%2059.5799L249.426%2059.6245C249.778%2059.5779%20250.135%2059.5743%20250.489%2059.6137L250.146%2059.5642C250.409%2059.604%20250.667%2059.6754%20250.913%2059.777L250.592%2059.638C250.776%2059.7252%20250.951%2059.8308%20251.113%2059.9534L250.854%2059.7457C251.015%2059.8844%20251.162%2060.0384%20251.294%2060.2054L251.102%2059.9372C251.257%2060.1451%20251.383%2060.3733%20251.477%2060.6155L251.253%2060.3206C251.372%2060.6367%20251.455%2060.9654%20251.5%2061.3002L251.461%2060.9712C251.516%2061.4678%20251.503%2061.9697%20251.423%2062.4628L251.472%2062.1198C251.343%2062.9871%20251.094%2063.8419%20250.943%2064.7128C250.767%2065.6063%20250.753%2066.5244%20250.904%2067.4226C251.051%2068.2723%20251.454%2069.0567%20252.06%2069.6704C252.73%2070.303%20253.599%2070.6844%20254.519%2070.7502C254.976%2070.7888%20255.437%2070.746%20255.88%2070.6239C256.405%2070.47%20256.895%2070.215%20257.322%2069.8732C257.446%2069.7532%20257.544%2069.6091%20257.61%2069.4498C257.675%2069.2906%20257.708%2069.1196%20257.705%2068.9473C257.711%2068.6151%20257.588%2068.2934%20257.363%2068.0492C257.138%2067.805%20256.827%2067.6572%20256.495%2067.6366L256.166%2067.6754C255.951%2067.7289%20255.754%2067.8401%20255.597%2067.9971C255.686%2067.933%20255.776%2067.869%20255.865%2067.8049C255.701%2067.9221%20255.526%2068.0229%20255.343%2068.1056C255.432%2068.0415%20255.55%2068.0181%20255.643%2067.9761C255.429%2068.0629%20255.204%2068.1244%20254.975%2068.1596C255.084%2068.1399%20255.194%2068.1269%20255.304%2068.1207C255.057%2068.146%20254.807%2068.1432%20254.56%2068.1125L254.903%2068.162C254.656%2068.1241%20254.415%2068.0578%20254.183%2067.9643L254.504%2068.1033C254.307%2068.0157%20254.121%2067.9056%20253.949%2067.7751L254.209%2067.9828C254.041%2067.8509%20253.893%2067.6962%20253.769%2067.5231L253.961%2067.7914C253.818%2067.5913%20253.699%2067.3744%20253.609%2067.1455L253.73%2067.4523C253.607%2067.1406%20253.526%2066.8139%20253.49%2066.4808L253.528%2066.8097C253.475%2066.3105%20253.486%2065.8065%20253.561%2065.3101L253.512%2065.6531C253.848%2064.2772%20254.079%2062.8779%20254.203%2061.4671C254.207%2060.8404%20254.099%2060.2181%20253.883%2059.6297C253.66%2058.9677%20253.273%2058.3733%20252.756%2057.9028C252.386%2057.5942%20251.966%2057.3504%20251.514%2057.1815C251.123%2057.0501%20250.716%2056.9732%20250.305%2056.9531C249.661%2056.9109%20249.014%2056.9863%20248.397%2057.1755C247.388%2057.5048%20246.44%2057.997%20245.591%2058.6327C244.734%2059.3002%20243.806%2059.8704%20242.823%2060.3327C242.904%2060.2745%20242.994%2060.2104%20243.13%2060.2114C242.8%2060.347%20242.454%2060.4416%20242.101%2060.493L242.43%2060.4542C242.164%2060.4889%20241.894%2060.4878%20241.628%2060.4507L241.971%2060.5002C241.766%2060.4732%20241.565%2060.4183%20241.375%2060.3371L241.696%2060.4762C241.527%2060.4053%20241.369%2060.3117%20241.226%2060.1979L241.485%2060.4056C241.353%2060.295%20241.234%2060.1696%20241.131%2060.0318L241.323%2060.3C241.205%2060.1365%20241.106%2059.959%20241.031%2059.7715L241.152%2060.0782C241.057%2059.8252%20240.993%2059.5619%20240.959%2059.2938C240.979%2059.4026%20240.992%2059.5124%20240.998%2059.6228C240.958%2059.2327%20240.966%2058.8393%20241.02%2058.451L240.97%2058.794C241.088%2057.9963%20241.396%2057.2589%20241.546%2056.438C241.76%2055.5424%20241.776%2054.6111%20241.595%2053.7084C241.419%2052.8762%20241.024%2052.106%20240.452%2051.4769C239.98%2050.9723%20239.4%2050.5802%20238.756%2050.3297C238.251%2050.1547%20237.716%2050.0864%20237.183%2050.1292C236.65%2050.172%20236.132%2050.3249%20235.662%2050.5783C234.81%2051.0105%20234.029%2051.5702%20233.345%2052.2381C232.596%2052.91%20231.888%2053.6387%20231.087%2054.2374C231.177%2054.1733%20231.266%2054.1092%20231.355%2054.0452C231.051%2054.2833%20230.717%2054.4812%20230.362%2054.6337C230.452%2054.5696%20230.562%2054.552%20230.669%2054.5123C230.406%2054.6102%20230.133%2054.678%20229.854%2054.7146C229.971%2054.7051%20230.081%2054.6875%20230.192%2054.67C229.849%2054.7175%20229.502%2054.718%20229.159%2054.6714L229.51%2054.7151C229.168%2054.6694%20228.834%2054.578%20228.516%2054.4434L228.837%2054.5824C228.54%2054.4552%20228.259%2054.2933%20227.999%2054.1L228.259%2054.3077C228.017%2054.1125%20227.801%2053.8865%20227.617%2053.6356L227.81%2053.9038C227.632%2053.6537%20227.485%2053.384%20227.369%2053.1L227.49%2053.4067C227.355%2053.0518%20227.259%2052.6826%20227.206%2052.3063C227.226%2052.415%20227.239%2052.5249%20227.245%2052.6352C227.175%2051.8914%20227.2%2051.1417%20227.32%2050.4043L227.27%2050.7473C227.387%2049.9137%20227.586%2049.0938%20227.772%2048.2717C227.862%2047.94%20227.82%2047.5867%20227.656%2047.2849C227.571%2047.1285%20227.455%2046.9905%20227.316%2046.879C227.177%2046.7675%20227.017%2046.6846%20226.846%2046.6351C226.516%2046.5563%20226.168%2046.6097%20225.877%2046.7839C225.586%2046.9581%20225.374%2047.2392%20225.287%2047.5673Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M398.389%20-2.57411C397.114%20-2.84631%20395.817%20-3.00012%20394.513%20-3.03359C393.829%20-3.02175%20393.151%20-2.91279%20392.497%20-2.70998C391.743%20-2.48875%20391.051%20-2.09269%20390.479%20-1.55397C389.824%20-0.910692%20389.354%20-0.102958%20389.12%200.784361C388.885%201.67168%20388.894%202.60583%20389.145%203.48866C389.509%204.53122%20390.128%205.46608%20390.946%206.2081C391.71%206.99337%20392.546%207.70863%20393.246%208.55769C393.177%208.47154%20393.109%208.3854%20393.041%208.29925C393.351%208.65707%20393.614%209.05328%20393.823%209.47814C393.755%209.39199%20393.732%209.28258%20393.679%209.18399C393.79%209.41483%20393.872%209.65855%20393.923%209.90956C393.9%209.80015%20393.877%209.69074%20393.862%209.57511C393.896%209.78789%20393.904%2010.0039%20393.888%2010.2187L393.914%209.86579C393.899%2010.0677%20393.854%2010.2663%20393.782%2010.4556L393.898%2010.1343C393.8%2010.394%20393.669%2010.6397%20393.508%2010.8654L393.702%2010.5959C393.53%2010.8261%20393.334%2011.0374%20393.117%2011.2262L393.376%2011.021C393.16%2011.1923%20392.926%2011.3397%20392.678%2011.4604L392.978%2011.3241C392.653%2011.4747%20392.311%2011.5836%20391.958%2011.6483L392.293%2011.5871C391.918%2011.6527%20391.535%2011.6686%20391.156%2011.6344L391.501%2011.6669C390.219%2011.5481%20389.012%2011.0892%20387.685%2011.0577C387.118%2011.0581%20386.556%2011.1548%20386.022%2011.3436C385.319%2011.5773%20384.711%2012.0328%20384.29%2012.6415C383.868%2013.2502%20383.656%2013.9793%20383.684%2014.7192C383.686%2015.3388%20383.82%2015.9508%20384.075%2016.5151C384.483%2017.4141%20385.009%2018.2548%20385.639%2019.015C386.292%2019.78%20386.859%2020.6137%20387.332%2021.5014C387.264%2021.4152%20387.241%2021.3058%20387.188%2021.2072C387.38%2021.6063%20387.518%2022.029%20387.599%2022.4644L387.537%2022.13C387.601%2022.4797%20387.623%2022.8358%20387.601%2023.1906L387.633%2022.8456C387.606%2023.1107%20387.548%2023.3717%20387.458%2023.6227L387.581%2023.2952C387.503%2023.4833%20387.406%2023.6629%20387.292%2023.8314L387.487%2023.5619C387.356%2023.7297%20387.21%2023.8845%20387.049%2024.0241L387.308%2023.8189C387.108%2023.9844%20386.886%2024.1218%20386.649%2024.2272L386.932%2023.9893C386.622%2024.1237%20386.298%2024.2226%20385.966%2024.284L386.293%2024.229C385.799%2024.3087%20385.298%2024.3205%20384.801%2024.2641L385.146%2024.2966C384.273%2024.2106%20383.407%2024.0044%20382.53%2023.8965C381.629%2023.7639%20380.711%2023.796%20379.822%2023.9911C378.98%2024.1792%20378.217%2024.6206%20377.634%2025.2558C377.035%2025.9569%20376.697%2026.8433%20376.676%2027.7651C376.66%2028.224%20376.726%2028.6822%20376.87%2029.1183C377.049%2029.6353%20377.328%2030.1122%20377.691%2030.5222C377.817%2030.6398%20377.965%2030.7303%20378.128%2030.7881C378.29%2030.8459%20378.462%2030.8698%20378.634%2030.8584C378.966%2030.8479%20379.282%2030.7098%20379.514%2030.4726C379.747%2030.2355%20379.879%2029.9177%20379.884%2029.5855L379.829%2029.2589C379.765%2029.0463%20379.644%2028.8553%20379.479%2028.7063C379.548%2028.7924%20379.616%2028.8786%20379.684%2028.9647C379.559%2028.8068%20379.45%2028.6369%20379.358%2028.4575C379.427%2028.5437%20379.456%2028.6609%20379.503%2028.7517C379.405%2028.5413%20379.333%2028.3204%20379.286%2028.0933C379.311%2028.201%20379.33%2028.3101%20379.341%2028.42C379.304%2028.174%20379.294%2027.9246%20379.313%2027.6765L379.28%2028.0215C379.306%2027.7731%20379.36%2027.5286%20379.442%2027.2928L379.319%2027.6203C379.397%2027.4191%20379.498%2027.2277%20379.62%2027.0498L379.425%2027.3192C379.549%2027.1455%20379.696%2026.9899%20379.863%2026.857L379.604%2027.0622C379.797%2026.9091%20380.008%2026.7804%20380.232%2026.6788L379.931%2026.8151C380.237%2026.6767%20380.559%2026.5796%20380.89%2026.5266L380.563%2026.5816C381.059%2026.5039%20381.563%2026.49%20382.063%2026.5403L381.718%2026.5078C383.108%2026.7756%20384.517%2026.9374%20385.933%2026.992C386.559%2026.9654%20387.175%2026.8264%20387.752%2026.5818C388.402%2026.3267%20388.977%2025.9101%20389.421%2025.3713C389.711%2024.9859%20389.934%2024.5543%20390.08%2024.0947C390.192%2023.698%20390.249%2023.2878%20390.249%2022.8756C390.259%2022.2303%20390.152%2021.5885%20389.933%2020.9816C389.554%2019.9903%20389.016%2019.0677%20388.339%2018.2504C387.63%2017.4277%20387.015%2016.5287%20386.504%2015.5699C386.567%2015.6482%20386.635%2015.7344%20386.641%2015.8703C386.489%2015.5474%20386.377%2015.2071%20386.309%2014.857L386.364%2015.1836C386.316%2014.9194%20386.304%2014.6498%20386.328%2014.3823L386.295%2014.7274C386.312%2014.5209%20386.357%2014.3178%20386.429%2014.1235L386.305%2014.451C386.368%2014.279%20386.454%2014.1164%20386.56%2013.9678L386.366%2014.2372C386.47%2014.1%20386.589%2013.9752%20386.722%2013.8653L386.463%2014.0705C386.621%2013.9437%20386.793%2013.8368%20386.977%2013.7522L386.676%2013.8886C386.924%2013.7815%20387.184%2013.7038%20387.45%2013.6572C387.342%2013.6822%20387.233%2013.7006%20387.123%2013.7122C387.511%2013.6532%20387.904%2013.641%20388.295%2013.6759L387.95%2013.6434C388.752%2013.7213%20389.504%2013.9928%20390.331%2014.102C391.236%2014.2715%20392.167%2014.2424%20393.06%2014.0169C393.883%2013.7997%20394.632%2013.3675%20395.232%2012.7646C395.713%2012.2683%20396.076%2011.6702%20396.295%2011.0147C396.445%2010.5018%20396.486%209.96341%20396.417%209.43356C396.348%208.90371%20396.17%208.39396%20395.894%207.93657C395.42%207.10671%20394.823%206.35403%20394.122%205.7045C393.414%204.98972%20392.651%204.31846%20392.014%203.54772C392.082%203.63387%20392.15%203.72002%20392.219%203.80617C391.966%203.51402%20391.752%203.1904%20391.582%202.84333C391.65%202.92948%20391.673%203.03888%20391.718%203.14369C391.608%202.88577%20391.526%202.61619%20391.476%202.34005C391.491%202.45568%20391.514%202.56508%20391.537%202.67449C391.473%202.33484%20391.455%201.98797%20391.485%201.64354L391.459%201.9964C391.487%201.65247%20391.562%201.31395%20391.681%200.9899L391.558%201.31741C391.67%201.01423%20391.818%200.725403%20391.998%200.456958L391.804%200.72642C391.987%200.474963%20392.202%200.248439%20392.443%200.052559L392.185%200.257752C392.426%200.0684551%20392.688%20-0.0924962%20392.966%20-0.221932L392.666%20-0.085619C393.014%20-0.238677%20393.378%20-0.352054%20393.751%20-0.423612C393.643%20-0.398583%20393.534%20-0.380209%20393.424%20-0.368598C394.164%20-0.475539%20394.914%20-0.487453%20395.656%20-0.40405L395.311%20-0.436563C396.149%20-0.361612%20396.978%20-0.202365%20397.808%20-0.0571656C398.144%200.0154231%20398.495%20-0.0436477%20398.788%20-0.222194C398.94%20-0.315241%20399.072%20-0.43747%20399.177%20-0.581829C399.282%20-0.726188%20399.356%20-0.889822%20399.397%20-1.06328C399.46%20-1.39685%20399.389%20-1.74161%20399.201%20-2.02391C399.013%20-2.30621%20398.721%20-2.50367%20398.389%20-2.57411Z%22%20fill%3D%22%2345CB71%22%2F%3E%3Cpath%20d%3D%22M87.0897%20181.003C85.974%20180.329%2084.7983%20179.758%2083.5777%20179.3C82.9276%20179.087%2082.2506%20178.968%2081.567%20178.946C80.7816%20178.908%2079.9984%20179.056%2079.2808%20179.377C78.4516%20179.77%2077.7437%20180.38%2077.2314%20181.142C76.7191%20181.903%2076.4214%20182.789%2076.3696%20183.705C76.3724%20184.809%2076.6515%20185.895%2077.1814%20186.864C77.6461%20187.857%2078.2018%20188.806%2078.5849%20189.837C78.5485%20189.734%2078.5121%20189.63%2078.4756%20189.526C78.6517%20189.966%2078.7706%20190.426%2078.8293%20190.896C78.7928%20190.792%2078.8069%20190.682%2078.7894%20190.571C78.8187%20190.826%2078.8163%20191.083%2078.7824%20191.337C78.7965%20191.226%2078.8105%20191.115%2078.8341%20191.001C78.7961%20191.213%2078.7335%20191.419%2078.6477%20191.617L78.788%20191.292C78.7072%20191.478%2078.6003%20191.651%2078.4704%20191.806L78.6844%20191.541C78.5072%20191.754%2078.3028%20191.943%2078.0765%20192.104L78.3487%20191.913C78.1107%20192.074%2077.8563%20192.209%2077.5897%20192.317L77.9011%20192.207C77.6407%20192.299%2077.3713%20192.361%2077.0975%20192.394L77.4259%20192.364C77.0697%20192.4%2076.7104%20192.39%2076.3565%20192.336L76.6926%20192.388C76.3165%20192.327%2075.95%20192.217%2075.6026%20192.06L75.918%20192.204C74.7458%20191.672%2073.7555%20190.843%2072.5116%20190.379C71.9762%20190.194%2071.4133%20190.101%2070.8469%20190.104C70.1065%20190.095%2069.3831%20190.327%2068.7854%20190.764C68.1878%20191.201%2067.7481%20191.82%2067.5325%20192.529C67.3319%20193.115%2067.2576%20193.737%2067.3145%20194.354C67.4056%20195.337%2067.6271%20196.303%2067.9732%20197.228C68.3395%20198.164%2068.603%20199.138%2068.7589%20200.131C68.7225%20200.027%2068.7366%20199.917%2068.719%20199.806C68.7698%20200.246%2068.7619%20200.691%2068.6955%20201.129L68.7472%20200.792C68.6931%20201.144%2068.5965%20201.487%2068.4596%20201.815L68.6033%20201.5C68.4912%20201.742%2068.3504%20201.969%2068.1838%20202.177L68.4073%20201.908C68.272%20202.06%2068.1216%20202.198%2067.9584%20202.32L68.2305%20202.129C68.0522%20202.245%2067.8631%20202.343%2067.6658%20202.422L67.9772%20202.313C67.734%20202.404%2067.4795%20202.461%2067.2209%20202.483L67.5667%20202.351C67.2298%20202.377%2066.8912%20202.364%2066.5572%20202.313L66.8838%20202.368C66.3916%20202.282%2065.9136%20202.129%2065.4629%20201.913L65.7783%20202.057C64.9819%20201.69%2064.2311%20201.211%2063.4375%20200.822C62.6295%20200.402%2061.7519%20200.132%2060.8474%20200.025C59.9908%20199.927%2059.1248%20200.094%2058.3659%20200.503C57.5706%20200.97%2056.9608%20201.697%2056.6398%20202.561C56.4745%20202.989%2056.3863%20203.444%2056.3794%20203.903C56.3798%20204.45%2056.4871%20204.992%2056.6954%20205.498C56.7759%20205.65%2056.8868%20205.785%2057.0212%20205.892C57.1557%20206%2057.3108%20206.079%2057.4769%20206.125C57.7942%20206.224%2058.1373%20206.196%2058.4349%20206.048C58.7324%20205.901%2058.9615%20205.644%2059.0743%20205.331L59.1292%20205.004C59.1384%20204.783%2059.0868%20204.563%2058.9801%20204.368C59.0165%20204.472%2059.0529%20204.575%2059.0893%20204.679C59.0228%20204.489%2058.9752%20204.293%2058.9473%20204.093C58.9837%20204.197%2058.973%20204.317%2058.9872%20204.418C58.9642%20204.188%2058.968%20203.955%2058.9985%20203.726C58.9869%20203.835%2058.9685%20203.945%2058.9435%20204.052C58.9887%20203.808%2059.0613%20203.569%2059.16%20203.34L59.0163%20203.656C59.1219%20203.429%2059.2533%20203.216%2059.408%20203.02L59.1845%20203.289C59.3238%20203.125%2059.4818%20202.977%2059.6552%20202.849L59.383%20203.04C59.5566%20202.916%2059.7467%20202.817%2059.9477%20202.746L59.6363%20202.855C59.8685%20202.774%2060.1099%20202.721%2060.3549%20202.699L60.0265%20202.729C60.3602%20202.698%2060.6965%20202.712%2061.0265%20202.77L60.6999%20202.715C61.194%20202.804%2061.6747%20202.956%2062.1302%20203.167L61.8149%20203.024C63.0412%20203.732%2064.3196%20204.346%2065.6389%20204.861C66.2393%20205.041%2066.8671%20205.111%2067.4923%20205.069C68.1903%20205.041%2068.8695%20204.836%2069.466%20204.472C69.8661%20204.203%2070.2179%20203.868%2070.5067%20203.482C70.7424%20203.143%2070.9303%20202.774%2071.0651%20202.385C71.2862%20201.778%2071.395%20201.137%2071.3864%20200.492C71.3532%20199.431%2071.1466%20198.383%2070.7747%20197.389C70.3742%20196.38%2070.0872%20195.329%2069.919%20194.256C69.9521%20194.35%2069.9886%20194.454%2069.9495%20194.584C69.9119%20194.229%2069.9179%20193.871%2069.9675%20193.518L69.9126%20193.845C69.9539%20193.579%2070.0307%20193.321%2070.1409%20193.076L69.9972%20193.391C70.0807%20193.202%2070.1896%20193.024%2070.321%20192.864L70.0975%20193.133C70.2128%20192.991%2070.347%20192.866%2070.4964%20192.76L70.2243%20192.951C70.3674%20192.855%2070.5211%20192.777%2070.6824%20192.716L70.371%20192.825C70.5612%20192.757%2070.7591%20192.713%2070.9603%20192.693L70.6319%20192.723C70.9013%20192.703%2071.1722%20192.715%2071.4389%20192.758C71.329%20192.747%2071.2199%20192.728%2071.1123%20192.703C71.4978%20192.774%2071.8734%20192.892%2072.231%20193.052L71.9156%20192.909C72.6483%20193.245%2073.2698%20193.748%2074.0157%20194.122C74.8154%20194.578%2075.7046%20194.856%2076.6219%20194.935C77.4701%20194.999%2078.3201%20194.836%2079.0845%20194.463C79.7013%20194.151%2080.2401%20193.705%2080.6612%20193.157C80.9707%20192.722%2081.1864%20192.227%2081.2947%20191.703C81.403%20191.18%2081.4015%20190.64%2081.2902%20190.118C81.1144%20189.178%2080.7962%20188.271%2080.3466%20187.428C79.9117%20186.521%2079.4108%20185.637%2079.0608%20184.7C79.0973%20184.804%2079.1337%20184.908%2079.1701%20185.011C79.0268%20184.653%2078.9305%20184.277%2078.8837%20183.893C78.9201%20183.997%2078.9061%20184.108%2078.9142%20184.222C78.894%20183.942%2078.9055%20183.66%2078.9484%20183.383C78.9249%20183.497%2078.9109%20183.608%2078.8968%20183.719C78.9471%20183.377%2079.0441%20183.044%2079.1848%20182.728L79.0444%20183.053C79.1843%20182.737%2079.3658%20182.442%2079.5841%20182.174L79.3606%20182.444C79.5661%20182.194%2079.8004%20181.969%2080.0586%20181.775L79.7864%20181.966C80.0417%20181.788%2080.3191%20181.644%2080.6115%20181.538L80.3001%20181.648C80.5899%20181.548%2080.8902%20181.481%2081.1952%20181.45L80.8668%20181.481C81.2456%20181.45%2081.6266%20181.462%2082.0027%20181.517C81.8928%20181.505%2081.7837%20181.487%2081.6761%20181.462C82.4097%20181.603%2083.1224%20181.837%2083.7965%20182.159L83.4812%20182.015C84.2488%20182.36%2084.9797%20182.782%2085.7167%20183.191C86.0101%20183.37%2086.3609%20183.429%2086.6965%20183.356C86.8706%20183.318%2087.0355%20183.246%2087.1815%20183.144C87.3276%20183.041%2087.4519%20182.911%2087.5474%20182.761C87.7156%20182.466%2087.7619%20182.117%2087.6764%20181.789C87.5909%20181.461%2087.3803%20181.179%2087.0897%20181.003Z%22%20fill%3D%22%23FB9025%22%2F%3E%3Cpath%20d%3D%22M97.0706%2045.8378L100.252%2047.2648L88.8101%2064.1877L84.4345%2061.2614L97.0706%2045.8378Z%22%20fill%3D%22%2356C6F6%22%2F%3E%3Cpath%20d%3D%22M254.046%20121.486L257.283%20120.189L261.507%20140.176L256.362%20141.29L254.046%20121.486Z%22%20fill%3D%22%2356C6F6%22%2F%3E%3Cpath%20d%3D%22M356.702%2030.1016L359.719%2028.3535L366.765%2047.5285L361.833%2049.369L356.702%2030.1016Z%22%20fill%3D%22%2356C6F6%22%2F%3E%3Cpath%20d%3D%22M324.58%2046.238L323.611%2049.2931L302.102%2043.3926L304.079%2038.5332L324.58%2046.238Z%22%20fill%3D%22%2336C69A%22%2F%3E%3Cpath%20d%3D%22M332.628%20-7.90961L335.528%20-6.54615L326.838%2013.9954L322.282%2011.3938L332.628%20-7.90961Z%22%20fill%3D%22%23F8C835%22%2F%3E%3Cpath%20d%3D%22M182.564%2066.7351L181.596%2069.7902L160.086%2063.8897L162.063%2059.0303L182.564%2066.7351Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cpath%20d%3D%22M425.531%20133.235L425.235%20136.427L402.963%20135.235L403.861%20130.066L425.531%20133.235Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cpath%20d%3D%22M207.625%2018.2415L204.493%2018.9202L198.918%20-2.67601L204.117%20-3.37667L207.625%2018.2415Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cpath%20d%3D%22M59.4909%2046.8397L56.667%2048.3552L45.3578%2029.1308L50.1626%2027.0248L59.4909%2046.8397Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cpath%20d%3D%22M206.762%2061.1662L212.57%2059.0135C212.71%2058.9605%20212.833%2058.872%20212.928%2058.7567C213.023%2058.6415%20213.087%2058.5034%20213.112%2058.3561C213.138%2058.2089%20213.125%2058.0575%20213.074%2057.917C213.023%2057.7764%20212.936%2057.6516%20212.823%2057.5547L208.055%2053.5935C207.939%2053.4985%20207.799%2053.4356%20207.651%2053.4112C207.503%2053.3867%20207.351%2053.4015%20207.21%2053.454C207.07%2053.5065%20206.945%2053.5949%20206.849%2053.7105C206.753%2053.8261%20206.689%2053.9647%20206.664%2054.1127L205.645%2060.2035C205.62%2060.3498%20205.633%2060.5001%20205.683%2060.6399C205.733%2060.7797%20205.818%2060.9041%20205.931%2061.001C206.043%2061.0979%20206.179%2061.1641%20206.325%2061.1931C206.47%2061.222%20206.621%2061.2128%20206.762%2061.1662Z%22%20fill%3D%22%23422A82%22%2F%3E%3Cpath%20d%3D%22M417.764%2097.9337L426.593%2094.6616C426.805%2094.581%20426.993%2094.4465%20427.138%2094.2713C427.282%2094.096%20427.379%2093.8862%20427.417%2093.6624C427.456%2093.4385%20427.436%2093.2085%20427.358%2092.9948C427.281%2092.7812%20427.15%2092.5914%20426.977%2092.4441L419.73%2086.4231C419.553%2086.2787%20419.341%2086.1832%20419.116%2086.146C418.891%2086.1088%20418.66%2086.1312%20418.446%2086.211C418.232%2086.2908%20418.043%2086.4253%20417.897%2086.6009C417.751%2086.7766%20417.654%2086.9874%20417.615%2087.2123L416.066%2096.4703C416.028%2096.6927%20416.048%2096.9213%20416.124%2097.1337C416.2%2097.3461%20416.33%2097.5352%20416.501%2097.6826C416.672%2097.8299%20416.878%2097.9305%20417.1%2097.9745C417.321%2098.0185%20417.55%2098.0045%20417.764%2097.9337Z%22%20fill%3D%22%23701AFF%22%2F%3E%3Cpath%20d%3D%22M109.718%20108.933L118.546%20105.661C118.758%20105.58%20118.946%20105.446%20119.091%20105.27C119.235%20105.095%20119.332%20104.885%20119.37%20104.661C119.409%20104.438%20119.389%20104.207%20119.312%20103.994C119.234%20103.78%20119.103%20103.59%20118.93%20103.443L111.683%2097.4221C111.506%2097.2777%20111.295%2097.1822%20111.069%2097.145C110.844%2097.1078%20110.613%2097.1302%20110.399%2097.21C110.185%2097.2899%20109.996%2097.4243%20109.85%2097.6C109.705%2097.7756%20109.607%2097.9864%20109.568%2098.2113L108.02%20107.469C107.981%20107.692%20108.001%20107.92%20108.077%20108.133C108.153%20108.345%20108.283%20108.534%20108.454%20108.682C108.625%20108.829%20108.831%20108.93%20109.053%20108.974C109.274%20109.018%20109.503%20109.003%20109.718%20108.933Z%22%20fill%3D%22%23FB9025%22%2F%3E%3Cpath%20d%3D%22M230.108%2099.8232L226.538%2091.111C226.45%2090.9014%20226.309%2090.7184%20226.129%2090.5799C225.949%2090.4413%20225.736%2090.3521%20225.511%2090.321C225.286%2090.2899%20225.057%2090.3179%20224.846%2090.4024C224.635%2090.4868%20224.45%2090.6248%20224.309%2090.8026L218.537%2098.2498C218.399%2098.4314%20218.311%2098.6461%20218.281%2098.8725C218.252%2099.0988%20218.282%2099.329%20218.369%2099.54C218.456%2099.751%20218.597%2099.9356%20218.777%20100.075C218.958%20100.215%20219.172%20100.305%20219.398%20100.336L228.703%20101.57C228.927%20101.601%20229.154%20101.573%20229.364%20101.49C229.574%20101.406%20229.758%20101.27%20229.9%20101.094C230.041%20100.918%20230.135%20100.709%20230.171%20100.486C230.208%20100.263%20230.186%20100.035%20230.108%2099.8232Z%22%20fill%3D%22%23E8593A%22%2F%3E%3Ccircle%20cx%3D%22352.414%22%20cy%3D%2291.4124%22%20r%3D%226.15828%22%20transform%3D%22rotate%2830%20352.414%2091.4124%29%22%20fill%3D%22url%28%23paint0_linear_3750_55025%29%22%2F%3E%3Ccircle%20cx%3D%22155.414%22%20cy%3D%2219.4124%22%20r%3D%226.15828%22%20transform%3D%22rotate%2830%20155.414%2019.4124%29%22%20fill%3D%22url%28%23paint1_linear_3750_55025%29%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M51.9797%20130.445C51.9809%20130.444%2051.982%20130.443%2051.9832%20130.442L51.9763%20130.448C51.9774%20130.447%2051.9786%20130.446%2051.9797%20130.445ZM51.1602%20129.533C51.183%20129.17%2051.2312%20128.776%2051.3219%20128.376C51.6105%20127.103%2052.3773%20125.572%2054.0818%20124.61C55.1534%20124.005%2056.2232%20123.875%2057.0465%20123.893C57.3652%20122.867%2058.0942%20121.971%2059.1401%20121.47C61.1328%20120.516%2063.5213%20121.359%2064.475%20123.351C64.8866%20124.211%2065.0937%20125.155%2065.08%20126.108C65.0662%20127.062%2064.8321%20127.999%2064.3959%20128.847C63.9597%20129.695%2063.3332%20130.43%2062.5655%20130.995C61.7978%20131.561%2060.9097%20131.941%2059.9706%20132.106C59.8846%20132.121%2059.798%20132.133%2059.7112%20132.143C59.5315%20132.162%2059.3573%20132.173%2059.1902%20132.178C59.1752%20132.413%2059.1503%20132.658%2059.1114%20132.906C58.9482%20133.945%2058.4711%20135.473%2057.0483%20136.635C55.773%20137.682%2054.3631%20137.925%2053.3187%20137.924C52.8001%20137.923%2052.2966%20137.861%2051.8826%20137.79C51.8188%20138.001%2051.7422%20138.229%2051.6498%20138.461C51.6252%20138.523%2051.5992%20138.584%2051.5716%20138.645C51.1548%20139.558%2050.5592%20140.379%2049.82%20141.059C49.0808%20141.739%2048.2129%20142.264%2047.2675%20142.603C46.3221%20142.942%2045.3184%20143.088%2044.3157%20143.033C43.3129%20142.977%2042.3313%20142.722%2041.4289%20142.281C39.444%20141.311%2038.6209%20138.916%2039.5905%20136.931C40.4693%20135.132%2042.5192%20134.288%2044.3733%20134.867C44.4229%20134.655%2044.4872%20134.388%2044.5526%20134.155C44.7815%20133.34%2045.3378%20131.655%2047.0273%20130.501L47.0537%20130.483C48.3719%20129.598%2049.738%20129.463%2050.6966%20129.501C50.8528%20129.507%2051.0082%20129.518%2051.1602%20129.533ZM52.2778%20136.242C52.2778%20136.242%2052.2774%20136.244%2052.2766%20136.246C52.2774%20136.244%2052.2778%20136.242%2052.2778%20136.242ZM59.1447%20130.022C59.1447%20130.022%2059.1446%20130.023%2059.1444%20130.025C59.1446%20130.023%2059.1447%20130.022%2059.1447%20130.022ZM59.1026%20124.183C59.1081%20124.183%2059.111%20124.183%2059.111%20124.183C59.1111%20124.183%2059.1083%20124.183%2059.1026%20124.183Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M295.928%2094.0017C295.927%2094.0004%20295.926%2093.9991%20295.926%2093.9978L295.93%2094.0055C295.929%2094.0042%20295.928%2094.003%20295.928%2094.0017ZM294.89%2094.6539C294.535%2094.5695%20294.155%2094.4549%20293.776%2094.2973C292.572%2093.7961%20291.193%2092.7797%20290.536%2090.9362C290.123%2089.7773%20290.177%2088.701%20290.335%2087.8928C289.378%2087.4039%20288.619%2086.5329%20288.304%2085.417C287.703%2083.291%20288.94%2081.0809%20291.066%2080.4805C291.984%2080.2215%20292.949%2080.1782%20293.886%2080.3541C294.823%2080.53%20295.707%2080.9204%20296.468%2081.4947C297.229%2082.069%20297.847%2082.8116%20298.273%2083.6644C298.7%2084.5171%20298.923%2085.457%20298.926%2086.4105C298.926%2086.4979%20298.923%2086.5852%20298.918%2086.6724C298.906%2086.8528%20298.887%2087.0263%20298.863%2087.1917C299.093%2087.2466%20299.33%2087.3129%20299.567%2087.3934C300.564%2087.7313%20301.988%2088.4616%20302.89%2090.0615C303.705%2091.4967%20303.704%2092.9273%20303.525%2093.9563C303.436%2094.4672%20303.289%2094.9526%20303.149%2095.3486C303.346%2095.4473%20303.557%2095.5617%20303.771%2095.6924C303.827%2095.7271%20303.883%2095.7632%20303.938%2095.8007C304.767%2096.367%20305.475%2097.0937%20306.019%2097.938C306.563%2098.7822%20306.932%2099.7268%20307.105%20100.716C307.278%20101.705%20307.251%20102.719%20307.026%20103.698C306.8%20104.677%20306.381%20105.6%20305.793%20106.415C304.5%20108.205%20301.999%20108.608%20300.209%20107.315C298.585%20106.142%20298.102%20103.978%20298.989%20102.25C298.788%20102.165%20298.536%20102.056%20298.318%20101.952C297.554%20101.588%20295.989%20100.753%20295.139%2098.8912L295.126%2098.8622C294.478%2097.4124%20294.578%2096.0433%20294.779%2095.1051C294.811%2094.9523%20294.849%2094.8011%20294.89%2094.6539ZM301.691%2094.6956C301.691%2094.6956%20301.692%2094.6961%20301.694%2094.6973C301.692%2094.6961%20301.691%2094.6956%20301.691%2094.6956ZM296.731%2086.8693C296.731%2086.8693%20296.732%2086.8696%20296.735%2086.8702C296.732%2086.8696%20296.731%2086.8693%20296.731%2086.8693ZM290.97%2085.9161C290.971%2085.9107%20290.972%2085.9079%20290.972%2085.9079C290.972%2085.9078%20290.972%2085.9105%20290.97%2085.9161Z%22%20fill%3D%22%23FB9025%22%2F%3E%3Cpath%20d%3D%22M403.173%20161.676C403.173%20161.676%20397.684%20157.763%20400.207%20152.363C400.207%20152.363%20395.619%20153.157%20393.297%20154.822C393.297%20154.822%20392.044%20163.5%20397.918%20164.487L403.173%20161.676Z%22%20fill%3D%22%23FE557A%22%2F%3E%3Cpath%20d%3D%22M21.1734%2048.6756C21.1734%2048.6756%2015.6838%2044.7626%2018.2067%2039.3628C18.2067%2039.3628%2013.6193%2040.1573%2011.2969%2041.8218C11.2969%2041.8218%2010.0444%2050.5%2015.9184%2051.4871L21.1734%2048.6756Z%22%20fill%3D%22url%28%23paint2_linear_3750_55025%29%22%2F%3E%3Cpath%20d%3D%22M159.939%20104.972C159.939%20104.972%20155.845%2099.6161%20159.846%2095.1984C159.846%2095.1984%20155.228%2094.6072%20152.518%2095.5142C152.518%2095.5142%20148.767%20103.439%20154.09%20106.112L159.939%20104.972Z%22%20fill%3D%22%23FE557A%22%2F%3E%3Cpath%20d%3D%22M131.689%2044.8312C131.689%2044.8312%20127.595%2039.4755%20131.596%2035.0578C131.596%2035.0578%20126.978%2034.4665%20124.268%2035.3736C124.268%2035.3736%20120.517%2043.2984%20125.84%2045.9711L131.689%2044.8312Z%22%20fill%3D%22%23FE557A%22%2F%3E%3Cpath%20d%3D%22M31.6894%207.8312C31.6894%207.8312%2027.5951%202.4755%2031.5959%20-1.94225C31.5959%20-1.94225%2026.9778%20-2.53347%2024.2684%20-1.62643C24.2684%20-1.62643%2020.5165%206.29842%2025.8396%208.9711L31.6894%207.8312Z%22%20fill%3D%22%23FE557A%22%2F%3E%3Cpath%20d%3D%22M243.829%2017.7854C244.398%2017.9567%20244.014%2021.7263%20243.945%2022.1322C243.774%2023.2954%20243.246%2024.3769%20242.434%2025.2269C240.748%2026.8252%20237.574%2026.0528%20236.396%2028.4054C235.535%2030.7193%20234.875%2033.103%20234.424%2035.5302L227.11%2031.4198C227.071%2031.9422%20226.607%2024.1251%20229.911%2022.4571C232.838%2020.9847%20235.97%2021.3909%20235.565%2015.344L243.829%2017.7854Z%22%20fill%3D%22%2336C69A%22%2F%3E%3Cpath%20d%3D%22M206.492%20119.587C206.892%20119.707%20206.622%20122.36%20206.573%20122.646C206.453%20123.464%20206.082%20124.225%20205.51%20124.824C204.323%20125.949%20202.089%20125.405%20201.26%20127.061C200.655%20128.689%20200.19%20130.367%20199.872%20132.075L194.725%20129.182C194.698%20129.55%20194.371%20124.048%20196.696%20122.874C198.757%20121.838%20200.96%20122.124%20200.675%20117.868L206.492%20119.587Z%22%20fill%3D%22%2336C69A%22%2F%3E%3Cpath%20d%3D%22M350.613%20118.207C350.89%20117.894%20353.186%20119.251%20353.425%20119.416C354.118%20119.868%20354.653%20120.524%20354.956%20121.294C355.48%20122.843%20354.05%20124.643%20355.206%20126.09C356.43%20127.322%20357.759%20128.447%20359.176%20129.452L354.393%20132.912C354.715%20133.091%20349.583%20131.082%20349.492%20128.478C349.415%20126.174%20350.598%20124.293%20346.615%20122.768L350.613%20118.207Z%22%20fill%3D%22%23F8C835%22%2F%3E%3Cpath%20d%3D%22M457.886%2070.3986C458.164%2070.0857%20460.459%2071.4429%20460.698%2071.607C461.391%2072.0592%20461.926%2072.7155%20462.23%2073.4852C462.754%2075.0339%20461.324%2076.8346%20462.479%2078.281C463.704%2079.5136%20465.032%2080.6384%20466.45%2081.643L461.666%2085.1033C461.988%2085.2825%20456.856%2083.2731%20456.765%2080.6699C456.688%2078.3649%20457.872%2076.4842%20453.888%2074.959L457.886%2070.3986Z%22%20fill%3D%22%23F8C835%22%2F%3E%3Cpath%20d%3D%22M58.6595%2076.3678C59.0599%2076.4884%2058.7899%2079.1413%2058.741%2079.427C58.621%2080.2456%2058.2495%2081.0067%2057.6779%2081.6049C56.4914%2082.7298%2054.2571%2082.1862%2053.4284%2083.8418C52.8226%2085.4703%2052.3583%2087.1479%2052.0404%2088.8561L46.8934%2085.9633C46.8658%2086.331%2046.539%2080.8295%2048.8643%2079.6556C50.9247%2078.6194%2053.1283%2078.9053%2052.8433%2074.6496L58.6595%2076.3678Z%22%20fill%3D%22%2336C69A%22%2F%3E%3Cpath%20d%3D%22M14.6595%20120.368C15.0599%20120.488%2014.7899%20123.141%2014.741%20123.427C14.621%20124.246%2014.2495%20125.007%2013.6779%20125.605C12.4914%20126.73%2010.2571%20126.186%209.42841%20127.842C8.82265%20129.47%208.35826%20131.148%208.04039%20132.856L2.89345%20129.963C2.86584%20130.331%202.53903%20124.83%204.86434%20123.656C6.92471%20122.619%209.12828%20122.905%208.8433%20118.65L14.6595%20120.368Z%22%20fill%3D%22%23E8593A%22%2F%3E%3Cpath%20d%3D%22M98.6595%2013.3678C99.0599%2013.4884%2098.7899%2016.1413%2098.741%2016.427C98.621%2017.2456%2098.2495%2018.0067%2097.6779%2018.6049C96.4914%2019.7298%2094.2571%2019.1862%2093.4284%2020.8418C92.8226%2022.4703%2092.3583%2024.1479%2092.0404%2025.8561L86.8934%2022.9633C86.8658%2023.331%2086.539%2017.8295%2088.8643%2016.6556C90.9247%2015.6194%2093.1283%2015.9053%2092.8433%2011.6496L98.6595%2013.3678Z%22%20fill%3D%22%2336C69A%22%2F%3E%3Cpath%20d%3D%22M260.799%2087.9723C260.799%2087.9723%20259.646%2093.2626%20256.213%2094.6259C256.213%2094.6259%20254.659%2092.4902%20253.576%2092.2131C253.576%2092.2131%20256.472%2089.3212%20256.576%2086.1158C256.567%2086.1191%20258.221%2085.9413%20260.799%2087.9723Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M277.799%2020.9723C277.799%2020.9723%20276.646%2026.2626%20273.213%2027.6259C273.213%2027.6259%20271.659%2025.4902%20270.576%2025.2131C270.576%2025.2131%20273.472%2022.3212%20273.576%2019.1158C273.567%2019.1191%20275.221%2018.9413%20277.799%2020.9723Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M21.799%20176.972C21.799%20176.972%2020.6455%20182.263%2017.2133%20183.626C17.2133%20183.626%2015.6585%20181.49%2014.5757%20181.213C14.5757%20181.213%2017.4715%20178.321%2017.5761%20175.116C17.5667%20175.119%2019.2212%20174.941%2021.799%20176.972Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M386.799%20204.972C386.799%20204.972%20385.646%20210.263%20382.213%20211.626C382.213%20211.626%20380.659%20209.49%20379.576%20209.213C379.576%20209.213%20382.472%20206.321%20382.576%20203.116C382.567%20203.119%20384.221%20202.941%20386.799%20204.972Z%22%20fill%3D%22%23FFC850%22%2F%3E%3Cpath%20d%3D%22M429.699%20185.821C429.699%20185.821%20436.692%20191.075%20436.384%20197.033C436.384%20197.033%20432.201%20197.879%20431.066%20199.283C431.066%20199.283%20428.767%20193.084%20424.13%20190.773C424.129%20190.79%20424.981%20188.24%20429.699%20185.821Z%22%20fill%3D%22%23B246FF%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22paint0_linear_3750_55025%22%20x1%3D%22358.573%22%20y1%3D%2286.4412%22%20x2%3D%22334.607%22%20y2%3D%22104.693%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23B246FF%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF6A8A%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint1_linear_3750_55025%22%20x1%3D%22161.573%22%20y1%3D%2214.4412%22%20x2%3D%22137.607%22%20y2%3D%2232.6935%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23B246FF%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF6A8A%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint2_linear_3750_55025%22%20x1%3D%2212.5072%22%20y1%3D%2249.5349%22%20x2%3D%2219.9988%22%20y2%3D%2240.9214%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FB9025%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23F8C835%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22240%22%20height%3D%2248%22%20viewBox%3D%220%200%20240%2048%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%200L240%204.57763e-05L225%2022.8837L240%2048L0%2048L15%2022.8837L0%200Z%22%20fill%3D%22url%28%23paint0_linear_3750_54977%29%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22paint0_linear_3750_54977%22%20x1%3D%22240%22%20y1%3D%224.62651%22%20x2%3D%22192.4%22%20y2%3D%22185.891%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23B246FF%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF6A8A%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2233%22%20height%3D%2226%22%20viewBox%3D%220%200%2033%2026%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7.65241%2019.2929C7.04488%2016.3274%208.74735%2012.3756%208.74735%2012.3756L9.90904%2013.1261L9.63326%2011.3964C10.9229%209.25318%2013.4487%207.40199%2013.4487%207.40199L13.9164%209.39817C13.9164%209.39817%2014.6316%207.14414%2014.642%207.07683C17.1524%205.5043%2019.8778%207.26504%2019.8778%207.26504C19.8778%207.26504%2019.1451%209.40392%2016.9125%2011.2546L15.3062%2011.3884L16.3785%2012.0811C16.3785%2012.0811%2016.1587%2013.3324%2014.4236%2015.4252L12.712%2015.0058L13.7785%2016.3379C13.7785%2016.3379%2010.8239%2019.0304%207.65241%2019.2929Z%22%20fill%3D%22url%28%23paint0_linear_3750_54983%29%22%2F%3E%3Cpath%20d%3D%22M19.4949%207.44457C19.4949%207.44457%2014.6108%208.53512%2011.502%2013.3472C8.08149%2018.6417%206.08984%2021.7246%206.08984%2021.7246%22%20fill%3D%22url%28%23paint1_linear_3750_54983%29%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%2212%22%20stroke%3D%22%23FBFBFC%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22paint0_linear_3750_54983%22%20x1%3D%229.91828%22%20y1%3D%2220.2484%22%20x2%3D%2216.0922%22%20y2%3D%225.60715%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FBF5EC%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FFEDED%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint1_linear_3750_54983%22%20x1%3D%229.22425%22%20y1%3D%2223.0463%22%20x2%3D%2216.3605%22%20y2%3D%226.12286%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FBF5EC%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FFEDED%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\"","import { SvgIconProps } from '@mui/material'\nimport { ReactComponent as HumaLogoSvg } from './huma.svg'\nimport { ReactComponent as HumaFullLogoSvg } from './huma-full.svg'\nimport { ReactComponent as MetamaskSvg } from './metamask.svg'\nimport { ReactComponent as WalletConnectSvg } from './wallet-connect.svg'\nimport { ReactComponent as EthereumSvg } from './ethereum.svg'\nimport { ReactComponent as PolygonSvg } from './polygon.svg'\nimport { ReactComponent as ReceiptSvg } from './receipt.svg'\nimport { ReactComponent as SeparatorSvg } from './separator.svg'\nimport { ReactComponent as LoaderSvg } from './loader.svg'\nimport { ReactComponent as SorrySvg } from './sorry.svg'\nimport { ReactComponent as CheckSvg } from './check.svg'\nimport { ReactComponent as CheckGreenSvg } from './check-green.svg'\nimport { ReactComponent as CheckCircleSvg } from './check-circle.svg'\nimport { ReactComponent as AutoPaybackSvg } from './auto-payback.svg'\nimport { ReactComponent as ApproveLenderSvg } from './approve-lender.svg'\nimport { ReactComponent as DonutSvg } from './donut.svg'\nimport { ReactComponent as UsdcSvg } from './usdc.svg'\nimport { ReactComponent as CeloSvg } from './celo.svg'\nimport { ReactComponent as CongratulationsSvg } from './congratulations.svg'\nimport { ReactComponent as RibbonSvg } from './ribbon.svg'\nimport { ReactComponent as HumaPointsSvg } from './huma-points.svg'\n\nexport function HumaIcon(props: SvgIconProps): React.ReactElement {\n return <HumaLogoSvg {...props} />\n}\n\nexport function HumaFullIcon(props: SvgIconProps): React.ReactElement {\n return <HumaFullLogoSvg {...props} />\n}\n\nexport function MetamaskIcon(props: SvgIconProps): React.ReactElement {\n return <MetamaskSvg {...props} />\n}\n\nexport function WalletConnectIcon(props: SvgIconProps): React.ReactElement {\n return <WalletConnectSvg {...props} />\n}\n\nexport function EthereumIcon(props: SvgIconProps): React.ReactElement {\n return <EthereumSvg {...props} />\n}\n\nexport function PolygonIcon(props: SvgIconProps): React.ReactElement {\n return <PolygonSvg {...props} />\n}\n\nexport function ReceiptIcon(props: SvgIconProps): React.ReactElement {\n return <ReceiptSvg {...props} />\n}\n\nexport function SeparatorIcon(props: SvgIconProps): React.ReactElement {\n return <SeparatorSvg {...props} />\n}\n\nexport function LoaderIcon(props: SvgIconProps): React.ReactElement {\n return <LoaderSvg {...props} />\n}\n\nexport function SorryIcon(props: SvgIconProps): React.ReactElement {\n return <SorrySvg {...props} />\n}\n\nexport function CheckIcon(props: SvgIconProps): React.ReactElement {\n return <CheckSvg {...props} />\n}\n\nexport function CheckGreenIcon(props: SvgIconProps): React.ReactElement {\n return <CheckGreenSvg {...props} />\n}\n\nexport function CheckCircleIcon(props: SvgIconProps): React.ReactElement {\n return <CheckCircleSvg {...props} />\n}\n\nexport function AutoPaybackIcon(props: SvgIconProps): React.ReactElement {\n return <AutoPaybackSvg {...props} />\n}\n\nexport function ApproveLenderIcon(props: SvgIconProps): React.ReactElement {\n return <ApproveLenderSvg {...props} />\n}\n\nexport function DonutIcon(props: SvgIconProps): React.ReactElement {\n return <DonutSvg {...props} />\n}\n\nexport function UsdcIcon(props: SvgIconProps): React.ReactElement {\n return <UsdcSvg {...props} />\n}\n\nexport function CeloIcon(props: SvgIconProps): React.ReactElement {\n return <CeloSvg {...props} />\n}\n\nexport function CongratulationsIcon(props: SvgIconProps): React.ReactElement {\n return <CongratulationsSvg {...props} />\n}\n\nexport function RibbonIcon(props: SvgIconProps): React.ReactElement {\n return <RibbonSvg {...props} />\n}\n\nexport function HumaPointsIcon(props: SvgIconProps): React.ReactElement {\n return <HumaPointsSvg {...props} />\n}\n\nexport function getIcon(icon: string) {\n if (!icon) return null\n\n return (\n {\n USDC: UsdcIcon,\n Celo: CeloIcon,\n }[icon] || null\n )\n}\n","import { css } from '@emotion/react'\nimport { useTheme } from '@mui/material'\nimport React, { useEffect, useState } from 'react'\n\nimport { LoaderIcon } from './icons'\n\ntype Props = {\n fullScreen?: boolean\n minHeight?: string\n}\n\nexport function HumaLoading({\n fullScreen = false,\n minHeight = '0px',\n}: Props): React.ReactElement {\n const theme = useTheme()\n const pathLength = 45\n const [count, setCount] = useState(1)\n const intervalTime = 30\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (count <= pathLength) {\n const element = document.querySelector(\n `#huma-loader-wrapper > svg > path:nth-of-type(${count})`,\n )\n if (element) {\n // @ts-ignore\n element.style.visibility = 'visible'\n setCount((pre) => pre + 1)\n }\n } else {\n const elements = document.querySelectorAll(\n `#huma-loader-wrapper > svg > path`,\n )\n if (elements) {\n // @ts-ignore\n elements.forEach((element) => {\n // @ts-ignore\n element.style.visibility = 'hidden'\n })\n setCount(1)\n }\n }\n }, intervalTime)\n return () => clearInterval(interval)\n }, [count])\n\n const styles = {\n wrapper: css`\n ${theme.cssMixins.rowCentered};\n min-height: ${fullScreen ? '100vh' : minHeight};\n width: 50px;\n height: 50px;\n `,\n icon: css`\n & > path {\n visibility: hidden;\n }\n `,\n }\n\n return (\n <div css={styles.wrapper} id='huma-loader-wrapper'>\n <LoaderIcon css={styles.icon} />\n </div>\n )\n}\n","import { Box, css, Typography, useTheme } from '@mui/material'\nimport React from 'react'\n\ntype Props = {\n title: string\n subTitle?: string | React.ReactNode\n children: React.ReactNode\n}\n\nexport function WrapperModal({\n title,\n subTitle,\n children,\n}: Props): React.ReactElement {\n const theme = useTheme()\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n font-weight: 700;\n font-size: 20px;\n margin-top: ${theme.spacing(-0.5)};\n `,\n content: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ${theme.palette.text.secondary};\n `,\n bottom: css`\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n `,\n }\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n {title}\n </Typography>\n {subTitle && <Box css={styles.content}>{subTitle}</Box>}\n {children}\n </Box>\n )\n}\n","import { Box, css, useTheme } from '@mui/material'\nimport React from 'react'\nimport { HumaLoading } from './HumaLoading'\n\nimport { WrapperModal } from './WrapperModal'\n\ntype Props = {\n title: string\n description?: string\n hideLoader?: boolean\n children?: React.ReactNode\n}\n\nexport function LoadingModal({\n title,\n description,\n hideLoader = false,\n children,\n}: Props): React.ReactElement {\n const theme = useTheme()\n\n const styles = {\n loader: css`\n width: 100%;\n ${theme.cssMixins.rowHCentered};\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n `,\n bottom: css`\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n `,\n }\n\n return (\n <WrapperModal title={title} subTitle={description}>\n {!hideLoader && (\n <Box css={styles.loader}>\n <HumaLoading />\n </Box>\n )}\n <Box css={styles.bottom}>{children}</Box>\n </WrapperModal>\n )\n}\n","import { isTxFailed } from '@huma-finance/shared'\nimport { sendTxAtom, txAtom } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useTheme } from '@mui/material'\nimport { useAppDispatch, useAppSelector } from '../hooks/useRedux'\nimport { resetState, setError } from '../store/widgets.reducers'\nimport { selectWidgetState } from '../store/widgets.selectors'\nimport { WIDGET_STEP } from '../store/widgets.store'\nimport { WCProps } from '../utilTypes'\nimport { HumaModal, HumaModalHeader } from './humaModal'\nimport { LoadingModal } from './LoadingModal'\n\ntype Props = {\n isOpen: boolean\n isLoading?: boolean\n loadingTitle?: string\n handleClose: () => void\n handleSuccess?: (blockNumber: number) => void\n}\n\nexport function WidgetWrapper({\n isOpen,\n isLoading = false,\n loadingTitle = '',\n handleClose,\n handleSuccess,\n children,\n}: WCProps<Props>): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const { step, solanaSignature } = useAppSelector(selectWidgetState)\n const [{ state, failReason, txReceipt }] = useAtom(sendTxAtom)\n const reset = useResetAtom(txAtom)\n\n useEffect(() => {\n if (isTxFailed(state) && failReason) {\n dispatch(setError({ errorMessage: failReason }))\n }\n }, [dispatch, failReason, state])\n\n useEffect(() => {\n if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) {\n if (handleSuccess && txReceipt) {\n handleSuccess(txReceipt.blockNumber)\n } else if (handleSuccess && solanaSignature) {\n handleSuccess(0) // solana tx doesn't have block number\n }\n }\n }, [handleSuccess, solanaSignature, step, txReceipt])\n\n const handleCloseModal = useCallback(() => {\n reset()\n dispatch(resetState())\n handleClose()\n }, [dispatch, handleClose, reset])\n\n // when close modal, return null to make sure all the states are reset\n if (!isOpen) {\n return null\n }\n\n return (\n <HumaModal\n isOpen={isOpen}\n overflowY='auto'\n onClose={handleCloseModal}\n width='480px'\n padding={theme.spacing(4, 5)}\n disableBackdropClick\n >\n <HumaModalHeader onClose={handleCloseModal} height={0} />\n {isLoading && <LoadingModal title={loadingTitle} />}\n {!isLoading && children}\n </HumaModal>\n )\n}\n","import { Box, Button, css } from '@mui/material'\nimport React from 'react'\n\nimport { WCProps } from '../utilTypes'\n\ntype Props = {\n variant: 'contained' | 'outlined'\n disabled?: boolean\n onClick?: () => void\n}\n\nexport function BottomButton({\n variant,\n disabled = false,\n onClick,\n children,\n}: WCProps<Props>): React.ReactElement {\n const styles = css`\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n `\n\n return (\n <Box css={styles}>\n <Button variant={variant} onClick={onClick} disabled={disabled}>\n {children}\n </Button>\n </Box>\n )\n}\n","import { Box } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { getExplorerUrl, openInNewTab } from '@huma-finance/shared'\nimport React from 'react'\nimport { BottomButton } from './BottomButton'\n\ntype Props = {\n txHash: string\n}\n\nexport function ViewOnExplorer({ txHash }: Props): React.ReactElement | null {\n const { chainId } = useWeb3React()\n const link = getExplorerUrl(chainId, txHash, 'tx')\n\n if (!link) {\n return null\n }\n\n return (\n <BottomButton variant='contained' onClick={() => openInNewTab(link)}>\n <Box component='span'>VIEW ON EXPLORER</Box>\n </BottomButton>\n )\n}\n","import { MaxUint256 } from '@ethersproject/constants'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, BigNumberish } from 'ethers'\nimport { PoolInfoType, TxStateType } from '@huma-finance/shared'\nimport {\n sendTxAtom,\n txAtom,\n useMount,\n usePoolUnderlyingTokenContract,\n} from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { BottomButton } from './BottomButton'\nimport { AutoPaybackImg } from './images'\nimport { LoadingModal } from './LoadingModal'\nimport { ViewOnExplorer } from './ViewOnExplorer'\nimport { WrapperModal } from './WrapperModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n showAutoPayback?: boolean\n allowanceAmount?: BigNumberish\n spender?: string\n resetAfterSuccess?: boolean\n handleSuccess: () => void\n}\n\nexport function ApproveAllowanceModal({\n poolInfo,\n showAutoPayback = false,\n allowanceAmount,\n spender,\n resetAfterSuccess = true,\n handleSuccess,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const { provider, account, chainId } = useWeb3React()\n const { poolUnderlyingToken } = poolInfo\n const { symbol } = poolUnderlyingToken\n const poolUnderlyingTokenContract = usePoolUnderlyingTokenContract(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n provider,\n )\n const reset = useResetAtom(txAtom)\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n const waitingForAccept = state === TxStateType.New\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n if (resetAfterSuccess) {\n reset()\n }\n handleSuccess()\n }\n }, [handleSuccess, reset, resetAfterSuccess, state, symbol])\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(6)};\n & > img {\n width: 220px;\n }\n `,\n description: css`\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n padding: ${theme.spacing(0, 1)};\n `,\n }\n\n const sendIncreaseAllowance = useCallback(async () => {\n const allowanceSpender = spender ?? poolInfo.pool\n const targetAllowanceAmount = allowanceAmount ?? MaxUint256\n const currentAllowance = await poolUnderlyingTokenContract?.allowance(\n account!,\n allowanceSpender,\n )\n const amountToIncrease = BigNumber.from(targetAllowanceAmount).sub(\n currentAllowance ?? 0,\n )\n\n if (amountToIncrease.lte(0)) {\n handleSuccess()\n return\n }\n\n send({\n contract: poolUnderlyingTokenContract!,\n method: 'increaseAllowance',\n params: [allowanceSpender, amountToIncrease],\n provider,\n })\n }, [\n account,\n allowanceAmount,\n handleSuccess,\n poolInfo.pool,\n poolUnderlyingTokenContract,\n provider,\n send,\n spender,\n ])\n\n useMount(() => {\n if (!showAutoPayback) {\n sendIncreaseAllowance()\n }\n })\n\n if (showAutoPayback && waitingForAccept) {\n return (\n <WrapperModal\n title='Auto Payback'\n subTitle='Enable auto payback and never miss payments. You only need to do it once.'\n >\n <Box css={styles.iconWrapper}>\n <img src={AutoPaybackImg} alt='auto-payback' />\n </Box>\n <Box css={styles.description}>\n This allowance transaction removes the need to confirm follow up{' '}\n {symbol} transactions. Gas is on us.\n </Box>\n <BottomButton variant='contained' onClick={sendIncreaseAllowance}>\n APPROVE {symbol} PAYMENTS\n </BottomButton>\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title={`Approve ${symbol}`}\n description='Waiting for approval confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport { BigNumberish } from 'ethers'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n amount?: BigNumberish\n}\n\nexport function ApproveAllowance({\n poolInfo,\n amount,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal\n poolInfo={poolInfo}\n allowanceAmount={amount}\n handleSuccess={handleSuccess}\n resetAfterSuccess={false}\n showAutoPayback\n />\n )\n}\n","import { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport { txAtom } from '@huma-finance/web-shared'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { resetState } from '../store/widgets.reducers'\nimport { CheckIcon } from './icons'\n\ntype Props = {\n content: string[]\n subContent?: string[]\n buttonText?: string\n handleAction: () => void\n}\n\nexport function TxDoneModal({\n content,\n subContent,\n handleAction,\n buttonText,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const reset = useResetAtom(txAtom)\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n content: css`\n ${theme.cssMixins.colVCentered};\n font-weight: ${subContent ? 700 : 400};\n font-size: 18px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(8)};\n text-align: center;\n `,\n subContent: css`\n ${theme.cssMixins.colVCentered};\n font-weight: 400;\n font-size: 18px;\n color: ${theme.palette.text.primary};\n margin-top: ${theme.spacing(2)};\n text-align: center;\n `,\n check: css`\n width: 100%;\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(10)};\n `,\n doneButton: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n `,\n }\n\n const handleCloseModal = useCallback(() => {\n reset()\n dispatch(resetState())\n handleAction()\n }, [dispatch, handleAction, reset])\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n Transaction Completed\n </Typography>\n <Box css={styles.check}>\n <CheckIcon />\n </Box>\n <Box css={styles.content}>\n {content.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n {subContent && (\n <Box css={styles.subContent}>\n {subContent.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n )}\n <Button\n className='transaction-done-modal-close-btn'\n variant='contained'\n css={styles.doneButton}\n onClick={handleCloseModal}\n >\n {!buttonText ? 'DONE' : buttonText}\n </Button>\n </Box>\n )\n}\n","import {\n PoolInfoType,\n decodeLogs,\n downScale,\n formatMoney,\n ERC20_ABI,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport React, { useEffect, useState } from 'react'\n\nimport { useAtom } from 'jotai'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleAction: () => void\n}\n\nexport function Success({ poolInfo, handleAction }: Props): React.ReactElement {\n const { symbol, decimals } = poolInfo.poolUnderlyingToken\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const [approvedAmount, setApprovedAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (txReceipt) {\n const [event] = decodeLogs(txReceipt.logs, ERC20_ABI)\n if (event) {\n const payedAmount = downScale(event.args.value.toString(), decimals)\n setApprovedAmount(payedAmount)\n }\n }\n }, [decimals, txReceipt])\n\n return (\n <TxDoneModal\n handleAction={handleAction}\n content={[\n `You successfully approved ${formatMoney(approvedAmount)} ${symbol}.`,\n `Your pool will automatically pay off the due amount on the credit line before the end of each billing cycle.`,\n ]}\n />\n )\n}\n","import { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { useAccountStats, usePoolInfo } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumberish } from 'ethers'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ApproveAllowance } from './1-ApproveAllowance'\nimport { Success } from './2-Success'\n\n/**\n * Credit line pool approve allowance props\n * @typedef {Object} CreditLineApproveProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {BigNumberish|undefined} amount The amount to approve.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool approve allowance action is successful.\n */\nexport type CreditLineApproveProps = {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n amount?: BigNumberish\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CreditLineApprove({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n amount,\n handleClose,\n handleSuccess,\n}: CreditLineApproveProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [accountStats] = useAccountStats(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const { creditRecord } = accountStats\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n }, [dispatch])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Approve Allowance'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} amount={amount} />\n )}\n {step === WIDGET_STEP.Done && (\n <Success poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Approve Allowance'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { MaxUint256 } from '@ethersproject/constants'\nimport {\n getERC20Contract,\n PoolInfoV2,\n TxStateType,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { sendTxAtom, txAtom, useMount } from '@huma-finance/web-shared'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, BigNumberish } from 'ethers'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { BottomButton } from './BottomButton'\nimport { AutoPaybackImg } from './images'\nimport { LoadingModal } from './LoadingModal'\nimport { ViewOnExplorer } from './ViewOnExplorer'\nimport { WrapperModal } from './WrapperModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n showAutoPayback?: boolean\n allowanceAmount?: BigNumberish\n spender?: string\n resetAfterSuccess?: boolean\n handleSuccess: () => void\n}\n\nexport function ApproveAllowanceModalV2({\n poolInfo,\n poolUnderlyingToken,\n showAutoPayback = false,\n allowanceAmount,\n spender,\n resetAfterSuccess = true,\n handleSuccess,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const { provider, account } = useWeb3React()\n const reset = useResetAtom(txAtom)\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n const waitingForAccept = state === TxStateType.New\n const { symbol, address } = poolUnderlyingToken\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n if (resetAfterSuccess) {\n reset()\n }\n handleSuccess()\n }\n }, [handleSuccess, reset, resetAfterSuccess, state])\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(6)};\n & > img {\n width: 220px;\n }\n `,\n description: css`\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n padding: ${theme.spacing(0, 1)};\n `,\n }\n\n const sendIncreaseAllowance = useCallback(async () => {\n const allowanceSpender = spender ?? poolInfo.pool\n const targetAllowanceAmount = allowanceAmount ?? MaxUint256\n const underlyingTokenContract = await getERC20Contract(\n address,\n provider,\n account,\n )\n const currentAllowance = await underlyingTokenContract?.allowance(\n account!,\n allowanceSpender,\n )\n const amountToIncrease = BigNumber.from(targetAllowanceAmount).sub(\n currentAllowance ?? 0,\n )\n send({\n contract: underlyingTokenContract!,\n method: 'increaseAllowance',\n params: [allowanceSpender, amountToIncrease],\n provider,\n })\n }, [\n account,\n address,\n allowanceAmount,\n poolInfo.pool,\n provider,\n send,\n spender,\n ])\n\n useMount(() => {\n if (!showAutoPayback) {\n sendIncreaseAllowance()\n }\n })\n\n if (showAutoPayback && waitingForAccept) {\n return (\n <WrapperModal\n title='Auto Payback'\n subTitle='Enable auto payback and never miss payments. You only need to do it once.'\n >\n <Box css={styles.iconWrapper}>\n <img src={AutoPaybackImg} alt='auto-payback' />\n </Box>\n <Box css={styles.description}>\n This allowance transaction removes the need to confirm follow up{' '}\n {symbol} transactions. Gas is on us.\n </Box>\n <BottomButton variant='contained' onClick={sendIncreaseAllowance}>\n APPROVE {symbol} PAYMENTS\n </BottomButton>\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title={`Approve ${symbol}`}\n description='Waiting for approval confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = () => {\n dispatch(setStep(WIDGET_STEP.Done))\n }\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.poolSafe}\n poolUnderlyingToken={poolUnderlyingToken}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import React from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Success({ handleAction }: Props): React.ReactElement {\n const content = [`You have successfully enabled auto payback.`]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { POOL_NAME } from '@huma-finance/shared'\nimport {\n usePoolInfoV2,\n usePoolSafeAllowanceV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ApproveAllowance } from './1-ApproveAllowance'\nimport { Success } from './2-Success'\n\n/**\n * Auto payback props V2\n * @typedef {Object} AutoPaybackPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool borrow action is successful.\n */\nexport interface AutoPaybackPropsV2 {\n poolName: keyof typeof POOL_NAME\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function AutoPaybackV2({\n poolName: poolNameStr,\n handleClose,\n handleSuccess,\n}: AutoPaybackPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const poolName = POOL_NAME[poolNameStr]\n const { account, chainId, provider } = useWeb3React()\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const { autopayEnabled } = usePoolSafeAllowanceV2(poolName, account, provider)\n\n useEffect(() => {\n if (!step && !autopayEnabled) {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n }\n }, [autopayEnabled, dispatch, step])\n\n if (!poolInfo || !poolUnderlyingToken || autopayEnabled === undefined) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Auto Payback'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle='Auto Payback'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n />\n )}\n {step === WIDGET_STEP.Done && <Success handleAction={handleClose} />}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Auto Payback'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n checkIsDev,\n EAPayload,\n EARejectionError,\n EARejectMessage,\n EARejectReason,\n EAService,\n} from '@huma-finance/shared'\nimport { useAuthErrorHandling } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { useCallback } from 'react'\n\nimport { setApproval, setError } from '../store/widgets.reducers'\nimport { WIDGET_STEP } from '../store/widgets.store'\nimport { useAppDispatch } from './useRedux'\n\nconst useEA = () => {\n const dispatch = useAppDispatch()\n const { chainId } = useWeb3React()\n const {\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n setAuthError,\n } = useAuthErrorHandling(checkIsDev())\n\n const checkingEA = useCallback(\n async (payload: EAPayload, nextStep: WIDGET_STEP) => {\n try {\n const result = await EAService.approve(payload, chainId!, checkIsDev())\n dispatch(setApproval({ ...result, nextStep }))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (e instanceof EARejectionError) {\n dispatch(\n setError({\n errorMessage: EARejectMessage,\n errorReason: EARejectReason,\n }),\n )\n } else {\n try {\n setAuthError(e)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n dispatch(\n setError({\n errorMessage: e.message,\n }),\n )\n }\n }\n }\n },\n [chainId, dispatch, setAuthError],\n )\n\n return {\n checkingEA,\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n }\n}\n\nexport default useEA\n","export default \"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==\"","import { Box, css, Typography, useTheme } from '@mui/material'\nimport React from 'react'\nimport { ApproveLenderImg } from './images'\n\ntype Props = {\n description?: string\n}\n\nexport function SignIn({ description }: Props): React.ReactElement {\n const theme = useTheme()\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n icon: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(12)};\n margin-right: ${theme.spacing(4)};\n & > img {\n width: 170px;\n }\n `,\n content: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ${theme.palette.text.secondary};\n margin-bottom: ${theme.spacing(8)};\n `,\n }\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n Sign In\n </Typography>\n <Box css={styles.icon}>\n <img src={ApproveLenderImg} alt='approve-lender' />\n </Box>\n <Box css={styles.content}>\n {description ??\n 'Please sign in to verify your ownership of the wallet.'}\n </Box>\n </Box>\n )\n}\n","import { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType } from '@huma-finance/shared'\nimport React, { useEffect, useState } from 'react'\n\nimport useEA from '../../../hooks/useEA'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { CheckCircleIcon, CheckGreenIcon } from '../../icons'\nimport spinner from '../../icons/spinner.gif'\nimport { SignIn } from '../../SignIn'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleApprove: () => void\n}\n\nexport function Evaluation({\n poolInfo,\n handleApprove,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const {\n checkingEA,\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n } = useEA()\n const dispatch = useAppDispatch()\n const { account, chainId } = useWeb3React()\n const [status, setStatus] = useState<'checking' | 'success'>('checking')\n\n useEffect(() => {\n const fetchData = async () => {\n if (account && chainId) {\n await checkingEA(\n {\n poolAddress: poolInfo.pool,\n borrowerWalletAddress: account,\n },\n WIDGET_STEP.Evaluation,\n )\n handleApprove()\n setStatus('success')\n }\n }\n fetchData()\n }, [\n account,\n chainId,\n checkingEA,\n handleApprove,\n poolInfo.assetAddress,\n poolInfo.pool,\n isWalletOwnershipVerified,\n ])\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n content: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ${theme.palette.text.secondary};\n margin-bottom: ${theme.spacing(8)};\n `,\n checkWrapper: css`\n ${theme.cssMixins.rowVCentered}\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n `,\n checkIcon: css`\n ${theme.cssMixins.rowCentered}\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n `,\n congratsWrapper: css`\n font-weight: 400;\n font-size: 16px;\n padding: ${theme.spacing(0, 2)};\n ${theme.cssMixins.rowVCentered}\n margin-top: ${theme.spacing(8)};\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 `,\n bottom: css`\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n `,\n }\n\n const goToNextStep = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n if (isWalletOwnershipVerificationRequired) {\n return <SignIn />\n }\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n Borrow\n </Typography>\n <Box css={styles.content}>\n Looks like it’s your first time around here. Let’s see if you qualify...\n </Box>\n <Box css={styles.checkWrapper} sx={{ marginBottom: '16px' }}>\n <Box css={styles.checkIcon}>\n {status === 'checking' && <img src={spinner} alt='loading...' />}\n {status === 'success' && <CheckGreenIcon />}\n </Box>\n <Box>Checking your income</Box>\n </Box>\n <Box css={styles.checkWrapper}>\n <Box css={styles.checkIcon}>\n {status === 'checking' && <img src={spinner} alt='loading...' />}\n {status === 'success' && <CheckGreenIcon />}\n </Box>\n <Box>Checking other qualifications</Box>\n </Box>\n {status === 'success' && (\n <>\n <Box css={styles.congratsWrapper}>\n <CheckCircleIcon />\n <Box sx={{ marginLeft: '16px' }}>\n Congrats, you are qualified to borrow\n </Box>\n </Box>\n <Box css={styles.bottom}>\n <Button variant='contained' onClick={goToNextStep}>\n CONTINUE TO BORROW\n </Button>\n </Box>\n </>\n )}\n </Box>\n )\n}\n","import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'\nimport ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp'\nimport {\n Box,\n Button,\n css,\n Divider,\n Input,\n Slider,\n useTheme,\n} from '@mui/material'\nimport { useMQ } from '@huma-finance/web-shared'\nimport React, { useState } from 'react'\n\nimport { IconType } from '../utilTypes'\nimport { WrapperModal } from './WrapperModal'\n\ntype Props = {\n title: string\n tokenIcon?: IconType\n description1?: string\n description2?: string\n currentAmount: number\n sliderMax: number\n tokenSymbol: string\n topLeft?: string\n topRight?: string\n downLeft?: string\n downRight?: string\n actionText?: string\n hideTerms?: boolean\n payoffAmount?: number\n type?: 'slider' | 'input'\n handleChangeAmount: (amount: number) => void\n handleAction: () => void\n}\n\nexport function ChooseAmountModal({\n title,\n tokenIcon,\n description1,\n description2,\n currentAmount,\n sliderMax,\n tokenSymbol,\n topLeft,\n topRight,\n downLeft,\n downRight,\n actionText = 'accept terms',\n payoffAmount,\n hideTerms = false,\n type = 'slider',\n handleChangeAmount,\n handleAction,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const { isXsSize } = useMQ()\n const [inputTouched, setInputTouched] = useState(false)\n\n const styles = {\n subTitle: css`\n font-weight: 400;\n `,\n description2: css`\n ${theme.cssMixins.rowCentered};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(2)};\n `,\n chosenAmountWrapper: css`\n ${theme.cssMixins.rowCentered};\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: ${theme.spacing(1)};\n margin-top: ${theme.spacing(4)};\n `,\n chosenAmount: css`\n font-weight: 700;\n font-size: 32px;\n `,\n chosenAmountSymbol: css`\n font-size: 75%;\n margin-left: ${theme.spacing(0.5)};\n letter-spacing: 0.1px;\n `,\n inputAmountWrapper: css`\n margin-bottom: ${theme.spacing(1)};\n margin-top: ${theme.spacing(4)};\n `,\n inputAmount: css`\n ${theme.cssMixins.rowSpaceBetweened};\n `,\n inputField: css`\n width: 100%;\n `,\n maxButton: css`\n width: 80px;\n `,\n amountAvailable: css`\n ${theme.cssMixins.rowVCentered};\n margin-top: ${theme.spacing(0.5)};\n margin-bottom: ${theme.spacing(12)};\n font-size: 16px;\n & > svg {\n margin-right: ${theme.spacing(0.5)};\n }\n `,\n tokenIcon: {\n width: '16px',\n height: '16px',\n },\n editIcon: css`\n color: ${theme.palette.primary.main};\n cursor: pointer;\n display: inline-grid;\n vertical-align: middle;\n & > svg {\n font-size: 24px;\n }\n & > svg:first-of-type {\n margin-bottom: ${theme.spacing(-1)};\n }\n `,\n input: css`\n font-size: 18px;\n -webkit-text-fill-color: ${theme.palette.primary.main};\n `,\n slider: css`\n margin-bottom: ${theme.spacing(7)};\n &.MuiSlider-root {\n height: 8px !important;\n color: ${theme.palette.text.primary};\n }\n & .MuiSlider-track {\n height: 8px !important;\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n border-radius: 8px;\n }\n & .MuiSlider-thumb::before {\n background: #ffffff;\n border: 1px solid #f9f9f9;\n box-shadow: 1px 1px 12px 2px rgba(163, 100, 244, 0.6);\n border-radius: 50px;\n width: 24px;\n height: 24px;\n }\n `,\n info: css`\n font-weight: 400;\n ${theme.cssMixins.rowSpaceBetweened};\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n `,\n divider: css`\n margin: ${theme.spacing(2, 0)};\n border-color: ${theme.palette.divider};\n `,\n okButton: css`\n font-weight: 700;\n width: 100%;\n position: absolute;\n bottom: ${theme.spacing(isXsSize ? 2 : 0)};\n `,\n terms: css`\n ${theme.cssMixins.rowHCentered};\n font-weight: 400;\n font-size: 12px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(1)};\n letter-spacing: 0px;\n width: 100%;\n position: absolute;\n bottom: ${theme.spacing(-3)};\n `,\n }\n\n const handleSliderChange = (event: Event, newValue: number | number[]) => {\n handleChangeAmount(newValue as number)\n }\n\n const handleInputChange = (\n event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>,\n ) => {\n setInputTouched(true)\n if (!event.target.value) {\n handleChangeAmount(0)\n } else {\n handleChangeAmount(Number(event.target.value))\n }\n }\n\n const handleSetMax = () => {\n handleChangeAmount(sliderMax)\n }\n\n const handleIncrement = () => {\n const newAmount = currentAmount + 1\n if (newAmount <= sliderMax) {\n handleChangeAmount(newAmount)\n }\n }\n\n const handleDecrement = () => {\n const newAmount = currentAmount - 1\n if (newAmount >= 0) {\n handleChangeAmount(newAmount)\n }\n }\n\n const handlePayoff = () => {\n if (payoffAmount) {\n handleChangeAmount(payoffAmount)\n }\n }\n\n const subTitle = (\n <Box component='span'>\n <Box component='span' css={styles.subTitle}>\n {description1}\n </Box>\n {payoffAmount && (\n <Button\n sx={{ fontSize: '12px' }}\n variant='text'\n size='small'\n onClick={handlePayoff}\n className='choose-amount-modal-select-payoff-btn'\n >\n Pay Off\n </Button>\n )}\n </Box>\n )\n\n return (\n <WrapperModal title={title} subTitle={subTitle}>\n {type === 'slider' && (\n <>\n <Box css={styles.chosenAmountWrapper}>\n <Box css={styles.chosenAmount}>\n {Number(currentAmount).toFixed(2)}\n <Box component='span' css={styles.chosenAmountSymbol}>\n {tokenSymbol}\n </Box>\n <Box component='span' css={styles.editIcon}>\n <ArrowDropUpIcon\n onClick={handleIncrement}\n className='choose-amount-modal-increment-icon'\n />\n <ArrowDropDownIcon onClick={handleDecrement} />\n </Box>\n </Box>\n </Box>\n <Slider\n max={Number(sliderMax)}\n min={0}\n css={styles.slider}\n aria-label='Amount'\n value={currentAmount}\n onChange={handleSliderChange}\n />\n </>\n )}\n {type === 'input' && (\n <Box css={styles.inputAmountWrapper}>\n <Box css={styles.inputAmount}>\n <Input\n css={styles.inputField}\n type='number'\n value={!inputTouched && currentAmount === 0 ? '' : currentAmount}\n onChange={handleInputChange}\n placeholder='0'\n />\n <Button\n variant='contained'\n css={styles.maxButton}\n onClick={handleSetMax}\n >\n Max\n </Button>\n </Box>\n <Box css={styles.amountAvailable}>\n {tokenIcon && React.createElement(tokenIcon, styles.tokenIcon)}\n <Box>{Number(sliderMax).toFixed(2)} Available</Box>\n </Box>\n </Box>\n )}\n <Box css={styles.info}>\n <Box>{topLeft}</Box>\n <Box>{topRight}</Box>\n </Box>\n {topLeft && downLeft && <Divider css={styles.divider} />}\n <Box css={styles.info}>\n <Box>{downLeft}</Box>\n <Box>{downRight}</Box>\n </Box>\n <Box css={styles.description2}>{description2}</Box>\n <Button\n className='choose-amount-modal-action-btn'\n variant='contained'\n css={styles.okButton}\n onClick={handleAction}\n disabled={\n !currentAmount ||\n Number(currentAmount) <= 0 ||\n Number(currentAmount) > Number(sliderMax)\n }\n >\n {actionText.toUpperCase()}\n </Button>\n {!hideTerms && (\n <Box css={styles.terms}>\n By clicking {actionText}, you agree to Huma’s Terms of Service.\n </Box>\n )}\n </WrapperModal>\n )\n}\n","import { AccountStats, PoolInfoType } from '@huma-finance/shared'\nimport { useCLFeeManager, useCLPoolAllowance } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useState } from 'react'\nimport { ethers } from 'ethers'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setBorrowInfo } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n accountStats: AccountStats\n}\n\nexport function ChooseAmount({\n poolInfo,\n accountStats,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, chainId, provider } = useWeb3React()\n const { poolUnderlyingToken } = poolInfo\n const { symbol, decimals } = poolUnderlyingToken\n const { getFeesCharged } = useCLFeeManager(\n poolInfo.poolName,\n chainId,\n provider,\n )\n const [chargedFees, setChargedFees] = useState(0)\n const [currentAmount, setCurrentAmount] = useState(0)\n const { creditRecordStatic, creditAvailableAmount } = accountStats\n\n const { approved } = useCLPoolAllowance(\n poolInfo.poolName,\n chainId,\n account,\n provider,\n )\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n const newChargedFees = getFeesCharged(newAmount)\n setChargedFees(newChargedFees)\n },\n [getFeesCharged],\n )\n\n const handleAction = useCallback(() => {\n const nextStep = approved\n ? WIDGET_STEP.Transfer\n : WIDGET_STEP.ApproveAllowance\n\n dispatch(\n setBorrowInfo({\n borrowAmount: currentAmount,\n borrowAmountBN: ethers.utils\n .parseUnits(currentAmount.toString(), decimals)\n .toJSON(),\n chargedFees,\n nextStep,\n }),\n )\n }, [approved, chargedFees, currentAmount, decimals, dispatch])\n\n return (\n <ChooseAmountModal\n title='Borrow'\n description1='Choose Amount'\n sliderMax={creditAvailableAmount}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n topLeft='Origination Fee'\n topRight={`${chargedFees} ${symbol}`}\n downLeft='APR'\n downRight={`${creditRecordStatic!.aprInBps / 100}%`}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='borrow'\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function ApproveAllowance({\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal\n poolInfo={poolInfo}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { Contract } from 'ethers'\nimport { PoolInfoType, TxStateType } from '@huma-finance/shared'\nimport { sendTxAtom, useMount, usePoolContract } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport React, { useEffect } from 'react'\n\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { LoadingModal } from './LoadingModal'\nimport { ViewOnExplorer } from './ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoType\n method: string\n params: unknown[]\n title?: string\n contract?: Contract\n handleSuccess?: () => void\n}\n\nexport function TxSendModal({\n poolInfo,\n title,\n method,\n params,\n contract,\n handleSuccess,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, chainId, account } = useWeb3React()\n const poolContract = usePoolContract(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n provider,\n account,\n )\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n if (handleSuccess) {\n handleSuccess()\n }\n }\n }, [dispatch, handleSuccess, state])\n\n useMount(() => {\n send({ contract: contract ?? poolContract!, method, params, provider })\n })\n\n return (\n <LoadingModal\n title={title ?? 'Transaction Pending'}\n description='Waiting for confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport { txAtom } from '@huma-finance/web-shared'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback } from 'react'\nimport { BigNumber } from 'ethers'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const reset = useResetAtom(txAtom)\n const { borrowAmountBN: borrowAmountBNJson } =\n useAppSelector(selectWidgetState)\n const borrowAmountBN = BigNumber.from(borrowAmountBNJson)\n\n const handleSuccess = useCallback(() => {\n reset()\n const nextStep = WIDGET_STEP.Done\n dispatch(setStep(nextStep))\n }, [dispatch, reset])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n method='drawdown'\n params={[borrowAmountBN]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n CreditRecordType,\n PoolInfoType,\n formatNumber,\n timeUtil,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n creditRecord: CreditRecordType\n handleAction: () => void\n hasNextStep: boolean\n}\n\nexport function Success({\n poolInfo,\n creditRecord,\n handleAction,\n hasNextStep,\n}: Props): React.ReactElement {\n const { borrowAmountNet } = useAppSelector(selectWidgetState)\n const { poolUnderlyingToken } = poolInfo\n const { symbol } = poolUnderlyingToken\n const dueDate = timeUtil.timestampToLL(creditRecord?.dueDate.toNumber())\n\n const content = [\n `${formatNumber(borrowAmountNet)} ${symbol} is now in your wallet.`,\n `Note: your payment will be automatically deducted on ${dueDate}.`,\n ]\n\n return (\n <TxDoneModal\n handleAction={handleAction}\n content={content}\n buttonText={hasNextStep ? \"WHAT'S NEXT\" : undefined}\n />\n )\n}\n","import { txAtom } from '@huma-finance/web-shared'\nimport { Box, css, TextField, Typography, useTheme } from '@mui/material'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport {\n FtuStage,\n useNotifiFrontendClientContext,\n useNotifiTargetContext,\n useNotifiTenantConfigContext,\n useNotifiTopicContext,\n useNotifiUserSettingContext,\n} from '@notifi-network/notifi-react'\nimport { NotifiFrontendClient } from '@notifi-network/notifi-frontend-client'\nimport { useAppDispatch } from '../../hooks/useRedux'\nimport { resetState } from '../../store/widgets.reducers'\nimport { BottomButton } from '../BottomButton'\nimport { CheckIcon } from '../icons'\nimport { LoadingModal } from '../LoadingModal'\nimport { WrapperModal } from '../WrapperModal'\n\ntype Props = {\n successText?: string\n handleSuccess: () => void\n}\n\nconst validateDefaultTargetGroup = async (\n frontendClient: NotifiFrontendClient,\n) => {\n // NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login\n const targetGroup = (\n await frontendClient?.fetchFusionData()\n )?.targetGroup?.find((group) => group?.name === 'Default')\n return !!targetGroup\n}\n\nexport function NotifiSubscriptionModal({\n successText,\n handleSuccess,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const reset = useResetAtom(txAtom)\n const dispatch = useAppDispatch()\n const [showSuccessScreen, setShowSuccessScreen] = useState<boolean>(false)\n const [isLoading, setIsLoading] = useState<boolean>(false)\n const [emailAddress, setEmailAddress] = useState<string>('')\n const [emailValid, setEmailValid] = useState<boolean>()\n const {\n frontendClientStatus: { isInitialized, isAuthenticated, isExpired },\n frontendClient,\n login,\n } = useNotifiFrontendClientContext()\n const { fusionEventTopics } = useNotifiTenantConfigContext()\n const { subscribeAlertsDefault } = useNotifiTopicContext()\n const {\n targetDocument: { targetGroupId },\n updateTargetInputs,\n renewTargetGroup,\n } = useNotifiTargetContext()\n const {\n ftuStage,\n isLoading: isLoadingFtuStage,\n updateFtuStage,\n } = useNotifiUserSettingContext()\n\n const handleEmailAddressChange = (\n event: React.ChangeEvent<HTMLInputElement>,\n ) => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n setEmailValid(emailRegex.test(event.target.value ?? ''))\n setEmailAddress(event.target.value)\n }\n\n useEffect(() => {\n async function subscribe() {\n if (\n !isInitialized ||\n !isAuthenticated ||\n !targetGroupId ||\n isLoadingFtuStage\n ) {\n return\n }\n\n // If a user is authenticated but already finished with the FTU (First Time User) setup\n // (AKA their login expired and they logged back in), then we can skip the subscription step.\n if (ftuStage !== FtuStage.Done) {\n await updateTargetInputs('email', { value: emailAddress! })\n // Authorize this email address for this wallet\n\n if (!targetGroupId) {\n setIsLoading(false)\n return\n }\n\n await subscribeAlertsDefault(fusionEventTopics, targetGroupId)\n await updateFtuStage(FtuStage.Done)\n\n const targetGroup = (\n await frontendClient?.fetchFusionData()\n )?.targetGroup?.find((group) => group?.name === 'Default')\n const emailTarget = targetGroup?.emailTargets?.[0]\n if (emailTarget && !emailTarget.isConfirmed) {\n await frontendClient.sendEmailTargetVerification({\n targetId: emailTarget.id,\n })\n }\n }\n\n setShowSuccessScreen(true)\n setIsLoading(false)\n }\n\n subscribe()\n }, [\n isInitialized,\n isAuthenticated,\n targetGroupId,\n updateTargetInputs,\n emailAddress,\n subscribeAlertsDefault,\n fusionEventTopics,\n updateFtuStage,\n isLoadingFtuStage,\n ftuStage,\n frontendClient,\n ])\n\n useEffect(() => {\n const loginIfExpired = async () => {\n if (isExpired) {\n await login()\n }\n }\n\n loginIfExpired()\n }, [isExpired, login])\n\n const logInAndSubscribe = async (): Promise<void> => {\n if (!isAuthenticated) {\n setIsLoading(true)\n\n // Ask user to sign a message to authenticate\n try {\n await login()\n\n const isDefaultTargetExist = await validateDefaultTargetGroup(\n frontendClient,\n )\n\n if (!isDefaultTargetExist) {\n await renewTargetGroup()\n }\n } catch (e) {\n setIsLoading(false)\n }\n }\n }\n\n const handleCloseModal = useCallback(() => {\n reset()\n dispatch(resetState())\n handleSuccess()\n }, [dispatch, handleSuccess, reset])\n\n const styles = {\n disclaimer: css`\n ${theme.cssMixins.rowCentered};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(6)};\n `,\n inputField: css`\n width: 100%;\n font-size: 16px;\n `,\n inputWrapper: css`\n width: 100%;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n check: css`\n width: 100%;\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(10)};\n `,\n }\n\n if (isLoading) {\n return <LoadingModal title='Notifications' />\n }\n\n if (showSuccessScreen) {\n return (\n <WrapperModal\n title='Success'\n subTitle='You successfully connected your email'\n >\n <Box css={styles.check}>\n <CheckIcon />\n </Box>\n <BottomButton variant='contained' onClick={handleCloseModal}>\n {successText ?? 'DONE'}\n </BottomButton>\n </WrapperModal>\n )\n }\n\n return (\n <WrapperModal title='Connect Your Email'>\n <Typography variant='body2' margin={theme.spacing(6, 0, 4, 0)}>\n Connect your emails to receive important update about your account.\n </Typography>\n <Box css={styles.inputWrapper}>\n <TextField\n css={styles.inputField}\n label='Your Email'\n type='email'\n value={emailAddress}\n onChange={handleEmailAddressChange}\n variant='outlined'\n color='primary'\n focused\n />\n </Box>\n <Box css={styles.disclaimer}>\n You can adjust these settings at any time by clicking the alert icon in\n the header.\n </Box>\n <BottomButton\n variant='contained'\n onClick={logInAndSubscribe}\n disabled={!emailValid || isLoading || !isInitialized}\n >\n CONNECT EMAIL\n </BottomButton>\n </WrapperModal>\n )\n}\n","import React from 'react'\nimport { NotifiSubscriptionModal } from '../../Notifi/NotifiSubscriptionModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Notifications({ handleAction }: Props): React.ReactElement {\n return <NotifiSubscriptionModal handleSuccess={handleAction} />\n}\n","import { useEffect, useState } from 'react'\nimport {\n checkIsDev,\n doesChainSupportNotifi,\n getBlockchainConfigFromChain,\n} from '@huma-finance/shared'\nimport {\n NotifiFrontendClient,\n newFrontendClient,\n} from '@notifi-network/notifi-frontend-client'\nimport {\n FtuStage,\n useNotifiFrontendClientContext,\n useNotifiUserSettingContext,\n} from '@notifi-network/notifi-react'\n\nexport const useDoesChainSupportNotifi = (chainId: number | undefined) => {\n const [notifiChainSupported, setNotifiChainSupported] = useState(false)\n\n useEffect(() => {\n const checkNotifiChainSupported = async () => {\n if (chainId != null) {\n setNotifiChainSupported(doesChainSupportNotifi(chainId, checkIsDev()))\n }\n }\n\n checkNotifiChainSupported()\n }, [chainId])\n\n return { notifiChainSupported }\n}\n\nexport const useNotifiClient = (\n account: string | undefined,\n chainId: number | undefined,\n) => {\n const [notifiClient, setNotifiClient] = useState<NotifiFrontendClient | null>(\n null,\n )\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n\n useEffect(() => {\n const createNotifiClient = async () => {\n if (account != null && chainId != null && notifiChainSupported) {\n const client = newFrontendClient({\n account: { publicKey: account },\n tenantId: 'humafinanceprod',\n env: 'Production',\n walletBlockchain: getBlockchainConfigFromChain(chainId),\n })\n await client.initialize()\n setNotifiClient(client)\n }\n }\n\n createNotifiClient()\n }, [account, chainId, notifiChainSupported])\n\n return { notifiClient }\n}\n\n// Check if user is authenticated\n// If not authenticated or expired, have user login\n// After login, check FTU stage\n// If FTU stage is not Done, go to signup flow. Otherwise, skip to next step\n\nexport const useIsFirstTimeNotifiUser = (\n account: string | undefined,\n chainId: number | undefined,\n) => {\n const [isFirstTimeNotifiUser, setIsFirstTimeNotifiUser] = useState(false)\n const {\n frontendClientStatus: { isInitialized, isAuthenticated, isExpired },\n } = useNotifiFrontendClientContext()\n const { ftuStage, isLoading: isLoadingFtu } = useNotifiUserSettingContext()\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n\n useEffect(() => {\n const checkIsFirstTimeNotifiUser = async () => {\n if (isInitialized && notifiChainSupported) {\n // If the user is not authenticated or expired, they are possibly a first time user.\n if (!isAuthenticated || isExpired) {\n setIsFirstTimeNotifiUser(true)\n } else if (isAuthenticated) {\n // If a user is authenticated, check if they've completed all the FTU (First Time User) stages.\n if (ftuStage !== FtuStage.Done) {\n setIsFirstTimeNotifiUser(true)\n }\n }\n }\n }\n\n checkIsFirstTimeNotifiUser()\n }, [\n ftuStage,\n isAuthenticated,\n isExpired,\n isInitialized,\n isLoadingFtu,\n notifiChainSupported,\n ])\n\n return { isFirstTimeNotifiUser }\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { CreditState, POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { useAccountStats, usePoolInfo } from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Evaluation } from './1-Evaluation'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { ApproveAllowance } from './3-ApproveAllowance'\nimport { Transfer } from './4-Transfer'\nimport { Success } from './5-Success'\nimport { Notifications } from './6-Notifications'\nimport {\n useDoesChainSupportNotifi,\n useIsFirstTimeNotifiUser,\n} from '../../../hooks/useNotifi'\n\n/**\n * Credit line pool borrow props\n * @typedef {Object} CreditLineBorrowProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleApprove Optional function to notify when user is approved successfully to borrow again pool.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool borrow action is successful.\n */\nexport interface CreditLineBorrowProps {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n handleClose: () => void\n handleApprove?: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CreditLineBorrow({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n handleClose,\n handleApprove,\n handleSuccess,\n}: CreditLineBorrowProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [accountStats, refreshAccountStats] = useAccountStats(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const { isFirstTimeNotifiUser } = useIsFirstTimeNotifiUser(account, chainId)\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n const { creditRecord } = accountStats\n const accountState = creditRecord?.state\n\n useEffect(() => {\n if (!step && accountState !== undefined) {\n const nextStep =\n accountState >= CreditState.Approved\n ? WIDGET_STEP.ChooseAmount\n : WIDGET_STEP.Evaluation\n dispatch(setStep(nextStep))\n }\n }, [accountState, dispatch, step])\n\n const approveCallback = useCallback(() => {\n if (handleApprove) {\n handleApprove()\n }\n refreshAccountStats()\n }, [handleApprove, refreshAccountStats])\n\n const setupNotificationsOrClose = useCallback(() => {\n if (isFirstTimeNotifiUser && notifiChainSupported) {\n dispatch(setStep(WIDGET_STEP.Notifications))\n } else {\n handleClose()\n }\n }, [dispatch, handleClose, isFirstTimeNotifiUser, notifiChainSupported])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Borrow'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation poolInfo={poolInfo} handleApprove={approveCallback} />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount poolInfo={poolInfo} accountStats={accountStats} />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n handleAction={setupNotificationsOrClose}\n creditRecord={creditRecord!}\n hasNextStep={isFirstTimeNotifiUser}\n />\n )}\n {step === WIDGET_STEP.Notifications && (\n <Notifications handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Borrow'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { isEmpty } from '@huma-finance/shared'\nimport {\n Box,\n Button,\n css,\n TextField,\n Typography,\n useTheme,\n} from '@mui/material'\nimport React, { useState } from 'react'\nimport { NumericFormat } from 'react-number-format'\n\nimport { BottomButton } from './BottomButton'\nimport { WrapperModal } from './WrapperModal'\n\ntype Props = {\n title: string\n subTitle: string\n actionText: string\n tokenSymbol: string\n suffix?: string\n currentAmount: number | string\n minimumAmount?: number\n maxAmount: number | string\n maxAmountText?: string\n maxAmountTitle?: string\n infos?: string[]\n handleChangeAmount: (amount: number) => void\n handleAction: () => void\n}\n\nexport function InputAmountModal({\n title,\n subTitle,\n actionText,\n tokenSymbol,\n suffix: defaultSuffix,\n currentAmount,\n minimumAmount,\n maxAmount,\n maxAmountText = 'MAX',\n maxAmountTitle,\n infos,\n handleChangeAmount,\n handleAction,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const [inputTouched, setInputTouched] = useState(false)\n const suffix = ` ${defaultSuffix ?? tokenSymbol}`\n\n const styles = {\n inputAmountWrapper: css`\n margin-bottom: ${theme.spacing(1)};\n margin-top: ${theme.spacing(16)};\n `,\n inputAmount: css`\n ${theme.cssMixins.rowSpaceBetweened};\n `,\n inputField: css`\n input {\n width: 100%;\n color: ${theme.palette.text.primary};\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n `,\n maxWrapper: css`\n position: relative;\n display: flex;\n justify-content: flex-end;\n `,\n maxTitle: css`\n position: absolute;\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ${theme.spacing(-3)};\n width: 200px;\n text-align: right;\n `,\n max: css`\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 `,\n info: css`\n color: ${theme.palette.text.secondary};\n font-weight: 400;\n font-size: 16px;\n line-height: 160%;\n letter-spacing: 0.15px;\n `,\n subInfo: css`\n position: absolute;\n bottom: ${theme.spacing(6)};\n `,\n }\n\n const onChange = (\n event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>,\n ) => {\n setInputTouched(true)\n handleChangeAmount(\n Number(event.target.value.replace(suffix, '').replaceAll(',', '')),\n )\n }\n\n const setMaxAmount = () => {\n handleChangeAmount(Number(maxAmount))\n }\n\n const getDisabled = () => {\n if (Number(currentAmount) <= 0) {\n return true\n }\n if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {\n return true\n }\n if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount!) {\n return true\n }\n return false\n }\n\n const getEndAdornment = () => (\n <Box css={styles.maxWrapper}>\n {maxAmountTitle && <Box css={styles.maxTitle}>{maxAmountTitle}</Box>}\n <Button variant='contained' css={styles.max} onClick={setMaxAmount}>\n {maxAmountText}\n </Button>\n </Box>\n )\n\n return (\n <WrapperModal title={title} subTitle={subTitle}>\n <Box css={styles.inputAmountWrapper}>\n <Box css={styles.inputAmount}>\n <NumericFormat\n css={styles.inputField}\n decimalScale={0}\n onChange={onChange}\n value={\n !inputTouched && Number(currentAmount) === 0 ? '' : currentAmount\n }\n suffix={suffix}\n thousandSeparator\n customInput={TextField}\n placeholder={`0${suffix}`}\n variant='standard'\n InputProps={{ endAdornment: getEndAdornment() }}\n />\n </Box>\n </Box>\n {infos && (\n <Box>\n {infos.map((info) => (\n <Typography css={styles.info} key={info}>\n {info}\n </Typography>\n ))}\n </Box>\n )}\n {!!minimumAmount && minimumAmount > 0 && (\n <Box>\n <Typography css={styles.info} key='minDeposit'>\n Minimum deposit: {minimumAmount} {tokenSymbol}\n </Typography>\n </Box>\n )}\n <BottomButton\n variant='contained'\n onClick={handleAction}\n disabled={getDisabled()}\n >\n {actionText}\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n CreditStatsV2,\n formatNumber,\n PoolInfoV2,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { usePoolSafeAllowanceV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { ethers } from 'ethers'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setBorrowInfo } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n accountStats: CreditStatsV2\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolUnderlyingToken,\n accountStats,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { symbol, decimals } = poolUnderlyingToken!\n const [currentAmount, setCurrentAmount] = useState(0)\n const { creditAvailable } = accountStats\n const creditAvailableFormatted = creditAvailable\n ? Number(ethers.utils.formatUnits(creditAvailable, decimals))\n : 0\n\n const { autopayEnabled } = usePoolSafeAllowanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n const handleChangeAmount = useCallback((newAmount: number) => {\n setCurrentAmount(newAmount)\n }, [])\n\n const handleAction = useCallback(() => {\n const nextStep = autopayEnabled\n ? WIDGET_STEP.Transfer\n : WIDGET_STEP.ApproveAllowance\n\n dispatch(\n setBorrowInfo({\n borrowAmount: currentAmount,\n borrowAmountBN: ethers.utils\n .parseUnits(currentAmount.toString(), decimals)\n .toJSON(),\n chargedFees: 0,\n nextStep,\n }),\n )\n }, [autopayEnabled, currentAmount, decimals, dispatch])\n\n if (autopayEnabled === undefined) {\n return <LoadingModal title='Borrow' />\n }\n\n return (\n <InputAmountModal\n title='Borrow'\n subTitle='Choose Amount'\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n maxAmount={creditAvailableFormatted}\n infos={[`${formatNumber(creditAvailableFormatted)} Available`]}\n handleAction={handleAction}\n actionText='BORROW'\n />\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.poolSafe}\n poolUnderlyingToken={poolUnderlyingToken}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import { TxStateType } from '@huma-finance/shared'\nimport { sendTxAtom, useMount } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { Contract } from 'ethers'\nimport { useAtom } from 'jotai'\nimport React, { useEffect } from 'react'\n\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { LoadingModal } from './LoadingModal'\nimport { ViewOnExplorer } from './ViewOnExplorer'\n\ntype Props = {\n method: string\n params: unknown[]\n title?: string\n contract: Contract\n handleSuccess?: (options?: { txHash: string }) => void\n}\n\nexport function TxSendModalV2({\n title,\n method,\n params,\n contract,\n handleSuccess,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider } = useWeb3React()\n\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n\n useEffect(() => {\n if (state === TxStateType.Success && txHash) {\n if (handleSuccess) {\n handleSuccess({ txHash })\n }\n }\n }, [dispatch, handleSuccess, state, txHash])\n\n useMount(() => {\n send({ contract, method, params, provider })\n })\n\n return (\n <LoadingModal\n title={title ?? 'Transaction Pending'}\n description='Waiting for confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoV2 } from '@huma-finance/shared'\nimport { txAtom, useCreditContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, account } = useWeb3React()\n const reset = useResetAtom(txAtom)\n const { borrowAmountBN: borrowAmountBNJson } =\n useAppSelector(selectWidgetState)\n const borrowAmountBN = BigNumber.from(borrowAmountBNJson)\n const creditContract = useCreditContractV2(\n poolInfo.poolName,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(() => {\n reset()\n const nextStep = WIDGET_STEP.Done\n dispatch(setStep(nextStep))\n }, [dispatch, reset])\n\n if (!account || !creditContract) {\n return <LoadingModal title='Borrow' />\n }\n\n return (\n <TxSendModalV2\n title='Borrow'\n contract={creditContract}\n method='drawdown'\n params={[borrowAmountBN]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n CreditStatsV2,\n formatNumber,\n timeUtil,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n creditRecord: CreditStatsV2['creditRecord']\n handleAction: () => void\n hasNextStep: boolean\n}\n\nexport function Success({\n poolUnderlyingToken,\n creditRecord,\n handleAction,\n hasNextStep,\n}: Props): React.ReactElement {\n const { borrowAmountNet } = useAppSelector(selectWidgetState)\n const { symbol } = poolUnderlyingToken\n const dueDate = timeUtil.timestampToLL(creditRecord?.nextDueDate.toNumber())\n\n const content = [\n `${formatNumber(borrowAmountNet)} ${symbol} is now in your wallet.`,\n `Note: your payment will be automatically deducted on ${dueDate}.`,\n ]\n\n return (\n <TxDoneModal\n handleAction={handleAction}\n content={content}\n buttonText={hasNextStep ? \"WHAT'S NEXT\" : undefined}\n />\n )\n}\n","import React from 'react'\nimport { NotifiSubscriptionModal } from '../../Notifi/NotifiSubscriptionModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Notifications({ handleAction }: Props): React.ReactElement {\n return <NotifiSubscriptionModal handleSuccess={handleAction} />\n}\n","import { CreditStateV2, POOL_NAME } from '@huma-finance/shared'\nimport {\n useCreditStatsV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport {\n useDoesChainSupportNotifi,\n useIsFirstTimeNotifiUser,\n} from '../../../hooks/useNotifi'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { LoadingModal } from '../../LoadingModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { ApproveAllowance } from './2-ApproveAllowance'\nimport { Transfer } from './3-Transfer'\nimport { Success } from './4-Success'\nimport { Notifications } from './5-Notifications'\n\n/**\n * Credit line pool borrow props V2\n * @typedef {Object} CreditLineBorrowPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool borrow action is successful.\n */\nexport interface CreditLineBorrowPropsV2 {\n poolName: keyof typeof POOL_NAME\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CreditLineBorrowV2({\n poolName: poolNameStr,\n handleClose,\n handleSuccess,\n}: CreditLineBorrowPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const poolName = POOL_NAME[poolNameStr]\n const { account, chainId, provider } = useWeb3React()\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [accountStats, refreshAccountStats] = useCreditStatsV2(\n poolName,\n account,\n provider,\n )\n const { isFirstTimeNotifiUser } = useIsFirstTimeNotifiUser(account, chainId)\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n const { creditRecord } = accountStats\n const accountState = creditRecord?.state\n\n useEffect(() => {\n if (!step && accountState !== undefined) {\n if (accountState >= CreditStateV2.Approved) {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n }\n }, [accountState, dispatch, step])\n\n const setupNotificationsOrClose = useCallback(() => {\n if (isFirstTimeNotifiUser && notifiChainSupported) {\n dispatch(setStep(WIDGET_STEP.Notifications))\n } else {\n handleClose()\n }\n }, [dispatch, handleClose, isFirstTimeNotifiUser, notifiChainSupported])\n\n const handleSuccessCallback = useCallback(() => {\n refreshAccountStats()\n if (handleSuccess) {\n handleSuccess()\n }\n }, [handleSuccess, refreshAccountStats])\n\n if (!poolInfo || !poolUnderlyingToken || !creditRecord) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Borrow'\n handleClose={handleClose}\n handleSuccess={handleSuccessCallback}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle='Borrow'\n handleClose={handleClose}\n handleSuccess={handleSuccessCallback}\n >\n {!step && <LoadingModal title='Borrow' />}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n accountStats={accountStats}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success\n poolUnderlyingToken={poolUnderlyingToken}\n handleAction={setupNotificationsOrClose}\n creditRecord={accountStats.creditRecord!}\n hasNextStep={isFirstTimeNotifiUser}\n />\n )}\n {step === WIDGET_STEP.Notifications && (\n <Notifications handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Borrow'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType, toBigNumber, upScale } from '@huma-finance/shared'\nimport { useCLPoolAllowance } from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { BigNumber } from 'ethers'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setPaymentAmount, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n payoffAmount: number\n totalDueAmount: number\n poolInfo: PoolInfoType\n}\n\nexport function ChooseAmount({\n payoffAmount,\n totalDueAmount,\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, chainId, provider } = useWeb3React()\n const { symbol, decimals } = poolInfo.poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState(0)\n const { allowance } = useCLPoolAllowance(\n poolInfo.poolName,\n chainId,\n account,\n provider,\n )\n\n useEffect(() => {\n setCurrentAmount(totalDueAmount)\n dispatch(setPaymentAmount({ paymentAmount: totalDueAmount }))\n }, [dispatch, totalDueAmount])\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setPaymentAmount({ paymentAmount: newAmount }))\n },\n [dispatch],\n )\n\n const handleAction = useCallback(() => {\n const payAmount = upScale<BigNumber>(toBigNumber(currentAmount), decimals)\n const step = payAmount.gt(allowance)\n ? WIDGET_STEP.ApproveAllowance\n : WIDGET_STEP.Transfer\n dispatch(setStep(step))\n }, [allowance, currentAmount, decimals, dispatch])\n\n return (\n <ChooseAmountModal\n title='Pay'\n description1='Choose amount'\n sliderMax={payoffAmount}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='pay'\n payoffAmount={payoffAmount}\n hideTerms\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function ApproveAllowance({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal poolInfo={poolInfo} handleSuccess={handleSuccess} />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType, toBigNumber, upScale } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\nimport { BigNumber } from 'ethers'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { account } = useWeb3React()\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.poolUnderlyingToken\n const paymentBigNumber = upScale<BigNumber>(\n toBigNumber(paymentAmount!),\n decimals,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n method='makePayment'\n params={[account, paymentBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n decodeLogs,\n downScale,\n formatNumber,\n PoolInfoType,\n TRANSFER_ABI,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport React, { useEffect, useState } from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleAction: () => void\n}\n\nexport function Success({ poolInfo, handleAction }: Props): React.ReactElement {\n const { symbol, decimals } = poolInfo.poolUnderlyingToken\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const [payedAmount, setPayedAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (txReceipt) {\n const [event] = decodeLogs(txReceipt.logs, TRANSFER_ABI)\n if (event) {\n const payedAmount = downScale(event.args.value.toString(), decimals)\n setPayedAmount(payedAmount)\n }\n }\n }, [decimals, txReceipt])\n\n const content = [\n `You successfully paid ${formatNumber(payedAmount)} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { useAccountStats, usePoolInfo } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { ApproveAllowance } from './2-ApproveAllowance'\nimport { Transfer } from './3-Transfer'\nimport { Success } from './4-Success'\n\n/**\n * Credit line pool payment props\n * @typedef {Object} CreditLinePaymentProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool payment action is successful.\n */\nexport type CreditLinePaymentProps = {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CreditLinePayment({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n handleClose,\n handleSuccess,\n}: CreditLinePaymentProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [{ creditRecord, payoffAmount, totalDueAmount }] = useAccountStats(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }, [dispatch])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Make Payment'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n payoffAmount={payoffAmount}\n totalDueAmount={totalDueAmount}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Make Payment'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n formatNumber,\n PoolInfoV2,\n toBigNumber,\n UnderlyingTokenInfo,\n upScale,\n} from '@huma-finance/shared'\nimport { usePoolSafeAllowanceV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, ethers } from 'ethers'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setPaymentAmount, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n payoffAmount: BigNumber\n totalDueAmount: BigNumber\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function ChooseAmount({\n payoffAmount: payoffAmountBN,\n totalDueAmount: totalDueAmountBN,\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { symbol, decimals } = poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState(0)\n const { allowance } = usePoolSafeAllowanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n const totalDueAmount = Number(\n ethers.utils.formatUnits(totalDueAmountBN, decimals),\n )\n const payoffAmount = Number(\n ethers.utils.formatUnits(payoffAmountBN, decimals),\n )\n\n // TODO: Remove redundant useEffect\n useEffect(() => {\n setCurrentAmount(totalDueAmount)\n }, [totalDueAmount])\n\n useEffect(() => {\n setCurrentAmount(totalDueAmount)\n dispatch(setPaymentAmount({ paymentAmount: totalDueAmount }))\n }, [dispatch, totalDueAmount])\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setPaymentAmount({ paymentAmount: newAmount }))\n },\n [dispatch],\n )\n\n const handleAction = useCallback(() => {\n const payAmount = upScale(currentAmount, decimals)\n const step = toBigNumber(payAmount).gt(allowance!)\n ? WIDGET_STEP.ApproveAllowance\n : WIDGET_STEP.Transfer\n dispatch(setStep(step))\n }, [allowance, currentAmount, decimals, dispatch])\n\n if (!allowance) {\n return <LoadingModal title='Pay' />\n }\n\n return (\n <InputAmountModal\n title='Pay'\n subTitle='Enter Amount'\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n maxAmount={payoffAmount}\n maxAmountText='Pay Off'\n infos={[`${formatNumber(totalDueAmount.toFixed(0))} Due`]}\n handleAction={handleAction}\n actionText='PAY'\n />\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.poolSafe}\n poolUnderlyingToken={poolUnderlyingToken}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import {\n PoolInfoV2,\n toBigNumber,\n UnderlyingTokenInfo,\n upScale,\n} from '@huma-finance/shared'\nimport { useCreditContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function Transfer({\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolUnderlyingToken\n const paymentBigNumber = toBigNumber(upScale(paymentAmount!, decimals))\n const creditContract = useCreditContractV2(\n poolInfo.poolName,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!account || !creditContract) {\n return <LoadingModal title='Pay' />\n }\n\n return (\n <TxSendModalV2\n title='Pay'\n contract={creditContract}\n method='makePayment'\n params={[account, paymentBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n decodeLogs,\n downScale,\n formatNumber,\n TRANSFER_ABI,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport React, { useEffect, useState } from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n handleAction: () => void\n}\n\nexport function Success({\n poolUnderlyingToken,\n handleAction,\n}: Props): React.ReactElement {\n const { symbol, decimals } = poolUnderlyingToken\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const [paidAmount, setPaidAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (txReceipt) {\n const [event] = decodeLogs(txReceipt.logs, TRANSFER_ABI)\n if (event) {\n const paidAmount = downScale(event.args.value.toString(), decimals)\n setPaidAmount(paidAmount)\n }\n }\n }, [decimals, txReceipt])\n\n const content = [\n `You successfully paid ${formatNumber(paidAmount)} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { POOL_NAME } from '@huma-finance/shared'\nimport {\n useCreditStatsV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { ApproveAllowance } from './2-ApproveAllowance'\nimport { Transfer } from './3-Transfer'\nimport { Success } from './4-Success'\n\n/**\n * Credit line pool payment props V2\n * @typedef {Object} CreditLinePaymentPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool payment action is successful.\n */\nexport type CreditLinePaymentPropsV2 = {\n poolName: keyof typeof POOL_NAME\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CreditLinePaymentV2({\n poolName: poolNameStr,\n handleClose,\n handleSuccess,\n}: CreditLinePaymentPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [{ creditRecord, totalDueAmount, payoffAmount }] = useCreditStatsV2(\n poolName,\n account,\n provider,\n )\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }, [dispatch])\n\n if (!poolInfo || !creditRecord || !poolUnderlyingToken) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Pay'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Pay'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n payoffAmount={payoffAmount!}\n totalDueAmount={totalDueAmount!}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolUnderlyingToken={poolUnderlyingToken}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Pay'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n formatNumber,\n SolanaPoolInfo,\n SolanaTokenUtils,\n} from '@huma-finance/shared'\nimport { CreditConfigAccount } from '@huma-finance/web-shared'\nimport React, { useCallback, useMemo, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setBorrowInfo } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n creditConfigAccount: CreditConfigAccount\n}\n\nexport function ChooseAmount({\n poolInfo,\n creditConfigAccount,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { symbol, decimals } = poolInfo.underlyingMint\n const [currentAmount, setCurrentAmount] = useState<number>(0)\n const creditAvailable = useMemo(\n () =>\n SolanaTokenUtils.formatUnits(\n creditConfigAccount.creditAvailable,\n decimals,\n ),\n [creditConfigAccount.creditAvailable, decimals],\n )\n\n const handleChangeAmount = (newAmount: number) => {\n setCurrentAmount(newAmount)\n }\n\n const handleAction = useCallback(() => {\n const borrowAmountBN = SolanaTokenUtils.parseUnits(\n String(currentAmount),\n decimals,\n )\n dispatch(\n setBorrowInfo({\n borrowAmount: currentAmount,\n borrowAmountBN: JSON.parse(borrowAmountBN.toString()),\n chargedFees: 0,\n nextStep: WIDGET_STEP.Transfer,\n }),\n )\n }, [currentAmount, decimals, dispatch])\n\n return (\n <InputAmountModal\n title='Borrow'\n subTitle='Choose Amount'\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n maxAmount={creditAvailable}\n infos={[`${String(formatNumber(creditAvailable))} ${symbol} Available`]}\n handleAction={handleAction}\n actionText='BORROW'\n />\n )\n}\n","import { Box, Button } from '@mui/material'\nimport {\n getSolanaExplorerUrl,\n openInNewTab,\n SolanaChainEnum,\n} from '@huma-finance/shared'\nimport React from 'react'\n\ntype Props = {\n chainId: SolanaChainEnum\n signature: string\n}\n\nexport function SolanaViewOnExplorer({\n chainId,\n signature,\n}: Props): React.ReactElement | null {\n const link = getSolanaExplorerUrl(chainId, signature, 'tx')\n\n if (!link) {\n return null\n }\n\n return (\n <Button fullWidth variant='outlined' onClick={() => openInNewTab(link)}>\n <Box component='span'>VIEW ON EXPLORER</Box>\n </Button>\n )\n}\n","import { sleep, SolanaChainEnum } from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport {\n buildOptimalTransactionFromConnection,\n extractWritableAccounts,\n} from '@huma-finance/sdk'\n\nimport { useConnection, useWallet } from '@solana/wallet-adapter-react'\nimport { Transaction } from '@solana/web3.js'\nimport { useForceRefresh } from '@huma-finance/web-shared'\nimport { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { setError, setSolanaSignature } from '../store/widgets.reducers'\nimport { LoadingModal } from './LoadingModal'\nimport { SolanaViewOnExplorer } from './SolanaViewOnExplorer'\nimport { SorryImg } from './images'\n\ntype Props = {\n chainId: SolanaChainEnum\n tx?: Transaction\n handleSuccess: (options?: { signature: string }) => void\n}\n\nexport function SolanaTxSendModal({\n chainId,\n tx,\n handleSuccess,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const { publicKey, signTransaction, sendTransaction } = useWallet()\n const { connection } = useConnection()\n const [signature, setSignature] = useState<string>('')\n const [showRetryScreen, setShowRetryScreen] = useState<boolean>(false)\n const [useHighPriority, setUseHighPriority] = useState<boolean>(true)\n const [refreshCount, refresh] = useForceRefresh()\n\n const styles = {\n wrapper: css`\n height: 438px;\n position: relative;\n `,\n sorry: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(12)};\n margin-right: ${theme.spacing(4)};\n & > img {\n width: 170px;\n }\n `,\n bottomButtonGroup: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: column;\n row-gap: ${theme.spacing(1)};\n column-gap: ${theme.spacing(1)};\n\n button {\n height: 40px;\n margin-top: ${theme.spacing(1)};\n }\n `,\n content: css`\n margin-top: ${theme.spacing(2)};\n font-size: 16px;\n `,\n retryHighPriorityButton: css`\n font-size: 16px;\n `,\n }\n\n useEffect(() => {\n async function sendTx() {\n if (!connection || !tx || !publicKey || !signTransaction) {\n return\n }\n\n try {\n // Optimize transaction\n // Make a copy of the tx so we can use the original tx for retries\n const txCopy = new Transaction()\n txCopy.instructions = [...tx.instructions]\n const txBlockhashData = await connection.getLatestBlockhash('confirmed')\n txCopy.recentBlockhash = txBlockhashData.blockhash\n txCopy.lastValidBlockHeight = txBlockhashData.lastValidBlockHeight\n txCopy.feePayer = publicKey\n // Extract writable accounts\n const txAccounts = extractWritableAccounts(txCopy)\n // Add on compute unit limit + price instructions\n const optimizedTx = await buildOptimalTransactionFromConnection(\n txCopy,\n txAccounts,\n connection,\n chainId,\n publicKey,\n useHighPriority ? 'High' : undefined,\n process.env.REACT_APP_HELIUS_API_KEY,\n )\n const signedTx = await signTransaction(optimizedTx)\n const signatureResult = await connection.sendRawTransaction(\n signedTx.serialize(),\n {\n preflightCommitment: 'confirmed',\n skipPreflight: true,\n maxRetries: 0,\n },\n )\n setSignature(signatureResult)\n dispatch(setSolanaSignature(signatureResult))\n\n // Loop and poll the transaction continuously until it is either confirmed or\n // the block height has been exceeded\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // eslint-disable-next-line no-await-in-loop\n const result = await connection.getSignatureStatus(signatureResult, {\n searchTransactionHistory: true,\n })\n if (\n result?.value?.confirmationStatus === 'finalized' ||\n result?.value?.confirmationStatus === 'confirmed'\n ) {\n if (result?.value?.err) {\n dispatch(\n setError({\n errorMessage:\n 'Your transaction was confirmed but had errors. Please check the transaction details on the explorer for more information.',\n }),\n )\n return\n }\n handleSuccess({ signature: signatureResult })\n return\n }\n\n // eslint-disable-next-line no-await-in-loop\n const latestBlockhash = await connection.getLatestBlockhash(\n 'confirmed',\n )\n if (\n latestBlockhash.lastValidBlockHeight -\n optimizedTx.lastValidBlockHeight! >\n 100\n ) {\n setShowRetryScreen(true)\n return\n }\n\n // eslint-disable-next-line no-await-in-loop\n await sleep(1000)\n }\n } catch (error: unknown) {\n console.log(error)\n\n const err = error as Error\n dispatch(setError({ errorMessage: err?.message || '' }))\n }\n }\n sendTx()\n }, [\n chainId,\n connection,\n dispatch,\n handleSuccess,\n publicKey,\n sendTransaction,\n signTransaction,\n tx,\n refreshCount,\n useHighPriority,\n ])\n\n const handleRetry = useCallback(\n (highPriority: boolean) => {\n console.log('handleRetry')\n setUseHighPriority(highPriority)\n setShowRetryScreen(false)\n refresh()\n },\n [refresh],\n )\n\n if (showRetryScreen) {\n return (\n <Box css={styles.wrapper}>\n <Box css={styles.sorry}>\n <img src={SorryImg} alt='sorry' />\n </Box>\n <Typography variant='h6'>Block Height Exceeded</Typography>\n <Box css={styles.content}>\n Your transaction was unable to be confirmed in time. This can happen\n when the network is congested. Please retry submitting your\n transaction or retry with a higher priority fee.\n </Box>\n <Box css={styles.bottomButtonGroup}>\n <Button\n variant='outlined'\n fullWidth\n onClick={() => handleRetry(false)}\n >\n RETRY\n </Button>\n <Button\n css={styles.retryHighPriorityButton}\n variant='contained'\n fullWidth\n onClick={() => handleRetry(true)}\n >\n RETRY (HIGH PRIORITY)\n </Button>\n </Box>\n </Box>\n )\n }\n\n return (\n <LoadingModal\n title='Transaction Pending'\n description='Waiting for confirmation...'\n >\n <SolanaViewOnExplorer chainId={chainId} signature={signature} />\n </LoadingModal>\n )\n}\n","import {\n getCreditAccounts,\n getSentinelAddress,\n getTokenAccounts,\n SolanaPoolInfo,\n SolanaTokenUtils,\n} from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { BN } from '@coral-xyz/anchor'\nimport { useHumaProgram } from '@huma-finance/web-shared'\nimport {\n ASSOCIATED_TOKEN_PROGRAM_ID,\n createApproveCheckedInstruction,\n createAssociatedTokenAccountInstruction,\n getAccount,\n TOKEN_PROGRAM_ID,\n TokenAccountNotFoundError,\n TokenInvalidAccountOwnerError,\n} from '@solana/spl-token'\nimport { useConnection, useWallet } from '@solana/wallet-adapter-react'\nimport { PublicKey, Transaction } from '@solana/web3.js'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { wallet, publicKey } = useWallet()\n const sentinel = getSentinelAddress(poolInfo.chainId)\n const { connection } = useConnection()\n const [transaction, setTransaction] = useState<Transaction>()\n const program = useHumaProgram(poolInfo.chainId)\n const { borrowAmountBN: borrowAmountBNJson } =\n useAppSelector(selectWidgetState)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (!wallet || !publicKey || !connection) {\n return\n }\n\n const { underlyingTokenATA } = getTokenAccounts(poolInfo, publicKey)\n const tx = new Transaction()\n\n // Create user token account if it doesn't exist\n let tokenAccount\n try {\n tokenAccount = await getAccount(\n connection,\n underlyingTokenATA,\n undefined,\n TOKEN_PROGRAM_ID,\n )\n } catch (error: unknown) {\n // TokenAccountNotFoundError can be possible if the associated address has already received some lamports,\n // becoming a system account. Assuming program derived addressing is safe, this is the only case for the\n // TokenInvalidAccountOwnerError in this code path.\n if (\n error instanceof TokenAccountNotFoundError ||\n error instanceof TokenInvalidAccountOwnerError\n ) {\n // As this isn't atomic, it's possible others can create associated accounts meanwhile.\n tx.add(\n createAssociatedTokenAccountInstruction(\n publicKey,\n underlyingTokenATA,\n publicKey,\n new PublicKey(poolInfo.underlyingMint.address),\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n ),\n )\n }\n }\n\n // Approve allowance to the sentinel if the account is new or delegated amount is not enough\n const borrowAmountBN = new BN(borrowAmountBNJson?.toString() ?? '0')\n if (\n !tokenAccount ||\n borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount.toString())) ||\n tokenAccount.delegate?.toString() !== sentinel\n ) {\n tx.add(\n createApproveCheckedInstruction(\n underlyingTokenATA,\n new PublicKey(poolInfo.underlyingMint.address),\n new PublicKey(sentinel), // delegate\n publicKey, // owner of the wallet\n BigInt(\n SolanaTokenUtils.parseUnits(\n '100000000000', // 100 billion\n poolInfo.underlyingMint.decimals,\n ).toString(),\n ), // amount\n poolInfo.underlyingMint.decimals,\n undefined, // multiSigners\n TOKEN_PROGRAM_ID,\n ),\n )\n }\n\n const { creditConfigAccount, creditStateAccount } = getCreditAccounts(\n poolInfo,\n publicKey,\n )\n // borrowAmountBNJson is stored as a raw number string in this flow\n const programTx = await program.methods\n .drawdown(borrowAmountBN)\n .accountsPartial({\n borrower: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n poolState: poolInfo.poolState,\n creditConfig: creditConfigAccount,\n creditState: creditStateAccount,\n poolAuthority: poolInfo.poolAuthority,\n underlyingMint: poolInfo.underlyingMint.address,\n poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,\n borrowerUnderlyingToken: underlyingTokenATA,\n tokenProgram: TOKEN_PROGRAM_ID,\n })\n .transaction()\n tx.add(programTx)\n\n setTransaction(tx)\n }\n getTx()\n }, [\n borrowAmountBNJson,\n connection,\n dispatch,\n poolInfo,\n poolInfo.underlyingMint.address,\n poolInfo.underlyingMint.decimals,\n program.methods,\n publicKey,\n sentinel,\n wallet,\n ])\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport React, { useCallback } from 'react'\n\nimport { SolanaChainEnum } from '@huma-finance/shared'\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { resetState } from '../store/widgets.reducers'\nimport { CheckIcon } from './icons'\nimport { SolanaViewOnExplorer } from './SolanaViewOnExplorer'\n\ntype Props = {\n content: string[]\n subContent?: string[]\n buttonText?: string\n solanaSignature?: string\n chainId?: SolanaChainEnum\n handleAction: () => void\n}\n\nexport function SolanaTxDoneModal({\n content,\n subContent,\n solanaSignature,\n chainId,\n buttonText,\n handleAction,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n content: css`\n ${theme.cssMixins.colVCentered};\n font-weight: ${subContent ? 700 : 400};\n font-size: 18px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(8)};\n text-align: center;\n `,\n subContent: css`\n ${theme.cssMixins.colVCentered};\n font-weight: 400;\n font-size: 18px;\n color: ${theme.palette.text.primary};\n margin-top: ${theme.spacing(2)};\n text-align: center;\n `,\n check: css`\n width: 100%;\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(10)};\n `,\n bottomButtonGroup: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n row-gap: ${theme.spacing(1)};\n column-gap: ${theme.spacing(1)};\n\n button {\n height: 40px;\n margin-top: ${theme.spacing(1)};\n }\n `,\n }\n\n const handleCloseModal = useCallback(() => {\n dispatch(resetState())\n handleAction()\n }, [dispatch, handleAction])\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n Transaction Completed\n </Typography>\n <Box css={styles.check}>\n <CheckIcon />\n </Box>\n <Box css={styles.content}>\n {content.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n {subContent && (\n <Box css={styles.subContent}>\n {subContent.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n )}\n <Box css={styles.bottomButtonGroup}>\n {solanaSignature && chainId && (\n <SolanaViewOnExplorer signature={solanaSignature} chainId={chainId} />\n )}\n <Button\n className='transaction-done-modal-close-btn'\n variant='contained'\n fullWidth\n onClick={handleCloseModal}\n >\n {!buttonText ? 'DONE' : buttonText}\n </Button>\n </Box>\n </Box>\n )\n}\n","import { formatNumber, SolanaPoolInfo, timeUtil } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { SolanaPoolState } from '@huma-finance/web-shared'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n handleAction: () => void\n}\n\nexport function Done({\n poolInfo,\n poolState,\n handleAction,\n}: Props): React.ReactElement {\n const { borrowAmount, solanaSignature } = useAppSelector(selectWidgetState)\n const { symbol } = poolInfo.underlyingMint\n const dueDate = timeUtil.timestampToLL(poolState.epochEndTime)\n\n const content = [\n `${formatNumber(borrowAmount)} ${symbol} is now in your wallet.`,\n `Note: your first automatic payment will occur after ${dueDate}.`,\n ]\n\n return (\n <SolanaTxDoneModal\n handleAction={handleAction}\n content={content}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText='DONE'\n />\n )\n}\n","import React from 'react'\n\nimport { getSolanaExplorerUrl, SolanaChainEnum } from '@huma-finance/shared'\nimport { useAppSelector } from '../hooks/useRedux'\nimport { ErrorModal } from './ErrorModal'\nimport { selectWidgetState } from '../store/widgets.selectors'\n\ntype Props = {\n chainId: SolanaChainEnum\n title: string\n errorReason?: string\n errorMessage?: string\n handleOk: () => void\n okText?: string\n shouldResetState?: boolean\n}\n\nexport function SolanaErrorModal({\n chainId,\n title,\n errorReason,\n errorMessage,\n handleOk,\n okText = 'OKAY',\n shouldResetState = true,\n}: Props): React.ReactElement {\n const { solanaSignature } = useAppSelector(selectWidgetState)\n const errorUrl = solanaSignature\n ? getSolanaExplorerUrl(chainId, solanaSignature, 'tx')\n : undefined\n\n return (\n <ErrorModal\n title={title}\n errorReason={errorReason}\n errorMessage={errorMessage}\n errorUrl={errorUrl ?? undefined}\n handleOk={handleOk}\n okText={okText}\n shouldResetState={shouldResetState}\n />\n )\n}\n","import { SolanaPoolInfo } from '@huma-finance/shared'\nimport { SolanaPoolState, useBorrowerAccounts } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { Transfer } from './2-Transfer'\nimport { Done } from './3-Done'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaBorrowProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaBorrowProps {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n handleClose: () => void\n handleSuccess?: () => void\n}\n\nexport function SolanaBorrow({\n poolInfo,\n poolState,\n handleClose,\n handleSuccess,\n}: SolanaBorrowProps): React.ReactElement | null {\n const title = 'Borrow'\n const dispatch = useDispatch()\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const { creditConfigAccount } = useBorrowerAccounts(\n poolInfo.chainId,\n poolInfo.poolName,\n )\n\n useEffect(() => {\n if (!step && creditConfigAccount) {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n }, [creditConfigAccount, dispatch, step])\n\n if (!creditConfigAccount) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseAmount && creditConfigAccount && (\n <ChooseAmount\n poolInfo={poolInfo}\n creditConfigAccount={creditConfigAccount}\n />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Done\n poolInfo={poolInfo}\n poolState={poolState}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n formatNumber,\n SolanaPoolInfo,\n SolanaTokenUtils,\n} from '@huma-finance/shared'\nimport { CreditStateAccount } from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setPaymentAmount, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n creditStateAccount: CreditStateAccount\n}\n\nexport function ChooseAmount({\n poolInfo,\n creditStateAccount,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { symbol, decimals } = poolInfo.underlyingMint\n const [currentAmount, setCurrentAmount] = useState<number>(0)\n const totalDueAmount = useMemo(\n () =>\n Number(\n SolanaTokenUtils.formatUnits(\n creditStateAccount.creditRecord.totalDueAmount,\n decimals,\n ),\n ),\n [creditStateAccount.creditRecord.totalDueAmount, decimals],\n )\n const payoffAmount = useMemo(\n () =>\n Number(\n SolanaTokenUtils.formatUnits(\n creditStateAccount.creditRecord.payoffAmount,\n decimals,\n ),\n ),\n [creditStateAccount.creditRecord.payoffAmount, decimals],\n )\n\n useEffect(() => {\n setCurrentAmount(totalDueAmount)\n dispatch(setPaymentAmount({ paymentAmount: totalDueAmount }))\n }, [dispatch, totalDueAmount])\n\n const handleChangeAmount = (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setPaymentAmount({ paymentAmount: newAmount }))\n }\n\n const handleAction = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <InputAmountModal\n title='Make Payment'\n subTitle='Choose Amount'\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n maxAmount={payoffAmount}\n maxAmountText='Pay Off'\n infos={[`${formatNumber(totalDueAmount.toFixed(0))} Due`]}\n handleAction={handleAction}\n actionText='PAY'\n />\n )\n}\n","import {\n getCreditAccounts,\n getTokenAccounts,\n SolanaPoolInfo,\n SolanaTokenUtils,\n} from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useHumaProgram } from '@huma-finance/web-shared'\nimport { TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport { useConnection, useWallet } from '@solana/wallet-adapter-react'\nimport { Transaction } from '@solana/web3.js'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { wallet, publicKey } = useWallet()\n const { connection } = useConnection()\n const [transaction, setTransaction] = useState<Transaction>()\n const program = useHumaProgram(poolInfo.chainId)\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.underlyingMint\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (!wallet || !publicKey || !connection || !paymentAmount) {\n return\n }\n\n const { underlyingTokenATA } = getTokenAccounts(poolInfo, publicKey)\n\n const { creditConfigAccount, creditStateAccount } = getCreditAccounts(\n poolInfo,\n publicKey,\n )\n const paymentAmountBN = SolanaTokenUtils.parseUnits(\n paymentAmount.toString(),\n decimals,\n )\n const tx = await program.methods\n .makePayment(paymentAmountBN)\n .accountsPartial({\n signer: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n poolState: poolInfo.poolState,\n creditConfig: creditConfigAccount,\n creditState: creditStateAccount,\n poolAuthority: poolInfo.poolAuthority,\n underlyingMint: poolInfo.underlyingMint.address,\n poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,\n borrowerUnderlyingToken: underlyingTokenATA,\n tokenProgram: TOKEN_PROGRAM_ID,\n })\n .transaction()\n\n setTransaction(tx)\n }\n getTx()\n }, [\n connection,\n decimals,\n dispatch,\n paymentAmount,\n poolInfo,\n poolInfo.underlyingMint.address,\n poolInfo.underlyingMint.decimals,\n program.methods,\n publicKey,\n wallet,\n ])\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatNumber, SolanaPoolInfo } from '@huma-finance/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useConnection } from '@solana/wallet-adapter-react'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n handleAction: () => void\n}\n\nexport function Done({ poolInfo, handleAction }: Props): React.ReactElement {\n const { solanaSignature } = useAppSelector(selectWidgetState)\n const { symbol } = poolInfo.underlyingMint\n const { connection } = useConnection()\n const [tokensPaid, setTokensPaid] = useState<number | null>(null)\n\n useEffect(() => {\n const fetchTokensPaid = async () => {\n if (!solanaSignature) {\n return\n }\n\n const txData = await connection.getTransaction(solanaSignature, {\n maxSupportedTransactionVersion: 2,\n })\n\n const preTokenBalance =\n txData?.meta?.preTokenBalances?.[0]?.uiTokenAmount?.uiAmount\n const postTokenBalance =\n txData?.meta?.postTokenBalances?.[0]?.uiTokenAmount?.uiAmount\n\n if (preTokenBalance && postTokenBalance) {\n setTokensPaid(preTokenBalance - postTokenBalance)\n }\n }\n\n fetchTokensPaid()\n }, [connection, solanaSignature])\n\n const content = useMemo(() => {\n if (tokensPaid !== null) {\n return [`You successfully paid ${formatNumber(tokensPaid)} ${symbol}.`]\n }\n\n return ['Your payment to the pool was successful']\n }, [tokensPaid, symbol])\n\n return (\n <SolanaTxDoneModal\n handleAction={handleAction}\n content={content}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText='DONE'\n />\n )\n}\n","import { SolanaPoolInfo } from '@huma-finance/shared'\nimport { useBorrowerAccounts } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { Transfer } from './2-Transfer'\nimport { Done } from './3-Done'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaPaymentProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaPaymentProps {\n poolInfo: SolanaPoolInfo\n handleClose: () => void\n handleSuccess?: () => void\n}\n\nexport function SolanaPayment({\n poolInfo,\n handleClose,\n handleSuccess,\n}: SolanaPaymentProps): React.ReactElement | null {\n const title = 'Make Payment'\n const dispatch = useDispatch()\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const { creditStateAccount } = useBorrowerAccounts(\n poolInfo.chainId,\n poolInfo.poolName,\n )\n\n useEffect(() => {\n if (!step && creditStateAccount) {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n }, [creditStateAccount, dispatch, step])\n\n if (!creditStateAccount) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseAmount && creditStateAccount && (\n <ChooseAmount\n poolInfo={poolInfo}\n creditStateAccount={creditStateAccount}\n />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Done poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n FirstLossCoverIndex,\n PoolInfoV2,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { BigNumber } from 'ethers'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n amountToDeposit: BigNumber\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n amountToDeposit,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.firstLossCovers[FirstLossCoverIndex.borrower]}\n poolUnderlyingToken={poolUnderlyingToken}\n allowanceAmount={amountToDeposit}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { UnderlyingTokenInfo, formatMoney } from '@huma-finance/shared'\nimport { BigNumber, ethers } from 'ethers'\nimport React from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n amountToDeposit: BigNumber\n poolUnderlyingToken: UnderlyingTokenInfo\n handleAction: () => void\n}\n\nexport function Success({\n amountToDeposit,\n poolUnderlyingToken,\n handleAction,\n}: Props): React.ReactElement {\n const { symbol, decimals } = poolUnderlyingToken\n const amountFormatted = ethers.utils.formatUnits(amountToDeposit, decimals)\n\n const content = [\n `You have supplied ${formatMoney(amountFormatted)} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { FirstLossCoverIndex, PoolInfoV2 } from '@huma-finance/shared'\nimport { useFirstLossCoverContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n amountToDeposit: BigNumber\n title: string\n}\n\nexport function Transfer({\n poolInfo,\n amountToDeposit,\n title,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { provider, account } = useWeb3React()\n const firstLossCoverContract = useFirstLossCoverContractV2(\n poolInfo.poolName,\n FirstLossCoverIndex.borrower,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!firstLossCoverContract) {\n return <LoadingModal title={title} />\n }\n\n return (\n <TxSendModalV2\n title={title}\n contract={firstLossCoverContract}\n method='depositCover'\n params={[amountToDeposit]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { FirstLossCoverIndex, POOL_NAME } from '@huma-finance/shared'\nimport {\n useFirstLossCoverAllowanceV2,\n useFirstLossCoverRequirementV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ApproveAllowance } from './1-ApproveAllowance'\nimport { Success } from './3-Success'\nimport { Transfer } from './2-Transfer'\n\n/**\n * Supply first loss cover props\n * @typedef {Object} SupplyFirstLossCoverProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool borrow action is successful.\n */\nexport interface SupplyFirstLossCoverProps {\n poolName: keyof typeof POOL_NAME\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function SupplyFirstLossCover({\n poolName: poolNameStr,\n handleClose,\n handleSuccess,\n}: SupplyFirstLossCoverProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const poolName = POOL_NAME[poolNameStr]\n const { account, chainId, provider } = useWeb3React()\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [requirement] = useFirstLossCoverRequirementV2(\n poolName,\n FirstLossCoverIndex.borrower,\n account,\n provider,\n )\n const [allowance] = useFirstLossCoverAllowanceV2(\n poolName,\n FirstLossCoverIndex.borrower,\n account,\n provider,\n )\n const { minAmountToDeposit } = requirement || {}\n const title = 'Deposit First Loss Cover'\n\n useEffect(() => {\n if (!step && minAmountToDeposit && allowance) {\n if (minAmountToDeposit.gt(allowance!)) {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n } else {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n }\n }, [allowance, dispatch, minAmountToDeposit, step])\n\n if (!poolInfo || !poolUnderlyingToken || !minAmountToDeposit || !allowance) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n amountToDeposit={minAmountToDeposit}\n />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer\n poolInfo={poolInfo}\n amountToDeposit={minAmountToDeposit}\n title={title}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolUnderlyingToken={poolUnderlyingToken}\n handleAction={handleClose}\n amountToDeposit={minAmountToDeposit}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title={title}\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType, toBigNumber } from '@huma-finance/shared'\nimport React, { useEffect } from 'react'\n\nimport useEA from '../../../hooks/useEA'\nimport { LoadingModal } from '../../LoadingModal'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SignIn } from '../../SignIn'\n\ntype Props = {\n poolInfo: PoolInfoType\n tokenId: string\n}\n\nexport function Evaluation({ poolInfo, tokenId }: Props): React.ReactElement {\n const {\n checkingEA,\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n } = useEA()\n const { account, chainId } = useWeb3React()\n\n useEffect(() => {\n if (account && chainId) {\n checkingEA(\n {\n poolAddress: poolInfo.pool,\n borrowerWalletAddress: account,\n context: {\n receivable: {\n address: poolInfo.assetAddress!,\n param: toBigNumber(tokenId).toHexString(),\n },\n },\n },\n WIDGET_STEP.ChooseAmount,\n )\n }\n }, [\n account,\n chainId,\n checkingEA,\n poolInfo.assetAddress,\n poolInfo.pool,\n tokenId,\n isWalletOwnershipVerified,\n ])\n\n if (isWalletOwnershipVerificationRequired) {\n return <SignIn />\n }\n return (\n <LoadingModal\n title='Checking Invoice'\n description='Checking if the invoice qualifies for factoring...'\n />\n )\n}\n","import { AccountStats, PoolInfoType } from '@huma-finance/shared'\nimport { useFeeManager } from '@huma-finance/web-shared'\nimport React, { useCallback, useState } from 'react'\nimport { ethers } from 'ethers'\n\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setBorrowInfo } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n accountStats: AccountStats\n}\n\nexport function ChooseAmount({\n poolInfo,\n accountStats,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { creditRecord } = accountStats\n const { chainId, provider } = useWeb3React()\n const [chargedFees, setChargedFees] = useState(0)\n const [currentAmount, setCurrentAmount] = useState(0)\n const { approval } = useAppSelector(selectWidgetState)\n const { getFeesCharged } = useFeeManager(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n provider,\n )\n const [remainder, setRemainder] = useState<string | number | undefined>(\n approval!.receivable?.amountFormatted,\n )\n\n const getAvailableCreditLimit = () => {\n if (approval && creditRecord) {\n const principal = creditRecord.unbilledPrincipal\n .add(creditRecord.totalDue)\n .sub(creditRecord.feesAndInterestDue)\n .toNumber()\n return Number(approval.terms.creditLimitFormatted) - principal\n }\n return 0\n }\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n if (approval) {\n setCurrentAmount(newAmount)\n setChargedFees(getFeesCharged(newAmount))\n setRemainder(Number(approval.receivable!.amountFormatted) - newAmount)\n }\n },\n [approval, getFeesCharged],\n )\n\n const handleAction = useCallback(() => {\n dispatch(\n setBorrowInfo({\n borrowAmount: currentAmount,\n borrowAmountBN: ethers.utils\n .parseUnits(currentAmount.toString(), approval?.token.decimal)\n .toJSON(),\n chargedFees,\n remainder: Number(remainder!),\n nextStep: WIDGET_STEP.ConfirmTransfer,\n }),\n )\n }, [approval?.token.decimal, chargedFees, currentAmount, dispatch, remainder])\n\n if (!approval) {\n return null\n }\n\n return (\n <ChooseAmountModal\n title='Choose Amount'\n description1='Access up to 80% of your invoice value'\n description2='The remainder will be sent to your wallet when the invoice is paid'\n sliderMax={getAvailableCreditLimit()}\n currentAmount={currentAmount}\n tokenSymbol={approval.token.symbol}\n topLeft='Fees'\n topRight={`${chargedFees} ${approval.token.symbol}`}\n downLeft='Remainder'\n downRight={`${remainder} ${approval.token.symbol}`}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n />\n )\n}\n","import { combineStyles } from '@huma-finance/shared'\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'\nimport { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport React from 'react'\n\nimport { ReceiptIcon, UsdcIcon } from './icons'\n\ntype Props = {\n title: string\n description: string\n items: [\n { leftText: string; rightText: string },\n { leftText: string; rightText: string },\n ]\n actionText: string\n handleAction: () => void\n}\n\nexport function ConfirmTransferModal({\n title,\n description,\n items,\n actionText,\n handleAction,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n ${theme.cssMixins.colStretch};\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n description: css`\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(4)};\n text-align: center;\n `,\n transferWrapper: css`\n margin-top: ${theme.spacing(9)};\n `,\n transfer: css`\n font-weight: 400;\n ${theme.cssMixins.rowSpaceBetweened}\n ${theme.cssMixins.rowVCentered}\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ${theme.palette.text.primary};\n padding: ${theme.spacing(3, 2)};\n margin-bottom: ${theme.spacing(1)};\n position: relative;\n box-sizing: border-box;\n `,\n transferItem: css`\n ${theme.cssMixins.rowVCentered}\n `,\n arrow: css`\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: ${theme.palette.primary.main};\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 `,\n arrowFirst: css`\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n `,\n okButton: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n `,\n usdcIcon: css`\n width: 22px;\n margin-right: ${theme.spacing(2)};\n & > path:first-of-type {\n fill: #76707e;\n }\n `,\n }\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n {title}\n </Typography>\n <Box css={styles.description}>{description}</Box>\n <Box css={styles.transferWrapper}>\n <Box css={styles.transfer}>\n <Box css={styles.transferItem}>\n <ReceiptIcon\n css={{ width: '24px', marginRight: theme.spacing(2) }}\n />\n {items[0].leftText}\n </Box>\n <ArrowForwardIosIcon\n css={combineStyles([styles.arrow, styles.arrowFirst])}\n />\n <ArrowForwardIosIcon css={styles.arrow} />\n <Box>{items[0].rightText}</Box>\n </Box>\n <Box css={styles.transfer}>\n <Box css={styles.transferItem}>\n <UsdcIcon css={styles.usdcIcon} />\n {items[1].leftText}\n </Box>\n <ArrowForwardIosIcon\n css={combineStyles([styles.arrow, styles.arrowFirst])}\n />\n <ArrowForwardIosIcon css={styles.arrow} />\n <Box>{items[1].rightText}</Box>\n </Box>\n </Box>\n <Button variant='contained' css={styles.okButton} onClick={handleAction}>\n {actionText}\n </Button>\n </Box>\n )\n}\n","import { isEmpty } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ConfirmTransferModal } from '../../ConfirmTransferModal'\n\nexport function ConfirmTransfer(): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { borrowAmountNet, approval } = useAppSelector(selectWidgetState)\n\n const handleAction = () => {\n dispatch(setStep(WIDGET_STEP.ApproveNFT))\n }\n\n if (isEmpty(borrowAmountNet) || isEmpty(approval)) {\n return null\n }\n\n return (\n <ConfirmTransferModal\n title='Confirm transaction details'\n description={`Huma keeps your Invoice NFT as collateral until it's fully paid.`}\n items={[\n { leftText: 'Invoice NFT', rightText: 'Huma' },\n {\n leftText: `${borrowAmountNet!} ${approval?.token.symbol}`,\n rightText: 'You',\n },\n ]}\n actionText='APPROVE TRANSFER'\n handleAction={handleAction}\n />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType, TxStateType } from '@huma-finance/shared'\nimport {\n sendTxAtom,\n txAtom,\n useInvoiceNFTContract,\n} from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useEffect } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoType\n tokenId: string\n}\n\nexport function ApproveNFT({ poolInfo, tokenId }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { chainId, provider } = useWeb3React()\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n const reset = useResetAtom(txAtom)\n const invoiceNFTContract = useInvoiceNFTContract(\n poolInfo.poolName,\n chainId,\n provider,\n )\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n reset()\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n }, [dispatch, reset, state])\n\n useEffect(() => {\n send({\n contract: invoiceNFTContract!,\n method: 'approve',\n params: [poolInfo.pool, tokenId],\n provider,\n })\n }, [invoiceNFTContract, poolInfo.pool, provider, send, tokenId])\n\n return (\n <LoadingModal\n title='Approve Invoice Transfer'\n description='Waiting for approval confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoType, toBigNumber, upScale } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n tokenId: string\n}\n\nexport function Transfer({ poolInfo, tokenId }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { decimals } = poolInfo.poolUnderlyingToken\n const { borrowAmount } = useAppSelector(selectWidgetState)\n const requestLoanBigNumber = toBigNumber(upScale(borrowAmount!, decimals))\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n title='Transfer Invoice and Money'\n method='drawdownWithReceivable'\n params={[requestLoanBigNumber, poolInfo.assetAddress, tokenId]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatNumber } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Success({ handleAction }: Props): React.ReactElement {\n const { borrowAmountNet, remainder, approval } =\n useAppSelector(selectWidgetState)\n\n const content = [\n `${formatNumber(borrowAmountNet)} ${\n approval?.token.symbol\n } is now in your wallet.`,\n `The remaining ${remainder} ${approval?.token.symbol} will be sent to your wallet when the invoice is paid.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { useAccountStats, usePoolInfo } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Evaluation } from './1-Evaluation'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { ConfirmTransfer } from './3-ConfirmTransfer'\nimport { ApproveNFT } from './4-ApproveNFT'\nimport { Transfer } from './5-Transfer'\nimport { Success } from './6-Success'\n\n/**\n * Invoice factoring pool borrow props\n * @typedef {Object} InvoiceFactoringBorrowProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {string|BigNumber} tokenId The NFT token id representing invoice.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the invoice pool borrow action is successful.\n */\nexport interface InvoiceFactoringBorrowProps {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n tokenId: string | BigNumber\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function InvoiceFactoringBorrow({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n tokenId,\n handleClose,\n handleSuccess,\n}: InvoiceFactoringBorrowProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [accountStats] = useAccountStats(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.Evaluation))\n }, [dispatch])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation poolInfo={poolInfo} tokenId={tokenId.toString()} />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount poolInfo={poolInfo} accountStats={accountStats} />\n )}\n {step === WIDGET_STEP.ConfirmTransfer && <ConfirmTransfer />}\n {step === WIDGET_STEP.ApproveNFT && (\n <ApproveNFT poolInfo={poolInfo} tokenId={tokenId.toString()} />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer poolInfo={poolInfo} tokenId={tokenId.toString()} />\n )}\n {step === WIDGET_STEP.Done && <Success handleAction={handleClose} />}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Invoice Factoring'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport {\n CreditRecordType,\n downScale,\n PoolInfoType,\n toBigNumber,\n upScale,\n} from '@huma-finance/shared'\nimport { useRFPoolAllowance } from '@huma-finance/web-shared'\nimport React, { useCallback, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setPaymentAmount, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n creditRecord: CreditRecordType\n poolInfo: PoolInfoType\n}\n\nexport function ChooseAmount({\n creditRecord,\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, chainId, provider } = useWeb3React()\n const { symbol, decimals } = poolInfo.poolUnderlyingToken\n const totalDue = downScale<number>(creditRecord.totalDue.toNumber(), decimals)\n const { allowance } = useRFPoolAllowance(\n poolInfo.poolName,\n chainId,\n account,\n provider,\n )\n const [remainingDue, setRemainingDue] = useState(totalDue)\n const [currentAmount, setCurrentAmount] = useState(0)\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n const remainDueAmount = totalDue - newAmount\n setRemainingDue(remainDueAmount)\n dispatch(setPaymentAmount({ paymentAmount: newAmount, remainDueAmount }))\n },\n [dispatch, totalDue],\n )\n\n const handleAction = useCallback(() => {\n const payAmount = upScale(currentAmount, decimals)\n const nextStep = toBigNumber(payAmount).gt(allowance)\n ? WIDGET_STEP.ApproveAllowance\n : WIDGET_STEP.Transfer\n dispatch(setStep(nextStep))\n }, [allowance, currentAmount, decimals, dispatch])\n\n return (\n <ChooseAmountModal\n title='Make the payment'\n description1='Choose amount'\n sliderMax={totalDue}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n topLeft='Total Due'\n topRight={`${totalDue} ${symbol}`}\n downLeft='Remaining Due'\n downRight={`${remainingDue} ${symbol}`}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='make payment'\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function ApproveAllowance({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal poolInfo={poolInfo} handleSuccess={handleSuccess} />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { PoolInfoType, toBigNumber, upScale } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { account } = useWeb3React()\n const { decimals } = poolInfo.poolUnderlyingToken\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const paymentBigNumber = toBigNumber(upScale(paymentAmount!, decimals))\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n method='makePayment'\n params={[account, paymentBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleAction: () => void\n}\n\nexport function Success({ poolInfo, handleAction }: Props): React.ReactElement {\n const { symbol } = poolInfo.poolUnderlyingToken\n const { paymentAmount, remainDueAmount } = useAppSelector(selectWidgetState)\n\n const content = [\n `You have successfully made a payment of ${paymentAmount} ${symbol}.`,\n `The remaining due amount is ${remainDueAmount} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { useAccountStats, usePoolInfo } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { ApproveAllowance } from './2-ApproveAllowance'\nimport { Transfer } from './3-Transfer'\nimport { Success } from './4-Success'\n\n/**\n * Invoice factoring pool payment props\n * @typedef {Object} InvoiceFactoringPaymentProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the invoice pool payment action is successful.\n */\nexport type InvoiceFactoringPaymentProps = {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function InvoiceFactoringPayment({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n handleClose,\n handleSuccess,\n}: InvoiceFactoringPaymentProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [{ creditRecord }] = useAccountStats(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }, [dispatch])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Make Payment'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount creditRecord={creditRecord!} poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Make Payment'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { TrancheType } from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title='Redemption'>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Tranche Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n formatNumber,\n PoolInfoV2,\n timestampToLL,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport {\n useLenderDepositRecordV2,\n useLPConfigV2,\n useNextEpochStartTimeV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport dayjs from 'dayjs'\nimport { ethers } from 'ethers'\nimport React, { useEffect, useState } from 'react'\n\nimport { TrancheInfo } from '.'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport {\n setError,\n setRedeemAmount,\n setRedeemShares,\n setStep,\n} from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n trancheInfo: TrancheInfo\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolUnderlyingToken,\n trancheInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { symbol } = poolUnderlyingToken\n const { account, provider } = useWeb3React()\n const [currentAmount, setCurrentAmount] = useState<number>(0)\n const [currentShares, setCurrentShares] = useState<number>(0)\n const maxSharesFormatted = ethers.utils.formatUnits(\n trancheInfo.shares,\n poolUnderlyingToken.decimals,\n )\n const sharePrice =\n trancheInfo.assets.toNumber() / trancheInfo.shares.toNumber()\n const [depositRecord] = useLenderDepositRecordV2(\n poolInfo.poolName,\n trancheInfo.tranche,\n account,\n provider,\n )\n const lpConfig = useLPConfigV2(poolInfo.poolName, provider)\n const nextEpochStartTime = useNextEpochStartTimeV2(\n poolInfo.poolName,\n provider,\n )\n\n useEffect(() => {\n if (depositRecord && lpConfig && nextEpochStartTime) {\n const SECONDS_IN_A_DAY = 24 * 60 * 60\n const lockupEndTime =\n depositRecord.lastDepositTime.toNumber() +\n lpConfig.withdrawalLockoutPeriodInDays * SECONDS_IN_A_DAY\n if (nextEpochStartTime < lockupEndTime) {\n const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1)\n const withdrawTime = lockupEndTimeDayjs.add(1, 'month')\n dispatch(setStep(WIDGET_STEP.Error))\n dispatch(\n setError({\n errorReason: 'Redemption too soon',\n errorMessage: `Your last deposit was on ${timestampToLL(\n depositRecord!.lastDepositTime.toNumber(),\n )}. You can begin submitting redemption requests on ${timestampToLL(\n lockupEndTimeDayjs.unix(),\n )}, which can be redeemed starting ${timestampToLL(\n withdrawTime.unix(),\n )}.`,\n }),\n )\n }\n }\n }, [depositRecord, dispatch, lpConfig, nextEpochStartTime])\n\n const handleChangeShares = (newShares: number) => {\n const amount = Number(newShares) * sharePrice\n setCurrentShares(Number(newShares))\n setCurrentAmount(amount)\n dispatch(setRedeemShares(Number(newShares)))\n dispatch(setRedeemAmount(amount))\n }\n\n const handleAction = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n if (!depositRecord || !lpConfig || !nextEpochStartTime) {\n return <LoadingModal title='Redemption' />\n }\n\n return (\n <InputAmountModal\n title='Redemption'\n subTitle={`Enter number of shares to redeem from ${trancheInfo.tranche} tranche`}\n tokenSymbol={symbol}\n currentAmount={currentShares}\n handleChangeAmount={handleChangeShares}\n maxAmount={maxSharesFormatted}\n infos={[`${String(formatNumber(currentAmount))} ${symbol}`]}\n maxAmountTitle={`${formatNumber(maxSharesFormatted)} Shares`}\n suffix='Shares'\n handleAction={handleAction}\n actionText='REQUEST'\n />\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport { useTrancheVaultContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { ethers } from 'ethers'\nimport React, { useCallback } from 'react'\n\nimport { TrancheInfo } from '.'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n trancheInfo: TrancheInfo\n}\n\nexport function Transfer({\n poolInfo,\n poolUnderlyingToken,\n trancheInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { decimals } = poolUnderlyingToken\n const { account, provider } = useWeb3React()\n const { redeemShares } = useAppSelector(selectWidgetState)\n const trancheVaultContract = useTrancheVaultContractV2(\n poolInfo.poolName,\n trancheInfo.tranche,\n provider,\n account,\n )\n const redeemSharesBN = ethers.utils.parseUnits(String(redeemShares), decimals)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!trancheVaultContract) {\n return null\n }\n\n return (\n <TxSendModalV2\n contract={trancheVaultContract}\n method='addRedemptionRequest'\n params={[account, redeemSharesBN]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatNumber } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Done({ handleAction }: Props): React.ReactElement {\n const { redeemShares } = useAppSelector(selectWidgetState)\n\n const content = [\n `${formatNumber(redeemShares)} shares requested for redemption`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import {\n getTrancheAssetsAndShares,\n POOL_NAME,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseTranche } from './1-ChooseTranche'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { Transfer } from './3-Transfer'\nimport { Done } from './4-Done'\n\nexport type TrancheInfo = {\n tranche: TrancheType\n assets: BigNumber\n shares: BigNumber\n}\n\n/**\n * Lend pool add redemption props\n * @typedef {Object} AddRedemptionPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_NTrancheTypeAME} tranche The tranche type.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool withdraw action is successful.\n */\nexport type AddRedemptionPropsV2 = {\n poolName: keyof typeof POOL_NAME\n tranche?: TrancheType\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function AddRedemptionV2({\n poolName: poolNameStr,\n tranche,\n handleClose,\n handleSuccess,\n}: AddRedemptionPropsV2): React.ReactElement | null {\n const title = 'Redemption'\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { step, errorMessage, errorReason } = useAppSelector(selectWidgetState)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const [seniorTrancheInfo, setSeniorTrancheInfo] = useState<TrancheInfo>()\n const [juniorTrancheInfo, setJuniorTrancheInfo] = useState<TrancheInfo>()\n const [trancheInfo, setTrancheInfo] = useState<TrancheInfo>()\n const trancheInfoFetched = seniorTrancheInfo && juniorTrancheInfo\n\n useEffect(() => {\n if (account) {\n getTrancheAssetsAndShares(poolName, 'senior', account, provider).then(\n (info) => {\n if (info) {\n setSeniorTrancheInfo({ ...info, tranche: 'senior' })\n }\n },\n )\n getTrancheAssetsAndShares(poolName, 'junior', account, provider).then(\n (info) => {\n if (info) {\n setJuniorTrancheInfo({ ...info, tranche: 'junior' })\n }\n },\n )\n }\n }, [account, poolName, provider])\n\n useEffect(() => {\n if (!step && trancheInfoFetched) {\n if (tranche) {\n setTrancheInfo(\n tranche === 'junior' ? juniorTrancheInfo : seniorTrancheInfo,\n )\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (juniorTrancheInfo.assets.gt(0) && seniorTrancheInfo.assets.lte(0)) {\n setTrancheInfo(juniorTrancheInfo)\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (seniorTrancheInfo.assets.gt(0) && juniorTrancheInfo.assets.lte(0)) {\n setTrancheInfo(seniorTrancheInfo)\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (juniorTrancheInfo.assets.gt(0) && seniorTrancheInfo.assets.gt(0)) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n }\n }, [\n dispatch,\n juniorTrancheInfo,\n seniorTrancheInfo,\n step,\n tranche,\n trancheInfoFetched,\n ])\n\n const handleRedeemSuccess = useCallback(\n (blockNumber: number) => {\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess],\n )\n\n const handleChangeTranche = useCallback(\n (tranche: TrancheType) => {\n if (tranche === 'senior') {\n setTrancheInfo(seniorTrancheInfo)\n } else if (tranche === 'junior') {\n setTrancheInfo(juniorTrancheInfo)\n } else {\n setTrancheInfo(undefined)\n }\n },\n [juniorTrancheInfo, seniorTrancheInfo],\n )\n\n if (!poolInfo || !poolUnderlyingToken || !trancheInfoFetched) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleRedeemSuccess}\n >\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n selectedTranche={trancheInfo?.tranche}\n changeTranche={handleChangeTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && trancheInfo && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n trancheInfo={trancheInfo}\n />\n )}\n {step === WIDGET_STEP.Transfer && trancheInfo && (\n <Transfer\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n trancheInfo={trancheInfo}\n />\n )}\n {step === WIDGET_STEP.Done && trancheInfo && (\n <Done handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title={title}\n errorReason={errorReason}\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { PoolInfoV2, TrancheType } from '@huma-finance/shared'\nimport { useTrancheVaultContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback } from 'react'\n\nimport { RedemptionInfo } from '.'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n trancheType: TrancheType\n redemptionInfo: RedemptionInfo\n}\n\nexport function Transfer({\n poolInfo,\n trancheType,\n redemptionInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const trancheVaultContract = useTrancheVaultContractV2(\n poolInfo.poolName,\n trancheType,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!trancheVaultContract) {\n return null\n }\n\n return (\n <TxSendModalV2\n contract={trancheVaultContract}\n method='cancelRedemptionRequest'\n params={[redemptionInfo.shares]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatNumber, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport { ethers } from 'ethers'\nimport React from 'react'\n\nimport { RedemptionInfo } from '.'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n redemptionInfo: RedemptionInfo\n handleAction: () => void\n}\n\nexport function Done({\n poolUnderlyingToken,\n redemptionInfo,\n handleAction,\n}: Props): React.ReactElement {\n const shares = ethers.utils.formatUnits(\n redemptionInfo.shares,\n poolUnderlyingToken.decimals,\n )\n\n const content = [\n `Your request to cancel the redemption of ${formatNumber(\n shares,\n )} shares has been successfully processed.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { POOL_NAME, TrancheType } from '@huma-finance/shared'\nimport {\n useCancellableRedemptionInfoV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Transfer } from './1-Transfer'\nimport { Done } from './2-Done'\n\nexport type RedemptionInfo = {\n shares: BigNumber\n amount: BigNumber\n}\n\n/**\n * Lend pool cancel redemption request props\n * @typedef {Object} CancelRedemptionPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {TrancheType} trancheType The type of the tranche.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool withdraw action is successful.\n */\nexport type CancelRedemptionPropsV2 = {\n poolName: keyof typeof POOL_NAME\n trancheType: TrancheType\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function CancelRedemptionV2({\n poolName: poolNameStr,\n trancheType,\n handleClose,\n handleSuccess,\n}: CancelRedemptionPropsV2): React.ReactElement | null {\n const title = 'Cancel redemption'\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { step, errorMessage, errorReason } = useAppSelector(selectWidgetState)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const [redemptionInfo] = useCancellableRedemptionInfoV2(\n poolName,\n trancheType,\n account,\n provider,\n )\n\n useEffect(() => {\n if (!step) {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n }, [dispatch, step])\n\n const handleRedeemSuccess = useCallback(\n (blockNumber: number) => {\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess],\n )\n\n if (!poolInfo || !poolUnderlyingToken || !redemptionInfo) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleRedeemSuccess}\n >\n {step === WIDGET_STEP.Transfer && (\n <Transfer\n poolInfo={poolInfo}\n trancheType={trancheType}\n redemptionInfo={redemptionInfo}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Done\n poolUnderlyingToken={poolUnderlyingToken}\n handleAction={handleClose}\n redemptionInfo={redemptionInfo}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title={title}\n errorReason={errorReason}\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n formatNumber,\n SolanaPoolInfo,\n SolanaTokenUtils,\n timestampToLL,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n LenderStateAccount,\n SolanaPoolState,\n useTrancheMintAccounts,\n useTrancheTokenAccounts,\n} from '@huma-finance/web-shared'\nimport dayjs from 'dayjs'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { BN } from '@coral-xyz/anchor'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport {\n setError,\n setRedeemAmount,\n setRedeemShares,\n setStep,\n} from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n selectedTranche: TrancheType\n lenderState: LenderStateAccount | null | undefined\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolState,\n selectedTranche,\n lenderState,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { symbol } = poolInfo.underlyingMint\n const [currentAmount, setCurrentAmount] = useState<number>(0)\n const [currentShares, setCurrentShares] = useState<number>(0)\n const { mintAccount, loading: isLoadingTrancheMintAccounts } =\n useTrancheMintAccounts(poolInfo, selectedTranche)\n const {\n seniorTokenAccount,\n juniorTokenAccount,\n loading: isLoadingTokenAccounts,\n } = useTrancheTokenAccounts(poolInfo)\n\n const maxSharesFormatted = useMemo(() => {\n if (!mintAccount?.decimals) {\n return 0\n }\n\n return SolanaTokenUtils.formatUnits(\n selectedTranche === 'senior'\n ? new BN(seniorTokenAccount?.amount?.toString() ?? 0)\n : new BN(juniorTokenAccount?.amount?.toString() ?? 0),\n mintAccount.decimals,\n )\n }, [\n mintAccount,\n juniorTokenAccount?.amount,\n selectedTranche,\n seniorTokenAccount?.amount,\n ])\n\n const sharePrice = useMemo(() => {\n if (!mintAccount?.decimals || !mintAccount?.supply) {\n return 0\n }\n\n const mintSupplyFormatted = Number(\n SolanaTokenUtils.formatUnits(\n new BN(mintAccount.supply.toString()),\n mintAccount.decimals,\n ),\n )\n\n if (mintSupplyFormatted === 0) {\n return 0\n }\n\n const seniorTrancheAssetsFormatted = Number(\n SolanaTokenUtils.formatUnits(\n new BN(poolState?.seniorTrancheAssets ?? 0),\n mintAccount.decimals,\n ),\n )\n\n if (selectedTranche === 'senior') {\n return seniorTrancheAssetsFormatted / mintSupplyFormatted\n }\n\n const juniorTrancheAssetsFormatted = Number(\n SolanaTokenUtils.formatUnits(\n new BN(poolState?.juniorTrancheAssets ?? 0),\n mintAccount.decimals,\n ),\n )\n\n return juniorTrancheAssetsFormatted / mintSupplyFormatted\n }, [\n mintAccount?.decimals,\n mintAccount?.supply,\n poolState?.juniorTrancheAssets,\n poolState?.seniorTrancheAssets,\n selectedTranche,\n ])\n\n useEffect(() => {\n if (\n poolState?.withdrawalLockupPeriodDays &&\n poolState?.epochEndTime &&\n lenderState\n ) {\n const SECONDS_IN_A_DAY = 24 * 60 * 60\n const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime)\n const lockupEndTime =\n lastDepositTime +\n poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY\n if (poolState.epochEndTime < lockupEndTime) {\n const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1)\n dispatch(setStep(WIDGET_STEP.Error))\n dispatch(\n setError({\n errorReason: 'Redemption too soon',\n errorMessage: `Your last deposit was on ${timestampToLL(\n lastDepositTime,\n )}. You can redeem on ${timestampToLL(lockupEndTimeDayjs.unix())}.`,\n }),\n )\n }\n }\n }, [\n dispatch,\n lenderState,\n poolState.epochEndTime,\n poolState.withdrawalLockupPeriodDays,\n ])\n\n const handleChangeShares = (newShares: number) => {\n const amount = Number(newShares) * sharePrice\n setCurrentShares(Number(newShares))\n setCurrentAmount(amount)\n dispatch(setRedeemShares(Number(newShares)))\n dispatch(setRedeemAmount(amount))\n }\n\n const handleAction = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n if (\n isLoadingTokenAccounts ||\n isLoadingTrancheMintAccounts ||\n !lenderState ||\n poolState?.withdrawalLockupPeriodDays === undefined || // withdrawalLockupPeriodDays can be 0\n !poolState?.epochEndTime\n ) {\n return <LoadingModal title='Redemption' />\n }\n\n return (\n <InputAmountModal\n title='Redemption'\n subTitle={`Enter number of shares to redeem from the ${selectedTranche} tranche`}\n tokenSymbol={symbol}\n currentAmount={currentShares}\n handleChangeAmount={handleChangeShares}\n maxAmount={maxSharesFormatted}\n infos={[`${String(formatNumber(currentAmount))} ${symbol}`]}\n maxAmountTitle={`${formatNumber(maxSharesFormatted)} Shares`}\n suffix='Shares'\n handleAction={handleAction}\n actionText='REQUEST'\n />\n )\n}\n","import { TrancheType } from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title='Redemption'>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Tranche Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import { formatNumber, SolanaPoolInfo } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n handleAction: () => void\n}\n\nexport function Done({ poolInfo, handleAction }: Props): React.ReactElement {\n const { redeemShares, solanaSignature } = useAppSelector(selectWidgetState)\n\n const content = [\n `${formatNumber(redeemShares)} shares requested for redemption`,\n ]\n\n return (\n <SolanaTxDoneModal\n handleAction={handleAction}\n content={content}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText='DONE'\n />\n )\n}\n","import {\n getTokenAccounts,\n SolanaPoolInfo,\n SolanaTokenUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport {\n useHumaProgram,\n useTrancheMintAccounts,\n} from '@huma-finance/web-shared'\nimport { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'\nimport { useWallet } from '@solana/wallet-adapter-react'\nimport { Transaction } from '@solana/web3.js'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n selectedTranche: TrancheType\n}\n\nexport function Transfer({\n poolInfo,\n selectedTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { publicKey } = useWallet()\n const { redeemShares } = useAppSelector(selectWidgetState)\n const { mintAccount } = useTrancheMintAccounts(poolInfo, selectedTranche)\n const [transaction, setTransaction] = useState<Transaction>()\n const program = useHumaProgram(poolInfo.chainId)\n const redeemBN = useMemo(() => {\n if (!mintAccount) {\n return null\n }\n return SolanaTokenUtils.parseUnits(\n String(redeemShares),\n mintAccount?.decimals,\n )\n }, [mintAccount, redeemShares])\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (!publicKey || !redeemBN || transaction) {\n return\n }\n\n const {\n seniorTrancheATA,\n juniorTrancheATA,\n poolSeniorTrancheATA,\n poolJuniorTrancheATA,\n } = getTokenAccounts(poolInfo, publicKey)\n const tx = await program.methods\n .addRedemptionRequest(publicKey, redeemBN)\n .accountsPartial({\n signer: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n trancheMint:\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint,\n poolTrancheToken:\n selectedTranche === 'senior'\n ? poolSeniorTrancheATA\n : poolJuniorTrancheATA,\n lenderTrancheToken:\n selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .transaction()\n\n setTransaction(tx)\n }\n getTx()\n }, [\n poolInfo,\n program.methods,\n publicKey,\n redeemBN,\n selectedTranche,\n transaction,\n ])\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { SolanaPoolInfo, TrancheType } from '@huma-finance/shared'\nimport {\n SolanaPoolState,\n useLenderAccounts,\n useTrancheTokenAccounts,\n} from '@huma-finance/web-shared'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { BN } from '@coral-xyz/anchor'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { ChooseTranche } from './1-ChooseTranche'\nimport { Done } from './4-Done'\nimport { Transfer } from './3-Transfer'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaLendAddRedemptionProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {POOL_NTrancheTypeAME} tranche The tranche type.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaLendAddRedemptionProps {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n tranche?: TrancheType\n handleClose: () => void\n handleSuccess?: () => void\n}\n\nexport function SolanaLendAddRedemption({\n poolInfo,\n poolState,\n tranche,\n handleClose,\n handleSuccess,\n}: SolanaLendAddRedemptionProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const {\n seniorLenderStateAccount,\n juniorLenderStateAccount,\n loading: isLoadingLenderAccounts,\n } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName)\n const {\n seniorTokenAccount,\n juniorTokenAccount,\n loading: isLoadingTokenAccounts,\n } = useTrancheTokenAccounts(poolInfo)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [selectedTranche, setSelectedTranche] = useState<\n TrancheType | undefined\n >(tranche)\n\n useEffect(() => {\n if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {\n const seniorTrancheShares = new BN(\n seniorTokenAccount?.amount?.toString() ?? 0,\n )\n const juniorTrancheShares = new BN(\n juniorTokenAccount?.amount?.toString() ?? 0,\n )\n\n if (selectedTranche) {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {\n setSelectedTranche('junior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {\n setSelectedTranche('senior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n }\n }, [\n dispatch,\n step,\n isLoadingLenderAccounts,\n isLoadingTokenAccounts,\n seniorTokenAccount?.amount,\n juniorTokenAccount?.amount,\n selectedTranche,\n ])\n\n const title = 'Redemption'\n if (isLoadingLenderAccounts || isLoadingTokenAccounts) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n selectedTranche={selectedTranche}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && selectedTranche && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolState={poolState}\n lenderState={\n selectedTranche === 'senior'\n ? seniorLenderStateAccount\n : juniorLenderStateAccount\n }\n selectedTranche={selectedTranche}\n />\n )}\n {step === WIDGET_STEP.Transfer && selectedTranche && (\n <Transfer poolInfo={poolInfo} selectedTranche={selectedTranche} />\n )}\n {step === WIDGET_STEP.Done && (\n <Done poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n getTokenAccounts,\n SolanaPoolInfo,\n TrancheType,\n} from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { LenderStateAccount, useHumaProgram } from '@huma-finance/web-shared'\nimport { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'\nimport { useWallet } from '@solana/wallet-adapter-react'\nimport { Transaction } from '@solana/web3.js'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n lenderState: LenderStateAccount | null | undefined\n lenderStatePDA: string | null | undefined\n selectedTranche: TrancheType\n}\n\nexport function Transfer({\n poolInfo,\n lenderState,\n lenderStatePDA,\n selectedTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { publicKey } = useWallet()\n const [transaction, setTransaction] = useState<Transaction>()\n const program = useHumaProgram(poolInfo.chainId)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (!publicKey || !lenderState || !lenderStatePDA || transaction) {\n return\n }\n\n const {\n seniorTrancheATA,\n juniorTrancheATA,\n poolSeniorTrancheATA,\n poolJuniorTrancheATA,\n } = getTokenAccounts(poolInfo, publicKey)\n const tx = await program.methods\n .cancelRedemptionRequest(\n lenderState.redemptionRecord.numSharesRequested,\n )\n .accountsPartial({\n lender: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n trancheMint:\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint,\n trancheState:\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheState\n : poolInfo.juniorTrancheState,\n lenderState: lenderStatePDA,\n poolAuthority: poolInfo.poolAuthority,\n poolTrancheToken:\n selectedTranche === 'senior'\n ? poolSeniorTrancheATA\n : poolJuniorTrancheATA,\n lenderTrancheToken:\n selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .transaction()\n\n setTransaction(tx)\n }\n getTx()\n }, [\n lenderState,\n lenderStatePDA,\n poolInfo,\n program.methods,\n publicKey,\n selectedTranche,\n transaction,\n ])\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { TrancheType } from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title='Cancel Redemption'>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Tranche Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n formatNumber,\n SolanaPoolInfo,\n SolanaTokenUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport {\n LenderStateAccount,\n useTrancheMintAccounts,\n} from '@huma-finance/web-shared'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n lenderState: LenderStateAccount | null | undefined\n selectedTranche: TrancheType\n handleAction: () => void\n}\n\nexport function Done({\n poolInfo,\n lenderState,\n selectedTranche,\n handleAction,\n}: Props): React.ReactElement | null {\n const { mintAccount, loading: isLoadingTrancheMintAccounts } =\n useTrancheMintAccounts(poolInfo, selectedTranche)\n const { solanaSignature } = useAppSelector(selectWidgetState)\n\n const content =\n !lenderState || isLoadingTrancheMintAccounts || !mintAccount\n ? ['']\n : [\n `Your request to cancel the redemption of ${formatNumber(\n SolanaTokenUtils.formatUnits(\n lenderState.redemptionRecord.numSharesRequested,\n mintAccount.decimals,\n ),\n )} shares has been successfully processed.`,\n ]\n\n return (\n <SolanaTxDoneModal\n handleAction={handleAction}\n content={content}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText='DONE'\n />\n )\n}\n","import { SolanaPoolInfo, TrancheType } from '@huma-finance/shared'\nimport { useLenderAccounts } from '@huma-finance/web-shared'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { BN } from '@coral-xyz/anchor'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { Transfer } from './2-Transfer'\nimport { ChooseTranche } from './1-ChooseTranche'\nimport { Done } from './3-Done'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaLendCancelRedemptionProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaLendCancelRedemptionProps {\n poolInfo: SolanaPoolInfo\n tranche?: TrancheType\n handleClose: () => void\n handleSuccess?: () => void\n}\n\nexport function SolanaLendCancelRedemption({\n poolInfo,\n tranche,\n handleClose,\n handleSuccess,\n}: SolanaLendCancelRedemptionProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const {\n seniorLenderStateAccount,\n juniorLenderStateAccount,\n juniorLenderStateAccountPDA,\n seniorLenderStateAccountPDA,\n loading: isLoadingLenderAccounts,\n } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [selectedTranche, setSelectedTranche] = useState<\n TrancheType | undefined\n >(tranche)\n\n useEffect(() => {\n if (!step && !isLoadingLenderAccounts) {\n const seniorTrancheSharesRequested = new BN(\n seniorLenderStateAccount?.redemptionRecord.numSharesRequested ?? 0,\n )\n const juniorTrancheSharesRequested = new BN(\n juniorLenderStateAccount?.redemptionRecord.numSharesRequested ?? 0,\n )\n\n if (selectedTranche) {\n dispatch(setStep(WIDGET_STEP.Transfer))\n return\n }\n\n if (\n juniorTrancheSharesRequested.gtn(0) &&\n seniorTrancheSharesRequested.lten(0)\n ) {\n setSelectedTranche('junior')\n dispatch(setStep(WIDGET_STEP.Transfer))\n return\n }\n\n if (\n seniorTrancheSharesRequested.gtn(0) &&\n juniorTrancheSharesRequested.lten(0)\n ) {\n setSelectedTranche('senior')\n dispatch(setStep(WIDGET_STEP.Transfer))\n return\n }\n\n if (\n seniorTrancheSharesRequested.gtn(0) &&\n juniorTrancheSharesRequested.gtn(0)\n ) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n }\n }, [\n dispatch,\n step,\n isLoadingLenderAccounts,\n seniorLenderStateAccount?.redemptionRecord.numSharesRequested,\n juniorLenderStateAccount?.redemptionRecord.numSharesRequested,\n selectedTranche,\n ])\n\n const title = 'Cancel Redemption'\n if (isLoadingLenderAccounts) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n selectedTranche={selectedTranche}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.Transfer && selectedTranche && (\n <Transfer\n poolInfo={poolInfo}\n lenderState={\n selectedTranche === 'senior'\n ? seniorLenderStateAccount\n : juniorLenderStateAccount\n }\n lenderStatePDA={\n selectedTranche === 'senior'\n ? seniorLenderStateAccountPDA\n : juniorLenderStateAccountPDA\n }\n selectedTranche={selectedTranche}\n />\n )}\n {step === WIDGET_STEP.Done && selectedTranche && (\n <Done\n poolInfo={poolInfo}\n lenderState={\n selectedTranche === 'senior'\n ? seniorLenderStateAccount\n : juniorLenderStateAccount\n }\n selectedTranche={selectedTranche}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n getSentinelAddress,\n getTokenAccounts,\n SolanaPoolInfo,\n} from '@huma-finance/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport {\n notEnabledAutoRedeem,\n SolanaPoolState,\n useHumaProgram,\n useLenderAccounts,\n useTrancheTokenAccounts,\n} from '@huma-finance/web-shared'\nimport {\n createApproveCheckedInstruction,\n TOKEN_2022_PROGRAM_ID,\n} from '@solana/spl-token'\nimport { useWallet } from '@solana/wallet-adapter-react'\nimport { PublicKey, Transaction } from '@solana/web3.js'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setError, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n}\n\nexport function Transfer({\n poolInfo,\n poolState,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { publicKey } = useWallet()\n const sentinel = getSentinelAddress(poolInfo.chainId)\n const [transaction, setTransaction] = useState<Transaction>()\n const {\n juniorLenderApprovedAccountPDA,\n seniorLenderApprovedAccountPDA,\n seniorLenderStateAccount,\n juniorLenderStateAccount,\n seniorTrancheMintSupply,\n juniorTrancheMintSupply,\n loading: isLoadingLenderAccounts,\n } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName)\n const {\n seniorTokenAccount,\n juniorTokenAccount,\n loading: isLoadingTrancheTokenAccounts,\n } = useTrancheTokenAccounts(poolInfo)\n const program = useHumaProgram(poolInfo.chainId)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (\n !publicKey ||\n transaction ||\n isLoadingLenderAccounts ||\n isLoadingTrancheTokenAccounts\n ) {\n return\n }\n\n const tx = new Transaction()\n\n const { seniorTrancheATA, juniorTrancheATA } = getTokenAccounts(\n poolInfo,\n publicKey,\n )\n const poolAuthorityPubkey = new PublicKey(poolInfo.poolAuthority)\n\n if (!seniorTokenAccount?.amount && !juniorTokenAccount?.amount) {\n dispatch(\n setError({ errorMessage: 'Error reading tranche token balance' }),\n )\n return\n }\n if (\n notEnabledAutoRedeem(\n seniorTokenAccount,\n poolAuthorityPubkey,\n seniorTokenAccount?.amount,\n )\n ) {\n tx.add(\n createApproveCheckedInstruction(\n seniorTrancheATA,\n new PublicKey(poolInfo.seniorTrancheMint),\n poolAuthorityPubkey, // delegate\n publicKey, // owner of the wallet\n BigInt(seniorTokenAccount?.amount.toString() ?? 0), // amount\n poolInfo.trancheDecimals,\n undefined, // multiSigners\n TOKEN_2022_PROGRAM_ID,\n ),\n )\n }\n if (\n notEnabledAutoRedeem(\n juniorTokenAccount,\n poolAuthorityPubkey,\n juniorTokenAccount?.amount,\n )\n ) {\n tx.add(\n createApproveCheckedInstruction(\n juniorTrancheATA,\n new PublicKey(poolInfo.juniorTrancheMint),\n poolAuthorityPubkey, // delegate\n publicKey, // owner of the wallet\n BigInt(juniorTokenAccount?.amount.toString() ?? 0), // amount\n poolInfo.trancheDecimals,\n undefined, // multiSigners\n TOKEN_2022_PROGRAM_ID,\n ),\n )\n }\n if (!tx.instructions.length) {\n dispatch(\n setError({ errorMessage: 'No tranches require Auto-Redemption' }),\n )\n return\n }\n\n setTransaction(tx)\n }\n getTx()\n }, [\n dispatch,\n isLoadingLenderAccounts,\n isLoadingTrancheTokenAccounts,\n juniorLenderApprovedAccountPDA,\n juniorLenderStateAccount,\n juniorTokenAccount,\n juniorTrancheMintSupply,\n poolInfo,\n poolState.juniorTrancheAssets,\n poolState.seniorTrancheAssets,\n program.methods,\n publicKey,\n seniorLenderApprovedAccountPDA,\n seniorLenderStateAccount,\n seniorTokenAccount,\n seniorTrancheMintSupply,\n sentinel,\n transaction,\n ])\n\n if (isLoadingLenderAccounts || isLoadingTrancheTokenAccounts) {\n return <LoadingModal title='Auto-Redeem' />\n }\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n CloseModalOptions,\n SolanaPoolInfo,\n timeUtil,\n} from '@huma-finance/shared'\nimport { getLenderLockupDates, SolanaPoolState } from '@huma-finance/web-shared'\nimport React from 'react'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n handleAction: (options?: CloseModalOptions) => void\n}\n\nexport function Success({\n poolInfo,\n poolState,\n handleAction,\n}: Props): React.ReactElement {\n const { solanaSignature } = useAppSelector(selectWidgetState)\n\n const { lockupEndTimeUnix, withdrawTimeUnix } = getLenderLockupDates(\n poolState.withdrawalLockupPeriodDays ?? 0,\n )\n const content = [\n `Redemption request will be automatically submitted on ${timeUtil.timestampToLL(\n lockupEndTimeUnix,\n )}. Your deposit can be redeemed and yield rewards will stop on ${timeUtil.timestampToLL(\n withdrawTimeUnix,\n )}.`,\n ]\n\n return (\n <SolanaTxDoneModal\n handleAction={handleAction}\n content={content}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText='DONE'\n />\n )\n}\n","import { timeUtil } from '@huma-finance/shared'\nimport { getLenderLockupDates, SolanaPoolState } from '@huma-finance/web-shared'\nimport React, { useCallback } from 'react'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { WrapperModal } from '../../WrapperModal'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { BottomButton } from '../../BottomButton'\nimport { AutoPaybackImg } from '../../images'\n\ntype Props = {\n poolState: SolanaPoolState\n}\n\nexport function ApproveAllowance({ poolState }: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const handleNext = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(6)};\n & > img {\n width: 220px;\n }\n `,\n description: css`\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n padding: ${theme.spacing(0, 1)};\n `,\n }\n\n const { lockupEndTimeUnix, withdrawTimeUnix } = getLenderLockupDates(\n poolState.withdrawalLockupPeriodDays ?? 0,\n )\n\n return (\n <WrapperModal title='Auto-Redemption'>\n <Box css={styles.iconWrapper}>\n <img src={AutoPaybackImg} alt='auto-payback' />\n </Box>\n <Box css={styles.description}>\n This allowance transaction will enable auto-redemption for your existing\n tranche shares. Redemption requests will be automatically submitted on{' '}\n {timeUtil.timestampToLL(lockupEndTimeUnix)}. Your deposit can be\n redeemed and yield rewards will stop on{' '}\n {timeUtil.timestampToLL(withdrawTimeUnix)}.\n </Box>\n <BottomButton variant='contained' onClick={handleNext}>\n APPROVE ALLOWANCE\n </BottomButton>\n </WrapperModal>\n )\n}\n","import { CloseModalOptions, SolanaPoolInfo } from '@huma-finance/shared'\nimport { SolanaPoolState } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Transfer } from './2-Transfer'\nimport { Success } from './3-Success'\nimport { ApproveAllowance } from './1-ApproveAllowance'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaEnableAutoRedemptionProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool.\n * @property {function((CloseModalOptions|undefined)):void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaEnableAutoRedemptionProps {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n handleClose: (options?: CloseModalOptions) => void\n handleSuccess?: () => void\n}\n\nexport function SolanaEnableAutoRedemption({\n poolInfo,\n poolState,\n handleClose,\n handleSuccess,\n}: SolanaEnableAutoRedemptionProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n\n useEffect(() => {\n if (!step) {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n }\n }, [dispatch, step])\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle='Auto-Redemption'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolState={poolState} />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer poolInfo={poolInfo} poolState={poolState} />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n poolState={poolState}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title='Auto-Redemption'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { formatNumber, isEmpty } from '@huma-finance/shared'\nimport { txAtom } from '@huma-finance/web-shared'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useCallback } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../hooks/useRedux'\nimport { resetState } from '../store/widgets.reducers'\nimport { selectWidgetState } from '../store/widgets.selectors'\nimport { BottomButton } from './BottomButton'\nimport { CongratulationsIcon, HumaPointsIcon, RibbonIcon } from './icons'\n\ntype Props = {\n lpConfig: { withdrawalLockupPeriodDays?: number }\n handleAction: () => void\n}\n\nexport function PointsEarned({\n lpConfig,\n handleAction,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useDispatch()\n const reset = useResetAtom(txAtom)\n const { pointsAccumulated } = useAppSelector(selectWidgetState)\n const hasPointsAccumulated =\n !isEmpty(pointsAccumulated) && pointsAccumulated! > 0\n const lockupMonths = Math.round(\n (lpConfig.withdrawalLockupPeriodDays ?? 0) / 30,\n )\n const monthText =\n lockupMonths > 1 ? `${lockupMonths} months` : `${lockupMonths} month`\n\n const handleCloseModal = useCallback(() => {\n reset()\n dispatch(resetState())\n handleAction()\n }, [dispatch, handleAction, reset])\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n congrats: css`\n margin: ${theme.spacing(-4, -4.5, 0, -4.5)};\n `,\n ribbon: css`\n position: relative;\n ${theme.cssMixins.rowHCentered};\n font-weight: 700;\n margin-top: ${theme.spacing(-8)};\n color: ${theme.palette.text.primary};\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n `,\n ribbonContent: css`\n ${theme.cssMixins.rowVCentered};\n position: absolute;\n top: ${theme.spacing(1)};\n\n svg {\n margin-right: ${theme.spacing(1)};\n }\n `,\n entirePoints: css`\n color: ${theme.palette.text.tertiary};\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(7)};\n `,\n entirePointsDetails: css`\n color: ${theme.palette.text.tertiary};\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(4)};\n `,\n everyday: css`\n font-weight: 700;\n `,\n }\n\n return (\n <Box css={styles.wrapper}>\n <Box css={styles.congrats}>\n <CongratulationsIcon />\n </Box>\n <Box css={styles.ribbon}>\n <RibbonIcon />\n <Box css={styles.ribbonContent}>\n <HumaPointsIcon />\n <Box>\n {hasPointsAccumulated\n ? `${formatNumber(pointsAccumulated)} Points`\n : 'Points earned'}\n </Box>\n </Box>\n </Box>\n <Box css={styles.entirePoints}>\n {hasPointsAccumulated ? (\n <>\n <Box>Congratulations,</Box>\n <Box>you've earned {pointsAccumulated} points</Box>\n </>\n ) : (\n <Box>Congratulations on joining the Huma Protocol!</Box>\n )}\n </Box>\n <Box css={styles.entirePointsDetails}>\n You'll earn points <span css={styles.everyday}>everyday</span> for{' '}\n {monthText} straight.\n </Box>\n <BottomButton variant='contained' onClick={handleCloseModal}>\n GREAT\n </BottomButton>\n </Box>\n )\n}\n","import {\n CHAIN_TYPE,\n checkIsDev,\n CloseModalOptions,\n IdentityServiceV2,\n IdentityVerificationStatusV2,\n KYCCopy,\n KYCType,\n NETWORK_TYPE,\n VerificationStatusResultV2,\n} from '@huma-finance/shared'\nimport { AUTH_ERROR_TYPE, useAuthErrorHandling } from '@huma-finance/web-shared'\nimport { Box, css, useTheme } from '@mui/material'\nimport Persona, { Client } from 'persona'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setError, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { ApproveLenderImg } from '../../images'\nimport { LoadingModal } from '../../LoadingModal'\nimport { WrapperModal } from '../../WrapperModal'\nimport { Campaign } from '../supplyV2'\n\ntype LoadingType = 'verificationStatus' | 'startKYC' | 'approveLender'\n\ntype Props = {\n poolInfo: {\n KYC?: KYCType\n juniorTrancheVault: string\n seniorTrancheVault: string\n }\n networkType: NETWORK_TYPE\n chainType: CHAIN_TYPE\n documentHash: string\n campaign?: Campaign\n handleClose: (options?: CloseModalOptions) => void\n}\n\nexport function PersonaEvaluation({\n poolInfo,\n campaign,\n networkType,\n chainType,\n documentHash,\n handleClose,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const isDev = checkIsDev()\n const dispatch = useAppDispatch()\n const {\n authErrorType,\n setAuthError,\n isWalletOwnershipVerified,\n isWalletOwnershipVerificationRequired,\n } = useAuthErrorHandling(isDev, chainType)\n const KYCCopies = poolInfo.KYC!.Persona!\n const [loadingType, setLoadingType] = useState<LoadingType>()\n const [kycCopy, setKYCCopy] = useState<KYCCopy>(KYCCopies.verifyIdentity)\n const [inquiryId, setInquiryId] = useState<string>()\n const [sessionToken, setSessionToken] = useState<string>()\n const [verificationStatus, setVerificationStatus] =\n useState<VerificationStatusResultV2>()\n const [showPersonaClient, setShowPersonaClient] = useState<boolean>(false)\n const [KYCAutoStarted, setKYCAutoStarted] = useState<boolean>(false)\n const isKYCCompletedRef = useRef<boolean>(false)\n const isActionOngoingRef = useRef<boolean>(false)\n const isKYCResumedRef = useRef<boolean>(false)\n\n const checkVerificationStatus = useCallback(async () => {\n if (isActionOngoingRef.current || isKYCResumedRef.current) {\n return\n }\n try {\n isActionOngoingRef.current = true\n setLoadingType('verificationStatus')\n const verificationStatus =\n await IdentityServiceV2.getVerificationStatusV2(\n networkType,\n documentHash,\n isDev,\n )\n setVerificationStatus(verificationStatus)\n setInquiryId(verificationStatus.personaInquiryId)\n\n switch (verificationStatus.status) {\n case IdentityVerificationStatusV2.ACCREDITED: {\n const startVerificationResult =\n await IdentityServiceV2.startVerification(networkType, isDev)\n setInquiryId(startVerificationResult.personaInquiryId)\n setKYCCopy(KYCCopies.verifyIdentity)\n setLoadingType(undefined)\n if (\n startVerificationResult.status ===\n IdentityVerificationStatusV2.BYPASSED\n ) {\n setVerificationStatus(startVerificationResult)\n setKYCCopy(KYCCopies.verificationBypassed)\n }\n\n break\n }\n\n case IdentityVerificationStatusV2.CREATED: {\n setKYCCopy(KYCCopies.verifyIdentity)\n setLoadingType(undefined)\n break\n }\n\n case IdentityVerificationStatusV2.PENDING: {\n if (!isKYCCompletedRef.current) {\n const resumeVerificationResult =\n await IdentityServiceV2.resumeVerification(networkType, isDev)\n verificationStatus.status = resumeVerificationResult.status\n setVerificationStatus(verificationStatus)\n setSessionToken(resumeVerificationResult.sessionToken)\n setLoadingType(undefined)\n isKYCResumedRef.current = true\n } else {\n setLoadingType('verificationStatus')\n }\n setKYCCopy(KYCCopies.verifyIdentity)\n break\n }\n\n case IdentityVerificationStatusV2.EXPIRED: {\n const resumeVerificationResult =\n await IdentityServiceV2.resumeVerification(networkType, isDev)\n verificationStatus.status = resumeVerificationResult.status\n setVerificationStatus(verificationStatus)\n setSessionToken(resumeVerificationResult.sessionToken)\n setKYCCopy(KYCCopies.verifyIdentity)\n setLoadingType(undefined)\n isKYCResumedRef.current = true\n break\n }\n\n case IdentityVerificationStatusV2.BYPASSED: {\n setKYCCopy(KYCCopies.verificationBypassed)\n setLoadingType(undefined)\n\n break\n }\n\n case IdentityVerificationStatusV2.APPROVED: {\n setKYCCopy(KYCCopies.verificationApproved)\n setLoadingType(undefined)\n break\n }\n\n case IdentityVerificationStatusV2.DECLINED: {\n setKYCCopy(KYCCopies.verificationDeclined)\n setLoadingType(undefined)\n break\n }\n\n case IdentityVerificationStatusV2.NEEDS_REVIEW: {\n setKYCCopy(KYCCopies.verificationNeedsReview)\n setLoadingType(undefined)\n break\n }\n\n case IdentityVerificationStatusV2.CONSENTED_TO_SUBSCRIPTION: {\n dispatch(setStep(WIDGET_STEP.ApproveLender))\n break\n }\n\n default:\n break\n }\n } catch (e: unknown) {\n setAuthError(e)\n } finally {\n isActionOngoingRef.current = false\n }\n }, [KYCCopies, dispatch, isDev, networkType, documentHash, setAuthError])\n\n useEffect(() => {\n checkVerificationStatus()\n }, [checkVerificationStatus])\n\n useEffect(() => {\n if (isWalletOwnershipVerificationRequired && isWalletOwnershipVerified) {\n checkVerificationStatus()\n }\n }, [\n checkVerificationStatus,\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n ])\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (\n verificationStatus?.status &&\n [\n IdentityVerificationStatusV2.CREATED,\n IdentityVerificationStatusV2.PENDING,\n ].includes(verificationStatus.status)\n ) {\n checkVerificationStatus()\n }\n }, 3 * 1000)\n // eslint-disable-next-line consistent-return\n return () => clearInterval(interval)\n }, [checkVerificationStatus, verificationStatus?.status])\n\n useEffect(() => {\n if (authErrorType === AUTH_ERROR_TYPE.NotSignedIn) {\n setLoadingType(undefined)\n setKYCCopy(KYCCopies.signInRequired)\n } else if (authErrorType === AUTH_ERROR_TYPE.UserRejected) {\n dispatch(\n setError({\n errorMessage: 'User has rejected the transaction.',\n }),\n )\n } else if (authErrorType === AUTH_ERROR_TYPE.Other) {\n dispatch(\n setError({\n errorMessage: 'Something went wrong. Please try again later.',\n }),\n )\n }\n }, [KYCCopies.signInRequired, dispatch, authErrorType])\n\n useEffect(() => {\n const modalElement = document.getElementById('huma-modal')\n if (modalElement) {\n modalElement.style.visibility = showPersonaClient ? 'hidden' : 'visible'\n }\n }, [showPersonaClient])\n\n const startKYC = useCallback(async () => {\n isActionOngoingRef.current = true\n isKYCResumedRef.current = false\n setLoadingType('startKYC')\n const client: Client = new Persona.Client({\n inquiryId,\n sessionToken,\n frameWidth: '480px',\n onReady: () => {\n client.open()\n setShowPersonaClient(true)\n },\n onComplete: () => {\n isKYCCompletedRef.current = true\n isActionOngoingRef.current = false\n setShowPersonaClient(false)\n checkVerificationStatus()\n },\n onCancel: () => {\n isActionOngoingRef.current = false\n setShowPersonaClient(false)\n setLoadingType(undefined)\n handleClose()\n },\n onError: () => {\n isActionOngoingRef.current = false\n setShowPersonaClient(false)\n setLoadingType(undefined)\n },\n })\n }, [checkVerificationStatus, handleClose, inquiryId, sessionToken])\n\n // Start KYC flow directly for the first time\n useEffect(() => {\n if (isActionOngoingRef.current || isKYCResumedRef.current) {\n return\n }\n if (verificationStatus && !KYCAutoStarted) {\n switch (verificationStatus.status) {\n case IdentityVerificationStatusV2.ACCREDITED:\n case IdentityVerificationStatusV2.CREATED:\n case IdentityVerificationStatusV2.PENDING:\n case IdentityVerificationStatusV2.EXPIRED: {\n startKYC()\n setKYCAutoStarted(true)\n break\n }\n\n default:\n break\n }\n }\n }, [KYCAutoStarted, startKYC, verificationStatus])\n\n const handleAction = useCallback(() => {\n if (verificationStatus) {\n switch (verificationStatus.status) {\n case IdentityVerificationStatusV2.ACCREDITED:\n case IdentityVerificationStatusV2.CREATED:\n case IdentityVerificationStatusV2.PENDING:\n case IdentityVerificationStatusV2.EXPIRED:\n startKYC()\n break\n\n case IdentityVerificationStatusV2.DECLINED:\n case IdentityVerificationStatusV2.NEEDS_REVIEW:\n case IdentityVerificationStatusV2.APPROVED:\n handleClose({ identityStatus: verificationStatus.status })\n break\n\n case IdentityVerificationStatusV2.BYPASSED:\n handleClose({ identityStatus: IdentityVerificationStatusV2.APPROVED })\n break\n\n default:\n break\n }\n }\n }, [handleClose, startKYC, verificationStatus])\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(8)};\n & > img {\n width: 144px;\n }\n `,\n description: css`\n margin-top: ${theme.spacing(10)};\n padding: ${theme.spacing(0, 2)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.primary};\n `,\n points: css`\n color: ${theme.palette.primary.main};\n font-weight: 700;\n `,\n }\n\n if (!loadingType) {\n return (\n <WrapperModal title={kycCopy.title}>\n <Box css={styles.iconWrapper}>\n <img src={ApproveLenderImg} alt='approve-lender' />\n </Box>\n {campaign && kycCopy === KYCCopies.verifyIdentity ? (\n <Box css={styles.description}>\n <span>\n You'll be rewarded with Huma points after completing KYC/KYB and\n your first investment.\n </span>\n </Box>\n ) : (\n <Box css={styles.description}>{kycCopy.description}</Box>\n )}\n\n {Boolean(kycCopy.buttonText) && (\n <BottomButton variant='contained' onClick={handleAction}>\n {kycCopy.buttonText}\n </BottomButton>\n )}\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title='Lender Approval'\n description='Checking your verification status...'\n />\n )\n}\n","import { CHAIN_TYPE, NETWORK_TYPE, SolanaPoolInfo } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { PersonaEvaluation } from '../components/PersonaEvaluation'\nimport { Campaign } from '../supplyV2'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n networkType: NETWORK_TYPE\n campaign?: Campaign\n documentHash: string\n handleClose: () => void\n}\n\nexport function Evaluation({\n poolInfo,\n networkType,\n campaign,\n documentHash,\n handleClose,\n}: Props): React.ReactElement | null {\n if (poolInfo.KYC?.Persona) {\n return (\n <PersonaEvaluation\n poolInfo={{\n KYC: poolInfo.KYC,\n juniorTrancheVault: poolInfo.juniorTrancheMint,\n seniorTrancheVault: poolInfo.seniorTrancheMint,\n }}\n handleClose={handleClose}\n networkType={networkType}\n chainType={CHAIN_TYPE.SOLANA}\n campaign={campaign}\n documentHash={documentHash}\n />\n )\n }\n\n return null\n}\n","/* eslint-disable no-await-in-loop */\nimport {\n CHAIN_TYPE,\n checkIsDev,\n COMMON_ERROR_MESSAGE,\n IdentityServiceV2,\n NETWORK_TYPE,\n SOLANA_TRANSACTION_EXPIRED_BLOCKHEIGHT_EXCEEDED_ERROR,\n timeUtil,\n TrancheType,\n} from '@huma-finance/shared'\nimport { useChainInfo } from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setError, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n juniorTrancheVault: string\n seniorTrancheVault: string\n chainType: CHAIN_TYPE\n networkType: NETWORK_TYPE\n isUniTranche: boolean\n documentHash: string\n chainSpecificData?: Record<string, unknown>\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ApproveLenderBase({\n juniorTrancheVault,\n seniorTrancheVault,\n isUniTranche,\n chainType,\n networkType,\n chainSpecificData,\n documentHash,\n changeTranche,\n}: Props): React.ReactElement | null {\n const isDev = checkIsDev()\n const dispatch = useAppDispatch()\n const { account, chainId } = useChainInfo(isDev, chainType)\n\n const approveLender = useCallback(\n async (trancheVault: string) => {\n let tryAttempts = 2\n\n while (tryAttempts > 0) {\n try {\n tryAttempts -= 1\n await IdentityServiceV2.approveLender(\n networkType,\n account!,\n chainId!,\n trancheVault,\n documentHash,\n isDev,\n chainSpecificData,\n )\n tryAttempts = 0\n } catch (e: unknown) {\n if (tryAttempts === 0) {\n throw e\n } else {\n await timeUtil.sleep(3000)\n console.error(e)\n }\n }\n }\n },\n [account, chainId, chainSpecificData, documentHash, isDev, networkType],\n )\n\n useEffect(() => {\n const approveLenderAsync = async () => {\n if (account && chainId) {\n try {\n if (isUniTranche) {\n await approveLender(juniorTrancheVault)\n changeTranche('junior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n } else {\n await approveLender(juniorTrancheVault)\n await approveLender(seniorTrancheVault)\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n } catch (e: unknown) {\n console.error(e)\n // @ts-ignore\n let errorMessage = e.message ?? COMMON_ERROR_MESSAGE\n if (\n errorMessage.indexOf(\n SOLANA_TRANSACTION_EXPIRED_BLOCKHEIGHT_EXCEEDED_ERROR,\n ) >= 0\n ) {\n errorMessage = `Transaction failed due to blockchain congestion. Please try again.`\n }\n dispatch(\n setError({\n errorMessage,\n }),\n )\n }\n }\n }\n\n approveLenderAsync()\n }, [\n account,\n approveLender,\n chainId,\n changeTranche,\n dispatch,\n isUniTranche,\n juniorTrancheVault,\n seniorTrancheVault,\n ])\n\n return (\n <LoadingModal\n title='Lender Approval'\n description='Checking your verification status...'\n />\n )\n}\n","import {\n CHAIN_TYPE,\n getSolanaNetworkType,\n SOLANA_CHAIN_INFO,\n SolanaPoolInfo,\n TrancheType,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { ApproveLenderBase } from '../components/ApproveLenderBase'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n isUniTranche: boolean\n documentHash: string\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ApproveLender({\n poolInfo,\n isUniTranche,\n documentHash,\n changeTranche,\n}: Props): React.ReactElement | null {\n const solanaChainInfo = SOLANA_CHAIN_INFO[poolInfo.chainId]\n\n return (\n <ApproveLenderBase\n juniorTrancheVault={poolInfo.juniorTrancheMint}\n seniorTrancheVault={poolInfo.seniorTrancheMint}\n isUniTranche={isUniTranche}\n chainType={CHAIN_TYPE.SOLANA}\n networkType={getSolanaNetworkType(poolInfo.chainId)}\n chainSpecificData={{\n huma_program_id: solanaChainInfo.poolProgram,\n pool_id: poolInfo.poolId,\n }}\n documentHash={documentHash}\n changeTranche={changeTranche}\n />\n )\n}\n","import { TrancheType, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n poolUnderlyingToken,\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title={`Supply ${poolUnderlyingToken.symbol}`}>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Tranche Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import { BN } from '@coral-xyz/anchor'\nimport {\n formatNumber,\n SolanaPoolInfo,\n SolanaTokenUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport { SolanaPoolState } from '@huma-finance/web-shared'\nimport { Account } from '@solana/spl-token'\nimport React, { useMemo, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep, setSupplyAmount } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n tokenAccount?: Account\n selectedTranche: TrancheType | undefined\n isUniTranche?: boolean\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolState,\n tokenAccount,\n selectedTranche,\n isUniTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { symbol, decimals } = poolInfo.underlyingMint\n const [currentAmount, setCurrentAmount] = useState<number | string>(0)\n const balance = tokenAccount\n ? new BN(tokenAccount.amount.toString())\n : new BN(0)\n\n const { juniorAvailableCapBN, seniorAvailableCapBN } = useMemo(() => {\n const {\n maxSeniorJuniorRatio,\n liquidityCap,\n seniorTrancheAssets,\n juniorTrancheAssets,\n } = poolState\n const juniorTrancheAssetsBN = new BN(juniorTrancheAssets ?? 0)\n const seniorTrancheAssetsBN = new BN(seniorTrancheAssets ?? 0)\n const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN)\n let totalAvailableCapBN = new BN(liquidityCap ?? 0).sub(totalDeployedBN)\n totalAvailableCapBN = totalAvailableCapBN.ltn(0)\n ? new BN(0)\n : totalAvailableCapBN\n const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(\n maxSeniorJuniorRatio ?? 0,\n )\n let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN)\n seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN)\n ? totalAvailableCapBN\n : seniorAvailableCapBN\n\n return {\n juniorAvailableCapBN: totalAvailableCapBN,\n seniorAvailableCapBN,\n }\n }, [poolState])\n\n const handleChangeAmount = (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setSupplyAmount(Number(newAmount)))\n }\n\n const handleAction = () => {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n }\n\n const getTrancheCap = () => {\n if (selectedTranche === 'junior') {\n return juniorAvailableCapBN\n }\n return seniorAvailableCapBN\n }\n\n const getMinAmount = (): number => {\n const minAmount = poolState.minDepositAmount\n ? SolanaTokenUtils.formatUnits(\n new BN(poolState.minDepositAmount),\n decimals,\n )\n : 0\n return Math.max(0, Math.ceil(Number(minAmount)))\n }\n\n const getMaxAmount = (): BN => {\n const trancheCap = getTrancheCap()\n return balance.gt(trancheCap) ? trancheCap : balance\n }\n\n const getInfos = () => {\n const trancheCap = getTrancheCap()\n const currentAmountBN = SolanaTokenUtils.parseUnits(\n String(currentAmount),\n decimals,\n )\n const remainingCap = trancheCap.sub(currentAmountBN)\n\n if (remainingCap.ltn(0)) {\n return ['0 remaining capacity']\n }\n return [\n `${formatNumber(\n SolanaTokenUtils.formatUnits(remainingCap, decimals),\n )} remaining capacity`,\n ]\n }\n\n return (\n <InputAmountModal\n title='Enter Amount'\n subTitle={`Depositing to ${\n isUniTranche ? 'uni' : selectedTranche\n } tranche`}\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n minimumAmount={getMinAmount()}\n maxAmount={Number(SolanaTokenUtils.formatUnits(getMaxAmount(), decimals))}\n maxAmountTitle={`${formatNumber(\n SolanaTokenUtils.formatUnits(balance, decimals),\n )} balance`}\n infos={getInfos()}\n handleAction={handleAction}\n actionText='NEXT'\n />\n )\n}\n","import React, { useCallback } from 'react'\nimport { Box, css, useTheme } from '@mui/material'\nimport { getLenderLockupDates, SolanaPoolState } from '@huma-finance/web-shared'\nimport { timeUtil } from '@huma-finance/shared'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { WrapperModal } from '../../WrapperModal'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { BottomButton } from '../../BottomButton'\nimport { AutoPaybackImg } from '../../images'\n\ntype Props = {\n poolState: SolanaPoolState\n}\n\nexport function ApproveAllowance({ poolState }: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const handleNext = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(6)};\n & > img {\n width: 220px;\n }\n `,\n description: css`\n margin-top: ${theme.spacing(4)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n padding: ${theme.spacing(0, 1)};\n `,\n }\n\n const { lockupEndTimeUnix } = getLenderLockupDates(\n poolState.withdrawalLockupPeriodDays ?? 0,\n )\n return (\n <WrapperModal title='Auto-Redemption'>\n <Box css={styles.iconWrapper}>\n <img src={AutoPaybackImg} alt='auto-payback' />\n </Box>\n <Box css={styles.description}>\n This transaction will also enable auto-redemption for your tranche\n shares by approving our automation account as a delegate. Redemption\n requests will be automatically submitted on{' '}\n {timeUtil.timestampToLL(lockupEndTimeUnix)}.\n </Box>\n <BottomButton variant='contained' onClick={handleNext}>\n SUPPLY\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n CampaignService,\n checkIsDev,\n convertToShares,\n getTokenAccounts,\n NETWORK_TYPE,\n SolanaPoolInfo,\n SolanaTokenUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n SolanaPoolState,\n useHumaProgram,\n useLenderAccounts,\n useTrancheTokenAccounts,\n} from '@huma-finance/web-shared'\nimport {\n createApproveCheckedInstruction,\n TOKEN_2022_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n} from '@solana/spl-token'\nimport { useWallet } from '@solana/wallet-adapter-react'\nimport { PublicKey, Transaction } from '@solana/web3.js'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setPointsAccumulated, setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n selectedTranche: TrancheType\n networkType: NETWORK_TYPE\n}\n\nexport function Transfer({\n poolInfo,\n poolState,\n selectedTranche,\n networkType,\n}: Props): React.ReactElement | null {\n const isDev = checkIsDev()\n const dispatch = useAppDispatch()\n const { publicKey } = useWallet()\n const { supplyAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.underlyingMint\n const supplyBigNumber = SolanaTokenUtils.parseUnits(\n String(supplyAmount),\n decimals,\n )\n const [transaction, setTransaction] = useState<Transaction>()\n const {\n juniorLenderApprovedAccountPDA,\n seniorLenderApprovedAccountPDA,\n seniorLenderStateAccount,\n juniorLenderStateAccount,\n seniorTrancheMintSupply,\n juniorTrancheMintSupply,\n loading: isLoadingLenderAccounts,\n } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName)\n const {\n seniorTokenAccount,\n juniorTokenAccount,\n loading: isLoadingTrancheTokenAccounts,\n } = useTrancheTokenAccounts(poolInfo)\n const program = useHumaProgram(poolInfo.chainId)\n\n const handleSuccess = useCallback(\n async (options?: { signature: string }) => {\n if (publicKey && poolState.campaign && options?.signature) {\n try {\n const result = await CampaignService.updateHumaAccountPoints(\n publicKey.toString(),\n options.signature,\n poolInfo.chainId,\n networkType,\n isDev,\n )\n dispatch(setPointsAccumulated(result.pointsAccumulated))\n } catch (error) {\n console.error('Failed to update wallet points', error)\n }\n }\n dispatch(setStep(WIDGET_STEP.Done))\n },\n [\n dispatch,\n isDev,\n networkType,\n poolInfo.chainId,\n poolState.campaign,\n publicKey,\n ],\n )\n\n useEffect(() => {\n async function getTx() {\n if (\n !publicKey ||\n transaction ||\n isLoadingLenderAccounts ||\n isLoadingTrancheTokenAccounts\n ) {\n return\n }\n\n const tx = new Transaction()\n\n const { underlyingTokenATA, seniorTrancheATA, juniorTrancheATA } =\n getTokenAccounts(poolInfo, publicKey)\n\n const approvedLender =\n selectedTranche === 'senior'\n ? seniorLenderApprovedAccountPDA!\n : juniorLenderApprovedAccountPDA!\n\n if (\n (selectedTranche === 'senior' && !seniorLenderStateAccount) ||\n (selectedTranche === 'junior' && !juniorLenderStateAccount)\n ) {\n const createLenderAccountsTx = await program.methods\n .createLenderAccounts()\n .accountsPartial({\n lender: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n approvedLender,\n trancheMint:\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint,\n lenderTrancheToken:\n selectedTranche === 'senior'\n ? seniorTrancheATA\n : juniorTrancheATA,\n tokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .transaction()\n tx.add(createLenderAccountsTx)\n }\n\n // Approve automatic redemptions\n const sharesAmount = convertToShares(\n selectedTranche === 'senior'\n ? BigInt(poolState.seniorTrancheAssets ?? 0)\n : BigInt(poolState.juniorTrancheAssets ?? 0),\n selectedTranche === 'senior'\n ? BigInt(seniorTrancheMintSupply?.toString() ?? 0)\n : BigInt(juniorTrancheMintSupply?.toString() ?? 0),\n BigInt(supplyBigNumber.toString()),\n )\n const existingShares = convertToShares(\n selectedTranche === 'senior'\n ? BigInt(poolState.seniorTrancheAssets ?? 0)\n : BigInt(poolState.juniorTrancheAssets ?? 0),\n selectedTranche === 'senior'\n ? BigInt(seniorTrancheMintSupply?.toString() ?? 0)\n : BigInt(juniorTrancheMintSupply?.toString() ?? 0),\n selectedTranche === 'senior'\n ? BigInt(seniorTokenAccount?.amount.toString() ?? '0')\n : BigInt(juniorTokenAccount?.amount.toString() ?? '0'),\n )\n tx.add(\n createApproveCheckedInstruction(\n selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,\n new PublicKey(\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint,\n ),\n new PublicKey(poolInfo.poolAuthority), // delegate\n publicKey, // owner of the wallet\n (sharesAmount * BigInt(11)) / BigInt(10) + existingShares, // amount\n poolInfo.trancheDecimals,\n undefined, // multiSigners\n TOKEN_2022_PROGRAM_ID,\n ),\n )\n\n const depositTx = await program.methods\n .deposit(supplyBigNumber)\n .accountsPartial({\n approvedLender,\n depositor: publicKey,\n poolConfig: poolInfo.poolConfig,\n underlyingMint: poolInfo.underlyingMint.address,\n trancheMint:\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint,\n poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,\n depositorUnderlyingToken: underlyingTokenATA,\n depositorTrancheToken:\n selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,\n humaConfig: poolInfo.humaConfig,\n underlyingTokenProgram: TOKEN_PROGRAM_ID,\n })\n .transaction()\n tx.add(depositTx)\n\n setTransaction(tx)\n }\n getTx()\n }, [\n isLoadingLenderAccounts,\n isLoadingTrancheTokenAccounts,\n juniorLenderApprovedAccountPDA,\n juniorLenderStateAccount,\n juniorTokenAccount?.amount,\n juniorTrancheMintSupply,\n poolInfo,\n poolState.juniorTrancheAssets,\n poolState.seniorTrancheAssets,\n program.methods,\n publicKey,\n selectedTranche,\n seniorLenderApprovedAccountPDA,\n seniorLenderStateAccount,\n seniorTokenAccount?.amount,\n seniorTrancheMintSupply,\n supplyBigNumber,\n transaction,\n ])\n\n if (isLoadingLenderAccounts || isLoadingTrancheTokenAccounts) {\n return <LoadingModal title='Supply' />\n }\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n CloseModalOptions,\n formatMoney,\n SolanaPoolInfo,\n timeUtil,\n} from '@huma-finance/shared'\nimport { SolanaPoolState } from '@huma-finance/web-shared'\nimport dayjs from 'dayjs'\nimport React, { useCallback } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { Campaign } from '.'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxDoneModal } from '../../SolanaTxDoneModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n campaign?: Campaign\n handleAction: (options?: CloseModalOptions) => void\n}\n\nexport function Success({\n poolInfo,\n poolState,\n campaign,\n handleAction,\n}: Props): React.ReactElement {\n const dispatch = useDispatch()\n const { supplyAmount, solanaSignature } = useAppSelector(selectWidgetState)\n const { symbol } = poolInfo.underlyingMint\n\n const content = [\n `You successfully supplied ${formatMoney(supplyAmount)} ${symbol}.`,\n ]\n\n const getSubContent = () => {\n const lockupEndTime = dayjs()\n .add(poolState.withdrawalLockupPeriodDays ?? 0, 'day')\n .date(1)\n const withdrawTime = lockupEndTime.add(1, 'month')\n return [\n `Redemption request will be automatically submitted on ${timeUtil.timestampToLL(\n lockupEndTime.unix(),\n )}. Your deposit can be redeemed and yield rewards will stop on ${timeUtil.timestampToLL(\n withdrawTime.unix(),\n )}.`,\n ]\n }\n\n const handleUserAction = useCallback(() => {\n if (campaign) {\n dispatch(setStep(WIDGET_STEP.PointsEarned))\n } else {\n handleAction({ isSuccess: true })\n }\n }, [campaign, dispatch, handleAction])\n\n return (\n <SolanaTxDoneModal\n handleAction={handleUserAction}\n content={content}\n subContent={getSubContent()}\n chainId={poolInfo.chainId}\n solanaSignature={solanaSignature}\n buttonText={campaign ? 'VIEW POINTS' : 'DONE'}\n />\n )\n}\n","import {\n CloseModalOptions,\n getSolanaNetworkType,\n SolanaPoolInfo,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n SolanaPoolState,\n useLenderAccounts,\n useTokenAccount,\n} from '@huma-finance/web-shared'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { PointsEarned } from '../../PointsEarned'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Evaluation } from './1-Evaluation'\nimport { ApproveLender } from './2-ApproveLender'\nimport { ChooseTranche } from './3-ChooseTranche'\nimport { ChooseAmount } from './4-ChooseAmount'\nimport { ApproveAllowance } from './5-ApproveAllowance'\nimport { Transfer } from './6-Transfer'\nimport { Success } from './7-Success'\nimport { SolanaErrorModal } from '../../SolanaErrorModal'\n\nexport interface Campaign {\n id: string\n campaignGroupId: string\n}\n\n/**\n * Lend pool supply props\n * @typedef {Object} SolanaLendSupplyProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool.\n * @param {string} documentHash The subscription file hash.\n * @property {function((CloseModalOptions|undefined)):void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface SolanaLendSupplyProps {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n documentHash: string\n handleClose: (options?: CloseModalOptions) => void\n handleSuccess?: () => void\n}\n\nexport function SolanaLendSupply({\n poolInfo,\n poolState,\n documentHash,\n handleClose,\n handleSuccess,\n}: SolanaLendSupplyProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { isUniTranche } = poolState\n const {\n seniorLenderApproved,\n juniorLenderApproved,\n loading: isLoadingLenderAccounts,\n } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName)\n const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [selectedTranche, setSelectedTranche] = useState<TrancheType>()\n\n useEffect(() => {\n if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {\n if (!juniorLenderApproved && !seniorLenderApproved) {\n dispatch(setStep(WIDGET_STEP.Evaluation))\n return\n }\n\n if (!isUniTranche && (!juniorLenderApproved || !seniorLenderApproved)) {\n dispatch(setStep(WIDGET_STEP.ApproveLender))\n return\n }\n\n if (juniorLenderApproved && !seniorLenderApproved) {\n setSelectedTranche('junior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (seniorLenderApproved && !juniorLenderApproved) {\n setSelectedTranche('senior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (juniorLenderApproved && seniorLenderApproved) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n }\n }, [\n dispatch,\n handleClose,\n poolInfo,\n step,\n isLoadingLenderAccounts,\n juniorLenderApproved,\n seniorLenderApproved,\n isLoadingTokenAccount,\n isUniTranche,\n ])\n\n if (isLoadingLenderAccounts || isLoadingTokenAccount) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Supply'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={`Supply ${poolInfo.underlyingMint.symbol}`}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation\n poolInfo={poolInfo}\n campaign={poolState.campaign}\n documentHash={documentHash}\n networkType={getSolanaNetworkType(poolInfo.chainId)}\n handleClose={handleClose}\n />\n )}\n {step === WIDGET_STEP.ApproveLender && (\n <ApproveLender\n poolInfo={poolInfo}\n isUniTranche={!!isUniTranche}\n documentHash={documentHash}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n poolUnderlyingToken={poolInfo.underlyingMint}\n selectedTranche={selectedTranche}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolState={poolState}\n tokenAccount={tokenAccount}\n selectedTranche={selectedTranche}\n isUniTranche={isUniTranche}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolState={poolState} />\n )}\n {step === WIDGET_STEP.Transfer && selectedTranche && (\n <Transfer\n poolInfo={poolInfo}\n poolState={poolState}\n selectedTranche={selectedTranche}\n networkType={getSolanaNetworkType(poolInfo.chainId)}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n poolState={poolState}\n campaign={poolState.campaign}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.PointsEarned && (\n <PointsEarned lpConfig={poolState} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <SolanaErrorModal\n chainId={poolInfo.chainId}\n title='Supply'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { UnderlyingTokenInfo } from '@huma-finance/shared'\nimport { Box, Divider, css, useTheme } from '@mui/material'\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n withdrawableAmountFormatted: string | number\n sharePrice: number\n}\n\nexport function ConfirmTransfer({\n poolUnderlyingToken,\n withdrawableAmountFormatted,\n sharePrice,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useDispatch()\n const { symbol } = poolUnderlyingToken\n\n const goToWithdraw = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n const styles = {\n itemWrapper: css`\n margin-top: ${theme.spacing(9)};\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n `,\n item: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ${theme.spacing(3)};\n `,\n itemValue: css`\n font-size: 20px;\n font-weight: 700;\n `,\n divider: css`\n border-color: ${theme.palette.divider};\n margin-bottom: ${theme.spacing(3)};\n `,\n }\n\n return (\n <WrapperModal\n title={`Withdraw ${symbol}`}\n subTitle='Withdraw all the available amount'\n >\n <Box css={styles.itemWrapper}>\n <Box css={styles.item}>\n <Box>Price Per Share</Box>\n <Box css={styles.itemValue}>\n {sharePrice.toFixed(1)} {symbol}\n </Box>\n </Box>\n <Divider css={styles.divider} orientation='horizontal' />\n <Box css={styles.item}>\n <Box fontWeight={700}>Available to withdraw</Box>\n <Box css={styles.itemValue}>\n {withdrawableAmountFormatted} {symbol}\n </Box>\n </Box>\n </Box>\n <BottomButton variant='contained' onClick={goToWithdraw}>\n WITHDRAW\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n getTokenAccounts,\n SolanaPoolInfo,\n TrancheType,\n} from '@huma-finance/shared'\nimport { useHumaProgram } from '@huma-finance/web-shared'\nimport { TOKEN_2022_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport { useWallet } from '@solana/wallet-adapter-react'\nimport { Transaction } from '@solana/web3.js'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { SolanaTxSendModal } from '../../SolanaTxSendModal'\n\ntype Props = {\n poolInfo: SolanaPoolInfo\n selectedTranche: TrancheType\n poolIsClosed: boolean\n}\n\nexport function Transfer({\n poolInfo,\n selectedTranche,\n poolIsClosed,\n}: Props): React.ReactElement | null {\n const { publicKey } = useWallet()\n const dispatch = useAppDispatch()\n const program = useHumaProgram(poolInfo.chainId)\n const [transaction, setTransaction] = useState<Transaction>()\n\n useEffect(() => {\n async function getTx() {\n if (!publicKey || transaction) {\n return\n }\n\n const tx = new Transaction()\n const { underlyingTokenATA, seniorTrancheATA, juniorTrancheATA } =\n getTokenAccounts(poolInfo, publicKey)\n const trancheMint =\n selectedTranche === 'senior'\n ? poolInfo.seniorTrancheMint\n : poolInfo.juniorTrancheMint\n const lenderTrancheToken =\n selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA\n\n if (!poolIsClosed) {\n const disburseTx = await program.methods\n .disburse()\n .accountsPartial({\n lender: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n underlyingMint: poolInfo.underlyingMint.address,\n trancheMint,\n poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,\n lenderUnderlyingToken: underlyingTokenATA,\n tokenProgram: TOKEN_PROGRAM_ID,\n })\n .transaction()\n tx.add(disburseTx)\n } else {\n const withdrawAfterPoolClosureTx = await program.methods\n .withdrawAfterPoolClosure()\n .accountsPartial({\n lender: publicKey,\n humaConfig: poolInfo.humaConfig,\n poolConfig: poolInfo.poolConfig,\n underlyingMint: poolInfo.underlyingMint.address,\n trancheMint,\n poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,\n lenderUnderlyingToken: underlyingTokenATA,\n lenderTrancheToken,\n underlyingTokenProgram: TOKEN_PROGRAM_ID,\n trancheTokenProgram: TOKEN_2022_PROGRAM_ID,\n })\n .transaction()\n tx.add(withdrawAfterPoolClosureTx)\n }\n\n setTransaction(tx)\n }\n getTx()\n }, [\n poolInfo,\n poolIsClosed,\n program.methods,\n publicKey,\n selectedTranche,\n transaction,\n ])\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <SolanaTxSendModal\n tx={transaction}\n chainId={poolInfo.chainId}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { BN } from '@coral-xyz/anchor'\nimport {\n formatMoneyFixed,\n SolanaTokenUtils,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport React from 'react'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n withdrawAmount: BN\n handleAction: () => void\n}\n\nexport function Done({\n poolUnderlyingToken,\n withdrawAmount,\n handleAction,\n}: Props): React.ReactElement {\n const { symbol } = poolUnderlyingToken\n const withdrawAmountFormatted = formatMoneyFixed(\n SolanaTokenUtils.formatUnits(withdrawAmount, poolUnderlyingToken.decimals),\n 2,\n )\n\n const content = [\n `You successfully withdrew ${withdrawAmountFormatted} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import {\n formatNumberFixed,\n SolanaPoolInfo,\n SolanaTokenUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport { LenderStateAccount, SolanaPoolState } from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { BN } from '@coral-xyz/anchor'\nimport { Mint } from '@solana/spl-token'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ConfirmTransfer } from './1-ConfirmTransfer'\nimport { Transfer } from './2-Transfer'\nimport { Done } from './3-Done'\n\n/**\n * Solana lend pool withdraw props\n * @typedef {Object} SolanaLendWithdrawProps\n * @property {SolanaPoolInfo} poolInfo The metadata of the pool.\n * @property {SolanaPoolState} poolState The current state config of the pool.\n * @property {LenderStateAccount} lenderStateAccount The lender state account of the user.\n * @property {Mint} trancheMintAccount The mint account of the tranche.\n * @property {TrancheType} trancheType The type of the tranche.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool withdraw action is successful.\n */\nexport type SolanaLendWithdrawProps = {\n poolInfo: SolanaPoolInfo\n poolState: SolanaPoolState\n lenderStateAccount: LenderStateAccount\n trancheMintAccount: Mint\n trancheType: TrancheType\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function SolanaLendWithdraw({\n poolInfo,\n poolState,\n lenderStateAccount,\n trancheMintAccount,\n trancheType,\n handleClose,\n handleSuccess,\n}: SolanaLendWithdrawProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const { symbol, decimals } = poolInfo.underlyingMint\n const title = `Withdraw ${symbol}`\n const poolIsClosed = poolState.status === 'closed'\n const [sharePrice, setSharePrice] = useState(0)\n const { totalAmountProcessed, totalAmountWithdrawn } =\n lenderStateAccount.redemptionRecord\n const withdrawableAmount = totalAmountProcessed.sub(totalAmountWithdrawn)\n const withdrawableAmountFormatted = formatNumberFixed(\n SolanaTokenUtils.formatUnits(withdrawableAmount, decimals),\n 2,\n )\n const [withdrawnAmount, setWithdrawnAmount] = useState<BN>()\n\n // After withdrawn success, the handleSuccess will refresh\n // the lenderStateAccount which will update the withdrawableAmount to 0\n // so we need to keep the withdrawnAmount to show in the Done step\n useEffect(() => {\n if (!withdrawnAmount) {\n setWithdrawnAmount(withdrawableAmount)\n }\n }, [withdrawableAmount, withdrawnAmount])\n\n useEffect(() => {\n if (!step) {\n dispatch(setStep(WIDGET_STEP.ConfirmTransfer))\n }\n }, [dispatch, step])\n\n useEffect(() => {\n const trancheAssets =\n trancheType === 'senior'\n ? poolState.seniorTrancheAssets\n : poolState.juniorTrancheAssets\n\n const trancheAssetsVal = new BN(trancheAssets ?? 1)\n const trancheSupplyVal = new BN(trancheMintAccount.supply.toString() ?? 1)\n const sharePrice =\n trancheAssetsVal.muln(100000).div(trancheSupplyVal).toNumber() / 100000\n setSharePrice(sharePrice)\n }, [\n poolState.juniorTrancheAssets,\n poolState.seniorTrancheAssets,\n trancheMintAccount.supply,\n trancheType,\n ])\n\n const handleWithdrawSuccess = useCallback(\n (blockNumber: number) => {\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess],\n )\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleWithdrawSuccess}\n >\n {step === WIDGET_STEP.ConfirmTransfer && (\n <ConfirmTransfer\n poolUnderlyingToken={poolInfo.underlyingMint}\n withdrawableAmountFormatted={withdrawableAmountFormatted ?? '--'}\n sharePrice={sharePrice}\n />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer\n poolInfo={poolInfo}\n selectedTranche={trancheType}\n poolIsClosed={poolIsClosed}\n />\n )}\n {step === WIDGET_STEP.Done && withdrawnAmount && (\n <Done\n poolUnderlyingToken={poolInfo.underlyingMint}\n withdrawAmount={withdrawnAmount}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { TrancheType, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n poolUnderlyingToken,\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title={`Supply ${poolUnderlyingToken.symbol}`}>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Tranche Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n formatNumber,\n StellarPoolInfo,\n tokenDecimalUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport { StellarPoolState } from '@huma-finance/web-shared'\nimport React, { useMemo, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep, setSupplyAmount } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\n\ntype Props = {\n poolInfo: StellarPoolInfo\n poolState: StellarPoolState\n tokenBalance: number | null\n selectedTranche: TrancheType | undefined\n isUniTranche?: boolean\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolState,\n tokenBalance,\n selectedTranche,\n isUniTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { symbol, decimals } = poolInfo.underlyingToken\n const [currentAmount, setCurrentAmount] = useState<number | string>(0)\n const balance = tokenBalance ? BigInt(tokenBalance) : BigInt(0)\n\n const { juniorAvailableCapBN, seniorAvailableCapBN } = useMemo(() => {\n const {\n maxSeniorJuniorRatio,\n liquidityCap,\n seniorTrancheAssets,\n juniorTrancheAssets,\n } = poolState\n const juniorTrancheAssetsBN = BigInt(juniorTrancheAssets ?? 0)\n const seniorTrancheAssetsBN = BigInt(seniorTrancheAssets ?? 0)\n const totalDeployedBN = seniorTrancheAssetsBN + juniorTrancheAssetsBN\n let totalAvailableCapBN = BigInt(liquidityCap ?? 0) - totalDeployedBN\n totalAvailableCapBN =\n totalAvailableCapBN < 0 ? BigInt(0) : totalAvailableCapBN\n const maxSeniorAssetsBN =\n juniorTrancheAssetsBN * BigInt(maxSeniorJuniorRatio ?? 0)\n let seniorAvailableCapBN = maxSeniorAssetsBN - seniorTrancheAssetsBN\n seniorAvailableCapBN =\n seniorAvailableCapBN > totalAvailableCapBN\n ? totalAvailableCapBN\n : seniorAvailableCapBN\n\n return {\n juniorAvailableCapBN: totalAvailableCapBN - seniorAvailableCapBN,\n seniorAvailableCapBN,\n }\n }, [poolState])\n\n const handleChangeAmount = (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setSupplyAmount(Number(newAmount)))\n }\n\n const handleAction = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n const getTrancheCap = () => {\n if (selectedTranche === 'junior') {\n return juniorAvailableCapBN\n }\n return seniorAvailableCapBN\n }\n\n const getMinAmount = (): number => {\n const minAmount = poolState.minDepositAmount\n ? tokenDecimalUtils.formatUnits(\n BigInt(poolState.minDepositAmount),\n decimals,\n )\n : 0\n return Math.max(0, Math.ceil(Number(minAmount)))\n }\n\n const getMaxAmount = (): bigint => {\n const trancheCap = getTrancheCap()\n return balance > trancheCap ? trancheCap : balance\n }\n\n const getInfos = () => {\n const trancheCap = getTrancheCap()\n const currentAmountBN = tokenDecimalUtils.parseUnits(\n String(currentAmount),\n decimals,\n )\n const remainingCap = trancheCap - currentAmountBN\n\n if (remainingCap <= BigInt(0)) {\n return ['0 remaining capacity']\n }\n return [\n `${formatNumber(\n tokenDecimalUtils.formatUnits(remainingCap, decimals),\n )} remaining capacity`,\n ]\n }\n\n return (\n <InputAmountModal\n title='Enter Amount'\n subTitle={`Depositing to ${\n isUniTranche ? 'uni' : selectedTranche\n } tranche`}\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n minimumAmount={getMinAmount()}\n maxAmount={Number(\n tokenDecimalUtils.formatUnits(getMaxAmount(), decimals),\n )}\n maxAmountTitle={`${formatNumber(\n tokenDecimalUtils.formatUnits(balance, decimals),\n )} balance`}\n infos={getInfos()}\n handleAction={handleAction}\n actionText='SUPPLY'\n />\n )\n}\n","import React, { useEffect } from 'react'\nimport AssembledTransaction from '@stellar/stellar-sdk'\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { setError, setTxHash } from '../store/widgets.reducers'\nimport { LoadingModal } from './LoadingModal'\n\ntype Props = {\n tx?: typeof AssembledTransaction\n handleSuccess: () => void\n}\n\nexport function StellarTxSendModal({\n tx,\n handleSuccess,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n\n useEffect(() => {\n async function sendTx() {\n if (!tx) {\n return\n }\n\n try {\n const txResult = await tx.signAndSend()\n const { hash } = txResult.sendTransactionResponse\n dispatch(setTxHash(hash))\n handleSuccess()\n } catch (error: unknown) {\n const err = error as Error\n console.error(err)\n dispatch(setError({ errorMessage: err?.message || '' }))\n }\n }\n sendTx()\n }, [dispatch, handleSuccess, tx])\n\n return (\n <LoadingModal\n title='Transaction Pending'\n description='Waiting for confirmation...'\n />\n )\n}\n","import {\n STELLAR_CHAINS_INFO,\n StellarPoolInfo,\n tokenDecimalUtils,\n TrancheType,\n} from '@huma-finance/shared'\nimport AssembledTransaction from '@stellar/stellar-sdk'\nimport { Client as TrancheVaultClient } from '@huma-finance/soroban-tranche-vault'\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\n\nimport {\n getClientCommonParams,\n StellarConnectionContext,\n} from '@huma-finance/web-shared'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { StellarTxSendModal } from '../../StellarTxSendModal'\n\ntype Props = {\n poolInfo: StellarPoolInfo\n selectedTranche: TrancheType\n}\n\nexport function Transfer({\n poolInfo,\n selectedTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const [tx, setTx] = useState<typeof AssembledTransaction | null>(null)\n const { address: stellarAddress } = useContext(StellarConnectionContext)\n const { supplyAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.underlyingToken\n const supplyBigNumber = tokenDecimalUtils.parseUnits(\n String(supplyAmount),\n decimals,\n )\n\n const handleSuccess = useCallback(async () => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n useEffect(() => {\n async function getTx() {\n if (!stellarAddress) {\n return\n }\n\n const chainMetadata = STELLAR_CHAINS_INFO[poolInfo.chainId]\n const trancheVaultClient = new TrancheVaultClient({\n publicKey: stellarAddress,\n contractId:\n selectedTranche === 'senior'\n ? poolInfo.seniorTranche!\n : poolInfo.juniorTranche,\n ...getClientCommonParams(chainMetadata, stellarAddress),\n })\n const tx = await trancheVaultClient.deposit({\n lender: stellarAddress,\n assets: supplyBigNumber,\n })\n setTx(tx)\n }\n getTx()\n }, [poolInfo, selectedTranche, stellarAddress, supplyBigNumber])\n\n return <StellarTxSendModal tx={tx} handleSuccess={handleSuccess} />\n}\n","import { Box, Button } from '@mui/material'\nimport {\n getStellarExplorerUrl,\n openInNewTab,\n StellarChainEnum,\n} from '@huma-finance/shared'\nimport React from 'react'\n\ntype Props = {\n chainId: StellarChainEnum\n txHash: string\n}\n\nexport function StellarViewOnExplorer({\n chainId,\n txHash,\n}: Props): React.ReactElement | null {\n const link = getStellarExplorerUrl(chainId, txHash)\n\n if (!link) {\n return null\n }\n\n return (\n <Button fullWidth variant='outlined' onClick={() => openInNewTab(link)}>\n <Box component='span'>VIEW ON EXPLORER</Box>\n </Button>\n )\n}\n","import { Box, Button, css, Typography, useTheme } from '@mui/material'\nimport React, { useCallback } from 'react'\n\nimport { StellarChainEnum } from '@huma-finance/shared'\nimport { useAppDispatch } from '../hooks/useRedux'\nimport { resetState } from '../store/widgets.reducers'\nimport { CheckIcon } from './icons'\nimport { StellarViewOnExplorer } from './StellarViewOnExplorer'\n\ntype Props = {\n chainId: StellarChainEnum\n content: string[]\n subContent?: string[]\n buttonText?: string\n txHash?: string\n handleAction: () => void\n}\n\nexport function StellarTxDoneModal({\n chainId,\n content,\n subContent,\n txHash,\n buttonText,\n handleAction,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n wrapper: css`\n height: 518px;\n position: relative;\n `,\n header: css`\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(-0.5)};\n `,\n content: css`\n ${theme.cssMixins.colVCentered};\n font-weight: ${subContent ? 700 : 400};\n font-size: 18px;\n color: ${theme.palette.text.secondary};\n margin-top: ${theme.spacing(8)};\n text-align: center;\n `,\n subContent: css`\n ${theme.cssMixins.colVCentered};\n font-weight: 400;\n font-size: 18px;\n color: ${theme.palette.text.primary};\n margin-top: ${theme.spacing(2)};\n text-align: center;\n `,\n check: css`\n width: 100%;\n ${theme.cssMixins.rowHCentered};\n margin-top: ${theme.spacing(10)};\n `,\n bottomButtonGroup: css`\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n row-gap: ${theme.spacing(1)};\n column-gap: ${theme.spacing(1)};\n\n button {\n height: 40px;\n margin-top: ${theme.spacing(1)};\n }\n `,\n }\n\n const handleCloseModal = useCallback(() => {\n dispatch(resetState())\n handleAction()\n }, [dispatch, handleAction])\n\n return (\n <Box css={styles.wrapper}>\n <Typography variant='h6' css={styles.header}>\n Transaction Completed\n </Typography>\n <Box css={styles.check}>\n <CheckIcon />\n </Box>\n <Box css={styles.content}>\n {content.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n {subContent && (\n <Box css={styles.subContent}>\n {subContent.map((item) => (\n <Box sx={{ marginTop: theme.spacing(1) }} key={item}>\n {item}\n </Box>\n ))}\n </Box>\n )}\n <Box css={styles.bottomButtonGroup}>\n {txHash && chainId && (\n <StellarViewOnExplorer chainId={chainId} txHash={txHash} />\n )}\n <Button\n className='transaction-done-modal-close-btn'\n variant='contained'\n fullWidth\n onClick={handleCloseModal}\n >\n {!buttonText ? 'DONE' : buttonText}\n </Button>\n </Box>\n </Box>\n )\n}\n","import {\n CloseModalOptions,\n formatMoney,\n StellarPoolInfo,\n timeUtil,\n} from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\nimport {\n getLenderLockupDates,\n StellarPoolState,\n} from '@huma-finance/web-shared'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { StellarTxDoneModal } from '../../StellarTxDoneModal'\n\ntype Props = {\n poolInfo: StellarPoolInfo\n poolState: StellarPoolState\n handleAction: (options?: CloseModalOptions) => void\n}\n\nexport function Success({\n poolInfo,\n poolState,\n handleAction,\n}: Props): React.ReactElement {\n const { supplyAmount, txHash } = useAppSelector(selectWidgetState)\n const { symbol } = poolInfo.underlyingToken\n\n const content = [\n `You successfully supplied ${formatMoney(supplyAmount)} ${symbol}.`,\n ]\n\n const getSubContent = () => {\n const { lockupEndTimeUnix, withdrawTimeUnix } = getLenderLockupDates(\n poolState.withdrawalLockupPeriodDays ?? 0,\n )\n return [\n `You can begin submitting redemption requests on ${timeUtil.timestampToLL(\n lockupEndTimeUnix,\n )}, which can be redeemed starting ${timeUtil.timestampToLL(\n withdrawTimeUnix,\n )}.`,\n ]\n }\n\n const handleUserAction = useCallback(() => {\n handleAction({ isSuccess: true })\n }, [handleAction])\n\n return (\n <StellarTxDoneModal\n chainId={poolInfo.chainId}\n handleAction={handleUserAction}\n content={content}\n subContent={getSubContent()}\n txHash={txHash}\n buttonText='DONE'\n />\n )\n}\n","import {\n CloseModalOptions,\n STELLAR_CHAINS_INFO,\n StellarPoolInfo,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n StellarConnectionContext,\n StellarPoolState,\n useStellarLender,\n useStellarTokenBalance,\n} from '@huma-finance/web-shared'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseTranche } from './2-ChooseTranche'\nimport { ChooseAmount } from './3-ChooseAmount'\nimport { Transfer } from './4-Transfer'\nimport { Success } from './5-Success'\n\nexport interface Campaign {\n id: string\n campaignGroupId: string\n}\n\n/**\n * Lend pool supply props\n * @typedef {Object} StellarLendSupplyProps\n * @property {StellarPoolInfo} poolInfo The metadata of the pool.\n * @property {StellarPoolState} poolState The current state config of the pool.\n * @property {function((CloseModalOptions|undefined)):void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface StellarLendSupplyProps {\n poolInfo: StellarPoolInfo\n poolState: StellarPoolState\n handleClose: (options?: CloseModalOptions) => void\n handleSuccess?: () => void\n}\n\nexport function StellarLendSupply({\n poolInfo,\n poolState,\n handleClose,\n handleSuccess,\n}: StellarLendSupplyProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { isUniTranche } = poolState\n const { address: stellarAddress } = useContext(StellarConnectionContext)\n const {\n isLoadingStellarLender,\n isJuniorApprovedLender,\n isSeniorApprovedLender,\n } = useStellarLender(stellarAddress, poolInfo)\n const chainMetadata = STELLAR_CHAINS_INFO[poolInfo.chainId]\n const { tokenBalance, isLoadingTokenBalance } = useStellarTokenBalance(\n chainMetadata,\n poolInfo.underlyingToken.address,\n stellarAddress,\n )\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [selectedTranche, setSelectedTranche] = useState<TrancheType>()\n\n useEffect(() => {\n if (!step && !isLoadingStellarLender && !isLoadingTokenBalance) {\n // if (!isJuniorApprovedLender && !isSeniorApprovedLender) {\n // dispatch(setStep(WIDGET_STEP.Evaluation))\n // return\n // }\n\n if (isJuniorApprovedLender && !isSeniorApprovedLender) {\n setSelectedTranche('junior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (isSeniorApprovedLender && !isJuniorApprovedLender) {\n setSelectedTranche('senior')\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n return\n }\n\n if (isJuniorApprovedLender && isSeniorApprovedLender) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n }\n }\n }, [\n dispatch,\n handleClose,\n poolInfo,\n step,\n isLoadingStellarLender,\n isJuniorApprovedLender,\n isSeniorApprovedLender,\n isLoadingTokenBalance,\n ])\n\n if (isLoadingStellarLender || isLoadingTokenBalance) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Supply'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={`Supply ${poolInfo.underlyingToken.symbol}`}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n poolUnderlyingToken={poolInfo.underlyingToken}\n selectedTranche={selectedTranche}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolState={poolState}\n tokenBalance={tokenBalance}\n selectedTranche={selectedTranche}\n isUniTranche={isUniTranche}\n />\n )}\n {step === WIDGET_STEP.Transfer && selectedTranche && (\n <Transfer poolInfo={poolInfo} selectedTranche={selectedTranche} />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n poolState={poolState}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Supply'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { Box, css, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport { EAService, PoolInfoType } from '@huma-finance/shared'\nimport React, { useState } from 'react'\n\nimport { useAppDispatch } from '../../../../hooks/useRedux'\nimport { setError, setStep } from '../../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../../store/widgets.store'\nimport { CustomError } from '../../../../utilTypes'\nimport { BottomButton } from '../../../BottomButton'\nimport { ApproveLenderImg } from '../../../images'\nimport { LoadingModal } from '../../../LoadingModal'\nimport { WrapperModal } from '../../../WrapperModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleApproveSuccess: () => void\n}\n\nexport function EvaluationEA({\n poolInfo,\n handleApproveSuccess,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const { account, chainId } = useWeb3React()\n const [loading, setLoading] = useState(false)\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(8)};\n & > img {\n width: 144px;\n }\n `,\n description: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(10)};\n padding: ${theme.spacing(0, 2)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n `,\n }\n\n const approveLender = async () => {\n if (account) {\n try {\n setLoading(true)\n const payload = {\n poolAddress: poolInfo.pool,\n lenderWalletAddress: account,\n }\n await EAService.approveLender(payload, chainId!)\n handleApproveSuccess()\n setLoading(false)\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n } catch (e: unknown) {\n const error = e as CustomError\n setLoading(false)\n dispatch(setError({ errorMessage: error.message }))\n }\n }\n }\n\n if (!loading) {\n return (\n <WrapperModal\n title='Lender Approval'\n subTitle='This pool requires lender approval'\n >\n <Box css={styles.iconWrapper}>\n <img src={ApproveLenderImg} alt='approve-lender' />\n </Box>\n <Box css={styles.description} />\n <BottomButton variant='contained' onClick={approveLender}>\n GET APPROVED\n </BottomButton>\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title='Approval Pending'\n description='Waiting for approval confirmation...'\n />\n )\n}\n","import { css } from '@emotion/react'\nimport { Alert, Box, Snackbar, useTheme } from '@mui/material'\n\ntype Props = {\n open: boolean\n title: string\n message: string\n severity: 'success' | 'info' | 'warning' | 'error'\n autoHideDuration?: number\n onClose: () => void\n}\n\nexport function HumaSnackBar({\n open,\n autoHideDuration,\n title,\n message,\n severity,\n onClose,\n}: Props) {\n const theme = useTheme()\n\n const styles = {\n snackbar: css`\n margin-top: ${theme.spacing(10)};\n `,\n alert: css`\n max-width: 400px;\n padding: ${theme.spacing(2, 4, 2, 2)};\n border-radius: 16px;\n overflow: hidden;\n `,\n title: css`\n margin-bottom: ${theme.spacing(1)};\n font-size: 16px;\n font-weight: 700;\n `,\n message: css`\n font-size: 15px;\n font-weight: 400;\n `,\n }\n\n return (\n <Snackbar\n open={open}\n autoHideDuration={autoHideDuration ?? 6000}\n onClose={onClose}\n css={styles.snackbar}\n >\n <Alert\n onClose={onClose}\n title={title}\n severity={severity}\n css={styles.alert}\n >\n <Box css={styles.title}>{title}</Box>\n <Box css={styles.message}>{message}</Box>\n </Alert>\n </Snackbar>\n )\n}\n","import {\n CHAINS,\n checkIsDev,\n configUtil,\n DocSignatureStatus,\n IdentityService,\n PoolInfoType,\n timeUtil,\n VerificationStatusResult,\n} from '@huma-finance/shared'\nimport { useAuthErrorHandling, useParamsSearch } from '@huma-finance/web-shared'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { useAppDispatch } from '../../../../hooks/useRedux'\nimport { setError } from '../../../../store/widgets.reducers'\nimport { BottomButton } from '../../../BottomButton'\nimport { HumaSnackBar } from '../../../HumaSnackBar'\nimport { ApproveLenderImg } from '../../../images'\nimport { LoadingModal } from '../../../LoadingModal'\nimport { WrapperModal } from '../../../WrapperModal'\n\nconst KYCProvider = 'Securitize'\n\ntype KYCCopy = {\n title: string\n description: string\n buttonText?: string\n}\n\n// TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.\nconst JiaPoolCopies = {\n signInRequired: {\n title: 'Sign In',\n description:\n 'Please sign in to verify that you are the owner of the wallet.',\n },\n verifyIdentity: {\n title: 'Verify Identity',\n description: `This pool is only available to professional/accredited investors at the moment, with minimum investments of $10,000. Please complete identity verification and investor accreditation via ${KYCProvider}.`,\n buttonText: 'VERIFY MY IDENTITY',\n },\n emailSignatureLink: {\n title: 'Pool Documents',\n description: `By lending to this pool, you become a subscriber member of the Jia Pioneer Fund LLC. Please sign the LLC Agreement via DocuSign, securing your off-chain claim to the Fund's returns and collateral.`,\n buttonText: 'EMAIL DOCUSIGN LINK',\n },\n resendSignatureLink: {\n title: 'Resend Documents',\n description: `Please check your inbox for the LLC Agreement sent via DocuSign. If you haven't received it, check your spam folder or click below to resend.`,\n buttonText: 'RESEND DOCUSIGN LINK',\n },\n docUnderReview: {\n title: 'Under Review',\n description:\n 'Your documents are being reviewed and you will be notified upon approval. Thank you for your patience. Any questions? Email invest@jia.xyz.',\n buttonText: 'THANK YOU',\n },\n}\n\nconst LoadingCopiesByType: {\n [key: string]: {\n description: string\n }\n} = {\n verificationStatus: {\n description: `Checking your verification status...`,\n },\n sendDocSignatureLink: {\n description: `Sending signature link...`,\n },\n}\n\ntype Props = {\n poolInfo: PoolInfoType\n handleClose: () => void\n}\n\nexport function EvaluationKYC({\n poolInfo,\n handleClose,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n const isDev = checkIsDev()\n const { account, chainId } = useWeb3React()\n const { kycProvider, code, kycPool } = useParamsSearch()\n const { isWalletOwnershipVerified, setAuthError, authError } =\n useAuthErrorHandling(isDev)\n const [loadingType, setLoadingType] = useState<\n 'verificationStatus' | 'sendDocSignatureLink'\n >()\n const [kycCopy, setKYCCopy] = useState<KYCCopy>(JiaPoolCopies.verifyIdentity)\n const [KYCVerifyStatus, setKYCVerifyStatus] =\n useState<VerificationStatusResult>()\n const [docSignatureStatus, setDocSignatureStatus] =\n useState<DocSignatureStatus['status']>()\n const docSignatureCompleted = docSignatureStatus === 'completed'\n const [openSnackBar, setOpenSnackBar] = useState<boolean>(false)\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(8)};\n & > img {\n width: 144px;\n }\n `,\n description: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(10)};\n padding: ${theme.spacing(0, 2)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.secondary};\n `,\n }\n\n const { envelopeKey, envelopeLastQueryTimeKey, envelopeDocuSignStatusKey } =\n useMemo(() => {\n const envelopeKey = `${poolInfo.pool.toLowerCase()}-${account?.toLowerCase()}`\n const envelopeLastQueryTimeKey = `${envelopeKey}-last-query-time`\n const envelopeDocuSignStatusKey = `${envelopeKey}-docuSign-status`\n return {\n envelopeKey,\n envelopeLastQueryTimeKey,\n envelopeDocuSignStatusKey,\n }\n }, [account, poolInfo.pool])\n\n // DocuSign GET requests to any specific URL can be called not more often than once every 15 minutes.\n // https://developers.docusign.com/platform/api-guidelines/#:~:text=Polling,not%20once%20every%2010%20minutes\n const checkGetDocSignatureStatusIsAvailable = useCallback(() => {\n const lastQueryTime = localStorage.getItem(envelopeLastQueryTimeKey)\n if (!lastQueryTime) {\n return true\n }\n const lastQueryTimeNumber = Number(lastQueryTime)\n const now = timeUtil.getUnixTimestamp()\n const diff = now - lastQueryTimeNumber\n const fifteenMinutes = 15 * 60\n return diff > fifteenMinutes\n }, [envelopeLastQueryTimeKey])\n\n useEffect(() => {\n setKYCCopy(JiaPoolCopies.verifyIdentity)\n const docuSignStatus = localStorage.getItem(envelopeDocuSignStatusKey)\n setDocSignatureStatus(docuSignStatus as DocSignatureStatus['status'])\n if (docuSignStatus === 'completed') {\n setKYCCopy(JiaPoolCopies.docUnderReview)\n return\n }\n\n const fetchData = async () => {\n try {\n if (kycProvider && kycPool && account && chainId) {\n setLoadingType('verificationStatus')\n await IdentityService.onboard(\n account,\n code as string,\n kycPool as string,\n chainId,\n isDev,\n )\n }\n } catch (e) {\n try {\n setAuthError(e)\n setKYCCopy(JiaPoolCopies.signInRequired)\n } catch (e) {\n // The repeated call will throw an error of 401, so we can ignore it.\n console.log(e)\n }\n }\n\n try {\n if (account && chainId) {\n setLoadingType('verificationStatus')\n const verificationStatus =\n await IdentityService.getVerificationStatus(\n account,\n poolInfo.pool,\n chainId,\n isDev,\n )\n setKYCVerifyStatus(verificationStatus)\n if (verificationStatus.isVerified) {\n const envelopeId = localStorage.getItem(envelopeKey)\n if (!envelopeId) {\n setKYCCopy(JiaPoolCopies.emailSignatureLink)\n } else if (!checkGetDocSignatureStatusIsAvailable()) {\n setKYCCopy(JiaPoolCopies.resendSignatureLink)\n } else {\n const { status } = await IdentityService.getDocSignatureStatus(\n envelopeId,\n chainId,\n isDev,\n )\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n localStorage.setItem(envelopeDocuSignStatusKey, status)\n setDocSignatureStatus(status)\n if (status === 'completed') {\n setKYCCopy(JiaPoolCopies.docUnderReview)\n // For voided and declined status, we need to send a new link\n } else if (['voided', 'declined'].includes(status)) {\n localStorage.removeItem(envelopeKey)\n localStorage.removeItem(envelopeLastQueryTimeKey)\n setKYCCopy(JiaPoolCopies.emailSignatureLink)\n } else {\n setKYCCopy(JiaPoolCopies.resendSignatureLink)\n }\n }\n }\n }\n } catch (e: unknown) {\n try {\n setAuthError(e)\n setKYCCopy(JiaPoolCopies.signInRequired)\n } catch (e) {\n console.error(e)\n dispatch(\n setError({\n errorMessage: 'Something went wrong, please try again later.',\n }),\n )\n }\n } finally {\n setLoadingType(undefined)\n }\n }\n fetchData()\n }, [\n account,\n chainId,\n checkGetDocSignatureStatusIsAvailable,\n code,\n dispatch,\n envelopeDocuSignStatusKey,\n envelopeKey,\n envelopeLastQueryTimeKey,\n isDev,\n kycPool,\n kycProvider,\n poolInfo.pool,\n setAuthError,\n isWalletOwnershipVerified,\n ])\n\n useEffect(() => {\n if (\n authError &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [4001, 'ACTION_REJECTED'].includes((authError as any).code)\n ) {\n dispatch(\n setError({\n errorMessage: 'User has rejected the transaction.',\n }),\n )\n }\n }, [authError, dispatch])\n\n const approveLender = async () => {\n if (docSignatureCompleted) {\n handleClose()\n return\n }\n\n const { isNotOnboarded, isVerified } = KYCVerifyStatus || {}\n\n if (!isVerified) {\n const issuerId = CHAINS[chainId!].isTestnet\n ? '53a66b32-583e-40e7-ba90-baf516d2cadd'\n : '5557baf5-d3c2-4c80-b522-c05a11c6e586'\n const baseUrl = configUtil.getKYCProviderBaseUrl(KYCProvider, chainId!)\n const originUrl = window.location.href.split('?')[0]\n const redirectUrl = `${originUrl}?poolName=${poolInfo.poolName}&chainId=${poolInfo.chainId}&poolType=${poolInfo.poolType}&kycProvider=${KYCProvider}&kycPool=${poolInfo.pool}`\n const providerAuthorizeUrl = `${baseUrl}/#/authorize?issuerId=${issuerId}&scope=details&details=verification&redirectUrl=${redirectUrl}`\n window.location.href = isNotOnboarded ? providerAuthorizeUrl : baseUrl\n } else {\n const envelopeId = localStorage.getItem(envelopeKey)\n try {\n setLoadingType('sendDocSignatureLink')\n if (!envelopeId) {\n const { envelopeId } = await IdentityService.requestDocSignature(\n account!,\n chainId!,\n isDev,\n )\n localStorage.setItem(envelopeKey, envelopeId)\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n setOpenSnackBar(true)\n setKYCCopy(JiaPoolCopies.resendSignatureLink)\n } else {\n await IdentityService.resendDocSignatureLink(\n envelopeId,\n chainId!,\n isDev,\n )\n setOpenSnackBar(true)\n }\n } catch (e: unknown) {\n try {\n const { envelopeId } = await IdentityService.requestDocSignature(\n account!,\n chainId!,\n isDev,\n )\n localStorage.setItem(envelopeKey, envelopeId)\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n setOpenSnackBar(true)\n setKYCCopy(JiaPoolCopies.resendSignatureLink)\n } catch (e) {\n setAuthError(e)\n setKYCCopy(JiaPoolCopies.signInRequired)\n }\n } finally {\n setLoadingType(undefined)\n }\n }\n }\n\n const getEmailLinkSentSnackbar = () => (\n <HumaSnackBar\n open={openSnackBar}\n title='Signature Link Sent'\n message='The secure signature session link has been sent to you via email.'\n severity='success'\n onClose={() => setOpenSnackBar(false)}\n />\n )\n\n if (!loadingType) {\n return (\n <WrapperModal title={kycCopy.title}>\n <Box css={styles.iconWrapper}>\n <img src={ApproveLenderImg} alt='approve-lender' />\n </Box>\n <Box css={styles.description}>{kycCopy.description}</Box>\n {Boolean(kycCopy.buttonText) && (\n <BottomButton variant='contained' onClick={approveLender}>\n {kycCopy.buttonText}\n </BottomButton>\n )}\n {getEmailLinkSentSnackbar()}\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title='Lender Approval'\n description={LoadingCopiesByType[loadingType].description}\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { EvaluationEA } from './EvaluationEA'\nimport { EvaluationKYC } from './EvaluationKYC'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleClose: () => void\n handleApproveSuccess: () => void\n}\n\nexport function Evaluation({\n poolInfo,\n handleClose,\n handleApproveSuccess,\n}: Props): React.ReactElement | null {\n const lenderApprovalProvider = poolInfo.extra?.lenderApprovalProvider\n const isKYC = lenderApprovalProvider?.type === 'KYC'\n\n if (isKYC) {\n return <EvaluationKYC poolInfo={poolInfo} handleClose={handleClose} />\n }\n\n return (\n <EvaluationEA\n poolInfo={poolInfo}\n handleApproveSuccess={handleApproveSuccess}\n />\n )\n}\n","import { BigNumber } from 'ethers'\nimport { PoolInfoType, timeUtil, upScale } from '@huma-finance/shared'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep, setSupplyAmount } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\nimport { getIcon } from '../../icons'\n\ntype Props = {\n allowance: BigNumber\n withdrawlLockoutSeconds: number | undefined\n underlyingTokenBalance: string\n poolInfo: PoolInfoType\n}\n\nexport function ChooseAmount({\n allowance,\n withdrawlLockoutSeconds,\n underlyingTokenBalance,\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { poolUnderlyingToken } = poolInfo\n const { symbol, decimals } = poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState(0)\n const depositAmount = upScale<BigNumber>(\n BigNumber.from(currentAmount),\n decimals,\n )\n const needApprove = depositAmount.gt(allowance)\n const withdrawlLockoutDays = timeUtil.secondsToDays(withdrawlLockoutSeconds)\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setSupplyAmount(newAmount))\n },\n [dispatch],\n )\n\n const handleAction = useCallback(() => {\n const step = needApprove\n ? WIDGET_STEP.ApproveAllowance\n : WIDGET_STEP.Transfer\n dispatch(setStep(step))\n }, [dispatch, needApprove])\n\n return (\n <ChooseAmountModal\n title={`Supply ${symbol}`}\n description1='Choose Amount'\n description2={`Depositors need to wait for ${withdrawlLockoutDays.toFixed(\n 0,\n )} days before withdrawal`}\n sliderMax={Number(underlyingTokenBalance)}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText={needApprove ? 'approve allowance' : 'supply'}\n type='input'\n tokenIcon={getIcon(poolInfo.poolUnderlyingToken.icon)!}\n hideTerms\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function ApproveAllowance({\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal poolInfo={poolInfo} handleSuccess={handleSuccess} />\n )\n}\n","import { PoolInfoType, upScale } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { BigNumber } from 'ethers'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { supplyAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.poolUnderlyingToken\n const supplyBigNumber = upScale<BigNumber>(\n BigNumber.from(supplyAmount!),\n decimals,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n method='deposit'\n params={[supplyBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport {\n decodeLogs,\n downScale,\n formatMoney,\n PoolInfoType,\n TRANSFER_ABI,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport React, { useEffect, useState } from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleAction: () => void\n hasNextStep: boolean\n}\n\nexport function Success({\n poolInfo,\n handleAction,\n hasNextStep,\n}: Props): React.ReactElement {\n const { account } = useWeb3React()\n const { poolUnderlyingToken } = poolInfo\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const { symbol, decimals, address } = poolUnderlyingToken\n const [supplyAmount, setSupplyAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (txReceipt) {\n const events = decodeLogs(txReceipt.logs, TRANSFER_ABI)\n if (events) {\n events.forEach((event) => {\n const { from, to, value } = event.args\n if (\n from.toLowerCase() === account?.toLowerCase() &&\n to.toLowerCase() === poolInfo.pool.toLowerCase()\n ) {\n setSupplyAmount(downScale(value.toString(), decimals))\n }\n })\n }\n }\n }, [account, address, decimals, poolInfo.pool, txReceipt])\n\n const content = [\n `You successfully supplied ${formatMoney(supplyAmount)} ${symbol}.`,\n ]\n\n return (\n <TxDoneModal\n handleAction={handleAction}\n content={content}\n buttonText={hasNextStep ? \"WHAT'S NEXT\" : undefined}\n />\n )\n}\n","import React from 'react'\nimport { NotifiSubscriptionModal } from '../../Notifi/NotifiSubscriptionModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Notifications({ handleAction }: Props): React.ReactElement {\n return <NotifiSubscriptionModal handleSuccess={handleAction} />\n}\n","import { downScale, POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport {\n useLenderApproved,\n useLenderPosition,\n usePoolAllowance,\n usePoolInfo,\n usePoolUnderlyingTokenBalance,\n useWithdrawlLockoutInSeconds,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport {\n useIsFirstTimeNotifiUser,\n useDoesChainSupportNotifi,\n} from '../../../hooks/useNotifi'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Evaluation } from './1-Evaluation'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { ApproveAllowance } from './3-ApproveAllowance'\nimport { Transfer } from './4-Transfer'\nimport { Success } from './5-Success'\nimport { Notifications } from './6-Notifications'\n\n/**\n * Lend pool supply props\n * @typedef {Object} LendSupplyProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface LendSupplyProps {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function LendSupply({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n handleClose,\n handleSuccess,\n}: LendSupplyProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { decimals } = poolInfo?.poolUnderlyingToken || {}\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const { allowance } = usePoolAllowance(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const { isFirstTimeNotifiUser } = useIsFirstTimeNotifiUser(account, chainId)\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n const [lenderApproved, refreshLenderApproved] = useLenderApproved(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const [, refreshLenderPosition] = useLenderPosition(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const withdrawlLockoutSeconds = useWithdrawlLockoutInSeconds(\n poolName,\n poolType,\n chainId,\n provider,\n )\n const underlyingTokenBalance = usePoolUnderlyingTokenBalance(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const balanceWithoutDecimals = downScale(underlyingTokenBalance, decimals)\n\n useEffect(() => {\n if (!step && lenderApproved !== undefined) {\n const nextStep = lenderApproved\n ? WIDGET_STEP.ChooseAmount\n : WIDGET_STEP.Evaluation\n dispatch(setStep(nextStep))\n }\n }, [dispatch, lenderApproved, step])\n\n const handleApproveSuccess = useCallback(() => {\n refreshLenderApproved()\n }, [refreshLenderApproved])\n\n const handleSupplySuccess = useCallback(\n (blockNumber: number) => {\n refreshLenderPosition()\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess, refreshLenderPosition],\n )\n\n const setupNotificationsOrClose = useCallback(() => {\n if (isFirstTimeNotifiUser && notifiChainSupported) {\n dispatch(setStep(WIDGET_STEP.Notifications))\n } else {\n handleClose()\n }\n }, [dispatch, handleClose, isFirstTimeNotifiUser, notifiChainSupported])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={lenderApproved === undefined}\n loadingTitle={`Supply ${poolInfo.poolUnderlyingToken.symbol}`}\n handleClose={handleClose}\n handleSuccess={handleSupplySuccess}\n >\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation\n poolInfo={poolInfo}\n handleClose={handleClose}\n handleApproveSuccess={handleApproveSuccess}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n allowance={allowance}\n underlyingTokenBalance={balanceWithoutDecimals}\n withdrawlLockoutSeconds={withdrawlLockoutSeconds}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n handleAction={setupNotificationsOrClose}\n hasNextStep={isFirstTimeNotifiUser}\n />\n )}\n {step === WIDGET_STEP.Notifications && (\n <Notifications handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Supply'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n configUtil,\n TrancheType,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Link,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n selectedTranche: TrancheType | undefined\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ChooseTranche({\n poolUnderlyingToken,\n selectedTranche,\n changeTranche,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: TrancheType\n }[] = [\n {\n label: 'Senior',\n value: 'senior',\n },\n {\n label: 'Junior',\n value: 'junior',\n },\n ]\n\n return (\n <WrapperModal title={`Supply ${poolUnderlyingToken.symbol}`}>\n <FormControl>\n <FormLabel css={styles.subTitle}>\n Select Tranche Type (Read more{' '}\n <Link href={configUtil.trancheLink} target='_blank' color='inherit'>\n here\n </Link>\n )\n </FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) => changeTranche(e.target.value as TrancheType)}\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={!selectedTranche}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n CHAINS,\n checkIsDev,\n configUtil,\n DocSignatureStatus,\n IdentityService,\n KYC_PROVIDER,\n KYCCopy,\n PoolInfoV2,\n timeUtil,\n VerificationStatusResult,\n} from '@huma-finance/shared'\nimport { useAuthErrorHandling, useParamsSearch } from '@huma-finance/web-shared'\nimport { Box, css, useTheme } from '@mui/material'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setError } from '../../../store/widgets.reducers'\nimport { BottomButton } from '../../BottomButton'\nimport { HumaSnackBar } from '../../HumaSnackBar'\nimport { LoadingModal } from '../../LoadingModal'\nimport { WrapperModal } from '../../WrapperModal'\nimport { ApproveLenderImg } from '../../images'\n\nconst LoadingCopiesByType: {\n [key: string]: {\n description: string\n }\n} = {\n verificationStatus: {\n description: `Checking your verification status...`,\n },\n sendDocSignatureLink: {\n description: `Sending signature link...`,\n },\n}\n\ntype Props = {\n poolInfo: PoolInfoV2\n handleClose: () => void\n}\n\nexport function SecuritizeEvaluation({\n poolInfo,\n handleClose,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const isDev = checkIsDev()\n const dispatch = useAppDispatch()\n const { account, chainId } = useWeb3React()\n const { kycProvider, code, kycPool } = useParamsSearch()\n const { isWalletOwnershipVerified, setAuthError, authError } =\n useAuthErrorHandling(isDev)\n const [loadingType, setLoadingType] = useState<\n 'verificationStatus' | 'sendDocSignatureLink'\n >()\n const KYCCopies = poolInfo.KYC!.Securitize!\n const [kycCopy, setKYCCopy] = useState<KYCCopy>(KYCCopies.verifyIdentity)\n const [KYCVerifyStatus, setKYCVerifyStatus] =\n useState<VerificationStatusResult>()\n const [docSignatureStatus, setDocSignatureStatus] =\n useState<DocSignatureStatus['status']>()\n const docSignatureCompleted = docSignatureStatus === 'completed'\n const [openSnackBar, setOpenSnackBar] = useState<boolean>(false)\n\n const { envelopeKey, envelopeLastQueryTimeKey, envelopeDocuSignStatusKey } =\n useMemo(() => {\n const envelopeKey = `${poolInfo.pool.toLowerCase()}-${account?.toLowerCase()}`\n const envelopeLastQueryTimeKey = `${envelopeKey}-last-query-time`\n const envelopeDocuSignStatusKey = `${envelopeKey}-docuSign-status`\n return {\n envelopeKey,\n envelopeLastQueryTimeKey,\n envelopeDocuSignStatusKey,\n }\n }, [account, poolInfo.pool])\n\n // DocuSign GET requests to any specific URL can be called not more often than once every 15 minutes.\n // https://developers.docusign.com/platform/api-guidelines/#:~:text=Polling,not%20once%20every%2010%20minutes\n const checkGetDocSignatureStatusIsAvailable = useCallback(() => {\n const lastQueryTime = localStorage.getItem(envelopeLastQueryTimeKey)\n if (!lastQueryTime) {\n return true\n }\n const lastQueryTimeNumber = Number(lastQueryTime)\n const now = timeUtil.getUnixTimestamp()\n const diff = now - lastQueryTimeNumber\n const fifteenMinutes = 15 * 60\n return diff > fifteenMinutes\n }, [envelopeLastQueryTimeKey])\n\n useEffect(() => {\n setKYCCopy(KYCCopies.verifyIdentity)\n const docuSignStatus = localStorage.getItem(envelopeDocuSignStatusKey)\n setDocSignatureStatus(docuSignStatus as DocSignatureStatus['status'])\n if (docuSignStatus === 'completed') {\n setKYCCopy(KYCCopies.docUnderReview!)\n return\n }\n\n const fetchData = async () => {\n try {\n if (kycProvider && kycPool && account && chainId) {\n setLoadingType('verificationStatus')\n await IdentityService.onboard(\n account,\n code as string,\n kycPool as string,\n chainId,\n isDev,\n )\n }\n } catch (e) {\n try {\n setAuthError(e)\n setKYCCopy(KYCCopies.signInRequired)\n } catch (e) {\n // The repeated call will throw an error of 401, so we can ignore it.\n console.log(e)\n }\n }\n\n try {\n if (account && chainId) {\n setLoadingType('verificationStatus')\n const verificationStatus =\n await IdentityService.getVerificationStatus(\n account,\n poolInfo.pool,\n chainId,\n isDev,\n )\n setKYCVerifyStatus(verificationStatus)\n if (verificationStatus.isVerified) {\n const envelopeId = localStorage.getItem(envelopeKey)\n if (!envelopeId) {\n setKYCCopy(KYCCopies.emailSignatureLink!)\n } else if (!checkGetDocSignatureStatusIsAvailable()) {\n setKYCCopy(KYCCopies.resendSignatureLink!)\n } else {\n const { status } = await IdentityService.getDocSignatureStatus(\n envelopeId,\n chainId,\n isDev,\n )\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n localStorage.setItem(envelopeDocuSignStatusKey, status)\n setDocSignatureStatus(status)\n if (status === 'completed') {\n setKYCCopy(KYCCopies.docUnderReview!)\n // For voided and declined status, we need to send a new link\n } else if (['voided', 'declined'].includes(status)) {\n localStorage.removeItem(envelopeKey)\n localStorage.removeItem(envelopeLastQueryTimeKey)\n setKYCCopy(KYCCopies.emailSignatureLink!)\n } else {\n setKYCCopy(KYCCopies.resendSignatureLink!)\n }\n }\n } else {\n setKYCCopy(KYCCopies.verifyIdentity)\n }\n }\n } catch (e: unknown) {\n try {\n setAuthError(e)\n setKYCCopy(KYCCopies.signInRequired)\n } catch (e) {\n console.error(e)\n dispatch(\n setError({\n errorMessage: 'Something went wrong, please try again later.',\n }),\n )\n }\n } finally {\n setLoadingType(undefined)\n }\n }\n fetchData()\n }, [\n KYCCopies.docUnderReview,\n KYCCopies.emailSignatureLink,\n KYCCopies.resendSignatureLink,\n KYCCopies.signInRequired,\n KYCCopies.verifyIdentity,\n account,\n chainId,\n checkGetDocSignatureStatusIsAvailable,\n code,\n dispatch,\n envelopeDocuSignStatusKey,\n envelopeKey,\n envelopeLastQueryTimeKey,\n isDev,\n kycPool,\n kycProvider,\n poolInfo.pool,\n setAuthError,\n isWalletOwnershipVerified,\n ])\n\n useEffect(() => {\n if (\n authError &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [4001, 'ACTION_REJECTED'].includes((authError as any).code)\n ) {\n dispatch(\n setError({\n errorMessage: 'User has rejected the transaction.',\n }),\n )\n }\n }, [authError, dispatch])\n\n const approveLender = async () => {\n if (docSignatureCompleted) {\n handleClose()\n return\n }\n\n const { isNotOnboarded, isVerified } = KYCVerifyStatus || {}\n\n if (!isVerified) {\n const issuerId = CHAINS[chainId!].isTestnet\n ? '53a66b32-583e-40e7-ba90-baf516d2cadd'\n : '5557baf5-d3c2-4c80-b522-c05a11c6e586'\n const baseUrl = configUtil.getKYCProviderBaseUrl(\n KYC_PROVIDER.Securitize,\n chainId!,\n )\n const originUrl = window.location.href.split('?')[0]\n const redirectUrl = `${originUrl}?poolName=${poolInfo.poolName}&kycProvider=${KYC_PROVIDER.Securitize}&kycPool=${poolInfo.pool}`\n const providerAuthorizeUrl = `${baseUrl}/#/authorize?issuerId=${issuerId}&scope=details&details=verification&redirectUrl=${redirectUrl}`\n window.location.href = isNotOnboarded ? providerAuthorizeUrl : baseUrl\n } else {\n const envelopeId = localStorage.getItem(envelopeKey)\n try {\n setLoadingType('sendDocSignatureLink')\n if (!envelopeId) {\n const { envelopeId } = await IdentityService.requestDocSignature(\n account!,\n chainId!,\n isDev,\n )\n localStorage.setItem(envelopeKey, envelopeId)\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n setOpenSnackBar(true)\n setKYCCopy(KYCCopies.resendSignatureLink)\n } else {\n await IdentityService.resendDocSignatureLink(\n envelopeId,\n chainId!,\n isDev,\n )\n setOpenSnackBar(true)\n }\n } catch (e: unknown) {\n try {\n const { envelopeId } = await IdentityService.requestDocSignature(\n account!,\n chainId!,\n isDev,\n )\n localStorage.setItem(envelopeKey, envelopeId)\n localStorage.setItem(\n envelopeLastQueryTimeKey,\n String(timeUtil.getUnixTimestamp()),\n )\n setOpenSnackBar(true)\n setKYCCopy(KYCCopies.resendSignatureLink)\n } catch (e) {\n setAuthError(e)\n setKYCCopy(KYCCopies.signInRequired)\n }\n } finally {\n setLoadingType(undefined)\n }\n }\n }\n\n const getEmailLinkSentSnackbar = () => (\n <HumaSnackBar\n open={openSnackBar}\n title='Signature Link Sent'\n message='The secure signature session link has been sent to you via email.'\n severity='success'\n onClose={() => setOpenSnackBar(false)}\n />\n )\n\n const styles = {\n iconWrapper: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(8)};\n & > img {\n width: 144px;\n }\n `,\n description: css`\n ${theme.cssMixins.rowCentered};\n margin-top: ${theme.spacing(10)};\n padding: ${theme.spacing(0, 2)};\n font-weight: 400;\n font-size: 16px;\n color: ${theme.palette.text.primary};\n `,\n }\n\n if (!loadingType) {\n return (\n <WrapperModal title={kycCopy.title}>\n <Box css={styles.iconWrapper}>\n <img src={ApproveLenderImg} alt='approve-lender' />\n </Box>\n <Box css={styles.description}>{kycCopy.description}</Box>\n {Boolean(kycCopy.buttonText) && (\n <BottomButton variant='contained' onClick={approveLender}>\n {kycCopy.buttonText}\n </BottomButton>\n )}\n {getEmailLinkSentSnackbar()}\n </WrapperModal>\n )\n }\n\n return (\n <LoadingModal\n title='Lender Approval'\n description={LoadingCopiesByType[loadingType].description}\n />\n )\n}\n","import {\n CHAIN_TYPE,\n CloseModalOptions,\n NETWORK_TYPE,\n PoolInfoV2,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { Campaign } from '.'\nimport { PersonaEvaluation } from '../components/PersonaEvaluation'\nimport { SecuritizeEvaluation } from '../components/SecuritizeEvaluation'\n\ntype Props = {\n poolInfo: PoolInfoV2\n networkType: NETWORK_TYPE\n campaign?: Campaign\n documentHash: string\n handleClose: (options?: CloseModalOptions) => void\n}\n\nexport function Evaluation({\n poolInfo,\n networkType,\n campaign,\n documentHash,\n handleClose,\n}: Props): React.ReactElement | null {\n if (poolInfo.KYC?.Securitize) {\n return (\n <SecuritizeEvaluation poolInfo={poolInfo} handleClose={handleClose} />\n )\n }\n if (poolInfo.KYC?.Persona) {\n return (\n <PersonaEvaluation\n poolInfo={poolInfo}\n handleClose={handleClose}\n campaign={campaign}\n networkType={networkType}\n chainType={CHAIN_TYPE.EVM}\n documentHash={documentHash}\n />\n )\n }\n\n return null\n}\n","import {\n CHAIN_TYPE,\n getEvmNetworkType,\n PoolInfoV2,\n TrancheType,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { ApproveLenderBase } from '../components/ApproveLenderBase'\n\ntype Props = {\n poolInfo: PoolInfoV2\n isUniTranche: boolean\n documentHash: string\n changeTranche: (tranche: TrancheType) => void\n}\n\nexport function ApproveLender({\n poolInfo,\n isUniTranche,\n documentHash,\n changeTranche,\n}: Props): React.ReactElement {\n return (\n <ApproveLenderBase\n juniorTrancheVault={poolInfo.juniorTrancheVault}\n seniorTrancheVault={poolInfo.seniorTrancheVault}\n isUniTranche={isUniTranche}\n documentHash={documentHash}\n chainType={CHAIN_TYPE.EVM}\n networkType={getEvmNetworkType(poolInfo.chainId)}\n changeTranche={changeTranche}\n />\n )\n}\n","import { formatNumber, PoolInfoV2, TrancheType } from '@huma-finance/shared'\nimport { LPConfigStructOutput } from '@huma-finance/shared/src/v2/abis/types/PoolConfig'\nimport {\n usePoolSafeAllowanceV2,\n usePoolUnderlyingTokenBalanceV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, ethers } from 'ethers'\nimport React, { useMemo, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep, setSupplyAmount } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { InputAmountModal } from '../../InputAmountModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n lpConfig: LPConfigStructOutput\n juniorAssets: BigNumber\n seniorAssets: BigNumber\n selectedTranche: TrancheType | undefined\n isUniTranche: boolean\n}\n\nexport function ChooseAmount({\n poolInfo,\n lpConfig,\n juniorAssets: juniorAssetsBN,\n seniorAssets: seniorAssetsBN,\n selectedTranche,\n isUniTranche,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { symbol, decimals } = poolInfo.poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState<number | string>(0)\n const { allowance = BigNumber.from(0) } = usePoolSafeAllowanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n const [balance] = usePoolUnderlyingTokenBalanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n\n const { juniorAvailableCapBN, seniorAvailableCapBN } = useMemo(() => {\n const { maxSeniorJuniorRatio, liquidityCap: liquidityCapBN } = lpConfig\n const totalDeployedBN = seniorAssetsBN.add(juniorAssetsBN)\n let totalAvailableCapBN = liquidityCapBN.sub(totalDeployedBN)\n totalAvailableCapBN = totalAvailableCapBN.lt(0)\n ? BigNumber.from(0)\n : totalAvailableCapBN\n const maxSeniorAssetsBN = juniorAssetsBN.mul(maxSeniorJuniorRatio)\n let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorAssetsBN)\n seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN)\n ? totalAvailableCapBN\n : seniorAvailableCapBN\n\n return {\n juniorAvailableCapBN: totalAvailableCapBN,\n seniorAvailableCapBN,\n }\n }, [juniorAssetsBN, lpConfig, seniorAssetsBN])\n\n const handleChangeAmount = (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setSupplyAmount(Number(newAmount)))\n }\n\n const handleAction = () => {\n const currentAmountBN = ethers.utils.parseUnits(\n String(currentAmount),\n decimals,\n )\n const step = currentAmountBN.gt(allowance)\n ? WIDGET_STEP.ApproveAllowance\n : WIDGET_STEP.Transfer\n dispatch(setStep(step))\n }\n\n const getTrancheCap = () => {\n if (selectedTranche === 'junior') {\n return juniorAvailableCapBN\n }\n return seniorAvailableCapBN\n }\n\n const getMaxAmount = () => {\n const trancheCap = getTrancheCap()\n return balance.gt(trancheCap) ? trancheCap : balance\n }\n\n const getInfos = () => {\n const trancheCap = getTrancheCap()\n const currentAmountBN = ethers.utils.parseUnits(\n String(currentAmount),\n decimals,\n )\n const remainingCap = trancheCap.sub(currentAmountBN)\n\n if (remainingCap.lt(0)) {\n return ['0 remaining capacity']\n }\n return [\n `${formatNumber(\n ethers.utils.formatUnits(remainingCap, decimals),\n )} remaining capacity`,\n ]\n }\n\n return (\n <InputAmountModal\n title='Enter Amount'\n subTitle={`Depositing to ${\n isUniTranche ? 'uni' : selectedTranche\n } tranche`}\n tokenSymbol={symbol}\n currentAmount={currentAmount}\n handleChangeAmount={handleChangeAmount}\n maxAmount={Number(ethers.utils.formatUnits(getMaxAmount(), decimals))}\n maxAmountTitle={`${formatNumber(\n ethers.utils.formatUnits(balance, decimals),\n )} balance`}\n infos={getInfos()}\n handleAction={handleAction}\n actionText='SUPPLY'\n />\n )\n}\n","import { PoolInfoV2 } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n}\n\nexport function ApproveAllowance({\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const spender = poolInfo.poolSafe\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n poolUnderlyingToken={poolInfo.poolUnderlyingToken}\n spender={spender}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n CampaignService,\n checkIsDev,\n NETWORK_TYPE,\n PoolInfoV2,\n TrancheType,\n} from '@huma-finance/shared'\nimport { useTrancheVaultContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { ethers } from 'ethers'\nimport React, { useCallback } from 'react'\n\nimport { Campaign } from '.'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setPointsAccumulated, setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n trancheType: TrancheType\n networkType: NETWORK_TYPE\n campaign?: Campaign\n}\n\nexport function Transfer({\n poolInfo,\n trancheType,\n networkType,\n campaign,\n}: Props): React.ReactElement | null {\n const isDev = checkIsDev()\n const dispatch = useAppDispatch()\n const { account, chainId, provider } = useWeb3React()\n const { supplyAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolInfo.poolUnderlyingToken\n const supplyBigNumber = ethers.utils.parseUnits(\n String(supplyAmount),\n decimals,\n )\n const trancheVaultContract = useTrancheVaultContractV2(\n poolInfo.poolName,\n trancheType,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(\n async (options?: { txHash: string }) => {\n if (campaign && options?.txHash) {\n try {\n const result = await CampaignService.updateHumaAccountPoints(\n account!,\n options.txHash,\n chainId!,\n networkType,\n isDev,\n )\n dispatch(setPointsAccumulated(result.pointsAccumulated))\n } catch (error) {\n console.error('Failed to update wallet points', error)\n }\n }\n dispatch(setStep(WIDGET_STEP.Done))\n },\n [account, campaign, chainId, dispatch, isDev, networkType],\n )\n\n if (!trancheVaultContract || !account) {\n return null\n }\n\n return (\n <TxSendModalV2\n contract={trancheVaultContract}\n method='deposit'\n params={[supplyBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import {\n decodeLogs,\n downScale,\n formatMoney,\n PoolInfoV2,\n timeUtil,\n TRANSFER_ABI,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAtom } from 'jotai'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport dayjs from 'dayjs'\nimport { Campaign } from '.'\nimport {\n useDoesChainSupportNotifi,\n useIsFirstTimeNotifiUser,\n} from '../../../hooks/useNotifi'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n lpConfig: { withdrawalLockoutPeriodInDays: number }\n campaign?: Campaign\n handleAction: () => void\n}\n\nexport function Success({\n poolInfo,\n lpConfig,\n campaign,\n handleAction,\n}: Props): React.ReactElement {\n const dispatch = useDispatch()\n const { account, chainId } = useWeb3React()\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const { symbol, decimals, address } = poolInfo.poolUnderlyingToken\n const [supplyAmount, setSupplyAmount] = useState<string | undefined>()\n const { isFirstTimeNotifiUser } = useIsFirstTimeNotifiUser(account, chainId)\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n const hasNextStep = isFirstTimeNotifiUser\n\n useEffect(() => {\n if (txReceipt) {\n const events = decodeLogs(txReceipt.logs, TRANSFER_ABI)\n if (events) {\n events.forEach((event) => {\n const { from, to, value } = event.args\n if (\n from.toLowerCase() === account?.toLowerCase() &&\n to.toLowerCase() === poolInfo.poolSafe.toLowerCase()\n ) {\n setSupplyAmount(downScale(value.toString(), decimals))\n }\n })\n }\n }\n }, [account, address, decimals, poolInfo.poolSafe, txReceipt])\n\n const handleUserAction = useCallback(() => {\n if (isFirstTimeNotifiUser && notifiChainSupported) {\n dispatch(setStep(WIDGET_STEP.Notifications))\n } else if (campaign) {\n dispatch(setStep(WIDGET_STEP.PointsEarned))\n } else {\n handleAction()\n }\n }, [\n campaign,\n dispatch,\n handleAction,\n isFirstTimeNotifiUser,\n notifiChainSupported,\n ])\n\n const content = [\n `You successfully supplied ${formatMoney(supplyAmount)} ${symbol}.`,\n ]\n\n const getSubContent = () => {\n const lockupEndTime = dayjs()\n .add(lpConfig.withdrawalLockoutPeriodInDays, 'day')\n .date(1)\n const withdrawTime = lockupEndTime.add(1, 'month')\n return [\n `You can begin submitting redemption requests on ${timeUtil.timestampToLL(\n lockupEndTime.unix(),\n )}, which can be redeemed starting ${timeUtil.timestampToLL(\n withdrawTime.unix(),\n )}.`,\n ]\n }\n\n const getButtonText = () => {\n if (hasNextStep) {\n return \"WHAT'S NEXT\"\n }\n return campaign ? 'VIEW POINTS' : undefined\n }\n\n return (\n <TxDoneModal\n handleAction={handleUserAction}\n content={content}\n subContent={getSubContent()}\n buttonText={getButtonText()}\n />\n )\n}\n","import React, { useCallback } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { Campaign } from '.'\nimport { NotifiSubscriptionModal } from '../../Notifi/NotifiSubscriptionModal'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\n\ntype Props = {\n campaign?: Campaign\n handleAction: () => void\n}\n\nexport function Notifications({\n campaign,\n handleAction,\n}: Props): React.ReactElement {\n const dispatch = useDispatch()\n\n const handleUserAction = useCallback(() => {\n if (campaign) {\n dispatch(setStep(WIDGET_STEP.PointsEarned))\n } else {\n handleAction()\n }\n }, [campaign, dispatch, handleAction])\n\n return (\n <NotifiSubscriptionModal\n successText={campaign ? 'VIEW POINTS' : undefined}\n handleSuccess={handleUserAction}\n />\n )\n}\n","import {\n CloseModalOptions,\n getEvmNetworkType,\n openInNewTab,\n POOL_NAME,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n useLenderApprovedV2,\n useLPConfigV2,\n usePoolInfoV2,\n useTrancheVaultAssetsV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { PointsEarned } from '../../PointsEarned'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseTranche } from './1-ChooseTranche'\nimport { Evaluation } from './2-Evaluation'\nimport { ApproveLender } from './3-ApproveLender'\nimport { ChooseAmount } from './4-ChooseAmount'\nimport { ApproveAllowance } from './5-ApproveAllowance'\nimport { Transfer } from './6-Transfer'\nimport { Success } from './7-Success'\nimport { Notifications } from './8-Notifications'\n\nexport interface Campaign {\n id: string\n campaignGroupId: string\n}\n\n/**\n * Lend pool supply props\n * @typedef {Object} LendSupplyPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {Campaign} campaign The campaign info.\n * @param {string} documentHash The subscription file hash.\n * @property {function((CloseModalOptions|undefined)):void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.\n */\nexport interface LendSupplyPropsV2 {\n poolName: keyof typeof POOL_NAME\n campaign?: Campaign\n documentHash: string\n handleClose: (options?: CloseModalOptions) => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function LendSupplyV2({\n poolName: poolNameStr,\n campaign,\n documentHash,\n handleClose,\n handleSuccess,\n}: LendSupplyPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const poolName = POOL_NAME[poolNameStr]\n const { chainId, provider, account } = useWeb3React()\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { poolUnderlyingToken } = poolInfo || {}\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [selectedTranche, setSelectedTranche] = useState<TrancheType>()\n const lpConfig = useLPConfigV2(poolName, provider)\n const isUniTranche = lpConfig?.maxSeniorJuniorRatio === 0\n const [lenderApprovedSenior] = useLenderApprovedV2(\n poolName,\n 'senior',\n account,\n provider,\n )\n const [lenderApprovedJunior] = useLenderApprovedV2(\n poolName,\n 'junior',\n account,\n provider,\n )\n const [juniorAssets] = useTrancheVaultAssetsV2(poolName, 'junior', provider)\n const [seniorAssets] = useTrancheVaultAssetsV2(poolName, 'senior', provider)\n\n const lenderApproveStatusFetched =\n lenderApprovedSenior !== undefined && lenderApprovedJunior !== undefined\n\n useEffect(() => {\n if (!step && poolInfo && lenderApproveStatusFetched && lpConfig) {\n const uniTrancheNotEvaluated = isUniTranche && !lenderApprovedJunior\n const tranchesNotEvaluated =\n !isUniTranche && !lenderApprovedJunior && !lenderApprovedSenior\n\n if (uniTrancheNotEvaluated || tranchesNotEvaluated) {\n if (poolInfo.KYC) {\n dispatch(setStep(WIDGET_STEP.Evaluation))\n } else if (poolInfo.supplyLink) {\n openInNewTab(poolInfo.supplyLink)\n handleClose()\n }\n return\n }\n\n if (!isUniTranche && (!lenderApprovedJunior || !lenderApprovedSenior)) {\n dispatch(setStep(WIDGET_STEP.ApproveLender))\n return\n }\n\n if (lenderApprovedJunior && lenderApprovedSenior) {\n dispatch(setStep(WIDGET_STEP.ChooseTranche))\n return\n }\n\n if (poolInfo.KYC) {\n dispatch(setStep(WIDGET_STEP.Evaluation))\n return\n }\n\n if (poolInfo.supplyLink) {\n openInNewTab(poolInfo.supplyLink)\n handleClose()\n }\n }\n }, [\n dispatch,\n handleClose,\n isUniTranche,\n lenderApproveStatusFetched,\n lenderApprovedJunior,\n lenderApprovedSenior,\n lpConfig,\n poolInfo,\n step,\n ])\n\n if (\n !poolInfo ||\n !poolUnderlyingToken ||\n !lenderApproveStatusFetched ||\n !lpConfig ||\n !juniorAssets ||\n !seniorAssets\n ) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Supply'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={`Supply ${poolUnderlyingToken.symbol}`}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChooseTranche && (\n <ChooseTranche\n poolUnderlyingToken={poolUnderlyingToken}\n selectedTranche={selectedTranche}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation\n poolInfo={poolInfo}\n handleClose={handleClose}\n campaign={campaign}\n networkType={getEvmNetworkType(poolInfo.chainId)}\n documentHash={documentHash}\n />\n )}\n {step === WIDGET_STEP.ApproveLender && (\n <ApproveLender\n poolInfo={poolInfo}\n isUniTranche={isUniTranche}\n documentHash={documentHash}\n changeTranche={setSelectedTranche}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n lpConfig={lpConfig}\n juniorAssets={juniorAssets}\n seniorAssets={seniorAssets}\n selectedTranche={selectedTranche}\n isUniTranche={isUniTranche}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Transfer && selectedTranche && (\n <Transfer\n poolInfo={poolInfo}\n trancheType={selectedTranche}\n campaign={campaign}\n networkType={getEvmNetworkType(poolInfo.chainId)}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolInfo={poolInfo}\n lpConfig={lpConfig}\n campaign={campaign}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Notifications && (\n <Notifications campaign={campaign} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.PointsEarned && (\n <PointsEarned\n lpConfig={{\n withdrawalLockupPeriodDays: lpConfig.withdrawalLockoutPeriodInDays,\n }}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Supply'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { isEmpty, PoolInfoType, timeUtil } from '@huma-finance/shared'\nimport {\n useLastDepositTime,\n useWithdrawlLockoutInSeconds,\n} from '@huma-finance/web-shared'\nimport React, { useEffect, useState } from 'react'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { ErrorModal } from '../../ErrorModal'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleClose: () => void\n}\n\nexport function CheckWithdrawable({\n poolInfo,\n handleClose,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, chainId, provider } = useWeb3React()\n const withdrawlLockoutSeconds = useWithdrawlLockoutInSeconds(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n provider,\n )\n const lastDepositTime = useLastDepositTime(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n account,\n provider,\n )\n\n const { symbol } = poolInfo.poolUnderlyingToken\n const [status, setStatus] = useState<'checking' | 'error'>('checking')\n\n useEffect(() => {\n if (!isEmpty(withdrawlLockoutSeconds) && !isEmpty(lastDepositTime)) {\n const currentTimestamp = timeUtil.getUnixTimestamp()\n if (lastDepositTime! + withdrawlLockoutSeconds! > currentTimestamp) {\n setStatus('error')\n } else {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n }\n }, [dispatch, lastDepositTime, withdrawlLockoutSeconds])\n\n if (status === 'error') {\n const errorMessage = `Your last deposit was on ${timeUtil.timestampToLL(\n lastDepositTime,\n )}. Depositors need to wait for ${timeUtil\n .secondsToDays(withdrawlLockoutSeconds)\n .toFixed(0)} days before withdrawal.`\n return (\n <ErrorModal\n title={`Withdraw ${symbol}`}\n errorReason='Withdraw too soon'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )\n }\n\n return (\n <LoadingModal\n title={`Withdraw ${symbol}`}\n description='Checking withdrawable amount...'\n />\n )\n}\n","import { BigNumber } from 'ethers'\nimport { downScale, PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep, setWithdrawAmount } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n lenderPosition: BigNumber\n poolBalance: BigNumber\n poolInfo: PoolInfoType\n}\n\nexport function ChooseAmount({\n lenderPosition,\n poolBalance,\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { poolUnderlyingToken } = poolInfo\n const { symbol, decimals } = poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState(0)\n // Take the minimum of the pool balance or the lender position\n const withdrawableAmountBN = lenderPosition.lt(poolBalance)\n ? lenderPosition\n : poolBalance\n const withdrawableAmount = downScale<number>(withdrawableAmountBN, decimals)\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setWithdrawAmount(newAmount))\n },\n [dispatch],\n )\n\n const handleAction = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }, [dispatch])\n\n return (\n <ChooseAmountModal\n title={`Withdraw ${symbol}`}\n description1='Choose Amount'\n sliderMax={Number(withdrawableAmount)}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='withdraw'\n hideTerms\n />\n )\n}\n","import { PoolInfoType, toBigNumber, upScale } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { BigNumber } from 'ethers'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { decimals } = poolInfo.poolUnderlyingToken\n const { withdrawAmount } = useAppSelector(selectWidgetState)\n const withdrawBigNumber = upScale<BigNumber>(\n toBigNumber(withdrawAmount!),\n decimals,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n method='withdraw'\n params={[withdrawBigNumber]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { useWeb3React } from '@web3-react/core'\nimport {\n decodeLogs,\n downScale,\n formatMoney,\n PoolInfoType,\n TRANSFER_ABI,\n} from '@huma-finance/shared'\nimport { sendTxAtom } from '@huma-finance/web-shared'\nimport { useAtom } from 'jotai'\nimport React, { useEffect, useState } from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n handleAction: () => void\n}\n\nexport function Success({ poolInfo, handleAction }: Props): React.ReactElement {\n const { account } = useWeb3React()\n const { poolUnderlyingToken } = poolInfo\n const [{ txReceipt }] = useAtom(sendTxAtom)\n const { symbol, decimals, address } = poolUnderlyingToken\n const [withdrawAmount, setWithdrawAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (txReceipt) {\n const events = decodeLogs(txReceipt.logs, TRANSFER_ABI)\n if (events) {\n events.forEach((event) => {\n const { from, to, value } = event.args\n if (\n from.toLowerCase() === poolInfo.pool.toLowerCase() &&\n to.toLowerCase() === account?.toLowerCase()\n ) {\n setWithdrawAmount(downScale(value.toString(), decimals))\n }\n })\n }\n }\n }, [account, address, decimals, poolInfo.pool, txReceipt])\n\n const content = [\n `You successfully withdrawn ${formatMoney(withdrawAmount)} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport {\n useLenderPosition,\n usePoolBalance,\n usePoolInfo,\n} from '@huma-finance/web-shared'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { CheckWithdrawable } from './1-CheckWithdrawble'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { Transfer } from './3-Transfer'\nimport { Success } from './4-Success'\n\n/**\n * Lend pool withdraw props\n * @typedef {Object} LendWithdrawProps\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {POOL_TYPE} poolType The type of the pool.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool withdraw action is successful.\n */\nexport type LendWithdrawProps = {\n poolName: keyof typeof POOL_NAME\n poolType: keyof typeof POOL_TYPE\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function LendWithdraw({\n poolName: poolNameStr,\n poolType: poolTypeStr,\n handleClose,\n handleSuccess,\n}: LendWithdrawProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolType = POOL_TYPE[poolTypeStr]\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [lenderPosition, refreshLenderPosition] = useLenderPosition(\n poolName,\n poolType,\n chainId,\n account,\n provider,\n )\n const [poolBalance, refreshPoolBalance] = usePoolBalance(\n poolName,\n poolType,\n chainId,\n provider,\n )\n\n useEffect(() => {\n if (!step && lenderPosition?.gt(0) && poolBalance?.gt(0)) {\n dispatch(setStep(WIDGET_STEP.CheckWithdrawable))\n } else if (!step && (lenderPosition?.eq(0) || poolBalance?.eq(0))) {\n dispatch(setStep(WIDGET_STEP.Error))\n }\n }, [dispatch, lenderPosition, poolBalance, step])\n\n const handleWithdrawSuccess = useCallback(\n (blockNumber: number) => {\n refreshLenderPosition()\n refreshPoolBalance()\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess, refreshLenderPosition, refreshPoolBalance],\n )\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen\n handleClose={handleClose}\n handleSuccess={handleWithdrawSuccess}\n >\n {step === WIDGET_STEP.CheckWithdrawable && (\n <CheckWithdrawable poolInfo={poolInfo} handleClose={handleClose} />\n )}\n {step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && (\n <ChooseAmount\n poolInfo={poolInfo}\n lenderPosition={lenderPosition}\n poolBalance={poolBalance}\n />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && (\n <Success poolInfo={poolInfo} handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Withdraw'\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n PoolInfoV2,\n TrancheRedemptionStatus,\n TrancheType,\n UnderlyingTokenInfo,\n formatAmount,\n getTrancheVaultContractV2,\n} from '@huma-finance/shared'\nimport { Box, Divider, css, useTheme } from '@mui/material'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useWeb3React } from '@web3-react/core'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n tranche: TrancheType\n poolUnderlyingToken: UnderlyingTokenInfo\n redemptionStatus: TrancheRedemptionStatus\n poolIsClosed: boolean\n}\n\nexport function ConfirmTransfer({\n poolInfo,\n tranche,\n poolUnderlyingToken,\n redemptionStatus,\n poolIsClosed,\n}: Props): React.ReactElement {\n const theme = useTheme()\n const dispatch = useDispatch()\n const { provider } = useWeb3React()\n const { symbol, decimals } = poolUnderlyingToken\n const { lenderRedemptionRecords, cancellableRedemptionShares } =\n redemptionStatus\n const { numSharesRequested } = lenderRedemptionRecords\n const sharesProcessed = formatAmount(\n numSharesRequested.sub(cancellableRedemptionShares),\n decimals,\n )\n const withdrawableAmount = formatAmount(\n redemptionStatus.withdrawableAssets,\n decimals,\n )\n const [sharePrice, setSharePrice] = useState(0)\n\n useEffect(() => {\n const fetchData = async () => {\n const vaultContract = await getTrancheVaultContractV2(\n poolInfo.poolName,\n tranche,\n provider,\n )\n if (vaultContract) {\n const shares = await vaultContract.convertToShares(\n redemptionStatus.withdrawableAssets,\n )\n setSharePrice(\n redemptionStatus.withdrawableAssets.toNumber() / shares.toNumber(),\n )\n }\n }\n fetchData()\n }, [\n poolInfo.poolName,\n provider,\n redemptionStatus.withdrawableAssets,\n tranche,\n ])\n\n const goToWithdraw = () => {\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n\n const styles = {\n itemWrapper: css`\n margin-top: ${theme.spacing(9)};\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n `,\n item: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ${theme.spacing(3)};\n `,\n itemValue: css`\n font-size: 20px;\n font-weight: 700;\n `,\n divider: css`\n border-color: ${theme.palette.divider};\n margin-bottom: ${theme.spacing(3)};\n `,\n }\n\n return (\n <WrapperModal\n title={`Withdraw ${symbol}`}\n subTitle='Withdraw all the available amount'\n >\n <Box css={styles.itemWrapper}>\n {!poolIsClosed && (\n <Box css={styles.item}>\n <Box>Shares processed</Box>\n <Box css={styles.itemValue}>{sharesProcessed}</Box>\n </Box>\n )}\n <Box css={styles.item}>\n <Box>Price Per Share</Box>\n <Box css={styles.itemValue}>\n {sharePrice.toFixed(1)} {symbol}\n </Box>\n </Box>\n <Divider css={styles.divider} orientation='horizontal' />\n <Box css={styles.item}>\n <Box fontWeight={700}>Available to withdraw</Box>\n <Box css={styles.itemValue}>\n {withdrawableAmount} {symbol}\n </Box>\n </Box>\n </Box>\n <BottomButton variant='contained' onClick={goToWithdraw}>\n WITHDRAW\n </BottomButton>\n </WrapperModal>\n )\n}\n","import { PoolInfoV2, TrancheType } from '@huma-finance/shared'\nimport { useTrancheVaultContractV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModalV2 } from '../../TxSendModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n tranche: TrancheType\n poolIsClosed: boolean\n}\n\nexport function Transfer({\n poolInfo,\n tranche,\n poolIsClosed,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const trancheVaultContract = useTrancheVaultContractV2(\n poolInfo.poolName,\n tranche,\n provider,\n account,\n )\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!trancheVaultContract || !account) {\n return null\n }\n\n return (\n <TxSendModalV2\n contract={trancheVaultContract}\n method={poolIsClosed ? 'withdrawAfterPoolClosure' : 'disburse'}\n params={[]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatMoney, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport { BigNumber, ethers } from 'ethers'\nimport React from 'react'\n\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n withdrawAmount: BigNumber\n handleAction: () => void\n}\n\nexport function Done({\n poolUnderlyingToken,\n withdrawAmount,\n handleAction,\n}: Props): React.ReactElement {\n const { symbol } = poolUnderlyingToken\n const withdrawAmountFormatted = ethers.utils.formatUnits(\n withdrawAmount,\n poolUnderlyingToken.decimals,\n )\n\n const content = [\n `You successfully withdrew ${formatMoney(\n withdrawAmountFormatted,\n )} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import {\n getPoolContractV2,\n getTrancheRedemptionStatusV2,\n POOL_NAME,\n TrancheRedemptionStatus,\n TrancheType,\n} from '@huma-finance/shared'\nimport {\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ConfirmTransfer } from './1-ConfirmTransfer'\nimport { Transfer } from './2-Transfer'\nimport { Done } from './3-Done'\n\n/**\n * Lend pool withdraw props\n * @typedef {Object} LendWithdrawPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {TrancheType} trancheType The type of the tranche.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool withdraw action is successful.\n */\nexport type LendWithdrawPropsV2 = {\n poolName: keyof typeof POOL_NAME\n trancheType: TrancheType\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function LendWithdrawV2({\n poolName: poolNameStr,\n trancheType,\n handleClose,\n handleSuccess,\n}: LendWithdrawPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const title = poolUnderlyingToken\n ? `Withdraw ${poolUnderlyingToken.symbol}`\n : 'Withdraw'\n\n const [redemptionStatus, setRedemptionStatus] = React.useState<\n TrancheRedemptionStatus | undefined\n >()\n const [poolIsClosed, setPoolIsClosed] = useState<boolean | undefined>(\n undefined,\n )\n\n useEffect(() => {\n const fetchData = async () => {\n if (account && provider) {\n const result = await getTrancheRedemptionStatusV2(\n poolName,\n trancheType,\n account,\n provider,\n )\n setRedemptionStatus(result)\n }\n }\n fetchData()\n }, [account, poolName, provider, trancheType])\n\n useEffect(() => {\n const fetchData = async () => {\n if (account && provider) {\n const result = await getTrancheRedemptionStatusV2(\n poolName,\n trancheType,\n account,\n provider,\n )\n setRedemptionStatus(result)\n }\n }\n fetchData()\n }, [account, poolName, provider, trancheType])\n\n useEffect(() => {\n const fetchData = async () => {\n if (account && provider) {\n const poolContract = await getPoolContractV2(poolName, provider)\n if (poolContract) {\n const poolIsClosed = await poolContract.isPoolClosed()\n setPoolIsClosed(poolIsClosed)\n }\n }\n }\n fetchData()\n }, [account, poolName, provider])\n\n useEffect(() => {\n if (!step) {\n dispatch(setStep(WIDGET_STEP.ConfirmTransfer))\n }\n }, [dispatch, step])\n\n const handleWithdrawSuccess = useCallback(\n (blockNumber: number) => {\n if (handleSuccess) {\n handleSuccess(blockNumber)\n }\n },\n [handleSuccess],\n )\n\n if (\n !poolInfo ||\n !poolUnderlyingToken ||\n !redemptionStatus ||\n poolIsClosed === undefined\n ) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle={title}\n handleClose={handleClose}\n handleSuccess={handleWithdrawSuccess}\n >\n {step === WIDGET_STEP.ConfirmTransfer && (\n <ConfirmTransfer\n poolInfo={poolInfo}\n tranche={trancheType}\n redemptionStatus={redemptionStatus}\n poolUnderlyingToken={poolUnderlyingToken}\n poolIsClosed={poolIsClosed}\n />\n )}\n {step === WIDGET_STEP.Transfer && (\n <Transfer\n poolInfo={poolInfo}\n tranche={trancheType}\n poolIsClosed={poolIsClosed}\n />\n )}\n {step === WIDGET_STEP.Done && (\n <Done\n poolUnderlyingToken={poolUnderlyingToken}\n withdrawAmount={redemptionStatus.withdrawableAssets}\n handleAction={handleClose}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title={title}\n errorReason='Sorry there was an error'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { arrayify } from '@ethersproject/bytes'\nimport { ChainEnum, getBlockchainConfigFromChain } from '@huma-finance/shared'\nimport { NotifiContextProvider } from '@notifi-network/notifi-react'\nimport { useWeb3React } from '@web3-react/core'\nimport { providers } from 'ethers'\nimport React, { useMemo } from 'react'\n\ntype Props = {\n chainId: number | undefined\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children?: any\n}\n\nexport function NotifiContextWrapper({\n chainId,\n children,\n}: Props): React.ReactElement | null {\n const { account, provider } = useWeb3React()\n const signer = useMemo(() => {\n if (provider instanceof providers.JsonRpcProvider) {\n return provider.getSigner()\n }\n return undefined\n }, [provider])\n\n if (account == null || signer == null || chainId == null) {\n return null\n }\n\n let cardId = ''\n if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {\n cardId = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO ?? ''\n } else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {\n cardId = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON ?? ''\n } else if (\n chainId === ChainEnum.Scroll ||\n chainId === ChainEnum.ScrollSepolia\n ) {\n cardId = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL ?? ''\n }\n\n if (!cardId) {\n return children\n }\n\n return (\n <NotifiContextProvider\n tenantId='humafinanceprod'\n env='Production'\n signMessage={async (message: Uint8Array) => {\n const result = await signer.signMessage(message)\n return arrayify(result)\n }}\n walletPublicKey={account}\n walletBlockchain={getBlockchainConfigFromChain(chainId)}\n cardId={cardId}\n >\n {children}\n </NotifiContextProvider>\n )\n}\n","import {\n CreditStatsV2,\n PoolInfoV2,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport {\n usePoolSafeAllowanceV2,\n useReceivableInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, ethers } from 'ethers'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setBorrowInfo } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n accountStats: CreditStatsV2\n tokenId: string\n}\n\nexport function ChooseAmount({\n poolInfo,\n poolUnderlyingToken,\n accountStats,\n tokenId,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { symbol, decimals } = poolUnderlyingToken!\n const [currentAmount, setCurrentAmount] = useState(0)\n const { creditAvailable } = accountStats\n const receivableInfo = useReceivableInfoV2(\n poolInfo.poolName,\n tokenId,\n provider,\n )\n const { autopayEnabled } = usePoolSafeAllowanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n const [maxAmount, setMaxAmount] = useState(0)\n\n useEffect(() => {\n if (creditAvailable) {\n let maxAmountBN: BigNumber = creditAvailable\n\n if (receivableInfo) {\n const receivableAmountBN = BigNumber.from(\n receivableInfo.receivableAmount,\n )\n maxAmountBN = receivableAmountBN.lte(creditAvailable)\n ? receivableAmountBN\n : creditAvailable\n }\n setMaxAmount(Number(ethers.utils.formatUnits(maxAmountBN, decimals)))\n }\n }, [creditAvailable, decimals, receivableInfo])\n\n const handleChangeAmount = useCallback((newAmount: number) => {\n setCurrentAmount(newAmount)\n }, [])\n\n const handleAction = useCallback(() => {\n const nextStep = autopayEnabled\n ? WIDGET_STEP.ApproveNFT\n : WIDGET_STEP.ApproveAllowance\n\n dispatch(\n setBorrowInfo({\n borrowAmount: currentAmount,\n borrowAmountBN: ethers.utils\n .parseUnits(currentAmount.toString(), decimals)\n .toJSON(),\n chargedFees: 0,\n nextStep,\n }),\n )\n }, [autopayEnabled, currentAmount, decimals, dispatch])\n\n if (autopayEnabled === undefined || (tokenId && !receivableInfo)) {\n return <LoadingModal title='Borrow' />\n }\n\n return (\n <ChooseAmountModal\n title='Borrow'\n description1='Choose Amount'\n sliderMax={maxAmount}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='Borrow'\n />\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.ApproveNFT))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.poolSafe}\n poolUnderlyingToken={poolUnderlyingToken}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import { PoolInfoV2, TxStateType } from '@huma-finance/shared'\nimport {\n sendTxAtom,\n txAtom,\n useReceivableContractV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useEffect } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoV2\n tokenId: string\n}\n\nexport function ApproveReceivable({\n poolInfo,\n tokenId,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, account } = useWeb3React()\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n const reset = useResetAtom(txAtom)\n const receivableContract = useReceivableContractV2(\n poolInfo.poolName,\n provider,\n account,\n )\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n reset()\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n }, [dispatch, reset, state])\n\n useEffect(() => {\n if (receivableContract) {\n send({\n contract: receivableContract,\n method: 'approve',\n params: [poolInfo.poolCredit, tokenId],\n provider,\n })\n }\n }, [poolInfo.poolCredit, provider, receivableContract, send, tokenId])\n\n return (\n <LoadingModal\n title='Approve Receivable'\n description='Waiting for approval confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { drawdownWithReceivable } from '@huma-finance/sdk'\nimport { PoolInfoV2 } from '@huma-finance/shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber } from 'ethers'\nimport React, { useEffect, useState } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoV2\n tokenId: string\n}\n\nexport function Transfer({ poolInfo, tokenId }: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, account } = useWeb3React()\n const { borrowAmountBN: borrowAmountBNJson } =\n useAppSelector(selectWidgetState)\n const borrowAmountBN = BigNumber.from(borrowAmountBNJson).toString()\n const [txHash, setTxHash] = useState('')\n\n useEffect(() => {\n const sendTx = async () => {\n if (provider) {\n try {\n const tx = await drawdownWithReceivable(\n provider.getSigner(),\n poolInfo.poolName,\n tokenId,\n borrowAmountBN,\n )\n setTxHash(tx.hash)\n await tx.wait()\n dispatch(setStep(WIDGET_STEP.Done))\n } catch (e) {\n console.error(e)\n dispatch(setStep(WIDGET_STEP.Error))\n }\n }\n }\n sendTx()\n }, [borrowAmountBN, dispatch, poolInfo.poolName, provider, tokenId])\n\n if (!account || !provider) {\n return <LoadingModal title='Borrow' />\n }\n\n return (\n <LoadingModal\n title='Transaction Pending'\n description='Waiting for confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import {\n CreditStatsV2,\n formatNumber,\n timeUtil,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n creditRecord: CreditStatsV2['creditRecord']\n handleAction: () => void\n hasNextStep: boolean\n}\n\nexport function Success({\n poolUnderlyingToken,\n creditRecord,\n handleAction,\n hasNextStep,\n}: Props): React.ReactElement {\n const { borrowAmountNet } = useAppSelector(selectWidgetState)\n const { symbol } = poolUnderlyingToken\n const dueDate = timeUtil.timestampToLL(creditRecord?.nextDueDate.toNumber())\n\n const content = [\n `${formatNumber(borrowAmountNet)} ${symbol} is now in your wallet.`,\n `Note: your payment will be automatically deducted on ${dueDate}.`,\n ]\n\n return (\n <TxDoneModal\n handleAction={handleAction}\n content={content}\n buttonText={hasNextStep ? \"WHAT'S NEXT\" : undefined}\n />\n )\n}\n","import React from 'react'\nimport { NotifiSubscriptionModal } from '../../Notifi/NotifiSubscriptionModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Notifications({ handleAction }: Props): React.ReactElement {\n return <NotifiSubscriptionModal handleSuccess={handleAction} />\n}\n","import { CreditStateV2, POOL_NAME } from '@huma-finance/shared'\nimport {\n useCreditStatsV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useCallback, useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport {\n useDoesChainSupportNotifi,\n useIsFirstTimeNotifiUser,\n} from '../../../hooks/useNotifi'\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChooseAmount } from './1-ChooseAmount'\nimport { ApproveAllowance } from './2-ApproveAllowance'\nimport { ApproveReceivable } from './3-ApproveReceivable'\nimport { Transfer } from './4-Transfer'\nimport { Success } from './5-Success'\nimport { Notifications } from './6-Notifications'\n\n/**\n * Receivable backed credit line pool borrow props V2\n * @typedef {Object} ReceivableBackedCreditLineBorrowPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {tokenId} tokenId The receivable token id.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool borrow action is successful.\n */\nexport interface ReceivableBackedCreditLineBorrowPropsV2 {\n poolName: keyof typeof POOL_NAME\n tokenId: string\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function ReceivableBackedCreditLineBorrowV2({\n poolName: poolNameStr,\n tokenId,\n handleClose,\n handleSuccess,\n}: ReceivableBackedCreditLineBorrowPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const poolName = POOL_NAME[poolNameStr]\n const { account, chainId, provider } = useWeb3React()\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [accountStats, refreshAccountStats] = useCreditStatsV2(\n poolName,\n account,\n provider,\n )\n const { isFirstTimeNotifiUser } = useIsFirstTimeNotifiUser(account, chainId)\n const { notifiChainSupported } = useDoesChainSupportNotifi(chainId)\n const { creditRecord } = accountStats\n const accountState = creditRecord?.state\n\n useEffect(() => {\n if (!step && accountState !== undefined) {\n if (accountState >= CreditStateV2.Approved) {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n }\n }, [accountState, dispatch, step])\n\n const setupNotificationsOrClose = useCallback(() => {\n if (isFirstTimeNotifiUser && notifiChainSupported) {\n dispatch(setStep(WIDGET_STEP.Notifications))\n } else {\n handleClose()\n }\n }, [dispatch, handleClose, isFirstTimeNotifiUser, notifiChainSupported])\n\n const handleSuccessCallback = useCallback(() => {\n refreshAccountStats()\n if (handleSuccess) {\n handleSuccess()\n }\n }, [handleSuccess, refreshAccountStats])\n\n if (!poolInfo || !poolUnderlyingToken || !creditRecord || !step) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Borrow'\n handleClose={handleClose}\n handleSuccess={handleSuccessCallback}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n loadingTitle='Borrow'\n handleClose={handleClose}\n handleSuccess={handleSuccessCallback}\n >\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n accountStats={accountStats}\n tokenId={tokenId}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n />\n )}\n {step === WIDGET_STEP.ApproveNFT && tokenId && (\n <ApproveReceivable poolInfo={poolInfo} tokenId={tokenId} />\n )}\n {step === WIDGET_STEP.Transfer && tokenId && (\n <Transfer poolInfo={poolInfo} tokenId={tokenId} />\n )}\n {step === WIDGET_STEP.Done && (\n <Success\n poolUnderlyingToken={poolUnderlyingToken}\n handleAction={setupNotificationsOrClose}\n creditRecord={accountStats.creditRecord!}\n hasNextStep={isFirstTimeNotifiUser}\n />\n )}\n {step === WIDGET_STEP.Notifications && (\n <Notifications handleAction={handleClose} />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Borrow'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import {\n css,\n FormControl,\n FormControlLabel,\n FormLabel,\n Radio,\n RadioGroup,\n useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport { PaymentType } from '.'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { BottomButton } from '../../BottomButton'\nimport { WrapperModal } from '../../WrapperModal'\n\ntype Props = {\n paymentType: PaymentType | undefined\n changePaymentType: (paymentType: PaymentType) => void\n}\n\nexport function ChoosePaymentType({\n paymentType,\n changePaymentType,\n}: Props): React.ReactElement | null {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n const styles = {\n subTitle: css`\n color: ${theme.palette.text.primary} !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ${theme.spacing(5)};\n margin-left: ${theme.spacing(2)};\n `,\n radioGroup: css`\n margin-left: ${theme.spacing(3)};\n margin-top: ${theme.spacing(3)};\n `,\n formControl: css`\n margin-bottom: ${theme.spacing(1)};\n .MuiFormControlLabel-label {\n color: ${theme.palette.text.primary};\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n `,\n }\n\n const handleNext = () => {\n dispatch(setStep(WIDGET_STEP.ChooseAmount))\n }\n\n const items: {\n label: string\n value: PaymentType\n }[] = [\n {\n label: 'Payment with Receivable',\n value: PaymentType.PaymentWithReceivable,\n },\n {\n label: 'Payment with Receivable and Drawdown',\n value: PaymentType.PaymentWithReceivableAndDrawdown,\n },\n ]\n\n return (\n <WrapperModal title='Pay'>\n <FormControl>\n <FormLabel css={styles.subTitle}>Select Payment Type</FormLabel>\n <RadioGroup\n aria-labelledby='buttons-group-label'\n name='radio-buttons-group'\n css={styles.radioGroup}\n onChange={(e) =>\n changePaymentType(Number(e.target.value) as PaymentType)\n }\n >\n {items.map((item) => (\n <FormControlLabel\n key={item.label}\n value={item.value}\n control={\n <Radio\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: 24,\n },\n }}\n />\n }\n label={item.label}\n css={styles.formControl}\n />\n ))}\n </RadioGroup>\n </FormControl>\n <BottomButton\n variant='contained'\n disabled={paymentType === undefined}\n onClick={handleNext}\n >\n NEXT\n </BottomButton>\n </WrapperModal>\n )\n}\n","import {\n PoolInfoV2,\n toBigNumber,\n UnderlyingTokenInfo,\n upScale,\n} from '@huma-finance/shared'\nimport { usePoolSafeAllowanceV2 } from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, ethers } from 'ethers'\nimport React, { useCallback, useState } from 'react'\n\nimport { PaymentType } from '.'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setPaymentAmount, setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n payoffAmount: BigNumber\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n paymentType: PaymentType\n}\n\nexport function ChooseAmount({\n payoffAmount: payoffAmountBN,\n poolInfo,\n poolUnderlyingToken,\n paymentType,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { symbol, decimals } = poolUnderlyingToken\n const [currentAmount, setCurrentAmount] = useState(0)\n const { allowance } = usePoolSafeAllowanceV2(\n poolInfo.poolName,\n account,\n provider,\n )\n const payoffAmount = Number(\n ethers.utils.formatUnits(payoffAmountBN, decimals),\n )\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n setCurrentAmount(newAmount)\n dispatch(setPaymentAmount({ paymentAmount: newAmount }))\n },\n [dispatch],\n )\n\n const handleAction = useCallback(() => {\n const payAmount = upScale(currentAmount, decimals)\n if (toBigNumber(payAmount).gt(allowance!)) {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n return\n }\n\n const step =\n paymentType === PaymentType.PaymentWithReceivable\n ? WIDGET_STEP.Transfer\n : WIDGET_STEP.MintNFT\n dispatch(setStep(step))\n }, [allowance, currentAmount, decimals, dispatch, paymentType])\n\n if (!allowance) {\n return <LoadingModal title='Pay' />\n }\n\n return (\n <ChooseAmountModal\n title='Pay'\n description1='Choose amount'\n sliderMax={payoffAmount}\n currentAmount={currentAmount}\n tokenSymbol={symbol}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='pay'\n hideTerms\n />\n )\n}\n","import { PoolInfoV2, UnderlyingTokenInfo } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { PaymentType } from '.'\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModalV2 } from '../../ApproveAllowanceModalV2'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n paymentType: PaymentType\n}\n\nexport function ApproveAllowance({\n poolInfo,\n poolUnderlyingToken,\n paymentType,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n\n const handleSuccess = useCallback(() => {\n const step =\n paymentType === PaymentType.PaymentWithReceivable\n ? WIDGET_STEP.Transfer\n : WIDGET_STEP.MintNFT\n\n dispatch(setStep(step))\n }, [dispatch, paymentType])\n\n return (\n <ApproveAllowanceModalV2\n poolInfo={poolInfo}\n spender={poolInfo.poolSafe}\n poolUnderlyingToken={poolUnderlyingToken}\n handleSuccess={handleSuccess}\n showAutoPayback\n />\n )\n}\n","import { HumaContext, HumaReceivableFactory } from '@huma-finance/sdk'\nimport {\n CURRENCY_CODE,\n PoolInfoV2,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { ContractReceipt, ethers } from 'ethers'\nimport moment from 'moment'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n setTokenId: (tokenId: string) => void\n}\n\nexport function CreateReceivable({\n poolInfo,\n poolUnderlyingToken,\n setTokenId,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, chainId } = useWeb3React()\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const [txHash, setTxHash] = useState('')\n\n const getTokenIdFromReceipt = useCallback((txReceipt: ContractReceipt) => {\n if (!Array.isArray(txReceipt.events)) {\n return undefined\n }\n const event = txReceipt.events.find(\n (event) => event.event === 'ReceivableCreated',\n )\n if (!event || !event.args!! || !event.args?.tokenId) {\n return undefined\n }\n return event.args.tokenId.toString() as string\n }, [])\n\n useEffect(() => {\n const sendTx = async () => {\n if (provider && chainId) {\n try {\n const humaContext = new HumaContext({\n signer: provider.getSigner(),\n provider,\n chainId,\n poolName: poolInfo.poolName,\n poolType: poolInfo.poolType,\n })\n const receivableFactory = new HumaReceivableFactory({\n humaContext,\n })\n const receivableAmountBN = ethers.utils.parseUnits(\n String(paymentAmount),\n poolUnderlyingToken.decimals,\n )\n const maturityDate = moment().add(1, 'months').unix()\n const tx = await receivableFactory.createReceivable(\n CURRENCY_CODE.USD,\n receivableAmountBN,\n maturityDate,\n '',\n )\n setTxHash(tx.hash)\n const txReceipt = await tx.wait()\n const tokenId = getTokenIdFromReceipt(txReceipt)\n if (tokenId) {\n setTokenId(tokenId)\n }\n dispatch(setStep(WIDGET_STEP.ApproveNFT))\n } catch (e) {\n console.log(e)\n dispatch(setStep(WIDGET_STEP.Error))\n }\n }\n }\n sendTx()\n }, [\n chainId,\n dispatch,\n getTokenIdFromReceipt,\n paymentAmount,\n poolInfo.poolName,\n poolInfo.poolType,\n poolUnderlyingToken.decimals,\n provider,\n setTokenId,\n ])\n\n return (\n <LoadingModal\n title='Create Receivable'\n description='Waiting for confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { PoolInfoV2, TxStateType } from '@huma-finance/shared'\nimport {\n sendTxAtom,\n txAtom,\n useReceivableContractV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAtom } from 'jotai'\nimport { useResetAtom } from 'jotai/utils'\nimport React, { useEffect } from 'react'\n\nimport { useAppDispatch } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoV2\n tokenId: string\n}\n\nexport function ApproveReceivable({\n poolInfo,\n tokenId,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { provider, account } = useWeb3React()\n const [{ state, txHash }, send] = useAtom(sendTxAtom)\n const reset = useResetAtom(txAtom)\n const receivableContract = useReceivableContractV2(\n poolInfo.poolName,\n provider,\n account,\n )\n\n useEffect(() => {\n if (state === TxStateType.Success) {\n reset()\n dispatch(setStep(WIDGET_STEP.Transfer))\n }\n }, [dispatch, reset, state])\n\n useEffect(() => {\n if (receivableContract) {\n send({\n contract: receivableContract,\n method: 'approve',\n params: [poolInfo.poolCredit, tokenId],\n provider,\n })\n }\n }, [poolInfo.poolCredit, provider, receivableContract, send, tokenId])\n\n return (\n <LoadingModal\n title='Approve Receivable'\n description='Waiting for approval confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import { TransactionResponse } from '@ethersproject/providers'\nimport {\n makePaymentWithReceivable,\n makePrincipalPaymentAndDrawdownWithReceivable,\n} from '@huma-finance/sdk'\nimport {\n PoolInfoV2,\n toBigNumber,\n UnderlyingTokenInfo,\n upScale,\n} from '@huma-finance/shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { ethers } from 'ethers'\nimport React, { useEffect, useState } from 'react'\n\nimport { PaymentType } from '.'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { ViewOnExplorer } from '../../ViewOnExplorer'\n\ntype Props = {\n poolInfo: PoolInfoV2\n poolUnderlyingToken: UnderlyingTokenInfo\n paymentType: PaymentType\n paymentTokenId: string\n borrowTokenId?: string\n setSuccessTxReceipt: (txReceipt: ethers.ContractReceipt) => void\n}\n\nexport function Transfer({\n poolInfo,\n poolUnderlyingToken,\n paymentType,\n paymentTokenId,\n borrowTokenId,\n setSuccessTxReceipt,\n}: Props): React.ReactElement {\n const dispatch = useAppDispatch()\n const { account, provider } = useWeb3React()\n const { paymentAmount } = useAppSelector(selectWidgetState)\n const { decimals } = poolUnderlyingToken\n const paymentAmountBN = toBigNumber(\n upScale(paymentAmount!, decimals),\n ).toString()\n const [txHash, setTxHash] = useState('')\n\n useEffect(() => {\n const sendTx = async () => {\n if (provider) {\n try {\n let tx: TransactionResponse\n if (paymentType === PaymentType.PaymentWithReceivable) {\n tx = await makePaymentWithReceivable(\n provider.getSigner(),\n poolInfo.poolName,\n paymentTokenId,\n paymentAmountBN,\n false,\n )\n } else {\n tx = await makePrincipalPaymentAndDrawdownWithReceivable(\n provider.getSigner(),\n poolInfo.poolName,\n paymentTokenId,\n paymentAmountBN,\n borrowTokenId!,\n paymentAmountBN,\n )\n }\n setTxHash(tx.hash)\n const txReceipt = await tx.wait()\n setSuccessTxReceipt(txReceipt)\n dispatch(setStep(WIDGET_STEP.Done))\n } catch (e) {\n console.error(e)\n dispatch(setStep(WIDGET_STEP.Error))\n }\n }\n }\n sendTx()\n }, [\n borrowTokenId,\n dispatch,\n paymentAmountBN,\n paymentTokenId,\n paymentType,\n poolInfo.poolName,\n provider,\n setSuccessTxReceipt,\n ])\n\n if (!account) {\n return <LoadingModal title='Pay' />\n }\n\n return (\n <LoadingModal\n title='Transaction Pending'\n description='Waiting for confirmation...'\n >\n <ViewOnExplorer txHash={txHash} />\n </LoadingModal>\n )\n}\n","import {\n decodeLogs,\n downScale,\n formatNumber,\n TRANSFER_ABI,\n UnderlyingTokenInfo,\n} from '@huma-finance/shared'\nimport { ethers } from 'ethers'\nimport React, { useEffect, useState } from 'react'\n\nimport { PaymentType } from '.'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n poolUnderlyingToken: UnderlyingTokenInfo\n paymentType: PaymentType\n successTxReceipt: ethers.ContractReceipt\n handleAction: () => void\n}\n\nexport function Success({\n poolUnderlyingToken,\n paymentType,\n successTxReceipt,\n handleAction,\n}: Props): React.ReactElement {\n const { symbol, decimals } = poolUnderlyingToken\n const [paidAmount, setPaidAmount] = useState<string | undefined>()\n\n useEffect(() => {\n if (successTxReceipt) {\n const [event] = decodeLogs(successTxReceipt.logs, TRANSFER_ABI)\n if (event) {\n const paidAmount = downScale(event.args.value.toString(), decimals)\n setPaidAmount(paidAmount)\n }\n }\n }, [decimals, successTxReceipt])\n\n const amountFormatted = formatNumber(paidAmount)\n const content =\n paymentType === PaymentType.PaymentWithReceivable\n ? [`You successfully paid ${amountFormatted} ${symbol}.`]\n : [\n `You successfully paid ${amountFormatted} ${symbol} and borrowed ${amountFormatted} ${symbol}.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { POOL_NAME } from '@huma-finance/shared'\nimport {\n useCreditStatsV2,\n usePoolInfoV2,\n usePoolUnderlyingTokenInfoV2,\n useReceivableInfoV2,\n} from '@huma-finance/web-shared'\nimport { useWeb3React } from '@web3-react/core'\nimport { BigNumber, ethers } from 'ethers'\nimport React, { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { ChoosePaymentType } from './1-ChoosePaymentType'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { ApproveAllowance } from './3-ApproveAllowance'\nimport { CreateReceivable } from './4-CreateReceivable'\nimport { ApproveReceivable } from './5-ApproveReceivable'\nimport { Transfer } from './6-Transfer'\nimport { Success } from './7-Success'\n\nexport enum PaymentType {\n PaymentWithReceivable = 1,\n PaymentWithReceivableAndDrawdown = 2,\n}\n\n/**\n * Credit line pool payment props V2\n * @typedef {Object} CreditLinePaymentPropsV2\n * @property {POOL_NAME} poolName The name of the pool.\n * @property {tokenId} tokenID The receivable token id.\n * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.\n * @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the credit line pool payment action is successful.\n */\nexport type ReceivableBackedCreditLinePaymentPropsV2 = {\n poolName: keyof typeof POOL_NAME\n tokenId: string\n handleClose: () => void\n handleSuccess?: (blockNumber?: number) => void\n}\n\nexport function ReceivableBackedCreditLinePaymentV2({\n poolName: poolNameStr,\n tokenId,\n handleClose,\n handleSuccess,\n}: ReceivableBackedCreditLinePaymentPropsV2): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId, provider } = useWeb3React()\n const poolName = POOL_NAME[poolNameStr]\n const poolInfo = usePoolInfoV2(poolName, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n const [{ creditRecord }] = useCreditStatsV2(poolName, account, provider)\n const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider)\n const [paymentType, setPaymentType] = useState<PaymentType>()\n\n const [borrowTokenId, setBorrowTokenId] = useState<string>()\n const paymentReceivableInfo = useReceivableInfoV2(poolName, tokenId, provider)\n const payoffAmount = paymentReceivableInfo\n ? BigNumber.from(paymentReceivableInfo.receivableAmount).sub(\n paymentReceivableInfo.paidAmount,\n )\n : BigNumber.from(0)\n const [successTxReceipt, setSuccessTxReceipt] =\n useState<ethers.ContractReceipt>()\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.ChoosePaymentType))\n }, [dispatch])\n\n if (\n !poolInfo ||\n !creditRecord ||\n !poolUnderlyingToken ||\n !paymentReceivableInfo\n ) {\n return (\n <WidgetWrapper\n isOpen\n isLoading\n loadingTitle='Pay'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n />\n )\n }\n\n return (\n <WidgetWrapper\n isOpen\n isLoading={!creditRecord}\n loadingTitle='Pay'\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.ChoosePaymentType && (\n <ChoosePaymentType\n paymentType={paymentType}\n changePaymentType={setPaymentType}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && paymentType && (\n <ChooseAmount\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n payoffAmount={payoffAmount}\n paymentType={paymentType}\n />\n )}\n {step === WIDGET_STEP.ApproveAllowance && paymentType && (\n <ApproveAllowance\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n paymentType={paymentType}\n />\n )}\n {step === WIDGET_STEP.MintNFT && (\n <CreateReceivable\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n setTokenId={setBorrowTokenId}\n />\n )}\n {step === WIDGET_STEP.ApproveNFT && borrowTokenId && (\n <ApproveReceivable poolInfo={poolInfo} tokenId={borrowTokenId} />\n )}\n {step === WIDGET_STEP.Transfer && paymentType && (\n <Transfer\n poolInfo={poolInfo}\n poolUnderlyingToken={poolUnderlyingToken}\n paymentType={paymentType}\n paymentTokenId={tokenId}\n borrowTokenId={borrowTokenId}\n setSuccessTxReceipt={setSuccessTxReceipt}\n />\n )}\n {step === WIDGET_STEP.Done && paymentType && successTxReceipt && (\n <Success\n poolUnderlyingToken={poolUnderlyingToken}\n paymentType={paymentType}\n handleAction={handleClose}\n successTxReceipt={successTxReceipt}\n />\n )}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Pay'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { getAddress } from '@ethersproject/address'\nimport { PoolInfoType } from '@huma-finance/shared'\nimport { useWeb3React } from '@web3-react/core'\nimport React, { useEffect } from 'react'\n\nimport useEA from '../../../hooks/useEA'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\nimport { SignIn } from '../../SignIn'\n\ntype Props = {\n poolInfo: PoolInfoType\n payerAddress: string\n superToken: string\n}\n\nexport function Evaluation({\n poolInfo,\n payerAddress,\n superToken,\n}: Props): React.ReactElement {\n const {\n checkingEA,\n isWalletOwnershipVerificationRequired,\n isWalletOwnershipVerified,\n } = useEA()\n const { account } = useWeb3React()\n\n useEffect(() => {\n if (account) {\n checkingEA(\n {\n poolAddress: poolInfo.pool,\n borrowerWalletAddress: account,\n context: {\n receivable: {\n address: poolInfo.assetAddress!,\n },\n payerWalletAddress: getAddress(payerAddress),\n superToken,\n },\n },\n WIDGET_STEP.ChooseAmount,\n )\n }\n }, [\n account,\n checkingEA,\n payerAddress,\n poolInfo.assetAddress,\n poolInfo.pool,\n superToken,\n isWalletOwnershipVerified,\n ])\n\n if (isWalletOwnershipVerificationRequired) {\n return <SignIn />\n }\n return (\n <LoadingModal\n title='Checking Stream'\n description='Checking if the stream qualifies for factoring...'\n />\n )\n}\n","import {\n downScale,\n PoolInfoType,\n toBigNumber,\n upScale,\n} from '@huma-finance/shared'\nimport { useFeeManager } from '@huma-finance/web-shared'\nimport React, { useCallback, useState } from 'react'\n\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setBorrowInfo, setStream } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ChooseAmountModal } from '../../ChooseAmountModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n currentFlowRate: string\n}\n\nexport function ChooseAmount({\n poolInfo,\n currentFlowRate,\n}: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { chainId, provider } = useWeb3React()\n const { approval } = useAppSelector(selectWidgetState)\n const { getFeesCharged } = useFeeManager(\n poolInfo.poolName,\n poolInfo.poolType,\n chainId,\n provider,\n )\n const [chargedFees, setChargedFees] = useState(0)\n const [currentAmount, setCurrentAmount] = useState(0)\n const borrowPeriodInSeconds = approval!.terms.intervalInDays * 24 * 60 * 60\n const superTokenDecimals = poolInfo.extra?.superToken?.decimals!\n const underlyingTokenDecimals = poolInfo.poolUnderlyingToken.decimals!\n // To ensure not to borrow all the available flowrate due to contract limitation\n const borrowMaxAmount = Number(approval!.terms.creditLimitFormatted) - 0.01\n\n const getBorrowFlowrateAndAmount = useCallback(\n (borrowAmount: number) => {\n const currentFlowRateBN = toBigNumber(currentFlowRate)\n const borrowAmountSuperTokenBN = toBigNumber(\n upScale(borrowAmount, superTokenDecimals),\n )\n\n const totalAmountSuperTokenInBorrowPeriod = currentFlowRateBN.mul(\n borrowPeriodInSeconds,\n )\n let borrowFlowrate = borrowAmountSuperTokenBN\n .mul(currentFlowRateBN)\n .div(totalAmountSuperTokenInBorrowPeriod)\n // To ensure enough flowRate due to round down when convert to string\n .add(1)\n\n // Can not borrow all the available flowrate\n if (borrowFlowrate.gte(currentFlowRateBN)) {\n borrowFlowrate = currentFlowRateBN.sub(1)\n }\n\n // As borrowFlowrate adds 1, need to calculate the new accurate borrow amount\n const newBorrowAmountBN = borrowFlowrate\n .mul(totalAmountSuperTokenInBorrowPeriod)\n .div(currentFlowRateBN)\n const newBorrowAmount = downScale(newBorrowAmountBN, superTokenDecimals)\n const newBorrowAmountUnderlyingTokenBN = toBigNumber(\n upScale(newBorrowAmount, underlyingTokenDecimals),\n )\n\n return {\n borrowFlowrate: borrowFlowrate.toString(),\n borrowAmount: Number(newBorrowAmount),\n borrowAmountBN: newBorrowAmountUnderlyingTokenBN,\n }\n },\n [\n borrowPeriodInSeconds,\n currentFlowRate,\n superTokenDecimals,\n underlyingTokenDecimals,\n ],\n )\n\n const handleChangeAmount = useCallback(\n (newAmount: number) => {\n if (approval) {\n setCurrentAmount(newAmount)\n setChargedFees(getFeesCharged(newAmount))\n }\n },\n [approval, getFeesCharged],\n )\n const handleAction = useCallback(() => {\n const { borrowFlowrate, borrowAmount, borrowAmountBN } =\n getBorrowFlowrateAndAmount(currentAmount)\n\n dispatch(\n setStream({\n borrowFlowrate,\n durationInSeconds: borrowPeriodInSeconds,\n }),\n )\n dispatch(\n setBorrowInfo({\n borrowAmount,\n borrowAmountBN: borrowAmountBN.toJSON(),\n chargedFees,\n nextStep: WIDGET_STEP.ConfirmTransfer,\n }),\n )\n }, [\n borrowPeriodInSeconds,\n chargedFees,\n currentAmount,\n dispatch,\n getBorrowFlowrateAndAmount,\n ])\n\n if (!approval) {\n return null\n }\n\n return (\n <ChooseAmountModal\n title='Choose Amount'\n description1='Access up to 100% of your stream flowrate'\n sliderMax={borrowMaxAmount}\n currentAmount={currentAmount}\n tokenSymbol={approval.token.symbol}\n topLeft='Fees'\n topRight={`${chargedFees} ${approval.token.symbol}`}\n handleChangeAmount={handleChangeAmount}\n handleAction={handleAction}\n actionText='Confirm Transfer'\n />\n )\n}\n","import { isEmpty } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\n\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ConfirmTransferModal } from '../../ConfirmTransferModal'\n\nexport function ConfirmTransfer(): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { borrowAmount, approval } = useAppSelector(selectWidgetState)\n\n const handleAction = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.ApproveAllowance))\n }, [dispatch])\n\n if (isEmpty(borrowAmount) || isEmpty(approval)) {\n return null\n }\n\n return (\n <ConfirmTransferModal\n title='Confirm transaction details'\n description={`Huma keeps your Tradable Stream NFT as collateral until it's fully paid.`}\n items={[\n { leftText: 'Tradable Stream', rightText: 'Huma' },\n {\n leftText: `${borrowAmount!.toFixed(2)} ${approval?.token.symbol}`,\n rightText: 'You',\n },\n ]}\n actionText='APPROVE TRANSFER'\n handleAction={handleAction}\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport React, { useCallback } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { BigNumber } from 'ethers'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ApproveAllowanceModal } from '../../ApproveAllowanceModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function ApproveAllowance({\n poolInfo,\n}: Props): React.ReactElement | null {\n const dispatch = useDispatch()\n const { borrowAmountBN: borrowAmountBNJson } =\n useAppSelector(selectWidgetState)\n const borrowAmountBN = BigNumber.from(borrowAmountBNJson)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Permit))\n }, [dispatch])\n\n return (\n <ApproveAllowanceModal\n poolInfo={poolInfo}\n allowanceAmount={borrowAmountBN!}\n handleSuccess={handleSuccess}\n spender={poolInfo.poolProcessor!}\n />\n )\n}\n","import {\n PoolInfoType,\n SuperfluidPoolProcessor,\n SuperfluidPoolProcessor_ABI,\n} from '@huma-finance/shared'\nimport { useERC2612Permit, useMount } from '@huma-finance/web-shared'\nimport { BigNumber, Contract, ethers } from 'ethers'\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport {\n setError,\n setMultisend,\n setStep,\n} from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { LoadingModal } from '../../LoadingModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n payerAddress: string\n borrower: string\n superToken: string\n}\n\nexport function Permit({\n poolInfo,\n payerAddress,\n borrower,\n superToken,\n}: Props): React.ReactElement | null {\n const dispatch = useDispatch()\n const { borrowAmountBN: borrowAmountBNJson, stream } =\n useAppSelector(selectWidgetState)\n const { getTradableStreamPermitMessage } = useERC2612Permit()\n const borrowAmountBN = BigNumber.from(borrowAmountBNJson)\n\n const getDrawdownCallData = async () => {\n const NFTPermitResult = await getTradableStreamPermitMessage(\n poolInfo.assetAddress!,\n borrower,\n superToken,\n payerAddress,\n poolInfo.poolProcessor!,\n stream!.borrowFlowrate!,\n stream!.durationInSeconds!,\n )\n\n const drawdownEncodedData = ethers.utils.defaultAbiCoder.encode(\n [\n 'address',\n 'address',\n 'address',\n 'int96',\n 'uint256',\n 'uint256',\n 'uint8',\n 'bytes32',\n 'bytes32',\n ],\n [\n borrower,\n superToken,\n payerAddress,\n stream?.borrowFlowrate,\n stream?.durationInSeconds,\n NFTPermitResult.expiry,\n NFTPermitResult.v,\n NFTPermitResult.r,\n NFTPermitResult.s,\n ],\n )\n const poolProcessorContract = new Contract(\n poolInfo.poolProcessor!,\n SuperfluidPoolProcessor_ABI,\n ) as SuperfluidPoolProcessor\n\n return poolProcessorContract.interface.encodeFunctionData(\n 'mintAndDrawdown',\n [borrower, borrowAmountBN, poolInfo.assetAddress!, drawdownEncodedData],\n )\n }\n\n useMount(async () => {\n try {\n const callData = []\n const addresses: string[] = []\n const drawdownCalldata = await getDrawdownCallData()\n addresses.push(poolInfo.poolProcessor!)\n callData.push(drawdownCalldata)\n\n dispatch(setMultisend({ addresses, callData }))\n dispatch(setStep(WIDGET_STEP.Transfer))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n let errorMessage = e.reason || `Sign permit failed`\n if (e.code === 4001 || e.code === 'ACTION_REJECTED') {\n errorMessage = 'User has rejected the permit sign'\n }\n dispatch(setError({ errorMessage, errorReason: errorMessage }))\n }\n })\n\n return (\n <LoadingModal\n title='Sign Token and NFT'\n description='Waiting for signing...'\n />\n )\n}\n","import { PoolInfoType } from '@huma-finance/shared'\nimport { useMultiSendContract } from '@huma-finance/web-shared'\nimport React, { useCallback } from 'react'\n\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { TxSendModal } from '../../TxSendModal'\n\ntype Props = {\n poolInfo: PoolInfoType\n}\n\nexport function Transfer({ poolInfo }: Props): React.ReactElement | null {\n const dispatch = useAppDispatch()\n const { chainId, provider } = useWeb3React()\n const { multisend } = useAppSelector(selectWidgetState)\n const multiSendContract = useMultiSendContract(chainId, provider)\n\n const handleSuccess = useCallback(() => {\n dispatch(setStep(WIDGET_STEP.Done))\n }, [dispatch])\n\n if (!multisend || !multiSendContract) {\n return null\n }\n\n return (\n <TxSendModal\n poolInfo={poolInfo}\n contract={multiSendContract}\n title='Transfer Tradable Stream and Money'\n method='multisend'\n params={[multisend.addresses, multisend.callData]}\n handleSuccess={handleSuccess}\n />\n )\n}\n","import { formatNumber } from '@huma-finance/shared'\nimport React from 'react'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { TxDoneModal } from '../../TxDoneModal'\n\ntype Props = {\n handleAction: () => void\n}\n\nexport function Success({ handleAction }: Props): React.ReactElement {\n const { borrowAmount, approval } = useAppSelector(selectWidgetState)\n\n const content = [\n `${formatNumber(borrowAmount)} ${\n approval?.token.symbol\n } is now in your wallet.`,\n ]\n\n return <TxDoneModal handleAction={handleAction} content={content} />\n}\n","import { useWeb3React } from '@web3-react/core'\nimport { POOL_NAME, POOL_TYPE } from '@huma-finance/shared'\nimport { usePoolInfo } from '@huma-finance/web-shared'\nimport React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\n\nimport { useAppSelector } from '../../../hooks/useRedux'\nimport { setStep } from '../../../store/widgets.reducers'\nimport { selectWidgetState } from '../../../store/widgets.selectors'\nimport { WIDGET_STEP } from '../../../store/widgets.store'\nimport { ErrorModal } from '../../ErrorModal'\nimport { WidgetWrapper } from '../../WidgetWrapper'\nimport { Evaluation } from './1-Evaluation'\nimport { ChooseAmount } from './2-ChooseAmount'\nimport { ConfirmTransfer } from './3-ConfirmTransfer'\nimport { ApproveAllowance } from './4-ApproveAllowance'\nimport { Permit } from './5-Permit'\nimport { Transfer } from './6-Transfer'\nimport { Success } from './7-Success'\n\nexport type StreamFactoringBorrowProps = {\n poolName: POOL_NAME\n poolType: POOL_TYPE\n payerAddress: string\n superToken: string\n currentFlowRate: string\n isOpen: boolean\n handleClose: () => void\n handleSuccess: (blockNumber: number) => void\n}\n\nexport function StreamFactoringBorrow({\n poolName,\n poolType,\n payerAddress,\n superToken,\n currentFlowRate,\n isOpen,\n handleClose,\n handleSuccess,\n}: StreamFactoringBorrowProps): React.ReactElement | null {\n const dispatch = useDispatch()\n const { account, chainId } = useWeb3React()\n const poolInfo = usePoolInfo(poolName, poolType, chainId)\n const { step, errorMessage } = useAppSelector(selectWidgetState)\n\n useEffect(() => {\n dispatch(setStep(WIDGET_STEP.Evaluation))\n }, [dispatch])\n\n if (!poolInfo) {\n return null\n }\n\n return (\n <WidgetWrapper\n isOpen={isOpen}\n handleClose={handleClose}\n handleSuccess={handleSuccess}\n >\n {step === WIDGET_STEP.Evaluation && (\n <Evaluation\n poolInfo={poolInfo}\n payerAddress={payerAddress}\n superToken={superToken}\n />\n )}\n {step === WIDGET_STEP.ChooseAmount && (\n <ChooseAmount poolInfo={poolInfo} currentFlowRate={currentFlowRate} />\n )}\n {step === WIDGET_STEP.ConfirmTransfer && <ConfirmTransfer />}\n {step === WIDGET_STEP.ApproveAllowance && (\n <ApproveAllowance poolInfo={poolInfo} />\n )}\n {step === WIDGET_STEP.Permit && account && (\n <Permit\n poolInfo={poolInfo}\n payerAddress={payerAddress}\n borrower={account}\n superToken={superToken}\n />\n )}\n {step === WIDGET_STEP.Transfer && <Transfer poolInfo={poolInfo} />}\n {step === WIDGET_STEP.Done && <Success handleAction={handleClose} />}\n {step === WIDGET_STEP.Error && (\n <ErrorModal\n title='Stream Borrowing'\n errorMessage={errorMessage}\n handleOk={handleClose}\n />\n )}\n </WidgetWrapper>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { POOL_NAME, POOL_TYPE, PoolMap } from '@huma-finance/shared'\nimport { useFactoring } from '@huma-finance/web-shared'\nimport React from 'react'\n\nimport { EmotionJSX } from '@emotion/react/types/jsx-namespace'\nimport { StreamFactoringBorrow } from '../StreamFactoring/borrow'\n\nexport type StreamItem = {\n id: string\n icon: EmotionJSX.Element\n token: string\n tokenId: string\n payer: string\n flowrate: string\n flowrateMonth: string\n}\n\nexport function SuperfluidFactoring(): React.ReactElement {\n const theme = useTheme()\n const poolName = POOL_NAME.Superfluid\n const {\n actionType,\n poolInfo,\n modalIsOpen,\n selectedItem,\n styles,\n handleGetPaidSuccess,\n handleClose,\n } = useFactoring<StreamItem>(poolName, POOL_TYPE.Stream)\n\n return (\n <Box css={styles.wrapper}>\n <Box css={styles.title}>Stream Factoring</Box>\n <Box css={styles.description} marginBottom={theme.spacing(6)}>\n {PoolMap.Stream[poolName]?.borrowDesc}\n </Box>\n {poolInfo && selectedItem && actionType === 'borrow' && (\n <StreamFactoringBorrow\n poolName={POOL_NAME.Superfluid}\n poolType={POOL_TYPE.Stream}\n payerAddress={selectedItem.payer}\n superToken={selectedItem.tokenId}\n currentFlowRate={selectedItem.flowrate}\n isOpen={modalIsOpen}\n handleClose={handleClose}\n handleSuccess={handleGetPaidSuccess}\n />\n )}\n </Box>\n )\n}\n","import {\n Action,\n ActionCreator,\n AnyAction,\n configureStore,\n ThunkAction,\n} from '@reduxjs/toolkit'\n\nimport widgetsReducers from './widgets.reducers'\n\nexport const store = configureStore({\n reducer: {\n widget: widgetsReducers,\n },\n})\n\nexport type AppDispatch = typeof store.dispatch\nexport type RootState = ReturnType<typeof store.getState>\nexport type AppThunk<ReturnType = void> = ThunkAction<\n ReturnType,\n RootState,\n unknown,\n Action<string>\n>\nexport type AppActionThunk<ReturnType = void> = ActionCreator<\n ThunkAction<ReturnType, RootState, unknown, AnyAction>\n>\n","import { Breakpoints } from '@mui/system'\n\nexport const breakpoints: Partial<\n {\n step: number\n unit: string\n } & Breakpoints\n> = {\n values: { xs: 460, sm: 600, md: 960, lg: 1280, xl: 1920 },\n}\n","/**\n * This file can be used to override default props and styles on the various Material components\n * see: https://mui.com/customization/theme-components/\n */\nimport { Theme, ThemeOptions } from '@mui/material'\n\nexport function components(theme: Theme): ThemeOptions['components'] {\n return {\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n contained: {\n // align outlined vs contained borders\n border: '1px solid transparent',\n background:\n 'linear-gradient(232.71deg, #A363F4 4.17%, #FF6A8A 178.69%)',\n },\n outlined: {\n '.MuiBox-root': {\n background:\n 'linear-gradient(232.71deg, #A363F4 4.17%, #FF6A8A 178.69%)',\n backgroundClip: 'text',\n textFillColor: 'transparent',\n },\n },\n root: {\n fontWeight: '700',\n fontSize: '15px',\n borderRadius: '32px',\n '&.MuiButton-containedPrimary': {\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n },\n boxShadow:\n '0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px rgba(0, 0, 0, 0.14), 0px 1px 5px rgba(0, 0, 0, 0.12)',\n },\n '&.MuiButton-outlinedPrimary': {\n '&:hover': {\n backgroundColor: theme.palette.common.white,\n },\n },\n textTransform: 'none',\n '&.Mui-disabled': {\n border: 'none',\n background:\n 'linear-gradient(232.71deg, rgba(178, 70, 255, 0.25) 5%, rgba(255, 106, 138, 0.25) 175%)',\n boxShadow: 'unset',\n },\n },\n },\n },\n MuiButtonBase: {\n defaultProps: {},\n },\n MuiCssBaseline: {\n styleOverrides: {\n dd: {\n margin: 0,\n },\n dl: {\n margin: 0,\n },\n dt: {\n margin: 0,\n },\n },\n },\n }\n}\n","export const coreThemeConstants = {\n borderRadius: {\n md: 4,\n },\n fontFamily: [\n 'Red-Hat-Display',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n letterSpacing: {\n lg: '2px',\n md: '1px',\n sm: '0.45px',\n xs: '0.25px',\n },\n lineHeight: {\n lg: 1.4, // 22.4px on 16\n md: 1.1875, // 19px on 16, 47.5 on 40\n xl: 1.5, // 24px on 16\n },\n spacingBase: 8, // 8px grid\n}\n","import { css, SerializedStyles } from '@emotion/react'\nimport { createTheme } from '@mui/material'\n\nimport { coreThemeConstants } from './coreThemeConstants'\n\nconst theme = createTheme({\n spacing: coreThemeConstants.spacingBase,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} as any)\n\nexport const cssMixins = {\n appHeaderHeight: '80px',\n appFooterHeight: '80px',\n colCentered: css`\n flex-direction: column;\n align-items: center;\n display: flex;\n justify-content: center;\n `,\n colHCentered: css`\n flex-direction: column;\n display: flex;\n justify-content: center;\n `,\n colStretch: css`\n display: flex;\n flex-direction: column;\n `,\n colVCentered: css`\n flex-direction: column;\n align-items: center;\n display: flex;\n `,\n rowCentered: css`\n align-items: center;\n display: flex;\n justify-content: center;\n `,\n rowHCentered: css`\n display: flex;\n justify-content: center;\n `,\n rowStretch: css`\n display: flex;\n `,\n rowSpaceBetweened: css`\n display: flex;\n justify-content: space-between;\n `,\n rowFlexEnd: css`\n justify-content: flex-end;\n display: flex;\n `,\n rowVCentered: css`\n align-items: center;\n display: flex;\n `,\n spaceSimpleH: (spacing: number): SerializedStyles => css`\n margin-right: ${theme.spacing(spacing)};\n\n &:last-child {\n margin-right: 0;\n }\n `,\n spaceSimpleV: (spacing: number): SerializedStyles => css`\n margin-bottom: ${theme.spacing(spacing)};\n\n &:last-child {\n margin-bottom: 0;\n }\n\n + & {\n margin-top: ${theme.spacing(spacing)};\n }\n `,\n stretchAll: css`\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n `,\n stretchBottom: css`\n right: 0;\n bottom: 0;\n left: 0;\n `,\n stretchTop: css`\n top: 0;\n right: 0;\n left: 0;\n `,\n}\n","import { ThemeOptions } from '@mui/material'\n\n// primary\nexport const primaryPurple = '#b246ff'\nexport const primaryBlueLight = '#4473EB'\nexport const primaryGradient =\n 'linear-gradient(232.71deg, #A363F4 4.17%, #FF6A8A 178.69%);'\n\n// Secondary\nexport const pendingBlueDark = '#1148B2'\nexport const pendingBlue = '#226BF9'\nexport const pendingBlueMid = '#4584FF'\nexport const pendingBlueLight = '#79A5FB'\nexport const warningRed = '#D01638'\nexport const warningRedMid = '#E71E44'\nexport const warningRedLight = '#FF4366'\nexport const warningRedPastel = '#FF708B'\nexport const backgroundBlue = '#081824'\nexport const darkBackground = '#0C2436'\n\nexport const white = '#FFFFFF'\n\nexport const black = {\n 1: '#000000',\n 2: '#2A252F',\n 3: '#423B46',\n 4: '#534E59',\n 5: '#6B6572',\n 6: '#76707E',\n}\n\nexport const orange = {\n 100: '#FFA979',\n 300: '#FF8F51',\n 500: '#FD792F',\n 700: '#E96216',\n}\n\nconst yellow = {\n 100: '#FFECB0',\n 300: '#FFE07E',\n 500: '#FFD54F',\n 700: '#F8BE28',\n}\n\nconst grey = {\n 100: '#CBD6DE',\n 200: '#BDB5C8',\n 300: '#d3ccdd',\n 400: '#EAE6F0',\n 600: '#395062',\n 700: '#6B6572',\n 800: '#4A4A4A',\n}\n\nconst green = {\n 100: '#66F8D3',\n 200: '#1DE9B6',\n 500: '#00CA97',\n 700: '#0DBC90',\n}\n\nexport const blue = {\n 50: '#8AD5FF',\n 100: '#3DB9FF',\n 200: '#0BA7FE',\n 300: '#0095E9',\n 500: '#0070AF',\n 800: '#013859',\n}\n\nexport const red = {\n 50: '#FEAEA8',\n 100: '#FA8B84',\n 200: '#EA726A',\n 300: '#E75E55',\n 500: '#BC4E46',\n 800: '#472D33',\n}\n\nexport const purple = {\n 100: '#DEB8FC',\n 200: '#C476FF',\n 300: '#B452FF',\n 500: '#9D3BE8',\n 800: '#651C9C',\n}\n\nexport const paletteCore: ThemeOptions['palette'] = {\n alert: {\n contrastText: black[1],\n dark: yellow[700],\n light: yellow[300],\n main: yellow[500],\n },\n background: {\n default: white,\n paper: white,\n },\n common: {\n black: black[1],\n white,\n },\n default: {\n contrastText: black[1],\n dark: white,\n light: white,\n main: white,\n },\n divider: grey[600],\n error: {\n dark: warningRed,\n light: warningRedPastel,\n main: warningRedLight,\n },\n grey,\n info: {\n contrastText: black[1],\n dark: pendingBlue,\n light: pendingBlueLight,\n main: pendingBlueMid,\n superDark: darkBackground,\n superLight: blue[50],\n },\n mode: 'light',\n primary: {\n main: primaryPurple,\n light: primaryBlueLight,\n },\n secondary: {\n contrastText: black[1],\n main: white,\n },\n success: {\n light: green[100],\n main: green[200],\n },\n text: {\n primary: grey[400],\n secondary: grey[200],\n tertiary: grey[300],\n quaternary: grey[400],\n },\n warning: {\n contrastText: black[1],\n light: orange[100],\n main: orange[500],\n superLight: yellow[100],\n },\n}\n","import { ThemeOptions } from '@mui/material'\n\nimport { coreThemeConstants } from './coreThemeConstants'\n\nexport const shape: ThemeOptions['shape'] = {\n borderRadius: coreThemeConstants.borderRadius.md,\n}\n","import { ThemeOptions } from '@mui/material'\nimport { coreThemeConstants } from './coreThemeConstants'\n\nexport const typography: ThemeOptions['typography'] = {\n body1: {\n fontWeight: 400,\n fontSize: '1.5rem',\n letterSpacing: coreThemeConstants.letterSpacing.md,\n lineHeight: coreThemeConstants.lineHeight.lg,\n },\n body2: {\n fontWeight: 400,\n fontSize: '1rem',\n letterSpacing: coreThemeConstants.letterSpacing.xs,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n body2Small: {\n fontSize: '0.875rem',\n fontWeight: 400,\n letterSpacing: coreThemeConstants.letterSpacing.xs,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n fontFamily: coreThemeConstants.fontFamily,\n fontWeightBold: 600,\n fontWeightLight: 300,\n fontWeightMedium: 500,\n fontWeightRegular: 400,\n h1: {\n /**\n * h1 in design\n * Used for\n * - title in ProductCard\n * - Apy value in ProductCard\n * - title in protocol-position block\n */\n fontSize: '1.5rem',\n fontWeight: 900,\n letterSpacing: coreThemeConstants.letterSpacing.xs,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h2: {\n /**\n * h2 in design\n * Used for\n * - amount in small AmountDetail\n * - Alert titles\n */\n fontSize: '1.25rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.sm,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h3: {\n /**\n * h3 in design\n * Used for\n * - Secondary headers in below fold content\n */\n fontSize: '1rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.md,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h3Large: {\n /**\n * h3 in design\n * Used for\n * - Secondary headers in below fold content\n */\n fontSize: '1.875rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.md,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h4: {\n /**\n * Used for\n * - large feature text on product home pages\n */\n fontSize: '2.5rem',\n fontWeight: 700,\n letterSpacing: coreThemeConstants.letterSpacing.lg,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h5: {\n /**\n * Used for\n * - main title of scenes,\n */\n fontSize: '1.75rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.md,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n h6: {\n fontSize: '1.25rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.sm,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n labsSmall: {\n fontSize: '0.75rem',\n },\n nav: {\n fontSize: '0.875rem',\n fontWeight: 400,\n letterSpacing: coreThemeConstants.letterSpacing.sm,\n lineHeight: coreThemeConstants.lineHeight.md,\n },\n navSub: {\n fontSize: '0.75rem',\n fontWeight: 500,\n letterSpacing: coreThemeConstants.letterSpacing.md,\n // lineHeight: '1rem',\n },\n}\n","import { createTheme } from '@mui/material'\n\nimport { breakpoints } from './breakpoints'\nimport { components } from './components'\nimport { coreThemeConstants } from './coreThemeConstants'\nimport { cssMixins } from './cssMixins'\nimport { paletteCore } from './palette'\nimport { shape } from './shape'\nimport { typography } from './typography'\n\nexport * from './components'\n\nconst themeBase = createTheme({\n breakpoints,\n cssMixins,\n palette: paletteCore,\n shape,\n spacing: coreThemeConstants.spacingBase,\n typography,\n})\n\nexport const themeHuma = createTheme(themeBase, {\n components: components(themeBase),\n})\n","import { JsonRpcProvider } from '@ethersproject/providers'\nimport { ThemeProvider } from '@mui/material'\nimport { Provider as Eip1193Provider } from '@web3-react/types'\nimport { Provider as AtomProvider } from 'jotai'\nimport { useEffect, useState } from 'react'\nimport { Provider as ReduxProvider } from 'react-redux'\n\nimport { ChainSupportProvider } from './components/ChainSupportProvider'\nimport {\n CreditLineApprove,\n CreditLineApproveProps,\n} from './components/CreditLine/approve'\nimport {\n AutoPaybackPropsV2,\n AutoPaybackV2,\n} from './components/CreditLine/autoPaybackV2'\nimport {\n CreditLineBorrow,\n CreditLineBorrowProps,\n} from './components/CreditLine/borrow'\nimport {\n CreditLineBorrowPropsV2,\n CreditLineBorrowV2,\n} from './components/CreditLine/borrowV2'\nimport {\n CreditLinePayment,\n CreditLinePaymentProps,\n} from './components/CreditLine/payment'\nimport {\n CreditLinePaymentPropsV2,\n CreditLinePaymentV2,\n} from './components/CreditLine/paymentV2'\nimport {\n SolanaBorrow,\n SolanaBorrowProps,\n} from './components/CreditLine/solanaBorrow'\nimport {\n SolanaPayment,\n SolanaPaymentProps,\n} from './components/CreditLine/solanaPayment'\nimport {\n SupplyFirstLossCover,\n SupplyFirstLossCoverProps,\n} from './components/CreditLine/supplyFLC'\nimport {\n InvoiceFactoringBorrow,\n InvoiceFactoringBorrowProps,\n} from './components/InvoiceFactoring/borrow'\nimport {\n InvoiceFactoringPayment,\n InvoiceFactoringPaymentProps,\n} from './components/InvoiceFactoring/payment'\nimport {\n AddRedemptionPropsV2,\n AddRedemptionV2,\n} from './components/Lend/addRedemptionV2'\nimport {\n CancelRedemptionPropsV2,\n CancelRedemptionV2,\n} from './components/Lend/cancelRedemptionV2 '\nimport {\n SolanaLendAddRedemption,\n SolanaLendAddRedemptionProps,\n} from './components/Lend/solanaAddRedemption'\nimport {\n SolanaLendCancelRedemption,\n SolanaLendCancelRedemptionProps,\n} from './components/Lend/solanaCancelRedemption'\nimport {\n SolanaEnableAutoRedemption,\n SolanaEnableAutoRedemptionProps,\n} from './components/Lend/solanaEnableAutoRedemption'\nimport {\n SolanaLendSupply,\n SolanaLendSupplyProps,\n} from './components/Lend/solanaSupply'\nimport {\n SolanaLendWithdraw,\n SolanaLendWithdrawProps,\n} from './components/Lend/solanaWithdraw'\nimport {\n StellarLendSupply,\n StellarLendSupplyProps,\n} from './components/Lend/stellarSupply'\nimport { LendSupply, LendSupplyProps } from './components/Lend/supply'\nimport { LendSupplyPropsV2, LendSupplyV2 } from './components/Lend/supplyV2'\nimport { LendWithdraw, LendWithdrawProps } from './components/Lend/withdraw'\nimport {\n LendWithdrawPropsV2,\n LendWithdrawV2,\n} from './components/Lend/withdrawV2'\nimport { NotifiContextWrapper } from './components/Notifi/NotifiContextWrapper'\nimport {\n ReceivableBackedCreditLineBorrowPropsV2,\n ReceivableBackedCreditLineBorrowV2,\n} from './components/ReceivableBackedCreditLine/borrow'\nimport {\n ReceivableBackedCreditLinePaymentPropsV2,\n ReceivableBackedCreditLinePaymentV2,\n} from './components/ReceivableBackedCreditLine/payment'\nimport { SuperfluidFactoring } from './components/SuperfluidFactoring'\nimport { store } from './store'\nimport { themeHuma } from './theme'\nimport { WCProps } from './utilTypes'\n\n/**\n * Mapping of your JSON-RPC connections indexed by chainId\n * @typedef {Object} JsonRpcConnectionMap\n * @property {Object.<number, string|Array<string>|JsonRpcProvider|Array<JsonRpcProvider>>} chainId Chain id to map the JSON-RPC URL/URLs or JsonRpcProvider/JsonRpcProviders\n */\ntype JsonRpcConnectionMap = {\n [chainId: number]: string | string[] | JsonRpcProvider | JsonRpcProvider[]\n}\n\n/**\n * Object representing the props passed to web3 provider\n * @typedef {Object} WidgetProps\n * @property {desiredChainId|undefined} desiredChainId Optional desired chain id, will trigger the switch network action if different from the current chain id\n * @property {JsonRpcConnectionMap|undefined} jsonRpcUrlMap Optional mapping of your JSON-RPC connections indexed by chainId\n * @property {Eip1193Provider|JsonRpcProvider} provider EIP-1193 provider or JsonRpc Provider\n */\ntype WidgetProps = {\n handleClose?: () => void\n desiredChainId?: number\n jsonRpcUrlMap?: JsonRpcConnectionMap\n provider: Eip1193Provider | JsonRpcProvider\n}\n\nfunction Widget(props: WCProps<WidgetProps>) {\n const { children, provider } = props\n const [chainId, setChainId] = useState<number | undefined>(undefined)\n\n useEffect(() => {\n const getChainId = async () => {\n if (provider instanceof JsonRpcProvider) {\n const network = await provider.getNetwork()\n setChainId(network?.chainId)\n }\n }\n getChainId()\n }, [provider])\n\n return (\n <ThemeProvider theme={themeHuma}>\n <ReduxProvider store={store}>\n <AtomProvider>\n <ChainSupportProvider>\n <NotifiContextWrapper chainId={chainId}>\n {children}\n </NotifiContextWrapper>\n </ChainSupportProvider>\n </AtomProvider>\n </ReduxProvider>\n </ThemeProvider>\n )\n}\n\n/**\n * Invoice factoring pool borrow widget props\n * @typedef {Object} InvoiceFactoringBorrowWidgetProps\n * @property {InvoiceFactoringBorrowProps} InvoiceFactoringBorrowProps - Invoice factoring pool borrow props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype InvoiceFactoringBorrowWidgetProps = InvoiceFactoringBorrowProps &\n WidgetProps\n\n/**\n * Invoice factoring borrow widget\n *\n * @param {InvoiceFactoringBorrowWidgetProps} props - The invoice factoring pool borrow widget props.\n * @returns Invoice factoring pool borrow widget component\n */\nexport function InvoiceFactoringBorrowWidget(\n props: InvoiceFactoringBorrowWidgetProps,\n) {\n return (\n <Widget {...props}>\n <InvoiceFactoringBorrow {...props} />\n </Widget>\n )\n}\n\n/**\n * Invoice factoring pool payment widget props\n * @typedef {Object} InvoiceFactoringPaymentWidgetProps\n * @property {InvoiceFactoringPaymentProps} InvoiceFactoringPaymentProps - Invoice factoring pool payment props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype InvoiceFactoringPaymentWidgetProps = InvoiceFactoringPaymentProps &\n WidgetProps\n\n/**\n * Invoice factoring payment widget\n *\n * @param {InvoiceFactoringPaymentWidgetProps} props - The invoice factoring pool payment widget props.\n * @returns Invoice factoring pool payment widget component\n */\nexport function InvoiceFactoringPaymentWidget(\n props: InvoiceFactoringPaymentWidgetProps,\n) {\n return (\n <Widget {...props}>\n <InvoiceFactoringPayment {...props} />\n </Widget>\n )\n}\n\n/**\n * Credit line pool borrow widget props\n * @typedef {Object} CreditLineBorrowWidgetProps\n * @property {CreditLineBorrowProps} CreditLineBorrowProps - Credit line pool borrow props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CreditLineBorrowWidgetProps = CreditLineBorrowProps & WidgetProps\n\n/**\n * Credit line borrow widget\n *\n * @param {CreditLineBorrowWidgetProps} props - The credit line pool borrow widget props.\n * @returns Credit line pool borrow widget component\n */\nexport function CreditLineBorrowWidget(props: CreditLineBorrowWidgetProps) {\n return (\n <Widget {...props}>\n <CreditLineBorrow {...props} />\n </Widget>\n )\n}\n\n/**\n * Credit line pool borrow widget props V2\n * @typedef {Object} CreditLineBorrowWidgetPropsV2\n * @property {CreditLineBorrowPropsV2} CreditLineBorrowPropsV2 - Credit line pool borrow props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CreditLineBorrowWidgetPropsV2 = CreditLineBorrowPropsV2 & WidgetProps\n\n/**\n * Credit line borrow widget V2\n *\n * @param {CreditLineBorrowWidgetPropsV2} props - The credit line pool borrow widget props V2.\n * @returns Credit line pool borrow widget component V2\n */\nexport function CreditLineBorrowWidgetV2(props: CreditLineBorrowWidgetPropsV2) {\n return (\n <Widget {...props}>\n <CreditLineBorrowV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Credit line pool payment widget props\n * @typedef {Object} CreditLinePaymentWidgetProps\n * @property {CreditLinePaymentProps} CreditLinePaymentProps - Credit line pool payment props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CreditLinePaymentWidgetProps = CreditLinePaymentProps & WidgetProps\n\n/**\n * Credit line payment widget\n *\n * @param {CreditLinePaymentWidgetProps} props - The credit line pool payment widget props.\n * @returns Credit line pool payment widget component\n */\nexport function CreditLinePaymentWidget(props: CreditLinePaymentWidgetProps) {\n return (\n <Widget {...props}>\n <CreditLinePayment {...props} />\n </Widget>\n )\n}\n\n/**\n * Credit line pool payment widget props V2\n * @typedef {Object} CreditLinePaymentWidgetPropsV2\n * @property {CreditLinePaymentPropsV2} CreditLinePaymentPropsV2 - Credit line pool payment props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CreditLinePaymentWidgetPropsV2 = CreditLinePaymentPropsV2 & WidgetProps\n\n/**\n * Credit line payment widget V2\n *\n * @param {CreditLinePaymentWidgetPropsV2} props - The credit line pool payment widget props V2.\n * @returns Credit line pool payment widget component V2\n */\nexport function CreditLinePaymentWidgetV2(\n props: CreditLinePaymentWidgetPropsV2,\n) {\n return (\n <Widget {...props}>\n <CreditLinePaymentV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Credit line allowance approval widget props\n * @typedef {Object} CreditLinePaymentWidgetProps\n * @property {CreditLineApproveProps} CreditLineApproveProps - Credit line allowance approve props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CreditLineApproveWidgetProps = CreditLineApproveProps & WidgetProps\n\n/**\n * Credit line allowance approve widget to top up a pool's ERC20 token allowance.\n * To be used when re-enabling autopay and other pool actions that require allowance.\n *\n * @param {CreditLineApproveWidgetProps} props - The credit line pool approve widget props.\n * @returns Credit line pool approve widget component\n */\nexport function CreditLineApproveWidget(props: CreditLineApproveWidgetProps) {\n return (\n <Widget {...props}>\n <CreditLineApprove {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool supply widget props\n * @typedef {Object} LendSupplyWidgetProps\n * @property {LendSupplyProps} LendSupplyProps - Lend pool supply props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype LendSupplyWidgetProps = LendSupplyProps & WidgetProps\n\n/**\n * Lend supply widget\n *\n * @param {LendSupplyWidgetProps} props - The lend pool supply widget props.\n * @returns Lend pool supply widget component\n */\nexport function LendSupplyWidget(props: LendSupplyWidgetProps) {\n return (\n <Widget {...props}>\n <LendSupply {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool supply widget props V2\n * @typedef {Object} LendSupplyWidgetPropsV2\n * @property {LendSupplyPropsV2} LendSupplyPropsV2 - Lend pool supply props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype LendSupplyWidgetPropsV2 = LendSupplyPropsV2 & WidgetProps\n\n/**\n * Lend supply widget V2\n *\n * @param {LendSupplyWidgetPropsV2} props - The lend pool supply widget props V2.\n * @returns Lend pool supply widget component V2\n */\nexport function LendSupplyWidgetV2(props: LendSupplyWidgetPropsV2) {\n return (\n <Widget {...props}>\n <LendSupplyV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool withdraw widget props\n * @typedef {Object} LendWithdrawWidgetProps\n * @property {LendWithdrawProps} LendWithdrawProps - Lend pool withdraw props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype LendWithdrawWidgetProps = LendWithdrawProps & WidgetProps\n\n/**\n * Lend withdraw widget\n *\n * @param {LendWithdrawWidgetProps} props The lend pool withdraw widget props\n * @returns Lend pool withdraw widget component\n */\nexport function LendWithdrawWidget(props: LendWithdrawWidgetProps) {\n return (\n <Widget {...props}>\n <LendWithdraw {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool supply widget props V2\n * @typedef {Object} LendWithdrawWidgetPropsV2\n * @property {LendWithdrawPropsV2} LendSupplyPropsV2 - Lend pool supply props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype LendWithdrawWidgetPropsV2 = LendWithdrawPropsV2 & WidgetProps\n\n/**\n * Lend withdraw widget V2\n *\n * @param {LendWithdrawWidgetPropsV2} props - The lend pool supply widget props V2.\n * @returns Lend pool supply widget component V2\n */\nexport function LendWithdrawWidgetV2(props: LendWithdrawWidgetPropsV2) {\n return (\n <Widget {...props}>\n <LendWithdrawV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool add redemption widget props V2\n * @typedef {Object} AddRedemptionWidgetPropsV2\n * @property {AddRedemptionWidgetPropsV2} AddRedemptionWidgetPropsV2 - Lend pool add redemption props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype AddRedemptionWidgetPropsV2 = AddRedemptionPropsV2 & WidgetProps\n\n/**\n * Add redemption widget V2\n *\n * @param {AddRedemptionWidgetPropsV2} props - The lend pool add redemption widget props V2.\n * @returns Lend pool add redemption widget component V2\n */\nexport function AddRedemptionWidgetV2(props: AddRedemptionWidgetPropsV2) {\n return (\n <Widget {...props}>\n <AddRedemptionV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Lend pool cancel redemption widget props V2\n * @typedef {Object} CancelRedemptionWidgetPropsV2\n * @property {CancelRedemptionWidgetPropsV2} CancelRedemptionWidgetPropsV2 - Lend pool cancel redemption props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype CancelRedemptionWidgetPropsV2 = CancelRedemptionPropsV2 & WidgetProps\n\n/**\n * Cancel redemption widget V2\n *\n * @param {CancelRedemptionWidgetPropsV2} props - The lend pool cancel redemption widget props V2.\n * @returns Lend pool cancel redemption widget component V2\n */\nexport function CancelRedemptionWidgetV2(props: CancelRedemptionWidgetPropsV2) {\n return (\n <Widget {...props}>\n <CancelRedemptionV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Supply first loss cover widget props\n * @typedef {Object} SupplyFirstLossCoverWidgetProps\n * @property {SupplyFirstLossCover} SupplyFirstLossCover - Supply first loss cover props.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype SupplyFirstLossCoverWidgetProps = SupplyFirstLossCoverProps & WidgetProps\n\n/**\n * Supply first loss cover widget\n *\n * @param {SupplyFirstLossCoverWidgetProps} props - The supply first loss cover widget props.\n * @returns Supply first loss cover widget component\n */\nexport function SupplyFirstLossCoverWidget(\n props: SupplyFirstLossCoverWidgetProps,\n) {\n return (\n <Widget {...props}>\n <SupplyFirstLossCover {...props} />\n </Widget>\n )\n}\n\n/**\n * Superfluid factoring widget\n *\n * @param {WidgetProps} props - The superfluid factoring widget props.\n * @returns Superfluid factoring widget component\n */\nexport function SuperfluidFactoringWidget(props: WidgetProps) {\n return (\n <Widget {...props}>\n <SuperfluidFactoring />\n </Widget>\n )\n}\n\n/**\n * Auto payback widget props V2\n * @typedef {Object} AutoPaybackWidgetPropsV2\n * @property {AutoPayback} AutoPayback - Auto payback props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype AutoPaybackWidgetPropsV2 = AutoPaybackPropsV2 & WidgetProps\n\n/**\n * Supply first loss cover widget\n *\n * @param {SupplyFirstLossCoverWidgetProps} props - The supply first loss cover widget props.\n * @returns Supply first loss cover widget component\n */\nexport function AutoPaybackWidgetV2(props: AutoPaybackWidgetPropsV2) {\n return (\n <Widget {...props}>\n <AutoPaybackV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Receivable backed credit line pool borrow widget props V2\n * @typedef {Object} ReceivableBackedCreditLineBorrowWidgetPropsV2\n * @property {ReceivableBackedCreditLineBorrowPropsV2} ReceivableBackedCreditLineBorrowPropsV2 - Receivable backed credit line pool borrow props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype ReceivableBackedCreditLineBorrowWidgetPropsV2 =\n ReceivableBackedCreditLineBorrowPropsV2 & WidgetProps\n\n/**\n * Receivable backed credit line borrow widget V2\n *\n * @param {ReceivableBackedCreditLineBorrowWidgetPropsV2} props - The receivable backed credit line pool borrow widget props V2.\n * @returns Receivable backed credit line pool borrow widget component V2\n */\nexport function ReceivableBackedCreditLineBorrowWidgetV2(\n props: ReceivableBackedCreditLineBorrowWidgetPropsV2,\n) {\n return (\n <Widget {...props}>\n <ReceivableBackedCreditLineBorrowV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Receivable backed credit line pool payment widget props V2\n * @typedef {Object} ReceivableBackedCreditLinePaymentWidgetPropsV2\n * @property {ReceivableBackedCreditLinePaymentPropsV2} ReceivableBackedCreditLinePaymentPropsV2 - Receivable backed credit line pool payment props V2.\n * @property {WidgetProps} WidgetProps - Widget general props.\n */\ntype ReceivableBackedCreditLinePaymentWidgetPropsV2 =\n ReceivableBackedCreditLinePaymentPropsV2 & WidgetProps\n\n/**\n * Receivable backed credit line payment widget V2\n *\n * @param {ReceivableBackedCreditLinePaymentWidgetPropsV2} props - The receivable backed credit line pool payment widget props V2.\n * @returns Receivable backed credit line pool payment widget component V2\n */\nexport function ReceivableBackedCreditLinePaymentWidgetV2(\n props: ReceivableBackedCreditLinePaymentWidgetPropsV2,\n) {\n return (\n <Widget {...props}>\n <ReceivableBackedCreditLinePaymentV2 {...props} />\n </Widget>\n )\n}\n\n/**\n * Object representing the props passed to Solana widgets\n * @typedef {Object} GenericWidgetProps\n */\ntype GenericWidgetProps = {\n handleClose?: () => void\n}\n\nfunction GenericWidget(props: WCProps<GenericWidgetProps>) {\n const { children } = props\n\n return (\n <ThemeProvider theme={themeHuma}>\n <ReduxProvider store={store}>{children}</ReduxProvider>\n </ThemeProvider>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaLendSupplyWidgetProps\n */\ntype SolanaLendSupplyWidgetProps = SolanaLendSupplyProps & GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaLendSupplyWidgetProps} props - Widget props\n */\nexport function SolanaLendSupplyWidget(props: SolanaLendSupplyWidgetProps) {\n return (\n <GenericWidget {...props}>\n <SolanaLendSupply {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaLendAddRedemptionWidgetProps\n */\ntype SolanaLendAddRedemptionWidgetProps = SolanaLendAddRedemptionProps &\n GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaLendAddRedemptionWidgetProps} props - Widget props\n */\nexport function SolanaLendAddRedemptionWidget(\n props: SolanaLendAddRedemptionWidgetProps,\n) {\n return (\n <GenericWidget {...props}>\n <SolanaLendAddRedemption {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaLendCancelRedemptionWidgetProps\n */\ntype SolanaLendCancelRedemptionWidgetProps = SolanaLendCancelRedemptionProps &\n GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props\n */\nexport function SolanaLendCancelRedemptionWidget(\n props: SolanaLendCancelRedemptionWidgetProps,\n) {\n return (\n <GenericWidget {...props}>\n <SolanaLendCancelRedemption {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaBorrowWidgetProps\n */\ntype SolanaBorrowWidgetProps = SolanaBorrowProps & GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaBorrowWidgetProps} props - Widget props\n */\nexport function SolanaBorrowWidget(props: SolanaBorrowWidgetProps) {\n return (\n <GenericWidget {...props}>\n <SolanaBorrow {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaPaymentWidgetProps\n */\ntype SolanaPaymentWidgetProps = SolanaPaymentProps & GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaPaymentWidgetProps} props - Widget props\n */\nexport function SolanaPaymentWidget(props: SolanaPaymentWidgetProps) {\n return (\n <GenericWidget {...props}>\n <SolanaPayment {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Solana lend withdraw widget\n *\n * @param {SolanaLendWithdrawProps} props - The solana lend pool withdraw widget props.\n * @returns Solana lend pool withdraw widget component\n */\nexport function SolanaLendWithdrawWidget(props: SolanaLendWithdrawProps) {\n return (\n <GenericWidget {...props}>\n <SolanaLendWithdraw {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Stellar pools\n * @typedef {Object} StellarLendSupplyWidgetProps\n */\ntype StellarLendSupplyWidgetProps = StellarLendSupplyProps & GenericWidgetProps\n\n/**\n * Lend pool supply widget for Stellar pools\n *\n * @param {StellarLendSupplyWidgetProps} props - Widget props\n */\nexport function StellarLendSupplyWidget(props: StellarLendSupplyWidgetProps) {\n return (\n <GenericWidget {...props}>\n <StellarLendSupply {...props} />\n </GenericWidget>\n )\n}\n\n/**\n * Lend pool supply widget props for Solana pools\n * @typedef {Object} SolanaEnableAutoRedemptionWidgetProps\n */\ntype SolanaEnableAutoRedemptionWidgetProps = SolanaEnableAutoRedemptionProps &\n GenericWidgetProps\n\n/**\n * Lend pool supply widget for Solana pools\n *\n * @param {SolanaEnableAutoRedemptionWidgetProps} props - Widget props\n */\nexport function SolanaEnableAutoRedemptionWidget(\n props: SolanaEnableAutoRedemptionWidgetProps,\n) {\n return (\n <GenericWidget {...props}>\n <SolanaEnableAutoRedemption {...props} />\n </GenericWidget>\n )\n}\n\nexport * from './components/Notifi/NotifiContextWrapper'\n"],"names":["_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","useAppDispatch","useDispatch","useAppSelector","useSelector","WIDGET_STEP","initialWidgetState","widgetSlice","createSlice","name","initialState","reducers","resetState","state","errorReason","errorMessage","step","undefined","approval","borrowAmount","borrowAmountBN","chargedFees","borrowAmountNet","remainder","tokenId","paymentAmount","remainDueAmount","stream","multisend","supplyAmount","withdrawAmount","withdrawShares","redeemAmount","redeemShares","solanaSignature","txHash","setStep","_ref","payload","setApproval","_ref2","Number","terms","creditLimit","nextStep","Error","setBorrowInfo","_ref3","setTokenId","_ref4","setPaymentAmount","_ref5","setSupplyAmount","_ref6","setWithdrawAmount","_ref7","setWithdrawShares","_ref8","setRedeemAmount","_ref9","setRedeemShares","_ref10","setStream","_ref11","_state$stream","setMultisend","_ref12","setSolanaSignature","_ref13","setTxHash","_ref14","setPointsAccumulated","_ref15","pointsAccumulated","setError","_ref16","actions","reducer","ErrorModal","title","errorUrl","handleOk","okText","shouldResetState","theme","useTheme","dispatch","reset","useResetAtom","txAtom","styles","wrapper","css","_templateObject","header","_templateObject2","cssMixins","rowHCentered","spacing","sorry","_templateObject3","content","_templateObject4","errorIcon","_templateObject5","palette","error","main","messageWrapper","_templateObject6","text","primary","_templateObject7","bottomButtonGroup","_templateObject8","handleCloseModal","useCallback","_jsxs","Box","children","_jsx","Typography","variant","src","SorryImg","alt","ErrorOutlineIcon","Tooltip","placement","Button","fullWidth","onClick","openInNewTab","HumaModal","isOpen","onClose","overflow","overflowY","width","padding","disableBackdropClick","isXsSize","useMQ","process","env","NODE_ENV","handleClose","reason","Dialog","id","disableScrollLock","maxWidth","fullScreen","open","PaperProps","style","border","background","backdropFilter","borderRadius","event","HumaModalHeader","hideClose","allowBack","onBack","height","props","buttonBackWrapper","buttonClose","grey","common","white","buttonCloseWrapper","headerBand","ChevronLeftOutlinedIcon","CloseIcon","ChainSupportProvider","chainId","useWeb3React","chainSupported","supportedChainId","chainNotSupportedOpen","setChainNotSupportedOpen","useState","useEffect","selectWidgetState","widget","_path","_extends","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_defs","_circle","ReceiptIcon","ReceiptSvg","LoaderIcon","LoaderSvg","CheckIcon","CheckSvg","CheckGreenIcon","CheckGreenSvg","CheckCircleIcon","CheckCircleSvg","UsdcIcon","UsdcSvg","CeloIcon","CeloSvg","CongratulationsIcon","CongratulationsSvg","RibbonIcon","RibbonSvg","HumaPointsIcon","HumaPointsSvg","getIcon","icon","USDC","Celo","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","HumaLoading","minHeight","pathLength","count","setCount","intervalTime","interval","setInterval","element","document","querySelector","concat","visibility","pre","elements","querySelectorAll","forEach","clearInterval","rowCentered","WrapperModal","subTitle","secondary","bottom","LoadingModal","description","hideLoader","loader","WidgetWrapper","isLoading","loadingTitle","handleSuccess","failReason","txReceipt","useAtom","sendTxAtom","isTxFailed","Done","blockNumber","BottomButton","disabled","ViewOnExplorer","link","getExplorerUrl","component","ApproveAllowanceModal","poolInfo","showAutoPayback","allowanceAmount","spender","resetAfterSuccess","provider","account","poolUnderlyingToken","symbol","poolUnderlyingTokenContract","usePoolUnderlyingTokenContract","poolName","poolType","send","waitingForAccept","TxStateType","New","Success","iconWrapper","sendIncreaseAllowance","allowanceSpender","pool","targetAllowanceAmount","MaxUint256","currentAllowance","allowance","amountToIncrease","BigNumber","from","sub","lte","contract","method","params","useMount","AutoPaybackImg","ApproveAllowance","amount","TxDoneModal","subContent","handleAction","buttonText","colVCentered","check","doneButton","item","sx","marginTop","className","decimals","approvedAmount","setApprovedAmount","decodeLogs","logs","ERC20_ABI","payedAmount","downScale","args","formatMoney","CreditLineApprove","poolNameStr","poolTypeStr","POOL_NAME","POOL_TYPE","usePoolInfo","accountStats","useAccountStats","creditRecord","ApproveAllowanceModalV2","address","underlyingTokenContract","getERC20Contract","poolSafe","AutoPaybackV2","usePoolInfoV2","usePoolUnderlyingTokenInfoV2","autopayEnabled","usePoolSafeAllowanceV2","useEA","isWalletOwnershipVerificationRequired","isWalletOwnershipVerified","setAuthError","useAuthErrorHandling","checkIsDev","checkingEA","result","EAService","approve","e","EARejectionError","EARejectMessage","EARejectReason","message","SignIn","ApproveLenderImg","Evaluation","handleApprove","status","setStatus","fetchData","poolAddress","borrowerWalletAddress","assetAddress","checkWrapper","rowVCentered","checkIcon","congratsWrapper","goToNextStep","ChooseAmount","marginBottom","spinner","_Fragment","marginLeft","ChooseAmountModal","tokenIcon","description1","description2","currentAmount","sliderMax","tokenSymbol","topLeft","topRight","downLeft","downRight","actionText","payoffAmount","hideTerms","type","handleChangeAmount","inputTouched","setInputTouched","chosenAmountWrapper","chosenAmount","chosenAmountSymbol","inputAmountWrapper","inputAmount","rowSpaceBetweened","inputField","maxButton","_templateObject9","amountAvailable","_templateObject10","editIcon","_templateObject11","input","_templateObject12","slider","_templateObject13","info","_templateObject14","divider","_templateObject15","okButton","_templateObject16","_templateObject17","handleSliderChange","newValue","handleInputChange","target","handleSetMax","handleIncrement","newAmount","handleDecrement","handlePayoff","fontSize","size","toFixed","ArrowDropUpIcon","ArrowDropDownIcon","Slider","max","min","onChange","Input","placeholder","React","createElement","Divider","toUpperCase","getFeesCharged","useCLFeeManager","setChargedFees","setCurrentAmount","creditRecordStatic","creditAvailableAmount","approved","useCLPoolAllowance","newChargedFees","Transfer","ethers","utils","parseUnits","toJSON","aprInBps","TxSendModal","poolContract","usePoolContract","borrowAmountBNJson","hasNextStep","dueDate","timeUtil","timestampToLL","toNumber","formatNumber","validateDefaultTargetGroup","frontendClient","_await$frontendClient","targetGroup","fetchFusionData","find","group","NotifiSubscriptionModal","successText","showSuccessScreen","setShowSuccessScreen","setIsLoading","emailAddress","setEmailAddress","emailValid","setEmailValid","frontendClientStatus","isInitialized","isAuthenticated","isExpired","login","useNotifiFrontendClientContext","fusionEventTopics","useNotifiTenantConfigContext","subscribeAlertsDefault","useNotifiTopicContext","targetDocument","targetGroupId","updateTargetInputs","renewTargetGroup","useNotifiTargetContext","ftuStage","isLoadingFtuStage","updateFtuStage","useNotifiUserSettingContext","handleEmailAddressChange","_event$target$value","emailRegex","test","subscribe","FtuStage","_await$frontendClient2","_targetGroup$emailTar","emailTarget","emailTargets","isConfirmed","sendEmailTargetVerification","targetId","loginIfExpired","logInAndSubscribe","isDefaultTargetExist","disclaimer","inputWrapper","margin","TextField","label","color","focused","Notifications","useDoesChainSupportNotifi","notifiChainSupported","setNotifiChainSupported","checkNotifiChainSupported","doesChainSupportNotifi","useIsFirstTimeNotifiUser","isFirstTimeNotifiUser","setIsFirstTimeNotifiUser","isLoadingFtu","checkIsFirstTimeNotifiUser","CreditLineBorrow","refreshAccountStats","accountState","CreditState","Approved","approveCallback","setupNotificationsOrClose","InputAmountModal","suffix","defaultSuffix","minimumAmount","maxAmount","maxAmountText","maxAmountTitle","infos","maxWrapper","maxTitle","subInfo","replace","replaceAll","setMaxAmount","getDisabled","isEmpty","getEndAdornment","NumericFormat","decimalScale","thousandSeparator","customInput","InputProps","endAdornment","creditAvailable","creditAvailableFormatted","formatUnits","TxSendModalV2","creditContract","useCreditContractV2","nextDueDate","CreditLineBorrowV2","useCreditStatsV2","CreditStateV2","handleSuccessCallback","totalDueAmount","payAmount","upScale","toBigNumber","gt","paymentBigNumber","setPayedAmount","TRANSFER_ABI","CreditLinePayment","payoffAmountBN","totalDueAmountBN","paidAmount","setPaidAmount","CreditLinePaymentV2","creditConfigAccount","underlyingMint","useMemo","SolanaTokenUtils","String","JSON","parse","SolanaViewOnExplorer","signature","getSolanaExplorerUrl","SolanaTxSendModal","tx","publicKey","signTransaction","sendTransaction","useWallet","connection","useConnection","setSignature","showRetryScreen","setShowRetryScreen","useHighPriority","setUseHighPriority","refreshCount","refresh","useForceRefresh","retryHighPriorityButton","sendTx","txCopy","Transaction","instructions","txBlockhashData","getLatestBlockhash","recentBlockhash","blockhash","lastValidBlockHeight","feePayer","txAccounts","extractWritableAccounts","optimizedTx","buildOptimalTransactionFromConnection","REACT_APP_HELIUS_API_KEY","signedTx","signatureResult","sendRawTransaction","serialize","preflightCommitment","skipPreflight","maxRetries","_result$value","_result$value2","getSignatureStatus","searchTransactionHistory","confirmationStatus","_result$value3","err","latestBlockhash","sleep","console","log","handleRetry","highPriority","wallet","sentinel","getSentinelAddress","transaction","setTransaction","program","useHumaProgram","getTx","_borrowAmountBNJson$t","_tokenAccount$delegat","underlyingTokenATA","getTokenAccounts","tokenAccount","getAccount","TOKEN_PROGRAM_ID","TokenAccountNotFoundError","TokenInvalidAccountOwnerError","add","createAssociatedTokenAccountInstruction","PublicKey","ASSOCIATED_TOKEN_PROGRAM_ID","BN","delegatedAmount","delegate","createApproveCheckedInstruction","BigInt","creditStateAccount","getCreditAccounts","programTx","methods","drawdown","accountsPartial","borrower","humaConfig","poolConfig","poolState","creditConfig","creditState","poolAuthority","poolUnderlyingTokenAccount","borrowerUnderlyingToken","tokenProgram","SolanaTxDoneModal","epochEndTime","SolanaErrorModal","SolanaBorrow","useBorrowerAccounts","paymentAmountBN","makePayment","signer","tokensPaid","setTokensPaid","fetchTokensPaid","_txData$meta","_txData$meta2","txData","getTransaction","maxSupportedTransactionVersion","preTokenBalance","meta","preTokenBalances","uiTokenAmount","uiAmount","postTokenBalance","postTokenBalances","SolanaPayment","amountToDeposit","firstLossCovers","FirstLossCoverIndex","amountFormatted","firstLossCoverContract","useFirstLossCoverContractV2","SupplyFirstLossCover","requirement","useFirstLossCoverRequirementV2","useFirstLossCoverAllowanceV2","minAmountToDeposit","context","receivable","param","toHexString","_receivable","useFeeManager","setRemainder","getAvailableCreditLimit","principal","unbilledPrincipal","totalDue","feesAndInterestDue","creditLimitFormatted","token","decimal","ConfirmTransfer","ConfirmTransferModal","items","colStretch","transferWrapper","transfer","transferItem","arrow","arrowFirst","usdcIcon","_css","marginRight","leftText","ArrowForwardIosIcon","combineStyles","rightText","ApproveNFT","invoiceNFTContract","useInvoiceNFTContract","requestLoanBigNumber","InvoiceFactoringBorrow","useRFPoolAllowance","remainingDue","setRemainingDue","InvoiceFactoringPayment","ChooseTranche","selectedTranche","changeTranche","radioGroup","formControl","handleNext","FormControl","FormLabel","RadioGroup","FormControlLabel","control","Radio","trancheInfo","currentShares","setCurrentShares","maxSharesFormatted","shares","sharePrice","assets","depositRecord","useLenderDepositRecordV2","tranche","lpConfig","useLPConfigV2","nextEpochStartTime","useNextEpochStartTimeV2","SECONDS_IN_A_DAY","lockupEndTime","lastDepositTime","withdrawalLockoutPeriodInDays","lockupEndTimeDayjs","dayjs","unix","date","withdrawTime","handleChangeShares","newShares","trancheVaultContract","useTrancheVaultContractV2","redeemSharesBN","AddRedemptionV2","seniorTrancheInfo","setSeniorTrancheInfo","juniorTrancheInfo","setJuniorTrancheInfo","setTrancheInfo","trancheInfoFetched","getTrancheAssetsAndShares","then","handleRedeemSuccess","handleChangeTranche","trancheType","redemptionInfo","CancelRedemptionV2","useCancellableRedemptionInfoV2","lenderState","mintAccount","loading","isLoadingTrancheMintAccounts","useTrancheMintAccounts","seniorTokenAccount","juniorTokenAccount","isLoadingTokenAccounts","useTrancheTokenAccounts","_seniorTokenAccount$a","_seniorTokenAccount$a2","_juniorTokenAccount$a","_juniorTokenAccount$a2","_poolState$seniorTran","_poolState$juniorTran","supply","mintSupplyFormatted","seniorTrancheAssetsFormatted","seniorTrancheAssets","juniorTrancheAssetsFormatted","juniorTrancheAssets","withdrawalLockupPeriodDays","redeemBN","seniorTrancheATA","juniorTrancheATA","poolSeniorTrancheATA","poolJuniorTrancheATA","addRedemptionRequest","trancheMint","seniorTrancheMint","juniorTrancheMint","poolTrancheToken","lenderTrancheToken","TOKEN_2022_PROGRAM_ID","SolanaLendAddRedemption","seniorLenderStateAccount","juniorLenderStateAccount","isLoadingLenderAccounts","useLenderAccounts","setSelectedTranche","seniorTrancheShares","juniorTrancheShares","gtn","lten","lenderStatePDA","cancelRedemptionRequest","redemptionRecord","numSharesRequested","lender","trancheState","seniorTrancheState","juniorTrancheState","SolanaLendCancelRedemption","juniorLenderStateAccountPDA","seniorLenderStateAccountPDA","_seniorLenderStateAcc","_juniorLenderStateAcc","seniorTrancheSharesRequested","juniorTrancheSharesRequested","juniorLenderApprovedAccountPDA","seniorLenderApprovedAccountPDA","seniorTrancheMintSupply","juniorTrancheMintSupply","isLoadingTrancheTokenAccounts","poolAuthorityPubkey","notEnabledAutoRedeem","trancheDecimals","length","_poolState$withdrawal","lockupEndTimeUnix","withdrawTimeUnix","getLenderLockupDates","SolanaEnableAutoRedemption","PointsEarned","_lpConfig$withdrawalL","hasPointsAccumulated","lockupMonths","Math","round","monthText","congrats","ribbon","ribbonContent","entirePoints","tertiary","entirePointsDetails","everyday","PersonaEvaluation","campaign","networkType","chainType","documentHash","isDev","authErrorType","KYCCopies","KYC","Persona","loadingType","setLoadingType","kycCopy","setKYCCopy","verifyIdentity","inquiryId","setInquiryId","sessionToken","setSessionToken","verificationStatus","setVerificationStatus","showPersonaClient","setShowPersonaClient","KYCAutoStarted","setKYCAutoStarted","isKYCCompletedRef","useRef","isActionOngoingRef","isKYCResumedRef","checkVerificationStatus","current","IdentityServiceV2","getVerificationStatusV2","personaInquiryId","IdentityVerificationStatusV2","ACCREDITED","startVerificationResult","startVerification","BYPASSED","verificationBypassed","CREATED","PENDING","resumeVerificationResult","resumeVerification","EXPIRED","APPROVED","verificationApproved","DECLINED","verificationDeclined","NEEDS_REVIEW","verificationNeedsReview","CONSENTED_TO_SUBSCRIPTION","ApproveLender","includes","AUTH_ERROR_TYPE","NotSignedIn","signInRequired","UserRejected","Other","modalElement","getElementById","startKYC","client","Client","frameWidth","onReady","onComplete","onCancel","onError","identityStatus","points","Boolean","_poolInfo$KYC","juniorTrancheVault","seniorTrancheVault","CHAIN_TYPE","SOLANA","ApproveLenderBase","isUniTranche","chainSpecificData","useChainInfo","approveLender","trancheVault","tryAttempts","approveLenderAsync","_e$message","COMMON_ERROR_MESSAGE","indexOf","SOLANA_TRANSACTION_EXPIRED_BLOCKHEIGHT_EXCEEDED_ERROR","solanaChainInfo","SOLANA_CHAIN_INFO","getSolanaNetworkType","huma_program_id","poolProgram","pool_id","poolId","balance","juniorAvailableCapBN","seniorAvailableCapBN","maxSeniorJuniorRatio","liquidityCap","juniorTrancheAssetsBN","seniorTrancheAssetsBN","totalDeployedBN","totalAvailableCapBN","ltn","maxSeniorAssetsBN","muln","getTrancheCap","getMinAmount","minAmount","minDepositAmount","ceil","getMaxAmount","trancheCap","getInfos","currentAmountBN","remainingCap","supplyBigNumber","options","CampaignService","updateHumaAccountPoints","_seniorTrancheMintSup","_juniorTrancheMintSup","_poolState$seniorTran2","_poolState$juniorTran2","_seniorTrancheMintSup2","_juniorTrancheMintSup2","approvedLender","createLenderAccountsTx","createLenderAccounts","sharesAmount","convertToShares","existingShares","depositTx","deposit","depositor","depositorUnderlyingToken","depositorTrancheToken","underlyingTokenProgram","getSubContent","handleUserAction","isSuccess","SolanaLendSupply","seniorLenderApproved","juniorLenderApproved","isLoadingTokenAccount","useTokenAccount","withdrawableAmountFormatted","goToWithdraw","itemWrapper","itemValue","orientation","fontWeight","poolIsClosed","disburseTx","disburse","lenderUnderlyingToken","withdrawAfterPoolClosureTx","withdrawAfterPoolClosure","trancheTokenProgram","withdrawAmountFormatted","formatMoneyFixed","SolanaLendWithdraw","lenderStateAccount","trancheMintAccount","setSharePrice","totalAmountProcessed","totalAmountWithdrawn","withdrawableAmount","formatNumberFixed","withdrawnAmount","setWithdrawnAmount","_trancheMintAccount$s","trancheAssets","trancheAssetsVal","trancheSupplyVal","div","handleWithdrawSuccess","tokenBalance","underlyingToken","tokenDecimalUtils","StellarTxSendModal","txResult","signAndSend","hash","sendTransactionResponse","setTx","stellarAddress","useContext","StellarConnectionContext","chainMetadata","STELLAR_CHAINS_INFO","trancheVaultClient","TrancheVaultClient","contractId","seniorTranche","juniorTranche","getClientCommonParams","StellarViewOnExplorer","getStellarExplorerUrl","StellarTxDoneModal","StellarLendSupply","isLoadingStellarLender","isJuniorApprovedLender","isSeniorApprovedLender","useStellarLender","isLoadingTokenBalance","useStellarTokenBalance","EvaluationEA","handleApproveSuccess","setLoading","lenderWalletAddress","HumaSnackBar","autoHideDuration","severity","snackbar","alert","Snackbar","Alert","KYCProvider","JiaPoolCopies","emailSignatureLink","resendSignatureLink","docUnderReview","LoadingCopiesByType","sendDocSignatureLink","EvaluationKYC","kycProvider","code","kycPool","useParamsSearch","authError","KYCVerifyStatus","setKYCVerifyStatus","docSignatureStatus","setDocSignatureStatus","docSignatureCompleted","openSnackBar","setOpenSnackBar","envelopeKey","envelopeLastQueryTimeKey","envelopeDocuSignStatusKey","toLowerCase","checkGetDocSignatureStatusIsAvailable","lastQueryTime","localStorage","getItem","lastQueryTimeNumber","now","getUnixTimestamp","diff","fifteenMinutes","docuSignStatus","IdentityService","onboard","getVerificationStatus","isVerified","envelopeId","getDocSignatureStatus","setItem","removeItem","isNotOnboarded","issuerId","CHAINS","isTestnet","baseUrl","configUtil","getKYCProviderBaseUrl","originUrl","window","location","href","split","redirectUrl","providerAuthorizeUrl","requestDocSignature","resendDocSignatureLink","getEmailLinkSentSnackbar","_poolInfo$extra","lenderApprovalProvider","extra","isKYC","withdrawlLockoutSeconds","underlyingTokenBalance","depositAmount","needApprove","withdrawlLockoutDays","secondsToDays","events","to","LendSupply","usePoolAllowance","lenderApproved","refreshLenderApproved","useLenderApproved","refreshLenderPosition","useLenderPosition","useWithdrawlLockoutInSeconds","usePoolUnderlyingTokenBalance","balanceWithoutDecimals","handleSupplySuccess","Link","trancheLink","SecuritizeEvaluation","Securitize","KYC_PROVIDER","_poolInfo$KYC2","EVM","getEvmNetworkType","juniorAssets","juniorAssetsBN","seniorAssets","seniorAssetsBN","usePoolUnderlyingTokenBalanceV2","liquidityCapBN","lt","mul","getButtonText","LendSupplyV2","lenderApprovedSenior","useLenderApprovedV2","lenderApprovedJunior","useTrancheVaultAssetsV2","lenderApproveStatusFetched","uniTrancheNotEvaluated","tranchesNotEvaluated","supplyLink","CheckWithdrawable","useLastDepositTime","currentTimestamp","lenderPosition","poolBalance","withdrawableAmountBN","withdrawBigNumber","LendWithdraw","refreshPoolBalance","usePoolBalance","eq","redemptionStatus","lenderRedemptionRecords","cancellableRedemptionShares","sharesProcessed","formatAmount","withdrawableAssets","vaultContract","getTrancheVaultContractV2","LendWithdrawV2","setRedemptionStatus","setPoolIsClosed","getTrancheRedemptionStatusV2","getPoolContractV2","isPoolClosed","NotifiContextWrapper","providers","JsonRpcProvider","getSigner","cardId","ChainEnum","Alfajores","_process$env$REACT_AP","REACT_APP_NOTIFI_CONFIG_ID_CELO","Polygon","Amoy","_process$env$REACT_AP2","REACT_APP_NOTIFI_CONFIG_ID_POLYGON","Scroll","ScrollSepolia","_process$env$REACT_AP3","REACT_APP_NOTIFI_CONFIG_ID_SCROLL","NotifiContextProvider","tenantId","signMessage","arrayify","walletPublicKey","walletBlockchain","getBlockchainConfigFromChain","receivableInfo","useReceivableInfoV2","maxAmountBN","receivableAmountBN","receivableAmount","ApproveReceivable","receivableContract","useReceivableContractV2","poolCredit","drawdownWithReceivable","wait","ReceivableBackedCreditLineBorrowV2","ChoosePaymentType","paymentType","changePaymentType","PaymentType","PaymentWithReceivable","PaymentWithReceivableAndDrawdown","MintNFT","CreateReceivable","getTokenIdFromReceipt","_event$args","Array","isArray","humaContext","HumaContext","receivableFactory","HumaReceivableFactory","maturityDate","moment","createReceivable","CURRENCY_CODE","USD","paymentTokenId","borrowTokenId","setSuccessTxReceipt","makePaymentWithReceivable","makePrincipalPaymentAndDrawdownWithReceivable","successTxReceipt","ReceivableBackedCreditLinePaymentV2","setPaymentType","setBorrowTokenId","paymentReceivableInfo","payerAddress","superToken","payerWalletAddress","getAddress","currentFlowRate","borrowPeriodInSeconds","intervalInDays","superTokenDecimals","underlyingTokenDecimals","borrowMaxAmount","getBorrowFlowrateAndAmount","currentFlowRateBN","borrowAmountSuperTokenBN","totalAmountSuperTokenInBorrowPeriod","borrowFlowrate","gte","newBorrowAmountBN","newBorrowAmount","newBorrowAmountUnderlyingTokenBN","durationInSeconds","Permit","poolProcessor","getTradableStreamPermitMessage","useERC2612Permit","getDrawdownCallData","NFTPermitResult","drawdownEncodedData","defaultAbiCoder","encode","expiry","v","r","s","poolProcessorContract","Contract","SuperfluidPoolProcessor_ABI","interface","encodeFunctionData","callData","addresses","drawdownCalldata","push","multiSendContract","useMultiSendContract","StreamFactoringBorrow","SuperfluidFactoring","_PoolMap$Stream$poolN","Superfluid","actionType","modalIsOpen","selectedItem","handleGetPaidSuccess","useFactoring","Stream","PoolMap","borrowDesc","payer","flowrate","store","configureStore","widgetsReducers","breakpoints","values","xs","sm","md","lg","xl","components","MuiButton","defaultProps","disableElevation","styleOverrides","contained","outlined","backgroundClip","textFillColor","root","backgroundColor","boxShadow","textTransform","MuiButtonBase","MuiCssBaseline","dd","dl","dt","coreThemeConstants","fontFamily","join","letterSpacing","lineHeight","spacingBase","createTheme","appHeaderHeight","appFooterHeight","colCentered","colHCentered","rowStretch","rowFlexEnd","spaceSimpleH","spaceSimpleV","stretchAll","stretchBottom","stretchTop","primaryPurple","primaryBlueLight","pendingBlue","pendingBlueMid","pendingBlueLight","warningRed","warningRedLight","warningRedPastel","darkBackground","black","orange","yellow","green","blue","paletteCore","contrastText","dark","light","default","paper","superDark","superLight","mode","success","quaternary","warning","shape","typography","body1","body2","body2Small","fontWeightBold","fontWeightLight","fontWeightMedium","fontWeightRegular","h1","h2","h3","h3Large","h4","h5","h6","labsSmall","nav","navSub","themeBase","themeHuma","Widget","setChainId","getChainId","network","getNetwork","ThemeProvider","ReduxProvider","AtomProvider","InvoiceFactoringBorrowWidget","InvoiceFactoringPaymentWidget","CreditLineBorrowWidget","CreditLineBorrowWidgetV2","CreditLinePaymentWidget","CreditLinePaymentWidgetV2","CreditLineApproveWidget","LendSupplyWidget","LendSupplyWidgetV2","LendWithdrawWidget","LendWithdrawWidgetV2","AddRedemptionWidgetV2","CancelRedemptionWidgetV2","SupplyFirstLossCoverWidget","SuperfluidFactoringWidget","AutoPaybackWidgetV2","ReceivableBackedCreditLineBorrowWidgetV2","ReceivableBackedCreditLinePaymentWidgetV2","GenericWidget","SolanaLendSupplyWidget","SolanaLendAddRedemptionWidget","SolanaLendCancelRedemptionWidget","SolanaBorrowWidget","SolanaPaymentWidget","SolanaLendWithdrawWidget","StellarLendSupplyWidget","SolanaEnableAutoRedemptionWidget"],"mappings":"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"}
|