@kya-os/mcp-i
Version:
The TypeScript MCP framework with identity features built-in
85 lines (84 loc) • 2.08 kB
TypeScript
import type { Receipt } from "@kya-os/contracts/registry";
/**
* Merkle log verifier for receipt verification
*/
export interface MerkleProofNode {
hash: string;
isLeft: boolean;
}
export interface LogRoot {
root: string;
size: number;
timestamp: number;
}
export interface VerificationResult {
valid: boolean;
error?: string;
logRoot?: LogRoot;
}
/**
* Merkle log verifier implementation
*/
export declare class MerkleLogVerifier {
/**
* Verify a receipt's inclusion proof against a log root
*/
static verifyInclusion(receipt: Receipt, logRoot: LogRoot): Promise<VerificationResult>;
/**
* Compute leaf hash from receipt content
*/
private static computeLeafHash;
/**
* Compute root hash from inclusion proof
*/
private static computeRootFromProof;
/**
* Hash a pair of nodes
*/
private static hashPair;
/**
* Verify consistency between two log roots
*/
static verifyConsistency(oldRoot: LogRoot, newRoot: LogRoot, consistencyProof: string[]): Promise<VerificationResult>;
}
/**
* Receipt verifier with policy controls
*/
export declare class ReceiptVerifier {
private options;
constructor(options?: ReceiptVerifierOptions);
/**
* Verify a receipt against KTA log
*/
verify(receipt: Receipt): Promise<VerificationResult>;
/**
* Batch verify multiple receipts
*/
verifyBatch(receipts: Receipt[]): Promise<VerificationResult[]>;
/**
* Fetch current log root from KTA
*/
private fetchLogRoot;
}
export interface ReceiptVerifierOptions {
/**
* Enable receipt verification
*/
enabled?: boolean;
/**
* KTA base URL
*/
ktaBaseUrl?: string;
/**
* Allow mock data for testing
*/
allowMockData?: boolean;
/**
* Cache log root for this duration (seconds)
*/
cacheLogRootTtl?: number;
}
/**
* Create receipt verifier instance
*/
export declare function createReceiptVerifier(options?: ReceiptVerifierOptions): ReceiptVerifier;