Replies: 4 comments
|
Hi Umer. I will look into this. Thank you |
|
Reviewed #51, #60, and #65 together against this task's spec ( Issue coverage
Every deliverable in the spec's checklist genuinely exists in code somewhere across the three PRs — including the split-sum fuzz test and no-ETH-burn invariant test the spec called out as highest-value. The gaps are about how the three PRs relate to each other, not missing functionality. Files touched, by PR (head commits: #51
The starkest single number here: #60 touches 16 files and none of them are uniquely its own — 14 overlap #51, the other 2 overlap #65. What's actually unique to #60 is specific lines within Blocking items (detail in each PR's own review comment):
Non-blocking flag, worth documenting later: #60 and #65 both reorder Merge-order recommendation Splitting the combined task into three narrower PRs was a fine call — no issue with that itself. But right now #60 (opened 07-23, untouched since) is carrying full stale copies of #51 and #65's file scope rather than just its own net-new slice. Recommended path:
Happy to help with the #60 rebase once #51/#65 land, if useful. |
|
Hi @umeradl I have fixed the issue fix(DinValidatorStake): restore minStake() view accessor — added back minStake() external view returns (uint256) which task contracts call to check the stake floor. The function was lost when MIN_STAKE was converted from a constant to a storage variable. fix(DINModelRegistry): guard DIN entrypoints with FeeRouterNotSet check — both requestModelRegistrationDIN and requestManifestUpdateDIN now revert with FeeRouterNotSet if the fee router hasn't been set yet, matching the guard that PR #51 added. |
Closing: verified against
|
Uh oh!
There was an error while loading. Please reload this page.
cc @robertocarlous
Task assigned for Jul 21–27, 2026 (5 working days; deadline Monday, July 27). Full spec:
Developer/tasks/task_210726_5.mdThe task file has the full specification — exact contract code, function signatures, deployment/wiring order, and test plan. This post is just the summary and assignment notice.
Summary
Issues #37 (staking), #42 (tokenomics), and #43 (fees & treasury) are now design-resolved, and the underlying contract work is genuinely coupled — a new
DinTreasuryandDinFeeRouterare shared infrastructure both tokenomics and fees need. Combined into one 5-day task rather than three separate ones:New:
DinTreasury.sol— pure holding/spend contract for ETH and ERC20, no split logic, deploys first (no dependencies).New:
DinFeeRouter.sol— owns all fee-split logic. Separate DIN and ETH split configs; the ETH config has no burn bucket at all — structurally, not just by convention, since native ETH can't be burned. Routes DIN protocol fees (burn/treasury/validatorPool/storage/publicGoods) and ETH network fees (treasury/validatorPool/storage/publicGoods, no burn).DinToken.sol— adds a plainburn(uint256)self-burn function.DinCoordinator.sol— adds a settable mint cap, a one-way faucet-retirement switch, and reroutes deposited ETH toDinTreasuryinstead ofowner().DinValidatorStake.sol— convertsMIN_STAKE/UNBONDING_PERIODfrom constants to owner-settable storage, adds (currently-unenforced) per-model stake bounds storage, and makes jailing real —jailValidator/reactivate— since theJailedstatus has existed as dead code until now.DINModelRegistry.sol— adds a DIN-denominated fee path alongside the existing ETH fees (not replacing them yet), routed throughDinFeeRouter.Scope is platform-contracts only for this task — task-level contract enforcement (
DINTaskCoordinator/DINTaskAuditor),DinEmission, delegation, and tombstoning are all explicitly out of scope; see the task file's "Scope boundaries" section for why.Reference material
Developer/design/MECHANISM_DESIGN.md§7–§9Developer/design/staking-design.mdDeveloper/design/tokenomics-design.mdIf anything in the task spec doesn't feel right, is ambiguous, or needs clarification — comment here and cc @umeradl.
All reactions