78 lines
4.4 KiB
Rust
78 lines
4.4 KiB
Rust
// file: crates/ksp-raw-transaction-lib/src/lib.rs
|
|
// version: 4
|
|
|
|
#![warn(missing_docs)]
|
|
#![deny(unreachable_pub)]
|
|
#![forbid(unsafe_code)]
|
|
|
|
//! Source-neutral canonicalization of complete Solana transactions into KSP RAW transaction v1.
|
|
//!
|
|
//! This lower layer owns the frozen RAW transaction format, textual signature parsing/formatting, canonical
|
|
//! JSON construction, content hashing and assembly of one canonical transaction with one
|
|
//! producer-owned observation. It owns no Transport, Config, Job, Worker, async runtime or Store
|
|
//! backend behavior.
|
|
|
|
mod acquisition;
|
|
mod canonical;
|
|
mod error;
|
|
mod signature;
|
|
mod wire;
|
|
|
|
/// Complete source-neutral RAW transaction acquisition containing one canonical entity and one producer-owned observation.
|
|
pub use self::acquisition::RawTransactionAcquisition;
|
|
/// Assembles one canonical transaction with a producer-owned observation key and safe acquisition provenance.
|
|
pub use self::acquisition::assemble_raw_transaction_acquisition;
|
|
/// KSP-owned source-independent RAW transaction format identifier.
|
|
pub use self::canonical::RAW_TRANSACTION_FORMAT_ID;
|
|
/// Frozen KSP-owned RAW transaction format version.
|
|
pub use self::canonical::RAW_TRANSACTION_FORMAT_VERSION;
|
|
/// Complete source-neutral material required to construct one canonical RAW transaction.
|
|
pub use self::canonical::RawTransactionMaterial;
|
|
/// Canonical Solana transaction version admitted by RAW transaction format v1.
|
|
pub use self::canonical::RawTransactionVersion;
|
|
/// Source-wire presence state preserving omitted, explicit null and concrete values independently.
|
|
pub use self::canonical::RawTransactionWireField;
|
|
/// Canonicalizes complete source-neutral transaction material into the frozen KSP RAW transaction v1 representation.
|
|
pub use self::canonical::canonicalize_raw_transaction;
|
|
/// Error code used when RAW v1 canonical payload construction cannot preserve the frozen format contract.
|
|
pub use self::error::ERROR_CODE_RAW_TRANSACTION_CANONICALIZATION_INVALID;
|
|
/// Error code used when source-neutral RAW transaction material violates a bounded semantic invariant.
|
|
pub use self::error::ERROR_CODE_RAW_TRANSACTION_MATERIAL_INVALID;
|
|
/// Error code used when Solana transaction signature material cannot resolve to exactly 64 canonical bytes.
|
|
pub use self::error::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID;
|
|
/// Maximum UTF-8 byte length admitted for one textual Base58 Solana transaction signature.
|
|
pub use self::signature::MAX_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES;
|
|
/// Minimum UTF-8 byte length admitted for one textual Base58 Solana transaction signature.
|
|
pub use self::signature::MIN_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES;
|
|
/// Extracts the first canonical 64-byte Solana signature from one complete Base64 transaction wire.
|
|
pub use self::signature::extract_raw_transaction_signature_from_binary_base64;
|
|
/// Encodes one canonical 64-byte Solana transaction signature as bounded Base58 text.
|
|
pub use self::signature::format_raw_transaction_signature;
|
|
/// Parses one bounded Base58 Solana transaction signature to exactly 64 canonical bytes.
|
|
pub use self::signature::parse_raw_transaction_signature;
|
|
/// One source-neutral v0 address-table lookup.
|
|
pub use self::wire::RawSolanaAddressTableLookup;
|
|
/// One source-neutral compiled Solana instruction.
|
|
pub use self::wire::RawSolanaCompiledInstruction;
|
|
/// Source-neutral Solana message header.
|
|
pub use self::wire::RawSolanaMessageHeader;
|
|
/// Source-neutral Solana transaction message version.
|
|
pub use self::wire::RawSolanaMessageVersion;
|
|
/// Optional source-neutral Transaction V1 inline configuration.
|
|
pub use self::wire::RawSolanaTransactionConfig;
|
|
/// Complete source-neutral Solana transaction message.
|
|
pub use self::wire::RawSolanaTransactionMessage;
|
|
/// Complete source-neutral Solana transaction wire material.
|
|
pub use self::wire::RawSolanaTransactionWire;
|
|
/// Serializes one source-neutral Solana transaction to exact canonical wire bytes.
|
|
pub use self::wire::serialize_solana_transaction_wire;
|
|
/// Serializes one source-neutral Solana transaction to canonical padded standard Base64.
|
|
pub use self::wire::serialize_solana_transaction_wire_base64;
|
|
|
|
/// Creates a safe canonicalization error without copying source payload material.
|
|
pub(crate) use self::error::canonicalization_error;
|
|
/// Creates a safe source-material error without copying source payload material.
|
|
pub(crate) use self::error::material_error;
|
|
/// Creates a safe signature error without copying textual signature material.
|
|
pub(crate) use self::error::signature_error;
|