mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-25 16:23:16 +00:00
Add a "Create Pool" flow to the AMM app that lets a user open a new liquidity position — seeding a pool's initial liquidity — from token selection and amount entry, through a confirmation dialog, to on-chain submission. - client crate (apps/amm/client): pure, testable protocol logic — account decoding, pair/position modelling, and quote/plan computation — exposed to the app over a C ABI (config/networks.json drives network selection). - C++ runtime + backend: AmmClient, ActiveNetwork, and NewPositionRuntime, wired into AmmUiBackend (new resolve/quote/submit slots). - QML flow: NewPositionForm, NewPositionFlow state, NewPositionConfirmation- Dialog, TokenSelectorModal, and reusable Amm* presentational components (theme, surfaces, buttons) + AmountMath.js. - tests: C++ (NewPositionRuntimeTest, ActiveNetworkTest) and QML (tst_NewPositionForm, tst_LiquidityPage, tst_TokenAmountInput, …).
44 lines
1.1 KiB
QML
44 lines
1.1 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
|
|
Button {
|
|
id: root
|
|
|
|
required property var theme
|
|
|
|
activeFocusOnTab: true
|
|
focusPolicy: Qt.StrongFocus
|
|
hoverEnabled: true
|
|
implicitHeight: 56
|
|
|
|
Accessible.name: text
|
|
|
|
contentItem: Text {
|
|
text: root.text
|
|
color: root.enabled ? "#FFFFFF" : root.theme.colors.textSecondary
|
|
font.pixelSize: 17
|
|
font.weight: Font.Medium
|
|
horizontalAlignment: Text.AlignHCenter
|
|
verticalAlignment: Text.AlignVCenter
|
|
elide: Text.ElideRight
|
|
}
|
|
|
|
background: Rectangle {
|
|
radius: 20
|
|
color: !root.enabled
|
|
? root.theme.colors.panelBg
|
|
: root.pressed
|
|
? root.theme.colors.ctaPressedBg
|
|
: root.hovered || root.activeFocus
|
|
? root.theme.colors.ctaHoverBg
|
|
: root.theme.colors.ctaBg
|
|
border.color: root.activeFocus && root.enabled
|
|
? root.theme.colors.textPrimary : "transparent"
|
|
border.width: 1
|
|
|
|
Behavior on color {
|
|
ColorAnimation { duration: 120 }
|
|
}
|
|
}
|
|
}
|