Aller au contenu principal

FAQ & dépannage

Le mainnet est-il en service ?

Oui. Le mainnet est en service (chain id qorechain-vladi). Le préréglage testnet (qorechain-diana) reste également disponible. Les deux préréglages sont livrés avec des points de terminaison localhost par défaut ; sélectionnez le réseau avec createClient({ network: "mainnet" }) et remplacez endpoints par les URL de vos nœuds. Voir Réseau & points de terminaison.

Pourquoi mes appels atteignent-ils localhost ?

createClient() utilise par défaut les points de terminaison localhost. Pour communiquer avec un vrai nœud, passez un objet endpoints :

const client = createClient({
endpoints: {
rest: "https://api-testnet.qore.host",
rpc: "https://rpc-testnet.qore.host",
evmRpc: "https://evm-testnet.qore.host",
},
});

Le chemin de signature (connectTx) nécessite le point de terminaison rpc du consensus ; les lectures CosmWasm l'utilisent également. Les lectures REST utilisent rest ; les appels EVM et qor_ utilisent evmRpc.

« Cannot find module 'viem' » / « '@solana/web3.js' »

Ce sont des dépendances de pairs (peer dependencies) de @qorechain/evm et @qorechain/svm respectivement. Installez-les dans votre projet :

npm i @qorechain/evm viem
npm i @qorechain/svm @solana/web3.js

Un appel de précompilé lève « feature not present »

Les précompilés EVM n'existent que sur les nœuds exécutant le QoreChain EVM Engine. Sur un nœud EVM ordinaire, ces appels échouent. Si vous ciblez des nœuds hétérogènes, encapsulez chaque appel de précompilé et gérez l'erreur appel par appel.

Mes montants sont décalés d'un facteur d'un million

QOR possède 10^6 unités de base uqor. Utilisez toBase / fromBase et effectuez tous les calculs en unités de base :

toBase("1.5"); // "1500000"
fromBase("1500000"); // "1.5"

Notez que le runtime EVM représente QOR avec 18 décimales (convention EVM), ce qui est distinct de la base Native uqor de 10^6.

Quels paquets sont publiés, et où ?

Tous. Le cœur TypeScript (@qorechain/sdk), les adaptateurs EVM/SVM (@qorechain/evm, @qorechain/svm), le kit React (@qorechain/react) et le générateur de projets create-qorechain-dapp sont sur npm en 0.7.0 ; le client Python est sur PyPI (pip install qorechain-sdk en 0.7.0, import qorsdk) ; le client Go est sur le proxy de modules (go get github.com/qorechain/qorechain-sdk/packages/go/..., tag packages/go/v0.7.0) ; et le client Java est sur Maven Central (io.github.qorechain:qorechain-sdk:0.7.0). Le client Rust est sur crates.io (cargo add qorechain-sdk) à la dernière version de crate publiée, qui est actuellement en retard sur 0.7.0 — installez-le depuis crates.io ou depuis le dépôt. Voir Installation pour les commandes complètes par langage.

Ma phrase mnémonique est rejetée

Le SDK valide à la fois la liste de mots BIP-39 et la somme de contrôle avant de dériver la moindre clé, de sorte qu'une phrase comportant une faute de frappe lève une erreur au lieu de produire silencieusement le mauvais compte. Revérifiez les mots ; utilisez validateMnemonic pour tester une phrase.

Transactions hybrides (PQC)

La soumission hybride (classique + ML-DSA-87) est en service et obligatoire sur le chemin Native — les transactions Native uniquement classiques sont rejetées on-chain (chaîne v3.1.85). Avant qu'une tx hybride ne passe la vérification PQC, la clé publique PQC du signataire doit être enregistrée (MsgRegisterPQCKeyV2), ou vous pouvez définir includePqcPublicKey: true pour l'intégrer en vue d'un enregistrement automatique à la première utilisation. La chaîne n'accepte que les signatures ML-DSA-87 déterministes (le SDK signe de manière déterministe par défaut depuis 0.5.1) ; les signatures « hedged » échouent avec le code pqc 21 (hybrid_verify_failed). Voir Comptes & signature PQC.

Mes transactions hybrides échouent à CheckTx avec une erreur d'analyse de tx

Mettez à jour le SDK. Les versions 0.6.0 et antérieures sérialisaient en JSON l'extension de corps de tx /qorechain.pqc.v1.PQCHybridSignature, que le décodeur de tx de la chaîne rejette à CheckTx. Depuis 0.6.1, l'extension est encodée en protobuf (la valeur commence par 0x08) dans les cinq langages — les transactions hybrides construites avec des versions plus anciennes sont rejetées on-chain, dans toutes les voies (y compris eth-native).

Ma dépense via authenticator est rejetée avec authenticator_replay

Le nonce est incorrect. MsgExecuteEVM.nonce doit être le nonce EVM courant du compte (le relayeur est un compte différent, donc n'ajoutez pas 1) ; MsgExecuteCosmos.nonce est la séquence par authenticator pour (account, pubkey), un compteur de stockage distinct. Récupérez à nouveau la valeur et re-signez. Les autres échecs d'authenticator se décodent via decodeTxError : codes abstractaccount 5 (spending_limit_exceeded), 6 (session_key_expired) et 10 (permission_denied). Voir Authenticators & dépenses déléguées.