Soalan dan jawapan

InstructionFallbackNotFound. Nombor Ralat: 101. Mesej Ralat: Fungsi fallback tidak disokong

Saiz teks

Anda perlu memberikan instruction discriminator pada data transaksi anda seperti yang telah disebut oleh Ademola. Apa yang boleh anda lakukan ialah ambil instruction discriminator kemudian tambahkan pada data anda dalam 8 bytes pertama. Ambil Instruction Discriminator dalam 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"));

Ambil Discriminator Instruction Dalam 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 sepatutnya global Berikut adalah contoh dalam Typescript // Craft the InstructionBuffer const ixBuffer = sighash('global','initialize');

const instructionBuffer = Buffer.concat([ ixBuffer, // namespace+method_name OtherBuffer, // Other Data yang anda mahu hantar ke instruction. ])

// Craft the Instruction const transactionInstruction = new TransactionInstruction({ programId: programAddress, data: instructionBuffer, keys : [ ... ] })

Terus menerokaKatalog dataCari