Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ad21acd
Bump docker/setup-buildx-action from 3.10.0 to 3.11.0 (#359)
dependabot[bot] Jun 16, 2025
c28eadb
Bump coverage from 7.8.2 to 7.9.1 (#362)
dependabot[bot] Jun 16, 2025
b3aa186
Bump py-ecc from 7.0.1 to 8.0.0 (#361)
dependabot[bot] Jun 16, 2025
747b1ab
Bump pytest-asyncio from 0.26.0 to 1.0.0 (#363)
dependabot[bot] Jun 16, 2025
6d537fd
Bump typing-extensions from 4.13.2 to 4.14.0 (#364)
dependabot[bot] Jun 16, 2025
50336ce
Remove trailing whitespace (#369)
yorickdowne Jun 22, 2025
4b5471b
Change repo to ethstaker (#365)
yorickdowne Jun 22, 2025
133d9e8
Bump pydantic in the pydantic-deps group across 1 directory (#366)
dependabot[bot] Jun 22, 2025
4901297
Group all dependabot PRs (#367)
yorickdowne Jun 26, 2025
3a94965
Bump the pip-deps group with 4 updates (#375)
dependabot[bot] Jun 28, 2025
f3cbada
Bump docker/setup-buildx-action from 3.11.0 to 3.11.1 (#370)
dependabot[bot] Jun 28, 2025
092980f
add missing partial_deposit/arg_withdrawal_address/mismatch text (#376)
ydm Jul 4, 2025
66479dc
Bump the pip-deps group with 4 updates (#377)
dependabot[bot] Jul 8, 2025
7b8762a
Bump ruff from 0.12.2 to 0.12.3 in the pip-deps group (#378)
dependabot[bot] Jul 15, 2025
f6dd246
Add more precision to our attempt at clearing the clipboard (#380)
remyroy Jul 15, 2025
1e3b1af
Add backports.asyncio.runner for Python < 3.11 (#384)
yorickdowne Aug 2, 2025
2418a9d
Remove Win11-ARM Rust workaround (#383)
yorickdowne Aug 2, 2025
999c090
Bump the pip-deps group across 1 directory with 5 updates (#387)
dependabot[bot] Aug 4, 2025
23df261
Bump the actions-deps group with 2 updates (#388)
dependabot[bot] Aug 4, 2025
965d1eb
feat: make amount contextful on partial deposit (#382)
Wagalidoom Aug 7, 2025
9f62ab1
Bump the pip-deps group with 3 updates (#389)
dependabot[bot] Aug 18, 2025
e9ce215
Bump the pip-deps group with 4 updates (#393)
dependabot[bot] Aug 26, 2025
bf36867
Bump the actions-deps group across 1 directory with 2 updates (#391)
dependabot[bot] Aug 26, 2025
10a5805
Bump the actions-deps group with 4 updates (#394)
dependabot[bot] Sep 8, 2025
2adfaa8
Bump the pip-deps group with 6 updates (#395)
dependabot[bot] Sep 8, 2025
c06810e
Bump the pip-deps group with 3 updates (#396)
dependabot[bot] Sep 16, 2025
bb1420c
Bump pydantic from 2.11.7 to 2.11.9 in the pydantic-deps group (#397)
dependabot[bot] Sep 16, 2025
593cddb
Bump the pip-deps group with 4 updates (#398)
dependabot[bot] Sep 24, 2025
4a791d9
New generate mnemonic command (#392)
remyroy Sep 25, 2025
c45039f
Bump docker/login-action from 3.5.0 to 3.6.0 in the actions-deps grou…
dependabot[bot] Sep 29, 2025
5517a73
Bump the pip-deps group with 2 updates (#400)
dependabot[bot] Sep 29, 2025
27e13e5
Remove Holesky, replace with Hoodi (#404)
yorickdowne Oct 2, 2025
65dd60b
generate-mnemonic docs don't show as new-mnemonic (#403)
yorickdowne Oct 2, 2025
725ff02
Use macos15-intel for macOS x64 build (#401)
yorickdowne Oct 2, 2025
e125d22
Bump pydantic from 2.11.9 to 2.11.10 in the pydantic-deps group (#405)
dependabot[bot] Oct 6, 2025
f563949
Bump the pip-deps group with 2 updates (#406)
dependabot[bot] Oct 6, 2025
2956de7
Bump the pip-deps group with 2 updates (#408)
dependabot[bot] Oct 7, 2025
65b7176
Bump the pydantic-deps group across 1 directory with 2 updates (#409)
dependabot[bot] Oct 7, 2025
8f60ff0
Dependabot updates uv (#410)
yorickdowne Oct 7, 2025
673cc81
Remove Python 3.9 support (#385)
yorickdowne Oct 8, 2025
7f401f5
Start testing on Python 3.14 (#368)
yorickdowne Oct 8, 2025
c47ce59
Move version into version.py (#411)
yorickdowne Oct 8, 2025
73dc044
Improve version handling for dependabot (#412)
yorickdowne Oct 8, 2025
0af6347
Bump click from 8.1.8 to 8.3.0 in the pip-deps group (#413)
dependabot[bot] Oct 8, 2025
8fd9a48
Merge remote-tracking branch 'upstream/main' into feat/new-upstream-c…
mxmar Oct 9, 2025
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
17 changes: 16 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,30 @@ updates:
pydantic-deps:
patterns:
- "pydantic*"
pip-deps:
patterns:
- "*"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
groups:
docker-deps:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "npm"
groups:
actions-deps:
patterns:
- "*"
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "weekly"
groups:
uv-deps:
patterns:
- "*"
6 changes: 3 additions & 3 deletions .github/release_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@

# Building process

Release assets were built using Github Actions and [this workflow run](`[WORKFLOW-RUN-URL]`). You can establish the provenance of this build using [our artifact attestations](https://github.com/eth-educators/ethstaker-deposit-cli/attestations).
Release assets were built using Github Actions and [this workflow run](`[WORKFLOW-RUN-URL]`). You can establish the provenance of this build using [our artifact attestations](https://github.com/ethstaker/ethstaker-deposit-cli/attestations).

With [the GitHub CLI](https://cli.github.com/) installed, a simple way to verify these assets is to run this command while replacing `[filename]` with the path to the downloaded asset:

```console
gh attestation verify [filename] --repo eth-educators/ethstaker-deposit-cli
gh attestation verify [filename] --repo ethstaker/ethstaker-deposit-cli
```

This step requires you to be online. If you want to perform this offline, follow [these instructions from GitHub](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/verifying-attestations-offline).
Expand All @@ -40,4 +40,4 @@ This step requires you to be online. If you want to perform this offline, follow

## License

By downloading and using this software, you agree to the [license](LICENSE).
By downloading and using this software, you agree to the [license](LICENSE).
42 changes: 14 additions & 28 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,15 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm, macos-13, macos-latest, windows-latest, windows-11-arm]
os: [ubuntu-22.04, ubuntu-22.04-arm, macos-15-intel, macos-latest, windows-latest, windows-11-arm]
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install rustup (Windows 11 ARM64)
if: matrix.os == 'windows-11-arm'
shell: pwsh
run: |
Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe" -OutFile rustup-init.exe
.\rustup-init.exe --default-toolchain none -y
"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
- name: Install Rust (Windows 11 ARM64)
if: matrix.os == 'windows-11-arm'
shell: pwsh
run: |
rustup install stable
rustup target add aarch64-pc-windows-msvc
- name: Set up variables (Linux & macOS)
if: ${{ startsWith(matrix.os, 'ubuntu-') || startsWith(matrix.os, 'macos-') }}
env:
Expand Down Expand Up @@ -117,7 +103,7 @@ jobs:
$env:CHECKSUM_FILE_NAME_PATH = ("output\artifacts\" + $env:ZIP_FILE_NAME + ".sha256")
certUtil -hashfile $env:ZIP_FILE_NAME SHA256 | findstr /i /v "SHA256" | findstr /i /v "CertUtil" > $env:CHECKSUM_FILE_NAME_PATH
- name: Generate artifacts attestation
uses: actions/attest-build-provenance@v2
uses: actions/attest-build-provenance@v3
with:
subject-path: output/artifacts/*
- name: Archive production artifacts
Expand All @@ -137,11 +123,11 @@ jobs:
metadata: ${{ steps.push.outputs.metadata }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
# Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here.
- name: Log in to the Container registry
# This pinned action came from docker/login-action@v3, releases can be found on https://github.com/docker/login-action/releases
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand All @@ -150,7 +136,7 @@ jobs:
- name: Extract metadata (tags, labels) for Docker
id: meta
# This pinned action came from docker/metadata-action@v5, releases can be found on https://github.com/docker/metadata-action/releases
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# Set up Qemu for multi-arch build
Expand All @@ -160,7 +146,7 @@ jobs:
# Set up buildx for multi-arch build
- name: Set up Docker Buildx
# This pinned action came from docker/setup-buildx-action@v3, releases can be found on https://github.com/docker/setup-buildx-action/releases
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
Expand All @@ -174,10 +160,10 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)."

# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)."
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
uses: actions/attest-build-provenance@v3
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
subject-digest: ${{ steps.push.outputs.digest }}
Expand All @@ -188,14 +174,14 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Download build binaries
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
path: assets/
pattern: binary-*
- name: Create draft release
uses: actions/github-script@v7
uses: actions/github-script@v8
env:
DOCKER_IMAGE_METADATA: '${{ needs.build-and-push-docker.outputs.metadata }}'
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
coverage: ${{ steps.output.outputs.coverage }}
steps:
- name: Get coverage job success
uses: actions/github-script@v7
uses: actions/github-script@v8
env:
WORKFLOW_RUN_ID: '${{ github.event.workflow_run.id }}'
with:
Expand Down Expand Up @@ -58,14 +58,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
with:
name: results
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Comment on PR
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Setup mdBook
# This pinned action came from peaceiris/actions-mdbook@v2, releases can be found on https://github.com/peaceiris/actions-mdbook/releases
Expand Down
42 changes: 13 additions & 29 deletions .github/workflows/runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.12
cache: 'pip'
Expand All @@ -28,7 +28,7 @@ jobs:
- name: Run linter
run: ruff check ./ethstaker_deposit ./tests
- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: 'latest'
- name: Install jsonlint
Expand All @@ -48,42 +48,26 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-13, macos-latest, windows-latest, windows-11-arm]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-15-intel, macos-latest, windows-latest, windows-11-arm]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
exclude:
- os: windows-11-arm
python-version: "3.9"
- os: windows-11-arm
python-version: "3.10"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install rustup (Windows 11 ARM64)
if: matrix.os == 'windows-11-arm'
shell: pwsh
run: |
Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/aarch64-pc-windows-msvc/rustup-init.exe" -OutFile rustup-init.exe
.\rustup-init.exe --default-toolchain none -y
"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
- name: Install Rust (Windows 11 ARM64)
if: matrix.os == 'windows-11-arm'
shell: pwsh
run: |
rustup install stable
rustup target add aarch64-pc-windows-msvc
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt -r requirements_test.txt
- name: Run tests
run: |
coverage run --data-file=.coverage.${{ matrix.os }}.${{ matrix.python-version }} -m pytest tests
- name: Upload coverage data
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.os }}-${{ matrix.python-version }}
Expand All @@ -99,14 +83,14 @@ jobs:
actions: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.12
cache: 'pip'
- name: Download coverage data
uses: actions/download-artifact@v4
uses: actions/download-artifact@v5
- name: Merge coverage data
id: merge
run: |
Expand Down Expand Up @@ -134,5 +118,5 @@ jobs:
- name: Upload final coverage text report
uses: actions/upload-artifact@v4
with:
name: results
path: results/
name: results
path: results/
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ repos:
rev: v1.14.1
hooks:
- id: mypy
additional_dependencies:
additional_dependencies:
- click==8.1.8
- eth-typing==5.1.0
- eth-utils==5.1.0
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VENV_NAME?=venv
VENV_ACTIVATE=. $(VENV_NAME)/bin/activate
PYTHON=${VENV_NAME}/bin/python3.12
DOCKER_IMAGE="eth-educators/ethstaker-deposit-cli:latest"
DOCKER_IMAGE="ghcr.io/ethstaker/ethstaker-deposit-cli:latest"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use DOCKER_REGISTRY: europe-docker.pkg.dev
DOCKER_IMAGE_NAME: lks-lz-artifacts/docker-key-gen-cli/lukso-key-gen-cli
I think you also need gcloud login so you can push there.


help:
@echo "clean - remove build and Python file artifacts"
Expand Down
80 changes: 40 additions & 40 deletions build_configs/windows/build.spec
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller.utils.hooks import copy_metadata
datas = [
('..\\..\\ethstaker_deposit\\key_handling\\key_derivation\\word_lists\\*.txt', '.\\ethstaker_deposit\\key_handling\\key_derivation\\word_lists'),
('..\\..\\ethstaker_deposit\\intl', '.\\ethstaker_deposit\\intl'),
]
datas += copy_metadata('py_ecc')
datas += copy_metadata('ssz')
block_cipher = None
a = Analysis(['..\\..\\ethstaker_deposit\\deposit.py'],
binaries=[],
datas=datas,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='deposit',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller.utils.hooks import copy_metadata

datas = [
('..\\..\\ethstaker_deposit\\key_handling\\key_derivation\\word_lists\\*.txt', '.\\ethstaker_deposit\\key_handling\\key_derivation\\word_lists'),
('..\\..\\ethstaker_deposit\\intl', '.\\ethstaker_deposit\\intl'),
]
datas += copy_metadata('py_ecc')
datas += copy_metadata('ssz')

block_cipher = None


a = Analysis(['..\\..\\ethstaker_deposit\\deposit.py'],
binaries=[],
datas=datas,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='deposit',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
2 changes: 1 addition & 1 deletion deposit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then
python -m ethstaker_deposit "$@"

else
echo "Sorry, to run deposit-cli on" $(uname -s)", please see the trouble-shooting on https://github.com/eth-educators/ethstaker-deposit-cli"
echo "Sorry, to run deposit-cli on" $(uname -s)", please see the trouble-shooting on https://github.com/ethstaker/ethstaker-deposit-cli"
exit 1

fi
Loading