UNPKG

machinomy

Version:

Micropayments powered by Ethereum

29 lines (28 loc) 1.93 kB
import { PaymentChannel, PaymentChannelJSON } from '../PaymentChannel'; import * as BigNumber from 'bignumber.js'; import IEngine from './IEngine'; import ChannelId from '../ChannelId'; import IChannelsDatabase from './IChannelsDatabase'; import ChannelInflator from '../ChannelInflator'; export default abstract class AbstractChannelsDatabase<T extends IEngine> implements IChannelsDatabase { engine: T; kind: string; inflator: ChannelInflator; constructor(engine: T, inflator: ChannelInflator, namespace: string | null); inflatePaymentChannels(channels: Array<PaymentChannelJSON>): Promise<Array<PaymentChannel>>; inflatePaymentChannel(json: PaymentChannelJSON): Promise<PaymentChannel | null>; filterByState(state: number, channels: PaymentChannel[]): PaymentChannel[]; abstract save(paymentChannel: PaymentChannel): Promise<void>; saveOrUpdate(paymentChannel: PaymentChannel): Promise<void>; abstract deposit(channelId: ChannelId | string, value: BigNumber.BigNumber): Promise<void>; abstract firstById(channelId: ChannelId | string): Promise<PaymentChannel | null>; abstract spend(channelId: ChannelId | string, spent: BigNumber.BigNumber): Promise<void>; abstract all(): Promise<Array<PaymentChannel>>; abstract allOpen(): Promise<PaymentChannel[]>; allSettling(): Promise<PaymentChannel[]>; abstract findUsable(sender: string, receiver: string, amount: BigNumber.BigNumber): Promise<PaymentChannel | null>; abstract findBySenderReceiver(sender: string, receiver: string): Promise<Array<PaymentChannel>>; abstract findBySenderReceiverChannelId(sender: string, receiver: string, channelId: ChannelId | string): Promise<PaymentChannel | null>; abstract updateState(channelId: ChannelId | string, state: number): Promise<void>; abstract updateSettlingUntil(channelId: ChannelId | string, settlingUntil: BigNumber.BigNumber): Promise<void>; }