@kamino-finance/klend-sdk 5.11.17 → 5.12.0
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/classes/action.d.ts +9 -1
- package/dist/classes/action.d.ts.map +1 -1
- package/dist/classes/action.js +15 -1
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/fraction.d.ts +6 -5
- package/dist/classes/fraction.d.ts.map +1 -1
- package/dist/classes/fraction.js +13 -8
- package/dist/classes/fraction.js.map +1 -1
- package/dist/classes/manager.d.ts +1 -1
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +10 -0
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligation.d.ts +54 -1
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +47 -1
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/obligationOrder.d.ts +206 -0
- package/dist/classes/obligationOrder.d.ts.map +1 -0
- package/dist/classes/obligationOrder.js +359 -0
- package/dist/classes/obligationOrder.js.map +1 -0
- package/dist/classes/reserve.d.ts +5 -5
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +80 -264
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/types.d.ts +14 -1
- package/dist/classes/types.d.ts.map +1 -1
- package/dist/classes/utils.d.ts +9 -0
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +21 -0
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.js +1 -1
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.js +6 -6
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl.json +244 -23
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +12 -6
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.js +15 -3
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.d.ts +27 -6
- package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.js +26 -9
- package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
- package/dist/idl_codegen/errors/custom.d.ts +36 -4
- package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen/errors/custom.js +64 -8
- package/dist/idl_codegen/errors/custom.js.map +1 -1
- package/dist/idl_codegen/instructions/index.d.ts +2 -0
- package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/index.js +3 -1
- package/dist/idl_codegen/instructions/index.js.map +1 -1
- package/dist/idl_codegen/instructions/setObligationOrder.d.ts +14 -0
- package/dist/idl_codegen/instructions/setObligationOrder.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/setObligationOrder.js +62 -0
- package/dist/idl_codegen/instructions/setObligationOrder.js.map +1 -0
- package/dist/idl_codegen/types/ObligationOrder.d.ts +284 -0
- package/dist/idl_codegen/types/ObligationOrder.d.ts.map +1 -0
- package/dist/idl_codegen/types/ObligationOrder.js +205 -0
- package/dist/idl_codegen/types/ObligationOrder.js.map +1 -0
- package/dist/idl_codegen/types/ReserveConfig.d.ts +26 -11
- package/dist/idl_codegen/types/ReserveConfig.d.ts.map +1 -1
- package/dist/idl_codegen/types/ReserveConfig.js +15 -10
- package/dist/idl_codegen/types/ReserveConfig.js.map +1 -1
- package/dist/idl_codegen/types/UpdateConfigMode.d.ts +34 -21
- package/dist/idl_codegen/types/UpdateConfigMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateConfigMode.js +58 -34
- package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +13 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +25 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +6 -4
- package/dist/idl_codegen/types/index.d.ts.map +1 -1
- package/dist/idl_codegen/types/index.js +3 -1
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +13 -6
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts.map +1 -1
- package/dist/idl_codegen/zero_padding/ObligationZP.js +25 -11
- package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -1
- package/dist/utils/instruction.d.ts +1 -1
- package/dist/utils/instruction.d.ts.map +1 -1
- package/dist/utils/instruction.js +5 -1
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/managerTypes.js +2 -2
- package/dist/utils/managerTypes.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/action.ts +26 -1
- package/src/classes/fraction.ts +16 -12
- package/src/classes/manager.ts +13 -0
- package/src/classes/obligation.ts +77 -1
- package/src/classes/obligationOrder.ts +514 -0
- package/src/classes/reserve.ts +257 -336
- package/src/classes/types.ts +15 -1
- package/src/classes/utils.ts +21 -0
- package/src/classes/vault.ts +1 -1
- package/src/client_kamino_manager.ts +6 -6
- package/src/idl.json +244 -23
- package/src/idl_codegen/accounts/LendingMarket.ts +23 -7
- package/src/idl_codegen/accounts/Obligation.ts +50 -13
- package/src/idl_codegen/errors/custom.ts +68 -6
- package/src/idl_codegen/instructions/index.ts +5 -0
- package/src/idl_codegen/instructions/setObligationOrder.ts +45 -0
- package/src/idl_codegen/types/ObligationOrder.ts +347 -0
- package/src/idl_codegen/types/ReserveConfig.ts +31 -16
- package/src/idl_codegen/types/UpdateConfigMode.ts +69 -39
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +30 -0
- package/src/idl_codegen/types/index.ts +15 -6
- package/src/idl_codegen/zero_padding/ObligationZP.ts +37 -15
- package/src/utils/instruction.ts +5 -1
- package/src/utils/managerTypes.ts +2 -2
package/src/classes/reserve.ts
CHANGED
|
@@ -23,7 +23,13 @@ import {
|
|
|
23
23
|
} from '../utils';
|
|
24
24
|
import { FeeCalculation, Fees, ReserveDataType, ReserveFarmInfo, ReserveRewardYield, ReserveStatus } from './shared';
|
|
25
25
|
import { Reserve, ReserveFields } from '../idl_codegen/accounts';
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
BorrowRateCurve,
|
|
28
|
+
CurvePointFields,
|
|
29
|
+
ReserveConfig,
|
|
30
|
+
UpdateConfigMode,
|
|
31
|
+
UpdateConfigModeKind,
|
|
32
|
+
} from '../idl_codegen/types';
|
|
27
33
|
import {
|
|
28
34
|
assertNever,
|
|
29
35
|
calculateAPYFromAPR,
|
|
@@ -46,7 +52,6 @@ import {
|
|
|
46
52
|
} from '../lib';
|
|
47
53
|
import * as anchor from '@coral-xyz/anchor';
|
|
48
54
|
import { TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
|
49
|
-
import { UpdateBorrowRateCurve } from '../idl_codegen/types/UpdateConfigMode';
|
|
50
55
|
import { aprToApy, KaminoPrices } from '@kamino-finance/kliquidity-sdk';
|
|
51
56
|
import { FarmState, RewardInfo } from '@kamino-finance/farms-sdk';
|
|
52
57
|
|
|
@@ -1211,7 +1216,7 @@ type BaseReserveConfigKey = keyof ReturnType<typeof ReserveConfig.toEncodable>;
|
|
|
1211
1216
|
// Type that excludes reserved and padding fields
|
|
1212
1217
|
type ReserveConfigKey = Exclude<BaseReserveConfigKey, ExcludedReserveConfigKey>;
|
|
1213
1218
|
|
|
1214
|
-
const EXCLUDED_RESERVE_CONFIG_KEYS = ['reserved1', 'reserved2'
|
|
1219
|
+
const EXCLUDED_RESERVE_CONFIG_KEYS = ['reserved1', 'reserved2'] as const;
|
|
1215
1220
|
|
|
1216
1221
|
export type ExcludedReserveConfigKey = (typeof EXCLUDED_RESERVE_CONFIG_KEYS)[number];
|
|
1217
1222
|
|
|
@@ -1223,53 +1228,41 @@ function handleConfigUpdate(
|
|
|
1223
1228
|
key: ReserveConfigKey,
|
|
1224
1229
|
reserve: Reserve | undefined,
|
|
1225
1230
|
reserveConfig: ReserveConfig,
|
|
1226
|
-
updateReserveIxnsArgs:
|
|
1231
|
+
updateReserveIxnsArgs: UpdateReserveIxnsArg[]
|
|
1227
1232
|
): void {
|
|
1228
|
-
// We add 1 to the discriminator, to account for the fact that the UpdateConfigMode
|
|
1229
|
-
// inside the SC starts incrementing from 1
|
|
1230
1233
|
switch (key) {
|
|
1231
1234
|
case 'status':
|
|
1232
1235
|
if (reserve === undefined || reserve.config.status !== reserveConfig.status) {
|
|
1233
|
-
updateReserveIxnsArgs.push(
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
UpdateConfigMode.UpdateReserveStatus.discriminator,
|
|
1237
|
-
reserveConfig.status
|
|
1238
|
-
),
|
|
1239
|
-
});
|
|
1236
|
+
updateReserveIxnsArgs.push(
|
|
1237
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateReserveStatus.discriminator, reserveConfig.status)
|
|
1238
|
+
);
|
|
1240
1239
|
}
|
|
1241
1240
|
break;
|
|
1242
1241
|
case 'assetTier':
|
|
1243
1242
|
if (reserve === undefined || reserve.config.assetTier !== reserveConfig.assetTier) {
|
|
1244
|
-
updateReserveIxnsArgs.push(
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
UpdateConfigMode.UpdateAssetTier.discriminator,
|
|
1248
|
-
reserveConfig.assetTier
|
|
1249
|
-
),
|
|
1250
|
-
});
|
|
1243
|
+
updateReserveIxnsArgs.push(
|
|
1244
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateAssetTier.discriminator, reserveConfig.assetTier)
|
|
1245
|
+
);
|
|
1251
1246
|
}
|
|
1252
1247
|
break;
|
|
1253
1248
|
case 'hostFixedInterestRateBps':
|
|
1254
1249
|
if (reserve === undefined || reserve.config.hostFixedInterestRateBps !== reserveConfig.hostFixedInterestRateBps) {
|
|
1255
|
-
updateReserveIxnsArgs.push(
|
|
1256
|
-
|
|
1257
|
-
value: updateReserveConfigEncodedValue(
|
|
1250
|
+
updateReserveIxnsArgs.push(
|
|
1251
|
+
createUpdateReserveIxnsArg(
|
|
1258
1252
|
UpdateConfigMode.UpdateHostFixedInterestRateBps.discriminator,
|
|
1259
1253
|
reserveConfig.hostFixedInterestRateBps
|
|
1260
|
-
)
|
|
1261
|
-
|
|
1254
|
+
)
|
|
1255
|
+
);
|
|
1262
1256
|
}
|
|
1263
1257
|
break;
|
|
1264
1258
|
case 'protocolTakeRatePct':
|
|
1265
1259
|
if (reserve === undefined || reserve.config.protocolTakeRatePct !== reserveConfig.protocolTakeRatePct) {
|
|
1266
|
-
updateReserveIxnsArgs.push(
|
|
1267
|
-
|
|
1268
|
-
value: updateReserveConfigEncodedValue(
|
|
1260
|
+
updateReserveIxnsArgs.push(
|
|
1261
|
+
createUpdateReserveIxnsArg(
|
|
1269
1262
|
UpdateConfigMode.UpdateProtocolTakeRate.discriminator,
|
|
1270
1263
|
reserveConfig.protocolTakeRatePct
|
|
1271
|
-
)
|
|
1272
|
-
|
|
1264
|
+
)
|
|
1265
|
+
);
|
|
1273
1266
|
}
|
|
1274
1267
|
break;
|
|
1275
1268
|
case 'protocolLiquidationFeePct':
|
|
@@ -1277,57 +1270,62 @@ function handleConfigUpdate(
|
|
|
1277
1270
|
reserve === undefined ||
|
|
1278
1271
|
reserve.config.protocolLiquidationFeePct !== reserveConfig.protocolLiquidationFeePct
|
|
1279
1272
|
) {
|
|
1280
|
-
updateReserveIxnsArgs.push(
|
|
1281
|
-
|
|
1282
|
-
value: updateReserveConfigEncodedValue(
|
|
1273
|
+
updateReserveIxnsArgs.push(
|
|
1274
|
+
createUpdateReserveIxnsArg(
|
|
1283
1275
|
UpdateConfigMode.UpdateProtocolLiquidationFee.discriminator,
|
|
1284
1276
|
reserveConfig.protocolLiquidationFeePct
|
|
1285
|
-
)
|
|
1286
|
-
|
|
1277
|
+
)
|
|
1278
|
+
);
|
|
1279
|
+
}
|
|
1280
|
+
break;
|
|
1281
|
+
case 'protocolOrderExecutionFeePct':
|
|
1282
|
+
if (
|
|
1283
|
+
reserve === undefined ||
|
|
1284
|
+
reserve.config.protocolOrderExecutionFeePct !== reserveConfig.protocolOrderExecutionFeePct
|
|
1285
|
+
) {
|
|
1286
|
+
updateReserveIxnsArgs.push(
|
|
1287
|
+
createUpdateReserveIxnsArg(
|
|
1288
|
+
UpdateConfigMode.UpdateProtocolOrderExecutionFee.discriminator,
|
|
1289
|
+
reserveConfig.protocolOrderExecutionFeePct
|
|
1290
|
+
)
|
|
1291
|
+
);
|
|
1287
1292
|
}
|
|
1288
1293
|
break;
|
|
1289
1294
|
case 'loanToValuePct':
|
|
1290
1295
|
if (reserve === undefined || reserve.config.loanToValuePct !== reserveConfig.loanToValuePct) {
|
|
1291
|
-
updateReserveIxnsArgs.push(
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
UpdateConfigMode.UpdateLoanToValuePct.discriminator,
|
|
1295
|
-
reserveConfig.loanToValuePct
|
|
1296
|
-
),
|
|
1297
|
-
});
|
|
1296
|
+
updateReserveIxnsArgs.push(
|
|
1297
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateLoanToValuePct.discriminator, reserveConfig.loanToValuePct)
|
|
1298
|
+
);
|
|
1298
1299
|
}
|
|
1299
1300
|
break;
|
|
1300
1301
|
case 'liquidationThresholdPct':
|
|
1301
1302
|
if (reserve === undefined || reserve.config.liquidationThresholdPct !== reserveConfig.liquidationThresholdPct) {
|
|
1302
|
-
updateReserveIxnsArgs.push(
|
|
1303
|
-
|
|
1304
|
-
value: updateReserveConfigEncodedValue(
|
|
1303
|
+
updateReserveIxnsArgs.push(
|
|
1304
|
+
createUpdateReserveIxnsArg(
|
|
1305
1305
|
UpdateConfigMode.UpdateLiquidationThresholdPct.discriminator,
|
|
1306
1306
|
reserveConfig.liquidationThresholdPct
|
|
1307
|
-
)
|
|
1308
|
-
|
|
1307
|
+
)
|
|
1308
|
+
);
|
|
1309
1309
|
}
|
|
1310
1310
|
break;
|
|
1311
1311
|
case 'minLiquidationBonusBps':
|
|
1312
1312
|
if (reserve === undefined || reserve.config.minLiquidationBonusBps !== reserveConfig.minLiquidationBonusBps) {
|
|
1313
|
-
updateReserveIxnsArgs.push(
|
|
1314
|
-
|
|
1315
|
-
value: updateReserveConfigEncodedValue(
|
|
1313
|
+
updateReserveIxnsArgs.push(
|
|
1314
|
+
createUpdateReserveIxnsArg(
|
|
1316
1315
|
UpdateConfigMode.UpdateMinLiquidationBonusBps.discriminator,
|
|
1317
1316
|
reserveConfig.minLiquidationBonusBps
|
|
1318
|
-
)
|
|
1319
|
-
|
|
1317
|
+
)
|
|
1318
|
+
);
|
|
1320
1319
|
}
|
|
1321
1320
|
break;
|
|
1322
1321
|
case 'maxLiquidationBonusBps':
|
|
1323
1322
|
if (reserve === undefined || reserve.config.maxLiquidationBonusBps !== reserveConfig.maxLiquidationBonusBps) {
|
|
1324
|
-
updateReserveIxnsArgs.push(
|
|
1325
|
-
|
|
1326
|
-
value: updateReserveConfigEncodedValue(
|
|
1323
|
+
updateReserveIxnsArgs.push(
|
|
1324
|
+
createUpdateReserveIxnsArg(
|
|
1327
1325
|
UpdateConfigMode.UpdateMaxLiquidationBonusBps.discriminator,
|
|
1328
1326
|
reserveConfig.maxLiquidationBonusBps
|
|
1329
|
-
)
|
|
1330
|
-
|
|
1327
|
+
)
|
|
1328
|
+
);
|
|
1331
1329
|
}
|
|
1332
1330
|
break;
|
|
1333
1331
|
case 'badDebtLiquidationBonusBps':
|
|
@@ -1335,13 +1333,12 @@ function handleConfigUpdate(
|
|
|
1335
1333
|
reserve === undefined ||
|
|
1336
1334
|
reserve.config.badDebtLiquidationBonusBps !== reserveConfig.badDebtLiquidationBonusBps
|
|
1337
1335
|
) {
|
|
1338
|
-
updateReserveIxnsArgs.push(
|
|
1339
|
-
|
|
1340
|
-
value: updateReserveConfigEncodedValue(
|
|
1336
|
+
updateReserveIxnsArgs.push(
|
|
1337
|
+
createUpdateReserveIxnsArg(
|
|
1341
1338
|
UpdateConfigMode.UpdateBadDebtLiquidationBonusBps.discriminator,
|
|
1342
1339
|
reserveConfig.badDebtLiquidationBonusBps
|
|
1343
|
-
)
|
|
1344
|
-
|
|
1340
|
+
)
|
|
1341
|
+
);
|
|
1345
1342
|
}
|
|
1346
1343
|
break;
|
|
1347
1344
|
case 'deleveragingMarginCallPeriodSecs':
|
|
@@ -1349,13 +1346,12 @@ function handleConfigUpdate(
|
|
|
1349
1346
|
reserve === undefined ||
|
|
1350
1347
|
!reserve.config.deleveragingMarginCallPeriodSecs.eq(reserveConfig.deleveragingMarginCallPeriodSecs)
|
|
1351
1348
|
) {
|
|
1352
|
-
updateReserveIxnsArgs.push(
|
|
1353
|
-
|
|
1354
|
-
value: updateReserveConfigEncodedValue(
|
|
1349
|
+
updateReserveIxnsArgs.push(
|
|
1350
|
+
createUpdateReserveIxnsArg(
|
|
1355
1351
|
UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator,
|
|
1356
1352
|
reserveConfig.deleveragingMarginCallPeriodSecs.toNumber()
|
|
1357
|
-
)
|
|
1358
|
-
|
|
1353
|
+
)
|
|
1354
|
+
);
|
|
1359
1355
|
}
|
|
1360
1356
|
break;
|
|
1361
1357
|
case 'deleveragingThresholdDecreaseBpsPerDay':
|
|
@@ -1363,43 +1359,40 @@ function handleConfigUpdate(
|
|
|
1363
1359
|
reserve === undefined ||
|
|
1364
1360
|
!reserve.config.deleveragingThresholdDecreaseBpsPerDay.eq(reserveConfig.deleveragingThresholdDecreaseBpsPerDay)
|
|
1365
1361
|
) {
|
|
1366
|
-
updateReserveIxnsArgs.push(
|
|
1367
|
-
|
|
1368
|
-
value: updateReserveConfigEncodedValue(
|
|
1362
|
+
updateReserveIxnsArgs.push(
|
|
1363
|
+
createUpdateReserveIxnsArg(
|
|
1369
1364
|
UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator,
|
|
1370
1365
|
reserveConfig.deleveragingThresholdDecreaseBpsPerDay.toNumber()
|
|
1371
|
-
)
|
|
1372
|
-
|
|
1366
|
+
)
|
|
1367
|
+
);
|
|
1373
1368
|
}
|
|
1374
1369
|
break;
|
|
1375
1370
|
case 'fees':
|
|
1376
1371
|
if (reserve === undefined || !reserve.config.fees.borrowFeeSf.eq(reserveConfig.fees.borrowFeeSf)) {
|
|
1377
|
-
updateReserveIxnsArgs.push(
|
|
1378
|
-
|
|
1379
|
-
value: updateReserveConfigEncodedValue(
|
|
1372
|
+
updateReserveIxnsArgs.push(
|
|
1373
|
+
createUpdateReserveIxnsArg(
|
|
1380
1374
|
UpdateConfigMode.UpdateFeesBorrowFee.discriminator,
|
|
1381
1375
|
reserveConfig.fees.borrowFeeSf.toNumber()
|
|
1382
|
-
)
|
|
1383
|
-
|
|
1376
|
+
)
|
|
1377
|
+
);
|
|
1384
1378
|
}
|
|
1385
|
-
|
|
1386
1379
|
if (reserve === undefined || !reserve.config.fees.flashLoanFeeSf.eq(reserveConfig.fees.flashLoanFeeSf)) {
|
|
1387
|
-
updateReserveIxnsArgs.push(
|
|
1388
|
-
|
|
1389
|
-
value: updateReserveConfigEncodedValue(
|
|
1380
|
+
updateReserveIxnsArgs.push(
|
|
1381
|
+
createUpdateReserveIxnsArg(
|
|
1390
1382
|
UpdateConfigMode.UpdateFeesFlashLoanFee.discriminator,
|
|
1391
1383
|
reserveConfig.fees.flashLoanFeeSf.toNumber()
|
|
1392
|
-
)
|
|
1393
|
-
|
|
1384
|
+
)
|
|
1385
|
+
);
|
|
1394
1386
|
}
|
|
1395
|
-
|
|
1396
1387
|
break;
|
|
1397
1388
|
case 'borrowRateCurve':
|
|
1398
1389
|
if (reserve === undefined) {
|
|
1399
|
-
updateReserveIxnsArgs.push(
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1390
|
+
updateReserveIxnsArgs.push(
|
|
1391
|
+
createUpdateReserveIxnsArg(
|
|
1392
|
+
UpdateConfigMode.UpdateBorrowRateCurve.discriminator,
|
|
1393
|
+
reserveConfig.borrowRateCurve
|
|
1394
|
+
)
|
|
1395
|
+
);
|
|
1403
1396
|
} else {
|
|
1404
1397
|
let shouldBorrowCurveBeUpdated = false;
|
|
1405
1398
|
for (let i = 0; i < reserveConfig.borrowRateCurve.points.length; i++) {
|
|
@@ -1415,198 +1408,171 @@ function handleConfigUpdate(
|
|
|
1415
1408
|
}
|
|
1416
1409
|
|
|
1417
1410
|
if (shouldBorrowCurveBeUpdated) {
|
|
1418
|
-
updateReserveIxnsArgs.push(
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1411
|
+
updateReserveIxnsArgs.push(
|
|
1412
|
+
createUpdateReserveIxnsArg(
|
|
1413
|
+
UpdateConfigMode.UpdateBorrowRateCurve.discriminator,
|
|
1414
|
+
reserveConfig.borrowRateCurve
|
|
1415
|
+
)
|
|
1416
|
+
);
|
|
1422
1417
|
break;
|
|
1423
1418
|
}
|
|
1424
1419
|
}
|
|
1425
1420
|
break;
|
|
1426
1421
|
case 'borrowFactorPct':
|
|
1427
1422
|
if (reserve === undefined || !reserve.config.borrowFactorPct.eq(reserveConfig.borrowFactorPct)) {
|
|
1428
|
-
updateReserveIxnsArgs.push(
|
|
1429
|
-
|
|
1430
|
-
value: updateReserveConfigEncodedValue(
|
|
1423
|
+
updateReserveIxnsArgs.push(
|
|
1424
|
+
createUpdateReserveIxnsArg(
|
|
1431
1425
|
UpdateConfigMode.UpdateBorrowFactor.discriminator,
|
|
1432
1426
|
reserveConfig.borrowFactorPct.toNumber()
|
|
1433
|
-
)
|
|
1434
|
-
|
|
1427
|
+
)
|
|
1428
|
+
);
|
|
1435
1429
|
}
|
|
1436
1430
|
break;
|
|
1437
1431
|
case 'depositLimit':
|
|
1438
1432
|
if (reserve === undefined || !reserve.config.depositLimit.eq(reserveConfig.depositLimit)) {
|
|
1439
|
-
updateReserveIxnsArgs.push(
|
|
1440
|
-
|
|
1441
|
-
value: updateReserveConfigEncodedValue(
|
|
1433
|
+
updateReserveIxnsArgs.push(
|
|
1434
|
+
createUpdateReserveIxnsArg(
|
|
1442
1435
|
UpdateConfigMode.UpdateDepositLimit.discriminator,
|
|
1443
1436
|
BigInt(reserveConfig.depositLimit.toString())
|
|
1444
|
-
)
|
|
1445
|
-
|
|
1437
|
+
)
|
|
1438
|
+
);
|
|
1446
1439
|
}
|
|
1447
1440
|
break;
|
|
1448
1441
|
case 'borrowLimit':
|
|
1449
1442
|
if (reserve === undefined || !reserve.config.borrowLimit.eq(reserveConfig.borrowLimit)) {
|
|
1450
|
-
updateReserveIxnsArgs.push(
|
|
1451
|
-
|
|
1452
|
-
value: updateReserveConfigEncodedValue(
|
|
1443
|
+
updateReserveIxnsArgs.push(
|
|
1444
|
+
createUpdateReserveIxnsArg(
|
|
1453
1445
|
UpdateConfigMode.UpdateBorrowLimit.discriminator,
|
|
1454
1446
|
BigInt(reserveConfig.borrowLimit.toString())
|
|
1455
|
-
)
|
|
1456
|
-
|
|
1447
|
+
)
|
|
1448
|
+
);
|
|
1457
1449
|
}
|
|
1458
1450
|
break;
|
|
1459
1451
|
case 'tokenInfo':
|
|
1460
1452
|
const tokenInfo = reserveConfig.tokenInfo;
|
|
1461
1453
|
if (reserve === undefined) {
|
|
1462
|
-
updateReserveIxnsArgs.push(
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
mode: UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator + 1,
|
|
1468
|
-
value: updateReserveConfigEncodedValue(
|
|
1454
|
+
updateReserveIxnsArgs.push(
|
|
1455
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
|
|
1456
|
+
);
|
|
1457
|
+
updateReserveIxnsArgs.push(
|
|
1458
|
+
createUpdateReserveIxnsArg(
|
|
1469
1459
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1470
1460
|
tokenInfo.heuristic.lower.toNumber()
|
|
1471
|
-
)
|
|
1472
|
-
|
|
1473
|
-
updateReserveIxnsArgs.push(
|
|
1474
|
-
|
|
1475
|
-
value: updateReserveConfigEncodedValue(
|
|
1461
|
+
)
|
|
1462
|
+
);
|
|
1463
|
+
updateReserveIxnsArgs.push(
|
|
1464
|
+
createUpdateReserveIxnsArg(
|
|
1476
1465
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1477
1466
|
tokenInfo.heuristic.upper.toNumber()
|
|
1478
|
-
)
|
|
1479
|
-
|
|
1480
|
-
updateReserveIxnsArgs.push(
|
|
1481
|
-
|
|
1482
|
-
value: updateReserveConfigEncodedValue(
|
|
1467
|
+
)
|
|
1468
|
+
);
|
|
1469
|
+
updateReserveIxnsArgs.push(
|
|
1470
|
+
createUpdateReserveIxnsArg(
|
|
1483
1471
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1484
1472
|
tokenInfo.heuristic.exp.toNumber()
|
|
1485
|
-
)
|
|
1486
|
-
|
|
1487
|
-
updateReserveIxnsArgs.push(
|
|
1488
|
-
|
|
1489
|
-
value: updateReserveConfigEncodedValue(
|
|
1473
|
+
)
|
|
1474
|
+
);
|
|
1475
|
+
updateReserveIxnsArgs.push(
|
|
1476
|
+
createUpdateReserveIxnsArg(
|
|
1490
1477
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1491
1478
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
1492
|
-
)
|
|
1493
|
-
|
|
1494
|
-
updateReserveIxnsArgs.push(
|
|
1495
|
-
|
|
1496
|
-
value: updateReserveConfigEncodedValue(
|
|
1479
|
+
)
|
|
1480
|
+
);
|
|
1481
|
+
updateReserveIxnsArgs.push(
|
|
1482
|
+
createUpdateReserveIxnsArg(
|
|
1497
1483
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1498
1484
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
1499
|
-
)
|
|
1500
|
-
|
|
1501
|
-
updateReserveIxnsArgs.push(
|
|
1502
|
-
|
|
1503
|
-
value: updateReserveConfigEncodedValue(
|
|
1485
|
+
)
|
|
1486
|
+
);
|
|
1487
|
+
updateReserveIxnsArgs.push(
|
|
1488
|
+
createUpdateReserveIxnsArg(
|
|
1504
1489
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1505
1490
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
1506
|
-
)
|
|
1507
|
-
|
|
1508
|
-
updateReserveIxnsArgs.push(
|
|
1509
|
-
|
|
1510
|
-
value: updateReserveConfigEncodedValue(
|
|
1491
|
+
)
|
|
1492
|
+
);
|
|
1493
|
+
updateReserveIxnsArgs.push(
|
|
1494
|
+
createUpdateReserveIxnsArg(
|
|
1511
1495
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1512
1496
|
tokenInfo.scopeConfiguration.priceChain
|
|
1513
|
-
)
|
|
1514
|
-
|
|
1515
|
-
updateReserveIxnsArgs.push(
|
|
1516
|
-
|
|
1517
|
-
value: updateReserveConfigEncodedValue(
|
|
1497
|
+
)
|
|
1498
|
+
);
|
|
1499
|
+
updateReserveIxnsArgs.push(
|
|
1500
|
+
createUpdateReserveIxnsArg(
|
|
1518
1501
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1519
1502
|
tokenInfo.scopeConfiguration.twapChain
|
|
1520
|
-
)
|
|
1521
|
-
|
|
1522
|
-
updateReserveIxnsArgs.push(
|
|
1523
|
-
|
|
1524
|
-
value: updateReserveConfigEncodedValue(
|
|
1503
|
+
)
|
|
1504
|
+
);
|
|
1505
|
+
updateReserveIxnsArgs.push(
|
|
1506
|
+
createUpdateReserveIxnsArg(
|
|
1525
1507
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1526
1508
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1527
|
-
)
|
|
1528
|
-
|
|
1529
|
-
updateReserveIxnsArgs.push(
|
|
1530
|
-
|
|
1531
|
-
value: updateReserveConfigEncodedValue(
|
|
1509
|
+
)
|
|
1510
|
+
);
|
|
1511
|
+
updateReserveIxnsArgs.push(
|
|
1512
|
+
createUpdateReserveIxnsArg(
|
|
1532
1513
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1533
1514
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1534
|
-
)
|
|
1535
|
-
|
|
1536
|
-
updateReserveIxnsArgs.push(
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
});
|
|
1543
|
-
updateReserveIxnsArgs.push({
|
|
1544
|
-
mode: UpdateConfigMode.UpdateBlockPriceUsage.discriminator + 1,
|
|
1545
|
-
value: updateReserveConfigEncodedValue(
|
|
1546
|
-
UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1547
|
-
tokenInfo.blockPriceUsage
|
|
1548
|
-
),
|
|
1549
|
-
});
|
|
1515
|
+
)
|
|
1516
|
+
);
|
|
1517
|
+
updateReserveIxnsArgs.push(
|
|
1518
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdatePythPrice.discriminator, tokenInfo.pythConfiguration.price)
|
|
1519
|
+
);
|
|
1520
|
+
updateReserveIxnsArgs.push(
|
|
1521
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
|
|
1522
|
+
);
|
|
1550
1523
|
} else {
|
|
1551
1524
|
if (!sameLengthArrayEquals(reserve.config.tokenInfo.name, tokenInfo.name)) {
|
|
1552
|
-
updateReserveIxnsArgs.push(
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
});
|
|
1525
|
+
updateReserveIxnsArgs.push(
|
|
1526
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateTokenInfoName.discriminator, tokenInfo.name)
|
|
1527
|
+
);
|
|
1556
1528
|
}
|
|
1557
1529
|
if (!reserve.config.tokenInfo.heuristic.lower.eq(tokenInfo.heuristic.lower)) {
|
|
1558
|
-
updateReserveIxnsArgs.push(
|
|
1559
|
-
|
|
1560
|
-
value: updateReserveConfigEncodedValue(
|
|
1530
|
+
updateReserveIxnsArgs.push(
|
|
1531
|
+
createUpdateReserveIxnsArg(
|
|
1561
1532
|
UpdateConfigMode.UpdateTokenInfoLowerHeuristic.discriminator,
|
|
1562
1533
|
tokenInfo.heuristic.lower.toNumber()
|
|
1563
|
-
)
|
|
1564
|
-
|
|
1534
|
+
)
|
|
1535
|
+
);
|
|
1565
1536
|
}
|
|
1566
1537
|
if (!reserve.config.tokenInfo.heuristic.upper.eq(tokenInfo.heuristic.upper)) {
|
|
1567
|
-
updateReserveIxnsArgs.push(
|
|
1568
|
-
|
|
1569
|
-
value: updateReserveConfigEncodedValue(
|
|
1538
|
+
updateReserveIxnsArgs.push(
|
|
1539
|
+
createUpdateReserveIxnsArg(
|
|
1570
1540
|
UpdateConfigMode.UpdateTokenInfoUpperHeuristic.discriminator,
|
|
1571
1541
|
tokenInfo.heuristic.upper.toNumber()
|
|
1572
|
-
)
|
|
1573
|
-
|
|
1542
|
+
)
|
|
1543
|
+
);
|
|
1574
1544
|
}
|
|
1575
1545
|
if (!reserve.config.tokenInfo.heuristic.exp.eq(tokenInfo.heuristic.exp)) {
|
|
1576
|
-
updateReserveIxnsArgs.push(
|
|
1577
|
-
|
|
1578
|
-
value: updateReserveConfigEncodedValue(
|
|
1546
|
+
updateReserveIxnsArgs.push(
|
|
1547
|
+
createUpdateReserveIxnsArg(
|
|
1579
1548
|
UpdateConfigMode.UpdateTokenInfoExpHeuristic.discriminator,
|
|
1580
1549
|
tokenInfo.heuristic.exp.toNumber()
|
|
1581
|
-
)
|
|
1582
|
-
|
|
1550
|
+
)
|
|
1551
|
+
);
|
|
1583
1552
|
}
|
|
1584
1553
|
if (!reserve.config.tokenInfo.maxTwapDivergenceBps.eq(tokenInfo.maxTwapDivergenceBps)) {
|
|
1585
|
-
updateReserveIxnsArgs.push(
|
|
1586
|
-
|
|
1587
|
-
value: updateReserveConfigEncodedValue(
|
|
1554
|
+
updateReserveIxnsArgs.push(
|
|
1555
|
+
createUpdateReserveIxnsArg(
|
|
1588
1556
|
UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator,
|
|
1589
1557
|
tokenInfo.maxTwapDivergenceBps.toNumber()
|
|
1590
|
-
)
|
|
1591
|
-
|
|
1558
|
+
)
|
|
1559
|
+
);
|
|
1592
1560
|
}
|
|
1593
1561
|
if (!reserve.config.tokenInfo.maxAgePriceSeconds.eq(tokenInfo.maxAgePriceSeconds)) {
|
|
1594
|
-
updateReserveIxnsArgs.push(
|
|
1595
|
-
|
|
1596
|
-
value: updateReserveConfigEncodedValue(
|
|
1562
|
+
updateReserveIxnsArgs.push(
|
|
1563
|
+
createUpdateReserveIxnsArg(
|
|
1597
1564
|
UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator,
|
|
1598
1565
|
tokenInfo.maxAgePriceSeconds.toNumber()
|
|
1599
|
-
)
|
|
1600
|
-
|
|
1566
|
+
)
|
|
1567
|
+
);
|
|
1601
1568
|
}
|
|
1602
1569
|
if (!reserve.config.tokenInfo.maxAgeTwapSeconds.eq(tokenInfo.maxAgeTwapSeconds)) {
|
|
1603
|
-
updateReserveIxnsArgs.push(
|
|
1604
|
-
|
|
1605
|
-
value: updateReserveConfigEncodedValue(
|
|
1570
|
+
updateReserveIxnsArgs.push(
|
|
1571
|
+
createUpdateReserveIxnsArg(
|
|
1606
1572
|
UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator,
|
|
1607
1573
|
tokenInfo.maxAgeTwapSeconds.toNumber()
|
|
1608
|
-
)
|
|
1609
|
-
|
|
1574
|
+
)
|
|
1575
|
+
);
|
|
1610
1576
|
}
|
|
1611
1577
|
if (
|
|
1612
1578
|
!sameLengthArrayEquals(
|
|
@@ -1614,13 +1580,12 @@ function handleConfigUpdate(
|
|
|
1614
1580
|
tokenInfo.scopeConfiguration.priceChain
|
|
1615
1581
|
)
|
|
1616
1582
|
) {
|
|
1617
|
-
updateReserveIxnsArgs.push(
|
|
1618
|
-
|
|
1619
|
-
value: updateReserveConfigEncodedValue(
|
|
1583
|
+
updateReserveIxnsArgs.push(
|
|
1584
|
+
createUpdateReserveIxnsArg(
|
|
1620
1585
|
UpdateConfigMode.UpdateTokenInfoScopeChain.discriminator,
|
|
1621
1586
|
tokenInfo.scopeConfiguration.priceChain
|
|
1622
|
-
)
|
|
1623
|
-
|
|
1587
|
+
)
|
|
1588
|
+
);
|
|
1624
1589
|
}
|
|
1625
1590
|
if (
|
|
1626
1591
|
!sameLengthArrayEquals(
|
|
@@ -1628,133 +1593,90 @@ function handleConfigUpdate(
|
|
|
1628
1593
|
tokenInfo.scopeConfiguration.twapChain
|
|
1629
1594
|
)
|
|
1630
1595
|
) {
|
|
1631
|
-
updateReserveIxnsArgs.push(
|
|
1632
|
-
|
|
1633
|
-
value: updateReserveConfigEncodedValue(
|
|
1596
|
+
updateReserveIxnsArgs.push(
|
|
1597
|
+
createUpdateReserveIxnsArg(
|
|
1634
1598
|
UpdateConfigMode.UpdateTokenInfoScopeTwap.discriminator,
|
|
1635
1599
|
tokenInfo.scopeConfiguration.twapChain
|
|
1636
|
-
)
|
|
1637
|
-
|
|
1600
|
+
)
|
|
1601
|
+
);
|
|
1638
1602
|
}
|
|
1639
1603
|
if (
|
|
1640
1604
|
!reserve.config.tokenInfo.switchboardConfiguration.priceAggregator.equals(
|
|
1641
1605
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1642
1606
|
)
|
|
1643
1607
|
) {
|
|
1644
|
-
updateReserveIxnsArgs.push(
|
|
1645
|
-
|
|
1646
|
-
value: updateReserveConfigEncodedValue(
|
|
1608
|
+
updateReserveIxnsArgs.push(
|
|
1609
|
+
createUpdateReserveIxnsArg(
|
|
1647
1610
|
UpdateConfigMode.UpdateSwitchboardFeed.discriminator,
|
|
1648
1611
|
tokenInfo.switchboardConfiguration.priceAggregator
|
|
1649
|
-
)
|
|
1650
|
-
|
|
1612
|
+
)
|
|
1613
|
+
);
|
|
1651
1614
|
}
|
|
1652
1615
|
if (
|
|
1653
1616
|
!reserve.config.tokenInfo.switchboardConfiguration.twapAggregator.equals(
|
|
1654
1617
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1655
1618
|
)
|
|
1656
1619
|
) {
|
|
1657
|
-
updateReserveIxnsArgs.push(
|
|
1658
|
-
|
|
1659
|
-
value: updateReserveConfigEncodedValue(
|
|
1620
|
+
updateReserveIxnsArgs.push(
|
|
1621
|
+
createUpdateReserveIxnsArg(
|
|
1660
1622
|
UpdateConfigMode.UpdateSwitchboardTwapFeed.discriminator,
|
|
1661
1623
|
tokenInfo.switchboardConfiguration.twapAggregator
|
|
1662
|
-
)
|
|
1663
|
-
|
|
1624
|
+
)
|
|
1625
|
+
);
|
|
1664
1626
|
}
|
|
1665
1627
|
if (!reserve.config.tokenInfo.pythConfiguration.price.equals(tokenInfo.pythConfiguration.price)) {
|
|
1666
|
-
updateReserveIxnsArgs.push(
|
|
1667
|
-
|
|
1668
|
-
value: updateReserveConfigEncodedValue(
|
|
1628
|
+
updateReserveIxnsArgs.push(
|
|
1629
|
+
createUpdateReserveIxnsArg(
|
|
1669
1630
|
UpdateConfigMode.UpdatePythPrice.discriminator,
|
|
1670
1631
|
tokenInfo.pythConfiguration.price
|
|
1671
|
-
)
|
|
1672
|
-
|
|
1632
|
+
)
|
|
1633
|
+
);
|
|
1673
1634
|
}
|
|
1674
1635
|
if (reserve.config.tokenInfo.blockPriceUsage !== tokenInfo.blockPriceUsage) {
|
|
1675
|
-
updateReserveIxnsArgs.push(
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
UpdateConfigMode.UpdateBlockPriceUsage.discriminator,
|
|
1679
|
-
tokenInfo.blockPriceUsage
|
|
1680
|
-
),
|
|
1681
|
-
});
|
|
1636
|
+
updateReserveIxnsArgs.push(
|
|
1637
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateBlockPriceUsage.discriminator, tokenInfo.blockPriceUsage)
|
|
1638
|
+
);
|
|
1682
1639
|
}
|
|
1683
1640
|
if (!reserve.config.tokenInfo.scopeConfiguration.priceFeed.equals(tokenInfo.scopeConfiguration.priceFeed)) {
|
|
1684
|
-
updateReserveIxnsArgs.push(
|
|
1685
|
-
|
|
1686
|
-
value: updateReserveConfigEncodedValue(
|
|
1641
|
+
updateReserveIxnsArgs.push(
|
|
1642
|
+
createUpdateReserveIxnsArg(
|
|
1687
1643
|
UpdateConfigMode.UpdateScopePriceFeed.discriminator,
|
|
1688
1644
|
tokenInfo.scopeConfiguration.priceFeed
|
|
1689
|
-
)
|
|
1690
|
-
|
|
1645
|
+
)
|
|
1646
|
+
);
|
|
1691
1647
|
}
|
|
1692
1648
|
}
|
|
1693
1649
|
break;
|
|
1694
1650
|
case 'depositWithdrawalCap':
|
|
1695
|
-
if (
|
|
1696
|
-
|
|
1697
|
-
mode: UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator + 1,
|
|
1698
|
-
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1699
|
-
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1700
|
-
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1701
|
-
]),
|
|
1702
|
-
});
|
|
1703
|
-
} else if (
|
|
1651
|
+
if (
|
|
1652
|
+
reserve === undefined ||
|
|
1704
1653
|
!reserve.config.depositWithdrawalCap.configCapacity.eq(reserveConfig.depositWithdrawalCap.configCapacity) ||
|
|
1705
1654
|
!reserve.config.depositWithdrawalCap.configIntervalLengthSeconds.eq(
|
|
1706
1655
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds
|
|
1707
1656
|
)
|
|
1708
1657
|
) {
|
|
1709
|
-
updateReserveIxnsArgs.push(
|
|
1710
|
-
|
|
1711
|
-
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1658
|
+
updateReserveIxnsArgs.push(
|
|
1659
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator, [
|
|
1712
1660
|
reserveConfig.depositWithdrawalCap.configCapacity.toNumber(),
|
|
1713
1661
|
reserveConfig.depositWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1714
|
-
])
|
|
1715
|
-
|
|
1716
|
-
} else if (
|
|
1717
|
-
!reserve.config.depositWithdrawalCap.currentTotal.eq(reserveConfig.depositWithdrawalCap.currentTotal)
|
|
1718
|
-
) {
|
|
1719
|
-
updateReserveIxnsArgs.push({
|
|
1720
|
-
mode: UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator + 1,
|
|
1721
|
-
value: updateReserveConfigEncodedValue(
|
|
1722
|
-
UpdateConfigMode.UpdateDepositWithdrawalCap.discriminator,
|
|
1723
|
-
reserveConfig.depositWithdrawalCap.currentTotal.toNumber()
|
|
1724
|
-
),
|
|
1725
|
-
});
|
|
1662
|
+
])
|
|
1663
|
+
);
|
|
1726
1664
|
}
|
|
1727
1665
|
break;
|
|
1728
1666
|
case 'debtWithdrawalCap':
|
|
1729
|
-
if (
|
|
1730
|
-
|
|
1731
|
-
mode: UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator + 1,
|
|
1732
|
-
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1733
|
-
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1734
|
-
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1735
|
-
]),
|
|
1736
|
-
});
|
|
1737
|
-
} else if (
|
|
1667
|
+
if (
|
|
1668
|
+
reserve === undefined ||
|
|
1738
1669
|
!reserve.config.debtWithdrawalCap.configCapacity.eq(reserveConfig.debtWithdrawalCap.configCapacity) ||
|
|
1739
1670
|
!reserve.config.debtWithdrawalCap.configIntervalLengthSeconds.eq(
|
|
1740
1671
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds
|
|
1741
1672
|
)
|
|
1742
1673
|
) {
|
|
1743
|
-
updateReserveIxnsArgs.push(
|
|
1744
|
-
|
|
1745
|
-
value: updateReserveConfigEncodedValue(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1674
|
+
updateReserveIxnsArgs.push(
|
|
1675
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator, [
|
|
1746
1676
|
reserveConfig.debtWithdrawalCap.configCapacity.toNumber(),
|
|
1747
1677
|
reserveConfig.debtWithdrawalCap.configIntervalLengthSeconds.toNumber(),
|
|
1748
|
-
])
|
|
1749
|
-
|
|
1750
|
-
} else if (!reserve.config.debtWithdrawalCap.currentTotal.eq(reserveConfig.debtWithdrawalCap.currentTotal)) {
|
|
1751
|
-
updateReserveIxnsArgs.push({
|
|
1752
|
-
mode: UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator + 1,
|
|
1753
|
-
value: updateReserveConfigEncodedValue(
|
|
1754
|
-
UpdateConfigMode.UpdateDebtWithdrawalCap.discriminator,
|
|
1755
|
-
reserveConfig.debtWithdrawalCap.currentTotal.toNumber()
|
|
1756
|
-
),
|
|
1757
|
-
});
|
|
1678
|
+
])
|
|
1679
|
+
);
|
|
1758
1680
|
}
|
|
1759
1681
|
break;
|
|
1760
1682
|
case 'elevationGroups':
|
|
@@ -1762,13 +1684,9 @@ function handleConfigUpdate(
|
|
|
1762
1684
|
reserve === undefined ||
|
|
1763
1685
|
!sameLengthArrayEquals(reserve.config.elevationGroups, reserveConfig.elevationGroups)
|
|
1764
1686
|
) {
|
|
1765
|
-
updateReserveIxnsArgs.push(
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
UpdateConfigMode.UpdateElevationGroup.discriminator,
|
|
1769
|
-
reserveConfig.elevationGroups
|
|
1770
|
-
),
|
|
1771
|
-
});
|
|
1687
|
+
updateReserveIxnsArgs.push(
|
|
1688
|
+
createUpdateReserveIxnsArg(UpdateConfigMode.UpdateElevationGroup.discriminator, reserveConfig.elevationGroups)
|
|
1689
|
+
);
|
|
1772
1690
|
}
|
|
1773
1691
|
break;
|
|
1774
1692
|
case 'disableUsageAsCollOutsideEmode':
|
|
@@ -1776,13 +1694,12 @@ function handleConfigUpdate(
|
|
|
1776
1694
|
reserve === undefined ||
|
|
1777
1695
|
reserve.config.disableUsageAsCollOutsideEmode !== reserveConfig.disableUsageAsCollOutsideEmode
|
|
1778
1696
|
) {
|
|
1779
|
-
updateReserveIxnsArgs.push(
|
|
1780
|
-
|
|
1781
|
-
value: updateReserveConfigEncodedValue(
|
|
1697
|
+
updateReserveIxnsArgs.push(
|
|
1698
|
+
createUpdateReserveIxnsArg(
|
|
1782
1699
|
UpdateConfigMode.UpdateDisableUsageAsCollateralOutsideEmode.discriminator,
|
|
1783
1700
|
reserveConfig.disableUsageAsCollOutsideEmode
|
|
1784
|
-
)
|
|
1785
|
-
|
|
1701
|
+
)
|
|
1702
|
+
);
|
|
1786
1703
|
}
|
|
1787
1704
|
break;
|
|
1788
1705
|
case 'utilizationLimitBlockBorrowingAbovePct':
|
|
@@ -1790,24 +1707,22 @@ function handleConfigUpdate(
|
|
|
1790
1707
|
reserve === undefined ||
|
|
1791
1708
|
reserve.config.utilizationLimitBlockBorrowingAbovePct !== reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1792
1709
|
) {
|
|
1793
|
-
updateReserveIxnsArgs.push(
|
|
1794
|
-
|
|
1795
|
-
value: updateReserveConfigEncodedValue(
|
|
1710
|
+
updateReserveIxnsArgs.push(
|
|
1711
|
+
createUpdateReserveIxnsArg(
|
|
1796
1712
|
UpdateConfigMode.UpdateBlockBorrowingAboveUtilizationPct.discriminator,
|
|
1797
1713
|
reserveConfig.utilizationLimitBlockBorrowingAbovePct
|
|
1798
|
-
)
|
|
1799
|
-
|
|
1714
|
+
)
|
|
1715
|
+
);
|
|
1800
1716
|
}
|
|
1801
1717
|
break;
|
|
1802
1718
|
case 'autodeleverageEnabled':
|
|
1803
1719
|
if (reserve === undefined || reserve.config.autodeleverageEnabled !== reserveConfig.autodeleverageEnabled) {
|
|
1804
|
-
updateReserveIxnsArgs.push(
|
|
1805
|
-
|
|
1806
|
-
value: updateReserveConfigEncodedValue(
|
|
1720
|
+
updateReserveIxnsArgs.push(
|
|
1721
|
+
createUpdateReserveIxnsArg(
|
|
1807
1722
|
UpdateConfigMode.UpdateAutodeleverageEnabled.discriminator,
|
|
1808
1723
|
reserveConfig.autodeleverageEnabled
|
|
1809
|
-
)
|
|
1810
|
-
|
|
1724
|
+
)
|
|
1725
|
+
);
|
|
1811
1726
|
}
|
|
1812
1727
|
break;
|
|
1813
1728
|
case 'borrowLimitOutsideElevationGroup':
|
|
@@ -1815,13 +1730,12 @@ function handleConfigUpdate(
|
|
|
1815
1730
|
reserve === undefined ||
|
|
1816
1731
|
!reserve.config.borrowLimitOutsideElevationGroup.eq(reserveConfig.borrowLimitOutsideElevationGroup)
|
|
1817
1732
|
) {
|
|
1818
|
-
updateReserveIxnsArgs.push(
|
|
1819
|
-
|
|
1820
|
-
value: updateReserveConfigEncodedValue(
|
|
1733
|
+
updateReserveIxnsArgs.push(
|
|
1734
|
+
createUpdateReserveIxnsArg(
|
|
1821
1735
|
UpdateConfigMode.UpdateBorrowLimitOutsideElevationGroup.discriminator,
|
|
1822
1736
|
reserveConfig.borrowLimitOutsideElevationGroup.toNumber()
|
|
1823
|
-
)
|
|
1824
|
-
|
|
1737
|
+
)
|
|
1738
|
+
);
|
|
1825
1739
|
}
|
|
1826
1740
|
break;
|
|
1827
1741
|
case 'borrowLimitAgainstThisCollateralInElevationGroup':
|
|
@@ -1832,28 +1746,25 @@ function handleConfigUpdate(
|
|
|
1832
1746
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup
|
|
1833
1747
|
)
|
|
1834
1748
|
) {
|
|
1835
|
-
updateReserveIxnsArgs.push(
|
|
1836
|
-
|
|
1837
|
-
value: updateReserveConfigEncodedValue(
|
|
1749
|
+
updateReserveIxnsArgs.push(
|
|
1750
|
+
createUpdateReserveIxnsArg(
|
|
1838
1751
|
UpdateConfigMode.UpdateBorrowLimitsInElevationGroupAgainstThisReserve.discriminator,
|
|
1839
1752
|
reserveConfig.borrowLimitAgainstThisCollateralInElevationGroup.map((borrowLimit) => borrowLimit.toNumber())
|
|
1840
|
-
)
|
|
1841
|
-
|
|
1753
|
+
)
|
|
1754
|
+
);
|
|
1842
1755
|
}
|
|
1843
|
-
|
|
1844
1756
|
break;
|
|
1845
1757
|
case 'deleveragingBonusIncreaseBpsPerDay':
|
|
1846
1758
|
if (
|
|
1847
1759
|
reserve === undefined ||
|
|
1848
1760
|
!reserve.config.deleveragingBonusIncreaseBpsPerDay.eq(reserveConfig.deleveragingBonusIncreaseBpsPerDay)
|
|
1849
1761
|
) {
|
|
1850
|
-
updateReserveIxnsArgs.push(
|
|
1851
|
-
|
|
1852
|
-
value: updateReserveConfigEncodedValue(
|
|
1762
|
+
updateReserveIxnsArgs.push(
|
|
1763
|
+
createUpdateReserveIxnsArg(
|
|
1853
1764
|
UpdateConfigMode.UpdateDeleveragingBonusIncreaseBpsPerDay.discriminator,
|
|
1854
1765
|
reserveConfig.deleveragingBonusIncreaseBpsPerDay.toNumber()
|
|
1855
|
-
)
|
|
1856
|
-
|
|
1766
|
+
)
|
|
1767
|
+
);
|
|
1857
1768
|
}
|
|
1858
1769
|
break;
|
|
1859
1770
|
default:
|
|
@@ -1861,6 +1772,18 @@ function handleConfigUpdate(
|
|
|
1861
1772
|
}
|
|
1862
1773
|
}
|
|
1863
1774
|
|
|
1775
|
+
function createUpdateReserveIxnsArg(
|
|
1776
|
+
discriminator: UpdateConfigModeKind['discriminator'],
|
|
1777
|
+
value: number | number[] | bigint | BorrowRateCurve | PublicKey
|
|
1778
|
+
): UpdateReserveIxnsArg {
|
|
1779
|
+
return {
|
|
1780
|
+
// Note: below we add 1 to the discriminator, because UpdateConfigMode in SC starts from 1, while the idl-codegen
|
|
1781
|
+
// creates the TS counterparts starting from 0:
|
|
1782
|
+
mode: discriminator + 1,
|
|
1783
|
+
value: updateReserveConfigEncodedValue(discriminator, value),
|
|
1784
|
+
};
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1864
1787
|
export function updateEntireReserveConfigIx(
|
|
1865
1788
|
marketWithAddress: MarketWithAddress,
|
|
1866
1789
|
reserveAddress: PublicKey,
|
|
@@ -1896,7 +1819,7 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1896
1819
|
reserveConfig: ReserveConfig,
|
|
1897
1820
|
programId: PublicKey
|
|
1898
1821
|
) {
|
|
1899
|
-
let updateReserveIxnsArgs:
|
|
1822
|
+
let updateReserveIxnsArgs: UpdateReserveIxnsArg[] = [];
|
|
1900
1823
|
for (const key in reserveConfig.toEncodable()) {
|
|
1901
1824
|
if (isExcludedReserveConfigKey(key)) {
|
|
1902
1825
|
continue;
|
|
@@ -1929,7 +1852,7 @@ export function parseForChangesReserveConfigAndGetIxs(
|
|
|
1929
1852
|
}
|
|
1930
1853
|
|
|
1931
1854
|
export function updateReserveConfigEncodedValue(
|
|
1932
|
-
discriminator:
|
|
1855
|
+
discriminator: UpdateConfigModeKind['discriminator'],
|
|
1933
1856
|
value: number | number[] | bigint | BorrowRateCurve | PublicKey
|
|
1934
1857
|
): Uint8Array {
|
|
1935
1858
|
let buffer: Buffer;
|
|
@@ -1963,8 +1886,6 @@ export function updateReserveConfigEncodedValue(
|
|
|
1963
1886
|
case UpdateConfigMode.UpdateTokenInfoTwapDivergence.discriminator:
|
|
1964
1887
|
case UpdateConfigMode.UpdateTokenInfoPriceMaxAge.discriminator:
|
|
1965
1888
|
case UpdateConfigMode.UpdateTokenInfoTwapMaxAge.discriminator:
|
|
1966
|
-
case UpdateConfigMode.UpdateDebtWithdrawalCapCurrentTotal.discriminator:
|
|
1967
|
-
case UpdateConfigMode.UpdateDepositWithdrawalCapCurrentTotal.discriminator:
|
|
1968
1889
|
case UpdateConfigMode.UpdateDeleveragingMarginCallPeriod.discriminator:
|
|
1969
1890
|
case UpdateConfigMode.UpdateBorrowFactor.discriminator:
|
|
1970
1891
|
case UpdateConfigMode.UpdateDeleveragingThresholdDecreaseBpsPerDay.discriminator:
|
|
@@ -2054,7 +1975,7 @@ export type ReserveWithAddress = {
|
|
|
2054
1975
|
state: Reserve;
|
|
2055
1976
|
};
|
|
2056
1977
|
|
|
2057
|
-
export type
|
|
1978
|
+
export type UpdateReserveIxnsArg = {
|
|
2058
1979
|
mode: number;
|
|
2059
1980
|
value: Uint8Array;
|
|
2060
1981
|
};
|
|
@@ -2074,7 +1995,7 @@ export const modeMatches = (mode: number): boolean => {
|
|
|
2074
1995
|
|
|
2075
1996
|
// Sort update reserve ixns, to first have the oracle config updates first
|
|
2076
1997
|
// In order to skip the validation for the scope config updates
|
|
2077
|
-
export const sortIxnsByPriority = (updateReserveIxnsArgs:
|
|
1998
|
+
export const sortIxnsByPriority = (updateReserveIxnsArgs: UpdateReserveIxnsArg[]) => {
|
|
2078
1999
|
return updateReserveIxnsArgs.sort((a, b) => {
|
|
2079
2000
|
const isPriorityA = a.mode === 20 || a.mode === 16;
|
|
2080
2001
|
const isPriorityB = b.mode === 20 || b.mode === 16;
|