Armani Ferrante 3 years ago
parent
commit
d03097a690
2 changed files with 5 additions and 3 deletions
  1. 1 1
      lang/attribute/account/src/lib.rs
  2. 4 2
      lang/common/src/header.rs

+ 1 - 1
lang/attribute/account/src/lib.rs

@@ -151,7 +151,7 @@ pub fn account(
                 impl #impl_gen anchor_lang::AccountDeserialize for #account_name #type_gen #where_clause {
                     fn try_deserialize(buf: &mut &[u8]) -> std::result::Result<Self, ProgramError> {
                         // Header is always 8 bytes.
-                        if buf.len() < 8 {
+                        if buf.len() < anchor_lang::accounts::header::HEADER_LEN {
                             return Err(anchor_lang::__private::ErrorCode::AccountDiscriminatorNotFound.into());
                         }
                         let given_disc = anchor_lang::accounts::header::read_discriminator(&buf);

+ 4 - 2
lang/common/src/header.rs

@@ -2,6 +2,8 @@ use arrayref::array_ref;
 use solana_program::hash;
 use std::io::{Cursor, Write};
 
+pub const HEADER_LEN: usize = 8;
+
 #[cfg(feature = "deprecated-layout")]
 pub fn read_discriminator(data: &[u8]) -> &[u8; 8] {
     array_ref![data, 0, 8]
@@ -30,11 +32,11 @@ pub fn create_discriminator(account_name: &str, namespace: Option<&str>) -> [u8;
 
 // Header is 8 bytes regardless of layout.
 pub fn read_data(account_data: &[u8]) -> &[u8] {
-    &account_data[8..]
+    &account_data[HEADER_LEN..]
 }
 
 pub fn read_data_mut(account_data: &mut [u8]) -> &mut [u8] {
-    &mut account_data[8..]
+    &mut account_data[HEADER_LEN..]
 }
 
 pub fn write_discriminator(account_data: &mut [u8], discriminator: &[u8]) {