ਸਵਾਲ ਅਤੇ ਜਵਾਬ

InstructionFallbackNotFound। ਗਲਤੀ ਨੰਬਰ: 101। ਗਲਤੀ ਸੁਨੇਹਾ: ਫਾਲਬੈਕ ਫੰਕਸ਼ਨਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ

ਟੈਕਸਟ ਆਕਾਰ

ਤੁਹਾਨੂੰ ਆਪਣੇ ਟ੍ਰਾਂਜ਼ੈਕਸ਼ਨ ਦੇ ਡੇਟਾ ਨੂੰ ਇੰਸਟ੍ਰਕਸ਼ਨ ਡਿਸਕ੍ਰਿਮਿਨੇਟਰ ਦੇਣਾ ਪਵੇਗਾ, ਜਿਵੇਂ ਕਿ Ademola ਨੇ ਜ਼ਿਕਰ ਕੀਤਾ ਹੈ। ਤੁਸੀਂ ਇਹ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਇੰਸਟ੍ਰਕਸ਼ਨ ਡਿਸਕ੍ਰਿਮਿਨੇਟਰ ਫੈਚ ਕਰੋ ਅਤੇ ਫਿਰ ਇਸਨੂੰ ਆਪਣੇ ਡੇਟਾ ਦੇ ਪਹਿਲੇ 8 ਬਾਈਟਸ ਵਿੱਚ ਐਪੈਂਡ ਕਰੋ। 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"));

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 : [ ... ] })

ਖੋਜ ਜਾਰੀ ਰੱਖੋਡਾਟਾ ਕੈਟਾਲਾਗਖੋਜ