Open
Conversation
11f409c to
dcac508
Compare
wischli
commented
Feb 26, 2026
lemunozm
reviewed
Feb 26, 2026
| IERC20 constant USDC_BASE = IERC20(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913); | ||
| IERC20 constant USDC_ARBITRUM = IERC20(0xaf88d065e77c8cC2239327C5EDb3A432268e5831); | ||
|
|
||
| address constant CNF_TREASURY_WALLET = 0xD052A46b8e0C89fAcB393805E1917AfD20f293Cb; |
lemunozm
reviewed
Feb 26, 2026
lemunozm
previously approved these changes
Feb 26, 2026
wischli
commented
Mar 4, 2026
| address constant GUARDIAN_V2_ETHEREUM_OR_ARBITRUM = 0x09ab10a9c3E6Eac1d18270a2322B6113F4C7f5E8; | ||
| address constant GUARDIAN_V2_BASE = 0x427A1ce127b1775e4Cbd4F58ad468B9F832eA7e9; | ||
|
|
||
| uint256 constant MAX_POST_MINT_CFG_SUPPLY = 692_049_712_426_095_885_688_933_007; |
Contributor
Author
There was a problem hiding this comment.
|
Coverage after merging feat_v2-cleanings-cfg-mint into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+155
to
+162
| if (block.chainid == ETHEREUM_CHAIN_ID) { | ||
| // Subtract wCFG balance held by the IOU_CFG contract, since those were already | ||
| // redeemed 1:1 for CFG and the wCFG total supply was not reduced upon redemption. | ||
| uint256 amount = IERC20(WCFG).totalSupply() - IERC20(WCFG).balanceOf(IOU_CFG) + CENTRIFUGE_CHAIN_CFG_AMOUNT; | ||
| rootV3.relyContract(CFG, address(this)); | ||
| CFGTokenLike(CFG).mint(CNF_TREASURY_WALLET, amount); | ||
| rootV3.denyContract(CFG, address(this)); | ||
| } |
Contributor
There was a problem hiding this comment.
Is the WCFG contract already denyed to mint new CFG tokens?
lemunozm
approved these changes
Mar 18, 2026
Contributor
lemunozm
left a comment
There was a problem hiding this comment.
AFAICT, this is correct. LGTM!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Product requirements
wCFG.totalSupply() - wCFG.balanceOf(IOU_CFG) + CENTRIFUGE_CHAIN_CFG_AMOUNTand is sent to the CNF treasury walletwCFG.balanceOf(IOU_CFG)is subtracted because those wCFG were already redeemed 1:1 for CFG via the IOU contract, but the wCFG total supply was never reducedCENTRIFUGE_CHAIN_CFG_AMOUNT(~34.8M CFG) accounts for remaining CFG on Centrifuge Chain after subtracting already-migrated and chainbridge balancesCFG_MINTER(0x50a168Cd...) is relied on CFG via ROOT_V2 during ward updatesDesign notes
_mintCFGToTreasury()toV2CleaningsSpell, called after_updateCFGWards()which establishes ROOT_V3 as a ward on CFGROOT_V3.relyContract, mints, then cleans up withROOT_V3.denyContractCENTRIFUGE_CHAIN_CFG_AMOUNTis derived from Centrifuge Chain total issuance (578.4M) minus migrated account (350.9M) minus chainbridge account (192.7M) = ~34.8MCNF_TREASURY_WALLET(0xD052A46b...) receives the minted CFG, distinct from the existingTREASURYaddress used for USDC