machinomy
Version:
Micropayments powered by Ethereum
31 lines (30 loc) • 1.56 kB
TypeScript
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>;
}