diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/_mocks.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/_mocks.ts index 86b8ded2..bdbda9de 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/_mocks.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/_mocks.ts @@ -235,6 +235,122 @@ export const reservesMock: ReservesData = { _isBigNumber: true, }), }, + { + underlyingAsset: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f', + name: '', + symbol: 'GHO', + decimals: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + baseLTVasCollateral: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveLiquidationThreshold: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveLiquidationBonus: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveFactor: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + usageAsCollateralEnabled: false, + borrowingEnabled: true, + isActive: true, + isFrozen: false, + isPaused: false, + isSiloedBorrowing: false, + liquidityIndex: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableBorrowIndex: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + liquidityRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + lastUpdateTimestamp: 1631772892, + aTokenAddress: '0xb8a16bbab34FA7A5C09Ec7679EAfb8fEC06897bc', + variableDebtTokenAddress: '0xb7b7AF565495670713C92B8848fC8A650a968F81', + interestRateStrategyAddress: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + availableLiquidity: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + totalScaledVariableDebt: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + priceInMarketReferenceCurrency: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + priceOracle: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + variableRateSlope1: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableRateSlope2: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + baseVariableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + optimalUsageRatio: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + // new + debtCeiling: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + borrowCap: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + supplyCap: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + borrowableInIsolation: false, + flashLoanEnabled: false, + accruedToTreasury: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + unbacked: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + isolationModeTotalDebt: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + debtCeilingDecimals: BigNumber.from({ + _hex: '0x108b2a2c28029094000000', + _isBigNumber: true, + }), + virtualAccActive: false, + virtualUnderlyingBalance: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + }, ], 1: { marketReferenceCurrencyUnit: BigNumber.from({ diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/index.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/index.ts index 3f87369e..d5f92b68 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/index.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/index.ts @@ -184,7 +184,7 @@ export class UiPoolDataProvider implements UiPoolDataProviderInterface { accruedToTreasury: reserveRaw.accruedToTreasury.toString(), unbacked: reserveRaw.unbacked.toString(), isolationModeTotalDebt: reserveRaw.isolationModeTotalDebt.toString(), - debtCeilingDecimals: reserveRaw.debtCeilingDecimals.toNumber(), + debtCeilingDecimals: reserveRaw.debtCeilingDecimals.toString(), isSiloedBorrowing: reserveRaw.isSiloedBorrowing, flashLoanEnabled: reserveRaw.flashLoanEnabled, virtualAccActive, diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/types.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/types.ts index eaafe9d7..4c35f1ff 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/types.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/types.ts @@ -136,7 +136,7 @@ export interface ReserveDataHumanized { isolationModeTotalDebt: string; flashLoanEnabled: boolean; debtCeiling: string; - debtCeilingDecimals: number; + debtCeilingDecimals: string; borrowCap: string; supplyCap: string; borrowableInIsolation: boolean; diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/uiPoolDataProvider.test.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/uiPoolDataProvider.test.ts index c609653b..7f8b6cf9 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/uiPoolDataProvider.test.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-contract/uiPoolDataProvider.test.ts @@ -207,7 +207,7 @@ describe('UiPoolDataProvider', () => { accruedToTreasury: '0', unbacked: '0', isolationModeTotalDebt: '0', - debtCeilingDecimals: 0, + debtCeilingDecimals: '0', borrowableInIsolation: false, flashLoanEnabled: false, virtualAccActive: false, @@ -255,7 +255,55 @@ describe('UiPoolDataProvider', () => { accruedToTreasury: '0', unbacked: '0', isolationModeTotalDebt: '0', - debtCeilingDecimals: 0, + debtCeilingDecimals: '0', + borrowableInIsolation: false, + flashLoanEnabled: false, + virtualAccActive: false, + virtualUnderlyingBalance: '0', + }, + { + originalId: 2, + id: '137-0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f-0x88757f2f99175387ab4c6a4b3067c77a695b0349', + underlyingAsset: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f', + name: '', + symbol: 'GHO', + decimals: 0, + baseLTVasCollateral: '0', + reserveLiquidationThreshold: '0', + reserveLiquidationBonus: '0', + reserveFactor: '0', + usageAsCollateralEnabled: false, + borrowingEnabled: true, + isActive: true, + isFrozen: false, + isPaused: false, + isSiloedBorrowing: false, + liquidityIndex: '0', + variableBorrowIndex: '0', + liquidityRate: '0', + variableBorrowRate: '0', + lastUpdateTimestamp: 1631772892, + aTokenAddress: '0xb8a16bbab34FA7A5C09Ec7679EAfb8fEC06897bc', + variableDebtTokenAddress: + '0xb7b7AF565495670713C92B8848fC8A650a968F81', + interestRateStrategyAddress: + '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + availableLiquidity: '0', + totalScaledVariableDebt: '0', + priceInMarketReferenceCurrency: '0', + priceOracle: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + variableRateSlope1: '0', + variableRateSlope2: '0', + baseVariableBorrowRate: '0', + optimalUsageRatio: '0', + // new + debtCeiling: '0', + borrowCap: '0', + supplyCap: '0', + accruedToTreasury: '0', + unbacked: '0', + isolationModeTotalDebt: '0', + debtCeilingDecimals: '20000000000000000000000000', borrowableInIsolation: false, flashLoanEnabled: false, virtualAccActive: false, diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/_mocks.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/_mocks.ts index 1aa7fcd8..12677b8b 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/_mocks.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/_mocks.ts @@ -298,6 +298,153 @@ export const reservesMock: LegacyReservesData = { _isBigNumber: true, }), }, + { + underlyingAsset: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f', + name: '', + symbol: 'GHO', + decimals: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + baseLTVasCollateral: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveLiquidationThreshold: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveLiquidationBonus: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + reserveFactor: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + usageAsCollateralEnabled: false, + borrowingEnabled: true, + stableBorrowRateEnabled: false, + isActive: true, + isFrozen: false, + isPaused: false, + isSiloedBorrowing: false, + liquidityIndex: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableBorrowIndex: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + liquidityRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + stableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + lastUpdateTimestamp: 1631772892, + aTokenAddress: '0xb8a16bbab34FA7A5C09Ec7679EAfb8fEC06897bc', + stableDebtTokenAddress: '0x9157d57DC97A7AFFC7b0a78E78fe25e1401B1dCc', + variableDebtTokenAddress: '0xb7b7AF565495670713C92B8848fC8A650a968F81', + interestRateStrategyAddress: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + availableLiquidity: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + totalPrincipalStableDebt: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + averageStableRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + stableDebtLastUpdateTimestamp: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + totalScaledVariableDebt: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + priceInMarketReferenceCurrency: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + priceOracle: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + variableRateSlope1: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + variableRateSlope2: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + stableRateSlope1: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + stableRateSlope2: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + baseStableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + baseVariableBorrowRate: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + optimalUsageRatio: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + // new + debtCeiling: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + eModeCategoryId: 1, + borrowCap: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + supplyCap: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + eModeLtv: 1, + eModeLiquidationThreshold: 1, + eModeLiquidationBonus: 1, + eModePriceSource: '0x3E0437898a5667a4769B1Ca5A34aAB1ae7E81377', + eModeLabel: 'test label', + borrowableInIsolation: false, + flashLoanEnabled: false, + accruedToTreasury: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + unbacked: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + isolationModeTotalDebt: BigNumber.from({ + _hex: '0x0', + _isBigNumber: true, + }), + debtCeilingDecimals: BigNumber.from({ + _hex: '0x108b2a2c28029094000000', + _isBigNumber: true, + }), + }, ], 1: { marketReferenceCurrencyUnit: BigNumber.from({ diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/index.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/index.ts index 5705b4bc..c0b6fa2f 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/index.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/index.ts @@ -59,8 +59,7 @@ export interface LegacyUiPoolDataProviderInterface { * or v3 markets that do not have the v3.1 upgrade applied */ export class LegacyUiPoolDataProvider - implements LegacyUiPoolDataProviderInterface -{ + implements LegacyUiPoolDataProviderInterface { private readonly _contract: UiPoolDataProviderContract; private readonly chainId: number; @@ -194,7 +193,7 @@ export class LegacyUiPoolDataProvider accruedToTreasury: reserveRaw.accruedToTreasury.toString(), unbacked: reserveRaw.unbacked.toString(), isolationModeTotalDebt: reserveRaw.isolationModeTotalDebt.toString(), - debtCeilingDecimals: reserveRaw.debtCeilingDecimals.toNumber(), + debtCeilingDecimals: reserveRaw.debtCeilingDecimals.toString(), isSiloedBorrowing: reserveRaw.isSiloedBorrowing, flashLoanEnabled: reserveRaw.flashLoanEnabled, virtualAccActive: false, diff --git a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/legacyUiPoolDataProvider.test.ts b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/legacyUiPoolDataProvider.test.ts index 0031f061..aa266429 100644 --- a/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/legacyUiPoolDataProvider.test.ts +++ b/packages/contract-helpers/src/v3-UiPoolDataProvider-legacy-contract/legacyUiPoolDataProvider.test.ts @@ -194,7 +194,7 @@ describe('UiPoolDataProvider', () => { accruedToTreasury: '0', unbacked: '0', isolationModeTotalDebt: '0', - debtCeilingDecimals: 0, + debtCeilingDecimals: '0', borrowableInIsolation: false, flashLoanEnabled: false, virtualAccActive: false, @@ -258,7 +258,71 @@ describe('UiPoolDataProvider', () => { accruedToTreasury: '0', unbacked: '0', isolationModeTotalDebt: '0', - debtCeilingDecimals: 0, + debtCeilingDecimals: '0', + borrowableInIsolation: false, + flashLoanEnabled: false, + virtualAccActive: false, + virtualUnderlyingBalance: '0', + }, + { + originalId: 2, + id: '137-0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f-0x88757f2f99175387ab4c6a4b3067c77a695b0349', + underlyingAsset: '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f', + name: '', + symbol: 'GHO', + decimals: 0, + baseLTVasCollateral: '0', + reserveLiquidationThreshold: '0', + reserveLiquidationBonus: '0', + reserveFactor: '0', + usageAsCollateralEnabled: false, + borrowingEnabled: true, + stableBorrowRateEnabled: false, + isActive: true, + isFrozen: false, + isPaused: false, + isSiloedBorrowing: false, + liquidityIndex: '0', + variableBorrowIndex: '0', + liquidityRate: '0', + variableBorrowRate: '0', + stableBorrowRate: '0', + lastUpdateTimestamp: 1631772892, + aTokenAddress: '0xb8a16bbab34FA7A5C09Ec7679EAfb8fEC06897bc', + stableDebtTokenAddress: + '0x9157d57DC97A7AFFC7b0a78E78fe25e1401B1dCc', + variableDebtTokenAddress: + '0xb7b7AF565495670713C92B8848fC8A650a968F81', + interestRateStrategyAddress: + '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + availableLiquidity: '0', + totalPrincipalStableDebt: '0', + averageStableRate: '0', + stableDebtLastUpdateTimestamp: 0, + totalScaledVariableDebt: '0', + priceInMarketReferenceCurrency: '0', + priceOracle: '0x796ec26fc7df8D81BCB5BABF74ccdE0E2B122164', + variableRateSlope1: '0', + variableRateSlope2: '0', + stableRateSlope1: '0', + stableRateSlope2: '0', + baseStableBorrowRate: '0', + baseVariableBorrowRate: '0', + optimalUsageRatio: '0', + // new + debtCeiling: '0', + eModeCategoryId: 1, + borrowCap: '0', + supplyCap: '0', + eModeLtv: 1, + eModeLiquidationThreshold: 1, + eModeLiquidationBonus: 1, + eModePriceSource: '0x3E0437898a5667a4769B1Ca5A34aAB1ae7E81377', + eModeLabel: 'test label', + accruedToTreasury: '0', + unbacked: '0', + isolationModeTotalDebt: '0', + debtCeilingDecimals: '20000000000000000000000000', borrowableInIsolation: false, flashLoanEnabled: false, virtualAccActive: false, diff --git a/packages/math-utils/src/formatters/incentive/calculate-all-user-incentives.ts b/packages/math-utils/src/formatters/incentive/calculate-all-user-incentives.ts index f52aaa65..38dfd0d9 100644 --- a/packages/math-utils/src/formatters/incentive/calculate-all-user-incentives.ts +++ b/packages/math-utils/src/formatters/incentive/calculate-all-user-incentives.ts @@ -1,4 +1,3 @@ -import { BigNumber } from 'bignumber.js'; import { calculateUserReserveIncentives, UserReserveIncentive,