முதன்மை உள்ளடக்கத்திற்குச் செல்
iCute Financeடிஜிட்டல் சொத்துகள் · சந்தைக் கண்ணோட்டம்
தமிழ்
ஆய்வு அடைவு
iCute Finance

முதன்மை வழிசெலுத்தல்

முதன்மை வழிசெலுத்தல்

டிஜிட்டல் சொத்துகள் · சந்தைக் கண்ணோட்டம்

வழிமுறை கிடைக்கவில்லை. பிழை எண்: 101. பிழை செய்தி: வழிமுறைகள் ஆதரிக்கப்படவில்லை

Ademola கூறியது போல, உங்கள் transaction-இன் data-வுக்கு instruction discriminator-ஐ நீங்கள் வழங்க வேண்டும். நீங்கள் செய்யக்கூடியது, instruction discriminator-ஐ fetch செய்து, அதை உங்கள் data-வின் முதல் 8 bytes-இல் append செய்வதுதான். Rust-இல் Instruction Discriminator-ஐ Fetch செய்யவும் 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-ஐ Fetch செய்யவும் 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