Commit Graph
39 Commits
Author SHA1 Message Date
Ricardo Guilherme Schmidt 155eae3d7f fix(amm): avoid duplicate wallet context refreshes 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 56178fb6af fix(amm): complete repeated context refreshes 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 80e3a7da62 fix(amm): reload changed sequencer configuration 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 9a15b33d23 fix(amm): evict stale accounts before forced reads 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt d7f13de041 fix(amm): refresh wallet holdings on context reload 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 338ed52545 fix(amm): back off network identity probes 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 210eb9805b fix(amm): align wallet RPC with public testnet
Pin wallet FFI to the rc6 sequencer contract while retaining the Darwin xcrun workaround. Add a regression check and matching core LGX outputs.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 2f029d4c91 feat: Introduce SequencerClient for enhanced account management and transaction querying
- Added SequencerClient class to handle asynchronous account reads and transaction queries.
- Updated NewPositionRuntime to integrate SequencerClient, allowing for improved wallet account management.
- Modified existing tests to accommodate changes in the new position schema from v1 to v2.
- Enhanced QML tests to validate new position form behavior with updated holding selections and context handling.
- Refactored code to ensure compatibility with the new SequencerClient functionalities.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 5cb408379c fix(amm): make flake portable across macOS and Linux 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 11af43c5e0 fix(amm-ui): require explicit liquidity inputs
Keep wallet assets as token choices without automatically selecting a pair. Keep pool-probe amounts internal so active-pool quotes do not populate the form before user input.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 76ded1a933 refactor(amm-ui): defer token decimal inference
Keep token balances and amounts in raw integer units until the decimal display model receives dedicated UX analysis.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 0bf0d84e2a feat(amm-ui): reshape liquidity position layout
Add responsive step navigation and a wider deposit workspace while preserving the shared create-pool and add-liquidity flow.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt e816044588 refactor(amm): split client protocol into reusable API
Expose typed Rust request contracts and transport-independent operations for application clients. Keep the existing C ABI as a thin adapter so the AMM UI continues to use the same symbols.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 0327892a70 feat(amm-ui): complete new position liquidity flow
Implement one create-pool and add-liquidity workflow. Add searchable token resolution, direct opening-price and deposit editing, optimistic pool activation, and base58 transaction IDs.

Isolate network, wallet, AMM client, and runtime boundaries. Stabilize quote, submission, refresh, and pool-probe state while consolidating liquidity tests and removing obsolete liquidity paths.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt e3d019d2ce feat(amm-ui): refactor quote computation and introduce new position plan structures 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt bc47e6fbda feat(amm-ui): implement new position flow #216
Replace prototype data and floating-point quotes with live wallet and
chain reads, exact Rust quote planning, and optimistic external-wallet
submission.

Add canonical display-order mapping, responsive QML states,
network-scoped program configuration, and packaged Rust client support.
2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 5d8b1e3a3c test(amm-ui): validate new position flow #224 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt b21f040e37 feat(amm-ui): wire new position QML flow #223 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt 17f1c430ac feat(amm-ui): add new position backend API #222 2026-07-18 19:55:15 -03:00
Ricardo Guilherme Schmidt e55c7edb64 feat(amm-ui): add new position prototype #221 2026-07-18 19:54:05 -03:00
r4bbit 3f26d02230 WIP 2026-07-18 19:54:05 -03:00
r4bbit 1e683102e9 fix(apps/amm): ensure changing endpoint works 2026-07-18 19:54:05 -03:00
Ricardo Guilherme Schmidt 2977399cb0 fix(wallet): show decoded program account data 2026-07-18 19:53:02 -03:00
Ricardo Guilherme Schmidt 5c151728ad fix(wallet): present tokens in bordered boxes 2026-07-18 19:51:38 -03:00
Ricardo Guilherme Schmidt 9049d31e70 chore(wallet): synchronize shared wallet module 2026-07-18 19:38:14 -03:00
Ricardo Guilherme Schmidt b71be34edf perf(amm): cache verified token definitions 2026-07-17 21:39:09 -03:00
Ricardo Guilherme Schmidt 6ccd37b231 perf(wallet): batch account presentation updates 2026-07-17 20:38:49 -03:00
Ricardo Guilherme Schmidt fc1658635b perf(wallet): reuse created account snapshot reads 2026-07-17 20:34:28 -03:00
Ricardo Guilherme Schmidt addccf3850 perf(wallet): skip redundant wallet account probes 2026-07-17 20:29:34 -03:00
Ricardo Guilherme Schmidt 9d4af6a5f7 perf(wallet): avoid redundant async snapshot saves 2026-07-17 20:26:29 -03:00
Ricardo Guilherme Schmidt 9b72b08c2d feat(wallet): humanize shared wallet experience 2026-07-17 20:18:09 -03:00
r4bbit c0947e1917 fix(apps/wallet): use @loader_path rpath for the QML plugin on macOS
The Logos.Wallet QML plugin was installed with an ELF "$ORIGIN" rpath.
macOS dyld does not expand "$ORIGIN", so loading the plugin failed with

  Cannot load library liblogos_wallet_qmlplugin.dylib:
  Library not loaded: @rpath/liblogos_wallet_qml.dylib

even though liblogos_wallet_qml.dylib sits in the same directory. Select
the rpath per platform: @loader_path on Apple, $ORIGIN elsewhere, so
@rpath/liblogos_wallet_qml.dylib resolves to the sibling library.
2026-07-16 15:09:52 +02:00
r4bbit d47cc70ce7 fix(apps/amm): use patched LEZ version that nukes xcrun cache
Done in https://github.com/logos-blockchain/logos-execution-zone/pull/629/changes
Needed to avoid `missing metal toolchain` issue on macOS
2026-07-16 15:09:52 +02:00
Ricardo Guilherme Schmidt 049ccdf6a7 refactor(wallet): centralize UI wallet coordination
Move wallet lifecycle, account-model synchronization, settings, and reachability behind a composition-based WalletController. Keep AmmUiBackend as the QtRO forwarding adapter while retaining direct WalletProvider ownership for program-specific reads and transaction submission.

Adopt the thin-consumer direction demonstrated by PR #230 without coupling the shared module to generated QtRO base classes.

Refs #227

Refs #230
2026-07-16 15:09:45 +02:00
Ricardo Guilherme Schmidt ae52613279 refactor(amm-ui): use shared wallet modules
Replace AMM-local wallet access, account state, controls, and confirmation-dialog mechanics with the reusable wallet targets. Keep AMM-specific transaction summaries and actions in the AMM UI.\n\nRefs #227
2026-07-16 15:09:30 +02:00
Ricardo Guilherme Schmidt ea4fcc2c6c feat(wallet): add reusable wallet modules
Add program-neutral wallet access, a stable account model, reusable QML controls, transaction confirmation, submitted-transaction presentation, and isolated contract tests.\n\nRefs #227
2026-07-16 14:08:38 +02:00
r4bbit 25b8b86103 chore(amm): add Logos Basecamp support
Provides the necessary instructions to run the AMM app inside Logos
Basecamp.

Closes #29
2026-07-15 18:31:39 +02:00
r4bbit 751d4ac530 feat(amm): wire the AMM app to the LEZ wallet module
Turns the dummy-data AMM UI into a real client of the on-chain LEZ wallet.
Adds a hand-written ui_qml C++ backend (src/AmmUi*) over the core
logos_execution_zone module: create/open a local wallet, create and list
public/private accounts, and a navbar Connect / Connected + account-selector
+ Disconnect flow. Onboarding is password-only (no path picking) with a
per-app wallet at ~/.lee/amm-wallet (override: AMM_WALLET_HOME_DIR);
standalone gets its own wallet, Basecamp shares accounts via adopt-on-start.

Requires Nix with flakes; macOS also needs `sandbox = false` (the default).
The logos_execution_zone input is pinned to a module rev whose LEZ (lssa)
already includes the macOS Metal-build fix, so no `--override-input` is
needed — plain `nix run .` works:

    cd apps/amm
    nix run .

- create_new now returns the new wallet's BIP39 mnemonic (not an int status);
  the app currently discards it, so the wallet can't yet be recovered. Surfacing
  it in onboarding (+ restore_storage) is a follow-up.
- The wallet password is currently a no-op upstream (storage.rs: "TODO: use
  password for storage encryption"); storage.json is plaintext. So Disconnect
  is a UI-level lock and reconnect does not (cannot yet) re-prompt for it.
- wallet-ffi requires explicit config/storage paths; a *_default() FFI would
  let the app drop its path handling.
- Bundled network config: connects to whatever WalletConfig::default() points
  at; real testnet endpoints still TBD.
2026-07-02 18:57:01 +02:00
r4bbit 3622016e6c refactor: move programs into programs and UIs into apps
This refactors the repository structure as it has grown over time.
2026-05-26 14:05:52 +02:00