Skip to content

Commit

Permalink
feat: use 10k XVS to estimate Prime's APY
Browse files Browse the repository at this point in the history
  • Loading branch information
gleiser-oliveira committed Nov 24, 2023
1 parent 820af24 commit 1bd1240
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "66012867068.78838627155172413793",
"userSupplyBalanceTokens": "15951129109546755.24488088106947945753",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x16227D60f7a0e586C66B005219dfc887D13C9531",
Expand Down Expand Up @@ -68,7 +68,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "66012867068.78838627155172413793",
"userSupplyBalanceTokens": "15951129109546755.24488088106947945753",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x16227D60f7a0e586C66B005219dfc887D13C9531",
Expand Down Expand Up @@ -122,7 +122,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "110643.61749019365079365079",
"userSupplyBalanceTokens": "1.358795738297682434014619091383216952499549585717162e+31",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0xA11c8D9DC9b66E209Ef60F0C8D969D3CD988782c",
Expand Down Expand Up @@ -164,7 +164,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "110643.61749019365079365079",
"userSupplyBalanceTokens": "1.358795738297682434014619091383216952499549585717162e+31",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0xA11c8D9DC9b66E209Ef60F0C8D969D3CD988782c",
Expand Down Expand Up @@ -218,7 +218,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "453577420.21510010545510979029",
"userSupplyBalanceTokens": "447427293535420150.537063455989777353",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
Expand Down Expand Up @@ -260,7 +260,7 @@ exports[`getLegacyPool > does not fetch Prime distributions if user is not Prime
"referenceValues": {
"userBorrowBalanceTokens": "453577420.21510010545510979029",
"userSupplyBalanceTokens": "447427293535420150.537063455989777353",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
Expand Down Expand Up @@ -671,7 +671,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "66012867068.78838627155172413793",
"userSupplyBalanceTokens": "15951129109546755.24488088106947945753",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x16227D60f7a0e586C66B005219dfc887D13C9531",
Expand Down Expand Up @@ -723,7 +723,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "66012867068.78838627155172413793",
"userSupplyBalanceTokens": "15951129109546755.24488088106947945753",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x16227D60f7a0e586C66B005219dfc887D13C9531",
Expand Down Expand Up @@ -787,7 +787,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "110643.61749019365079365079",
"userSupplyBalanceTokens": "1.358795738297682434014619091383216952499549585717162e+31",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0xA11c8D9DC9b66E209Ef60F0C8D969D3CD988782c",
Expand Down Expand Up @@ -839,7 +839,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "110643.61749019365079365079",
"userSupplyBalanceTokens": "1.358795738297682434014619091383216952499549585717162e+31",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0xA11c8D9DC9b66E209Ef60F0C8D969D3CD988782c",
Expand Down Expand Up @@ -903,7 +903,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "453577420.21510010545510979029",
"userSupplyBalanceTokens": "447427293535420150.537063455989777353",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
Expand Down Expand Up @@ -955,7 +955,7 @@ exports[`getLegacyPool > fetches and formats Prime distributions and Prime distr
"referenceValues": {
"userBorrowBalanceTokens": "453577420.21510010545510979029",
"userSupplyBalanceTokens": "447427293535420150.537063455989777353",
"userXvsStakedTokens": "1000",
"userXvsStakedTokens": "10000",
},
"token": {
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { Asset, Token } from 'types';
import {
areAddressesEqual,
convertAprToApy,
convertMantissaToTokens,
convertTokensToMantissa,
} from 'utilities';

Expand All @@ -15,7 +14,6 @@ export interface ResolvePrimeSimulationDistributionsInput {
primeVTokenAddresses: string[];
assets: Asset[];
xvs: Token;
primeMinimumXvsToStakeMantissa: BigNumber;
accountAddress?: string;
}

Expand All @@ -25,14 +23,7 @@ export const appendPrimeSimulationDistributions = async ({
assets,
xvs,
accountAddress,
primeMinimumXvsToStakeMantissa,
}: ResolvePrimeSimulationDistributionsInput) => {
const primeMinimumXvsToStakeTokens = convertMantissaToTokens({
value: primeMinimumXvsToStakeMantissa,
token: xvs,
});

return Promise.allSettled(
}: ResolvePrimeSimulationDistributionsInput) => Promise.allSettled(
primeVTokenAddresses.map(primeVTokenAddress => {
const asset = assets.find(poolAsset =>
areAddressesEqual(poolAsset.vToken.address, primeVTokenAddress),
Expand All @@ -55,18 +46,25 @@ export const appendPrimeSimulationDistributions = async ({
token: asset.vToken.underlyingToken,
});

// Estimate Prime APR with an amount of 10k XVS staked
const stakedXvsForEstimationTokens = new BigNumber(10000);
const stakedXvsForEstimationMantissa = convertTokensToMantissa({
value: stakedXvsForEstimationTokens,
token: xvs,
});

const simulatedPrimeAprs = await primeContract.estimateAPR(
primeVTokenAddress,
accountAddress || NULL_ADDRESS,
averageBorrowBalanceMantissa.toFixed(),
averageSupplyBalanceMantissa.toFixed(),
primeMinimumXvsToStakeMantissa.toFixed(),
stakedXvsForEstimationMantissa.toFixed(),
);

const referenceValues = {
userSupplyBalanceTokens: averageSupplyBalanceTokens,
userBorrowBalanceTokens: averageBorrowBalanceTokens,
userXvsStakedTokens: primeMinimumXvsToStakeTokens,
userXvsStakedTokens: stakedXvsForEstimationTokens,
};

const borrowSimulatedPrimeApy = convertAprToApy({
Expand Down Expand Up @@ -95,4 +93,3 @@ export const appendPrimeSimulationDistributions = async ({
return promise();
}),
);
};
1 change: 0 additions & 1 deletion src/clients/api/queries/getLegacyPool/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,6 @@ const getLegacyPool = async ({
primeContract,
primeVTokenAddresses,
accountAddress,
primeMinimumXvsToStakeMantissa: new BigNumber(primeMinimumXvsToStakeMantissa.toString()),
xvs,
});
}
Expand Down

0 comments on commit 1bd1240

Please sign in to comment.