UNPKG

@interlay/interbtc

Version:

JavaScript library to interact with InterBTC

36 lines (35 loc) 2.71 kB
import * as interbtcIndex from "@interlay/interbtc-index-client"; import { IndexApi as RawIndexApi, SatoshisTimeData } from "@interlay/interbtc-index-client"; import { BitcoinAmount, BitcoinUnit } from "@interlay/monetary-js"; import { ApiPromise } from "@polkadot/api"; import { Issue, Redeem, VaultExt, InterBtcApi } from "@interlay/interbtc-api"; import { CollateralBtcOracleStatus } from "./oracleTypes"; export interface BTCTimeData { date: Date; btc: BitcoinAmount; } declare const explicitWrappers: (index: RawIndexApi, interBtcApi: InterBtcApi) => { getLatestSubmissionForEachOracle: (currencyKey: string) => Promise<CollateralBtcOracleStatus[]>; getLatestSubmission: (currencyKey: string) => Promise<CollateralBtcOracleStatus>; currentVaultData: () => Promise<VaultExt<BitcoinUnit>[]>; getIssues: (requestParameters: interbtcIndex.GetIssuesRequest) => Promise<Issue[]>; getRedeems: (requestParameters: interbtcIndex.GetRedeemsRequest) => Promise<Redeem[]>; getFilteredIssues: (requestParameters: interbtcIndex.GetFilteredIssuesRequest) => Promise<Issue[]>; getFilteredRedeems: (requestParameters: interbtcIndex.GetFilteredRedeemsRequest) => Promise<Redeem[]>; getRecentDailyIssues: (requestParameters: interbtcIndex.GetRecentDailyIssuesRequest) => Promise<BTCTimeData[]>; getRecentDailyRedeems: (requestParameters: interbtcIndex.GetRecentDailyRedeemsRequest) => Promise<BTCTimeData[]>; getDustValue: () => Promise<BitcoinAmount>; }; declare const GeneratedMiddlewareFns: readonly ["withMiddleware", "withPreMiddleware", "withPostMiddleware"]; declare type GeneratedMiddlewareFns = typeof GeneratedMiddlewareFns[number]; declare type RawApiResponse = Promise<interbtcIndex.ApiResponse<any>>; export declare type ExplicitlyWrappedIndexAPI = ReturnType<typeof explicitWrappers>; export declare type ThinWrappedIndexAPI = Pick<interbtcIndex.IndexApi, { [ApiFn in keyof interbtcIndex.IndexApi]-?: ReturnType<interbtcIndex.IndexApi[ApiFn]> extends RawApiResponse ? never : ApiFn extends GeneratedMiddlewareFns ? never : ApiFn extends keyof ExplicitlyWrappedIndexAPI ? never : ApiFn; }[keyof interbtcIndex.IndexApi]>; export declare type WrappedIndexAPI = ThinWrappedIndexAPI & ExplicitlyWrappedIndexAPI; export declare const DefaultIndexAPI: (configurationParams: interbtcIndex.ConfigurationParameters, interBtcApi: InterBtcApi) => WrappedIndexAPI; export declare function indexIssueToTypedIssue(api: ApiPromise, issue: interbtcIndex.IndexIssue): Issue; export declare function indexRedeemToTypedRedeem(api: ApiPromise, redeem: interbtcIndex.IndexRedeem): Redeem; export declare function satoshisToBtcTimeData(data: SatoshisTimeData): BTCTimeData; export {};