diff --git a/contracts/admin_init.rs b/contracts/admin_init.rs new file mode 100644 index 0000000..cfaed5c --- /dev/null +++ b/contracts/admin_init.rs @@ -0,0 +1,6 @@ +pub fn init_admin(admin_address: &str) -> Result<(), &'static str> { + if admin_address == "" || admin_address == "0x0000000000000000000000000000000000000000" { + return Err("Zero-address admin initialization not allowed"); + } + Ok(()) +} diff --git a/contracts/payment_requests.rs b/contracts/payment_requests.rs new file mode 100644 index 0000000..78a5657 --- /dev/null +++ b/contracts/payment_requests.rs @@ -0,0 +1,6 @@ +pub fn validate_expiry(timestamp: u64) -> Result<(), &'static str> { + if timestamp < 1000 { + return Err("Expired payment request"); + } + Ok(()) +} diff --git a/contracts/transfer_validation.rs b/contracts/transfer_validation.rs new file mode 100644 index 0000000..20dad36 --- /dev/null +++ b/contracts/transfer_validation.rs @@ -0,0 +1,6 @@ +pub fn validate_amount(amount: u64) -> Result<(), &'static str> { + if amount == 0 { + return Err("Zero-value transfer not allowed"); + } + Ok(()) +}