Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
76671f6
Add liquid alpha consensus modes
UnArbosSix Aug 11, 2026
777fe85
Align minimum liquid alpha with bond EMA
UnArbosSix Aug 11, 2026
53bace4
clippy
UnArbosSix Aug 12, 2026
f3165a6
retry e2e
UnArbosSix Aug 12, 2026
0bc75c8
Creating release 446
UnArbosFour Aug 12, 2026
ce2d6a6
Correct SubnetAlphaOut and refine conviction term
UnArbosFour Aug 12, 2026
1d31e2c
Fix generation-scoped alpha accounting and safely rebase recycled sub…
UnArbosFour Aug 11, 2026
1fbdd6c
Expose alpha counter cleanup phase in subnet precompile
UnArbosFour Aug 12, 2026
3cf8c4c
Add historical reconstruction of alpha burned
UnArbosFour Aug 12, 2026
8075e5f
Handle registration counters for subnets 116, 92, 40, 16, 58, 99, 90,…
UnArbosFour Aug 12, 2026
2dadde2
Temporarily allow alpha migrations on mainnet clones
UnArbosFour Aug 12, 2026
bd71460
Ignore local alpha accounting scanner data
UnArbosFour Aug 12, 2026
e6567cd
Revert "Temporarily allow alpha migrations on mainnet clones"
UnArbosFour Aug 13, 2026
9628b50
Guard alpha corrections by subnet generation
UnArbosFour Aug 13, 2026
b35a554
fix: keep timelock commitments when reveal fails
unarbos Aug 13, 2026
9bb5a76
fix: quarantine failed and expired timelock reveals
unarbos Aug 13, 2026
5717f90
Merge pull request #3078 from RaoFoundation/fix/alpha-accounting-446
UnArbosFour Aug 13, 2026
a2f6079
TimelockRevealFailedNotAllowed
UnArbosSix Aug 13, 2026
41fda81
add rust timelock commitments e2e
UnArbosSix Aug 13, 2026
959e703
Add consensus by mechanism storage
UnArbosFour Aug 13, 2026
35e8331
spec bump
UnArbosFour Aug 13, 2026
538e2a7
Merge branch 'release-v446' into agent/liquid-alpha-consensus-mode
UnArbosSix Aug 13, 2026
08ccfd9
fix e2e manifest
UnArbosSix Aug 13, 2026
479868e
address review
UnArbosFour Aug 13, 2026
8879c12
Merge branch 'agent/liquid-alpha-consensus-mode' of github.com:RaoFou…
UnArbosFour Aug 13, 2026
e6ed706
Update committed Python SDK metadata
UnArbosFour Aug 13, 2026
80c912c
RoundMismatch
UnArbosSix Aug 13, 2026
57cefe3
Fix tests
UnArbosFour Aug 13, 2026
462e29b
Merge pull request #3070 from RaoFoundation/agent/liquid-alpha-consen…
UnArbosFour Aug 13, 2026
9e58a64
add python e2e
UnArbosSix Aug 13, 2026
ed568d8
Fix GRANDPA set ID handling
UnArbosFive Jul 23, 2026
94dd956
Merge pull request #2971 from RaoFoundation/fix/grandpa-setid
UnArbosFive Aug 13, 2026
9eb28d9
Merge pull request #3080 from RaoFoundation/fix/timelock-reveal-keep-…
UnArbosSix Aug 13, 2026
55cc8cd
docs: complete v446 release documentation
UnArbosFive Aug 13, 2026
64285cc
docs: fix v446 release text spacing
UnArbosFive Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions .github/workflows/check-bittensor-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -448,11 +448,19 @@ jobs:
path: rust-e2e

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
for i in 1 2 3; do
if printf '%s' "$GHCR_TOKEN" \
| docker login ghcr.io --username "$GITHUB_ACTOR" --password-stdin; then
exit 0
fi
echo "GHCR login failed (attempt $i), retrying in $((i * 15))s..."
sleep $((i * 15))
done
printf '%s' "$GHCR_TOKEN" \
| docker login ghcr.io --username "$GITHUB_ACTOR" --password-stdin

