Skip to content

IGP-136: Collect iETHv2 + Liquidity Layer revenue & migrate sUSDai oracles - #170

Merged
thrilok209 merged 16 commits into
mainfrom
igp-136
Jul 16, 2026
Merged

IGP-136: Collect iETHv2 + Liquidity Layer revenue & migrate sUSDai oracles#170
thrilok209 merged 16 commits into
mainfrom
igp-136

Conversation

@bergben

@bergben bergben commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

DRAFT — description is preliminary and will be finalized before deploy.

Summary

IGP-136 performs three Ethereum actions:

  1. Revenue collection → Team Multisig. Collects iETHv2 (Fluid Lite ETH) stETH revenue and the Liquidity Layer revenue for every token currently accruing more than $5k of uncollected revenue (USDC, USDT, ETH, GHO, weETH) into the Fluid Reserve, then forwards the swept balances to Team Multisig (0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e), leaving operational dust. USDC retains 3,400 in the Reserve to self-fund Action 3.
  2. sUSDai oracle migration. Migrates the 8 live sUSDai vault oracles (vaults 171–173, 175–179) from the raw exchange-rate contract to the newly deployed oracles referencing CappedRateChainlink_SUSDAI (0xC5D27C5d356479b681328351F1583c63051E76a0, DF nonce 258), and re-points the sUSDai-USDC (DEX 46) and sUSDai-USDT (DEX 48) center prices to the same capped rate.
  3. PST T4 vault rebalance. Rebalances the supply-side drift on the PST T4 vault (169, smart col Dex_PST_USDC / smart debt Dex_USDC_USDT, 0x04F461756D3799Bfa05f1a367c41FaBa09743791) from the Reserve: approve PST + USDC, allow-list the Timelock as rebalancer, run a supply-only rebalance (borrow skipped), remove from allow-list, then revoke.

Action 1 — Revenue

Source Token(s) Note
iETHv2 (Lite) stETH collectRevenue(33.9 ether); revenue() reported ~33.91 stETH at prep
Liquidity Layer USDC ($84.7k), USDT ($50.8k), ETH ($36.5k), GHO ($8.8k), weETH (~$5.4k) tokens >$5k uncollected

Both the iETHv2 treasury and the Liquidity revenue collector point to the Fluid Reserve; a single withdrawFunds forwards balances to Team Multisig with reason "REVENUE COLLECTION". Tokens below $5k (wstETH ~$4.5k, USDe ~$3.2k) are intentionally excluded. The USDC forward leaves 3,400 USDC in the Reserve to fund the Action 3 rebalance.

Action 2 — sUSDai oracle migration

8 updateOracle calls (T1 by address; T2/T3/T4 by DF nonce 262–266); max operate-rate delta vs current oracles < 0.01%.

vaultId Type Market arg New oracle (DF nonce)
171 T1 sUSDai / USDC address GenericOracle_SUSDAI_USDC (259)
172 T1 sUSDai / USDT address GenericOracle_SUSDAI_USDT (260)
179 T1 sUSDai / GHO address GenericOracle_SUSDAI_GHO (261)
178 T2 sUSDai-USDC / USDC nonce DexSmartColPegOracle_SUSDAI-USDC_USDC (262)
177 T2 sUSDai-USDT / USDT nonce DexSmartColPegOracle_SUSDAI-USDT_USDT (263)
173 T3 sUSDai / USDC-USDT nonce DexSmartDebtPegOracle_SUSDAI_USDC-USDT (264)
175 T4 sUSDai-USDC / USDC-USDT nonce DexSmartDebtPegOracle_T4_SUSDAI-USDC_USDC-USDT (265)
176 T4 sUSDai-USDT / USDC-USDT nonce DexSmartDebtPegOracle_T4_SUSDAI-USDT_USDC-USDT (266)

DEX center-price re-point to CappedRateChainlink_SUSDAI (DF nonce 258), 1% / 2 days (matching IGP-105). Live gap between current (raw, nonce 248) and new (capped, 258) center price is −0.0084%, so the capped shift-rate completes the transition smoothly within minutes while preserving headroom to track sUSDai yield drift. DEX 47 (USDai-USDC) does not track the sUSDai rate and is left unchanged.

