DeFiCh/jellyfish

View on GitHub
apps/playground-api/src/setups/setup.loan.scheme.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { PlaygroundSetup } from '../setups/setup'
import { Injectable } from '@nestjs/common'
import { CreateLoanScheme } from '@defichain/jellyfish-api-core/src/category/loan'
import BigNumber from 'bignumber.js'

@Injectable()
export class SetupLoanScheme extends PlaygroundSetup<CreateLoanScheme> {
  list (): CreateLoanScheme[] {
    return [
      {
        id: 'MIN150',
        interestRate: new BigNumber('5'),
        minColRatio: 150
      },
      {
        id: 'MIN175',
        interestRate: new BigNumber('3'),
        minColRatio: 175
      },
      {
        id: 'MIN200',
        interestRate: new BigNumber('2'),
        minColRatio: 200
      },
      {
        id: 'MIN350',
        interestRate: new BigNumber('1.5'),
        minColRatio: 350
      },
      {
        id: 'MIN500',
        interestRate: new BigNumber('1'),
        minColRatio: 500
      },
      {
        id: 'MIN10000',
        interestRate: new BigNumber('0.5'),
        minColRatio: 1000
      }
    ]
  }

  async create (each: CreateLoanScheme): Promise<void> {
    await this.client.loan.createLoanScheme(each)
  }

  async has (each: CreateLoanScheme): Promise<boolean> {
    try {
      await this.client.loan.getLoanScheme(each.id)
      return true
    } catch (e) {
      return false
    }
  }
}