O ní láti pèsè ìdánimọ̀ ìtọ́nisọ́nà sí dátà ìṣòwò rẹ gẹ́gẹ́ bí Ademola ti dárúkọ. Ohun tí o lè ṣe ni gbé ìdánimọ̀ ìtọ́nisọ́nà wá kí o sì fi kún dátà rẹ ní báìtì 8 àkọ́kọ́. Gbé Ìdánimọ̀ Ìtọ́nisọ́nà wá ní Rust pub fn sighash(namespace: &str, name: &str) -> [u8; 8] { let preimage = format!("{}:{}", namespace, name);
let mut sighash = [0u8; 8]; sighash.copy_from_slice( &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() [..8], ); sighash }
println!("{:?}", sighash("global", "initialize"));
Gbé Ìtọ́nisọ́nà Ìdánimọ̀ wá ní typescript function sighash(nameSpace: string, ixName: string): Buffer { let name = snakeCase(ixName); let preimage = `${nameSpace}:${name}`; return Buffer.from(sha256.digest(preimage)).slice(0, 8); }
namespace yẹ kí ó jẹ́ global Àpẹẹrẹ kan ní Typescript // Ṣe InstructionBuffer const ixBuffer = sighash('global','initialize');
const instructionBuffer = Buffer.concat([ ixBuffer, // namespace+method_name OtherBuffer, // Dátà mìíràn tí o fẹ́ fi ránṣẹ́ sí ìtọ́nisọ́nà. ])
// Ṣe Ìtọ́nisọ́nà const transactionInstruction = new TransactionInstruction({ programId: programAddress, data: instructionBuffer, keys : [ ... ] })