Aller au contenu principal
iCute FinanceACTIFS NUMÉRIQUES · OBSERVATION DU MARCHÉ
Français
Répertoire de recherche
iCute Finance

Navigation principale

Navigation principale

ACTIFS NUMÉRIQUES · OBSERVATION DU MARCHÉ

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

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

Voir la source CC BY-SA 4.0