allocations map retains released issues — phantom ledger drift
Maintainer thường phản hồi trong vòng 1 ngày
@PINYOPATTANAWASANPORN đang làm issue này rồi.
Từ ngày 30/10/2026.
- #637 của @yggdrasilworld — đã đóng, không merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- rust
- Lĩnh vực
- blockchain
Hướng nghiên cứu
Start by reading release_issue and how milestone.allocations is updated; compare the release path with the issue's described allocate and deallocate behavior. Check the open pull request #637 before starting, since work is already underway. Done means released issues no longer remain in the outstanding allocations view, while the Released status still prevents double payment.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Bug: release_issue never removes the released allocation — allocations grows into a phantom ledger
release_issue marks the issue Released and transfers the funds out, but it does not remove the entry from milestone.allocations. Over a milestone's lifetime the map accumulates every released allocation alongside live ones — allocations stops meaning "outstanding allocations" and becomes a monotonically-growing phantom ledger.
Why it matters
get_milestoneexposesallocations— an indexer/UI summing it to show "outstanding payouts" over-states the real obligation (released funds still appear allocated)- The invariant
contract_balance == remaining_budget + sum(allocations)silently breaks — released amounts stay counted allocationsgrows unboundedly on a long-lived milestone (allocate adds, deallocate removes, release leaves the entry)
The Released status-check prevents double-pay, so this isn't a direct fund-loss — it's an accounting-integrity bug: the allocation-map's semantics are inconsistent after release.
Suggested fix
Remove the allocation on release — milestone.allocations.remove(issue_id) alongside IssueStatus::Released — so the map reflects outstanding obligations. (If the entries are intentionally kept as history, a separate released flag/counter would preserve the audit-trail without corrupting the outstanding-allocations view.)
- Ngôn ngữ chính
- Rust
- Star
- 1
- Fork
- 102
- Merge trung bình
- 4 giờ 12 phút
- Pull request đã merge (30 ngày)
- 30
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của MergeFi/contracts
-
escrow::contribute and milestones::contribute accept new funds after deadline + GRACE_PERIOD, when anyone can already refund or cancelCó thể đã có người làm @urielit1313-creator đã nhận 29 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
MergeFi/contracts#568 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Makefile deploy targets deploy the unoptimised .wasm — `stellar contract optimize` writes *.optimized.wasmCó thể đã có người làm @urielit1313-creator đã nhận 29 ngày trước. Đang mởbug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
MergeFi/contracts#567 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
keep_alive never refreshes instance storage, so a contract kept alive only via keep_alive can still archive Admin/Oracle/TreasuryCó thể đã có người làm @urielit1313-creator đã nhận 29 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
MergeFi/contracts#566 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Regression on closed #254] milestones::deallocate still has no test asserting admin authorizationCó thể đã có người làm @urielit1313-creator đã nhận 29 ngày trước. Đang mởsecurity testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
MergeFi/contracts#565 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Regression on closed #316] maintenance-pool::reclaim_deposit still has no test asserting the sponsor's own authorizationCó thể đã có người làm @urielit1313-creator đã nhận 29 ngày trước. Đang mởsecurity testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
MergeFi/contracts#564 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của MergeFi/contracts
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
aws/aws-emulator#30 · 1 bình luận ·
-
tormach-plasma refusal text with no machine reads "no machine is not declared a plasma machine"Đang mởarea:post bug effort:low P2 source:agent
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Chat images never show without ImageMagick: ffprobe fallback uses an option string ffprobe 9 rejectsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
eliasstravik/herdr-projects#1011 ·
-
design-data-spec
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
adobe/spectrum-design-data#1744 ·
Maintainer thường phản hồi trong vòng 1 ngày