Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
926f43a
flow back
lionakhnazarov Dec 12, 2025
5851b58
run on pr
lionakhnazarov Dec 12, 2025
a9e046d
Update contracts-ecdsa.yml
lionakhnazarov Dec 12, 2025
878d386
revert workflow dispatch
lionakhnazarov Dec 12, 2025
f4b9f0d
touch workflow
lionakhnazarov Dec 12, 2025
a5f9b73
merge
lionakhnazarov Apr 1, 2026
0fd1fb2
feat(electrum): add Testnet4 configuration and update network handling
lionakhnazarov Apr 8, 2026
fcc7e90
Remove dead Thesis Electrum URL from test cases and delete unused exp…
lionakhnazarov Apr 8, 2026
190f345
fix(ci): sync ECDSA yarn.lock and enable corepack for Yarn 4
lionakhnazarov Apr 8, 2026
bb0fba7
fix(ci): use Yarn 4 in ECDSA workflow and sync yarn.lock
lionakhnazarov Apr 8, 2026
7c358e0
fix(solidity): drop hardhat-chai-matchers; incompatible with hardhat-…
lionakhnazarov Apr 8, 2026
491d3b8
ci: enable Corepack Yarn 4 for npm and random-beacon Solidity workflows
lionakhnazarov Apr 8, 2026
811666a
fix(yarn): add fs-extra for @keep-network/hardhat-helpers (Yarn 4 str…
lionakhnazarov Apr 8, 2026
e58a757
ci: drop setup-node yarn cache (fixes Yarn 1 vs packageManager Yarn 4)
lionakhnazarov Apr 8, 2026
30a61d0
ci: set GIT_CONFIG_GLOBAL for Yarn git dependencies on GitHub Actions
lionakhnazarov Apr 8, 2026
0298b46
fix(dependencies): update ethereumjs-abi resolution to npm:0.6.8 in p…
lionakhnazarov Apr 8, 2026
7c4a3fd
fix(yarn): add package extensions for eth-sig-util to pin ethereumjs-…
lionakhnazarov Apr 8, 2026
1d4f699
fix(yarn): update ethereumjs-abi resolution to git URL in ECDSA and r…
lionakhnazarov Apr 8, 2026
808e5f5
ci: enhance Git configuration for Yarn dependencies in workflows
lionakhnazarov Apr 8, 2026
4832f37
feat(deployments): add Sepolia deployment files and update .gitignore…
lionakhnazarov Apr 15, 2026
48456e4
ci: remove unnecessary Git configuration for Yarn in workflows
lionakhnazarov Apr 15, 2026
3d1e416
refactor: clean up hardhat configuration and streamline error handlin…
lionakhnazarov Apr 15, 2026
f414b33
ci: update Git configuration for Yarn to ensure compatibility and imp…
lionakhnazarov Apr 15, 2026
bc34ea2
ci: add GIT_CONFIG_PARAMETERS to enhance Git configuration for Yarn s…
lionakhnazarov Apr 15, 2026
ffda158
ci: standardize Git configuration for Yarn setup across workflows
lionakhnazarov Apr 15, 2026
68c8b5b
ci: standardize Git configuration for Yarn setup across multiple work…
lionakhnazarov Apr 15, 2026
e71c17c
ci: standardize Git configuration for Yarn setup across additional wo…
lionakhnazarov Apr 15, 2026
acbf61d
ci: enhance Git configuration for Yarn setup by introducing a wrapper…
lionakhnazarov Apr 15, 2026
9a1afbd
ci: remove redundant Git configuration for Yarn setup across multiple…
lionakhnazarov Apr 15, 2026
6ed8ca1
ci: improve Git configuration for Yarn setup by defining a global con…
lionakhnazarov Apr 15, 2026
e959945
ci: unify Git configuration for Yarn setup across multiple workflows …
lionakhnazarov Apr 15, 2026
8ea5c64
ci: unify Git configuration for Yarn setup across additional workflow…
lionakhnazarov Apr 15, 2026
bde9d11
ci: remove global Git configuration for Yarn setup across workflows t…
lionakhnazarov Apr 15, 2026
1d44aae
ci: add YARN_IGNORE_ENGINES environment variable to workflows for imp…
lionakhnazarov Apr 15, 2026
99ffc82
ci: remove YARN_IGNORE_ENGINES environment variable from workflows to…
lionakhnazarov Apr 15, 2026
2559620
ci: add environment variables for Git wrapper in Yarn setup to enhanc…
lionakhnazarov Apr 15, 2026
d514dd4
ci: remove unused GIT_CONFIG_PARAMETERS from Yarn setup to streamline…
lionakhnazarov Apr 15, 2026
51f3aec
ci: disable YARN_ENABLE_HARDENED_MODE in workflows to improve Yarn se…
lionakhnazarov Apr 15, 2026
01558a2
ci: update Yarn lockfile resolutions to use codeload URLs for improve…
lionakhnazarov Apr 15, 2026
a599e44
ci: update package.json and yarn.lock to use codeload URLs for eslint…
lionakhnazarov Apr 15, 2026
26d3bd3
ci: add YARN_CHECKSUM_BEHAVIOR environment variable to workflows for …
lionakhnazarov Apr 15, 2026
0dc5dca
fix: improve error handling and compatibility checks in token staking…
lionakhnazarov Apr 15, 2026
aa8cfde
chore: include './types' directory in TypeScript configuration for be…
lionakhnazarov Apr 15, 2026
7d50563
chore: update Dockerfile to use Node.js 18-alpine for improved perfor…
lionakhnazarov Apr 15, 2026
165ad06
feat: augment TokenStaking types with slashing queue methods for enha…
lionakhnazarov Apr 15, 2026
5d3bc29
feat: enhance Hardhat configuration and deployment script to support …
lionakhnazarov Apr 15, 2026
d275775
refactor: remove redundant source path check for deploy scripts in Ha…
lionakhnazarov Apr 15, 2026
74feab4
feat: add support for overriding deploy path in Hardhat configuration…
lionakhnazarov Apr 15, 2026
73351d3
feat: enhance deployment script to skip TokenStaking on local network…
lionakhnazarov Apr 15, 2026
c30f24b
refactor: update WalletRegistry tests to utilize legacyTokenStaking i…
lionakhnazarov Apr 15, 2026
e5ec904
refactor: clean up authorization test code for improved readability a…
lionakhnazarov Apr 15, 2026
c46dbd8
refactor: streamline WalletRegistry test cases for clarity and consis…
lionakhnazarov Apr 15, 2026
002a141
refactor: correct type import for Operator in WalletRegistry test to …
lionakhnazarov Apr 15, 2026
ac0ec9f
refactor: update WalletRegistry test fixture to run full deployments …
lionakhnazarov Apr 15, 2026
a99e62e
refactor: update Hardhat configuration to prefer committed random-bea…
lionakhnazarov Apr 15, 2026
a279483
chore: add 'external/' to .eslintignore to exclude external dependenc…
lionakhnazarov Apr 15, 2026
cc02e74
refactor: enhance setup-git-for-yarn action by creating safe temporar…
lionakhnazarov Apr 16, 2026
75a72df
chore: update .dockerignore to exclude hidden files while allowing .y…
lionakhnazarov Apr 16, 2026
b18f7d0
chore: update Dockerfile to include .yarnrc.yml in the build context …
lionakhnazarov Apr 16, 2026
613589a
chore: update workflows to use local reusable-solidity-docs.yml for d…
lionakhnazarov Apr 16, 2026
c5ec819
refactor: update currentBlock method to use latest block header inste…
lionakhnazarov Apr 16, 2026
e5bb494
refactor: increase channel buffer size in WatchBlocks method to reduc…
lionakhnazarov Apr 16, 2026
0d505de
refactor: clean up context assignment in WatchBlocks method for impro…
lionakhnazarov Apr 16, 2026
c4b4d0b
test: add transient error handling for Electrum and Ethereum integrat…
lionakhnazarov Apr 16, 2026
d3e3dda
chore: update Hardhat configuration to include TODO for re-enabling h…
lionakhnazarov Apr 17, 2026
9576545
refactor: adjust skipIfAlreadyDeployed logic in DKG validator deploym…
lionakhnazarov Apr 17, 2026
8daa3f8
chore: update Electrum testnet URLs to include additional servers and…
lionakhnazarov Apr 17, 2026
306fada
test: adjust target block estimation for Electrum integration tests o…
lionakhnazarov Apr 17, 2026
a8b46ab
test: enhance Electrum integration tests by skipping tests without av…
lionakhnazarov Apr 19, 2026
459dbb5
chore: update Electrum testnet configuration by removing deprecated s…
lionakhnazarov Apr 19, 2026
d6f0ba0
test: introduce stale server threshold in Electrum integration tests …
lionakhnazarov Apr 19, 2026
178cdf1
chore: add prepare script to package.json and enhance initializeWalle…
lionakhnazarov Apr 24, 2026
29a7e95
chore: update deployment configurations for Sepolia with new contract…
lionakhnazarov Apr 24, 2026
2acb8dc
docs(ecdsa): align withdrawRewards NatSpec with authorization routing
lionakhnazarov Apr 27, 2026
be8d9f1
chore: implement Etherscan verification handling in deployment script…
lionakhnazarov Apr 27, 2026
26985e8
chore: update Sepolia deployment configurations with new contract add…
lionakhnazarov Apr 29, 2026
91d5a22
chore: enhance TBTC initialization by incorporating Ethereum network-…
lionakhnazarov Apr 29, 2026
e394645
chore: add EcdsaDkgValidator contract support in TBTC initialization …
lionakhnazarov Apr 30, 2026
140407d
chore: implement transaction mining wait logic in BitcoinDifficultyCh…
lionakhnazarov Apr 30, 2026
1cf21eb
feat: add IdleOnPreflightFailure configuration to BitcoinDifficulty m…
lionakhnazarov Apr 30, 2026
8ae75e5
feat: implement fee estimation with fallback targets in Electrum for …
lionakhnazarov May 2, 2026
c06979a
feat: enhance fee estimation logic in Electrum and improve BitcoinDif…
lionakhnazarov May 3, 2026
cf85179
chore: update Sepolia deployment configurations with new contract add…
lionakhnazarov May 3, 2026
f716224
refactor: standardize formatting in Electrum tests and TbtcChain init…
lionakhnazarov May 20, 2026
dd47502
refactor: improve TestWatchCoordinationWindows by using a determinist…
lionakhnazarov May 20, 2026
449d85d
feat: add test for stale nonce handling in inactivity claim submissio…
lionakhnazarov May 20, 2026
93ac20f
fix: add mutex for memberFailures to ensure thread-safe error handlin…
lionakhnazarov May 20, 2026
f40bf8c
fix: restore slither flag and get-func-name resolution lost in rebase
piotr-roslaniec May 23, 2026
60293a2
chore: regenerate ecdsa yarn.lock after restoring get-func-name resol…
piotr-roslaniec May 23, 2026
b8f618f
chore(deps): pin handlebars and immutable to non-vulnerable versions
piotr-roslaniec May 23, 2026
c090b1a
fix(ecdsa): remove duplicate Allowlist type import
piotr-roslaniec May 23, 2026
b780dc3
fix(spv): compute required proof headers from actual header difficulties
lionakhnazarov Jun 12, 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
49 changes: 49 additions & 0 deletions .github/actions/setup-git-for-yarn/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Setup Git for Yarn (git dependencies)
description: >
Configure Git so Yarn can clone dependencies (e.g. thesis/eslint-config) on
GitHub-hosted runners. Sets GIT_CONFIG_GLOBAL and GIT_CONFIG_NOSYSTEM to avoid
broken system config ("invalid key core.autocrlf" / unable to write config).
runs:
using: composite
steps:
- name: Configure Git for Yarn clones
shell: bash
run: |
set -euo pipefail
SAFE_TMP="${RUNNER_TEMP:-/tmp}"
WRAPPER_DIR="${RUNNER_TEMP:-/tmp}/git-clean-bin"
SAFE_HOME="${SAFE_TMP}/git-clean-home"
SAFE_XDG_CONFIG_HOME="${SAFE_TMP}/git-clean-xdg-config"
REAL_GIT="$(command -v git)"

mkdir -p "$WRAPPER_DIR" "$SAFE_HOME" "$SAFE_XDG_CONFIG_HOME"
printf '%s\n' \
'#!/usr/bin/env bash' \
'set -euo pipefail' \
'unset GIT_CONFIG_PARAMETERS' \
"while IFS='=' read -r key _; do" \
' case "$key" in' \
' GIT_CONFIG_*) unset "$key" ;;' \
' esac' \
'done < <(env)' \
"export HOME=\"${SAFE_HOME}\"" \
"export XDG_CONFIG_HOME=\"${SAFE_XDG_CONFIG_HOME}\"" \
'export GIT_CONFIG_GLOBAL=/dev/null' \
'export GIT_CONFIG_NOSYSTEM=1' \
'export GIT_CONFIG_SYSTEM=/dev/null' \
'export GIT_CONFIG_COUNT=0' \
"if ! pwd >/dev/null 2>&1; then cd \"${SAFE_TMP}\"; fi" \
"exec \"${REAL_GIT}\" \"\$@\"" \
>"${WRAPPER_DIR}/git"
chmod +x "${WRAPPER_DIR}/git"
{
echo "GIT=${WRAPPER_DIR}/git"
echo "npm_config_git=${WRAPPER_DIR}/git"
echo "HOME=${SAFE_HOME}"
echo "XDG_CONFIG_HOME=${SAFE_XDG_CONFIG_HOME}"
echo "GIT_CONFIG_GLOBAL=/dev/null"
echo "GIT_CONFIG_NOSYSTEM=1"
echo "GIT_CONFIG_SYSTEM=/dev/null"
echo "GIT_CONFIG_COUNT=0"
} >> "$GITHUB_ENV"
echo "${WRAPPER_DIR}" >> "$GITHUB_PATH"
4 changes: 2 additions & 2 deletions .github/workflows/contracts-ecdsa-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
needs.docs-detect-changes.outputs.path-filter == 'true'
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
uses: keep-network/ci/.github/workflows/reusable-solidity-docs.yml@main
uses: ./.github/workflows/reusable-solidity-docs.yml
with:
projectDir: /solidity/ecdsa
publish: false
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
contracts-docs-publish:
name: Publish contracts documentation
needs: contracts-docs-prepublish-wait
uses: keep-network/ci/.github/workflows/reusable-solidity-docs.yml@main
uses: ./.github/workflows/reusable-solidity-docs.yml
with:
projectDir: /solidity/ecdsa
publish: true
Expand Down
162 changes: 144 additions & 18 deletions .github/workflows/contracts-ecdsa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,32 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

- name: Build
run: yarn build
Expand All @@ -83,8 +104,6 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock

- uses: actions/setup-python@v4
with:
Expand All @@ -103,8 +122,31 @@ jobs:
SLITHER_VERSION: 0.8.3
run: pip3 install slither-analyzer==$SLITHER_VERSION

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

# As a workaround for a slither issue https://github.com/crytic/slither/issues/1140
# we disable compilation of dependencies when running slither.
Expand All @@ -126,11 +168,32 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

- name: Build solidity contracts
run: yarn build
Expand All @@ -154,11 +217,32 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

- name: Deploy contracts
run: yarn deploy:test
Expand Down Expand Up @@ -188,12 +272,33 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock
registry-url: "https://registry.npmjs.org"

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

- name: Get upstream packages versions
uses: keep-network/ci/actions/upstream-builds-query@v2
Expand Down Expand Up @@ -289,12 +394,33 @@ jobs:
# artifacts generation during `hardhat compile` - see
# https://github.com/NomicFoundation/hardhat/issues/3877
node-version: "18.15.0"
cache: "yarn"
cache-dependency-path: solidity/ecdsa/yarn.lock
registry-url: "https://registry.npmjs.org"

- uses: ./.github/actions/setup-git-for-yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
run: |
export PATH="${RUNNER_TEMP:-/tmp}/git-clean-bin:$PATH"
unset GIT_CONFIG_PARAMETERS
export GIT_CONFIG_NOSYSTEM=1
export GIT_CONFIG_SYSTEM=/dev/null
export GIT_CONFIG_COUNT=0
export YARN_ENABLE_HARDENED_MODE=0
export YARN_CHECKSUM_BEHAVIOR=ignore
corepack enable
corepack prepare yarn@4.8.1 --activate
yarn --version
unset_args=()
while IFS='=' read -r key _; do
case "$key" in
GIT_CONFIG_*) unset_args+=("-u" "$key") ;;
esac
done < <(env)
env "${unset_args[@]}" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable

- name: Get upstream packages versions
uses: keep-network/ci/actions/upstream-builds-query@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/contracts-random-beacon-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
needs.docs-detect-changes.outputs.path-filter == 'true'
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
uses: keep-network/ci/.github/workflows/reusable-solidity-docs.yml@main
uses: ./.github/workflows/reusable-solidity-docs.yml
with:
projectDir: /solidity/random-beacon
publish: false
Expand All @@ -60,7 +60,7 @@ jobs:
name: Publish contracts documentation
needs: docs-detect-changes
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/solidity/')
uses: keep-network/ci/.github/workflows/reusable-solidity-docs.yml@main
uses: ./.github/workflows/reusable-solidity-docs.yml
with:
projectDir: /solidity/random-beacon
publish: true
Expand Down
Loading