SIP-0094 Perimeter Fee - #91
Open
tjcloa wants to merge 11 commits into
Open
Conversation
The text still promised a separate technical SIP document per ballot — left over from the earlier multi-document plan. Corrected in all three places: the summary now says this document covers all three parts, the Part 1 section points at the Deployed contracts section for the action-by-action breakdown, and the rollback anchors and runtime code hashes are now an actual table in this document rather than a reference to a document that does not exist. Notes that the two new registrations have no rollback anchor and that the liquidation module is deliberately not redeployed.
The Perimeter Fee controller and vault are deployed on RSK mainnet from Sovryn-perimeter 881c74d and source-verified on Blockscout, so the core table now carries final addresses instead of placeholders. Records that the controller shipped switched off with the four charging surfaces at 10 bps, the AMM surface shut, and admin plus ownership pointed at the Exchequer. The lending and Zero tables stay placeholders until Phase B.
Phase B executed 2026-08-13: seven lending artifacts (commit 93997a55) and the two Zero implementations (commit a6ad838e), all verified to hold code on-chain, live proxies untouched. Zero implementation codehashes are byte-identical to the fork rehearsal's pins. Adds the SwapsImplSovrynSwapLib note: linked, not registered, address required to reproduce module bytecode. The rollback-anchor table stays TBD until CP-C freezes the live implementations it replaces.
The module now registered by Part 1 is 0x279D307C09E30d282aA96C3F4D216051277787f7, linked against the already-verified library 0x47Dc479c… instead of the byte-identical unverifiable copy, so voters audit a library whose source is already on the explorer. On-chain proof: the relinked module differs from its predecessor in exactly the 20 link-address bytes.
All seven rows now carry the currently-live implementation each Part 1 action supersedes (read from the protocol's getTarget routing, the two iToken beacons' active module logs, and the two Zero proxies), the final new implementation, and its on-chain runtime code hash. The CollSurplusPool row's 'no prior implementation' claim is corrected: the proxy has served its original implementation unupgraded since deployment, and that address is the rollback anchor. Anchors are re-verified at proposal creation; drift voids and re-freezes the table.
…, fix a stray character Review found the library paragraph understated the facts: LoanClosingsWith links the pre-existing library 0x47Dc479c…, but the other two registered modules, LoanClosingsRollover and LoanMaintenance, link 0xFE2bb2d… — the copy this release deployed, which the text described as merely set aside. Both addresses are needed to rebuild the registered modules, and both are explorer-verified, so both are now disclosed in a table naming which module links which. Confirmed on-chain by reading each module's runtime bytecode. The Part 1 summary promised action-by-action call data in the deployed contracts section, which carried only addresses and code hashes. That section now holds the ten actions in execution order with target, signature and argument, noting that the encoded call data is frozen into the proposal at creation, and that the implementation swap precedes the controller wiring in actions 9 and 10. Also removes a stray period after the third Risks bullet.
Carries the addresses of the release that is actually on chain, replacing the set the document named before the identifier re-cut moved every surface id and required a redeploy. All ten Part 1 actions were checked against the calldata the proposal builders produce, action by action, on a forked-mainnet run against the deployed bytecode. Also in this pass: - action 7's signature is setBorrowerExitPerimeterOps(address), and the module it registers is BorrowerExitPerimeterOps -- the re-cut reached both names; - all three library consumers now link the same SwapsImplSovrynSwapLib deployment, the one the explorer verifies as a full source match, so the split-link table and its explanation are gone; - runtime code hashes recomputed from chain for all six replaced artifacts; - all seven rollback anchors re-read from the live protocol, beacons and proxies: unchanged, no drift; - ownership stated precisely -- the Exchequer is the operational admin today and the named pending owner, and accepts before execution.
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.
No description provided.