dpos-offline
Version:
Offline Signing Transactions for DPOS Blockchains
38 lines (37 loc) • 1.51 kB
TypeScript
/// <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;
}