Skip to content

xchain-decoder: Kaspa support (touches 7 existing file(s)) - #26

Open
midnest wants to merge 1 commit into
XChain-Platform:developfrom
midnest:kaspa-support
Open

midnest wants to merge 1 commit into
XChain-Platform:developfrom
midnest:kaspa-support

Conversation

@midnest

@midnest midnest commented Oct 13, 2026 •

Copy link
Copy Markdown

What this changes

Adds Kaspa support to xchain-decoder: 23 new file(s) and 7 existing file(s) touched for registration/wiring.
The existing files are registrations and interface substitutions only — no behaviour change for other chains.

How it was verified

The full submission README (what was done, what was verified, what was not) and the
manifest with per-file line counts + md5 are in a comment on #26. Nothing else to open.

  • Real chain, end to end: on testnet-10 the action SEND|0|XCHAIN|1 was published and read back
    byte-for-byte by this same decoder — the on-chain payload is 19 bytes of ciphertext
    (tx 4a75ff5d149b79aed03c3bb9bcf95a4be939bf51466e1c446b7ce2118f323157, block 014e03ad…);
    on-chain settlement reconciled to the sompi against the fee the builder reported (671,320 sompi).
  • Carrier fidelity: all 19 vectors / 18 actions in action-roundtrip-golden.json survive unchanged.
  • Suites: unit 76 · integration 2 (real MariaDB) · fuzz 4912 iterations / 691 decoded / 0 failures ·
    chaos 40 reorg sequences / 0 failures · benchmarks · e2e (skip-guarded). Twelve defects found and
    fixed while building this; each is pinned by a test, and the pin names the check that caught it.

Not verified from here, stated plainly: your indexer has never consumed a database this adapter
wrote.
README section 4 lists that plus five smaller items. Point us at a branch and we will close it.

CI note: test/integration, test/fuzz, test/chaos, test/benchmarks and test/e2e are
standalone entries with their own seeds; integration and e2e skip loudly without a database or a node.

Contributor License Agreement

@CLAassistant

CLAassistant commented Oct 13, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@midnest

midnest commented Oct 13, 2026 •

Copy link
Copy Markdown
Author

Submission README

Kaspa chain adapter for XChain Platform — submission

Copyright © 2025–2026 Dankest, LLC · SPDX-License-Identifier: AGPL-3.0-or-later

This folder is the complete, self-contained submission for adding Kaspa support to XChain:
the decoder family, the transaction builder, the node module, the coin definition, the tests, and
the exact wiring points in existing files.

Everything below is measured. Where something is not verified, it says so.


1. What this is

XChain is a metalayer: it reads and writes structured data on existing blockchains without changing
them. Adding a chain means teaching the platform to (a) read that chain's actions out of a payload,
(b) project them into the platform's own schema, and (c) build signed transactions that carry
actions back out. This submission does that for Kaspa, and nothing else:

