Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
223 commits
Select commit Hold shift + click to select a range
7a345c2
Replace u64 with TaoCurrency: Builds, tests pass, not cleaned up
gztensor Feb 10, 2026
ade8b6f
Merge branch 'devnet-ready' into chore/imbalances
gztensor Feb 11, 2026
556c4f9
Replace as_64 with try_into
gztensor Feb 11, 2026
8898c76
Spec bump
gztensor Feb 11, 2026
d986ffa
fix zepter
gztensor Feb 11, 2026
8f6eb19
Rename:
gztensor Feb 12, 2026
8ab450b
Use .into() for AlphaBalance and TaoBalance whenever applicable in no…
gztensor Feb 12, 2026
0791daf
fmt
gztensor Feb 12, 2026
bcd4bc4
Merge branch 'devnet-ready' into chore/imbalances
gztensor Feb 19, 2026
7297278
Cleanup merge
gztensor Feb 19, 2026
14b7928
Spec bump
gztensor Feb 19, 2026
aedc1af
Implement ExistentialDeposit with parameter_types
gztensor Feb 19, 2026
3ec39f7
Add a TODO comment
gztensor Feb 19, 2026
b96a6ce
Fix swap_coldkey weights
gztensor Feb 24, 2026
9a94e1e
Merge cleanup
gztensor Feb 25, 2026
c2e3dcb
Fix ink e2e tests build
gztensor Feb 25, 2026
690cc23
Merge branch 'devnet-ready' into chore/imbalances
gztensor Feb 27, 2026
c089f20
Cleanup merge
gztensor Feb 27, 2026
63ed411
disable mev shield temporarily
l0r1s Feb 27, 2026
706addd
Fix undefined behavior on i64::MIN in modify_position
gztensor Feb 27, 2026
8da0930
hoist crypto dependencies and add zeroize
l0r1s Feb 9, 2026
e74a6da
introduce ShieldKeystore on node side
l0r1s Feb 9, 2026
9a839dc
add InherentDatapProvider for MEV shield
l0r1s Feb 9, 2026
0f8b685
add key rotation task on own block import
l0r1s Feb 9, 2026
abf16a6
remove old author/proposer tasks
l0r1s Feb 9, 2026
d037cd4
extract Executive Context
l0r1s Feb 9, 2026
fa310e9
remove keys default and swap safely
l0r1s Feb 9, 2026
b6f9430
make inherent public key possibly none in case of node failure
l0r1s Feb 9, 2026
a7f1a00
move shield client logic to own stc-shield crate
l0r1s Feb 9, 2026
dec0bc1
added shield primitives crate (stp-shield)
l0r1s Feb 9, 2026
4c31686
refactor MemoryShieldKeystore and implement ShieldKeystore
l0r1s Feb 9, 2026
0e595fd
fix types following stp-shield crate creation
l0r1s Feb 9, 2026
21f3586
remove unused deps from node
l0r1s Feb 9, 2026
fcf003c
added subtensor primitives for I/O aka custom host functions (stp-io)
l0r1s Feb 9, 2026
7514f44
fix imports and features
l0r1s Feb 9, 2026
0886208
stp-shield: added basic shield runtime API
l0r1s Feb 9, 2026
2deb9e4
fix type errors in node consensus
l0r1s Feb 9, 2026
fc50cf5
stp-io: aead_decrypt now returns Vec<u8> because unknown result size
l0r1s Feb 10, 2026
20560b0
add SubtensorHostFunctions to node
l0r1s Feb 10, 2026
f97ffef
rework the pallet-shield
l0r1s Feb 10, 2026
8190c14
implement stp_shield::ShieldApi Runtime API
l0r1s Feb 10, 2026
dc76f82
pallet-shield: expose Current and Next keys
l0r1s Feb 10, 2026
930c47c
pallet-shield: tx ext to filter based on used key
l0r1s Feb 11, 2026
211220e
pallet-shield: fix shielded transaction format
l0r1s Feb 11, 2026
0de248c
some renaming
l0r1s Feb 11, 2026
69c45da
fix some tx extensions org
l0r1s Feb 11, 2026
9e02c5a
move ShieldedTransaction to shield/primitives
l0r1s Feb 11, 2026
b852ebe
fix runtime API impl
l0r1s Feb 11, 2026
c29aed1
renaming
l0r1s Feb 12, 2026
258a112
simplify key rotation in pallet-shield
l0r1s Feb 13, 2026
317bafb
fix shield tx extension
l0r1s Feb 13, 2026
7c082e4
types in stp-shield and more logging
l0r1s Feb 13, 2026
a99c783
track CurrentKey and fix extension
l0r1s Feb 13, 2026
f67d84a
added tests for MemoryShieldKeystore
l0r1s Feb 13, 2026
5aeb9e5
added shielded_tx tests
l0r1s Feb 13, 2026
d1b2414
cargo fmt
l0r1s Feb 13, 2026
ceec904
added shield extension tests
l0r1s Feb 13, 2026
60f9d16
update comment
l0r1s Feb 13, 2026
d261b5a
added tests for pallet-shield
l0r1s Feb 13, 2026
60aac72
update workspace Cargo.toml
l0r1s Feb 14, 2026
4e1b6d2
fix Cargo.toml for pallet-shield and workspace
l0r1s Feb 14, 2026
0b06781
move stp-shield/stc-shield to polkadot-sdk to avoid circular deps
l0r1s Feb 14, 2026
4a999c1
update benchmarks
l0r1s Feb 14, 2026
e6ed136
update Cargo.toml/lock
l0r1s Feb 14, 2026
a51e27d
added migration to clear old storage + tests
l0r1s Feb 16, 2026
9b6df7b
commit Cargo.lock
l0r1s Feb 16, 2026
f5f7b07
cargo check
l0r1s Feb 16, 2026
cad4616
clippy fix
l0r1s Feb 16, 2026
f0aa894
update fix_rust script to match CI
l0r1s Feb 16, 2026
45e5db5
fix clippy with expect used for the stp-io methods
l0r1s Feb 16, 2026
72fce94
zepter fix
l0r1s Feb 16, 2026
7e4f2a5
fix benchmark compilation issue with rand stuff
l0r1s Feb 16, 2026
b16402c
use rand_chacha (portable + nostd) instead of OsRng in benchmarks
l0r1s Feb 17, 2026
08b4e13
downgrade rand_chacha back to 0.3.1
l0r1s Feb 17, 2026
ea32bcc
fix compilation issues after cherrypick on devnet-ready
l0r1s Feb 17, 2026
46079e6
move CustomTransactionError to subtensor common
l0r1s Feb 18, 2026
4a69de3
added new custom transaction error for shielded txs
l0r1s Feb 18, 2026
88baba8
bump frontier and psdk deps
l0r1s Feb 18, 2026
d2510e2
setup pnpm workspace for e2e
l0r1s Feb 18, 2026
523effd
added shared e2e package including node utils, chainspec and sequencer
l0r1s Feb 18, 2026
dd2894d
add helpers to e2e/shared/client
l0r1s Feb 18, 2026
60afe01
setup e2e/shield package for mev shields e2e tests
l0r1s Feb 18, 2026
a32d7c3
added e2e tests for shield
l0r1s Feb 18, 2026
824c108
added missing readmes
l0r1s Feb 19, 2026
143c301
move multiple tx in same block tests to basic/scaling
l0r1s Feb 19, 2026
ba0176a
fix rand crate api changes when upgrading
l0r1s Feb 19, 2026
dc6eb16
split E2E into another PR
l0r1s Feb 19, 2026
76c3e72
remove e2e workflow
l0r1s Feb 19, 2026
3c7842a
fix clippy
l0r1s Feb 19, 2026
fd2e30c
fix benchmarks
l0r1s Feb 19, 2026
9006e29
fix benchmarks
l0r1s Feb 19, 2026
142c27a
set longevity to 3 for mev shield txs
l0r1s Feb 23, 2026
0cd4752
bump spec version to 383
l0r1s Feb 25, 2026
f98af2a
fix post cherry-pick compilation issues
l0r1s Feb 25, 2026
38d7483
cleanup unused pallets in mock
l0r1s Feb 25, 2026
518bbb2
fix zepter
l0r1s Feb 25, 2026
12079f9
remove stp-io host functions
l0r1s Mar 2, 2026
917b208
move unshielding in WASM
l0r1s Mar 2, 2026
a76c5a6
fix compilation errors
l0r1s Mar 2, 2026
87f429f
update frontier and polkadot-sdk rev
l0r1s Mar 2, 2026
f65ccf8
Merge pull request #2472 from opentensor/disable-mev-shield
l0r1s Mar 2, 2026
a5e06c0
bump polkadot sdk and frontier commit hashes
l0r1s Mar 2, 2026
461784d
fix runtime-benchmarks + deps issues
l0r1s Mar 2, 2026
7ac9435
added benchmark test suite and fix mock/tests
l0r1s Mar 2, 2026
50ec244
update Cargo.lock
l0r1s Mar 2, 2026
cc99015
cargo fmt
l0r1s Mar 2, 2026
0979890
Merge branch 'devnet-ready' into mev-shield-rework-crypto-wasm
l0r1s Mar 2, 2026
fd614ce
bump spec version to 386
l0r1s Mar 3, 2026
6051977
fix compilation errors
l0r1s Mar 3, 2026
9ae4dcd
fix zepter
l0r1s Mar 3, 2026
d12c30f
fix tx payment wrapper tests
l0r1s Mar 3, 2026
71f32f5
fix clippy
l0r1s Mar 3, 2026
7f1b365
Revert "split E2E into another PR"
l0r1s Feb 20, 2026
e0d6514
Revert "remove e2e workflow"
l0r1s Feb 20, 2026
b7d8c17
convert from dedot to papi
l0r1s Feb 23, 2026
c451680
change tmp dire to /tmp/subtensor-e2e
l0r1s Feb 24, 2026
541c88d
added script to setup environment
l0r1s Feb 24, 2026
d7375c4
make bootstrap_types independent on papi
l0r1s Feb 24, 2026
46cb60a
added script to bootstrap a new package
l0r1s Feb 24, 2026
a079d48
added README
l0r1s Feb 24, 2026
91adf84
update pnpm lock
l0r1s Feb 24, 2026
8075440
update README to add dep
l0r1s Feb 24, 2026
d7e071a
build both binaries + bootstrap types in CI
l0r1s Feb 24, 2026
926e21d
workflow run on PR
l0r1s Feb 24, 2026
692c256
fix polkadot-api issue
l0r1s Feb 24, 2026
75e7da1
update README
l0r1s Feb 24, 2026
0365c50
compile only production and fast binaries
l0r1s Feb 25, 2026
356c77f
replace production build with release for e2e
l0r1s Feb 26, 2026
e8758ef
fix binaries download error
l0r1s Feb 26, 2026
2466c2a
fix binaries download error 2
l0r1s Feb 26, 2026
37fac12
remove renaming in workflow
l0r1s Feb 26, 2026
7fd8c96
Merge pull request #2477 from opentensor/mev-shield-rework-crypto-wasm
sam0x17 Mar 3, 2026
4d249b1
Merge pull request #2447 from opentensor/e2e-setup
l0r1s Mar 3, 2026
2c59e95
Update .gitignore
shamil-gadelshin Mar 2, 2026
6ae5cb4
Add staking tests
shamil-gadelshin Feb 27, 2026
cb50633
Update E2E workflow
shamil-gadelshin Mar 2, 2026
2b7144e
Fix unstake-all-alpha tests.
shamil-gadelshin Mar 4, 2026
651bf4c
- Add a possibility to revert hotkey back after the swap
evgeny-s Mar 4, 2026
6c16a18
- Updated HotkeySwapOnSubnetInterval to 1 day.
evgeny-s Mar 4, 2026
5ffd0cb
Merge branch 'devnet-ready' into chore/imbalances
gztensor Mar 4, 2026
250a881
- Added test `test_revert_hotkey_swap_stake_is_not_lost` + removed te…
evgeny-s Mar 4, 2026
f3554c6
merge devnet-ready
gztensor Mar 4, 2026
c33d603
Spec bump
gztensor Mar 4, 2026
65a6e8b
Fix zepter
gztensor Mar 4, 2026
ccde975
- Added stake to hk1 after swap
evgeny-s Mar 4, 2026
8e63fa0
- Moved tests to the correct file
evgeny-s Mar 4, 2026
d29c9e6
- Added test to check revert hotkey for parent keys and child keys
evgeny-s Mar 4, 2026
7207aa6
Fix benchmarks
gztensor Mar 4, 2026
7e26631
Fix zepter
gztensor Mar 4, 2026
cd637ac
Fix weights
gztensor Mar 4, 2026
69d77d7
Fix swap_stake weight
gztensor Mar 4, 2026
a582029
reduce uncessary data copy
open-junius Mar 5, 2026
5fca701
bump version
open-junius Mar 5, 2026
b271683
Merge pull request #2417 from opentensor/chore/imbalances
sam0x17 Mar 5, 2026
72ef608
- tests for: ParentKeys + Uid + AutoStakeDestination + SubnetOwnership
evgeny-s Mar 5, 2026
7bd2ca1
- tests for: Dividends
evgeny-s Mar 5, 2026
5ea4274
Migrate to vitest
shamil-gadelshin Mar 3, 2026
df3f2e8
- tests for: VotingPower
evgeny-s Mar 5, 2026
4be737a
- tests for: RootClaimed + RootClaimable
evgeny-s Mar 5, 2026
c95ae94
Merge pull request #2486 from opentensor/reduce-uncessary-copy
open-junius Mar 5, 2026
29a4a0f
Fix remove_stake_full_limit test
shamil-gadelshin Mar 5, 2026
71f983c
Fix unstake-all-alpha test.
shamil-gadelshin Mar 5, 2026
5391b4d
Change tempo for some tests
shamil-gadelshin Mar 5, 2026
b04f7d4
Merge branch 'devnet-ready' into evgeny-revert-swap-key
evgeny-s Mar 5, 2026
d3cb527
commit Cargo.lock
evgeny-s Mar 5, 2026
1cc0644
commit Cargo.lock
evgeny-s Mar 5, 2026
a715453
cargo clippy
evgeny-s Mar 5, 2026
5e85bb3
cargo fmt
evgeny-s Mar 5, 2026
75bffe9
added three to localnet
l0r1s Mar 5, 2026
7a80b64
simplify shield transaction extension and check in proposer
l0r1s Mar 5, 2026
54512d2
wrap CheckMortality extension with 64 block max for MEV tx
l0r1s Mar 5, 2026
f540449
PendingKey is n+1 block author key and Next is n+2
l0r1s Mar 5, 2026
05faeab
update deps
l0r1s Mar 5, 2026
e848d40
remove env variable from localnet
l0r1s Mar 5, 2026
893bfb0
Add check for `is_hotkey_registered_on_specific_network` when `netuid…
evgeny-s Mar 6, 2026
c62a01d
- Fix for clippy
evgeny-s Mar 6, 2026
1851b64
cargo clippy
l0r1s Mar 6, 2026
88ee35b
cargo fmt
l0r1s Mar 6, 2026
2834c6d
fix clippy
l0r1s Mar 6, 2026
c0c8da4
chore: re-trigger CI
shamil-gadelshin Mar 6, 2026
dbb7f68
remove find_next_author, fix benchmarks and tests
l0r1s Mar 6, 2026
8e47d08
renaming from public key to encapsulation key
l0r1s Mar 6, 2026
62c18b0
upgrade psdk hash with renaming
l0r1s Mar 6, 2026
3611ffd
cargo fmt
l0r1s Mar 6, 2026
c3e9712
cargo clippy
l0r1s Mar 6, 2026
8cc6696
fix chainspec
l0r1s Mar 6, 2026
f3971cf
override balance in localnet
l0r1s Mar 6, 2026
83a7ea2
fix benchmark failing to set digest logs
l0r1s Mar 6, 2026
5330770
mev txs era forced to be 8
l0r1s Mar 6, 2026
c38f0aa
bump spec
sam0x17 Mar 6, 2026
b27d999
fix basic tests + added timing tests
l0r1s Mar 6, 2026
d75e95c
added mortality test
l0r1s Mar 6, 2026
bc787e1
bump spec version + fix benchmarks
l0r1s Mar 6, 2026
790e7a1
added KeyExpiresAt to track key block expiration
l0r1s Mar 7, 2026
431cdef
cargo fmt
l0r1s Mar 7, 2026
741c596
Merge pull request #2481 from opentensor/e2e-update
sam0x17 Mar 9, 2026
24738c2
KeyExpiresAt map into split values for PendingKey/NextKey, unify tests
l0r1s Mar 9, 2026
a957cec
update README
l0r1s Mar 9, 2026
0a806ee
bump spec version to 389
l0r1s Mar 9, 2026
b3e5e11
fix benchmarks
l0r1s Mar 9, 2026
846416c
Merge branch 'devnet-ready' into fix-mev-shield-timing
l0r1s Mar 9, 2026
9f0aba2
Merge branch 'devnet' into fix-mev-shield-timing
l0r1s Mar 9, 2026
92de10f
extract BASE_DIR and fix bootstrap_types
l0r1s Mar 9, 2026
0d81657
added third node to staking tests due to chainspec update
l0r1s Mar 9, 2026
d19a79c
pnpm format
l0r1s Mar 9, 2026
89699da
fix bootstrap_types
l0r1s Mar 9, 2026
96004ea
fix path error
l0r1s Mar 9, 2026
6e62bc5
updated psdk and frontier hash to mev timing fix
l0r1s Mar 9, 2026
15483ad
Merge pull request #2488 from opentensor/fix-mev-shield-timing
sam0x17 Mar 10, 2026
af7d2b5
- cargo fmt
evgeny-s Mar 10, 2026
c2d5dbe
- runtime version bump
evgeny-s Mar 10, 2026
270f0a0
Merge branch 'devnet-ready' into evgeny-revert-swap-key
evgeny-s Mar 10, 2026
fa41075
- Use match instead
evgeny-s Mar 10, 2026
7590f9d
Merge pull request #2473 from opentensor/fix/liquidity_abs_undefined_…
sam0x17 Mar 10, 2026
27e32ab
- Added optional keep_stake parameter for swap_hotkey extrinsic
evgeny-s Mar 10, 2026
597ef89
- Fixed benchmarks
evgeny-s Mar 10, 2026
acfa24f
- Deprecate the current swap_hotkey extrinsic and add a new one - swa…
evgeny-s Mar 11, 2026
62e5824
- Fix clippy
evgeny-s Mar 11, 2026
2be9066
- Fixed parent-child delegation + added test
evgeny-s Mar 11, 2026
0c00167
- Fixed clippy
evgeny-s Mar 11, 2026
a78c36a
- Make keep_stake bool instead of Option<bool> + test fixes
evgeny-s Mar 11, 2026
5b28aed
- Reverted wrapping `parent_child_swap_hotkey` because it doesn't rel…
evgeny-s Mar 11, 2026
1af5008
Merge pull request #2487 from evgeny-s/evgeny-revert-swap-key
sam0x17 Mar 11, 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
148 changes: 148 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: E2E Tests

on:
pull_request:

workflow_dispatch:
inputs:
verbose:
description: "Output more information when triggered manually"
required: false
default: ""

env:
CARGO_TERM_COLOR: always

permissions:
contents: read

jobs:
# Build the node binary in both variants and share as artifacts.
build:
runs-on: [self-hosted, type-ccx33]
timeout-minutes: 60
strategy:
matrix:
include:
- variant: release
flags: ""
- variant: fast
flags: "--features fast-runtime"
env:
RUST_BACKTRACE: full
steps:
- name: Check-out repository
uses: actions/checkout@v4

- name: Install system dependencies
run: |
sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update
sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends \
-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \
build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config

- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable

- name: Utilize Shared Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: e2e-${{ matrix.variant }}
cache-on-failure: true

- name: Build node-subtensor (${{ matrix.variant }})
run: cargo build --profile release ${{ matrix.flags }} -p node-subtensor

- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: node-subtensor-${{ matrix.variant }}
path: target/release/node-subtensor
if-no-files-found: error

# Discover e2e packages that have a "test" script.
discover:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.find.outputs.packages }}
steps:
- name: Check-out repository
uses: actions/checkout@v4
with:
sparse-checkout: e2e

- name: Find testable packages
id: find
working-directory: e2e
run: |
packages=$(
find . -maxdepth 2 -name package.json -not -path './node_modules/*' \
| while read -r pkg; do
name=$(jq -r '.name // empty' "$pkg")
has_test=$(jq -r '.scripts.test // empty' "$pkg")
if [ -n "$has_test" ] && [ -n "$name" ]; then
echo "$name"
fi
done \
| jq -R -s -c 'split("\n") | map(select(. != ""))'
)
echo "packages=$packages" >> "$GITHUB_OUTPUT"
echo "Discovered packages: $packages"

# Run each e2e package's tests in parallel.
test:
needs: [build, discover]
if: ${{ needs.discover.outputs.packages != '[]' }}
runs-on: [self-hosted, type-ccx33]
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover.outputs.packages) }}
name: "e2e: ${{ matrix.package }}"
steps:
- name: Check-out repository
uses: actions/checkout@v4

- name: Download release binary
uses: actions/download-artifact@v4
with:
name: node-subtensor-release
path: target/release

- name: Download fast binary
uses: actions/download-artifact@v4
with:
name: node-subtensor-fast
path: target/fast

- name: Make binaries executable
run: chmod +x target/release/node-subtensor target/fast/node-subtensor

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: e2e/.nvmrc

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Bootstrap papi types
working-directory: e2e
run: ./bootstrap_types.sh --skip-build

- name: Install e2e dependencies
working-directory: e2e
run: pnpm install --frozen-lockfile

- name: Run tests
working-directory: e2e
env:
# Use fast-runtime binary for staking package, release binary for others
# Path is relative to package directory (e2e/<package>/)
BINARY_PATH: ${{ matrix.package == 'e2e-staking' && '../../target/fast/node-subtensor' || '../../target/release/node-subtensor' }}
run: pnpm --filter ${{ matrix.package }} test
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@ scripts/specs/local.json

# Node modules
node_modules

# Claude Code configuration
.claude
Loading
Loading