Commit 698b4a4
fix(pallet-tft-bridge): reject creating an already-executed refund
create_stellar_refund_transaction_or_add_sig only checked whether the
refund existed in RefundTransactions, not whether it had already been
executed. A refund that was already executed (e.g. quarantined by the
bridge after a permanently undeliverable Stellar submission) could be
silently recreated, re-arming the on_finalize retry loop.
Add an ExecutedRefundTransactions guard, mirroring the existing checks in
propose_or_vote_stellar_mint_transaction and
propose_stellar_burn_transaction_or_add_sig. The bridge already recovers
from the resulting RefundTransactionAlreadyExecuted error via the
IsRefundedAlready check in RetryCreateRefundTransactionOrAddSig.
Note: spec_version is intentionally not bumped here; that is handled at
release time via `make version-bump` (see docs/production/releases.md).
Refs #1089
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 3d1145f commit 698b4a4
2 files changed
Lines changed: 55 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
610 | 610 | | |
611 | 611 | | |
612 | 612 | | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
613 | 659 | | |
614 | 660 | | |
615 | 661 | | |
| |||
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
123 | 132 | | |
124 | 133 | | |
125 | 134 | | |
| |||
0 commit comments