@0dotxyz/p0-ts-sdk 2.3.3 → 2.4.1

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/vendor.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  var web3_js = require('@solana/web3.js');
4
4
  var bignumber_js = require('bignumber.js');
5
5
  var borsh$1 = require('borsh');
6
- var BN2 = require('bn.js');
6
+ var BN5 = require('bn.js');
7
7
  var bufferLayout = require('@solana/buffer-layout');
8
8
  var bufferLayoutUtils = require('@solana/buffer-layout-utils');
9
9
  var buffer = require('buffer');
@@ -33,7 +33,7 @@ function _interopNamespace(e) {
33
33
  return Object.freeze(n);
34
34
  }
35
35
 
36
- var BN2__default = /*#__PURE__*/_interopDefault(BN2);
36
+ var BN5__default = /*#__PURE__*/_interopDefault(BN5);
37
37
  var borsh__namespace = /*#__PURE__*/_interopNamespace(borsh);
38
38
  var Decimal3__default = /*#__PURE__*/_interopDefault(Decimal3);
39
39
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
@@ -730,7 +730,7 @@ var SinglePoolInstruction = {
730
730
  const data = Buffer.concat([
731
731
  Buffer.from([3 /* WithdrawStake */]),
732
732
  userStakeAuthority.toBuffer(),
733
- Buffer.from(new BN2.BN(rawAmount.toString()).toArray("le", 8))
733
+ Buffer.from(new BN5.BN(rawAmount.toString()).toArray("le", 8))
734
734
  ]);
735
735
  return createTransactionInstruction(
736
736
  SINGLE_POOL_PROGRAM_ID,
@@ -886,8 +886,8 @@ var createAccountIx = (from, newAccount, lamports, space, programAddress) => {
886
886
  const data = Buffer.concat([
887
887
  Buffer.from([0]),
888
888
  // Assuming the first byte is an instruction type or similar
889
- Buffer.from(new BN2.BN(lamports).toArray("le", 8)),
890
- Buffer.from(new BN2.BN(space).toArray("le", 8)),
889
+ Buffer.from(new BN5.BN(lamports).toArray("le", 8)),
890
+ Buffer.from(new BN5.BN(space).toArray("le", 8)),
891
891
  programAddress.toBuffer()
892
892
  ]);
893
893
  const accounts = [
@@ -4063,233 +4063,65 @@ async function makeRefreshingIxs({
4063
4063
  }
4064
4064
 
4065
4065
  // src/vendor/klend/utils/klend/serialize.utils.ts
4066
- function obligationRawToDto(obligationRaw) {
4066
+ function kaminoObligationToDto(obligation) {
4067
4067
  return {
4068
- tag: obligationRaw.tag.toString(),
4069
- lastUpdate: {
4070
- slot: obligationRaw.lastUpdate.slot.toString(),
4071
- stale: obligationRaw.lastUpdate.stale,
4072
- priceStatus: obligationRaw.lastUpdate.priceStatus,
4073
- placeholder: obligationRaw.lastUpdate.placeholder
4074
- },
4075
- lendingMarket: obligationRaw.lendingMarket.toBase58(),
4076
- owner: obligationRaw.owner.toBase58(),
4077
- deposits: obligationRaw.deposits.map(
4078
- (item) => obligationCollateralToDto(item)
4079
- ),
4080
- lowestReserveDepositLiquidationLtv: obligationRaw.lowestReserveDepositLiquidationLtv.toString(),
4081
- depositedValueSf: obligationRaw.depositedValueSf.toString(),
4082
- borrows: obligationRaw.borrows.map(
4083
- (item) => obligationLiquidityToDto(item)
4084
- ),
4085
- borrowFactorAdjustedDebtValueSf: obligationRaw.borrowFactorAdjustedDebtValueSf.toString(),
4086
- borrowedAssetsMarketValueSf: obligationRaw.borrowedAssetsMarketValueSf.toString(),
4087
- allowedBorrowValueSf: obligationRaw.allowedBorrowValueSf.toString(),
4088
- unhealthyBorrowValueSf: obligationRaw.unhealthyBorrowValueSf.toString(),
4089
- depositsAssetTiers: obligationRaw.depositsAssetTiers,
4090
- borrowsAssetTiers: obligationRaw.borrowsAssetTiers,
4091
- elevationGroup: obligationRaw.elevationGroup,
4092
- numOfObsoleteDepositReserves: obligationRaw.numOfObsoleteDepositReserves,
4093
- hasDebt: obligationRaw.hasDebt,
4094
- referrer: obligationRaw.referrer.toBase58(),
4095
- borrowingDisabled: obligationRaw.borrowingDisabled,
4096
- autodeleverageTargetLtvPct: obligationRaw.autodeleverageTargetLtvPct,
4097
- lowestReserveDepositMaxLtvPct: obligationRaw.lowestReserveDepositMaxLtvPct,
4098
- numOfObsoleteBorrowReserves: obligationRaw.numOfObsoleteBorrowReserves,
4099
- reserved: obligationRaw.reserved,
4100
- highestBorrowFactorPct: obligationRaw.highestBorrowFactorPct.toString(),
4101
- autodeleverageMarginCallStartedTimestamp: obligationRaw.autodeleverageMarginCallStartedTimestamp.toString(),
4102
- orders: obligationRaw.orders.map((item) => obligationOrderToDto(item)),
4103
- padding3: obligationRaw.padding3.map((item) => item.toString())
4104
- };
4105
- }
4106
- function reserveRawToDto(reserveRaw) {
4107
- return {
4108
- version: reserveRaw.version.toString(),
4109
- lastUpdate: {
4110
- slot: reserveRaw.lastUpdate.slot.toString(),
4111
- stale: reserveRaw.lastUpdate.stale,
4112
- priceStatus: reserveRaw.lastUpdate.priceStatus,
4113
- placeholder: reserveRaw.lastUpdate.placeholder
4114
- },
4115
- lendingMarket: reserveRaw.lendingMarket.toBase58(),
4116
- farmCollateral: reserveRaw.farmCollateral.toBase58(),
4117
- farmDebt: reserveRaw.farmDebt.toBase58(),
4118
- liquidity: reserveLiquidityFieldsToDto(reserveRaw.liquidity),
4119
- reserveLiquidityPadding: reserveRaw.reserveLiquidityPadding.map(
4120
- (item) => item.toString()
4121
- ),
4122
- collateral: {
4123
- mintPubkey: reserveRaw.collateral.mintPubkey.toBase58(),
4124
- mintTotalSupply: reserveRaw.collateral.mintTotalSupply.toString(),
4125
- supplyVault: reserveRaw.collateral.supplyVault.toBase58(),
4126
- padding1: reserveRaw.collateral.padding1.map((item) => item.toString()),
4127
- padding2: reserveRaw.collateral.padding2.map((item) => item.toString())
4128
- },
4129
- reserveCollateralPadding: reserveRaw.reserveCollateralPadding.map(
4130
- (item) => item.toString()
4131
- ),
4132
- config: reserveConfigFieldsToDto(reserveRaw.config),
4133
- configPadding: reserveRaw.configPadding.map((item) => item.toString()),
4134
- borrowedAmountOutsideElevationGroup: reserveRaw.borrowedAmountOutsideElevationGroup.toString(),
4135
- borrowedAmountsAgainstThisReserveInElevationGroups: reserveRaw.borrowedAmountsAgainstThisReserveInElevationGroups.map(
4136
- (item) => item.toString()
4137
- ),
4138
- padding: reserveRaw.padding.map((item) => item.toString())
4139
- };
4140
- }
4141
- function reserveLiquidityFieldsToDto(reserveLiquidityFields) {
4142
- return {
4143
- mintPubkey: reserveLiquidityFields.mintPubkey.toBase58(),
4144
- supplyVault: reserveLiquidityFields.supplyVault.toBase58(),
4145
- feeVault: reserveLiquidityFields.feeVault.toBase58(),
4146
- availableAmount: reserveLiquidityFields.availableAmount.toString(),
4147
- borrowedAmountSf: reserveLiquidityFields.borrowedAmountSf.toString(),
4148
- marketPriceSf: reserveLiquidityFields.marketPriceSf.toString(),
4149
- marketPriceLastUpdatedTs: reserveLiquidityFields.marketPriceLastUpdatedTs.toString(),
4150
- mintDecimals: reserveLiquidityFields.mintDecimals.toString(),
4151
- depositLimitCrossedTimestamp: reserveLiquidityFields.depositLimitCrossedTimestamp.toString(),
4152
- borrowLimitCrossedTimestamp: reserveLiquidityFields.borrowLimitCrossedTimestamp.toString(),
4153
- cumulativeBorrowRateBsf: {
4154
- value: reserveLiquidityFields.cumulativeBorrowRateBsf.value.map(
4155
- (item) => item.toString()
4156
- ),
4157
- padding: reserveLiquidityFields.cumulativeBorrowRateBsf.padding.map(
4158
- (item) => item.toString()
4159
- )
4160
- },
4161
- accumulatedProtocolFeesSf: reserveLiquidityFields.accumulatedProtocolFeesSf.toString(),
4162
- accumulatedReferrerFeesSf: reserveLiquidityFields.accumulatedReferrerFeesSf.toString(),
4163
- pendingReferrerFeesSf: reserveLiquidityFields.pendingReferrerFeesSf.toString(),
4164
- absoluteReferralRateSf: reserveLiquidityFields.absoluteReferralRateSf.toString(),
4165
- tokenProgram: reserveLiquidityFields.tokenProgram.toBase58(),
4166
- padding2: reserveLiquidityFields.padding2.map((item) => item.toString()),
4167
- padding3: reserveLiquidityFields.padding3.map((item) => item.toString())
4168
- };
4169
- }
4170
- function reserveConfigFieldsToDto(reserveConfigFields) {
4171
- return {
4172
- status: reserveConfigFields.status,
4173
- assetTier: reserveConfigFields.assetTier,
4174
- hostFixedInterestRateBps: reserveConfigFields.hostFixedInterestRateBps,
4175
- reserved2: reserveConfigFields.reserved2,
4176
- protocolOrderExecutionFeePct: reserveConfigFields.protocolOrderExecutionFeePct,
4177
- protocolTakeRatePct: reserveConfigFields.protocolTakeRatePct,
4178
- protocolLiquidationFeePct: reserveConfigFields.protocolLiquidationFeePct,
4179
- loanToValuePct: reserveConfigFields.loanToValuePct,
4180
- liquidationThresholdPct: reserveConfigFields.liquidationThresholdPct,
4181
- minLiquidationBonusBps: reserveConfigFields.minLiquidationBonusBps,
4182
- maxLiquidationBonusBps: reserveConfigFields.maxLiquidationBonusBps,
4183
- badDebtLiquidationBonusBps: reserveConfigFields.badDebtLiquidationBonusBps,
4184
- deleveragingMarginCallPeriodSecs: reserveConfigFields.deleveragingMarginCallPeriodSecs.toString(),
4185
- deleveragingThresholdDecreaseBpsPerDay: reserveConfigFields.deleveragingThresholdDecreaseBpsPerDay.toString(),
4186
- fees: {
4187
- borrowFeeSf: reserveConfigFields.fees.borrowFeeSf.toString(),
4188
- flashLoanFeeSf: reserveConfigFields.fees.flashLoanFeeSf.toString(),
4189
- padding: reserveConfigFields.fees.padding
4190
- },
4191
- borrowRateCurve: {
4192
- points: reserveConfigFields.borrowRateCurve.points.map((item) => ({
4193
- utilizationRateBps: item.utilizationRateBps,
4194
- borrowRateBps: item.borrowRateBps
4195
- }))
4196
- },
4197
- borrowFactorPct: reserveConfigFields.borrowFactorPct.toString(),
4198
- depositLimit: reserveConfigFields.depositLimit.toString(),
4199
- borrowLimit: reserveConfigFields.borrowLimit.toString(),
4200
- tokenInfo: tokenInfoFieldsToDto(reserveConfigFields.tokenInfo),
4201
- depositWithdrawalCap: withdrawalCapsFieldsToDto(
4202
- reserveConfigFields.depositWithdrawalCap
4203
- ),
4204
- debtWithdrawalCap: withdrawalCapsFieldsToDto(
4205
- reserveConfigFields.debtWithdrawalCap
4206
- ),
4207
- elevationGroups: reserveConfigFields.elevationGroups,
4208
- disableUsageAsCollOutsideEmode: reserveConfigFields.disableUsageAsCollOutsideEmode,
4209
- utilizationLimitBlockBorrowingAbovePct: reserveConfigFields.utilizationLimitBlockBorrowingAbovePct,
4210
- autodeleverageEnabled: reserveConfigFields.autodeleverageEnabled,
4211
- reserved1: reserveConfigFields.reserved1,
4212
- borrowLimitOutsideElevationGroup: reserveConfigFields.borrowLimitOutsideElevationGroup.toString(),
4213
- borrowLimitAgainstThisCollateralInElevationGroup: reserveConfigFields.borrowLimitAgainstThisCollateralInElevationGroup.map(
4214
- (item) => item.toString()
4215
- ),
4216
- deleveragingBonusIncreaseBpsPerDay: reserveConfigFields.deleveragingBonusIncreaseBpsPerDay.toString()
4217
- };
4218
- }
4219
- function tokenInfoFieldsToDto(tokenInfoFields) {
4220
- return {
4221
- name: tokenInfoFields.name,
4222
- heuristic: {
4223
- lower: tokenInfoFields.heuristic.lower.toString(),
4224
- upper: tokenInfoFields.heuristic.upper.toString(),
4225
- exp: tokenInfoFields.heuristic.exp.toString()
4226
- },
4227
- maxTwapDivergenceBps: tokenInfoFields.maxTwapDivergenceBps.toString(),
4228
- maxAgePriceSeconds: tokenInfoFields.maxAgePriceSeconds.toString(),
4229
- maxAgeTwapSeconds: tokenInfoFields.maxAgeTwapSeconds.toString(),
4230
- scopeConfiguration: {
4231
- priceFeed: tokenInfoFields.scopeConfiguration.priceFeed.toBase58(),
4232
- priceChain: tokenInfoFields.scopeConfiguration.priceChain,
4233
- twapChain: tokenInfoFields.scopeConfiguration.twapChain
4234
- },
4235
- switchboardConfiguration: {
4236
- priceAggregator: tokenInfoFields.switchboardConfiguration.priceAggregator.toBase58(),
4237
- twapAggregator: tokenInfoFields.switchboardConfiguration.twapAggregator.toBase58()
4238
- },
4239
- pythConfiguration: {
4240
- price: tokenInfoFields.pythConfiguration.price.toBase58()
4241
- },
4242
- blockPriceUsage: tokenInfoFields.blockPriceUsage,
4243
- reserved: tokenInfoFields.reserved,
4244
- padding: tokenInfoFields.padding.map((item) => item.toString())
4245
- };
4246
- }
4247
- function withdrawalCapsFieldsToDto(withdrawalCapsFields) {
4248
- return {
4249
- configCapacity: withdrawalCapsFields.configCapacity.toString(),
4250
- currentTotal: withdrawalCapsFields.currentTotal.toString(),
4251
- lastIntervalStartTimestamp: withdrawalCapsFields.lastIntervalStartTimestamp.toString(),
4252
- configIntervalLengthSeconds: withdrawalCapsFields.configIntervalLengthSeconds.toString()
4253
- };
4254
- }
4255
- function obligationCollateralToDto(obligationCollateralFields) {
4256
- return {
4257
- depositReserve: obligationCollateralFields.depositReserve.toBase58(),
4258
- depositedAmount: obligationCollateralFields.depositedAmount.toString(),
4259
- marketValueSf: obligationCollateralFields.marketValueSf.toString(),
4260
- borrowedAmountAgainstThisCollateralInElevationGroup: obligationCollateralFields.borrowedAmountAgainstThisCollateralInElevationGroup.toString(),
4261
- padding: obligationCollateralFields.padding.map((item) => item.toString())
4068
+ lendingMarket: obligation.lendingMarket.toBase58(),
4069
+ owner: obligation.owner.toBase58(),
4070
+ deposits: obligation.deposits.map((item) => ({
4071
+ depositReserve: item.depositReserve.toBase58(),
4072
+ depositedAmount: item.depositedAmount.toString(),
4073
+ marketValueSf: item.marketValueSf.toString()
4074
+ })),
4075
+ borrows: obligation.borrows.map((item) => ({
4076
+ borrowReserve: item.borrowReserve.toBase58(),
4077
+ borrowedAmountSf: item.borrowedAmountSf.toString(),
4078
+ marketValueSf: item.marketValueSf.toString()
4079
+ }))
4262
4080
  };
4263
4081
  }
4264
- function obligationLiquidityToDto(obligationLiquidityFields) {
4082
+ function kaminoReserveToDto(reserve) {
4265
4083
  return {
4266
- borrowReserve: obligationLiquidityFields.borrowReserve.toBase58(),
4267
- cumulativeBorrowRateBsf: {
4268
- value: obligationLiquidityFields.cumulativeBorrowRateBsf.value.map(
4269
- (item) => item.toString()
4270
- ),
4271
- padding: obligationLiquidityFields.cumulativeBorrowRateBsf.padding.map(
4272
- (item) => item.toString()
4273
- )
4084
+ lendingMarket: reserve.lendingMarket.toBase58(),
4085
+ farmCollateral: reserve.farmCollateral.toBase58(),
4086
+ liquidity: {
4087
+ mintPubkey: reserve.liquidity.mintPubkey.toBase58(),
4088
+ supplyVault: reserve.liquidity.supplyVault.toBase58(),
4089
+ mintDecimals: reserve.liquidity.mintDecimals.toString(),
4090
+ availableAmount: reserve.liquidity.availableAmount.toString(),
4091
+ borrowedAmountSf: reserve.liquidity.borrowedAmountSf.toString(),
4092
+ accumulatedProtocolFeesSf: reserve.liquidity.accumulatedProtocolFeesSf.toString(),
4093
+ accumulatedReferrerFeesSf: reserve.liquidity.accumulatedReferrerFeesSf.toString(),
4094
+ pendingReferrerFeesSf: reserve.liquidity.pendingReferrerFeesSf.toString()
4274
4095
  },
4275
- padding: obligationLiquidityFields.padding.toString(),
4276
- borrowedAmountSf: obligationLiquidityFields.borrowedAmountSf.toString(),
4277
- marketValueSf: obligationLiquidityFields.marketValueSf.toString(),
4278
- borrowFactorAdjustedMarketValueSf: obligationLiquidityFields.borrowFactorAdjustedMarketValueSf.toString(),
4279
- borrowedAmountOutsideElevationGroups: obligationLiquidityFields.borrowedAmountOutsideElevationGroups.toString(),
4280
- padding2: obligationLiquidityFields.padding2.map((item) => item.toString())
4281
- };
4282
- }
4283
- function obligationOrderToDto(obligationOrderFields) {
4284
- return {
4285
- conditionThresholdSf: obligationOrderFields.conditionThresholdSf.toString(),
4286
- opportunityParameterSf: obligationOrderFields.opportunityParameterSf.toString(),
4287
- minExecutionBonusBps: obligationOrderFields.minExecutionBonusBps,
4288
- maxExecutionBonusBps: obligationOrderFields.maxExecutionBonusBps,
4289
- conditionType: obligationOrderFields.conditionType,
4290
- opportunityType: obligationOrderFields.opportunityType,
4291
- padding1: obligationOrderFields.padding1,
4292
- padding2: obligationOrderFields.padding2.map((item) => item.toString())
4096
+ collateral: {
4097
+ mintPubkey: reserve.collateral.mintPubkey.toBase58(),
4098
+ mintTotalSupply: reserve.collateral.mintTotalSupply.toString(),
4099
+ supplyVault: reserve.collateral.supplyVault.toBase58()
4100
+ },
4101
+ config: {
4102
+ protocolTakeRatePct: reserve.config.protocolTakeRatePct,
4103
+ hostFixedInterestRateBps: reserve.config.hostFixedInterestRateBps,
4104
+ depositLimit: reserve.config.depositLimit.toString(),
4105
+ borrowLimit: reserve.config.borrowLimit.toString(),
4106
+ borrowRateCurve: {
4107
+ points: reserve.config.borrowRateCurve.points.map((item) => ({
4108
+ utilizationRateBps: item.utilizationRateBps,
4109
+ borrowRateBps: item.borrowRateBps
4110
+ }))
4111
+ },
4112
+ tokenInfo: {
4113
+ scopeConfiguration: {
4114
+ priceFeed: reserve.config.tokenInfo.scopeConfiguration.priceFeed.toBase58()
4115
+ },
4116
+ switchboardConfiguration: {
4117
+ priceAggregator: reserve.config.tokenInfo.switchboardConfiguration.priceAggregator.toBase58(),
4118
+ twapAggregator: reserve.config.tokenInfo.switchboardConfiguration.twapAggregator.toBase58()
4119
+ },
4120
+ pythConfiguration: {
4121
+ price: reserve.config.tokenInfo.pythConfiguration.price.toBase58()
4122
+ }
4123
+ }
4124
+ }
4293
4125
  };
4294
4126
  }
4295
4127
 
@@ -12574,267 +12406,78 @@ function decodeKlendObligationData(data) {
12574
12406
  const dec = obligationLayout.decode(data.slice(8));
12575
12407
  return dec;
12576
12408
  }
12577
- function dtoToObligationRaw(obligationDto) {
12409
+ function dtoToKaminoObligation(obligationDto) {
12578
12410
  return {
12579
- tag: new BN2__default.default(obligationDto.tag),
12580
- lastUpdate: {
12581
- slot: new BN2__default.default(obligationDto.lastUpdate.slot),
12582
- stale: obligationDto.lastUpdate.stale,
12583
- priceStatus: obligationDto.lastUpdate.priceStatus,
12584
- placeholder: obligationDto.lastUpdate.placeholder
12585
- },
12586
12411
  lendingMarket: new web3_js.PublicKey(obligationDto.lendingMarket),
12587
12412
  owner: new web3_js.PublicKey(obligationDto.owner),
12588
- deposits: obligationDto.deposits.map(
12589
- (item) => dtoToObligationCollateralFields(item)
12590
- ),
12591
- lowestReserveDepositLiquidationLtv: new BN2__default.default(
12592
- obligationDto.lowestReserveDepositLiquidationLtv
12593
- ),
12594
- depositedValueSf: new BN2__default.default(obligationDto.depositedValueSf),
12595
- borrows: obligationDto.borrows.map(
12596
- (item) => dtoToObligationLiquidityFields(item)
12597
- ),
12598
- borrowFactorAdjustedDebtValueSf: new BN2__default.default(
12599
- obligationDto.borrowFactorAdjustedDebtValueSf
12600
- ),
12601
- borrowedAssetsMarketValueSf: new BN2__default.default(
12602
- obligationDto.borrowedAssetsMarketValueSf
12603
- ),
12604
- allowedBorrowValueSf: new BN2__default.default(obligationDto.allowedBorrowValueSf),
12605
- unhealthyBorrowValueSf: new BN2__default.default(obligationDto.unhealthyBorrowValueSf),
12606
- depositsAssetTiers: obligationDto.depositsAssetTiers,
12607
- borrowsAssetTiers: obligationDto.borrowsAssetTiers,
12608
- elevationGroup: obligationDto.elevationGroup,
12609
- numOfObsoleteDepositReserves: obligationDto.numOfObsoleteDepositReserves,
12610
- hasDebt: obligationDto.hasDebt,
12611
- referrer: new web3_js.PublicKey(obligationDto.referrer),
12612
- borrowingDisabled: obligationDto.borrowingDisabled,
12613
- autodeleverageTargetLtvPct: obligationDto.autodeleverageTargetLtvPct,
12614
- lowestReserveDepositMaxLtvPct: obligationDto.lowestReserveDepositMaxLtvPct,
12615
- numOfObsoleteBorrowReserves: obligationDto.numOfObsoleteBorrowReserves,
12616
- reserved: obligationDto.reserved,
12617
- highestBorrowFactorPct: new BN2__default.default(obligationDto.highestBorrowFactorPct),
12618
- autodeleverageMarginCallStartedTimestamp: new BN2__default.default(
12619
- obligationDto.autodeleverageMarginCallStartedTimestamp
12620
- ),
12621
- orders: obligationDto.orders.map(
12622
- (item) => dtoToObligationOrderFields(item)
12623
- ),
12624
- padding3: obligationDto.padding3.map((item) => new BN2__default.default(item))
12413
+ // Hosted endpoints may prune empty position arrays from the payload
12414
+ deposits: (obligationDto.deposits ?? []).map((item) => ({
12415
+ depositReserve: new web3_js.PublicKey(item.depositReserve),
12416
+ depositedAmount: new BN5__default.default(item.depositedAmount),
12417
+ marketValueSf: new BN5__default.default(item.marketValueSf)
12418
+ })),
12419
+ borrows: (obligationDto.borrows ?? []).map((item) => ({
12420
+ borrowReserve: new web3_js.PublicKey(item.borrowReserve),
12421
+ borrowedAmountSf: new BN5__default.default(item.borrowedAmountSf),
12422
+ marketValueSf: new BN5__default.default(item.marketValueSf)
12423
+ }))
12625
12424
  };
12626
12425
  }
12627
- function dtoToReserveRaw(reserveDto) {
12426
+ function dtoToKaminoReserve(reserveDto) {
12628
12427
  return {
12629
- version: new BN2__default.default(reserveDto.version),
12630
- lastUpdate: {
12631
- slot: new BN2__default.default(reserveDto.lastUpdate.slot),
12632
- stale: reserveDto.lastUpdate.stale,
12633
- priceStatus: reserveDto.lastUpdate.priceStatus,
12634
- placeholder: reserveDto.lastUpdate.placeholder
12635
- },
12636
12428
  lendingMarket: new web3_js.PublicKey(reserveDto.lendingMarket),
12637
12429
  farmCollateral: new web3_js.PublicKey(reserveDto.farmCollateral),
12638
- farmDebt: new web3_js.PublicKey(reserveDto.farmDebt),
12639
- liquidity: dtoToReserveLiquidityFields(reserveDto.liquidity),
12640
- reserveLiquidityPadding: reserveDto.reserveLiquidityPadding.map(
12641
- (item) => new BN2__default.default(item)
12642
- ),
12643
- collateral: {
12644
- mintPubkey: new web3_js.PublicKey(reserveDto.collateral.mintPubkey),
12645
- mintTotalSupply: new BN2__default.default(reserveDto.collateral.mintTotalSupply),
12646
- supplyVault: new web3_js.PublicKey(reserveDto.collateral.supplyVault),
12647
- padding1: reserveDto.collateral.padding1.map((item) => new BN2__default.default(item)),
12648
- padding2: reserveDto.collateral.padding2.map((item) => new BN2__default.default(item))
12649
- },
12650
- reserveCollateralPadding: reserveDto.reserveCollateralPadding.map(
12651
- (item) => new BN2__default.default(item)
12652
- ),
12653
- config: dtoToReserveConfigFields(reserveDto.config),
12654
- configPadding: reserveDto.configPadding.map((item) => new BN2__default.default(item)),
12655
- borrowedAmountOutsideElevationGroup: new BN2__default.default(
12656
- reserveDto.borrowedAmountOutsideElevationGroup
12657
- ),
12658
- borrowedAmountsAgainstThisReserveInElevationGroups: reserveDto.borrowedAmountsAgainstThisReserveInElevationGroups.map(
12659
- (item) => new BN2__default.default(item)
12660
- ),
12661
- padding: reserveDto.padding.map((item) => new BN2__default.default(item))
12662
- };
12663
- }
12664
- function dtoToReserveLiquidityFields(reserveDto) {
12665
- return {
12666
- mintPubkey: new web3_js.PublicKey(reserveDto.mintPubkey),
12667
- supplyVault: new web3_js.PublicKey(reserveDto.supplyVault),
12668
- feeVault: new web3_js.PublicKey(reserveDto.feeVault),
12669
- availableAmount: new BN2__default.default(reserveDto.availableAmount),
12670
- borrowedAmountSf: new BN2__default.default(reserveDto.borrowedAmountSf),
12671
- marketPriceSf: new BN2__default.default(reserveDto.marketPriceSf),
12672
- marketPriceLastUpdatedTs: new BN2__default.default(reserveDto.marketPriceLastUpdatedTs),
12673
- mintDecimals: new BN2__default.default(reserveDto.mintDecimals),
12674
- depositLimitCrossedTimestamp: new BN2__default.default(
12675
- reserveDto.depositLimitCrossedTimestamp
12676
- ),
12677
- borrowLimitCrossedTimestamp: new BN2__default.default(reserveDto.borrowLimitCrossedTimestamp),
12678
- cumulativeBorrowRateBsf: {
12679
- value: reserveDto.cumulativeBorrowRateBsf.value.map(
12680
- (item) => new BN2__default.default(item)
12430
+ liquidity: {
12431
+ mintPubkey: new web3_js.PublicKey(reserveDto.liquidity.mintPubkey),
12432
+ supplyVault: new web3_js.PublicKey(reserveDto.liquidity.supplyVault),
12433
+ mintDecimals: new BN5__default.default(reserveDto.liquidity.mintDecimals),
12434
+ availableAmount: new BN5__default.default(reserveDto.liquidity.availableAmount),
12435
+ borrowedAmountSf: new BN5__default.default(reserveDto.liquidity.borrowedAmountSf),
12436
+ accumulatedProtocolFeesSf: new BN5__default.default(
12437
+ reserveDto.liquidity.accumulatedProtocolFeesSf
12681
12438
  ),
12682
- padding: reserveDto.cumulativeBorrowRateBsf.padding.map(
12683
- (item) => new BN2__default.default(item)
12684
- )
12685
- },
12686
- accumulatedProtocolFeesSf: new BN2__default.default(reserveDto.accumulatedProtocolFeesSf),
12687
- accumulatedReferrerFeesSf: new BN2__default.default(reserveDto.accumulatedReferrerFeesSf),
12688
- pendingReferrerFeesSf: new BN2__default.default(reserveDto.pendingReferrerFeesSf),
12689
- absoluteReferralRateSf: new BN2__default.default(reserveDto.absoluteReferralRateSf),
12690
- tokenProgram: new web3_js.PublicKey(reserveDto.tokenProgram),
12691
- padding2: reserveDto.padding2.map((item) => new BN2__default.default(item)),
12692
- padding3: reserveDto.padding3.map((item) => new BN2__default.default(item))
12693
- };
12694
- }
12695
- function dtoToReserveConfigFields(reserveDto) {
12696
- return {
12697
- status: reserveDto.status,
12698
- assetTier: reserveDto.assetTier,
12699
- hostFixedInterestRateBps: reserveDto.hostFixedInterestRateBps,
12700
- reserved2: reserveDto.reserved2,
12701
- protocolOrderExecutionFeePct: reserveDto.protocolOrderExecutionFeePct,
12702
- protocolTakeRatePct: reserveDto.protocolTakeRatePct,
12703
- protocolLiquidationFeePct: reserveDto.protocolLiquidationFeePct,
12704
- loanToValuePct: reserveDto.loanToValuePct,
12705
- liquidationThresholdPct: reserveDto.liquidationThresholdPct,
12706
- minLiquidationBonusBps: reserveDto.minLiquidationBonusBps,
12707
- maxLiquidationBonusBps: reserveDto.maxLiquidationBonusBps,
12708
- badDebtLiquidationBonusBps: reserveDto.badDebtLiquidationBonusBps,
12709
- deleveragingMarginCallPeriodSecs: new BN2__default.default(
12710
- reserveDto.deleveragingMarginCallPeriodSecs
12711
- ),
12712
- deleveragingThresholdDecreaseBpsPerDay: new BN2__default.default(
12713
- reserveDto.deleveragingThresholdDecreaseBpsPerDay
12714
- ),
12715
- fees: {
12716
- borrowFeeSf: new BN2__default.default(reserveDto.fees.borrowFeeSf),
12717
- flashLoanFeeSf: new BN2__default.default(reserveDto.fees.flashLoanFeeSf),
12718
- padding: reserveDto.fees.padding
12719
- },
12720
- borrowRateCurve: {
12721
- points: reserveDto.borrowRateCurve.points.map((item) => ({
12722
- utilizationRateBps: item.utilizationRateBps,
12723
- borrowRateBps: item.borrowRateBps
12724
- }))
12725
- },
12726
- borrowFactorPct: new BN2__default.default(reserveDto.borrowFactorPct),
12727
- depositLimit: new BN2__default.default(reserveDto.depositLimit),
12728
- borrowLimit: new BN2__default.default(reserveDto.borrowLimit),
12729
- tokenInfo: dtoToTokenInfoFields(reserveDto.tokenInfo),
12730
- depositWithdrawalCap: dtoToWithdrawalCapsFields(
12731
- reserveDto.depositWithdrawalCap
12732
- ),
12733
- debtWithdrawalCap: dtoToWithdrawalCapsFields(reserveDto.debtWithdrawalCap),
12734
- elevationGroups: reserveDto.elevationGroups,
12735
- disableUsageAsCollOutsideEmode: reserveDto.disableUsageAsCollOutsideEmode,
12736
- utilizationLimitBlockBorrowingAbovePct: reserveDto.utilizationLimitBlockBorrowingAbovePct,
12737
- autodeleverageEnabled: reserveDto.autodeleverageEnabled,
12738
- reserved1: reserveDto.reserved1,
12739
- borrowLimitOutsideElevationGroup: new BN2__default.default(
12740
- reserveDto.borrowLimitOutsideElevationGroup
12741
- ),
12742
- borrowLimitAgainstThisCollateralInElevationGroup: reserveDto.borrowLimitAgainstThisCollateralInElevationGroup.map(
12743
- (item) => new BN2__default.default(item)
12744
- ),
12745
- deleveragingBonusIncreaseBpsPerDay: new BN2__default.default(
12746
- reserveDto.deleveragingBonusIncreaseBpsPerDay
12747
- )
12748
- };
12749
- }
12750
- function dtoToTokenInfoFields(tokenInfoDto) {
12751
- return {
12752
- name: tokenInfoDto.name,
12753
- heuristic: {
12754
- lower: new BN2__default.default(tokenInfoDto.heuristic.lower),
12755
- upper: new BN2__default.default(tokenInfoDto.heuristic.upper),
12756
- exp: new BN2__default.default(tokenInfoDto.heuristic.exp)
12757
- },
12758
- maxTwapDivergenceBps: new BN2__default.default(tokenInfoDto.maxTwapDivergenceBps),
12759
- maxAgePriceSeconds: new BN2__default.default(tokenInfoDto.maxAgePriceSeconds),
12760
- maxAgeTwapSeconds: new BN2__default.default(tokenInfoDto.maxAgeTwapSeconds),
12761
- scopeConfiguration: {
12762
- priceFeed: new web3_js.PublicKey(tokenInfoDto.scopeConfiguration.priceFeed),
12763
- priceChain: tokenInfoDto.scopeConfiguration.priceChain,
12764
- twapChain: tokenInfoDto.scopeConfiguration.twapChain
12765
- },
12766
- switchboardConfiguration: {
12767
- priceAggregator: new web3_js.PublicKey(
12768
- tokenInfoDto.switchboardConfiguration.priceAggregator
12439
+ accumulatedReferrerFeesSf: new BN5__default.default(
12440
+ reserveDto.liquidity.accumulatedReferrerFeesSf
12769
12441
  ),
12770
- twapAggregator: new web3_js.PublicKey(
12771
- tokenInfoDto.switchboardConfiguration.twapAggregator
12772
- )
12773
- },
12774
- pythConfiguration: {
12775
- price: new web3_js.PublicKey(tokenInfoDto.pythConfiguration.price)
12442
+ pendingReferrerFeesSf: new BN5__default.default(reserveDto.liquidity.pendingReferrerFeesSf)
12776
12443
  },
12777
- blockPriceUsage: tokenInfoDto.blockPriceUsage,
12778
- reserved: tokenInfoDto.reserved,
12779
- padding: tokenInfoDto.padding.map((item) => new BN2__default.default(item))
12780
- };
12781
- }
12782
- function dtoToWithdrawalCapsFields(withdrawalCapsDto) {
12783
- return {
12784
- configCapacity: new BN2__default.default(withdrawalCapsDto.configCapacity),
12785
- currentTotal: new BN2__default.default(withdrawalCapsDto.currentTotal),
12786
- lastIntervalStartTimestamp: new BN2__default.default(
12787
- withdrawalCapsDto.lastIntervalStartTimestamp
12788
- ),
12789
- configIntervalLengthSeconds: new BN2__default.default(
12790
- withdrawalCapsDto.configIntervalLengthSeconds
12791
- )
12792
- };
12793
- }
12794
- function dtoToObligationCollateralFields(obligationCollateralDto) {
12795
- return {
12796
- depositReserve: new web3_js.PublicKey(obligationCollateralDto.depositReserve),
12797
- depositedAmount: new BN2__default.default(obligationCollateralDto.depositedAmount),
12798
- marketValueSf: new BN2__default.default(obligationCollateralDto.marketValueSf),
12799
- borrowedAmountAgainstThisCollateralInElevationGroup: new BN2__default.default(
12800
- obligationCollateralDto.borrowedAmountAgainstThisCollateralInElevationGroup
12801
- ),
12802
- padding: obligationCollateralDto.padding.map((item) => new BN2__default.default(item))
12803
- };
12804
- }
12805
- function dtoToObligationLiquidityFields(obligationLiquidityDto) {
12806
- return {
12807
- borrowReserve: new web3_js.PublicKey(obligationLiquidityDto.borrowReserve),
12808
- cumulativeBorrowRateBsf: {
12809
- value: obligationLiquidityDto.cumulativeBorrowRateBsf.value.map(
12810
- (item) => new BN2__default.default(item)
12811
- ),
12812
- padding: obligationLiquidityDto.cumulativeBorrowRateBsf.padding.map(
12813
- (item) => new BN2__default.default(item)
12814
- )
12815
- },
12816
- padding: new BN2__default.default(obligationLiquidityDto.padding),
12817
- borrowedAmountSf: new BN2__default.default(obligationLiquidityDto.borrowedAmountSf),
12818
- marketValueSf: new BN2__default.default(obligationLiquidityDto.marketValueSf),
12819
- borrowFactorAdjustedMarketValueSf: new BN2__default.default(
12820
- obligationLiquidityDto.borrowFactorAdjustedMarketValueSf
12821
- ),
12822
- borrowedAmountOutsideElevationGroups: new BN2__default.default(
12823
- obligationLiquidityDto.borrowedAmountOutsideElevationGroups
12824
- ),
12825
- padding2: obligationLiquidityDto.padding2.map((item) => new BN2__default.default(item))
12826
- };
12827
- }
12828
- function dtoToObligationOrderFields(obligationOrderDto) {
12829
- return {
12830
- conditionThresholdSf: new BN2__default.default(obligationOrderDto.conditionThresholdSf),
12831
- opportunityParameterSf: new BN2__default.default(obligationOrderDto.opportunityParameterSf),
12832
- minExecutionBonusBps: obligationOrderDto.minExecutionBonusBps,
12833
- maxExecutionBonusBps: obligationOrderDto.maxExecutionBonusBps,
12834
- conditionType: obligationOrderDto.conditionType,
12835
- opportunityType: obligationOrderDto.opportunityType,
12836
- padding1: obligationOrderDto.padding1,
12837
- padding2: obligationOrderDto.padding2.map((item) => new BN2__default.default(item))
12444
+ collateral: {
12445
+ mintPubkey: new web3_js.PublicKey(reserveDto.collateral.mintPubkey),
12446
+ mintTotalSupply: new BN5__default.default(reserveDto.collateral.mintTotalSupply),
12447
+ supplyVault: new web3_js.PublicKey(reserveDto.collateral.supplyVault)
12448
+ },
12449
+ config: {
12450
+ protocolTakeRatePct: reserveDto.config.protocolTakeRatePct,
12451
+ hostFixedInterestRateBps: reserveDto.config.hostFixedInterestRateBps,
12452
+ depositLimit: new BN5__default.default(reserveDto.config.depositLimit),
12453
+ borrowLimit: new BN5__default.default(reserveDto.config.borrowLimit),
12454
+ borrowRateCurve: {
12455
+ points: reserveDto.config.borrowRateCurve.points.map((item) => ({
12456
+ utilizationRateBps: item.utilizationRateBps,
12457
+ borrowRateBps: item.borrowRateBps
12458
+ }))
12459
+ },
12460
+ tokenInfo: {
12461
+ scopeConfiguration: {
12462
+ priceFeed: new web3_js.PublicKey(
12463
+ reserveDto.config.tokenInfo.scopeConfiguration.priceFeed
12464
+ )
12465
+ },
12466
+ switchboardConfiguration: {
12467
+ priceAggregator: new web3_js.PublicKey(
12468
+ reserveDto.config.tokenInfo.switchboardConfiguration.priceAggregator
12469
+ ),
12470
+ twapAggregator: new web3_js.PublicKey(
12471
+ reserveDto.config.tokenInfo.switchboardConfiguration.twapAggregator
12472
+ )
12473
+ },
12474
+ pythConfiguration: {
12475
+ price: new web3_js.PublicKey(
12476
+ reserveDto.config.tokenInfo.pythConfiguration.price
12477
+ )
12478
+ }
12479
+ }
12480
+ }
12838
12481
  };
12839
12482
  }
12840
12483
  var SEED_LENDING_MARKET_AUTH = "lma";
@@ -12960,9 +12603,9 @@ var Fraction = class _Fraction {
12960
12603
  static MAX_SIZE_BF = 256;
12961
12604
  static FRACTIONS = 60;
12962
12605
  static MULTIPLIER = new FractionDecimal(2).pow(_Fraction.FRACTIONS);
12963
- static MAX_F_BN = new BN2__default.default(2).pow(new BN2__default.default(_Fraction.MAX_SIZE_F)).sub(new BN2__default.default(1));
12964
- static MAX_BF_BN = new BN2__default.default(2).pow(new BN2__default.default(_Fraction.MAX_SIZE_BF)).sub(new BN2__default.default(1));
12965
- static MIN_BN = new BN2__default.default(0);
12606
+ static MAX_F_BN = new BN5__default.default(2).pow(new BN5__default.default(_Fraction.MAX_SIZE_F)).sub(new BN5__default.default(1));
12607
+ static MAX_BF_BN = new BN5__default.default(2).pow(new BN5__default.default(_Fraction.MAX_SIZE_BF)).sub(new BN5__default.default(1));
12608
+ static MIN_BN = new BN5__default.default(0);
12966
12609
  valueSf;
12967
12610
  constructor(valueSf) {
12968
12611
  if (valueSf.lt(_Fraction.MIN_BN) || valueSf.gt(_Fraction.MAX_BF_BN)) {
@@ -12978,7 +12621,7 @@ var Fraction = class _Fraction {
12978
12621
  static fromDecimal(n) {
12979
12622
  const scaledDecimal = new FractionDecimal(n).mul(_Fraction.MULTIPLIER);
12980
12623
  const roundedScaledDecimal = roundNearest(scaledDecimal);
12981
- const scaledValue = new BN2__default.default(roundedScaledDecimal.toFixed());
12624
+ const scaledValue = new BN5__default.default(roundedScaledDecimal.toFixed());
12982
12625
  return new _Fraction(scaledValue);
12983
12626
  }
12984
12627
  static fromBps(n) {
@@ -13008,7 +12651,7 @@ var Fraction = class _Fraction {
13008
12651
  return this.valueSf.eq(x.getValue());
13009
12652
  }
13010
12653
  };
13011
- new Fraction(new BN2__default.default(0));
12654
+ new Fraction(new BN5__default.default(0));
13012
12655
  function roundNearest(decimal) {
13013
12656
  return decimal.toDecimalPlaces(0, Decimal3__default.default.ROUND_HALF_CEIL);
13014
12657
  }
@@ -13211,76 +12854,26 @@ function lamportsToNumberDecimal(amount, decimals) {
13211
12854
  }
13212
12855
 
13213
12856
  // src/vendor/klend/utils/farms/serialize.utils.ts
13214
- function farmRawToDto(farmRaw) {
12857
+ function kaminoFarmStateToDto(farmState) {
13215
12858
  return {
13216
- farmAdmin: farmRaw.farmAdmin.toBase58(),
13217
- globalConfig: farmRaw.globalConfig.toBase58(),
13218
12859
  token: {
13219
- mint: farmRaw.token.mint.toBase58(),
13220
- decimals: farmRaw.token.decimals.toString(),
13221
- tokenProgram: farmRaw.token.tokenProgram.toBase58(),
13222
- padding: farmRaw.token.padding.map((p) => p.toString())
12860
+ mint: farmState.token.mint.toBase58(),
12861
+ decimals: farmState.token.decimals.toString()
13223
12862
  },
13224
- rewardInfos: farmRaw.rewardInfos.map((item) => ({
12863
+ rewardInfos: farmState.rewardInfos.map((item) => ({
13225
12864
  token: {
13226
12865
  mint: item.token.mint.toBase58(),
13227
- decimals: item.token.decimals.toString(),
13228
- tokenProgram: item.token.tokenProgram.toBase58(),
13229
- padding: item.token.padding.map((p) => p.toString())
12866
+ decimals: item.token.decimals.toString()
13230
12867
  },
13231
- rewardsVault: item.rewardsVault.toBase58(),
13232
12868
  rewardsAvailable: item.rewardsAvailable.toString(),
12869
+ rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,
13233
12870
  rewardScheduleCurve: {
13234
12871
  points: item.rewardScheduleCurve.points.map((p) => ({
13235
12872
  tsStart: p.tsStart.toString(),
13236
12873
  rewardPerTimeUnit: p.rewardPerTimeUnit.toString()
13237
12874
  }))
13238
- },
13239
- minClaimDurationSeconds: item.minClaimDurationSeconds.toString(),
13240
- lastIssuanceTs: item.lastIssuanceTs.toString(),
13241
- rewardsIssuedUnclaimed: item.rewardsIssuedUnclaimed.toString(),
13242
- rewardsIssuedCumulative: item.rewardsIssuedCumulative.toString(),
13243
- rewardPerShareScaled: item.rewardPerShareScaled.toString(),
13244
- placeholder0: item.placeholder0.toString(),
13245
- rewardType: item.rewardType,
13246
- rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,
13247
- padding0: item.padding0,
13248
- padding1: item.padding1.map((p) => p.toString())
13249
- })),
13250
- numRewardTokens: farmRaw.numRewardTokens.toString(),
13251
- numUsers: farmRaw.numUsers.toString(),
13252
- totalStakedAmount: farmRaw.totalStakedAmount.toString(),
13253
- farmVault: farmRaw.farmVault.toBase58(),
13254
- farmVaultsAuthority: farmRaw.farmVaultsAuthority.toBase58(),
13255
- farmVaultsAuthorityBump: farmRaw.farmVaultsAuthorityBump.toString(),
13256
- delegateAuthority: farmRaw.delegateAuthority.toBase58(),
13257
- timeUnit: farmRaw.timeUnit,
13258
- isFarmFrozen: farmRaw.isFarmFrozen,
13259
- isFarmDelegated: farmRaw.isFarmDelegated,
13260
- padding0: farmRaw.padding0,
13261
- withdrawAuthority: farmRaw.withdrawAuthority.toBase58(),
13262
- depositWarmupPeriod: farmRaw.depositWarmupPeriod,
13263
- withdrawalCooldownPeriod: farmRaw.withdrawalCooldownPeriod,
13264
- totalActiveStakeScaled: farmRaw.totalActiveStakeScaled.toString(),
13265
- totalPendingStakeScaled: farmRaw.totalPendingStakeScaled.toString(),
13266
- totalPendingAmount: farmRaw.totalPendingAmount.toString(),
13267
- slashedAmountCurrent: farmRaw.slashedAmountCurrent.toString(),
13268
- slashedAmountCumulative: farmRaw.slashedAmountCumulative.toString(),
13269
- slashedAmountSpillAddress: farmRaw.slashedAmountSpillAddress.toBase58(),
13270
- lockingMode: farmRaw.lockingMode.toString(),
13271
- lockingStartTimestamp: farmRaw.lockingStartTimestamp.toString(),
13272
- lockingDuration: farmRaw.lockingDuration.toString(),
13273
- lockingEarlyWithdrawalPenaltyBps: farmRaw.lockingEarlyWithdrawalPenaltyBps.toString(),
13274
- depositCapAmount: farmRaw.depositCapAmount.toString(),
13275
- scopePrices: farmRaw.scopePrices.toBase58(),
13276
- scopeOraclePriceId: farmRaw.scopeOraclePriceId.toString(),
13277
- scopeOracleMaxAge: farmRaw.scopeOracleMaxAge.toString(),
13278
- pendingFarmAdmin: farmRaw.pendingFarmAdmin.toBase58(),
13279
- strategyId: farmRaw.strategyId.toBase58(),
13280
- delegatedRpsAdmin: farmRaw.delegatedRpsAdmin.toBase58(),
13281
- vaultId: farmRaw.vaultId.toBase58(),
13282
- secondDelegatedAuthority: farmRaw.secondDelegatedAuthority.toBase58(),
13283
- padding: farmRaw.padding.map((item) => item.toString())
12875
+ }
12876
+ }))
13284
12877
  };
13285
12878
  }
13286
12879
  var farmDiscriminator = Buffer.from([198, 102, 216, 74, 63, 66, 163, 190]);
@@ -13375,78 +12968,26 @@ function decodeFarmDataRaw(data) {
13375
12968
  const dec = farmLayout.decode(data.slice(8));
13376
12969
  return dec;
13377
12970
  }
13378
- function dtoToFarmRaw(dto) {
12971
+ function dtoToKaminoFarmState(dto) {
13379
12972
  return {
13380
- farmAdmin: new web3_js.PublicKey(dto.farmAdmin),
13381
- globalConfig: new web3_js.PublicKey(dto.globalConfig),
13382
12973
  token: {
13383
12974
  mint: new web3_js.PublicKey(dto.token.mint),
13384
- decimals: new BN2__default.default(dto.token.decimals),
13385
- tokenProgram: new web3_js.PublicKey(dto.token.tokenProgram),
13386
- padding: dto.token.padding.map((item) => new BN2__default.default(item))
12975
+ decimals: new BN5__default.default(dto.token.decimals)
13387
12976
  },
13388
12977
  rewardInfos: dto.rewardInfos.map((item) => ({
13389
12978
  token: {
13390
12979
  mint: new web3_js.PublicKey(item.token.mint),
13391
- decimals: new BN2__default.default(item.token.decimals),
13392
- tokenProgram: new web3_js.PublicKey(item.token.tokenProgram),
13393
- padding: item.token.padding.map((p) => new BN2__default.default(p))
12980
+ decimals: new BN5__default.default(item.token.decimals)
13394
12981
  },
13395
- rewardsVault: new web3_js.PublicKey(item.rewardsVault),
13396
- rewardsAvailable: new BN2__default.default(item.rewardsAvailable),
12982
+ rewardsAvailable: new BN5__default.default(item.rewardsAvailable),
12983
+ rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,
13397
12984
  rewardScheduleCurve: {
13398
12985
  points: item.rewardScheduleCurve.points.map((p) => ({
13399
- tsStart: new BN2__default.default(p.tsStart),
13400
- rewardPerTimeUnit: new BN2__default.default(p.rewardPerTimeUnit)
12986
+ tsStart: new BN5__default.default(p.tsStart),
12987
+ rewardPerTimeUnit: new BN5__default.default(p.rewardPerTimeUnit)
13401
12988
  }))
13402
- },
13403
- minClaimDurationSeconds: new BN2__default.default(item.minClaimDurationSeconds),
13404
- lastIssuanceTs: new BN2__default.default(item.lastIssuanceTs),
13405
- rewardsIssuedUnclaimed: new BN2__default.default(item.rewardsIssuedUnclaimed),
13406
- rewardsIssuedCumulative: new BN2__default.default(item.rewardsIssuedCumulative),
13407
- rewardPerShareScaled: new BN2__default.default(item.rewardPerShareScaled),
13408
- placeholder0: new BN2__default.default(item.placeholder0),
13409
- rewardType: item.rewardType,
13410
- rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,
13411
- padding0: item.padding0,
13412
- padding1: item.padding1.map((p) => new BN2__default.default(p))
13413
- })),
13414
- numRewardTokens: new BN2__default.default(dto.numRewardTokens),
13415
- numUsers: new BN2__default.default(dto.numUsers),
13416
- totalStakedAmount: new BN2__default.default(dto.totalStakedAmount),
13417
- farmVault: new web3_js.PublicKey(dto.farmVault),
13418
- farmVaultsAuthority: new web3_js.PublicKey(dto.farmVaultsAuthority),
13419
- farmVaultsAuthorityBump: new BN2__default.default(dto.farmVaultsAuthorityBump),
13420
- delegateAuthority: new web3_js.PublicKey(dto.delegateAuthority),
13421
- timeUnit: dto.timeUnit,
13422
- isFarmFrozen: dto.isFarmFrozen,
13423
- isFarmDelegated: dto.isFarmDelegated,
13424
- padding0: dto.padding0,
13425
- withdrawAuthority: new web3_js.PublicKey(dto.withdrawAuthority),
13426
- depositWarmupPeriod: dto.depositWarmupPeriod,
13427
- withdrawalCooldownPeriod: dto.withdrawalCooldownPeriod,
13428
- totalActiveStakeScaled: new BN2__default.default(dto.totalActiveStakeScaled),
13429
- totalPendingStakeScaled: new BN2__default.default(dto.totalPendingStakeScaled),
13430
- totalPendingAmount: new BN2__default.default(dto.totalPendingAmount),
13431
- slashedAmountCurrent: new BN2__default.default(dto.slashedAmountCurrent),
13432
- slashedAmountCumulative: new BN2__default.default(dto.slashedAmountCumulative),
13433
- slashedAmountSpillAddress: new web3_js.PublicKey(dto.slashedAmountSpillAddress),
13434
- lockingMode: new BN2__default.default(dto.lockingMode),
13435
- lockingStartTimestamp: new BN2__default.default(dto.lockingStartTimestamp),
13436
- lockingDuration: new BN2__default.default(dto.lockingDuration),
13437
- lockingEarlyWithdrawalPenaltyBps: new BN2__default.default(
13438
- dto.lockingEarlyWithdrawalPenaltyBps
13439
- ),
13440
- depositCapAmount: new BN2__default.default(dto.depositCapAmount),
13441
- scopePrices: new web3_js.PublicKey(dto.scopePrices),
13442
- scopeOraclePriceId: new BN2__default.default(dto.scopeOraclePriceId),
13443
- scopeOracleMaxAge: new BN2__default.default(dto.scopeOracleMaxAge),
13444
- pendingFarmAdmin: new web3_js.PublicKey(dto.pendingFarmAdmin),
13445
- strategyId: new web3_js.PublicKey(dto.strategyId),
13446
- delegatedRpsAdmin: new web3_js.PublicKey(dto.delegatedRpsAdmin),
13447
- vaultId: new web3_js.PublicKey(dto.vaultId),
13448
- secondDelegatedAuthority: new web3_js.PublicKey(dto.secondDelegatedAuthority),
13449
- padding: dto.padding.map((item) => new BN2__default.default(item))
12989
+ }
12990
+ }))
13450
12991
  };
13451
12992
  }
13452
12993
 
@@ -27608,23 +27149,23 @@ function dtoToDriftUserStatsRaw(userStatsDto) {
27608
27149
  authority: new web3_js.PublicKey(userStatsDto.authority),
27609
27150
  referrer: new web3_js.PublicKey(userStatsDto.referrer),
27610
27151
  fees: {
27611
- totalFeePaid: new BN2__default.default(userStatsDto.fees.totalFeePaid),
27612
- totalFeeRebate: new BN2__default.default(userStatsDto.fees.totalFeeRebate),
27613
- totalTokenDiscount: new BN2__default.default(userStatsDto.fees.totalTokenDiscount),
27614
- totalRefereeDiscount: new BN2__default.default(userStatsDto.fees.totalRefereeDiscount),
27615
- totalReferrerReward: new BN2__default.default(userStatsDto.fees.totalReferrerReward),
27616
- currentEpochReferrerReward: new BN2__default.default(
27152
+ totalFeePaid: new BN5__default.default(userStatsDto.fees.totalFeePaid),
27153
+ totalFeeRebate: new BN5__default.default(userStatsDto.fees.totalFeeRebate),
27154
+ totalTokenDiscount: new BN5__default.default(userStatsDto.fees.totalTokenDiscount),
27155
+ totalRefereeDiscount: new BN5__default.default(userStatsDto.fees.totalRefereeDiscount),
27156
+ totalReferrerReward: new BN5__default.default(userStatsDto.fees.totalReferrerReward),
27157
+ currentEpochReferrerReward: new BN5__default.default(
27617
27158
  userStatsDto.fees.currentEpochReferrerReward
27618
27159
  )
27619
27160
  },
27620
- nextEpochTs: new BN2__default.default(userStatsDto.nextEpochTs),
27621
- makerVolume30d: new BN2__default.default(userStatsDto.makerVolume30d),
27622
- takerVolume30d: new BN2__default.default(userStatsDto.takerVolume30d),
27623
- fillerVolume30d: new BN2__default.default(userStatsDto.fillerVolume30d),
27624
- lastMakerVolume30dTs: new BN2__default.default(userStatsDto.lastMakerVolume30dTs),
27625
- lastTakerVolume30dTs: new BN2__default.default(userStatsDto.lastTakerVolume30dTs),
27626
- lastFillerVolume30dTs: new BN2__default.default(userStatsDto.lastFillerVolume30dTs),
27627
- ifStakedQuoteAssetAmount: new BN2__default.default(userStatsDto.ifStakedQuoteAssetAmount),
27161
+ nextEpochTs: new BN5__default.default(userStatsDto.nextEpochTs),
27162
+ makerVolume30d: new BN5__default.default(userStatsDto.makerVolume30d),
27163
+ takerVolume30d: new BN5__default.default(userStatsDto.takerVolume30d),
27164
+ fillerVolume30d: new BN5__default.default(userStatsDto.fillerVolume30d),
27165
+ lastMakerVolume30dTs: new BN5__default.default(userStatsDto.lastMakerVolume30dTs),
27166
+ lastTakerVolume30dTs: new BN5__default.default(userStatsDto.lastTakerVolume30dTs),
27167
+ lastFillerVolume30dTs: new BN5__default.default(userStatsDto.lastFillerVolume30dTs),
27168
+ ifStakedQuoteAssetAmount: new BN5__default.default(userStatsDto.ifStakedQuoteAssetAmount),
27628
27169
  numberOfSubAccounts: userStatsDto.numberOfSubAccounts,
27629
27170
  numberOfSubAccountsCreated: userStatsDto.numberOfSubAccountsCreated,
27630
27171
  referrerStatus: userStatsDto.referrerStatus,
@@ -27637,7 +27178,7 @@ function dtoToDriftUserStatsRaw(userStatsDto) {
27637
27178
  fuelPositions: userStatsDto.fuelPositions,
27638
27179
  fuelTaker: userStatsDto.fuelTaker,
27639
27180
  fuelMaker: userStatsDto.fuelMaker,
27640
- ifStakedGovTokenAmount: new BN2__default.default(userStatsDto.ifStakedGovTokenAmount),
27181
+ ifStakedGovTokenAmount: new BN5__default.default(userStatsDto.ifStakedGovTokenAmount),
27641
27182
  lastFuelIfBonusUpdateTs: userStatsDto.lastFuelIfBonusUpdateTs,
27642
27183
  padding: userStatsDto.padding
27643
27184
  };
@@ -27646,10 +27187,10 @@ function dtoToDriftUserRaw(userDto) {
27646
27187
  return {
27647
27188
  authority: new web3_js.PublicKey(userDto.authority),
27648
27189
  spotPositions: userDto.spotPositions.map((p) => ({
27649
- scaledBalance: new BN2__default.default(p.scaledBalance),
27650
- openBids: new BN2__default.default(p.openBids),
27651
- openAsks: new BN2__default.default(p.openAsks),
27652
- cumulativeDeposits: new BN2__default.default(p.cumulativeDeposits),
27190
+ scaledBalance: new BN5__default.default(p.scaledBalance),
27191
+ openBids: new BN5__default.default(p.openBids),
27192
+ openAsks: new BN5__default.default(p.openAsks),
27193
+ cumulativeDeposits: new BN5__default.default(p.cumulativeDeposits),
27653
27194
  marketIndex: p.marketIndex,
27654
27195
  balanceType: p.balanceType,
27655
27196
  openOrders: p.openOrders,
@@ -27667,9 +27208,9 @@ function dtoToDriftStateRaw(stateDto) {
27667
27208
  perpFeeStructure: stateDto.perpFeeStructure,
27668
27209
  spotFeeStructure: stateDto.spotFeeStructure,
27669
27210
  oracleGuardRails: stateDto.oracleGuardRails,
27670
- numberOfAuthorities: new BN2__default.default(stateDto.numberOfAuthorities),
27671
- numberOfSubAccounts: new BN2__default.default(stateDto.numberOfSubAccounts),
27672
- lpCooldownTime: new BN2__default.default(stateDto.lpCooldownTime),
27211
+ numberOfAuthorities: new BN5__default.default(stateDto.numberOfAuthorities),
27212
+ numberOfSubAccounts: new BN5__default.default(stateDto.numberOfSubAccounts),
27213
+ lpCooldownTime: new BN5__default.default(stateDto.lpCooldownTime),
27673
27214
  liquidationMarginBufferRatio: stateDto.liquidationMarginBufferRatio,
27674
27215
  settlementDuration: stateDto.settlementDuration,
27675
27216
  numberOfMarkets: stateDto.numberOfMarkets,
@@ -27693,10 +27234,10 @@ function dtoToDriftRewardsRaw(rewardsDto) {
27693
27234
  spotMarket: new web3_js.PublicKey(rewardsDto.spotMarket),
27694
27235
  mint: new web3_js.PublicKey(rewardsDto.mint),
27695
27236
  spotPosition: {
27696
- scaledBalance: new BN2__default.default(rewardsDto.spotPosition.scaledBalance),
27697
- openBids: new BN2__default.default(rewardsDto.spotPosition.openBids),
27698
- openAsks: new BN2__default.default(rewardsDto.spotPosition.openAsks),
27699
- cumulativeDeposits: new BN2__default.default(rewardsDto.spotPosition.cumulativeDeposits),
27237
+ scaledBalance: new BN5__default.default(rewardsDto.spotPosition.scaledBalance),
27238
+ openBids: new BN5__default.default(rewardsDto.spotPosition.openBids),
27239
+ openAsks: new BN5__default.default(rewardsDto.spotPosition.openAsks),
27240
+ cumulativeDeposits: new BN5__default.default(rewardsDto.spotPosition.cumulativeDeposits),
27700
27241
  marketIndex: rewardsDto.spotPosition.marketIndex,
27701
27242
  balanceType: rewardsDto.spotPosition.balanceType,
27702
27243
  openOrders: rewardsDto.spotPosition.openOrders,
@@ -27710,11 +27251,11 @@ function dtoToDriftSpotMarketRaw(spotMarketDto) {
27710
27251
  oracle: new web3_js.PublicKey(spotMarketDto.oracle),
27711
27252
  mint: new web3_js.PublicKey(spotMarketDto.mint),
27712
27253
  decimals: spotMarketDto.decimals,
27713
- cumulativeDepositInterest: new BN2__default.default(spotMarketDto.cumulativeDepositInterest),
27254
+ cumulativeDepositInterest: new BN5__default.default(spotMarketDto.cumulativeDepositInterest),
27714
27255
  marketIndex: spotMarketDto.marketIndex,
27715
- depositBalance: new BN2__default.default(spotMarketDto.depositBalance),
27716
- borrowBalance: new BN2__default.default(spotMarketDto.borrowBalance),
27717
- cumulativeBorrowInterest: new BN2__default.default(spotMarketDto.cumulativeBorrowInterest),
27256
+ depositBalance: new BN5__default.default(spotMarketDto.depositBalance),
27257
+ borrowBalance: new BN5__default.default(spotMarketDto.borrowBalance),
27258
+ cumulativeBorrowInterest: new BN5__default.default(spotMarketDto.cumulativeBorrowInterest),
27718
27259
  optimalUtilization: spotMarketDto.optimalUtilization,
27719
27260
  optimalBorrowRate: spotMarketDto.optimalBorrowRate,
27720
27261
  maxBorrowRate: spotMarketDto.maxBorrowRate,
@@ -27836,10 +27377,10 @@ function decodeDriftUserData(data) {
27836
27377
  return {
27837
27378
  authority: decoded.authority,
27838
27379
  spotPositions: decoded.spot_positions.map((p) => ({
27839
- scaledBalance: new BN2__default.default(p.scaled_balance),
27840
- openBids: new BN2__default.default(p.open_bids),
27841
- openAsks: new BN2__default.default(p.open_asks),
27842
- cumulativeDeposits: new BN2__default.default(p.cumulative_deposits),
27380
+ scaledBalance: new BN5__default.default(p.scaled_balance),
27381
+ openBids: new BN5__default.default(p.open_bids),
27382
+ openAsks: new BN5__default.default(p.open_asks),
27383
+ cumulativeDeposits: new BN5__default.default(p.cumulative_deposits),
27843
27384
  marketIndex: p.market_index,
27844
27385
  balanceType: p.balance_type,
27845
27386
  openOrders: p.open_orders,
@@ -27946,7 +27487,7 @@ function deriveDriftUser(authority, subAccountId, programId = DRIFT_PROGRAM_ID)
27946
27487
  [
27947
27488
  Buffer.from(SEED_USER),
27948
27489
  authority.toBuffer(),
27949
- new BN2__default.default(subAccountId).toArrayLike(Buffer, "le", 2)
27490
+ new BN5__default.default(subAccountId).toArrayLike(Buffer, "le", 2)
27950
27491
  ],
27951
27492
  programId
27952
27493
  );
@@ -27961,7 +27502,7 @@ function deriveDriftSpotMarket(marketIndex, programId = DRIFT_PROGRAM_ID) {
27961
27502
  return web3_js.PublicKey.findProgramAddressSync(
27962
27503
  [
27963
27504
  Buffer.from(SEED_SPOT_MARKET),
27964
- new BN2__default.default(marketIndex).toArrayLike(Buffer, "le", 2)
27505
+ new BN5__default.default(marketIndex).toArrayLike(Buffer, "le", 2)
27965
27506
  ],
27966
27507
  programId
27967
27508
  );
@@ -27970,23 +27511,23 @@ function deriveDriftSpotMarketVault(marketIndex, programId = DRIFT_PROGRAM_ID) {
27970
27511
  return web3_js.PublicKey.findProgramAddressSync(
27971
27512
  [
27972
27513
  Buffer.from(SEED_SPOT_MARKET_VAULT),
27973
- new BN2__default.default(marketIndex).toArrayLike(Buffer, "le", 2)
27514
+ new BN5__default.default(marketIndex).toArrayLike(Buffer, "le", 2)
27974
27515
  ],
27975
27516
  programId
27976
27517
  );
27977
27518
  }
27978
- var ZERO = new BN2__default.default(0);
27979
- var ONE = new BN2__default.default(1);
27980
- var TEN = new BN2__default.default(10);
27981
- var PERCENTAGE_PRECISION_EXP = new BN2__default.default(6);
27982
- var PERCENTAGE_PRECISION = new BN2__default.default(10).pow(PERCENTAGE_PRECISION_EXP);
27983
- var SPOT_MARKET_RATE_PRECISION_EXP = new BN2__default.default(6);
27984
- var SPOT_MARKET_RATE_PRECISION = new BN2__default.default(10).pow(SPOT_MARKET_RATE_PRECISION_EXP);
27985
- var SPOT_MARKET_UTILIZATION_PRECISION_EXP = new BN2__default.default(6);
27986
- var SPOT_MARKET_UTILIZATION_PRECISION = new BN2__default.default(10).pow(
27519
+ var ZERO = new BN5__default.default(0);
27520
+ var ONE = new BN5__default.default(1);
27521
+ var TEN = new BN5__default.default(10);
27522
+ var PERCENTAGE_PRECISION_EXP = new BN5__default.default(6);
27523
+ var PERCENTAGE_PRECISION = new BN5__default.default(10).pow(PERCENTAGE_PRECISION_EXP);
27524
+ var SPOT_MARKET_RATE_PRECISION_EXP = new BN5__default.default(6);
27525
+ var SPOT_MARKET_RATE_PRECISION = new BN5__default.default(10).pow(SPOT_MARKET_RATE_PRECISION_EXP);
27526
+ var SPOT_MARKET_UTILIZATION_PRECISION_EXP = new BN5__default.default(6);
27527
+ var SPOT_MARKET_UTILIZATION_PRECISION = new BN5__default.default(10).pow(
27987
27528
  SPOT_MARKET_UTILIZATION_PRECISION_EXP
27988
27529
  );
27989
- var ONE_YEAR = new BN2__default.default(31536e3);
27530
+ var ONE_YEAR = new BN5__default.default(31536e3);
27990
27531
  function divCeil(a, b) {
27991
27532
  const quotient = a.div(b);
27992
27533
  const remainder = a.mod(b);
@@ -27996,7 +27537,7 @@ function divCeil(a, b) {
27996
27537
  return quotient;
27997
27538
  }
27998
27539
  function getDriftTokenAmount(balanceAmount, spotMarket, balanceType) {
27999
- const precisionDecrease = TEN.pow(new BN2__default.default(19 - spotMarket.decimals));
27540
+ const precisionDecrease = TEN.pow(new BN5__default.default(19 - spotMarket.decimals));
28000
27541
  if (isSpotBalanceTypeVariant(balanceType, "deposit")) {
28001
27542
  return balanceAmount.mul(spotMarket.cumulativeDepositInterest).div(precisionDecrease);
28002
27543
  } else {
@@ -28031,18 +27572,18 @@ function calculateDriftUtilization(bank, delta = ZERO) {
28031
27572
  }
28032
27573
  function calculateDriftInterestRate(bank, delta = ZERO, currentUtilization = null) {
28033
27574
  const utilization = currentUtilization || calculateDriftUtilization(bank, delta);
28034
- const optimalUtil = new BN2__default.default(bank.optimalUtilization);
28035
- const optimalRate = new BN2__default.default(bank.optimalBorrowRate);
28036
- const maxRate = new BN2__default.default(bank.maxBorrowRate);
28037
- const minRate = new BN2__default.default(bank.minBorrowRate).mul(PERCENTAGE_PRECISION.divn(200));
28038
- const weightsDivisor = new BN2__default.default(1e3);
27575
+ const optimalUtil = new BN5__default.default(bank.optimalUtilization);
27576
+ const optimalRate = new BN5__default.default(bank.optimalBorrowRate);
27577
+ const maxRate = new BN5__default.default(bank.maxBorrowRate);
27578
+ const minRate = new BN5__default.default(bank.minBorrowRate).mul(PERCENTAGE_PRECISION.divn(200));
27579
+ const weightsDivisor = new BN5__default.default(1e3);
28039
27580
  const segments = [
28040
- [new BN2__default.default(85e4), new BN2__default.default(50)],
28041
- [new BN2__default.default(9e5), new BN2__default.default(100)],
28042
- [new BN2__default.default(95e4), new BN2__default.default(150)],
28043
- [new BN2__default.default(99e4), new BN2__default.default(200)],
28044
- [new BN2__default.default(995e3), new BN2__default.default(250)],
28045
- [SPOT_MARKET_UTILIZATION_PRECISION, new BN2__default.default(250)]
27581
+ [new BN5__default.default(85e4), new BN5__default.default(50)],
27582
+ [new BN5__default.default(9e5), new BN5__default.default(100)],
27583
+ [new BN5__default.default(95e4), new BN5__default.default(150)],
27584
+ [new BN5__default.default(99e4), new BN5__default.default(200)],
27585
+ [new BN5__default.default(995e3), new BN5__default.default(250)],
27586
+ [SPOT_MARKET_UTILIZATION_PRECISION, new BN5__default.default(250)]
28046
27587
  ];
28047
27588
  let rate;
28048
27589
  if (utilization.lte(optimalUtil)) {
@@ -28067,7 +27608,7 @@ function calculateDriftInterestRate(bank, delta = ZERO, currentUtilization = nul
28067
27608
  }
28068
27609
  }
28069
27610
  }
28070
- return BN2__default.default.max(minRate, rate);
27611
+ return BN5__default.default.max(minRate, rate);
28071
27612
  }
28072
27613
  function calculateDriftBorrowRate(bank, delta = ZERO, currentUtilization = null) {
28073
27614
  return calculateDriftInterestRate(bank, delta, currentUtilization);
@@ -28075,7 +27616,7 @@ function calculateDriftBorrowRate(bank, delta = ZERO, currentUtilization = null)
28075
27616
  function calculateDriftDepositRate(bank, delta = ZERO, currentUtilization = null) {
28076
27617
  const utilization = currentUtilization || calculateDriftUtilization(bank, delta);
28077
27618
  const borrowRate = calculateDriftBorrowRate(bank, delta, utilization);
28078
- const depositRate = borrowRate.mul(PERCENTAGE_PRECISION.sub(new BN2__default.default(bank.insuranceFund.totalFactor))).mul(utilization).div(SPOT_MARKET_UTILIZATION_PRECISION).div(PERCENTAGE_PRECISION);
27619
+ const depositRate = borrowRate.mul(PERCENTAGE_PRECISION.sub(new BN5__default.default(bank.insuranceFund.totalFactor))).mul(utilization).div(SPOT_MARKET_UTILIZATION_PRECISION).div(PERCENTAGE_PRECISION);
28079
27620
  return depositRate;
28080
27621
  }
28081
27622
  function calculateDriftLendingAPY(bank, delta = ZERO, currentUtilization = null, compoundingPeriodsPerYear = 365) {
@@ -28083,7 +27624,7 @@ function calculateDriftLendingAPY(bank, delta = ZERO, currentUtilization = null,
28083
27624
  if (depositRate.eq(ZERO)) {
28084
27625
  return ZERO;
28085
27626
  }
28086
- const CALC_PRECISION = new BN2__default.default(10).pow(new BN2__default.default(18));
27627
+ const CALC_PRECISION = new BN5__default.default(10).pow(new BN5__default.default(18));
28087
27628
  const rateInCalcPrecisionDecimal = depositRate.mul(CALC_PRECISION).div(SPOT_MARKET_RATE_PRECISION);
28088
27629
  let expResult = CALC_PRECISION;
28089
27630
  let term = rateInCalcPrecisionDecimal;
@@ -28116,7 +27657,7 @@ function calculateDriftBorrowAPY(bank, delta = ZERO, currentUtilization = null,
28116
27657
  if (borrowRate.eq(ZERO)) {
28117
27658
  return ZERO;
28118
27659
  }
28119
- const CALC_PRECISION = new BN2__default.default(10).pow(new BN2__default.default(18));
27660
+ const CALC_PRECISION = new BN5__default.default(10).pow(new BN5__default.default(18));
28120
27661
  const rateInCalcPrecisionDecimal = borrowRate.mul(CALC_PRECISION).div(SPOT_MARKET_RATE_PRECISION);
28121
27662
  let expResult = CALC_PRECISION;
28122
27663
  let term = rateInCalcPrecisionDecimal;
@@ -28152,7 +27693,7 @@ function calculateAPYFromAPR2(apr) {
28152
27693
  function generateDriftReserveCurve(spotMarket) {
28153
27694
  return Array.from({ length: 101 }, (_, i) => {
28154
27695
  const utilizationPercent = i / 100;
28155
- const utilizationBN = new BN2__default.default(
27696
+ const utilizationBN = new BN5__default.default(
28156
27697
  Math.floor(utilizationPercent * SPOT_MARKET_UTILIZATION_PRECISION.toNumber())
28157
27698
  );
28158
27699
  const borrowRateBN = calculateDriftBorrowRate(spotMarket, ZERO, utilizationBN);
@@ -31558,29 +31099,29 @@ function decodeJupTokenReserveData(data, pubkey) {
31558
31099
  offset += 2;
31559
31100
  const lastUtilization = data.readUInt16LE(offset);
31560
31101
  offset += 2;
31561
- const lastUpdateTimestamp = new BN2__default.default(data.slice(offset, offset + 8), "le");
31102
+ const lastUpdateTimestamp = new BN5__default.default(data.slice(offset, offset + 8), "le");
31562
31103
  offset += 8;
31563
- const supplyExchangePrice = new BN2__default.default(data.slice(offset, offset + 8), "le");
31104
+ const supplyExchangePrice = new BN5__default.default(data.slice(offset, offset + 8), "le");
31564
31105
  offset += 8;
31565
- const borrowExchangePrice = new BN2__default.default(data.slice(offset, offset + 8), "le");
31106
+ const borrowExchangePrice = new BN5__default.default(data.slice(offset, offset + 8), "le");
31566
31107
  offset += 8;
31567
31108
  const maxUtilization = data.readUInt16LE(offset);
31568
31109
  offset += 2;
31569
- const totalSupplyWithInterest = new BN2__default.default(data.slice(offset, offset + 8), "le");
31110
+ const totalSupplyWithInterest = new BN5__default.default(data.slice(offset, offset + 8), "le");
31570
31111
  offset += 8;
31571
- const totalSupplyInterestFree = new BN2__default.default(data.slice(offset, offset + 8), "le");
31112
+ const totalSupplyInterestFree = new BN5__default.default(data.slice(offset, offset + 8), "le");
31572
31113
  offset += 8;
31573
- const totalBorrowWithInterest = new BN2__default.default(data.slice(offset, offset + 8), "le");
31114
+ const totalBorrowWithInterest = new BN5__default.default(data.slice(offset, offset + 8), "le");
31574
31115
  offset += 8;
31575
- const totalBorrowInterestFree = new BN2__default.default(data.slice(offset, offset + 8), "le");
31116
+ const totalBorrowInterestFree = new BN5__default.default(data.slice(offset, offset + 8), "le");
31576
31117
  offset += 8;
31577
- const totalClaimAmount = new BN2__default.default(data.slice(offset, offset + 8), "le");
31118
+ const totalClaimAmount = new BN5__default.default(data.slice(offset, offset + 8), "le");
31578
31119
  offset += 8;
31579
31120
  const interactingProtocol = new web3_js.PublicKey(data.slice(offset, offset + 32));
31580
31121
  offset += 32;
31581
- const interactingTimestamp = new BN2__default.default(data.slice(offset, offset + 8), "le");
31122
+ const interactingTimestamp = new BN5__default.default(data.slice(offset, offset + 8), "le");
31582
31123
  offset += 8;
31583
- const interactingBalance = new BN2__default.default(data.slice(offset, offset + 8), "le");
31124
+ const interactingBalance = new BN5__default.default(data.slice(offset, offset + 8), "le");
31584
31125
  return {
31585
31126
  pubkey,
31586
31127
  mint,
@@ -31642,9 +31183,9 @@ function dtoToJupLendingStateRaw(dto) {
31642
31183
  lendingId: dto.lendingId,
31643
31184
  decimals: dto.decimals,
31644
31185
  rewardsRateModel: new web3_js.PublicKey(dto.rewardsRateModel),
31645
- liquidityExchangePrice: new BN2__default.default(dto.liquidityExchangePrice),
31646
- tokenExchangePrice: new BN2__default.default(dto.tokenExchangePrice),
31647
- lastUpdateTimestamp: new BN2__default.default(dto.lastUpdateTimestamp),
31186
+ liquidityExchangePrice: new BN5__default.default(dto.liquidityExchangePrice),
31187
+ tokenExchangePrice: new BN5__default.default(dto.tokenExchangePrice),
31188
+ lastUpdateTimestamp: new BN5__default.default(dto.lastUpdateTimestamp),
31648
31189
  tokenReservesLiquidity: new web3_js.PublicKey(dto.tokenReservesLiquidity),
31649
31190
  supplyPositionOnLiquidity: new web3_js.PublicKey(dto.supplyPositionOnLiquidity)
31650
31191
  };
@@ -31657,30 +31198,30 @@ function dtoToJupTokenReserveRaw(dto) {
31657
31198
  borrowRate: dto.borrowRate,
31658
31199
  feeOnInterest: dto.feeOnInterest,
31659
31200
  lastUtilization: dto.lastUtilization,
31660
- lastUpdateTimestamp: new BN2__default.default(dto.lastUpdateTimestamp),
31661
- supplyExchangePrice: new BN2__default.default(dto.supplyExchangePrice),
31662
- borrowExchangePrice: new BN2__default.default(dto.borrowExchangePrice),
31201
+ lastUpdateTimestamp: new BN5__default.default(dto.lastUpdateTimestamp),
31202
+ supplyExchangePrice: new BN5__default.default(dto.supplyExchangePrice),
31203
+ borrowExchangePrice: new BN5__default.default(dto.borrowExchangePrice),
31663
31204
  maxUtilization: dto.maxUtilization,
31664
- totalSupplyWithInterest: new BN2__default.default(dto.totalSupplyWithInterest),
31665
- totalSupplyInterestFree: new BN2__default.default(dto.totalSupplyInterestFree),
31666
- totalBorrowWithInterest: new BN2__default.default(dto.totalBorrowWithInterest),
31667
- totalBorrowInterestFree: new BN2__default.default(dto.totalBorrowInterestFree),
31668
- totalClaimAmount: new BN2__default.default(dto.totalClaimAmount),
31205
+ totalSupplyWithInterest: new BN5__default.default(dto.totalSupplyWithInterest),
31206
+ totalSupplyInterestFree: new BN5__default.default(dto.totalSupplyInterestFree),
31207
+ totalBorrowWithInterest: new BN5__default.default(dto.totalBorrowWithInterest),
31208
+ totalBorrowInterestFree: new BN5__default.default(dto.totalBorrowInterestFree),
31209
+ totalClaimAmount: new BN5__default.default(dto.totalClaimAmount),
31669
31210
  interactingProtocol: new web3_js.PublicKey(dto.interactingProtocol),
31670
- interactingTimestamp: new BN2__default.default(dto.interactingTimestamp),
31671
- interactingBalance: new BN2__default.default(dto.interactingBalance)
31211
+ interactingTimestamp: new BN5__default.default(dto.interactingTimestamp),
31212
+ interactingBalance: new BN5__default.default(dto.interactingBalance)
31672
31213
  };
31673
31214
  }
31674
31215
  function dtoToJupLendingRewardsRateModelRaw(dto) {
31675
31216
  return {
31676
31217
  pubkey: new web3_js.PublicKey(dto.pubkey),
31677
31218
  mint: new web3_js.PublicKey(dto.mint),
31678
- startTvl: new BN2__default.default(dto.startTvl),
31679
- duration: new BN2__default.default(dto.duration),
31680
- startTime: new BN2__default.default(dto.startTime),
31681
- yearlyReward: new BN2__default.default(dto.yearlyReward),
31682
- nextDuration: new BN2__default.default(dto.nextDuration),
31683
- nextRewardAmount: new BN2__default.default(dto.nextRewardAmount)
31219
+ startTvl: new BN5__default.default(dto.startTvl),
31220
+ duration: new BN5__default.default(dto.duration),
31221
+ startTime: new BN5__default.default(dto.startTime),
31222
+ yearlyReward: new BN5__default.default(dto.yearlyReward),
31223
+ nextDuration: new BN5__default.default(dto.nextDuration),
31224
+ nextRewardAmount: new BN5__default.default(dto.nextRewardAmount)
31684
31225
  };
31685
31226
  }
31686
31227
  function dtoToJupRateModelRaw(dto) {
@@ -31796,15 +31337,15 @@ function deriveJupLendLiquiditySupplyPositionPda(underlyingMint, lendingPda, liq
31796
31337
  var aprToApy2 = (apr, compoundingFrequency = HOURS_PER_YEAR, apyCap = 3) => Math.min((1 + apr / compoundingFrequency) ** compoundingFrequency - 1, apyCap);
31797
31338
 
31798
31339
  // src/vendor/jup-lend/utils/interest-rate.utils.ts
31799
- var JUP_EXCHANGE_PRICES_PRECISION = new BN2__default.default("1000000000000");
31800
- var JUP_SECONDS_PER_YEAR = new BN2__default.default(31536e3);
31801
- var JUP_MAX_REWARDS_RATE = new BN2__default.default("50000000000000");
31340
+ var JUP_EXCHANGE_PRICES_PRECISION = new BN5__default.default("1000000000000");
31341
+ var JUP_SECONDS_PER_YEAR = new BN5__default.default(31536e3);
31342
+ var JUP_MAX_REWARDS_RATE = new BN5__default.default("50000000000000");
31802
31343
  function calculateJupLendTotalAssets(lendingState, fTokenTotalSupply) {
31803
31344
  return lendingState.tokenExchangePrice.mul(fTokenTotalSupply).div(JUP_EXCHANGE_PRICES_PRECISION);
31804
31345
  }
31805
31346
  function calculateJupLendRewardsRate(rewardsModel, totalAssets, currentTimestamp) {
31806
31347
  const defaultResult = {
31807
- rewardsRate: new BN2__default.default(0),
31348
+ rewardsRate: new BN5__default.default(0),
31808
31349
  rewardsEnded: false,
31809
31350
  rewardsStartTime: rewardsModel.startTime
31810
31351
  };
@@ -31817,7 +31358,7 @@ function calculateJupLendRewardsRate(rewardsModel, totalAssets, currentTimestamp
31817
31358
  if (totalAssets.lt(rewardsModel.startTvl)) {
31818
31359
  return defaultResult;
31819
31360
  }
31820
- let rewardsRate = rewardsModel.yearlyReward.mul(new BN2__default.default(1e4)).div(totalAssets);
31361
+ let rewardsRate = rewardsModel.yearlyReward.mul(new BN5__default.default(1e4)).div(totalAssets);
31821
31362
  if (rewardsRate.gt(JUP_MAX_REWARDS_RATE)) {
31822
31363
  rewardsRate = JUP_MAX_REWARDS_RATE;
31823
31364
  }
@@ -31828,7 +31369,7 @@ function calculateJupLendRewardsRate(rewardsModel, totalAssets, currentTimestamp
31828
31369
  };
31829
31370
  }
31830
31371
  function calculateJupLendRewardsRateForExchangePrice(rewardsModel, totalAssets, currentTimestamp) {
31831
- const defaultResult = { rate: new BN2__default.default(0), rewardsStartTime: rewardsModel.startTime };
31372
+ const defaultResult = { rate: new BN5__default.default(0), rewardsStartTime: rewardsModel.startTime };
31832
31373
  if (rewardsModel.startTime.isZero() || rewardsModel.duration.isZero()) {
31833
31374
  return defaultResult;
31834
31375
  }
@@ -31848,7 +31389,7 @@ function calculateJupLendNewExchangePrice(lendingState, tokenReserve, rewardsMod
31848
31389
  const oldTokenExchangePrice = lendingState.tokenExchangePrice;
31849
31390
  const oldLiquidityExchangePrice = lendingState.liquidityExchangePrice;
31850
31391
  const currentLiquidityExchangePrice = tokenReserve.supplyExchangePrice;
31851
- let rewardsRate = new BN2__default.default(0);
31392
+ let rewardsRate = new BN5__default.default(0);
31852
31393
  let rewardsStartTime = lendingState.lastUpdateTimestamp;
31853
31394
  if (rewardsModel) {
31854
31395
  const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);
@@ -31865,32 +31406,32 @@ function calculateJupLendNewExchangePrice(lendingState, tokenReserve, rewardsMod
31865
31406
  lastUpdateTime = rewardsStartTime;
31866
31407
  }
31867
31408
  const secondsElapsed = currentTimestamp.sub(lastUpdateTime);
31868
- let totalReturnPercent = rewardsRate.mul(secondsElapsed).div(JUP_SECONDS_PER_YEAR).mul(new BN2__default.default(100));
31409
+ let totalReturnPercent = rewardsRate.mul(secondsElapsed).div(JUP_SECONDS_PER_YEAR).mul(new BN5__default.default(100));
31869
31410
  const delta = currentLiquidityExchangePrice.sub(oldLiquidityExchangePrice);
31870
31411
  totalReturnPercent = totalReturnPercent.add(
31871
- delta.mul(new BN2__default.default(1e14)).div(oldLiquidityExchangePrice)
31412
+ delta.mul(new BN5__default.default(1e14)).div(oldLiquidityExchangePrice)
31872
31413
  );
31873
- return oldTokenExchangePrice.add(oldTokenExchangePrice.mul(totalReturnPercent).div(new BN2__default.default(1e14)));
31414
+ return oldTokenExchangePrice.add(oldTokenExchangePrice.mul(totalReturnPercent).div(new BN5__default.default(1e14)));
31874
31415
  }
31875
31416
  function calculateJupLendLiquiditySupplyRate(tokenReserve) {
31876
- const borrowRate = new BN2__default.default(tokenReserve.borrowRate);
31877
- const fee = new BN2__default.default(tokenReserve.feeOnInterest);
31417
+ const borrowRate = new BN5__default.default(tokenReserve.borrowRate);
31418
+ const fee = new BN5__default.default(tokenReserve.feeOnInterest);
31878
31419
  if (tokenReserve.totalSupplyWithInterest.isZero()) {
31879
- return new BN2__default.default(0);
31420
+ return new BN5__default.default(0);
31880
31421
  }
31881
31422
  const borrowWithInterestForRate = tokenReserve.totalBorrowWithInterest.mul(tokenReserve.borrowExchangePrice).div(JUP_EXCHANGE_PRICES_PRECISION);
31882
31423
  const supplyWithInterestForRate = tokenReserve.totalSupplyWithInterest.mul(tokenReserve.supplyExchangePrice).div(JUP_EXCHANGE_PRICES_PRECISION);
31883
31424
  if (supplyWithInterestForRate.isZero()) {
31884
- return new BN2__default.default(0);
31425
+ return new BN5__default.default(0);
31885
31426
  }
31886
- return borrowRate.mul(new BN2__default.default(1e4).sub(fee)).mul(borrowWithInterestForRate).div(supplyWithInterestForRate.mul(new BN2__default.default(1e4)));
31427
+ return borrowRate.mul(new BN5__default.default(1e4).sub(fee)).mul(borrowWithInterestForRate).div(supplyWithInterestForRate.mul(new BN5__default.default(1e4)));
31887
31428
  }
31888
31429
  function calculateJupLendSupplyRate(lendingState, tokenReserve, rewardsModel, fTokenTotalSupply) {
31889
31430
  const supplyRate = calculateJupLendLiquiditySupplyRate(tokenReserve);
31890
31431
  let totalRateBps = supplyRate.toNumber();
31891
31432
  if (rewardsModel) {
31892
31433
  const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);
31893
- const currentTimestamp = new BN2__default.default(Math.floor(Date.now() / 1e3));
31434
+ const currentTimestamp = new BN5__default.default(Math.floor(Date.now() / 1e3));
31894
31435
  const { rewardsRate } = calculateJupLendRewardsRate(
31895
31436
  rewardsModel,
31896
31437
  totalAssets,
@@ -31977,13 +31518,13 @@ function generateJupLendSupplyCurve(rateModel, feeOnInterest) {
31977
31518
  function getJupLendRewards(lendingState, rewardsModel, fTokenTotalSupply) {
31978
31519
  if (lendingState.rewardsRateModel.equals(web3_js.PublicKey.default)) {
31979
31520
  return {
31980
- rewardsRate: new BN2__default.default(0),
31521
+ rewardsRate: new BN5__default.default(0),
31981
31522
  rewardsEnded: false,
31982
- rewardsStartTime: new BN2__default.default(0)
31523
+ rewardsStartTime: new BN5__default.default(0)
31983
31524
  };
31984
31525
  }
31985
31526
  const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);
31986
- const currentTimestamp = new BN2__default.default(Math.floor(Date.now() / 1e3));
31527
+ const currentTimestamp = new BN5__default.default(Math.floor(Date.now() / 1e3));
31987
31528
  return calculateJupLendRewardsRate(rewardsModel, totalAssets, currentTimestamp);
31988
31529
  }
31989
31530
  var UPDATE_RATE_DISCRIMINATOR = Buffer.from([
@@ -45566,7 +45107,7 @@ function exponentNumberToBigNumber(raw) {
45566
45107
  let value = new bignumber_js.BigNumber(0);
45567
45108
  const TWO_64 = new bignumber_js.BigNumber(2).pow(64);
45568
45109
  words.forEach((w, i) => {
45569
- const word = new bignumber_js.BigNumber(BN2__default.default.isBN(w) ? w.toString() : String(w));
45110
+ const word = new bignumber_js.BigNumber(BN5__default.default.isBN(w) ? w.toString() : String(w));
45570
45111
  value = value.plus(word.times(TWO_64.pow(i)));
45571
45112
  });
45572
45113
  return value.div(EXPONENT_NUMBER_DENOM);
@@ -45577,7 +45118,7 @@ function pk(v) {
45577
45118
  function decodeExponentVault(data) {
45578
45119
  const d = EXPONENT_ACCOUNTS_CODER.decode("Vault", data);
45579
45120
  const get = (snake, camel) => d[snake] ?? d[camel];
45580
- const u646 = (v) => BigInt(BN2__default.default.isBN(v) ? v.toString() : String(v ?? 0));
45121
+ const u646 = (v) => BigInt(BN5__default.default.isBN(v) ? v.toString() : String(v ?? 0));
45581
45122
  const cpi = get("cpi_accounts", "cpiAccounts") ?? {};
45582
45123
  return {
45583
45124
  authority: pk(get("authority", "authority")),
@@ -46481,18 +46022,17 @@ exports.dtoToDriftSpotMarketRaw = dtoToDriftSpotMarketRaw;
46481
46022
  exports.dtoToDriftStateRaw = dtoToDriftStateRaw;
46482
46023
  exports.dtoToDriftUserRaw = dtoToDriftUserRaw;
46483
46024
  exports.dtoToDriftUserStatsRaw = dtoToDriftUserStatsRaw;
46484
- exports.dtoToFarmRaw = dtoToFarmRaw;
46485
46025
  exports.dtoToJupLendingRewardsRateModelRaw = dtoToJupLendingRewardsRateModelRaw;
46486
46026
  exports.dtoToJupLendingStateRaw = dtoToJupLendingStateRaw;
46487
46027
  exports.dtoToJupRateModelRaw = dtoToJupRateModelRaw;
46488
46028
  exports.dtoToJupTokenReserveRaw = dtoToJupTokenReserveRaw;
46489
- exports.dtoToObligationRaw = dtoToObligationRaw;
46490
- exports.dtoToReserveRaw = dtoToReserveRaw;
46029
+ exports.dtoToKaminoFarmState = dtoToKaminoFarmState;
46030
+ exports.dtoToKaminoObligation = dtoToKaminoObligation;
46031
+ exports.dtoToKaminoReserve = dtoToKaminoReserve;
46491
46032
  exports.encodeTitanTemplate = encodeTitanTemplate;
46492
46033
  exports.exponentBuyPtArgs = exponentBuyPtArgs;
46493
46034
  exports.exponentClmmBuyPtArgs = exponentClmmBuyPtArgs;
46494
46035
  exports.exponentNumberToBigNumber = exponentNumberToBigNumber;
46495
- exports.farmRawToDto = farmRawToDto;
46496
46036
  exports.fetchExponentMarketThree = fetchExponentMarketThree;
46497
46037
  exports.fetchExponentMarketTwo = fetchExponentMarketTwo;
46498
46038
  exports.fetchExponentVault = fetchExponentVault;
@@ -46544,6 +46084,9 @@ exports.jupLendingRewardsRateModelRawToDto = jupLendingRewardsRateModelRawToDto;
46544
46084
  exports.jupLendingStateRawToDto = jupLendingStateRawToDto;
46545
46085
  exports.jupRateModelRawToDto = jupRateModelRawToDto;
46546
46086
  exports.jupTokenReserveRawToDto = jupTokenReserveRawToDto;
46087
+ exports.kaminoFarmStateToDto = kaminoFarmStateToDto;
46088
+ exports.kaminoObligationToDto = kaminoObligationToDto;
46089
+ exports.kaminoReserveToDto = kaminoReserveToDto;
46547
46090
  exports.layout = layout;
46548
46091
  exports.lutToTitanWire = lutToTitanWire;
46549
46092
  exports.makeExponentClmmTradePtIx = makeExponentClmmTradePtIx;
@@ -46559,11 +46102,9 @@ exports.makeUpdateJupLendRate = makeUpdateJupLendRate;
46559
46102
  exports.makeUpdateJupLendRateIx = makeUpdateJupLendRateIx;
46560
46103
  exports.makeUpdateSpotMarketCumulativeInterestIx = makeUpdateSpotMarketCumulativeInterestIx;
46561
46104
  exports.makeUpdateSpotMarketIx = makeUpdateSpotMarketIx;
46562
- exports.obligationRawToDto = obligationRawToDto;
46563
46105
  exports.parsePriceData = parsePriceData;
46564
46106
  exports.parsePriceInfo = parsePriceInfo2;
46565
46107
  exports.replenishPoolIx = replenishPoolIx;
46566
- exports.reserveRawToDto = reserveRawToDto;
46567
46108
  exports.resolveExponentClmmTradePtContext = resolveExponentClmmTradePtContext;
46568
46109
  exports.resolveExponentMergeContext = resolveExponentMergeContext;
46569
46110
  exports.resolveExponentStripContext = resolveExponentStripContext;