@sodax/sdk 1.0.1-beta-rc3 → 1.0.1-beta
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/index.cjs +115 -47
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.mjs +115 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -6933,6 +6933,11 @@ var ConfigService = class {
|
|
|
6933
6933
|
getMoneyMarketTokens() {
|
|
6934
6934
|
return this.sodaxConfig.supportedMoneyMarketTokens;
|
|
6935
6935
|
}
|
|
6936
|
+
getMoneyMarketToken(chainId, token) {
|
|
6937
|
+
return this.sodaxConfig.supportedMoneyMarketTokens[chainId].find(
|
|
6938
|
+
(t) => t.address.toLowerCase() === token.toLowerCase()
|
|
6939
|
+
);
|
|
6940
|
+
}
|
|
6936
6941
|
getMoneyMarketReserveAssets() {
|
|
6937
6942
|
return this.sodaxConfig.supportedMoneyMarketReserveAssets;
|
|
6938
6943
|
}
|
|
@@ -6952,7 +6957,10 @@ var ConfigService = class {
|
|
|
6952
6957
|
return this.supportedSodaVaultAssetsSet.has(vault.toLowerCase());
|
|
6953
6958
|
}
|
|
6954
6959
|
isValidVault(vault) {
|
|
6955
|
-
|
|
6960
|
+
if (typeof vault === "string") {
|
|
6961
|
+
return this.isValidSodaVaultAsset(vault);
|
|
6962
|
+
}
|
|
6963
|
+
return this.isValidSodaVaultAsset(vault.address);
|
|
6956
6964
|
}
|
|
6957
6965
|
isValidChainHubAsset(chainId, hubAsset) {
|
|
6958
6966
|
return this.chainIdToHubAssetsMap.get(chainId)?.has(hubAsset.toLowerCase()) ?? false;
|
|
@@ -13374,7 +13382,7 @@ var SonicSpokeService = class _SonicSpokeService {
|
|
|
13374
13382
|
const aTokenAddress = (await dataService.getReserveData(vaultAddress)).aTokenAddress;
|
|
13375
13383
|
return {
|
|
13376
13384
|
aTokenAddress,
|
|
13377
|
-
aTokenAmount: amount,
|
|
13385
|
+
aTokenAmount: EvmVaultTokenService.translateIncomingDecimals(assetConfig.decimal, amount),
|
|
13378
13386
|
token
|
|
13379
13387
|
};
|
|
13380
13388
|
}
|
|
@@ -13387,12 +13395,15 @@ var SonicSpokeService = class _SonicSpokeService {
|
|
|
13387
13395
|
* @param configService - The config service
|
|
13388
13396
|
* @returns BorrowInfo containing variable debt token address and vault address
|
|
13389
13397
|
*/
|
|
13390
|
-
static async getBorrowInfo(token, amount, chainId, dataService, configService) {
|
|
13398
|
+
static async getBorrowInfo(token, amount, chainId, dataService, configService, moneyMarketConfig) {
|
|
13391
13399
|
const assetConfig = configService.getHubAssetInfo(chainId, token);
|
|
13392
13400
|
if (!assetConfig) {
|
|
13393
13401
|
throw new Error("[SonicSpokeService.getBorrowInfo] Hub asset not found");
|
|
13394
13402
|
}
|
|
13395
|
-
|
|
13403
|
+
let vaultAddress = assetConfig.vault;
|
|
13404
|
+
if (moneyMarketConfig.bnUSDVault.toLowerCase() === vaultAddress.toLowerCase()) {
|
|
13405
|
+
vaultAddress = moneyMarketConfig.bnUSD;
|
|
13406
|
+
}
|
|
13396
13407
|
const reserveData = await dataService.getReserveData(vaultAddress);
|
|
13397
13408
|
const variableDebtTokenAddress = reserveData.variableDebtTokenAddress;
|
|
13398
13409
|
return {
|
|
@@ -13604,10 +13615,18 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
13604
13615
|
try {
|
|
13605
13616
|
invariant6__default.default(params.amount > 0n, "Amount must be greater than 0");
|
|
13606
13617
|
invariant6__default.default(params.token.length > 0, "Token is required");
|
|
13607
|
-
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13618
|
+
if (params.action === "withdraw" || params.action === "borrow") {
|
|
13619
|
+
const toChainId = params.toChainId ?? spokeProvider.chainConfig.chain.id;
|
|
13620
|
+
invariant6__default.default(
|
|
13621
|
+
this.configService.isMoneyMarketSupportedToken(toChainId, params.token),
|
|
13622
|
+
`Unsupported spoke chain (${toChainId}) token: ${params.token}`
|
|
13623
|
+
);
|
|
13624
|
+
} else {
|
|
13625
|
+
invariant6__default.default(
|
|
13626
|
+
this.configService.isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
|
|
13627
|
+
`Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
|
|
13628
|
+
);
|
|
13629
|
+
}
|
|
13611
13630
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
13612
13631
|
if (spokeProvider instanceof StellarSpokeProvider && (params.action === "supply" || params.action === "repay")) {
|
|
13613
13632
|
return {
|
|
@@ -13645,7 +13664,8 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
13645
13664
|
params.amount,
|
|
13646
13665
|
params.toChainId ?? spokeProvider.chainConfig.chain.id,
|
|
13647
13666
|
this.data,
|
|
13648
|
-
this.configService
|
|
13667
|
+
this.configService,
|
|
13668
|
+
this.config
|
|
13649
13669
|
);
|
|
13650
13670
|
return await SonicSpokeService.isBorrowApproved(
|
|
13651
13671
|
walletAddress,
|
|
@@ -13709,10 +13729,18 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
13709
13729
|
try {
|
|
13710
13730
|
invariant6__default.default(params.amount > 0n, "Amount must be greater than 0");
|
|
13711
13731
|
invariant6__default.default(params.token.length > 0, "Token is required");
|
|
13712
|
-
|
|
13713
|
-
|
|
13714
|
-
|
|
13715
|
-
|
|
13732
|
+
if (params.action === "withdraw" || params.action === "borrow") {
|
|
13733
|
+
const toChainId = params.toChainId ?? spokeProvider.chainConfig.chain.id;
|
|
13734
|
+
invariant6__default.default(
|
|
13735
|
+
this.configService.isMoneyMarketSupportedToken(toChainId, params.token),
|
|
13736
|
+
`Unsupported spoke chain (${toChainId}) token: ${params.token}`
|
|
13737
|
+
);
|
|
13738
|
+
} else {
|
|
13739
|
+
invariant6__default.default(
|
|
13740
|
+
this.configService.isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
|
|
13741
|
+
`Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
|
|
13742
|
+
);
|
|
13743
|
+
}
|
|
13716
13744
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
13717
13745
|
if (spokeProvider instanceof StellarSpokeProvider) {
|
|
13718
13746
|
invariant6__default.default(
|
|
@@ -13774,7 +13802,8 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
13774
13802
|
params.amount,
|
|
13775
13803
|
params?.toChainId ?? spokeProvider.chainConfig.chain.id,
|
|
13776
13804
|
this.data,
|
|
13777
|
-
this.configService
|
|
13805
|
+
this.configService,
|
|
13806
|
+
this.config
|
|
13778
13807
|
);
|
|
13779
13808
|
const result = await SonicSpokeService.approveBorrow(
|
|
13780
13809
|
walletAddress,
|
|
@@ -13863,7 +13892,7 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
13863
13892
|
};
|
|
13864
13893
|
}
|
|
13865
13894
|
let intentTxHash = null;
|
|
13866
|
-
if (spokeProvider.chainConfig.chain.id !==
|
|
13895
|
+
if (spokeProvider.chainConfig.chain.id !== this.hubProvider.chainConfig.chain.id) {
|
|
13867
13896
|
const packetResult = await relayTxAndWaitPacket(
|
|
13868
13897
|
txResult.value,
|
|
13869
13898
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -14028,10 +14057,8 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14028
14057
|
}
|
|
14029
14058
|
};
|
|
14030
14059
|
}
|
|
14031
|
-
const fromChainId = spokeProvider.chainConfig.chain.id;
|
|
14032
|
-
const toChainId = params.toChainId ?? fromChainId;
|
|
14033
14060
|
let intentTxHash = null;
|
|
14034
|
-
if (toChainId !==
|
|
14061
|
+
if (spokeProvider.chainConfig.chain.id !== this.hubProvider.chainConfig.chain.id || params.toChainId && params.toAddress && params.toChainId !== this.hubProvider.chainConfig.chain.id) {
|
|
14035
14062
|
const packetResult = await relayTxAndWaitPacket(
|
|
14036
14063
|
txResult.value,
|
|
14037
14064
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -14107,13 +14134,11 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14107
14134
|
const fromAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
14108
14135
|
const toChainId = params.toChainId ?? fromChainId;
|
|
14109
14136
|
const toAddress = params.toAddress ?? fromAddress;
|
|
14110
|
-
|
|
14111
|
-
|
|
14112
|
-
`Unsupported spoke chain (${toChainId}) token: ${params.token}`
|
|
14113
|
-
);
|
|
14137
|
+
const dstToken = this.configService.getMoneyMarketToken(toChainId, params.token);
|
|
14138
|
+
invariant6__default.default(dstToken, `Money market token not found for spoke chain (${toChainId}) token: ${params.token}`);
|
|
14114
14139
|
const encodedToAddress = encodeAddress(toChainId, toAddress);
|
|
14115
14140
|
const fromHubWallet = await deriveUserWalletAddress(this.hubProvider, fromChainId, fromAddress);
|
|
14116
|
-
const data = this.buildBorrowData(fromHubWallet, encodedToAddress,
|
|
14141
|
+
const data = this.buildBorrowData(fromHubWallet, encodedToAddress, dstToken.address, params.amount, toChainId);
|
|
14117
14142
|
let txResult;
|
|
14118
14143
|
if (fromChainId === this.hubProvider.chainConfig.chain.id && isSonicSpokeProviderType(spokeProvider)) {
|
|
14119
14144
|
txResult = await SonicSpokeService.callWallet(data, spokeProvider, raw);
|
|
@@ -14176,10 +14201,8 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14176
14201
|
}
|
|
14177
14202
|
};
|
|
14178
14203
|
}
|
|
14179
|
-
const fromChainId = spokeProvider.chainConfig.chain.id;
|
|
14180
|
-
const toChainId = params.toChainId ?? fromChainId;
|
|
14181
14204
|
let intentTxHash = null;
|
|
14182
|
-
if (toChainId !==
|
|
14205
|
+
if (spokeProvider.chainConfig.chain.id !== this.hubProvider.chainConfig.chain.id || params.toChainId && params.toAddress && params.toChainId !== this.hubProvider.chainConfig.chain.id && params.toAddress !== this.hubProvider.chainConfig.addresses.walletRouter) {
|
|
14183
14206
|
const packetResult = await relayTxAndWaitPacket(
|
|
14184
14207
|
txResult.value,
|
|
14185
14208
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -14340,7 +14363,7 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14340
14363
|
};
|
|
14341
14364
|
}
|
|
14342
14365
|
let intentTxHash = null;
|
|
14343
|
-
if (spokeProvider.chainConfig.chain.id !==
|
|
14366
|
+
if (spokeProvider.chainConfig.chain.id !== this.hubProvider.chainConfig.chain.id) {
|
|
14344
14367
|
const packetResult = await relayTxAndWaitPacket(
|
|
14345
14368
|
txResult.value,
|
|
14346
14369
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -14459,8 +14482,10 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14459
14482
|
const fromHubAsset = this.configService.getHubAssetInfo(fromChainId, fromToken);
|
|
14460
14483
|
invariant6__default.default(fromHubAsset, `hub asset not found for source chain token (token): ${fromToken}`);
|
|
14461
14484
|
const lendingPool = this.config.lendingPool;
|
|
14462
|
-
|
|
14463
|
-
|
|
14485
|
+
if (!this.configService.isValidVault(fromHubAsset.asset)) {
|
|
14486
|
+
calls.push(Erc20Service.encodeApprove(fromHubAsset.asset, fromHubAsset.vault, amount));
|
|
14487
|
+
calls.push(EvmVaultTokenService.encodeDeposit(fromHubAsset.vault, fromHubAsset.asset, amount));
|
|
14488
|
+
}
|
|
14464
14489
|
const translatedAmount = EvmVaultTokenService.translateIncomingDecimals(fromHubAsset.decimal, amount);
|
|
14465
14490
|
calls.push(Erc20Service.encodeApprove(fromHubAsset.vault, lendingPool, translatedAmount));
|
|
14466
14491
|
calls.push(
|
|
@@ -14482,29 +14507,44 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14482
14507
|
*/
|
|
14483
14508
|
buildBorrowData(fromHubAddress, toAddress, toToken, amount, toChainId) {
|
|
14484
14509
|
const toHubAsset = this.configService.getHubAssetInfo(toChainId, toToken);
|
|
14510
|
+
const dstToken = this.configService.getMoneyMarketToken(toChainId, toToken);
|
|
14485
14511
|
invariant6__default.default(toHubAsset, `hub asset not found for target chain token (toToken): ${toToken}`);
|
|
14512
|
+
invariant6__default.default(dstToken, `Money market token not found for spoke chain (${toChainId}) token: ${toToken}`);
|
|
14486
14513
|
const assetAddress = toHubAsset.asset;
|
|
14487
14514
|
const vaultAddress = toHubAsset.vault;
|
|
14488
14515
|
const bnUSDVault = this.config.bnUSDVault;
|
|
14489
14516
|
const bnUSD = this.config.bnUSD;
|
|
14490
|
-
const
|
|
14517
|
+
const translatedInAmount = EvmVaultTokenService.translateIncomingDecimals(toHubAsset.decimal, amount);
|
|
14518
|
+
const feeAmount = calculateFeeAmount(translatedInAmount, this.config.partnerFee);
|
|
14491
14519
|
const calls = [];
|
|
14492
|
-
if (bnUSDVault
|
|
14520
|
+
if (bnUSDVault.toLowerCase() === vaultAddress.toLowerCase()) {
|
|
14493
14521
|
calls.push(
|
|
14494
14522
|
_MoneyMarketService.encodeBorrow(
|
|
14495
|
-
{
|
|
14523
|
+
{
|
|
14524
|
+
asset: bnUSD,
|
|
14525
|
+
amount: translatedInAmount,
|
|
14526
|
+
interestRateMode: 2n,
|
|
14527
|
+
referralCode: 0,
|
|
14528
|
+
onBehalfOf: fromHubAddress
|
|
14529
|
+
},
|
|
14496
14530
|
this.config.lendingPool
|
|
14497
14531
|
)
|
|
14498
14532
|
);
|
|
14499
|
-
calls.push(Erc20Service.encodeApprove(bnUSD, bnUSDVault,
|
|
14500
|
-
calls.push(EvmVaultTokenService.encodeDeposit(bnUSDVault, bnUSD,
|
|
14533
|
+
calls.push(Erc20Service.encodeApprove(bnUSD, bnUSDVault, translatedInAmount));
|
|
14534
|
+
calls.push(EvmVaultTokenService.encodeDeposit(bnUSDVault, bnUSD, translatedInAmount));
|
|
14501
14535
|
if (this.config.partnerFee && feeAmount) {
|
|
14502
14536
|
calls.push(Erc20Service.encodeTransfer(bnUSDVault, this.config.partnerFee.address, feeAmount));
|
|
14503
14537
|
}
|
|
14504
14538
|
} else {
|
|
14505
14539
|
calls.push(
|
|
14506
14540
|
_MoneyMarketService.encodeBorrow(
|
|
14507
|
-
{
|
|
14541
|
+
{
|
|
14542
|
+
asset: vaultAddress,
|
|
14543
|
+
amount: translatedInAmount,
|
|
14544
|
+
interestRateMode: 2n,
|
|
14545
|
+
referralCode: 0,
|
|
14546
|
+
onBehalfOf: fromHubAddress
|
|
14547
|
+
},
|
|
14508
14548
|
this.config.lendingPool
|
|
14509
14549
|
)
|
|
14510
14550
|
);
|
|
@@ -14512,8 +14552,21 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14512
14552
|
calls.push(Erc20Service.encodeTransfer(vaultAddress, this.config.partnerFee.address, feeAmount));
|
|
14513
14553
|
}
|
|
14514
14554
|
}
|
|
14515
|
-
|
|
14516
|
-
|
|
14555
|
+
if (toToken.toLowerCase() !== vaultAddress.toLowerCase()) {
|
|
14556
|
+
calls.push(EvmVaultTokenService.encodeWithdraw(vaultAddress, assetAddress, translatedInAmount - feeAmount));
|
|
14557
|
+
}
|
|
14558
|
+
let translatedAmountOut;
|
|
14559
|
+
if (this.configService.isValidVault(toToken)) {
|
|
14560
|
+
translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(
|
|
14561
|
+
toHubAsset.decimal,
|
|
14562
|
+
translatedInAmount - feeAmount
|
|
14563
|
+
);
|
|
14564
|
+
} else {
|
|
14565
|
+
translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(
|
|
14566
|
+
dstToken.decimals,
|
|
14567
|
+
translatedInAmount - feeAmount
|
|
14568
|
+
);
|
|
14569
|
+
}
|
|
14517
14570
|
if (toChainId === this.hubProvider.chainConfig.chain.id) {
|
|
14518
14571
|
if (assetAddress.toLowerCase() === this.configService.spokeChainConfig[toChainId].addresses.wrappedSonic.toLowerCase()) {
|
|
14519
14572
|
const withdrawToCall = {
|
|
@@ -14553,17 +14606,27 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14553
14606
|
buildWithdrawData(fromHubAddress, toAddress, toToken, amount, toChainId) {
|
|
14554
14607
|
const calls = [];
|
|
14555
14608
|
const toHubAsset = this.configService.getHubAssetInfo(toChainId, toToken);
|
|
14609
|
+
const dstToken = this.configService.getMoneyMarketToken(toChainId, toToken);
|
|
14556
14610
|
invariant6__default.default(toHubAsset, `hub asset not found for target chain token (toToken): ${toToken}`);
|
|
14611
|
+
invariant6__default.default(dstToken, `Money market token not found for spoke chain (${toChainId}) token: ${toToken}`);
|
|
14557
14612
|
const assetAddress = toHubAsset.asset;
|
|
14558
14613
|
const vaultAddress = toHubAsset.vault;
|
|
14614
|
+
const translatedInAmount = EvmVaultTokenService.translateIncomingDecimals(toHubAsset.decimal, amount);
|
|
14559
14615
|
calls.push(
|
|
14560
14616
|
_MoneyMarketService.encodeWithdraw(
|
|
14561
|
-
{ asset: vaultAddress, amount, to: fromHubAddress },
|
|
14617
|
+
{ asset: vaultAddress, amount: translatedInAmount, to: fromHubAddress },
|
|
14562
14618
|
this.config.lendingPool
|
|
14563
14619
|
)
|
|
14564
14620
|
);
|
|
14565
|
-
|
|
14566
|
-
|
|
14621
|
+
if (!this.configService.isValidVault(toToken)) {
|
|
14622
|
+
calls.push(EvmVaultTokenService.encodeWithdraw(vaultAddress, assetAddress, translatedInAmount));
|
|
14623
|
+
}
|
|
14624
|
+
let translatedAmountOut;
|
|
14625
|
+
if (this.configService.isValidVault(toToken)) {
|
|
14626
|
+
translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(toHubAsset.decimal, translatedInAmount);
|
|
14627
|
+
} else {
|
|
14628
|
+
translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(dstToken.decimals, translatedInAmount);
|
|
14629
|
+
}
|
|
14567
14630
|
if (toChainId === this.hubProvider.chainConfig.chain.id) {
|
|
14568
14631
|
if (assetAddress.toLowerCase() === this.configService.spokeChainConfig[toChainId].addresses.wrappedSonic.toLowerCase()) {
|
|
14569
14632
|
const withdrawToCall = {
|
|
@@ -14607,18 +14670,23 @@ var MoneyMarketService = class _MoneyMarketService {
|
|
|
14607
14670
|
const vaultAddress = fromHubAsset.vault;
|
|
14608
14671
|
const bnUSDVault = this.config.bnUSDVault;
|
|
14609
14672
|
const bnUSD = this.config.bnUSD;
|
|
14610
|
-
|
|
14611
|
-
calls.push(EvmVaultTokenService.encodeDeposit(vaultAddress, assetAddress, amount));
|
|
14612
|
-
const translatedAmount = EvmVaultTokenService.translateIncomingDecimals(fromHubAsset.decimal, amount);
|
|
14673
|
+
const translatedAmountIn = EvmVaultTokenService.translateIncomingDecimals(fromHubAsset.decimal, amount);
|
|
14613
14674
|
let repayToken = vaultAddress;
|
|
14614
|
-
if (bnUSDVault
|
|
14675
|
+
if (bnUSDVault.toLowerCase() === vaultAddress.toLowerCase()) {
|
|
14615
14676
|
repayToken = bnUSD;
|
|
14616
|
-
|
|
14677
|
+
if (assetAddress.toLowerCase() !== bnUSDVault.toLowerCase()) {
|
|
14678
|
+
calls.push(Erc20Service.encodeApprove(assetAddress, vaultAddress, translatedAmountIn));
|
|
14679
|
+
calls.push(EvmVaultTokenService.encodeDeposit(vaultAddress, assetAddress, translatedAmountIn));
|
|
14680
|
+
}
|
|
14681
|
+
calls.push(EvmVaultTokenService.encodeWithdraw(bnUSDVault, bnUSD, translatedAmountIn));
|
|
14682
|
+
} else {
|
|
14683
|
+
calls.push(Erc20Service.encodeApprove(assetAddress, vaultAddress, amount));
|
|
14684
|
+
calls.push(EvmVaultTokenService.encodeDeposit(vaultAddress, assetAddress, amount));
|
|
14617
14685
|
}
|
|
14618
|
-
calls.push(Erc20Service.encodeApprove(repayToken, this.config.lendingPool,
|
|
14686
|
+
calls.push(Erc20Service.encodeApprove(repayToken, this.config.lendingPool, translatedAmountIn));
|
|
14619
14687
|
calls.push(
|
|
14620
14688
|
_MoneyMarketService.encodeRepay(
|
|
14621
|
-
{ asset: repayToken, amount:
|
|
14689
|
+
{ asset: repayToken, amount: translatedAmountIn, interestRateMode: 2n, onBehalfOf: toHubAddress },
|
|
14622
14690
|
this.config.lendingPool
|
|
14623
14691
|
)
|
|
14624
14692
|
);
|