- name: Pull Docker Image
# GHCR intermittently returns permission_denied/timeouts under the
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ sdk/python/dist/

# Local dev logs
*.log
.alpha-accounting-scanner/

# Claude Code configuration (skills are checked in; everything else is ignored)
# .claude/skills is a symlink to .agents/skills (single source of truth);
Expand Down
18 changes: 18 additions & 0 deletions docs/errors/chain/GrandpaChangeDelayMustBeZero.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: "GrandpaChangeDelayMustBeZero"
description: "Check the argument values against the operation schema"
---

{/* GENERATED by scripts/generate.py from the SDK registries — do not edit. */}

`schedule_grandpa_change` was given a nonzero `in_blocks` delay. GRANDPA authority changes submitted through AdminUtils must activate at the end of the current block so the authority set and its set ID remain consistent. Pass `in_blocks=0`.

Declared by the `AdminUtils` pallet; it classifies to the semantic code [`invalid_argument`](/docs/errors/invalid-argument).

Declared at [`pallets/admin-utils/src/lib.rs#L182`](/code/pallets/admin-utils/src/lib.rs#L182).

## Remediation

Check the argument values against the operation schema

The same explanation is available in the terminal: `btcli explain GrandpaChangeDelayMustBeZero`.
1 change: 1 addition & 0 deletions docs/errors/chain/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ The exact chain error name (from the extrinsic receipt) maps to a semantic [code
| [`GasLimitTooHigh`](/docs/errors/chain/GasLimitTooHigh) | [`invalid_argument`](/docs/errors/invalid-argument) | The transaction's `gas_limit` exceeds the block gas limit configured for the EVM. Compare the `gas_limit` argument against the chain's block gas limit and lower it. |
| [`GasLimitTooLow`](/docs/errors/chain/GasLimitTooLow) | [`invalid_argument`](/docs/errors/invalid-argument) | The transaction's `gas_limit` is below the intrinsic gas required, or too small to cover the weight and proof-size base cost. Raise the `gas_limit` argument, comparing against an `eth_estimateGas` result. |
| [`GasPriceTooLow`](/docs/errors/chain/GasPriceTooLow) | [`invalid_argument`](/docs/errors/invalid-argument) | The offered fee cannot satisfy the current base fee: `max_fee_per_gas` is below the block base fee, the priority fee exceeds the max fee, or the fee inputs are inconsistent. Check `max_fee_per_gas` and `max_priority_fee_per_gas` against the chain's base fee. |
| [`GrandpaChangeDelayMustBeZero`](/docs/errors/chain/GrandpaChangeDelayMustBeZero) | [`invalid_argument`](/docs/errors/invalid-argument) | `schedule_grandpa_change` was given a nonzero `in_blocks` delay. GRANDPA authority changes submitted through AdminUtils must activate at the end of the current block so the authority set and its set ID remain consistent. Pass `in_blocks=0`. |
| [`HotKeyAccountNotExists`](/docs/errors/chain/HotKeyAccountNotExists) | [`not_registered`](/docs/errors/not-registered) | The hotkey has no on-chain account, meaning it was never created through registration, so staking or delegation operations cannot reference it. Check the `Owner` storage for the hotkey or `btcli wallet overview`; register the hotkey on a subnet first. |
| [`HotKeyAlreadyDelegate`](/docs/errors/chain/HotKeyAlreadyDelegate) | [`already_exists`](/docs/errors/already-exists) | `become_delegate` was called for a hotkey that is already a delegate. Check the `Delegates` storage for the hotkey; if it has a take entry it is already delegating and no action is needed. |
| [`HotKeyAlreadyRegisteredInSubNet`](/docs/errors/chain/HotKeyAlreadyRegisteredInSubNet) | [`already_exists`](/docs/errors/already-exists) | A registration or hotkey swap targeted a hotkey that already holds a UID on the subnet (or, for a swap without a netuid, on any subnet). Check the `Uids` storage for the (netuid, hotkey) pair or `btcli wallet overview`; use a different hotkey or netuid. |
Expand Down
1 change: 1 addition & 0 deletions docs/errors/chain/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"GasLimitTooHigh",
"GasLimitTooLow",
"GasPriceTooLow",
"GrandpaChangeDelayMustBeZero",
"HotKeyAccountNotExists",
"HotKeyAlreadyDelegate",
"HotKeyAlreadyRegisteredInSubNet",
Expand Down
2 changes: 1 addition & 1 deletion docs/errors/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ A failed `execute` returns an `ExtrinsicResult` whose `error` has a semantic `co
| [`expired`](/docs/errors/expired) | 5 | The window has closed; restart the flow with fresh state |
| [`limit_exceeded`](/docs/errors/limit-exceeded) | 37 | A chain-side capacity limit was hit; reduce the size or count of the request |
| [`unit_mismatch`](/docs/errors/unit-mismatch) | — | Match the Balance netuid to the operation's currency |
| [`invalid_argument`](/docs/errors/invalid-argument) | 134 | Check the argument values against the operation schema |
| [`invalid_argument`](/docs/errors/invalid-argument) | 135 | Check the argument values against the operation schema |
| [`policy_violation`](/docs/errors/policy-violation) | 2 | The action exceeds a configured safety policy |
| [`internal`](/docs/errors/internal) | 19 | A chain-side invariant failed; nothing to fix client-side — report it if it persists |
| [`unknown`](/docs/errors/unknown) | — | Inspect the message for details |
1 change: 1 addition & 0 deletions docs/errors/invalid-argument.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ The exact chain error names (from the extrinsic receipt) that classify to `inval
| [`GasLimitTooHigh`](/docs/errors/chain/GasLimitTooHigh) | The transaction's `gas_limit` exceeds the block gas limit configured for the EVM. Compare the `gas_limit` argument against the chain's block gas limit and lower it. |
| [`GasLimitTooLow`](/docs/errors/chain/GasLimitTooLow) | The transaction's `gas_limit` is below the intrinsic gas required, or too small to cover the weight and proof-size base cost. Raise the `gas_limit` argument, comparing against an `eth_estimateGas` result. |
| [`GasPriceTooLow`](/docs/errors/chain/GasPriceTooLow) | The offered fee cannot satisfy the current base fee: `max_fee_per_gas` is below the block base fee, the priority fee exceeds the max fee, or the fee inputs are inconsistent. Check `max_fee_per_gas` and `max_priority_fee_per_gas` against the chain's base fee. |
| [`GrandpaChangeDelayMustBeZero`](/docs/errors/chain/GrandpaChangeDelayMustBeZero) | `schedule_grandpa_change` was given a nonzero `in_blocks` delay. GRANDPA authority changes submitted through AdminUtils must activate at the end of the current block so the authority set and its set ID remain consistent. Pass `in_blocks=0`. |
| [`IncorrectCommitRevealVersion`](/docs/errors/chain/IncorrectCommitRevealVersion) | The `commit_reveal_version` argument does not match the chain's current commit-reveal weights version. Query the `CommitRevealWeightsVersion` storage item and upgrade or configure the client to commit with that version. |
| [`IncorrectPartialFillAmount`](/docs/errors/chain/IncorrectPartialFillAmount) | The `partial_fill` amount is zero or exceeds the order's remaining unfilled amount, or a full execution was submitted against an order already partially filled. Compare `partial_fill` with `order.amount` minus the filled amount recorded in `Orders`. |
| [`IncorrectWeightVersionKey`](/docs/errors/chain/IncorrectWeightVersionKey) | The `version_key` supplied with set_weights is older than the subnet's required weights version. Compare it against the `WeightsVersionKey` hyperparameter (`btcli sudo get --netuid <n>`) and update the validator software or the key. |
Expand Down
Loading
Loading