lez-programs/apps/amm/src/AmmClient.h
Ricardo Guilherme Schmidt 6de8a5fe9a
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-16 15:46:50 +02:00

31 lines
1.1 KiB
C++

#pragma once
#include <QJsonObject>
struct AmmClientResult {
bool ok = false;
QJsonObject value;
};
class AmmClient {
public:
virtual ~AmmClient() = default;
virtual AmmClientResult configId(const QJsonObject& request) const = 0;
virtual AmmClientResult tokenIds(const QJsonObject& request) const = 0;
virtual AmmClientResult pairIds(const QJsonObject& request) const = 0;
virtual AmmClientResult context(const QJsonObject& request) const = 0;
virtual AmmClientResult quote(const QJsonObject& request) const = 0;
virtual AmmClientResult plan(const QJsonObject& request) const = 0;
};
class BundledAmmClient final : public AmmClient {
public:
AmmClientResult configId(const QJsonObject& request) const override;
AmmClientResult tokenIds(const QJsonObject& request) const override;
AmmClientResult pairIds(const QJsonObject& request) const override;
AmmClientResult context(const QJsonObject& request) const override;
AmmClientResult quote(const QJsonObject& request) const override;
AmmClientResult plan(const QJsonObject& request) const override;
};