Questions et réponses

InstructionFallbackNotFound. Numéro d'erreur : 101. Message d'erreur : les fonctions de secours ne sont pas prises en charge

Taille du texte

Vous devez fournir le discriminateur d'instructions aux données de votre transaction comme l'a mentionné Ademola. Ce que vous pouvez faire est de récupérer le discriminateur d'instructions, puis de l'ajouter à vos données dans les 8 premiers octets. Récupérer le discriminateur d'instructions dans Rust pub fn sighash(espace de noms : &str, nom : &str) -> [u8; 8] { let preimage = format!("{}:{}", espace de noms, nom);

laissez mut soupirer = [0u8; 8]; soupir.copy_from_slice( &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() [..8], ); soupir }

println!("{:?}", sighash("global", "initialize"));

Récupérer l'instruction du discriminateur en dactylographié function sighash (nameSpace : string, ixName : string) : Buffer { let nom = serpentCase(ixName); laissez préimage = `${nameSpace}:${name}`; return Buffer.from(sha256.digest(preimage)).slice(0, 8); }

l'espace de noms doit être global Voici un exemple dans Typescript // Création du InstructionBuffer const ixBuffer = sighash('global','initialize');

const instructionBuffer = Buffer.concat([ ixBuffer, // espace de noms+nom_méthode OtherBuffer, // Autres données que vous souhaitez transmettre à l'instruction. ])

// Créez l'instruction const transactionInstruction = nouvelle TransactionInstruction({ ID de programme : adresse de programme, données : instructionBuffer, touches : [ ... ] })

Continuer l'explorationCatalogue de donnéesRechercher