/// import { ECPoint } from '@neo-one/client-common'; import { Block, Blockchain as BlockchainType, CallReceipt, ConsensusPayload, Header, Input, InvocationTransaction, Settings, Storage, Transaction, VerifyTransactionResult, VM } from '@neo-one/node-core'; import BN from 'bn.js'; import { Observable } from 'rxjs'; export interface CreateBlockchainOptions { readonly settings: Settings; readonly storage: Storage; readonly vm: VM; } export interface BlockchainOptions extends CreateBlockchainOptions { readonly currentBlock: BlockchainType['currentBlock'] | undefined; readonly previousBlock: BlockchainType['previousBlock'] | undefined; readonly currentHeader: BlockchainType['currentHeader'] | undefined; } export declare class Blockchain { static create({ settings, storage, vm }: CreateBlockchainOptions): Promise; readonly deserializeWireContext: BlockchainType['deserializeWireContext']; readonly serializeJSONContext: BlockchainType['serializeJSONContext']; readonly feeContext: BlockchainType['feeContext']; private readonly settings$; private readonly storage; private mutableCurrentBlock; private mutablePreviousBlock; private mutableCurrentHeader; private mutablePersistingBlocks; private mutableBlockQueue; private mutableInQueue; private readonly vm; private mutableRunning; private mutableDoneRunningResolve; private mutableBlock$; constructor(options: BlockchainOptions); get settings(): Settings; get currentBlock(): Block; get previousBlock(): Block | undefined; get currentHeader(): Header; get currentBlockIndex(): number; get block$(): Observable; get isPersistingBlock(): boolean; get account(): BlockchainType['account']; get accountUnclaimed(): BlockchainType['accountUnclaimed']; get accountUnspent(): BlockchainType['accountUnspent']; get action(): BlockchainType['action']; get asset(): BlockchainType['asset']; get block(): BlockchainType['block']; get blockData(): BlockchainType['blockData']; get header(): BlockchainType['header']; get transaction(): BlockchainType['transaction']; get transactionData(): BlockchainType['transactionData']; get output(): BlockchainType['output']; get contract(): BlockchainType['contract']; get storageItem(): BlockchainType['storageItem']; get validator(): BlockchainType['validator']; get invocationData(): BlockchainType['invocationData']; get validatorsCount(): BlockchainType['validatorsCount']; stop(): Promise; updateSettings(settings: Settings): void; persistBlock({ block, unsafe, }: { readonly block: Block; readonly unsafe?: boolean; }): Promise; persistHeaders(_headers: readonly Header[]): Promise; verifyBlock(block: Block): Promise; verifyConsensusPayload(payload: ConsensusPayload): Promise; verifyTransaction({ transaction, memPool, }: { readonly transaction: Transaction; readonly memPool?: readonly Transaction[]; }): Promise; invokeScript(script: Buffer): Promise; invokeTransaction(transaction: InvocationTransaction): Promise; reset(): Promise; readonly getValidators: (transactions: readonly Transaction[]) => Promise; readonly calculateClaimAmount: (claims: readonly Input[]) => Promise; private persistBlocksAsync; private cleanBlockQueue; private dequeBlockQueue; private readonly verifyScript; private readonly tryGetInvocationData; private readonly tryGetTransactionData; private readonly getUnclaimed; private readonly getUnspent; private readonly getAllValidators; private readonly isSpent; private readonly tryGetSpentCoin; private start; private persistBlockInternal; private createWriteBlockchain; }