Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
567 commits
Select commit Hold shift + click to select a range
3b9f99b
proto(frost/roast): add coordinator_package_proofs to LocalEvidenceSn…
mswilkison Jun 15, 2026
cb4307e
docs(frost/roast): fix stale conflictingSigningPackageEnvelope commen…
mswilkison Jun 15, 2026
e3eb0ce
Phase 7.2b-4b: surface coordinator-signed package proofs (collector) …
mswilkison Jun 15, 2026
a5b2d7d
feat(frost/roast): carry coordinator package proofs in LocalEvidenceS…
mswilkison Jun 15, 2026
5b4b656
fix(frost/roast): pre-allocation byte caps on snapshot/bundle Unmarsh…
mswilkison Jun 15, 2026
128b58d
Phase 7.2b-4b PR2: carry coordinator package proofs in LocalEvidenceS…
mswilkison Jun 15, 2026
1cdc1bd
feat(frost/roast): Phase 7.2b-4b PR3 - instant coordinator-equivocati…
mswilkison Jun 15, 2026
72f06ae
Phase 7.2b-4b PR3: instant coordinator-equivocation exclusion in Next…
mswilkison Jun 15, 2026
3c490fb
Phase 7.2b-4: engine VerifySignatureShare FFI bridge (cgo)
mswilkison Jun 16, 2026
3a40f06
Fold #4069 self-review: test the decoder's malformed-JSON error path
mswilkison Jun 16, 2026
e7b1caf
Phase 7.2b-4: engine VerifySignatureShare FFI bridge (cgo) (#4069)
mswilkison Jun 16, 2026
f1e5878
Phase 7.2b-4: engine-backed Round2ShareVerifier (concrete blame seam)
mswilkison Jun 16, 2026
add4b89
Fold #4070 review: fix frost_native test build (P1) + share-package b…
mswilkison Jun 16, 2026
48e8bbd
Phase 7.2b-4: engine-backed Round2ShareVerifier (concrete blame seam)…
mswilkison Jun 16, 2026
3212528
Phase 7.3 PR1: interactive signing-session cgo bridge (open/round1/ro…
mswilkison Jun 16, 2026
b70c944
Fold #4072 review: 0-based RFC -> 1-based wire attempt number (P2) + …
mswilkison Jun 16, 2026
2678d8d
Phase 7.3 PR1: interactive signing-session cgo bridge (open/round1/ro…
mswilkison Jun 16, 2026
7a60dc9
Phase 7.3 PR1b: interactive_aggregate cgo bridge + candidate-culprit …
mswilkison Jun 16, 2026
d0edfef
Phase 7.3 PR1b: interactive_aggregate cgo bridge + candidate-culprit …
mswilkison Jun 16, 2026
7d6e2db
Phase 7.3: Coordinator.MarkSucceeded (success transition; no spurious…
mswilkison Jun 16, 2026
90f310a
Phase 7.3: Coordinator.MarkSucceeded (success transition; no spurious…
mswilkison Jun 16, 2026
456ac9a
Phase 7.3 PR3a-i: runner harness foundation (ActiveRoastAttempt + in-…
mswilkison Jun 16, 2026
8120b82
Fold #4075 review: enforce ActiveRoastAttempt DKG-key consistency + c…
mswilkison Jun 16, 2026
3ba8ee6
Fold #4075 re-review: snapshot bus payload per delivery (P2 aliasing)
mswilkison Jun 16, 2026
765062b
Phase 7.3 PR3a-i: runner harness foundation (ActiveRoastAttempt + in-…
mswilkison Jun 16, 2026
7a1b0b5
Phase 7.3 PR3a-ii (runner, part 1): engine interface + programmable fake
mswilkison Jun 16, 2026
e1d91be
Phase 7.3 PR3a-ii (runner, part 2): happy-path orchestration + multi-…
mswilkison Jun 16, 2026
202496c
Fold #4076 review: harden runner collection loops (Gemini + Codex P1/P2)
mswilkison Jun 16, 2026
12b3d2e
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
f544c02
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
608809a
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
4ec8281
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
95985c1
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
9cca150
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 16, 2026
89d627c
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 17, 2026
4df818a
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 17, 2026
edf6472
fixup! frost(7.3): happy-path interactive signing runner
mswilkison Jun 17, 2026
d26eb29
Phase 7.3 PR3a-ii: happy-path interactive signing runner (multi-node,…
mswilkison Jun 17, 2026
7aa5ea4
frost(7.3): Go cgo bridge for DeriveInteractiveAttemptContext
mswilkison Jun 17, 2026
60b3d54
frost(7.3): reject frost-identifier/participant count mismatch in decode
mswilkison Jun 17, 2026
2612b6b
frost(7.3): bind each decoded FROST identifier to its participant (Co…
mswilkison Jun 17, 2026
9dc0f3a
Phase 7.3: Go cgo bridge for DeriveInteractiveAttemptContext (#4078)
mswilkison Jun 17, 2026
7264be6
frost(7.3): wire the runner to engine-derived attempt context (retire…
mswilkison Jun 17, 2026
9697058
frost(7.3): compare the engine coordinator in uint16 space (self-review)
mswilkison Jun 17, 2026
0e99b54
frost(7.3): make sameMemberSet reject duplicates (self-review)
mswilkison Jun 17, 2026
0ff355b
Phase 7.3: wire the runner to engine-derived attempt context (retire …
mswilkison Jun 17, 2026
5572e5e
frost(7.3): pkg/net transport adapter for the runner bus (foundation)
mswilkison Jun 17, 2026
875383b
frost(7.3): net/local integration tests for the runner bus adapter
mswilkison Jun 17, 2026
3dd9a77
frost(7.3): reject out-of-range sender ids + don't suppress dropped m…
mswilkison Jun 17, 2026
394be69
frost(7.3): correct the overflow-drop rationale; size streams above h…
mswilkison Jun 17, 2026
89dd1a2
Phase 7.3: pkg/net transport adapter for the interactive signing runn…
mswilkison Jun 17, 2026
256dc00
feat(frost): wire gated single-attempt interactive ROAST signing into…
mswilkison Jun 17, 2026
7c71f83
fix(frost): thread the per-Execute attempt handle into the interactiv…
mswilkison Jun 17, 2026
a10b031
docs(frost): mark the interactive engine provider deferral at the cgo…
mswilkison Jun 18, 2026
4828159
feat(frost): wire gated single-attempt interactive ROAST signing into…
mswilkison Jun 18, 2026
c740573
feat(frost): stable member-scoped ROAST session key + transition reco…
mswilkison Jun 18, 2026
cb61990
fix(frost): fold Codex review (#4082) - drive binds stable id; select…
mswilkison Jun 18, 2026
3d1e9c0
fix(frost): re-scope PR2a - defer ROAST selector consumption to PR2b …
mswilkison Jun 18, 2026
86d2cdb
fix(frost): fold Codex round 3 (#4082) - key-path startBlock + coordi…
mswilkison Jun 18, 2026
a589f78
feat(frost): stable member-scoped ROAST session key + transition reco…
mswilkison Jun 18, 2026
e22e610
feat(frost): member-level participant selection (7.3 PR2b-1a)
mswilkison Jun 18, 2026
585b704
feat(frost): member-level participant selection (7.3 PR2b-1a) (#4083)
mswilkison Jun 18, 2026
f4c6a15
feat(frost): observe-attempt foundation for ROAST transitions (7.3 PR…
mswilkison Jun 18, 2026
c12df14
feat(frost): ROAST transition exchange engine (7.3 PR2b-1b C2 part 1)
mswilkison Jun 18, 2026
ceb7b1f
feat(frost): wire ROAST transition exchange into the signing loop (7.…
mswilkison Jun 18, 2026
3eb0e96
feat(frost): activate ROAST member-level selection with fail-closed (…
mswilkison Jun 18, 2026
bef131e
chore(frost): retire cleanup transition producer + wire registry swee…
mswilkison Jun 18, 2026
73e60a2
fix(frost): parking-aware attempt context (7.3 PR2b-1b review fix, B1…
mswilkison Jun 18, 2026
1d1cc62
fix(frost): decouple ROAST attempt number + thread transient parking …
mswilkison Jun 18, 2026
b5ca70b
fix(frost): lost-sync detection + clear-on-success (7.3 PR2b-1b revie…
mswilkison Jun 18, 2026
78e9bef
fix(frost): review-pass hardening (7.3 PR2b-1b)
mswilkison Jun 18, 2026
3a6da25
fix(frost): key active signing attempt off committed ROAST number (7.…
mswilkison Jun 19, 2026
ca542b5
test(frost): cover active-attempt parking thread + clarify Number doc…
mswilkison Jun 19, 2026
557ddb9
fix(frost): gate ROAST-active on transition producer availability (7.…
mswilkison Jun 19, 2026
cf14464
test(frost): skip active-ROAST tests without a transition producer (7…
mswilkison Jun 19, 2026
292d3e6
feat(frost): ROAST transition distribution + member-level selection (…
mswilkison Jun 19, 2026
4829c92
feat(frost): member-keyed ROAST coordinator registry (7.3 PR2b-1.5, f…
mswilkison Jun 19, 2026
3b0017c
feat(frost): thread per-member ROAST deps through observe/exchange/se…
mswilkison Jun 19, 2026
e031eca
test(frost): multi-seat elected-seat aggregation acceptance test (7.3…
mswilkison Jun 19, 2026
649ca28
test(frost): non-vacuous multi-seat test + review folds (7.3 PR2b-1.5)
mswilkison Jun 19, 2026
fa9a5c3
fix(frost): process-level ROAST activation + fail-closed on partial r…
mswilkison Jun 19, 2026
58c20ef
fix(frost): disable coarse evidence path under multi-seat (7.3 PR2b-1…
mswilkison Jun 19, 2026
36427ce
test(tbtc): tag signer-material resolver tests to their build flavour
mswilkison Jun 19, 2026
e2bd437
fix(frost): fail closed on partial multi-seat orchestration (7.3 PR2b…
mswilkison Jun 19, 2026
7322edc
fix(frost): classify multi-seat orchestration fail-closed as terminal…
mswilkison Jun 19, 2026
d9dc0fc
test(tbtc): tag signer-material resolver tests to their build flavour…
mswilkison Jun 19, 2026
2cc36ef
feat(frost): multi-seat per-seat ROAST coordinator deps (7.3 PR2b-1.5…
mswilkison Jun 19, 2026
df4d5fb
feat(frost): member-key the ROAST session-handle binding (7.3 PR2b-2 …
mswilkison Jun 19, 2026
5aa9953
fix(frost): submit reject/conflict-only ROAST evidence snapshots (PR2…
mswilkison Jun 19, 2026
8c369c3
feat(frost): member-key the ROAST session-handle binding (7.3 PR2b-2 …
mswilkison Jun 19, 2026
b3ff29a
feat(frost): route coarse ROAST evidence into the transition bundle (…
mswilkison Jun 19, 2026
c3aa36c
feat(frost): route coarse ROAST evidence into the transition bundle (…
mswilkison Jun 19, 2026
79014c9
feat(frost): carry coordinator-equivocation proofs into the bundle (7…
mswilkison Jun 19, 2026
3f091da
feat(frost): carry coordinator-equivocation proofs into the bundle (7…
mswilkison Jun 19, 2026
64a727c
test(frost): fault-injection coverage for the ROAST blame bridge (7.3…
mswilkison Jun 19, 2026
33fee4b
test(frost): fault-injection coverage for the ROAST blame bridge (7.3…
mswilkison Jun 19, 2026
96ae5a3
feat(frost): wire interactive share-verification blame into the bundl…
mswilkison Jun 19, 2026
0f6e5f9
feat(frost): wire interactive share-verification blame into the bundl…
mswilkison Jun 19, 2026
40f7d36
feat(frost): carry the chosen signing subset in the signed package (7…
mswilkison Jun 19, 2026
80cf249
feat(frost): carry the chosen signing subset in the signed package (7…
mswilkison Jun 19, 2026
c7524ad
feat(frost): finalize interactive signing over the first t responsive…
mswilkison Jun 19, 2026
2d915a7
fix(frost): retain included non-signers' divergent shares as equivoca…
mswilkison Jun 19, 2026
9a2d113
feat(frost): finalize interactive signing over the first t responsive…
mswilkison Jun 19, 2026
0671d99
feat(frost): conclude the oversized signing done check by signature q…
mswilkison Jun 19, 2026
e179e1d
test(frost): multi-node interactive signing e2e over the real pkg/net…
mswilkison Jun 19, 2026
33bae67
feat(frost): register the cgo engine as the interactive signing provi…
mswilkison Jun 19, 2026
a533c78
test(frost): make the interactive-provider tests order-independent (f…
mswilkison Jun 19, 2026
79ea845
feat(frost): conclude the signing done check on the t-subset (7.3 t-o…
mswilkison Jun 19, 2026
eb35661
test(frost): multi-node interactive signing e2e over the real pkg/net…
mswilkison Jun 19, 2026
054f51b
feat(frost): register the cgo engine as the interactive signing provi…
mswilkison Jun 20, 2026
67b9530
test(frost): real-cgo interactive signing e2e via a DKG-persisted key…
mswilkison Jun 20, 2026
fc84a7c
test(frost): isolate signer state for the real-cgo interactive e2e (f…
mswilkison Jun 20, 2026
23ec717
test(frost): skip the real-cgo e2e on any unavailable FFI symbol, not…
mswilkison Jun 20, 2026
9934a63
test(frost): validate one signer's real-crypto interactive contributi…
mswilkison Jun 20, 2026
76f686a
test(frost): state precisely what the real-cgo interactive test does …
mswilkison Jun 20, 2026
d9f9042
test(frost): make the real-cgo interactive test repeatable in-process…
mswilkison Jun 20, 2026
f4953b8
test(frost): real-cgo interactive signing — single-signer real-crypto…
mswilkison Jun 20, 2026
04c0459
test(frost): real-cgo multi-seat interactive 2-of-3 aggregate in one …
mswilkison Jun 20, 2026
a13e150
test(frost): skip the multi-seat e2e on a pre-fix lib + pin the attem…
mswilkison Jun 20, 2026
a9aed42
feat(frost): no-coarse-fallback mode for coarse-path retirement (defa…
mswilkison Jun 20, 2026
9816ccf
test(frost): real-cgo multi-seat interactive 2-of-3 aggregate in one …
mswilkison Jun 20, 2026
57fa35a
fix(frost): enforce no-coarse-fallback at the single coarse-invocatio…
mswilkison Jun 20, 2026
5fae0df
fix(frost): close outer native fallbacks + classify the refusal terminal
mswilkison Jun 20, 2026
e719210
fix(frost): fail closed at the legacy + native backends under the no-…
mswilkison Jun 21, 2026
d1589fa
feat(frost): no-coarse-fallback mode for coarse-path retirement (defa…
mswilkison Jun 21, 2026
04f9958
test(frost): real-crypto multi-node e2e — runners over real pkg/net +…
mswilkison Jun 21, 2026
556997d
ci(frost): pre-merge cgo gate that builds the pinned lib + runs real-…
mswilkison Jun 21, 2026
f625b73
feat(frost): interactive-signing observability counters (handoff §6.3)
mswilkison Jun 21, 2026
8c08d23
feat(frost): expose the interactive-signing + roast-retry counters at…
mswilkison Jun 21, 2026
8747c82
feat(frost): real-crypto multi-node e2e + pre-merge cgo CI gate (hand…
mswilkison Jun 21, 2026
b439903
feat(frost): interactive-signing observability counters (handoff §6.3…
mswilkison Jun 21, 2026
6447344
feat(frost): fail closed on an incompatible libfrost_tbtc FFI contrac…
mswilkison Jun 22, 2026
347d5ea
fix(frost): ABI incompatibility must not fall back to legacy signing
mswilkison Jun 22, 2026
a463dab
ci(frost): run the ABI fail-closed test in the cgo gate
mswilkison Jun 22, 2026
f64afe7
fix(frost): reject ABI version payloads missing required fields
mswilkison Jun 22, 2026
402911a
feat(frost): fail closed on an incompatible libfrost_tbtc FFI contrac…
mswilkison Jun 22, 2026
532453b
Merge remote-tracking branch 'origin/main' into pr-3866-conflict-reso…
mswilkison Jun 22, 2026
97d32d3
Retain ROAST self-snapshot mutation evidence
mswilkison Jun 22, 2026
0878f58
Retain ROAST self-snapshot mutation evidence (#4106)
mswilkison Jun 22, 2026
1bd88af
test(frost): real-crypto multi-process libp2p e2e — shape-B + distrib…
mswilkison Jun 23, 2026
674afbe
fix(frost): propagate native skip from multiproc tests
mswilkison Jun 26, 2026
6c567c2
fix(frost): synchronize multiproc e2e startup
mswilkison Jun 26, 2026
4530b29
fix(frost): harden the cgo native-signer FFI boundary
mswilkison Jun 26, 2026
35a42c3
fix(frost/roast): evaluate attempt feasibility against permanent excl…
mswilkison Jun 26, 2026
a459612
fix(tbtc): gate native BuildTaprootTx on the transaction being all-Ta…
mswilkison Jun 26, 2026
c04bc77
refactor(retry): move duplicated participant-selection into a shared …
mswilkison Jun 26, 2026
136ebd0
feat(frost/roast): attribute lost-sync triggers; document permissione…
mswilkison Jun 26, 2026
18b7a09
fix(tbtc): monitor the ECDSA and FROST sortition pools independently
mswilkison Jun 27, 2026
550b621
fix(electrum): refresh fulcrum integration endpoint
mswilkison Jun 27, 2026
e96b14f
test(frost): real-crypto multi-process libp2p e2e — shape-B + distrib…
mswilkison Jun 27, 2026
7037b81
docs(frost/roast): correct the ErrAttemptInfeasible contract for tran…
mswilkison Jun 27, 2026
5fb41ba
fix(cmd): wire the FROST sortition pool monitoring opt-out into CLI f…
mswilkison Jun 27, 2026
e3eef0b
fix(ethereum): route GetWallet's wallet-ID fallback by scheme, not er…
mswilkison Jun 27, 2026
1f857b2
Merge branch 'feat/frost-schnorr-migration-scaffold' into fix/frost-f…
mswilkison Jun 27, 2026
7fe456c
Merge branch 'feat/frost-schnorr-migration-scaffold' into fix/native-…
mswilkison Jun 27, 2026
d902f73
Merge branch 'feat/frost-schnorr-migration-scaffold' into fix/dedup-r…
mswilkison Jun 27, 2026
7123166
Merge branch 'feat/frost-schnorr-migration-scaffold' into fix/roast-l…
mswilkison Jun 27, 2026
c741008
fix(frost): harden the cgo native-signer FFI boundary (#4115)
mswilkison Jun 27, 2026
d47cde3
fix(frost/roast): evaluate attempt feasibility against permanent excl…
mswilkison Jun 27, 2026
1d4e2fb
fix(tbtc): gate native BuildTaprootTx on the transaction being all-Ta…
mswilkison Jun 27, 2026
d97b8fb
refactor(retry): move duplicated participant-selection into a shared …
mswilkison Jun 27, 2026
f823ad1
feat(frost/roast): attribute lost-sync triggers; document permissione…
mswilkison Jun 27, 2026
8f85add
fix(tbtc): monitor the ECDSA and FROST sortition pools independently …
mswilkison Jun 27, 2026
71ce32b
fix(ethereum): route GetWallet's wallet-ID fallback by scheme, not er…
mswilkison Jun 27, 2026
1c434a6
ci: use writable git config for yarn installs
mswilkison Jul 1, 2026
c8541aa
hardening(frost): zeroize DKG FFI secret buffers (parity with Sign path)
mswilkison Jul 1, 2026
2096160
ci(frost): compile + test the frost_roast_retry activation path in CI
mswilkison Jul 1, 2026
cd6c483
test(frost): skip the fail-closed registration test when libfrost_tbt…
mswilkison Jul 2, 2026
275b508
hardening(frost): zeroize DKG FFI secret buffers (parity with Sign pa…
mswilkison Jul 2, 2026
8b97d7f
ci(frost): compile + test the frost_roast_retry activation path in CI…
mswilkison Jul 2, 2026
310f85c
test(pr3866): in-process coordinator↔chain FROST DKG end-to-end
mswilkison Jul 2, 2026
6312a9a
test(pr3866): fix P1 skip + P2 recovery race per review
mswilkison Jul 2, 2026
24bb1b5
test(pr3866): in-process coordinator↔chain FROST DKG end-to-end (#4132)
mswilkison Jul 2, 2026
bcf1339
feat(tbtc): fail fast when FROST is enabled on the legacy signing bac…
mswilkison Jul 6, 2026
2330b78
fix(tbtc): only enforce the FROST signing-backend guard when FROST is…
mswilkison Jul 6, 2026
82df08f
fix(tbtc): require available native execution for FROST, not just a n…
mswilkison Jul 6, 2026
fa8c549
fix(tbtc): gate the FROST guard on the real native FFI engine, not fa…
mswilkison Jul 6, 2026
81c1c55
fix(tbtc): gate the FROST guard on the linked signer engine, not the …
mswilkison Jul 6, 2026
b5a2e68
fix(tbtc): probe libfrost_tbtc's ABI before declaring native FROST si…
mswilkison Jul 6, 2026
ac25359
fix(tbtc): run the FROST backend guard before coordination; skip lib …
mswilkison Jul 6, 2026
4102d1f
fix(tbtc): run the FROST backend guard in newNode, before the pre-par…
mswilkison Jul 6, 2026
ffc337e
feat(tbtc): fail fast when FROST is enabled on the legacy signing bac…
mswilkison Jul 6, 2026
d4521e2
test(frost/roast): real-crypto dropout forces NextAttempt (retry #1)
mswilkison Jul 7, 2026
9c836cb
test(frost/roast): real-crypto invalid share forces permanent exclusi…
mswilkison Jul 7, 2026
76198cc
test(frost/roast): assert the silent seat reached round 2 (dropout test)
mswilkison Jul 7, 2026
92f0275
test(frost/roast): real-crypto double-signed share detected as equivo…
mswilkison Jul 7, 2026
c80822c
test(frost/roast): coordinator equivocation forces instant permanent …
mswilkison Jul 7, 2026
c65c8c9
test(frost/roast): transport overflow transiently parks the flooder (…
mswilkison Jul 7, 2026
acfb4ac
test(tbtc): cross-node ROAST/legacy fracture guard fails closed (retr…
mswilkison Jul 7, 2026
94fdf73
style: gofmt the coordinator-equivocation test (trailing-comment alig…
mswilkison Jul 7, 2026
f7c2719
test(frost/roast): real-under-failure ROAST retry + blame tests (drop…
mswilkison Jul 7, 2026
104a492
feat(frost/dkg): bus-driven distributed FROST DKG orchestrator (phase 0)
mswilkison Jul 7, 2026
713f5b2
fix(frost/dkg): reject non-participant senders; zero secrets; harden …
mswilkison Jul 7, 2026
54b0930
fix(frost/dkg): scrub outgoing round-2 share packages; test round-2 g…
mswilkison Jul 7, 2026
271dd18
fix(frost/dkg): scrub round-2 secrets on the error paths too (review)
mswilkison Jul 7, 2026
87446fd
feat(frost/dkg): ECIES seal/open envelope for round-2 shares (phase 1a)
mswilkison Jul 7, 2026
861787a
feat(frost/dkg): encrypt round-2 shares end to end + operator-key con…
mswilkison Jul 7, 2026
7be349b
fix(frost/dkg): bind DKG messages to the attempt session; scrub the o…
mswilkison Jul 7, 2026
42e0745
feat(frost/dkg): net-backed DKG bus over the wallet broadcast channel…
mswilkison Jul 7, 2026
cfcc1f8
feat(frost/dkg): learn round-2 sealing keys from authenticated round-…
mswilkison Jul 7, 2026
69c9c41
fix(frost/dkg): deliver round-2 only to its recipient; assert the aut…
mswilkison Jul 7, 2026
4ef5b9e
feat(frost/dkg): Go bridge + e2e for persisting a distributed DKG key…
mswilkison Jul 7, 2026
11b602b
test(frost/dkg): cover single-seat open + correct the shared-state co…
mswilkison Jul 8, 2026
d61d3bd
feat(tbtc): wire the node wallet DKG to a real distributed FROST DKG
mswilkison Jul 8, 2026
cf3f951
fix(frost/dkg): authenticate final member IDs + subscribe before Recv…
mswilkison Jul 8, 2026
0d1f2f4
fix(frost/dkg): preserve the native-unavailable sentinel when wrappin…
mswilkison Jul 8, 2026
78a612b
fix(frost/dkg): couple DKG to interactive signing; require ABI 1.1; f…
mswilkison Jul 8, 2026
6a7a43d
feat(frost/dkg): two-sided forward secrecy for round-2 shares (per-DK…
mswilkison Jul 8, 2026
232d5b9
fix(frost/dkg): zeroize per-DKG ephemeral private keys; fix stale ope…
mswilkison Jul 8, 2026
9a4439b
test(frost/dkg): multi-node e2e signs under a distinct session (produ…
mswilkison Jul 8, 2026
4243d1f
ci(frost): bump pinned signer source to the ABI-1.1 engine (persist +…
mswilkison Jul 8, 2026
4ad7e10
fix(frost/dkg): scrub this seat's secret share after persistence; bum…
mswilkison Jul 8, 2026
14e9725
fix(frost/dkg): scrub the GenerateNoncesAndCommitments request buffer…
mswilkison Jul 8, 2026
b09b182
ci(frost): bump pinned signer to the session-isolation + scrub-all-pa…
mswilkison Jul 8, 2026
188960f
ci(frost): bump pinned signer to the persisted-key-group-binding fix
mswilkison Jul 8, 2026
bedb4d6
fix(frost/dkg): capture round messages before the readiness barrier (…
mswilkison Jul 8, 2026
ec0c9bd
fix(frost/dkg): race-free prebuffer handoff (drain-and-forward)
mswilkison Jul 8, 2026
86f2611
ci(frost): bump pinned signer to the clippy-clean engine head
mswilkison Jul 8, 2026
3911c47
feat(frost/dkg): wire a real distributed FROST DKG into the node (tra…
mswilkison Jul 8, 2026
a5f704b
feat(frost)!: delete transitional coarse-FROST signing path from the …
mswilkison Jul 9, 2026
db88d86
feat(frost)!: delete transitional coarse-FROST signing path from the …
mswilkison Jul 9, 2026
1d788c6
feat(frost): wire the ROAST-retry coordinator into live interactive s…
mswilkison Jul 9, 2026
2308c70
test(frost): update real-cgo multi-seat e2e for the aggregate memo
mswilkison Jul 10, 2026
fec898b
feat(frost): wallet-scope the ROAST-retry coordinator registry
mswilkison Jul 9, 2026
17cbe52
fix(frost): wallet-scope the ROAST selector's coordinator lookup
mswilkison Jul 10, 2026
c19c956
feat(frost): member-keyed ROAST SignatureVerifier for the retry/blame…
mswilkison Jul 9, 2026
97037f3
fix(frost): per-wallet ROAST activation + accept value-form signer ma…
mswilkison Jul 10, 2026
be2a18c
fix(frost): key-group-scope the active-attempt gate + reject empty ke…
mswilkison Jul 10, 2026
93f107b
fix(frost): make ROAST session ids wallet-unique; key-group-scope obs…
mswilkison Jul 10, 2026
b1b45ad
refactor(frost): remove the now-dead seat-only RoastRetryActiveForMem…
mswilkison Jul 10, 2026
3dd6bee
fix(frost): hash key-path ROAST session ids so they stay within the s…
mswilkison Jul 10, 2026
7dd2003
feat(frost): wire the ROAST-retry coordinator into live interactive s…
mswilkison Jul 10, 2026
9529470
feat(frost): member-keyed ROAST SignatureVerifier for the retry/blame…
mswilkison Jul 10, 2026
84dff7d
feat(frost): wallet-scope the ROAST-retry coordinator registry (#4141)
mswilkison Jul 10, 2026
8f9eb2e
Merge branch 'main' into feat/frost-schnorr-migration-scaffold
mswilkison Jul 10, 2026
5abaa92
Fix FROST DKG parameters and coordinator retries
mswilkison Jul 11, 2026
662cac2
fix(tbtc): bind native signing to BIP-341 policy
mswilkison Jul 11, 2026
1294939
fix(tbtc): route wallet registry operations by scheme
mswilkison Jul 11, 2026
957e3f1
Pin signer metric ABI compatibility fix
mswilkison Jul 12, 2026
014b43b
fix(tbtc): make migration transactions Taproot-aware
mswilkison Jul 11, 2026
a3d96ee
fix(tbtc): separate FROST parameters and retry DKG events (#4144)
mswilkison Jul 12, 2026
26220a8
fix(tbtc): route wallet lifecycle by signing scheme (#4145)
mswilkison Jul 12, 2026
0b0f663
fix(tbtc): complete Taproot discovery and fee handling (#4146)
mswilkison Jul 12, 2026
c81e6e6
fix(tbtc): bind native signing to BIP-341 policy (#4150)
mswilkison Jul 12, 2026
75c2660
fix(tbtc): omit sub-dust redemption change and fold it into the tx fee
mswilkison Jul 10, 2026
713ff1c
fix(tbtc): omit sub-dust redemption change and fold it into the tx fe…
mswilkison Jul 13, 2026
78a8e87
fix(tbtc): keep FROST activation wallets signable
mswilkison Jul 13, 2026
54ff14f
fix(tbtcpg): size FROST wallet fees as P2TR
mswilkison Jul 13, 2026
f08e8d1
fix(tbtc): keep FROST activation wallets signable (#4152)
mswilkison Jul 13, 2026
30f0e65
fix(tbtcpg): size FROST wallet fees as P2TR (#4153)
mswilkison Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ token-tracker/
**/gen/**/*.go
!**/gen/gen.go
!**/gen/cmd/cmd.go
!pkg/chain/ethereum/frost/gen/abi/*.go
!pkg/chain/ethereum/frost/gen/validatorabi/*.go
!pkg/chain/ethereum/tbtc/gen/abi/*.go
!pkg/chain/ethereum/tbtc/gen/contract/*.go
!pkg/chain/ethereum/tbtc/gen/cmd/*.go

# Legacy V1 contracts bindings.
# We won't generate new bindings in the docker build process, but use the existing ones.
Expand Down
6 changes: 5 additions & 1 deletion .github/actions/install-yarn-deps/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,18 @@ runs:
export YARN_ENABLE_HARDENED_MODE=0
corepack enable
yarn --version
SAFE_GIT_HOME="${RUNNER_TEMP:-/tmp}/git-clean-home"
SAFE_GIT_CONFIG="${SAFE_GIT_HOME}/.gitconfig"
mkdir -p "$SAFE_GIT_HOME"
touch "$SAFE_GIT_CONFIG"
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_GLOBAL="$SAFE_GIT_CONFIG" \
GIT_CONFIG_NOSYSTEM=1 \
GIT_CONFIG_SYSTEM=/dev/null \
GIT_CONFIG_COUNT=0 \
yarn install --immutable
10 changes: 6 additions & 4 deletions .github/actions/setup-git-for-yarn/action.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
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).
GitHub-hosted runners. Sets GIT_CONFIG_GLOBAL to a writable temporary file and
GIT_CONFIG_NOSYSTEM to avoid broken system config ("invalid key core.autocrlf"
/ unable to write config).
runs:
using: composite
steps:
Expand All @@ -14,9 +15,11 @@ runs:
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"
SAFE_GLOBAL_CONFIG="${SAFE_HOME}/.gitconfig"
REAL_GIT="$(command -v git)"

mkdir -p "$WRAPPER_DIR" "$SAFE_HOME" "$SAFE_XDG_CONFIG_HOME"
touch "$SAFE_GLOBAL_CONFIG"
printf '%s\n' \
'#!/usr/bin/env bash' \
'set -euo pipefail' \
Expand All @@ -28,9 +31,8 @@ runs:
'done < <(env)' \
"export HOME=\"${SAFE_HOME}\"" \
"export XDG_CONFIG_HOME=\"${SAFE_XDG_CONFIG_HOME}\"" \
'export GIT_CONFIG_GLOBAL=/dev/null' \
"export GIT_CONFIG_GLOBAL=\"${SAFE_GLOBAL_CONFIG}\"" \
'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}\" \"\$@\"" \
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,55 @@ jobs:
install-go: false
checks: "-SA1019"

# Compiles and unit-tests the interactive FROST + ROAST retry coordinator path,
# which lives behind the `frost_roast_retry` (and `frost_native`) build tags. The
# default untagged build the other jobs run compiles only the `!frost_roast_retry`
# no-op stubs, so without this job the entire ROAST retry state machine (liveness +
# evidence/blame) and the ~30 `frost_native` unit tests never compile or run in CI.
#
# This is the mock-FFI path: it exercises the Go coordinator flow with cgo DISABLED,
# so it needs neither libfrost_tbtc (the Rust signer lib) nor Docker. The real-crypto
# cgo variant of these tags is gated separately by frost-cgo-integration.yml.
client-frost-roast-retry:
needs: client-detect-changes
if: |
github.event_name == 'push'
|| needs.client-detect-changes.outputs.path-filter == 'true'
runs-on: ubuntu-latest
env:
CGO_ENABLED: "0"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: "go.mod"

- name: Build the ROAST retry coordinator path (mock FFI, no cgo)
run: |
# `frost_roast_retry` alone compiles the coordinator registry / evidence /
# blame flow against mock producers; adding `frost_native` also compiles the
# native-engine <-> retry integration files (mock FFI engine, still no lib).
go build -tags "frost_roast_retry" ./...
go build -tags "frost_native frost_roast_retry" ./...

- name: Unit-test the tagged path (mock FFI, no cgo)
run: |
# These three tag sets cover every non-cgo tagged test file in pkg/frost and
# pkg/tbtc:
# frost_native -> frost_native (and && !frost_roast_retry)
# frost_roast_retry -> frost_roast_retry (and && !frost_native)
# frost_native frost_roast_retry -> the intersection integration tests
# The `frost_native frost_tbtc_signer cgo` real-crypto tests are NOT run here;
# they are covered by frost-cgo-integration.yml.
for tags in \
"frost_native" \
"frost_roast_retry" \
"frost_native frost_roast_retry"; do
echo "::group::go test -tags \"$tags\""
go test -tags "$tags" -count=1 -timeout 25m ./pkg/frost/... ./pkg/tbtc/...
echo "::endgroup::"
done

client-integration-test:
needs: [client-detect-changes, electrum-integration-detect-changes, client-build-test-publish]
if: |
Expand Down
139 changes: 139 additions & 0 deletions .github/workflows/frost-cgo-integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: FROST cgo integration

# Pre-merge validation gate for the interactive FROST cgo path (RFC-21 Phase 7.3).
#
# The rest of CI builds NONE of the `frost_native frost_tbtc_signer cgo` tags, so the
# real-crypto interactive tests (which link libfrost_tbtc, built from the Rust signer
# crate) are otherwise validated only locally and can silently rot. This job builds the
# lib from a PINNED signer source (ci/frost-signer-pin.env) and runs the cgo-tagged tests
# against it with skips FORBIDDEN (KEEP_CORE_FROST_REQUIRE_CGO=true), so a stale/missing/
# unloadable lib fails the job instead of quietly dropping coverage.
#
# The tag set also includes `frost_roast_retry`, so the ROAST retry coordinator flow is
# compiled and tested against real crypto here (the mock-FFI variant runs in client.yml),
# and the job smoke-builds the full activation artifact via `make build-frost`. The
# non-cgo tagged build/test coverage lives in the client.yml `client-frost-roast-retry`
# job; together they cover the tag matrix that the default untagged CI never touches.
#
# The Go interactive code and the signer crate currently live on separate branches, so
# this checks the pinned mirror commit out into a side path and builds from there. After
# the branches merge, replace the cross-branch checkout with an in-tree cargo build and
# keep the gate.

on:
pull_request:
paths:
- "pkg/frost/**"
- "pkg/tbtc/**"
- "pkg/net/**"
- "go.mod"
- "go.sum"
- "Makefile"
- "ci/frost-signer-pin.env"
- ".github/workflows/frost-cgo-integration.yml"
workflow_dispatch: {}

jobs:
frost-cgo-integration:
runs-on: ubuntu-latest
steps:
- name: Check out the Go branch
uses: actions/checkout@v4

- name: Read the pinned signer source ref
id: pin
run: |
set -euo pipefail
# shellcheck disable=SC1091
source ci/frost-signer-pin.env
if [ -z "${FROST_SIGNER_MIRROR_REF:-}" ]; then
echo "FROST_SIGNER_MIRROR_REF is not set in ci/frost-signer-pin.env"
exit 1
fi
echo "ref=${FROST_SIGNER_MIRROR_REF}" >> "$GITHUB_OUTPUT"
echo "Pinned tbtc-signer source: ${FROST_SIGNER_MIRROR_REF}"

- name: Check out the pinned signer source
uses: actions/checkout@v4
with:
ref: ${{ steps.pin.outputs.ref }}
path: _signer-mirror

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"

- name: Build libfrost_tbtc from the pinned source
env:
CARGO_TARGET_DIR: ${{ github.workspace }}/_frost-target
run: |
set -euo pipefail
test -f _signer-mirror/pkg/tbtc/signer/Cargo.toml || {
echo "signer crate not found at the pinned ref (_signer-mirror/pkg/tbtc/signer)"; exit 1; }
cargo build --manifest-path _signer-mirror/pkg/tbtc/signer/Cargo.toml
lib="${CARGO_TARGET_DIR}/debug/libfrost_tbtc.so"
test -f "$lib" || { echo "libfrost_tbtc.so not found at $lib"; exit 1; }
echo "FROST_LIB_DIR=${CARGO_TARGET_DIR}/debug" >> "$GITHUB_ENV"

- name: Verify the engine ABI symbols are exported
run: |
set -euo pipefail
lib="${FROST_LIB_DIR}/libfrost_tbtc.so"
# A representative slice of the symbols the cgo bridge resolves via
# dlsym(RTLD_DEFAULT). A miss here means the pinned lib is stale vs. the bridge;
# fail with a clear message (the require-cgo run below would also catch it).
missing=0
for sym in \
frost_tbtc_persist_distributed_dkg_key_package \
frost_tbtc_dkg_part1 \
frost_tbtc_derive_interactive_attempt_context \
frost_tbtc_interactive_session_open \
frost_tbtc_interactive_session_abort \
frost_tbtc_new_signing_package \
frost_tbtc_interactive_aggregate \
frost_tbtc_verify_signature_share \
frost_tbtc_version \
frost_tbtc_abi_version; do
if ! nm -D --defined-only "$lib" | grep -q " ${sym}$"; then
echo "missing exported symbol: ${sym}"
missing=1
fi
done
test "$missing" -eq 0 || { echo "pinned libfrost_tbtc is missing required symbols"; exit 1; }

- name: Run the cgo-tagged real-crypto tests (skips forbidden)
env:
CGO_ENABLED: "1"
KEEP_CORE_FROST_REQUIRE_CGO: "true"
run: |
set -euo pipefail
# --no-as-needed keeps the DT_NEEDED on libfrost_tbtc even though the bridge
# references its symbols only via dlsym (no direct references), so the loader
# makes them resolvable at runtime; rpath lets the test binary find the .so.
export CGO_LDFLAGS="-L${FROST_LIB_DIR} -Wl,--no-as-needed -lfrost_tbtc -Wl,-rpath,${FROST_LIB_DIR}"
# Run the WHOLE tagged pkg/frost/signing suite against the linked lib, not a
# narrow -run subset. `frost_roast_retry` is added to the tag set so the ROAST
# retry coordinator flow (liveness + evidence/blame) is compiled and tested
# against real crypto here too, not only in the mock-FFI job (client.yml).
# With KEEP_CORE_FROST_REQUIRE_CGO=true a lib-unavailable would-be skip becomes
# a hard failure, so a stale/missing symbol fails the gate instead of silently
# dropping coverage. This gate is the only CI that builds the cgo tag set.
go test -tags "frost_native frost_tbtc_signer frost_roast_retry" -count=1 \
-timeout 20m \
./pkg/frost/signing/

- name: Smoke-build the FROST activation artifact (make build-frost)
env:
CGO_ENABLED: "1"
run: |
set -euo pipefail
# Proves the release/activation binary - the keep-client built with
# `frost_native frost_tbtc_signer frost_roast_retry` and linked against
# libfrost_tbtc - actually compiles and links. The default `make build` the
# release/Docker path runs ships the `!frost_roast_retry` no-op stubs; this is
# the target that produces the ROAST-retry-enabled artifact once the readiness
# manifest flips. Reuses the same lib built above (frost_lib_dir=FROST_LIB_DIR).
make build-frost frost_lib_dir="${FROST_LIB_DIR}"
test -x ./keep-client || { echo "keep-client activation binary was not produced"; exit 1; }
./keep-client --version
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ COPY ./pkg/chain/ethereum/common/gen $APP_DIR/pkg/chain/ethereum/common/gen
COPY ./pkg/chain/ethereum/ecdsa/gen $APP_DIR/pkg/chain/ethereum/ecdsa/gen
COPY ./pkg/chain/ethereum/tbtc/gen $APP_DIR/pkg/chain/ethereum/tbtc/gen
COPY ./pkg/chain/ethereum/threshold/gen $APP_DIR/pkg/chain/ethereum/threshold/gen
COPY ./pkg/frost/roast/gen $APP_DIR/pkg/frost/roast/gen
COPY ./pkg/net/gen $APP_DIR/pkg/net/gen
COPY ./pkg/tbtc/gen $APP_DIR/pkg/tbtc/gen
COPY ./pkg/tecdsa/dkg/gen $APP_DIR/pkg/tecdsa/dkg/gen
Expand Down
39 changes: 38 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ else
$(foreach module,$(modules),$(call get_npm_package,$(module),$(environment)))
endif

# NOTE: a new *.proto package must also be added to the gen-directory COPY
# allowlist in the Dockerfile: the image strips committed **/gen/**/*.go
# (.dockerignore) and regenerates protobufs in-image, and make generate only
# sees gen directories copied before it runs.
proto_files := $(shell find ./pkg -name '*.proto')
proto_targets := $(proto_files:.proto=.pb.go)

Expand Down Expand Up @@ -125,6 +129,39 @@ build:
$(info Building Go code)
$(call go_build_cmd,.,$(app_name))

# FROST activation build.
#
# Produces the keep-client binary with the interactive FROST + ROAST retry
# coordinator path compiled in (build tags `frost_native frost_tbtc_signer
# frost_roast_retry`). The default `build` target above compiles the
# `!frost_roast_retry` no-op stubs, so the released image ships with the ROAST
# retry coordinator disabled; this target is the artifact that actually enables
# it once the readiness manifest flips (see
# docs/development/frost-roast-retry-rollout.adoc).
#
# Unlike `build` this is a cgo build that links libfrost_tbtc (the Rust signer
# lib built from the tbtc-signer crate). Point `frost_lib_dir` at the directory
# holding the built `libfrost_tbtc.{so,dylib}`. The CGO_LDFLAGS mirror the
# frost-cgo-integration CI workflow: `--no-as-needed` keeps the DT_NEEDED entry
# even though the cgo bridge resolves the frost_tbtc_* symbols via dlsym (no
# direct references), and the rpath lets the binary find the lib at runtime.
# These are GNU-ld flags; the target is meant for the Linux CI/release toolchain.
frost_build_tags := frost_native frost_tbtc_signer frost_roast_retry

ifndef frost_lib_dir
override frost_lib_dir = $(CURDIR)/_frost-target/debug
endif

build-frost:
$(info Building Go code with the FROST activation tags [$(frost_build_tags)])
CGO_ENABLED=1 \
CGO_LDFLAGS="-L$(frost_lib_dir) -Wl,--no-as-needed -lfrost_tbtc -Wl,-rpath,$(frost_lib_dir)" \
go build \
-tags "$(frost_build_tags)" \
-ldflags "-X github.com/keep-network/keep-core/build.Version=$(version) -X github.com/keep-network/keep-core/build.Revision=$(revision) -checklinkname=0" \
-o $(app_name) \
.

platforms := linux/amd64 \
darwin/amd64

Expand All @@ -146,4 +183,4 @@ cmd-help: build
@echo '$$ $(app_name) start --help' > docs/resources/client-start-help
./$(app_name) start --help >> docs/resources/client-start-help

.PHONY: all development sepolia download_artifacts generate gen_proto build cmd-help release build_multi
.PHONY: all development sepolia download_artifacts generate gen_proto build build-frost cmd-help release build_multi
18 changes: 18 additions & 0 deletions ci/frost-signer-pin.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Pinned tbtc-signer (libfrost_tbtc) source for the frost-cgo-integration CI gate.
#
# The Go cgo bridge (pkg/frost/signing, build tags `frost_native frost_tbtc_signer`)
# resolves frost_tbtc_* symbols at runtime from libfrost_tbtc, which is built from the
# Rust signer crate. The Go interactive code and that crate currently live on SEPARATE
# branches of this repo (the Go "scaffold" branch vs. the "mirror" branch that holds
# pkg/tbtc/signer), so the gate checks out THIS exact mirror commit, builds the lib, and
# runs the cgo-tagged Go tests against it with skips FORBIDDEN.
#
# Why an explicit pin (not the mirror branch tip): the bridge skips on a stale lib that
# is missing a newer symbol. If CI tracked the moving tip, an engine/bridge drift could
# silently turn the real-crypto tests into skips (lost coverage) or break the gate for
# code nobody reviewed together. Bump this SHA deliberately, in the same PR that requires
# a newer engine ABI, so the change is reviewed as one unit.
#
# After the scaffold and mirror branches merge into one, replace the cross-branch
# checkout with an in-tree cargo build and retire this pin (keep the gate).
FROST_SIGNER_MIRROR_REF=6e0fa9741ffb6b0bb5603eabe26fb4cc1b13ecd9
32 changes: 32 additions & 0 deletions cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,36 @@ func initTbtcFlags(cmd *cobra.Command, cfg *config.Config) {
tbtc.DefaultKeyGenerationConcurrency,
"tECDSA key generation concurrency.",
)

cmd.Flags().StringVar(
&cfg.Tbtc.FrostSigningBackend,
"tbtc.frostSigningBackend",
"",
"FROST signing backend name (legacy, native, ffi). "+
"`native` allows transitional legacy fallback; `ffi` requires native execution. "+
"Empty value selects legacy.",
)

cmd.Flags().BoolVar(
&cfg.Tbtc.DisableLegacyECDSA,
"tbtc.disableLegacyECDSA",
false,
"Disable legacy ECDSA wallet DKG and pre-params generation for FROST-only deployments.",
)

cmd.Flags().BoolVar(
&cfg.Tbtc.DisableLegacySortitionPoolMonitoring,
"tbtc.disableLegacySortitionPoolMonitoring",
false,
"Disable legacy ECDSA sortition pool monitoring for FROST-only deployments.",
)

cmd.Flags().BoolVar(
&cfg.Tbtc.DisableFrostSortitionPoolMonitoring,
"tbtc.disableFrostSortitionPoolMonitoring",
false,
"Disable FROST sortition pool monitoring for operators that manage FROST pool membership out of band.",
)
}

// Initialize flags for Maintainer configuration.
Expand Down Expand Up @@ -395,5 +425,7 @@ func initDeveloperFlags(command *cobra.Command) {
initContractAddressFlag(chainEthereum.RandomBeaconContractName)
initContractAddressFlag(chainEthereum.TokenStakingContractName)
initContractAddressFlag(chainEthereum.WalletRegistryContractName)
initContractAddressFlag(chainEthereum.FrostWalletRegistryContractName)
initContractAddressFlag(chainEthereum.FrostDkgValidatorContractName)
initContractAddressFlag(chainEthereum.WalletProposalValidatorContractName)
}
Loading
Loading