Skip to content

Deactivate the quarantine module and release all quarantined funds.#2737

Open
nagarajdivine wants to merge 13 commits into
mainfrom
deprecated/quarantine-model
Open

Deactivate the quarantine module and release all quarantined funds.#2737
nagarajdivine wants to merge 13 commits into
mainfrom
deprecated/quarantine-model

Conversation

@nagarajdivine

@nagarajdivine nagarajdivine commented May 21, 2026

Copy link
Copy Markdown
Contributor

Description


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md).
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/).
  • Added relevant godoc comments.
  • Added relevant changelog entries under .changelog/unreleased (see Adding Changes).
  • Re-reviewed Files changed in the Github PR explorer.
  • Review Codecov Report in the comment section below once CI passes.

Summary by CodeRabbit

  • Breaking Changes

    • The Quarantine module is removed — its CLI tx/queries, gRPC/REST endpoints, events, and genesis/state are no longer available.
  • Removals

    • Quarantine opt-in/opt-out, fund management, auto-response features, and related CLI commands and proto definitions removed.
    • Quarantine-related fee types replaced in fee-calculation flows.
  • Migrations

    • Remaining quarantined funds will be iterated and refunded to recipients where possible during upgrade migration (success/failure logged).
  • Behavior

    • Contracts can no longer query quarantine paths; transfer/withdraw flows no longer apply the previous quarantine-bypass logic.
  • Tests & Docs

    • Quarantine-related tests and module specification documentation removed or updated.

Review Change Stack

@nagarajdivine nagarajdivine requested a review from a team as a code owner May 21, 2026 17:08
@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Removes the quarantine module (wiring, sources, protos, CLI, docs, tests, simulation), updates exchange/marker/flatfees to stop using quarantine bypass, and adds an upgrade migration to refund quarantined records.

Changes

Quarantine Module Removal

