Repository navigation
Release v0.21.3 - #55
Merged
Merged
Conversation
…formed stake --amount, and a mis-identified refused bootstrap archive (9643, 9700, 9701, 9721) (cherry picked from commit 9c6fb3368925f31ac55be8eec0a06bd7bb5df0e3)
…mmand lock in the self-update handoff, and honour the mutating lock wait for the self-update lock (cherry picked from commit 334560786e9bc07413bc1de09a2bf2046fe4cbbc)
Forward configured per-chain indexer URLs and API keys into each indexer service environment while omitting unset values. Cover all supported chains and the unset case with a focused unit test.
Resolve the three optional regtest activation inputs to one canonical height before stack installation. Carry the resolved values into the stack, both indexer configs, and the host drive environment while preserving the unset path.
Only add anchor activation keys to the generated drive environment when a resolved value is present. Cover the unset drive path so existing missing-value diagnostics remain unchanged.
Provide joined hash query construction, three-height comparison, control mutation, and the file-backed command interface. Cover match, mismatch, missing proof, control, and usage failure behavior.
Keep each test registration function within the repository readability limit while preserving the anchor arm workflow coverage.
Provide pure environment, Docker argument, and SQL planning functions with focused unit coverage.
Read comparison heights through the MariaDB driver, normalize the row JSON, and provide a secret-safe command line interface. Cover query behavior and usage failures with focused unit tests.
Keep each focused clone-plan suite within the structure readability limit.
Clone a forward follower for armed rail runs and compare canonical state hashes at the rehearsal boundary. Cover canonical arm resolution, follower ordering, and the injected mismatch control.
…xture readings (E-2-node-follower)
…nder the function length limit
Validate and propagate independent amounts and contracts arm values through hosted rail jobs.
Keep each test suite callback within the structure limit while preserving resolver and workflow coverage.
Resolve the BTC indexer and DOGE indexer and encoder through their published host ports. Verify every drive receives the three explicit loopback URLs without changing its generic bitcoin settings.
Wire the standing regtest hub to its internal Dogecoin encoder and generated signer only for anchor-arm runs. Cover every anchor input and the non-anchor control path in the workflow tests.
Plan and execute regtest miner funding for armed anchor rails. Cover wallet validation, RPC ordering, failures, and secret-safe output.
The hub container and regtest indexers now receive the stake and slash regtest activation variables beside the fold one, and a test proves shared-ledger indexers never receive them (E-3-hubpass).
A row now reads MISSING when any of its ledger, actions, contract or state hashes is null or undefined, so identical rows with a null hash no longer report MATCH (E-3-compare-null).
Zero arm activations are rejected up front with the comparator's at-least-1 rule, and the drive-env test asserts which keys and lines appear rather than a digit substring, so generated masked credentials cannot fail it at random (E-3-arm-zero).
Call scripts/rail_fund_publisher.js between the DOGE and BTC stack installs so the hub can pay for anchors before BTC checkpoints call for one; the script is a no-op with no anchor arm set. The mirror admission suite now grades only the stack-install calls (E-3-hub-anchors-p2).
Resolve the drive coin through the e2e rail helper when available and retain bitcoin as the compatibility fallback. Cover matrix wiring and both helper paths with an isolated workflow execution test.
A new boolean dispatch input, hub_llm (off by default and on the schedule), installs the hub image's pinned attestation CLI, makes a 0700 hub config dir outside the uploaded logs, and gives only the Run step the HUB_CLAUDE_CODE_OAUTH_TOKEN secret, masked before any output, so the attest-mirror venue hubs can answer llm attestation cases on the regtest rail. A unit test pins the gating, placement and masking.
With hub_llm on, the Run step makes one print turn with the venue hub's own spawn argv and credential env and prints the CLI's verdict (exit code, error fields, a redacted excerpt), because the hub logs only the CLI's stderr and an auth or vendor failure arrives on stdout. The probe never fails the leg and never prints the credential.
Validate optional leg expectation values and export them to hosted rail jobs without changing workflow dispatch inputs.
R-3 attempt 5 (run 37087438292) failed both legs in "Seed the rail federation": the seed runs as COIN=bitcoin, but the anchor_fold and anchor_bundle legs now write a dogecoin .env, so the e2e loader warned that .env.btc did not exist and pointed the seed at the DOGE stack. When the leg's coin is not bitcoin, the env step now also writes .env.btc, which xchain-e2e-test test/helpers/rail/coin_env.js loads for a COIN=bitcoin run.
Release v0.21.3 manifest
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this release carries
Added
Changed
Fixed
Testnet activation
MIRROR_ADMISSION_ACTIVATION.BTC:testnetonBTC:testnetat height154234MIRROR_ADMISSION_ACTIVATION.LTC:testnetonLTC:testnetat height4903068MIRROR_ADMISSION_ACTIVATION.DOGE:testnetonDOGE:testnetat height67936053MIRROR_ADMISSION_CONSUMER_ACTIVATION.BTC:testnetonBTC:testnetat height154291MIRROR_ADMISSION_CONSUMER_ACTIVATION.LTC:testnetonLTC:testnetat height4903291MIRROR_ADMISSION_CONSUMER_ACTIVATION.DOGE:testnetonDOGE:testnetat height67936888ANCHOR_ATTEST_BARRIER_ACTIVATION.BTC:testnetonBTC:testnetat height154291TOKEN_BRIDGE_ACTIVATION.BTC:testnetonBTC:testnetat height154567TOKEN_BRIDGE_ACTIVATION.LTC:testnetonLTC:testnetat height4903068TOKEN_BRIDGE_ACTIVATION.DOGE:testnetonDOGE:testnetat height67951140TOKEN_POLICY_INHERITANCE_ACTIVATION.BTC:testnetonBTC:testnetat height154567TOKEN_POLICY_INHERITANCE_ACTIVATION.LTC:testnetonLTC:testnetat height4903068TOKEN_POLICY_INHERITANCE_ACTIVATION.DOGE:testnetonDOGE:testnetat height67951140ORACLE_PRICE_AGE_HOURLY_ACTIVATION.BTC:testnetonBTC:testnetat height154778ORACLE_PRICE_AGE_HOURLY_ACTIVATION.LTC:testnetonLTC:testnetat height4905005ORACLE_PRICE_AGE_HOURLY_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956923ORACLE_HOURLY_WINDOW_FIRST_ROUND.testnetonoracle:testnetat height5082LIST_SHARE_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_SHARE_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_SHARE_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_SHARE_CONSUMER_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_SHARE_CONSUMER_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_SHARE_CONSUMER_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_UNION_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_UNION_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_UNION_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_TRANSFER_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_TRANSFER_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_TRANSFER_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_ADDRESS_REF_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_ADDRESS_REF_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_ADDRESS_REF_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_TICK_COIN_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_TICK_COIN_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_TICK_COIN_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922MARKET_LIST_SOURCE_ACTIVATION.BTC:testnetonBTC:testnetat height154777MARKET_LIST_SOURCE_ACTIVATION.LTC:testnetonLTC:testnetat height4905004MARKET_LIST_SOURCE_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_CHANGE_REMATCH_ACTIVATION.BTC:testnetonBTC:testnetat height154777LIST_CHANGE_REMATCH_ACTIVATION.LTC:testnetonLTC:testnetat height4905004LIST_CHANGE_REMATCH_ACTIVATION.DOGE:testnetonDOGE:testnetat height67956922LIST_SHARE_PRODUCER_ACTIVATION.BTC:testnetonBTC:testnetat height154777ANCHOR_BUNDLE_ORDER_ACTIVATION.BTC:testnetonBTC:testnetat height155001ANCHOR_BUNDLE_ORDER_ACTIVATION.LTC:testnetonLTC:testnetat height4906040ANCHOR_BUNDLE_ORDER_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387PRICE_V1_CANONICAL_ACTIVATION.BTC:testnetonBTC:testnetat block time1791061097PRICE_V1_CANONICAL_ACTIVATION.LTC:testnetonLTC:testnetat block time1791061097PRICE_V1_CANONICAL_ACTIVATION.DOGE:testnetonDOGE:testnetat block time1791061097STAKE_WEIGHT_COLLATION_ACTIVATION.BTC:testnetonBTC:testnetat height155001STAKE_WEIGHT_COLLATION_ACTIVATION.LTC:testnetonLTC:testnetat height4906040STAKE_WEIGHT_COLLATION_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387ANCHOR_FOLD_ACTIVATION.BTC:testnetonBTC:testnetat height155001ANCHOR_FOLD_ACTIVATION.LTC:testnetonLTC:testnetat height4906040ANCHOR_FOLD_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387ARCHIVE_SECTION_VERDICT_STATE_HASH_ACTIVATION.BTC:testnetonBTC:testnetat height155001ARCHIVE_SECTION_VERDICT_STATE_HASH_ACTIVATION.LTC:testnetonLTC:testnetat height4906040ARCHIVE_SECTION_VERDICT_STATE_HASH_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387AMOUNT_REPRESENTABILITY_ACTIVATION.BTC:testnetonBTC:testnetat block time1791061097AMOUNT_REPRESENTABILITY_ACTIVATION.LTC:testnetonLTC:testnetat block time1791061097AMOUNT_REPRESENTABILITY_ACTIVATION.DOGE:testnetonDOGE:testnetat block time1791061097ARCHIVE_MATCH_COUNT_ACTIVATION.BTC:testnetonBTC:testnetat height155001ARCHIVE_MATCH_COUNT_ACTIVATION.LTC:testnetonLTC:testnetat height4906040ARCHIVE_MATCH_COUNT_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387DISPENSER_SEND_AMOUNT_COMPARE_ACTIVATION.BTC:testnetonBTC:testnetat height155001DISPENSER_SEND_AMOUNT_COMPARE_ACTIVATION.LTC:testnetonLTC:testnetat height4906040DISPENSER_SEND_AMOUNT_COMPARE_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387LIST_OWNER_ACTIVATION.BTC:testnetonBTC:testnetat height155001LIST_OWNER_ACTIVATION.LTC:testnetonLTC:testnetat height4906040LIST_OWNER_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387PRICE_FEE_BATCH_LANDED_ACTIVATION.BTC:testnetonBTC:testnetat height155001PRICE_FEE_BATCH_LANDED_ACTIVATION.LTC:testnetonLTC:testnetat height4906040PRICE_FEE_BATCH_LANDED_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387SLASH_GRID_ACTIVATION.BTC:testnetonBTC:testnetat height155001SLASH_GRID_ACTIVATION.LTC:testnetonLTC:testnetat height4906040SLASH_GRID_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387SLASH_LEDGER_CONSOLIDATION_ACTIVATION.BTC:testnetonBTC:testnetat height155001SLASH_LEDGER_CONSOLIDATION_ACTIVATION.LTC:testnetonLTC:testnetat height4906040SLASH_LEDGER_CONSOLIDATION_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387DISPENSER_FRESHNESS_PROVEN_USE_ACTIVATION.BTC:testnetonBTC:testnetat block time1791061097DISPENSER_FRESHNESS_PROVEN_USE_ACTIVATION.LTC:testnetonLTC:testnetat block time1791061097DISPENSER_FRESHNESS_PROVEN_USE_ACTIVATION.DOGE:testnetonDOGE:testnetat block time1791061097DISPENSER_SETTLEMENT_PRICE_ACTIVATION.BTC:testnetonBTC:testnetat block time1791061097DISPENSER_SETTLEMENT_PRICE_ACTIVATION.LTC:testnetonLTC:testnetat block time1791061097DISPENSER_SETTLEMENT_PRICE_ACTIVATION.DOGE:testnetonDOGE:testnetat block time1791061097EMPTY_ALLOW_LIST_DENIES.BTC:testnetonBTC:testnetat height155001EMPTY_ALLOW_LIST_DENIES.LTC:testnetonLTC:testnetat height4906040EMPTY_ALLOW_LIST_DENIES.DOGE:testnetonDOGE:testnetat height67962387LIST_EDIT_REMOVE_ACTIVATION.BTC:testnetonBTC:testnetat block time1791061097LIST_EDIT_REMOVE_ACTIVATION.LTC:testnetonLTC:testnetat block time1791061097LIST_EDIT_REMOVE_ACTIVATION.DOGE:testnetonDOGE:testnetat block time1791061097TOKEN_GATE_LIST_AT_BLOCK.BTC:testnetonBTC:testnetat height155001TOKEN_GATE_LIST_AT_BLOCK.LTC:testnetonLTC:testnetat height4906040TOKEN_GATE_LIST_AT_BLOCK.DOGE:testnetonDOGE:testnetat height67962387ORDER_SWAP_MAKER_POLICY_ADMISSION.BTC:testnetonBTC:testnetat height155001ORDER_SWAP_MAKER_POLICY_ADMISSION.LTC:testnetonLTC:testnetat height4906040ORDER_SWAP_MAKER_POLICY_ADMISSION.DOGE:testnetonDOGE:testnetat height67962387LIST_REFERENCE_REQUIRES_VALID_LIST.BTC:testnetonBTC:testnetat height155001LIST_REFERENCE_REQUIRES_VALID_LIST.LTC:testnetonLTC:testnetat height4906040LIST_REFERENCE_REQUIRES_VALID_LIST.DOGE:testnetonDOGE:testnetat height67962387LIST_HEAD_FOLLOWS_EDIT_CHAIN.BTC:testnetonBTC:testnetat height155001LIST_HEAD_FOLLOWS_EDIT_CHAIN.LTC:testnetonLTC:testnetat height4906040LIST_HEAD_FOLLOWS_EDIT_CHAIN.DOGE:testnetonDOGE:testnetat height67962387CALLBACK_COMPENSATES_EVERY_DEBITED_HOLDER.BTC:testnetonBTC:testnetat height155001CALLBACK_COMPENSATES_EVERY_DEBITED_HOLDER.LTC:testnetonLTC:testnetat height4906040CALLBACK_COMPENSATES_EVERY_DEBITED_HOLDER.DOGE:testnetonDOGE:testnetat height67962387VOTE_CALLBACK_BINDING_REQUIRES_USABLE_METHOD.BTC:testnetonBTC:testnetat height155001VOTE_CALLBACK_BINDING_REQUIRES_USABLE_METHOD.LTC:testnetonLTC:testnetat height4906040VOTE_CALLBACK_BINDING_REQUIRES_USABLE_METHOD.DOGE:testnetonDOGE:testnetat height67962387ORDER_SWAP_PAYOUT_POLICY_PER_TOKEN.BTC:testnetonBTC:testnetat height155001ORDER_SWAP_PAYOUT_POLICY_PER_TOKEN.LTC:testnetonLTC:testnetat height4906040ORDER_SWAP_PAYOUT_POLICY_PER_TOKEN.DOGE:testnetonDOGE:testnetat height67962387ISSUE_POLICY_LIST_DETACH.BTC:testnetonBTC:testnetat height155001ISSUE_POLICY_LIST_DETACH.LTC:testnetonLTC:testnetat height4906040ISSUE_POLICY_LIST_DETACH.DOGE:testnetonDOGE:testnetat height67962387BRIDGE_POLICY_DETACH.BTC:testnetonBTC:testnetat height155001BRIDGE_POLICY_DETACH.LTC:testnetonLTC:testnetat height4906040BRIDGE_POLICY_DETACH.DOGE:testnetonDOGE:testnetat height67962387VM_LINT_OPTIONAL_CHAIN_ACTIVATION.BTC:testnetonBTC:testnetat height155001VM_LINT_OPTIONAL_CHAIN_ACTIVATION.LTC:testnetonLTC:testnetat height4906040VM_LINT_OPTIONAL_CHAIN_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387SWAP_EDIT_REMATCH_ACTIVATION.BTC:testnetonBTC:testnetat height155001SWAP_EDIT_REMATCH_ACTIVATION.LTC:testnetonLTC:testnetat height4906040SWAP_EDIT_REMATCH_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387protocol_changes.changes.BROADCAST_FEE_LENGTH.BTC:testnetonBTC:testnetat block time1791061097protocol_changes.changes.BROADCAST_FEE_LENGTH.LTC:testnetonLTC:testnetat block time1791061097protocol_changes.changes.BROADCAST_FEE_LENGTH.DOGE:testnetonDOGE:testnetat block time1791061097protocol_changes.changes.JSON_STRINGIFY_HOOK.BTC:testnetonBTC:testnetat block time1791061097protocol_changes.changes.JSON_STRINGIFY_HOOK.LTC:testnetonLTC:testnetat block time1791061097protocol_changes.changes.JSON_STRINGIFY_HOOK.DOGE:testnetonDOGE:testnetat block time1791061097protocol_changes.changes.CONTROLLER_CUSTODY_GUARD.BTC:testnetonBTC:testnetat block time1791061097protocol_changes.changes.CONTROLLER_CUSTODY_GUARD.LTC:testnetonLTC:testnetat block time1791061097protocol_changes.changes.CONTROLLER_CUSTODY_GUARD.DOGE:testnetonDOGE:testnetat block time1791061097LIST_META_ACTIVATION.BTC:testnetonBTC:testnetat height155001LIST_META_ACTIVATION.LTC:testnetonLTC:testnetat height4906040LIST_META_ACTIVATION.DOGE:testnetonDOGE:testnetat height67962387Release v0.21.3
Base:
masterat81f22c7ff8bea2a3251aa58c5e12e345885fca25Head:
release/v0.21.3at7608a65eed2c3cfe8d808c92a8412516885cd0f2Landed refs