FAQ & Fehlerbehebung
Ist das Mainnet live?
Ja. Das Mainnet ist live (Chain-ID qorechain-vladi). Das Testnet-Preset
(qorechain-diana) bleibt ebenfalls verfügbar. Beide Presets werden mit
Localhost-Endpoint-Standardwerten ausgeliefert; wählen Sie das Netzwerk mit
createClient({ network: "mainnet" }) und überschreiben Sie endpoints mit den
URLs Ihres Nodes. Siehe
Netzwerk & Endpoints.
Warum gehen meine Aufrufe an localhost?
createClient() verwendet standardmäßig localhost-Endpoints. Um mit einem
echten Node zu kommunizieren, übergeben Sie ein endpoints-Objekt:
const client = createClient({
endpoints: {
rest: "https://api-testnet.qore.host",
rpc: "https://rpc-testnet.qore.host",
evmRpc: "https://evm-testnet.qore.host",
},
});
Der Signierpfad (connectTx) benötigt den Konsens-Endpoint rpc;
CosmWasm-Lesezugriffe verwenden ihn ebenfalls. REST-Lesezugriffe verwenden
rest; EVM- und qor_-Aufrufe verwenden evmRpc.
"Cannot find module 'viem'" / "'@solana/web3.js'"
Dies sind Peer-Dependencies von @qorechain/evm bzw. @qorechain/svm.
Installieren Sie sie in Ihrem Projekt:
npm i @qorechain/evm viem
npm i @qorechain/svm @solana/web3.js
Ein Precompile-Aufruf wirft "feature not present"
Die EVM-Precompiles existieren nur auf Nodes, die die QoreChain EVM Engine ausführen. Auf einem gewöhnlichen EVM-Node schlagen diese Aufrufe fehl. Wenn Sie heterogene Nodes ansprechen, kapseln Sie jeden Precompile-Aufruf und behandeln Sie den Fehler pro Aufruf.
Meine Beträge weichen um den Faktor eine Million ab
QOR hat 10^6 Basiseinheiten in uqor. Verwenden Sie toBase / fromBase
und führen Sie alle Berechnungen in Basiseinheiten durch:
toBase("1.5"); // "1500000"
fromBase("1500000"); // "1.5"
Beachten Sie, dass die EVM-Laufzeitumgebung QOR mit 18 Dezimalstellen
darstellt (EVM-Konvention), was sich von der Native-uqor-Basis von 10^6
unterscheidet.
Welche Pakete sind veröffentlicht, und wo?
Alle. Der TypeScript-Core (@qorechain/sdk), die EVM/SVM-Adapter
(@qorechain/evm, @qorechain/svm), das React-Kit (@qorechain/react) und der
create-qorechain-dapp-Scaffolder sind auf npm in Version 0.7.0; der
Python-Client ist auf PyPI (pip install qorechain-sdk in Version 0.7.0,
Import qorsdk); der Go-Client ist über den Module-Proxy verfügbar
(go get github.com/qorechain/qorechain-sdk/packages/go/..., Tag
packages/go/v0.7.0); und der Java-Client ist auf Maven Central
(io.github.qorechain:qorechain-sdk:0.7.0). Der Rust-Client ist auf crates.io
(cargo add qorechain-sdk) in der zuletzt veröffentlichten Crate-Version,
die derzeit hinter 0.7.0 zurückliegt — installieren Sie von crates.io oder aus
dem Repo. Siehe Installation für die vollständigen Befehle pro
Sprache.
Meine Mnemonic wird abgelehnt
Das SDK validiert sowohl die BIP-39-Wortliste als auch die Prüfsumme, bevor
ein Schlüssel abgeleitet wird — eine Phrase mit Tippfehler löst also einen
Fehler aus, statt stillschweigend das falsche Konto zu erzeugen. Prüfen Sie die
Wörter erneut; verwenden Sie validateMnemonic, um eine Phrase zu testen.
Hybride (PQC-)Transaktionen
Die hybride Einreichung (klassisch + ML-DSA-87) ist auf dem Native-Pfad live
und verpflichtend — rein klassische Native-Transaktionen werden on-chain
abgelehnt (Chain v3.1.85). Bevor eine hybride Tx PQC-verifiziert wird, muss der
öffentliche PQC-Schlüssel des Signierers registriert sein
(MsgRegisterPQCKeyV2), oder Sie setzen includePqcPublicKey: true, um ihn für
die automatische Registrierung bei der ersten Verwendung einzubetten. Die Chain
akzeptiert ausschließlich deterministische ML-DSA-87-Signaturen (das SDK
signiert seit 0.5.1 standardmäßig deterministisch); hedged-Signaturen schlagen
mit pqc-Code 21 (hybrid_verify_failed) fehl. Siehe
Konten & PQC-Signierung.
Meine hybriden Transaktionen scheitern bei CheckTx mit einem Tx-Parse-Fehler
Aktualisieren Sie das SDK. Die Versionen 0.6.0 und früher haben die
Tx-Body-Erweiterung /qorechain.pqc.v1.PQCHybridSignature JSON-serialisiert,
was der Tx-Decoder der Chain bei CheckTx ablehnt. Seit 0.6.1 ist die
Erweiterung protobuf-kodiert (der Wert beginnt mit 0x08) — in allen fünf
Sprachen. Hybride Transaktionen, die mit älteren Versionen erstellt wurden,
werden on-chain abgelehnt, und zwar in jeder Lane (einschließlich eth-native).
Meine Authenticator-Ausgabe wird mit authenticator_replay abgelehnt
Die Nonce ist falsch. MsgExecuteEVM.nonce muss die aktuelle EVM-Nonce des
Kontos sein (der Relayer ist ein anderes Konto, also nicht 1 addieren);
MsgExecuteCosmos.nonce ist die Sequenz pro Authenticator für
(account, pubkey), ein separater Store-Zähler. Rufen Sie den Wert erneut ab
und signieren Sie neu. Andere Authenticator-Fehler lassen sich über
decodeTxError dekodieren: abstractaccount-Codes 5
(spending_limit_exceeded), 6 (session_key_expired) und
10 (permission_denied). Siehe
Authenticators & delegiertes Ausgeben.