মূল কন্টেন্টে যান
ZYGY Research ZYGY Researchডিজিটাল সম্পদ গবেষণা প্ল্যাটফর্ম
বাংলা
← প্রশ্ন লাইব্রেরি
technology

InstructionFallbackNotFound। ত্রুটি নম্বর: 101। ত্রুটি বার্তা: ফলব্যাক ফাংশন সমর্থিত নয়

উত্তর

আপনাকে আপনার ট্রানজেকশনের ডেটাতে instruction discriminator প্রদান করতে হবে, যেমনটি Ademola উল্লেখ করেছেন।
আপনি যা করতে পারেন তা হলো instruction discriminator ফেচ করে তা আপনার ডেটার প্রথম 8 বাইটে অ্যাপেন্ড করা।
Rust-এ Instruction Discriminator ফেচ করা
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"));

typescript-এ Discriminator Instruction ফেচ করা
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 হওয়া উচিত global
এখানে 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 : [
...
]
})

solanaমূল দেখুনCC BY-SA 4.0

আরও প্রশ্ন ব্রাউজ করুন