مرکزی مواد پر جائیں
ZYGY Research ZYGY Researchڈیجیٹل اثاثہ جات تحقیقی پلیٹ فارم
اردو
← سوالات کی لائبریری
technology

ہدایت فال بیک نہیں ملا۔ خرابی نمبر: 101۔ خرابی کا پیغام: فال بیک فنکشنز معاون نہیں ہیں

جواب

آپ کو اپنی ٹرانزیکشن کے ڈیٹا میں instruction discriminator فراہم کرنا ہوگا جیسا کہ Ademola نے ذکر کیا ہے۔
آپ یہ کر سکتے ہیں کہ instruction discriminator حاصل کریں پھر اسے اپنے ڈیٹا کے پہلے 8 bytes میں شامل کریں۔
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

مزید سوالات براؤز کریں