UNPKG

@neo-one/node-blockchain-esnext-esm

Version:

NEO•ONE NEO blockchain implementation.

44 lines (43 loc) 2.28 kB
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 {};