Unification of interfaces across secp256k1 and bls
- Dominant language
- Python
- Stars
- 231
- Forks
- 88
- PR merge metrics
- No merged PRs in 30d
Description
### What is wrong?
It would be nice if `py_ecc.secpk256k1`, `py_ecc.bls12_381` and `py_ecc.bn128` all had roughly the same API.
### How can it be fixed
A combination of exposing a few un-exposed APIs from `secpk256k1` and renaming things.
- expose `add` and `multiply` from `py_ecc.secp256k1.secp256k1` from `py_ecc.secp256k1`
- I think `py_ecc.secp256k1.secp256k1.inv` needs to be renamed/aliased to `neg` to line up with the bls/bn APIs.
- some other things like `field_modulus` and `curve_order` might need to have their equivalent values exposed from `secp256k1`
Contributor guide
Research direction
Start by comparing the public APIs of py_ecc.secp256k1, py_ecc.bls12_381, and py_ecc.bn128, then inspect py_ecc.secp256k1.secp256k1 and its package exports. Done means the requested secp256k1 operations and equivalent field_modulus and curve_order values are exposed with names consistent across the three curve modules.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cryptography
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100