machinomy
Version:
Micropayments powered by Ethereum
59 lines (58 loc) • 1.91 kB
TypeScript
import Payment from './payment';
import { BigNumber } from 'bignumber.js';
import Serde from './Serde';
export interface PaymentChannelJSON {
sender: string;
receiver: string;
channelId: string;
value: BigNumber;
spent: BigNumber;
state: number;
tokenContract: string;
settlementPeriod: number;
settlingUntil: BigNumber;
}
export interface SerializedPaymentChannel {
state: number;
spent: string;
value: string;
channelId: string;
receiver: string;
sender: string;
tokenContract?: string;
settlementPeriod: number;
settlingUntil: string;
}
/**
* The Payment Channel
*/
export declare class PaymentChannel {
sender: string;
receiver: string;
channelId: string;
value: BigNumber;
spent: BigNumber;
state: number;
tokenContract: string;
settlementPeriod: number;
settlingUntil: BigNumber;
/**
* @param sender Ethereum address of the client.
* @param receiver Ethereum address of the server.
* @param channelId Identifier of the channel.
* @param value Total value of the channel.
* @param spent Value sent by {sender} to {receiver}.
* @param state 0 - 'open', 1 - 'settling', 2 - 'settled'
* @param tokenContract
* @param settlementPeriod
* @param settlingUntil
*/
constructor(sender: string, receiver: string, channelId: string, value: BigNumber, spent: BigNumber, state?: number, tokenContract?: string, settlementPeriod?: number, settlingUntil?: BigNumber);
static fromPayment(payment: Payment): PaymentChannel;
static fromDocument(document: PaymentChannelJSON): PaymentChannel;
}
export declare class PaymentChannelSerde implements Serde<PaymentChannel> {
static instance: PaymentChannelSerde;
serialize(obj: PaymentChannel): SerializedPaymentChannel;
deserialize(data: any): PaymentChannel;
}