Layer / File(s) Summary
App initialization and module wiring removal
app/app.go
Removes QuarantineKeeper field, quarantine imports, store key, genesis/migration ordering, keeper init, module manager registration, and marker/sanction allowlist entries.
Migration: refund quarantined records
app/upgrades.go
Adds migrateQuarantineRecords to iterate quarantine store prefixes and attempt refunds from the quarantine module account to recipient addresses via BankKeeper.SendCoins.
Proto, gRPC, wasm whitelist removal
internal/provwasm/stargate_whitelist.go, proto/cosmos/quarantine/v1beta1/*
Removes quarantine stargate whitelist entries and deletes quarantine proto files (events, genesis, query) and gRPC query service definitions.
Quarantine module sources, CLI, docs, simulation, and tests removed
x/quarantine/..., x/quarantine/client/*, x/quarantine/spec/*
Deletes quarantine keeper, msg server, invariants, module wiring, genesis, CLI commands, test utilities, simulation code, many unit/integration tests, and module documentation/spec files.
Exchange keeper: remove quarantine bypass usage
x/exchange/keeper/keeper.go, payments.go, market.go
Stops wrapping contexts with quarantine.WithBypass (DoTransfer, AcceptPayment, WithdrawMarketFunds) and removes quarantine imports.
Exchange mocks & tests updates
x/exchange/keeper/mocks_test.go, keeper_test.go, commitments_test.go, fulfillment_test.go, payments_test.go, market_test.go, msg_server_test.go
Removes ctxHasQuarantineBypass from mock call-arg structs and updates expected bank call arguments; removes explicit quarantine opt-in helper calls from test setups.
Marker, flatfees, and CI updates
x/marker/keeper/keeper_test.go, x/marker/keeper/send_restrictions_test.go, x/flatfees/client/cli/cli_test.go, .github/workflows/test.yml
Removes quarantine from marker bypass expectations, disables quarantine-restricted marker test, replaces flatfees quarantine fee types with attribute/name tx types, and stops special-casing quarantine simulation shard (drops part 04).

Sequence Diagram (migration flow):

sequenceDiagram
  participant Upgrader as upgrades.migrateQuarantineRecords
  participant KV as QuarantineKV (prefixed iterator)
  participant Bank as BankKeeper
  participant ModuleAcc as ModuleAccount(quarantine.ModuleName)
  Upgrader->>KV: iterate quarantine.RecordPrefix keys
  KV-->>Upgrader: recordKey, recordValue
  Upgrader->>Upgrader: parse recipient, unmarshal QuarantineRecord
  Upgrader->>Bank: SendCoins(ModuleAcc, recipientAddr, Coins)
  Bank-->>Upgrader: success / error (logged)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • SpicyLemon
  • Taztingo
  • iramiller

"🐰 I hopped through code, left no trace,
Quarantine shelved, cleaned up the place.
Coins sent home with gentle thump,
Tests adjusted, CI in jump.
Happy devs nibble on a merge-shaped carrot."

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed The PR successfully meets all coding objectives from issue #2695: removes quarantine module from app initialization, retains tx.proto and message types for historical codec compatibility, removes other proto definitions, and updates all affected tests and documentation.
Out of Scope Changes check ✅ Passed All changes are within scope of issue #2695's requirement to remove the quarantine module. Updates to exchange keeper, marker keeper, flatfees tests, CI configuration, and migration logic directly support the quarantine removal objective.
Docstring Coverage ✅ Passed Docstring coverage is 85.71% which is sufficient. The required threshold is 80.00%.
Title check ✅ Passed The title accurately summarizes the main change: removing the quarantine module and releasing quarantined funds through a migration.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch deprecated/quarantine-model

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (1)
x/marker/keeper/send_restrictions_test.go (1)

1184-1396: ⚡ Quick win

Remove the commented-out quarantine test block instead of leaving it in-place.

This is now dead test code for removed module behavior. Keeping ~200 lines commented makes the suite harder to maintain and review.

Proposed cleanup
-// func TestQuarantineOfRestrictedCoins(t *testing.T) {
-//   ...
-// }

If you want historical context, keep a short one-line comment near related tests (or rely on PR history) instead of the full commented implementation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@x/marker/keeper/send_restrictions_test.go` around lines 1184 - 1396, Remove
the large commented-out test block for TestQuarantineOfRestrictedCoins: delete
the entire commented function (the multi-line commented block beginning with
"func TestQuarantineOfRestrictedCoins" and ending at its closing "}") and, if
desired, replace it with a single-line comment noting historical context or rely
on VCS history; ensure no other code references the test name
TestQuarantineOfRestrictedCoins remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/app.go`:
- Line 680: Remove the no-op dead statement "unsanctionableAddrs =
append(unsanctionableAddrs)" — it appends nothing and should simply be deleted
from the function where unsanctionableAddrs is used; if the original intent was
to append the quarantine module address, replace the line with an explicit
append of that address (e.g., unsanctionableAddrs = append(unsanctionableAddrs,
quarantineModuleAddr)), otherwise remove the line entirely to eliminate the
redundant no-op.

In `@app/upgrades.go`:
- Line 556: The call to quarantine.ParseRecordKey ignores its error, so validate
its returned error and handle it before using toAddr (e.g., check the error and
return or log a clear error), ensuring you don't pass an invalid toAddr into
SendCoins; modify the code where quarantine.ParseRecordKey(fullKey) is called to
capture (toAddr, err), check err and abort/return an error upstream (or log and
skip) with context mentioning fullKey and the deployment/update function name so
SendCoins is only called with a valid toAddr.
- Around line 559-572: The migration currently aborts on a single SendCoins
error in migrateQuarantineRecords (app.BankKeeper.SendCoins call), whereas
unmarshal errors are logged and skipped; change this to log-and-continue
behavior: catch SendCoins errors inside the loop, use ctx.Logger().Error to
record the failure with key/fullKey, toAddr.String(), and error details, and
continue processing remaining records; also accumulate failures (e.g., append
error strings) and after the loop either log a summary of all failed refunds or
return a single aggregated error indicating how many refunds failed so the
upgrade can make maximum progress while still surfacing failures.
- Around line 540-579: Call migrateQuarantineRecords(ctx, app) from the upgrade
handler that removes the quarantine module/store (the handlers for "daisy-rc1",
"daisy", "edelweiss-rc1" or "edelweiss") and invoke it before the quarantine
store is deleted so records remain readable; locate the upgrade handler function
where quarantine is removed and insert a call to migrateQuarantineRecords(ctx,
app), handle and propagate any error it returns, then proceed with deleting the
quarantine module/store.

In `@x/exchange/keeper/keeper.go`:
- Around line 201-203: The comment above the assignment "ctx := ctxIn" in
keeper.go incorrectly states that the quarantine module is being bypassed;
update or remove that stale comment so it accurately reflects current behavior
(the incoming context is used as-is) and does not claim quarantine is bypassed.
Locate the comment near the assignment to the local variable ctx (symbols:
ctxIn, ctx) and either reword it to explain that the incoming context is
preserved/used or delete it entirely to avoid misleading future maintainers.

---

Nitpick comments:
In `@x/marker/keeper/send_restrictions_test.go`:
- Around line 1184-1396: Remove the large commented-out test block for
TestQuarantineOfRestrictedCoins: delete the entire commented function (the
multi-line commented block beginning with "func TestQuarantineOfRestrictedCoins"
and ending at its closing "}") and, if desired, replace it with a single-line
comment noting historical context or rely on VCS history; ensure no other code
references the test name TestQuarantineOfRestrictedCoins remain.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 688e45e4-9631-45c0-bf9d-280bbf449b15

📥 Commits

Reviewing files that changed from the base of the PR and between f365c45 and a4b7b1a.

📒 Files selected for processing (60)
  • app/app.go
  • app/upgrades.go
  • internal/provwasm/stargate_whitelist.go
  • proto/cosmos/quarantine/v1beta1/events.proto
  • proto/cosmos/quarantine/v1beta1/genesis.proto
  • proto/cosmos/quarantine/v1beta1/query.proto
  • x/exchange/keeper/commitments_test.go
  • x/exchange/keeper/fulfillment_test.go
  • x/exchange/keeper/keeper.go
  • x/exchange/keeper/keeper_test.go
  • x/exchange/keeper/market.go
  • x/exchange/keeper/market_test.go
  • x/exchange/keeper/mocks_test.go
  • x/exchange/keeper/msg_server_test.go
  • x/exchange/keeper/payments.go
  • x/exchange/keeper/payments_test.go
  • x/flatfees/client/cli/cli_test.go
  • x/marker/keeper/keeper_test.go
  • x/marker/keeper/send_restrictions_test.go
  • x/quarantine/client/cli/query.go
  • x/quarantine/client/cli/tx.go
  • x/quarantine/client/cli/util.go
  • x/quarantine/client/cli/util_test.go
  • x/quarantine/client/testutil/cli_test.go
  • x/quarantine/client/testutil/common_test.go
  • x/quarantine/client/testutil/query_test.go
  • x/quarantine/client/testutil/tx_test.go
  • x/quarantine/export_test.go
  • x/quarantine/genesis.go
  • x/quarantine/genesis_test.go
  • x/quarantine/keeper/export_test.go
  • x/quarantine/keeper/genesis.go
  • x/quarantine/keeper/grpc_query.go
  • x/quarantine/keeper/grpc_query_test.go
  • x/quarantine/keeper/invariants.go
  • x/quarantine/keeper/invariants_test.go
  • x/quarantine/keeper/keeper_test.go
  • x/quarantine/keeper/mocks_test.go
  • x/quarantine/keeper/msg_server.go
  • x/quarantine/keeper/msg_server_test.go
  • x/quarantine/keeper/send_restriction_test.go
  • x/quarantine/keys_test.go
  • x/quarantine/module/module.go
  • x/quarantine/msgs_test.go
  • x/quarantine/quarantine_test.go
  • x/quarantine/send_restriction_test.go
  • x/quarantine/simulation/decoder.go
  • x/quarantine/simulation/decoder_test.go
  • x/quarantine/simulation/genesis.go
  • x/quarantine/simulation/genesis_test.go
  • x/quarantine/simulation/operations.go
  • x/quarantine/simulation/operations_test.go
  • x/quarantine/spec/01_concepts.md
  • x/quarantine/spec/02_state.md
  • x/quarantine/spec/03_messages.md
  • x/quarantine/spec/04_events.md
  • x/quarantine/spec/05_queries.md
  • x/quarantine/spec/06_client.md
  • x/quarantine/spec/README.md
  • x/quarantine/testutil/test_helpers.go
💤 Files with no reviewable changes (48)
  • x/quarantine/spec/README.md
  • proto/cosmos/quarantine/v1beta1/events.proto
  • x/quarantine/simulation/genesis.go
  • x/quarantine/send_restriction_test.go
  • x/quarantine/spec/05_queries.md
  • x/quarantine/export_test.go
  • x/quarantine/keeper/invariants.go
  • x/quarantine/spec/02_state.md
  • x/quarantine/simulation/operations_test.go
  • x/quarantine/simulation/decoder.go
  • x/quarantine/genesis_test.go
  • proto/cosmos/quarantine/v1beta1/query.proto
  • x/quarantine/spec/01_concepts.md
  • x/quarantine/client/testutil/cli_test.go
  • x/quarantine/keeper/invariants_test.go
  • x/quarantine/keeper/genesis.go
  • x/quarantine/keeper/grpc_query_test.go
  • x/quarantine/spec/04_events.md
  • x/quarantine/spec/06_client.md
  • x/quarantine/client/cli/util_test.go
  • x/quarantine/module/module.go
  • x/quarantine/simulation/decoder_test.go
  • x/quarantine/client/testutil/tx_test.go
  • x/quarantine/keeper/mocks_test.go
  • x/quarantine/simulation/operations.go
  • x/quarantine/client/testutil/query_test.go
  • x/quarantine/keeper/msg_server.go
  • x/quarantine/msgs_test.go
  • x/quarantine/keeper/send_restriction_test.go
  • x/quarantine/keys_test.go
  • x/quarantine/keeper/grpc_query.go
  • x/quarantine/genesis.go
  • x/quarantine/client/cli/tx.go
  • x/quarantine/simulation/genesis_test.go
  • x/quarantine/testutil/test_helpers.go
  • x/exchange/keeper/payments_test.go
  • x/exchange/keeper/commitments_test.go
  • internal/provwasm/stargate_whitelist.go
  • x/quarantine/client/cli/util.go
  • x/quarantine/keeper/msg_server_test.go
  • x/marker/keeper/keeper_test.go
  • x/quarantine/client/cli/query.go
  • x/quarantine/keeper/export_test.go
  • x/quarantine/spec/03_messages.md
  • x/exchange/keeper/payments.go
  • proto/cosmos/quarantine/v1beta1/genesis.proto
  • x/exchange/keeper/msg_server_test.go
  • x/quarantine/client/testutil/common_test.go

Comment thread app/app.go Outdated
Comment thread app/upgrades.go Outdated
Comment thread app/upgrades.go Outdated
Comment thread app/upgrades.go Outdated
Comment thread x/exchange/keeper/keeper.go Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/test.yml:
- Around line 86-87: The workflow still tries to download a removed matrix
artifact (-04-coverage) causing the job to fail; update the artifact names
referenced by the download step(s) (e.g., the step named upload-coverage-report
and any other steps around line 177) to match the current matrix parts array
(["00","01","02","03"]) or change the download logic to iterate over the actual
matrix.parts instead of hard-coding "-04-coverage", so only existing artifacts
are downloaded.
- Line 56: Update the stale comment above the block that appends to
"pkgs.txt.part.03" to reflect the current sharding behavior: remove references
to quarantine and "part 03 and 04", state that only the "sanction" case is
special-cased now, and clarify that parts used are "00..03" (four parts). Locate
the comment immediately preceding the line that writes to pkgs.txt.part.03 and
replace its wording to match this current behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d6a9626f-e896-4f83-9504-a4952c7e006f

📥 Commits

Reviewing files that changed from the base of the PR and between 62fb66b and 4d058d4.

📒 Files selected for processing (1)
  • .github/workflows/test.yml

Comment thread .github/workflows/test.yml
Comment thread .github/workflows/test.yml
@nagarajdivine nagarajdivine force-pushed the deprecated/quarantine-model branch from 77f5dc6 to 124a233 Compare May 22, 2026 20:47

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
x/marker/keeper/send_restrictions_test.go (1)

1184-1396: ⚡ Quick win

Remove the fully commented-out quarantine test block.

This is dead test code now and makes maintenance harder; delete it instead of keeping it commented.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@x/marker/keeper/send_restrictions_test.go` around lines 1184 - 1396, Remove
the large fully commented-out test block for TestQuarantineOfRestrictedCoins in
send_restrictions_test.go: delete the entire commented function (the /* ...
*/-style block starting with "// func TestQuarantineOfRestrictedCoins(t
*testing.T) {" and ending at its closing comment) so no dead/test code remains;
after removal, run go vet/go test to ensure no missing imports or references
(check for symbols like TestQuarantineOfRestrictedCoins, newMarker,
mustWithdraw, optIn, setAttr) and clean up any now-unused imports.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/upgrades.go`:
- Around line 540-549: The migration helper migrateQuarantineRecords will never
run because there is no upgrade entry wiring it and quarantine.StoreKey is
unregistered in the new binary; add a real upgrade in the upgrades map that
mounts the old quarantine.StoreKey for that upgrade, invokes
migrateQuarantineRecords in the upgrade handler (or in a pre-upgrade step) to
read and refund quarantined funds, and only after successful completion remove
the store via the upgrade store loader; specifically, add an upgrade name entry
to the upgrades map, ensure the upgrade handler calls
migrateQuarantineRecords(ctx, app), configure the StoreLoader to keep
quarantine.StoreKey mounted during that upgrade, and then remove/unmount the
store as part of the upgrade cleanup so quarantined records are returned before
the store is deleted.
- Around line 582-598: The migration currently logs SendCoins failures inside
migrateQuarantineRecords (where SendCoins, failCount, skipCount, successCount
are used) but still returns nil which would allow the quarantine store to be
removed and orphan funds; modify migrateQuarantineRecords to abort the upgrade
when any refund fails by returning a non-nil error if failCount > 0 (or
alternatively return a specific sentinel/upgrade error indicating partial
failure so the caller preserves the quarantine store), ensuring the caller of
migrateQuarantineRecords checks that error before deleting the quarantine store
or marking migration complete.

---

Nitpick comments:
In `@x/marker/keeper/send_restrictions_test.go`:
- Around line 1184-1396: Remove the large fully commented-out test block for
TestQuarantineOfRestrictedCoins in send_restrictions_test.go: delete the entire
commented function (the /* ... */-style block starting with "// func
TestQuarantineOfRestrictedCoins(t *testing.T) {" and ending at its closing
comment) so no dead/test code remains; after removal, run go vet/go test to
ensure no missing imports or references (check for symbols like
TestQuarantineOfRestrictedCoins, newMarker, mustWithdraw, optIn, setAttr) and
clean up any now-unused imports.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1ed955cb-d4c3-4070-a8ea-acfa96a329a8

📥 Commits

Reviewing files that changed from the base of the PR and between 77f5dc6 and 124a233.

📒 Files selected for processing (62)
  • .changelog/unreleased/deprecated/2695-deprecate-quarantine-model.md
  • .github/workflows/test.yml
  • app/app.go
  • app/upgrades.go
  • internal/provwasm/stargate_whitelist.go
  • proto/cosmos/quarantine/v1beta1/events.proto
  • proto/cosmos/quarantine/v1beta1/genesis.proto
  • proto/cosmos/quarantine/v1beta1/query.proto
  • x/exchange/keeper/commitments_test.go
  • x/exchange/keeper/fulfillment_test.go
  • x/exchange/keeper/keeper.go
  • x/exchange/keeper/keeper_test.go
  • x/exchange/keeper/market.go
  • x/exchange/keeper/market_test.go
  • x/exchange/keeper/mocks_test.go
  • x/exchange/keeper/msg_server_test.go
  • x/exchange/keeper/payments.go
  • x/exchange/keeper/payments_test.go
  • x/flatfees/client/cli/cli_test.go
  • x/marker/keeper/keeper_test.go
  • x/marker/keeper/send_restrictions_test.go
  • x/quarantine/client/cli/query.go
  • x/quarantine/client/cli/tx.go
  • x/quarantine/client/cli/util.go
  • x/quarantine/client/cli/util_test.go
  • x/quarantine/client/testutil/cli_test.go
  • x/quarantine/client/testutil/common_test.go
  • x/quarantine/client/testutil/query_test.go
  • x/quarantine/client/testutil/tx_test.go
  • x/quarantine/export_test.go
  • x/quarantine/genesis.go
  • x/quarantine/genesis_test.go
  • x/quarantine/keeper/export_test.go
  • x/quarantine/keeper/genesis.go
  • x/quarantine/keeper/grpc_query.go
  • x/quarantine/keeper/grpc_query_test.go
  • x/quarantine/keeper/invariants.go
  • x/quarantine/keeper/invariants_test.go
  • x/quarantine/keeper/keeper_test.go
  • x/quarantine/keeper/mocks_test.go
  • x/quarantine/keeper/msg_server.go
  • x/quarantine/keeper/msg_server_test.go
  • x/quarantine/keeper/send_restriction_test.go
  • x/quarantine/keys_test.go
  • x/quarantine/module/module.go
  • x/quarantine/msgs_test.go
  • x/quarantine/quarantine_test.go
  • x/quarantine/send_restriction_test.go
  • x/quarantine/simulation/decoder.go
  • x/quarantine/simulation/decoder_test.go
  • x/quarantine/simulation/genesis.go
  • x/quarantine/simulation/genesis_test.go
  • x/quarantine/simulation/operations.go
  • x/quarantine/simulation/operations_test.go
  • x/quarantine/spec/01_concepts.md
  • x/quarantine/spec/02_state.md
  • x/quarantine/spec/03_messages.md
  • x/quarantine/spec/04_events.md
  • x/quarantine/spec/05_queries.md
  • x/quarantine/spec/06_client.md
  • x/quarantine/spec/README.md
  • x/quarantine/testutil/test_helpers.go
💤 Files with no reviewable changes (48)
  • x/quarantine/spec/04_events.md
  • x/quarantine/spec/01_concepts.md
  • x/quarantine/spec/03_messages.md
  • x/quarantine/spec/README.md
  • x/quarantine/keeper/send_restriction_test.go
  • x/quarantine/spec/06_client.md
  • x/quarantine/keeper/invariants_test.go
  • x/quarantine/keeper/export_test.go
  • x/quarantine/send_restriction_test.go
  • x/quarantine/spec/02_state.md
  • x/quarantine/export_test.go
  • x/quarantine/simulation/decoder_test.go
  • x/quarantine/keeper/genesis.go
  • x/quarantine/simulation/operations_test.go
  • x/quarantine/simulation/decoder.go
  • x/quarantine/genesis_test.go
  • proto/cosmos/quarantine/v1beta1/query.proto
  • x/quarantine/spec/05_queries.md
  • x/quarantine/keeper/grpc_query_test.go
  • x/quarantine/simulation/operations.go
  • x/marker/keeper/keeper_test.go
  • x/exchange/keeper/payments.go
  • x/quarantine/keeper/msg_server.go
  • x/exchange/keeper/payments_test.go
  • x/quarantine/client/testutil/query_test.go
  • x/quarantine/module/module.go
  • internal/provwasm/stargate_whitelist.go
  • x/quarantine/client/cli/util_test.go
  • x/quarantine/keeper/mocks_test.go
  • x/quarantine/msgs_test.go
  • x/quarantine/genesis.go
  • x/quarantine/testutil/test_helpers.go
  • x/quarantine/simulation/genesis.go
  • x/quarantine/simulation/genesis_test.go
  • x/quarantine/keeper/grpc_query.go
  • x/exchange/keeper/commitments_test.go
  • x/quarantine/client/testutil/cli_test.go
  • x/quarantine/keeper/msg_server_test.go
  • x/quarantine/client/cli/query.go
  • x/quarantine/client/cli/tx.go
  • proto/cosmos/quarantine/v1beta1/genesis.proto
  • x/quarantine/client/testutil/tx_test.go
  • x/quarantine/client/testutil/common_test.go
  • x/quarantine/keeper/invariants.go
  • x/quarantine/client/cli/util.go
  • proto/cosmos/quarantine/v1beta1/events.proto
  • x/quarantine/keys_test.go
  • x/exchange/keeper/msg_server_test.go

Comment thread app/upgrades.go Outdated
Comment thread app/upgrades.go Outdated
@nagarajdivine nagarajdivine force-pushed the deprecated/quarantine-model branch from 7ca3ad4 to c0a4be0 Compare May 28, 2026 16:08
Comment thread x/flatfees/client/cli/cli_test.go Outdated
Comment thread x/quarantine/keeper/keeper.go Outdated
Comment thread x/quarantine/keeper/keeper.go
@nagarajdivine nagarajdivine force-pushed the deprecated/quarantine-model branch from 957e5e6 to 5eb0d96 Compare June 15, 2026 18:39
Comment thread x/quarantine/keeper/send_restriction_test.go Outdated
Comment thread app/upgrades.go Outdated
Comment thread x/quarantine/module/module.go Outdated
@SpicyLemon SpicyLemon changed the title Remove the quarantine module Deprecate and deactivate the quarantine module Jun 23, 2026
@SpicyLemon SpicyLemon changed the title Deprecate and deactivate the quarantine module Deactivate the quarantine module and release all quarantined funds. Jun 23, 2026
Comment on lines +473 to +475
if failed > 0 {
return fmt.Errorf("ReleaseAllQuarantinedFunds: failed to release funds for %d record(s)", failed)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just log this error message and have the func always return nil.

If a migration returns an error, it stops the upgrade process and halts the chain. I'd rather that not happen. An error in here doesn't cause any problems that prevent any other parts of the chain from operating, so it's not worth the halt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove the quarantine module

2 participants