Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
feat(vvs-finance): use subgraph for tvl and mine addrs
Browse files Browse the repository at this point in the history
  • Loading branch information
CronosLabsDev committed Jun 13, 2022
1 parent f417739 commit 716b0ae
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Inject } from '@nestjs/common';
import { BigNumber } from 'ethers';
import request, { gql } from 'graphql-request';

import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface';
import { Register } from '~app-toolkit/decorators';
Expand All @@ -11,24 +12,20 @@ import { Network } from '~types/network.interface';
import { VvsFinanceContractFactory } from '../contracts';
import { VVS_FINANCE_DEFINITION } from '../vvs-finance.definition';

const MINES = [
'0x87fd1bdee5dd3f93ec78adf1743eb804d796aa79',
'0xe3d0b112df42b525501d9312f81d80dff21f89c8',
'0x7bc5d594531759f8989eb1a0f8302174ce0503b4',
'0xc89bf1eeef0ba6417485dfa6b7b732113155fc96',
'0x0b8d4cc66fecee7cbf687b438bcc97fa40716ecb',
'0xf7514c62582937ed661ac008d2eaefeca12daf16',
'0xa618d96d36cb32a7618e71850bd569726608372e',
'0x2d676d626d812a38eee2addbf8b22416c0313efb',
'0xa3b4d4a5b287e8ec105f49246c642face481df55',
'0xc01d557a3a0408de13d0a204cdb30277de1c8255',
'0xcf50995e41d3cda83e0997b5daaeb2bd73300bf2',
'0xe94d70f670d82b250f477d461059201570531ce3',
'0xa46c0382654248509a1ed888cccba964693dedcb',
'0xf0b9b4fbd1d6b6b9b9fa13736fe12bd2414bc677',
'0x1a888d7b2abfd2b5046d8461e6d1703f654a8fc0',
'0xa9e36deee3b457ae50cd1776f205c1d389e6d16b',
];
const graphEndpoint = 'https://graph.cronoslabs.com/subgraphs/name/vvs/smartcraft';
const vvsSmartCraftsQuery = gql`
query vvsSmartCrafts {
smartCrafts {
id
}
}
`;

interface VvsSmartCraftsQueryResult {
smartCrafts: {
id: string;
}[];
}

const appId = VVS_FINANCE_DEFINITION.id;
const groupId = VVS_FINANCE_DEFINITION.groups.mine.id;
Expand All @@ -42,15 +39,18 @@ export class CronosVvsFinanceMinesContractPositionFetcher implements PositionFet
) {}

async getPositions() {
const { smartCrafts } = await request<VvsSmartCraftsQueryResult>(graphEndpoint, vvsSmartCraftsQuery);
const mineAddrs = smartCrafts.map(({ id }) => id);

return this.appToolkit.helpers.masterChefContractPositionHelper.getContractPositions<null>({
network,
appId,
groupId,
address: '',
resolveAddress: async ({ poolIndex }) => MINES[poolIndex],
resolveAddress: async ({ poolIndex }) => mineAddrs[poolIndex],
dependencies: [{ appId, groupIds: [VVS_FINANCE_DEFINITION.groups.xvvs.id], network }],
resolvePoolIndexIsValid: async ({ poolIndex, multicall }) => {
const mineAddr = MINES[poolIndex];
const mineAddr = mineAddrs[poolIndex];

const contract = this.contractFactory.vvsSmartCraftInitializable({ network, address: mineAddr });
const factoryAddress = await multicall
Expand All @@ -60,21 +60,21 @@ export class CronosVvsFinanceMinesContractPositionFetcher implements PositionFet
return !!factoryAddress;
},
resolveContract: () => null,
resolvePoolLength: async () => BigNumber.from(MINES.length),
resolvePoolLength: async () => BigNumber.from(mineAddrs.length),
resolveRewardTokenAddresses: ({ multicall, poolIndex }) => {
const mineAddr = MINES[poolIndex];
const mineAddr = mineAddrs[poolIndex];

const contract = this.contractFactory.vvsSmartCraftInitializable({ network, address: mineAddr });
return multicall.wrap(contract).rewardToken();
},
resolveDepositTokenAddress: ({ multicall, poolIndex }) => {
const mineAddr = MINES[poolIndex];
const mineAddr = mineAddrs[poolIndex];

const contract = this.contractFactory.vvsSmartCraftInitializable({ network, address: mineAddr });
return multicall.wrap(contract).stakedToken();
},
resolveEndBlock: async ({ multicall, poolIndex }) => {
const mineAddr = MINES[poolIndex];
const mineAddr = mineAddrs[poolIndex];

const contract = this.contractFactory.vvsSmartCraftInitializable({ network, address: mineAddr });
return multicall
Expand All @@ -87,7 +87,7 @@ export class CronosVvsFinanceMinesContractPositionFetcher implements PositionFet
resolvePoolAllocPoints: () => '1',
resolveTotalAllocPoints: () => '1',
resolveTotalRewardRate: ({ multicall, poolIndex }) => {
const mineAddr = MINES[poolIndex];
const mineAddr = mineAddrs[poolIndex];

const contract = this.contractFactory.vvsSmartCraftInitializable({ network, address: mineAddr });
return multicall.wrap(contract).rewardPerBlock();
Expand Down
2 changes: 1 addition & 1 deletion src/apps/vvs-finance/cronos/vvs-finance.tvl-fetcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { Network } from '~types/network.interface';

import { VVS_FINANCE_DEFINITION } from '../vvs-finance.definition';

const graphEndpoint = 'https://graph.vvs.finance/exchange';
const graphEndpoint = 'https://graph.cronoslabs.com/subgraphs/name/vvs/exchange';
const vvsFactoriesQuery = gql`
query vvsFactories($tokenId: String) {
vvsFactories(start: 1) {
Expand Down

0 comments on commit 716b0ae

Please sign in to comment.