Skip to content

Commit

Permalink
feat: added routing for docs
Browse files Browse the repository at this point in the history
  • Loading branch information
SissonJ committed Mar 28, 2024
1 parent afe0170 commit 8811bc0
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 17 deletions.
2 changes: 2 additions & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export default defineConfig({
{ text: 'Swap', link: '/queries/swap' },
{ text: 'Oracle', link: '/queries/oracle' },
{ text: 'stkd-SCRT', link: '/queries/derivativeScrt' },
{ text: 'Shade Staking', link: '/queries/shadeStaking' },
{ text: 'Batch Query', link: '/queries/batch-query' },
{ text: 'Snip20', link: '/queries/snip20' },
]
Expand All @@ -45,6 +46,7 @@ export default defineConfig({
items: [
{ text: 'Swap', link: '/calculations/swap' },
{ text: 'Routing', link: '/calculations/routing' },
{ text: 'Apy', link: '/calculations/apy' },
]
},
{
Expand Down
6 changes: 5 additions & 1 deletion src/contracts/services/shadeStaking.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ import {
import { of } from 'rxjs';
import stakingOpportunityResponse from '~/test/mocks/shadeStaking/stakingOpportunityResponse.json';
import { stakingOpportunityResponseParsed } from '~/test/mocks/shadeStaking/response';
import { parseStakingOpportunity, queryShadeStakingOpportunity, queryShadeStakingOpportunity$ } from '~/contracts/services/shadeStaking';
import {
parseStakingOpportunity,
queryShadeStakingOpportunity,
queryShadeStakingOpportunity$,
} from '~/contracts/services/shadeStaking';
import { StakingInfoServiceResponse } from '~/types/contracts/shadeStaking/index';

const sendSecretClientContractQuery$ = vi.hoisted(() => vi.fn());
Expand Down
9 changes: 5 additions & 4 deletions src/lib/apy/derivativeScrt.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ import {
} from 'vitest';
import { of } from 'rxjs';
import { queryDerivativeScrtInfo$ } from '~/contracts/services/derivativeScrt';
import { SecretQueryOptions } from '~/types/apy';
import { secretChainQueries$ } from './secretQueries';
import {
secretChainQueries$,
} from './secretQueries';
import { calculateDerivativeScrtApy, calculateDerivativeScrtApy$ } from './derivativeScrt';
import { SecretQueryOptions } from '../../types/apy';
calculateDerivativeScrtApy,
calculateDerivativeScrtApy$,
} from './derivativeScrt';

beforeAll(() => {
vi.mock('~/lib/apy/secretQueries', () => ({
Expand Down
5 changes: 4 additions & 1 deletion src/lib/apy/derivativeScrt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ import {
ValidatorRate,
} from '~/types/apy';
import { forkJoin, lastValueFrom, map } from 'rxjs';
import { DerivativeScrtValidator, DerivativeScrtInfo } from '~/types/contracts/derivativeScrt/model';
import {
DerivativeScrtValidator,
DerivativeScrtInfo,
} from '~/types/contracts/derivativeScrt/model';
import { convertCoinFromUDenom } from '~/lib/utils';
import { queryDerivativeScrtInfo$ } from '~/contracts/services/derivativeScrt';
import { secretChainQueries$ } from './secretQueries';
Expand Down
1 change: 0 additions & 1 deletion src/lib/apy/derivativeShd.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ test('it can calculate the correct derivative apy', async () => {
shadeTokenContractAddress: 'secret153wu605vvp934xhd4k9dtd640zsep5jkesstdm',
shadeStakingContractAddress: 'MOCK_STAKING_ADDRESS',
shadeStakingCodeHash: 'MOCK_STAKING_HASH',
decimals: 8,
price: '7.15',
lcdEndpoint: 'MOCK_ENDPOINT',
chainId: 'MOCK_CHAIN_ID',
Expand Down
14 changes: 4 additions & 10 deletions src/lib/apy/derivativeShd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { StakingInfoServiceModel } from '~/types/contracts/shadeStaking/index';
import { convertCoinFromUDenom } from '~/lib/utils';
import { calcAPY } from './derivativeScrt';

const SHADE_DECIMALS = 8;

/**
* Calculate APY
* Formula is (1+r/n)^n-1
Expand All @@ -14,12 +16,10 @@ function calculateRewardPoolAPY({
rate,
totalStaked,
price,
decimalPlaces,
}:{
rate: number,
totalStaked: string,
price: string,
decimalPlaces: number,
}) {
// Check that price returned successfully
if (!Number(price)) {
Expand All @@ -32,7 +32,7 @@ function calculateRewardPoolAPY({
const periodRate = rewardsPerYearPerStakedToken * Number(price);
// divide by stakedPrice to determine a percentage. Units are now ($)/($*day)
const r = periodRate / Number(price);
return calcAPY(365, r) * (10 ** decimalPlaces);
return calcAPY(365, r) * (10 ** SHADE_DECIMALS);
}

/**
Expand All @@ -45,15 +45,13 @@ function calculateDerivativeShdApy$({
shadeTokenContractAddress,
shadeStakingContractAddress,
shadeStakingCodeHash,
decimals,
price,
lcdEndpoint,
chainId,
}:{
shadeTokenContractAddress: string,
shadeStakingContractAddress: string,
shadeStakingCodeHash?: string,
decimals: number,
price: string,
lcdEndpoint?: string,
chainId?: string,
Expand All @@ -70,10 +68,9 @@ function calculateDerivativeShdApy$({
if (current.tokenAddress === shadeTokenContractAddress
&& current.endDate.getTime() > Date.now()) {
return prev + calculateRewardPoolAPY({
rate: convertCoinFromUDenom(current.rateRaw, decimals).toNumber(),
rate: convertCoinFromUDenom(current.rateRaw, SHADE_DECIMALS).toNumber(),
totalStaked: response.totalStakedRaw,
price,
decimalPlaces: decimals,
});
}
return prev;
Expand All @@ -93,15 +90,13 @@ async function calculateDerivativeShdApy({
shadeTokenContractAddress,
shadeStakingContractAddress,
shadeStakingCodeHash,
decimals,
price,
lcdEndpoint,
chainId,
}:{
shadeTokenContractAddress: string,
shadeStakingContractAddress: string,
shadeStakingCodeHash?: string,
decimals: number,
price: string,
lcdEndpoint?: string,
chainId?: string,
Expand All @@ -110,7 +105,6 @@ async function calculateDerivativeShdApy({
shadeTokenContractAddress,
shadeStakingContractAddress,
shadeStakingCodeHash,
decimals,
price,
lcdEndpoint,
chainId,
Expand Down

0 comments on commit 8811bc0

Please sign in to comment.