پرش به محتوای اصلی
iCute Financeدارایی‌های دیجیتال · بررسی بازار
فارسی
فهرست پژوهش‌ها
iCute Finance

ناوبری اصلی

ناوبری اصلی

دارایی‌های دیجیتال · بررسی بازار

InstructionFallbackNotFound. شماره خطا: 101. پیام خطا: توابع بازگشتی پشتیبانی نمی‌شوند

شما باید discriminator دستورالعمل را به داده‌های تراکنش خود اضافه کنید، همان‌طور که Ademola اشاره کرده است. کاری که می‌توانید انجام دهید این است که discriminator دستورالعمل را واکشی کنید و سپس آن را در ۸ بایت اول به داده‌های خود اضافه کنید. واکشی Instruction Discriminator در 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"));

واکشی Discriminator Instruction در 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 باید 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 : [ ... ] })

مشاهده منبع CC BY-SA 4.0