Is your feature request related to a problem? Please describe.
Users with G$ staked on Fuse (GovernanceStakingV2) need to move to Celo Savings. There is no in-app prompt on Savings or Stake when a wallet still has a Fuse governance stake, so migration is easy to miss.
Describe the solution you'd like
On Savings (/savings) and Stake (/stakes, including GoodDAO Staking and the embedded Savings section), detect a non-zero Fuse governance stake for the connected wallet.
If detected, show an inline popover (short copy + CTA). The CTA opens a modal with the migration steps (summary → sign/bridge → success). Do not use a new tab or standalone page as the entry point.
Reuse GoodWidget UI where practical. Contract addresses from deployment.json only.
GoodWallet: same UX on equivalent screens.
Acceptance criteria
- Popover only when Fuse stake > 0; hidden when disconnected or fully migrated
- CTA opens migration modal; no regression to existing
SavingsModal / StakeDeposit
- i18n + analytics for prompt, modal, and steps
Describe alternatives you've considered
- Full-page migration route only — rejected as primary entry; modal first, optional route if the wizard is too large
AppNotice banner only — rejected; product wants popover + modal
- Auto-open modal on load — rejected; popover is non-blocking, modal on explicit CTA
Additional context
Is your feature request related to a problem? Please describe.
Users with G$ staked on Fuse (
GovernanceStakingV2) need to move to Celo Savings. There is no in-app prompt on Savings or Stake when a wallet still has a Fuse governance stake, so migration is easy to miss.Describe the solution you'd like
On Savings (
/savings) and Stake (/stakes, including GoodDAO Staking and the embedded Savings section), detect a non-zero Fuse governance stake for the connected wallet.If detected, show an inline popover (short copy + CTA). The CTA opens a modal with the migration steps (summary → sign/bridge → success). Do not use a new tab or standalone page as the entry point.
Reuse GoodWidget UI where practical. Contract addresses from deployment.json only.
GoodWallet: same UX on equivalent screens.
Acceptance criteria
SavingsModal/StakeDepositDescribe alternatives you've considered
AppNoticebanner only — rejected; product wants popover + modalAdditional context