DinFeeRouter: validatorPool/storage/publicGoods shares accrue with no withdrawal path (BL-29)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- solidity
- Lĩnh vực
- backend, blockchain
Hướng nghiên cứu
Start with foundry/src/DinFeeRouter.sol and the BL-29 entry in Developer/BACK_LOG.md; read the bucket accounting and routeFeeDIN/routeFeeETH alongside the operator note in Documentation/public/roles/dinrep.md. The issue says a design decision is needed about who can withdraw each bucket and where validatorPool funds go. Once that is decided, done means the accrued balances have a withdrawal path for the affected buckets.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
DinFeeRouter.routeFeeETH/routeFeeDIN split every fee into five buckets (validatorPool, treasury, burn, storage, publicGoods), but only the treasury share is ever actually moved out of the contract — paid immediately via a direct transfer/call. The other three buckets are only counted in accruedEth/accruedDin (keyed by bucket-name hash); there is no function anywhere in the contract that reads or spends those balances.
Where
foundry/src/DinFeeRouter.sol (verified against develop @ 740a613):
accruedDin/accruedEthmappings, L65-66 — the code itself comments them as "Buckets with no live consumer yet"routeFeeDIN()L172-190,routeFeeETH()L194-211 — onlytreasuryAmtis ever transferred out- Full function list (
initialize,addFeeSource,removeFeeSource,setTreasury,setTreasuryBpsCeiling,setDinSplit,setEthSplit,routeFeeDIN,routeFeeETH) — confirmed no withdraw/sweep function exists anywhere in the contract
Impact
With the default split (validatorPool=95%, treasury=5%), 95% of every fee swept through this router is permanently stuck the moment it's routed — not hypothetical, this is the live default on every network including the current devnet. Documentation/public/roles/dinrep.md:259 already warns operators about this ("nothing can withdraw them yet... treat swept non-Treasury ETH as locked"), so the team is aware of the behavior, but there's no dedicated engineering ticket for the fix itself — the only references are the ROADMAP's P3-5.3 row and Developer/BACK_LOG.md's BL-29 entry.
Relationship to #43
#43 ("P3 fees & treasury") is the broad mechanism-design umbrella this falls under, but its scope is MECHANISM_DESIGN-level (fee lines, denomination, burn policy) rather than this specific, already-shipped-in-principle engineering gap — the split itself and its bps values already work; only the withdrawal path for 3 of the 5 buckets is missing. This issue is the concrete, scoped sub-task; #43 should link here rather than absorb it.
Suggested approach
Needs a design decision first (who can pull each bucket, and where the validatorPool share specifically goes — straight to DinValidatorStake reward pools? DinEmission? a claim-pull contract?), per BL-29's own open question in the backlog. Candidate shapes, not prescribing one:
- A role-gated
withdraw(bytes32 bucket, address to, uint256 amount)per asset type, with the consuming contract(s) added as a known recipient once P3-5.2 (emission/reward pool) ships. - A
sweepBucket(bytes32 bucket)that forwards the full accrued balance to a configured per-bucket destination address (mirrors thesweepFeesToRouterpattern already used elsewhere in the codebase).
References
Developer/BACK_LOG.mdBL-29Documentation/public/roles/dinrep.md:259Developer/ROADMAP.mdP3-5.3 row- #43 (parent/umbrella)
- Ngôn ngữ chính
- Python
- Star
- 4
- Fork
- 7
- Merge trung bình
- 3 ngày 7 giờ
- Pull request đã merge (30 ngày)
- 33
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Có thể đã có người làm @umermjd11 đã nhận 4 ngày trước. Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
InfiniteZeroFoundation/DevNet#285 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update the 25 translated organisation READMEs to match the English versionCó thể đã có người làm @mrCabez đã nhận 2 ngày trước. Đang mởgood first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
InfiniteZeroFoundation/DevNet#277 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update the client-service guide to explain training and uploading separatelyCó thể đã có người làm @Santiagocetran đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
InfiniteZeroFoundation/DevNet#266 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Few questions related to GI2 aggregatorCó thể đã có người làm @Abidoyesimze đã nhận 1 ngày trước. Đang mở
InfiniteZeroFoundation/DevNet#307 · 1 bình luận · 1 reaction · 4 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug python
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
InfiniteZeroFoundation/DevNet#306 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của InfiniteZeroFoundation/DevNet
Issue tương tự
-
[Bug]: Responses API 500s on assistant message with empty content listCó thể đã có người làm @shadowmodder đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
vllm-project/vllm#64940 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
limits
Độ khó 2/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
-
Keybind quest outdatedĐang mởStatus: Triage Type: Quest
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
GTNewHorizons/GT-New-Horizons-Modpack#27490 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
LLM.save() discards the model's active prompt styleCó thể đã có người làm @remote-controlled-man đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Lightning-AI/litgpt#2378 ·
Maintainer thường phản hồi trong vòng 23 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày