transaction.rs - Transactions
Transaction Structure
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Transaction {
pub sender: Vec<u8>, // Ed25519 public key
pub recipient: Vec<u8>, // Ed25519 public key
pub amount: u64, // Amount in base units
pub nonce: u64, // Deterministic nonce
pub signature: Vec<u8>, // Ed25519 signature
}Ed25519 Cryptographic Implementation
Digital Signature Verification
impl Transaction {
pub fn verify(&self) -> bool {
let pk = PublicKey::from_bytes(&self.sender).unwrap();
let data = self.data_to_sign();
let sig_bytes: [u8; 64] = self.signature.clone().try_into().expect("sig length");
let sig = Signature::from_bytes(&sig_bytes).unwrap();
pk.verify(&data, &sig).is_ok()
}
}Signing Data Generation
Blake3 Transaction Hashing
Deterministic Nonce System
Nonce Generation Strategy
Anti-Replay Protection
Transaction Lifecycle
Radio-Optimized Features
Compact Binary Format
JS8Call Compatibility
Validation and Security
Cryptographic Validation Chain
Security Properties
Property
Implementation
Purpose