Skip to content

[GoodBounty] Finalize GoodReserve widget PR #44

@L03TJ3

Description

@L03TJ3

Summary

Pick up the existing GoodReserve widget PR, run it locally, fix implementation gaps,
align the implementation with the approved design references, update tests/evidence,
and prepare it for human review.

Source references:

Contributor task

GoodReserve checks

  • packages/goodreserve-widget remains the main implementation surface for the reserve widget.
  • The widget still uses the provider-first GoodWidget runtime path and does not add a new wallet abstraction.
  • Disconnected and unsupported-chain states are clear and actionable.
  • Supported-chain behavior is correct for Celo (42220) and XDC (50).
  • Buy and sell directions both work and update token labels, balances, and quote presentation correctly.
  • Amount editing, quote debounce/loading, quote success, and quote failure states are coherent and do not regress.
  • Insufficient balance, reserve warning, and reserve-specific error states are surfaced with user-readable messaging.
  • Slippage selection, confirm dialog, pending, success, and error transaction states all behave correctly.
  • widgetRuntimeContract.ts and integration.ts still accurately describe the widget states, events, and dependencies.
  • Main swap view, confirmation flow, CTA states, warning/error presentation, and success feedback align with the Stitch and Figma references from issue [Plan]: Build GoodReserve Widget — Reserve swap UI backed by GoodReserve SDK #15.
  • UI stays aligned with the GoodWalletV2 swap reference and the GoodWidget design-system constraints.
  • Visual polish issues are addressed, including layout, spacing, hierarchy, and component treatment where PR Add @goodwidget/goodreserve-widget with reserve swap runtime contract, quote/tx state machine, and Storybook/demo coverage #39 does not yet match the provided references (stitch and figma).
  • Mobile and desktop layouts are usable.

Storybook and test checks

  • Stories cover no-provider, unsupported-chain, buy/sell, amount editing, quote loading, quote-ready buy, quote-ready sell, quote error, insufficient balance, slippage selection, confirm dialog, swap pending, swap success, and swap error.
  • Reserve-specific fixtures remain deterministic and CI-safe without requiring live RPC behavior.
  • Playwright coverage verifies the main reserve stories and key CTA/state transitions for the widget.
  • Updated screenshots reflect the latest UI after alignment to the Stitch/Figma references.
  • Any updated screenshots or UI evidence are reflected in the PR description or contributor handoff comment.

Required commands

pnpm install
pnpm build
pnpm lint
pnpm test:storybook
pnpm test:demo tests/widgets/goodreserve-widget

If a command cannot be run, document why and treat the underlying blocker explicitly.

Acceptance criteria

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions