A PoC where a user can
- Connect their Keplr wallet, see their balance on Osmosis
- Switch their account and the entire website should react to the account switch
- Sign and send a transfer tx where the status of the tx is displayed to the user via a Dialog
- Sign and send a tx that does multiple transfers(not a multi-send) to 2+ different addresses
- The UI must have an input field that takes addresses where the user can click on a plus icon that increases the amount of addresses to send
- The tx should be simulated to estimate how much gas is required for the aggregated msgs that the tx needs to send(Do not rely on Keplr’s internal gas calculation)
- See the result of previous txs as a table, similar to how IBC txs are displayed on https://app.osmosis.zone/portfolio.
- Previous txs should be stored in the browser’s IndexedDB, not local storage.(Persists through refresh)
- Previous txs should consist of txHash, target addresses, amounts, timestamps
- The design can be terrible but make all interactions and updates to the UI fluid, using either custom tailwind animations or framer-motion
For extra
- Implement IBC transfer from Osmosis <> Cosmos, show the user’s OSMO balance on Cosmos
- Display the states of the IBC transfer with a stepper
- Implement IBC hook transfer using PFM from Osmosis → Cosmos → Osmosis
Use the following
Nextjs + turborepo
Segregate the wallet logic into a package
tailwind, react-aria-components
tanstack query for all queries & mutations
Jotai for anything global state
Cosmjs / Cosmos-kit if necessary
Expected results
A repo with a README.md file with as verbose as possible explanation of what was implemented, the way it was implemented and why.