@huma-finance/widgets 0.0.61-beta.543 → 0.0.61-beta.546
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +103 -105
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +104 -106
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/components/Lend/supplyV2/2-Evaluation.tsx +0 -4
- package/src/components/Lend/supplyV2/8-PointsEarned.tsx +87 -85
- package/src/components/Lend/supplyV2/components/PersonaEvaluation.tsx +14 -48
- package/src/components/Lend/supplyV2/index.tsx +9 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
|
|
2
2
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
|
3
3
|
import { Provider } from '@web3-react/types';
|
|
4
|
-
import { POOL_NAME, POOL_TYPE, TrancheType } from '@huma-finance/shared';
|
|
4
|
+
import { POOL_NAME, POOL_TYPE, TrancheType, IdentityVerificationStatusV2 } from '@huma-finance/shared';
|
|
5
5
|
import { BigNumberish, BigNumber } from 'ethers';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -190,14 +190,14 @@ interface Campaign {
|
|
|
190
190
|
* @property {POOL_NAME} poolName The name of the pool.
|
|
191
191
|
* @property {boolean} pointsTestnetExperience If the user is in the testnet experience.
|
|
192
192
|
* @property {Campaign} campaign The campaign info.
|
|
193
|
-
* @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.
|
|
193
|
+
* @property {function((IdentityVerificationStatusV2|undefined)):void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.
|
|
194
194
|
* @property {function((number|undefined)):void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful.
|
|
195
195
|
*/
|
|
196
196
|
interface LendSupplyPropsV2 {
|
|
197
197
|
poolName: keyof typeof POOL_NAME;
|
|
198
198
|
pointsTestnetExperience: boolean;
|
|
199
199
|
campaign?: Campaign;
|
|
200
|
-
handleClose: () => void;
|
|
200
|
+
handleClose: (identityStatus?: IdentityVerificationStatusV2) => void;
|
|
201
201
|
handleSuccess?: (blockNumber?: number) => void;
|
|
202
202
|
}
|
|
203
203
|
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
|
2
|
-
import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, useDebouncedValue, usePoolUnderlyingTokenBalanceV2,
|
|
2
|
+
import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, useDebouncedValue, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, usePoolUnderlyingToken, useFactoring, Provider as Provider$1 } from '@huma-finance/web-shared';
|
|
3
3
|
import { useTheme, css, Box, Typography, Tooltip, Button, Dialog, Slider, Input, Divider, TextField, FormControl, FormLabel, RadioGroup, FormControlLabel, Radio, Snackbar, Alert, Skeleton, TablePagination, LinearProgress, createTheme, ThemeProvider } from '@mui/material';
|
|
4
4
|
import { useAtom, Provider as Provider$2 } from 'jotai';
|
|
5
5
|
import * as React from 'react';
|
|
@@ -5504,7 +5504,6 @@ function PersonaEvaluation(_ref) {
|
|
|
5504
5504
|
let {
|
|
5505
5505
|
poolInfo,
|
|
5506
5506
|
isUniTranche,
|
|
5507
|
-
minDepositAmount: minDepositAmountBN,
|
|
5508
5507
|
campaign,
|
|
5509
5508
|
pointsTestnetExperience,
|
|
5510
5509
|
changeTranche,
|
|
@@ -5530,7 +5529,6 @@ function PersonaEvaluation(_ref) {
|
|
|
5530
5529
|
const [sessionToken, setSessionToken] = useState();
|
|
5531
5530
|
const [verificationStatus, setVerificationStatus] = useState();
|
|
5532
5531
|
const [showPersonaClient, setShowPersonaClient] = useState(false);
|
|
5533
|
-
const [campaignBasePoints, setCampaignBasePoints] = useState(0);
|
|
5534
5532
|
const isKYCCompletedRef = useRef(false);
|
|
5535
5533
|
const isActionOngoingRef = useRef(false);
|
|
5536
5534
|
const isKYCResumedRef = useRef(false);
|
|
@@ -5543,26 +5541,6 @@ function PersonaEvaluation(_ref) {
|
|
|
5543
5541
|
};
|
|
5544
5542
|
createNewWallet();
|
|
5545
5543
|
}, [account, campaign, isDev, isWalletOwnershipVerified, pointsTestnetExperience]);
|
|
5546
|
-
useEffect(() => {
|
|
5547
|
-
const getBasePoints = async () => {
|
|
5548
|
-
if (campaign) {
|
|
5549
|
-
const estimatedPoints = await CampaignService.getEstimatedPoints(campaign.campaignGroupId, minDepositAmountBN.toString(), isDev, pointsTestnetExperience);
|
|
5550
|
-
const campaignPoints = estimatedPoints.find(item => item.campaignId === campaign.id);
|
|
5551
|
-
if (campaignPoints) {
|
|
5552
|
-
const {
|
|
5553
|
-
juniorTranchePoints,
|
|
5554
|
-
seniorTranchePoints
|
|
5555
|
-
} = campaignPoints;
|
|
5556
|
-
if (isUniTranche) {
|
|
5557
|
-
setCampaignBasePoints(juniorTranchePoints !== null && juniorTranchePoints !== void 0 ? juniorTranchePoints : 0);
|
|
5558
|
-
} else {
|
|
5559
|
-
setCampaignBasePoints(juniorTranchePoints < seniorTranchePoints ? juniorTranchePoints : seniorTranchePoints);
|
|
5560
|
-
}
|
|
5561
|
-
}
|
|
5562
|
-
}
|
|
5563
|
-
};
|
|
5564
|
-
getBasePoints();
|
|
5565
|
-
}, [campaign, isDev, isUniTranche, minDepositAmountBN, pointsTestnetExperience]);
|
|
5566
5544
|
const approveLender = useCallback(async () => {
|
|
5567
5545
|
try {
|
|
5568
5546
|
isActionOngoingRef.current = true;
|
|
@@ -5636,7 +5614,8 @@ function PersonaEvaluation(_ref) {
|
|
|
5636
5614
|
}
|
|
5637
5615
|
case IdentityVerificationStatusV2.APPROVED:
|
|
5638
5616
|
{
|
|
5639
|
-
|
|
5617
|
+
setKYCCopy(KYCCopies.verificationApproved);
|
|
5618
|
+
setLoadingType(undefined);
|
|
5640
5619
|
break;
|
|
5641
5620
|
}
|
|
5642
5621
|
case IdentityVerificationStatusV2.DECLINED:
|
|
@@ -5651,6 +5630,11 @@ function PersonaEvaluation(_ref) {
|
|
|
5651
5630
|
setLoadingType(undefined);
|
|
5652
5631
|
break;
|
|
5653
5632
|
}
|
|
5633
|
+
case IdentityVerificationStatusV2.CONSENTED_TO_SUBSCRIPTION:
|
|
5634
|
+
{
|
|
5635
|
+
await approveLender();
|
|
5636
|
+
break;
|
|
5637
|
+
}
|
|
5654
5638
|
default:
|
|
5655
5639
|
break;
|
|
5656
5640
|
}
|
|
@@ -5705,6 +5689,7 @@ function PersonaEvaluation(_ref) {
|
|
|
5705
5689
|
const client = new Persona.Client({
|
|
5706
5690
|
inquiryId,
|
|
5707
5691
|
sessionToken,
|
|
5692
|
+
frameWidth: '480px',
|
|
5708
5693
|
onReady: () => {
|
|
5709
5694
|
client.open();
|
|
5710
5695
|
setShowPersonaClient(true);
|
|
@@ -5738,7 +5723,8 @@ function PersonaEvaluation(_ref) {
|
|
|
5738
5723
|
break;
|
|
5739
5724
|
case IdentityVerificationStatusV2.DECLINED:
|
|
5740
5725
|
case IdentityVerificationStatusV2.NEEDS_REVIEW:
|
|
5741
|
-
|
|
5726
|
+
case IdentityVerificationStatusV2.APPROVED:
|
|
5727
|
+
handleClose(verificationStatus.status);
|
|
5742
5728
|
break;
|
|
5743
5729
|
}
|
|
5744
5730
|
}
|
|
@@ -5757,16 +5743,11 @@ function PersonaEvaluation(_ref) {
|
|
|
5757
5743
|
src: ApproveLenderImg,
|
|
5758
5744
|
alt: "approve-lender"
|
|
5759
5745
|
})
|
|
5760
|
-
}), campaign && kycCopy === KYCCopies.verifyIdentity ?
|
|
5746
|
+
}), campaign && kycCopy === KYCCopies.verifyIdentity ? jsx(Box, {
|
|
5761
5747
|
css: styles.description,
|
|
5762
|
-
children:
|
|
5763
|
-
children: "You'll be rewarded with
|
|
5764
|
-
})
|
|
5765
|
-
css: styles.points,
|
|
5766
|
-
children: [' ', formatNumber(campaignBasePoints), " Huma points", ' ']
|
|
5767
|
-
}), jsx("span", {
|
|
5768
|
-
children: "after completing KYC and your first investment."
|
|
5769
|
-
})]
|
|
5748
|
+
children: jsx("span", {
|
|
5749
|
+
children: "You'll be rewarded with Huma points after completing KYC/KYB and your first investment."
|
|
5750
|
+
})
|
|
5770
5751
|
}) : jsx(Box, {
|
|
5771
5752
|
css: styles.description,
|
|
5772
5753
|
children: kycCopy.description
|
|
@@ -6021,7 +6002,6 @@ function Evaluation$1(_ref) {
|
|
|
6021
6002
|
let {
|
|
6022
6003
|
poolInfo,
|
|
6023
6004
|
isUniTranche,
|
|
6024
|
-
minDepositAmount,
|
|
6025
6005
|
campaign,
|
|
6026
6006
|
pointsTestnetExperience,
|
|
6027
6007
|
changeTranche,
|
|
@@ -6040,7 +6020,6 @@ function Evaluation$1(_ref) {
|
|
|
6040
6020
|
isUniTranche: isUniTranche,
|
|
6041
6021
|
pointsTestnetExperience: pointsTestnetExperience,
|
|
6042
6022
|
campaign: campaign,
|
|
6043
|
-
minDepositAmount: minDepositAmount,
|
|
6044
6023
|
changeTranche: changeTranche
|
|
6045
6024
|
});
|
|
6046
6025
|
}
|
|
@@ -6272,8 +6251,8 @@ var STATE = /*#__PURE__*/function (STATE) {
|
|
|
6272
6251
|
STATE["SignIn"] = "SignIn";
|
|
6273
6252
|
STATE["Congrats"] = "Congrats";
|
|
6274
6253
|
return STATE;
|
|
6275
|
-
}(STATE || {});
|
|
6276
|
-
|
|
6254
|
+
}(STATE || {}); // const ERROR_MESSAGE =
|
|
6255
|
+
// 'Failed to update wallet points. Be assured that your points will be added later.'
|
|
6277
6256
|
function PointsEarned(_ref) {
|
|
6278
6257
|
let {
|
|
6279
6258
|
transactionHash,
|
|
@@ -6289,70 +6268,87 @@ function PointsEarned(_ref) {
|
|
|
6289
6268
|
chainId
|
|
6290
6269
|
} = useWeb3React();
|
|
6291
6270
|
const [pointsAccumulated, setPointsAccumulated] = useState();
|
|
6271
|
+
const hasPointsAccumulated = !isEmpty(pointsAccumulated) && pointsAccumulated > 0;
|
|
6292
6272
|
const lockupMonths = Math.round(lpConfig.withdrawalLockoutPeriodInDays / 30);
|
|
6293
6273
|
const monthText = lockupMonths > 1 ? "".concat(lockupMonths, " months") : "".concat(lockupMonths, " month");
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6274
|
+
|
|
6275
|
+
// const {
|
|
6276
|
+
// errorType,
|
|
6277
|
+
// setError: setAuthError,
|
|
6278
|
+
// isWalletOwnershipVerified,
|
|
6279
|
+
// isWalletOwnershipVerificationRequired,
|
|
6280
|
+
// } = useAuthErrorHandling(isDev)
|
|
6281
|
+
// const [walletOwnership, setWalletOwnership] = useState<boolean | undefined>()
|
|
6301
6282
|
const [state, setState] = useState(STATE.Loading);
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
}
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6283
|
+
|
|
6284
|
+
// useEffect(() => {
|
|
6285
|
+
// if (isWalletOwnershipVerificationRequired) {
|
|
6286
|
+
// setState(STATE.Loading)
|
|
6287
|
+
// }
|
|
6288
|
+
// }, [isWalletOwnershipVerificationRequired])
|
|
6289
|
+
|
|
6290
|
+
// useEffect(() => {
|
|
6291
|
+
// if (isWalletOwnershipVerified) {
|
|
6292
|
+
// setWalletOwnership(true)
|
|
6293
|
+
// }
|
|
6294
|
+
// }, [isWalletOwnershipVerified])
|
|
6295
|
+
|
|
6296
|
+
// useEffect(() => {
|
|
6297
|
+
// const checkWalletOwnership = async () => {
|
|
6298
|
+
// const ownership = await CampaignService.checkWalletOwnership(
|
|
6299
|
+
// account!,
|
|
6300
|
+
// isDev,
|
|
6301
|
+
// pointsTestnetExperience,
|
|
6302
|
+
// )
|
|
6303
|
+
// setWalletOwnership(ownership)
|
|
6304
|
+
// if (!ownership) {
|
|
6305
|
+
// setAuthError('WalletNotSignInException')
|
|
6306
|
+
// }
|
|
6307
|
+
// }
|
|
6308
|
+
// checkWalletOwnership()
|
|
6309
|
+
// }, [account, isDev, pointsTestnetExperience, setAuthError])
|
|
6310
|
+
|
|
6311
|
+
// useEffect(() => {
|
|
6312
|
+
// if (errorType === 'NotSignedIn') {
|
|
6313
|
+
// setState(STATE.SignIn)
|
|
6314
|
+
// } else if (errorType === 'UserRejected') {
|
|
6315
|
+
// dispatch(
|
|
6316
|
+
// setError({
|
|
6317
|
+
// errorMessage: 'User has rejected the transaction.',
|
|
6318
|
+
// }),
|
|
6319
|
+
// )
|
|
6320
|
+
// } else if (errorType === 'Other') {
|
|
6321
|
+
// dispatch(
|
|
6322
|
+
// setError({
|
|
6323
|
+
// errorMessage: ERROR_MESSAGE,
|
|
6324
|
+
// }),
|
|
6325
|
+
// )
|
|
6326
|
+
// }
|
|
6327
|
+
// }, [dispatch, errorType])
|
|
6328
|
+
|
|
6335
6329
|
useEffect(() => {
|
|
6336
6330
|
const updateWalletPoints = async () => {
|
|
6337
|
-
if (walletOwnership) {
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
}
|
|
6331
|
+
// if (walletOwnership) {
|
|
6332
|
+
try {
|
|
6333
|
+
// const result = await CampaignService.updateWalletPoints(
|
|
6334
|
+
// account!,
|
|
6335
|
+
// transactionHash,
|
|
6336
|
+
// chainId!,
|
|
6337
|
+
// isDev,
|
|
6338
|
+
// pointsTestnetExperience,
|
|
6339
|
+
// )
|
|
6340
|
+
// setPointsAccumulated(result.pointsAccumulated)
|
|
6341
|
+
setPointsAccumulated(5000);
|
|
6342
|
+
setState(STATE.Congrats);
|
|
6343
|
+
} catch (error) {
|
|
6344
|
+
console.error('Failed to update wallet points', error);
|
|
6352
6345
|
}
|
|
6346
|
+
// }
|
|
6353
6347
|
};
|
|
6354
6348
|
updateWalletPoints();
|
|
6355
|
-
}, [account, chainId, dispatch, isDev, pointsTestnetExperience, transactionHash
|
|
6349
|
+
}, [account, chainId, dispatch, isDev, pointsTestnetExperience, transactionHash
|
|
6350
|
+
// walletOwnership,
|
|
6351
|
+
]);
|
|
6356
6352
|
const styles = {
|
|
6357
6353
|
wrapper: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
|
|
6358
6354
|
congrats: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
|
|
@@ -6377,17 +6373,21 @@ function PointsEarned(_ref) {
|
|
|
6377
6373
|
css: styles.ribbon,
|
|
6378
6374
|
children: [jsx(RibbonIcon, {}), jsxs(Box, {
|
|
6379
6375
|
css: styles.ribbonContent,
|
|
6380
|
-
children: [jsx(HumaPointsIcon, {}),
|
|
6381
|
-
children:
|
|
6376
|
+
children: [jsx(HumaPointsIcon, {}), jsx(Box, {
|
|
6377
|
+
children: hasPointsAccumulated ? "".concat(formatNumber(pointsAccumulated), " Points") : 'Points earned'
|
|
6382
6378
|
})]
|
|
6383
6379
|
})]
|
|
6384
|
-
}),
|
|
6380
|
+
}), jsx(Box, {
|
|
6385
6381
|
css: styles.entirePoints,
|
|
6386
|
-
children:
|
|
6387
|
-
children:
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6382
|
+
children: hasPointsAccumulated ? jsxs(Fragment, {
|
|
6383
|
+
children: [jsx(Box, {
|
|
6384
|
+
children: "Congratulations,"
|
|
6385
|
+
}), jsxs(Box, {
|
|
6386
|
+
children: ["you've earned ", pointsAccumulated, " points"]
|
|
6387
|
+
})]
|
|
6388
|
+
}) : jsx(Box, {
|
|
6389
|
+
children: "Congratulations on joining the Huma Protocol!"
|
|
6390
|
+
})
|
|
6391
6391
|
}), jsxs(Box, {
|
|
6392
6392
|
css: styles.entirePointsDetails,
|
|
6393
6393
|
children: ["You'll earn points ", jsx("span", {
|
|
@@ -6429,7 +6429,6 @@ function LendSupplyV2(_ref) {
|
|
|
6429
6429
|
const [selectedTranche, setSelectedTranche] = useState();
|
|
6430
6430
|
const [transactionHash, setTransactionHash] = useState();
|
|
6431
6431
|
const poolUnderlyingToken = usePoolUnderlyingTokenInfoV2(poolName, provider);
|
|
6432
|
-
const poolSettings = usePoolSettingsV2(poolName, provider);
|
|
6433
6432
|
const lpConfig = useLPConfigV2(poolName, provider);
|
|
6434
6433
|
const isUniTranche = (lpConfig === null || lpConfig === void 0 ? void 0 : lpConfig.maxSeniorJuniorRatio) === 0;
|
|
6435
6434
|
const [lenderApprovedSenior] = useLenderApprovedV2(poolName, 'senior', account, provider);
|
|
@@ -6470,7 +6469,7 @@ function LendSupplyV2(_ref) {
|
|
|
6470
6469
|
}
|
|
6471
6470
|
}
|
|
6472
6471
|
}, [dispatch, handleClose, isUniTranche, lenderApproveStatusFetched, lenderApprovedJunior, lenderApprovedSenior, lpConfig, poolInfo, campaign, step]);
|
|
6473
|
-
if (!poolInfo || !poolUnderlyingToken || !lenderApproveStatusFetched || !lpConfig
|
|
6472
|
+
if (!poolInfo || !poolUnderlyingToken || !lenderApproveStatusFetched || !lpConfig) {
|
|
6474
6473
|
return jsx(WidgetWrapper, {
|
|
6475
6474
|
isOpen: true,
|
|
6476
6475
|
isLoading: true,
|
|
@@ -6494,8 +6493,7 @@ function LendSupplyV2(_ref) {
|
|
|
6494
6493
|
isUniTranche: isUniTranche,
|
|
6495
6494
|
changeTranche: setSelectedTranche,
|
|
6496
6495
|
pointsTestnetExperience: pointsTestnetExperience,
|
|
6497
|
-
campaign: campaign
|
|
6498
|
-
minDepositAmount: poolSettings.minDepositAmount
|
|
6496
|
+
campaign: campaign
|
|
6499
6497
|
}), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
|
|
6500
6498
|
poolInfo: poolInfo,
|
|
6501
6499
|
poolUnderlyingToken: poolUnderlyingToken,
|