Area Files
Decoder family (read) src/xchain-decoder/src/chain/kaspa/*.js (6 files)
Platform part (assembly, stats, lifecycle) src/xchain-decoder/src/XChainDecoder/kaspa_sync.js
Builder (write, sign) src/xchain-encoder/src/build/kaspa_tx_builder.js
Node module (kaspad, no <coin>-cli) src/xchain-node/crypto_nodes/kaspa/*
Coin definition src/xchain-decoder/src/coins/KAS.js (registered in coins/index.js)
Mutation-testing config for the family src/xchain-decoder/stryker.kaspa.config.json
Tests src/xchain-decoder/test/**/kaspa/**, src/xchain-encoder/test/unit/build/, src/xchain-node/test/unit/crypto_nodes/

Kaspa is a Rust full node (kaspad) with a blockDAG, a native payload field, and no
<coin>-cli. That is why three platform部件 change shape for this chain (tip guard, version probe,
liveness): src/xchain-node/crypto_nodes/kaspa/kaspa_node.js documents each substitution with the
measurement behind it.

2. What was done, and what it cost to learn

Twelve defects were found and fixed while building this, each caught by a check that did not exist
before, and each now pinned by a test. The two that mattered most were found only by running against
real infrastructure — a real MariaDB, and the real testnet-10 chain:

# Defect Found by
1 Payloads were implemented against hand-written cleartext fixtures, not the node's real wire shape a live node
2 Non-action payloads (coinbase data) were written into the data column, which the indexer would log as PARSE_ERROR for every block a real database
3 DISPENSER_CLOSE was blanked by the storage gate before our own bookkeeping saw it, so dispensers never closed the gate's own test
4 A checkpoint from another network was accepted a cross-network test
5 The cursor was read from an optional response field, so it could never advance a real slice
6 The write floor could be overwritten by the checkpoint file (silent skipped rows) an existing pin
7 blocks/transactions/transaction_outputs were not idempotent: replaying a slice hit a primary-key error, which is not recoverable, so the reader stopped a real database
8 An unresolvable reorg was logged and then written anyway (silent divergence) a byte-level read of the control flow
9 The working set grew for the life of the process (memory + per-tick cost) reasoning over the code, then a 10-tick pin
10 The transaction cursor was rewound on a reorg, so a replacement transaction could overwrite a surviving row a real-database comparison of two runs
11 init() sat outside the retry loop: a node that was down at startup stopped the reader for good a closed-port probe
12 Money: the fee had only a lower bound (a swallowed change was returned as a receipt) and the change output was never re-checked adversarial fake SDKs

Two more were found on the live chain: a wasm SDK refusal arrives as a bare string, so the
operator saw undefined (fixed: the error now carries the action shape), and a valid build can fail
transiently with Storage mass exceeds maximum (fixed: a bounded retry that still refuses a
genuinely malformed action on the third attempt).

3. What is verified, and how

Run it yourself — every claim below has a command.

# unit + integration (decoder family, builder, node module)
cd src/xchain-decoder && node ../xchain-node/node_modules/mocha/bin/mocha.js test/unit/chain/kaspa/*.test.js
cd src/xchain-encoder && node ../xchain-node/node_modules/mocha/bin/mocha.js test/unit/build/kaspa_tx_builder.test.js
cd src/xchain-node    && node node_modules/mocha/bin/mocha.js test/unit/crypto_nodes/kaspa.test.js

# the database write path, against a REAL MariaDB (skips loudly when there is none)
cd src/xchain-decoder && node ../xchain-node/node_modules/mocha/bin/mocha.js \
    test/integration/kaspa/decoder_db_write.test.js

# mutation testing over the family (Stryker, thresholds matching xchain-node's config)
cd src/xchain-decoder && ./node_modules/.bin/stryker run stryker.kaspa.config.json
Layer What it is FOR State
test/unit/chain/kaspa/ (7 files) contracts: decode, project, plan, retry, checkpoint, lifecycle 91 passing
test/integration/kaspa/ the real schema: DDL applied, rows written, read back with SQL, indexer JOIN, replay idempotence 2 passing against MariaDB 11.4
test/fuzz/ 5000 seeded iterations of hostile decode input; either decodes with invariants or refuses with a message 4912 iterations, 691 decoded, 0 failures
test/chaos/ 40 seeded reorg sequences; determinism, no gaps in block_index, idempotence 0 failures
test/benchmarks/ per-round cost of the projection, so growth with history is visible as a trend prints ratio
test/e2e/ a live node + a real database, end to end; skips loudly without them SKIP here (no local node)
kaspa_action_roundtrip.test.js every canonical action the platform's own byte-level golden carries (19 vectors / 18 actions) survives our carrier byte-exactly 3 passing
kaspa_action_fit.test.js agreement with the platform's action wire, and one pinned divergence 3 passing
Stryker mutation score of the family modules 35–75% depending on file; below the platform's own low=70 for most

Real-chain evidence (scripts under kaspa/p0/, kept so any of this can be repeated):

  • a real §4.2-obfuscated action was published to testnet-10 and read back byte-for-byte by this
    decoder (payload on chain is 19 bytes of ciphertext; our decoder recovers SEND|0|XCHAIN|1);
  • the on-chain settlement was reconciled to the sompi: change + action output returned, and the
    difference equalled the builder's reported paidFee (671,320 sompi) exactly;
  • near-limit payloads: 15 → 512 bytes all build, mass and fee grow near-linearly.

4. What is NOT verified (read this before believing anything else)

  1. The platform's unmodified indexer has never consumed a database this adapter wrote. The
    decoder and the schema are tested against a real MariaDB, but not against the indexer that reads
    it. This is the largest remaining gap.
  2. No real reorg has been processed. Chaos tests simulate reorgs; producing a real one needs a
    Kaspa block producer, which is not part of this environment.
  3. Two load-bearing assumptions are unmeasured: accepted-set stability at low confirmation, and
    a utxoCommitment audit (a simnet node returns null for that field, so it needs a mainnet or
    testnet node).
  4. The mainnet chain-block rate has not been measured, so the default minConfirmationCount
    of 72000 has never been confirmed to be "about two hours" on mainnet.
  5. BTC ↔ KAS atomic swaps are impossible today — and this is structural, not a gap in this code:
    a swap needs a Kaspa-aware XChain instance on the Kaspa side, which is exactly what this
    submission provides but the platform has not merged yet.
  6. xchain-hub's own suite has never been run here (no node_modules in the checkout).

5. Wiring points in existing files

Section C of MANIFEST.md lists the five existing files this submission edits. Each change is a
registration or an interface substitution, never a behaviour change for other chains:

  • XChainBlockDecoder.js — a kaspa branch in the platform's switch;
  • coins/index.js — registers KAS.js;
  • resolve_coins.js — resolves KAS;
  • crypto_networks.js (three chain configs) — adds the Kaspa entry;
  • node services — the tip guard / version probe / liveness substitutions that the missing
    <coin>-cli forces.

Two conventions were followed deliberately and are worth a reviewer's attention:

  1. No cross-repo imports. The platform's repos pin their own halves without a sibling checkout
    (its golden fixture says so explicitly), so this adapter does not import the indexer's per-action
    parser. Where the two disagree, kaspa_action_fit.test.js records the divergence instead of
    inventing a second grammar.
  2. Per-action grammar is the indexer's job. Our pre-flight checks four things only — non-empty,
    contains a pipe, printable ASCII, and the assembled payload ceiling. It deliberately has no
    name-shape or arity rule: a short trailing form (SEND|0|XCHAIN|1, four fields) is accepted on
    chain, so an arity check would refuse valid actions. This was tried and reverted with evidence.

MANIFEST (per-file line counts + md5, computed from the current commits)

xchain-decoder

  .env.example                                                        56 lines  df13d7fd
  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           151 lines  d3d114ee
  CONTRIBUTING.md                                                    134 lines  03171bdb
  package-lock.json                                                 6427 lines  8735c055
  package.json                                                       111 lines  87cb2621
  src/XChainDecoder.js                                               351 lines  a7d5a459
  src/XChainDecoder/chain_integrity.js                               245 lines  cc608b77
  src/XChainDecoder/kaspa_sync.js                                    132 lines  79767321
  src/XChainDecoder/transaction_ingest.js                            345 lines  c5f1810e
  src/api.js                                                         392 lines  e817d2ba
  src/api/probe_routes.js                                            229 lines  69dfed2f
  src/chain/XChainBlockDecoder.js                                    187 lines  cb5b32ee
  src/chain/crypto_networks.js                                        98 lines  4a11fa68
  src/chain/kaspa/constants.js                                        67 lines  effd5c32
  src/chain/kaspa/kaspa_block_decoder.js                             250 lines  b805eb8f
  src/chain/kaspa/kaspa_ingest.js                                    367 lines  8cbd1425
  src/chain/kaspa/kaspa_node_client.js                               144 lines  ee81bbd9
  src/chain/kaspa/kaspa_service.js                                   498 lines  adce6c1b
  src/chain/kaspa/kaspa_store.js                                     190 lines  40b979b3
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/db/migration_preconditions.js                                  334 lines  be8058c3
  src/metrics/decoder_metrics.js                                     133 lines  fd871775
  src/protocol/batch_sub_command_capture.js                          219 lines  a9fad07b
  src/protocol/batch_sub_command_capture/dispenser_address_key.js     24 lines  f8e0223f
  src/protocol/batch_sub_command_capture/sub_commands.js             363 lines  d1f5bdfa
  stryker.kaspa.config.json                                           26 lines  ba577d35
  test/benchmarks/kaspa_ingest_bench.js                               75 lines  3549c7c5
  test/chaos/kaspa_reorg_chaos.js                                    162 lines  f96e51b7
  test/e2e/kaspa_simnet_live.js                                      157 lines  bcaaf0b7
  test/fixtures/kaspa/chain_block_with_payload.json                  500 lines  d5ddd998
  test/fuzz/kaspa_payload_fuzz.js                                    140 lines  64fadf82
  test/integration/kaspa/decoder_db_write.test.js                    169 lines  099c266c
  test/integration/raw_transaction_guard.test.js                     122 lines  0d54dcfd
  test/unit/batch_dispenser_registration.test/03_two_creates_on_the_same_operating_address_the_primary_key_collision.test.js   116 lines  cef5573c
  test/unit/batch_dispenser_registration.test/14_below_gate_collapse_frozen_reference.test.js   108 lines  148e69f0
  test/unit/chain/kaspa/kaspa_action_fit.test.js                      90 lines  5e3ff95a
  test/unit/chain/kaspa/kaspa_action_roundtrip.test.js                98 lines  425ee29f
  test/unit/chain/kaspa/kaspa_block_decoder.test.js                  279 lines  91a5a28c
  test/unit/chain/kaspa/kaspa_ingest.test.js                         142 lines  229eb96f
  test/unit/chain/kaspa/kaspa_node_client.test.js                    184 lines  7d27c799
  test/unit/chain/kaspa/kaspa_service.test.js                        306 lines  d986dfb2
  test/unit/chain/kaspa/kaspa_store.test.js                          380 lines  00f29147
  test/unit/chain/kaspa/kaspa_sync.test.js                           134 lines  6f212ecf
  test/unit/decoder_quarantine_signal.test.js                         91 lines  77f79542
  test/unit/dispenser_address_key.test.js                             56 lines  6ecd4177
  test/unit/migration_preconditions.test.js                          344 lines  967a4aee
  test/unit/migration_preconditions.test/01_widen_ids_baseline_predicate.test.js    93 lines  604b76ed
  test/unit/migration_runner.test/05_run_migrations_migration_preconditions.test.js   224 lines  eaead3b2
  test/unit/parse_loop_quarantine.test.js                            372 lines  0eaa4681
  test/unit/reorg_halt_clear.test/01_clear_confirms_on_read_back.test.js    63 lines  333793b3
  test/unit/reorg_halt_surface.test/01_empty_probe_answer_keeps_the_halt.test.js    75 lines  a9fd546d

xchain-encoder

  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           152 lines  ce344e60
  CONTRIBUTING.md                                                    114 lines  f35f61b8
  README.md                                                          211 lines  28fcc0d2
  docker-compose.yml                                                  37 lines  5f4f555e
  package-lock.json                                                 6771 lines  ae14d254
  package.json                                                        91 lines  fd5ee637
  src/XChainEncoder/build_transaction/fee_rates.js                   162 lines  38aec802
  src/XChainEncoder/build_transaction/input_candidates.js            270 lines  69c85ad8
  src/XChainEncoder/build_transaction/reveal_outputs.js              294 lines  1df3b058
  src/XChainEncoder/envelope_cancel.js                               284 lines  988a4115
  src/XChainEncoder/request_resolution.js                            244 lines  8e6549ab
  src/api.js                                                         374 lines  d840c4aa
  src/api/json_rpc_methods.js                                        400 lines  349b3b4f
  src/build/blockchain_connector/chain_identity.js                    65 lines  e62aec52
  src/build/blockchain_connector/node_queries.js                     193 lines  15df8942
  src/build/crypto_networks.js                                        95 lines  3252fa68
  src/build/kaspa_tx_builder.js                                      269 lines  f9de2963
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/common/config.js                                               103 lines  ae05dd95
  src/common/validator/constants.js                                  168 lines  586f3692
  src/common/validator/fee_and_utxo_checks.js                        289 lines  b53dc0eb
  src/common/validator/value_checks.js                               131 lines  b23d2994
  src/server/single_instance_guard.js                                392 lines  3285ca2d
  test/security/input_validation.test.js                             303 lines  b5fd5534
  test/unit/XChainEncoder/caller_pubkey_resolution.test.js           122 lines  5a279157
  test/unit/api/mainnet_prelaunch_refusal.test.js                    122 lines  524c1b80
  test/unit/api/node_tier_gate.test.js                                97 lines  b50fd856
  test/unit/api/status_node_tier.test.js                              82 lines  bde85b2e
  test/unit/build/kaspa_tx_builder.test.js                           322 lines  40cec924
  test/unit/chain_identity_genesis.test.js                            70 lines  f147b3ce
  test/unit/chain_identity_parity.test.js                             39 lines  1af1c8f1
  test/unit/common/validator/validator.test/08_validate_fee_per_kb.test.js    51 lines  b322e351
  test/unit/server/single_instance_guard.test/03_release_lock_on_signals.test.js   148 lines  23b0e427
  test/unit/xchain_encoder/xchain_encoder_fee_rate_cap.test.js       345 lines  28d85db1

xchain-node

  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           120 lines  87e9057d
  CONTRIBUTING.md                                                    129 lines  40feeec3
  crypto_nodes/kaspa/ASSET-HASHES.md                                  42 lines  a1d2ea40
  crypto_nodes/kaspa/Dockerfile                                       39 lines  c50d0aac
  crypto_nodes/kaspa/kaspa-mainnet.conf                               31 lines  590e72b6
  crypto_nodes/kaspa/kaspa-simnet.conf                                27 lines  d9549458
  crypto_nodes/kaspa/kaspa-testnet.conf                               25 lines  fbee1033
  crypto_nodes/kaspa/kaspa_node.js                                   190 lines  e2ac658a
  package-lock.json                                                 6416 lines  d911c455
  package.json                                                        82 lines  2038a007
  scripts/publish-bootstraps.sh                                      490 lines  313b8652
  src/cli.js                                                         230 lines  c6e75f15
  src/cli/commands.js                                                400 lines  c9daceba
  src/cli/dispatch.js                                                232 lines  75c4b2ce
  src/cli/options.js                                                 211 lines  9c1fedeb
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/config/env_views.js                                            176 lines  73d894b6
  src/db/migration_ledger.js                                          28 lines  f31d28af
  src/operations/module_operations/module_controls.js                331 lines  ce3602b6
  src/services/bootstrap_archive_meta.js                             207 lines  d37e68a4
  src/services/bootstrap_health_gate.js                              360 lines  13e5968c
  src/services/bootstrap_health_gate/halt_markers.js                 272 lines  c4673bdb
  src/services/bootstrap_health_gate/status_evaluation.js            247 lines  9c7f3c40
  src/services/bootstrap_node_tip_guard.js                           374 lines  6c21c31c
  src/services/bootstrap_service/tracker_archive.js                  399 lines  d1e35df2
  src/services/bootstrap_service/tracker_height.js                   139 lines  3621fb3f
  src/services/config_service.js                                     290 lines  fb12a648
  src/services/config_service/defaults.js                            371 lines  c3728e88
  src/services/config_service/networks.js                            400 lines  beb8e8cf
  src/services/config_service/services.js                            342 lines  81dc1482
  src/services/database_service.js                                   138 lines  57b5a4bb
  src/services/database_service/database_module.js                   396 lines  c668c674
  src/services/database_service/mariadb_exec.js                      334 lines  eba67c1b
  src/services/database_service/persisted_datadir.js                 120 lines  9c46c1ac
  src/services/discovery_service.js                                  194 lines  2a03ddee
  src/services/migration_precondition_service.js                     253 lines  e230477d
  src/services/migration_precondition_service/migration_scan.js      399 lines  8552d065
  src/services/migration_precondition_service/recorded_ledger.js      46 lines  6f2078d1
  src/services/module_service/build_and_up.js                        400 lines  a466c357
  src/services/node_service/crypto_node_download.js                  322 lines  791f6224
  src/services/release_manifest_service.js                           363 lines  bb459a91
  src/services/self_update_service.js                                349 lines  2dcba2a3
  src/services/validator_stake_service.js                            373 lines  d6384f49
  src/services/validator_stake_service/free_key.js                   267 lines  0581a3fe
  src/services/validator_stake_service/mint_rules.js                 148 lines  c7cdfac9
  src/services/validator_stake_service/stake_operations.js           352 lines  c2fe1ee8
  src/services/validator_stake_service/unstake_operations.js         260 lines  972287d7
  src/services/version_service.js                                    204 lines  6f4b298b
  src/utils/module_database_name.js                                   46 lines  d31d634d
  test/chaos/docker_resilience_chaos.test/docker_build_failure_chaos.test.js   144 lines  ceb70137
  test/chaos/docker_resilience_chaos.test/docker_run_failure_chaos.test.js   254 lines  ea353e4e
  test/chaos/docker_resilience_chaos.test/invalid_port_in_config_during_build_and_up_chaos.test.js    90 lines  9c7a0628
  test/chaos/docker_resilience_chaos.test/state_storage_failure_chaos.test.js   123 lines  a065598d
  test/chaos/process_resilience_chaos.test/helpers/index.js           87 lines  4fff5f58
  test/helpers/stake_harness.js                                      131 lines  9d7a216a
  test/integration/module_lifecycle.test.js                          396 lines  88e00b49
  test/unit/bootstrap_archive_meta.test.js                           301 lines  b6389666
  test/unit/bootstrap_service.test/tracker_archive_height_after_restart.test.js   244 lines  27a3cd6d
  test/unit/cli/commands_configured_database_name.test.js             44 lines  61b42a30
  test/unit/cli_error_handling.test.js                               288 lines  e28b397d
  test/unit/cli_ref_for_pre_check.test.js                            216 lines  f660effd
  test/unit/config/regtest_gate_switch_passthrough.test.js            43 lines  6c5bcac2
  test/unit/config_service_sync_parity_passthrough.test.js           100 lines  c3ae42b5
  test/unit/crypto_node_conf_placeholders.test.js                     56 lines  a4f79521
  test/unit/crypto_nodes/kaspa.test.js                               170 lines  31613b9f
  test/unit/database_service.test/mariadb_exec/root_password_persisted_datadir.test.js   218 lines  d2383454
  test/unit/discovery_service.test.js                                330 lines  a3bcb19d
  test/unit/downgrade_floor.test.js                                  141 lines  ca0f1004
  test/unit/migration_precondition_configured_database_name.test.js    57 lines  81fbe249
  test/unit/migration_precondition_service.test/10_refusal_lists_recorded_ledger.test.js   111 lines  0441a087
  test/unit/module_database_name.test.js                              57 lines  9b2df396
  test/unit/module_database_name_prefix_scope.test.js                 72 lines  c2759caa
  test/unit/module_operations.test/03_module_controls.test.js        367 lines  eb843bf1
  test/unit/module_operations.test/17_module_error_paths.test.js     312 lines  57e41b10
  test/unit/module_service.test/19_buildandup_legacy_db_name_collision.test.js    89 lines  e283451c
  test/unit/publish_bootstraps_forced_republish.test.js              262 lines  a869996d
  test/unit/release_signature_service.test/verify_detached_signature.test.js   192 lines  ab22e872
  test/unit/release_signature_service.test/verify_git_tag_signature.test.js   171 lines  690cfec9
  test/unit/release_signature_service.test/verify_manifest_for_tag.test.js   217 lines  7a4dc172
  test/unit/services/bootstrap_service/tracker_height.test.js        134 lines  961908e6
  test/unit/validator_sdk_encoder_compat.test.js                     180 lines  289bbdec
  test/unit/validator_stake_service.test.js                          149 lines  c8485e3a
  test/unit/validator_stake_service.test/mint_rules.test.js          160 lines  e3074532
  test/unit/validator_stake_service.test/send_lock.test.js           258 lines  49c10780
  test/unit/validator_stake_service.test/stake_validator.test.js     332 lines  f5ed04bc
  test/unit/validator_stake_service.test/unstake_validator.test.js   398 lines  64fb961c
  test/unit/validator_stake_service.test/upstream_reads.test.js      139 lines  07660a00

xchain-hub

  .claude/settings.json                                               17 lines  86e0fa0c
  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           373 lines  0987fda9
  CONFIGURATION.md                                                   757 lines  4e9fcf70
  CONTRIBUTING.md                                                    120 lines  448baadd
  bin/consensus-identity.js                                          471 lines  3e84ca86
  bin/pins/at1-consensus-identity.json                                99 lines  29b0e832
  bin/pins/at1-suite-titles.json                                   14761 lines  54ab3897
  bin/pins/carrier-logic.json                                        811 lines  8c2575c4
  bin/suite-title-map.js                                             401 lines  96477a22
  bin/sync-coins.sh                                                   71 lines  6fd0907b
  bin/test/consensus_identity.test.js                                380 lines  ba93c72d
  src/anchor/anchor_proof_binding.js                                 310 lines  38fd92d3
  src/anchor/anchor_reward_key.js                                     57 lines  ffb30dfc
  src/anchor/checkpoint_engine/cadence.js                            247 lines  d436615b
  src/anchor/checkpoint_engine/finalize.js                           225 lines  b0864a8f
  src/anchor/checkpoint_engine/round.js                              257 lines  9e9e4277
  src/anchor/checkpoint_engine/sign.js                               255 lines  a8e397ad
  src/anchor/publisher/archive/build.js                              257 lines  69cced10
  src/anchor/publisher/archive/round.js                              333 lines  eaebb7ed
  src/anchor/publisher/canonical_forms.js                            372 lines  000cfc3f
  src/anchor/publisher/fold/wrapper_canonical.js                      43 lines  0ec21738
  src/anchor/publisher/lifecycle.js                                  388 lines  cce8ea23
  src/anchor/publisher/lookups.js                                    360 lines  b1cf9a70
  src/anchor/publisher/publish_bundle.js                             395 lines  87ffa985
  src/anchor/publisher/reward_defer.js                               306 lines  d81642fb
  src/api.js                                                         398 lines  ba41b4a9
  src/api/hub_metrics.js                                             330 lines  6033223d
  src/api/hub_metrics_attestation.js                                  96 lines  be3ceb88
  src/api/hub_metrics_checkpoint.js                                   90 lines  a85b0126
  src/api/hub_metrics_engine_series.js                                79 lines  630079f7
  src/api/hub_metrics_oracle_publisher.js                             86 lines  bfea7530
  src/api/middleware.js                                              195 lines  19f49b07
  src/api/rest/hub_db_snapshot.js                                    389 lines  2627a0db
  src/api/rpc/oracle.js                                              177 lines  dee68ff9
  src/api/rpc/system.js                                              320 lines  2da29589
  src/attestation/attest_response_timing.js                          199 lines  982a93a0
  src/attestation/batch_publisher.js                                 356 lines  9ae92d96
  src/capabilities/oracle_publish.js                                 115 lines  a9439f93
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/consensus/gate_registry.js                                     107 lines  706e3522
  src/consensus/gate_registry/hub_rows.js                             90 lines  fb3a4cb9
  src/consensus/gates/anchor_reward_gate.js                          201 lines  8db1492f
  src/consensus/retraction.js                                        324 lines  ee2ba6e8
  src/consensus_rules_digest.js                                      371 lines  dcba999c
  src/db/oracle.js                                                   187 lines  a026ca18
  src/hub/chain_tips.js                                              399 lines  91a7a767
  src/hub/prices.js                                                  332 lines  6fcdd1d4
  src/hub_schema_version.js                                          147 lines  c4109d0b
  src/lib/guards/idempotent_broadcast.js                             223 lines  395e4820
  src/lib/mainnet_write_window.js                                     33 lines  69c373c3
  src/oracle/batch_signer.js                                         398 lines  69541967
  src/oracle/consensus/options.js                                    257 lines  aedd0745
  src/oracle/price_aggregator/retract.js                             186 lines  e7cc5ffd
  src/oracle/publisher/assembly.js                                   385 lines  0952942e
  src/oracle/publisher/batch_options.js                              313 lines  cdbf25ee
  src/oracle/publisher/landed.js                                     271 lines  a8a384c3
  src/oracle/publisher/publish_pass.js                               223 lines  f0c5338d
  src/oracle/publisher/window_plan.js                                108 lines  7d7be86b
  src/oracle/round/lifecycle.js                                      117 lines  7d0c3941
  src/oracle/round/submissions_info.js                               314 lines  fd646bbc
  src/oracle/round_cadence.js                                         47 lines  c2854ddf
  src/oracle/xchain_price_source/derivation_params.js                123 lines  4d37f6b4
  src/peers/hub_db/admission_height_watermark.js                     359 lines  2f0d14fc
  src/peers/hub_db/catchup_pager.js                                   82 lines  06e2fe18
  src/peers/hub_db/catchup_rows.js                                    71 lines  08835ec8
  src/peers/hub_db/catchup_verifiers.js                              155 lines  ef9035ba
  src/peers/hub_db/peer_catchup.js                                   387 lines  b7fdc22f
  src/providers/http_get.js                                          343 lines  a4704298
  src/sql/anchor_reward_attestations.sql                              78 lines  636160d8
  src/validators/capability_snapshot.js                              400 lines  f499195e
  test/helpers/engine_series.js                                       65 lines  0788f557
  test/unit/anchor/checkpoint_engine/state_checkpoint_engine_frozen_tip_retry.test.js   151 lines  6d746e57
  test/unit/anchor/checkpoint_engine/state_checkpoint_engine_rootless_guard.test.js   385 lines  f5aadbb8
  test/unit/anchor/publisher/archive/state_anchor_publisher_archive_election.test.js   262 lines  5641df57
  test/unit/anchor/publisher/archive/state_anchor_publisher_pkg8_archive_wrapper.test.js   204 lines  5273f57c
  test/unit/anchor/publisher/reward/state_anchor_publisher_own_adoption_reward.test.js   146 lines  3db001d2
  test/unit/anchor/publisher/state_anchor_publisher_finalized_binding.test.js   263 lines  7fbb3a42
  test/unit/anchor/publisher/state_anchor_publisher_v3_root_binding.test.js   134 lines  21eda80a
  test/unit/api/metrics/hub_metrics.test.js                          305 lines  d6adf1ef
  test/unit/api/metrics/hub_metrics_attestation.test.js              137 lines  3485012c
  test/unit/api/metrics/hub_metrics_checkpoint.test.js               126 lines  1bc366b8
  test/unit/api/metrics/hub_metrics_oracle_publisher.test.js         119 lines  b9b79cac
  test/unit/api/p2p_config_oracle_cadence.test.js                    114 lines  82ecd002
  test/unit/attestation/consensus/attest_response_timing.test.js     105 lines  4c63135a
  test/unit/capabilities/capabilities.test.js                        380 lines  0f20fc58
  test/unit/coins/coins.test.js                                      224 lines  2564787d
  test/unit/consensus/active_gates_unit_aware.test.js                 61 lines  b8fd52d1
  test/unit/consensus/consensus_primitive_conformance.test.js        168 lines  54717e7d
  test/unit/consensus/gate_registry.test.js                          383 lines  e6774cae
  test/unit/consensus/gate_registry/offer_list_regtest_switch.test.js    71 lines  2a4e7a63
  test/unit/consensus/retraction/snapshot_block_tip_only.test.js      40 lines  e006e0a0
  test/unit/cross_chain/bridge/engine/cross_chain_bridge_engine_api.test.js   295 lines  125b6efb
  test/unit/hub/hub_schema_version.test.js                            34 lines  d3636998
  test/unit/hub/hub_schema_version_list_snapshots.test.js             44 lines  d698e21b
  test/unit/hub/xchain_hub_suite/xchain_hub_01_get_validators.test.js   394 lines  540e8a2e
  test/unit/lib/mainnet_write_window.test.js                          65 lines  26446489
  test/unit/oracle/consensus/propose/oracle_consensus_propose_validation_floor.test.js   164 lines  d18083d8
  test/unit/oracle/consensus/propose/oracle_consensus_propose_validation_unverified.test.js   128 lines  9136e1f8
  test/unit/oracle/expected_pairs_info.test.js                        66 lines  c52c3b99
  test/unit/oracle/freshness_hydrate_error.test.js                    84 lines  b4399c21
  test/unit/oracle/hourly_window_plan.test.js                        200 lines  619a19ee
  test/unit/oracle/publisher/batch/oracle_publisher_batch.test.js    351 lines  cf66ee87
  test/unit/oracle/publisher/batch/oracle_publisher_batch_partly_landed_window.test.js    66 lines  7a827831
  test/unit/oracle/publisher/mainnet_write_window_publish.test.js     82 lines  66755d3f
  test/unit/oracle/round/cadence/round_cadence_readers.test.js        74 lines  0285659d
  test/unit/oracle/round/oracle_dashboard_contract.test.js           151 lines  2143dcfb
  test/unit/oracle/round_cadence.test.js                              82 lines  5666ce39
  test/unit/oracle/submissions_info_disputed.test.js                  68 lines  f02c1183
  test/unit/oracle/window_plan_math.test.js                          123 lines  702d0697
  test/unit/oracle/xchain_price_source_overrides.test.js             263 lines  698746e0
  test/unit/peers/hub_db/catchup_pager.test.js                       185 lines  c6da67fc
  test/unit/peers/hub_db/catchup_state.test.js                       134 lines  74f2892b
  test/unit/peers/hub_db/catchup_verifiers.test.js                   400 lines  7cd5da47
  test/unit/peers/hub_db/helpers/peer_catchup_harness.js              62 lines  ad151750
  test/unit/peers/hub_db/peer_catchup.test.js                        317 lines  2daa939d
  test/unit/peers/hub_db/peer_catchup_feed_backoff.test.js           119 lines  ccff8e7d
  test/unit/peers/hub_db/peer_catchup_lifecycle.test.js               78 lines  7842c7e0
  test/unit/peers/hub_db/peer_catchup_refusal_memo.test.js            97 lines  dd391d5b
  test/unit/peers/hub_db/peer_catchup_schema_version.test.js          65 lines  32f5ac3c
  test/unit/peers/hub_db/peer_catchup_signer_set_only.test.js        127 lines  6249b4f2
  test/unit/peers/hub_db/peer_catchup_single_flight.test.js           91 lines  b8561cd7
  test/unit/peers/hub_db/peer_catchup_state_stability.test.js         84 lines  9f23d0f7
  test/unit/peers/hub_db/price_catchup_round_group.test.js           145 lines  0722e42e
  test/unit/providers/http_get_provider_ssrf_guard.test.js           197 lines  8135d0ef
  test/unit/shared/admission/admission_watermark.test.js             392 lines  b6021293
  test/unit/shared/admission/admission_watermark_price_default.test.js    74 lines  0d47bd18
  test/unit/shared/admission/peer_catchup_admission_wire.test.js      92 lines  1daffd52
  test/unit/shared/spend/idempotent_broadcast_already_known.test.js   131 lines  de88a2a8
  test/unit/validators/consensus_input_429_backoff.test.js           192 lines  de948d33

xchain-indexer

  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           352 lines  0a3db9e2
  .github/workflows/mutation.yml                                      37 lines  8fb6d434
  CONTRIBUTING.md                                                    121 lines  78e80be6
  bin/pins/at1-consensus-identity.json                              1054 lines  7fa47af0
  bin/pins/at1-suite-titles.json                                   21191 lines  e5a2f22c
  bin/pins/carrier-logic.json                                       2131 lines  c8f08205
  bin/recovery.js                                                   1452 lines  677913a7
  bin/shadow-dryrun-escrow-leaf.js                                   283 lines  1a3d70b9
  bin/suite-title-map.js                                             476 lines  704c8872
  bin/test/ci_fast_select.test.js                                    347 lines  d6dc73d5
  bin/vendor-vm.sh                                                   239 lines  263f5505
  package-lock.json                                                 5219 lines  0fbfc9c7
  package.json                                                        95 lines  c5e0b28d
  src/XChainIndexer/background_jobs.js                               164 lines  13f7badb
  src/XChainIndexer/block_admission.js                                42 lines  eac1ce1d
  src/XChainIndexer/block_commit.js                                  184 lines  a6ac2f00
  src/XChainIndexer/block_parse.js                                   217 lines  3e297df1
  src/XChainIndexer/block_passes.js                                  262 lines  2bd71cf3
  src/XChainIndexer/hub_config_poll.js                               101 lines  91565a69
  src/XChainIndexer/instance_state.js                                215 lines  06bb8e72
  src/XChainIndexer/price_barriers.js                                223 lines  aea8654b
  src/XChainIndexer/stall_health.js                                  189 lines  0579fba4
  src/XChainIndexer/startup.js                                       322 lines  68acebba
  src/actions/actions_class/dispatch.js                              188 lines  e282a5fc
  src/actions/actions_class/fee_pricing.js                           202 lines  44e0e8c8
  src/actions/actions_class/fee_views.js                             175 lines  600b68d5
  src/actions/actions_class/quote_answers.js                         272 lines  e098115a
  src/actions/actions_class/vm_runtime.js                            264 lines  2797c2f6
  src/actions/anchor/anchor_reward_key.js                             78 lines  1dbcb877
  src/actions/anchor/archive/archive_head.js                         163 lines  3a7a185f
  src/actions/anchor/index.js                                        408 lines  bc676c8c
  src/actions/cross_chain_remote_token.js                             88 lines  b2554104
  src/actions/cross_settle/quorum.js                                 151 lines  18ab862f
  src/actions/cross_settle/settle_leg.js                             327 lines  0697477e
  src/actions/deploy/constructor_effects.js                          180 lines  e794a58d
  src/actions/execute/controller_guard.js                            304 lines  e4b00060
  src/actions/execute/emission.js                                    340 lines  b7c6bca2
  src/actions/execute/nested_gas_sum.js                               51 lines  4c5b05a9
  src/actions/execute/run_vm.js                                      329 lines  b2f85b20
  src/actions/index.js                                               391 lines  507a3266
  src/actions/order_match/settle.js                                  234 lines  8cb1ec4b
  src/actions/rollcall/validate.js                                   111 lines  22fab004
  src/actions/stake/capability_stake.js                              268 lines  5e7a02b1
  src/actions/swap_match/settle.js                                   119 lines  537cf4aa
  src/actions/vote/settle.js                                         116 lines  f53e3b30
  src/api/health/advance_fields.js                                    78 lines  e789326d
  src/api/rpc/fees.js                                                208 lines  29290085
  src/api/status_route.js                                            166 lines  20d79da4
  src/chain/genesis/airdrops.js                                      258 lines  e8aeab20
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/config.js                                                      403 lines  cf42ca16
  src/consensus/address_ref_fields.js                                148 lines  3f66656b
  src/consensus/anchor_reward_derive/legacy_reward_pins.js            66 lines  06a662c8
  src/consensus/anchor_reward_derive/legacy_reward_pins.json          89 lines  c0d6f58d
  src/consensus/anchor_reward_derive/mint_row.js                     106 lines  9c9b51dd
  src/consensus/bridge_settle.js                                     176 lines  a3c63093
  src/consensus/bridge_settle/pass.js                                303 lines  df91c13a
  src/consensus/doge_peer_clients/anchor_proof_client.js             244 lines  df1e1b7e
  src/consensus/doge_peer_clients/anchor_proof_client/binding.js     310 lines  38fd92d3
  src/consensus/gates/anchor_reward_gate.js                          201 lines  8db1492f
  src/consensus/gates/mainnet_launch_gate.js                          47 lines  5b92dc2d
  src/consensus/gates/prelaunch_seed_sources.js                       63 lines  5d0f3d28
  src/consensus/gates/validator_wire_actions.js                       82 lines  c60e1bc0
  src/consensus/state_hash/gated_sections.js                         130 lines  fc550d56
  src/consensus_rules_digest.js                                      371 lines  1a1e8996
  src/db/anchors/index.js                                            354 lines  623c5794
  src/db/capabilities/index.js                                       297 lines  44e45065
  src/db/contracts/slash.js                                          204 lines  8ce55525
  src/db/cross_chain/index.js                                        274 lines  b8f96a9c
  src/db/database/migration_live_schema_guard.js                     307 lines  d4e161a1
  src/db/database/normalize.js                                       203 lines  2e8d1e9e
  src/db/database/schema_setup.js                                    381 lines  f6b588c2
  src/db/database/stake_weights.js                                   268 lines  66d22aa0
  src/db/database/startup_assertions.js                              299 lines  9624006c
  src/db/index_tables/addresses.js                                   276 lines  17594620
  src/db/migration/checksum_rebaselines.js                           277 lines  b98d3a76
  src/db/polls/poll_create.js                                        116 lines  9aaa02a3
  src/db/rewards/index.js                                            389 lines  876f1671
  src/db/rollback/sweeps.js                                          169 lines  67e48994
  src/db/stakes/active_stake.js                                      316 lines  0ff2140a
  src/hub/hub_db_sync/chain_identity.js                              353 lines  75043020
  src/hub/hub_db_sync/retractions.js                                 306 lines  0dcadacd
  src/hub/hub_db_sync/watermarks.js                                  356 lines  744d5c0d
  src/hub/hub_schema_version.js                                      123 lines  18f0fb0d
  src/hub/table_lifecycle.js                                         428 lines  1bb4128d
  src/hub/table_lifecycle/block_and_special_tables.js                208 lines  85a84bba
  src/protocol_changes.js                                            390 lines  0f633921
  src/protocol_changes/changes_1.js                                  356 lines  8b1c834f
  src/protocol_changes/changes_5.js                                  163 lines  89a5e4f4
  src/protocol_changes/flag_times.js                                 316 lines  13bc7604
  src/protocol_changes/gates_2.js                                    399 lines  cd629547
  src/protocol_changes/gates_4.js                                    400 lines  3034e9a9
  src/protocol_changes/gates_5.js                                     41 lines  c1bd6d47
  src/protocol_changes/gates_flag_times.js                           151 lines  65f79a2a
  src/rollback/commit.js                                             295 lines  605c51dc
  src/rollback/index.js                                              342 lines  60b6f9ee
  src/rollback/sweeps.js                                             228 lines  f2123188
  src/sql/anchor_reward_attestations.sql                              73 lines  0df6bd0a
  src/sql/anchor_reward_reconcile_log.sql                             31 lines  a9ed8e65
  src/sql/attests.sql                                                115 lines  ff236c7f
  src/sql/migrations/2026-07-17-cross-chain-matches-reorg-fence-columns.sql    37 lines  79677be6
  src/sql/migrations/2026-07-17-oracle-prices-add-push-generation.sql    27 lines  412b061f
  src/sql/migrations/2026-09-03-attests-batch-action-index.sql        36 lines  a1b46162
  src/sql/validator_rewards.sql                                       65 lines  56964fad
  stryker.config.js                                                   37 lines  6d90923b
  test/fixtures/mocks.js                                             486 lines  78576714
  test/fixtures/schema-baseline.json                                4077 lines  ac13fb45
  test/fixtures/schema-literal-origin.json                           101 lines  be1ba652
  test/helpers/expected_reward_family.js                              42 lines  fcccb901
  test/helpers/gate_modules.js                                       241 lines  91192517
  test/integration/anchor_reward_round_qualifier.test.js             326 lines  3d7ac5a9
  test/integration/execution_text_clip_db.test.js                    123 lines  6e0f0364
  test/integration/migration_live_schema_guard.test/mirror_id_unsigned_replay.test.js   134 lines  1e403352
  test/integration/recovery_determinism_e2e.test.js                  177 lines  3dfd5d8c
  test/integration/recovery_determinism_e2e.test/helpers/recovery_determinism_nodes.js   295 lines  dcb251cb
  test/integration/scenarios/contract_unstake_rotation_reorg.test.js   283 lines  7353c61a
  test/integration/scenarios/controller_stake/26_cross_chain_royalty.test.js   319 lines  7c21b0ba
  test/integration/schema_fresh_vs_migrated.test.js                  267 lines  780ce3ba
  test/unit/XChainIndexer/block_admission.test.js                     60 lines  6309185a
  test/unit/XChainIndexer/mainnet_launch_skip.test.js                 48 lines  d761424d
  test/unit/XChainIndexer/opening_passes.test.js                      79 lines  1940a5ab
  test/unit/XChainIndexer/opening_passes.test/helpers/opening_passes_context.js    36 lines  432a4164
  test/unit/actions/anchor/anchor_reward_family.test.js               32 lines  bffbb5ff
  test/unit/actions/cross_chain_remote_token_accept.test.js          144 lines  e281d760
  test/unit/actions/cross_chain_remote_token_signatures.test.js       89 lines  35f19819
  test/unit/actions/execute/nested_execute_gas_sum_gate.test.js      133 lines  ebddabfc
  test/unit/actions/fee_quote_exact_sats.test.js                      66 lines  8c8a6ff0
  test/unit/actions/market/order.test.js                             225 lines  5c3f8a48
  test/unit/actions/market/order.test/create_rules.test.js           310 lines  fa1c2e65
  test/unit/actions/stake/vote_invariants.test/callback_probe_vm.test.js   262 lines  121fac27
  test/unit/actions/stake/vote_invariants.test/refused_create_status.test.js    63 lines  e8e8eeb3
  test/unit/actions/stake/vote_sleep_gate.test.js                    253 lines  60f2242d
  test/unit/actions/vm_runtime_dependencies.test.js                   71 lines  3071b83a
  test/unit/activations/activation_constants_parity.test/activation_gate_list.test.js   113 lines  da8a9500
  test/unit/activations/activation_constants_parity.test/height_ordering.test.js   311 lines  e8955142
  test/unit/activations/activation_constants_parity.test/live_network_gates.test.js    68 lines  65c69888
  test/unit/anchor/anchor_proof_client.test.js                       321 lines  0d826af9
  test/unit/anchor/anchor_proof_client.test/anchorproofclient_doge_anchor_visibility_regression.test.js   357 lines  6ed6c42f
  test/unit/anchor/anchor_proof_client.test/anchorproofclient_v3_fold_binding.test.js   231 lines  0fe283c2
  test/unit/anchor/anchor_proof_client.test/judge_legacy_dropped.test.js    86 lines  7474a9e2
  test/unit/anchor/anchor_proof_client.test/reward_family_versions.test.js    59 lines  abee4d35
  test/unit/anchor/anchor_reward_derive.test/derive_loop_pin.test.js   184 lines  48f64cb6
  test/unit/anchor/anchor_v3_fold_reissue_source_author.test.js       67 lines  806fed20
  test/unit/anchor/anchor_v3_same_publisher_reissue.test.js          108 lines  9435169d
  test/unit/anchor/db_get_archive_replay_watermarks.test.js          154 lines  ceb50845
  test/unit/api/health/price_landing_grace_wiring.test.js             59 lines  61ee8b92
  test/unit/bin/suite_title_map.test.js                              233 lines  9a39c615
  test/unit/bridge/bridge_settle.test/refused_policy_follower_parity.test.js    75 lines  ed18b6ac
  test/unit/chain/genesis_airdrop.test.js                            327 lines  50e66856
  test/unit/chain/retention.test.js                                  546 lines  134adea4
  test/unit/consensus/active_gates_unit_aware.test.js                 74 lines  b12bb799
  test/unit/consensus/anchor_reward_derive/archive_fold_term.test.js   152 lines  8c3d2af0
  test/unit/consensus/anchor_reward_derive/legacy_reward_pins.test.js    76 lines  9d41b6a8
  test/unit/consensus/anchor_reward_legacy_pins.test.js               72 lines  a9ae4af4
  test/unit/consensus/armed_map/manifest.test.js                     430 lines  efe94f11
  test/unit/consensus/armed_map/vm_gate_coverage.test.js             124 lines  08ab2b9c
  test/unit/consensus/consensus_params.test/vm_coupling.test.js      381 lines  3e0c7a3c
  test/unit/consensus/dispenser_delay_decoder_guard.test.js          175 lines  488b288b
  test/unit/consensus/escrow_journal_release_before_lock.test.js     163 lines  d123a658
  test/unit/consensus/gates/mainnet_launch_gate.test.js               62 lines  7eb76787
  test/unit/consensus/gates/mainnet_launch_rows.test.js               44 lines  30e42f1b
  test/unit/consensus/gates/prelaunch_seed_sources.test.js           104 lines  658e7b53
  test/unit/consensus/gates/validator_wire_actions.test.js            60 lines  cc82758f
  test/unit/contracts/controller_guard_stake_snapshot_gate.test.js   102 lines  d5dc61cb
  test/unit/contracts/emission_guard_call_depth_composed.test.js      67 lines  db515af7
  test/unit/contracts/slash_contract_stake_order_gate.test.js        101 lines  a07c0397
  test/unit/cross_chain/cross_chain_royalty_gate.test.js             164 lines  6067d41e
  test/unit/cross_chain/xcall_cap_default.test.js                    107 lines  916a594f
  test/unit/db/db.test/execution_text_clip.test.js                   142 lines  161f37a0
  test/unit/db/db_queries.test/stakes.test.js                        372 lines  cc2ab6b4
  test/unit/db/markets/markets_native_coin_pairs.test.js             320 lines  870f010b
  test/unit/db/remote_token_snapshots.test.js                        147 lines  f1ece724
  test/unit/db/rollback/in_place_flips_contract_stakes_reset.test.js    75 lines  fce2b9ef
  test/unit/db/stakes/db_stake_snapshot_slash_window.test.js         275 lines  c566aab4
  test/unit/hub/hash_coverage.test/content_parity.test.js            259 lines  6a71be78
  test/unit/hub/hub_db_sync/barriers/price_landing.test.js           172 lines  f1d386a9
  test/unit/hub/hub_db_sync/capability_snapshot_stake_memo.test.js    84 lines  31360195
  test/unit/hub/hub_db_sync/chain_id_purge_retry.test.js              86 lines  6d42052e
  test/unit/hub/hub_db_sync/hub_db_sync.test/barriers_and_watchdog.test.js   266 lines  8f715aa7
  test/unit/hub/hub_db_sync/hub_db_sync.test/own_rollback_generation_wiring.test.js   106 lines  740e7b74
  test/unit/hub/hub_db_sync/hub_db_sync.test/retraction_guards.test.js   203 lines  7b1954ca
  test/unit/hub/hub_db_sync/hub_db_sync.test/signed_retractions.test.js   229 lines  388a0d88
  test/unit/hub/hub_db_sync/hub_db_sync_capability_snapshot_btc_rederive.test.js   312 lines  e553345a
  test/unit/hub/hub_db_sync/watermark_interval_hub_parity.test.js     62 lines  1b9baaea
  test/unit/hub/hub_schema_version.test.js                            79 lines  48c923a8
  test/unit/hub/table_lifecycle.test.js                               29 lines  61eb6715
  test/unit/list_share/list_share_tables.test.js                     120 lines  76b57f9d
  test/unit/migration/migration_runner.test/live_schema_guard.test.js   179 lines  2448d477
  test/unit/migration/migration_runner.test/utf8mb4_columns_assertion.test.js    91 lines  9939fb53
  test/unit/migration/sql_schema_column_parity.test/baseline.test.js   350 lines  e56672d7
  test/unit/migration/sql_schema_column_parity.test/helpers/column_ledger.js   249 lines  9261ba93
  test/unit/migration/sql_schema_column_parity.test/literal_case.test.js    95 lines  8ed2195d
  test/unit/price/price_barrier_btc_time_coverage.test.js            184 lines  aa3e57d0
  test/unit/protocol/flagday_placeholder_guard.test/sibling_named_exports.test.js   130 lines  a6d682b1
  test/unit/protocol/protocol_changes.test/controller_guard_and_consensus_pins.test.js   281 lines  02b5f2fe
  test/unit/protocol_changes/assembler.test.js                       223 lines  6be36ef3
  test/unit/protocol_changes/exact_integer_wire_regtest_switch.test.js    63 lines  25196c3e
  test/unit/protocol_changes/predicate_parity.test.js                144 lines  7a15e553
  test/unit/recovery/recovery.test/archived_rewards.test.js          260 lines  fb8e78fd
  test/unit/recovery/recovery_wrapper_canonical_parity.test.js       166 lines  c7c7df62
  test/unit/rewards/create_validator_reward_callsites.test.js        151 lines  5b858ba1
  test/unit/rollback/market_pair_sweep_probe.test.js                  27 lines  fe8793cd
  test/unit/rollback/rollback.test/hub_retractions.test.js           362 lines  c46e6e98
  test/unit/rollback/rollback_failure_preserves_error.test.js         62 lines  8e8f93b1
  test/unit/rollback/rollback_hub_push_queue_at_use.test.js           71 lines  5a5cbf4b
  test/unit/security/configuration/response_mirror_boot_guard.test.js    95 lines  0a910b60
  test/unit/state_commitment/state_hash/state_hash_attest_batch_head.test.js   159 lines  7abef711
  test/unit/utility/proceeds_split_stored_legs.test.js                32 lines  3daa2d5b
  test/unit/xcall-constants-cross-repo.test.js                       199 lines  0f1e0ff3
  test/unit/xchain_indexer/abandon_block_rollback_failure.test.js     56 lines  b96b4f80
  test/unit/xchain_indexer/lost_block_transaction_commit.test.js      93 lines  b0d35f90
  test/unit/xchain_indexer/stall_health.test/barrier_mapping.test.js   228 lines  043156a2
  test/unit/xchain_indexer/stall_health.test/price_landing_future_block.test.js    86 lines  b629d2b3

xchain-explorer

  .ci-tools                                                           24 lines  55f96a8a
  .env.example                                                        86 lines  03f512df
  .github/pull_request_template.md                                    21 lines  2545dad8
  .github/workflows/base-branch-guard.yml                             40 lines  abd96cc7
  .github/workflows/ci.yml                                           300 lines  d6cabebb
  CONTRIBUTING.md                                                    124 lines  3ce8f0fe
  Dockerfile                                                          43 lines  d05b45de
  README.md                                                          288 lines  e3d43a34
  bin/pins/at1-explorer-identity.json                              12423 lines  7f0e699a
  deploy/README.md                                                   108 lines  4c0d971e
  deploy/rate-limits.conf                                             49 lines  89c773c9
  docs/openapi.build.js                                             1022 lines  79a2a138
  docs/openapi.json                                                21952 lines  81339f8a
  docs/openapi.schemas.js                                            605 lines  9b9ae98f
  package-lock.json                                                 6537 lines  60136801
  package.json                                                       118 lines  48ee9d17
  src/api.js                                                         277 lines  4909de0e
  src/coin-config/KAS.js                                              34 lines  b30a8ae1
  src/coins/KAS.js                                                   272 lines  89acd403
  src/coins/consensus_pin.js                                         115 lines  2c163d86
  src/coins/index.js                                                 431 lines  b899a781
  src/config/resolve_coins.js                                        182 lines  459b20be
  src/content/html/action.html                                      2229 lines  28440a71
  src/content/html/market.html                                       267 lines  fc046be8
  src/content/html/rich_list.html                                     94 lines  974c3a54
  src/content/html/search.html                                       266 lines  e93aff00
  src/content/html/token.html                                       1196 lines  1ceb2749
  src/content/js/xbridge_panels_render.js                            400 lines  49f4611f
  src/content/js/xchain.js                                           259 lines  a8084d6b
  src/content/js/xchain/datatable/rows_actions_a.js                  386 lines  156a7618
  src/content/js/xchain/network_status.js                            344 lines  8cc7484b
  src/content/js/xchain/params.js                                    312 lines  81f91668
  src/content/js/xchain/search_market.js                             335 lines  5a1dcf61
  src/content/js/xchain/token_info.js                                399 lines  fd512c6e
  src/content/json/xchain-platform-api.json                         4844 lines  2c7220bb
  src/content/layouts/list-pages.json                               3839 lines  6dd43be8
  src/content/layouts/page-assets.json                               198 lines  5fadafc4
  src/db/connection/cache.js                                         241 lines  7ce461c1
  src/db/index.js                                                    147 lines  ed4ee432
  src/db/method_tables.js                                            181 lines  3045684f
  src/db/query_sql/boundary_filters.js                               123 lines  31475092
  src/db/query_sql/count_joins.js                                    190 lines  7833d0ec
  src/db/query_sql/data.js                                           125 lines  d9f3264e
  src/db/query_sql/data_cache.js                                      95 lines  d6bdc55d
  src/db/query_sql/data_rows.js                                      112 lines  bc097daa
  src/db/query_sql/data_totals.js                                    132 lines  08d5f2cd
  src/db/query_sql/keyset.js                                          93 lines  2622f9cf
  src/db/query_sql/offset_boundaries.js                              335 lines  b43efc7e
  src/db/query_sql/page_ids.js                                        90 lines  bc66a045
  src/db/query_sql/where_action_clauses.js                           300 lines  9b878a9a
  src/db/query_sql/where_clauses.js                                  100 lines  a96f112d
  src/db/query_sql/where_mirror_clauses.js                           286 lines  c4de693d
  src/db/query_sql/where_protocol_clauses.js                          60 lines  865e6edb
  src/db/query_sql/where_source_lanes.js                             292 lines  b3db471e
  src/db/query_sql/where_vote_clauses.js                             130 lines  9396e67e
  src/db/readers/action_detail_io.js                                 217 lines  1d5ec0d4
  src/db/readers/action_detail_io/action_data.js                     244 lines  cf7cac80
  src/db/readers/action_detail_io/history.js                         321 lines  7de392fd
  src/db/readers/action_detail_io/history_page.js                    141 lines  d5e820cc
  src/db/readers/action_detail_io/order_batches.js                   349 lines  f3447a98
  src/db/readers/action_detail_io/orders.js                          213 lines  d80b73c5
  src/db/readers/action_detail_io/search.js                          320 lines  ffd48a65
  src/db/readers/action_lists.js                                      44 lines  acf96c74
  src/db/readers/action_lists/coinpay.js                             299 lines  65d450f2
  src/db/readers/action_lists/content.js                             361 lines  3a41a061
  src/db/readers/action_lists/dispensers.js                          376 lines  322e2ab4
  src/db/readers/action_lists/orders.js                              296 lines  4db6fc90
  src/db/readers/action_lists/protocol_lifecycle.js                  222 lines  c1d1c0e9
  src/db/readers/action_lists/shared_lists.js                        147 lines  b5d8c310
  src/db/readers/action_lists/swaps.js                               278 lines  7d638517
  src/db/readers/action_lists/tokens.js                              397 lines  3399ad50
  src/db/readers/action_lists/transfers.js                           400 lines  2de96ba7
  src/db/readers/checkpoints.js                                       70 lines  4c2f6f75
  src/db/readers/checkpoints/bridge_panels.js                         91 lines  c60d0a89
  src/db/readers/checkpoints/sync_feeds.js                           335 lines  da8cc9e2
  src/db/readers/contracts/contracts.js                              328 lines  1aaf78b4
  src/db/readers/contracts/executions.js                             253 lines  bf61625a
  src/db/readers/entities/blocks.js                                  230 lines  8f047161
  src/db/readers/entities/lookups.js                                 327 lines  c0a33091
  src/db/readers/entities/network.js                                 348 lines  300e0d5f
  src/db/readers/entities/status.js                                  390 lines  6cc321ab
  src/db/readers/health/decoder.js                                   398 lines  8943d239
  src/db/readers/polls_bets/bets.js                                  380 lines  a5a2490b
  src/db/readers/polls_bets/polls.js                                 267 lines  82f14d34
  src/db/readers/txless_actions.js                                    87 lines  8c1a9c97
  src/db/readers/txless_actions_conformance.js                       190 lines  8b5c50b1
  src/db/readers/xcall/lists.js                                      344 lines  7311554d
  src/db/readers/xcall/xcall_detail.js                               201 lines  362b654f
  src/db/schema_probe.js                                             229 lines  7f209c63
  src/explorer/fees_preflight.js                                     291 lines  8ebdc0a5
  src/explorer/fees_preflight/fee_schedule_cache.js                  130 lines  92e90090
  src/explorer/mount.js                                              261 lines  cb175808
  src/explorer/paging/explorer_row.js                                116 lines  5bd95ff8
  src/explorer/request/address_shape.js                              172 lines  3d1e2b8a
  src/explorer/request/assemble_response.js                          141 lines  d169bf45
  src/explorer/request/bare_detail.js                                 74 lines  d2d0e129
  src/explorer/request/detail_record.js                              113 lines  ef8ab498
  src/explorer/request/index.js                                       78 lines  f090ef4a
  src/explorer/request/not_found.js                                   70 lines  cca45701
  src/explorer/request/render_page.js                                107 lines  c926a021
  src/explorer/request/resolve_route.js                              281 lines  88288ed9
  src/explorer/routes/api_methods.js                                 320 lines  f2097523
  src/explorer/routes/explorer_feeds.js                              176 lines  a5292a73
  src/http/api_boot/bind_host.js                                      46 lines  67ce17b7
  src/http/api_boot/cors.js                                           59 lines  b7d71cb2
  src/http/api_boot/http_listener.js                                  57 lines  95cb65f9
  src/http/api_boot/rate_limits.js                                   138 lines  7e0d1d95
  src/http/api_boot/tls.js                                            63 lines  de3d147d
  src/http/bridge_panel_routes.js                                    175 lines  2e39f6a4
  src/http/cache_control.js                                          225 lines  c3df7d12
  src/http/static_cache.js                                            43 lines  d87baa84
  src/http/static_mounts.js                                          105 lines  bf6a188f
  src/hub/hub_db_sync/chain_identity.js                              353 lines  75043020
  src/hub/hub_db_sync/retractions.js                                 306 lines  0dcadacd
  src/hub/hub_db_sync/watermarks.js                                  356 lines  744d5c0d
  src/hub/hub_schema_version.js                                      123 lines  18f0fb0d
  src/icons/resolver.js                                              399 lines  8e83eb5c
  src/render/page_assets.js                                          130 lines  104df817
  src/render/rocket_loader_optout.js                                  38 lines  f82cb388
  src/sql/hub-mirror/anchor_reward_attestations.sql                   73 lines  0df6bd0a
  src/ws/broadcaster.js                                              397 lines  2b208748
  src/ws/broadcaster/channels.js                                     283 lines  4d8b8658
  src/ws/change_detector/coin.js                                     336 lines  7f5dd133
  src/ws/schema_version.js                                            40 lines  d71aaed5
  src/ws/websocket_server/catch_up.js                                345 lines  1fe974af
  src/ws/websocket_server/subscriptions.js                           300 lines  f1304c08
  src/ws/websocket_server/welcome.js                                 170 lines  1df1da69
  test/conformance/schema_conformance.test/plan_allowlist.txt        122 lines  cdc7fa41
  test/conformance/schema_conformance.test/support/plan_allowlist.js    89 lines  a867256a
  test/conformance/schema_conformance.test/support/plan_capture.js   119 lines  ece252b7
  test/conformance/schema_conformance.test/support/plan_guard.js     159 lines  896936fa
  test/conformance/schema_conformance.test/support/plan_seed.js      125 lines  5b2c34c5
  test/conformance/schema_conformance.test/support/plan_verdict.js   148 lines  3f46989a
  test/conformance/schema_conformance.test/support/suite.js           39 lines  ec127440
  test/e2e/market_chart_csp.test.js                                  172 lines  26d09815
  test/fixtures/list-page-baseline.json                               78 lines  cbed0361
  test/helpers/content-source.js                                     160 lines  0a2a66d2
  test/helpers/indexer_ddl_sqlite.js                                  85 lines  1affde0e
  test/helpers/source_slice.js                                        60 lines  51ed53df
  test/regression/p0_security_baseline.test.js                       188 lines  6561fa2c
  test/security/proxy_spoof.test.js                                  156 lines  13f78df4
  test/security/rate_limit_log.test.js                               297 lines  ef302f91
  test/security/rate_limit_pins.test.js                              242 lines  b98bb056
  test/security/rate_limiting.test.js                                337 lines  63f81788
  test/security/sql_injection.test.js                                342 lines  25ee71f1
  test/unit/action_detail/bet_edit_detail.test.js                    167 lines  0b442b46
  test/unit/action_detail/crosschain/xcall_request_lookup.test.js     95 lines  6192908b
  test/unit/action_detail/history/db_history_batch_parent.test.js    153 lines  53c6e5a1
  test/unit/action_detail/history/db_history_ids_first_real_ddl.test.js   296 lines  7a244d47
  test/unit/action_detail/history/db_history_unmapped_actions.test.js   289 lines  ee08628c
  test/unit/action_detail/list_rename_detail.test.js/detail.test.js   363 lines  7074a227
  test/unit/conformance/plan_guard_allowlist.test.js                 117 lines  6ad16f23
  test/unit/conformance/plan_guard_explains.json                     261 lines  d71d5946
  test/unit/conformance/plan_guard_verdict.test.js                   122 lines  90971581
  test/unit/content/attest_v5_batch_head_render.test.js               86 lines  82e1d48d
  test/unit/content/components/theme_parity_probe.test.js            377 lines  0f44b598
  test/unit/content/components/theme_token_literal_gate.test.js      376 lines  5e3134d8
  test/unit/content/detail/action/content_client_action_proof_gating.test.js   128 lines  5cf62114
  test/unit/content/detail/address_and_validator/content_client_address_staking.test.js   297 lines  d84f0782
  test/unit/content/detail/address_and_validator/content_client_validator_detail.test/support/helpers.js   230 lines  0e2023de
  test/unit/content/detail/anchor/content_client_anchor_detail.test.js   317 lines  7ccb8e0d
  test/unit/content/detail/anchor/content_client_anchor_sections_row.test.js   188 lines  32c1b35f
  test/unit/content/detail/bridge_and_xcall/content_client_bridge_invariant_gate.test.js    95 lines  68432f91
  test/unit/content/detail/bridge_and_xcall/content_client_bridge_panels.test.js   339 lines  5332a09b
  test/unit/content/detail/bridge_and_xcall/content_client_cross_chain_coin.test.js   178 lines  ea466cc4
  test/unit/content/detail/bridge_and_xcall/content_client_xcall_detail.test.js   137 lines  53f7ae6a
  test/unit/content/detail/bridge_and_xcall/content_client_xcall_timeline.test.js   302 lines  222cd675
  test/unit/content/detail/content_client_attest_batch_detail.test.js   174 lines  a1106964
  test/unit/content/detail/content_client_attestation_detail.test/support/helpers.js   273 lines  1380f8fd
  test/unit/content/detail/content_client_bet_detail.test.js         240 lines  875d0932
  test/unit/content/detail/content_client_price_detail.test.js       319 lines  83a9a979
  test/unit/content/detail/content_client_rollcall_gates.test.js     128 lines  50a24c4c
  test/unit/content/detail/poll/content_client_poll_detail.test.js   195 lines  146be013
  test/unit/content/detail/poll/content_client_poll_winning_option.test.js   362 lines  cf1e0fdf
  test/unit/content/detail/token_missing_tick_console.test.js         73 lines  21091f15
  test/unit/content/detail/unparseable/content_client_anchor_publisher_attestations_unparseable.test.js   112 lines  d300412c
  test/unit/content/detail/unparseable/content_client_attest_signatures_unparseable.test.js    91 lines  5ffb673e
  test/unit/content/detail/unparseable/content_client_price_pairs_unparseable.test.js    85 lines  21384a38
  test/unit/content/detail/unparseable/content_client_price_rounds_unparseable.test.js   121 lines  0102f239
  test/unit/content/detail/unparseable/content_client_price_signatures_unparseable.test.js    92 lines  74081529
  test/unit/content/detail/unparseable/content_client_vote_options_unparseable.test.js    82 lines  36997a19
  test/unit/content/detail_anchor_price_helpers.test.js              140 lines  c60398f8
  test/unit/content/lists/content_client_artwork_title.test.js       182 lines  16ae84e7
  test/unit/content/lists/content_client_collectibles_gallery.test.js   316 lines  85042245
  test/unit/content/lists/content_client_governance_overview.test.js   222 lines  69cc62da
  test/unit/content/lists/content_client_null_link_guard.test.js     105 lines  1b4f880c
  test/unit/content/lists/content_client_rich_list.test.js           333 lines  52fe73d6
  test/unit/content/lists/content_client_send_summary_shape.test.js   134 lines  6102e699
  test/unit/content/lists/content_client_system_summaries.test.js    122 lines  791c2bee
  test/unit/content/lists/content_client_transaction_empty_and_hash.test.js   170 lines  61f90ba6
  test/unit/content/lists/datatable/content_client_action_datatable.test.js   108 lines  e3666a0a
  test/unit/content/lists/datatable/content_client_action_markers.test.js   164 lines  889b18f9
  test/unit/content/lists/list_pages/content_client_list_membership.test.js   149 lines  f908405b
  test/unit/content/lists/list_pages/content_client_list_mirror_row.test.js    93 lines  c45d8a0b
  test/unit/content/lists/list_share/content_client_list_share_mirror.test.js    92 lines  075a9606
  test/unit/content/pages/checkpoint_verify_render.test.js           151 lines  169e7ff5
  test/unit/content/pages/client/content_client_detail_query.test.js   135 lines  bff16b3a
  test/unit/content/pages/client/content_client_dispenser_route.test.js   102 lines  de63dc1a
  test/unit/content/pages/client/content_client_freshness_banner.test.js   188 lines  a70656e8
  test/unit/content/pages/client/content_client_label_guards.test.js   160 lines  8fe42c4d
  test/unit/content/pages/client/content_client_market_pair.test.js   229 lines  31be6bee
  test/unit/content/pages/client/content_client_network_info_recovery.test.js   251 lines  0d46b1e8
  test/unit/content/pages/client/content_client_renderer_action_parity.test.js   347 lines  8efbaa7f
  test/unit/content/pages/client/content_client_xss.test.js          161 lines  fae43e9c
  test/unit/content/pages/client/search/search_destination.test.js   210 lines  3f5a8a53
  test/unit/content/pages/client/search/search_entry_points.test.js   183 lines  c1f07432
  test/unit/content/pages/client/search/support/boot.js               47 lines  58a17d6c
  test/unit/content/pages/content_bet_pools_and_order_status.test.js   223 lines  c07590a5
  test/unit/content/pages/content_fee_quote_verdict.test.js          212 lines  7990b507
  test/unit/content/unconfirmed_count_format.test.js                  59 lines  f3e8e72f
  test/unit/db/core/db_action_queries.test/support/files_lists_messages.js   258 lines  353931f1
  test/unit/db/core/db_action_queries.test/support/orders_swaps.js   366 lines  ca55c459
  test/unit/db/core/db_action_queries.test/support/pagination.js     160 lines  88d2c767
  test/unit/db/core/db_data_methods.test/support/decoder_health.js   295 lines  938ae448
  test/unit/db/core/db_execution_single_record.test.js                54 lines  e9ad2514
  test/unit/db/core/db_live_feed_real_ddl.test.js                    216 lines  d7d024d0
  test/unit/db/core/db_more_queries.test/support/blocks_and_search.js   393 lines  38e10eae
  test/unit/db/core/db_more_queries.test/support/contracts_and_staking.js   327 lines  27610704
  test/unit/db/core/db_more_queries.test/support/explorer_paging.js   364 lines  59adb62e
  test/unit/db/core/db_more_queries.test/support/projects_and_orders.js   410 lines  01c5e3d1
  test/unit/db/core/db_more_queries.test/support/query_execution.js   391 lines  d3863dc3
  test/unit/db/core/db_more_queries.test/support/query_offsets.js    279 lines  168a3758
  test/unit/db/core/db_query_builder.test/support/cross_chain.js     182 lines  ee5db3b5
  test/unit/db/core/db_query_builder.test/support/where_sql.js       290 lines  cd2842fd
  test/unit/db/mempool/db_mempool_reader_ownership.test.js           119 lines  24e73cea
  test/unit/db/mempool/decoder_mempool_reply_contract.test.js        161 lines  93265ef3
  test/unit/db/query_sql/count_joins.test.js                         183 lines  7bdd338e
  test/unit/db/query_sql/count_joins_real_ddl.test.js                172 lines  9ffe7d01
  test/unit/db/query_sql/data_totals.test.js                         213 lines  5a4cc716
  test/unit/db/query_sql/issues_ids_first_real_ddl.test.js           218 lines  af58967c
  test/unit/db/query_sql/keyset/keyset_binding.test.js               211 lines  af71478a
  test/unit/db/query_sql/keyset/keyset_requests.test.js              176 lines  ba28adf5
  test/unit/db/query_sql/source_lanes_real_ddl.test.js               224 lines  1573ea5e
  test/unit/db/query_sql/two_party_lanes_real_ddl.test.js            336 lines  20c89024
  test/unit/db/query_sql/where_action_clauses_builders.test.js       139 lines  1c1da528
  test/unit/db/query_sql/where_action_clauses_generic.test.js        154 lines  73b80d4c
  test/unit/db/query_sql/where_source_lanes.test.js                  346 lines  824d058d
  test/unit/db/readers/actions/db_action_source_attribution.test.js   127 lines  9f993a56
  test/unit/db/readers/actions/db_action_summary_field_contract.test.js   225 lines  f8521a51
  test/unit/db/readers/actions/db_actions_feed_paging_real_ddl.test.js   134 lines  b6787749
  test/unit/db/readers/actions/sends_destroys_whole_action_paging.test.js   155 lines  98210931
  test/unit/db/readers/bets/db_bet_feed_edit_overlay.test.js         109 lines  4892010d
  test/unit/db/readers/bridge_panels.test.js                          86 lines  663da008
  test/unit/db/readers/db_block_counts_cache.test.js                 188 lines  d3947147
  test/unit/db/readers/db_contract_meta.test/support/contract_list.js    94 lines  822d8b0f
  test/unit/db/readers/db_contract_meta.test/support/search.js       157 lines  37504d49
  test/unit/db/readers/search/contracts_name_fulltext_missing.test.js    70 lines  0e66da9d
  test/unit/db/readers/search/search_fulltext_index_missing.test.js   173 lines  51c6c627
  test/unit/db/readers/search/search_token_panel.test.js             168 lines  c824e05c
  test/unit/db/readers/search/support/index_probe.js                  66 lines  f3464282
  test/unit/explorer/feeds/explorer_commitments.test.js              337 lines  dfa7916e
  test/unit/explorer/feeds/explorer_commitments_binding.test.js      158 lines  fb996560
  test/unit/explorer/fees_preflight/fee_schedule_cache.test.js       219 lines  7e1d3fdd
  test/unit/explorer/paging_response/block_action_slots.test.js       97 lines  9500f3fc
  test/unit/explorer/paging_response/explorer_paging.test/support/helpers.js   145 lines  deaad4dd
  test/unit/explorer/paging_response/explorer_paging.test/support/methods.js   282 lines  3e0b466b
  test/unit/explorer/request/address_shape.test.js                   104 lines  71ad4a52
  test/unit/explorer/request/address_shape.test/support/address_encode.js    92 lines  9dc5344b
  test/unit/explorer/request/bare_detail.test.js                      93 lines  53a08858
  test/unit/explorer/request/detail_record.test.js                   183 lines  56f6eb4c
  test/unit/explorer/routes/explorer_bridge_invariant_states.test.js   149 lines  fa4a7d9f
  test/unit/explorer/routes/explorer_bridge_panel_routes.test.js     154 lines  531bf7e0
  test/unit/explorer/routes/explorer_bridge_routes.test.js            97 lines  091dccea
  test/unit/explorer/routes/explorer_list_all_routes.test.js         135 lines  254a7bb1
  test/unit/explorer/routes/explorer_routing.test.js                  82 lines  536bbc20
  test/unit/explorer/routes/protocol_lifecycle_routes.test.js        109 lines  2d3d65a9
  test/unit/helpers/source_slice.test.js                              78 lines  ff31bff6
  test/unit/http/api_boot/listen_host.test.js                        178 lines  96ab69ad
  test/unit/http/cache_control/cache_control_requests.test.js        151 lines  07b5b4d0
  test/unit/http/cache_control/cache_control_routes.test.js          132 lines  cedfe4b9
  test/unit/http/cache_control/cache_control_stamp.test.js           120 lines  6665582b
  test/unit/http/cache_control/support/app.js                         79 lines  8ae6851e
  test/unit/http/cors_rate_limit_headers.test.js                      62 lines  7ad32dbc
  test/unit/http/openapi_coverage.test.js                            275 lines  14d95cee
  test/unit/http/static_cache.test.js                                114 lines  c1c05b35
  test/unit/icons/icon_resolver.test.js                              417 lines  c64872a6
  test/unit/mirror/hub_mirror_list_share.test.js                     103 lines  3a39e4de
  test/unit/mirror/hub_schema_version.test.js                         41 lines  7736149f
  test/unit/mirror/validators_hub_registry.test/support/client_rendering.js   136 lines  9f861f3b
  test/unit/precision/client_decimal_precision.test.js               101 lines  75eb708f
  test/unit/protocol/consensus_primitive_conformance.test.js         256 lines  24841e9f
  test/unit/render/page_assets/page_asset_globals.test.js            107 lines  23c97b42
  test/unit/render/page_assets/page_asset_order.test.js              130 lines  dd9ce4b0
  test/unit/render/page_assets/page_asset_sets.test.js                80 lines  fb59a0f3
  test/unit/render/page_assets/page_assets.test.js                   132 lines  1f0d93cd
  test/unit/render/page_assets/support/compose.js                     52 lines  6abdfc29
  test/unit/render/page_assets/support/expected_assets.json          479 lines  f41da5a4
  test/unit/render/page_assets/support/global_scan.js                310 lines  093effc0
  test/unit/render/page_assets/support/page_closure.js               202 lines  e8995878
  test/unit/render/rocket_loader_optout.test.js                       47 lines  71450496
  test/unit/ws/broadcaster/action_routes.test.js                     163 lines  0108a665
  test/unit/ws/ws_catch_up_live_boundary.test.js                     165 lines  9fcaa2b3
  test/unit/ws/ws_tip_freshness_gate.test.js                         337 lines  cc447d38
  tools/theme-parity/README.md                                       224 lines  5befdc5d
  tools/theme-parity/baseline-2026-10-12-classic.json                193 lines  77925d8a
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-action.png   186 lines  8f9f3dfc
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-address.png   187 lines  a46636cb
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-coin_home.png   380 lines  863b3e3b
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-market.png   191 lines  15c28480
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-token.png   161 lines  ed6a53c2
  tools/theme-parity/baseline-2026-10-12-classic/classic-dark-transaction.png   140 lines  eea2081a
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-action.png   186 lines  8f9f3dfc
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-address.png   125 lines  86fdf4d6
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-coin_home.png   365 lines  47ae1796
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-market.png   191 lines  15c28480
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-token.png    91 lines  75091666
  tools/theme-parity/baseline-2026-10-12-classic/classic-light-transaction.png   140 lines  eea2081a
  tools/theme-parity/capture-baseline.js                             253 lines  fe25f06a
  tools/theme-parity/parity-probe.js                                 300 lines  0288f0c4

@midnest

midnest commented Oct 13, 2026

Copy link
Copy Markdown
Author

/recheck

@midnest

midnest commented Oct 13, 2026

Copy link
Copy Markdown
Author

recheck

@jdogresorg
jdogresorg changed the base branch from master to develop October 13, 2026 20:43
@jdogresorg

Copy link
Copy Markdown
Contributor

Thanks again for this work. One process note: contributions to XChain Platform go to develop, not master. master is what production runs and only takes release merges from develop, so I've retargeted this pull request to develop. The contributing guide and PR template now say this, and a base-branch guard check blocks pull requests into master from forks.

Because develop is ahead of master, the retarget may show conflicts. When you get a chance, please rebase the branch onto develop. No rush.

Adds Kaspa to xchain-decoder: 23 new file(s) and 7 existing file(s) touched for registration/wiring - no behaviour change for other chains. Satisfies the repository's eslint config; the coin file's role addresses are placeholders, not a personal wallet. Tests are in place (decoder family 91 / integration 2 against a real MariaDB / encoder 21 / node 20). The pull request description states what was verified and what was not.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants