Skip to content

feat: bind validator PoP to chainId and registrantAddress - #186

Merged
ItsANameToo merged 3 commits into
feat/mainsailfrom
feat/bind-validator-pop
Oct 6, 2026
Merged

ItsANameToo merged 3 commits into
feat/mainsailfrom
feat/bind-validator-pop

Conversation

@shahin-hq

@shahin-hq shahin-hq commented Oct 5, 2026 •

Copy link
Copy Markdown

Summary

Closes: https://app.clickup.com/t/2570579/86e3gp5da

  • Validator proofs are now tied to an account and a network. A proof created for one sender or one chain can't be reused by anyone else.
  • New method name: validator registration and update now use validator_proof(passphrase, registrant_address) in place of validator_passphrase(passphrase). The encoder helpers also take the address.
  • Typos in the address are caught: a malformed address or one with a bad checksum is rejected with a clear error.
  • Tests: new tests check the proofs against Mainsail's reference data, and the existing fixtures were updated.
  • Fixed CI: a dependency (btclib) released a version that broke installs, so it's now pinned to a version that works.

Checklist

  • Documentation (if necessary)
  • Tests (if necessary)
  • Ready to be merged

Comment thread setup.py
'coincurve',
'pycryptodomex',
'btclib',
'btclib==2023.7.12',

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

btclib was unpinned, so CI installed whatever was newest. Releases from 2026.9.29 onward no longer ship btclib.mnemonic, which crypto/identity/bls_private_key.py imports (from btclib.mnemonic import bip39). As a result, every BLS-related test failed at import on fresh installs.

2023.7.12 is the newest release that still supports Python 3.9 (all 2026.x releases require ≥3.10). Our CI matrix covers 3.9–3.12, so this is the only version that installs on all of them. On 3.9, pip was already resolving to it anyway.

@shahin-hq shahin-hq changed the title feat: bind validator pop feat: bind validator PoP to chainId and registrantAddress Oct 5, 2026
@shahin-hq
shahin-hq marked this pull request as ready for review October 5, 2026 13:43
@shahin-hq
shahin-hq requested a review from ItsANameToo as a code owner October 5, 2026 13:43
@ItsANameToo
ItsANameToo merged commit b8b8c64 into feat/mainsail Oct 6, 2026
8 checks passed
@ItsANameToo
ItsANameToo deleted the feat/bind-validator-pop branch October 6, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants