`eth` 0.5 tracker
q9f opened this issue · 0 comments
q9f commented
ultimate goals:
- long-term support for ruby 3.0+
- reduce external dependencies of unmaintained and abandoned gems
- move all crypto dependencies to native ruby if possible (secp256k1, openssl) to ensure no breakage by OS
essential components
- keys pairs, accounts
- https://github.com/etscrivner/rbsecp256k1
- addresses, checksums (eip 55)
- encryption, decryption
- sign, verify/recover
- hd wallets (money tree?)
- rlp encoding/decoding
- https://github.com/cryptape/ruby-rlp (archived? fork?)
- transaction composition, signing, and verification
- chain ID, replay protection (eip 155)
- types, envelopes (eip 2718, eip 1599)
- message signatures and recovery (raw messages and structured signatures)
- typed structured data hashing and signing (eip 712)
- implement ethereum tests where applicable https://github.com/ethereum/tests
constraints
- spec-driven, 100% coverage
- fully documented (auto-generate HTML docs)
- ruby-first, low-dependencies, if possible
considerations
- cherry-pick ethereum.rb features or consider merging both gems https://github.com/EthWorks/ethereum.rb
- client, http client, ws client
- contracts (?)