UNPKG

incubed

Version:

Typescript-version of the incubed client

30 lines (29 loc) 2.25 kB
import { AccountProof, Proof, RPCRequest, RPCResponse, ServerList } from '../../types/types'; import { BlockData, Block, LogData, TransactionData, ReceiptData } from './serialize'; import ChainContext from '../../client/ChainContext'; export interface BlockHeaderProof { finality?: number; proof: Proof; expectedSigners?: Buffer[]; expectedBlockHash?: Buffer; } /** verify the signatures of a blockhash */ export declare function verifyBlock(b: Block, proof: BlockHeaderProof, ctx: ChainContext): Promise<void>; /** verifies a TransactionProof */ export declare function verifyTransactionProof(txHash: Buffer, headerProof: BlockHeaderProof, txData: TransactionData, ctx: ChainContext): Promise<void>; /** verifies a TransactionProof */ export declare function verifyTransactionByBlockProof(request: RPCRequest, headerProof: BlockHeaderProof, txData: TransactionData, ctx: ChainContext): Promise<void>; /** verifies a TransactionProof */ export declare function verifyTransactionReceiptProof(txHash: Buffer, headerProof: BlockHeaderProof, receipt: ReceiptData, ctx: ChainContext, useFullProof: boolean): Promise<[Buffer, void, void]>; /** verifies a TransactionProof */ export declare function verifyLogProof(headerProof: BlockHeaderProof, logs: LogData[], ctx: ChainContext): Promise<void>; /** verifies a TransactionProof */ export declare function verifyBlockProof(request: RPCRequest, data: string | BlockData, headerProof: BlockHeaderProof, ctx: ChainContext): Promise<void>; export declare function verifyTransaction(t: TransactionData): void; /** verifies a TransactionProof */ export declare function verifyAccountProof(request: RPCRequest, value: string | ServerList, headerProof: BlockHeaderProof, ctx: ChainContext): Promise<void>; export declare function getStorageValue(ap: AccountProof, storageKey: Buffer): Buffer; /** verifies a TransactionProof */ export declare function verifyCallProof(request: RPCRequest, value: Buffer, headerProof: BlockHeaderProof, ctx: ChainContext): Promise<void>; /** general verification-function which handles it according to its given type. */ export declare function verifyProof(request: RPCRequest, response: RPCResponse, allowWithoutProof?: boolean, ctx?: ChainContext): Promise<boolean>;