Skip to content

Commit d5aff1a

Browse files
AIQnetLabclaude
andcommitted
feat: metered WASM compute, QRC-20 token UX, audit fixes; untrack issuer keypair
Node / core: - Meter WASM execution by consumed fuel: symmetric sender-refund / producer-credit move (supply-conserving); validator recompute byte-identical to producer fill loop. - Enforce per-block BLOCK_FUEL_LIMIT over reserved fuel at both producer-fill and verify. - QRC-20 deploy charges storage deposit; refund fails loud on underfunded escrow. - mempool included_tx_hashes gains a hard count cap (anti-OOM) atop the age window. - Reject dormant Swap tx at RPC and gossip admission. - Emit token total_supply / balance as JSON strings (u64 > 2^53 precision). - Return msg.value to caller on VM trap / over-cap. Clients: - Mobile: import held + custom QRC-20 tokens, send QRC-20 (BigInt/string-safe). - Explorer: address token holdings, token page + directory, tx-type decode, real per-IP rate limiting (fail-closed on mainnet misconfig). - Wallet extension: wire popup Send to background sendTransaction (QNC). Repo hygiene: - Untrack infrastructure/config/issuer_keypair.json (kept on disk; now gitignored). - Repair .gitignore UTF-16 corruption that silenced the backups/ rule. - Ignore build artifacts (*.rlib, *.tsbuildinfo). - Remove dead subsystems; correct docs to pure-Dilithium and metered fee model. Validated: cargo check clean; qnet-state 114, qnet-integration 200, qnet-mempool 2 lib tests green; adversarial fee-metering review 7/7 refuted. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 9f3263f commit d5aff1a

158 files changed

Lines changed: 26694 additions & 14816 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -596,16 +596,16 @@ testing/integration/*/IDENTITY
596596
testing/integration/*/LOCK
597597
testing/integration/*/LOG*
598598
testing/integration/*/MANIFEST-*
599-
testing/integration/*/OPTIONS-*b a c k u p s /
600-
601-
599+
testing/integration/*/OPTIONS-*backups/
600+
601+
602602
# Private scripts (not for public distribution)
603603
scripts/install-genesis.sh
604-
a s s e t s /
605-
606-
607-
608-
604+
assets/
605+
606+
applications/qnet-mobile/android/gradle/wrapper/gradle-*-bin/
607+
608+
609609
# QNet Explorer - Local data
610610
applications/qnet-explorer/frontend/node_data_local/
611611
applications/qnet-explorer/frontend/data/
@@ -674,5 +674,16 @@ infrastructure/nginx/ssl/*.pem
674674
infrastructure/nginx/ssl/*.key
675675
infrastructure/nginx/ssl/*.crt
676676

677+
# Secret keypair (contains private_key_b58) — must NEVER be tracked
678+
infrastructure/config/issuer_keypair.json
679+
**/issuer_keypair.json
680+
677681
# overnight audit scaffolding + findings (local, do not track)
678682
audit-overnight/
683+
684+
# local scratch (workflow scripts, temp captures) — never track
685+
dev-scratch/
686+
687+
# Build artifacts (never track)
688+
*.rlib
689+
*.tsbuildinfo

Cargo.lock

Lines changed: 165 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ members = [
55
"core/qnet-mempool",
66
"core/qnet-state",
77
"core/qnet-sharding",
8+
"core/qnet-vm",
89
"development/qnet-integration",
910
"audit"
1011
]

0 commit comments

Comments
 (0)