openpay/
compliance/ PCI-DSS readiness package (scope-map,
pci-zero-architecture, hsm-kms-guidance,
qsa-checklist), citing PCI-DSS v4.0.1
requirements. (#1)
examples/pci-zero/ Runnable example demonstrating a deployment
where merchant code never touches a PAN. (#1)
crates/op-core/ Tokenized<Card> typestate + NetworkToken
+ CardNetwork + Cryptogram. (#2)
crates/op-rails-card/network_token/
NetworkTokenProvider trait + VTS adapter
+ MDES adapter, with deterministic stubs
behind a 'live' feature flag. (#2)
crates/op-driver-sdk/conformance/network_token.rs
Conformance harness for third-party
NetworkTokenProvider implementations. (#2)
crates/op-cli/src/ledger/ 'openpay ledger as-of' subcommand for
bi-temporal queries. (#3)
crates/op-orchestrator/src/telemetry.rs
OpenTelemetry span emission per
Payment<S> transition with semantic-
conventions tags. (#3)
docs/observability/ Grafana dashboard JSON + wiring guide
for the bi-temporal ledger lens. (#3)
smart-byte/
smart-byte-rs/ Rust reference implementation: envelope
encode/decode (canonical CBOR + BLAKE3
content addressing), Ed25519 sign +
verify, lockstep BFT commit MVP, Iroh
transport scaffold, CLI. (#4)
spec/identity_and_key_rotation.md
Adopts KERI SAIDs + key-event log
format; explicitly does not adopt ACDC
chaining wholesale. (#5)
conformance/v1/ 21 test vectors covering canonicalisation,
SAID computation, signature verification,
lockstep commit, gossip propagation.
CI gate enforces spec/vector coupling. (#6)
eoc/
eoc-rs/ Rust + WASM reference implementation:
4-stage cascade (cache -> kv -> graph ->
neural), joule counters via RAPL / NVML /
powermetrics, CLI, wasm-bindgen surface.
18 tests pass. (#7)
eoc-bench/ Benchmark harness, MT-Bench and Router
case sets, 'joules per MT-Bench point'
metric, 'eoc-bench run | compare' CLI. (#8)
standards/sci-for-ai-submission.md
Submission proposal mapping EOC's
receipt schema to GSF SCI-for-AI. (#9)
cookbook/ HuggingFace-style cookbook (markdown +
runnable Python) demonstrating EOC's
cascade with HF AI Energy Score. (#9)
docs/bench-v0.md Reproducibility doc for eoc-bench.
Workspace state:
- openpay clippy -- -D warnings: clean across all touched crates
- smart-byte-rs cargo test --workspace + clippy: clean
- eoc-rs cargo test --workspace + clippy: clean (18 tests)
- eoc-bench cargo check --workspace + clippy + 15 tests: clean
Rust 1.95.0 edition 2024 pinned at the open-standards root via
rust-toolchain.toml; every workspace inherits.
Closes #1 #2 #3 #4 #5 #6 #7 #8 #9.
53 lines
2 KiB
Rust
53 lines
2 KiB
Rust
//! # `op-core`
|
|
//!
|
|
//! Safety-critical core for `OpenPay`. Pure domain logic: no I/O, no network,
|
|
//! no platform-specific code.
|
|
//!
|
|
//! ## Invariants enforced by the type system
|
|
//!
|
|
//! 1. Money values cannot be constructed from `f64`. All amounts are exact
|
|
//! minor-unit integers paired with an ISO 4217 currency.
|
|
//! 2. A `Payment<S>` can only transition through legal states. Illegal
|
|
//! transitions (e.g. capturing an unauthorized payment) do not compile.
|
|
//! 3. Raw PAN (Primary Account Number) is unreachable without the
|
|
//! `pci-scope` feature flag. The default surface exposes only opaque
|
|
//! `Token` and `EmvBlob` payment-method variants.
|
|
//! 4. No `unsafe` in this crate.
|
|
//!
|
|
//! ## Module layout
|
|
//!
|
|
//! - [`money`] — `Money`, `Currency`, ISO 4217 minor-unit arithmetic.
|
|
//! - [`method`] — `PaymentMethod` enum (token/EMV/A2A/wallet).
|
|
//! - [`payment`] — `Payment<S>` typestate machine.
|
|
//! - [`error`] — sealed error enum, one per crate convention.
|
|
//! - [`rails`] — rail-agnostic `Acquirer` trait that adapter crates implement.
|
|
//! - [`network_token`] — `Tokenized<Card>` / `Vaulted<Card>` typestates
|
|
//! and network-token primitives (VTS / MDES surrogate credentials).
|
|
|
|
#![forbid(unsafe_code)]
|
|
#![warn(missing_docs)]
|
|
#![warn(clippy::pedantic)]
|
|
#![warn(clippy::nursery)]
|
|
#![allow(clippy::module_name_repetitions)]
|
|
|
|
pub mod error;
|
|
pub mod method;
|
|
pub mod money;
|
|
pub mod network_token;
|
|
pub mod payment;
|
|
pub mod rails;
|
|
|
|
pub use error::Error;
|
|
pub use method::{A2aKey, CryptoAddress, PaymentMethod, Token, VaultRef};
|
|
pub use money::{Currency, Money};
|
|
pub use network_token::{
|
|
Card, CardNetwork, NetworkToken, NetworkTokenLifecycleEvent, PaymentMethodKind, Tokenized,
|
|
Vaulted,
|
|
};
|
|
pub use payment::{Authorized, Captured, Created, Failed, Payment, Refunded, Voided};
|
|
pub use rails::{Acquirer, AcquirerResponse, RailKind};
|
|
|
|
/// Raw PAN. Re-exported here only when the `pci-scope` feature is on.
|
|
/// Available exclusively to PCI-certified code paths (the vault).
|
|
#[cfg(feature = "pci-scope")]
|
|
pub use method::pci::RawPan;
|