UNPKG

machinomy

Version:

Micropayments powered by Ethereum

31 lines (30 loc) 1.56 kB
import AbstractChannelsDatabase from '../AbstractChannelsDatabase'; import * as BigNumber from 'bignumber.js'; import IChannelsDatabase from '../IChannelsDatabase'; import EngineNedb from './EngineNedb'; import ChannelId from '../../ChannelId'; import { PaymentChannel } from '../../PaymentChannel'; /** * Database layer for {PaymentChannel} */ export default class NedbChannelsDatabase extends AbstractChannelsDatabase<EngineNedb> implements IChannelsDatabase { save(paymentChannel: PaymentChannel): Promise<void>; firstById(channelId: ChannelId | string): Promise<PaymentChannel | null>; /** * Set amount of money spent on the channel. */ spend(channelId: ChannelId | string, spent: BigNumber.BigNumber): Promise<void>; deposit(channelId: ChannelId | string, value: BigNumber.BigNumber): Promise<void>; /** * Retrieve all the payment channels stored. * * @return {Promise<PaymentChannel>} */ all(): Promise<Array<PaymentChannel>>; allOpen(): Promise<PaymentChannel[]>; findUsable(sender: string, receiver: string, amount: BigNumber.BigNumber): Promise<PaymentChannel | null>; findBySenderReceiver(sender: string, receiver: string): Promise<Array<PaymentChannel>>; findBySenderReceiverChannelId(sender: string, receiver: string, channelId: ChannelId | string): Promise<PaymentChannel | null>; updateState(channelId: ChannelId | string, state: number): Promise<void>; updateSettlingUntil(channelId: ChannelId | string, settlingUntil: BigNumber.BigNumber): Promise<void>; }