5.1 KiB
5.1 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.6.0 2024-03-15
Added
- Added Architecture Decision Records (ADRs) to document architectural decisions
- Added the
Signatureclass to fix the primitive obsession with signatures and to make it easier to work with them - Added
valid_sig?andcheck_sig!to theCryptoclass to verify whether an event's signature is valid - Added
sign_messageto theCryptoclass to sign a message - Added
verify_signature?to theEventclass to verify whether an event's signature is valid - Added
#to_aryto theKeyPairclass to enable keypair destructuring - Added RBS types for
schnorr
Changed
- Updated the required Ruby version to
3.3.0(was3.2.0) - Updated the gem
dotenvto version3.1(was2.8) - Updated the gem
bip-schnorrto version0.7(was0.6) - Updated the gem
overcommitto version0.63(was0.59) - Updated the gem
rbsto version3.4(was3.3) - Updated the gem
rspecto version3.13(was3.12) - Updated the gem
rspec-rubocopto version2.27(was2.25) - Updated the gem
rubocopto version1.62(was1.57)
Fixed
- Fixed a typo in the README (
generate_keypair->generate_key_pair) - Fixed a typo in the YARD documentation of
Nostr::Key#initialize(ValidationError->KeyValidationError) - Fixed YARD example rendering issues in
InvalidKeyFormatError#initialize,InvalidKeyLengthError#initialize,InvalidKeyTypeError#initialize,Event#initialize,EncryptedDirectMessage#initializeandFilter#to_h
0.5.0 2023-11-20
Added
- Added relay message type enums
Nostr::RelayMessageType - Compliance with NIP-19 - bech32-formatted strings
- Added
Nostr::PrivateKeyandNostr::PublicKeyto represent private and public keys, respectively - Added a validation of private and public keys
- Added an ability to convert keys to and from Bech32 format
- Added RBS types for
faye-websocketandbech32
Changed
- Set the gem's homepage to
https://nostr-ruby.com/ - Updated the filter's documentation to reflect the removal of prefix matching
- Updated the subscription's id documentation to reflect the changes in the protocol definition
- Updated
Nostr::PrivateKeyandNostr::PublicKeyinternally, instead of Strings - Updated the gem
bip-schnorrto version0.6(was0.4) - Updated the gem
pumato version6.4(was6.3) - Updated the gem
raketo version13.1(was13.0) - Updated the gem
rbsto version3.3(was2.8) - Updated the gem
rubocopto version1.57(was1.42) - Updated the gem
rubocop-rspecto version2.25(was2.16) - Updated the gem
steepto version1.6(was1.4)
Fixed
- Fixed the RBS type of the constant
Nostr::Crypto::BN_BASE - Fixed the return type of
Nostr::Crypto#decrypt_textwhen given an invalid ciphertext - Fixed the RBS type of
Nostr::Filter#to_h,Nostr::Filter#eandNostr::Filter#p - Fixed the RBS types of
EventEmitterandEventMachine::Channel - Fixed the generation of private keys
0.4.0 - 2023-02-25
Removed
- Removed
EventFragmentclass. TheEventclass is no longer a Value Object. In other words, it is no longer immutable and it may be invalid by not having attributesidorsig. TheEventFragmentabstraction, along with the principles of immutability and was a major source of internal complexity as I needed to scale the codebase.
Added
- Client compliance with NIP-04 (encrypted direct messages)
- Extracted the cryptographic concerns into a
Cryptoclass. - Added the setters
Event#id=andEvent#sig= - Added a method on the event class to sign events (
Event#sign) - Added a missing test for
EventKind::CONTACT_LIST - Added two convenience methods to append event and pubkey references to an event's tags
add_event_referenceandadd_pubkey_reference
Fixed
- Fixed the generation of public keys
- Fixed the RBS signature of
User#create_event
0.3.0 - 2023-02-15
Added
- Client compliance wth NIP-02 (manage contact lists)
- RBS type checking using Steep and TypeProf
Fixed
- Fixed a documentation typo
- Fixed a documentation error regarding the receiving of messages via websockets
0.2.0 - 2023-01-12
Added
- NIP-01 compliant client
0.1.0 - 2023-01-06
- Initial release