Repository navigation
fix: consolidated fixes for issues #285, #286, #283, and #284 - #378
Merged
Merged
Conversation
…tegory set An unrecognized category filter value silently returned zero rows, indistinguishable from a genuinely empty result. Validates the filter against the known category constants and returns a clear 400 listing valid values on a mismatch. Closes Octo-Protocol-org#285
list_transactions returned deposits and withdrawals interleaved with no server-side direction filter, forcing dashboard clients to fetch everything and filter client-side, which breaks pagination math. Adds a validated direction query parameter pushed into SQL. Closes Octo-Protocol-org#286
…ated without verified ownership Audits and hardens the challenge-sign-verify-create sequence for client-custody wallet creation, ensuring create_wallet cannot succeed without an ownership signature it independently verifies. Closes Octo-Protocol-org#283
wallets_due_for_poll runs on every supervisor tick for every network with no confirmed covering index, risking a sequential scan that worsens as wallet count grows. Adds the minimal index(es) needed, created concurrently. Closes Octo-Protocol-org#284
|
@Grace-CODE-D Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
# Conflicts: # crates/store/src/lib.rs # docs/api.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR addresses and resolves the following 4 tasks:
Reject an audit-log category filter value that doesn't match any known category #285: Reject an audit-log category filter value that doesn't match any known category
categoryagainstcrate::audit::category::ALLinlist_audit_logs.ApiError::BadRequestlisting all valid categories on mismatch.docs/api.mdto document all valid category values.Ensure list_transactions distinguishes deposit and withdrawal rows consistently for dashboard filtering #286: Ensure list_transactions distinguishes deposit and withdrawal rows consistently for dashboard filtering
directionquery parameter (deposit|withdrawal) tolist_transactions.directionparameter and returnsApiError::BadRequeston invalid values.Store::list_transactions_pageusing$2::text IS NULL OR direction = $2.docs/api.mdanddocs/openapi.yaml.Ensure wallet ownership is verified before a client-custody wallet is marked usable #283: Ensure wallet ownership is verified before a client-custody wallet is marked usable
create_walletperforms inline cryptographic verification of ownership viaverify_ownership(usingocto_wallet_core::verify_account_signature) before persisting the wallet to the database.create_wallet.Add a covering index for the ingest supervisor's wallets_due_for_poll query #284: Add a covering index for the ingest supervisor's wallets_due_for_poll query
0021_index_wallets_due_for_poll.sqlintroducing indexes onwallets(network)andingest_cursor(wallet_id, last_polled_at, updated_at).wallets_due_for_pollquery toscripts/bench_store_indexes.sh.crates/store/tests/store_tests.rs.Closes #285
Closes #286
Closes #283
Closes #284