Action 3 — PST T4 vault (169) supply rebalance

Vault 169 supply has drifted ~+2,809 col shares ≈ ~2,268 PST + 3,132 USDC ($5.4k) above its Liquidity-layer position. Self-contained in-payload flow (IGP-131 pattern):

  1. Approve: 2,400 PST + 3,400 USDC from the Reserve to the vault.
  2. Allow-list: updateRebalancer(TIMELOCK, true).
  3. Rebalance (supply only): rebalanceDexVaults([169], [0], 1e24, 1e24, 0, 0) — col MinMax effectively unbounded (approval + share drift are the real ceilings); debt*MinMax = 0 skips the borrow side.
  4. Remove from allow-list: updateRebalancer(TIMELOCK, false).
  5. Revoke: clears the leftover PST + USDC allowance.

Prerequisite: the USDC leg is self-funded (Action 1 retains 3,400 USDC). PST must be funded into the Reserve separately (~2,400) during the timelock window — it is not a revenue token. If underfunded, the deposit reverts internally and, with borrow skipped, the rebalance reverts (Vault__NothingToRebalance). debt*MinMax = 0 is valid only because borrow-side drift is ~0 (no borrow reward/magnifier on this vault).

Validation

  • npx hardhat compile — clean (pre-existing warnings only).
  • npm run verify:prices -- --payload IGP136 — no token price overrides needed (raw-amount actions).
  • On-chain: getVaultAddress(169) = 0x04F4…3791 (T4); col DEX = Dex_PST_USDC (token0 PST / token1 USDC); debt DEX = Dex_USDC_USDT.

Test plan

  • Tenderly simulation of full proposal (all 3 actions)
  • Verify Reserve → Team Multisig transfers leave dust + 3,400 USDC retained
  • Verify all 8 vault oracles point to new oracles post-execution
  • Verify DEX 46/48 center price re-pointed to nonce 258
  • Confirm Reserve funded with ≥ ~2,270 PST before execution; verify vault 169 supply drift cleared post-rebalance and allowance revoked

IGP Actions

// Reserve and forward it to Team Multisig.
// Action 2: Migrate the 8 sUSDai vault oracles to the new capped-rate oracles.
// Action 3: Rebalance the PST T4 vault (169) supply-side drift from the Reserve.
// Action 4: Raise reUSD vaults 170 + 181 from dust to launch limits.
// Action 5: Raise PST/USDC (165) + PST/USDT (166) max borrow to $15.1M.

…oracles

Action 1 collects iETHv2 (Lite) stETH revenue and Liquidity Layer revenue
for every token with >$5k uncollected (USDC, USDT, ETH, GHO, weETH) into the
Fluid Reserve, then forwards the swept balances to Team Multisig.

Action 2 migrates the 8 live sUSDai vault oracles (171-173, 175-179) to the
newly deployed CappedRateChainlink_SUSDAI oracles and re-points the
sUSDai-USDC (DEX 46) and sUSDai-USDT (DEX 48) center prices to the same
capped rate (DF nonce 258).
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

Governance Simulation Completed - IGP-136

Payload Contract: PayloadIGP136

Proposal Actions

  • Reserve and forward it to Team Multisig.
  • Action 2: Migrate the 8 sUSDai vault oracles to the new capped-rate oracles.
  • Action 3: Rebalance the PST T4 vault (169) supply-side drift from the Reserve.
  • Action 4: Raise reUSD vaults 170 + 181 from dust to launch limits.
  • Action 5: Raise PST/USDC (165) + PST/USDT (166) max borrow to $15.1M.

📊 Transaction Summary

Step Status Transaction
deployment ✅ Success View
setExecutable ✅ Success View
delegation ✅ Success View
proposalCreation ✅ Success View
proposalCreation ✅ Success View
voting ✅ Success View
voting ✅ Success View
voting ✅ Success View
voting ✅ Success View
voting ✅ Success View
voting ✅ Success View
voting ✅ Success View
queueing ✅ Success View
execution ✅ Success View

Proposal Creation Transaction

Transaction Hash: 0x7e99aec4558c53e92acb3a09939cc306a75a0b1b2cc459e14b6268eb97bb9357

