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

Commit

Permalink
fix(raft): Linting (#2748)
Browse files Browse the repository at this point in the history
  • Loading branch information
wpoulin committed Jun 15, 2023
1 parent 6c4eef8 commit a17f536
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 23 deletions.
30 changes: 19 additions & 11 deletions src/apps/raft/common/raft.position.contract-position-fetcher.ts
Expand Up @@ -2,21 +2,24 @@ import { Inject } from '@nestjs/common';
import { BigNumberish } from 'ethers';

import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '~position/display.interface';
import { MetaType } from '~position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '~position/template/contract-position.template.position-fetcher';
import {
DefaultContractPositionDefinition,
UnderlyingTokenDefinition,
} from '~position/template/contract-position.template.types';
import { DefaultDataProps } from '~position/display.interface';

import { RaftContractFactory, RaftPositionManager } from '../contracts';

export interface RaftDataProps extends DefaultDataProps {
minCRatio: number
minCRatio: number;
}

export abstract class EthereumRaftContractPositionFetcher extends ContractPositionTemplatePositionFetcher<RaftPositionManager, RaftDataProps> {
export abstract class EthereumRaftContractPositionFetcher extends ContractPositionTemplatePositionFetcher<
RaftPositionManager,
RaftDataProps
> {
abstract collateral: string;
abstract positionManagerAddress: string;

Expand Down Expand Up @@ -51,16 +54,21 @@ export abstract class EthereumRaftContractPositionFetcher extends ContractPositi
];
}

async getDataProps({
contractPosition,
multicall,
}) {
const positionManager = this.raftContractFactory.raftPositionManager({ address: this.positionManagerAddress, network: this.network })
const liquidiationContractAddress = await multicall.wrap(positionManager).splitLiquidationCollateral(this.collateral)
const liquidationContract = this.raftContractFactory.raftLiquiditation({ address: liquidiationContractAddress, network: this.network })
async getDataProps({ contractPosition, multicall }) {
const positionManager = this.raftContractFactory.raftPositionManager({
address: this.positionManagerAddress,
network: this.network,
});
const liquidiationContractAddress = await multicall
.wrap(positionManager)
.splitLiquidationCollateral(this.collateral);
const liquidationContract = this.raftContractFactory.raftLiquiditation({
address: liquidiationContractAddress,
network: this.network,
});

const collateralToken = contractPosition.tokens[0];
const minCRatio = Number(await multicall.wrap(liquidationContract).MCR()) / 10 ** collateralToken.decimals
const minCRatio = Number(await multicall.wrap(liquidationContract).MCR()) / 10 ** collateralToken.decimals;

return { minCRatio };
}
Expand Down
19 changes: 8 additions & 11 deletions src/apps/raft/ethereum/raft.position-presenter.ts
@@ -1,19 +1,19 @@
import { Inject } from '@nestjs/common';

import { PresenterTemplate } from '~app-toolkit/decorators/presenter-template.decorator';
import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface';
import { PresenterTemplate } from '~app-toolkit/decorators/presenter-template.decorator';
import {
buildDollarDisplayItem,
buildPercentageDisplayItem,
} from '~app-toolkit/helpers/presentation/display-item.present';
import { ContractPositionBalance } from '~position/position-balance.interface';
import { MetadataItemWithLabel } from '~balance/balance-fetcher.interface';
import { ContractPositionBalance } from '~position/position-balance.interface';
import { PositionPresenterTemplate, ReadonlyBalances } from '~position/template/position-presenter.template';

import { RaftDataProps } from '../common/raft.position.contract-position-fetcher';
import { RaftContractFactory } from '../contracts';
import { RaftDataProps } from '../common/raft.position.contract-position-fetcher'

export const positionManagerAddress = '0x5f59b322eb3e16a0c78846195af1f588b77403fc'
export const positionManagerAddress = '0x5f59b322eb3e16a0c78846195af1f588b77403fc';

@PresenterTemplate()
export class EthereumRaftPositionPresenter extends PositionPresenterTemplate {
Expand All @@ -24,19 +24,16 @@ export class EthereumRaftPositionPresenter extends PositionPresenterTemplate {
super();
}

override metadataItemsForBalanceGroup(
groupLabel: string,
balances: ReadonlyBalances
): MetadataItemWithLabel[] {
const balance = balances[0] as ContractPositionBalance<RaftDataProps>
override metadataItemsForBalanceGroup(_groupLabel: string, balances: ReadonlyBalances): MetadataItemWithLabel[] {
const balance = balances[0] as ContractPositionBalance<RaftDataProps>;
const minCRatio = balance?.dataProps?.minCRatio;
if (!minCRatio) return [];

const collateral = balance?.tokens[0]
const collateral = balance?.tokens[0];
const collateralUSD = collateral?.balanceUSD ?? 0;
const debt = Math.abs(balance?.tokens[1]?.balanceUSD ?? 0);
const cRatio = debt > 0 ? Math.abs(collateralUSD / debt) : 0;
const liquidationPrice = minCRatio * debt / collateral.balance
const liquidationPrice = (minCRatio * debt) / collateral.balance;

return [
{ label: 'C-Ratio', ...buildPercentageDisplayItem(cRatio * 100) },
Expand Down
2 changes: 1 addition & 1 deletion src/apps/raft/raft.module.ts
Expand Up @@ -10,10 +10,10 @@ import { EthereumRaftWstethContractPositionFetcher } from './ethereum/raft.wstet

@Module({
providers: [
RaftContractFactory,
EthereumRaftWstethCollateralTokenFetcher,
EthereumRaftWstethDebtTokenFetcher,
EthereumRaftWstethContractPositionFetcher,
RaftContractFactory,
EthereumRaftPositionPresenter,
],
})
Expand Down

0 comments on commit a17f536

Please sign in to comment.