- pkg/encoders/event/reader.go
- Deleted the `UnmarshalRead` function and associated event unmarshaling logic.
- pkg/database/migrations.go
- Added a log statement indicating migration completion.
- Replaced `UnmarshalRead` with `UnmarshalBinary` in the event decoding process.
- pkg/database/database.go
- Added `RunMigrations` to handle new index versions.
- Integrated `DeleteExpired` for scheduled cleanup of expired events within a goroutine.
- pkg/database/delete-event.go
- Refactored the existing deletion logic into `DeleteEventBySerial`.
- pkg/database/delete-expired.go
- Added new implementation to handle deletion of expired events using expiration indexes.
- pkg/database/migrations.go
- Implemented `RunMigrations` to handle database versioning and reindexing when new keys are introduced.
- pkg/database/indexes/keys.go
- Added `ExpirationPrefix` and `VersionPrefix` for new expiration and version indexes.
- Implemented encoding structs for expiration and version handling.
- pkg/encoders/event/writer.go
- Added JSON marshaling logic to serialize events with or without whitespace.
- pkg/encoders/event/reader.go
- Refined unmarshaling logic for handling event keys and values robustly.
- pkg/protocol/socketapi/handleEvent.go
- Formatted log statements and updated logging verbosity for event handling.
- pkg/app/relay/handleRelayinfo.go
- Re-enabled relay handling for expiration timestamps.
- pkg/database/indexes/types.go (new file)
- Introduced structures for `Uint40s` and other types used in indexes.
- main.go
- Removed static favicon serving from `ServeMux`.
- Removed import for `net/http`.
- pkg/version/version
- Updated version from v0.6.0 to v0.6.1.
- cmd/lerproxy/main.go
- Added embedded support for default favicon using `//go:embed`.
- Modified logic to serve favicon as an embedded resource or from file in the same directory as the nostr.json
- static/favicon.ico
- Deleted static favicon file.
- cmd/lerproxy/favicon.ico
- Added new file for embedded favicon resource.
- cmd/walletcli/mock-wallet-service/EXAMPLES.md
- Added detailed example commands for all supported mock wallet service methods.
- Included a complete example workflow for testing the service.
- Added notes on the mock service's behavior and limitations.
- pkg/protocol/nwc/wallet.go
- Implemented `WalletService` with method registration and request handling.
- Added default stub handlers for supported wallet methods.
- Included support for notifications with `SendNotification`.
- pkg/protocol/nwc/client-methods.go
- Added `Subscribe` function for handling client subscriptions.
- cmd/walletcli/mock-wallet-service/main.go
- Implemented a mock CLI tool for wallet service.
- Added command-line flags for relay connection and key management.
- Added handlers for various wallet service methods (e.g., `GetInfo`, `GetBalance`, etc.).
- pkg/protocol/nwc/types.go
- Added `GetWalletServiceInfo` to the list of wallet service capabilities.
- pkg/protocol/ws/client.go
- Added logging for received subscription events.
- Optimized subscription ID assignment.
- pkg/protocol/nwc/client.go
- Implemented `Subscribe` function to handle event subscriptions.
- cmd/walletcli/main.go
- Added support for `subscribe` command to handle notifications.
- Replaced `ctx` with `c` for context usage across all commands.
- pkg/crypto/p256k/helpers.go
- Removed unnecessary logging from `HexToBin` function.
- readme.adoc
- Added a new "Releases" section with a link to pre-built binaries.
- Included details about binaries built on Go 1.24 and Linux static builds.
- .github/workflows/go.yml
- Updated `CGO_ENABLED` to 1 for Linux builds (amd64 and arm64).
- pkg/version/version
- Updated version from v0.5.9 to v0.6.0.
- .github/workflows/go.yml
- Updated repository `permissions` from `contents: read` to `contents: write`.
- Fixed misaligned spaces in `go build` commands for release binaries.
- Corrected `go build` syntax for cmd executables.
- pkg/version/version
- Updated version from v0.5.7 to v0.5.8.
- .github/workflows/go.yml
- Added a new `release` job with steps to set up Go, install `libsecp256k1`, and build release binaries.
- pkg/version/version
- Updated version from v0.5.6 to v0.5.7.
- pkg/protocol/ws/pool_test.go
- Commented out the `TestPoolContextCancellation` test function.
- .github/workflows/go.yml
- Added detailed steps for the release process, including tagging and pushing.
- Included logic to build release binaries for multiple platforms.
- Configured process for checksum generation and GitHub release creation.
- pkg/version/version
- Updated version from v0.5.5 to v0.5.6.
- .github/workflows/go.yml
- Added a step to install `libsecp256k1` using `ubuntu_install_libsecp256k1.sh`.
- Updated steps to build and test with cgo enabled.
- Added a step to explicitly set `CGO_ENABLED=0` in the environment.
- pkg/version/version
- Updated version from v0.5.4 to v0.5.5.
- pkg/database/query-events.go
- Added `deletedEventIds` map to track specifically deleted event IDs.
- Improved logic for handling replaceable events with deletion statuses.
- Added checks for newer events when processing deletions by kind/pubkey.
- pkg/database/get-indexes-from-filter.go
- Fixed incorrect range end calculation by adjusting `Until` value usage.
- .github/workflows/test-and-release.yml
- Deleted the test-and-release GitHub Actions workflow entirely.
- .github/workflows/go.yml
- Added a new step to set `CGO_ENABLED=0` environment variable.
- .github/workflows/go.yml
- Updated `go-version` from 1.20 to 1.24.
- .github/workflows/test-and-release.yml
- Updated `go-version` from 1.22 to 1.24 in two workflow steps.
- pkg/version/version
- Updated version from v0.5.3 to v0.5.4
- .github/workflows/test-and-release.yml
- Added a new workflow for testing and releasing:
- Runs tests on `push` for version tags and `pull_request` on `main`
- Builds binaries for Linux, macOS, and Windows
- Creates GitHub releases upon valid version tags
- Uploads release assets
- pkg/protocol/nwc/methods.go
- Refactored `GetWalletServiceInfo` to improve context and error handling.
- Simplified tag extraction and processing for encryption and notification types.
- Optimized handling of WalletServiceInfo capabilities.
- pkg/protocol/nwc/types.go
- Added `HoldInvoiceAccepted` notification type.
- Introduced `NotificationTag` constant.
- pkg/encoders/kind/kind.go
- Renamed `NWCWalletInfo` to `NWCWalletServiceInfo`.
- Updated references and mappings to reflect the rename.