İşleminizin verilerine Ademola'nın bahsettiği gibi talimat ayırıcısını sağlamanız gerekmektedir. Yapabileceğiniz şey, talimat ayırıcıyı alıp onu ilk 8 bayttaki verilerinize eklemektir. Rust'ta Talimat Ayırıcıyı Getir pub fnighash(ad alanı: &str, isim: &str) -> [u8; 8] { let preimage = format!("{}:{}", ad alanı, ad);
Let Mut Sighash = [0u8; 8]; ighash.copy_from_slice( &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() [..8], ); iç çekiş }
println!("{:?}", Sighash("genel", "başlat"));
Daktiloda Ayırıcı Talimatını Getir function Sighash(nameSpace: string, ixName: string): Tampon { let isim = yılanCase(ixName); let preimage = `${nameSpace}:${name}`; return Buffer.from(sha256.digest(preimage)).slice(0, 8); }
ad alanı küresel olmalıdır İşte TypeScript'te bir örnek // InstructionBuffer'ı oluşturun const ixBuffer =ighash('global','initialize');
const talimatBuffer = Buffer.concat([ ixBuffer, // ad alanı+yöntem_adı OtherBuffer, // Diğer Komuta iletmek istediğiniz veriler. ])
// Talimatı hazırla const transactionInstruction = new TransactionInstruction({ programId: programAdresi, veri: talimatBuffer, tuşlar : [ ... ] })