dpos-offline
Version:
Offline Signing Transactions for DPOS Blockchains
41 lines (40 loc) • 1.18 kB
TypeScript
/// <reference types="node" />
import { As } from 'type-tagger';
import { IBaseTx } from '../base';
import { BaseLiskCodec, LiskTransaction } from './base_lisk';
/**
* Voting Item for the Vote Transaction interface
*/
export interface IVoteItem<IDentifier> {
/**
* The identifier of the delegate to vote/unvoite
*/
delegateIdentifier: IDentifier;
/**
* An optional vote weight to assign to the delegate. (If the coin supports it)
*/
weight?: string;
/**
* The action to perform + => vote, - => unvote
*/
action: '-' | '+';
}
/**
* Vote transaction identifier
*/
export interface IVoteTx<IDentifier = Buffer & As<'publicKey'>> extends IBaseTx {
readonly kind: 'vote';
/**
* Preference array of the votes to perform
*/
readonly preferences: Array<IVoteItem<IDentifier>>;
}
export declare type LiskVotesAsset = {
votes?: string[];
};
export declare class LiskVoteTxCodec extends BaseLiskCodec<LiskVotesAsset> {
constructor();
calcFees(tx: IVoteTx): number;
transform(from: IVoteTx): LiskTransaction<LiskVotesAsset>;
protected assetBytes(tx: LiskTransaction<LiskVotesAsset>): Buffer;
}