Ruka hadi maudhui makuu
ZYGY Research ZYGY ResearchJukwaa la utafiti wa mali dijitali
Kiswahili
← Maktaba ya maswali
technology

InstructionFallbackNotFound. Namba ya Hitilafu: 101. Ujumbe wa Hitilafu: Vitendaji vya Fallback havitumiki

Jibu

Lazima utoe instruction discriminator kwenye data ya transaction yako kama Ademola alivyotaja.
Unachoweza kufanya ni kuchukua instruction discriminator kisha kuiambatanisha na data yako katika bytes 8 za kwanza.
Chukua Instruction Discriminator katika 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"));

Chukua Discriminator Instruction Katika 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 inapaswa kuwa global
Hapa kuna mfano katika Typescript
// Tengeneza InstructionBuffer
const ixBuffer = sighash('global','initialize');

const instructionBuffer = Buffer.concat([
ixBuffer, // namespace+method_name
OtherBuffer, // Data Nyingine unayotaka kuipeleka kwenye instruction.
])

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

solanaTazama asiliCC BY-SA 4.0

Vinjari maswali zaidi