open-standards/openpay/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot 84fc32449a
All checks were successful
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (push) Successful in 57s
chore(deps): update dependencies for Rust 1.98, pinning the crypto generations
Finishes the workspace-wide dependency refresh on stable 1.98.0. Most crates
took the newest release cleanly; the ones below could not, and the reason is
worth recording because "latest" is the wrong answer for several of them.

rand is pinned to 0.8, not 0.10. rand 0.10 dropped `rand::RngCore` and
`rand::rngs::OsRng`, but the real blocker is that it ships rand_core 0.10
while every signature crate here (ed25519-dalek 2.x, bls12_381, k256/p256)
is built on rand_core 0.6 -- so a 0.10 RNG is not even the right *type* to
hand to `SigningKey::generate`. rand 0.8 re-exports rand_core 0.6, which is
exactly what those crates want. rand_chacha follows it to 0.3 for the same
reason. The RNG generation is pinned by the crypto ecosystem, not by recency.

aes is pinned to 0.8 (cipher 0.4) in smart-byte-nostr and op-mobile-wallets:
aes 0.9 moved to cipher 0.5, which removed `BlockEncryptMut`,
`encrypt_padded_vec_mut` and `StreamCipherCoreWrapper::new` that this code
uses, and aes-gcm 0.10 pulls cipher 0.4 anyway -- so 0.9 also put two aes and
two cipher versions in the graph. op-3ds2 declared aes/cbc for an encrypted
deviceInfo block it never implemented; dropping those unused deps removes the
last cipher 0.5 edge, leaving a single aes and a single cipher.

reqwest 0.13 moved `RequestBuilder::query` and `::form` behind new features,
which `default-features = false` was silently excluding. Enabled per crate.

Source changes are the matching API drift:
  - hmac's `new_from_slice` lives on `KeyInit`, not `Mac`
  - secp256k1 0.31 takes the array by value in `from_byte_array`, and its own
    re-exported `rand` is used for keygen so the two can never drift again
  - smart-byte-mdl reads OS entropy from getrandom directly. It was reaching
    for a rand RNG only to get 32 bytes, and going to the primitive genuinely
    removes the CryptoRng skew with p256 0.14-rc that the comment there
    described dodging -- and drops rand from that crate entirely.

Verified: all 20 workspaces in the monorepo compile with
`cargo check --workspace --all-targets` on 1.98.0, zero errors.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-26 12:19:50 -04:00
..
op-3ds2 chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
op-batch Ingest batch 3: 9 more crates across openpay / smart-byte / eoc 2026-05-24 01:09:35 -04:00
op-bin ingest wave E: 3 crates · op-bin + smart-byte-tendermint + eoc-safety 2026-05-24 16:52:07 -04:00
op-bnpl chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
op-cli Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
op-connect Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
op-core Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
op-crypto-extra ingest wave F: 3 crates · op-crypto-extra + smart-byte-acdc + eoc-memory 2026-05-24 17:28:24 -04:00
op-dispute
op-dispute-evidence ingest wave A2: 3 crates · op-dispute-evidence + smart-byte-edv + eoc-agent 2026-05-24 11:42:26 -04:00
op-driver-sdk Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
op-emv
op-ewallets-asia chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
op-ffi-jni
op-ffi-swift
op-fraud Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
op-fraud-graph Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
op-fx
op-graph
op-iso8583 Ingest batch 2: 9 new crates across openpay / smart-byte / eoc 2026-05-23 18:12:24 -04:00
op-iso20022
op-ledger
op-mobile-wallets chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
op-openbanking ingest wave A4: 3 crates · smart-byte-atproto + op-openbanking + eoc-distributed 2026-05-24 12:22:09 -04:00
op-orchestrator Repo-wide toolchain refresh + jouleclaw policy/sandbox updates 2026-06-07 17:04:45 -04:00
op-payouts ingest wave B: 3 crates · op-payouts + smart-byte-nostr + eoc-streaming 2026-05-24 13:39:09 -04:00
op-rails-a2a
op-rails-card Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
op-rails-crypto
op-rails-x402 op-rails-x402: x402 agentic-payment rail (HTTP 402 acceptance) 2026-06-25 15:43:20 -04:00
op-reconciliation
op-refund
op-revrec ingest batch 5 (salvage): 2 crates from 9-agent dispatch (session-limit hit mid-batch) 2026-05-24 09:28:38 -04:00
op-routing Ingest batch 2: 9 new crates across openpay / smart-byte / eoc 2026-05-23 18:12:24 -04:00
op-screening openpay: fix op-vault/op-screening rand_core pin (restore workspace resolve) 2026-06-25 18:32:53 -04:00
op-server
op-settlement
op-statements ingest wave C: 3 crates · op-statements + smart-byte-activitypub + eoc-observability 2026-05-24 13:51:09 -04:00
op-subscriptions
op-tax chore(deps): update dependencies for Rust 1.98, pinning the crypto generations 2026-08-26 12:19:50 -04:00
op-vault openpay: fix op-vault/op-screening rand_core pin (restore workspace resolve) 2026-06-25 18:32:53 -04:00
op-wasm
op-webhook fix(op-webhook): import KeyInit — hmac 0.13 moved new_from_slice off the Mac trait, breaking compute_signature 2026-08-26 09:28:40 -04:00