Discriminator

This commit is contained in:
Hardhat Chad
2024-02-15 18:00:30 +00:00
parent c2692c89d2
commit 9476fc5b21
11 changed files with 107 additions and 58 deletions

View File

@@ -50,14 +50,20 @@ macro_rules! impl_account_from_bytes {
pub fn try_from_bytes(
data: &[u8],
) -> Result<&Self, solana_program::program_error::ProgramError> {
bytemuck::try_from_bytes::<Self>(data).or(Err(
if (Self::discriminator() as u8).ne(&data[0]) {
return Err(solana_program::program_error::ProgramError::InvalidAccountData);
}
bytemuck::try_from_bytes::<Self>(&data[8..]).or(Err(
solana_program::program_error::ProgramError::InvalidAccountData,
))
}
pub fn try_from_bytes_mut(
data: &mut [u8],
) -> Result<&mut Self, solana_program::program_error::ProgramError> {
bytemuck::try_from_bytes_mut::<Self>(data).or(Err(
if (Self::discriminator() as u8).ne(&data[0]) {
return Err(solana_program::program_error::ProgramError::InvalidAccountData);
}
bytemuck::try_from_bytes_mut::<Self>(&mut data[8..]).or(Err(
solana_program::program_error::ProgramError::InvalidAccountData,
))
}