InstructionFallbackNotFound. Nombor Ralat: 101. Mesej Ralat: Fungsi fallback tidak disokong
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 : [
...
]
})
solanaLihat asalCC BY-SA 4.0