Lewati ke konten utama
ZYGY Research ZYGY ResearchPlatform riset aset digital
Bahasa Indonesia
← Perpustakaan pertanyaan
technology

InstructionFallbackNotFound. Nomor Error: 101. Pesan Error: Fungsi fallback tidak didukung

Jawaban

Anda harus memberikan instruction discriminator ke data transaksi Anda seperti yang telah disebutkan oleh Ademola.
Yang dapat Anda lakukan adalah mengambil instruction discriminator lalu menambahkannya ke data Anda pada 8 byte pertama.
Ambil Instruction Discriminator di 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 di 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 harus global
Berikut adalah contoh di Typescript
// Craft the InstructionBuffer
const ixBuffer = sighash('global','initialize');

const instructionBuffer = Buffer.concat([
ixBuffer, // namespace+method_name
OtherBuffer, // Other Data that you want to pass to the instruction.
])

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

solanaLihat asliCC BY-SA 4.0

Jelajahi pertanyaan lainnya