@neo-one/node-blockchain-esnext-esm
Version:
NEO•ONE NEO blockchain implementation.
44 lines (43 loc) • 2.28 kB
TypeScript
import { ECPoint, UInt160 } from '@neo-one/client-common-esnext-esm';
import { Account, StateTransaction, Transaction, Validator, ValidatorKey, ValidatorsCount, ValidatorsCountUpdate, ValidatorUpdate } from '@neo-one/node-core-esnext-esm';
import BN from 'bn.js';
import { Blockchain } from './Blockchain';
export interface AccountChanges {
[hash: string]: readonly ECPoint[];
}
export interface ValidatorVotesChanges {
[hash: string]: BN;
}
export interface ValidatorRegisteredChanges {
[hash: string]: boolean;
}
interface ValidatorChange {
readonly registered?: boolean;
readonly votes?: BN;
}
export interface ValidatorChanges {
[hash: string]: ValidatorChange;
}
export declare type ValidatorsCountChanges = BN[];
export declare const getDescriptorChanges: ({ transactions, getAccount, governingTokenHash, }: {
readonly transactions: readonly StateTransaction[];
readonly getAccount: (hash: UInt160) => Promise<Account>;
readonly governingTokenHash: string;
}) => Promise<{
readonly accountChanges: AccountChanges;
readonly validatorChanges: ValidatorChanges;
readonly validatorsCountChanges: ValidatorsCountChanges;
}>;
export declare const processStateTransaction: ({ validatorChanges, validatorsCountChanges, tryGetValidatorsCount, addValidatorsCount, updateValidatorsCount, tryGetValidator, addValidator, deleteValidator, updateValidator, }: {
readonly validatorChanges: ValidatorChanges;
readonly validatorsCountChanges: ValidatorsCountChanges;
readonly tryGetValidatorsCount: () => Promise<ValidatorsCount | undefined>;
readonly addValidatorsCount: (validatorsCount: ValidatorsCount) => Promise<void>;
readonly updateValidatorsCount: (validatorsCount: ValidatorsCount, update: ValidatorsCountUpdate) => Promise<void>;
readonly tryGetValidator: (key: ValidatorKey) => Promise<Validator | undefined>;
readonly addValidator: (validator: Validator) => Promise<void>;
readonly deleteValidator: (key: ValidatorKey) => Promise<void>;
readonly updateValidator: (validator: Validator, update: ValidatorUpdate) => Promise<Validator>;
}) => Promise<void>;
export declare const getValidators: (blockchain: Blockchain, transactions: readonly Transaction[]) => Promise<readonly ECPoint[]>;
export {};