liquidjs-lib
Version:
Client-side Liquid JavaScript library
40 lines (39 loc) • 2.38 kB
TypeScript
/// <reference types="node" />
import type { Slip77Interface } from 'slip77';
import type { KeysGenerator, Pset } from './pset';
import type { IssuanceBlindingArgs, OutputBlindingArgs, OwnedInput } from './blinder';
import type { Secp256k1Interface as ZKPInterface } from '../secp256k1-zkp';
export declare class ZKPValidator {
private confidential;
constructor(zkpLib: ZKPInterface);
verifyValueRangeProof(proof: Buffer, valueCommitment: Buffer, assetCommitment: Buffer, script: Buffer): boolean;
verifyAssetSurjectionProof(inAssets: Buffer[], inAssetBlinders: Buffer[], outAsset: Buffer, outAssetBlinder: Buffer, proof: Buffer): boolean;
verifyBlindValueProof(proof: Buffer, valueCommitment: Buffer, assetCommitment: Buffer): boolean;
verifyBlindAssetProof(asset: Buffer, assetCommit: Buffer, proof: Buffer): boolean;
}
declare type ZKPGeneratorOption = (g: ZKPGenerator) => void;
export declare class ZKPGenerator {
private zkp;
private ownedInputs?;
private inBlindingKeys?;
private masterBlindingKey?;
private opts?;
private confidential;
constructor(zkp: ZKPInterface, ...options: ZKPGeneratorOption[]);
static WithBlindingKeysOfInputs(inBlindingKeys: Buffer[]): ZKPGeneratorOption;
static WithMasterBlindingKey(masterKey: Slip77Interface): ZKPGeneratorOption;
static WithOwnedInputs(ownedInputs: OwnedInput[]): ZKPGeneratorOption;
computeAndAddToScalarOffset(scalar: Buffer, value: string, assetBlinder: Buffer, valueBlinder: Buffer): Buffer;
subtractScalars(inputScalar: Buffer, outputScalar: Buffer): Buffer;
lastValueCommitment(value: string, asset: Buffer, blinder: Buffer): Buffer;
lastBlindValueProof(value: string, valueCommit: Buffer, assetCommit: Buffer, blinder: Buffer): Buffer;
lastValueRangeProof(value: string, asset: Buffer, valueCommitment: Buffer, assetCommitment: Buffer, valueBlinder: Buffer, assetBlinder: Buffer, nonce: Buffer, script: Buffer): Buffer;
unblindInputs(pset: Pset, inIndexes?: number[]): OwnedInput[];
blindIssuances(pset: Pset, blindingKeysByIndex: Record<number, Buffer>): IssuanceBlindingArgs[];
blindOutputs(pset: Pset, keysGenerator: KeysGenerator, outIndexes?: number[]): OutputBlindingArgs[];
private calculateScalarOffset;
private unblindUtxo;
private getInputAssetsAndBlinders;
private maybeUnblindInUtxos;
}
export {};