Armani Ferrante há 3 anos atrás
pai
commit
d62cb0e03e

+ 2 - 6
lang/attribute/account/src/lib.rs

@@ -115,10 +115,6 @@ pub fn account(
         format!("{:?}", discriminator).parse().unwrap()
     };
 
-    let disc_bytes = quote! {
-        let given_disc = anchor_lang::accounts::header::read_discriminator(&buf);
-    };
-
     let disc_fn = {
         if cfg!(feature = "deprecated-layout") {
             quote! {
@@ -163,7 +159,7 @@ pub fn account(
                         if buf.len() < 8 {
                             return Err(anchor_lang::__private::ErrorCode::AccountDiscriminatorNotFound.into());
                         }
-                        #disc_bytes
+                        let given_disc = anchor_lang::accounts::header::read_discriminator(&buf);
                         if &#discriminator != given_disc {
                             return Err(anchor_lang::__private::ErrorCode::AccountDiscriminatorMismatch.into());
                         }
@@ -204,7 +200,7 @@ pub fn account(
                         if buf.len() < #discriminator.len() {
                             return Err(anchor_lang::__private::ErrorCode::AccountDiscriminatorNotFound.into());
                         }
-                        #disc_bytes
+                        let given_disc = anchor_lang::accounts::header::read_discriminator(&buf);
                         if &#discriminator != given_disc {
                             return Err(anchor_lang::__private::ErrorCode::AccountDiscriminatorMismatch.into());
                         }

+ 1 - 1
lang/syn/src/codegen/accounts/constraints.rs

@@ -530,7 +530,7 @@ fn generate_constraint_init(f: &Field, c: &ConstraintInitGroup) -> proc_macro2::
                         let account_ty = f.account_ty();
                         quote! {
                             {
-
+                                use anchor_lang::Discriminator;
                                 let mut __data = actual_field.try_borrow_mut_data()?;
                                 anchor_lang::accounts::header::write_discriminator(
                                     &mut __data,

+ 1 - 0
lang/syn/src/codegen/program/handlers.rs

@@ -204,6 +204,7 @@ pub fn generate(program: &Program) -> proc_macro2::TokenStream {
                 let ix_name_log = format!("Instruction: {}", ix_name);
                 let header_write = quote! {
                     {
+                        use anchor_lang::Discriminator;
                         let mut __data = ctor_accounts.to.try_borrow_mut_data()?;
                         anchor_lang::accounts::header::write_discriminator(
                             &mut __data,