secure logs

This commit is contained in:
Hardhat Chad
2025-07-15 12:08:09 -07:00
parent 39cbd72f00
commit d129591638
4 changed files with 24 additions and 12 deletions

View File

@@ -1,13 +1,21 @@
use ore_api::prelude::*;
use solana_program::log::sol_log;
use steel::*;
/// No-op, use instruction data for logging w/o truncation.
pub fn process_log(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult {
pub fn process_log(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult {
// Load data
let block_id_bytes = data[..8].try_into().unwrap();
let block_id = u64::from_le_bytes(block_id_bytes);
sol_log(format!("Block ID: {}", block_id).as_str());
// Load accounts.
// let [signer_info] = accounts else {
// return Err(ProgramError::NotEnoughAccountKeys);
// };
// signer_info.as_account::<Block>(&ore_api::ID)?;
let [signer_info] = accounts else {
return Err(ProgramError::NotEnoughAccountKeys);
};
signer_info
.is_signer()?
.has_seeds(&[BLOCK, &block_id.to_le_bytes()], &ore_api::ID)?;
// For data integrity, only a block can log messages.