use csv_adapter_core::{Hash, OwnershipProof, Right, SignatureScheme};
fn main() {
println!("=== CSV Adapter Core: Basic Right Example ===\n");
let commitment = Hash::new([0xAB; 32]);
println!(
"1. Created commitment: {}",
hex::encode(commitment.as_bytes())
);
let initial_owner = OwnershipProof {
proof: vec![0x01; 64], owner: vec![0x02; 33], scheme: Some(SignatureScheme::Secp256k1),
};
let salt = b"genesis-salt-2026";
let right = Right::new(commitment, initial_owner, salt);
println!(
"2. Created Right with ID: {}",
hex::encode(right.id.0.as_bytes())
);
println!(
" Commitment: {}",
hex::encode(right.commitment.as_bytes())
);
println!(" Owner: {}", hex::encode(&right.owner.owner));
println!(" Salt: {}", String::from_utf8_lossy(&right.salt));
let new_owner = OwnershipProof {
proof: vec![0x03; 64], owner: vec![0x04; 33], scheme: Some(SignatureScheme::Secp256k1),
};
let transfer_salt = b"transfer-salt-2026";
let transferred_right = right.transfer(new_owner.clone(), transfer_salt);
println!("\n3. Transferred Right:");
println!(
" New Right ID: {}",
hex::encode(transferred_right.id.0.as_bytes())
);
println!(
" New Owner: {}",
hex::encode(&transferred_right.owner.owner)
);
println!(
" New Salt: {}",
String::from_utf8_lossy(&transferred_right.salt)
);
println!("\n=== Example Complete ===");
}