SSS ve sorun giderme
Mainnet yayında mı?
Evet. Mainnet yayında (zincir kimliği qorechain-vladi). Testnet hazır ayarı
(qorechain-diana) da kullanılabilir durumda kalmaya devam eder. Her iki hazır
ayar da localhost uç nokta varsayılanlarıyla gelir; ağı
createClient({ network: "mainnet" }) ile seçin ve endpoints'i kendi düğüm
URL'lerinizle geçersiz kılın.
Ağ ve uç noktalar bölümüne bakın.
Neden çağrılarım localhost'a gidiyor?
createClient() varsayılan olarak localhost uç noktalarını kullanır. Gerçek
bir düğümle konuşmak için bir endpoints nesnesi geçirin:
const client = createClient({
endpoints: {
rest: "https://api-testnet.qore.host",
rpc: "https://rpc-testnet.qore.host",
evmRpc: "https://evm-testnet.qore.host",
},
});
İmzalama yolu (connectTx) konsensüs rpc uç noktasına ihtiyaç duyar;
CosmWasm okumaları da onu kullanır. REST okumaları rest kullanır; EVM ve
qor_ çağrıları evmRpc kullanır.
"Cannot find module 'viem'" / "'@solana/web3.js'"
Bunlar sırasıyla @qorechain/evm ve @qorechain/svm paketlerinin eş
bağımlılıklarıdır (peer dependency). Bunları projenize kurun:
npm i @qorechain/evm viem
npm i @qorechain/svm @solana/web3.js
Bir precompile çağrısı "feature not present" hatası veriyor
EVM precompile'ları yalnızca QoreChain EVM Engine çalıştıran düğümlerde bulunur. Düz bir EVM düğümünde bu çağrılar başarısız olur. Heterojen düğümleri hedefliyorsanız her precompile çağrısını sarmalayın ve hatayı çağrı bazında ele alın.
Tutarlarım bir milyon kat sapıyor
QOR'un temel birimi 10^6 uqor'dur. toBase / fromBase kullanın ve tüm
hesaplamaları temel birimlerde yapın:
toBase("1.5"); // "1500000"
fromBase("1500000"); // "1.5"
EVM çalışma zamanının QOR'u 18 ondalık basamakla temsil ettiğini unutmayın
(EVM geleneği); bu, Native tarafındaki 10^6'lık uqor tabanından farklıdır.
Hangi paketler yayımlandı ve nerede?
Hepsi. TypeScript çekirdeği (@qorechain/sdk), EVM/SVM adaptörleri
(@qorechain/evm, @qorechain/svm), React kiti (@qorechain/react) ve
create-qorechain-dapp iskele aracı npm'de 0.7.0 sürümünde; Python istemcisi
PyPI'da (pip install qorechain-sdk, sürüm 0.7.0, import qorsdk); Go
istemcisi modül proxy'sinde
(go get github.com/qorechain/qorechain-sdk/packages/go/..., etiket
packages/go/v0.7.0); Java istemcisi ise Maven Central'da
(io.github.qorechain:qorechain-sdk:0.7.0). Rust istemcisi crates.io'da
(cargo add qorechain-sdk) yayımlanmış en son crate sürümündedir; bu sürüm
şu anda 0.7.0'ın gerisindedir — crates.io'dan veya depodan kurun. Dil başına
tüm komutlar için Kurulum bölümüne bakın.
Anımsatıcı ifadem (mnemonic) reddediliyor
SDK, herhangi bir anahtar türetmeden önce hem BIP-39 kelime listesini hem
de sağlama toplamını doğrular; böylece yazım hatası içeren bir ifade sessizce
yanlış hesabı üretmek yerine hata fırlatır. Kelimeleri yeniden kontrol edin;
bir ifadeyi test etmek için validateMnemonic kullanın.
Hibrit (PQC) işlemler
Hibrit (klasik + ML-DSA-87) gönderim Native yolunda yayında ve zorunludur —
yalnızca klasik imzalı Native işlemler zincir üzerinde reddedilir (zincir
v3.1.85). Bir hibrit işlemin PQC doğrulamasından geçebilmesi için imzalayanın
PQC açık anahtarının kayıtlı olması gerekir (MsgRegisterPQCKeyV2); ya da ilk
kullanımda otomatik kayıt için anahtarı gömmek üzere
includePqcPublicKey: true ayarlayabilirsiniz.
Zincir yalnızca deterministik ML-DSA-87 imzalarını kabul eder (SDK, 0.5.1
sürümünden beri varsayılan olarak deterministik imzalar); hedged imzalar pqc
kodu 21 (hybrid_verify_failed) ile başarısız olur.
Hesaplar ve PQC imzalama bölümüne bakın.
Hibrit işlemlerim CheckTx aşamasında tx ayrıştırma hatasıyla başarısız oluyor
SDK'yı yükseltin. 0.6.0 ve önceki sürümler
/qorechain.pqc.v1.PQCHybridSignature tx gövdesi uzantısını JSON olarak
serileştiriyordu ve zincirin tx kod çözücüsü bunu CheckTx aşamasında reddeder.
0.6.1 sürümünden itibaren uzantı beş dilin tümünde protobuf ile kodlanır
(değer 0x08 ile başlar) — eski sürümlerle oluşturulan hibrit işlemler, her
şeritte (eth-native dahil) zincir üzerinde reddedilir.
Authenticator harcamam authenticator_replay ile reddediliyor
Nonce yanlış. MsgExecuteEVM.nonce, hesabın güncel EVM nonce'u olmalıdır
(relayer farklı bir hesaptır, bu yüzden 1 eklemeyin);
MsgExecuteCosmos.nonce ise (account, pubkey) için authenticator başına
sıra numarasıdır ve ayrı bir depo sayacıdır. Değeri yeniden alın ve yeniden
imzalayın. Diğer authenticator hataları decodeTxError ile çözümlenir:
abstractaccount kodları 5 (spending_limit_exceeded), 6
(session_key_expired) ve 10 (permission_denied).
Authenticator'lar ve yetkilendirilmiş harcama
bölümüne bakın.