Tenderly Dashboard: View Transaction

Raw Transaction Data
From: 0xA45f7bD6A5Ff45D31aaCE6bCD3d426D9328cea01
To: 0xb7846261Ebe3770CB593519DA663D1A498302Fb8
Data: 0xaa98df39000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000018be2320436f6c6c656374204c6971756964697479204c6179657220526576656e75652c204d69677261746520735553446169205661756c74204f7261636c65732c20526562616c616e636520505354205661756c74203136392c20536574207265555344204c61756e6368204c696d6974732c20616e64205261697365205053542f55534443202b205053542f55534454204d617820426f72726f770a0a23232053756d6d6172790a0a546869732070726f706f73616c3a0a0a312e20436f6c6c6563747320746865202a2a4c6971756964697479204c6179657220726576656e75652a2a20666f7220657665727920746f6b656e206163637275696e67203e24356b2028555344432c20555344542c204554482c2047484f2c2077654554482920696e746f2074686520466c756964205265736572766520616e6420666f72776172647320697420746f205465616d204d756c7469736967202860307834463646393737614344443131373744434438316142383330373438353545634239433244343965602920746f20636c656172207468652072656d61696e696e6720726573696475616c20285265736f6c762d72656c617465642920646562742e0a322e204d6967726174657320746865202a2a38206c69766520735553446169207661756c74206f7261636c65732a2a20287661756c747320313731e280933137332c20313735e280933137392920746f206e65776c79206465706c6f796564206f7261636c6573207265666572656e63696e67202a2a43617070656452617465436861696e6c696e6b5f5355534441492a2a202860307843354432374335643335363437396236383133323833353146313538336336333035314537366130602c204446206e6f6e6365203235382920616e642072652d706f696e747320746865207355534461692d555344432028444558202a2a34362a2a2920616e64207355534461692d555344542028444558202a2a34382a2a292063656e7465722070726963657320746f207468652073616d652063617070656420726174652e0a332e20526562616c616e6365732074686520737570706c792d73696465206472696674206f6e20746865202a2a505354205434207661756c74203136392a2a2066726f6d2074686520526573657276652e0a342e20526169736573202a2a7265555344207661756c74203137302a2a202854342920616e64202a2a7661756c74203138312a2a20285433292066726f6d2064757374206c696d69747320284947502d3133352920746f206c61756e6368206c696d69747320616e642072656d6f766573205465616d204d756c74697369672061757468206f6e20626f74682e0a352e2052616973657320746865202a2a505354202f20555344432028313635292a2a20616e64202a2a505354202f20555344542028313636292a2a205431207661756c74206d617820626f72726f77206c696d69747320746f202a2a2431352e314d2a2a202866726f6d202431304d292e0a0a232320436f6465204368616e6765730a0a23232320416374696f6e20313a20436f6c6c656374204c6971756964697479204c6179657220526576656e756520616e6420466f727761726420746f205465616d204d756c746973696720666f7220526573696475616c20446562742052657061796d656e740a0a2d20604c49515549444954592e636f6c6c656374526576656e75656020696e746f207468652052657365727665202860307832363437383645463931366166363461314442313946353133463234613336383137333463653932602920666f722074686520746f6b656e73206163637275696e67203e24356b3a20555344432c20555344542c204554482c2047484f2c20616e642077654554482e20546f6b656e732062656c6f772024356b20287773744554482c20555344652920617265206578636c756465642e0a2d2060776974686472617746756e64736020666f72776172647320656163682062616c616e6365206d696e7573206f7065726174696f6e616c20647573742028602d31306020666f7220362d646563696d616c20746f6b656e732c20602d302e312065746865726020666f722031382d646563696d616c20616e64206e6174697665204554482920746f205465616d204d756c746973696720746f776172642072657061796d656e74206f662074686520726573696475616c20285265736f6c762d72656c617465642920646562742c20726561736f6e206022524556454e554520434f4c4c454354494f4e22602e202a2a555344432072657461696e732060332c3430306020696e2074686520526573657276652a2a20746f2073656c662d66756e642074686520416374696f6e203320726562616c616e636527732055534443206c65672e0a0a23232320416374696f6e20323a204d69677261746520735553446169205661756c74204f7261636c657320746f207468652043617070656420436861696e6c696e6b20526174650a0a456967687420607570646174654f7261636c65602063616c6c7320e28094205431207661756c747320627920616464726573732c2054322f54332f5434206279204465706c6f796572466163746f7279206e6f6e63652e2045616368206e6577206f7261636c652773207261746573206172652073616e6974792d636865636b6564206f6e2d636861696e20647572696e6720746865207570646174653b206d6178206f7065726174652d726174652064656c7461207673207468652063757272656e74206f7261636c6573206973202a2a3c302e3031252a2a2e0a0a7c207661756c744964207c2054797065207c204d61726b6574207c20417267756d656e74207c204e6577206f7261636c6520284446206e6f6e636529207c0a7c202d2d2d207c202d2d2d207c202d2d2d207c202d2d2d207c202d2d2d207c0a7c20313731207c205431207c20735553446169202f2055534443207c2061646472657373206030783038453935344566443131363536333839346465633439394546463145643334463442314566346560207c2047656e657269634f7261636c655f5355534441495f55534443202832353929207c0a7c20313732207c205431207c20735553446169202f2055534454207c2061646472657373206030786344433131304443453441363563313546363133443337443939343530646262433835336541373260207c2047656e657269634f7261636c655f5355534441495f55534454202832363029207c0a7c20313739207c205431207c20735553446169202f2047484f207c2061646472657373206030783033323763426242466433426646364633324542304138333246303063374233383262383633423460207c2047656e657269634f7261636c655f5355534441495f47484f202832363129207c0a7c20313738207c205432207c207355534461692d55534443202f2055534443207c206e6f6e636520323632207c20446578536d617274436f6c5065674f7261636c655f5355534441492d555344435f55534443202832363229207c0a7c20313737207c205432207c207355534461692d55534454202f2055534454207c206e6f6e636520323633207c20446578536d617274436f6c5065674f7261636c655f5355534441492d555344545f55534454202832363329207c0a7c20313733207c205433207c20735553446169202f20555344432d55534454207c206e6f6e636520323634207c20446578536d617274446562745065674f7261636c655f5355534441495f555344432d55534454202832363429207c0a7c20313735207c205434207c207355534461692d55534443202f20555344432d55534454207c206e6f6e636520323635207c20446578536d617274446562745065674f7261636c655f54345f5355534441492d555344435f555344432d55534454202832363529207c0a7c20313736207c205434207c207355534461692d55534454202f20555344432d55534454207c206e6f6e636520323636207c20446578536d617274446562745065674f7261636c655f54345f5355534441492d555344545f555344432d55534454202832363629207c0a0a43656e7465722070726963657320666f7220444558203436202860307841324533413465324130386235373134464139373443653838343636443733364244386233396439602920616e64204445582034382028603078623962383741314237393839314138433932353146353031423162356437316243376338614132346029206d6f76652066726f6d207468652063757272656e7420636f6e747261637420284446206e6f6e6365203234382920746f207468652063617070656420726174652028323538292077697468206120603125202f203220646179736020626f756e6420284947502d313035207061747465726e293b20746865206e6561722d6964656e746963616c206e65772076616c756520636f6d706c65746573207468652073686966742077656c6c2077697468696e20746865206361702e20444558203437202855534461692d555344432920646f6573206e6f7420747261636b2074686520735553446169207261746520616e64206973206c65667420756e6368616e6765642e0a0a23232320416374696f6e20333a20526562616c616e636520505354205434205661756c7420283136392920537570706c792044726966742066726f6d2074686520526573657276650a0a5661756c74203136392028736d61727420636f6c20604465785f5053545f5553444360202f20736d617274206465627420604465785f555344435f55534454602c206030783034463436313735364433373939426661303566316133363763343146614261303937343337393160292068617320647269667465642061626f766520697473204c69717569646974792d6c6179657220737570706c7920706f736974696f6e2028737570706c792072657761726473292e20466c6f7720284947502d313331207061747465726e293a0a0a312e20417070726f766520746865207661756c7420746f2070756c6c2060322c3430302050535460202b2060332c3430302055534443602066726f6d2074686520526573657276652e0a322e2054656d706f726172696c7920616c6c6f772d6c697374207468652054696d656c6f636b20617320726562616c616e63657220616e642072756e2060726562616c616e63654465785661756c747360206f6e207661756c742031363920e280942074686520737570706c79206472696674206973206465706f7369746564206261636b20696e746f2074686520636f6c6c61746572616c204445582028626f756e6465642062792074686520617070726f76616c7320616e6420746865207661756c742773206f776e207368617265206472696674292c20616e6420616e7920706f73697469766520736d6172742d646562742064726966742028555344432f555344542920666c6f777320696e746f20746865205265736572766520e28094207468656e2072656d6f76652074686520616c6c6f772d6c69737420656e7472792e0a332e205265766f6b6520746865206c6566746f76657220505354202b205553444320616c6c6f77616e63652e0a0a23232320416374696f6e20343a20726555534420444558203434202b205661756c747320313730202b20313831204c61756e6368204c696d697473202b2052656d6f7665205465616d204d5320417574680a0a52616973657320746865207265555344206d61726b65742066726f6d2064757374206c696d69747320284947502d3133352920746f206c61756e6368206c696d6974732e205661756c74207269736b20706172616d732028434620383725202f204c5420393025202f204c4d4c20393325202f204c5020332e35252920616e64207468652044455820343420666565202860322062707360292c2072616e6765202860302e3325602073796d6d65747269632920616e64205465616d204d5320617574682061726520616c72656164792073657420766961204d53312e0a0a7c204d61726b6574207c204368616e6765207c0a7c202d2d2d207c202d2d2d207c0a7c20444558203434202872655553442d555344542c20736d61727420636f6c29207c204d617820737570706c792073686172657320e28692206031322e314d6020287e2432344d2040207e24312e39382f73686172653b2066726f6d207e60364d60206f6e2d636861696e293b20602431304d602062617365207769746864726177616c2070657220746f6b656e20287265555344202b205553445429207c0a7c205661756c7420313730202854342072655553442d55534454202f20555344432d555344542c20603078313861456364383130373432613661453136304634433634316642626231346631356237454435356029207c20436f6c3a20607e24384d602062617365207769746864726177616c202860344d602044455820343420736861726573292c202a2a3335252a2a202f2036682e20446562743a20607e24354d60202f20607e2431304d6020626173652f6d617820626f72726f77202860322e354d60202f2060354d6020444558203220736861726573292c202a2a3330252a2a202f2036682e205465616d204d5320617574682072656d6f766564207c0a7c205661756c742031383120285433207265555344202f2047484f2d555344432c20603078316533613432336242443238323042303861374463613245354436383343313433424231316335336029207c20537570706c793a206024384d602052455553442062617365207769746864726177616c2c202a2a3335252a2a202f2036682e20446562743a20607e24354d60202f20607e2431304d6020626173652f6d617820626f72726f77202860322e354d60202f2060354d6020444558203420736861726573292c202a2a3330252a2a202f2036682e205465616d204d5320617574682072656d6f766564207c0a0a47484f2d555344432044455820286964203429206d617820626f72726f77207368617265732028607e32312e364d602920616c726561647920636f76657220746865207661756c74277320602431304d6020626f72726f77206361703b206e6f204445582d6c6576656c20636170206368616e6765206e65656465642e0a0a23232320416374696f6e20353a20526169736520505354202f2055534443202831363529202b20505354202f2055534454202831363629204d617820426f72726f7720746f202431352e314d0a0a426f7468206d61726b6574732077657265206c61756e6368656420696e204947502d313331206174206024384d60207769746864726177202f206024354d60206261736520626f72726f77202f20602431304d60206d617820626f72726f772028545950455f312c20353025202f20366820626f72726f7720657870616e73696f6e292e205468697320616374696f6e20726169736573206f6e6c7920746865202a2a6d61782064656274206365696c696e672a2a20746f20602431352e314d603b20746865206261736520626f72726f77206c696d697420286024354d60292c207769746864726177616c206c696d697420286024384d602920616e6420657870616e73696f6e2028353025202f203668292061726520756e6368616e6765642e0a0a7c204d61726b6574207c204964207c2054797065207c204368616e6765207c0a7c202d2d2d207c202d2d2d207c202d2d2d207c202d2d2d207c0a7c20505354202f2055534443207c20313635207c20545950455f31207c204d617820626f72726f7720602431304d20e28692202431352e314d60202855534443204c4c29207c0a7c20505354202f2055534454207c20313636207c20545950455f31207c204d617820626f72726f7720602431304d20e28692202431352e314d60202855534454204c4c29207c0a0a232320436f6e636c7573696f6e0a0a4947502d31333620636f6c6c6563747320746865203e24356b204c6971756964697479204c6179657220726576656e75652028555344432c20555344542c204554482c2047484f2c2077654554482920696e746f2074686520466c756964205265736572766520616e6420666f72776172647320697420746f205465616d204d756c746973696720746f20636c656172207468652072656d61696e696e6720726573696475616c20285265736f6c762d72656c617465642920646562742c206d6967726174657320746865203820735553446169207661756c74206f7261636c657320616e6420746865204445582034362f34382063656e7465722070726963657320746f2043617070656452617465436861696e6c696e6b5f5355534441492c20726562616c616e6365732074686520505354205434207661756c7420283136392920737570706c792064726966742066726f6d2074686520526573657276652c20726169736573207265555344207661756c74732031373020616e642031383120746f206c61756e6368206c696d6974732077697468205465616d204d756c746973696720617574682072656d6f7665642c20616e642072616973657320746865205053542f5553444320283136352920616e64205053542f55534454202831363629206d617820626f72726f77206c696d69747320746f202431352e314d2e0a0000
Value: 0x0
Gas Limit: 0x9896800
Gas Price: 0x0

