incubed
Version:
Typescript-version of the incubed client
30 lines (29 loc) • 2.25 kB
TypeScript
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>;