rfe-types 0.1.0

Shared types for the Rust Fintech Ecosystem (RFE): newtype IDs, hashing, Decimal utilities
Documentation

rfe-types

Core domain types and deterministic audit primitives for the Rust Fintech Ecosystem (RFE).

Key Capabilities

  • Sensitive<T> redacts PII in Debug output.
  • Typed IDs: Inn, Ogrn, RequestId, LoanId, ClientId.
  • Deterministic Blake3 helpers: blake3_hash, blake3_chain.
  • Canonical audit structures: AuditEntry, SealInput.
  • rust_decimal re-export for exact financial arithmetic.

Freeze Notice (v0.1.x)

SealInput is frozen starting from v0.1.0 for TrustBox compatibility.

Field-level breaking changes require semver-major bump.

SealInput and AuditEntry

SealInput fields:

  • nonce
  • request_hash
  • result_hash
  • chain_head_pre

AuditEntry includes:

  • seal
  • processing_time_micros
  • operator_binding_hash
  • session_nonce

Minimal Example

use rfe_types::{blake3_hash, AuditEntry, SealInput};

let payload = b"tx:123";
let request_hash = blake3_hash(payload);
let result_hash = blake3_hash(b"allow");
let parent = [0u8; 32];
let nonce = [7u8; 32];

let seal = SealInput::new_v1(nonce, request_hash, result_hash, parent).compute_seal();
assert_ne!(seal, [0u8; 32]);

let root = AuditEntry::genesis(1_700_000_000_000_000, payload, Some(&nonce));
let next = root.next(1_700_000_000_001_000, b"tx:124", Some(&nonce));
assert!(next.verify_chain(&root));