UNPKG

dpos-offline

Version:

Offline Signing Transactions for DPOS Blockchains

38 lines (37 loc) 1.51 kB
/// <reference types="node" /> import { As } from 'type-tagger'; import { Overwrite } from 'utility-types'; import { Address } from '../../interface'; import { IBaseTx, IBaseTxCodec } from '../base'; export declare type RiseV2Transaction<AssetType> = { recipientId: Address; senderId: Address; amount: string; senderPubData: Buffer & As<'publicKey' | 'pubData'>; timestamp: number; fee: string; asset: AssetType; type: number; id: string; version: number; signatures: Array<Buffer & As<'signature'>>; }; export declare type PostableRiseV2Transaction<T> = Overwrite<RiseV2Transaction<T>, { senderPubData: string; signatures: string[]; }>; export declare abstract class BaseRiseCodec<T> implements IBaseTxCodec<RiseV2Transaction<T>, PostableRiseV2Transaction<T>> { readonly identifier: string; readonly type: number; constructor(type: number, identifier: string); abstract calcBytes(tx: RiseV2Transaction<T>): Buffer; calcFullBytes(tx: RiseV2Transaction<T>): Buffer; fromPostable(ptx: PostableRiseV2Transaction<T>): RiseV2Transaction<T>; toPostable(tx: RiseV2Transaction<T>): PostableRiseV2Transaction<T>; transform(from: IBaseTx): RiseV2Transaction<T>; abstract calcFees(tx: IBaseTx): number; createNonce(): string & As<"nonce">; abstract fromBytes(buf: Buffer): RiseV2Transaction<T>; protected abstract assetBytes(tx: RiseV2Transaction<T>): Buffer; protected abstract assetFromBytes(buf: Buffer): T; }