Skip to content

Commit

Permalink
refactor: leveraged token data util function
Browse files Browse the repository at this point in the history
  • Loading branch information
janndriessen committed May 24, 2024
1 parent 772b810 commit c162745
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 39 deletions.
2 changes: 1 addition & 1 deletion src/quote/leveraged-extended/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { JsonRpcProvider } from '@ethersproject/providers'

import { ETH, InterestCompoundingETHIndex } from 'constants/tokens'
import { ZeroExApi } from 'utils/0x'
import { getLeveragedTokenData } from 'utils/leveraged-token-data'
import { slippageAdjustedTokenAmount } from 'utils/slippage'
import {
Exchange,
Expand All @@ -15,7 +16,6 @@ import {
import { QuoteProvider } from '../quoteProvider'
import { QuoteToken } from '../quoteToken'

import { getLeveragedTokenData } from './utils/data'
import { getIncludedSources } from './utils/zeroex'

export interface FlashMintLeveragedExtendedQuoteRequest {
Expand Down
44 changes: 7 additions & 37 deletions src/quote/leveraged/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,16 @@ import {
MATIC,
stETH,
} from 'constants/tokens'
import { getFlashMintLeveragedContractForToken } from 'utils/contracts'
import { SwapQuoteProvider, SwapQuoteRequest } from 'quote/swap'
import {
getLeveragedTokenData,
LeveragedTokenData,
} from 'utils/leveraged-token-data'
import { slippageAdjustedTokenAmount } from 'utils/slippage'
import { Exchange, SwapData } from 'utils/swapData'

import { QuoteProvider } from '../quoteProvider'
import { QuoteToken } from '../quoteToken'
import { SwapQuoteProvider, SwapQuoteRequest } from 'quote/swap'

export interface FlashMintLeveragedQuoteRequest {
isMinting: boolean
Expand All @@ -36,14 +40,6 @@ export interface FlashMintLeveragedQuote {
swapDataPaymentToken: SwapData
}

export interface LeveragedTokenData {
collateralAToken: string
collateralToken: string
debtToken: string
collateralAmount: BigNumber
debtAmount: BigNumber
}

export class LeveragedQuoteProvider
implements
QuoteProvider<FlashMintLeveragedQuoteRequest, FlashMintLeveragedQuote>
Expand All @@ -65,7 +61,7 @@ export class LeveragedQuoteProvider
const sources = getSourcesToInclude(isIcEth)
const network = await provider.getNetwork()
const chainId = network.chainId
const leveragedTokenData = await getLevTokenData(
const leveragedTokenData = await getLeveragedTokenData(
indexToken.address,
indexTokenAmount,
indexTokenSymbol,
Expand Down Expand Up @@ -269,32 +265,6 @@ function getSourcesToInclude(isIcEth: boolean): Exchange[] {
: [Exchange.Quickswap, Exchange.Sushiswap, Exchange.UniV3]
}

async function getLevTokenData(
setTokenAddress: string,
setTokenAmount: BigNumber,
setTokenSymbol: string,
isIssuance: boolean,
chainId: number,
provider: JsonRpcProvider
): Promise<LeveragedTokenData | null> {
try {
const contract = getFlashMintLeveragedContractForToken(
setTokenSymbol,
provider,
chainId
)
return await contract.getLeveragedTokenData(
setTokenAddress,
setTokenAmount,
isIssuance
)
} catch (error) {
// TODO: should this just always fail cause it means there is something wrongly configured?
console.error('Error getting leveraged token data', error)
return null
}
}

function getPaymentTokenAddress(
paymentToken: QuoteToken,
isMinting: boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@ import { JsonRpcProvider } from '@ethersproject/providers'

import { getFlashMintLeveragedContractForToken } from 'utils/contracts'

import { LeveragedTokenData } from '../provider'
export interface LeveragedTokenData {
collateralAToken: string
collateralToken: string
debtToken: string
collateralAmount: BigNumber
debtAmount: BigNumber
}

export async function getLeveragedTokenData(
indexTokenAddress: string,
Expand Down

0 comments on commit c162745

Please sign in to comment.