OpenPay (1 crate, 3277 LOC, 18 tests)
op-ewallets-asia APAC e-wallet rail adapters. Alipay Cross-Border v3,
WeChat Pay (JSAPI/Native/H5/MicroPay) with constant-time
HMAC notify, UPI 2.0 (collect/intent/mandate/VPA),
Paytm, GrabPay, GoPay (Midtrans), Touch'n Go.
EMVCo MPM TLV + CRC-16/CCITT-FALSE encoder for
PromptPay (TH), PayNow (SG), DuitNow (MY), QRIS (ID).
Transport-free traits — operators inject HTTP + RSA-SHA256
signers (keeps POS firmware / WASM consumers reqwest-free).
Smart Byte (1 crate, 1310 LOC, 15 tests)
smart-byte-zk Selective-disclosure ZK primitives.
Real: Bulletproofs over Ristretto255 (range proofs at
8/16/32/64-bit), RangePredicate / InequalityPredicate /
SetMembershipPredicate all delegating to Bulletproofs.
Stubs (documented): Groth16, PLONK — deterministic
placeholder proofs satisfying ZkScheme trait for future
arkworks integration. AnonCred sketch + VerifiablePresentation
builder.
EOC (1 crate, ~3000 LOC, 36 tests)
eoc-rag RAG orchestrator. Naive (Lewis 2020), HyDE (Gao 2022),
RAG-Fusion + RRF (Cormack 2009), Self-RAG (Asai 2023)
with Retrieve/ISREL/ISSUP/ISUSE critique tokens,
Corrective RAG (Yan 2024) with retrieval evaluator
+ external fallback, Adaptive RAG (Jeong 2024)
complexity router. Chunking: sentence-window, semantic,
recursive, late-chunking. Span-backed citations with
3-mode enforcement. SelfCheckGPT consistency guard.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
//! Typed errors for the ZK primitives.
|
|
|
|
use thiserror::Error;
|
|
|
|
/// All ZK errors collapse to a single typed enum so callers can match
|
|
/// on the *kind* without depending on a specific backend crate.
|
|
#[derive(Debug, Error)]
|
|
pub enum ZkError {
|
|
/// A range-proof bit-length is not a power of two in
|
|
/// `{8, 16, 32, 64}`, as required by the Bulletproofs range-proof
|
|
/// API.
|
|
#[error("unsupported range-proof bit length: {0} (must be one of 8, 16, 32, 64)")]
|
|
UnsupportedBitLength(u32),
|
|
|
|
/// The witness value does not fit within `bit_length` bits.
|
|
#[error("witness {value} does not fit in {bit_length} bits")]
|
|
WitnessOutOfRange {
|
|
/// Value supplied by the prover.
|
|
value: u64,
|
|
/// Declared bit length.
|
|
bit_length: u32,
|
|
},
|
|
|
|
/// The set-membership prover was asked to prove membership of a
|
|
/// value that is not actually in the supplied set.
|
|
#[error("set-membership: value not in supplied set")]
|
|
NotInSet,
|
|
|
|
/// A Bulletproofs proof failed to verify.
|
|
#[error("bulletproofs verification failed: {0}")]
|
|
BulletproofVerification(String),
|
|
|
|
/// A serialisation step on a wire-level structure failed.
|
|
#[error("encoding error: {0}")]
|
|
Encoding(String),
|
|
|
|
/// A scheme stub was used outside of its documented surface
|
|
/// (typically: malformed dummy proof bytes).
|
|
#[error("stub scheme error: {0}")]
|
|
Stub(&'static str),
|
|
}
|