Skip to content

Add CGP-244: Improve Withdrawal for StakedCelo - #820

Merged
0xzoz merged 2 commits into
mainfrom
cgp-0244/stcelo-improve-withdrawal
Jun 26, 2026
Merged

Add CGP-244: Improve Withdrawal for StakedCelo#820
0xzoz merged 2 commits into
mainfrom
cgp-0244/stcelo-improve-withdrawal

Conversation

@Mc01

@Mc01 Mc01 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds CGP-0244 — Upgrade stCELO Contracts: Precise Withdrawal Accounting and Distribution.

Main change: upgrades the four core stCELO implementation contracts (Account, Manager, DefaultStrategy, SpecificGroupStrategy) so withdrawal capacity accounting reflects what is actually realisable at withdrawal time, spreads withdrawals across healthy groups, and adds a permissionless rescueScheduledWithdrawal safeguard — motivated by the forum discussion. Storage layouts are unchanged and the upgrade is non-breaking for stCELO holders.

The proxies are owned by the StakedCelo MultiSig (0x78DaA21FcE4D30E74fF745Da3204764a0ad40179), so the upgrade routes through its governanceProposeAndExecute entrypoint (callable only by Celo Governance), which forwards four upgradeTo calls as the proxies' owner.

New implementations

Contract Proxy (unchanged) New implementation
Account 0x4aAD04D41FD7fd495503731C5a2579e19054C432 0x3a81b5bd5c719cd57d9122d34a093119d61c8117
DefaultStrategy 0x3A3ed74B1cC543D5EB323f70ac2F19977a0eA088 0xac294abf757dd2890c65751dcc095152c27b3416
SpecificGroupStrategy 0xb88af6EAc9cd146D8b03b66708EF76beBD937871 0x9cbbb5b84dc3dec31daea36c53bdfe145cb40e9d
Manager 0x0239b96D10a434a56CC9E09383077A0490cF9398 0xbc465bbf2e2d71c62eda1b24061916877f6ae15e

Table order matches the proposal payload (Account, DefaultStrategy, SpecificGroupStrategy, Manager). A shared AddressSortedLinkedList library (0x1f2030b177ea2d1ef457e4311d4ace5a920381a1) is linked into the new bytecode — not a proxy or upgrade target.

Proposal transactions (CGPs/cgp-0244/mainnet.json)

A single Celo Governance transaction:

  1. StakedCeloMultiSig.governanceProposeAndExecute(address[],uint256[],bytes[]) → four upgradeTo(newImpl) calls (selector 0x3659cfe6), one per proxy, applied atomically.

Files

  • CGPs/cgp-0244.md — proposal description
  • CGPs/cgp-0244/mainnet.json — proposal transaction

Notes / TODO

  • governance-proposal-id left blank until submitted on-chain.
  • author set to Pavel Hornak (@pahor167) (forum author + cgp-0239 precedent) — adjust if championed under a different name.
  • Payload simulated read-only from the committed file (cast call of governanceProposeAndExecute from the Governance proxy 0xD533Ca…7972): executes with no revert; all four proxies confirmed owned by the MultiSig and each paired with its own implementation. A direct upgradeTo from Governance reverts Ownable: caller is not the owner, confirming the MultiSig route is required.
  • New implementations are deployed and source-verified on Celoscan/Blockscout; confirm against the stCELO audit report once published.
  • Deposit to submit: 10,000 CELO (liquid, refundable on dequeue).

@Mc01 Mc01 changed the title Add CGP-244: Improve Withdrawal for StakedCelo. Add CGP-244: Improve Withdrawal for StakedCelo Jun 25, 2026
@0xzoz
0xzoz merged commit 520c46c into main Jun 26, 2026
4 checks passed
@0xzoz
0xzoz deleted the cgp-0244/stcelo-improve-withdrawal branch June 26, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants