rspace-online/backlog/tasks/task-37 - Port-folk-transac...

2.1 KiB

id title status assignee created_date updated_date labels milestone dependencies references priority
TASK-37 Port folk-transaction-builder shape (Safe multisig) Done
2026-02-18 19:51 2026-03-12 04:38
shape-port
phase-4
web3
m-0
TASK-24
canvas-website/src/shapes/TransactionBuilderShapeUtil.tsx
canvas-website/src/components/safe/TransactionComposer.tsx
canvas-website/src/components/safe/PendingTransactions.tsx
canvas-website/src/components/safe/TransactionHistory.tsx
low

Description

Port TransactionBuilderShapeUtil + Safe components from canvas-website to rspace-online.

Source: canvas-website/src/shapes/TransactionBuilderShapeUtil.tsx (157 lines) + canvas-website/src/components/safe/ (585 lines total: SafeHeader, TransactionComposer, PendingTransactions, TransactionHistory) Target: rspace-online/lib/folk-transaction-builder.ts

Features to implement:

  • Transaction composition UI (select recipient, amount, data)
  • Pending transaction queue display
  • Transaction history view
  • Mode switching: compose/pending/history
  • Safe wallet integration

May need safe-apps-sdk or ethers.js dependency (TASK-24).

Acceptance Criteria

  • #1 Transaction composer creates valid transactions
  • #2 Pending queue displays waiting transactions
  • #3 History view shows past transactions
  • #4 Mode switching works (compose/pending/history)
  • #5 Toolbar button added to canvas.html

Implementation Notes

Created folk-transaction-builder.ts canvas shape with Compose/Pending/History tabs. Compose: form for recipient, value, calldata, description with Propose button. Pending: fetches from rwallet proxy, shows confirmation count vs threshold, Confirm/Execute buttons. History: paginated executed txs with block explorer links. Supports Ethereum, Optimism, Gnosis, Polygon, Arbitrum, Base chains. Registered in canvas.html (SHAPE_DEFAULTS, toolbar Spend group, context menu). Uses existing rwallet API endpoints.