Links

bergben and others added 11 commits June 29, 2026 11:55
…m Reserve

Approves PST + USDC from the Reserve, allow-lists the Timelock as rebalancer,
runs a supply-only rebalanceDexVaults (borrow side skipped), removes the
Timelock from the allow-list, then revokes the allowance.

Action 1 now retains 3,400 USDC in the Reserve to self-fund the rebalance's
USDC leg; PST (~2,400) must be funded into the Reserve separately before
execution.
… dust limits

This action raises the reUSD market limits and removes Team Multisig authorization for vaults 170 (T4 reUSD-USDT / USDC-USDT) and 181 (T3 reUSD / GHO-USDC). It sets new withdrawal and borrow caps, ensuring the vaults are ready for operational use.
Action 3 pulls 2,400 PST from the Reserve at execution but that funding is
out-of-band (mainnet Reserve currently holds 0 PST). Pre-setup now:
- reads the Reserve's PST balance on the fork
- logs a loud MAINNET ACTION REQUIRED warning on shortfall
- tops the Reserve up via tenderly_setErc20Balance so the rebalance
  simulates against the funded state (USDC leg self-funds via Action 1's
  3,400 USDC retention, so no cheat needed there)

Cheat verified against a live vnet fork (0 -> 2,400 PST).
ethers.Interface.encodeFunctionData was called statically (TS2339) — the
example now builds a proper Interface with the setAdmin fragment.
IGP-136 sim: detect + fund the 2,400 PST Reserve requirement
The Lite stETH revenue will be claimed separately via the rebalancer,
outside this payload. Action 1 now only collects the Liquidity Layer
revenue (USDC, USDT, ETH, GHO, weETH) into the Reserve and forwards it
to Team Multisig, still retaining 3,400 USDC for the Action 3 rebalance.

Also trims contract-internal jargon from description.md (revert names,
MinMax sentinels, oracle probe details) and updates the sim setup
header comment accordingly.
Cuts redundant prose to ~60 lines (matching IGP-130/134 descriptions),
folds the standalone Description section into the action sections, and
merges the Action 4 tables into one. Expands the truncated oracle and
vault addresses to full checksummed form. Drops the PST prerequisite
note and the forward-to-Team-Multisig phrase from the title.
@bergben
bergben marked this pull request as ready for review July 15, 2026 06:19
@bergben

bergben commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

latest changes lgtm

@thrilok209
thrilok209 merged commit 6560b3a into main Jul 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants