UNPKG

raiden-ts

Version:

Raiden Light Client Typescript/Javascript SDK

83 lines (82 loc) 2.94 kB
import type { Signer } from '@ethersproject/abstract-signer'; import type { Network } from '@ethersproject/networks'; import type { JsonRpcProvider } from '@ethersproject/providers'; import * as t from 'io-ts'; import type { Logger } from 'loglevel'; import type { MatrixClient } from 'matrix-js-sdk'; import type { AsyncSubject, Observable, Subject } from 'rxjs'; import type { RaidenAction } from './actions'; import type { RaidenConfig } from './config'; import type { HumanStandardToken, MonitoringService, SecretRegistry, ServiceRegistry, TokenNetwork, TokenNetworkRegistry, UserDeposit } from './contracts'; import type { RaidenDatabase } from './db/types'; import type { PFSFeeUpdate } from './messages/types'; import type { RaidenState } from './state'; import type { FeeModel } from './transfers/mediate/types'; import type { UInt } from './utils/types'; import { Address } from './utils/types'; export declare const ContractsInfo: t.ReadonlyC<t.RecordC<t.KeyofC<{ TokenNetworkRegistry: null; ServiceRegistry: null; UserDeposit: null; SecretRegistry: null; MonitoringService: null; OneToN: null; }>, t.ReadonlyC<t.TypeC<{ address: import("./utils/types").AddressC; block_number: t.NumberC; }>>>>; export declare type ContractsInfo = t.TypeOf<typeof ContractsInfo>; export interface Latest { action: RaidenAction; state: RaidenState; config: RaidenConfig; whitelisted: readonly Address[]; rtc: { [address: string]: RTCDataChannel; }; udcDeposit: { balance: UInt<32>; totalDeposit: UInt<32>; }; blockTime: number; stale: boolean; settleTimeout: number; } export interface RaidenEpicDeps { latest$: Subject<Latest>; config$: Observable<RaidenConfig>; matrix$: AsyncSubject<MatrixClient>; provider: JsonRpcProvider; network: Network; signer: Signer; address: Address; log: Logger; defaultConfig: RaidenConfig; contractsInfo: ContractsInfo; registryContract: TokenNetworkRegistry; getTokenNetworkContract: (address: Address) => TokenNetwork; getTokenContract: (address: Address) => HumanStandardToken; serviceRegistryContract: ServiceRegistry; userDepositContract: UserDeposit; secretRegistryContract: SecretRegistry; monitoringServiceContract: MonitoringService; main?: { signer: Signer; address: Address; }; db: RaidenDatabase; init$: Subject<Observable<any>>; mediationFeeCalculator: FeeModel<any, PFSFeeUpdate['fee_schedule']>; getBlockTimestamp: (block: number) => Observable<number>; } export interface ChangeEvent<T extends string, P> { readonly type: T; readonly payload: P; } export declare type OnChange<T extends string, P> = (event: ChangeEvent<T, P>) => void; export declare enum EventTypes { OPENED = "OPENED", APPROVED = "APPROVED", DEPOSITED = "DEPOSITED", CONFIRMED = "CONFIRMED" }