Releases: q9f/secp256k1.cr
lib secp256k1.cr v0.5.0
lib secp256k1.cr v0.5.0 is a complete rewrite of the secp256k1.cr
shard.
notables:
- the entire gem has been completely refactored and optimized. instead of listing all the changes, it's worth taking a look at the docs: https://q9f.github.io/secp256k1.cr/
- the only logic change is that signatures are now deterministic as per rfc-6979: https://datatracker.ietf.org/doc/html/rfc6979
- old signatures remain valid, though.
- new signatures also encode a recovery id in
v
.
- ethereum and bitcoin accounts have been demoted to examples as they should be handled in external libraries. they live in their own namespace now and should be considered educational material.
changes:
- docs: publish for 0.5 by @q9f in #60
- lib: add an ethereum example implementation by @q9f in #59
- lib: add an bitcoin example implementation by @q9f in #58
- secp256k1: rewrite entire shard to 0.5 by @q9f in #57
- spec: update formatting for crystal 1.3.0 by @q9f in #55
- ci: bump codecov version by @q9f in #54
- ci: bump codecov version by @q9f in #53
- codecov: clean up html/js by @q9f in #51
- github: add codecov workflow by @q9f in #50
- github: switch to nightly default branch main by @q9f in #49
- docs: publish docs for v0.3.6 by @q9f in #48
full changelog: v0.3.6...v0.5.0
lib secp256k1.cr v0.3.6
lib secp256k1.cr v0.3.5
lib secp256k1.cr v0.3.5 is a service release which ensures compatibility with crystal 0.36.1.
changes:
- Shards: bump crystal to v0.36.1 (#44)
lib secp256k1.cr v0.3.4
lib secp256k1.cr v0.3.4 is a service release which ensures compatibility with crystal 0.35.1.
changes:
- Shards: bump crystal version to 0.35.1 (#43)
lib secp256k1.cr v0.3.3
lib secp256k1.cr v0.3.2
lib secp256k1.cr v0.3.2 is a service release which ensures compatibility with crystal 0.34.0.
changes:
- ensure crystal 0.34 compatibility (#40)
lib secp256k1.cr v0.3.1
lib secp256k1.cr v0.3.1 is a service release which ensures compatibility with crystal 0.33.0.
changes:
- update crystal version to 0.33.0 #39
lib secp256k1.cr v0.3.0
this minor release improves stability. the following api renames shall be noted:
EC_Point
is nowECPoint
ECDSA_Signature
is nowECDSASignature
- all hashing functions ending with
_string
are renamed now overloadable withString
changes:
lib secp256k1.cr v0.2.2
lib secp256k1.cr v0.2.1
this release significantly improves the documentation at https://q9f.github.io/secp256k1.cr/ and applies some minor enhancements to the exposed apis of the library, namely:
- mini-private keys now use BASE-56 instead of BASE-57. that does not affect existing mini-private keys.
- added
Secp256k1::Bitcoin.wif_from_private_uncompressed
wrapper for uncompressed wif - renamed
Secp256k1::Bitcoin.wif_compressed_from_private
to.wif_from_private_compressed
- private keys are handled as
BigInt
instead of aString
literals wherever possible, e.g.,Secp256k1::Bitcoin.address_from_private
orSecp256k1::Ethereum.address_from_private
- constants: renamed
EC_PARAM_PRIME
toEC_PRIME_P
- replaced
BASE_57
in favor ofBASE_56
by removing theo
from the alphabet as recommended by the Bitcoin Wiki. - binary hashing operations now directly operate on
Bytes
instead ofString
literals, e.g.,Secp256k1::Hash.sha3
,.sha256
,.keccak256
,.ripemd160
- added
Secp256k1::Hash.ripemd160_string
for RIPEMD-160 hashes onString
literals to complement.sha3_string
,.sha256_string
, and.keccak256_string
- added
Secp256k1::Hash.base58_char
to complement.base56_char
- pass the
prime
throughSecp256k1::Util.restore_public_key
changes:
- improve the documentation #27