Wormhole Implementation#407
Conversation
…-apps into illuzen/wormhole
|
Draft PR overview / Review. PR OverviewBranch:
Architecture SummaryThe flow: miner earns rewards to a wormhole address → tracks transfer UTXOs → generates ZK proofs (one per UTXO) → aggregates into a batch proof → submits unsigned extrinsic to chain for withdrawal. Cross-Verification with qp-zk-circuitsThe
Potential concern: Block hash computation — the circuit uses Bugs and Issues FoundHigh Severity
Medium Severity
Low Severity
Existing TestsRust (quantus_sdk/rust/src/api/wormhole.rs) — 10 unit tests
qp-zk-circuits — ComprehensiveThe circuit repo has thorough tests: circuit fragment tests, E2E prove-verify, aggregation with dummies, negative cases for block consistency and asset ID mismatches. Dart — Zero wormhole testsNo Dart tests exist for any wormhole-related code. Missing TestsRust (quantus_sdk) — Missing
Dart — All missing
SummaryThe wormhole implementation is architecturally sound — it correctly layers Rust ZK circuits → FFI bridge → Dart services → UI. The circuit integration with
|
* fix compute_block_hash_internal use qp-zk-circuits known values
| source: hosted | ||
| version: "0.8.13+6" | ||
| version: "0.8.13+3" | ||
| image_picker_linux: |
There was a problem hiding this comment.
hmm why is image picker in the mobile app changed?
can we remove this change, or do we actually need this version of the picker for some reason
|
Notes: PR #407 — Wormhole Implementation ReviewBranch: OverviewThis PR implements the wormhole withdrawal system across three layers: Rust ZK proof generation, Dart SDK services, and the miner app UI. The bulk of the line count (~50k) is generated Planck pallet bindings. The core implementation is ~5k lines of hand-written code. Architecture — Looks GoodThe layered design is clean and well-separated: Supporting services are well-factored:
Previously Reported Bugs — FixedThe Issues FoundHIGH — Sensitive secrets persisted in plaintext
Map<String, dynamic> toJson() => {'address': address, 'purpose': purpose, 'index': index, 'secretHex': secretHex};Recommendation: Either re-derive secrets on demand from the mnemonic (which is stored in secure storage), or encrypt the file. Storing raw secrets in plaintext undermines the secure mnemonic storage. HIGH —
|
…/quantus-apps into illuzen/wormhole
…/quantus-apps into illuzen/wormhole
Ports all miner-app changes from PR #407 (illuzen/wormhole) onto a fresh branch off main, including the wormhole rewards setup flow, balance card, withdrawal screen, new wallet/state/transfer-tracking services, macOS icons/entitlements, and pubspec updates. Deliberately excludes every quantus_sdk change (Dart + Rust + cargokit), the CI workflow carve-outs for cargokit, and the unrelated mobile-app/pubspec.lock bump. The SDK will be rebuilt from scratch to support a new UX for entering the wormhole inner hash, so miner-app will not compile on this branch until that work lands.
* wormhole: bring over miner UI from #407 (no SDK/rust) Ports all miner-app changes from PR #407 (illuzen/wormhole) onto a fresh branch off main, including the wormhole rewards setup flow, balance card, withdrawal screen, new wallet/state/transfer-tracking services, macOS icons/entitlements, and pubspec updates. Deliberately excludes every quantus_sdk change (Dart + Rust + cargokit), the CI workflow carve-outs for cargokit, and the unrelated mobile-app/pubspec.lock bump. The SDK will be rebuilt from scratch to support a new UX for entering the wormhole inner hash, so miner-app will not compile on this branch until that work lands. * AI cleanup * Fix migration bug (#459) * fix migration bug add migration debug code * lint * remove migration test button * update comment * remove stats polling - no longer used * format * melos format again * feat: finish updating button icon styling * Build 100, Version 1.3.5 - Podfile fix for firebase, setting iOS version to 15 - upload file fix - force apple version of rsync * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * ndk upgrade as per gradle * change gitignore to track android required resources * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * Miner release (#462) * clean up code, remove features we don't need yet * remove unused code * info popup on mining * UX fixes * format * N13/pos v2 check pending (#420) * added pos mode v1 * add pos service * format * fix yellow underline * Payment mode says 'Pay' * format * add watch * add changes back in * new charge fix, printouts, wait button added * copy button for debug * update rust crates to new chain version (planck) * minor fix for dev accounts * check pending first version * format * fix linter errors * removing duplicate code add pending transaction polling service, using it in transaction submission and also on pos screen * format * clear mining rewards on logout rename mining rewards testnet rewards * search for pending by extrinsic hash * xcode stuff * xcode stuff * fix miner build * miner app 0.4.0 * fix miner MacOS build workflow * explicit team id so CI can build app * Update Release.entitlements * use defaults for flutter secure storage * format * restore entitlements - fix miner CI build * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * fix: DRY violation --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com>
* feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * Beast/redesign account management (#461) * wormhole: bring over miner UI from #407 (no SDK/rust) Ports all miner-app changes from PR #407 (illuzen/wormhole) onto a fresh branch off main, including the wormhole rewards setup flow, balance card, withdrawal screen, new wallet/state/transfer-tracking services, macOS icons/entitlements, and pubspec updates. Deliberately excludes every quantus_sdk change (Dart + Rust + cargokit), the CI workflow carve-outs for cargokit, and the unrelated mobile-app/pubspec.lock bump. The SDK will be rebuilt from scratch to support a new UX for entering the wormhole inner hash, so miner-app will not compile on this branch until that work lands. * AI cleanup * Fix migration bug (#459) * fix migration bug add migration debug code * lint * remove migration test button * update comment * remove stats polling - no longer used * format * melos format again * feat: finish updating button icon styling * Build 100, Version 1.3.5 - Podfile fix for firebase, setting iOS version to 15 - upload file fix - force apple version of rsync * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * ndk upgrade as per gradle * change gitignore to track android required resources * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * Miner release (#462) * clean up code, remove features we don't need yet * remove unused code * info popup on mining * UX fixes * format * N13/pos v2 check pending (#420) * added pos mode v1 * add pos service * format * fix yellow underline * Payment mode says 'Pay' * format * add watch * add changes back in * new charge fix, printouts, wait button added * copy button for debug * update rust crates to new chain version (planck) * minor fix for dev accounts * check pending first version * format * fix linter errors * removing duplicate code add pending transaction polling service, using it in transaction submission and also on pos screen * format * clear mining rewards on logout rename mining rewards testnet rewards * search for pending by extrinsic hash * xcode stuff * xcode stuff * fix miner build * miner app 0.4.0 * fix miner MacOS build workflow * explicit team id so CI can build app * Update Release.entitlements * use defaults for flutter secure storage * format * restore entitlements - fix miner CI build * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * fix: DRY violation --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * fix: DRY violation, wrong border color --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com>
* Redesign home screen (#447) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: add myr to fiat currency * Redesign activity screen and tx detail sheet (#453) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: add myr to fiat currency * chore: formatting and extract magic number * feat: fix naming issues, add new tx to send filter also * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * Beast/settings screen (#463) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * Beast/redesign account management (#461) * wormhole: bring over miner UI from #407 (no SDK/rust) Ports all miner-app changes from PR #407 (illuzen/wormhole) onto a fresh branch off main, including the wormhole rewards setup flow, balance card, withdrawal screen, new wallet/state/transfer-tracking services, macOS icons/entitlements, and pubspec updates. Deliberately excludes every quantus_sdk change (Dart + Rust + cargokit), the CI workflow carve-outs for cargokit, and the unrelated mobile-app/pubspec.lock bump. The SDK will be rebuilt from scratch to support a new UX for entering the wormhole inner hash, so miner-app will not compile on this branch until that work lands. * AI cleanup * Fix migration bug (#459) * fix migration bug add migration debug code * lint * remove migration test button * update comment * remove stats polling - no longer used * format * melos format again * feat: finish updating button icon styling * Build 100, Version 1.3.5 - Podfile fix for firebase, setting iOS version to 15 - upload file fix - force apple version of rsync * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * ndk upgrade as per gradle * change gitignore to track android required resources * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * Miner release (#462) * clean up code, remove features we don't need yet * remove unused code * info popup on mining * UX fixes * format * N13/pos v2 check pending (#420) * added pos mode v1 * add pos service * format * fix yellow underline * Payment mode says 'Pay' * format * add watch * add changes back in * new charge fix, printouts, wait button added * copy button for debug * update rust crates to new chain version (planck) * minor fix for dev accounts * check pending first version * format * fix linter errors * removing duplicate code add pending transaction polling service, using it in transaction submission and also on pos screen * format * clear mining rewards on logout rename mining rewards testnet rewards * search for pending by extrinsic hash * xcode stuff * xcode stuff * fix miner build * miner app 0.4.0 * fix miner MacOS build workflow * explicit team id so CI can build app * Update Release.entitlements * use defaults for flutter secure storage * format * restore entitlements - fix miner CI build * Redesign send screen (#458) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: review issues * fix: send confirm * Improve scaffold base (#460) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * fix: review issues * fix: DRY violation --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * fix: DRY violation, wrong border color --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * Beast/redesign home screen again (#464) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * fix: review issues * Redesign onboarding (#465) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * feat: update splash * feat: update onboarding welcome * feat: finish oboarding redesign * fix: review issues * fix: build * fix: not passing colors * feat: remove fixed timer loading, refactor create wallet logic, add proper image for receive qr * feat: make reusable component for recovery phrase * fix: PR review issues * Improve currency implementation (#470) * feat: add new font families * feat: remove accentPink, add accentOrange, update checksum color * feat: update background color - remove gradient background - create base background widget, this will be the main background widget where we update background implementation so we don't have to ever touch other file and all change can be centralized here. Kinda painful everytime need to change background have to go through different files. - Removed backgroundAlt theme color * feat: updated icon button - Removed unused glass circle icon button - Update and rename glass icon button to quantus icon button, we don't want to always create new widget for every style change. Hence generic naming is needed. - Added new button border color * feat: update standard button - Rename button component to quantus button - Update button styling - Add success variant * feat: update send and receive * feat: finish updating activity section - Updated styling for tx item - Update color text * chore: formatting * chore: ignore linter for secondary font family yet used * feat: revert number format to trailing * feat: finish new receive screen * feat: standardized circular loader It's crazy how we keep adding loader on the fly Some are still left as is because of specific usage requirements but I changed mostly to use single reusable loader * feat: finish updating toaster and copy button * feat: improve balance loading * fix: migration dialog button * feat: address reviews * feat: add geist font license * WIP: currency system * feat: finish updating currency display * chore: formatting * feat: resolve review issues - remove fragile postFrame - Add color tokens to theme - remove duplicate map index implementation * feat: update styling receive screen, add filter buttons * feat: finish integrating filtered history * feat: better loading UX * feat: optimize graphql query performance * chore: revert print timing * feat: make tx details respect currency flip and hidden state * feat: extract text style to theme * chore: formatting * fix: not properly display quan symbol in tx item * feat: resolved PR review issues - remove unused glass button assets - fix DRY violation - fix precision loss in convert fiat - remove silent fallback * feat: remove asset declaration * feat: resolve PR review issues * feat: resolve PR review issues * feat: finish initial send and qr scan screens * feat: finalize initial send screen * wip: new send flow * feat: handle clear field on click edit recipient icon * feat: finish review send screen * feat: finish send screen flow redesign * chore: formatting * fix: bad QR pay handling * fix: review issues * fix: review issues * fix: review issues * fix: review issues * feat: update scaffold base to support bottom content, also update receive screen * feat: finish refactor send flow screens * feat: finish updating button icon styling * feat: proper icon button API design * feat: finish updating main button styling * feat: finish select accounts button * feat: finish account edit flow * wip: account add flow - finish import account flow - wip create new account flow * feat: finish account create flow * feat: add recovery phrase menu in account details * feat: glass back button * wip: setting screens style update * feat: finish about screen * feat: finish help and support screen * feat: finish account type screen * feat: finish preference settings - fix pos button bug - finish currency picker * feat: finish wallet preference menu - Done all flow - Need to refactor DRY violation * feat: handle DRY violation * fix: fixing review issues * fix: review issues * fix: review issues * fix: review issues * feat: finish updating homepage balance view * feat: finish activity tx item update * feat: update splash * feat: update onboarding welcome * feat: finish oboarding redesign * fix: review issues * fix: build * fix: not passing colors * feat: remove fixed timer loading, refactor create wallet logic, add proper image for receive qr * feat: adding currency conversion in send flow * feat: implement real currency conversion * chore: formatting * fix: formatting amount * feat: make reusable component for recovery phrase * fix: PR review issues * fix: PR review issues - App will hard‑error on first launch when there's no cached rates yet - data.cast<String, double>() will TypeError when the API returns a whole number - Silent catch (_) swallows parse failures (violates the project "fail early" rule) - getRate throws but the docstring promises a fallback - _setMax() non‑flipped path is asymmetric with the flipped path - Hidden balance + flipped mode appends QUAN to the masked text - Other small fixes * feat: properly handle localization of number decimal * chore: formatting * fix: exchange rates consumption and cache handling, also fixed chain history service merge conflict * feat: properly throw on broken convert fiat to quan * fix round 4 issues * more cases --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com> * fix: PR review issues * chore: formatting * fix: remove silent fallback in _toggleFlip QUAN->Fiat round-trip The catch (_) silently swallowed parse failures, violating the project's "fail early / no fallback code" rule. Round-trip is now stable after the exchange-rate fiat rounding fix, so any genuine failure should surface. * fix: failing tests * chore: formatting --------- Co-authored-by: Nikolaus Heger <nheger@gmail.com>
No description provided.