diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index a6c06597fa..2d72a9c0b0 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,6 +1,6 @@
---
name: Bug report
-about: Something looks wierd or doesn't work as expected? Let us know the details so we can fix it!
+about: Something looks weird or doesn't work as expected? Let us know the details so we can fix it!
title: "[BUG]: "
labels: bug
assignees: ''
@@ -26,10 +26,10 @@ Please describe what you expected to happen.
**Operating Environment(s):**
- OS: [e.g. Windows/OSX/Linux. If Linux, include distro. ]
- OS version: [e.g. 7/10/11, 10.13/10.15, 18.04/20.04 ]
- - AtomicDEX Version: [e.g. 0.5.7]
+ - Komodo Wallet Version: [e.g. 0.6.1]
- Build branch: [e.g. master/dev]
**Additional context**
- Add any related context about the problem here (e.g. screen resolution, mining activity on address)
- - Attach [log files](https://forum.komodoplatform.com/t/accessing-atomicdex-desktop-log-files/540)
+ - Attach [log files](https://forum.komodoplatform.com/t/accessing-komodo-wallet-desktop-log-files/540)
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 11f973fa6c..6a2d2d5040 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -16,9 +16,9 @@ A clear and concise description of how your solution could be implemented.
**Describe alternatives you've considered**
-Have you considered any alternative approaches to solving to the problem?
+Have you considered any alternative approaches to solving the problem?
**Additional context**
For visual features, screenshots are great to include.
-If your request is similar to a feature frm a different app, please include a link.
+If your request is similar to a feature from a different app, please include a link.
diff --git a/.github/ISSUE_TEMPLATE/support.md b/.github/ISSUE_TEMPLATE/support.md
index c3b49f6c2a..edf217c51b 100644
--- a/.github/ISSUE_TEMPLATE/support.md
+++ b/.github/ISSUE_TEMPLATE/support.md
@@ -8,5 +8,5 @@ assignees: ''
---
[Komodo Platform Discord Support Channel](https://discord.gg/RRZ8hzc)
-[Komodo Platform Forum](https://forum.komodoplatform.com/t/atomicdex-desktop-collection/541)
+[Komodo Platform Forum](https://forum.komodoplatform.com/t/komodo-wallet-desktop-collection/541)
[Develper Documentation](https://developers.komodoplatform.com/)
\ No newline at end of file
diff --git a/.github/workflows/firodex-desktop-ci.yml b/.github/workflows/firodex-desktop-ci.yml
index 93238ce19e..4826cc8730 100644
--- a/.github/workflows/firodex-desktop-ci.yml
+++ b/.github/workflows/firodex-desktop-ci.yml
@@ -18,7 +18,6 @@ env:
DEX_DISPLAY_NAME: "Firo Dex"
DEX_COMPANY: "Firo"
DEX_WEBSITE: "https://firo.org/"
-
jobs:
ci-flow:
@@ -80,6 +79,9 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
submodules: 'true'
+ - name: Expose GitHub Runtime Env
+ uses: crazy-max/ghaction-github-runtime@v2
+
- name: Setup Python
uses: actions/setup-python@v4
with:
@@ -108,7 +110,7 @@ jobs:
- name: Install QT (macOS)
if: runner.os == 'macOS'
- uses: jurplel/install-qt-action@v3.0.0
+ uses: jurplel/install-qt-action@v3.3.0
with:
version: ${{ matrix.qt }}
host: ${{ matrix.host }}
@@ -121,7 +123,7 @@ jobs:
- name: Install QT (Linux)
if: runner.os == 'Linux'
- uses: jurplel/install-qt-action@v3.0.0
+ uses: jurplel/install-qt-action@v3.3.0
with:
version: ${{ matrix.qt }}
host: ${{ matrix.host }}
@@ -133,7 +135,7 @@ jobs:
- name: Install QT (Windows)
if: runner.os == 'Windows'
- uses: jurplel/install-qt-action@v3.0.0
+ uses: jurplel/install-qt-action@v3.3.0
with:
version: ${{ matrix.qt }}
host: ${{ matrix.host }}
@@ -149,13 +151,24 @@ jobs:
run: |
export DEBIAN_FRONTEND=noninteractive
export SHELL=/bin/bash
- echo "CHOOSENIM_CHOOSE_VERSION=1.6.10" >> $GITHUB_ENV
- export CHOOSENIM_CHOOSE_VERSION=1.6.10
+ echo "CHOOSENIM_CHOOSE_VERSION=1.6.2" >> $GITHUB_ENV
+ export CHOOSENIM_CHOOSE_VERSION=1.6.2
curl https://nim-lang.org/choosenim/init.sh > choosenim.sh
chmod +x choosenim.sh
./choosenim.sh -y
export PATH=/home/runner/.nimble/bin:$PATH
- chmod +x /home/runner/.choosenim/toolchains/nim-1.6.10/bin/*
+ chmod +x /home/runner/.choosenim/toolchains/nim-1.6.2/bin/*
+
+ - name: Install nim (MacOS)
+ if: runner.os == 'macOS'
+ run: |
+ echo "CHOOSENIM_CHOOSE_VERSION=1.6.2" >> $GITHUB_ENV
+ export CHOOSENIM_CHOOSE_VERSION=1.6.2
+ curl https://nim-lang.org/choosenim/init.sh > choosenim.sh
+ chmod +x choosenim.sh
+ ./choosenim.sh -y
+ export PATH=/Users/runner/.nimble/bin:$PATH
+ chmod +x /Users/runner/.choosenim/toolchains/nim-1.6.2/bin/*
- name: Install deps (Linux)
if: runner.os == 'Linux'
@@ -182,10 +195,9 @@ jobs:
echo "CC=clang-12" >> $GITHUB_ENV
- name: vcpkg deps (All)
- uses: lukka/run-vcpkg@v10
+ uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/ci_tools_atomic_dex/vcpkg-repo'
- appendedCacheKey: ${{ hashFiles('vcpkg.json') }}
vcpkgJsonGlob: 'vcpkg.json'
@@ -208,9 +220,7 @@ jobs:
# p12-file-base64: ${{ secrets.CERTIFICATES_INSTALLER_P12 }}
# p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
-
-
- - name: Build AtomicDEX (MacOS)
+ - name: Build Komodo Wallet (MacOS)
if: runner.os == 'macOS'
run: |
xcrun --sdk macosx --show-sdk-path
@@ -225,6 +235,7 @@ jobs:
export ASC_PUBLIC_ID="${{ secrets.ASC_PUBLIC_ID }}"
export QT_INSTALL_CMAKE_PATH=${{ github.workspace }}/Qt/${{ matrix.qt }}/clang_64/lib/cmake
export QT_ROOT=${{ github.workspace }}/Qt/${{ matrix.qt }}
+ export PATH=/Users/runner/.nimble/bin:$PATH
export MACOSX_DEPLOYMENT_TARGET=10.15
export CC=clang
export CXX=clang++
@@ -234,7 +245,7 @@ jobs:
- - name: Build AtomicDEX (Linux)
+ - name: Build Komodo Wallet (Linux)
if: runner.os == 'Linux'
run: |
export QT_INSTALL_CMAKE_PATH=${{ github.workspace }}/Qt/${{ matrix.qt }}/gcc_64/lib/cmake
@@ -377,6 +388,7 @@ jobs:
export ATOMICDEX_PASSWORD=${{ secrets.ATOMICDEX_PASSWORD }}
export QT_INSTALL_CMAKE_PATH=${{ github.workspace }}/Qt/${{ matrix.qt }}/clang_64/lib/cmake
export QT_ROOT=${{ github.workspace }}/Qt/${{ matrix.qt }}
+ export PATH=/Users/runner/.nimble/bin:$PATH
export CC=clang
export CXX=clang++
#echo "Running tests"
diff --git a/.gitignore b/.gitignore
index df4eea238a..93ff04824c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
-
+.vscode/
*~
*.autosave
*.a
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 02e4592433..1c25541055 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,9 +18,9 @@ variables:
cache:
- key: $CI_COMMIT_REF_SLUG
paths:
- - atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.zip
- - atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.tar.zst
- - atomicdex-desktop-${CI_COMMIT_SHA::9}-x86_64.AppImage
+ - komodo-wallet-linux-${CI_COMMIT_SHA::9}.zip
+ - komodo-wallet-linux-${CI_COMMIT_SHA::9}.tar.zst
+ - komodo-wallet-${CI_COMMIT_SHA::9}-x86_64.AppImage
- key: $CI_PROJECT_NAME
paths:
- "$CI_PROJECT_DIR/.cache/vcpkg"
@@ -68,12 +68,12 @@ linux:build:
- rm -rf build_ninja || echo "no build_ninja folder to rm"
- mkdir build_ninja && cd $_
- cmake -DCMAKE_BUILD_TYPE=Release -GNinja ../
- - ninja atomicdex-desktop
- ninja install
+ - ninja komodo-wallet
- cd $CI_PROJECT_DIR
- - cp $CI_PROJECT_DIR/bundled/linux/atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.zip .
- - cp $CI_PROJECT_DIR/bundled/linux/atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.tar.zst .
- - cp $CI_PROJECT_DIR/bundled/linux/atomicdex-desktop-${CI_COMMIT_SHA::9}-x86_64.AppImage .
+ - cp $CI_PROJECT_DIR/bundled/linux/komodo-wallet-linux-${CI_COMMIT_SHA::9}.zip .
+ - cp $CI_PROJECT_DIR/bundled/linux/komodo-wallet-linux-${CI_COMMIT_SHA::9}.tar.zst .
+ - cp $CI_PROJECT_DIR/bundled/linux/komodo-wallet-${CI_COMMIT_SHA::9}-x86_64.AppImage .
AtomicDex-linux-zip:
stage: upload_linux_zip
@@ -83,7 +83,7 @@ AtomicDex-linux-zip:
artifacts:
name: "AtomicDex-linux-${CI_COMMIT_SHA::9}.zip"
paths:
- - $CI_PROJECT_DIR/atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.zip
+ - $CI_PROJECT_DIR/komodo-wallet-linux-${CI_COMMIT_SHA::9}.zip
when: always
expire_in: 3 days
@@ -95,7 +95,7 @@ AtomicDex-linux-AppImage:
artifacts:
name: "AtomicDex-linux-${CI_COMMIT_SHA::9}-AppImage"
paths:
- - $CI_PROJECT_DIR/atomicdex-desktop-${CI_COMMIT_SHA::9}-x86_64.AppImage
+ - $CI_PROJECT_DIR/komodo-wallet-${CI_COMMIT_SHA::9}-x86_64.AppImage
when: always
expire_in: 3 days
@@ -107,6 +107,6 @@ AtomicDex-linux-tar:
artifacts:
name: "AtomicDex-linux-${CI_COMMIT_SHA::9}.tar.zst"
paths:
- - $CI_PROJECT_DIR/atomicdex-desktop-linux-${CI_COMMIT_SHA::9}.tar.zst
+ - $CI_PROJECT_DIR/komodo-wallet-linux-${CI_COMMIT_SHA::9}.tar.zst
when: always
expire_in: 3 days
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4dbf66bc0d..9035cce18b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ include(vcpkg_prerequisites)
include(qt_prerequisites)
include(cfg_hash)
-project(${DEX_PROJECT_NAME} LANGUAGES CXX VERSION 0.5.7)
+project(${DEX_PROJECT_NAME} LANGUAGES CXX VERSION 0.6.1)
message(STATUS "${PROJECT_NAME} is version ${PROJECT_VERSION}")
include(cmake_default_options)
@@ -60,13 +60,13 @@ endif ()
##! We fetch our dependencies
if (APPLE)
FetchContent_Declare(mm2
- URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.8741/mm2-6e4de5d21-Darwin-Release.zip)
+ URL https://github.com/KomodoPlatform/komodo-defi-framework/releases/download/v1.0.7-beta/mm2-79f620559-Darwin-Release.zip)
elseif (UNIX AND NOT APPLE)
FetchContent_Declare(mm2
- URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.8741/mm2-6e4de5d21-Linux-Release.zip)
+ URL https://github.com/KomodoPlatform/komodo-defi-framework/releases/download/v1.0.7-beta/mm2-79f620559-Linux-Release.zip)
else ()
FetchContent_Declare(mm2
- URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.8741/mm2-6e4de5d21-Windows_NT-Release.zip)
+ URL https://github.com/KomodoPlatform/komodo-defi-framework/releases/download/v1.0.7-beta/mm2-79f620559-Win64.zip)
endif ()
#FetchContent_Declare(qmaterial URL https://github.com/KomodoPlatform/Qaterial/archive/last-clang-working-2.zip)
@@ -81,24 +81,25 @@ FetchContent_Declare(jl777-coins
URL https://github.com/KomodoPlatform/coins/archive/master.zip)
#FetchContent_Declare(adex-generics-coins
-# URL https://github.com/KomodoPlatform/atomicdex-desktop-generics/archive/main.zip)
+# URL https://github.com/KomodoPlatform/komodo-wallet-desktop/archive/main.zip)
FetchContent_MakeAvailable(mm2 jl777-coins qmaterial)
##! Configure our needs.
if (UNIX)
- configure_file(${jl777-coins_SOURCE_DIR}/utils/coins_config.json ${CMAKE_CURRENT_SOURCE_DIR}/assets/config/${PROJECT_VERSION}-coins.json COPYONLY)
+ configure_file(${jl777-coins_SOURCE_DIR}/utils/coins_config_tcp.json ${CMAKE_CURRENT_SOURCE_DIR}/assets/config/${PROJECT_VERSION}-coins.json COPYONLY)
configure_file(${jl777-coins_SOURCE_DIR}/coins ${CMAKE_CURRENT_SOURCE_DIR}/assets/tools/mm2/coins COPYONLY)
configure_file(${mm2_SOURCE_DIR}/mm2 ${CMAKE_CURRENT_SOURCE_DIR}/assets/tools/mm2/${DEX_API} COPYONLY)
file(COPY ${jl777-coins_SOURCE_DIR}/icons/ DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/atomic_defi_design/assets/images/coins/)
else ()
- configure_file(${jl777-coins_SOURCE_DIR}/utils/coins_config.json ${CMAKE_BINARY_DIR}/bin/assets/config/${PROJECT_VERSION}-coins.json COPYONLY)
+ configure_file(${jl777-coins_SOURCE_DIR}/utils/coins_config_tcp.json ${CMAKE_BINARY_DIR}/bin/assets/config/${PROJECT_VERSION}-coins.json COPYONLY)
configure_file(${jl777-coins_SOURCE_DIR}/coins ${CMAKE_BINARY_DIR}/bin/assets/tools/mm2/coins COPYONLY)
configure_file(${mm2_SOURCE_DIR}/mm2.exe ${CMAKE_BINARY_DIR}/bin/assets/tools/mm2/${DEX_API}.exe COPYONLY)
configure_file(${mm2_SOURCE_DIR}/msvcp140.dll ${CMAKE_BINARY_DIR}/bin/assets/tools/mm2/msvcp140.dll COPYONLY)
configure_file(${mm2_SOURCE_DIR}/vcruntime140.dll ${CMAKE_BINARY_DIR}/bin/assets/tools/mm2/vcruntime140.dll COPYONLY)
endif ()
+
add_subdirectory(vendor/antara-gaming_sdk/modules)
##! Osx bundle icon
diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user
index fc0b09b16b..2cc2bc9e98 100644
--- a/CMakeLists.txt.user
+++ b/CMakeLists.txt.user
@@ -104,7 +104,7 @@
-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}
-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}
- C:\Users\MSI\atomicDEX-Desktop\build
+ C:\Users\MSI\komodo-wallet-desktop\build
@@ -215,15 +215,15 @@
2
- atomicdex-desktop
- CMakeProjectManager.CMakeRunConfiguration.atomicdex-desktop
- atomicdex-desktop
+ komodo-wallet
+ CMakeProjectManager.CMakeRunConfiguration.komodo-wallet
+ komodo-wallet
false
true
true
false
true
- C:/Users/MSI/atomicDEX-Desktop/build/bin
+ C:/Users/MSI/komodo-wallet-desktop/build/bin
dwarf
@@ -286,15 +286,15 @@
2
- atomicdex-desktop_tests
- CMakeProjectManager.CMakeRunConfiguration.atomicdex-desktop_tests
- atomicdex-desktop_tests
+ komodo-wallet_tests
+ CMakeProjectManager.CMakeRunConfiguration.komodo-wallet_tests
+ komodo-wallet_tests
false
true
true
false
true
- C:/Users/MSI/atomicDEX-Desktop/build/bin
+ C:/Users/MSI/komodo-wallet-desktop/build/bin
2
diff --git a/README.md b/README.md
index 5cae0c5800..667aceb78a 100644
--- a/README.md
+++ b/README.md
@@ -1,47 +1,47 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
@@ -50,9 +50,10 @@
## What is FiroDEX?
FiroDEX is a secure wallet and non-custodial decentralized exchange rolled into one application. Store your coins,
+
trade peer-to-peer with minimal fees and never give up control over your digital assets.
-AtomicDEX Desktop has been tested on the following platforms:
+Komodo Wallet has been tested on the following platforms:
- Windows 10
- Linux (Ubuntu 18.04+)
@@ -64,7 +65,7 @@ AtomicDEX Desktop has been tested on the following platforms:
You can [download](https://github.com/firoorg/FiroDEX-Desktop/releases) the pre-built beta binaries on
our [GitHub release page](https://github.com/firoorg/FiroDEX-Desktop/releases).
-Build instructions can be found [here](https://github.com/KomodoPlatform/atomicDEX-Desktop/wiki/Build-Instructions)
+Build instructions can be found [here](https://github.com/KomodoPlatform/komodo-wallet-desktop/wiki/Build-Instructions)
Please join our [Discord Server](https://komodoplatform.com/discord) for support, discussions and general UI/UX
feedback.
@@ -72,16 +73,16 @@ feedback.
## Useful links
-- :book: [AtomicDEX Documentation](https://developers.komodoplatform.com/basic-docs/atomicdex/atomicdex-tutorials/introduction-to-atomicdex.html)
-- :link: [AtomicDEX Website](https://atomicdex.io/)
-- :speech_balloon: [AtomicDEX Discord](https://discord.gg/tvp96Gf)
-- :hammer_and_wrench: [AtomicDEX Development Boards](https://github.com/KomodoPlatform/atomicDEX-Desktop/projects)
-- :notebook_with_decorative_cover: [AtomicDex Wiki](https://github.com/KomodoPlatform/atomicDEX-Desktop/wiki/)
+- :book: [Komodo Wallet Documentation](https://developers.komodoplatform.com/basic-docs/atomicdex/atomicdex-tutorials/introduction-to-atomicdex.html)
+- :link: [Komodo Wallet Website](https://atomicdex.io/)
+- :speech_balloon: [Komodo Wallet Discord](https://discord.gg/tvp96Gf)
+- :hammer_and_wrench: [Komodo Wallet Development Boards](https://github.com/KomodoPlatform/komodo-wallet-desktop/projects)
+- :notebook_with_decorative_cover: [Komodo Wallet Wiki](https://github.com/KomodoPlatform/komodo-wallet-desktop/wiki/)
-## AtomicDEX mobile
+## Komodo Wallet mobile
-Check out AtomicDEX mobile, available for [Android and iOS](https://atomicdex.io)
+Check out Komodo Wallet mobile, available for [Android and iOS](https://atomicdex.io)
## Self-Hosted Dependencies
@@ -103,58 +104,58 @@ Check out AtomicDEX mobile, available for [Android and iOS](https://atomicdex.io
## Contributors / Thanks
-
+
-
+
## License
-For details please refer to our [license](https://github.com/KomodoPlatform/atomicDEX-Desktop/blob/master/LICENSE).
+For details please refer to our [license](https://github.com/KomodoPlatform/komodo-wallet-desktop/blob/master/LICENSE).
This is experimental alpha software - use at your own risk!
diff --git a/assets/config/cfg.json b/assets/config/cfg.json
index ce61d0f8d0..ba5bf75787 100644
--- a/assets/config/cfg.json
+++ b/assets/config/cfg.json
@@ -1,5 +1,6 @@
{
"notification_enabled": true,
+ "spamfilter_enabled": false,
"current_currency": "USD",
"current_fiat": "USD",
"current_currency_sign": "$",
@@ -78,6 +79,14 @@
"HUF",
"SEK"
],
+ "recommended_fiat": [
+ "USD",
+ "EUR",
+ "GBP",
+ "HKD",
+ "IDR",
+ "ILS"
+ ],
"possible_currencies": [
"USD",
"BTC",
diff --git a/assets/themes/Binance - Dark/colors.json b/assets/themes/Binance - Dark/colors.json
index 4a30ca5a52..96f4325b46 100644
--- a/assets/themes/Binance - Dark/colors.json
+++ b/assets/themes/Binance - Dark/colors.json
@@ -1,81 +1,139 @@
{
- "accentColor": "#0A0A0AFF",
- "foregroundColor": "#ffffffFF",
- "backgroundColor": "#161515FF",
- "backgroundColorDeep": "#0A0A0AFF",
-
- "busyIndicatorColor": "#cb9800FF",
-
- "buttonColorDisabled": "#8B6900FF",
- "buttonColorEnabled": "#cb9800FF",
- "buttonColorHovered": "#EBB514FF",
- "buttonColorPressed": "#EBB514FF",
- "buttonTextDisabledColor": "#3B3B3BFF",
- "buttonTextEnabledColor": "#fafffaFF",
+ "accentColor": "#F0B90BFF",
+ "foregroundColor": "#FFFFFFFF",
+ "foregroundColor2": "#8790B2FF",
+ "foregroundColor3": "#ABC0D3FF",
+ "backgroundColor": "#000000FF",
+ "secondBackgroundColor": "#0E111AFF",
+ "backgroundColorDeep": "#060A10FF",
+
+ "busyIndicatorColor": "#F0B90BFF",
+
+ "buttonColorDisabled": "#745804FF",
+ "buttonColorEnabled": "#F0B90BFF",
+ "buttonColorHovered": "#FFC200FF",
+ "buttonColorPressed": "#F0B90B6C",
+
+ "buttonTextDisabledColor": "#444444FF",
+ "buttonTextEnabledColor": "#FFFFFF",
"buttonTextHoveredColor": "#000000FF",
"buttonTextPressedColor": "#000000FF",
-
- "gradientButtonStartColor": "#cb9800FF",
- "gradientButtonEndColor": "#cb9800FF",
- "gradientButtonDisabledStartColor": "#8B6900FF",
- "gradientButtonDisabledEndColor": "#8B6900FF",
- "gradientButtonHoveredStartColor": "#EBB514FF",
- "gradientButtonHoveredEndColor": "#EBB514FF",
- "gradientButtonPressedStartColor": "#EBB514FF",
- "gradientButtonPressedEndColor": "#EBB514FF",
- "gradientButtonTextEnabledColor": "#080707FF",
- "gradientButtonTextDisabledColor": "#3B3B3BFF",
+
+ "buttonSecondaryColorDisabled": "#745804",
+ "buttonSecondaryColorEnabled": "#CFA00B",
+ "buttonSecondaryColorHovered": "#FFC200FF",
+ "buttonSecondaryColorPressed": "#F0B90B6C",
+
+ "buttonCancelColorDisabled": "#2C3D66FF",
+ "buttonCancelColorEnabled": "#5B4606FF",
+ "buttonCancelColorHovered": "#FFC200FF",
+ "buttonCancelColorPressed": "#F0B90B6C",
+
+ "gradientButtonStartColor": "#F0B90BAD",
+ "gradientButtonEndColor": "#F0B90BFF",
+ "gradientButtonDisabledStartColor": "#F0B90B4D",
+ "gradientButtonDisabledEndColor": "#F0B90B34",
+ "gradientButtonHoveredStartColor": "#FFC200FF",
+ "gradientButtonHoveredEndColor": "#FFD346FF",
+ "gradientButtonPressedStartColor": "#F0B90BFF",
+ "gradientButtonPressedEndColor": "#F0B90BFF",
+ "gradientButtonTextEnabledColor": "#000000FF",
+ "gradientButtonTextDisabledColor": "#000000FF",
"gradientButtonTextHoveredColor": "#000000FF",
"gradientButtonTextPressedColor": "#000000FF",
- "checkBoxTickColor": "#FFFFFFFF",
- "checkBoxGradientStartColor": "#cb9800FF",
- "checkBoxGradientEndColor": "#EBB514FF",
-
- "switchGradientStartColor": "#cb9800FF",
- "switchGradientEndColor": "#EBB514FF",
- "switchGradientStartColor2": "#FFFFFFFF",
- "switchGradientEndColor2": "#FFFFFFFF",
-
- "modalPageCounterGradientStartColor": "#cb9800FF",
- "modalPageCounterGradientEndColor": "#EBB514FF",
-
- "tabSelectedColor": "#EBB514FF",
-
- "textDisabledColor": "#444444FF",
- "textSelectionColor": "#4986EAFF",
- "textPlaceholderColor": "#8B6900FF",
- "textSelectedColor": "#0e1021FF",
-
- "textFieldBackgroundColor": "#0e0e0eFF",
- "textFieldActiveBackgroundColor": "#0c0c0cFF",
- "textFieldPrefixColor": "#8790B2FF",
- "textFieldSuffixColor": "#456078FF",
+ "checkBoxTickColor": "#000000",
+ "checkBoxGradientStartColor": "#F0B90BFF",
+ "checkBoxGradientEndColor": "#F0B90BFF",
- "comboBoxBackgroundColor": "#0A0A0AFF",
+ "switchGradientStartColor": "#F0B90BFF",
+ "switchGradientEndColor": "#F0B90BFF",
+ "switchGradientStartColor2": "#000000",
+ "switchGradientEndColor2": "#000000",
+
+ "comboBoxBackgroundColor": "#1D232FFF",
"comboBoxArrowsColor": "#FFFFFFFF",
- "comboBoxDropdownItemHighlightedColor": "#111111FF",
-
- "chartTradingLineBackgroundColor": "#24283dFF",
- "chartTradingLineColor": "#74fbeeFF",
-
- "innerBackgroundColor": "#111111FF",
-
- "floatingBackgroundColor": "#222222FF",
-
- "sidebarBgColor": "#161515FF",
- "sidebarVersionTextColor": "#BBBBBBFF",
- "sidebarCursorStartColor": "#cb9800FF",
- "sidebarCursorEndColor": "#EBB51400",
- "sidebarLineTextHovered": "#8B6900FF",
-
- "okColor": "#74fbeeFF",
- "noColor": "#d13990FF",
-
- "senderColorStart": "#F85757FF",
- "receiverColorStart": "#845FEFFF",
- "arrowUpColor": "#F85757FF",
- "arrowDownColor": "#845FEFFF",
-
- "lineSeparatorColor": "#222222FF"
+ "comboBoxDropdownItemHighlightedColor": "#F0B90BFF",
+
+ "modalPageCounterGradientStartColor": "#F0B90BFF",
+ "modalPageCounterGradientEndColor": "#F0B90BFF",
+
+ "notifPopupBackgroundColor": "#0E111AFF",
+ "notifPopupTextColor": "#FFFFFFFF",
+ "notifPopupTimerColor": "#8790B2FF",
+ "notifPopupTimerBackgroundColor": "#94A3B11F",
+ "notifPopupIconStartColor": "#FFFFFFFF",
+ "notifPopupIconEndColor": "#FFFFFFFF",
+
+ "scrollBarIndicatorColor": "#8790B2",
+ "scrollBarBackgroundColor": "#94A3B1",
+
+ "tabSelectedColor": "#F0B90B",
+
+ "textDisabledColor": "#707070",
+ "textSelectionColor": "#F0B90B",
+ "textPlaceholderColor": "#5A4400",
+ "textSelectedColor": "#211D0E",
+
+ "textFieldBackgroundColor": "#262424",
+ "textFieldActiveBackgroundColor": "#262424",
+ "textFieldPrefixColor": "#F0B90B",
+ "textFieldSuffixColor": "#F0B90B",
+
+ "tickerBadgeBackgroundColor": "#161515",
+
+ "chartTradingLineBackgroundColor": "#161515",
+ "chartTradingLineColor": "#F0B90B",
+
+ "innerBackgroundColor": "#161515",
+
+ "floatingBackgroundColor": "#161515",
+
+ "rangeSliderBackgroundColor": "#F0B90B",
+ "rangeSliderDistanceColor": "#F0B90B33",
+ "rangeSliderIndicatorBackgroundStartColor": "#F0B90B",
+ "rangeSliderIndicatorBackgroundEndColor": "#F0B90B",
+
+ "userIconColorStart": "#F0B90B",
+ "userIconColorEnd": "#F0B90B33",
+
+ "sidebarBgColor": "#000000",
+ "sidebarVersionTextColor": "#F0B90B",
+ "sidebarCursorStartColor": "#F0B90B",
+ "sidebarCursorEndColor": "#16151500",
+ "sidebarLineTextHovered": "#F0B90B",
+ "sidebarLineTextSelected": "#FFFFFF",
+
+ "tradeSellModeSelectorBackgroundColorStart": "#E52167",
+ "tradeSellModeSelectorBackgroundColorEnd": "#CD0F53",
+ "tradeBuyModeSelectorBackgroundColorStart": "#0BC05F",
+ "tradeBuyModeSelectorBackgroundColorEnd": "#037B3A",
+
+ "inputModifierBackgroundColor": "#F0B90B21",
+ "inputFieldBackgroundColor": "#161515",
+
+ "inputFieldBorderColor": "#F0B90B",
+ "inputPlaceholderTextColor": "#FF00FF",
+ "inputRightIconColor": "#FFFFFF",
+ "inputLeftIconColor": "#FFFFFF",
+ "inputLeftIconBackgroundColor": "#161515",
+
+ "listItemOddBackground": "#000000",
+ "listItemEvenBackground": "#161515",
+ "listItemHoveredBackground": "#5B4704",
+
+ "addressBookTagColors": ["#003bbbFF", "#006133FF", "#612600FF", "#430061FF", "#004d61FF"],
+
+ "okColor": "#00C058",
+ "warningColor": "#E52167",
+ "swapIconColor": "#005FBE",
+
+ "senderColorStart": "#F85757",
+ "receiverColorStart": "#845FEF",
+
+ "arrowUpColor": "#F85757",
+ "arrowDownColor": "#845FEF",
+
+ "lineSeparatorColor": "#161515"
+
}
\ No newline at end of file
diff --git a/assets/themes/Default - Dark/colors.json b/assets/themes/Default - Dark/colors.json
index ccd4c5acab..3664b2bc25 100644
--- a/assets/themes/Default - Dark/colors.json
+++ b/assets/themes/Default - Dark/colors.json
@@ -3,7 +3,6 @@
"foregroundColor": "#ffffff",
"backgroundColor": "#1F1E1E",
"backgroundColorDeep": "#1F1E1E",
-
"busyIndicatorColor": "#EB1C2EAF",
"buttonColorDisabled": "#3E34349A",
@@ -14,7 +13,6 @@
"buttonTextEnabledColor": "#ffffff",
"buttonTextHoveredColor": "#7A8EA1FF",
"buttonTextPressedColor": "#ABC0D3FF",
-
"gradientButtonStartColor": "#9B1C2EFF",
"gradientButtonEndColor": "#EE5C78FF",
"gradientButtonDisabledStartColor": "#9B1C2E4D",
@@ -94,10 +92,24 @@
"tradeSellModeSelectorBackgroundColorEnd": "#F48EA1FF",
"tradeMarketModeSelectorNotSelectedBackgroundColor": "#89B6FF21",
- "addressBookTagColors": ["#627EEAFF", "#FFD87AFF", "#F7931AFF"],
+ "inputModifierBackgroundColor": "#89B6FF21",
+ "inputFieldBackgroundColor": "#313555FF",
+
+ "inputFieldBorderColor": "#20233788",
+ "inputPlaceholderTextColor": "#FFFFFFFF",
+ "inputRightIconColor": "#FFFFFFFF",
+ "inputLeftIconColor": "#FFFFFFFF",
+ "inputLeftIconBackgroundColor": "#202337FF",
+
+ "listItemOddBackground": "#202337FF",
+ "listItemEvenBackground": "#24273DFF",
+ "listItemHoveredBackground": "#4068B9FF",
+
+ "addressBookTagColors": ["#003bbbFF", "#006133FF", "#612600FF", "#430061FF", "#004d61FF"],
"okColor": "#00C058FF",
- "noColor": "#E52167FF",
+ "warningColor": "#E52167FF",
+ "swapIconColor": "#005FBEFF",
"senderColorStart": "#F85757FF",
"receiverColorStart": "#845FEFFF",
diff --git a/assets/themes/Default - Light/colors.json b/assets/themes/Default - Light/colors.json
index 8b22d12e81..660b906c66 100644
--- a/assets/themes/Default - Light/colors.json
+++ b/assets/themes/Default - Light/colors.json
@@ -3,7 +3,6 @@
"foregroundColor": "#110202",
"backgroundColor": "#F9F5F5FF",
"backgroundColorDeep": "#F9F5F5FF",
-
"busyIndicatorColor": "#CB1C2EAF",
"buttonColorDisabled": "#D8E3F8",
@@ -27,7 +26,6 @@
"gradientButtonTextDisabledColor": "#EEF5FF",
"gradientButtonTextHoveredColor": "#EEF5FF",
"gradientButtonTextPressedColor": "#EEF5FF",
-
"checkBoxTickColor": "#000000FF",
"checkBoxGradientStartColor": "#8892EBFF",
"checkBoxGradientEndColor": "#9DD4F3FF",
@@ -40,7 +38,6 @@
"comboBoxBackgroundColor": "#FFFFFFFF",
"comboBoxArrowsColor": "#000000FF",
"comboBoxDropdownItemHighlightedColor": "#BA2A45FF",
-
"modalPageCounterGradientStartColor": "#BA2A45FF",
"modalPageCounterGradientEndColor": "#BA2A45FF",
@@ -94,13 +91,27 @@
"tradeSellModeSelectorBackgroundColorEnd": "#F48EA1FF",
"tradeMarketModeSelectorNotSelectedBackgroundColor": "#89B6FF21",
- "addressBookTagColors": ["#627EEAFF", "#FFD87AFF", "#F7931AFF"],
+ "inputModifierBackgroundColor": "#89B6FF21",
+ "inputFieldBackgroundColor": "#F3F5F6FF",
+
+ "inputFieldBorderColor": "#DCE8FD88",
+ "inputPlaceholderTextColor": "#456078FF",
+ "inputRightIconColor": "#456078FF",
+ "inputLeftIconColor": "#456078FF",
+ "inputLeftIconBackgroundColor": "#DCE8FDFF",
+
+ "listItemOddBackground": "#FCFCFCFF",
+ "listItemEvenBackground": "#EDF4FFFF",
+ "listItemHoveredBackground": "#D7E7FFFF",
+
+ "addressBookTagColors": ["#003bbbFF", "#006133FF", "#612600FF", "#430061FF", "#004d61FF"],
"okColor": "#00C058FF",
- "noColor": "#E52167FF",
+ "warningColor": "#E52167FF",
+ "swapIconColor": "#005FBEFF",
- "senderColorStart": "#F85757",
- "receiverColorStart": "#845FEF",
+ "senderColorStart": "#F85757FF",
+ "receiverColorStart": "#845FEFFF",
"arrowUpColor": "#F85757FF",
"arrowDownColor": "#845FEFFF",
diff --git a/atomic_defi_design/Dex/Addressbook/AddAddressForm.qml b/atomic_defi_design/Dex/Addressbook/AddAddressForm.qml
index 7fdf8b444d..b2633f2084 100644
--- a/atomic_defi_design/Dex/Addressbook/AddAddressForm.qml
+++ b/atomic_defi_design/Dex/Addressbook/AddAddressForm.qml
@@ -165,7 +165,7 @@ Dex.Rectangle
Layout.preferredWidth: 458
Layout.preferredHeight: 60
visible: text !== ""
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
wrapMode: Dex.Text.WordWrap
elide: Dex.Text.ElideRight
horizontalAlignment: Text.AlignHCenter
@@ -176,7 +176,7 @@ Dex.Rectangle
Layout.topMargin: 10
Layout.fillWidth: true
- Dex.Button
+ Dex.CancelButton
{
Layout.preferredWidth: 116
Layout.preferredHeight: 38
@@ -195,7 +195,7 @@ Dex.Rectangle
Layout.preferredWidth: 116
Layout.preferredHeight: 38
radius: 18
- text: isConvertMode ? qsTr("Convert") : editionMode ? qsTr("Edit") : qsTr("Add")
+ text: isConvertMode ? qsTr("Convert") : editionMode ? qsTr("Update") : qsTr("Save")
onClicked:
{
let addressType = getTypeForAddressChecker(addressTypeComboBox.currentText)
@@ -301,7 +301,7 @@ Dex.Rectangle
},
// Cancel button
- Dex.Button
+ Dex.CancelButton
{
Layout.rightMargin: 5
text: qsTr("Cancel")
diff --git a/atomic_defi_design/Dex/Addressbook/AddTagPopup.qml b/atomic_defi_design/Dex/Addressbook/AddTagPopup.qml
index 0e53be333c..000cd1a024 100644
--- a/atomic_defi_design/Dex/Addressbook/AddTagPopup.qml
+++ b/atomic_defi_design/Dex/Addressbook/AddTagPopup.qml
@@ -13,6 +13,7 @@ Dex.Popup
width: 250
height: 55
+ onOpened: tagNameField.forceActiveFocus()
onClosed: tagNameField.text = ""
contentItem: Row
@@ -22,10 +23,17 @@ Dex.Popup
Dex.TextField
{
id: tagNameField
+ visible: contactModel.categories.length < 5
width: parent.width * 0.6
height: parent.height
placeholderText: qsTr("Tag name")
+ onTextChanged: {
+ if(text.length > 10) {
+ text = text.substring(0, 10)
+ }
+ }
+
Dex.ToolTip
{
id: tagAlreadyTakenToolTip
@@ -40,6 +48,7 @@ Dex.Popup
Dex.Button
{
+ visible: contactModel.categories.length < 5
width: parent.width * 0.36
height: parent.height
text: qsTr("+ ADD")
@@ -56,5 +65,16 @@ Dex.Popup
else root.close()
}
}
+
+ Dex.Text
+ {
+ id: tagLimitText
+ visible: contactModel.categories.length > 4
+ width: parent.width * 0.6
+ height: parent.height
+ color: Style.colorRed
+ text: qsTr("A contact can only have 5 tags.")
+ }
+
}
}
diff --git a/atomic_defi_design/Dex/Addressbook/AddressTypeSelector.qml b/atomic_defi_design/Dex/Addressbook/AddressTypeSelector.qml
index b8ad13881b..6e79fabad7 100644
--- a/atomic_defi_design/Dex/Addressbook/AddressTypeSelector.qml
+++ b/atomic_defi_design/Dex/Addressbook/AddressTypeSelector.qml
@@ -38,9 +38,9 @@ Dex.ComboBoxWithSearchBar
}
else
{
- _contentRow.ticker = model.data(model.index(index, 0), Qt.UserRole + 1)
- _contentRow.name = model.data(model.index(index, 0), Qt.UserRole + 3)
- _contentRow.type = model.data(model.index(index, 0), Qt.UserRole + 9)
+ _contentRow.ticker = model.data ? model.data(model.index(index, 0), Qt.UserRole + 1) : ""
+ _contentRow.name = model.data ? model.data(model.index(index, 0), Qt.UserRole + 3) : ""
+ _contentRow.type = model.data ? model.data(model.index(index, 0), Qt.UserRole + 9) : ""
}
}
@@ -77,16 +77,13 @@ Dex.ComboBoxWithSearchBar
}
}
- contentItem: Item
+ contentItem: AssetRow
{
- AssetRow
- {
- id: _contentRow
+ id: _contentRow
- anchors.left: parent.left
- anchors.leftMargin: 13
- anchors.verticalCenter: parent.verticalCenter
- }
+ anchors.left: parent.left
+ anchors.leftMargin: 13
+ anchors.verticalCenter: parent.verticalCenter
}
onCurrentIndexChanged:
diff --git a/atomic_defi_design/Dex/Addressbook/AssetFromStandardSelector.qml b/atomic_defi_design/Dex/Addressbook/AssetFromStandardSelector.qml
index c7416f1727..26a103de95 100644
--- a/atomic_defi_design/Dex/Addressbook/AssetFromStandardSelector.qml
+++ b/atomic_defi_design/Dex/Addressbook/AssetFromStandardSelector.qml
@@ -90,7 +90,7 @@ Dex.MultipageModal
anchors.leftMargin: 6
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Disabled")
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
font: Dex.DexTypo.caption
}
diff --git a/atomic_defi_design/Dex/Addressbook/EditContactModal.qml b/atomic_defi_design/Dex/Addressbook/EditContactModal.qml
index 673c52936a..22993be058 100644
--- a/atomic_defi_design/Dex/Addressbook/EditContactModal.qml
+++ b/atomic_defi_design/Dex/Addressbook/EditContactModal.qml
@@ -192,7 +192,7 @@ Dex.MultipageModal
{
visible: !addressList.contactAddAddressMode
anchors.horizontalCenter: parent.horizontalCenter
- text: qsTr("+ Add")
+ text: qsTr("+ Add Address")
width: 211
height: 38
radius: 18
@@ -224,7 +224,7 @@ Dex.MultipageModal
width: parent.width
model: contactModel.categories
orientation: Qt.Horizontal
- spacing: 6
+ spacing: 4
delegate: Dex.MouseArea
{
width: tagBg.width + tagRemoveBut.width + 2
@@ -234,17 +234,19 @@ Dex.MultipageModal
Dex.Rectangle
{
id: tagBg
+ property int _currentColorIndex: contactTable._getCurrentTagColorId()
anchors.verticalCenter: parent.verticalCenter
width: tagLabel.width + 12
height: 21
radius: 20
- color: Dex.CurrentTheme.accentColor
+ color: Dex.CurrentTheme.addressBookTagColors[_currentColorIndex]
Dex.Text
{
id: tagLabel
anchors.centerIn: parent
text: modelData
+ color: "white"
}
}
@@ -255,8 +257,8 @@ Dex.MultipageModal
anchors.left: tagBg.right
anchors.leftMargin: 2
anchors.verticalCenter: parent.verticalCenter
- width: 18
- height: 18
+ width: 16
+ height: 16
color: "transparent"
iconSource: Qaterial.Icons.close
onClicked: contactModel.removeCategory(modelData)
@@ -283,12 +285,12 @@ Dex.MultipageModal
footer:
[
- Dex.Button
+ Dex.CancelButton
{
Layout.preferredWidth: 199
Layout.preferredHeight: 48
radius: 18
- text: qsTr("Cancel")
+ text: qsTr("Cancel Updates")
onClicked: root.close()
},
@@ -299,7 +301,7 @@ Dex.MultipageModal
Layout.preferredWidth: 199
Layout.preferredHeight: 48
radius: 18
- text: qsTr("Confirm")
+ text: qsTr("Save Updates")
onClicked:
{
contactModel.name = contactNameInput.field.text
diff --git a/atomic_defi_design/Dex/Addressbook/EnableAssetModal.qml b/atomic_defi_design/Dex/Addressbook/EnableAssetModal.qml
index 63317676f5..d8776239ac 100644
--- a/atomic_defi_design/Dex/Addressbook/EnableAssetModal.qml
+++ b/atomic_defi_design/Dex/Addressbook/EnableAssetModal.qml
@@ -34,7 +34,7 @@ Dex.MultipageModal
},
// Cancel button
- Dex.Button
+ Dex.CancelButton
{
Layout.rightMargin: 5
text: qsTr("Cancel")
diff --git a/atomic_defi_design/Dex/Addressbook/Main.qml b/atomic_defi_design/Dex/Addressbook/Main.qml
index df7b1e4a2a..fba4df4df4 100644
--- a/atomic_defi_design/Dex/Addressbook/Main.qml
+++ b/atomic_defi_design/Dex/Addressbook/Main.qml
@@ -194,29 +194,30 @@ Item
{
model: modelData.categories.slice(0, 6)
- delegate: Dex.Rectangle
+ delegate: Dex.MouseArea
{
- property int _currentColorIndex: contactTable._getCurrentTagColorId()
+ width: tagBg.width + 2
+ height: tagBg.height
+ onClicked: searchbar.textField.text = modelData
+ hoverEnabled: true
- width: tagLabel.width > 73 ? 83 : tagLabel.width + 10
- height: 21
- radius: 20
- color: Dex.CurrentTheme.addressBookTagColors[_currentColorIndex]
-
- Dex.MouseArea
+ Dex.Rectangle
{
- anchors.fill: parent
- onClicked: searchbar.textField.text = modelData
- }
+ id: tagBg
+ property int _currentColorIndex: contactTable._getCurrentTagColorId()
+ anchors.verticalCenter: parent.verticalCenter
+ width: tagLabel.width + 12
+ height: 21
+ radius: 20
+ color: Dex.CurrentTheme.addressBookTagColors[_currentColorIndex]
- Dex.Text
- {
- id: tagLabel
- width: 70
- anchors.centerIn: parent
- text: modelData
- horizontalAlignment: Text.AlignHCenter
- elide: Text.ElideRight
+ Dex.Text
+ {
+ id: tagLabel
+ anchors.centerIn: parent
+ text: modelData
+ color: "white"
+ }
}
}
}
diff --git a/atomic_defi_design/Dex/Addressbook/NewContactPopup.qml b/atomic_defi_design/Dex/Addressbook/NewContactPopup.qml
index 4c61b27c64..afddfffb9e 100644
--- a/atomic_defi_design/Dex/Addressbook/NewContactPopup.qml
+++ b/atomic_defi_design/Dex/Addressbook/NewContactPopup.qml
@@ -6,6 +6,7 @@ import QtQuick.Layouts 1.15
import "../Components"
import "../Constants"
import Dex.Components 1.0 as Dex
+import Dex.Themes 1.0 as Dex
Dex.Popup
{
@@ -14,6 +15,7 @@ Dex.Popup
height: 88
onOpened: nameField.forceActiveFocus()
onClosed: nameField.text = ""
+ bgColor: Dex.CurrentTheme.innerBackgroundColor
contentItem: Column
{
@@ -47,7 +49,7 @@ Dex.Popup
{
id: add_contact_btn
font: DexTypo.body2
- text: qsTr("+ ADD")
+ text: qsTr("Save")
height: 30
anchors.horizontalCenter: parent.horizontalCenter
onClicked:
diff --git a/atomic_defi_design/Dex/App.qml b/atomic_defi_design/Dex/App.qml
index b0137c1c15..47b9735d40 100644
--- a/atomic_defi_design/Dex/App.qml
+++ b/atomic_defi_design/Dex/App.qml
@@ -32,7 +32,6 @@ DexRectangle
property var notification_modal: notifications_modal
property var logout_confirm_modal: logout_modal
property var notifications_list: _currentPage === App.ScreenType.Dashboard ? loader.item.notifications_list : []
- property bool segwit_on: false
property var _currentPage: API.app.wallet_mgr.log_status() ? App.ScreenType.Dashboard : App.ScreenType.Startup
property var _availablePages: [_startup, dashboard]
diff --git a/atomic_defi_design/Dex/Components/CancelButton.qml b/atomic_defi_design/Dex/Components/CancelButton.qml
new file mode 100644
index 0000000000..2409171be9
--- /dev/null
+++ b/atomic_defi_design/Dex/Components/CancelButton.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.15
+import App 1.0
+import Dex.Themes 1.0 as Dex
+import "../Constants"
+
+// Add button
+DexAppButton {
+ btnPressedColor: Dex.CurrentTheme.buttonCancelColorPressed
+ btnHoveredColor: Dex.CurrentTheme.buttonCancelColorHovered
+ btnEnabledColor: Dex.CurrentTheme.buttonCancelColorEnabled
+ btnDisabledColor: Dex.CurrentTheme.buttonCancelColorDisabled
+}
diff --git a/atomic_defi_design/Dex/Components/CannotEnableCoinModal.qml b/atomic_defi_design/Dex/Components/CannotEnableCoinModal.qml
index 19c44755c6..dad42aa5ac 100644
--- a/atomic_defi_design/Dex/Components/CannotEnableCoinModal.qml
+++ b/atomic_defi_design/Dex/Components/CannotEnableCoinModal.qml
@@ -32,7 +32,7 @@ MultipageModal
close()
}
}
- DefaultButton
+ CancelButton
{
Layout.fillWidth: true
text: qsTr("Cancel")
diff --git a/atomic_defi_design/Dex/Components/CexInfoModal.qml b/atomic_defi_design/Dex/Components/CexInfoModal.qml
index 64777e138f..cc7c3725a4 100644
--- a/atomic_defi_design/Dex/Components/CexInfoModal.qml
+++ b/atomic_defi_design/Dex/Components/CexInfoModal.qml
@@ -17,9 +17,7 @@ MultipageModal {
Layout.preferredHeight: 200
Layout.fillWidth: true
- text: qsTr('Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources. Data is sourced via Band Decentralized Oracle and CoinGecko .Oracle Supported Pairs: %1Last reference (Band Oracle): %2 ')
- .arg(API.app.portfolio_pg.oracle_price_supported_pairs.join(', '))
- .arg(API.app.portfolio_pg.oracle_last_price_reference)
+ text: qsTr('Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources. Data is sourced via CoinGecko .')
}
}
}
diff --git a/atomic_defi_design/Dex/Components/CoinTypeTag.qml b/atomic_defi_design/Dex/Components/CoinTypeTag.qml
index 7f544b8183..d423956f0f 100644
--- a/atomic_defi_design/Dex/Components/CoinTypeTag.qml
+++ b/atomic_defi_design/Dex/Components/CoinTypeTag.qml
@@ -1,22 +1,22 @@
-import QtQuick 2.15
-import "../Constants"
-import App 1.0
-
-AnimatedRectangle {
- property string type
- radius: 20
-
- height: type_tag.font.pixelSize * 1.5
- width: type_tag.width + 8
-
- color: Style.getCoinTypeColor(type)
-
- DexLabel {
- id: type_tag
- anchors.verticalCenter: parent.verticalCenter
- anchors.horizontalCenter: parent.horizontalCenter
- text: type
- color: Style.getCoinTypeTextColor(type)
- font: DexTypo.overLine
- }
-}
+import QtQuick 2.15
+import "../Constants"
+import App 1.0
+
+AnimatedRectangle {
+ property string type
+ radius: 20
+
+ height: type_tag.font.pixelSize * 1.5
+ width: type_tag.width + 8
+
+ color: Style.getCoinTypeColor(type)
+
+ DexLabel {
+ id: type_tag
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: type
+ color: Style.getCoinTypeTextColor(type)
+ font: DexTypo.overLine
+ }
+}
diff --git a/atomic_defi_design/Dex/Components/ComboBoxWithSearchBar.qml b/atomic_defi_design/Dex/Components/ComboBoxWithSearchBar.qml
index 908c6a407f..bbd86393f1 100644
--- a/atomic_defi_design/Dex/Components/ComboBoxWithSearchBar.qml
+++ b/atomic_defi_design/Dex/Components/ComboBoxWithSearchBar.qml
@@ -11,7 +11,7 @@ ComboBox
{
id: control
- property int radius: 20
+ property int radius: 10
property int popupWidth: width
property int popupMaxHeight: 450
property bool popupForceMaxHeight: false
@@ -24,8 +24,7 @@ ComboBox
background: Rectangle
{
id: bg
- implicitWidth: control.width
- implicitHeight: control.height
+ anchors.fill: parent
color: control.backgroundColor
radius: control.radius
}
diff --git a/atomic_defi_design/Dex/Components/DefaultAlertIcon.qml b/atomic_defi_design/Dex/Components/DefaultAlertIcon.qml
index 696a7f50b3..b980ab0c94 100644
--- a/atomic_defi_design/Dex/Components/DefaultAlertIcon.qml
+++ b/atomic_defi_design/Dex/Components/DefaultAlertIcon.qml
@@ -4,20 +4,20 @@ import Qaterial 1.0 as Qaterial
import "../Constants" as Constants
import App 1.0
-Qaterial.Icon
+
+DefaultImage
{
property int iconSize: 24
property string tooltipText: ""
- property var iconColor: "gold"
- property var iconColorHover: "yellow"
- icon: Qaterial.Icons.alert
- size: iconSize
+ source: General.image_path + "warning.svg"
+ height: iconSize
+ width: iconSize
+ opacity: alertArea.containsMouse ? 0.9 : 1
anchors.left: parent.left
anchors.leftMargin: iconSize / 2
anchors.rightMargin: iconSize / 2
anchors.verticalCenter: parent.verticalCenter
- color: alertArea.containsMouse ? iconColorHover : iconColor
DexMouseArea
{
diff --git a/atomic_defi_design/Dex/Components/DefaultButton.qml b/atomic_defi_design/Dex/Components/DefaultButton.qml
index 12f0a4655d..458a254905 100644
--- a/atomic_defi_design/Dex/Components/DefaultButton.qml
+++ b/atomic_defi_design/Dex/Components/DefaultButton.qml
@@ -3,6 +3,5 @@ import "../Constants"
import App 1.0
// Add button
-DexButton {
-
-}
+DexAppButton {}
+
\ No newline at end of file
diff --git a/atomic_defi_design/Dex/Components/DefaultCalendar.qml b/atomic_defi_design/Dex/Components/DefaultCalendar.qml
index c366cf1c8c..54c708c022 100644
--- a/atomic_defi_design/Dex/Components/DefaultCalendar.qml
+++ b/atomic_defi_design/Dex/Components/DefaultCalendar.qml
@@ -104,7 +104,7 @@ Calendar
dayDelegate: DefaultRectangle
{
anchors.fill: parent
- color: styleData.date !== undefined && styleData.selected ? selectedDateColor : styleData.hovered ? hoveredDateColor : "transparent"
+ color: styleData.hasOwnProperty('date') && styleData.selected ? selectedDateColor : styleData.hovered ? hoveredDateColor : "transparent"
readonly property bool addExtraMargin: control.frameVisible && styleData.selected
readonly property color sameMonthDateTextColor: Dex.CurrentTheme.foregroundColor
@@ -116,7 +116,7 @@ Calendar
DefaultText
{
id: dayDelegateText
- text: styleData.date.getDate()
+ text: styleData.hasOwnProperty('date') ? styleData.date.getDate() : ""
anchors.centerIn: parent
horizontalAlignment: Text.AlignRight
font.pixelSize: Math.min(parent.height/3, parent.width/3)
diff --git a/atomic_defi_design/Dex/Components/DefaultPopup.qml b/atomic_defi_design/Dex/Components/DefaultPopup.qml
index e893062d08..353a8557b1 100644
--- a/atomic_defi_design/Dex/Components/DefaultPopup.qml
+++ b/atomic_defi_design/Dex/Components/DefaultPopup.qml
@@ -2,14 +2,16 @@
import QtQuick 2.12
import QtQuick.Controls 2.15 //> Popup
+import Dex.Themes 1.0 as Dex
Popup
{
id: popup
+ property color bgColor: Dex.CurrentTheme.floatingBackgroundColor
y: parent.height
x: (parent.width / 2) - (width / 2)
closePolicy: Popup.CloseOnPressOutsideParent | Popup.CloseOnEscape
- background: FloatingBackground { }
+ background: FloatingBackground { color: bgColor }
}
diff --git a/atomic_defi_design/Dex/Components/DefaultProgressBar.qml b/atomic_defi_design/Dex/Components/DefaultProgressBar.qml
index ed56dd814b..ca5e1a7c3a 100644
--- a/atomic_defi_design/Dex/Components/DefaultProgressBar.qml
+++ b/atomic_defi_design/Dex/Components/DefaultProgressBar.qml
@@ -13,7 +13,7 @@ RowLayout
id: root
property double label_width: 175
property double bar_width_pct: 0
- property color bar_color: Dex.DexTheme.greenColor
+ property color bar_color: Dex.DexTheme.okColor
property alias label: _label
property alias pct_bar: _pct_bar
property alias pct_value: _pct_value
diff --git a/atomic_defi_design/Dex/Components/DexAmountField.qml b/atomic_defi_design/Dex/Components/DexAmountField.qml
index 6699d59e81..c42949bb18 100644
--- a/atomic_defi_design/Dex/Components/DexAmountField.qml
+++ b/atomic_defi_design/Dex/Components/DexAmountField.qml
@@ -22,7 +22,7 @@ Item {
id: _background
anchors.fill: parent
radius: 4
- color: DexTheme.surfaceColor
+ color: DexTheme.backgroundDarkColor2
border.color: DexTheme.accentColor
border.width: input_field.focus ? 1 : 0
}
@@ -56,7 +56,7 @@ Item {
anchors.topMargin: 1
anchors.bottomMargin: 1
radius: 0
- color: DexTheme.surfaceColor
+ color: DexTheme.backgroundDarkColor2
DexTextField {
id: input_field
validator: RegExpValidator {
diff --git a/atomic_defi_design/Dex/Components/DexAppButton.qml b/atomic_defi_design/Dex/Components/DexAppButton.qml
index 4414add9d2..db494f9cac 100644
--- a/atomic_defi_design/Dex/Components/DexAppButton.qml
+++ b/atomic_defi_design/Dex/Components/DexAppButton.qml
@@ -22,6 +22,12 @@ DexRectangle
property int verticalPadding: 2
property int horizontalPadding: 2
property int iconSize: _label.font.pixelSize + 2
+ property color iconColor: _label.color
+
+ property color btnPressedColor: Dex.CurrentTheme.buttonColorPressed
+ property color btnHoveredColor: Dex.CurrentTheme.buttonColorHovered
+ property color btnEnabledColor: Dex.CurrentTheme.buttonColorEnabled
+ property color btnDisabledColor: Dex.CurrentTheme.buttonColorDisabled
property alias label: _label
property alias font: _label.font
@@ -41,10 +47,7 @@ DexRectangle
colorAnimation: false
color: enabled ? _controlMouseArea.containsMouse ? _controlMouseArea.containsPress ?
- Dex.CurrentTheme.buttonColorPressed :
- Dex.CurrentTheme.buttonColorHovered :
- Dex.CurrentTheme.buttonColorEnabled :
- Dex.CurrentTheme.buttonColorDisabled
+ btnPressedColor : btnHoveredColor : btnEnabledColor : btnDisabledColor
opacity: _controlMouseArea.containsMouse ? 1 : .8
Row
diff --git a/atomic_defi_design/Dex/Components/DexAppPasswordField.qml b/atomic_defi_design/Dex/Components/DexAppPasswordField.qml
index a071c90e17..6fde726c1a 100644
--- a/atomic_defi_design/Dex/Components/DexAppPasswordField.qml
+++ b/atomic_defi_design/Dex/Components/DexAppPasswordField.qml
@@ -14,25 +14,22 @@ DexAppTextField
property bool forceFocus: false
property string leftIcon: Qaterial.Icons.keyVariant
- property color leftIconColor: Dex.CurrentTheme.foregroundColor
+ property color leftIconColor: Dex.CurrentTheme.inputLeftIconColor
+ property color rightIconColor: Dex.CurrentTheme.inputRightIconColor
property alias hideFieldButton: _hideFieldButton
height: 50
width: 300
background.radius: 25
max_length: General.max_std_pw_length
+
field.echoMode: TextField.Password
- field.font: Qt.font(
- {
- pixelSize: (16 * DexTypo.fontDensity) * (Screen.pixelDensity / 160),
- letterSpacing: 0.5,
- family: DexTypo.fontFamily,
- weight: Font.Normal
- })
+ field.font: DexTypo.inputFieldFont
field.horizontalAlignment: Qt.AlignLeft
field.leftPadding: 75
field.rightPadding: 60
field.placeholderText: qsTr("Type password")
+
Component.onCompleted:
{
if (forceFocus) field.forceActiveFocus()
@@ -44,8 +41,7 @@ DexAppTextField
height: 40
width: 60
radius: 20
- color: Dex.CurrentTheme.accentColor
- border.color: Dex.CurrentTheme.accentColor
+ color: Dex.CurrentTheme.inputLeftIconBackgroundColor
border.width: _inputPassword.focus ? 2 : 0
anchors.verticalCenter: parent.verticalCenter
@@ -66,7 +62,7 @@ DexAppTextField
icon
{
source: _inputPassword.field.echoMode === TextField.Password ? Qaterial.Icons.eyeOffOutline : Qaterial.Icons.eyeOutline
- color: Dex.CurrentTheme.foregroundColor
+ color: rightIconColor
}
anchors
{
diff --git a/atomic_defi_design/Dex/Components/DexAppTextArea.qml b/atomic_defi_design/Dex/Components/DexAppTextArea.qml
index ff29faec4d..1a1ecda547 100644
--- a/atomic_defi_design/Dex/Components/DexAppTextArea.qml
+++ b/atomic_defi_design/Dex/Components/DexAppTextArea.qml
@@ -50,8 +50,8 @@ Item {
width: parent.width
height: parent.height
radius: 4
- color: DexTheme.surfaceColor
- border.color: control.error ? DexTheme.redColor : input_field.focus ? DexTheme.accentColor : DexTheme.rectangleBorderColor
+ color: DexTheme.backgroundDarkColor2
+ border.color: control.error ? DexTheme.warningColor : input_field.focus ? DexTheme.accentColor : DexTheme.rectangleBorderColor
border.width: input_field.focus ? 1 : 0
Behavior on x {
NumberAnimation {
@@ -72,7 +72,7 @@ Item {
anchors.topMargin: 1
anchors.bottomMargin: 1
radius: _background.radius
- color: DexTheme.surfaceColor
+ color: DexTheme.backgroundDarkColor2
DexFlickable {
anchors.fill: parent
contentHeight: input_field.height
diff --git a/atomic_defi_design/Dex/Components/DexAppTextField.qml b/atomic_defi_design/Dex/Components/DexAppTextField.qml
index 9fd086e981..81773020b4 100644
--- a/atomic_defi_design/Dex/Components/DexAppTextField.qml
+++ b/atomic_defi_design/Dex/Components/DexAppTextField.qml
@@ -5,6 +5,7 @@ import QtQuick.Layouts 1.5
import App 1.0
import Dex.Themes 1.0 as Dex
+import "../Constants"
Item
{
@@ -75,8 +76,8 @@ Item
width: parent.width
height: parent.height
radius: 4
- color: Dex.CurrentTheme.backgroundColor
- border.color: control.error ? Dex.CurrentTheme.noColor : input_field.focus ? Dex.CurrentTheme.accentColor : color
+ color: Dex.CurrentTheme.inputFieldBackgroundColor
+ border.color: control.error ? Dex.CurrentTheme.warningColor : input_field.focus ? Dex.CurrentTheme.inputFieldBorderColor : color
border.width: input_field.focus ? 1 : 0
Behavior on x
@@ -126,7 +127,7 @@ Item
anchors.topMargin: 1
anchors.bottomMargin: 1
radius: _background.radius
- color: background.color
+ color: Dex.CurrentTheme.inputFieldBackgroundColor
DexTextField
{
@@ -157,13 +158,12 @@ Item
text: control.placeholderText
anchors.verticalCenter: parent.verticalCenter
leftPadding: input_field.leftPadding
- color: Dex.CurrentTheme.foregroundColor
- font: DexTypo.body1
+ color: Dex.CurrentTheme.inputPlaceholderTextColor
+ font: DexTypo.inputFieldFont
elide: DexLabel.ElideRight
width: parent.width - 10
wrapMode: DexLabel.NoWrap
visible: input_field.text === ""
- opacity: .2
}
}
}
@@ -182,8 +182,7 @@ Item
text: rightText
color: Dex.CurrentTheme.foregroundColor
opacity: .4
- font.pixelSize: 14
- font.weight: Font.Medium
+ font: DexTypo.inputFieldSuffixFont
}
}
}
diff --git a/atomic_defi_design/Dex/Components/DexButton.qml b/atomic_defi_design/Dex/Components/DexButton.qml
deleted file mode 100644
index f886729bf8..0000000000
--- a/atomic_defi_design/Dex/Components/DexButton.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import QtQuick 2.15
-import "../Constants"
-import App 1.0
-
-// Add button
-DexAppButton {}
diff --git a/atomic_defi_design/Dex/Components/DexCheckBox.qml b/atomic_defi_design/Dex/Components/DexCheckBox.qml
index b471d0d922..344df181ad 100644
--- a/atomic_defi_design/Dex/Components/DexCheckBox.qml
+++ b/atomic_defi_design/Dex/Components/DexCheckBox.qml
@@ -15,6 +15,7 @@ CheckBox
property alias label: _label
property alias boxWidth: _indicator.implicitWidth
property alias boxHeight: _indicator.implicitHeight
+ property alias boxRadius: _indicator.radius
property alias mouseArea: mouseArea
property color textColor: Dex.CurrentTheme.foregroundColor
property int labelWidth: 0
diff --git a/atomic_defi_design/Dex/Components/DexDialogManager.qml b/atomic_defi_design/Dex/Components/DexDialogManager.qml
index 8bf9ab578c..fc3726ec11 100644
--- a/atomic_defi_design/Dex/Components/DexDialogManager.qml
+++ b/atomic_defi_design/Dex/Components/DexDialogManager.qml
@@ -18,7 +18,7 @@ Popup {
Overlay.modal: Item {
DexRectangle {
anchors.fill: parent
- color: Qt.darker(DexTheme.dexBoxBackgroundColor)
+ color: Qt.darker(DexTheme.backgroundDarkColor6)
opacity: .8
}
}
@@ -56,7 +56,7 @@ Popup {
DexRectangle {
anchors.fill: parent
radius: 4
- color: DexTheme.surfaceColor
+ color: DexTheme.backgroundDarkColor2
}
}
@@ -128,7 +128,7 @@ Popup {
height: 45
error: false
visible: dialog.getText
- defaultBorderColor: DexTheme.dexBoxBackgroundColor
+ defaultBorderColor: DexTheme.backgroundDarkColor6
background.border.width: 1
field.font: DexTypo.body2
placeholderText: dialog.placeholderText
@@ -155,7 +155,7 @@ Popup {
anchors.centerIn: parent
iconSize: 19
source: Qaterial.Icons.keyVariant
- color: DexTheme.surfaceColor
+ color: DexTheme.backgroundDarkColor2
}
}
@@ -215,7 +215,7 @@ Popup {
onReset: dialog.reset()
topPadding: 25
background: Rectangle {
- color: DexTheme.dexBoxBackgroundColor
+ color: DexTheme.backgroundDarkColor6
}
delegate: Qaterial.Button {
id: _dialogManagerButton
@@ -224,7 +224,7 @@ Popup {
topInset: 0
opacity: enabled ? 1 : .6
enabled: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? true : dialog.enableAcceptButton
- backgroundColor: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? 'transparent' : dialog.warning ? DexTheme.redColor : DexTheme.accentColor
+ backgroundColor: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? 'transparent' : dialog.warning ? DexTheme.warningColor : DexTheme.accentColor
property alias cursorShape: mouseArea.cursorShape
Component.onCompleted: {
if (text === "Yes" && dialog.yesButtonText !== "") {
diff --git a/atomic_defi_design/Dex/Components/DexItemBox.qml b/atomic_defi_design/Dex/Components/DexItemBox.qml
index 67cdd130d2..eaec5d467e 100644
--- a/atomic_defi_design/Dex/Components/DexItemBox.qml
+++ b/atomic_defi_design/Dex/Components/DexItemBox.qml
@@ -64,7 +64,7 @@ InnerBackground {
}
//shadowOff: true
- color: DexTheme.portfolioPieGradient ? 'transparent' : DexTheme.dexBoxBackgroundColor
+ color: DexTheme.portfolioPieGradient ? 'transparent' : DexTheme.backgroundDarkColor6
property alias titleLabel: _texto
onExpandedVertChanged: {
@@ -139,7 +139,7 @@ InnerBackground {
width: parent.width
height: 40
radius: parent.parent.height < 41 ? parent.parent.radius : 0
- color: DexTheme.portfolioPieGradient ? 'transparent' : DexTheme.dexBoxBackgroundColor
+ color: DexTheme.portfolioPieGradient ? 'transparent' : DexTheme.backgroundDarkColor6
visible: visibility && !_control.hideHeader
RowLayout {
anchors.fill: parent
@@ -237,7 +237,7 @@ InnerBackground {
height: parent.height
anchors.right: parent.right
radius: parent.parent.height < 41 ? parent.parent.radius : 0
- color: DexTheme.dexBoxBackgroundColor
+ color: DexTheme.backgroundDarkColor6
visible: !isVertical && hidden
DefaultText {
id: _texto2
diff --git a/atomic_defi_design/Dex/Components/DexKeyChecker.qml b/atomic_defi_design/Dex/Components/DexKeyChecker.qml
index fe8634f5e2..aa48c9771d 100644
--- a/atomic_defi_design/Dex/Components/DexKeyChecker.qml
+++ b/atomic_defi_design/Dex/Components/DexKeyChecker.qml
@@ -49,7 +49,7 @@ ColumnLayout {
}
function hintColor(valid) {
- return valid ? DexTheme.greenColor : DexTheme.redColor
+ return valid ? DexTheme.okColor : DexTheme.warningColor
}
function hintPrefix(valid) {
diff --git a/atomic_defi_design/Dex/Components/DexModal.qml b/atomic_defi_design/Dex/Components/DexModal.qml
index 7b476bca3a..5ee466fbcb 100644
--- a/atomic_defi_design/Dex/Components/DexModal.qml
+++ b/atomic_defi_design/Dex/Components/DexModal.qml
@@ -16,7 +16,7 @@ Popup {
modal: true
padding: 0
Overlay.modeless: DefaultRectangle {
- color: Dex.CurrentTheme.dexBoxBackgroundColor
+ color: Dex.CurrentTheme.backgroundDarkColor6
opacity: .3
}
@@ -27,7 +27,7 @@ Popup {
anchors.fill: parent
border.width: 2
radius: parent.radius
- color: Dex.CurrentTheme.dexBoxBackgroundColor
+ color: Dex.CurrentTheme.backgroundDarkColor6
Container {
id: _header
width: parent.width
diff --git a/atomic_defi_design/Dex/Components/DexSweetComboBox.qml b/atomic_defi_design/Dex/Components/DexSweetComboBox.qml
index e8a7086ab6..cc47e64e63 100644
--- a/atomic_defi_design/Dex/Components/DexSweetComboBox.qml
+++ b/atomic_defi_design/Dex/Components/DexSweetComboBox.qml
@@ -174,7 +174,7 @@ ComboBox
highlighted: control.highlightedIndex === index
contentItem: DefaultText
{
- text_value: "" + ticker + " " + " %1".arg(General.coinName(ticker))
+ text_value: "" + ticker + " " + " %1".arg(General.coinName(ticker))
}
background: DefaultRectangle
diff --git a/atomic_defi_design/Dex/Components/DexTextField.qml b/atomic_defi_design/Dex/Components/DexTextField.qml
index 485f4b449a..1764675b85 100644
--- a/atomic_defi_design/Dex/Components/DexTextField.qml
+++ b/atomic_defi_design/Dex/Components/DexTextField.qml
@@ -11,7 +11,8 @@ TextField
property alias left_text: left_text.text_value
property alias right_text: right_text.text_value
property alias radius: background.radius
- property alias backgroundColor: background.color
+ property color backgroundColor: Dex.CurrentTheme.textFieldBackgroundColor
+ property color backgroundColorActive: Dex.CurrentTheme.textFieldActiveBackgroundColor
property bool forceFocus: false
font: DexTypo.body2
@@ -30,7 +31,7 @@ TextField
background: DefaultRectangle
{
id: background
- color: text_field.focus ? Dex.CurrentTheme.textFieldActiveBackgroundColor : Dex.CurrentTheme.textFieldBackgroundColor
+ color: text_field.focus ? backgroundColorActive : backgroundColor
radius: 18
anchors.fill: parent
}
diff --git a/atomic_defi_design/Dex/Components/EulaModal.qml b/atomic_defi_design/Dex/Components/EulaModal.qml
index 4191801010..ad71f04fab 100644
--- a/atomic_defi_design/Dex/Components/EulaModal.qml
+++ b/atomic_defi_design/Dex/Components/EulaModal.qml
@@ -82,7 +82,7 @@ MultipageModal
Layout.alignment: Qt.AlignRight
- DefaultButton
+ CancelButton
{
text: close_only ? qsTr("Close") : qsTr("Cancel")
radius: 18
diff --git a/atomic_defi_design/Dex/Components/LogModal.qml b/atomic_defi_design/Dex/Components/LogModal.qml
index 570f96bf63..492856d7ef 100644
--- a/atomic_defi_design/Dex/Components/LogModal.qml
+++ b/atomic_defi_design/Dex/Components/LogModal.qml
@@ -21,7 +21,7 @@ MultipageModal {
// Buttons
footer: [
- DefaultButton {
+ CancelButton {
text: qsTr("Close")
Layout.fillWidth: true
onClicked: root.close()
diff --git a/atomic_defi_design/Dex/Components/LogoutModal.qml b/atomic_defi_design/Dex/Components/LogoutModal.qml
index f205e15293..029a275a1f 100644
--- a/atomic_defi_design/Dex/Components/LogoutModal.qml
+++ b/atomic_defi_design/Dex/Components/LogoutModal.qml
@@ -25,7 +25,7 @@ MultipageModal {
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value:
{
for (let i = 0; i < orders.count; i++)
diff --git a/atomic_defi_design/Dex/Components/PaginationButton.qml b/atomic_defi_design/Dex/Components/PaginationButton.qml
index 5d850f8b2e..501fca07a0 100644
--- a/atomic_defi_design/Dex/Components/PaginationButton.qml
+++ b/atomic_defi_design/Dex/Components/PaginationButton.qml
@@ -1,6 +1,6 @@
import "../Components"
-DexButton
+DexAppButton
{
font.pixelSize: 12
}
diff --git a/atomic_defi_design/Dex/Components/PairItemBadge.qml b/atomic_defi_design/Dex/Components/PairItemBadge.qml
index a256f6a174..4fec7de383 100644
--- a/atomic_defi_design/Dex/Components/PairItemBadge.qml
+++ b/atomic_defi_design/Dex/Components/PairItemBadge.qml
@@ -1,102 +1,97 @@
+import bignumberjs 1.0
+
import QtQuick 2.15
import QtQuick.Layouts 1.15
+import QtQuick.Controls 2.15
+import QtGraphicalEffects 1.0
+import QtQuick.Controls.Universal 2.15
-import bignumberjs 1.0
-
-import "../Constants"
+import "../Constants" as Dex
+import App 1.0
+import Dex.Themes 1.0 as Dex
+import Dex.Components 1.0 as Dex
-DefaultRectangle
+DexRectangle
{
id: root
- property alias ticker: ticker.text
- property alias fullname: fullname.text
- property string amount
-
- width: 260
- height: 66
radius: 10
+ visible: enabled
+ opacity: .9
+ color: Dex.CurrentTheme.innerBackgroundColor
+ property string ticker
+ property string fullname
+ property string amount
+ property int padding: 0
+ property alias middle_text: middle_line.text_value
+ property alias bottom_text: bottom_line.text_value
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.leftMargin: 10
+ Layout.rightMargin: 20
RowLayout
{
- Layout.fillWidth: true
- Layout.fillHeight: true
anchors.fill: parent
- anchors.margins: 15
- spacing: 8
+ anchors.centerIn: parent
+ Layout.leftMargin: 20
+ Layout.rightMargin: 20
- Item { Layout.fillWidth: true }
-
- DefaultImage
+ Dex.Image
{
id: icon
- Layout.preferredWidth: 35
- Layout.preferredHeight: 35
- Layout.alignment: Qt.AlignVCenter
- source: General.coinIcon(root.ticker)
+ source: General.coinIcon(ticker)
+ Layout.preferredWidth: 40
+ Layout.preferredHeight: 40
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.leftMargin: 20
+ Layout.rightMargin: 10
+ Layout.topMargin: 0
+ Layout.bottomMargin: 0
}
-
- Item { Layout.fillWidth: true }
-
ColumnLayout
{
- Layout.fillWidth: true
- Layout.fillHeight: true
+ spacing: 2
Layout.alignment: Qt.AlignVCenter
- spacing: 5
- DefaultText
+ Dex.Text
{
- id: ticker
- Layout.fillWidth: true
- font.pixelSize: 11
- horizontalAlignment: Text.AlignLeft
- wrapMode: Text.NoWrap
- }
+ Layout.preferredWidth: parent.width - 15
- DefaultText
- {
- Layout.fillWidth: true
- font.pixelSize: 11
- horizontalAlignment: Text.AlignLeft
+ text_value: `${ticker} ${fullname} `
+ font.pixelSize: Style.textSizeSmall3
+ elide: Text.ElideRight
wrapMode: Text.NoWrap
- text:
- {
- BigNumber.config({ DECIMAL_PLACES: 6 })
- return new BigNumber(root.amount).toString(10)
- }
}
- }
- Item { Layout.fillWidth: true }
-
- ColumnLayout
- {
- Layout.fillWidth: true
- Layout.fillHeight: true
- Layout.alignment: Qt.AlignVCenter
- spacing: 5
-
- DefaultText
+ Dex.Text
{
- id: fullname
+ id: middle_line
+
+ property string coin_value: amount
+ text: coin_value
Layout.fillWidth: true
- wrapMode: Text.WordWrap
- horizontalAlignment: Text.AlignLeft
- font.pixelSize: 11
+ elide: Text.ElideRight
+ color: Dex.CurrentTheme.foregroundColor
+ font: DexTypo.body2
+ wrapMode: Label.NoWrap
+ ToolTip.text: coin_value
+ Component.onCompleted: font.pixelSize = 11.5
}
- DefaultText
+ Dex.Text
{
- id: amount_fiat
- visible: text != ''
+ id: bottom_line
+
+ property string fiat_value: General.getFiatText(amount, ticker)
+ text: fiat_value
Layout.fillWidth: true
- font.pixelSize: 11
- wrapMode: Text.NoWrap
- horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
+ color: Dex.CurrentTheme.foregroundColor
+ font: DexTypo.body2
+ wrapMode: Label.NoWrap
+ ToolTip.text: fiat_value
+ Component.onCompleted: font.pixelSize = 11.5
}
}
-
- Item { Layout.fillWidth: true }
}
-}
+}
\ No newline at end of file
diff --git a/atomic_defi_design/Dex/Components/PasswordField.qml b/atomic_defi_design/Dex/Components/PasswordField.qml
index 163d44ac01..6e7301354e 100644
--- a/atomic_defi_design/Dex/Components/PasswordField.qml
+++ b/atomic_defi_design/Dex/Components/PasswordField.qml
@@ -46,7 +46,7 @@ ColumnLayout {
}
function hintColor(valid) {
- return valid ? DexTheme.greenColor : DexTheme.redColor
+ return valid ? DexTheme.okColor : DexTheme.warningColor
}
function hintPrefix(valid) {
diff --git a/atomic_defi_design/Dex/Components/PopupManager.qml b/atomic_defi_design/Dex/Components/PopupManager.qml
index 8d2a3d7f66..2093bacb80 100644
--- a/atomic_defi_design/Dex/Components/PopupManager.qml
+++ b/atomic_defi_design/Dex/Components/PopupManager.qml
@@ -12,7 +12,8 @@ Popup
id: dialog
width: 420
- height: _insideColumn.height > dialog.height ? _insideColumn.height + 82 : dialog.height
+ // There is a binding loop issue if this line is active
+ // height: _insideColumn.height > dialog.height ? _insideColumn.height + 82 : dialog.height
dim: true
modal: true
anchors.centerIn: Overlay.overlay
@@ -80,7 +81,8 @@ Popup
contentItem: Qaterial.ClipRRect
{
width: dialog.width
- height: _insideColumn.height > dialog.height ? _insideColumn.height + 92 : dialog.height
+ // There is a binding loop issue if this line is active
+ // height: _insideColumn.height > dialog.height ? _insideColumn.height + 92 : dialog.height
radius: 18
focus: true
Column
@@ -254,7 +256,7 @@ Popup
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 80
- DexAppButton
+ CancelButton
{
id: cancelBtn
visible: showCancelBtn
@@ -338,7 +340,7 @@ Popup
topPadding: 25
background: Rectangle
{
- color: DexTheme.dexBoxBackgroundColor
+ color: DexTheme.backgroundDarkColor6
}
delegate: Qaterial.Button
{
@@ -348,7 +350,7 @@ Popup
topInset: 0
opacity: enabled ? 1 : .6
enabled: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? true : dialog.enableAcceptButton
- backgroundColor: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? 'transparent' : dialog.warning ? DexTheme.redColor : DexTheme.accentColor
+ backgroundColor: DialogButtonBox.buttonRole === DialogButtonBox.RejectRole ? 'transparent' : dialog.warning ? DexTheme.warningColor : DexTheme.accentColor
property alias cursorShape: mouseArea.cursorShape
Component.onCompleted:
{
diff --git a/atomic_defi_design/Dex/Components/SearchField.qml b/atomic_defi_design/Dex/Components/SearchField.qml
index 1c18a39086..40bcae12df 100644
--- a/atomic_defi_design/Dex/Components/SearchField.qml
+++ b/atomic_defi_design/Dex/Components/SearchField.qml
@@ -51,8 +51,10 @@ Rectangle
placeholderText: qsTr("Search")
placeholderTextColor: Dex.CurrentTheme.textPlaceholderColor
- onTextChanged: searchModel.setFilterFixedString(_textField.text)
- Component.onDestruction: searchModel.setFilterFixedString("")
+ onTextChanged: Array.isArray(searchModel) ? "" : searchModel.setFilterFixedString(_textField.text)
+
+
+ Component.onDestruction: Array.isArray(searchModel) ? "" : searchModel.setFilterFixedString("")
}
DefaultRectangle
diff --git a/atomic_defi_design/Dex/Components/Toast.qml b/atomic_defi_design/Dex/Components/Toast.qml
index 3351d60831..e67142167d 100644
--- a/atomic_defi_design/Dex/Components/Toast.qml
+++ b/atomic_defi_design/Dex/Components/Toast.qml
@@ -36,7 +36,7 @@ AnimatedRectangle {
radius: margin / 3
opacity: 0
- color: isError ? DexTheme.redColor : Style.colorTheme1
+ color: isError ? DexTheme.warningColor : Style.colorTheme1
z: 1000
DexLabel {
diff --git a/atomic_defi_design/Dex/Components/ZcashParamsModal.qml b/atomic_defi_design/Dex/Components/ZcashParamsModal.qml
index c32d414c4c..30c642674a 100644
--- a/atomic_defi_design/Dex/Components/ZcashParamsModal.qml
+++ b/atomic_defi_design/Dex/Components/ZcashParamsModal.qml
@@ -78,7 +78,7 @@ Dex.MultipageModal
onClicked: Qt.openUrlExternally("https://www.coinbureau.com/education/zcash-ceremony/")
},
Item { Layout.fillWidth: true },
- Dex.DefaultButton
+ Dex.CancelButton
{
text: qsTr("Close")
onClicked: close()
diff --git a/atomic_defi_design/Dex/Components/qmldir b/atomic_defi_design/Dex/Components/qmldir
index bc894bd813..dab8794241 100644
--- a/atomic_defi_design/Dex/Components/qmldir
+++ b/atomic_defi_design/Dex/Components/qmldir
@@ -20,3 +20,4 @@ TextField 1.0 DefaultTextField.qml
TextFieldWithTitle 1.0 TextFieldWithTitle.qml
ToolTip 1.0 DefaultTooltip.qml
UserIcon 1.0 UserIcon.qml
+CancelButton 1.0 CancelButton.qml
\ No newline at end of file
diff --git a/atomic_defi_design/Dex/Constants/DexTheme.qml b/atomic_defi_design/Dex/Constants/DexTheme.qml
index 4104684b0b..7653d2e248 100644
--- a/atomic_defi_design/Dex/Constants/DexTheme.qml
+++ b/atomic_defi_design/Dex/Constants/DexTheme.qml
@@ -90,18 +90,14 @@ QtObject {
property color headTextColor: accentColor
- property color proviewItemBoxBackgroundColor: dexBoxBackgroundColor
+ property color proviewItemBoxBackgroundColor: backgroundDarkColor6
property color proviewItemBoxBorderColor: 'transparent'
property color proviewItemBoxTitleColor: headTextColor
property color proviewItemBoxIconColor: accentColor
property int proviewItemBoxBorderWidth: 0
property color comboBoxBorderColor: rectangleBorderColor
- property color comboBoxBackgroundColor: dexBoxBackgroundColor
-
-
- property bool walletSidebarShadowVisibility: true
- property color walletSidebarLeftBorderColor: backgroundColorDeep
+ property color comboBoxBackgroundColor: backgroundDarkColor6
property color leftSidebarBorderColor: rectangleBorderColor
@@ -118,33 +114,11 @@ QtObject {
property bool portfolioPieGradient: false
- property color senderColorStart: redColor
- property color receiverColorStart: greenColor
-
-
+ property color senderColorStart: warningColor
+ property color receiverColorStart: okColor
- // Old Theme
- property string chartTheme: Style.dark_theme ? "dark" : "light"
-
- property color surfaceColor: backgroundDarkColor2
- property color backgroundColorDeep: backgroundDarkColor2
- property color dexBoxBackgroundColor: backgroundDarkColor6
-
- property color hightlightColor: accentDarkColor3
- property color hoverColor: buttonColorHovered
- property color modalStepColor: accentColor
- property color modelStepBorderColor: hightlightColor
-
- property int sidebarShadowRadius: 32
- property real sideBarAnimationDuration: Style.animationDuration
-
- property color chartTradingLineColor: Dex.CurrentTheme.chartTradingLineColor
- property color chartTradingLineBackgroundColor: Dex.CurrentTheme.chartTradingLineBackgroundColor
- property color lineChartColor: accentColor
property color chartGridLineColor: Qt.rgba(255,255,255,0.4)
- property color busyIndicatorColor: Dex.CurrentTheme.busyIndicatorColor
-
// Button
property color buttonColorDisabled: Dex.CurrentTheme.buttonColorDisabled
property color buttonColorHovered: Dex.CurrentTheme.buttonColorHovered
@@ -155,6 +129,16 @@ QtObject {
property color buttonColorTextEnabled: Dex.CurrentTheme.buttonTextEnabledColor
property color buttonColorTextPressed: Dex.CurrentTheme.buttonTextPressedColor
+ property color buttonSecondaryColorDisabled: Dex.CurrentTheme.buttonSecondaryColorDisabled
+ property color buttonSecondaryColorEnabled: Dex.CurrentTheme.buttonSecondaryColorEnabled
+ property color buttonSecondaryColorHovered: Dex.CurrentTheme.buttonSecondaryColorHovered
+ property color buttonSecondaryColorPressed: Dex.CurrentTheme.buttonSecondaryColorPressed
+
+ property color buttonCancelColorDisabled: Dex.CurrentTheme.buttonCancelColorDisabled
+ property color buttonCancelColorEnabled: Dex.CurrentTheme.buttonCancelColorEnabled
+ property color buttonCancelColorHovered: Dex.CurrentTheme.buttonCancelColorHovered
+ property color buttonCancelColorPressed: Dex.CurrentTheme.buttonCancelColorPressed
+
property color buttonGradientEnabled1: DexTheme.buttonColorEnabled
property color buttonGradientEnabled2: DexTheme.buttonColorEnabled
property color buttonGradientTextEnabled: DexTheme.foregroundColor
@@ -174,30 +158,13 @@ QtObject {
property color colorScrollbarGradient1: Style.colorScrollbarGradient1
property color colorScrollbarGradient2: Style.colorScrollbarGradient2
- property color greenColor: Dex.CurrentTheme.okColor
- property color redColor: Dex.CurrentTheme.noColor
+ property color okColor: Dex.CurrentTheme.okColor
+ property color warningColor: Dex.CurrentTheme.warningColor
+ property color swapIconColor: Dex.CurrentTheme.swapIconColor
// Widget settings
property int rectangleRadius: Style.rectangleCornerRadius
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -359,126 +326,9 @@ QtObject {
function getValueColor(v) {
v = parseFloat(v)
if(v !== 0)
- return v > 0 ? greenColor : redColor
+ return v > 0 ? okColor : warningColor
return Style.colorWhite4
}
- function getCoinColor(ticker) {
- const c = colorCoin[ticker]
- return c || Style.colorTheme2
- }
-
- readonly property var colorCoin: ({
- "ARPA": "#CCD9E2",
- "BCH": "#8DC351",
- "BTC": "#F7931A",
- "CLC": "#0970DC",
- "FTC": "#FFFFFF",
- "GLEEC": "#8C41FF",
- "GRS": "#377E96",
- "DOGE": "#C3A634",
- "ETH": "#627EEA",
- "KMD": "#2B6680",
- "MORTY": "#A4764D",
- "RICK": "#A5CBDD",
- "EMC2": "#00CCFF",
- "DASH": "#008CE7",
- "RVN": "#384182",
- "DGB": "#006AD2",
- "FIRO": "#BB2100",
- "LTC": "#BFBBBB",
- "ZEC": "#ECB244",
- "ZER": "#FFFFFF",
- "NAV": "#7D59B5",
- "DP": "#E41D25",
- "ECA": "#A915DC",
- "QTUM": "#2E9AD0",
- "CHIPS": "#598182",
- "AXE": "#C63877",
- "PANGEA": "#D88245",
- "JUMBLR": "#2B4649",
- "DEX": "#43B7B6",
- "COQUI": "#79A541",
- "CRYPTO": "#F58736",
- "LABS": "#C1F6E1",
- "MGW": "#854F2F",
- "MONA": "#DEC799",
- "NMC": "#186C9D",
- "RFOX": "#D83331",
- "BOTS": "#F69B57",
- "MCL": "#EA0000",
- "CCL": "#FFE400",
- "BET": "#F69B57",
- "SUPERNET": "#F69B57",
- "OOT": "#25AAE1",
- "REVS": "#F69B57",
- "ILN": "#523170",
- "VRSC": "#3164D3",
- "THC": "#819F6F",
- "1INCH": "#95A7C5",
- "BAT": "#FF5000",
- "BUSD": "#EDB70B",
- "DAI": "#B68900",
- "USDC": "#317BCB",
- "PAX": "#EDE70A",
- "SUSHI": "#E25DA8",
- "TUSD": "#2E3181",
- "AWC": "#31A5F6",
- "VRA": "#D70A41",
- "SPACE": "#E44C65",
- "QC": "#00D7B3",
- "PBC": "#64A3CB",
- "AAVE": "#9C64A6",
- "ANT": "#33DAE6",
- "AGI": "#6815FF",
- "BAND": "#526BFF",
- "BLK": "#191919",
- "BNT": "#000D2B",
- "BTCZ": "#F5B036",
- "CEL": "#4055A6",
- "CENNZ": "#2E87F1",
- "COMP": "#00DBA3",
- "CRO": "#243565",
- "CVC": "#3AB03E",
- "CVT": "#4B0082",
- "DODO": "#FFF706",
- "ELF": "#2B5EBB",
- "ENJ": "#6752C3",
- "EURS": "#2F77ED",
- "FUN": "#EF1C70",
- "GNO": "#00B0CC",
- "HOT": "#983EFF",
- "IOTX": "#00CDCE",
- "KNC": "#117980",
- "LEO": "#F79B2C",
- "LINK": "#356CE4",
- "LRC": "#32C2F8",
- "MANA": "#FF3C6C",
- "MATIC": "#1E61ED",
- "MED": "#00B5FF",
- "MKR": "#1BAF9F",
- "NPXS": "#F3CB00",
- "POWR": "#05BCAA",
- "QI": "#FFFFFF",
- "QIAIR": "#FEFEFE",
- "QKC": "#2175B4",
- "QNT": "#46DDC8",
- "REP": "#0E0E21",
- "REV": "#78034D",
- "RLC": "#FFE100",
- "SFUSD": "#9881B8",
- "SNT": "#596BED",
- "SNX": "#00D1FF",
- "SOULJA": "#8F734A",
- "STORJ": "#2683FF",
- "TSL": "#64B082",
- "VRM": "#586A7A",
- "WSB": "#FEBB84",
- "WBTC": "#CCCCCC",
- "YFI": "#006BE6",
- "ZRX": "#302C2C",
- "UNI": "#FF007A",
- "RUNES": "#336699"
- })
}
diff --git a/atomic_defi_design/Dex/Constants/DexTypo.qml b/atomic_defi_design/Dex/Constants/DexTypo.qml
index 55f4e4c55e..8df64967c7 100644
--- a/atomic_defi_design/Dex/Constants/DexTypo.qml
+++ b/atomic_defi_design/Dex/Constants/DexTypo.qml
@@ -3,8 +3,7 @@ pragma Singleton
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
-
-import App 1.0 as App
+import QtQuick.Window 2.15
QtObject {
id: _font
@@ -12,7 +11,7 @@ QtObject {
property real fontDensity: 1.0
property real languageDensity: {
- switch (App.API.app.settings_pg.lang) {
+ switch (General.getLanguage()) {
case "en":
return 0.99999
case "fr":
@@ -155,4 +154,16 @@ QtObject {
family: "Courier",
weight: Font.Normal
})
+ property font inputFieldFont: Qt.font({
+ pixelSize: (16 * DexTypo.fontDensity) * (Screen.pixelDensity / 160),
+ letterSpacing: 0.5,
+ family: DexTypo.fontFamily,
+ weight: Font.Normal
+ })
+ property font inputFieldSuffixFont: Qt.font({
+ pixelSize: (14 * DexTypo.fontDensity) * (Screen.pixelDensity / 140),
+ letterSpacing: 0.1,
+ family: fontFamily,
+ weight: Font.Medium
+ })
}
diff --git a/atomic_defi_design/Dex/Constants/General.qml b/atomic_defi_design/Dex/Constants/General.qml
index f0d737d380..2577767cd9 100644
--- a/atomic_defi_design/Dex/Constants/General.qml
+++ b/atomic_defi_design/Dex/Constants/General.qml
@@ -4,10 +4,10 @@ import AtomicDEX.TradingError 1.0
import AtomicDEX.MarketMode 1.0
QtObject {
- readonly property int width: 1280
- readonly property int height: 800
+ readonly property int width: 1280 // Set for maximum user compatibility
+ readonly property int height: 720 // See https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide
readonly property int minimumWidth: 1280
- readonly property int minimumHeight: 800
+ readonly property int minimumHeight: 720
readonly property int max_camo_pw_length: 256
readonly property int max_std_pw_length: 256
readonly property int max_pw_length: max_std_pw_length + max_camo_pw_length
@@ -32,11 +32,40 @@ QtObject {
{
return coin_icons_path + ticker.toString().toLowerCase().replace('-', '_') + ".png"
}
+ if (['Smart Chain'].indexOf(ticker) >= 0)
+ {
+ return coin_icons_path + ticker.toString().toLowerCase().replace(' ', '_') + ".png"
+ }
const coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
- return (coin_info.is_custom_coin ? custom_coin_icons_path : coin_icons_path) + atomic_qt_utilities.retrieve_main_ticker(ticker.toString()).toLowerCase() + ".png"
+ let icon = atomic_qt_utilities.retrieve_main_ticker(ticker.toString()).toLowerCase() + ".png"
+ return (coin_info.is_custom_coin ? custom_coin_icons_path : coin_icons_path) + icon
}
}
+ function getChartTicker(ticker)
+ {
+ let coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
+ return coin_info.livecoinwatch_id
+ }
+
+ function coinWithoutSuffix(ticker)
+ {
+ if (ticker.search("-") > -1)
+ {
+ return ticker.split("-")[0]
+ }
+ else
+ {
+ return ticker
+ }
+ }
+
+ function is_testcoin(ticker)
+ {
+ let coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
+ return coin_info.is_testnet
+ }
+
function coinName(ticker) {
if(ticker === "" || ticker === "All" || ticker===undefined) {
return ""
@@ -58,6 +87,21 @@ QtObject {
return API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker).is_wallet_only
}
+ function isFaucetCoin(ticker)
+ {
+ return API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker).is_faucet_coin
+ }
+
+ function isCoinWithMemo(ticker) {
+ const coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
+ return coin_info.has_memos
+ }
+
+ function getLanguage()
+ {
+ return API.app.settings_pg.lang
+ }
+
function isZhtlc(ticker)
{
const coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
@@ -77,47 +121,50 @@ QtObject {
{
let progress = 100
if (!activation_status.hasOwnProperty("result")) return progress
+ const coin_info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(coin)
+ let block_offset = coin_info.checkpoint_height
let status = activation_status.result.status
let details = activation_status.result.details
-
- let block_offset = 0
- if (coin == 'ARRR') block_offset = 1900000
-
// use range from checkpoint block to present
- if (status == "Ready")
+ if (!status)
+ {
+ return -1
+ }
+ else if (status == "Ok")
{
if (details.hasOwnProperty("error"))
- console.log("[zhtlcActivationProgress] Error enabling: " + JSON.stringify(details.error))
+ console.log("["+coin+"] [zhtlcActivationProgress] Error enabling: " + JSON.stringify(details.error))
}
else if (status == "InProgress")
{
if (details.hasOwnProperty("UpdatingBlocksCache"))
{
+ block_offset = details.UpdatingBlocksCache.first_sync_block.actual
let n = details.UpdatingBlocksCache.current_scanned_block - block_offset
let d = details.UpdatingBlocksCache.latest_block - block_offset
- progress = 5 + parseInt(n/d*15)
+ progress = 5 + parseInt(n/d*20)
}
else if (details.hasOwnProperty("BuildingWalletDb"))
{
+ block_offset = details.BuildingWalletDb.first_sync_block.actual
let n = details.BuildingWalletDb.current_scanned_block - block_offset
let d = details.BuildingWalletDb.latest_block - block_offset
- progress = 20 + parseInt(n/d*80)
+ progress = 45 + parseInt(n/d*60)
+ if (progress > 95) {
+ progress = 95
+ }
+
}
- else if (details.hasOwnProperty("RequestingBalance")) progress = 98
+ else if (details.hasOwnProperty("RequestingBalance")) progress = 95
+ else if (details.hasOwnProperty("ActivatingCoin")) progress = 5
else progress = 5
}
- else console.log("[zhtlcActivationProgress] Unexpected status: " + status)
- return progress
- }
-
- function getNomicsId(ticker) {
- if(ticker === "" || ticker === "All" || ticker===undefined) {
- return ""
- } else {
- const nomics_id = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker).nomics_id
- if (nomics_id == 'test-coin') return ""
- return nomics_id
+ else console.log("["+coin+"] [zhtlcActivationProgress] Unexpected status: " + status)
+ if (progress > 100) {
+ progress = 98
}
+
+ return progress
}
function coinContractAddress(ticker) {
diff --git a/atomic_defi_design/Dex/Constants/Style.qml b/atomic_defi_design/Dex/Constants/Style.qml
index ff2dbd105c..e53a2422bf 100644
--- a/atomic_defi_design/Dex/Constants/Style.qml
+++ b/atomic_defi_design/Dex/Constants/Style.qml
@@ -1,6 +1,7 @@
pragma Singleton
import QtQuick 2.15
import Qaterial 1.0 as Qaterial
+import Dex.Themes 1.0 as Dex
QtObject {
function setQaterialStyle() {
@@ -65,7 +66,7 @@ QtObject {
readonly property double hoverLightMultiplier: 1.5
readonly property double hoverOpacity: 0.6
- property bool dark_theme: true
+ property bool dark_theme: Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Dark
function applyOpacity(hex, opacity="00") {
@@ -184,30 +185,32 @@ QtObject {
{
switch (type)
{
- case 'ERC-20': return getCoinColor("ETH")
- case 'ZHTLC': return getCoinColor("ARRR")
- case 'QRC-20': return getCoinColor("QTUM")
- case 'Smart Chain': return getCoinColor("KMD")
- case 'WALLET ONLY': return "#4D4D4D"
- case 'UTXO': return getCoinColor("BTC")
- case 'BEP-20': return getCoinColor("BNB")
- case 'SLP': return getCoinColor("BCH")
- case 'IDO': return getCoinColor("TKL")
- case 'Matic': return getCoinColor("MATIC")
- case 'Optimism': return "#BB2100"
- case 'Arbitrum': return getCoinColor("ETH")
- case 'AVX-20': return getCoinColor("AVAX")
- case 'FTM-20': return getCoinColor("FTM")
- case 'HRC-20': return getCoinColor("ONE")
- case 'Ubiq': return getCoinColor("UBQ")
- case 'KRC-20': return getCoinColor("KCS")
- case 'Moonriver': return getCoinColor("MOVR")
- case 'Moonbeam': return getCoinColor("GLMR")
- case 'HecoChain': return getCoinColor("HECO")
- case 'SmartBCH': return getCoinColor("SBCH")
- case 'Ethereum Classic': return getCoinColor("ETC")
- case 'RSK Smart Bitcoin': return getCoinColor("BTC")
- default: return getCoinColor("BTC")
+ case 'IDO': return dark_theme ? colorCoinDark["IDO"] : colorCoin["IDO"]
+ case 'AVX-20': return dark_theme ? colorCoinDark["AVAX"] : colorCoin["AVAX"]
+ case 'ZHTLC': return dark_theme ? colorCoinDark["ARRR"] : colorCoin["ARRR"]
+ case 'COSMOS': return dark_theme ? colorCoinDark["ATOM"] : colorCoin["ATOM"]
+ case 'SLP': return dark_theme ? colorCoinDark["BCH"] : colorCoin["BCH"]
+ case 'BEP-20': return dark_theme ? colorCoinDark["BNB"] : colorCoin["BNB"]
+ case 'RSK Smart Bitcoin': return dark_theme ? colorCoinDark["UTXO"] : colorCoin["UTXO"]
+ case 'UTXO': return dark_theme ? colorCoinDark["UTXO"] : colorCoin["UTXO"]
+ case 'Ethereum Classic': return dark_theme ? colorCoinDark["ETC"] : colorCoin["ETC"]
+ case 'Arbitrum': return dark_theme ? colorCoinDark["ETH"] : colorCoin["ETH"]
+ case 'ERC-20': return dark_theme ? colorCoinDark["ETH"] : colorCoin["ETH"]
+ case 'EWT': return dark_theme ? colorCoinDark["EWT"] : colorCoin["EWT"]
+ case 'FTM-20': return dark_theme ? colorCoinDark["FTM"] : colorCoin["FTM"]
+ case 'Moonbeam': return dark_theme ? colorCoinDark["GLMR"] : colorCoin["GLMR"]
+ case 'HecoChain': return dark_theme ? colorCoinDark["HECO"] : colorCoin["HECO"]
+ case 'QRC-20': return dark_theme ? colorCoinDark["QTUM"] : colorCoin["QTUM"]
+ case 'KRC-20': return dark_theme ? colorCoinDark["KCS"] : colorCoin["KCS"]
+ case 'Smart Chain': return dark_theme ? colorCoinDark["KMD"] : colorCoin["KMD"]
+ case 'Matic': return dark_theme ? colorCoinDark["MATIC"] : colorCoin["MATIC"]
+ case 'Moonriver': return dark_theme ? colorCoinDark["MOVR"] : colorCoin["MOVR"]
+ case 'HRC-20': return dark_theme ? colorCoinDark["ONE"] : colorCoin["ONE"]
+ case 'SmartBCH': return dark_theme ? colorCoinDark["SBCH"] : colorCoin["SBCH"]
+ case 'Ubiq': return dark_theme ? colorCoinDark["UBQ"] : colorCoin["UBQ"]
+ case 'Optimism': return "#BB2100"
+ case 'WALLET ONLY': return dark_theme ? colorCoinDark["WALLET ONLY"] : colorCoin["WALLET ONLY"]
+ default: return dark_theme ? colorCoinDark["default"] : colorCoin["default"]
}
}
@@ -220,277 +223,104 @@ QtObject {
}
}
+ function getCoinGroupTextColor(type)
+ {
+ switch (type)
+ {
+ case 'IDO': return dark_theme ? colorCoinDark["IDO"] : colorCoin["IDO"]
+ case 'AVX-20': return dark_theme ? colorCoinDark["AVAX"] : colorCoin["AVAX"]
+ case 'ZHTLC': return dark_theme ? colorCoinDark["ARRR"] : colorCoin["ARRR"]
+ case 'COSMOS': return dark_theme ? colorCoinDark["ATOM"] : colorCoin["ATOM"]
+ case 'SLP': return dark_theme ? colorCoinDark["BCH"] : colorCoin["BCH"]
+ case 'BEP-20': return dark_theme ? colorCoinDark["BNB"] : colorCoin["BNB"]
+ case 'RSK Smart Bitcoin': return dark_theme ? colorCoinDark["UTXO"] : colorCoin["UTXO"]
+ case 'UTXO': return dark_theme ? colorCoinDark["UTXO"] : colorCoin["UTXO"]
+ case 'Ethereum Classic': return dark_theme ? colorCoinDark["ETC"] : colorCoin["ETC"]
+ case 'Arbitrum': return dark_theme ? colorCoinDark["ETH"] : colorCoin["ETH"]
+ case 'ERC-20': return dark_theme ? colorCoinDark["ETH"] : colorCoin["ETH"]
+ case 'EWT': return dark_theme ? colorCoinDark["EWT"] : colorCoin["EWT"]
+ case 'FTM-20': return dark_theme ? colorCoinDark["FTM"] : colorCoin["FTM"]
+ case 'Moonbeam': return dark_theme ? colorCoinDark["GLMR"] : colorCoin["GLMR"]
+ case 'HecoChain': return dark_theme ? colorCoinDark["HECO"] : colorCoin["HECO"]
+ case 'QRC-20': return dark_theme ? colorCoinDark["QTUM"] : colorCoin["QTUM"]
+ case 'KRC-20': return dark_theme ? colorCoinDark["KCS"] : colorCoin["KCS"]
+ case 'Smart Chain': return dark_theme ? colorCoinDark["KMD"] : colorCoin["KMD"]
+ case 'Matic': return dark_theme ? colorCoinDark["MATIC"] : colorCoin["MATIC"]
+ case 'Moonriver': return dark_theme ? colorCoinDark["MOVR"] : colorCoin["MOVR"]
+ case 'HRC-20': return dark_theme ? colorCoinDark["ONE"] : colorCoin["ONE"]
+ case 'SmartBCH': return dark_theme ? colorCoinDark["SBCH"] : colorCoin["SBCH"]
+ case 'Ubiq': return dark_theme ? colorCoinDark["UBQ"] : colorCoin["UBQ"]
+ case 'Optimism': return "#BB2100"
+ case 'WALLET ONLY': return dark_theme ? colorCoinDark["WALLET ONLY"] : colorCoin["WALLET ONLY"]
+ default: return dark_theme ? colorCoinDark["default"] : colorCoin["default"]
+ }
+ }
+
function getCoinColor(ticker) {
- const c = colorCoin[atomic_qt_utilities.retrieve_main_ticker(ticker)]
- return c || Style.colorTheme2
+ let info = API.app.portfolio_pg.global_cfg_mdl.get_coin_info(ticker)
+ if (!info.type) { return colorWhite3 }
+ let color = getCoinGroupTextColor(info.type)
+ let base_ticker = atomic_qt_utilities.retrieve_main_ticker(ticker)
+ if (colorCoin.hasOwnProperty(base_ticker) && !dark_theme)
+ {
+ return colorCoin[base_ticker]
+ }
+ if (colorCoinDark.hasOwnProperty(base_ticker) && dark_theme)
+ {
+ return colorCoinDark[base_ticker]
+ }
+ return color
}
readonly property var colorCoin: ({
- "ABY": "#8B0D10",
- "ACTN": "#E84142",
- "ADA": "#214D78",
- "ADX": "#1B75BC",
- "ANKR": "#2075E8",
- "APE": "#0052F2",
- "ARPA": "#CCD9E2",
"ARRR": "#C7A34C",
- "ATOM": "#474B6C",
- "AUR": "#0A6C5E",
- "AVA": "#5B567F",
+ "ATOM": "#963b9a",
"AVAX": "#E84142",
- "AVN": "#33E0CE",
- "AXS": "#0055D5",
- "BAL": "#4D4D4D",
- "BNB": "#F9D987",
+ "BNB": "#b35900",
"BCH": "#8DC351",
- "BIDR": "#F0B90B",
- "BRZ": "#B5DEC3",
- "BSTY": "#78570D",
- "BTC": "#E9983C",
- "RBTC": "#E9983C",
- "BTT": "#666666",
- "BTTC": "#666666",
- "BTE": "#FFE201",
- "BTX": "#FB30A6",
- "CAKE": "#D1884F",
- "CASE": "#FFFF12",
- "CDN": "#90191C",
- "CLC": "#0970DC",
- "CRV": "#517AB5",
- "DGC": "#BC7600",
- "DIMI": "#0BFBE2",
- "DOI": "#120641",
- "DUST": "#6A032F",
- "EOS": "#4D4D4D",
- "FET": "#202944",
- "FLOW": "#00EF8B",
- "FTC": "#FFFFFF",
- "FTM": "#13B5EC",
- "GALA": "#011B36",
- "GLEEC": "#8C41FF",
- "GRMS": "#12B690",
- "GLM": "#0050E6",
- "GMS": "#0BFBE2",
- "GMT": "#E9CB7B",
- "GMX": "#07A9E6",
- "GRS": "#377E96",
- "GRT": "#6E54DB",
- "GST": "#D7D7D7",
- "IOTA": "#404040",
- "ILNF": "#28873b",
- "IC": "#72009D",
- "JST": "#B41514",
- "JSTR": "#627EEA",
- "DOGE": "#C3A634",
"ETC": "#328432",
"ETH": "#687DE3",
- "ETHR": "#627EEA",
- "KMD": "#7490AA",
- "KCS": "#25AF90",
- "KSM": "#595959",
- "MORTY": "#A4764D",
- "RICK": "#A5CBDD",
- "EMC2": "#00CCFF",
- "INJ": "#17EAE9",
- "JPYC": "#16449A",
- "DASH": "#008CE7",
- "RVN": "#384182",
- "SAND": "#05C1F4",
- "CADC": "#FF6666",
- "DGB": "#006AD2",
- "DIA": "#B94897",
- "DOT": "#E80082",
- "FLUX": "#2B61D1",
- "FIRO": "#BB2100",
- "LBC": "#00775C",
- "LDO": "#F69988",
- "LOOM": "#48BEFF",
- "LTC": "#BFBBBB",
- "LUNA": "#FFD83D",
- "LYNX": "#0071BA",
- "LTFN": "#0099CC",
- "MIR": "#2C9FEF",
- "XPM": "#A67522",
- "XVC": "#B50126",
- "ZEC": "#ECB244",
- "ZER": "#FFFFFF",
- "NAV": "#7D59B5",
- "DP": "#E41D25",
- "ECA": "#A915DC",
+ "EWT": "#A466FF",
+ "FTM": "#13B5EC",
+ "HECO": "#00953F",
+ "GLMR": "#F6007C",
"QTUM": "#2E9AD0",
- "UBQ": "#00EB90",
- "CHIPS": "#598182",
- "CIPHS": "#ECD900",
- "AXE": "#C63877",
- "PANGEA": "#D88245",
- "JUMBLR": "#2B4649",
- "DEX": "#43B7B6",
- "CRYPTO": "#F58736",
- "LABS": "#C1F6E1",
- "LCC": "#068210",
- "LNC": "#C3A635",
- "MESH": "#0098DA",
- "MGW": "#854F2F",
- "MONA": "#DEC799",
+ "KCS": "#25AF90",
+ "KMD": "#2d4f86",
"MOVR": "#52CCC9",
+ "MATIC": "#804EE1",
+ "ONE": "#00BEEE",
+ "SBCH": "#74dd54",
+ "UBQ": "#00EB90",
+ "UTXO": "#349d5f",
+ "default": "#2f2f2f",
+ "IDO": "#536E93",
+ "WALLET ONLY": "#404040"
+ })
+
+ readonly property var colorCoinDark: ({
+ "ARRR": "#C7A34C",
+ "ATOM": "#963b9a",
+ "AVAX": "#E84142",
+ "BNB": "#ffc266",
+ "BCH": "#8DC351",
+ "ETC": "#328432",
+ "ETH": "#687DE3",
+ "EWT": "#A466FF",
+ "FTM": "#13B5EC",
+ "HECO": "#00953F",
"GLMR": "#F6007C",
- "NMC": "#186C9D",
- "NZDS": "#1B3044",
- "RFOX": "#D83331",
- "BOTS": "#F69B57",
- "MC": "#E16428",
- "MCL": "#EA0000",
- "ILNSW": "#28873B",
- "MM": "#F5B700",
- "CCL": "#FFE400",
- "BET": "#F69B57",
- "JCHF": "#D80027",
- "JEUR": "#003399",
- "JGBP": "#C8102E",
- "JJPY": "#BC002D",
- "JRT": "#5EFC84",
- "SUPERNET": "#F69B57",
- "REVS": "#F69B57",
- "EILN": "#1ADEC9",
- "ILN": "#814EB1",
- "VRSC": "#3164D3",
- "WCN": "#E49F00",
- "WWCN": "#E49F00",
- "TFT": "#80C7CF",
- "THC": "#819F6F",
- "1INCH": "#95A7C5",
- "BABYDOGE": "#F3AA47",
- "BAT": "#FF5000",
- "BUSD": "#F0B90B",
- "HUSD": "#0075FB",
- "DAI": "#B68900",
- "USDC": "#317BCB",
- "USDI": "#C29E47",
- "USDT": "#26A17B",
- "PAX": "#408C69",
- "PAXG": "#DABE37",
- "REN": "#595959",
- "SMTF": "#F75836",
- "SUSHI": "#E25DA8",
- "TRYB": "#0929AA",
- "TUSD": "#2E3181",
- "AWC": "#31A5F6",
- "VRA": "#D70A41",
- "SPACE": "#E44C65",
- "QC": "#00D7B3",
- "PBC": "#64A3CB",
- "AAVE": "#9C64A6",
- "ANT": "#33DAE6",
- "AGIX": "#6815FF",
- "BAND": "#526BFF",
- "BLK": "#595959",
- "IL8P": "#696969",
- "BNT": "#0000FF",
- "BTCZ": "#F5B036",
- "CEL": "#4055A6",
- "CELR": "#595959",
- "CENNZ": "#2E87F1",
- "CHTA": "#C3A634",
- "COMP": "#00DBA3",
- "CRO": "#243565",
- "CVC": "#3AB03E",
- "CVT": "#4B0082",
- "PIC": "#04D9FF",
- "DODO": "#FAF621",
- "EFL": "#FF940B",
- "EGLD": "#1D4CB5",
- "ELF": "#2B5EBB",
- "ENJ": "#6752C3",
- "EURS": "#2F77ED",
- "FIL": "#4CCAD2",
- "FJC": "#00AFEC",
- "FJCB": "#FFCC33",
- "FUN": "#EF1C70",
- "GNO": "#00B0CC",
- "HOT": "#983EFF",
- "HECO": "#00953F",
- "IOTX": "#00CDCE",
- "KNC": "#117980",
- "LEO": "#F79B2C",
- "LINK": "#356CE4",
- "LRC": "#32C2F8",
- "LSTR": "#7E3193",
- "MANA": "#FF3C6C",
+ "QTUM": "#2E9AD0",
+ "KCS": "#25AF90",
+ "KMD": "#799bd2",
+ "MOVR": "#52CCC9",
"MATIC": "#804EE1",
- "MKR": "#1BAF9F",
- "MINDS": "#687DE3",
- "NEAR": "#595959",
- "NENG": "#BFBBBB",
- "NEXO": "#A3B3D6",
- "NVC": "#FCF96D",
- "NYAN": "#008CE7",
- "OCEAN": "#595959",
- "OMG": "#595959",
"ONE": "#00BEEE",
- "ONT": "#2692AF",
- "PND": "#EBD430",
- "POWR": "#05BCAA",
- "PPC": "#46BC60",
- "PRUX": "#FF8000",
- "PRCY": "#012828",
- "QI": "#FFFFFF",
- "QIAIR": "#FEFEFE",
- "QKC": "#2175B4",
- "QNT": "#000000",
- "REP": "#0E0E21",
- "REV": "#78034D",
- "RLC": "#FFE100",
- "RTM": "#B74427",
"SBCH": "#74dd54",
- "SIBM": "#0C4855",
- "SFUSD": "#9881B8",
- "SNT": "#596BED",
- "SNX": "#00D1FF",
- "SOL": "#7BFBB5",
- "SOULJA": "#8F734A",
- "STFIRO": "#00D4F7",
- "STORJ": "#2683FF",
- "SXP": "#FD5F3B",
- "SYS": "#0084C7",
- "TEL": "#1BD8FF",
- "TKL": "#536E93",
- "TON": "#0088CC",
- "TRC": "#096432",
- "TRX": "#F30031",
- "TSL": "#64B082",
- "UIS": "#008DCD",
- "UNO": "#2F87BB",
- "UST": "#5493F7",
- "VAL": "#1EEC84",
- "VET": "#18C6FF",
- "VITE": "#007AFF",
- "VRM": "#586A7A",
- "VTC": "#049161",
- "WSB": "#FEBB84",
- "WAVES": "#016BFF",
- "WBTC": "#CCCCCC",
- "WHIVE": "#FFCC00",
- "WOO": "#595959",
- "XEC": "#273498",
- "XEP": "#0277E5",
- "XLM": "#737373",
- "XMY": "#F01385",
- "XRP": "#2E353D",
- "XRG": "#162D50",
- "XSGD": "#1048E5",
- "XTZ": "#A8E000",
- "XVS": "#F4BC54",
- "YFI": "#006BE6",
- "YFII": "#FF2A79",
- "ZET": "#155169",
- "ZIL": "#42BBB9",
- "ZOMBIE": "#72B001",
- "ZRX": "#302C2C",
- "UNI": "#FF007A",
- "VOTE2022": "#7490AA",
- "USBL": "#279553",
- "RUNES": "#336699",
- "SIX": "#ed0909",
- "NATURE": "#04cf13"
+ "UBQ": "#00EB90",
+ "UTXO": "#349d5f",
+ "default": "#c8c8c8",
+ "IDO": "#536E93",
+ "WALLET ONLY": "#cccccc"
})
}
diff --git a/atomic_defi_design/Dex/Dashboard/FatalErrorModal.qml b/atomic_defi_design/Dex/Dashboard/FatalErrorModal.qml
index e4bc2646d4..2213fb772f 100644
--- a/atomic_defi_design/Dex/Dashboard/FatalErrorModal.qml
+++ b/atomic_defi_design/Dex/Dashboard/FatalErrorModal.qml
@@ -32,7 +32,7 @@ MultipageModal {
}
footer: [
- DefaultButton {
+ CancelButton {
Layout.fillWidth: true
text: qsTr("Close")
onClicked: root.close()
diff --git a/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml b/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml
index c6d8fa9e79..2d2cb5e9c9 100644
--- a/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml
+++ b/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml
@@ -32,10 +32,11 @@ DexPopup
readonly property string check_internet_connection_text: qsTr("Please check your internet connection (e.g. VPN service or firewall might block it).")
- function reset()
+ function reset(close_after_reset = false)
{
notifications_list = []
- root.close()
+ if (close_after_reset)
+ root.close()
}
enum NotificationKind
@@ -80,7 +81,7 @@ DexPopup
app.pageLoader.item.switchPage(Dashboard.PageType.DEX)
break
case "open_log_modal":
- showError(notification.getTitle(), notification.long_message)
+ showError(getNotificationTitle(notification), notification.long_message)
break
default:
console.warn("Unknown notification click action", notification.click_action)
@@ -234,28 +235,20 @@ DexPopup
function onBalanceUpdateStatus(am_i_sender, amount, ticker, human_date, timestamp)
{
-
- if (!app.segwit_on)
+ if (amount != 0)
{
- if (amount != 0)
- {
- newNotification(
- balanceUpdateStatusNotification,
- {
- am_i_sender,
- amount,
- ticker,
- human_date,
- timestamp
- },
- timestamp,
+ newNotification(
+ balanceUpdateStatusNotification,
+ {
+ am_i_sender,
+ amount,
+ ticker,
human_date,
- "open_wallet_page")
- }
- }
- else
- {
- app.segwit_on = false
+ timestamp
+ },
+ timestamp,
+ human_date,
+ "open_wallet_page")
}
}
@@ -622,12 +615,12 @@ DexPopup
}
OutlineButton
- {
- text: qsTr('Mark all as read')
+ {
+ text: notifications_list.length !== 0 ? qsTr('Mark all as read') : qsTr('Close')
height: 40
width: 260
Layout.alignment: Qt.AlignHCenter
- onClicked: root.reset()
+ onClicked: notifications_list.length !== 0 ? root.reset(false) : root.reset(true)
}
}
}
diff --git a/atomic_defi_design/Dex/Exchange/Exchange.qml b/atomic_defi_design/Dex/Exchange/Exchange.qml
index fb405c887f..8751d0baa4 100644
--- a/atomic_defi_design/Dex/Exchange/Exchange.qml
+++ b/atomic_defi_design/Dex/Exchange/Exchange.qml
@@ -9,7 +9,8 @@ import App 1.0
Item
{
id: exchange
- readonly property int layout_margin: 15
+ readonly property int layout_margin: 12
+ width: 450
property int current_page: idx_exchange_trade
diff --git a/atomic_defi_design/Dex/Exchange/ProView/Chart.qml b/atomic_defi_design/Dex/Exchange/ProView/Chart.qml
index 4dbc9dc49d..80766a3d06 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/Chart.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/Chart.qml
@@ -15,43 +15,62 @@ Item
readonly property string theme: Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Dark ? "dark" : "light"
property string loaded_symbol
property bool pair_supported: false
+ property string selected_testcoin
onPair_supportedChanged: if (!pair_supported) webEngineViewPlaceHolder.visible = false
- function loadChart(right_ticker, left_ticker, force = false, source="nomics")
+ function loadChart(right_ticker, left_ticker, force = false, source="livecoinwatch")
{
+
+ //
+
let chart_html = ""
let symbol = ""
+ let widget_x = 385
+ let widget_y = 150
+ let scale_x = root.width / widget_x
+ let scale_y = root.height / widget_y
- if (source == "nomics")
+ if (source == "livecoinwatch")
{
- let right_ticker_full = General.coinName(right_ticker)
- let right_ticker_id = General.getNomicsId(right_ticker)
- let left_ticker_id = General.getNomicsId(left_ticker)
-
- if (right_ticker_id != "" && left_ticker_id != "")
+ selected_testcoin = ""
+ if (General.is_testcoin(left_ticker))
{
- symbol = right_ticker_id+"-"+left_ticker_id
+ pair_supported = false
+ selected_testcoin = left_ticker
+ return
+ }
+ if (General.is_testcoin(right_ticker))
+ {
+ pair_supported = false
+ selected_testcoin = right_ticker
+ return
+ }
+ let rel_ticker = General.getChartTicker(right_ticker)
+ let base_ticker = General.getChartTicker(left_ticker)
+ if (rel_ticker != "" && base_ticker != "")
+ {
pair_supported = true
+ symbol = rel_ticker+"-"+base_ticker
if (symbol === loaded_symbol && !force)
{
webEngineViewPlaceHolder.visible = true
return
}
-
- loaded_symbol = symbol
-
chart_html = `
-
-
-
-
- `
+
+
+ `
}
}
+ // console.log(chart_html)
if (chart_html == "")
{
@@ -78,7 +97,7 @@ Item
loaded_symbol = symbol
- let chart_html = `
+ chart_html = `
@@ -118,6 +137,17 @@ Item
catch (e) { console.error(e) }
}
+// Currently chart should not resize, but in future it might be needed
+
+// onWidthChanged: {
+// try
+// {
+// loadChart(left_ticker?? atomic_app_primary_coin,
+// right_ticker?? atomic_app_secondary_coin)
+// }
+// catch (e) { console.error(e) }
+// }
+
RowLayout
{
anchors.fill: parent
@@ -140,8 +170,16 @@ Item
DefaultText
{
- visible: !pair_supported
- text_value: qsTr("There is no chart data for this pair yet")
+ visible: !pair_supported && selected_testcoin == ""
+ text_value: qsTr("There is no chart data for this pair")
+ Layout.topMargin: 30
+ Layout.alignment: Qt.AlignCenter
+ }
+
+ DefaultText
+ {
+ visible: !pair_supported && selected_testcoin != ""
+ text_value: qsTr("There is no chart data for %1 (testcoin) pairs").arg(selected_testcoin)
Layout.topMargin: 30
Layout.alignment: Qt.AlignCenter
}
@@ -151,6 +189,7 @@ Item
{
id: webEngineViewPlaceHolder
anchors.fill: parent
+ anchors.centerIn: parent
visible: false
Component.onCompleted:
diff --git a/atomic_defi_design/Dex/Exchange/ProView/DexComboBoxLine.qml b/atomic_defi_design/Dex/Exchange/ProView/DexComboBoxLine.qml
index 368bce3c3c..aeae50a0c7 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/DexComboBoxLine.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/DexComboBoxLine.qml
@@ -10,6 +10,7 @@ import App 1.0
import Dex.Themes 1.0 as Dex
import Dex.Components 1.0 as Dex
+
RowLayout
{
id: root
@@ -17,6 +18,7 @@ RowLayout
property int padding: 0
property var details
property color color: !details ? "white" : Style.getCoinColor(details.ticker)
+ property alias middle_text: middle_line.text_value
property alias bottom_text: bottom_line.text_value
property int activation_progress: Dex.General.zhtlcActivationProgress(details.activation_status, details.ticker)
@@ -26,8 +28,8 @@ RowLayout
{
id: icon
source: General.coinIcon(details.ticker)
- Layout.preferredWidth: 32
- Layout.preferredHeight: 45
+ Layout.preferredWidth: 40
+ Layout.preferredHeight: 40
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
Layout.leftMargin: padding
Layout.topMargin: Layout.leftMargin
@@ -37,8 +39,8 @@ RowLayout
{
anchors.centerIn: parent
anchors.fill: parent
- radius: 15
- enabled: Dex.General.isZhtlc(details.ticker) ? activation_progress != 100 : false
+ radius: 10
+ enabled: Dex.General.isZhtlc(details.ticker) ? activation_progress < 100 : false
visible: enabled
opacity: .9
color: Dex.DexTheme.backgroundColor
@@ -48,13 +50,13 @@ RowLayout
{
anchors.centerIn: parent
anchors.fill: parent
- enabled: Dex.General.isZhtlc(details.ticker) ? activation_progress != 100 : false
+ enabled: Dex.General.isZhtlc(details.ticker) ? activation_progress < 100 : false
visible: enabled
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: activation_progress + "%"
font: Dex.DexTypo.body2
- color: Dex.DexTheme.greenColor
+ color: Dex.DexTheme.okColor
}
ColumnLayout
@@ -62,7 +64,8 @@ RowLayout
anchors.left: parent.right
anchors.leftMargin: 12
anchors.verticalCenter: parent.verticalCenter
- width: root.width - 40
+ width: root.width - 48
+ spacing: 3
Dex.Text
{
@@ -77,18 +80,32 @@ RowLayout
Dex.Text
{
- id: bottom_line
+ id: middle_line
- property string real_value: !details ? "" :
- details.balance + " (" + General.formatFiat("", details.main_currency_balance, API.app.settings_pg.current_fiat_sign) + ")"
+ property string coin_value: !details ? "" : details.balance
+ text: coin_value
+ Layout.fillWidth: true
+ elide: Text.ElideRight
+ color: Dex.CurrentTheme.foregroundColor
+ font: DexTypo.body2
+ wrapMode: Label.NoWrap
+ ToolTip.text: coin_value
+ Component.onCompleted: font.pixelSize = 11.5
+ }
+
+ Dex.Text
+ {
+ id: bottom_line
- text: real_value
+ property string fiat_value: !details ? "" :
+ General.formatFiat("", details.main_currency_balance, API.app.settings_pg.current_fiat_sign)
+ text: fiat_value
Layout.fillWidth: true
elide: Text.ElideRight
color: Dex.CurrentTheme.foregroundColor
font: DexTypo.body2
wrapMode: Label.NoWrap
- ToolTip.text: real_value
+ ToolTip.text: fiat_value
Component.onCompleted: font.pixelSize = 11.5
}
}
diff --git a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/Main.qml b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/Main.qml
index 62e2c1675d..4a1b5d710d 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/Main.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/Main.qml
@@ -23,7 +23,7 @@ Widget
readonly property bool trade_preimage_ready: fees.hasOwnProperty('base_transaction_fees_ticker')
readonly property bool can_submit_trade: last_trading_error === TradingError.None
- margins: 15
+ margins: 10
collapsable: false
Connections {
@@ -75,13 +75,13 @@ Widget
Layout.bottomMargin: 2
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: parent.width
- height: 40
+ height: 32
MarketModeSelector
{
Layout.alignment: Qt.AlignLeft
Layout.preferredWidth: (parent.width / 100) * 46
- Layout.preferredHeight: 40
+ Layout.preferredHeight: 32
marketMode: MarketMode.Buy
ticker: atomic_qt_utilities.retrieve_main_ticker(left_ticker)
}
@@ -92,7 +92,7 @@ Widget
{
Layout.alignment: Qt.AlignRight
Layout.preferredWidth: (parent.width / 100) * 46
- Layout.preferredHeight: 40
+ Layout.preferredHeight: 32
ticker: atomic_qt_utilities.retrieve_main_ticker(left_ticker)
}
}
@@ -100,7 +100,7 @@ Widget
// Protocol text for platform tokens
Item
{
- height: 40
+ height: 32
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: parent.width
visible: protocolIcon != ""
@@ -151,7 +151,7 @@ Widget
{
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: parent.width
- height: 40
+ height: 32
RowLayout
{
@@ -163,7 +163,7 @@ Widget
DefaultText
{
Layout.leftMargin: 15
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text: qsTr("Order Selected")
}
@@ -174,7 +174,7 @@ Widget
Layout.preferredHeight: parent.height
Layout.preferredWidth: 30
Layout.rightMargin: 5
- foregroundColor: Dex.CurrentTheme.noColor
+ foregroundColor: Dex.CurrentTheme.warningColor
onClicked: {
API.app.trading_pg.reset_order()
reset_fees_state()
@@ -184,7 +184,7 @@ Widget
{
anchors.centerIn: parent
iconSize: 16
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
source: Qaterial.Icons.close
}
}
@@ -196,7 +196,7 @@ Widget
anchors.fill: parent
radius: 8
color: 'transparent'
- border.color: Dex.CurrentTheme.noColor
+ border.color: Dex.CurrentTheme.warningColor
}
}
@@ -204,7 +204,7 @@ Widget
{
id: formBase
width: parent.width
- height: 340
+ height: 330
Layout.alignment: Qt.AlignHCenter
}
@@ -213,7 +213,7 @@ Widget
// Error messages
Item
{
- height: 60
+ height: 55
Layout.preferredWidth: parent.width
// Show errors
@@ -225,7 +225,7 @@ Widget
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
font.pixelSize: Style.textSizeSmall4
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: General.getTradingError(
last_trading_error,
curr_fee_info,
@@ -237,7 +237,7 @@ Widget
TotalView
{
- height: 80
+ height: 70
Layout.preferredWidth: parent.width
Layout.alignment: Qt.AlignHCenter
}
@@ -245,11 +245,11 @@ Widget
DexGradientAppButton
{
id: swap_btn
- height: 40
- Layout.preferredWidth: parent.width - 20
+ height: 32
+ Layout.preferredWidth: parent.width - 30
Layout.alignment: Qt.AlignHCenter
- radius: 18
+ radius: 16
text: qsTr("START SWAP")
font.weight: Font.Medium
enabled: can_submit_trade && !show_waiting_for_trade_preimage && errors.text_value == ""
diff --git a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/MarketModeSelector.qml b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/MarketModeSelector.qml
index 6eb535000b..b4ffbdbf17 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/MarketModeSelector.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/MarketModeSelector.qml
@@ -11,6 +11,7 @@ Rectangle
property string ticker: ""
radius: 18
+ opacity: marketMode != API.app.trading_pg.market_mode ? 0.1 : 1
gradient: Gradient
{
@@ -32,28 +33,6 @@ Rectangle
}
}
- // Background on topover of gradient to hide it when the market mode is different
- DefaultRectangle
- {
- anchors.centerIn: parent
- width: parent.width - 2
- height: parent.height - 2
- radius: parent.radius - 1
- color: Dex.CurrentTheme.backgroundColor
- visible: marketMode != API.app.trading_pg.market_mode
- }
-
- // Background when market mode is different
- DefaultRectangle
- {
- anchors.centerIn: parent
- width: parent.width - 2
- height: parent.height - 2
- radius: parent.radius - 1
- color: Dex.CurrentTheme.tradeMarketModeSelectorNotSelectedBackgroundColor
- visible: marketMode != API.app.trading_pg.market_mode
- }
-
DefaultText
{
anchors.centerIn: parent
diff --git a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderForm.qml b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderForm.qml
index 99f66e762d..ddbf9c89b4 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderForm.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderForm.qml
@@ -18,7 +18,7 @@ ColumnLayout
}
readonly property string total_amount: API.app.trading_pg.total_amount
- readonly property int input_height: 70
+ readonly property int input_height: 65
readonly property int subfield_margin: 5
@@ -68,7 +68,7 @@ ColumnLayout
color: enabled ? Dex.CurrentTheme.foregroundColor : Dex.CurrentTheme.foregroundColor2
text: backend_price ? backend_price : General.formatDouble(API.app.trading_pg.cex_price)
width: parent.width
- height: 41
+ height: 36
radius: 18
onTextChanged: setPrice(text)
@@ -118,11 +118,11 @@ ColumnLayout
{
id: input_volume
width: parent.width
- height: 41
+ height: 36
radius: 18
- left_text: qsTr("Volume")
+ left_text: sell_mode ? qsTr("Send") : qsTr("Receive")
right_text: left_ticker
- placeholderText: sell_mode ? qsTr("Amount to sell") : qsTr("Amount to receive")
+ placeholderText: "0"
text: API.app.trading_pg.volume
onTextChanged: setVolume(text)
}
@@ -168,7 +168,7 @@ ColumnLayout
{
id: input_minvolume
width: parent.width
- height: 41
+ height: 36
radius: 18
left_text: qsTr("Min Volume")
right_text: left_ticker
@@ -211,7 +211,7 @@ ColumnLayout
Item
{
Layout.preferredWidth: parent.width
- Layout.preferredHeight: 30
+ Layout.preferredHeight: 24
visible: !_useCustomMinTradeAmountCheckbox.checked
DefaultText
@@ -228,7 +228,7 @@ ColumnLayout
Layout.rightMargin: 2
Layout.leftMargin: 2
Layout.preferredWidth: parent.width
- Layout.preferredHeight: 30
+ Layout.preferredHeight: 28
spacing: 5
DefaultCheckBox
diff --git a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderFormSubfield.qml b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderFormSubfield.qml
index 1370518b6a..c39c0619c4 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderFormSubfield.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/OrderFormSubfield.qml
@@ -33,13 +33,12 @@ RowLayout
width: btn_width
height: parent.height
- // Background when market mode is different
DefaultRectangle
{
anchors.centerIn: parent
width: parent.width
height: parent.height
- color: Dex.CurrentTheme.tradeMarketModeSelectorNotSelectedBackgroundColor
+ color: Dex.CurrentTheme.inputModifierBackgroundColor
}
DefaultText
@@ -94,13 +93,12 @@ RowLayout
width: btn_width
height: parent.height
- // Background when market mode is different
DefaultRectangle
{
anchors.centerIn: parent
width: parent.width
height: parent.height
- color: Dex.CurrentTheme.tradeMarketModeSelectorNotSelectedBackgroundColor
+ color: Dex.CurrentTheme.inputModifierBackgroundColor
DefaultMouseArea
{
@@ -155,14 +153,13 @@ RowLayout
width: btn_width
height: parent.height
- // Background when market mode is different
DefaultRectangle
{
id: right_rect
anchors.centerIn: parent
width: parent.width
height: parent.height
- color: Dex.CurrentTheme.tradeMarketModeSelectorNotSelectedBackgroundColor
+ color: Dex.CurrentTheme.inputModifierBackgroundColor
}
DefaultText
diff --git a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/TotalView.qml b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/TotalView.qml
index 588c1a054b..83d6e8a380 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/TotalView.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/PlaceOrderForm/TotalView.qml
@@ -24,7 +24,7 @@ ColumnLayout
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
color: Dex.CurrentTheme.foregroundColor3
- text: "Total " + API.app.settings_pg.current_fiat + " " + General.cex_icon
+ text: "Trade Value " + API.app.settings_pg.current_fiat + " " + General.cex_icon
font.pixelSize: 14
font.weight: Font.Normal
opacity: .6
@@ -60,7 +60,7 @@ ColumnLayout
Layout.fillWidth: true
color: Dex.CurrentTheme.foregroundColor3
Layout.preferredWidth: parent.width * 0.3
- text: "Total " + right_ticker
+ text: sell_mode ? qsTr("Receive %1").arg(right_ticker) : qsTr("Send %1").arg(right_ticker)
font.pixelSize: 14
opacity: .6
font.weight: Font.Normal
diff --git a/atomic_defi_design/Dex/Exchange/ProView/SearchableTickerSelector.qml b/atomic_defi_design/Dex/Exchange/ProView/SearchableTickerSelector.qml
index de90ed3f2d..6bda8f68fe 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/SearchableTickerSelector.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/SearchableTickerSelector.qml
@@ -18,7 +18,7 @@ Dex.ComboBoxWithSearchBar
property string ticker
property bool index_changed: false
- height: 60
+ height: 70
enabled: !block_everything
textRole: "ticker"
@@ -34,7 +34,7 @@ Dex.ComboBoxWithSearchBar
{
id: _delegate
width: control.width
- height: visible ? 60 : 0
+ height: visible ? 70 : 0
highlighted: control.highlightedIndex === index
contentItem: DexComboBoxLine { details: model }
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TickerSelectors.qml b/atomic_defi_design/Dex/Exchange/ProView/TickerSelectors.qml
index 86df283110..6c52fed103 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TickerSelectors.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TickerSelectors.qml
@@ -22,7 +22,7 @@ Row
{
id: selectorLeft
- width: parent.width * 0.45
+ width: 210
height: parent.height
left_side: true
@@ -40,7 +40,7 @@ Row
SwapIcon
{
- width: parent.width * 0.1
+ width: 25
anchors.verticalCenter: parent.verticalCenter
top_arrow_ticker: selectorLeft.ticker
bottom_arrow_ticker: selectorRight.ticker
@@ -63,7 +63,7 @@ Row
{
id: selectorRight
- width: parent.width * 0.45
+ width: 210
height: parent.height
left_side: false
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/Main.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/Main.qml
index b08a691dcf..0c520adfcf 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/Main.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/Main.qml
@@ -12,6 +12,7 @@ import "../../ProView"
Widget
{
+ width: 450
property alias currentIndex: tabView.currentIndex
title: qsTr("Trading Information")
@@ -63,10 +64,10 @@ Widget
Rectangle
{
- Layout.fillWidth: true
Layout.fillHeight: true
color: Dex.CurrentTheme.floatingBackgroundColor
radius: 10
+ Layout.preferredWidth: 450
Qaterial.SwipeView
{
@@ -79,25 +80,26 @@ Widget
ColumnLayout
{
Layout.fillHeight: true
+ Layout.fillWidth: true
spacing: 10
// Chart
Chart
{
id: chart
- Layout.topMargin: 20
- Layout.leftMargin: 28
- Layout.rightMargin: 28
- Layout.fillWidth: true
- Layout.preferredHeight: 310
-
+ Layout.topMargin: 8
+ Layout.leftMargin: 5
+ Layout.rightMargin: 5
+ Layout.fillHeight: true
+ width: 435
+ height: 240
}
PriceLineSimplified
{
id: price_line
- Layout.bottomMargin: 20
- Layout.leftMargin: 28
- Layout.rightMargin: 28
+ Layout.bottomMargin: 12
+ Layout.leftMargin: 5
+ Layout.rightMargin: 5
Layout.fillWidth: true
Layout.fillHeight: true
}
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderLine.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderLine.qml
index fc880aa0ea..87d5456f62 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderLine.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderLine.qml
@@ -273,7 +273,7 @@ FloatingBackground
visible: (!is_history ? details.cancellable ?? false : false) === true ? (mouseArea.containsMouse || hovered) ? true : false : false
- outlinedColor: Dex.CurrentTheme.noColor
+ outlinedColor: Dex.CurrentTheme.warningColor
hoverEnabled: true
onClicked: if (details) cancelOrder(details.order_id)
@@ -289,7 +289,7 @@ FloatingBackground
{
anchors.centerIn: parent
iconSize: 16
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
source: Qaterial.Icons.close
scale: parent.visible ? 1 : 0
}
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderList.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderList.qml
index 7a5a4aa007..7aff067cf9 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderList.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderList.qml
@@ -24,7 +24,7 @@ Item
HorizontalLine
{
Layout.fillWidth: true
- Layout.maximumWidth: 511
+ Layout.maximumWidth: 450
}
DefaultListView
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderModal.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderModal.qml
index 381a7d7bc0..2c0f7854c1 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderModal.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrderModal.qml
@@ -14,8 +14,9 @@ MultipageModal
id: root
property var details
- horizontalPadding: 60
- verticalPadding: 40
+ width: 720
+ horizontalPadding: 40
+ verticalPadding: 30
onDetailsChanged: { if (!details) root.close() }
onOpened:
@@ -27,11 +28,11 @@ MultipageModal
MultipageModalContent
{
- titleText: !details ? "" : details.is_swap ? qsTr("Swap Details") : qsTr("Order Details")
+ titleText: !details ? "" : visible ? getStatusText(details.order_status) : ''
title.font.pixelSize: Style.textSize2
titleAlignment: Qt.AlignHCenter
- titleTopMargin: 10
- topMarginAfterTitle: 10
+ titleTopMargin: 0
+ topMarginAfterTitle: 8
flickMax: window.height - 450
header: [
@@ -41,7 +42,8 @@ MultipageModal
visible: !details ? false : details.is_swap && details.order_status === "successful"
Layout.alignment: Qt.AlignHCenter
source: General.image_path + "exchange-trade-complete.png"
- height: 100
+ Layout.preferredHeight: 60
+ Layout.preferredWidth: 60
},
// Loading symbol
@@ -51,49 +53,45 @@ MultipageModal
details.is_swap && !["successful", "failed"].includes(details.order_status)
running: visible && Qt.platform.os != "osx"
Layout.alignment: Qt.AlignHCenter
- height: 100
+ Layout.preferredHeight: 60
+ Layout.preferredWidth: 60
},
-
+
RowLayout
{
- Layout.topMargin: 10
- height: 70
+ id: dex_pair_badges
+ Layout.preferredHeight: 70
+ Layout.fillWidth: true
+
PairItemBadge
{
ticker: details ? details.base_coin : ""
fullname: details ? General.coinName(details.base_coin) : ""
amount: details ? details.base_amount : ""
+ Layout.preferredHeight: 70
}
+ Item { Layout.fillWidth: true }
+
Qaterial.Icon
{
- Layout.fillWidth: true
+ Layout.preferredHeight: 70
Layout.alignment: Qt.AlignVCenter
-
color: Dex.CurrentTheme.foregroundColor
icon: Qaterial.Icons.swapHorizontal
}
+ Item { Layout.fillWidth: true }
+
PairItemBadge
{
ticker: details ? details.rel_coin : ""
fullname: details ? General.coinName(details.rel_coin) : ""
amount: details ? details.rel_amount : ""
+ Layout.preferredHeight: 70
}
- },
- // Status Text
- DefaultText
- {
- id: statusText
- Layout.alignment: Qt.AlignHCenter
- Layout.topMargin: 5
- font.pixelSize: Style.textSizeMid1
- font.bold: true
- visible: !details ? false : details.is_swap || !details.is_maker
- text_value: !details ? "" : visible ? getStatusText(details.order_status) : ''
- height: 25
},
DefaultText
@@ -289,7 +287,7 @@ MultipageModal
Layout.fillWidth: true
},
- DefaultButton
+ CancelButton
{
id: close_order_button
text: qsTr("Close")
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrdersPage.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrdersPage.qml
index 5ff799eda8..3629b41dae 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrdersPage.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/OrdersPage.qml
@@ -84,13 +84,13 @@ Item {
{
anchors.horizontalCenter: parent.horizontalCenter
anchors.fill: parent
- anchors.margins: 28
+ anchors.margins: 20
anchors.bottomMargin: is_history ? 0 : 10
- spacing: 15
+ spacing: 8
RowLayout
{
- spacing: 10
+ spacing: 8
DefaultButton
{
Layout.preferredHeight: 29
@@ -101,6 +101,30 @@ Item {
onClicked: settings.visible = !settings.visible
}
+ DefaultButton
+ {
+ visible: settings.visible && root.is_history
+ Layout.preferredHeight: 29
+ enabled: list_model_proxy.can_i_apply_filtering
+ radius: 7
+ label.font: DexTypo.body2
+ text: qsTr("Apply Filter")
+ onClicked: list_model_proxy.apply_all_filtering()
+ }
+
+ DefaultText
+ {
+ color: Dex.CurrentTheme.foregroundColor2
+ font: DexTypo.caption
+ visible: !settings.visible
+ text: qsTr("Filter") + ": %1 / %2 %3: %4 - %5".arg(combo_base.currentTicker).arg(combo_rel.currentTicker).arg(qsTr("Date")).arg(min_date.selectedDate.toLocaleDateString(Locale.ShortFormat, "yyyy-MM-dd")).arg(max_date.selectedDate.toLocaleDateString(Locale.ShortFormat, "yyyy-MM-dd"))
+ }
+
+ Item
+ {
+ Layout.fillWidth: true
+ }
+
DefaultButton
{
visible: root.is_history
@@ -115,12 +139,16 @@ Item {
}
}
- DefaultText
+ DefaultButton
{
- color: Dex.CurrentTheme.foregroundColor2
- font: DexTypo.caption
- visible: !settings.visible
- text: qsTr("Filter") + ": %1 / %2 %3: %4 - %5".arg(combo_base.currentTicker).arg(combo_rel.currentTicker).arg(qsTr("Date")).arg(min_date.selectedDate.toLocaleDateString(Locale.ShortFormat, "yyyy-MM-dd")).arg(max_date.selectedDate.toLocaleDateString(Locale.ShortFormat, "yyyy-MM-dd"))
+ visible: !root.is_history && list_model.length > 0
+ enabled: list_model.length > 0
+ Layout.preferredHeight: 29
+ radius: 7
+ label.font: DexTypo.body2
+ text: qsTr("Cancel All")
+ iconSource: Qaterial.Icons.close
+ onClicked: API.app.trading_pg.orders.cancel_order(list_model_proxy.get_filtered_ids())
}
}
@@ -130,33 +158,7 @@ Item {
visible: false
spacing: 8
- RowLayout
- {
- spacing: 10
- DefaultButton
- {
- visible: root.is_history
- enabled: list_model_proxy.can_i_apply_filtering
- Layout.preferredHeight: 29
- radius: 7
- label.font: DexTypo.body2
- text: qsTr("Apply Filter")
- onClicked: list_model_proxy.apply_all_filtering()
- }
-
- DefaultButton
- {
- visible: !root.is_history
- enabled: API.app.orders_mdl.length > 0
- Layout.preferredHeight: 29
- radius: 7
- label.font: DexTypo.body2
- text: qsTr("Cancel All")
- iconSource: Qaterial.Icons.close
- onClicked: API.app.trading_pg.orders.cancel_order(list_model_proxy.get_filtered_ids())
- }
- }
-
+ // Coin Selection comboboxes
RowLayout
{
Layout.alignment: Qt.AlignHCenter
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/PriceLine.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/PriceLine.qml
index 63cbdaf723..bf5d0d2286 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/PriceLine.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/PriceLine.qml
@@ -20,7 +20,7 @@ ColumnLayout
readonly property int fontSizeBigger: Style.textSizeSmall2
readonly property int lineScale: General.getComparisonScale(cexPriceDiff)
- spacing: 20
+ spacing: 10
DefaultText
{
@@ -72,7 +72,7 @@ ColumnLayout
Layout.topMargin: 10
Layout.bottomMargin: Layout.topMargin
Layout.alignment: Qt.AlignHCenter
- color: parseFloat(cexPriceDiff) <= 0 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.noColor
+ color: parseFloat(cexPriceDiff) <= 0 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.warningColor
text_value: (parseFloat(cexPriceDiff) > 0 ? qsTr("Expensive") : qsTr("Expedient")) + ": " + qsTr("%1 compared to CEX", "PRICE_DIFF%").arg("" + General.formatPercent(General.limitDigits(cexPriceDiff)) + " ")
font.pixelSize: fontSize
}
@@ -92,7 +92,7 @@ ColumnLayout
height: 6
start_color: Dex.CurrentTheme.okColor
- end_color: Dex.CurrentTheme.noColor
+ end_color: Dex.CurrentTheme.warningColor
AnimatedRectangle {
width: 4
diff --git a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/SwapProgress.qml b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/SwapProgress.qml
index ad019be3da..3f0963b269 100644
--- a/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/SwapProgress.qml
+++ b/atomic_defi_design/Dex/Exchange/ProView/TradingInfo/SwapProgress.qml
@@ -248,10 +248,10 @@ ColumnLayout
if (event)
{
// Red for the Finished if swap failed
- if (event.state === "Finished" && details.order_status === "failed") return Dex.CurrentTheme.noColor
+ if (event.state === "Finished" && details.order_status === "failed") return Dex.CurrentTheme.warningColor
// Red for error event, green for the others
- return details.error_events.indexOf(event.state) === -1 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.noColor
+ return details.error_events.indexOf(event.state) === -1 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.warningColor
}
// In progress one is orange
diff --git a/atomic_defi_design/Dex/Exchange/Trade/BestOrder/List.qml b/atomic_defi_design/Dex/Exchange/Trade/BestOrder/List.qml
index 695385521e..85a7be4ebe 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/BestOrder/List.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/BestOrder/List.qml
@@ -15,8 +15,8 @@ Widget
{
id: _control
title: qsTr("Best Orders")
- margins: 20
- spacing: 20
+ margins: 10
+ spacing: 10
Header
{
diff --git a/atomic_defi_design/Dex/Exchange/Trade/BestOrder/ListDelegate.qml b/atomic_defi_design/Dex/Exchange/Trade/BestOrder/ListDelegate.qml
index a1189a5540..e5893f2e31 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/BestOrder/ListDelegate.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/BestOrder/ListDelegate.qml
@@ -100,7 +100,7 @@ Item
parseFloat(cex_rates).toFixed(2) + "%"
color: cex_rates === "0" ? Qt.darker(Dex.CurrentTheme.foregroundColor) :
parseFloat(cex_rates) < 0 ? Dex.CurrentTheme.okColor :
- Dex.CurrentTheme.noColor
+ Dex.CurrentTheme.warningColor
Behavior on rightPadding
{
diff --git a/atomic_defi_design/Dex/Exchange/Trade/ConfirmMultiOrderTradeModal.qml b/atomic_defi_design/Dex/Exchange/Trade/ConfirmMultiOrderTradeModal.qml
index be005b5314..fece784f8e 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/ConfirmMultiOrderTradeModal.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/ConfirmMultiOrderTradeModal.qml
@@ -101,7 +101,7 @@ MultipageModal {
// Buttons
footer: [
- DefaultButton {
+ CancelButton {
text: qsTr("Cancel")
Layout.fillWidth: true
onClicked: root.close()
diff --git a/atomic_defi_design/Dex/Exchange/Trade/ConfirmTradeModal.qml b/atomic_defi_design/Dex/Exchange/Trade/ConfirmTradeModal.qml
index 8a4f6bf1ea..4054ef6606 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/ConfirmTradeModal.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/ConfirmTradeModal.qml
@@ -17,8 +17,8 @@ MultipageModal
id: root
readonly property var fees: API.app.trading_pg.fees
width: 720
- horizontalPadding: 30
- verticalPadding: 30
+ horizontalPadding: 20
+ verticalPadding: 20
closePolicy: Popup.NoAutoClose
MultipageModalContent
@@ -34,29 +34,41 @@ MultipageModal
RowLayout
{
id: dex_pair_badges
+ Layout.fillWidth: true
+ Layout.preferredHeight: 70
+ Layout.preferredWidth: 480
+
+ Item { Layout.fillWidth: true }
PairItemBadge
{
ticker: base_ticker
fullname: General.coinName(base_ticker)
amount: base_amount
+ Layout.fillHeight: true
}
+ Item { Layout.fillWidth: true }
+
Qaterial.Icon
{
- Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
-
color: Dex.CurrentTheme.foregroundColor
icon: Qaterial.Icons.swapHorizontal
+ Layout.fillHeight: true
}
+ Item { Layout.fillWidth: true }
+
PairItemBadge
{
ticker: rel_ticker
fullname: General.coinName(rel_ticker)
amount: rel_amount
+ Layout.fillHeight: true
}
+
+ Item { Layout.fillWidth: true }
},
PriceLineSimplified
@@ -95,6 +107,7 @@ MultipageModal
spacing: 2
boxWidth: 16
boxHeight: 16
+ boxRadius: 8
label.wrapMode: Label.NoWrap
text: qsTr("Trade price is more than 50% different to CEX! Confirm?")
font: DexTypo.caption
@@ -215,7 +228,7 @@ MultipageModal
width: parent.width
horizontalAlignment: DefaultText.AlignHCenter
font: DexTypo.caption
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: General.getTradingError(
last_trading_error,
curr_fee_info,
@@ -396,7 +409,7 @@ MultipageModal
[
Item { Layout.fillWidth: true },
- DefaultButton
+ CancelButton
{
text: qsTr("Cancel")
padding: 10
diff --git a/atomic_defi_design/Dex/Exchange/Trade/OrderBook/ListDelegate.qml b/atomic_defi_design/Dex/Exchange/Trade/OrderBook/ListDelegate.qml
index 20239d25d2..5ce557fc6b 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/OrderBook/ListDelegate.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/OrderBook/ListDelegate.qml
@@ -135,7 +135,7 @@ Item
height: 6
radius: width / 2
visible: is_mine
- color: isAsk ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ color: isAsk ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
}
// Progress bar
@@ -156,7 +156,7 @@ Item
Behavior on width { NumberAnimation { duration: 1000 } }
radius: 3
opacity: 0.8
- color: isAsk ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ color: isAsk ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
Component.onCompleted: width = ((depth * 100) * (mouse_area.width + 40)) / 100
}
}
@@ -176,7 +176,7 @@ Item
text: { new BigNumber(price).toFixed(8) }
font.family: DexTypo.fontFamily
font.pixelSize: 12
- color: isAsk ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ color: isAsk ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
horizontalAlignment: Text.AlignRight
wrapMode: Text.NoWrap
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/OrderBook/Vertical.qml b/atomic_defi_design/Dex/Exchange/Trade/OrderBook/Vertical.qml
index 9c5e4c9d74..0cbee94e75 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/OrderBook/Vertical.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/OrderBook/Vertical.qml
@@ -13,8 +13,8 @@ Widget
{
title: qsTr("Order Book")
- margins: 20
- spacing: 20
+ margins: 10
+ spacing: 10
Header
{
diff --git a/atomic_defi_design/Dex/Exchange/Trade/PriceLineSimplified.qml b/atomic_defi_design/Dex/Exchange/Trade/PriceLineSimplified.qml
index a9c257204d..1c14921fda 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/PriceLineSimplified.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/PriceLineSimplified.qml
@@ -111,7 +111,7 @@ ColumnLayout
Layout.preferredHeight: 6
start_color: Dex.CurrentTheme.okColor
- end_color: Dex.CurrentTheme.noColor
+ end_color: Dex.CurrentTheme.warningColor
AnimatedRectangle
{
@@ -146,7 +146,7 @@ ColumnLayout
id: price_diff_text
Layout.topMargin: 10
Layout.alignment: Qt.AlignHCenter
- color: parseFloat(cexPriceDiff) <= 0 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.noColor
+ color: parseFloat(cexPriceDiff) <= 0 ? Dex.CurrentTheme.okColor : Dex.CurrentTheme.warningColor
text_value: (parseFloat(cexPriceDiff) > 0 ? qsTr("Expensive") : qsTr("Expedient")) + ": " + qsTr("%1 compared to CEX", "PRICE_DIFF%").arg("" + General.formatPercent(General.limitDigits(cexPriceDiff)) + " ")
font.pixelSize: fontSize
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/ProView.qml b/atomic_defi_design/Dex/Exchange/Trade/ProView.qml
index f5b7252082..aad3a1036c 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/ProView.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/ProView.qml
@@ -54,7 +54,7 @@ RowLayout
{
setMarketMode(!is_asks ? MarketMode.Sell : MarketMode.Buy)
- API.app.trading_pg.preffered_order = {
+ let selected_order = {
"coin": coin,
"price": price,
"price_denom": price_denom,
@@ -69,6 +69,8 @@ RowLayout
"uuid": uuid
}
+ API.app.trading_pg.preffered_order = selected_order
+
// Shows place order form in case it has been hidden in the settings.
placeOrderForm.visible = true
}
@@ -111,8 +113,8 @@ RowLayout
{
Layout.alignment: Qt.AlignTop
- Layout.minimumWidth: selectors.visible || tradingInfo.visible ? 480 : -1
- Layout.maximumWidth: (!orderBook.visible && !bestOrders.visible) || (!placeOrderForm.visible) ? -1 : 735
+ Layout.minimumWidth: selectors.visible || tradingInfo.visible ? 450 : -1
+ Layout.maximumWidth: (!orderBook.visible && !bestOrders.visible) || (!placeOrderForm.visible) ? -1 : 450
Layout.fillWidth: true
Layout.fillHeight: true
@@ -145,7 +147,7 @@ RowLayout
property real _orderBookHeightRatio: 0.65
property real _bestOrdersHeightRatio: 0.35
- Layout.minimumWidth: orderBook.visible || bestOrders.visible ? 353 : -1
+ Layout.minimumWidth: orderBook.visible || bestOrders.visible ? 350 : -1
Layout.fillWidth: true
Layout.fillHeight: true
Layout.alignment: Qt.AlignTop
@@ -180,8 +182,8 @@ RowLayout
{
id: placeOrderForm
- Layout.minimumWidth: visible ? 302 : -1
- Layout.maximumWidth: 350
+ Layout.minimumWidth: visible ? 305 : -1
+ Layout.maximumWidth: 305
Layout.fillWidth: true
Layout.fillHeight: true
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/List.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/List.qml
index 1605adb463..c9ea3a02df 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/List.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/List.qml
@@ -302,7 +302,7 @@ DexListView
Layout.fillHeight: true
bottomInset: 0
topInset: 0
- outlinedColor: DexTheme.redColor
+ outlinedColor: DexTheme.warningColor
visible: !main_order.is_history && details.cancellable
onClicked: { if(details) cancelOrder(details.order_id) }
Row {
@@ -312,12 +312,12 @@ DexListView
anchors.verticalCenter: parent.verticalCenter
source: Qaterial.Icons.close
iconSize: 17
- color: DexTheme.redColor
+ color: DexTheme.warningColor
}
DexLabel {
anchors.verticalCenter: parent.verticalCenter
text: "Cancel "
- color: DexTheme.redColor
+ color: DexTheme.warningColor
}
}
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Main.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Main.qml
index ee73c2f269..649d133c0b 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Main.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Main.qml
@@ -40,76 +40,87 @@ Item
spacing: 30
anchors.horizontalCenter: parent.horizontalCenter
- Item // Sub-pages Tabs Selector
+ Rectangle // Tabs Border
{
anchors.horizontalCenter: parent.horizontalCenter
- width: _selectedTabMarker.width * 3
- height: 30
-
- Rectangle // Selected Tab Rectangle
+ width: _selectedTabMarker.width * 3 + 8
+ height: 38
+ border.color: Dex.CurrentTheme.gradientButtonStartColor
+ border.width: 1
+ color: Dex.CurrentTheme.floatingBackgroundColor
+ radius: 19
+
+ Item // Sub-pages Tabs Selector
{
- id: _selectedTabMarker
+ anchors.centerIn: parent
+ width: _selectedTabMarker.width * 3
+ height: 30
- function update() // Updates transform according to selected sub-page.
+ Rectangle // Selected Tab Rectangle
{
- switch (currentSubPage)
+ id: _selectedTabMarker
+
+ function update() // Updates transform according to selected sub-page.
{
- case subPages.Trade:
- x = 0
- break;
- case subPages.Orders:
- x = (parent.width / 3)
- orders_view.update()
- break;
- case subPages.History:
- x = (parent.width / 3) *2
- history_view.update()
- break;
+ switch (currentSubPage)
+ {
+ case subPages.Trade:
+ x = 0
+ break;
+ case subPages.Orders:
+ x = (parent.width / 3)
+ orders_view.update()
+ break;
+ case subPages.History:
+ x = (parent.width / 3) * 2
+ history_view.update()
+ break;
+ }
}
- }
- anchors.verticalCenter: parent.verticalCenter
- height: parent.height
- width: 108
- radius: 15
- color: Dex.CurrentTheme.tabSelectedColor
-
- Behavior on x { NumberAnimation { duration: 150 } }
- }
+ anchors.verticalCenter: parent.verticalCenter
+ height: parent.height
+ width: 108
+ radius: 15
+ color: Dex.CurrentTheme.tabSelectedColor
- RowLayout
- {
- anchors.fill: parent
- spacing: 0
-
- ClickableText
- {
- id: _tradeText
- Layout.preferredWidth: parent.width / 3
- Layout.fillHeight: true
- text: qsTr("Trade")
- font.pixelSize: Constants.Style.textSize
- onClicked: if (currentSubPage !== subPages.Trade) currentSubPage = subPages.Trade
+ Behavior on x { NumberAnimation { duration: 150 } }
}
- ClickableText
+ RowLayout
{
- id: _ordersText
- Layout.preferredWidth: parent.width / 3
- Layout.fillHeight: true
- text: qsTr("Orders")
- font.pixelSize: Constants.Style.textSize
- onClicked: if (currentSubPage !== subPages.Orders) currentSubPage = subPages.Orders
- }
+ anchors.fill: parent
+ spacing: 0
- ClickableText
- {
- id: _historyText
- Layout.preferredWidth: parent.width / 3
- Layout.fillHeight: true
- text: qsTr("History")
- font.pixelSize: Constants.Style.textSize
- onClicked: if (currentSubPage !== subPages.History) currentSubPage = subPages.History
+ ClickableText
+ {
+ id: _tradeText
+ Layout.preferredWidth: parent.width / 3
+ Layout.fillHeight: true
+ text: qsTr("Swap")
+ font.pixelSize: Constants.Style.textSize
+ onClicked: if (currentSubPage !== subPages.Trade) currentSubPage = subPages.Trade
+ }
+
+ ClickableText
+ {
+ id: _ordersText
+ Layout.preferredWidth: parent.width / 3
+ Layout.fillHeight: true
+ text: qsTr("Orders")
+ font.pixelSize: Constants.Style.textSize
+ onClicked: if (currentSubPage !== subPages.Orders) currentSubPage = subPages.Orders
+ }
+
+ ClickableText
+ {
+ id: _historyText
+ Layout.preferredWidth: parent.width / 3
+ Layout.fillHeight: true
+ text: qsTr("History")
+ font.pixelSize: Constants.Style.textSize
+ onClicked: if (currentSubPage !== subPages.History) currentSubPage = subPages.History
+ }
}
}
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubBestOrder.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubBestOrder.qml
index 7cd7d5552c..e1a7e9bc13 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubBestOrder.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubBestOrder.qml
@@ -128,10 +128,10 @@ DexListView
width: _rowWidth
height: _rowHeight
- radius: 0
+ radius: mouse_area.containsMouse ? 3 : 0
border.width: 0
colorAnimation: false
- color: mouse_area.containsMouse ? Dex.CurrentTheme.buttonColorHovered : 'transparent'
+ color: mouse_area.containsMouse ? Dex.CurrentTheme.listItemHoveredBackground : 'transparent'
DexMouseArea
{
@@ -162,6 +162,7 @@ DexListView
{
property int _iconWidth: 24
Layout.preferredWidth: _tokenColumnSize
+ Layout.leftMargin: 3
DexImage // Order Token Icon
{
@@ -206,7 +207,7 @@ DexListView
{
Layout.preferredWidth: _cexRateColumnSize
horizontalAlignment: Text.AlignRight
- color: cex_rates=== "0" ? Qt.darker(DexTheme.foregroundColor) : parseFloat(cex_rates)>0? DexTheme.redColor : DexTheme.greenColor
+ color: cex_rates=== "0" ? Qt.darker(DexTheme.foregroundColor) : parseFloat(cex_rates)>0? DexTheme.warningColor : DexTheme.okColor
text_value: cex_rates=== "0" ? "N/A" : parseFloat(cex_rates)>0? "+"+parseFloat(cex_rates).toFixed(2)+"%" : parseFloat(cex_rates).toFixed(2)+"%"
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubCoinSelector.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubCoinSelector.qml
index 5a89dd366d..bf1938c322 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubCoinSelector.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubCoinSelector.qml
@@ -130,7 +130,7 @@ DexListView
radius: 0
border.width: 0
colorAnimation: false
- color: mouse_area.containsMouse ? Dex.CurrentTheme.buttonColorHovered : 'transparent'
+ color: mouse_area.containsMouse ? Dex.CurrentTheme.listItemHoveredBackground : 'transparent'
DexMouseArea
{
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubHistory.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubHistory.qml
index b6171ada9c..917e515db6 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubHistory.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubHistory.qml
@@ -252,7 +252,7 @@ Item
anchors.fill: parent
spacing: 15
- DefaultButton
+ CancelButton
{
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubOrders.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubOrders.qml
index 680331ad66..7b26d92157 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubOrders.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/SubOrders.qml
@@ -245,7 +245,7 @@ Item
{
anchors.fill: parent
spacing: 15
- DefaultButton
+ CancelButton
{
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
@@ -253,6 +253,7 @@ Item
text: qsTr("Cancel")
onClicked: _subOrdersRoot.displayFilter = false
}
+
DefaultButton
{
Layout.fillWidth: true
diff --git a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Trade.qml b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Trade.qml
index 480c041971..e8f5950ecd 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Trade.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/SimpleView/Trade.qml
@@ -26,7 +26,7 @@ ClipRRect // Trade Card
readonly property bool coin_tradable: selectedTicker !== "" && sell_ticker_balance > 0
readonly property bool waiting_for_sell_coin_info: (max_trade_volume == 0 || !Constants.General.isZhtlcReady(left_ticker)) && sell_ticker_balance != 0
- property string selectedTicker: sell_ticker_balance > 0 ? left_ticker : ""
+ property string selectedTicker: left_ticker
property var selectedOrder: undefined
property bool best: false
property bool coinSelection: false
@@ -269,6 +269,7 @@ ClipRRect // Trade Card
opacity: .6
}
+ // Tooltip
MouseArea
{
anchors.left: _fromBalanceIcon.left
@@ -279,7 +280,11 @@ ClipRRect // Trade Card
DefaultTooltip
{
visible: parent.containsMouse
- text: qsTr("Tradable: ") + parent.parent.text
+ text:
+ {
+ let balance = Constants.API.app.portfolio_pg.portfolio_mdl.coin_balance(selectedTicker);
+ return qsTr("Balance: ") + Constants.API.app.portfolio_pg.portfolio_mdl.coin_balance(selectedTicker) + ' (' + parent.parent.text + ' tradable)'
+ }
}
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/Trade.qml b/atomic_defi_design/Dex/Exchange/Trade/Trade.qml
index 9b334ac34f..1217a4ba3d 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/Trade.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/Trade.qml
@@ -158,9 +158,9 @@ Item
Column
{
anchors.fill: parent
- spacing: 15
- anchors.leftMargin: 20
- anchors.rightMargin: 20
+ spacing: 8
+ anchors.leftMargin: 8
+ anchors.rightMargin: 8
TradeViewHeader
{
@@ -179,7 +179,7 @@ Item
{
id: proView
width: parent.width
- height: parent.height * 0.90
+ height: parent.height * 0.91
visible: API.app.trading_pg.current_trading_mode == TradingMode.Pro
enabled: visible
}
diff --git a/atomic_defi_design/Dex/Exchange/Trade/Trading/TradeViewHeader.qml b/atomic_defi_design/Dex/Exchange/Trade/Trading/TradeViewHeader.qml
index 15755c1920..8cc01d06d4 100644
--- a/atomic_defi_design/Dex/Exchange/Trade/Trading/TradeViewHeader.qml
+++ b/atomic_defi_design/Dex/Exchange/Trade/Trading/TradeViewHeader.qml
@@ -47,6 +47,7 @@ Item
id: _simpleLabel
text: "Simple"
color: API.app.trading_pg.current_trading_mode == TradingMode.Simple ? Dex.CurrentTheme.foregroundColor : Dex.CurrentTheme.foregroundColor2
+ anchors.leftMargin: 16
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 14
diff --git a/atomic_defi_design/Dex/NewUpdateModal.qml b/atomic_defi_design/Dex/NewUpdateModal.qml
index 4f9d7e3907..eccb4867c4 100644
--- a/atomic_defi_design/Dex/NewUpdateModal.qml
+++ b/atomic_defi_design/Dex/NewUpdateModal.qml
@@ -53,7 +53,7 @@ Dex.MultipageModal
footer:
[
Item { Layout.fillWidth: true },
- Dex.DefaultButton
+ Dex.CancelButton
{
text: qsTr("Close")
onClicked: close()
@@ -75,7 +75,7 @@ Dex.MultipageModal
footer:
[
Item { Layout.fillWidth: true },
- Dex.DefaultButton
+ Dex.CancelButton
{
text: qsTr("Close")
onClicked: close()
@@ -134,7 +134,7 @@ Dex.MultipageModal
footer:
[
Item { Layout.fillWidth: true },
- Dex.DefaultButton
+ Dex.CancelButton
{
text: qsTr("Close")
onClicked: close()
diff --git a/atomic_defi_design/Dex/Portfolio/AmountChart.qml b/atomic_defi_design/Dex/Portfolio/AmountChart.qml
index ec3bef155b..1f7bca35d2 100644
--- a/atomic_defi_design/Dex/Portfolio/AmountChart.qml
+++ b/atomic_defi_design/Dex/Portfolio/AmountChart.qml
@@ -217,7 +217,7 @@ InnerBackground {
Rectangle {
anchors.fill: parent
opacity: .6
- color: DexTheme.dexBoxBackgroundColor
+ color: DexTheme.backgroundDarkColor6
visible: portfolio_asset_chart.isProgress
radius: parent.radius
DefaultBusyIndicator {
diff --git a/atomic_defi_design/Dex/Portfolio/AssetsList.qml b/atomic_defi_design/Dex/Portfolio/AssetsList.qml
index ded8fd3eda..1edddc6658 100644
--- a/atomic_defi_design/Dex/Portfolio/AssetsList.qml
+++ b/atomic_defi_design/Dex/Portfolio/AssetsList.qml
@@ -96,13 +96,13 @@ Dex.DexListView
delegate: Rectangle
{
- property color _idleColor: index % 2 === 1 ? Dex.CurrentTheme.backgroundColor : Dex.CurrentTheme.innerBackgroundColor
+ property color _idleColor: index % 2 === 1 ? Dex.CurrentTheme.listItemOddBackground : Dex.CurrentTheme.listItemEvenBackground
property int activation_progress: Dex.General.zhtlcActivationProgress(activation_status, ticker)
width: list.width
height: _assetRowHeight
- color: mouseArea.containsMouse ? Dex.CurrentTheme.buttonColorHovered : _idleColor
+ color: mouseArea.containsMouse ? Dex.CurrentTheme.listItemHoveredBackground : _idleColor
RowLayout
{
@@ -126,7 +126,7 @@ Dex.DexListView
anchors.centerIn: parent
anchors.fill: parent
radius: 15
- enabled: Dex.General.isZhtlc(ticker) ? activation_progress != 100 : false
+ enabled: Dex.General.isZhtlc(ticker) ? activation_progress < 100 : false
visible: enabled
opacity: .9
color: Dex.DexTheme.backgroundColor
@@ -136,13 +136,13 @@ Dex.DexListView
{
anchors.centerIn: parent
anchors.fill: parent
- enabled: Dex.General.isZhtlc(ticker) ? activation_progress != 100 : false
+ enabled: Dex.General.isZhtlc(ticker) ? activation_progress < 100 : false
visible: enabled
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: activation_progress + "%"
font: Dex.DexTypo.head8
- color: Dex.DexTheme.greenColor
+ color: Dex.DexTheme.okColor
}
}
@@ -165,7 +165,7 @@ Dex.DexListView
text: model.type
font: Dex.DexTypo.overLine
opacity: .7
- color: Dex.Style.getCoinTypeColor(model.type)
+ color: Dex.Style.getCoinColor(ticker)
Dex.DexLabel
{
@@ -177,7 +177,7 @@ Dex.DexListView
text: "IDO"
font: Dex.DexTypo.overLine
opacity: .7
- color: Dex.DexTheme.redColor
+ color: Dex.DexTheme.warningColor
}
}
}
@@ -203,7 +203,6 @@ Dex.DexListView
return parseFloat(balance).toFixed(8)
}
- color: text_value == parseFloat(balance).toFixed(8) ? Qt.darker(Dex.DexTheme.foregroundColor, 0.8) : Dex.DexTheme.redColor
privacy: true
}
@@ -217,8 +216,6 @@ Dex.DexListView
font: Dex.DexTypo.body2
text_value: Dex.General.formatFiat("", main_currency_balance, Dex.API.app.settings_pg.current_currency)
-
- color: Qt.darker(Dex.DexTheme.foregroundColor, 0.8)
privacy: true
}
@@ -252,7 +249,6 @@ Dex.DexListView
text_value: Dex.General.formatFiat('', main_currency_price_for_one_unit,
Dex.API.app.settings_pg.current_currency, 6)
- color: Dex.DexTheme.colorThemeDarkLight
}
Item // Price Provider
diff --git a/atomic_defi_design/Dex/Portfolio/Portfolio.qml b/atomic_defi_design/Dex/Portfolio/Portfolio.qml
index cac69abde3..01af593f48 100644
--- a/atomic_defi_design/Dex/Portfolio/Portfolio.qml
+++ b/atomic_defi_design/Dex/Portfolio/Portfolio.qml
@@ -21,8 +21,7 @@ Item {
id: portfolio
Layout.fillWidth: true
Layout.fillHeight: true
- Layout.bottomMargin: 40
- Layout.margins: 40
+ Layout.margins: 20
readonly property int sort_by_name: 0
readonly property int sort_by_value: 1
@@ -104,62 +103,10 @@ Item {
chart.axes[i].visible = false
}
- Item
- {
- width: parent.width
- height: 80
- visible: true
-
- RowLayout
- {
- anchors.fill: parent
- anchors.leftMargin: 40
- anchors.rightMargin: 40
- anchors.topMargin: 30
-
- Item
- {
- Layout.fillWidth: true
- Layout.fillHeight: true
-
- DefaultText
- {
- font: DexTypo.head6
- anchors.verticalCenter: parent.verticalCenter
- text: qsTr("Portfolio")
- }
- }
-
- Item
- {
- width: 120
- Layout.alignment: Qt.AlignVCenter
- Layout.preferredWidth: 200
-
- Row
- {
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
-
- DexGradientAppButton
- {
- height: 40
- iconSource: Qaterial.Icons.plus
- radius: 15
- padding: 25
- font: DexTypo.body2
- text: qsTr("ADD ASSET")
- onClicked: enable_coin_modal.open()
- }
- }
- }
- }
- }
-
Flickable {
id: flick
anchors.fill: parent
- anchors.topMargin: 80
+ anchors.topMargin: 20
contentHeight: _column.height
clip: true
diff --git a/atomic_defi_design/Dex/Portfolio/SmartChartView.qml b/atomic_defi_design/Dex/Portfolio/TradingViewChart.qml
similarity index 100%
rename from atomic_defi_design/Dex/Portfolio/SmartChartView.qml
rename to atomic_defi_design/Dex/Portfolio/TradingViewChart.qml
diff --git a/atomic_defi_design/Dex/Screens/Dashboard.qml b/atomic_defi_design/Dex/Screens/Dashboard.qml
index 95595a6206..a59d814663 100644
--- a/atomic_defi_design/Dex/Screens/Dashboard.qml
+++ b/atomic_defi_design/Dex/Screens/Dashboard.qml
@@ -20,6 +20,7 @@ import "../Support" as SupportPage
import "../Screens"
import "../Addressbook" as Addressbook
import Dex.Themes 1.0 as Dex
+import AtomicDEX.TradingMode 1.0
Item
{
@@ -86,14 +87,7 @@ Item
sidebar.currentLineType = currentPage
if (currentPage == Dashboard.PageType.DEX)
{
- if (API.app.trading_pg.current_trading_mode == TradingMode.Pro)
- {
- API.app.trading_pg.set_pair(false, api_wallet_page.ticker)
- }
- else
- {
- API.app.trading_pg.set_pair(true, api_wallet_page.ticker)
- }
+ API.app.trading_pg.set_pair(true, api_wallet_page.ticker)
}
}
@@ -115,6 +109,7 @@ Item
}
}
+
// Right side
AnimatedRectangle
{
@@ -123,6 +118,18 @@ Item
x: sidebar.width
border.color: 'transparent'
+ Rectangle
+ {
+ radius: 0
+ anchors.fill: parent
+ anchors.rightMargin : - border.width
+ anchors.bottomMargin: - border.width
+ anchors.leftMargin: - border.width
+ border.width: 1
+ border.color: Dex.CurrentTheme.lineSeparatorColor
+ color: 'transparent'
+ }
+
// Modals
ModalLoader
{
@@ -272,6 +279,7 @@ Item
enabled: loader.status === Loader.Ready
onLineSelected: currentPage = lineType;
+ onAddCryptoClicked: enable_coin_modal.open()
onSettingsClicked: setting_modal.open()
onSupportClicked: support_modal.open()
}
@@ -366,7 +374,7 @@ Item
return Dex.CurrentTheme.sidebarLineTextHovered
case "failed":
default:
- return DexTheme.redColor
+ return DexTheme.warningColor
}
}
diff --git a/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml b/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml
index acb83d2be4..2abfd27ab4 100644
--- a/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml
+++ b/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml
@@ -166,14 +166,13 @@ SetupPage
height: 40
width: 60
radius: 20
- color: Dex.CurrentTheme.accentColor
anchors.verticalCenter: parent.verticalCenter
Qaterial.ColorIcon
{
anchors.centerIn: parent
iconSize: 19
source: Qaterial.Icons.wallet
- color: Dex.CurrentTheme.foregroundColor
+ color: Dex.CurrentTheme.inputLeftIconColor
}
}
}
@@ -205,7 +204,7 @@ SetupPage
id: _seedError
visible: _seedField.error
text: qsTr("Your seed is not BIP39 compliant.\nTry again or select 'Allow custom seed' to continue.")
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
Layout.preferredWidth: parent.width - 40
font: DexTypo.body2
}
@@ -267,7 +266,7 @@ SetupPage
DefaultText
{
text_value: text_error
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
visible: text !== ''
}
@@ -306,7 +305,7 @@ SetupPage
DexAppPasswordField
{
id: _inputPassword
- field.font: DexTypo.body2
+ field.placeholderText: qsTr("Enter password")
Layout.fillWidth: true
Layout.preferredHeight: 50
field.onAccepted: trySubmit()
@@ -324,7 +323,6 @@ SetupPage
DexAppPasswordField
{
id: _inputPasswordConfirm
- field.font: DexTypo.body2
field.placeholderText: qsTr("Enter the same password to confirm")
Layout.fillWidth: true
Layout.preferredHeight: 50
@@ -364,7 +362,7 @@ SetupPage
DefaultText
{
text_value: text_error
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
visible: text !== ''
}
}
diff --git a/atomic_defi_design/Dex/Screens/Startup/Login.qml b/atomic_defi_design/Dex/Screens/Startup/Login.qml
index 299c505ea2..74401c45e2 100644
--- a/atomic_defi_design/Dex/Screens/Startup/Login.qml
+++ b/atomic_defi_design/Dex/Screens/Startup/Login.qml
@@ -67,7 +67,6 @@ SetupPage
max_length: General.max_pw_length
height: 50
width: 300
- background.color: Dex.CurrentTheme.floatingBackgroundColor
forceFocus: true
field.onTextChanged: { _isPasswordWrong = false }
field.onAccepted:
@@ -88,9 +87,6 @@ SetupPage
return false;
}
}
-
- leftIconColor: Dex.CurrentTheme.foregroundColor
- hideFieldButton.icon.color: Dex.CurrentTheme.foregroundColor
}
DexLabel
@@ -98,7 +94,7 @@ SetupPage
Layout.alignment: Qt.AlignHCenter
height: 14
text: _isPasswordWrong ? qsTr("Incorrect Password") : ""
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
}
GradientButton
@@ -119,14 +115,12 @@ SetupPage
visible: false
}
- DexAppButton
+ CancelButton
{
text: qsTr("Cancel")
- color: containsMouse ? Dex.CurrentTheme.buttonColorHovered : 'transparent'
height: 25
radius: 20
width: 100
- border.color: 'transparent'
Layout.alignment: Qt.AlignHCenter
font: Qt.font(
{
diff --git a/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml b/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml
index 2a2f30e59a..ef22a5bbd6 100644
--- a/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml
+++ b/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml
@@ -318,14 +318,15 @@ SetupPage
height: 40
width: 60
radius: 20
- color: Dex.CurrentTheme.accentColor
anchors.verticalCenter: parent.verticalCenter
+ color: Dex.CurrentTheme.inputLeftIconBackgroundColor
+
Qaterial.ColorIcon
{
anchors.centerIn: parent
iconSize: 19
source: Qaterial.Icons.wallet
- color: Dex.CurrentTheme.foregroundColor
+ color: Dex.CurrentTheme.inputLeftIconColor
}
}
}
@@ -335,7 +336,7 @@ SetupPage
Layout.topMargin: 10
Layout.bottomMargin: Layout.topMargin
Layout.fillWidth: true
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
height: warning_texts.height + 20
radius: 20
@@ -457,7 +458,7 @@ SetupPage
DefaultText
{
text_value: text_error
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
visible: text !== ''
}
@@ -568,7 +569,8 @@ SetupPage
width: (_insideFlow2.width - 30) / 4
text: modelData ?? ""
radius: 20
- color: Dex.CurrentTheme.accentColor
+ btnEnabledColor: Dex.CurrentTheme.buttonColorEnabled
+ btnHoveredColor: Dex.CurrentTheme.accentColor
font: DexTypo.body2
onClicked:
@@ -609,9 +611,9 @@ SetupPage
{
x: 5
height: 40
- width: 60
+ width: 50
radius: 20
- color: Dex.CurrentTheme.accentColor
+ color: Dex.CurrentTheme.inputLeftIconBackgroundColor
anchors.verticalCenter: parent.verticalCenter
DefaultText
@@ -664,7 +666,7 @@ SetupPage
DefaultText
{
text_value: guess_text_error
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
visible: input_seed_word.error
DexVisibleBehavior on visible
{}
@@ -685,6 +687,7 @@ SetupPage
id: _inputPassword
Layout.fillWidth: true
Layout.preferredHeight: 50
+ field.placeholderText: qsTr("Enter password")
field.onAccepted: _keyChecker.isValid() ? eula_modal.open() : undefined
}
@@ -742,7 +745,7 @@ SetupPage
DefaultText
{
text_value: text_error
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
visible: text !== ''
}
}
diff --git a/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml b/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml
index 6d21be4af2..7db17d6390 100644
--- a/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml
+++ b/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml
@@ -225,7 +225,7 @@ SetupPage
iconSize: 18
anchors.centerIn: parent
opacity: .8
- color: _deleteArea.containsMouse ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.foregroundColor
+ color: _deleteArea.containsMouse ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.foregroundColor
}
DexMouseArea
@@ -242,7 +242,7 @@ SetupPage
text: qsTr("Enter password to confirm deletion of") + " %1 ".arg(wallet_name) + qsTr("wallet"),
standardButtons: Dialog.Yes | Dialog.Cancel,
warning: true,
- iconColor: Dex.CurrentTheme.noColor,
+ iconColor: Dex.CurrentTheme.warningColor,
isPassword: true,
placeholderText: qsTr("Type password"),
yesButtonText: qsTr("Delete"),
diff --git a/atomic_defi_design/Dex/Settings/AddCustomCoinModal.qml b/atomic_defi_design/Dex/Settings/AddCustomCoinModal.qml
index da91a1695a..d3dd686fed 100644
--- a/atomic_defi_design/Dex/Settings/AddCustomCoinModal.qml
+++ b/atomic_defi_design/Dex/Settings/AddCustomCoinModal.qml
@@ -146,7 +146,7 @@ MultipageModal
// Buttons
footer:
[
- DefaultButton
+ CancelButton
{
text: qsTr("Cancel")
Layout.preferredWidth: 220
diff --git a/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml b/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml
index e0f83cd7a3..a798ff68dc 100644
--- a/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml
+++ b/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml
@@ -78,7 +78,7 @@ MultipageModal
// Buttons
footer:
[
- DexAppButton
+ CancelButton
{
text: qsTr("Cancel")
leftPadding: 40
diff --git a/atomic_defi_design/Dex/Settings/Combo_fiat.qml b/atomic_defi_design/Dex/Settings/Combo_fiat.qml
index 0842bb41ef..b62c61b59f 100644
--- a/atomic_defi_design/Dex/Settings/Combo_fiat.qml
+++ b/atomic_defi_design/Dex/Settings/Combo_fiat.qml
@@ -77,6 +77,7 @@ Item
const new_fiat = fiats[currentIndex]
API.app.settings_pg.current_fiat = new_fiat
API.app.settings_pg.current_currency = new_fiat
+ setting_modal.recommended_fiats = API.app.settings_pg.get_recommended_fiats()
}
}
@@ -123,7 +124,7 @@ Item
{
text: modelData
color: DexTheme.foregroundColor
- opacity: fiats_mouse_area.containsMouse ? .7 : 1
+ opacity: text == API.app.settings_pg.current_fiat ? 1 : fiats_mouse_area.containsMouse ? .8 : .6
DexMouseArea
{
diff --git a/atomic_defi_design/Dex/Settings/DeleteWalletModal.qml b/atomic_defi_design/Dex/Settings/DeleteWalletModal.qml
index b126dab5e5..c19c6854f9 100644
--- a/atomic_defi_design/Dex/Settings/DeleteWalletModal.qml
+++ b/atomic_defi_design/Dex/Settings/DeleteWalletModal.qml
@@ -70,7 +70,7 @@ MultipageModal {
// Buttons
footer: [
- DefaultButton {
+ CancelButton {
text: qsTr("Cancel")
Layout.fillWidth: true
onClicked: root.close()
diff --git a/atomic_defi_design/Dex/Settings/RecoverSeedModal.qml b/atomic_defi_design/Dex/Settings/RecoverSeedModal.qml
index 09ec5b13a6..39253a7786 100644
--- a/atomic_defi_design/Dex/Settings/RecoverSeedModal.qml
+++ b/atomic_defi_design/Dex/Settings/RecoverSeedModal.qml
@@ -69,10 +69,7 @@ MultipageModal
Layout.margins: 20
Layout.alignment: Qt.AlignHCenter
field.onAccepted: tryViewKeysAndSeed()
- leftIconColor: Dex.CurrentTheme.foregroundColor
field.onTextChanged: { _isPasswordWrong = false }
- background.color: Dex.CurrentTheme.accentColor
- hideFieldButton.icon.color: Dex.CurrentTheme.foregroundColor
}
DexLabel
@@ -80,7 +77,7 @@ MultipageModal
Layout.alignment: Qt.AlignHCenter
height: 14
text: _isPasswordWrong ? qsTr("Incorrect Password") : ""
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
}
// Footer
@@ -88,7 +85,7 @@ MultipageModal
{
Layout.preferredWidth: parent.width
Layout.topMargin: 30
- DefaultButton
+ CancelButton
{
text: qsTr("Cancel")
Layout.preferredWidth: parent.width / 100 * 48
diff --git a/atomic_defi_design/Dex/Settings/SettingModal.qml b/atomic_defi_design/Dex/Settings/SettingModal.qml
index a600817bec..b4a1dd3d83 100644
--- a/atomic_defi_design/Dex/Settings/SettingModal.qml
+++ b/atomic_defi_design/Dex/Settings/SettingModal.qml
@@ -25,6 +25,8 @@ Qaterial.Dialog
property var fiats: API.app.settings_pg.get_available_fiats()
property var enableable_coins_count: enableable_coins_count_combo_box.currentValue
property var orders: API.app.orders_mdl.orders_proxy_mdl.ModelHelper
+ readonly property date default_min_date: new Date("2019-01-01")
+ readonly property date default_max_date: new Date(new Date().setDate(new Date().getDate()))
width: 950
height: 650
@@ -205,6 +207,7 @@ Qaterial.Dialog
topPadding: 10
spacing: 15
+ // Notifications toggle
RowLayout
{
width: parent.width - 30
@@ -229,6 +232,32 @@ Qaterial.Dialog
}
}
+ // Spam filter toggle
+ RowLayout
+ {
+ width: parent.width - 30
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: 50
+
+ DexLabel
+ {
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ font: DexTypo.subtitle1
+ text: qsTr("Hide Poison Transactions in History")
+ }
+
+ Item { Layout.fillWidth: true }
+
+ DexSwitch
+ {
+ Layout.alignment: Qt.AlignVCenter
+ Component.onCompleted: checked = API.app.settings_pg.spamfilter_enabled
+ onCheckedChanged: API.app.settings_pg.spamfilter_enabled = checked
+ }
+ }
+
+ // Max Coins Dropdown
RowLayout
{
width: parent.width - 30
@@ -271,6 +300,44 @@ Qaterial.Dialog
onClicked: openLogsFolder()
}
+ // Sync date picker
+ RowLayout
+ {
+ width: parent.width - 30
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: 50
+
+ DexLabel
+ {
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ font: DexTypo.subtitle1
+ text: qsTr("ZHTLC sync date")
+ }
+
+ Item { Layout.fillWidth: true }
+
+ DatePicker
+ {
+ id: sync_date
+ titleText: qsTr("Sync Date")
+ minimumDate: default_min_date
+ maximumDate: default_max_date
+ selectedDate: {
+ var date = new Date(new Date(0).setUTCSeconds(API.app.settings_pg.get_pirate_sync_date()));
+ console.log(API.app.settings_pg.get_pirate_sync_date());
+ console.log(date);
+ return date;
+ }
+ onAccepted: {
+ atomic_settings2.setValue(
+ "PirateSyncDate",
+ parseInt(selectedDate.getTime().valueOf()/1000)
+ )
+ }
+ }
+ }
+
SettingsButton
{
width: parent.width - 30
@@ -462,7 +529,7 @@ Qaterial.Dialog
standardButtons: Dialog.Yes | Dialog.Cancel,
closePolicy: Popup.NoAutoClose,
warning: true,
- iconColor: Dex.CurrentTheme.noColor,
+ iconColor: Dex.CurrentTheme.warningColor,
isPassword: true,
placeholderText: qsTr("Type password"),
yesButtonText: qsTr("Confirm"),
diff --git a/atomic_defi_design/Dex/Sidebar/Bottom.qml b/atomic_defi_design/Dex/Sidebar/Bottom.qml
index 18067aba60..af9829b03a 100644
--- a/atomic_defi_design/Dex/Sidebar/Bottom.qml
+++ b/atomic_defi_design/Dex/Sidebar/Bottom.qml
@@ -11,6 +11,7 @@ MouseArea
{
id: root
+ signal addCryptoClicked()
signal supportClicked()
signal settingsClicked()
@@ -27,6 +28,7 @@ MouseArea
if (isExpanded) waitForSidebarExpansionAnimation.start();
else
{
+ addCryptoLine.label.opacity = 0;
settingsLine.label.opacity = 0;
supportLine.label.opacity = 0;
privacyLine.label.opacity = 0;
@@ -37,7 +39,7 @@ MouseArea
NumberAnimation
{
id: waitForSidebarExpansionAnimation
- targets: [settingsLine.label, supportLine.label, privacyLine.label]
+ targets: [addCryptoLine.label, settingsLine.label, supportLine.label, privacyLine.label]
properties: "opacity"
duration: 200
from: 0
@@ -48,7 +50,7 @@ MouseArea
NumberAnimation
{
id: labelsOpacityAnimation
- targets: [settingsLine.label, supportLine.label, privacyLine.label]
+ targets: [addCryptoLine.label, settingsLine.label, supportLine.label, privacyLine.label]
properties: "opacity"
duration: 350
from: 0.0
@@ -59,21 +61,29 @@ MouseArea
{
anchors.fill: parent
FigurativeLine
+ {
+ id: addCryptoLine
+
+ Layout.fillWidth: true
+ label.text: qsTr("Add Crypto") // isExpanded ? qsTr("Add Crypto") : ""
+ icon.source: General.image_path + "bank-plus.svg"
+ onClicked: addCryptoClicked()
+ }
+ FigurativeLine
{
id: settingsLine
Layout.fillWidth: true
- label.text: isExpanded ? qsTr("Settings") : ""
+ label.text: qsTr("Settings") // isExpanded ? qsTr("Settings") : ""
icon.source: General.image_path + "menu-settings-white.svg"
onClicked: settingsClicked()
}
-
FigurativeLine
{
id: supportLine
Layout.fillWidth: true
- label.text: isExpanded ? qsTr("Support") : ""
+ label.text: qsTr("Support") // isExpanded ? qsTr("Support") : ""
icon.source: General.image_path + "menu-support-white.png"
onClicked: supportClicked(type)
}
@@ -85,6 +95,7 @@ MouseArea
Layout.fillWidth: true
label.text: qsTr("Privacy")
label.visible: isExpanded
+ anchors.leftMargin: 60
onClicked:
{
@@ -99,7 +110,7 @@ MouseArea
standardButtons: Dialog.Yes | Dialog.Cancel,
closePolicy: Popup.NoAutoClose,
warning: true,
- iconColor: Dex.CurrentTheme.noColor,
+ iconColor: Dex.CurrentTheme.warningColor,
isPassword: true,
placeholderText: qsTr("Type password"),
yesButtonText: qsTr("Confirm"),
@@ -148,9 +159,9 @@ MouseArea
id: privacySwitch
anchors.left: parent.left
- anchors.leftMargin: 10
+ anchors.leftMargin: -5
anchors.verticalCenter: parent.verticalCenter
- scale: 0.75
+ scale: 0.5
mouseArea.hoverEnabled: true
onClicked: parent.clicked()
}
diff --git a/atomic_defi_design/Dex/Sidebar/Center.qml b/atomic_defi_design/Dex/Sidebar/Center.qml
index 9e203908ac..89ab94df97 100644
--- a/atomic_defi_design/Dex/Sidebar/Center.qml
+++ b/atomic_defi_design/Dex/Sidebar/Center.qml
@@ -65,7 +65,7 @@ MouseArea
Layout.fillWidth: true
type: Main.LineType.Portfolio
- label.text: isExpanded ? qsTr("Portfolio") : ""
+ label.text: qsTr("Portfolio") // isExpanded ? qsTr("Portfolio") : ""
icon.source: General.image_path + "menu-assets-portfolio.svg"
onClicked: lineSelected(type)
}
@@ -76,7 +76,7 @@ MouseArea
Layout.fillWidth: true
type: Main.LineType.Wallet
- label.text: isExpanded ? qsTr("Wallet") : ""
+ label.text: qsTr("Wallet") // isExpanded ? qsTr("Wallet") : ""
icon.source: General.image_path + "menu-assets-white.svg"
onClicked: lineSelected(type)
}
@@ -87,7 +87,7 @@ MouseArea
Layout.fillWidth: true
type: Main.LineType.DEX
- label.text: isExpanded ? qsTr("DEX") : ""
+ label.text: qsTr("DEX") // isExpanded ? qsTr("DEX") : ""
icon.source: General.image_path + "menu-exchange-white.svg"
onClicked: lineSelected(type)
}
@@ -98,7 +98,7 @@ MouseArea
Layout.fillWidth: true
type: Main.LineType.Addressbook
- label.text: isExpanded ? qsTr("Address Book") : ""
+ label.text: qsTr("Address Book") // isExpanded ? qsTr("Address Book") : ""
icon.source: General.image_path + "menu-news-white.svg"
onClicked: lineSelected(type)
}
@@ -110,7 +110,7 @@ MouseArea
label.enabled: false
icon.enabled: false
Layout.fillWidth: true
- label.text: isExpanded ? qsTr("Fiat") : ""
+ label.text: qsTr("Fiat") // isExpanded ? qsTr("Fiat") : ""
icon.source: General.image_path + "bill.svg"
}
}
diff --git a/atomic_defi_design/Dex/Sidebar/FigurativeLine.qml b/atomic_defi_design/Dex/Sidebar/FigurativeLine.qml
index 3010810c46..540ca6e11b 100644
--- a/atomic_defi_design/Dex/Sidebar/FigurativeLine.qml
+++ b/atomic_defi_design/Dex/Sidebar/FigurativeLine.qml
@@ -13,7 +13,7 @@ Line
id: _icon
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
- anchors.leftMargin: 30
+ anchors.leftMargin: 18
height: 16
}
diff --git a/atomic_defi_design/Dex/Sidebar/Line.qml b/atomic_defi_design/Dex/Sidebar/Line.qml
index 4c50cdc75a..c8a24b5949 100644
--- a/atomic_defi_design/Dex/Sidebar/Line.qml
+++ b/atomic_defi_design/Dex/Sidebar/Line.qml
@@ -24,7 +24,7 @@ Item
id: _label
anchors.left: parent.left
- anchors.leftMargin: 70
+ anchors.leftMargin: 45
anchors.verticalCenter: parent.verticalCenter
font: Qt.font
diff --git a/atomic_defi_design/Dex/Sidebar/Main.qml b/atomic_defi_design/Dex/Sidebar/Main.qml
index d4a47b7d38..c36fb5b895 100644
--- a/atomic_defi_design/Dex/Sidebar/Main.qml
+++ b/atomic_defi_design/Dex/Sidebar/Main.qml
@@ -17,8 +17,8 @@ Item
Support
}
- property bool isExpanded: containsMouse
- property real lineHeight: 44
+ property bool isExpanded: true
+ property real lineHeight: 36
property var currentLineType: Main.LineType.Portfolio
property alias _selectionCursor: _selectionCursor
property bool containsMouse: mouseArea.containsMouse
@@ -26,25 +26,32 @@ Item
signal lineSelected(var lineType)
signal settingsClicked()
signal supportClicked()
+ signal addCryptoClicked()
signal privacySwitched(var checked)
signal expanded(var isExpanded)
signal expandStarted(var isExpanding)
- width: isExpanded ? 200 : 80
+ width: 150
height: parent.height
// Background Rectangle
- Rectangle
+ DefaultRectangle
{
+ radius: 0
anchors.fill: parent
+ anchors.rightMargin : - border.width
+ anchors.bottomMargin: - border.width
+ anchors.leftMargin: - border.width
+ border.width: 1
+ border.color: Dex.CurrentTheme.lineSeparatorColor
color: Dex.CurrentTheme.sidebarBgColor
}
// Animation when changing width.
- Behavior on width
- {
- NumberAnimation { duration: 300; targets: [width, _selectionCursor.width]; properties: "width"; onRunningChanged: { if (!running) expanded(isExpanded); else expandStarted(isExpanded); } }
- }
+ // Behavior on width
+ // {
+ // NumberAnimation { duration: 300; targets: [width, _selectionCursor.width]; properties: "width"; onRunningChanged: { if (!running) expanded(isExpanded); else expandStarted(isExpanded); } }
+ // }
// Selection Cursor
AnimatedRectangle
@@ -59,8 +66,8 @@ Item
anchors.left: parent.left
anchors.leftMargin: 12
- radius: 18
- width: parent.width - 14
+ radius: 12
+ width: parent.width - 20
height: lineHeight
opacity: .7
@@ -98,7 +105,7 @@ Item
id: center
width: parent.width
anchors.top: top.bottom
- anchors.topMargin: 69.5
+ anchors.topMargin: 70
onLineSelected:
{
if (currentLineType === lineType)
@@ -113,16 +120,11 @@ Item
id: bottom
width: parent.width
anchors.bottom: parent.bottom
- anchors.bottomMargin: 62
+ anchors.bottomMargin: 60
+ onAddCryptoClicked: root.addCryptoClicked()
onSettingsClicked: root.settingsClicked()
onSupportClicked: root.supportClicked()
}
-
- VerticalLine
- {
- height: parent.height
- anchors.right: parent.right
- }
}
}
diff --git a/atomic_defi_design/Dex/Sidebar/Top.qml b/atomic_defi_design/Dex/Sidebar/Top.qml
index d6c2e1b697..b73aebbc77 100644
--- a/atomic_defi_design/Dex/Sidebar/Top.qml
+++ b/atomic_defi_design/Dex/Sidebar/Top.qml
@@ -15,28 +15,28 @@ MouseArea
{
target: parent.parent
- function onExpanded(isExpanded)
- {
- if (isExpanded)
- {
- fadeInTextVerAnimation.start();
- dexLogo.scale = .8;
- dexLogo.source = Dex.CurrentTheme.bigLogoPath;
- dexLogo.sourceSize.width = 200;
- }
- }
+ // function onExpanded(isExpanded)
+ // {
+ // if (isExpanded)
+ // {
+ // fadeInTextVerAnimation.start();
+ // dexLogo.scale = .8;
+ // dexLogo.source = Dex.CurrentTheme.bigLogoPath;
+ // dexLogo.sourceSize.width = 200;
+ // }
+ // }
- function onExpandStarted(isExpanding)
- {
- if (!isExpanding)
- {
- versionLabel.opacity = 0;
- dexLogo.scale = .5;
- dexLogo.source = Dex.CurrentTheme.logoPath;
- dexLogo.sourceSize.width = 80;
- versionLabel.opacity = 0;
- }
- }
+ // function onExpandStarted(isExpanding)
+ // {
+ // if (!isExpanding)
+ // {
+ // versionLabel.opacity = 0;
+ // dexLogo.scale = .5;
+ // dexLogo.source = Dex.CurrentTheme.logoPath;
+ // dexLogo.sourceSize.width = 80;
+ // versionLabel.opacity = 0;
+ // }
+ // }
}
NumberAnimation
@@ -56,8 +56,8 @@ MouseArea
Component.onCompleted:
{
sourceSize.width = parent.width
- source = isExpanded ? Dex.CurrentTheme.bigLogoPath : Dex.CurrentTheme.logoPath;
- scale = isExpanded ? .8 : .5
+ source = Dex.CurrentTheme.bigLogoPath // isExpanded ? Dex.CurrentTheme.bigLogoPath : Dex.CurrentTheme.logoPath;
+ scale = 1 // isExpanded ? .8 : .5
}
Connections
@@ -65,7 +65,7 @@ MouseArea
target: Dex.CurrentTheme
function onThemeChanged()
{
- dexLogo.source = isExpanded ? Dex.CurrentTheme.bigLogoPath : Dex.CurrentTheme.logoPath
+ dexLogo.source = Dex.CurrentTheme.bigLogoPath // isExpanded ? Dex.CurrentTheme.bigLogoPath : Dex.CurrentTheme.logoPath
}
}
}
@@ -80,8 +80,8 @@ MouseArea
text_value: General.version_string
font: DexTypo.caption
color: Dex.CurrentTheme.sidebarVersionTextColor
- visible: root.width > 120
+ visible: true // root.width > 120
- Component.onCompleted: opacity = isExpanded ? 1 : 0
+ Component.onCompleted: opacity = 1 // isExpanded ? 1 : 0
}
}
diff --git a/atomic_defi_design/Dex/Support/SupportModal.qml b/atomic_defi_design/Dex/Support/SupportModal.qml
index 3c197c9b4f..0ea8c92c52 100644
--- a/atomic_defi_design/Dex/Support/SupportModal.qml
+++ b/atomic_defi_design/Dex/Support/SupportModal.qml
@@ -29,7 +29,7 @@ Qaterial.Dialog
topPadding: 30
bottomPadding: 30
anchors.centerIn: parent
-
+
dim: true
modal: true
title: "Support"
@@ -142,6 +142,19 @@ For this reason, we recommend cancelling orders before closing %1, or reviewing
Network fees can vary greatly depending on your selected trading pair.").arg(API.app_name)
}
+ // TODO: Update link to the KP blog when relevent article available.
+ FAQLine
+ {
+ title: qsTr("I see a transaction in my wallet that was marked as 'poison'. What does this mean?")
+ text: qsTr('Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.').arg(API.app_name)
+ }
+
FAQLine
{
title: qsTr("Do you provide user support?")
@@ -195,7 +208,7 @@ Network fees can vary greatly depending on your selected trading pair.").arg(API
Layout.preferredHeight: column_layout.height
hoverEnabled: true
- onClicked: update_modal.open()
+ onClicked: Qt.openUrlExternally("https://github.com/KomodoPlatform/komodo-wallet-desktop/pull/2296")
ColumnLayout
{
diff --git a/atomic_defi_design/Dex/Themes/CurrentTheme.qml b/atomic_defi_design/Dex/Themes/CurrentTheme.qml
index a39439456c..94ef9960d9 100644
--- a/atomic_defi_design/Dex/Themes/CurrentTheme.qml
+++ b/atomic_defi_design/Dex/Themes/CurrentTheme.qml
@@ -105,6 +105,16 @@ ThemeData
buttonTextHoveredColor = Dex.Color.argbStrFromRgbaStr(themeData.buttonTextHoveredColor || defaultTheme.buttonTextHoveredColor);
buttonTextPressedColor = Dex.Color.argbStrFromRgbaStr(themeData.buttonTextPressedColor || defaultTheme.buttonTextPressedColor);
+ buttonSecondaryColorDisabled = Dex.Color.argbStrFromRgbaStr(themeData.buttonSecondaryColorDisabled || defaultTheme.buttonSecondaryColorDisabled);
+ buttonSecondaryColorEnabled = Dex.Color.argbStrFromRgbaStr(themeData.buttonSecondaryColorEnabled || defaultTheme.buttonSecondaryColorEnabled);
+ buttonSecondaryColorHovered = Dex.Color.argbStrFromRgbaStr(themeData.buttonSecondaryColorHovered || defaultTheme.buttonSecondaryColorHovered);
+ buttonSecondaryColorPressed = Dex.Color.argbStrFromRgbaStr(themeData.buttonSecondaryColorPressed || defaultTheme.buttonSecondaryColorPressed);
+
+ buttonCancelColorDisabled = Dex.Color.argbStrFromRgbaStr(themeData.buttonCancelColorDisabled || defaultTheme.buttonCancelColorDisabled);
+ buttonCancelColorEnabled = Dex.Color.argbStrFromRgbaStr(themeData.buttonCancelColorEnabled || defaultTheme.buttonCancelColorEnabled);
+ buttonCancelColorHovered = Dex.Color.argbStrFromRgbaStr(themeData.buttonCancelColorHovered || defaultTheme.buttonCancelColorHovered);
+ buttonCancelColorPressed = Dex.Color.argbStrFromRgbaStr(themeData.buttonCancelColorPressed || defaultTheme.buttonCancelColorPressed);
+
gradientButtonStartColor = Dex.Color.argbStrFromRgbaStr(themeData.gradientButtonStartColor || defaultTheme.gradientButtonStartColor);
gradientButtonEndColor = Dex.Color.argbStrFromRgbaStr(themeData.gradientButtonEndColor || defaultTheme.gradientButtonEndColor);
gradientButtonDisabledStartColor = Dex.Color.argbStrFromRgbaStr(themeData.gradientButtonDisabledStartColor || defaultTheme.gradientButtonDisabledStartColor);
@@ -156,6 +166,8 @@ ThemeData
textFieldPrefixColor = Dex.Color.argbStrFromRgbaStr(themeData.textFieldPrefixColor || defaultTheme.textFieldPrefixColor);
textFieldSuffixColor = Dex.Color.argbStrFromRgbaStr(themeData.textFieldSuffixColor || defaultTheme.textFieldSuffixColor);
+ tickerBadgeBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.tickerBadgeBackgroundColor || defaultTheme.tickerBadgeBackgroundColor);
+
chartTradingLineBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.chartTradingLineBackgroundColor || defaultTheme.chartTradingLineBackgroundColor);
chartTradingLineColor = Dex.Color.argbStrFromRgbaStr(themeData.chartTradingLineColor || defaultTheme.chartTradingLineColor);
@@ -182,7 +194,18 @@ ThemeData
tradeBuyModeSelectorBackgroundColorEnd = Dex.Color.argbStrFromRgbaStr(themeData.tradeBuyModeSelectorBackgroundColorEnd || defaultTheme.tradeBuyModeSelectorBackgroundColorEnd);
tradeSellModeSelectorBackgroundColorStart = Dex.Color.argbStrFromRgbaStr(themeData.tradeSellModeSelectorBackgroundColorStart || defaultTheme.tradeSellModeSelectorBackgroundColorStart);
tradeSellModeSelectorBackgroundColorEnd = Dex.Color.argbStrFromRgbaStr(themeData.tradeSellModeSelectorBackgroundColorEnd || defaultTheme.tradeSellModeSelectorBackgroundColorEnd);
- tradeMarketModeSelectorNotSelectedBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.tradeMarketModeSelectorNotSelectedBackgroundColor || defaultTheme.tradeMarketModeSelectorNotSelectedBackgroundColor);
+
+ inputModifierBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.inputModifierBackgroundColor || defaultTheme.inputModifierBackgroundColor);
+ inputFieldBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.inputFieldBackgroundColor || defaultTheme.inputFieldBackgroundColor);
+ inputFieldBorderColor = Dex.Color.argbStrFromRgbaStr(themeData.inputFieldBorderColor || defaultTheme.inputFieldBorderColor);
+ inputPlaceholderTextColor = Dex.Color.argbStrFromRgbaStr(themeData.inputPlaceholderTextColor || defaultTheme.inputPlaceholderTextColor);
+ inputRightIconColor = Dex.Color.argbStrFromRgbaStr(themeData.inputRightIconColor || defaultTheme.inputRightIconColor);
+ inputLeftIconColor = Dex.Color.argbStrFromRgbaStr(themeData.inputLeftIconColor || defaultTheme.inputLeftIconColor);
+ inputLeftIconBackgroundColor = Dex.Color.argbStrFromRgbaStr(themeData.inputLeftIconBackgroundColor || defaultTheme.inputLeftIconBackgroundColor);
+
+ listItemOddBackground = Dex.Color.argbStrFromRgbaStr(themeData.listItemOddBackground || defaultTheme.listItemOddBackground);
+ listItemEvenBackground = Dex.Color.argbStrFromRgbaStr(themeData.listItemEvenBackground || defaultTheme.listItemEvenBackground);
+ listItemHoveredBackground = Dex.Color.argbStrFromRgbaStr(themeData.listItemHoveredBackground || defaultTheme.listItemHoveredBackground);
addressBookTagColors = themeData.addressBookTagColors || defaultTheme.addressBookTagColors
for (var i = 0; i < addressBookTagColors.length; i++)
@@ -190,13 +213,14 @@ ThemeData
addressBookTagColors[i] = Dex.Color.argbStrFromRgbaStr(addressBookTagColors[i])
}
- okColor = Dex.Color.argbStrFromRgbaStr(themeData.okColor || defaultTheme.okColor);
- noColor = Dex.Color.argbStrFromRgbaStr(themeData.noColor || defaultTheme.noColor);
+ okColor = Dex.Color.argbStrFromRgbaStr(themeData.okColor || defaultTheme.okColor);
+ warningColor = Dex.Color.argbStrFromRgbaStr(themeData.warningColor || defaultTheme.warningColor);
+ swapIconColor = Dex.Color.argbStrFromRgbaStr(themeData.swapIconColor || defaultTheme.swapIconColor);
- senderColorStart = Dex.Color.argbStrFromRgbaStr(themeData.senderColorStart || defaultTheme.senderColorStart);
- receiverColorStart = Dex.Color.argbStrFromRgbaStr(themeData.receiverColorStart || defaultTheme.receiverColorStart);
+ senderColorStart = Dex.Color.argbStrFromRgbaStr(themeData.senderColorStart || defaultTheme.senderColorStart);
+ receiverColorStart = Dex.Color.argbStrFromRgbaStr(themeData.receiverColorStart || defaultTheme.receiverColorStart);
- lineSeparatorColor = Dex.Color.argbStrFromRgbaStr(themeData.lineSeparatorColor || defaultTheme.lineSeparatorColor);
+ lineSeparatorColor = Dex.Color.argbStrFromRgbaStr(themeData.lineSeparatorColor || defaultTheme.lineSeparatorColor);
}
function loadLogo(themeName)
@@ -278,6 +302,8 @@ ThemeData
console.info("Dex.Themes.CurrentTheme.printValues.textFieldPrefixColor : %1".arg(textFieldPrefixColor));
console.info("Dex.Themes.CurrentTheme.printValues.textFieldSuffixColor : %1".arg(textFieldSuffixColor));
+ console.info("Dex.Themes.CurrentTheme.printValues.tickerBadgeBackgroundColor : %1".arg(tickerBadgeBackgroundColor));
+
console.info("Dex.Themes.CurrentTheme.printValues.chartTradingLineBackgroundColor : %1".arg(chartTradingLineBackgroundColor));
console.info("Dex.Themes.CurrentTheme.printValues.chartTradingLineColor : %1".arg(chartTradingLineColor));
@@ -304,12 +330,12 @@ ThemeData
console.info("Dex.Themes.CurrentTheme.printValues.tradeBuyModeSelectorBackgroundColorEnd : %1".arg(tradeBuyModeSelectorBackgroundColorEnd));
console.info("Dex.Themes.CurrentTheme.printValues.tradeSellModeSelectorBackgroundColorStart : %1".arg(tradeSellModeSelectorBackgroundColorStart));
console.info("Dex.Themes.CurrentTheme.printValues.tradeSellModeSelectorBackgroundColorEnd : %1".arg(tradeSellModeSelectorBackgroundColorEnd));
- console.info("Dex.Themes.CurrentTheme.printValues.tradeMarketModeSelectorNotSelectedBackgroundColor : %1".arg(tradeMarketModeSelectorNotSelectedBackgroundColor));
+ console.info("Dex.Themes.CurrentTheme.printValues.inputModifierBackgroundColor : %1".arg(inputModifierBackgroundColor));
console.info("Dex.Themes.CurrentTheme.printValues.addressBookTagColors : %1".arg(addressBookTagColors));
console.info("Dex.Themes.CurrentTheme.printValues.okColor : %1".arg(okColor));
- console.info("Dex.Themes.CurrentTheme.printValues.noColor : %1".arg(noColor));
+ console.info("Dex.Themes.CurrentTheme.printValues.warningColor : %1".arg(warningColor));
console.info("Dex.Themes.CurrentTheme.printValues.senderColorStart : %1".arg(senderColorStart));
console.info("Dex.Themes.CurrentTheme.printValues.receiverColorStart : %1".arg(receiverColorStart));
diff --git a/atomic_defi_design/Dex/Themes/DefaultTheme.js b/atomic_defi_design/Dex/Themes/DefaultTheme.js
index bc44012fd8..07467a9850 100644
--- a/atomic_defi_design/Dex/Themes/DefaultTheme.js
+++ b/atomic_defi_design/Dex/Themes/DefaultTheme.js
@@ -21,6 +21,16 @@ function getHardcoded()
buttonTextHoveredColor: "#000000FF",
buttonTextPressedColor: "#000000FF",
+ buttonSecondaryColorDisabled: "#D8E3F8FF",
+ buttonSecondaryColorEnabled: "#F0F6FFFF",
+ buttonSecondaryColorHovered: "#D7E7FFFF",
+ buttonSecondaryColorPressed: "#B8D2F9FF",
+
+ buttonCancelColorDisabled: "#D8E3F8FF",
+ buttonCancelColorEnabled: "#F0F6FFFF",
+ buttonCancelColorHovered: "#D7E7FFFF",
+ buttonCancelColorPressed: "#B8D2F9FF",
+
gradientButtonStartColor: "#5A68E6FF",
gradientButtonEndColor: "#4986EAAB",
gradientButtonDisabledStartColor: "#CDD0F6FF",
@@ -72,6 +82,8 @@ function getHardcoded()
textFieldPrefixColor: "#45607894",
textFieldSuffixColor: "#456078FF",
+ tickerBadgeBackgroundColor: "#D5DCF8FF",
+
chartTradingLineBackgroundColor: "#C5F2EFFF",
chartTradingLineColor: "#53EBD7FF",
@@ -94,16 +106,27 @@ function getHardcoded()
sidebarLineTextHovered: "#2C87B9FF",
sidebarLineTextSelected: "#FFFFFFFF",
- tradeBuyModeSelectorBackgroundColorStart: "#6A4DE3FF",
- tradeBuyModeSelectorBackgroundColorEnd: "#2279F1FF",
+ tradeBuyModeSelectorBackgroundColorStart: "#6A4DE3FF",
+ tradeBuyModeSelectorBackgroundColorEnd: "#2279F1FF",
tradeSellModeSelectorBackgroundColorStart: "#E52167FF",
- tradeSellModeSelectorBackgroundColorEnd: "#E216A9FF",
- tradeMarketModeSelectorNotSelectedBackgroundColor: "#89B6FF21",
+ tradeSellModeSelectorBackgroundColorEnd: "#E216A9FF",
+
+ inputModifierBackgroundColor: "#89B6FF21",
+ inputFieldBackgroundColor: "#313555FF",
+ inputFieldBorderColor: "#20233788",
+ inputPlaceholderTextColor: "#FFFFFFFF",
+ inputRightIconColor: "#FFFFFFFF",
+ inputLeftIconColor: "#FFFFFFFF",
+ inputLeftIconBackgroundColor: "#202337FF",
+
+ listItemOddBackground: "#202337FF",
+ listItemEvenBackground: "#24273DFF",
+ listItemHoveredBackground: "#4068B9FF",
- addressBookTagColors: ["#627EEAFF", "#FFD87AFF", "#F7931AFF"],
+ addressBookTagColors: ["#003bbbFF", "#006133FF", "#612600FF", "#430061FF", "#004d61FF"],
okColor: "#00C058FF",
- noColor: "#E52167FF",
+ warningColor: "#E52167FF",
senderColorStart: "#F85757FF",
receiverColorStart: "#845FEFFF",
diff --git a/atomic_defi_design/Dex/Themes/ThemeData.qml b/atomic_defi_design/Dex/Themes/ThemeData.qml
index 43cd03337d..a138eb816c 100644
--- a/atomic_defi_design/Dex/Themes/ThemeData.qml
+++ b/atomic_defi_design/Dex/Themes/ThemeData.qml
@@ -20,6 +20,16 @@ QtObject
property color buttonTextHoveredColor
property color buttonTextPressedColor
+ property color buttonSecondaryColorDisabled
+ property color buttonSecondaryColorEnabled
+ property color buttonSecondaryColorHovered
+ property color buttonSecondaryColorPressed
+
+ property color buttonCancelColorDisabled
+ property color buttonCancelColorEnabled
+ property color buttonCancelColorHovered
+ property color buttonCancelColorPressed
+
property color gradientButtonStartColor
property color gradientButtonEndColor
property color gradientButtonDisabledStartColor
@@ -71,6 +81,8 @@ QtObject
property color textFieldPrefixColor
property color textFieldSuffixColor
+ property color tickerBadgeBackgroundColor
+
property color chartTradingLineBackgroundColor
property color chartTradingLineColor
@@ -100,14 +112,27 @@ QtObject
property color tradeBuyModeSelectorBackgroundColorEnd
property color tradeSellModeSelectorBackgroundColorStart
property color tradeSellModeSelectorBackgroundColorEnd
- property color tradeMarketModeSelectorNotSelectedBackgroundColor
+
+ // Inputs styling
+ property color inputModifierBackgroundColor
+ property color inputFieldBackgroundColor
+ property color inputFieldBorderColor
+ property color inputPlaceholderTextColor
+ property color inputRightIconColor
+ property color inputLeftIconColor
+ property color inputLeftIconBackgroundColor
+
+ property color listItemOddBackground
+ property color listItemEvenBackground
+ property color listItemHoveredBackground
// Address book page related
property var addressBookTagColors
// Colors used to tell when something is good or wrong.
property color okColor
- property color noColor
+ property color warningColor
+ property color swapIconColor
property color senderColorStart
property color receiverColorStart
diff --git a/atomic_defi_design/Dex/Wallet/ClaimFaucetResultModal.qml b/atomic_defi_design/Dex/Wallet/ClaimFaucetResultModal.qml
index 7e74f78fd2..203658f13b 100644
--- a/atomic_defi_design/Dex/Wallet/ClaimFaucetResultModal.qml
+++ b/atomic_defi_design/Dex/Wallet/ClaimFaucetResultModal.qml
@@ -24,5 +24,15 @@ MultipageModal {
text_value: claiming_faucet_rpc_result && claiming_faucet_rpc_result.message ?
claiming_faucet_rpc_result.message : ""
}
+
+ CancelButton
+ {
+ Layout.preferredWidth: 300
+ text: qsTr("Close")
+ Layout.topMargin: 20
+ Layout.alignment: Qt.AlignCenter
+ radius: 18
+ onClicked: close()
+ }
}
}
diff --git a/atomic_defi_design/Dex/Wallet/ClaimRewardsModal.qml b/atomic_defi_design/Dex/Wallet/ClaimRewardsModal.qml
index 4222e0189f..f067a7886f 100644
--- a/atomic_defi_design/Dex/Wallet/ClaimRewardsModal.qml
+++ b/atomic_defi_design/Dex/Wallet/ClaimRewardsModal.qml
@@ -414,7 +414,7 @@ MultipageModal
// Buttons
footer:
[
- DexAppButton
+ CancelButton
{
text: qsTr("Cancel")
leftPadding: 40
diff --git a/atomic_defi_design/Dex/Wallet/EnableCoinModal.qml b/atomic_defi_design/Dex/Wallet/EnableCoinModal.qml
index 332f7049b0..d8f53a2d3f 100644
--- a/atomic_defi_design/Dex/Wallet/EnableCoinModal.qml
+++ b/atomic_defi_design/Dex/Wallet/EnableCoinModal.qml
@@ -15,6 +15,8 @@ import Dex.Themes 1.0 as Dex
MultipageModal
{
id: root
+ horizontalPadding: 35
+ verticalPadding: 35
property var coin_cfg_model: API.app.portfolio_pg.global_cfg_mdl
@@ -28,8 +30,7 @@ MultipageModal
coin_cfg_model.all_disabled_proxy.setFilterFixedString(text === undefined ? input_coin_filter.textField.text : text)
}
- width: 676
- height: 720
+ width: 600
onOpened:
{
@@ -45,12 +46,20 @@ MultipageModal
coin_cfg_model.checked_nb = 0;
}
- MultipageModalContent
+ ColumnLayout
{
- titleText: qsTr("Enable assets")
- titleAlignment: Qt.AlignHCenter
- titleTopMargin: 15
- topMarginAfterTitle: 15
+ spacing: 5
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ DefaultText
+ {
+ id: _title
+ Layout.topMargin: 5
+ Layout.alignment: Qt.AlignHCenter
+ font: DexTypo.head6
+ text: qsTr("Enable assets")
+ }
// Search input
SearchField
@@ -59,146 +68,154 @@ MultipageModal
searchIconLeftMargin: 20
Layout.alignment: Qt.AlignHCenter
- Layout.topMargin: 10
+ Layout.topMargin: 15
Layout.fillWidth: true
- Layout.preferredHeight: 44
- textField.placeholderText: qsTr("Search asset")
+ Layout.preferredHeight: 40
+ textField.placeholderText: qsTr("Search assets")
textField.forceFocus: true
textField.onTextChanged: filterCoins()
}
- RowLayout
+ MultipageModalContent
{
- spacing: 0
- Layout.topMargin: 10
- Layout.fillWidth: true
- Layout.preferredHeight: 24
+ titleTopMargin: 0
+ topMarginAfterTitle: 0
+ spacing: 5
+
- DefaultCheckBox
+ RowLayout
{
- id: _selectAllCheckBox
+ spacing: 0
+ Layout.topMargin: 10
Layout.fillWidth: true
+ Layout.preferredHeight: 24
- spacing: 0
- boxWidth: 20
- boxHeight: 20
- labelWidth: parent.width - 40
- label.wrapMode: Label.NoWrap
- label.leftPadding: 24
+ DefaultCheckBox
+ {
+ id: _selectAllCheckBox
+ Layout.fillWidth: true
- text: qsTr("Select all assets")
- visible: list.visible
+ spacing: 0
+ boxWidth: 20
+ boxHeight: 20
+ labelWidth: parent.width - 40
+ label.wrapMode: Label.NoWrap
+ label.leftPadding: 24
- onToggled: root.setCheckState(checked)
- }
- }
+ text: qsTr("Select all assets")
+ visible: list.visible
- HorizontalLine { Layout.topMargin: 5; Layout.alignment: Qt.AlignHCenter; Layout.fillWidth: true }
+ onToggled: root.setCheckState(checked)
+ }
+ }
- DefaultListView
- {
- id: list
- visible: coin_cfg_model.all_disabled_proxy.length > 0
- model: coin_cfg_model.all_disabled_proxy
+ HorizontalLine { Layout.topMargin: 5; Layout.alignment: Qt.AlignHCenter; Layout.fillWidth: true }
- Layout.topMargin: -5
- Layout.alignment: Qt.AlignHCenter
- Layout.preferredHeight: 300
- Layout.fillWidth: true
-
- delegate: Item
+ DefaultListView
{
- height: 30
- width: list.width
+ id: list
+ visible: coin_cfg_model.all_disabled_proxy.length > 0
+ model: coin_cfg_model.all_disabled_proxy
- RowLayout
+ Layout.topMargin: -5
+ Layout.alignment: Qt.AlignHCenter
+ Layout.preferredHeight: 300
+ Layout.fillWidth: true
+
+ delegate: Item
{
- spacing: 0
- Layout.topMargin: 10
- Layout.fillWidth: true
- Layout.preferredHeight: 24
+ height: 30
+ width: list.width
- DefaultCheckBox
+ RowLayout
{
- id: listInnerRowCheckbox
- readonly property bool backend_checked: model.checked
-
- Layout.fillWidth: true
-
spacing: 0
- boxWidth: 20
- boxHeight: 20
- labelWidth: parent.width - 40
+ Layout.topMargin: 10
+ Layout.fillWidth: true
+ Layout.preferredHeight: 24
- onBackend_checkedChanged: if (checked !== backend_checked) checked = backend_checked
- onCheckStateChanged:
+ DefaultCheckBox
{
- if (checked !== backend_checked)
- {
- var data_index = coin_cfg_model.all_disabled_proxy.index(index, 0)
- if ((coin_cfg_model.all_disabled_proxy.setData(data_index, checked, Qt.UserRole + 11)) === false)
- {
- checked = false
- }
- }
- }
+ id: listInnerRowCheckbox
+ readonly property bool backend_checked: model.checked
+
+ Layout.fillWidth: true
- contentItem: RowLayout
- {
- Layout.alignment: Qt.AlignVCenter
spacing: 0
+ boxWidth: 20
+ boxHeight: 20
+ labelWidth: parent.width - 40
- // Icon
- DefaultImage
+ onBackend_checkedChanged: if (checked !== backend_checked) checked = backend_checked
+ onCheckStateChanged:
{
- id: icon
- Layout.leftMargin: 24
- Layout.alignment: Qt.AlignVCenter
- source: General.coinIcon(model.ticker)
- Layout.preferredWidth: 18
- Layout.preferredHeight: 18
+ if (checked !== backend_checked)
+ {
+ var data_index = coin_cfg_model.all_disabled_proxy.index(index, 0)
+ if ((coin_cfg_model.all_disabled_proxy.setData(data_index, checked, Qt.UserRole + 11)) === false)
+ {
+ checked = false
+ }
+ }
}
- DefaultText
+ contentItem: RowLayout
{
- Layout.leftMargin: 4
Layout.alignment: Qt.AlignVCenter
- text: model.name + " (" + model.ticker + ")"
- }
+ spacing: 0
- CoinTypeTag
- {
- id: typeTag
- Layout.leftMargin: 6
- Layout.alignment: Qt.AlignVCenter
- type: model.type
- }
+ // Icon
+ DefaultImage
+ {
+ id: icon
+ Layout.leftMargin: 24
+ Layout.alignment: Qt.AlignVCenter
+ source: General.coinIcon(model.ticker)
+ Layout.preferredWidth: 18
+ Layout.preferredHeight: 18
+ }
- CoinTypeTag
- {
- Layout.leftMargin: 6
- Layout.alignment: Qt.AlignVCenter
- enabled: General.isIDO(model.ticker)
- visible: enabled
- type: "IDO"
- }
+ DefaultText
+ {
+ Layout.leftMargin: 4
+ Layout.alignment: Qt.AlignVCenter
+ text: model.name + " (" + model.ticker + ")"
+ }
- CoinTypeTag
- {
- Layout.leftMargin: 6
- Layout.alignment: Qt.AlignVCenter
- enabled: API.app.portfolio_pg.global_cfg_mdl.get_coin_info(model.ticker).is_wallet_only
- visible: enabled
- type: "WALLET ONLY"
+ CoinTypeTag
+ {
+ id: typeTag
+ Layout.leftMargin: 6
+ Layout.alignment: Qt.AlignVCenter
+ type: model.type
+ }
+
+ CoinTypeTag
+ {
+ Layout.leftMargin: 6
+ Layout.alignment: Qt.AlignVCenter
+ enabled: General.isIDO(model.ticker)
+ visible: enabled
+ type: "IDO"
+ }
+
+ CoinTypeTag
+ {
+ Layout.leftMargin: 6
+ Layout.alignment: Qt.AlignVCenter
+ enabled: API.app.portfolio_pg.global_cfg_mdl.get_coin_info(model.ticker).is_wallet_only
+ visible: enabled
+ type: "WALLET ONLY"
+ }
}
}
}
- }
- DefaultMouseArea
- {
- anchors.fill: parent
- onClicked: listInnerRowCheckbox.checked = !listInnerRowCheckbox.checked
+ DefaultMouseArea
+ {
+ anchors.fill: parent
+ onClicked: listInnerRowCheckbox.checked = !listInnerRowCheckbox.checked
+ }
}
}
}
@@ -208,36 +225,29 @@ MultipageModal
Layout.topMargin: 6
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
-
DefaultText
{
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
text: coin_cfg_model.all_disabled_proxy.length > 0 ?
- qsTr("You can still enable %1 assets. Selected: %2.")
- .arg(setting_modal.enableable_coins_count - API.app.portfolio_pg.portfolio_mdl.length - coin_cfg_model.checked_nb)
- .arg(coin_cfg_model.checked_nb) :
- qsTr("All assets are already enabled!")
-
+ qsTr("You can still enable %1 assets. Selected: %2.")
+ .arg(setting_modal.enableable_coins_count - API.app.portfolio_pg.portfolio_mdl.length - coin_cfg_model.checked_nb)
+ .arg(coin_cfg_model.checked_nb) :
+ qsTr("All assets are already enabled!")
color: Dex.CurrentTheme.textPlaceholderColor
}
}
- HorizontalLine { Layout.preferredWidth: 500; Layout.alignment: Qt.AlignHCenter }
-
Item
{
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
- Layout.topMargin: 10
- Layout.preferredHeight: 60
+ Layout.preferredHeight: 40
DexTransparentButton
{
anchors.left: parent.left
text: qsTr("Change assets limit")
- topPadding: 5
- bottomPadding: 5
Layout.preferredHeight: 35
onClicked:
{
@@ -250,8 +260,6 @@ MultipageModal
{
anchors.right: parent.right
text: qsTr("Add a custom asset")
- topPadding: 5
- bottomPadding: 5
Layout.preferredHeight: 35
iconSource: Qaterial.Icons.plus
onClicked: {
@@ -261,16 +269,22 @@ MultipageModal
}
}
- footer:
- [
- DefaultButton
+ // Footer
+ RowLayout
+ {
+ id: _footer
+ Layout.topMargin: Style.rowSpacing
+ spacing: Style.buttonSpacing
+ height: 40
+
+ CancelButton
{
Layout.preferredWidth: 199
text: qsTr("Cancel")
radius: 20
onClicked: root.close()
- },
- Item { Layout.fillWidth: true },
+ }
+ Item { Layout.fillWidth: true }
DexGradientAppButton
{
@@ -288,6 +302,6 @@ MultipageModal
root.close()
}
}
- ]
+ }
}
}
diff --git a/atomic_defi_design/Dex/Wallet/Main.qml b/atomic_defi_design/Dex/Wallet/Main.qml
index f046780849..7ecf682d91 100644
--- a/atomic_defi_design/Dex/Wallet/Main.qml
+++ b/atomic_defi_design/Dex/Wallet/Main.qml
@@ -42,6 +42,7 @@ Item
Layout.fillHeight: true
Layout.fillWidth: true
+ // TODO: Move this section for the coin summary bar at the top to its own component
ColumnLayout
{
id: wallet_layout
@@ -112,7 +113,7 @@ Item
verticalAlignment: Text.AlignVCenter
text: activation_progress + "%"
font: DexTypo.head8
- color: DexTheme.greenColor
+ color: DexTheme.okColor
}
}
@@ -166,77 +167,6 @@ Item
Item { Layout.fillWidth: true }
- ColumnLayout
- {
- visible: false //current_ticker_infos.segwit_supported
- Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
- spacing: 2
-
- DefaultText
- {
- text_value: qsTr("Segwit")
- Layout.alignment: Qt.AlignLeft
- font.pixelSize: headerTitleFont
- color: headerTitleColor
- }
-
- DefaultSwitch
- {
- id: segwitSwitch
- Layout.alignment: Qt.AlignVCenter
-
- onToggled:
- {
- if(parseFloat(current_ticker_infos.balance) > 0) {
- Qaterial.DialogManager.showDialog({
- title: qsTr("Confirmation"),
- text: qsTr("Do you want to send your %1 funds to %2 wallet first?").arg(current_ticker_infos.is_segwit_on ? "segwit" : "legacy").arg(!current_ticker_infos.is_segwit_on ? "segwit" : "legacy"),
- standardButtons: Dialog.Yes | Dialog.No,
- onAccepted: function() {
- var address = API.app.wallet_pg.switch_address_mode(!current_ticker_infos.is_segwit_on);
- if (address != current_ticker_infos.address && address != "") {
- send_modal.open()
- send_modal.item.address_field.text = address
- send_modal.item.max_mount.checked = true
- send_modal.item.segwit = true
- send_modal.item.segwit_callback = function () {
- if(send_modal.item.segwit_success) {
- API.app.wallet_pg.post_switch_address_mode(!current_ticker_infos.is_segwit_on)
- Qaterial.DialogManager.showDialog({
- title: qsTr("Success"),
- text: qsTr("Your transaction is send, may take some time to arrive")
- })
- } else {
- segwitSwitch.checked = current_ticker_infos.is_segwit_on
- }
- }
- }
- },
-
- onRejected: function () {
- app.segwit_on = true
- API.app.wallet_pg.post_switch_address_mode(!current_ticker_infos.is_segwit_on)
- }
- })
-
- } else {
- app.segwit_on = true
- API.app.wallet_pg.post_switch_address_mode(!current_ticker_infos.is_segwit_on)
- }
- }
- }
- }
-
- Connections
- {
- target: API.app.wallet_pg
- function onTickerInfosChanged() {
- if (segwitSwitch.checked != current_ticker_infos.is_segwit_on) {
- segwitSwitch.checked = current_ticker_infos.is_segwit_on
- }
- }
- }
-
// Price
ColumnLayout
{
@@ -309,7 +239,7 @@ Item
DefaultText
{
id: portfolio_title
- text_value: qsTr("Porfolio")
+ text_value: qsTr("Portfolio")
Layout.alignment: Qt.AlignHCenter
color: headerTitleColor
font.pixelSize: headerTitleFont
@@ -432,11 +362,11 @@ Item
enabled: General.canSend(api_wallet_page.ticker, activation_progress)
anchors.fill: parent
radius: 18
-
label.text: qsTr("Send")
label.font.pixelSize: 16
content.anchors.left: content.parent.left
content.anchors.leftMargin: enabled ? 23 : 48
+ content.anchors.rightMargin: 23
onClicked:
{
@@ -444,13 +374,19 @@ Item
else enable_fees_coin_modal.open()
}
- TransactionArrow
+ Row
{
- id: arrow_send
- amISender: true
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: 19
+ anchors.rightMargin: 23
+
+ Qaterial.Icon
+ {
+ icon: Qaterial.Icons.arrowTopRight
+ size: 24
+ anchors.verticalCenter: parent.verticalCenter
+ color: Dex.CurrentTheme.warningColor
+ }
}
}
@@ -544,12 +480,19 @@ Item
onClicked: receive_modal.open()
- TransactionArrow
+ Row
{
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: 19
- amISender: false
+ anchors.rightMargin: 23
+
+ Qaterial.Icon
+ {
+ icon: Qaterial.Icons.arrowBottomRight
+ size: 24
+ anchors.verticalCenter: parent.verticalCenter
+ color: Dex.CurrentTheme.okColor
+ }
}
}
@@ -592,21 +535,17 @@ Item
{
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: arrow_send.anchors.rightMargin
- spacing: 2
-
- TransactionArrow
- {
- amISender: true
- anchors.verticalCenter: parent.verticalCenter
- }
+ anchors.rightMargin: 23
- TransactionArrow
+ Qaterial.Icon
{
- amISender: false
+ icon: Qaterial.Icons.swapHorizontal
+ size: 28
anchors.verticalCenter: parent.verticalCenter
+ color: Dex.CurrentTheme.swapIconColor
}
}
+
}
// Swap button error icon
@@ -656,7 +595,7 @@ Item
{
Layout.preferredWidth: 180
Layout.preferredHeight: 48
- visible: current_ticker_infos.is_smartchain_test_coin
+ visible: current_ticker_infos.is_faucet_coin
DefaultButton
{
@@ -675,23 +614,14 @@ Item
{
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: arrow_send.anchors.rightMargin
+ anchors.rightMargin: 23
Qaterial.Icon
{
icon: Qaterial.Icons.water
size: 24
- anchors.right: parent.right
- anchors.leftMargin: iconSize / 2
- anchors.rightMargin: iconSize / 2
anchors.verticalCenter: parent.verticalCenter
color: "cyan"
-
- DefaultTooltip
- {
- visible: alertArea.containsMouse && tooltipText != ""
- text: ""
- }
}
}
}
@@ -970,13 +900,15 @@ Item
GradientStop { position: 1; color: Dex.CurrentTheme.backgroundColor }
}
}
-
+
+ // Transactions history table
Transactions
{
width: parent.width
height: parent.height
}
+ // Placeholder if no tx history available, or being fetched.
ColumnLayout
{
visible: current_ticker_infos.tx_state !== "InProgress" && transactions_mdl.length === 0
@@ -1011,6 +943,7 @@ Item
visible: api_wallet_page.tx_fetching_busy
}
+ // When no tx history available, or being fetched, show a button to open the explorer.
DefaultText
{
id: explorerLink
diff --git a/atomic_defi_design/Dex/Wallet/ReceiveModal.qml b/atomic_defi_design/Dex/Wallet/ReceiveModal.qml
index cb91aded2d..bf28c7b6c6 100644
--- a/atomic_defi_design/Dex/Wallet/ReceiveModal.qml
+++ b/atomic_defi_design/Dex/Wallet/ReceiveModal.qml
@@ -55,7 +55,7 @@ MultipageModal
footer:
[
Item { Layout.fillWidth: true },
- DefaultButton
+ CancelButton
{
text: qsTr("Close")
Layout.fillWidth: true
diff --git a/atomic_defi_design/Dex/Wallet/SendModal.qml b/atomic_defi_design/Dex/Wallet/SendModal.qml
index e48aefb716..e21a31f106 100644
--- a/atomic_defi_design/Dex/Wallet/SendModal.qml
+++ b/atomic_defi_design/Dex/Wallet/SendModal.qml
@@ -18,14 +18,13 @@ MultipageModal
property bool needFix: false
property bool errorView: false
- property bool segwit: false
- property bool segwit_success: false
- property var segwit_callback
property var address_data
readonly property var default_send_result: ({ has_error: false, error_message: "",
withdraw_answer: {
- total_amount_fiat: "", tx_hex: "", date: "", "fee_details": { total_fee: "" }
+ total_amount_fiat: "", tx_hex: "",
+ memo: "", date: "",
+ "fee_details": { total_fee: "" }
},
explorer_url: "", max: false })
property var send_result: default_send_result
@@ -48,9 +47,8 @@ MultipageModal
function getCryptoAmount() { return _preparePage.cryptoSendMode ? input_amount.text : equivalentAmount.value }
- function prepareSendCoin(address, amount, with_fees, fees_amount, is_special_token, gas_limit, gas_price) {
+ function prepareSendCoin(address, amount, with_fees, fees_amount, is_special_token, gas_limit, gas_price, memo="") {
let max = parseFloat(current_ticker_infos.balance) === parseFloat(amount)
-
// Save for later check
async_param_max = max
@@ -62,7 +60,7 @@ MultipageModal
gas_price,
gas_limit: gas_limit === "" ? 0 : parseInt(gas_limit)
}
- api_wallet_page.send(address, amount, max, with_fees, fees_info)
+ api_wallet_page.send(address, amount, max, with_fees, fees_info, memo)
}
function sendCoin() {
@@ -82,6 +80,7 @@ MultipageModal
send_result = default_send_result
input_address.text = ""
input_amount.text = ""
+ input_memo.text = ""
input_custom_fees.text = ""
input_custom_fees_gas.text = ""
input_custom_fees_gas_price.text = ""
@@ -154,11 +153,6 @@ MultipageModal
onClosed:
{
- if (segwit)
- {
- segwit_callback()
- }
- segwit = false
reset()
}
@@ -260,7 +254,7 @@ MultipageModal
DefaultRectangle
{
- enabled: !root.segwit && !root.is_send_busy
+ enabled: !root.is_send_busy
Layout.preferredWidth: 500
Layout.preferredHeight: 44
@@ -342,7 +336,7 @@ MultipageModal
Layout.preferredWidth: 320
wrapMode: Label.Wrap
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: qsTr("The address has to be mixed case.")
}
@@ -560,6 +554,31 @@ MultipageModal
}
}
+ // Memo
+ DefaultRectangle
+ {
+ visible: General.isCoinWithMemo(api_wallet_page.ticker)
+ enabled: !root.is_send_busy
+
+ Layout.preferredWidth: 500
+ Layout.preferredHeight: 44
+ Layout.alignment: Qt.AlignHCenter
+
+ color: input_memo.background.color
+ radius: input_memo.background.radius
+
+ DefaultTextField
+ {
+ id: input_memo
+
+ width: 470
+ height: 44
+ placeholderText: qsTr("Enter memo")
+ forceFocus: true
+ font: General.isZhtlc(api_wallet_page.ticker) ? DexTypo.body3 : DexTypo.body2
+ }
+ }
+
ColumnLayout
{
visible: General.getCustomFeeType(current_ticker_infos)
@@ -589,7 +608,7 @@ MultipageModal
font.pixelSize: 14
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: DefaultText.AlignHCenter
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
}
DefaultText
@@ -598,7 +617,7 @@ MultipageModal
font.pixelSize: 14
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: DefaultText.AlignHCenter
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: qsTr("Only use custom fees if you know what you are doing! ")
}
@@ -608,7 +627,7 @@ MultipageModal
font.pixelSize: 14
Layout.alignment: Qt.AlignHCenter
horizontalAlignment: DefaultText.AlignHCenter
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: qsTr("Only use custom fees if you know what you are doing! ") + General.cex_icon
DefaultInfoTrigger { triggerModal: gas_info_modal }
}
@@ -699,7 +718,7 @@ MultipageModal
wrapMode: Label.Wrap
visible: !fee_error.visible && !hasFunds()
- color: Dex.CurrentTheme.noColor
+ color: Dex.CurrentTheme.warningColor
text_value: qsTr("Not enough funds.") + "\n"
+ qsTr("You have %1", "AMT TICKER").arg(General.formatCrypto("", API.app.get_balance(api_wallet_page.ticker), api_wallet_page.ticker))
@@ -733,7 +752,7 @@ MultipageModal
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: 20
- DefaultButton
+ CancelButton
{
text: qsTr("Cancel")
@@ -758,8 +777,16 @@ MultipageModal
text: qsTr("Prepare")
- onClicked: prepareSendCoin(input_address.text, getCryptoAmount(), custom_fees_switch.checked, input_custom_fees.text,
- General.isSpecialToken(current_ticker_infos), input_custom_fees_gas.text, input_custom_fees_gas_price.text)
+ onClicked: prepareSendCoin(
+ input_address.text,
+ getCryptoAmount(),
+ custom_fees_switch.checked,
+ input_custom_fees.text,
+ General.isSpecialToken(current_ticker_infos),
+ input_custom_fees_gas.text,
+ input_custom_fees_gas_price.text,
+ input_memo.text
+ )
}
}
@@ -830,6 +857,14 @@ MultipageModal
}
}
+ // Memo
+ TextEditWithTitle
+ {
+ title: qsTr("Memo")
+ visible: input_memo.text != ""
+ text: input_memo.text
+ }
+
// Fees
TextEditWithTitle
{
@@ -906,7 +941,6 @@ MultipageModal
function onClose()
{
- if (root.segwit) root.segwit_success = true
root.close()
}
}
diff --git a/atomic_defi_design/Dex/Wallet/SendResult.qml b/atomic_defi_design/Dex/Wallet/SendResult.qml
index 41b06be0cb..8ac93c37a5 100644
--- a/atomic_defi_design/Dex/Wallet/SendResult.qml
+++ b/atomic_defi_design/Dex/Wallet/SendResult.qml
@@ -76,6 +76,18 @@ MultipageModalContent
}
}
+ // Memo
+ TextEditWithTitle
+ {
+ title: qsTr("Memo")
+ visible: result.withdraw_answer.memo
+
+ text:
+ {
+ result.withdraw_answer.memo
+ }
+ }
+
// Fees
TextEditWithTitle
{
@@ -105,7 +117,7 @@ MultipageModalContent
// Buttons
footer:
[
- DexButton
+ CancelButton
{
Layout.fillWidth: true
text: qsTr("Close")
diff --git a/atomic_defi_design/Dex/Wallet/Sidebar.qml b/atomic_defi_design/Dex/Wallet/Sidebar.qml
index 4df9424272..0539e74499 100644
--- a/atomic_defi_design/Dex/Wallet/Sidebar.qml
+++ b/atomic_defi_design/Dex/Wallet/Sidebar.qml
@@ -6,7 +6,7 @@ import QtGraphicalEffects 1.0
import Qaterial 1.0 as Qaterial
import "../Components"
-import "../Constants" as Constants
+import "../Constants"
import App 1.0
import Dex.Themes 1.0 as Dex
import Dex.Components 1.0 as Dex
@@ -28,10 +28,16 @@ Item
DefaultRectangle
{
id: background
- anchors.right: parent.right
+ radius: 0
width: parent.width
-
height: parent.height
+ anchors.right: parent.right
+ anchors.rightMargin : - border.width
+ anchors.topMargin : - border.width
+ anchors.bottomMargin: - border.width
+ anchors.leftMargin: - border.width
+ border.width: 0
+ color: 'transparent'
// Panel contents
Item
@@ -44,11 +50,11 @@ Item
ColumnLayout
{
anchors.fill: parent
- anchors.topMargin: 30
- anchors.bottomMargin: 30
+ anchors.topMargin: 20
+ anchors.bottomMargin: 10
anchors.leftMargin: 10
- anchors.rightMargin: 20
- spacing: 20
+ anchors.rightMargin: 10
+ spacing: 10
// Searchbar
SearchField
@@ -57,7 +63,8 @@ Item
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: 150
- Layout.preferredHeight: 38
+ Layout.fillWidth: true
+ Layout.preferredHeight: 36
textField.placeholderText: qsTr("Search")
forceFocus: true
@@ -77,69 +84,14 @@ Item
id: list
height: list_bg.height
model: portfolio_coins
- topMargin: 5
- bottomMargin: 5
scrollbar_visible: false
reuseItems: true
delegate: SidebarItemDelegate { }
- Dex.Rectangle
- {
- anchors.bottom: parent.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width + 4
- height: 30
- radius: 8
- opacity: .5
- visible: list.position < (.98 - list.scrollVert.visualSize) ? true : false
- Qaterial.Icon
- {
- anchors.centerIn: parent
- color: Dex.CurrentTheme.foregroundColor
- icon: Qaterial.Icons.arrowDownCircleOutline
- }
- }
-
- Dex.Rectangle
- {
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width + 4
- height: 30
- radius: 8
- opacity: .5
- visible: list.position > 0 ? true : false
- Qaterial.Icon
- {
- anchors.centerIn: parent
- color: Dex.CurrentTheme.foregroundColor
- icon: Qaterial.Icons.arrowUpCircleOutline
- }
- }
}
}
-
- DexAppButton {
- id: add_coin_button
- onClicked: enable_coin_modal.open()
- Layout.alignment: Qt.AlignHCenter
- Layout.preferredWidth: 140
- radius: 18
- spacing: 2
- font: Qt.font({
- pixelSize: 9 * DexTypo.fontDensity,
- letterSpacing: 1.25,
- capitalization: Font.AllUppercase,
- family: DexTypo.fontFamily,
- weight: Font.Normal
- })
- text: qsTr("Add asset")
- iconSource: Qaterial.Icons.plus
- leftPadding: 3
- rightPadding: 3
-
- }
}
}
}
diff --git a/atomic_defi_design/Dex/Wallet/SidebarItemDelegate.qml b/atomic_defi_design/Dex/Wallet/SidebarItemDelegate.qml
index 8d3a1ad757..a4551cd784 100644
--- a/atomic_defi_design/Dex/Wallet/SidebarItemDelegate.qml
+++ b/atomic_defi_design/Dex/Wallet/SidebarItemDelegate.qml
@@ -62,7 +62,7 @@ GradientRectangle
anchors.centerIn: parent
anchors.fill: parent
radius: 15
- enabled: Dex.General.isZhtlc(ticker) ? activation_progress != 100 : false
+ enabled: Dex.General.isZhtlc(ticker) ? activation_progress < 100 : false
visible: enabled
opacity: .9
color: Dex.DexTheme.backgroundColor
@@ -72,13 +72,13 @@ GradientRectangle
{
anchors.centerIn: parent
anchors.fill: parent
- enabled: Dex.General.isZhtlc(ticker) ? activation_progress != 100 : false
+ enabled: Dex.General.isZhtlc(ticker) ? activation_progress < 100 : false
visible: enabled
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: activation_progress + "%"
font: Dex.DexTypo.head8
- color: Dex.DexTheme.greenColor
+ color: Dex.DexTheme.okColor
}
}
diff --git a/atomic_defi_design/Dex/Wallet/TransactionDetailsModal.qml b/atomic_defi_design/Dex/Wallet/TransactionDetailsModal.qml
index 25380f302a..ab69b7cba4 100644
--- a/atomic_defi_design/Dex/Wallet/TransactionDetailsModal.qml
+++ b/atomic_defi_design/Dex/Wallet/TransactionDetailsModal.qml
@@ -18,6 +18,7 @@ MultipageModal
function reset() { }
property var details
+ property bool is_spam: !details ? false : details.amount == 0
onClosed:
{
@@ -29,6 +30,30 @@ MultipageModal
{
titleText: qsTr("Transaction Details")
+ // Warning for spam/poison transactions
+ DefaultText
+ {
+ id: warning_text
+ visible: is_spam
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ wrapMode: Label.Wrap
+ color: Style.colorOrange
+ text_value: qsTr("This transaction has been identified as a potential address poisoning attack.")
+ }
+
+ // Warning for spam/poison transactions
+ DefaultText
+ {
+ id: warning_text2
+ visible: is_spam
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ wrapMode: Label.Wrap
+ color: Style.colorOrange
+ text_value: qsTr("Please see the Support FAQ for more information.")
+ }
+
// Transaction Hash
TitleText
{
@@ -46,7 +71,7 @@ MultipageModal
text_box_width: 600
text_value: !details ? "" : details.tx_hash
linkURL: !details ? "" :General.getTxExplorerURL(api_wallet_page.ticker, details.tx_hash, false)
- onCopyNotificationTitle: qsTr("%1 txid", "TICKER").arg(api_wallet_page.ticker)
+ onCopyNotificationTitle: qsTr("%1 txid", "TICKER").arg(api_wallet_page.ticker)
onCopyNotificationMsg: qsTr("copied to clipboard.")
privacy: true
}
@@ -56,7 +81,7 @@ MultipageModal
{
title: qsTr("Amount")
text: !details ? "" : General.formatCrypto(!details.am_i_sender, details.amount, api_wallet_page.ticker, details.amount_fiat, API.app.settings_pg.current_currency)
- value_color: !details ? "white" : details.am_i_sender ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ value_color: !details ? "white" : details.am_i_sender ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
privacy: true
label.font.pixelSize: 13
}
@@ -66,7 +91,7 @@ MultipageModal
{
title: qsTr("Fees")
text: !details ? "" : General.formatCrypto(parseFloat(details.fees) < 0, Math.abs(parseFloat(details.fees)), current_ticker_infos.fee_ticker, details.fees_amount_fiat, API.app.settings_pg.current_currency)
- value_color: !details ? "white" : parseFloat(details.fees) > 0 ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ value_color: !details ? "white" : parseFloat(details.fees) > 0 ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
privacy: true
label.font.pixelSize: 13
}
@@ -78,7 +103,7 @@ MultipageModal
model: !details ? [] :
details.from
linkURL: !details ? "" :General.getAddressExplorerURL(api_wallet_page.ticker, details.from)
- onCopyNotificationTitle: qsTr("From address")
+ onCopyNotificationTitle: is_spam ? "" : qsTr("From address")
}
AddressList
@@ -92,7 +117,7 @@ MultipageModal
: details.to.length > 1
? General.getAddressExplorerURL(api_wallet_page.ticker, General.arrayExclude(details.to, details.from[0]))
: General.getAddressExplorerURL(api_wallet_page.ticker, details.to)
- onCopyNotificationTitle: qsTr("To address")
+ onCopyNotificationTitle: is_spam ? "" : qsTr("To address")
}
// Date
@@ -147,7 +172,7 @@ MultipageModal
// Buttons
footer:
[
- DefaultButton
+ CancelButton
{
Layout.fillWidth: true
text: qsTr("Close")
diff --git a/atomic_defi_design/Dex/Wallet/Transactions.qml b/atomic_defi_design/Dex/Wallet/Transactions.qml
index 30e94fa2b8..c86c58ef11 100644
--- a/atomic_defi_design/Dex/Wallet/Transactions.qml
+++ b/atomic_defi_design/Dex/Wallet/Transactions.qml
@@ -1,6 +1,7 @@
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
+import Qaterial 1.0 as Qaterial
import "../Components"
import "../Constants"
@@ -21,16 +22,17 @@ Dex.ListView
model: transactions_mdl.proxy_mdl
- // Row
+ // Transaction Row
delegate: Dex.Rectangle
{
id: rectangle
+ property bool is_spam: amount == 0
width: list.width
height: row_height
radius: 0
border.width: 0
colorAnimation: false
- color: mouse_area.containsMouse ? Dex.CurrentTheme.buttonColorHovered : 'transparent'
+ color: mouse_area.containsMouse ? Dex.CurrentTheme.listItemHoveredBackground : 'transparent'
Dex.MouseArea
{
@@ -63,10 +65,13 @@ Dex.ListView
visible: transaction_note !== ""
}
- TransactionArrow
+ // When a spam / poison tx, we show a warning icon
+ Qaterial.Icon
{
id: received_icon
- amISender: am_i_sender ? true : false
+ size: 16
+ icon: is_spam ? Qaterial.Icons.radioactive : am_i_sender ? Qaterial.Icons.arrowTopRight : Qaterial.Icons.arrowBottomRight
+ color: is_spam ? Style.colorOrange : am_i_sender ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
}
// Description
@@ -74,8 +79,9 @@ Dex.ListView
{
id: description
horizontalAlignment: Qt.AlignLeft
- text_value: am_i_sender ? qsTr("Sent") : qsTr("Received")
+ text_value: is_spam ? qsTr("Poison") : am_i_sender ? qsTr("Sent") : qsTr("Received")
font.pixelSize: Style.textSizeSmall3
+ color: is_spam ? Style.colorOrange : am_i_sender ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
}
}
@@ -93,7 +99,7 @@ Dex.ListView
}
font.pixelSize: description.font.pixelSize
- color: am_i_sender ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.okColor
+ color: is_spam ? Style.colorWhite7 : am_i_sender ? Dex.CurrentTheme.warningColor : Dex.CurrentTheme.okColor
privacy: true
}
@@ -104,8 +110,9 @@ Dex.ListView
horizontalAlignment: Text.AlignRight
text_value: General.formatFiat(!am_i_sender, amount_fiat, API.app.settings_pg.current_currency)
font.pixelSize: description.font.pixelSize
- color: crypto_amount.color
+ color: is_spam ? Style.colorWhite7 : crypto_amount.color
privacy: true
+
}
// Fee
@@ -117,6 +124,7 @@ Dex.ListView
current_ticker_infos.fee_ticker + " " + qsTr("fees"))
font.pixelSize: description.font.pixelSize
privacy: true
+ color: is_spam ? Style.colorWhite7 : crypto_amount.color
}
// Date
@@ -127,6 +135,7 @@ Dex.ListView
font.pixelSize: description.font.pixelSize
text_value: !date || unconfirmed ? qsTr("Unconfirmed") : date
privacy: true
+ color: is_spam ? Style.colorWhite7 : crypto_amount.color
}
}
}
diff --git a/atomic_defi_design/Dex/main.qml b/atomic_defi_design/Dex/main.qml
index 546f406a79..81bea29475 100644
--- a/atomic_defi_design/Dex/main.qml
+++ b/atomic_defi_design/Dex/main.qml
@@ -158,6 +158,7 @@ DexWindow
{
width: _row.width
height: 30
+ clip: true
Behavior on x
{
NumberAnimation
@@ -354,10 +355,14 @@ DexWindow
iconSize: 24
icon:
{
- if (Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Light)
- return Qaterial.Icons.moonWaningCrescent;
- else if (Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Dark)
- return Qaterial.Icons.whiteBalanceSunny;
+ if (Dex.CurrentTheme.getColorMode() !== Dex.CurrentTheme.ColorMode.None)
+ {
+ if (Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Light)
+ return Qaterial.Icons.moonWaningCrescent;
+ else if (Dex.CurrentTheme.getColorMode() === Dex.CurrentTheme.ColorMode.Dark)
+ return Qaterial.Icons.whiteBalanceSunny;
+ }
+ return Qaterial.Icons.moonWaningCrescent;
}
onClicked: {
diff --git a/atomic_defi_design/assets/images/arrow-bottom-right.svg b/atomic_defi_design/assets/images/arrow-bottom-right.svg
new file mode 100644
index 0000000000..c667cc0ea1
--- /dev/null
+++ b/atomic_defi_design/assets/images/arrow-bottom-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/atomic_defi_design/assets/images/arrow-top-right.svg b/atomic_defi_design/assets/images/arrow-top-right.svg
new file mode 100644
index 0000000000..2a4d5229e1
--- /dev/null
+++ b/atomic_defi_design/assets/images/arrow-top-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/atomic_defi_design/assets/images/bank-plus.svg b/atomic_defi_design/assets/images/bank-plus.svg
new file mode 100644
index 0000000000..a7f8e8dbbf
--- /dev/null
+++ b/atomic_defi_design/assets/images/bank-plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/atomic_defi_design/assets/images/swap-horizontal.svg b/atomic_defi_design/assets/images/swap-horizontal.svg
new file mode 100644
index 0000000000..6b4d56ecb7
--- /dev/null
+++ b/atomic_defi_design/assets/images/swap-horizontal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/atomic_defi_design/assets/images/warning.svg b/atomic_defi_design/assets/images/warning.svg
new file mode 100644
index 0000000000..2bfc1aa8b6
--- /dev/null
+++ b/atomic_defi_design/assets/images/warning.svg
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/atomic_defi_design/assets/languages/atomic_defi_de.ts b/atomic_defi_design/assets/languages/atomic_defi_de.ts
index 06dad49822..dbf66353bb 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_de.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_de.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
Standard-Netzwerkadresse verwenden
-
+
Label
Bezeichnung
-
+
This key already exists.
Dieser Schlüssel existiert bereits.
-
+
Address
Adresse
-
-
+
+
Cancel
Abbrechen
-
+
Convert
Umwandeln
-
+
Edit
Bearbeiten
-
+
Add
Hinzufügen
-
+
You need to enable %1 before adding this kind of address.
Sie müssen %1 aktivieren, bevor Sie diese Art von Adresse hinzufügen.
-
+
Enable
Aktivieren
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
Ergebnis der Rückerstattung der Geldmittel
@@ -307,7 +307,7 @@
-
+
Price provider is: %1
Preisanbieter ist: %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
Einstellungen
-
+
Support
Support
-
+
Privacy
Datenschutz
-
+
Disable Privacy?
Datenschutz deaktivieren?
-
+
Enter wallet password to confirm
Geben Sie zur Bestätigung das Kennwort der Brieftasche ein
-
+
Type password
Kennwort eingeben
-
+
Confirm
Bestätigen
-
+
Cancel
Abbrechen
-
+
Privacy status
Status Datenschutz
-
+
Privacy mode disabled successfully
Der Datenschutzmodus wurde erfolgreich deaktiviert
-
-
+
+
Ok
Ok
-
+
Wrong password!
Falsches Kennwort!
-
+
wallet password is incorrect
Kennwort der Brieftasche ist falsch
@@ -495,21 +500,34 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
- Mit dem Symbol ⓘ gekennzeichnete Marktdaten (Kurse, Charts etc.) stammen aus Drittquellen.<br><br>Die Daten stammen von <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> und <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle unterstützte Paare:</b><br>%1<br><br><b>Letzte Referenz (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
+ Mit dem Symbol ⓘ gekennzeichnete Marktdaten (Kurse, Charts etc.) stammen aus Drittquellen.<br><br>Die Daten stammen von <a href="https://coingecko.com">CoinGecko</a>.
Chart
-
+
Loading market data
Laden von Marktdaten
-
- There is no chart data for this pair yet
- Für dieses Paar liegen noch keine Chartdaten vor
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
+ Schließen
@@ -733,83 +751,83 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
ConfirmTradeModal
-
+
Confirm Exchange Details
Bestätigen Sie die Austausch-Details
-
+
Trade price is more than 50% different to CEX! Confirm?
Der Handelspreis unterscheidet sich um mehr als 50% vom CEX-Preis. Bestätigen?
-
+
This swap request can not be undone and is a final event!
Diese Tauschanfrage kann nicht rückgängig gemacht werden und ist ein endgültiges Ereignis!
-
+
This transaction can take up to 60 mins - DO NOT close this application!
Diese Transaktion kann bis zu 60 Minuten dauern - schließen Sie diese Anwendung NICHT!
-
+
Loading fees...
Lade Gebühren...
-
+
<b>Total %1 fees:</b>
<b>Gesamt %1 Gebühren:</b>
-
+
Security configuration
Sicherheitskonfiguration
-
+
%1 confirmations for incoming %2 transactions
%1 Bestätigungen für eingehende %2 Transaktionen
-
+
Read more about dPoW
Lesen Sie mehr über dPoW
-
+
Use custom protection settings for incoming %1 transactions
TICKER
Benutzerdefinierte Schutzeinstellungen für eingehende %1 Transaktionen verwenden
-
+
Enable Komodo dPoW security
Komodo dPoW-Sicherheit aktivieren
-
+
dPoW protected
dPoW-gesichert
-
+
Required Confirmations
Erforderliche Bestätigungen
-
+
Warning, this atomic swap is not dPoW protected!
Achtung, dieser Atomic Swap ist nicht dPoW-geschützt!
-
+
Cancel
Abbrechen
-
+
Confirm
Bestätigen
@@ -825,182 +843,182 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
Die aktuelle Anzahl aktivierter Coins stimmt nicht mit Ihrer Konfigurationsvorgabe überein. Die Konfiguration der Assets wird zurückgesetzt.
-
+
Matching
Zusammenführung
-
+
Order Matching
Order wird zusammengeführt
-
+
Matched
Zusammengeführt
-
+
Order Matched
Order wurde zusammengeführt
-
+
Ongoing
Laufend
-
+
Swap Ongoing
Austausch läuft
-
+
Successful
Erfolgreich
-
+
Swap Successful
Tausch erfolgreich
-
+
Refunding
Rückzahlung
-
+
Failed
Fehlgeschlagen
-
+
Swap Failed
Tausch fehlgeschlagen
-
+
Unknown
Unbekannt
-
+
Unknown State
Unbekannter Status
-
+
Started
Gestartet
-
+
Negotiated
Ausgehandelt
-
+
Taker fee sent
Taker-Gebühr gesendet
-
+
Maker payment received
Maker-Zahlung erhalten
-
+
Maker payment wait confirm started
Warten auf die Zahlungsbestätigung des Makers gestartet
-
+
Maker payment validated and confirmed
Maker-Zahlung validiert und bestätigt
-
+
Taker payment sent
Taker-Zahlung gesendet
-
+
Taker payment spent
Taker-Zahlung ausgegeben
-
+
Maker payment spent
Maker-Zahlung ausgegeben
-
+
Finished
Fertig
-
+
Start failed
Start fehlgeschlagen
-
+
Negotiate failed
Verhandeln fehlgeschlagen
-
+
Taker fee validate failed
Validierung der Abnehmergebühr fehlgeschlagen
-
+
Maker payment transaction failed
Maker-Zahlungstransaktion fehlgeschlagen
-
+
Maker payment Data send failed
Fehler beim Senden der Maker-Zahlungsdaten
-
+
Maker payment wait confirm failed
Warten auf die Zahlungsbestätigung des Makers fehlgeschlagen
-
+
Taker payment validate failed
Validierung der Taker-Zahlung fehlgeschlagen
-
+
Taker payment wait confirm failed
Warten auf die Zahlungsbestätigung des Takers fehlgeschlagen
-
+
Taker payment spend failed
Zahlungsausgabe des Takers fehlgeschlagen
-
+
Maker payment wait refund started
Countdown für die Rückerstattung der Maker-Zahlung hat begonnen
-
+
Maker payment refunded
Maker-Zahlung zurückerstattet
-
+
Maker payment refund failed
Rückerstattung der Maker-Zahlung fehlgeschlagen
@@ -1084,7 +1102,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
DexAppPasswordField
-
+
Type password
Kennwort eingeben
@@ -1385,7 +1403,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
General
-
+
%n day(s)
%n Tag
@@ -1393,7 +1411,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
%nd
day
@@ -1402,7 +1420,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
%nh
hours
@@ -1411,7 +1429,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
%nm
minutes
@@ -1420,7 +1438,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
%ns
seconds
@@ -1429,7 +1447,7 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
%nms
milliseconds
@@ -1438,92 +1456,117 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456
-
+
-
-
-
+
<b>Taker tx fee:</b>
<b>Taker tx Gebühren:</b>
-
+
<b>Dex tx fee:</b>
<b>Dex tx Gebühren:</b>
-
+
<b>Dex fee:</b>
<b>Dex Gebühren:</b>
-
+
<b>Maker tx fee:</b>
<b>Maker tx Gebühren:</b>
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+ Minimum: %1
+
+
+
+ Enter an amount
+ Betrag eingeben
+
+
+
Trading Fee
Handelsgebühr
-
+
Minimum Trading Amount
Mindesthandelsbetrag
-
+
Wallet %1 already exists
WALLETNAME
Brieftasche %1 existiert bereits
-
+
%1 balance is lower than the fees amount: %2 %3
Das %1 Guthaben ist niedriger als der Gebührenbetrag: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
Handelbares %1 Guthaben (nach Gebühren) ist niedriger als der Mindesthandelsbetrag
-
+
Please fill the price field
Bitte füllen Sie das Preisfeld aus
-
+
Please fill the volume field
-
-
+
+
Please wait for %1 to fully activate
-
-
+
+
%1 volume is lower than minimum trade amount
%1 Volumen ist niedriger als der minimale Handelsbetrag
-
-
+
+
%1 needs to be enabled in order to use %2
%1 muss aktiviert werden, um %2 verwenden zu können
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
Das %1 Guthaben muss finanziert werden, ein Guthaben größer Null ist erforderlich, um das Benzin von %2 Transaktionen zu bezahlen
-
+
Unknown Error
Unbekannter Fehler
@@ -1589,89 +1632,94 @@ Beispiel: Kennwort = 1234 Suffix=56 Eingabe beim Login=123456Name der Brieftasche
-
+
Enter seed
Geben Sie den Seed ein
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
Ihr Seed ist nicht BIP39-konform. Versuchen Sie es erneut oder wählen Sie "benutzerdefinierten Seed erlauben" um fortzufahren
-
-
+
+
i understand
Ich verstehe
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
Ok
-
+
Allow custom seed
Benutzerdefinierten Seed zulassen
-
+
<strong>Allow custom seed</strong>
<strong>Benutzerdefinierten Seed zulassen</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
Benutzerdefinierte Seed-Phrasen sind möglicherweise weniger sicher und leichter zu knacken als eine generierte BIP39-konforme Seed-Phrase oder ein privater Schlüssel (WIF).<br><br>Um zu bestätigen, dass Sie das Risiko verstehen und wissen, was Sie tun, geben Sie bitte <strong>'Ich verstehe'</strong> in das Feld unten ein.
-
+
I understand
Ich verstehe
-
+
Next
Weiter
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Geben Sie zur Bestätigung dasselbe Kennwort ein
-
+
Continue
Fortsetzen
@@ -1715,10 +1763,15 @@ Try again or select 'Allow custom seed' to continue.
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 ist nicht aktiviert - Möchten Sie es aktivieren, um die günstigsten Order von %2 auswählen zu können? <br><a href='#'>Ja</a> - <a href='#no'>Nein</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1759,17 +1812,17 @@ Try again or select 'Allow custom seed' to continue.
Login
-
+
Incorrect Password
Falsches Kennwort
-
+
Log In
Anmelden
-
+
Cancel
Abbrechen
@@ -1812,181 +1865,152 @@ They will be removed from the orderbook until you log in again.
Main
-
- Segwit
- Segwit
-
-
-
- Confirmation
- Bestätigung
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
- Möchten Sie Ihr %1-Guthaben zuerst an die %2-Brieftasche senden?
-
-
-
- Success
- Erfolg
-
-
-
- Your transaction is send, may take some time to arrive
- Ihre Transaktion wird gesendet, es kann einige Zeit dauern, bis sie ankommt
-
-
-
+
Price
Preis
-
+
Change 24hr
24h Veränderung
-
- Porfolio
- Portfolio
-
-
-
+
Contract Address
Vertragsadresse
-
+
Send
Senden
-
+
Enable %1 ?
%1 aktivieren?
-
+
Yes
Ja
-
+
No
Nein
-
+
Receive
Empfangen
-
+
+
Swap
Tausch
-
+
+ Portfolio
+ Portfolio
+
+
+
is wallet only
nur Brieftasche (kein DEX möglich)
-
+
Rewards
Belohnungen
-
+
Faucet
Faucet
-
-
-
+
+
+
Public Key
Öffentlicher Schlüssel
-
+
Copied to Clipboard
In die Zwischenablage kopiert
-
+
Loading market data
Laden von Marktdaten
-
+
There is no chart data for this ticker yet
Für diesen Ticker liegen noch keine Chartdaten vor
-
+
Fetching transactions...
Transaktionen werden abgerufen...
-
+
Please wait, %1 is %2
-
+
% activated...
-
+
No transactions available
Keine Transaktionen verfügbar
-
+
Click to view your address on %1 (%2) block explorer
Klicken Sie hier, um Ihre Adresse im %1 (%2) Block-Explorer anzuzeigen
-
- Trade
- Handeln
-
-
-
+
Trading Information
Handelsinformationen
-
+
Chart
Chart
-
-
+
+
Orders
Order
-
-
+
+
History
Historie
-
+
Place Order
Order platzieren
-
+
Order Selected
Order ausgewählt
-
+
START SWAP
TAUSCH STARTEN
@@ -2040,13 +2064,13 @@ They will be removed from the orderbook until you log in again.
MarketModeSelector
-
+
Sell %1
TICKER
%1 Verkaufen
-
+
Buy %1
TICKER
%1 Kaufen
@@ -2099,17 +2123,17 @@ They will be removed from the orderbook until you log in again.
NewContactPopup
-
+
Contact name
Kontaktname
-
+
This contact name already exists.
Dieser Kontaktname existiert bereits.
-
+
+ ADD
+ HINZUFÜGEN
@@ -2226,67 +2250,72 @@ They will be removed from the orderbook until you log in again.
Wählen sie ein Kennwort
-
+
Important: Back up your seed phrase before proceeding!
Wichtig: Sichern Sie Ihre Seed-Phrase, bevor Sie fortfahren!
-
+
We recommend storing it offline.
Wir empfehlen, sie offline zu speichern.
-
+
Generated Seed
Generierter Seed
-
+
Seed phrase
Seed Phrase
-
+
copied to clipboard
In die Zwischenablage kopiert
-
+
Next
Weiter
-
+
Let's double check your seed phrase
Lassen Sie uns Ihre Seed-Phrase noch einmal überprüfen
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
Ihre Seed-Phrase ist wichtig – deshalb stellen wir gerne sicher, dass sie korrekt ist. Wir stellen Ihnen drei verschiedene Fragen zu Ihrer Seed-Phrase, um sicherzustellen, dass Sie Ihre Wallet jederzeit problemlos wiederherstellen können.
-
+
Enter the
Geben Sie das
-
+
word
Wort ein
-
+
Check
Prüfen
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Geben Sie zur Bestätigung dasselbe Kennwort ein
-
+
Continue
Fortsetzen
@@ -2401,6 +2430,11 @@ They will be removed from the orderbook until you log in again.
Your wallet balance changed
Ihr Guthaben hat sich geändert
+
+
+ Close
+ Schließen
+
%1 Enable status
@@ -2420,49 +2454,49 @@ They will be removed from the orderbook until you log in again.
-
+
Failed to disable %1
TICKER
-
+
Endpoint not reachable
Endpunkt nicht erreichbar
-
+
Could not reach to endpoint
Endpunkt konnte nicht erreicht werden
-
+
Show
Zeigen
-
+
Restart
Neustart
-
+
Quit
Beenden
-
+
Notifications
Benachrichtigungen
-
+
There aren't any notifications
Es gibt keine Benachrichtigungen
-
+
Mark all as read
Alle als gelesen makieren
@@ -2470,97 +2504,92 @@ They will be removed from the orderbook until you log in again.
OrderForm
-
+
Price
Preis
-
+
Reduce 1% relative to CEX market price.
-
+
Use CEX market price.
-
+
Increase 1% relative to CEX market price.
-
- Volume
- Volumen
-
-
-
- Amount to sell
- Zu verkaufender Betrag
+
+ Send
+ Senden
-
- Amount to receive
- Zu erhaltender Betrag
+
+ Receive
+ Empfangen
-
+
Max
Max
-
+
Swap 25% of your tradable balance.
-
+
Swap 50% of your tradable balance.
-
+
Swap 100% of your tradable balance.
-
+
Min Volume
-
+
Min amount to sell
-
+
Min amount to receive
-
+
Minimum accepted trade equals 10% of order volume.
-
+
Minimum accepted trade equals 25% of order volume.
-
+
Minimum accepted trade equals 50% of order volume.
-
+
Min volume:
Mindestvolumen:
-
+
Use custom minimum trade amount
Benutzerdefinierten Mindesthandelsbetrag verwenden
@@ -2584,114 +2613,104 @@ They will be removed from the orderbook until you log in again.
OrderModal
-
- Swap Details
- Tauschdetails
-
-
-
- Order Details
- Orderdetails
-
-
-
+
Order Type
Orderart
-
+
Maker Order
Maker-Order
-
+
Taker Order
Taker-Order
-
+
Refund State
Rückerstattungsstatus
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
Ihr Umtausch ist fehlgeschlagen, aber der automatische Rückerstattungsprozess für Ihre Zahlung hat bereits begonnen. Bitte warten Sie und lassen Sie die Anwendung geöffnet, bis Sie Ihre Zahlung zurückerhalten
-
+
Date
Datum
-
+
Error ID
Fehler-ID
-
-
+
+
Error Log
Fehlerprotokoll
-
+
Close
Schließen
-
+
Cancel Order
Order Abbrechen
-
-
+
+
Swap ID
Swap ID
-
+
Maker Payment Sent Transaction ID
Maker-Zahlung gesendet: Transaktions-ID
-
+
Maker Payment Spent Transaction ID
Maker-Zahlung ausgegeben: Transaktions-ID
-
+
Maker Payment TXID
Maker-Zahlung: TXID
-
+
Taker Payment Spent Transaction ID
Taker-Zahlung ausgegeben: Transaktions-ID
-
+
Taker Payment Sent Transaction ID
Taker-Zahlung gesendet: Transaktions-ID
-
+
Taker Payment TXID
Taker-Zahlung: TXID
-
+
Recover Funds
Rückerstattung der Geldmittel
-
+
Refunding...
Rückzahlung…
-
+
View on Explorer
Ansicht im Explorer
@@ -2720,42 +2739,42 @@ Bitte wählen Sie eine neue Order aus.
OrdersPage
-
+
Filter
Filter
-
+
Date
Datum
-
+
Export CSV
CSV exportieren
-
+
Apply Filter
Filter anwenden
-
+
Cancel All
Alles stornieren
-
+
From
Von
-
+
To
Bis
-
+
Please choose the CSV export name and location
Bitte wählen Sie den CSV-Exportnamen und den Speicherort aus
@@ -2828,8 +2847,8 @@ Bitte wählen Sie eine neue Order aus.
Portfolio
- ADD ASSET
- ASSET HINZUFÜGEN
+ ADD CRYPTO
+
@@ -2837,12 +2856,12 @@ Bitte wählen Sie eine neue Order aus.
Asset suchen
-
+
Show only coins with balance
Nur Coins mit Guthaben anzeigen
-
+
(%1/%2)
(%1/%2)
@@ -2928,12 +2947,12 @@ Bitte wählen Sie eine neue Order aus.
ProView
-
+
Failed to place the order
Die Order konnte nicht platziert werden
-
+
Placed the order
Order platziert
@@ -2981,7 +3000,7 @@ Bitte wählen Sie eine neue Order aus.
RecoverSeedModal
-
+
View seed and private keys
Seed- und privaten Schlüsseln anzeigen
@@ -2991,64 +3010,64 @@ Bitte wählen Sie eine neue Order aus.
Bitte geben Sie Ihr Kennwort ein, um den Seed anzuzeigen.
-
+
Seed
Seed
-
+
Backup Seed
Seed Sicherung
-
+
Public Address copied to clipboard
Öffentliche Adresse in die Zwischenablage kopiert
-
+
Cancel
Abbrechen
-
+
Incorrect Password
Falsches Kennwort
-
+
View
Ansehen
-
-
+
+
copied to clipboard
In die Zwischenablage kopiert
-
-
+
+
RPC Password
RPC Kennwort
-
+
Search a coin.
Coin suchen.
-
+
Public Address
Öffentliche Adresse
-
+
Private Key copied to clipboard
Privater Schlüssel in die Zwischenablage kopiert
-
+
Private Key
Privater Schlüssel
@@ -3074,17 +3093,17 @@ Bitte wählen Sie eine neue Order aus.
RestartModal
-
+
Applying the changes...
Übernehmen der Änderungen...
-
+
Restarting the application. %1
Neustart der Anwendung. %1
-
+
Restarting the application...
Neustart der Anwendung...
@@ -3118,162 +3137,172 @@ Bitte wählen Sie eine neue Order aus.
SendModal
-
+
Failed to send
Fehler beim Senden
-
+
Prepare to send
Versandvorbereitung von
-
+
Address of the recipient
Adresse des Empfängers
-
+
Amount to send
Zu sendender Betrag
-
+
Gas price
Gas Preis
-
+
Cancel
Abbrechen
-
+
Recipient's address
Empfängeradresse
-
+
The address has to be mixed case.
Die Adresse muss Groß-/Kleinschreibung sein.
-
+
Failed to Broadcast
-
+
Fix
Korrigieren
-
+
MAX
MAX
-
+
Fiat amount: Unavailable
Fiat-Betrag: Nicht verfügbar
-
+
Fiat amount: %1
Fiat-Betrag: %1
-
+
%1 amount: %2
%1 Betrag: %2
-
+
Specify in Fiat
In Fiat angeben
-
+
Specify in Crypto
In Krypto angeben
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
Benutzerdefinierte Gebühren
-
+
Enter the custom fee
Geben Sie die benutzerdefinierte Gebühr ein
-
+
Gas Limit
Gas Limit
-
+
Custom Fee can't be higher than the amount
Die benutzerdefinierten Gebühren dürfen nicht höher sein als der Betrag
-
+
Not enough funds.
Nicht genug Geldmittel.
-
-
+
+
You have %1
AMT TICKER
Sie haben %1
-
-
+
+
Only use custom fees if you know what you are doing!
-
+
Prepare
Vorbereiten
-
-
+
+
Send
Senden
-
+
%1 address
TICKER
-
+
copied to clipboard.
In die Zwischenablage kopiert
-
+
Amount
Menge
-
+
+ Memo
+
+
+
+
Fees
Gebühren
-
+
Date
Datum
-
+
Back
Zurück
@@ -3359,11 +3388,16 @@ Bitte wählen Sie eine neue Order aus.
+ Memo
+
+
+
+
Fees
Gebühren
-
+
Date
Datum
@@ -3373,12 +3407,12 @@ Bitte wählen Sie eine neue Order aus.
Transaktions-Hash
-
+
Close
Schließen
-
+
View on Explorer
Ansicht im Explorer
@@ -3386,8 +3420,8 @@ Bitte wählen Sie eine neue Order aus.
SettingModal
-
-
+
+
Cancel
Abbrechen
@@ -3417,98 +3451,103 @@ Bitte wählen Sie eine neue Order aus.
Sicherheit
-
+
Enable Desktop Notifications
Desktop-Benachrichtigungen aktivieren
-
+
+ Hide Poison Transactions in History
+
+
+
+
Maximum number of enabled coins
Maximale Anzahl aktivierter Coins
-
+
Logs
Protokolle
-
+
Open Folder
Ordner öffnen
-
+
Reset
Zurücksetzen
-
+
Current Font
Aktuelle Schriftart
-
+
Current font changed to %1.
Aktuelle Schriftart in %1 geändert.
-
+
Theme
Thema
-
+
Changing theme to %1
Design zu %1 geändert
-
+
Disable 2FA?
2FA deaktivieren?
-
+
Enter your wallet password to confirm
Geben Sie zur Bestätigung das Kennwort ihrer Brieftasche ein
-
+
Type password
Kennwort eingeben
-
+
2FA status
2FA Status
-
+
2FA disabled successfully
2FA erfolgreich deaktiviert
-
-
+
+
Ok
Ok
-
+
Wrong password!
Falsches Kennwort!
-
+
Wallet password is incorrect
Kennwort der Brieftasche ist falsch
-
+
Application Version
Anwendungsversion
-
+
copied to clipboard
In die Zwischenablage kopiert
@@ -3518,95 +3557,95 @@ Bitte wählen Sie eine neue Order aus.
Über & Version
-
-
+
+
Reset wallet configuration
Konfiguration der Brieftasche zurücksetzen
-
+
This will restart your wallet with default settings
Dadurch wird Ihre Brieftasche mit den Standardeinstellungen neu gestartet
-
-
+
+
Confirm
Bestätigen
-
+
Ask system's password before sending coins ? (2FA)
Vor dem Senden von Coins nach dem Kennwort des Systems fragen? (2FA)
-
+
View seed and private keys
Seed- und privaten Schlüsseln anzeigen
-
-
+
+
Show
Zeigen
-
+
Setup Camouflage Password
Tarnkennwort einrichten
-
+
Open
Öffnen
-
+
Disclaimer and ToS
Haftungsausschluss und Nutzungsbedingungen
-
+
Application version
Anwendungsversion
-
+
MM2 version
MM2 Version
-
+
MM2 Version
MM2 Version
-
+
MM2 Version copied to clipboard.
MM2 Version in die Zwischenablage kopiert.
-
+
Qt version
Qt Version
-
+
Qt Version
Qt Version
-
+
Qt Version copied to clipboard.
Qt Version in die Zwischenablage kopiert.
-
+
Search Update
Update suchen
-
+
Logout
Abmelden
@@ -3614,27 +3653,14 @@ Bitte wählen Sie eine neue Order aus.
Sidebar
-
+
Search
Suchen
- Add asset
- Asset hinzufügen
-
-
-
- SmartChartView
-
-
- Loading market data
- Laden von Marktdaten
-
-
-
- There is no chart data for this ticker yet
- Für diesen Ticker liegen noch keine Chartdaten vor
+ ADD CRYPTO
+
@@ -3665,10 +3691,15 @@ Bitte wählen Sie eine neue Order aus.
CEX-Kurs
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 ist nicht aktiviert - Möchten Sie es aktivieren, um die günstigsten Order von %2 auswählen zu können? <br><a href='#'>Ja</a> - <a href='#no'>Nein</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3765,7 +3796,7 @@ Bitte wählen Sie eine neue Order aus.
SubOrders
-
+
Orders
Order
@@ -3810,12 +3841,12 @@ Bitte wählen Sie eine neue Order aus.
Abbrechen
-
+
Apply filter
Filter anwenden
-
+
No results found
Keine Ergebnisse gefunden
@@ -3910,62 +3941,78 @@ Network fees can vary greatly depending on your selected trading pair.
Die Netzwerkgebühren können je nach ausgewähltem Handelspaar stark variieren.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
Bieten Sie Benutzerunterstützung an?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
Ja! %1 bietet Support über den <a href="%2">%1 Discord server</a>. Das Team und die Community helfen Euch gerne weiter!
-
+
Who is behind %1?
Wer steckt hinter %1?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
%1 wird vom Komodo-Team entwickelt. Komodo ist eines der etabliertesten Blockchain-Projekte, das an innovativen Lösungen wie Atomic Swaps, Delayed Proof of Work und einer interoperablen Multi-Chain-Architektur arbeitet.
-
+
Is it possible to develop my own white-label exchange on %1?
Ist es möglich, meine eigene White-Label-Börse auf %1 zu entwickeln?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
Auf jeden Fall! Sie können unsere Entwicklerdokumentation für weitere Details lesen oder uns mit Ihren Partnerschaftsanfragen kontaktieren. Haben Sie eine spezielle technische Frage? Die %1-Entwicklercommunity ist immer bereit zu helfen!
-
+
Which devices can I use %1 on?
Auf welchen Geräten kann ich %1 verwenden?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
%1 ist auf Mobilgeräte für <a href="%2">Android und iPhone sowie auf dem Desktop für Windows, Mac und Linux</a> Betriebssystemen erhältlich.
-
+
Compliance Info
Compliance-Informationen
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
Aufgrund regulatorischer und rechtlicher Umstände sind die Bürger bestimmter Gerichtsbarkeiten, einschließlich, aber nicht beschränkt auf, der Vereinigten Staaten von Amerika, Kanada, Hongkong, Israel, Singapur, Sudan, Österreich, Iran und alle anderen Staaten, Länder oder anderen Gerichtsbarkeiten, die mit einem Embargo von den Vereinigten Staaten von Amerika oder der Europäischen Union belegt sind, dürfen diese Anwendung nicht verwenden.
-
+
Changelog
Änderungsprotokoll
-
+
Open Logs Folder
Protokollordner öffnen
@@ -4035,157 +4082,138 @@ Die Netzwerkgebühren können je nach ausgewähltem Handelspaar stark variieren.
Klicken Sie hier, um die Details anzuzeigen
+
+ TotalView
+
+
+ Receive %1
+
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
Tauschen
-
+
Instant trading with best orders
Sofortiger Handel mit den besten Order
-
+
Reset form
Formular zurücksetzen
-
+
You have no tradable assets
Keine handelbaren Assets vorhanden
-
+
From
Von
-
- Enter an amount
- Betrag eingeben
+
+ Entered amount must be higher than 0.
+
+
+
+
+ Select an order.
+
-
+
MAX
MAX
-
+
To
Nach
-
+
Pick an order
Order auswählen
-
+
Price
Preis
-
+
Better price found: %1. Updating forms.
Besseren Preis gefunden: %1. Formulare aktualisieren.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
Besseren Preis (%1) gefunden, aber erhaltene Menge (%2) ist niedriger als Ihre aktuelle (%3). Klicken Sie hier, um den ausgewählte Order zu aktualisieren.
-
+
%1
%1
-
- Tradable:
- Handelbar:
-
-
-
- Min: %1
- Minimum: %1
+
+ Balance:
+
-
+
Pick a coin
Wählen Sie einen Coin
-
+
SWAP NOW
JETZT TAUSCHEN
-
+
Failed to place the order
Die Order konnte nicht platziert werden
-
+
Placed the order
Order platziert
-
- Entered amount must be superior than 0.
- Der eingegebene Betrag muss größer als 0 sein.
-
-
-
- You must select an order.
- Sie müssen eine Order auswählen.
-
-
-
- Entered amount is below the minimum required by this order: %1
- Der eingegebene Betrag liegt unter dem für diese Order erforderlichen Mindestbetrag: %1
-
-
-
-
- %1 needs to be enabled in order to use %2
- %1 muss aktiviert werden, um %2 verwenden zu können
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
- Das %1 Guthaben muss finanziert werden, ein Guthaben größer Null ist erforderlich, um das Benzin von %2 Transaktionen zu bezahlen
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
- Das Guthaben von %1 reicht nicht aus, um das Gas von %2 Transaktionen zu bezahlen
-
-
-
+
No buy orders found for %1.
Keine Kauforder für %1 gefunden.
-
+
You can check later or try to sell a different coin.
Sie können später nachsehen oder versuchen, einen anderen Coin zu verkaufen.
-
+
Calculating fee estimate...
Geschätzten Gebühren werden berechnet...
-
+
Total %1 fees:
%1 Gesamtgebühren:
-
+
%2 (%3)
%2 (%3)
@@ -4228,91 +4256,114 @@ Die Netzwerkgebühren können je nach ausgewähltem Handelspaar stark variieren.
Order platzieren
+
+ TradingViewChart
+
+
+ Loading market data
+ Laden von Marktdaten
+
+
+
+ There is no chart data for this ticker yet
+ Für diesen Ticker liegen noch keine Chartdaten vor
+
+
TransactionDetailsModal
-
+
Transaction Details
Transaktionsdetails
-
+
Amount
Menge
-
+
Fees
Gebühren
-
+
Date
Datum
-
+
Unconfirmed
Unbestätigt
-
+
Transaction Hash
Transaktions-Hash
-
+
Confirmations
Bestätigungen
-
+
Block Height
Blockhöhe
-
+
From
Von
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
-
+
copied to clipboard.
In die Zwischenablage kopiert
-
+
From address
Von Adresse
-
+
To
Nach
-
+
To address
Nach Adresse
-
+
Notes
Anmerkungen
-
+
Close
Schließen
-
+
View on Explorer
Ansicht im Explorer
@@ -4320,22 +4371,27 @@ Die Netzwerkgebühren können je nach ausgewähltem Handelspaar stark variieren.
Transactions
-
+
Sent
Gesendet
-
+
Received
Erhalten
-
+
+ Poison
+
+
+
+
fees
Gebühren
-
+
Unconfirmed
Unbestätigt
@@ -4469,7 +4525,7 @@ This might take a few minutes...
atomic_dex::settings_page
-
+
An error has occurred.
@@ -4492,47 +4548,47 @@ This might take a few minutes...
Sie benötigen %1, um das Benzin für %2 Transaktionen zu bezahlen.
-
+
Checksum verification failed for %1.
Überprüfung der Prüfsumme für %1 fehlgeschlagen.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
Ungültige Prüfsumme für %1. Klicken Sie auf die Schaltfläche, um die Adresse in Groß-/Kleinschreibung umzuwandeln.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
Legacy-Adresse für %1 verwendet. Klicken Sie auf die Schaltfläche, um sie in eine Cashadresse umzuwandeln.
-
+
%1 address must be prefixed with 0x
%1 Adresse muss 0x vorangestellt werden
-
+
%1 address length is invalid, please use a valid address.
Länge der %1 Adresse ist ungültig, bitte verwenden Sie eine gültige Adresse.
-
+
%1 address is invalid.
%1 Adresse ist ungültig.
-
+
Invalid checksum.
Ungültige Prüfsumme.
-
+
%1 address has invalid prefixes.
%1 Adresse hat ungültige Vorsilben.
-
+
Backend error: %1
Backend Fehler: %1
@@ -4545,7 +4601,7 @@ This might take a few minutes...
Abmelden
-
+
Balance
Balance
diff --git a/atomic_defi_design/assets/languages/atomic_defi_en.ts b/atomic_defi_design/assets/languages/atomic_defi_en.ts
index 574da37ff9..07a60d72c5 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_en.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_en.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
-
+
Label
-
+
This key already exists.
-
+
Address
-
-
+
+
Cancel
Cancel
-
+
Convert
-
+
Edit
-
+
Add
-
+
You need to enable %1 before adding this kind of address.
-
+
Enable
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
@@ -307,7 +307,7 @@
-
+
Price provider is: %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
-
+
Support
-
+
Privacy
-
+
Disable Privacy?
-
+
Enter wallet password to confirm
-
+
Type password
-
+
Confirm
-
+
Cancel
Cancel
-
+
Privacy status
-
+
Privacy mode disabled successfully
-
-
+
+
Ok
-
+
Wrong password!
-
+
wallet password is incorrect
@@ -494,20 +499,33 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
Chart
-
+
Loading market data
-
- There is no chart data for this pair yet
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
@@ -732,83 +750,83 @@
ConfirmTradeModal
-
+
Confirm Exchange Details
-
+
Trade price is more than 50% different to CEX! Confirm?
-
+
This swap request can not be undone and is a final event!
-
+
This transaction can take up to 60 mins - DO NOT close this application!
-
+
Loading fees...
-
+
<b>Total %1 fees:</b>
-
+
Security configuration
-
+
%1 confirmations for incoming %2 transactions
-
+
Read more about dPoW
-
+
Use custom protection settings for incoming %1 transactions
TICKER
-
+
Enable Komodo dPoW security
-
+
dPoW protected
-
+
Required Confirmations
-
+
Warning, this atomic swap is not dPoW protected!
-
+
Cancel
Cancel
-
+
Confirm
@@ -824,182 +842,182 @@
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
-
+
Matching
-
+
Order Matching
-
+
Matched
-
+
Order Matched
-
+
Ongoing
-
+
Swap Ongoing
-
+
Successful
-
+
Swap Successful
-
+
Refunding
-
+
Failed
-
+
Swap Failed
-
+
Unknown
-
+
Unknown State
-
+
Started
-
+
Negotiated
-
+
Taker fee sent
-
+
Maker payment received
-
+
Maker payment wait confirm started
-
+
Maker payment validated and confirmed
-
+
Taker payment sent
-
+
Taker payment spent
-
+
Maker payment spent
-
+
Finished
-
+
Start failed
-
+
Negotiate failed
-
+
Taker fee validate failed
-
+
Maker payment transaction failed
-
+
Maker payment Data send failed
-
+
Maker payment wait confirm failed
-
+
Taker payment validate failed
-
+
Taker payment wait confirm failed
-
+
Taker payment spend failed
-
+
Maker payment wait refund started
-
+
Maker payment refunded
-
+
Maker payment refund failed
@@ -1083,7 +1101,7 @@
DexAppPasswordField
-
+
Type password
@@ -1384,7 +1402,7 @@
General
-
+
%n day(s)
@@ -1392,7 +1410,7 @@
-
+
%nd
day
@@ -1401,7 +1419,7 @@
-
+
%nh
hours
@@ -1410,7 +1428,7 @@
-
+
%nm
minutes
@@ -1419,7 +1437,7 @@
-
+
%ns
seconds
@@ -1428,7 +1446,7 @@
-
+
%nms
milliseconds
@@ -1437,92 +1455,117 @@
-
+
-
-
+
<b>Taker tx fee:</b>
-
+
<b>Dex tx fee:</b>
-
+
<b>Dex fee:</b>
-
+
<b>Maker tx fee:</b>
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+
+
+
+
+ Enter an amount
+
+
+
+
Trading Fee
-
+
Minimum Trading Amount
-
+
Wallet %1 already exists
WALLETNAME
-
+
%1 balance is lower than the fees amount: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
-
+
Please fill the price field
-
+
Please fill the volume field
-
-
+
+
Please wait for %1 to fully activate
-
-
+
+
%1 volume is lower than minimum trade amount
-
-
+
+
%1 needs to be enabled in order to use %2
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
-
+
Unknown Error
@@ -1588,89 +1631,94 @@
-
+
Enter seed
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
-
-
+
+
i understand
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
-
+
Allow custom seed
-
+
<strong>Allow custom seed</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
-
+
I understand
-
+
Next
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
-
+
Continue
@@ -1714,10 +1762,15 @@ Try again or select 'Allow custom seed' to continue.
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1758,17 +1811,17 @@ Try again or select 'Allow custom seed' to continue.
Login
-
+
Incorrect Password
-
+
Log In
-
+
Cancel
Cancel
@@ -1811,181 +1864,152 @@ They will be removed from the orderbook until you log in again.
Main
-
- Segwit
-
-
-
-
- Confirmation
-
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
-
-
-
-
- Success
-
-
-
-
- Your transaction is send, may take some time to arrive
-
-
-
-
+
Price
-
+
Change 24hr
-
- Porfolio
-
-
-
-
+
Contract Address
-
+
Send
-
+
Enable %1 ?
-
+
Yes
Yes
-
+
No
-
+
Receive
-
+
+
Swap
-
+
+ Portfolio
+
+
+
+
is wallet only
-
+
Rewards
-
+
Faucet
-
-
-
+
+
+
Public Key
-
+
Copied to Clipboard
-
+
Loading market data
-
+
There is no chart data for this ticker yet
-
+
Fetching transactions...
-
+
Please wait, %1 is %2
-
+
% activated...
-
+
No transactions available
-
+
Click to view your address on %1 (%2) block explorer
-
- Trade
-
-
-
-
+
Trading Information
-
+
Chart
-
-
+
+
Orders
-
-
+
+
History
-
+
Place Order
-
+
Order Selected
-
+
START SWAP
@@ -2039,13 +2063,13 @@ They will be removed from the orderbook until you log in again.
MarketModeSelector
-
+
Sell %1
TICKER
-
+
Buy %1
TICKER
@@ -2098,17 +2122,17 @@ They will be removed from the orderbook until you log in again.
NewContactPopup
-
+
Contact name
-
+
This contact name already exists.
-
+
+ ADD
@@ -2225,67 +2249,72 @@ They will be removed from the orderbook until you log in again.
-
+
Important: Back up your seed phrase before proceeding!
-
+
We recommend storing it offline.
-
+
Generated Seed
-
+
Seed phrase
-
+
copied to clipboard
-
+
Next
-
+
Let's double check your seed phrase
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
-
+
Enter the
-
+
word
-
+
Check
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
-
+
Continue
@@ -2400,6 +2429,11 @@ They will be removed from the orderbook until you log in again.
Your wallet balance changed
+
+
+ Close
+
+
%1 Enable status
@@ -2419,49 +2453,49 @@ They will be removed from the orderbook until you log in again.
-
+
Failed to disable %1
TICKER
-
+
Endpoint not reachable
-
+
Could not reach to endpoint
-
+
Show
-
+
Restart
-
+
Quit
-
+
Notifications
-
+
There aren't any notifications
-
+
Mark all as read
@@ -2469,97 +2503,92 @@ They will be removed from the orderbook until you log in again.
OrderForm
-
+
Price
-
+
Reduce 1% relative to CEX market price.
-
+
Use CEX market price.
-
+
Increase 1% relative to CEX market price.
-
- Volume
-
-
-
-
- Amount to sell
+
+ Send
-
- Amount to receive
+
+ Receive
-
+
Max
-
+
Swap 25% of your tradable balance.
-
+
Swap 50% of your tradable balance.
-
+
Swap 100% of your tradable balance.
-
+
Min Volume
-
+
Min amount to sell
-
+
Min amount to receive
-
+
Minimum accepted trade equals 10% of order volume.
-
+
Minimum accepted trade equals 25% of order volume.
-
+
Minimum accepted trade equals 50% of order volume.
-
+
Min volume:
-
+
Use custom minimum trade amount
@@ -2583,114 +2612,104 @@ They will be removed from the orderbook until you log in again.
OrderModal
-
- Swap Details
-
-
-
-
- Order Details
-
-
-
-
+
Order Type
-
+
Maker Order
-
+
Taker Order
-
+
Refund State
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
-
+
Date
-
+
Error ID
-
-
+
+
Error Log
-
+
Close
-
+
Cancel Order
-
-
+
+
Swap ID
-
+
Maker Payment Sent Transaction ID
-
+
Maker Payment Spent Transaction ID
-
+
Maker Payment TXID
-
+
Taker Payment Spent Transaction ID
-
+
Taker Payment Sent Transaction ID
-
+
Taker Payment TXID
-
+
Recover Funds
-
+
Refunding...
-
+
View on Explorer
@@ -2718,42 +2737,42 @@ Please select a new order.
OrdersPage
-
+
Filter
-
+
Date
-
+
Export CSV
-
+
Apply Filter
-
+
Cancel All
-
+
From
-
+
To
-
+
Please choose the CSV export name and location
@@ -2826,7 +2845,7 @@ Please select a new order.
Portfolio
- ADD ASSET
+ ADD CRYPTO
@@ -2835,12 +2854,12 @@ Please select a new order.
-
+
Show only coins with balance
-
+
(%1/%2)
@@ -2926,12 +2945,12 @@ Please select a new order.
ProView
-
+
Failed to place the order
-
+
Placed the order
@@ -2979,7 +2998,7 @@ Please select a new order.
RecoverSeedModal
-
+
View seed and private keys
@@ -2989,64 +3008,64 @@ Please select a new order.
-
+
Seed
-
+
Backup Seed
-
+
Public Address copied to clipboard
-
+
Cancel
Cancel
-
+
Incorrect Password
-
+
View
-
-
+
+
copied to clipboard
-
-
+
+
RPC Password
-
+
Search a coin.
-
+
Public Address
-
+
Private Key copied to clipboard
-
+
Private Key
@@ -3072,17 +3091,17 @@ Please select a new order.
RestartModal
-
+
Applying the changes...
-
+
Restarting the application. %1
-
+
Restarting the application...
@@ -3116,162 +3135,172 @@ Please select a new order.
SendModal
-
+
Failed to send
-
+
Prepare to send
-
+
Address of the recipient
-
+
Amount to send
-
+
Gas price
-
+
Cancel
Cancel
-
+
Recipient's address
-
+
The address has to be mixed case.
-
+
Failed to Broadcast
-
+
Fix
-
+
MAX
-
+
Fiat amount: Unavailable
-
+
Fiat amount: %1
-
+
%1 amount: %2
-
+
Specify in Fiat
-
+
Specify in Crypto
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
-
+
Enter the custom fee
-
+
Gas Limit
-
+
Custom Fee can't be higher than the amount
-
+
Not enough funds.
-
-
+
+
You have %1
AMT TICKER
-
-
+
+
Only use custom fees if you know what you are doing!
-
+
Prepare
-
-
+
+
Send
-
+
%1 address
TICKER
-
+
copied to clipboard.
-
+
Amount
-
+
+ Memo
+
+
+
+
Fees
-
+
Date
-
+
Back
@@ -3357,11 +3386,16 @@ Please select a new order.
+ Memo
+
+
+
+
Fees
-
+
Date
@@ -3371,12 +3405,12 @@ Please select a new order.
-
+
Close
-
+
View on Explorer
@@ -3384,8 +3418,8 @@ Please select a new order.
SettingModal
-
-
+
+
Cancel
Cancel
@@ -3415,57 +3449,57 @@ Please select a new order.
-
+
Enable Desktop Notifications
-
+
Maximum number of enabled coins
-
+
Logs
-
+
Open Folder
-
+
Reset
-
+
Current Font
-
+
Current font changed to %1.
-
+
Theme
-
+
Changing theme to %1
-
+
Application Version
-
+
copied to clipboard
@@ -3475,136 +3509,141 @@ Please select a new order.
-
-
+
+ Hide Poison Transactions in History
+
+
+
+
+
Reset wallet configuration
-
+
This will restart your wallet with default settings
-
-
+
+
Confirm
-
+
Ask system's password before sending coins ? (2FA)
-
+
Disable 2FA?
-
+
Enter your wallet password to confirm
-
+
Type password
-
+
2FA status
-
+
2FA disabled successfully
-
-
+
+
Ok
-
+
Wrong password!
-
+
Wallet password is incorrect
-
+
View seed and private keys
-
-
+
+
Show
-
+
Setup Camouflage Password
-
+
Open
-
+
Disclaimer and ToS
-
+
Application version
-
+
MM2 version
-
+
MM2 Version
-
+
MM2 Version copied to clipboard.
-
+
Qt version
-
+
Qt Version
-
+
Qt Version copied to clipboard.
-
+
Search Update
-
+
Logout
@@ -3612,26 +3651,13 @@ Please select a new order.
Sidebar
-
+
Search
- Add asset
-
-
-
-
- SmartChartView
-
-
- Loading market data
-
-
-
-
- There is no chart data for this ticker yet
+ ADD CRYPTO
@@ -3663,10 +3689,15 @@ Please select a new order.
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3763,7 +3794,7 @@ Please select a new order.
SubOrders
-
+
Orders
@@ -3808,12 +3839,12 @@ Please select a new order.
Cancel
-
+
Apply filter
-
+
No results found
@@ -3892,62 +3923,78 @@ Network fees can vary greatly depending on your selected trading pair.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
-
+
Who is behind %1?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
-
+
Is it possible to develop my own white-label exchange on %1?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
-
+
Which devices can I use %1 on?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
-
+
Compliance Info
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
-
+
Changelog
-
+
Open Logs Folder
@@ -4017,157 +4064,138 @@ Network fees can vary greatly depending on your selected trading pair.
+
+ TotalView
+
+
+ Receive %1
+
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
-
+
Instant trading with best orders
-
+
Reset form
-
+
You have no tradable assets
-
+
From
-
- Enter an amount
+
+ Entered amount must be higher than 0.
+
+
+
+
+ Select an order.
-
+
MAX
-
+
To
-
+
Pick an order
-
+
Price
-
+
Better price found: %1. Updating forms.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
-
+
%1
-
- Tradable:
+
+ Balance:
-
- Min: %1
-
-
-
-
+
Pick a coin
-
+
SWAP NOW
-
+
Failed to place the order
-
+
Placed the order
-
- Entered amount must be superior than 0.
-
-
-
-
- You must select an order.
-
-
-
-
- Entered amount is below the minimum required by this order: %1
-
-
-
-
-
- %1 needs to be enabled in order to use %2
-
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
-
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
-
-
-
-
+
No buy orders found for %1.
-
+
You can check later or try to sell a different coin.
-
+
Calculating fee estimate...
-
+
Total %1 fees:
-
+
%2 (%3)
@@ -4210,91 +4238,114 @@ Network fees can vary greatly depending on your selected trading pair.
+
+ TradingViewChart
+
+
+ Loading market data
+
+
+
+
+ There is no chart data for this ticker yet
+
+
+
TransactionDetailsModal
-
+
Transaction Details
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
-
+
copied to clipboard.
-
+
Amount
-
+
Fees
-
+
From address
-
+
To address
-
+
Date
-
+
Unconfirmed
-
+
Transaction Hash
-
+
Confirmations
-
+
Block Height
-
+
From
-
+
To
-
+
Notes
-
+
Close
-
+
View on Explorer
@@ -4302,22 +4353,27 @@ Network fees can vary greatly depending on your selected trading pair.
Transactions
-
+
Sent
-
+
Received
-
+
+ Poison
+
+
+
+
fees
-
+
Unconfirmed
@@ -4451,7 +4507,7 @@ This might take a few minutes...
atomic_dex::settings_page
-
+
An error has occurred.
@@ -4474,47 +4530,47 @@ This might take a few minutes...
-
+
Checksum verification failed for %1.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
-
+
%1 address must be prefixed with 0x
-
+
%1 address length is invalid, please use a valid address.
-
+
%1 address is invalid.
-
+
Invalid checksum.
-
+
%1 address has invalid prefixes.
-
+
Backend error: %1
@@ -4527,7 +4583,7 @@ This might take a few minutes...
-
+
Balance
diff --git a/atomic_defi_design/assets/languages/atomic_defi_es.ts b/atomic_defi_design/assets/languages/atomic_defi_es.ts
index c2b1055f75..f221b0af03 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_es.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_es.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
Utilice la dirección de red
-
+
Label
Etiqueta
-
+
This key already exists.
Esta clave ya existe.
-
+
Address
Dirección
-
-
+
+
Cancel
Cancelar
-
+
Convert
Convertir
-
+
Edit
Editar
-
+
Add
Agregar
-
+
You need to enable %1 before adding this kind of address.
Debe habilitar %1 antes de agregar este tipo de dirección.
-
+
Enable
Habilitar
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
Resultados de Recuperar Fondos
@@ -307,7 +307,7 @@
Activando:
-
+
Price provider is: %1
El proveedor de precios es: %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
Configuración
-
+
Support
Soporte
-
+
Privacy
Privacidad
-
+
Disable Privacy?
¿Deshabilitar privacidad?
-
+
Enter wallet password to confirm
Ingrese la contraseña de la billetera para confirmar
-
+
Type password
Escriba la contraseña
-
+
Confirm
Confirmar
-
+
Cancel
Cancelar
-
+
Privacy status
Estado de privacidad
-
+
Privacy mode disabled successfully
Modo de privacidad deshabilitado correctamente
-
-
+
+
Ok
Ok
-
+
Wrong password!
¡Contraseña incorrecta!
-
+
wallet password is incorrect
la contraseña de la billetera es incorrecta
@@ -494,21 +499,34 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
- Datos de mercado (precios, estadisticas, etc.) marcados con ⓘ se obtienen a través de fuentes terceras.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
+ Datos de mercado (precios, estadisticas, etc.) marcados con ⓘ se obtienen a través de fuentes terceras.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
Chart
-
+
Loading market data
Cargando datos de mercado
-
- There is no chart data for this pair yet
- Todavía no hay datos de gráficos para este par
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
+ Cerrar
@@ -732,83 +750,83 @@
ConfirmTradeModal
-
+
Confirm Exchange Details
Confirmar Detalles de Intercambio
-
+
Trade price is more than 50% different to CEX! Confirm?
¡El precio comercial es más del 50% diferente al de CEX! ¿Confirmar?
-
+
This swap request can not be undone and is a final event!
¡Esta solicitud de intercambio no se puede deshacer y es un evento final!
-
+
This transaction can take up to 60 mins - DO NOT close this application!
Esta transacción puede demorar hasta 60 minutos. ¡NO cierre esta aplicación!
-
+
Loading fees...
Cargando tarifas...
-
+
<b>Total %1 fees:</b>
<b>Cuota total de %1:</b>
-
+
Security configuration
Configuración de seguridad
-
+
%1 confirmations for incoming %2 transactions
%1 confirmaciones para %2 transacciones entrantes
-
+
Read more about dPoW
Obtenga más información sobre dPoW
-
+
Use custom protection settings for incoming %1 transactions
TICKER
Utilice configuraciones de protección personalizadas para %1 transacciones entrantes
-
+
Enable Komodo dPoW security
Habilite la seguridad dPoW de Komodo
-
+
dPoW protected
Protegido por dPoW
-
+
Required Confirmations
Confirmaciones Requeridas
-
+
Warning, this atomic swap is not dPoW protected!
Advertencia, este intercambio atómico no está protegido por dPoW!
-
+
Cancel
Cancelar
-
+
Confirm
Confirmar
@@ -824,182 +842,182 @@
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
El número actual de monedas habilitadas no coincide con su especificación de configuración. Se restablecerá la configuración de sus activos.
-
+
Matching
Emparejando
-
+
Order Matching
Emparejando Orden
-
+
Matched
Emparejado
-
+
Order Matched
Orden Emparejada
-
+
Ongoing
En Curso
-
+
Swap Ongoing
Intercambio En Curso
-
+
Successful
Exitoso
-
+
Swap Successful
Intercambio exitoso
-
+
Refunding
Reembolso
-
+
Failed
Fallo
-
+
Swap Failed
Intercambio fallido
-
+
Unknown
Desconocido
-
+
Unknown State
Estado Desconocido
-
+
Started
Iniciado
-
+
Negotiated
Negociado
-
+
Taker fee sent
Tarifa taker enviada
-
+
Maker payment received
Pago de maker recibido
-
+
Maker payment wait confirm started
Inicio de espera de confirmacion de pago de maker
-
+
Maker payment validated and confirmed
Validacion y confirmacion de pago de maker
-
+
Taker payment sent
Pago de taker enviado
-
+
Taker payment spent
Pago del taker gastado
-
+
Maker payment spent
Pago del maker gastado
-
+
Finished
Terminado
-
+
Start failed
Inicio fallido
-
+
Negotiate failed
Negociacion fallida
-
+
Taker fee validate failed
Validación de tarifa del taker fallida
-
+
Maker payment transaction failed
Transacción de pago de maker fallo
-
+
Maker payment Data send failed
Envio de data de pago de maker fallo
-
+
Maker payment wait confirm failed
Espera de confirmacion de pago de maker fallo
-
+
Taker payment validate failed
Validacion de pago de taker fallo
-
+
Taker payment wait confirm failed
Espera de confirmacion de pago de taker fallo
-
+
Taker payment spend failed
Gasto de pago de taker fallo
-
+
Maker payment wait refund started
Reembolso de espera de pago de maker iniciado
-
+
Maker payment refunded
Pago de maker reembolsado
-
+
Maker payment refund failed
Reembolso del pago de maker fallo
@@ -1083,7 +1101,7 @@
DexAppPasswordField
-
+
Type password
Escriba la contraseña
@@ -1384,7 +1402,7 @@
General
-
+
%n day(s)
%n día
@@ -1392,7 +1410,7 @@
-
+
%nd
day
@@ -1401,7 +1419,7 @@
-
+
%nh
hours
@@ -1410,7 +1428,7 @@
-
+
%nm
minutes
@@ -1419,7 +1437,7 @@
-
+
%ns
seconds
@@ -1428,7 +1446,7 @@
-
+
%nms
milliseconds
@@ -1437,92 +1455,117 @@
-
+
-
-
-
+
<b>Taker tx fee:</b>
<b>Cuota de tx del taker:</b>
-
+
<b>Dex tx fee:</b>
<b>Cuota de tx del Dex:</b>
-
+
<b>Dex fee:</b>
<b>Cuota Dex:</b>
-
+
<b>Maker tx fee:</b>
<b>Cuota tx del maker:</b>
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+ Mín.: %1
+
+
+
+ Enter an amount
+ Ingrese una cantidad
+
+
+
Trading Fee
Tarifa de Intercambio
-
+
Minimum Trading Amount
Cantidad Mínima de Intercambio
-
+
Wallet %1 already exists
WALLETNAME
Monedero %1 ya existe
-
+
%1 balance is lower than the fees amount: %2 %3
El saldo de %1 es inferior al monto de las tarifas: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
El saldo de %1 (después de las tarifas) es inferior al monto mínimo de intercambio
-
+
Please fill the price field
Por favor complete el campo de precio
-
+
Please fill the volume field
Complete el campo de volumen
-
-
+
+
Please wait for %1 to fully activate
Espere a que %1 se active por completo
-
-
+
+
%1 volume is lower than minimum trade amount
El volumen de %1 es inferior al monto mínimo de intercambio
-
-
+
+
%1 needs to be enabled in order to use %2
%1 debe habilitarse para usar %2
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
se debe rellenar el saldo de %1, se requiere un saldo distinto de cero para pagar el gas de %2 transacciones
-
+
Unknown Error
Error Desconocido
@@ -1588,90 +1631,95 @@
Nombre de billetera
-
+
Enter seed
Ingresar semilla
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
Su semilla no cumple con BIP39.
Vuelva a intentarlo o seleccione 'Permitir semilla personalizada' personalizada continúe.
-
-
+
+
i understand
entiendo
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
Ok
-
+
Allow custom seed
Permitir semilla personalizada
-
+
<strong>Allow custom seed</strong>
<strong>Permitir semilla personalizada</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
Las frases semilla personalizadas pueden ser menos seguras y más fáciles de descifrar que una frase semilla o clave privada (WIF) compatible con BIP39.<br><br>Para confirmar que comprende el riesgo y sabe lo que está haciendo, escriba <strong> 'Entiendo'</strong> en el cuadro de abajo.
-
+
I understand
Entiendo
-
+
Next
Siguiente
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Ingrese la misma contraseña para confirmar
-
+
Continue
Continuar
@@ -1715,10 +1763,15 @@ Vuelva a intentarlo o seleccione 'Permitir semilla personalizada' pers
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 no está habilitado. ¿Desea habilitarlo para poder seleccionar %2 mejores ordenes?<br><a href='#'>Sí</a> - <a href='#no'>No</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1759,17 +1812,17 @@ Vuelva a intentarlo o seleccione 'Permitir semilla personalizada' pers
Login
-
+
Incorrect Password
Contraseña incorrecta
-
+
Log In
Iniciar sesión
-
+
Cancel
Cancelar
@@ -1814,181 +1867,152 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
Main
-
- Segwit
- Segwit
-
-
-
- Confirmation
- Confirmación
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
- ¿Desea enviar sus fondos de %1 a la billetera %2 primero?
-
-
-
- Success
- Éxito
-
-
-
- Your transaction is send, may take some time to arrive
- Su transacción se envió, puede demorar algún tiempo en llegar
-
-
-
+
Price
Precio
-
+
Change 24hr
Cambio
-
- Porfolio
- Cartera
-
-
-
+
Contract Address
Dirección del Contrato
-
+
Send
Enviar
-
+
Enable %1 ?
¿Habilitar %1?
-
+
Yes
Sí
-
+
No
No
-
+
Receive
Recibir
-
+
+
Swap
Intercambiar
-
+
+ Portfolio
+ Cartera
+
+
+
is wallet only
es solo billetera
-
+
Rewards
Recompensas
-
+
Faucet
Grifo
-
-
-
+
+
+
Public Key
Clave Pública
-
+
Copied to Clipboard
Copiada en el Portapapeles
-
+
Loading market data
Cargando datos de mercado
-
+
There is no chart data for this ticker yet
No hay datos de gráficos para este ticker aún
-
+
Fetching transactions...
Obteniendo transacciones...
-
+
Please wait, %1 is %2
Por favor espera %1 es %2
-
+
% activated...
% activado...
-
+
No transactions available
No hay transacciones disponibles
-
+
Click to view your address on %1 (%2) block explorer
Haga clic para ver su dirección en %1 (%2) explorador de bloques
-
- Trade
- Intercambio
-
-
-
+
Trading Information
Información de Intercambios
-
+
Chart
Gráfico
-
-
+
+
Orders
Pedidos
-
-
+
+
History
Historial
-
+
Place Order
Realizar pedido
-
+
Order Selected
Pedido seleccionado
-
+
START SWAP
INICIO INTERCAMBIAR
@@ -2042,13 +2066,13 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
MarketModeSelector
-
+
Sell %1
TICKER
Vender %1
-
+
Buy %1
TICKER
Comprar %1
@@ -2101,17 +2125,17 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
NewContactPopup
-
+
Contact name
Nombre
-
+
This contact name already exists.
Este nombre de contacto ya existe.
-
+
+ ADD
+ Añadir
@@ -2228,67 +2252,72 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.Elegir contraseña
-
+
Important: Back up your seed phrase before proceeding!
Importante: ¡Haga una copia de seguridad de su frase semilla antes de continuar!
-
+
We recommend storing it offline.
Recomendamos almacenarlo fuera de línea.
-
+
Generated Seed
Semilla Generada
-
+
Seed phrase
Frase semilla
-
+
copied to clipboard
copiado al portapapeles
-
+
Next
Siguiente
-
+
Let's double check your seed phrase
Verifiquemos dos veces su frase semilla
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
Su frase semilla es importante, por eso nos gusta asegurarnos de que sea correcta. Le haremos tres preguntas diferentes sobre su frase semilla para asegurarnos de que podrá restaurar fácilmente su billetera cuando lo desee.
-
+
Enter the
Ingresa la
-
+
word
palabra
-
+
Check
Verificar
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Ingrese la misma contraseña para confirmar
-
+
Continue
Continuar
@@ -2403,6 +2432,11 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.Your wallet balance changed
El saldo de tu billetera cambió
+
+
+ Close
+ Cerrar
+
%1 Enable status
@@ -2422,49 +2456,49 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
-
+
Failed to disable %1
TICKER
Error al deshabilitar %1
-
+
Endpoint not reachable
Punto final no accesible
-
+
Could not reach to endpoint
No se pudo llegar al punto final
-
+
Show
Mostrar
-
+
Restart
Reiniciar
-
+
Quit
Salir
-
+
Notifications
Notificaciones
-
+
There aren't any notifications
No hay ' notificaciones
-
+
Mark all as read
Marcar todo como leído
@@ -2472,97 +2506,92 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
OrderForm
-
+
Price
Precio
-
+
Reduce 1% relative to CEX market price.
Reducción del 1% en relación con el precio de mercado CEX.
-
+
Use CEX market price.
Utilice el precio de mercado CEX.
-
+
Increase 1% relative to CEX market price.
Aumento del 1% en relación con el precio de mercado de CEX.
-
- Volume
- Volumen
-
-
-
- Amount to sell
- Importe para vender
+
+ Send
+ Enviar
-
- Amount to receive
- Importe para recibir
+
+ Receive
+ Recibir
-
+
Max
Max
-
+
Swap 25% of your tradable balance.
Usar el 25% de su saldo comercial.
-
+
Swap 50% of your tradable balance.
Usar el 50% de su saldo comercial.
-
+
Swap 100% of your tradable balance.
Usar el 100% de su saldo comercial.
-
+
Min Volume
Volumen Mínimo
-
+
Min amount to sell
Cantidad mínima para vender
-
+
Min amount to receive
Cantidad mínimo para recibir
-
+
Minimum accepted trade equals 10% of order volume.
El comercio mínimo aceptado es igual al 10% del volumen del pedido.
-
+
Minimum accepted trade equals 25% of order volume.
El comercio mínimo aceptado es igual al 25% del volumen del pedido.
-
+
Minimum accepted trade equals 50% of order volume.
El comercio mínimo aceptado es igual al 50% del volumen del pedido.
-
+
Min volume:
Volumen mínimo:
-
+
Use custom minimum trade amount
Utilizar una cantidad personalizada de intercambio mínima
@@ -2586,114 +2615,104 @@ Se eliminarán del libro de pedidos hasta que vuelva a iniciar sesión.
OrderModal
-
- Swap Details
- Detalles de Intercambio
-
-
-
- Order Details
- Detalles de Orden
-
-
-
+
Order Type
Tipo de Orden
-
+
Maker Order
Orden de Maker
-
+
Taker Order
Orden de Taker
-
+
Refund State
Estado del Reembolso
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
Su intercambio falló, pero el proceso de reembolso automático para su pago ya comenzó. Espere y mantenga la aplicación abierta hasta que reciba su pago
-
+
Date
Fecha
-
+
Error ID
ID de Error
-
-
+
+
Error Log
Registro de Error
-
+
Close
Cerrar
-
+
Cancel Order
Cancelar Pedido
-
-
+
+
Swap ID
ID de Intercambio
-
+
Maker Payment Sent Transaction ID
ID de la transacción pago enviada de Maker
-
+
Maker Payment Spent Transaction ID
ID de la transacción pago gastado de Maker
-
+
Maker Payment TXID
TXID del pago de Maker
-
+
Taker Payment Spent Transaction ID
ID de la transacción pago gastado de Taker
-
+
Taker Payment Sent Transaction ID
ID de la transacción pago enviada de Taker
-
+
Taker Payment TXID
TXID del pago de Taker
-
+
Recover Funds
Recuperar fondos
-
+
Refunding...
Reembolso...
-
+
View on Explorer
Ver en Explorer
@@ -2722,42 +2741,42 @@ Seleccione un nuevo pedido.
OrdersPage
-
+
Filter
Filtrar
-
+
Date
Fecha
-
+
Export CSV
Exportar CSV
-
+
Apply Filter
Aplicar Filtro
-
+
Cancel All
Cancelar Todo
-
+
From
Desde
-
+
To
A
-
+
Please choose the CSV export name and location
Por favor, elija el nombre y la ubicación de exportación CSV
@@ -2830,8 +2849,8 @@ Seleccione un nuevo pedido.
Portfolio
- ADD ASSET
- AGREGAR ACTIVO
+ ADD CRYPTO
+
@@ -2839,12 +2858,12 @@ Seleccione un nuevo pedido.
Buscar activo
-
+
Show only coins with balance
Mostrar solo monedas con saldo
-
+
(%1/%2)
(%1/%2)
@@ -2930,12 +2949,12 @@ Seleccione un nuevo pedido.
ProView
-
+
Failed to place the order
Error al realizar el pedido
-
+
Placed the order
Realizó el pedido El
@@ -2983,7 +3002,7 @@ Seleccione un nuevo pedido.
RecoverSeedModal
-
+
View seed and private keys
Ver semilla y claves privadas
@@ -2993,64 +3012,64 @@ Seleccione un nuevo pedido.
Por favor ingrese su contraseña para ver la semilla.
-
+
Seed
Semilla
-
+
Backup Seed
Copia de seguridad de semilla
-
+
Public Address copied to clipboard
Direccion publica copiada en el portapapeles
-
+
Cancel
Cancelar
-
+
Incorrect Password
Contraseña incorrecta
-
+
View
Ver
-
-
+
+
copied to clipboard
copiado al portapapeles
-
-
+
+
RPC Password
Contraseña RPC
-
+
Search a coin.
Buscar una moneda.
-
+
Public Address
Dirección Pública
-
+
Private Key copied to clipboard
Clave Privada copiada en el portapapeles
-
+
Private Key
Clave Privada
@@ -3076,17 +3095,17 @@ Seleccione un nuevo pedido.
RestartModal
-
+
Applying the changes...
Aplicando los cambios...
-
+
Restarting the application. %1
Reiniciando la aplicación. %1
-
+
Restarting the application...
Reiniciando la aplicación...
@@ -3120,162 +3139,172 @@ Seleccione un nuevo pedido.
SendModal
-
+
Failed to send
Error al enviar
-
+
Prepare to send
Preparar para enviar
-
+
Address of the recipient
Dirección del destinatario
-
+
Amount to send
Cantidad a enviar
-
+
Gas price
Precio del gas
-
+
Cancel
Cancelar
-
+
Recipient's address
Dirección del destinatario
-
+
The address has to be mixed case.
La dirección debe estar en mayúsculas y minúsculas.
-
+
Failed to Broadcast
Error al transmitir
-
+
Fix
Arreglar
-
+
MAX
MAX
-
+
Fiat amount: Unavailable
Cantidad en Fiat: No disponible
-
+
Fiat amount: %1
Cantidad de Fiat: %1
-
+
%1 amount: %2
Cantidad de %1: %2
-
+
Specify in Fiat
Especificar en Fiat
-
+
Specify in Crypto
Especificar en Crypto
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
Habilitar Tarifas Personalizadas
-
+
Enter the custom fee
Ingrese la tarifa personalizada
-
+
Gas Limit
Límite de gas
-
+
Custom Fee can't be higher than the amount
Tarifa personalizada no puede ser mayor que la cantidad
-
+
Not enough funds.
No hay suficientes fondos.
-
-
+
+
You have %1
AMT TICKER
Tiene %1
-
-
+
+
Only use custom fees if you know what you are doing!
¡Solo use tarifas personalizadas si sabe lo que está haciendo!
-
+
Prepare
Preparar
-
-
+
+
Send
Enviar
-
+
%1 address
TICKER
%1 dirección
-
+
copied to clipboard.
copiado al portapapeles.
-
+
Amount
Cantidad
-
+
+ Memo
+
+
+
+
Fees
Tarifas
-
+
Date
Fecha
-
+
Back
Atrás
@@ -3361,11 +3390,16 @@ Seleccione un nuevo pedido.
+ Memo
+
+
+
+
Fees
Tarifas
-
+
Date
Fecha
@@ -3375,12 +3409,12 @@ Seleccione un nuevo pedido.
Hash de Transaccion
-
+
Close
Cerrar
-
+
View on Explorer
Ver en Explorer
@@ -3388,8 +3422,8 @@ Seleccione un nuevo pedido.
SettingModal
-
-
+
+
Cancel
Cancelar
@@ -3419,57 +3453,57 @@ Seleccione un nuevo pedido.
Seguridad
-
+
Enable Desktop Notifications
Habilitar notificaciones de escritorio
-
+
Maximum number of enabled coins
Número máximo de monedas habilitadas
-
+
Logs
Registros
-
+
Open Folder
Carpeta Abierta
-
+
Reset
Restablecer
-
+
Current Font
Fuente Actual
-
+
Current font changed to %1.
La fuente actual cambió a %1.
-
+
Theme
Tema
-
+
Changing theme to %1
Cambiando el tema a %1
-
+
Application Version
La versión de la aplicación
-
+
copied to clipboard
copiado al portapapeles
@@ -3479,136 +3513,141 @@ Seleccione un nuevo pedido.
Acerca de & Versión
-
-
+
+ Hide Poison Transactions in History
+
+
+
+
+
Reset wallet configuration
Restablecer configuración de billetera
-
+
This will restart your wallet with default settings
Esto reiniciará su billetera con la configuración predeterminada
-
-
+
+
Confirm
Confirmar
-
+
Ask system's password before sending coins ? (2FA)
¿Preguntar la contraseña del sistema antes de enviar monedas? (2FA)
-
+
Disable 2FA?
¿Deshabilitar 2FA?
-
+
Enter your wallet password to confirm
Ingrese la contraseña de su billetera para confirmar
-
+
Type password
Escriba la contraseña
-
+
2FA status
Estado 2FA
-
+
2FA disabled successfully
2FA deshabilitado correctamente
-
-
+
+
Ok
Ok
-
+
Wrong password!
¡Contraseña incorrecta!
-
+
Wallet password is incorrect
Contraseña de la billetera es incorrecta
-
+
View seed and private keys
Ver semilla y claves privadas
-
-
+
+
Show
Mostrar
-
+
Setup Camouflage Password
Configuración de Contraseña Camuflaje
-
+
Open
Abrir
-
+
Disclaimer and ToS
Descargo de Responsabilidad y Terminos de Servicio
-
+
Application version
Versión de Aplicación
-
+
MM2 version
Versión MM2
-
+
MM2 Version
Versión MM2
-
+
MM2 Version copied to clipboard.
Versión MM2 copiada al portapapeles.
-
+
Qt version
Versión Qt
-
+
Qt Version
Versión Qt
-
+
Qt Version copied to clipboard.
Versión de Qt copiada al portapapeles.
-
+
Search Update
Buscar Actualizacion
-
+
Logout
Cerrar sesión
@@ -3616,27 +3655,14 @@ Seleccione un nuevo pedido.
Sidebar
-
+
Search
Buscar
- Add asset
- Agregar activo
-
-
-
- SmartChartView
-
-
- Loading market data
- Cargando datos de mercado
-
-
-
- There is no chart data for this ticker yet
- No hay datos de gráficos para este ticker aún
+ ADD CRYPTO
+
@@ -3667,10 +3693,15 @@ Seleccione un nuevo pedido.
Tasa CEX
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 no está habilitado. ¿Desea habilitarlo para poder seleccionar %2 mejores ordenes?<br><a href='#'>Sí</a> - <a href='#no'>No</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3767,7 +3798,7 @@ Seleccione un nuevo pedido.
SubOrders
-
+
Orders
Pedidos
@@ -3812,12 +3843,12 @@ Seleccione un nuevo pedido.
Cancelar
-
+
Apply filter
Aplicar filtro
-
+
No results found
No se encontraron resultados
@@ -3912,62 +3943,78 @@ Network fees can vary greatly depending on your selected trading pair.
Las tarifas de la red pueden variar mucho según el par comercial seleccionado.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
¿Ofrecen soporte al usuario?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
¡Sí! %1 ofrece soporte a través del <a href="%2">%1 servidor Discord</a>. ¡El equipo y la comunidad siempre están dispuestos a ayudar!
-
+
Who is behind %1?
¿Quién está detrás de %1?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
%1 está desarrollado por el equipo de Komodo. Komodo es uno de los proyectos de cadena de bloques más establecidos que trabaja en soluciones innovadoras como intercambios atómicos, prueba de trabajo retrasada y una arquitectura multicadena interoperable.
-
+
Is it possible to develop my own white-label exchange on %1?
¿Es posible desarrollar mi propio intercambio de marca blanca en %1?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
¡Absolutamente! Puede leer nuestra documentación para desarrolladores para obtener más detalles o ponerse en contacto con nosotros con sus consultas de asociación. ¿Tiene una pregunta técnica específica? ¡La comunidad de desarrolladores de %1 siempre está lista para ayudar!
-
+
Which devices can I use %1 on?
¿En qué dispositivos puedo usar %1?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
%1 está disponible para dispositivos móviles en <a href="%2">Android y iPhone, y para escritorio en Windows, Mac y Linux</a> sistemas operativos.
-
+
Compliance Info
Información de cumplimiento
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
Debido a circunstancias reglamentarias y legales, los ciudadanos de ciertas jurisdicciones, incluidos, entre otros, los Estados Unidos de América, Canadá, Hong Kong, Israel, Singapur, Sudán, Austria, Irán y cualquier otro estado, país u otra jurisdicción que está embargado por los Estados Unidos de América o la Unión Europea no se les permite utilizar esta aplicación.
-
+
Changelog
Cambios
-
+
Open Logs Folder
Abrir Carpeta de Registros
@@ -4037,157 +4084,138 @@ Las tarifas de la red pueden variar mucho según el par comercial seleccionado.<
Haga clic aquí para ver los detalles
+
+ TotalView
+
+
+ Receive %1
+ Recibir %1
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
Intercambiar
-
+
Instant trading with best orders
Comercio instantáneo con las mejores órdenes
-
+
Reset form
Restablecer formulario
-
+
You have no tradable assets
No tiene activos intercambiables
-
+
From
Desde
-
- Enter an amount
- Ingrese una cantidad
+
+ Entered amount must be higher than 0.
+
+
+
+
+ Select an order.
+
-
+
MAX
MAX
-
+
To
A
-
+
Pick an order
Elegir una orden
-
+
Price
Precio
-
+
Better price found: %1. Updating forms.
Mejor precio encontrado: %1. Actualización de formularios.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
Mejor precio (%1) encontrado pero la cantidad recibida (%2) es más baja que la actual (%3). Haga clic aquí para actualizar el pedido seleccionado.
-
+
%1
%1
-
- Tradable:
- Negociable:
-
-
-
- Min: %1
- Mín.: %1
+
+ Balance:
+
-
+
Pick a coin
Elija una moneda
-
+
SWAP NOW
CAMBIE AHORA
-
+
Failed to place the order
Error al realizar el pedido
-
+
Placed the order
Realizó el pedido El
-
- Entered amount must be superior than 0.
- monto ingresado debe ser superior a 0.
-
-
-
- You must select an order.
- Debe seleccionar un pedido.
-
-
-
- Entered amount is below the minimum required by this order: %1
- El monto ingresado está por debajo del mínimo requerido por esta orden: %1
-
-
-
-
- %1 needs to be enabled in order to use %2
- %1 debe habilitarse para usar %2
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
- se debe rellenar el saldo de %1, se requiere un saldo distinto de cero para pagar el gas de %2 transacciones
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
- %1 el saldo no tiene fondos suficientes para pagar el gas de %2 transacciones
-
-
-
+
No buy orders found for %1.
No se encontraron órdenes de compra para %1.
-
+
You can check later or try to sell a different coin.
Puede verificar más tarde o intentar vender una moneda diferente.
-
+
Calculating fee estimate...
Calculando tarifa estimada...
-
+
Total %1 fees:
Total de %1 tarifas:
-
+
%2 (%3)
%2 (%3)
@@ -4230,91 +4258,114 @@ Las tarifas de la red pueden variar mucho según el par comercial seleccionado.<
Realizar pedido
+
+ TradingViewChart
+
+
+ Loading market data
+ Cargando datos de mercado
+
+
+
+ There is no chart data for this ticker yet
+ No hay datos de gráficos para este ticker aún
+
+
TransactionDetailsModal
-
+
Transaction Details
Detalles de Transacción
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
%1 txid
-
+
copied to clipboard.
copiado al portapapeles.
-
+
Amount
Cantidad
-
+
Fees
Tarifas
-
+
From address
Desde dirección
-
+
To address
Para dirección
-
+
Date
Fecha
-
+
Unconfirmed
Sin confirmar
-
+
Transaction Hash
Hash de Transaccion
-
+
Confirmations
Confirmaciones
-
+
Block Height
Altura del Bloque
-
+
From
Desde
-
+
To
A
-
+
Notes
Notas
-
+
Close
Cerrar
-
+
View on Explorer
Ver en Explorer
@@ -4322,22 +4373,27 @@ Las tarifas de la red pueden variar mucho según el par comercial seleccionado.<
Transactions
-
+
Sent
Enviado
-
+
Received
Recibido
-
+
+ Poison
+
+
+
+
fees
tarifas
-
+
Unconfirmed
Sin confirmar
@@ -4472,7 +4528,7 @@ Esto puede tardar unos minutos...
atomic_dex::settings_page
-
+
An error has occurred.
Se ha producido un error.
@@ -4495,47 +4551,47 @@ Esto puede tardar unos minutos...
Necesita tener %1 para pagar la gasolina de %2 transacciones.
-
+
Checksum verification failed for %1.
La verificación de la suma de comprobación falló para %1.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
Suma de comprobación no válida para %1. Haga clic en el botón para convertir a dirección de mayúsculas y minúsculas.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
Dirección heredada utilizada para %1. Haga clic en el botón para convertir a una dirección de efectivo.
-
+
%1 address must be prefixed with 0x
La dirección %1 debe tener el prefijo 0x
-
+
%1 address length is invalid, please use a valid address.
La longitud de la dirección %1 no es válida, utilice una dirección válida.
-
+
%1 address is invalid.
La dirección %1 no es válida.
-
+
Invalid checksum.
Suma de comprobación no válida.
-
+
%1 address has invalid prefixes.
La dirección %1 tiene prefijos no válidos.
-
+
Backend error: %1
Error de backend: %1
@@ -4548,7 +4604,7 @@ Esto puede tardar unos minutos...
Cerrar sesión
-
+
Balance
Saldo
diff --git a/atomic_defi_design/assets/languages/atomic_defi_fr.ts b/atomic_defi_design/assets/languages/atomic_defi_fr.ts
index ca2981786a..764afef0bc 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_fr.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_fr.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
-
+
Label
-
+
This key already exists.
Cette clé existe déjà.
-
+
Address
Adresse
-
-
+
+
Cancel
Annuler
-
+
Convert
-
+
Edit
Éditer
-
+
Add
Ajouter
-
+
You need to enable %1 before adding this kind of address.
-
+
Enable
Activer
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
Le résultat de la récupération des fonds
@@ -307,7 +307,7 @@
-
+
Price provider is: %1
Fournisseur de prix : %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
Réglages
-
+
Support
Support
-
+
Privacy
Intimité
-
+
Disable Privacy?
-
+
Enter wallet password to confirm
-
+
Type password
Tapez votre mot de passe
-
+
Confirm
Confirmer
-
+
Cancel
Annuler
-
+
Privacy status
-
+
Privacy mode disabled successfully
-
-
+
+
Ok
Ok
-
+
Wrong password!
-
+
wallet password is incorrect
le mot de passe du portefeuille est incorrect
@@ -494,21 +499,34 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
- Les données de marché (prix, graphiques, etc.) marquées de l'icône ⓘ proviennent de sources tierces.<br><br>Les données proviennent de <a href="https://bandprotocol.com/"> Band Decentralized Oracle</a> et <a href="https://www.coingecko.com/fr">Coingecko </a>.<br><br><b>Paires prises en charge par Oracle:</b><br>%1<br><br><b>Dernière référence (Band Oracle) :</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
+ Les données de marché (prix, graphiques, etc.) marquées de l'icône ⓘ proviennent de sources tierces.<br><br>Les données proviennent de <a href="https://www.coingecko.com/fr">Coingecko </a>.
Chart
-
+
Loading market data
Chargement des données de marché
-
- There is no chart data for this pair yet
- Il n'y a pas encore de données graphiques pour cette paire
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
+ Fermer
@@ -732,83 +750,83 @@
ConfirmTradeModal
-
+
Confirm Exchange Details
Détails de la confirmation de l'échange
-
+
This swap request can not be undone and is a final event!
La requête de ce swap ne peut pas être annulé, c'est irréversible !
-
+
Security configuration
Configuration de la sécurité
-
+
Read more about dPoW
En savoir plus sur dPoW
-
+
Use custom protection settings for incoming %1 transactions
TICKER
Utiliser les paramètres de protection personnalisés pour les transactions %1 entrantes
-
+
Enable Komodo dPoW security
Activer la sécurité de Komodo dPoW
-
+
%1 confirmations for incoming %2 transactions
Il y a %1 confirmations pour les transactions entrantes du ticker %2
-
+
This transaction can take up to 60 mins - DO NOT close this application!
Cette transaction peut prendre jusqu'à 60 minutes - NE fermez PAS cette application !
-
+
Trade price is more than 50% different to CEX! Confirm?
Le prix est supérieur à 50% du prix sur les CEX ! Êtes-vous sûr ?
-
+
Loading fees...
-
+
<b>Total %1 fees:</b>
Frais totaux %1:
-
+
dPoW protected
Protégé par dPoW
-
+
Required Confirmations
Confirmations requises
-
+
Warning, this atomic swap is not dPoW protected!
Attention, ce swap atomique n'est pas protégé par dPoW !
-
+
Cancel
Annuler
-
+
Confirm
Confirmer
@@ -824,182 +842,182 @@
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
Le nombre actuel d'actifs activées ne correspond pas à vos spécifications de configuration. La configuration de vos actifs sera réinitialisée.
-
+
Matching
Recherche en cours
-
+
Order Matching
Recherche d'un ordre
-
+
Matched
Trouvé
-
+
Order Matched
Ordre trouvé
-
+
Ongoing
En cours
-
+
Swap Ongoing
Échange en cours
-
+
Successful
Réussi
-
+
Swap Successful
Échange terminé
-
+
Refunding
En cours de remboursement
-
+
Failed
Échoué
-
+
Swap Failed
Erreur lors de l'échange
-
+
Unknown
Inconnue
-
+
Unknown State
État inconnu
-
+
Started
Commencé
-
+
Negotiated
Négocié
-
+
Taker fee sent
Frais de preneur envoyés
-
+
Maker payment received
Paiement de l'envoyeur reçu
-
+
Maker payment wait confirm started
La confirmation d'attente de paiement de l'envoyeur a commencé
-
+
Maker payment validated and confirmed
Paiement de l'envoyeur validé et confirmé
-
+
Taker payment sent
Paiement du preneur envoyé
-
+
Taker payment spent
Paiement du preneur dépensé
-
+
Maker payment spent
Paiement de l'envoyeur dépensé
-
+
Finished
Fini
-
+
Start failed
Le démarrage a échoué
-
+
Negotiate failed
La négociation a échoué
-
+
Taker fee validate failed
Échec de la validation des frais du preneur
-
+
Maker payment transaction failed
La transaction de paiement du créateur a échoué
-
+
Maker payment Data send failed
Échec de l'envoi des données de paiement du créateur
-
+
Maker payment wait confirm failed
La confirmation de l'attente de paiement du créateur a échoué
-
+
Taker payment validate failed
La validation du paiement du preneur a échoué
-
+
Taker payment wait confirm failed
La confirmation de l'attente de paiement du preneur a échoué
-
+
Taker payment spend failed
Échec des dépenses de paiement du preneur
-
+
Maker payment wait refund started
attente de paiement du créateur, remboursement commencé
-
+
Maker payment refunded
Paiement du créateur remboursé
-
+
Maker payment refund failed
échec du remboursement du paiement du créateur
@@ -1083,7 +1101,7 @@
DexAppPasswordField
-
+
Type password
Tapez votre mot de passe
@@ -1384,7 +1402,7 @@
General
-
+
%n day(s)
%n jour(s)
@@ -1392,7 +1410,7 @@
-
+
%nd
day
@@ -1401,7 +1419,7 @@
-
+
%nh
hours
@@ -1410,7 +1428,7 @@
-
+
%nm
minutes
@@ -1419,7 +1437,7 @@
-
+
%ns
seconds
@@ -1428,7 +1446,7 @@
-
+
%nms
milliseconds
@@ -1437,92 +1455,117 @@
-
+
-
-
-
+
<b>Taker tx fee:</b>
Taxes de transaction du preneur:
-
+
<b>Dex tx fee:</b>
Taxes de transaction de DEX:
-
+
<b>Dex fee:</b>
Taxes de DEX:
-
+
<b>Maker tx fee:</b>
Taxes de transaction du créateur
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+
+
+
+
+ Enter an amount
+ Entrez un montant
+
+
+
Trading Fee
Frais d'échanges
-
+
Minimum Trading Amount
Frais d'échange minimum
-
+
Wallet %1 already exists
WALLETNAME
Le portefeuille %1 existe déjà
-
+
%1 balance is lower than the fees amount: %2 %3
La %1 balance est inférieur aux frais: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
Le solde négociable (après frais) %1 est inférieur au montant minimum de la transaction
-
+
Please fill the price field
Veuillez remplir le champ de prix
-
+
Please fill the volume field
-
-
+
+
Please wait for %1 to fully activate
-
-
+
+
%1 volume is lower than minimum trade amount
Le volume de %1 est inférieur au montant minimum de la transaction
-
-
+
+
%1 needs to be enabled in order to use %2
%1 doit être activé pour utiliser %2
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
Le solde %1 doit être financé, un solde différent de zéro est requis pour payer les frais de transactions de %2
-
+
Unknown Error
Erreur inconnue
@@ -1588,89 +1631,94 @@
Nom du portefeuille
-
+
Enter seed
Entrez la phrase de récupération
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
-
-
+
+
i understand
je comprends
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
Ok
-
+
Allow custom seed
Autoriser les phrases de récupération personnalisées
-
+
<strong>Allow custom seed</strong>
<strong>Autoriser les phrases personnalisées</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
Les phrases de départ personnalisées peuvent être moins sécurisées et plus faciles à déchiffrer qu'une phrase de départ ou une clé privée (WIF) conforme à BIP39 générée.<br><br>Pour confirmer que vous comprenez le risque et savez ce que vous faites, tapez <strong>'Je comprends'</strong> dans la case ci-dessous.
-
+
I understand
Je comprends
-
+
Next
Suivant
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Entrez le même mot de passe pour confirmer
-
+
Continue
Continuer
@@ -1714,10 +1762,15 @@ Try again or select 'Allow custom seed' to continue.
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 n'est pas activé - Souhaitez vous l'activer pour pouvoir selectionnez les meilleurs offres %2 ?<br><a href='#'>Oui</a> - <a href='#no'>Non</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1758,17 +1811,17 @@ Try again or select 'Allow custom seed' to continue.
Login
-
+
Incorrect Password
Mot de passe incorrect
-
+
Log In
-
+
Cancel
Annuler
@@ -1811,181 +1864,152 @@ They will be removed from the orderbook until you log in again.
Main
-
- Segwit
- Segwit
-
-
-
- Confirmation
- Confirmation
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
- Voulez-vous d'abord envoyer vos fonds %1 vers le portefeuille %2 ?
-
-
-
- Success
- Succès
-
-
-
- Your transaction is send, may take some time to arrive
- Votre transaction est envoyée, peut prendre un certain temps pour arriver
-
-
-
+
Price
Prix
-
+
Change 24hr
-
- Porfolio
-
-
-
-
+
Contract Address
-
+
Send
Envoyez
-
+
Enable %1 ?
Activer %1 ?
-
+
Yes
Oui
-
+
No
Non
-
+
Receive
Recevoir
-
+
+
Swap
Échange
-
+
+ Portfolio
+ Portfolio
+
+
+
is wallet only
-
+
Rewards
Récompenses
-
+
Faucet
Robinet
-
-
-
+
+
+
Public Key
-
+
Copied to Clipboard
Copier dans le presse-papier
-
+
Loading market data
Chargement des données de marché
-
+
There is no chart data for this ticker yet
Il n'y a pas encore de données graphiques pour ce ticker
-
+
Fetching transactions...
-
+
Please wait, %1 is %2
-
+
% activated...
-
+
No transactions available
-
+
Click to view your address on %1 (%2) block explorer
-
- Trade
- Échanger
-
-
-
+
Trading Information
Informations de Trading
-
+
Chart
Chart
-
-
+
+
Orders
Ordres
-
-
+
+
History
Historique
-
+
Place Order
Placer l'ordre
-
+
Order Selected
Ordre séléctionné
-
+
START SWAP
COMMENCER L'ÉCHANGE
@@ -2039,13 +2063,13 @@ They will be removed from the orderbook until you log in again.
MarketModeSelector
-
+
Sell %1
TICKER
-
+
Buy %1
TICKER
@@ -2098,17 +2122,17 @@ They will be removed from the orderbook until you log in again.
NewContactPopup
-
+
Contact name
-
+
This contact name already exists.
Ce nom de contact existe déjà.
-
+
+ ADD
@@ -2225,67 +2249,72 @@ They will be removed from the orderbook until you log in again.
Choisissez un mot de passe
-
+
Important: Back up your seed phrase before proceeding!
Important: sauvegardez votre phrase de recupération avant de continuer !
-
+
We recommend storing it offline.
Nous vous recommandons de le stocker hors ligne.
-
+
Generated Seed
Générer un Seed
-
+
Seed phrase
Phrase de récupération
-
+
copied to clipboard
copié dans le presse-papier
-
+
Next
Suivant
-
+
Let's double check your seed phrase
Vérifions à nouveau votre phrase de récupération
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
Votre phrase de récupération est importante - c'est pourquoi nous aimons nous assurer qu'elle est correcte. Nous vous poserons trois questions différentes au sujet de votre phrase source pour vous assurer que vous pourrez facilement restaurer votre portefeuille à tout moment.
-
+
Enter the
-
+
word
-
+
Check
Vérifier
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Entrez le même mot de passe pour confirmer
-
+
Continue
Continuer
@@ -2400,6 +2429,11 @@ They will be removed from the orderbook until you log in again.
Your wallet balance changed
Le solde de votre portefeuille a changé
+
+
+ Close
+ Fermer
+
%1 Enable status
@@ -2419,49 +2453,49 @@ They will be removed from the orderbook until you log in again.
-
+
Failed to disable %1
TICKER
-
+
Endpoint not reachable
Point final non accessible
-
+
Could not reach to endpoint
Impossible d'atteindre le point de terminaison
-
+
Show
Montrer
-
+
Restart
Redémarrer
-
+
Quit
Quitter
-
+
Notifications
-
+
There aren't any notifications
-
+
Mark all as read
Tout marquer comme lu
@@ -2469,100 +2503,95 @@ They will be removed from the orderbook until you log in again.
OrderForm
-
- Amount to sell
- Montant à vendre
+
+ Send
+ Envoyez
-
- Amount to receive
- Montant à recevoir
+
+ Receive
+ Recevoir
-
+
Max
Max
-
+
Swap 25% of your tradable balance.
-
+
Swap 50% of your tradable balance.
-
+
Swap 100% of your tradable balance.
-
+
Min Volume
-
+
Min amount to sell
-
+
Min amount to receive
-
+
Minimum accepted trade equals 10% of order volume.
-
+
Minimum accepted trade equals 25% of order volume.
-
+
Minimum accepted trade equals 50% of order volume.
-
+
Min volume:
Min volume :
-
+
Use custom minimum trade amount
Utiliser le montant d'échange minimum personnalisé
-
+
Price
Prix
-
+
Reduce 1% relative to CEX market price.
-
+
Use CEX market price.
-
+
Increase 1% relative to CEX market price.
-
-
- Volume
- Volume
-
OrderLine
@@ -2583,114 +2612,104 @@ They will be removed from the orderbook until you log in again.
OrderModal
-
- Swap Details
- Détails de l'échange
-
-
-
- Order Details
- Détails de l'ordre
-
-
-
+
Order Type
-
+
Maker Order
Ordre de vente
-
+
Taker Order
Ordre d'achat
-
+
Refund State
État de remboursement
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
Votre échange a échoué, mais le processus de remboursement automatique de votre paiement a déjà commencé. Veuillez patienter et garder l'application ouverte jusqu'à ce que vous receviez votre remboursement
-
+
Date
Date
-
+
Recover Funds
Récupérer des fonds
-
+
Refunding...
Remboursement...
-
+
View on Explorer
Voir dans l'explorateur
-
+
Cancel Order
Annuler l'ordre
-
+
Error ID
ID de l'erreur
-
-
+
+
Swap ID
ID du Swap
-
+
Maker Payment Sent Transaction ID
-
+
Maker Payment Spent Transaction ID
-
+
Maker Payment TXID
-
+
Taker Payment Spent Transaction ID
-
+
Taker Payment Sent Transaction ID
-
+
Taker Payment TXID
-
-
+
+
Error Log
Journal des erreurs
-
+
Close
Fermer
@@ -2717,43 +2736,43 @@ Please select a new order.
OrdersPage
-
+
From
De
-
+
To
Vers
-
+
Apply Filter
Appliquer les changements
-
+
Filter
Filtrer
-
+
Date
Date
-
+
Export CSV
Exporter CSV
-
+
Cancel All
-
+
Please choose the CSV export name and location
Veuillez choisir le nom et l'emplacement de l'exportation CSV
@@ -2826,7 +2845,7 @@ Please select a new order.
Portfolio
- ADD ASSET
+ ADD CRYPTO
@@ -2835,12 +2854,12 @@ Please select a new order.
Rechercher un actif
-
+
Show only coins with balance
Afficher uniquement les assets avec solde
-
+
(%1/%2)
(%1/%2)
@@ -2926,12 +2945,12 @@ Please select a new order.
ProView
-
+
Failed to place the order
Échec lors du placement de l'ordre
-
+
Placed the order
L'ordre a été placé avec succès
@@ -2979,7 +2998,7 @@ Please select a new order.
RecoverSeedModal
-
+
View seed and private keys
Afficher le seed et les clefs privées
@@ -2989,64 +3008,64 @@ Please select a new order.
Veuillez entrer votre mot de passe pour voir la phrase de récupération.
-
+
Seed
-
+
Backup Seed
-
+
Public Address copied to clipboard
-
+
Cancel
Annuler
-
+
Incorrect Password
Mot de passe incorrect
-
-
+
+
copied to clipboard
copié dans le presse-papier
-
-
+
+
RPC Password
Mot de passe RPC
-
+
Search a coin.
Rechercher une asset.
-
+
Public Address
Adresse publique
-
+
Private Key copied to clipboard
-
+
Private Key
Clé privée
-
+
View
Voir
@@ -3072,17 +3091,17 @@ Please select a new order.
RestartModal
-
+
Applying the changes...
Application des modifications...
-
+
Restarting the application...
Redémarrage de l'application ...
-
+
Restarting the application. %1
Redémarrage de l'application. %1
@@ -3116,162 +3135,172 @@ Please select a new order.
SendModal
-
+
Failed to send
Échec de l'envoi
-
+
Prepare to send
Préparez à envoyer du
-
+
Address of the recipient
Adresse du destinataire
-
+
Amount to send
Montant à envoyer
-
+
Gas price
Prix du gaz
-
+
Cancel
Annuler
-
+
Recipient's address
Adresse du destinataire
-
+
The address has to be mixed case.
L'adresse doit être mixte (case).
-
+
Failed to Broadcast
-
+
Fix
Réparer
-
+
MAX
MAX
-
+
Fiat amount: Unavailable
-
+
Fiat amount: %1
-
+
%1 amount: %2
-
+
Specify in Fiat
-
+
Specify in Crypto
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
Activer les frais personnalisés
-
+
Enter the custom fee
Entrez les frais personnalisées
-
+
Gas Limit
Limite de gaz
-
+
Custom Fee can't be higher than the amount
Les frais personnalisées ne peuvent pas être supérieurs au montant
-
+
Not enough funds.
Pas assez de fonds.
-
-
+
+
You have %1
AMT TICKER
Vous avez %1
-
-
+
+
Only use custom fees if you know what you are doing!
-
+
Prepare
Préparer
-
-
+
+
Send
Envoyez
-
+
%1 address
TICKER
-
+
copied to clipboard.
-
+
Amount
Montant
-
+
+ Memo
+
+
+
+
Fees
Frais
-
+
Date
Date
-
+
Back
Retour
@@ -3357,11 +3386,16 @@ Please select a new order.
+ Memo
+
+
+
+
Fees
Frais
-
+
Date
Date
@@ -3371,12 +3405,12 @@ Please select a new order.
Hachage de la transaction
-
+
Close
Fermer
-
+
View on Explorer
Voir dans l'explorateur
@@ -3384,8 +3418,8 @@ Please select a new order.
SettingModal
-
-
+
+
Cancel
Annuler
@@ -3420,191 +3454,196 @@ Please select a new order.
À propos & version
-
+
Enable Desktop Notifications
Activer les notifications
-
+
+ Hide Poison Transactions in History
+
+
+
+
Maximum number of enabled coins
Nombre maximum d'actifs activés
-
+
Logs
Journaux
-
+
Open Folder
Ouvrir le dossier
-
-
+
+
Reset wallet configuration
Réinitialiser la configuration du portefeuille
-
+
This will restart your wallet with default settings
Cela redémarrera votre portefeuille avec les paramètres par défaut
-
-
+
+
Confirm
Confirmer
-
+
Changing theme to %1
Changer le thème en %1
-
+
Disable 2FA?
-
+
Enter your wallet password to confirm
-
+
Type password
Tapez votre mot de passe
-
+
2FA status
-
+
2FA disabled successfully
-
-
+
+
Ok
Ok
-
+
Wrong password!
-
+
Wallet password is incorrect
-
+
Application Version
-
+
copied to clipboard
copié dans le presse-papier
-
+
Reset
Réinitialiser
-
+
Current Font
Police actuelle
-
+
Current font changed to %1.
La police actuelle est passée à %1.
-
+
Theme
Thème
-
+
Ask system's password before sending coins ? (2FA)
Demander le mot de passe du système avant d'envoyer des actifs ? (2FA)
-
+
Application version
Version de l'application
-
+
MM2 version
Version de MM2
-
+
MM2 Version
MM2 Version
-
+
MM2 Version copied to clipboard.
MM2 Version copiée dans le presse-papiers.
-
+
Qt version
Version de Qt
-
+
Qt Version
Qt Version
-
+
Qt Version copied to clipboard.
Version Qt copiée dans le presse-papiers.
-
+
Search Update
Rechercher une mise à jour
-
+
Logout
Se déconnecter
-
+
View seed and private keys
Afficher la phrase de récupération et les clefs privées
-
-
+
+
Show
Montrer
-
+
Setup Camouflage Password
Configurer le mot de passe de camouflage
-
+
Open
Ouvrir
-
+
Disclaimer and ToS
Clause de non-responsabilité et conditions d'utilisation
@@ -3612,27 +3651,14 @@ Please select a new order.
Sidebar
-
+
Search
Rechercher
- Add asset
- Ajouter un actif
-
-
-
- SmartChartView
-
-
- Loading market data
- Chargement des données de marché
-
-
-
- There is no chart data for this ticker yet
- Il n'y a pas encore de données graphiques pour cet actif
+ ADD CRYPTO
+
@@ -3663,10 +3689,15 @@ Please select a new order.
Taux CEX
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 n'est pas activé - Souhaitez vous l'activer pour pouvoir selectionnez les meilleurs offres %2 ?<br><a href='#'>Oui</a> - <a href='#no'>Non</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3763,7 +3794,7 @@ Please select a new order.
SubOrders
-
+
Orders
Ordres
@@ -3808,12 +3839,12 @@ Please select a new order.
Annuler
-
+
Apply filter
Appliquer changement
-
+
No results found
Aucun résultat trouvé
@@ -3894,62 +3925,78 @@ Network fees can vary greatly depending on your selected trading pair.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
Fournissez-vous un support utilisateur ?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
Oui! %1 offre une assistance via le <a href="%2">%1 serveur Discord</a>. L'équipe et la communauté sont toujours ravies de vous aider !
-
+
Who is behind %1?
Qui est derrière %1 ?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
%1 est développé par l'équipe de Komodo. Komodo est l'un des projets de blockchain les plus établis travaillant sur des solutions innovantes telles que les échanges atomiques, la preuve de travail différée et une architecture multichaîne interopérable.
-
+
Is it possible to develop my own white-label exchange on %1?
Est-il possible de développer mon propre échange en white label sur %1 ?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
Absolument! Vous pouvez lire notre documentation développeur pour plus de détails ou nous contacter avec vos demandes de partenariat. Vous avez une question technique spécifique? La communauté de développeurs %1 est toujours prête à vous aider !
-
+
Which devices can I use %1 on?
Sur quels appareils puis-je utiliser %1 ?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
%1 est disponible pour mobile sur <a href="%2">Android et iPhone, et pour ordinateur de bureau sur les systèmes d'exploitation Windows, Mac et Linux</a>.
-
+
Compliance Info
Informations de conformité
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
En raison de circonstances réglementaires et juridiques, les citoyens de certaines juridictions, y compris, mais sans s'y limiter, les États-Unis d'Amérique, le Canada, Hong Kong, Israël, Singapour, le Soudan, l'Autriche, l'Iran et tout autre État, pays ou autre juridiction sous embargo par les États-Unis d'Amérique ou l'Union européenne ne sont pas autorisés à utiliser cette application.
-
+
Changelog
Changelog
-
+
Open Logs Folder
Ouvrir le répertoire de logs
@@ -4019,157 +4066,138 @@ Network fees can vary greatly depending on your selected trading pair.
Cliquez ici pour voir les détails
+
+ TotalView
+
+
+ Receive %1
+
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
Échange
-
+
Instant trading with best orders
Trading instantané avec les meilleurs ordres
-
+
Reset form
-
+
You have no tradable assets
-
+
From
De
-
- Enter an amount
- Entrez un montant
+
+ Entered amount must be higher than 0.
+
+
+
+
+ Select an order.
+
-
+
MAX
MAX
-
+
To
Vers
-
+
Pick an order
Choisir une commande
-
+
Price
Prix
-
+
Better price found: %1. Updating forms.
Meilleur prix trouvé : %1. Mise à jour du formulaire.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
Meilleur prix (%1) trouvé mais la quantité reçue (%2) est inférieure à votre montant de réception (%3). Cliquez ici pour mettre à jour la commande sélectionnée.
-
+
%1
-
- Tradable:
- Disponible:
-
-
-
- Min: %1
+
+ Balance:
-
+
Pick a coin
Choisissez un actif
-
+
SWAP NOW
ÉCHANGER MAINTENANT
-
+
Failed to place the order
Échec lors du placement de l'ordre
-
+
Placed the order
L'ordre a été placé
-
- Entered amount must be superior than 0.
- Le montant saisi doit être supérieur à 0.
-
-
-
- You must select an order.
- Vous devez sélectionner une commande.
-
-
-
- Entered amount is below the minimum required by this order: %1
- Le montant saisi est inférieur au minimum requis par cette commande : %1
-
-
-
-
- %1 needs to be enabled in order to use %2
- %1 doit être activé pour utiliser %2
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
- Le solde %1 doit être financé, un solde différent de zéro est requis pour payer les frais de transactions de %2
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
-
-
-
-
+
No buy orders found for %1.
Aucun ordre d'achat trouvé pour %1.
-
+
You can check later or try to sell a different coin.
Vous pouvez vérifier plus tard ou essayer de vendre un actif différent.
-
+
Calculating fee estimate...
-
+
Total %1 fees:
Frais totaux %1 :
-
+
%2 (%3)
@@ -4212,91 +4240,114 @@ Network fees can vary greatly depending on your selected trading pair.
Placer l'ordre
+
+ TradingViewChart
+
+
+ Loading market data
+ Chargement des données de marché
+
+
+
+ There is no chart data for this ticker yet
+ Il n'y a pas encore de données graphiques pour ce ticker
+
+
TransactionDetailsModal
-
+
Transaction Details
Détails de la transaction
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
-
+
copied to clipboard.
-
+
Amount
Montant
-
+
Fees
Frais
-
+
From address
-
+
To address
-
+
Date
Date
-
+
Unconfirmed
Non confirmé
-
+
Transaction Hash
Hachage de la transaction
-
+
Confirmations
Confirmations
-
+
Block Height
Hauteur de bloc
-
+
From
De
-
+
To
Vers
-
+
Notes
Remarques
-
+
Close
Fermer
-
+
View on Explorer
Voir dans l'explorateur
@@ -4304,22 +4355,27 @@ Network fees can vary greatly depending on your selected trading pair.
Transactions
-
+
Received
Reçue
-
+
Sent
Envoyé
-
+
+ Poison
+
+
+
+
fees
frais
-
+
Unconfirmed
Non confirmé
@@ -4453,7 +4509,7 @@ This might take a few minutes...
atomic_dex::settings_page
-
+
An error has occurred.
@@ -4476,47 +4532,47 @@ This might take a few minutes...
Vous devez avoir %1 activée pour payer les frais de transactions de %2.
-
+
Checksum verification failed for %1.
Échec de la vérification du checksum de contrôle pour %1.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
-
+
%1 address must be prefixed with 0x
L'adresse %1 doit être précédée de 0x
-
+
%1 address length is invalid, please use a valid address.
La longueur de l'adresse %1 n'est pas valide, veuillez utiliser une adresse valide.
-
+
%1 address is invalid.
L'adresse %1 n'est pas valide.
-
+
Invalid checksum.
Somme de contrôle invalide.
-
+
%1 address has invalid prefixes.
L'adresse %1 a des préfixes non valides.
-
+
Backend error: %1
Erreur de backend : %1
@@ -4529,7 +4585,7 @@ This might take a few minutes...
Se déconnecter
-
+
Balance
Balance
diff --git a/atomic_defi_design/assets/languages/atomic_defi_lang_template.ts b/atomic_defi_design/assets/languages/atomic_defi_lang_template.ts
index 5836a5dfc1..fa46445515 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_lang_template.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_lang_template.ts
@@ -405,7 +405,7 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
diff --git a/atomic_defi_design/assets/languages/atomic_defi_ru.ts b/atomic_defi_design/assets/languages/atomic_defi_ru.ts
index 31ae9a0ed6..0f6bd5fc2f 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_ru.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_ru.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
-
+
Label
-
+
This key already exists.
Этот ключ уже существует.
-
+
Address
Адрес
-
-
+
+
Cancel
-
+
Convert
Преобразовать
-
+
Edit
Редактировать
-
+
Add
Добавить
-
+
You need to enable %1 before adding this kind of address.
-
+
Enable
Добавить
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
Результат восстановления средств
@@ -307,7 +307,7 @@
-
+
Price provider is: %1
Провайдер цены: %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
Настройки
-
+
Support
Поддержка
-
+
Privacy
Скрыть баланс
-
+
Disable Privacy?
-
+
Enter wallet password to confirm
-
+
Type password
Введите пароль
-
+
Confirm
-
+
Cancel
-
+
Privacy status
-
+
Privacy mode disabled successfully
-
-
+
+
Ok
Ок
-
+
Wrong password!
-
+
wallet password is incorrect
введен неправильный пароль
@@ -494,21 +499,34 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
- Рыночные данные (цены, графики, и тд.) отмеченные ⓘ иконкой получены от <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> и <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
+ Рыночные данные (цены, графики, и тд.) отмеченные ⓘ иконкой получены от <a href="https://coingecko.com">CoinGecko</a>.
Chart
-
+
Loading market data
Загрузка рыночных данных
-
- There is no chart data for this pair yet
- Нет данных для построения графика для этой торговой пары
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
+ Закрыть
@@ -732,83 +750,83 @@
ConfirmTradeModal
-
+
Confirm Exchange Details
Подтвердить данные обмена
-
+
Trade price is more than 50% different to CEX! Confirm?
Стоимость обмена в сравнении с CEX дороже более чем на 50%, вы подтверждаете сделку?
-
+
This swap request can not be undone and is a final event!
Этот запрос на своп не может быть отменен и является окончательным!
-
+
This transaction can take up to 60 mins - DO NOT close this application!
Эта транзакция может занять до 60 минут - НЕ закрывайте приложение!
-
+
Loading fees...
-
+
<b>Total %1 fees:</b>
-
+
Security configuration
Настройки безопасности
-
+
%1 confirmations for incoming %2 transactions
%1 подтверждений для входящих %2 транзакций
-
+
Read more about dPoW
Узнать больше о dPoW
-
+
Use custom protection settings for incoming %1 transactions
TICKER
Использовать пользовательские настройки защиты для входящих транзакций %1
-
+
Enable Komodo dPoW security
Включить Komodo dPoW
-
+
dPoW protected
dPoW защита
-
+
Required Confirmations
Необходимое количество подтверждений
-
+
Warning, this atomic swap is not dPoW protected!
Предупреждение, этот атомарный своп не защищен dPoW!
-
+
Cancel
Отменить
-
+
Confirm
Подтверждение
@@ -824,182 +842,182 @@
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
Текущее количество включенных монет не совпадает с конфигурацией. Ваша конфигурация активов будет сброшена.
-
+
Matching
Матчинг
-
+
Order Matching
Матчинг ордеров
-
+
Matched
Сматчен
-
+
Order Matched
Ордер сматчен
-
+
Ongoing
В процессе
-
+
Swap Ongoing
Своп продолжается
-
+
Successful
Успешно
-
+
Swap Successful
Своп успешно завершен
-
+
Refunding
Проводится возврат
-
+
Failed
Не завершено
-
+
Swap Failed
Своп не был завершен
-
+
Unknown
Неизвестно
-
+
Unknown State
Статус неизвестен
-
+
Started
Начат
-
+
Negotiated
Согласован
-
+
Taker fee sent
Комиссия тейкера отправлена
-
+
Maker payment received
Платеж мейкера получен
-
+
Maker payment wait confirm started
Ожидание платежа мейкера
-
+
Maker payment validated and confirmed
Платеж мейкера валидирован и подтвержден
-
+
Taker payment sent
Платеж тейкера отправлен
-
+
Taker payment spent
Платеж тейкера потрачен
-
+
Maker payment spent
Платеж мейкера потрачен
-
+
Finished
Завершено
-
+
Start failed
Не удалось начать
-
+
Negotiate failed
Согласование не прошло
-
+
Taker fee validate failed
Валидация комиссии тейкера не прошла
-
+
Maker payment transaction failed
Платежная транзакция мейкера не прошла
-
+
Maker payment Data send failed
Отправка платежных данных мейкера не прошла
-
+
Maker payment wait confirm failed
Платежная транзакция мейкера не была подтверждена
-
+
Taker payment validate failed
Не прошла валидация платежа тейкера
-
+
Taker payment wait confirm failed
Платежная транзакция тейкера не была подтверждена
-
+
Taker payment spend failed
Spend платежа тейкера не прошел
-
+
Maker payment wait refund started
Ожидание возврата платежа мейкера
-
+
Maker payment refunded
Платеж мейкера возвращен
-
+
Maker payment refund failed
Возврат платежа мейкера не выполнен
@@ -1083,7 +1101,7 @@
DexAppPasswordField
-
+
Type password
Введите пароль
@@ -1384,7 +1402,7 @@
General
-
+
%n day(s)
%n день
@@ -1393,7 +1411,7 @@
-
+
%nd
day
@@ -1403,7 +1421,7 @@
-
+
%nh
hours
@@ -1413,7 +1431,7 @@
-
+
%nm
minutes
@@ -1423,7 +1441,7 @@
-
+
%ns
seconds
@@ -1433,7 +1451,7 @@
-
+
%nms
milliseconds
@@ -1443,92 +1461,117 @@
-
+
-
-
-
+
<b>Taker tx fee:</b>
-
+
<b>Dex tx fee:</b>
-
+
<b>Dex fee:</b>
-
+
<b>Maker tx fee:</b>
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+ Мин: %1
+
+
+
+ Enter an amount
+ Введите количество
+
+
+
Trading Fee
Торговая комиссия
-
+
Minimum Trading Amount
Минимальный объем сделки
-
+
Wallet %1 already exists
WALLETNAME
Кошелек %1 уже существует
-
+
%1 balance is lower than the fees amount: %2 %3
%1 баланс менее чем размер комиссий: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
Торгуемый (после комиссий) баланс %1 - меньше минимальной суммы сделки
-
+
Please fill the price field
Пожалуйста, укажите цену
-
+
Please fill the volume field
-
-
+
+
Please wait for %1 to fully activate
-
-
+
+
%1 volume is lower than minimum trade amount
Сумма %1 меньше минимальной суммы сделки
-
-
+
+
%1 needs to be enabled in order to use %2
%1 должен быть активным для использования %2
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
нужно пополнить баланс %1 для оплаты газа %2 транзакций
-
+
Unknown Error
Неизвестная ошибка
@@ -1594,89 +1637,94 @@
Название кошелька
-
+
Enter seed
Введите сид-фразу
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
-
-
+
+
i understand
Я согласен
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
Ок
-
+
Allow custom seed
Разрешить пользовательский формат сид-фразы
-
+
<strong>Allow custom seed</strong>
<strong>Разрешить произвольный seed</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
Пользовательские исходные фразы могут быть менее безопасными и их легче взломать, чем сгенерированные исходные фразы или закрытый ключ (WIF), совместимые с BIP39.<br><br>Чтобы подтвердить, что вы понимаете риск и знаете, что делаете, введите <strong>'Я согласен'</strong> в поле ниже.
-
+
I understand
Я согласен
-
+
Next
Далее
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Введите тот же пароль для подтверждения
-
+
Continue
Продолжить
@@ -1720,10 +1768,15 @@ Try again or select 'Allow custom seed' to continue.
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 не активирован -Вы хотите активировать этот %2 актив чтобы видеть лучшие ордеры для него ?<br><a href='#'>Да</a> - <a href='#no'>Нет</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1764,17 +1817,17 @@ Try again or select 'Allow custom seed' to continue.
Login
-
+
Incorrect Password
Неправильный пароль
-
+
Log In
-
+
Cancel
Отменить
@@ -1817,181 +1870,152 @@ They will be removed from the orderbook until you log in again.
Main
-
- Segwit
- Segwit
-
-
-
- Confirmation
- Подтверждение
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
- Хотели бы вы сначала отправить ваши %1 средства на кошелек %2?
-
-
-
- Success
- Успех
-
-
-
- Your transaction is send, may take some time to arrive
- Ваша транзакция была отправлена, получение может занять какое-то время
-
-
-
+
Price
Цена
-
+
Change 24hr
-
- Porfolio
-
-
-
-
+
Contract Address
-
+
Send
Отправить
-
+
Enable %1 ?
Активировать %1 ?
-
+
Yes
Да
-
+
No
Нет
-
+
Receive
Получить
-
+
+
Swap
Обменять
-
+
+ Portfolio
+ Портфолио
+
+
+
is wallet only
-
+
Rewards
Награды
-
+
Faucet
Фаусет
-
-
-
+
+
+
Public Key
-
+
Copied to Clipboard
Скопировано в буфер обмена
-
+
Loading market data
Загрузка рыночных данных
-
+
There is no chart data for this ticker yet
Для данного актива пока еще нет графиков данных
-
+
Fetching transactions...
-
+
Please wait, %1 is %2
-
+
% activated...
-
+
No transactions available
-
+
Click to view your address on %1 (%2) block explorer
-
- Trade
- торговля
-
-
-
+
Trading Information
Торговая информация
-
+
Chart
График
-
-
+
+
Orders
Ордеры
-
-
+
+
History
История
-
+
Place Order
Разместить ордер
-
+
Order Selected
Ордер выбран
-
+
START SWAP
НАЧАТЬ ОБМЕН
@@ -2045,13 +2069,13 @@ They will be removed from the orderbook until you log in again.
MarketModeSelector
-
+
Sell %1
TICKER
-
+
Buy %1
TICKER
@@ -2104,17 +2128,17 @@ They will be removed from the orderbook until you log in again.
NewContactPopup
-
+
Contact name
-
+
This contact name already exists.
Контакт с таким именем уже существует.
-
+
+ ADD
@@ -2231,67 +2255,72 @@ They will be removed from the orderbook until you log in again.
Задайте пароль
-
+
Important: Back up your seed phrase before proceeding!
Важно: убедитесь, что вы сохранили ваш seed ключ, прежде чем продолжить!
-
+
We recommend storing it offline.
Мы рекумендуем хранить его офлайн.
-
+
Generated Seed
Сгенерированный seed ключ
-
+
Seed phrase
Seed фраза
-
+
copied to clipboard
скопировано в буфер
-
+
Next
Далее
-
+
Let's double check your seed phrase
Давайте перепроверим ваш seed ключ
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
Ваш seed ключ важен, и поэтому мы хотим убедиться, что вы его сохранили. Мы зададим вам три разных вопроса о вашем seed ключе, чтобы убедиться, что вы сможете легко восстановить свой кошелек, когда захотите.
-
+
Enter the
-
+
word
-
+
Check
Проверить
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Введите тот же пароль для подтверждения
-
+
Continue
Продолжить
@@ -2406,6 +2435,11 @@ They will be removed from the orderbook until you log in again.
Your wallet balance changed
Баланс вашего кошелька изменился
+
+
+ Close
+ Закрыть
+
%1 Enable status
@@ -2425,49 +2459,49 @@ They will be removed from the orderbook until you log in again.
-
+
Failed to disable %1
TICKER
-
+
Endpoint not reachable
Эндпоинт не доступен
-
+
Could not reach to endpoint
Не удалось подключиться
-
+
Show
Показать
-
+
Restart
Перезапустить
-
+
Quit
Выйти
-
+
Notifications
-
+
There aren't any notifications
-
+
Mark all as read
Отметить все как прочитанные
@@ -2475,97 +2509,92 @@ They will be removed from the orderbook until you log in again.
OrderForm
-
+
Price
Цена
-
+
Reduce 1% relative to CEX market price.
-
+
Use CEX market price.
-
+
Increase 1% relative to CEX market price.
-
- Volume
- Объем
-
-
-
- Amount to sell
- Сумма для продажи
+
+ Send
+ Отправить
-
- Amount to receive
- Получаемая сумма
+
+ Receive
+ Получить
-
+
Max
Макс
-
+
Swap 25% of your tradable balance.
-
+
Swap 50% of your tradable balance.
-
+
Swap 100% of your tradable balance.
-
+
Min Volume
-
+
Min amount to sell
-
+
Min amount to receive
-
+
Minimum accepted trade equals 10% of order volume.
-
+
Minimum accepted trade equals 25% of order volume.
-
+
Minimum accepted trade equals 50% of order volume.
-
+
Min volume:
Мин. объем:
-
+
Use custom minimum trade amount
Задать минимальный объем сделки
@@ -2589,114 +2618,104 @@ They will be removed from the orderbook until you log in again.
OrderModal
-
- Swap Details
- Детали свопа
-
-
-
- Order Details
- Детали ордера
-
-
-
+
Order Type
-
+
Maker Order
Мейкер ордер
-
+
Taker Order
Тейкер ордер
-
+
Refund State
Статус рефанда
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
Обмен не был завершен, но процесс автоматического рефанда уже начался. Пожалуйста, подождите, оставляя приложение открытым, пока вы не получите свои средства
-
+
Date
Дата
-
+
Error ID
ID ошибки
-
-
+
+
Error Log
Лог ошибки
-
+
Close
Закрыть
-
+
Cancel Order
Отменить ордер
-
-
+
+
Swap ID
ID обмена
-
+
Maker Payment Sent Transaction ID
-
+
Maker Payment Spent Transaction ID
-
+
Maker Payment TXID
-
+
Taker Payment Spent Transaction ID
-
+
Taker Payment Sent Transaction ID
-
+
Taker Payment TXID
-
+
Recover Funds
Восстановить средства
-
+
Refunding...
Возмещается...
-
+
View on Explorer
Показать в эксплорере
@@ -2723,43 +2742,43 @@ Please select a new order.
OrdersPage
-
+
From
От
-
+
To
Кому
-
+
Export CSV
Скачать CSV
-
+
Filter
Фильтр
-
+
Date
Дата
-
+
Apply Filter
Применить фильтр
-
+
Cancel All
-
+
Please choose the CSV export name and location
Выберите название и расположение загружаемого файла
@@ -2832,7 +2851,7 @@ Please select a new order.
Portfolio
- ADD ASSET
+ ADD CRYPTO
@@ -2841,12 +2860,12 @@ Please select a new order.
Поиск актива
-
+
Show only coins with balance
Показывать только монеты с балансом
-
+
(%1/%2)
(%1/%2)
@@ -2932,12 +2951,12 @@ Please select a new order.
ProView
-
+
Failed to place the order
Не удалось разместить ордер
-
+
Placed the order
Ордер размещен
@@ -2985,7 +3004,7 @@ Please select a new order.
RecoverSeedModal
-
+
View seed and private keys
Показать seed-фразу и приватные ключи
@@ -2995,64 +3014,64 @@ Please select a new order.
Введите пароль для отображения seed ключа.
-
+
Seed
-
+
Backup Seed
-
+
Public Address copied to clipboard
-
+
Cancel
Отменить
-
+
Incorrect Password
Неправильный пароль
-
-
+
+
copied to clipboard
скопировано в буфер
-
-
+
+
RPC Password
RPC Пароль
-
+
Search a coin.
Поиск актива.
-
+
Public Address
Публичный адрес
-
+
Private Key copied to clipboard
-
+
Private Key
Приватный ключ
-
+
View
Показать
@@ -3078,17 +3097,17 @@ Please select a new order.
RestartModal
-
+
Applying the changes...
Применяю изменения...
-
+
Restarting the application...
Перезапуск приложения...
-
+
Restarting the application. %1
Перезапуск приложения. %1
@@ -3122,162 +3141,172 @@ Please select a new order.
SendModal
-
+
Failed to send
Ошибка отправки
-
+
Prepare to send
Подготовить к отправке
-
+
Address of the recipient
Адрес получателя
-
+
Amount to send
Сумма для отправки
-
+
Gas price
Цена газа
-
+
Cancel
-
+
Recipient's address
Адрес получателя
-
+
The address has to be mixed case.
Адрес должен быть написан в смешанном регистре.
-
+
Failed to Broadcast
-
+
Fix
Фикс
-
+
MAX
МАКС
-
+
Fiat amount: Unavailable
-
+
Fiat amount: %1
-
+
%1 amount: %2
-
+
Specify in Fiat
-
+
Specify in Crypto
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
Включить настройку комиссий
-
+
Enter the custom fee
Введите комиссию сети
-
+
Gas Limit
Gas лимит
-
+
Custom Fee can't be higher than the amount
Комиссия не может больше общей суммы транзакции
-
+
Not enough funds.
Недостаточно средств.
-
-
+
+
You have %1
AMT TICKER
У вас %1
-
-
+
+
Only use custom fees if you know what you are doing!
-
+
Prepare
Подготовка
-
-
+
+
Send
Отправить
-
+
%1 address
TICKER
-
+
copied to clipboard.
-
+
Amount
Сумма
-
+
+ Memo
+
+
+
+
Fees
Комиссия
-
+
Date
Дата
-
+
Back
Назад
@@ -3363,11 +3392,16 @@ Please select a new order.
+ Memo
+
+
+
+
Fees
Комиссия сети
-
+
Date
Дата
@@ -3377,12 +3411,12 @@ Please select a new order.
Хэш транзакции
-
+
Close
Закрыть
-
+
View on Explorer
Смотреть в эксплорере
@@ -3390,8 +3424,8 @@ Please select a new order.
SettingModal
-
-
+
+
Cancel
Отмена
@@ -3426,191 +3460,196 @@ Please select a new order.
О программе
-
+
Enable Desktop Notifications
Включить уведомления для рабочего стола
-
+
+ Hide Poison Transactions in History
+
+
+
+
Maximum number of enabled coins
Макс. количество активированных монет
-
+
Logs
Логи
-
+
Open Folder
Открыть папку с логами
-
-
+
+
Reset wallet configuration
Сбросить конфигурацию кошелька
-
+
This will restart your wallet with default settings
Эта опция перезапустит ваш кошелек с настройками по умолчанию
-
-
+
+
Confirm
Подтвердить
-
+
Changing theme to %1
Изменить тему на %1
-
+
Disable 2FA?
-
+
Enter your wallet password to confirm
-
+
Type password
Введите пароль
-
+
2FA status
-
+
2FA disabled successfully
-
-
+
+
Ok
Ок
-
+
Wrong password!
-
+
Wallet password is incorrect
-
+
Application Version
-
+
copied to clipboard
скопировано в буфер
-
+
Reset
Сбросить
-
+
Current Font
Текущий шрифт
-
+
Current font changed to %1.
Текущий шрифт изменен на %1.
-
+
Theme
Тема
-
+
Ask system's password before sending coins ? (2FA)
Спрашивать системный пароль перед отправкой монет? (2FA)
-
+
Application version
Версия приложения
-
+
MM2 version
Версия MM2
-
+
MM2 Version
Версия MM2
-
+
MM2 Version copied to clipboard.
Версия MM2 скопирована в буфер обмена.
-
+
Qt version
Версия Qt
-
+
Qt Version
Версия Qt
-
+
Qt Version copied to clipboard.
Версия Qt скопирована в буфер обмена.
-
+
Search Update
Проверить на обновления
-
+
Logout
Выход
-
+
View seed and private keys
Показать seed-фразу и приватные ключи
-
-
+
+
Show
Показать
-
+
Setup Camouflage Password
Установить камуфляжный пароль
-
+
Open
Установить
-
+
Disclaimer and ToS
Дисклеймер и Условия Использования
@@ -3618,27 +3657,14 @@ Please select a new order.
Sidebar
-
+
Search
Поиск
- Add asset
- Добавить крипто актив
-
-
-
- SmartChartView
-
-
- Loading market data
- Загрузка рыночных данных
-
-
-
- There is no chart data for this ticker yet
- Для этого графика пока еще нет данных
+ ADD CRYPTO
+
@@ -3669,10 +3695,15 @@ Please select a new order.
CEX цена
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 не активирован -Вы хотите активировать этот %2 актив чтобы видеть лучшие ордеры для него ?<br><a href='#'>Да</a> - <a href='#no'>Нет</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3769,7 +3800,7 @@ Please select a new order.
SubOrders
-
+
Orders
Ордеры
@@ -3814,12 +3845,12 @@ Please select a new order.
Отменить
-
+
Apply filter
Применить фильтр
-
+
No results found
Не найдено результатов
@@ -3898,62 +3929,78 @@ Network fees can vary greatly depending on your selected trading pair.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
Предоставляете ли вы поддержку пользователей?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
Да! %1 предоставляет саппорт через <a href="%2">%1 Discord сервер</a>. Команда и сообщество проекта всегда рады помочь!
-
+
Who is behind %1?
Кто создал %1?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
%1 разрабатывается командой Komodo. Komodo один из наиболее известных блокчейн проектов который работает над такими инновационными решениями как Атомарные Свопы, "Отложенный" PoW, а также над совместимой мульти-чейн архитектурой.
-
+
Is it possible to develop my own white-label exchange on %1?
Возможно ли разработать децентрализованную биржу с моим брендом на %1?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
Обязательно! Вы можете прочитать нашу документацию для разработчиков для более детального ревью или же связаться с нашей командой по поводу партнерства. Есть очень специфичный технический вопрос? %1 наше комьюнити разработчиков всегда готово помочь!
-
+
Which devices can I use %1 on?
На каких устройствах я могу использовать %1 ?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
%1 доступен для Android и iOS мобильных устройв <a href="%2">, и для операционных систем Windows, Mac и Linux</a> на PC.
-
+
Compliance Info
Комплаенс информация
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
В связи с нормативными и правовыми обстоятельствами граждане определенных юрисдикций, включая, помимо прочего, Соединенные Штаты Америки, Канаду, Гонконг, Израиль, Сингапур, Судан, Австрию, Иран и любые другие государства, страны или другие юрисдикции, на которые введено эмбарго. Соединенных Штатов Америки или Европейского Союза не могут использовать это приложение.
-
+
Changelog
Журнал изменений
-
+
Open Logs Folder
Открыть папку с логами
@@ -4023,157 +4070,138 @@ Network fees can vary greatly depending on your selected trading pair.
Нажмите, чтобы узнать подробности
+
+ TotalView
+
+
+ Receive %1
+
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
Обменять
-
+
Instant trading with best orders
Быстрая торговля с лучшими ордерами
-
+
Reset form
-
+
You have no tradable assets
-
+
From
От
-
- Enter an amount
- Введите количество
+
+ Entered amount must be higher than 0.
+
-
+
+ Select an order.
+
+
+
+
MAX
МАКС
-
+
To
Получатель
-
+
Pick an order
Выберите ордер
-
+
Price
Цена
-
+
Better price found: %1. Updating forms.
Найдена цена лучше: %1.Обновляю форму.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
Лучшая цена (%1) была обнаружена но количество (%2) меньше чем в вашем текущем ордере (%3).Нажмите чтобы обновить выбранный ордер.
-
+
%1
%1
-
- Tradable:
- Доступно:
-
-
-
- Min: %1
- Мин: %1
+
+ Balance:
+
-
+
Pick a coin
Выберите монету
-
+
SWAP NOW
-
+
Failed to place the order
Не удалось разместить ордер
-
+
Placed the order
Ордер размещен
-
- Entered amount must be superior than 0.
- Введенная сумма должна быть больше 0.
-
-
-
- You must select an order.
- Вы должны выбрать ордер.
-
-
-
- Entered amount is below the minimum required by this order: %1
- Введнная сумма меньше минимальной для этого ордера: %1
-
-
-
-
- %1 needs to be enabled in order to use %2
- %1 должен быть активным для использования %2
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
- нужно пополнить баланс %1 для оплаты газа %2 транзакций
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
-
-
-
-
+
No buy orders found for %1.
Не найдено ордеров на покупку дл] %1.
-
+
You can check later or try to sell a different coin.
Вы можете попробовать позже или попробовать продать другой актив.
-
+
Calculating fee estimate...
-
+
Total %1 fees:
Всего %1 комиссий:
-
+
%2 (%3)
%2 (%3)
@@ -4216,91 +4244,114 @@ Network fees can vary greatly depending on your selected trading pair.
Разместить ордер
+
+ TradingViewChart
+
+
+ Loading market data
+ Загрузка рыночных данных
+
+
+
+ There is no chart data for this ticker yet
+ Для данного актива пока еще нет графиков данных
+
+
TransactionDetailsModal
-
+
Transaction Details
Детали транзакции
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
-
+
copied to clipboard.
-
+
Amount
Сумма
-
+
Fees
Комиссия сети
-
+
From address
-
+
To address
-
+
Date
Дата
-
+
Unconfirmed
Не подтверждена
-
+
Transaction Hash
Хэш транзакции
-
+
Confirmations
Подтверждения
-
+
Block Height
Блок
-
+
From
От
-
+
To
Получатель
-
+
Notes
Заметки
-
+
Close
Закрыть
-
+
View on Explorer
Смотреть в эксплорере
@@ -4308,22 +4359,27 @@ Network fees can vary greatly depending on your selected trading pair.
Transactions
-
+
Received
Получено
-
+
Sent
Отправлено
-
+
+ Poison
+
+
+
+
fees
комиссии
-
+
Unconfirmed
Не подтверждена
@@ -4457,7 +4513,7 @@ This might take a few minutes...
atomic_dex::settings_page
-
+
An error has occurred.
@@ -4480,47 +4536,47 @@ This might take a few minutes...
Вам нужен %1 для оплаты газа за %2 транзакции.
-
+
Checksum verification failed for %1.
Checksum верфикация неуспешна для %1.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
-
+
%1 address must be prefixed with 0x
%1 адрес должен начинаться с 0x
-
+
%1 address length is invalid, please use a valid address.
%1 длина адреса не валидна, пожалуйста используйте валидный адрес.
-
+
%1 address is invalid.
некорректный адрес %1.
-
+
Invalid checksum.
Неверная чек-сумма.
-
+
%1 address has invalid prefixes.
у адреса %1 неверный префикс.
-
+
Backend error: %1
Ошибка бэкенда: %1
@@ -4533,7 +4589,7 @@ This might take a few minutes...
Выход
-
+
Balance
Баланс
diff --git a/atomic_defi_design/assets/languages/atomic_defi_tr.ts b/atomic_defi_design/assets/languages/atomic_defi_tr.ts
index d4fe94d9c5..388a76a257 100644
--- a/atomic_defi_design/assets/languages/atomic_defi_tr.ts
+++ b/atomic_defi_design/assets/languages/atomic_defi_tr.ts
@@ -4,53 +4,53 @@
AddAddressForm
-
+
Use standard network address
-
+
Label
-
+
This key already exists.
Bu anahtar zaten mevcut.
-
+
Address
Adres
-
-
+
+
Cancel
İptal
-
+
Convert
-
+
Edit
Düzenle
-
+
Add
Ekle
-
+
You need to enable %1 before adding this kind of address.
-
+
Enable
Etkinleştir
@@ -233,7 +233,7 @@
App
-
+
Recover Funds Result
Fon Kurtarma Sonucu
@@ -307,7 +307,7 @@
-
+
Price provider is: %1
@@ -315,68 +315,73 @@
Bottom
-
+
+ Add Crypto
+
+
+
+
Settings
Ayarlar
-
+
Support
Destek
-
+
Privacy
Gizlilik
-
+
Disable Privacy?
-
+
Enter wallet password to confirm
-
+
Type password
-
+
Confirm
Onayla
-
+
Cancel
İptal
-
+
Privacy status
-
+
Privacy mode disabled successfully
-
-
+
+
Ok
Tamam
-
+
Wrong password!
-
+
wallet password is incorrect
@@ -494,21 +499,34 @@
- Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>
- ⓘ simgesiyle işaretlenen piyasa verileri (fiyatlar, grafikler vb.) üçüncü taraf kaynaklardan alınmıştır. .<br><br>Veriler kaynakları: <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> ve <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Son referans (Band Oracle):</b><br><a href="%2">%2</a>
+ Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.
+ ⓘ simgesiyle işaretlenen piyasa verileri (fiyatlar, grafikler vb.) üçüncü taraf kaynaklardan alınmıştır. .<br><br>Veriler kaynakları: <a href="https://coingecko.com">CoinGecko</a>.
Chart
-
+
Loading market data
Piyasa bilgisi yükleniyor
-
- There is no chart data for this pair yet
- Bu parite için henüz grafik verisi yok
+
+ There is no chart data for this pair
+
+
+
+
+ There is no chart data for %1 (testcoin) pairs
+
+
+
+
+ ClaimFaucetResultModal
+
+
+ Close
+ Kapat
@@ -732,83 +750,83 @@
ConfirmTradeModal
-
+
Confirm Exchange Details
Al-Sat Detaylarını Onayla
-
+
This swap request can not be undone and is a final event!
Bu takas isteği geri döndürülemez!
-
+
Security configuration
Güvenlik yapılandırması
-
+
Read more about dPoW
dPoW hakkında daha fazla bilgi
-
+
Use custom protection settings for incoming %1 transactions
TICKER
%1 işlemleri için özel güvenlik ayarları kullan
-
+
Enable Komodo dPoW security
Komodo dPoW güvenliğini etkinleştir
-
+
%1 confirmations for incoming %2 transactions
Gelen %2 işlemleri için %1 onay
-
+
This transaction can take up to 60 mins - DO NOT close this application!
Bu işlem 60 dakikayı bulabilir - Programı KAPATMAYINIZ!
-
+
Trade price is more than 50% different to CEX! Confirm?
Takas ücreti CEX ile karşılaştırıldığında %50'den daha fazla farka sahip. Onaylıyor musunuz?
-
+
Loading fees...
-
+
<b>Total %1 fees:</b>
<b>Toplam %1 işlem giderleri: </b>
-
+
dPoW protected
dPoW korumalı
-
+
Required Confirmations
Gereken Onaylar
-
+
Warning, this atomic swap is not dPoW protected!
Uyarı, bu atomik takas dPoW korumalı değil!
-
+
Cancel
İptal
-
+
Confirm
Onayla
@@ -824,182 +842,182 @@
Dashboard
-
+
The current number of enabled coins does not match your configuration specification. Your assets configuration will be reset.
Etkinleştirilmiş koinlerin mevcut sayısı yapılandırma ayarlarınızla eşleşmiyor. Varlık yapılandırmanız sıfırlanacak.
-
+
Matching
Eşleşiyor
-
+
Order Matching
Emir Eşleşiyor
-
+
Matched
Eşleşti
-
+
Order Matched
Emir Eşleşti
-
+
Ongoing
Devam ediyor
-
+
Swap Ongoing
Takas Devam Ediyor
-
+
Successful
Başarılı
-
+
Swap Successful
Takas Başarılı
-
+
Refunding
Geri ödeniyor
-
+
Failed
Başarısız
-
+
Swap Failed
Takas Başarısız
-
+
Unknown
Bilinmiyor
-
+
Unknown State
Bilinmeyen durum
-
+
Started
Başlatıldı
-
+
Negotiated
Pazarlık yapıldı
-
+
Taker fee sent
Alıcı ücreti gönderildi
-
+
Maker payment received
Yapıcı ödemesi alındı
-
+
Maker payment wait confirm started
Yapıcı ödemesi bekleme onayı başladı
-
+
Maker payment validated and confirmed
Yapıcı ödemesi doğrulandı ve onaylandı
-
+
Taker payment sent
Alıcı ödemesi gönderildi
-
+
Taker payment spent
Alıcı ödemesi harcandı
-
+
Maker payment spent
Yapıcı ödemesi harcandı
-
+
Finished
Tamamlandı
-
+
Start failed
Başlatılamadı
-
+
Negotiate failed
Pazarlık başarısız
-
+
Taker fee validate failed
Alıcı ücreti doğrulanamadı
-
+
Maker payment transaction failed
Yapıcı ödeme işlemi başarısız
-
+
Maker payment Data send failed
Yapıcı ödeme verileri gönderilemedi
-
+
Maker payment wait confirm failed
Yapıcı ödemesi bekleme onayı başarısız
-
+
Taker payment validate failed
Alıcı ödemesi doğrulanamadı
-
+
Taker payment wait confirm failed
Alıcı ödemesi bekleme onayı başarısız oldu
-
+
Taker payment spend failed
Alıcı ödeme harcaması başarısız oldu
-
+
Maker payment wait refund started
Yapıcı ödemesi bekleme iadesi başladı
-
+
Maker payment refunded
Yapıcı ödemesi iade edildi
-
+
Maker payment refund failed
Yapıcı ödeme iadesi başarısız
@@ -1083,7 +1101,7 @@
DexAppPasswordField
-
+
Type password
@@ -1384,14 +1402,14 @@
General
-
+
%n day(s)
%n gün
-
+
%nd
day
@@ -1399,7 +1417,7 @@
-
+
%nh
hours
@@ -1407,7 +1425,7 @@
-
+
%nm
minutes
@@ -1415,7 +1433,7 @@
-
+
%ns
seconds
@@ -1423,7 +1441,7 @@
-
+
%nms
milliseconds
@@ -1431,92 +1449,117 @@
-
+
-
-
-
+
<b>Taker tx fee:</b>
-
+
<b>Dex tx fee:</b>
-
+
<b>Dex fee:</b>
-
+
<b>Maker tx fee:</b>
-
+
+ %1 balance is zero
+
+
+
+
+ Activating %1 (%2%)
+
+
+
+
+ Loading wallet...
+
+
+
+
+ Min: %1
+
+
+
+
+ Enter an amount
+ Bir miktar gir
+
+
+
Trading Fee
Takas Ücreti
-
+
Minimum Trading Amount
Minimum Takas Hacmi
-
+
Wallet %1 already exists
WALLETNAME
%1 cüzdanı zaten mevcut
-
+
%1 balance is lower than the fees amount: %2 %3
%1 bakiye ücret tutarının altında: %2 %3
-
+
Tradable (after fees) %1 balance is lower than minimum trade amount
Takas edilebilir (ücretlerden sonra)%1 bakiyesi minimum işlem ücretinden düşük
-
+
Please fill the price field
Lütfen fiyat alanını doldurun
-
+
Please fill the volume field
-
-
+
+
Please wait for %1 to fully activate
-
-
+
+
%1 volume is lower than minimum trade amount
%1 hacmi, minimum işlem ücretinden düşük
-
-
+
+
%1 needs to be enabled in order to use %2
-
-
+
+
%1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
-
+
Unknown Error
Bilinmeyen Hata
@@ -1582,89 +1625,94 @@
Cüzdan Adı
-
+
Enter seed
-
+
Your seed is not BIP39 compliant.
Try again or select 'Allow custom seed' to continue.
-
-
+
+
i understand
Anladım
-
-
+
+
я согласен
-
-
+
+
je comprends
-
-
+
+
entiendo
-
-
+
+
anladım
-
-
+
+
ich verstehe
-
+
Ok
Tamam
-
+
Allow custom seed
Özel Seed'e izin ver
-
+
<strong>Allow custom seed</strong>
-
+
Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).<br><br>To confirm you understand the risk and know what you are doing, type <strong>'I understand'</strong> in the box below.
Özel çekirdek tümceler, oluşturulmuş bir BIP39 uyumlu çekirdek sözcük grubu veya özel anahtara (WIF).<br><br> Riski anladığınızı ve ne yaptığınızı bildiğinizi doğrulamak için lütfen aşağıdaki kutuya <strong>'Anladım'</strong> yazın.
-
+
I understand
Anladım
-
+
Next
İleri
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Doğrulamak için aynı parolayı giriniz
-
+
Continue
Devam
@@ -1708,10 +1756,15 @@ Try again or select 'Allow custom seed' to continue.
ListDelegate
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 etkin değil - En iyi %2 siparişini seçebilmesi için etkinleştirmek istiyor musunuz ? <br><a href='#'>Evet</a> - <a href='#no'>Hayır</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
This order requires a minimum amount of %1 %2 <br>You don't have enough funds.<br> %3
@@ -1752,17 +1805,17 @@ Try again or select 'Allow custom seed' to continue.
Login
-
+
Incorrect Password
Yanlış Parola
-
+
Log In
-
+
Cancel
İptal
@@ -1805,181 +1858,152 @@ They will be removed from the orderbook until you log in again.
Main
-
- Segwit
-
-
-
-
- Confirmation
-
-
-
-
- Do you want to send your %1 funds to %2 wallet first?
-
-
-
-
- Success
-
-
-
-
- Your transaction is send, may take some time to arrive
-
-
-
-
+
Price
Fiyat
-
+
Change 24hr
-
- Porfolio
-
-
-
-
+
Contract Address
-
+
Send
Gönder
-
+
Enable %1 ?
%1 Etkinleştirilsin mi ?
-
+
Yes
Evet
-
+
No
Hayır
-
+
Receive
Al
-
+
+
Swap
Takasla
-
+
+ Portfolio
+
+
+
+
is wallet only
-
+
Rewards
-
+
Faucet
Musluk
-
-
-
+
+
+
Public Key
-
+
Copied to Clipboard
Panoya Kopyalandı
-
+
Loading market data
Piyasa bilgisi yükleniyor
-
+
There is no chart data for this ticker yet
Henüz bu hisse senedi için grafik verisi yok
-
+
Fetching transactions...
-
+
Please wait, %1 is %2
-
+
% activated...
-
+
No transactions available
-
+
Click to view your address on %1 (%2) block explorer
-
- Trade
- Al Sat
-
-
-
+
Trading Information
Al Sat Bilgisi
-
+
Chart
Grafik
-
-
+
+
Orders
Emirler
-
-
+
+
History
Tarihçe
-
+
Place Order
Emir Ver
-
+
Order Selected
Emir Seçildi
-
+
START SWAP
Takası başlat
@@ -2033,13 +2057,13 @@ They will be removed from the orderbook until you log in again.
MarketModeSelector
-
+
Sell %1
TICKER
-
+
Buy %1
TICKER
@@ -2092,17 +2116,17 @@ They will be removed from the orderbook until you log in again.
NewContactPopup
-
+
Contact name
-
+
This contact name already exists.
Bu kişi adı zaten mevcut.
-
+
+ ADD
@@ -2219,67 +2243,72 @@ They will be removed from the orderbook until you log in again.
-
+
Important: Back up your seed phrase before proceeding!
Önemli: Devam etmeden önce seed kelimelerinizi yedekleyin!
-
+
We recommend storing it offline.
Çevrimdışı saklamanızı öneririz.
-
+
Generated Seed
Seed Oluştur
-
+
Seed phrase
-
+
copied to clipboard
-
+
Next
İleri
-
+
Let's double check your seed phrase
Seed kelimelerinizi tekrar kontrol edelim
-
+
Your seed phrase is important - that's why we like to make sure it's correct. We'll ask you three different questions about your seed phrase to make sure you'll be able to easily restore your wallet whenever you want.
Seed kelimeleriniz önemlidir - bu yüzden doğru olduğundan emin olmak istiyoruz. Cüzdanınızı istediğiniz zaman kolayca kurtarabileceğinizden emin olmak için seed kelimeleriniz hakkında üç farklı soru soracağız.
-
+
Enter the
-
+
word
-
+
Check
-
+
+ Enter password
+
+
+
+
Enter the same password to confirm
Doğrulamak için aynı parolayı giriniz
-
+
Continue
Devam
@@ -2394,6 +2423,11 @@ They will be removed from the orderbook until you log in again.
Your wallet balance changed
Cüzdan bakiyeniz değişti
+
+
+ Close
+ Kapat
+
%1 Enable status
@@ -2413,49 +2447,49 @@ They will be removed from the orderbook until you log in again.
-
+
Failed to disable %1
TICKER
-
+
Endpoint not reachable
Uç nokta ulaşılabilir değil
-
+
Could not reach to endpoint
Uç noktaya ulaşılamadı
-
+
Show
Göster
-
+
Restart
Yeniden Başlat
-
+
Quit
Çık
-
+
Notifications
-
+
There aren't any notifications
-
+
Mark all as read
@@ -2463,100 +2497,95 @@ They will be removed from the orderbook until you log in again.
OrderForm
-
- Amount to sell
- Satılacak miktar
+
+ Send
+ Gönder
-
- Amount to receive
- Alınacak miktar
+
+ Receive
+ Al
-
+
Max
Maks
-
+
Swap 25% of your tradable balance.
-
+
Swap 50% of your tradable balance.
-
+
Swap 100% of your tradable balance.
-
+
Min Volume
-
+
Min amount to sell
-
+
Min amount to receive
-
+
Minimum accepted trade equals 10% of order volume.
-
+
Minimum accepted trade equals 25% of order volume.
-
+
Minimum accepted trade equals 50% of order volume.
-
+
Min volume:
-
+
Use custom minimum trade amount
-
+
Price
Fiyat
-
+
Reduce 1% relative to CEX market price.
-
+
Use CEX market price.
-
+
Increase 1% relative to CEX market price.
-
-
- Volume
- Hacim
-
OrderLine
@@ -2577,114 +2606,104 @@ They will be removed from the orderbook until you log in again.
OrderModal
-
- Swap Details
- Takas Detayları
-
-
-
- Order Details
- Emir Detayları
-
-
-
+
Order Type
-
+
Maker Order
Yapıcı Emri
-
+
Taker Order
Alıcı Emri
-
+
Refund State
Geri Ödeme Durumu
-
+
Your swap failed but the auto-refund process for your payment started already. Please wait and keep application opened until you receive your payment back
Takas işlemi başarısız oldu, ancak otomatik geri ödeme süreci başladı. Lütfen bekleyin ve ödemenizi geri alana kadar uygulamayı açık tutun
-
+
Date
Tarih
-
+
Recover Funds
Fon Kurtar
-
+
Refunding...
-
+
View on Explorer
Explorer'da Göster
-
+
Cancel Order
Emri İptal Et
-
+
Error ID
Hata ID
-
-
+
+
Swap ID
-
+
Maker Payment Sent Transaction ID
-
+
Maker Payment Spent Transaction ID
-
+
Maker Payment TXID
-
+
Taker Payment Spent Transaction ID
-
+
Taker Payment Sent Transaction ID
-
+
Taker Payment TXID
-
-
+
+
Error Log
Hata Kaydı
-
+
Close
Kapat
@@ -2711,43 +2730,43 @@ Please select a new order.
OrdersPage
-
+
From
Gönderen
-
+
To
Alan
-
+
Apply Filter
Filtreyi Uygula
-
+
Filter
-
+
Date
Tarih
-
+
Export CSV
CSV'yi dışa aktar
-
+
Cancel All
-
+
Please choose the CSV export name and location
Lütfen CSV dışa aktarma adını ve konumunu seçin
@@ -2820,7 +2839,7 @@ Please select a new order.
Portfolio
- ADD ASSET
+ ADD CRYPTO
@@ -2829,12 +2848,12 @@ Please select a new order.
-
+
Show only coins with balance
Sadece bakiyesi olan koinleri göster
-
+
(%1/%2)
@@ -2920,12 +2939,12 @@ Please select a new order.
ProView
-
+
Failed to place the order
Emir başarısız oldu
-
+
Placed the order
Emir başarılı
@@ -2973,7 +2992,7 @@ Please select a new order.
RecoverSeedModal
-
+
View seed and private keys
Seed ve özel anahtarları görüntüle
@@ -2983,64 +3002,64 @@ Please select a new order.
Seed'i görmek için lütfen parolanızı giriniz.
-
+
Seed
-
+
Backup Seed
-
+
Public Address copied to clipboard
-
+
Cancel
İptal
-
+
Incorrect Password
Yanlış Parola
-
-
+
+
copied to clipboard
-
-
+
+
RPC Password
RPC Parolası
-
+
Search a coin.
Koin ara.
-
+
Public Address
Public Adres
-
+
Private Key copied to clipboard
-
+
Private Key
Private Key
-
+
View
Görüntüle
@@ -3066,17 +3085,17 @@ Please select a new order.
RestartModal
-
+
Applying the changes...
Değişiklikler uygulanıyor...
-
+
Restarting the application...
Uygulama yeniden başlatılıyor...
-
+
Restarting the application. %1
@@ -3110,162 +3129,172 @@ Please select a new order.
SendModal
-
+
Failed to send
Gönderilemedi
-
+
Prepare to send
Göndermeye hazırlanıyor
-
+
Address of the recipient
-
+
Amount to send
-
+
Gas price
-
+
Cancel
İptal
-
+
Recipient's address
Alıcı adresi
-
+
The address has to be mixed case.
Adres, büyük-küçük harf karışık olmalıdır.
-
+
Failed to Broadcast
-
+
Fix
Düzelt
-
+
MAX
MAKS
-
+
Fiat amount: Unavailable
-
+
Fiat amount: %1
-
+
%1 amount: %2
-
+
Specify in Fiat
-
+
Specify in Crypto
-
+
+ Enter memo
+
+
+
+
Enable Custom Fees
Özel İşlem Ücretlerini Etkinleştir
-
+
Enter the custom fee
Özel ücreti giriniz
-
+
Gas Limit
Gas Limiti
-
+
Custom Fee can't be higher than the amount
Özel İşlem Ücreti takas miktarından daha yüksek olamaz
-
+
Not enough funds.
Yetersiz bakiye.
-
-
+
+
You have %1
AMT TICKER
%1'niz var
-
-
+
+
Only use custom fees if you know what you are doing!
-
+
Prepare
Hazırla
-
-
+
+
Send
Gönder
-
+
%1 address
TICKER
-
+
copied to clipboard.
-
+
Amount
Miktar
-
+
+ Memo
+
+
+
+
Fees
İşlem Ücreti
-
+
Date
Tarih
-
+
Back
Geri
@@ -3351,11 +3380,16 @@ Please select a new order.
+ Memo
+
+
+
+
Fees
İşlem Ücreti
-
+
Date
Tarih
@@ -3365,12 +3399,12 @@ Please select a new order.
İşlem Hash'i
-
+
Close
Kapat
-
+
View on Explorer
Explorer'da göster
@@ -3378,8 +3412,8 @@ Please select a new order.
SettingModal
-
-
+
+
Cancel
İptal
@@ -3414,191 +3448,196 @@ Please select a new order.
-
+
Enable Desktop Notifications
Masaüstü Bildirimlerini Aktif Et
-
+
+ Hide Poison Transactions in History
+
+
+
+
Maximum number of enabled coins
Maksimum etkin koin sayısı
-
+
Logs
Günlük Kaydı
-
+
Open Folder
Klasörü Aç
-
-
+
+
Reset wallet configuration
-
+
This will restart your wallet with default settings
-
-
+
+
Confirm
Onayla
-
+
Changing theme to %1
-
+
Disable 2FA?
-
+
Enter your wallet password to confirm
-
+
Type password
-
+
2FA status
-
+
2FA disabled successfully
-
-
+
+
Ok
Tamam
-
+
Wrong password!
-
+
Wallet password is incorrect
-
+
Application Version
-
+
copied to clipboard
-
+
Reset
Sıfırla
-
+
Current Font
Geçerli Yazı Tipi
-
+
Current font changed to %1.
-
+
Theme
Tema
-
+
Ask system's password before sending coins ? (2FA)
Para göndermeden önce sistem parolası sorulsun mu ? (2FA)
-
+
Application version
Uygulama sürümü
-
+
MM2 version
MM2 sürümü
-
+
MM2 Version
-
+
MM2 Version copied to clipboard.
-
+
Qt version
Qt sürümü
-
+
Qt Version
-
+
Qt Version copied to clipboard.
-
+
Search Update
Güncelleme Ara
-
+
Logout
Çıkış
-
+
View seed and private keys
Seed ve özel anahtarları görüntüle
-
-
+
+
Show
Göster
-
+
Setup Camouflage Password
Kamuflaj Parolasını Ayarla
-
+
Open
Aç
-
+
Disclaimer and ToS
Sorumluluk Reddi ve K.Ş.
@@ -3606,27 +3645,14 @@ Please select a new order.
Sidebar
-
+
Search
Ara
- Add asset
- Varlık ekle
-
-
-
- SmartChartView
-
-
- Loading market data
- Piyasa bilgisi yükleniyor
-
-
-
- There is no chart data for this ticker yet
- Henüz bu kontrat için grafik verisi yok
+ ADD CRYPTO
+
@@ -3657,10 +3683,15 @@ Please select a new order.
CEX Oranı
-
+
%1 is not enabled - Do you want to enable it to be able to select %2 best orders ?<br><a href='#'>Yes</a> - <a href='#no'>No</a>
%1 etkin değil - En iyi %2 siparişini seçebilmesi için etkinleştirmek istiyor musunuz ? <br><a href='#'>Evet</a> - <a href='#no'>Hayır</a>
+
+
+ %1 is not enabled - Please enable it through the coin activation menu
+
+
SubCoinSelector
@@ -3757,7 +3788,7 @@ Please select a new order.
SubOrders
-
+
Orders
Emirler
@@ -3802,12 +3833,12 @@ Please select a new order.
İptal
-
+
Apply filter
Filtreyi uygula
-
+
No results found
@@ -3886,62 +3917,78 @@ Network fees can vary greatly depending on your selected trading pair.
-
+
+ I see a transaction in my wallet that was marked as 'poison'. What does this mean?
+
+
+
+
+ Address poisoning is a relatively new tye of phishing attack, where a malicious actor aims to trick you into sending funds to an address that you did not intend to send funds to.
+
+This is often done by sending a zero value transaction to your wallet from an address which looks very similar to your actual address, with the exact same letters at the start and end. This transaction will then appear in your transaction history, with the scammer hoping you will mistake the fake address for your own and send funds to it.
+
+To protect you from this, %1 will mark any transaction that it detects as potentially being a poison transaction with a "poison" label. You should always be careful to confirm any address you send funds to is correct.
+
+There is a toggle in settings where you can turn on/off the display of these transactions.
+
+
+
+
Do you provide user support?
Kullanıcı desteği sağlıyor musunuz?
-
+
Yes! %1 offers support through the <a href="%2">%1 Discord server</a>. The team and the community are always happy to help!
-
+
Who is behind %1?
%1 arkasında kim var?
-
+
%1 is developed by the Komodo team. Komodo is one of the most established blockchain projects working on innovative solutions like atomic swaps, Delayed Proof of Work, and an interoperable multi-chain architecture.
%1, Komodo ekibi tarafından geliştirilmiştir. Komodo, atomik takaslar, Gecikmeli Çalışma Kanıtı ve birlikte çalışabilir bir çok zincirli mimari gibi yenilikçi çözümler üzerinde çalışan en köklü blok zinciri projelerinden biridir.
-
+
Is it possible to develop my own white-label exchange on %1?
%1 üzerinde kendi markamla borsamı geliştirmem mümkün mü?
-
+
Absolutely! You can read our developer documentation for more details or contact us with your partnership inquiries. Have a specific technical question? The %1 developer community is always ready to help!
Kesinlikle! Daha fazla ayrıntı için geliştirici belgelerimizi okuyabilir veya ortaklık sorularınız için bizimle iletişime geçebilirsiniz. Belirli bir teknik sorunuz mu var? %1 geliştirici topluluğu her zaman yardıma hazır!
-
+
Which devices can I use %1 on?
%1 'i hangi cihazlarda kullanabilirim?
-
+
%1 is available for mobile on both <a href="%2">Android and iPhone, and for desktop on Windows, Mac, and Linux</a> operating systems.
-
+
Compliance Info
Uyumluluk Bilgisi
-
+
Due to regulatory and legal circumstances the citizens of certain jurisdictions including, but not limited to, the United States of America, Canada, Hong Kong, Israel, Singapore, Sudan, Austria, Iran and any other state, country or other jurisdiction that is embargoed by the United States of America or the European Union are not allowed to use this application.
Düzenleyici ve yasal koşullar nedeniyle, Amerika Birleşik Devletleri, Kanada, Hong Kong, İsrail, Singapur, Sudan, Avusturya, İran ve Amerika Birleşik Devletleri veya Avrupa Birliği tarafından ambargo uygulanan diğer herhangi bir eyalet, ülke veya diğer bölge vatandaşlarının bu uygulamayı kullanmasına izin verilmez.
-
+
Changelog
Değişim günlüğü
-
+
Open Logs Folder
Günlük Kaydı Klasörünü Aç
@@ -4011,157 +4058,138 @@ Network fees can vary greatly depending on your selected trading pair.
Detayları görmek için buraya tıklayın
+
+ TotalView
+
+
+ Receive %1
+
+
+
+
+ Send %1
+
+
+
Trade
-
+
Swap
Takasla
-
+
Instant trading with best orders
En iyi emirlerle anında alım satım
-
+
Reset form
-
+
You have no tradable assets
-
+
From
Gönderen
-
- Enter an amount
- Bir miktar gir
+
+ Entered amount must be higher than 0.
+
+
+
+
+ Select an order.
+
-
+
MAX
MAKS
-
+
To
Alan
-
+
Pick an order
Emri seç
-
+
Price
Fiyat
-
+
Better price found: %1. Updating forms.
Daha iyi fiyat bulundu: %1. Formları güncelliyor.
-
+
Better price (%1) found but received quantity (%2) is lower than your current one (%3). Click here to update the selected order.
Daha iyi fiyat (%1) bulundu, ancak alınan miktar (%2) mevcut fiyattan (%3) daha düşük. Seçilen emri güncellemek için buraya tıklayın.
-
+
%1
%1
-
- Tradable:
- Al sat yapılabilir:
-
-
-
- Min: %1
+
+ Balance:
-
+
Pick a coin
-
+
SWAP NOW
-
+
Failed to place the order
Emir başarısız oldu
-
+
Placed the order
Emir başarılı
-
- Entered amount must be superior than 0.
- Girilen tutar 0'dan büyük olmalıdır.
-
-
-
- You must select an order.
- Bir emir seçmelisiniz.
-
-
-
- Entered amount is below the minimum required by this order: %1
- Girilen miktar, bu emrin gerektirdiği minimum %1 tutarının altında
-
-
-
-
- %1 needs to be enabled in order to use %2
-
-
-
-
-
- %1 balance needs to be funded, a non-zero balance is required to pay the gas of %2 transactions
-
-
-
-
- %1 balance does not have enough funds to pay the gas of %2 transactions
-
-
-
-
+
No buy orders found for %1.
-
+
You can check later or try to sell a different coin.
-
+
Calculating fee estimate...
-
+
Total %1 fees:
Toplam %1 işlem giderleri:
-
+
%2 (%3)
%2 (%3)
@@ -4204,91 +4232,114 @@ Network fees can vary greatly depending on your selected trading pair.
Emir Ver
+
+ TradingViewChart
+
+
+ Loading market data
+ Piyasa bilgisi yükleniyor
+
+
+
+ There is no chart data for this ticker yet
+ Henüz bu hisse senedi için grafik verisi yok
+
+
TransactionDetailsModal
-
+
Transaction Details
İşlem Detayları
-
+
+ This transaction has been identified as a potential address poisoning attack.
+
+
+
+
+ Please see the Support FAQ for more information.
+
+
+
+
%1 txid
TICKER
-
+
copied to clipboard.
-
+
Amount
Miktar
-
+
Fees
İşlem Ücreti
-
+
From address
-
+
To address
-
+
Date
Tarih
-
+
Unconfirmed
Onaylanmamış
-
+
Transaction Hash
İşlem Hash'i
-
+
Confirmations
Onay Sayısı
-
+
Block Height
Blok Uzunluğu
-
+
From
Gönderen
-
+
To
Alan
-
+
Notes
Notlar
-
+
Close
Kapat
-
+
View on Explorer
Explorer'da göster
@@ -4296,22 +4347,27 @@ Network fees can vary greatly depending on your selected trading pair.
Transactions
-
+
Received
Alınan
-
+
Sent
Gönderilen
-
+
+ Poison
+
+
+
+
fees
işlem ücretleri
-
+
Unconfirmed
Onaylanmamış
@@ -4445,7 +4501,7 @@ This might take a few minutes...
atomic_dex::settings_page
-
+
An error has occurred.
@@ -4468,47 +4524,47 @@ This might take a few minutes...
%2 işlemi için gaz ödemek üzere %1'e sahip olmanız gerekir.
-
+
Checksum verification failed for %1.
%1 için sağlama toplamı doğrulaması başarısız oldu.
-
+
Invalid checksum for %1. Click the button to convert to mixed case address.
-
+
Legacy address used for %1. Click the button to convert to a Cashaddress.
-
+
%1 address must be prefixed with 0x
%1 adresinin önüne 0x konulmalı
-
+
%1 address length is invalid, please use a valid address.
%1 adres uzunluğu geçersiz, lütfen geçerli bir adres kullanın.
-
+
%1 address is invalid.
-
+
Invalid checksum.
-
+
%1 address has invalid prefixes.
-
+
Backend error: %1
@@ -4521,7 +4577,7 @@ This might take a few minutes...
Çıkış
-
+
Balance
Bakiye
diff --git a/atomic_defi_design/assets/languages/translations_matrix.csv b/atomic_defi_design/assets/languages/translations_matrix.csv
index 37a934e80a..0960cf64dc 100644
--- a/atomic_defi_design/assets/languages/translations_matrix.csv
+++ b/atomic_defi_design/assets/languages/translations_matrix.csv
@@ -90,7 +90,7 @@
474,Dex/Sidebar/Center.qml,,475,Address Book,476,Adressbuch,Libreta de direcciones,,
479,Dex/Sidebar/Center.qml,,480,Fiat,481,Fiat,Fiat,,
487,Dex/Components/CexInfoModal.qml,,488,Market Data,489,Marktdaten,Data de Mercado,,
-492,Dex/Components/CexInfoModal.qml,,493,"Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>",494,"Mit dem Symbol ⓘ gekennzeichnete Marktdaten (Kurse, Charts etc.) stammen aus Drittquellen.<br><br>Die Daten stammen von <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> und <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle unterstützte Paare:</b><br>%1<br><br><b>Letzte Referenz (Band Oracle):</b><br><a href="%2">%2</a>","Datos de mercado (precios, estadisticas, etc.) marcados con ⓘ se obtienen a través de fuentes terceras.<br><br>Data is sourced via <a href="https://bandprotocol.com/">Band Decentralized Oracle</a> and <a href="https://coingecko.com">CoinGecko</a>.<br><br><b>Oracle Supported Pairs:</b><br>%1<br><br><b>Last reference (Band Oracle):</b><br><a href="%2">%2</a>",,
+492,Dex/Components/CexInfoModal.qml,,493,"Market data (prices, charts, etc.) marked with the ⓘ icon originates from third-party sources.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.",494,"Mit dem Symbol ⓘ gekennzeichnete Marktdaten (Kurse, Charts etc.) stammen aus Drittquellen.<br><br>Die Daten stammen von <a href="https://coingecko.com">CoinGecko</a>.","Datos de mercado (precios, estadisticas, etc.) marcados con ⓘ se obtienen a través de fuentes terceras.<br><br>Data is sourced via <a href="https://coingecko.com">CoinGecko</a>.",,
500,Dex/Exchange/ProView/Chart.qml,,501,Loading market data,502,Laden von Marktdaten,Cargando datos de mercado,,
505,Dex/Exchange/ProView/Chart.qml,,506,There is no chart data for this pair yet,507,Für dieses Paar liegen noch keine Chartdaten vor,Todavía no hay datos de gráficos para este par,,
513,Dex/Wallet/ClaimRewardsModal.qml,,514,Failed to prepare to claim rewards,515,Vorbereitung zum Einfordern von Belohnungen fehlgeschlagen,No se pudo preparar para reclamar recompensas,,
diff --git a/ci_tools_atomic_dex/README.md b/ci_tools_atomic_dex/README.md
index ccd2ff8e1f..366d249015 100644
--- a/ci_tools_atomic_dex/README.md
+++ b/ci_tools_atomic_dex/README.md
@@ -1,4 +1,4 @@
-# AtomicDEX Pro alpha build instructions
+# Komodo Wallet Pro alpha build instructions
## Prerequisites
@@ -68,7 +68,7 @@ git checkout curl-7_70_0
make install
```
-Installling libbitcoin:
+Installing libbitcoin:
```
git clone --depth 1 --branch version5 --single-branch "https://github.com/KomodoPlatform/secp256k1"
@@ -140,7 +140,7 @@ mv packages_commandline.json packages_official.json
cd -
```
-## Build AtomicDEX Pro
+## Build Komodo Wallet Pro
Please clone with submodules initialization : `git clone --recurse-submodules --remote-submodules https://github.com/KomodoPlatform/atomicDEX-Pro.git`
@@ -176,7 +176,7 @@ nimble build
./ci_tools_atomic_dex build release
```
-## Bundle AtomicDEX Pro
+## Bundle Komodo Wallet Pro
### Windows
@@ -202,7 +202,7 @@ nimble build
-## Create AtomicDEX Pro Installer
+## Create Komodo Wallet Pro Installer
### Windows
@@ -229,7 +229,7 @@ chmod +x QtInstallerFramework-linux-x64.run
e.g.: In `.bashrc` add: `export QT_IFW_PATH=~/Qt/QtIFW-3.2.2`
-- Build AtomicDex Pro `./ci_tools_atomic_dex build release`
+- Build Komodo Wallet Pro `./ci_tools_atomic_dex build release`
- Run `ci_tools_atomic_dex\create_installer_linux.sh` script, pass build type as argument to script
diff --git a/ci_tools_atomic_dex/ci_scripts/ATOMICDEXinstaller_script.iss b/ci_tools_atomic_dex/ci_scripts/ATOMICDEXinstaller_script.iss
index 17d94e2837..e050f2f114 100644
--- a/ci_tools_atomic_dex/ci_scripts/ATOMICDEXinstaller_script.iss
+++ b/ci_tools_atomic_dex/ci_scripts/ATOMICDEXinstaller_script.iss
@@ -1,11 +1,11 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-#define MyAppName "AtomicDEX-Desktop"
+#define MyAppName "Komodo-Wallet"
#define MyAppVersion "0.5.0"
#define MyAppPublisher "Komodo Platform"
#define MyAppURL "https://www.komodoplatform.com/"
-#define MyAppExeName "atomicdex-desktop.exe"
+#define MyAppExeName "komodo-wallet.exe"
#define MyUserName "smk"
#define CommitHash "b2ce1cc"
@@ -27,8 +27,8 @@ DisableProgramGroupPage=yes
;PrivilegesRequired=lowest
;PrivilegesRequiredOverridesAllowed=dialog
OutputDir=C:\Users\{#MyUserName}\Documents\temp
-OutputBaseFilename=atomicdex-desktop-{#MyAppVersion}-windows-installer
-SetupIconFile=C:\Users\{#MyUserName}\Downloads\atomicdex-desktop-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\assets\logo\dex-logo.ico
+OutputBaseFilename=komodo-wallet-{#MyAppVersion}-windows-installer
+SetupIconFile=C:\Users\{#MyUserName}\Downloads\komodo-wallet-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\assets\logo\dex-logo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
@@ -43,8 +43,8 @@ Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
-Source: "C:\Users\{#MyUserName}\Downloads\atomicdex-desktop-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\{#MyUserName}\Downloads\atomicdex-desktop-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "C:\Users\{#MyUserName}\Downloads\komodo-wallet-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\{#MyUserName}\Downloads\komodo-wallet-windows-10-qt-5-15-2-{#CommitHash}.zip\bin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
diff --git a/ci_tools_atomic_dex/ci_scripts/GLEECDEXinstaller_script.iss b/ci_tools_atomic_dex/ci_scripts/GLEECDEXinstaller_script.iss
index 9620861cdb..a2db7159fe 100644
--- a/ci_tools_atomic_dex/ci_scripts/GLEECDEXinstaller_script.iss
+++ b/ci_tools_atomic_dex/ci_scripts/GLEECDEXinstaller_script.iss
@@ -4,7 +4,7 @@
#define MyAppName "GleecDEX-Desktop"
#define MyAppVersion "0.5.0"
#define MyAppPublisher "Komodo Platform"
-#define MyAppURL "https://github.com/KomodoPlatform/atomicDEX-Desktop"
+#define MyAppURL "https://github.com/KomodoPlatform/komodo-wallet-desktop"
#define MyAppExeName "GleecDEX.exe"
#define MyUserName "smk"
#define CommitHash "cc57ab3"
diff --git a/ci_tools_atomic_dex/ci_scripts/linux_script.sh b/ci_tools_atomic_dex/ci_scripts/linux_script.sh
index c6d84279ab..95d20d4f4a 100755
--- a/ci_tools_atomic_dex/ci_scripts/linux_script.sh
+++ b/ci_tools_atomic_dex/ci_scripts/linux_script.sh
@@ -2,8 +2,8 @@
sudo apt-get update # prevents repo404 errors on apt-remove below
sudo apt-get remove php* msodbcsql17 mysql*
-sudo apt-get update
-sudo ACCEPT_EULA=Y apt-get upgrade -y
+#sudo apt-get update
+#sudo ACCEPT_EULA=Y apt-get upgrade -y
# base deps
sudo apt-get install build-essential \
libgl1-mesa-dev \
@@ -54,7 +54,7 @@ sudo cp -r * /usr/local/
cmake --version
# get libwally
-git clone https://github.com/KomodoPlatform/libwally-core.git
+git clone https://github.com/KomodoPlatform/libwally-core.git --recurse-submodules
cd libwally-core
./tools/autogen.sh
./configure --disable-shared
diff --git a/ci_tools_atomic_dex/ci_scripts/osx_script.sh b/ci_tools_atomic_dex/ci_scripts/osx_script.sh
index 949442963e..f47910cab6 100755
--- a/ci_tools_atomic_dex/ci_scripts/osx_script.sh
+++ b/ci_tools_atomic_dex/ci_scripts/osx_script.sh
@@ -31,7 +31,7 @@ export MACOSX_DEPLOYMENT_TARGET=10.15
#make -j3 install
#cd ../
-git clone https://github.com/KomodoPlatform/libwally-core.git
+git clone https://github.com/KomodoPlatform/libwally-core.git --recurse-submodules
cd libwally-core
./tools/autogen.sh
./configure --disable-shared
diff --git a/ci_tools_atomic_dex/ci_scripts/windows_script.ps1 b/ci_tools_atomic_dex/ci_scripts/windows_script.ps1
index c3b07f0f79..fce5224209 100644
--- a/ci_tools_atomic_dex/ci_scripts/windows_script.ps1
+++ b/ci_tools_atomic_dex/ci_scripts/windows_script.ps1
@@ -6,7 +6,7 @@ iwr -useb 'https://raw.githubusercontent.com/scoopinstaller/install/master/insta
#Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') -RunAsAdmin
scoop install llvm --global
scoop install ninja --global
-scoop install cmake@3.22.0 --global
+scoop install cmake@3.26.3 --global
scoop install git --global
scoop install 7zip --global
scoop cache rm 7zip
@@ -26,4 +26,5 @@ mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE="$Env:CMAKE_BUILD_TYPE" -GNinja ../
+
ninja install
diff --git a/ci_tools_atomic_dex/ci_tools_atomic_dex.nimble b/ci_tools_atomic_dex/ci_tools_atomic_dex.nimble
index b684a5b138..189a9d0ac4 100644
--- a/ci_tools_atomic_dex/ci_tools_atomic_dex.nimble
+++ b/ci_tools_atomic_dex/ci_tools_atomic_dex.nimble
@@ -2,7 +2,7 @@
version = "0.1.0"
author = "romanszterg"
-description = "AtomicDex CI utilities"
+description = "Komodo Wallet CI utilities"
license = "MIT"
srcDir = "src"
bin = @["ci_tools_atomic_dex"]
diff --git a/ci_tools_atomic_dex/installer/osx/config/config.xml.in b/ci_tools_atomic_dex/installer/osx/config/config.xml.in
index 7b601889c4..3662ef3bc5 100644
--- a/ci_tools_atomic_dex/installer/osx/config/config.xml.in
+++ b/ci_tools_atomic_dex/installer/osx/config/config.xml.in
@@ -1,7 +1,7 @@
${DEX_DISPLAY_NAME}
- 0.5.7
+ @DEX_VERSION@
${DEX_DISPLAY_NAME} Installer
${DEX_WEBSITE}
${DEX_COMPANY}
diff --git a/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/meta/package.xml.in b/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/meta/package.xml.in
index 06109f6ba9..a9487a11ad 100644
--- a/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/meta/package.xml.in
+++ b/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/meta/package.xml.in
@@ -2,8 +2,8 @@
${DEX_DISPLAY_NAME}
Install ${DEX_DISPLAY_NAME}.
- 0.5.7
- 2022-11-09
+ ${DEX_VERSION}
+ 2023-11-06
diff --git a/ci_tools_atomic_dex/installer/windows/config/config.xml.in b/ci_tools_atomic_dex/installer/windows/config/config.xml.in
index 9fe11ef931..bf4f0848fa 100644
--- a/ci_tools_atomic_dex/installer/windows/config/config.xml.in
+++ b/ci_tools_atomic_dex/installer/windows/config/config.xml.in
@@ -1,7 +1,7 @@
@DEX_DISPLAY_NAME@
- 0.5.7
+ @DEX_VERSION@
@DEX_DISPLAY_NAME@ Installer
@DEX_WEBSITE@
@DEX_COMPANY@
diff --git a/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/installscript.qs.in b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/installscript.qs.in
index 204713cb6d..106dd0af5e 100644
--- a/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/installscript.qs.in
+++ b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/installscript.qs.in
@@ -1,12 +1,12 @@
function Component()
{
-
-}
+ // installer.gainAdminRights();
+ component.loaded.connect(this, this.installerLoaded);
+}
Component.prototype.createOperations = function()
{
component.createOperations();
-
if (installer.value("os") === "win") {
// Start Menu Shortcut
component.addOperation("CreateShortcut",
@@ -32,4 +32,48 @@ Component.prototype.createOperations = function()
"iconPath=@DEX_ICON_DIR@", "iconId=0",
"description=Start @DEX_MAINTENANCE_TOOL_NAME@");
}
+}
+
+Component.prototype.installerLoaded = function()
+{
+ installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
+ installer.addWizardPage(component, "TargetWidget", QInstaller.TargetDirectory);
+
+ targetDirectoryPage = gui.pageWidgetByObjectName("DynamicTargetWidget");
+ targetDirectoryPage.windowTitle = "Choose Installation Directory";
+ targetDirectoryPage.description.setText("Please select where the app will be installed:");
+ targetDirectoryPage.targetDirectory.textChanged.connect(this, this.targetDirectoryChanged);
+ targetDirectoryPage.targetDirectory.setText(installer.value("TargetDir"));
+ targetDirectoryPage.targetChooser.released.connect(this, this.targetChooserClicked);
+
+ gui.pageById(QInstaller.ComponentSelection).entered.connect(this, this.componentSelectionPageEntered);
+}
+
+Component.prototype.targetChooserClicked = function()
+{
+ var dir = QFileDialog.getExistingDirectory("", targetDirectoryPage.targetDirectory.text);
+ targetDirectoryPage.targetDirectory.setText(dir);
+}
+
+Component.prototype.targetDirectoryChanged = function()
+{
+ var dir = targetDirectoryPage.targetDirectory.text;
+ if (installer.fileExists(dir) && installer.fileExists(dir + "/maintenancetool.exe")) {
+ targetDirectoryPage.warning.setText("Existing installation detected and will be overwritten.
");
+ }
+ else if (installer.fileExists(dir)) {
+ targetDirectoryPage.warning.setText("Installing in existing directory. It will be wiped on uninstallation.
");
+ }
+ else {
+ targetDirectoryPage.warning.setText("");
+ }
+ installer.setValue("TargetDir", dir);
+}
+
+Component.prototype.componentSelectionPageEntered = function()
+{
+ var dir = installer.value("TargetDir");
+ if (installer.fileExists(dir) && installer.fileExists(dir + "/maintenancetool.exe")) {
+ installer.execute(dir + "/maintenancetool.exe", ["purge", "-c"]);
+ }
}
\ No newline at end of file
diff --git a/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/package.xml.in b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/package.xml.in
index 1a0b0bc1c3..090e2c430f 100644
--- a/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/package.xml.in
+++ b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/package.xml.in
@@ -2,11 +2,14 @@
${DEX_DISPLAY_NAME}
Install ${DEX_DISPLAY_NAME}.
- 0.5.7
- 2022-10-24
+ ${DEX_VERSION}
+ 2023-11-06
true
+
+ targetwidget.ui
+
diff --git a/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/targetwidget.ui b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/targetwidget.ui
new file mode 100644
index 0000000000..6237332046
--- /dev/null
+++ b/ci_tools_atomic_dex/installer/windows/packages/com.komodoplatform.atomicdex/meta/targetwidget.ui
@@ -0,0 +1,113 @@
+
+
+ TargetWidget
+
+
+
+ 0
+ 0
+ 491
+ 190
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 491
+ 190
+
+
+
+ Form
+
+
+ -
+
+
+
+
+
+
+ -
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ ...
+
+
+
+
+
+ -
+
+
+ 0
+
+ -
+
+
+ true
+
+
+ TextLabel
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 122
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ci_tools_atomic_dex/src/tests.nim b/ci_tools_atomic_dex/src/tests.nim
index 78ee2980ff..0508b9cabb 100644
--- a/ci_tools_atomic_dex/src/tests.nim
+++ b/ci_tools_atomic_dex/src/tests.nim
@@ -32,20 +32,20 @@ proc run_tests*(build_type: string, osx_sdk_path: string, compiler_path: string)
echo os.getCurrentDir()
discard osproc.execCmd("ls")
# os.setCurrentDir(os.getCurrentDir().joinPath("bin").joinPath(os.getEnv("DEX_PROJECT_NAME") & "_tests.app").joinPath("Contents").joinPath("MacOS"))
- echo "Running AtomicDex Pro Unit tests"
+ echo "Running Komodo Wallet Pro Unit tests"
discard osproc.execCmd("./" & os.getEnv("DEX_PROJECT_NAME") & "_tests --reporters=xml --out=" & os.getEnv("DEX_PROJECT_NAME") & "-tests-result.xml -s")
echo "Successfully Generated", os.getEnv("DEX_PROJECT_NAME"), "-tests-result.xml"
when defined(linux):
echo os.getCurrentDir()
os.setCurrentDir(os.getCurrentDir().joinPath("bin").joinPath("AntaraAtomicDexTestsAppDir").joinPath("usr").joinPath("bin"))
- echo "Running AtomicDex Pro Unit tests"
+ echo "Running Komodo Wallet Pro Unit tests"
discard osproc.execCmd("./" & os.getEnv("DEX_PROJECT_NAME") & "_tests --reporters=xml --out=" & os.getEnv("DEX_PROJECT_NAME") & "-tests-result.xml -s")
echo "Successfully Generated", os.getEnv("DEX_PROJECT_NAME"), "-tests-result.xml"
when defined(windows):
echo os.getCurrentDir()
os.setCurrentDir(os.getCurrentDir().joinPath("bin"))
- echo "Running AtomicDex Pro Unit tests"
+ echo "Running Komodo Wallet Pro Unit tests"
discard osproc.execCmd(".\\" & os.getEnv("DEX_PROJECT_NAME") & "_tests --reporters=xml --out=" & os.getEnv("DEX_PROJECT_NAME") & "-tests-result.xml -s")
echo "Successfully Generated", os.getEnv("DEX_PROJECT_NAME"), "-tests-result.xml"
diff --git a/ci_tools_atomic_dex/util/compare_themes.py b/ci_tools_atomic_dex/util/compare_themes.py
index 40b5f097cd..714b833282 100755
--- a/ci_tools_atomic_dex/util/compare_themes.py
+++ b/ci_tools_atomic_dex/util/compare_themes.py
@@ -10,7 +10,7 @@
Usage: `./compare_themes.py`
'''
-REPO_URL = "https://raw.githubusercontent.com/KomodoPlatform/atomicDEX-Desktop"
+REPO_URL = "https://raw.githubusercontent.com/KomodoPlatform/komodo-wallet-desktop"
BRANCHES = ['smartdex', 'GleecDEX', 'shibadex']
diff --git a/ci_tools_atomic_dex/vcpkg-repo b/ci_tools_atomic_dex/vcpkg-repo
index 086ef2a484..1712ed5174 160000
--- a/ci_tools_atomic_dex/vcpkg-repo
+++ b/ci_tools_atomic_dex/vcpkg-repo
@@ -1 +1 @@
-Subproject commit 086ef2a4845fd12e5164df1876737afa67942208
+Subproject commit 1712ed51743a2e739c2f2c3855cd1d16fbbb6873
diff --git a/cmake/cfg_hash.cmake b/cmake/cfg_hash.cmake
index 7179dc15d9..3c1c7af15c 100644
--- a/cmake/cfg_hash.cmake
+++ b/cmake/cfg_hash.cmake
@@ -1,5 +1,5 @@
#if (UNIX)
-# execute_process(COMMAND bash -c "git ls-remote https://github.com/KomodoPlatform/atomicdex-desktop-generics refs/heads/main | cut -f 1 | tr -d '\n'"
+# execute_process(COMMAND bash -c "git ls-remote https://github.com/KomodoPlatform/komodo-wallet-desktop-generics refs/heads/main | cut -f 1 | tr -d '\n'"
# OUTPUT_VARIABLE GENERICS_VERSION_ID
# )
# if (NOT EXISTS ${GENERICS_VERSION_ID}.cfg_hash)
diff --git a/cmake/install/macos/Packaging_CMakeDMGSetup.scpt b/cmake/install/macos/Packaging_CMakeDMGSetup.scpt
index b816533e58..f06196f7f3 100644
--- a/cmake/install/macos/Packaging_CMakeDMGSetup.scpt
+++ b/cmake/install/macos/Packaging_CMakeDMGSetup.scpt
@@ -39,7 +39,7 @@ on run argv
set statusbar visible to false
set toolbar visible to false
set the bounds to { 400, 100, 900, 465 }
- set position of item "atomicdex-desktop.app" to { 133, 200 }
+ set position of item "komodo-wallet.app" to { 133, 200 }
set position of item "Applications" to { 378, 200 }
end tell
update without registering applications
diff --git a/cmake/install/macos/dex_install.cmake b/cmake/install/macos/dex_install.cmake
index c472d7684d..8b27af7e9b 100644
--- a/cmake/install/macos/dex_install.cmake
+++ b/cmake/install/macos/dex_install.cmake
@@ -1,11 +1,13 @@
if (APPLE)
message(STATUS "ICON ->>>> ${ICON}")
+ message(STATUS "PROJECT_NAME ->>>> ${PROJECT_NAME}")
+ message(STATUS "DEX_VERSION ->>>> ${DEX_VERSION}")
set_target_properties(${PROJECT_NAME} PROPERTIES
MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
RESOURCE ${ICON}
MACOSX_BUNDLE_ICON_FILE dex-logo
- MACOSX_BUNDLE_SHORT_VERSION_STRING 0.5.7
- MACOSX_BUNDLE_LONG_VERSION_STRING 0.5.7
+ MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
+ MACOSX_BUNDLE_LONG_VERSION_STRING ${PROJECT_VERSION}
MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in")
add_custom_command(TARGET ${PROJECT_NAME}
POST_BUILD COMMAND
diff --git a/cmake/install/macos/osx_post_install.cmake b/cmake/install/macos/osx_post_install.cmake
index bd42ae336c..51f1c6cc4d 100644
--- a/cmake/install/macos/osx_post_install.cmake
+++ b/cmake/install/macos/osx_post_install.cmake
@@ -99,8 +99,49 @@ endif ()
file(COPY ${CMAKE_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.dmg DESTINATION ${TARGET_APP_PATH})
get_filename_component(QT_ROOT_DIR $ENV{QT_ROOT} DIRECTORY)
-set(IFW_BINDIR ${QT_ROOT_DIR}/Tools/QtInstallerFramework/4.5/bin)
-message(STATUS "IFW_BIN PATH IS ${IFW_BINDIR}")
+set(IFW_ROOT ${QT_ROOT_DIR}/Tools/QtInstallerFramework)
+message(STATUS "IFW_ROOT PATH IS ${IFW_ROOT}")
+execute_process(COMMAND ls ${IFW_ROOT})
+
+# Find all subdirectories
+file(GLOB subdirs "${IFW_ROOT}/*")
+# Initialize variables to track the highest version and folder
+set(IFW_VERSION "")
+# Loop through the subdirectories
+foreach(subdir ${subdirs})
+ get_filename_component(folder_name ${subdir} NAME)
+ message(STATUS "scanning: ${subdir} [${folder_name}]")
+ # Use string manipulation to extract version from folder name
+ string(REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" version ${folder_name})
+ # Check if the extracted version is higher than the current highest
+ # TODO: For some reason this var fails to populate in windows
+ if(version STREQUAL "")
+ continue()
+ elseif(version STRGREATER IFW_VERSION)
+ set(IFW_VERSION ${version})
+ endif()
+endforeach()
+# Fallback to last scanned subfolder if variable empty. Usually there is only one folder.
+if(version STREQUAL "")
+ set(IFW_VERSION ${folder_name})
+endif()
+
+message(STATUS "===========================================")
+message(STATUS "Creating Installer")
+set(IFW_BINDIR ${IFW_ROOT}/${IFW_VERSION}/bin)
+message(STATUS ">>>> IFW_BIN PATH IS ${IFW_BINDIR}")
+execute_process(COMMAND ls "${IFW_BINDIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${PROJECT_APP_PATH}")
+execute_process(COMMAND ls "${PROJECT_APP_PATH}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_SOURCE_DIR}")
+execute_process(COMMAND ls "${CMAKE_SOURCE_DIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${TARGET_APP_PATH}")
+execute_process(COMMAND ls "${TARGET_APP_PATH}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_CURRENT_SOURCE_DIR}")
+execute_process(COMMAND ls "${CMAKE_CURRENT_SOURCE_DIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_CURRENT_SOURCE_DIR}/bin")
+execute_process(COMMAND ls "${CMAKE_CURRENT_SOURCE_DIR}/bin")
+message(STATUS "===========================================")
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.7z)
message(STATUS "command is: [${IFW_BINDIR}/archivegen ${DEX_PROJECT_NAME}.7z ${PROJECT_APP_PATH} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin]")
execute_process(COMMAND
@@ -111,7 +152,8 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.7z)
else()
message(STATUS "${DEX_PROJECT_NAME}.7z already created - skipping")
endif()
-
+message(STATUS "===========================================")
+execute_process(COMMAND ls ${CMAKE_CURRENT_SOURCE_DIR}/bin )
message(STATUS "Copying ${CMAKE_CURRENT_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.7z TO ${PROJECT_ROOT_DIR}/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/data")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.7z DESTINATION ${PROJECT_ROOT_DIR}/ci_tools_atomic_dex/installer/osx/packages/com.komodoplatform.atomicdex/data)
diff --git a/cmake/install/windows/windows_post_install.cmake b/cmake/install/windows/windows_post_install.cmake
index a477153535..79ca6b1444 100644
--- a/cmake/install/windows/windows_post_install.cmake
+++ b/cmake/install/windows/windows_post_install.cmake
@@ -70,9 +70,52 @@ execute_process(COMMAND powershell.exe -File ${PROJECT_ROOT_DIR}/ci_tools_atomic
ERROR_VARIABLE MANIFEST_ERROR)
message(STATUS "manifest output: ${MANIFEST_RESULT} ${MANIFEST_OUTPUT} ${MANIFEST_ERROR}")
+# Set the path to the ifw root directory
+set(IFW_ROOT "$ENV{QT_ROOT}/Tools/QtInstallerFramework")
+message(STATUS "IFW_ROOT PATH IS ${IFW_ROOT}")
+execute_process(COMMAND ls "${IFW_ROOT}")
+# Find all subdirectories
+file(GLOB subdirs "${IFW_ROOT}/*")
+# Initialize variables to track the highest version and folder
+set(IFW_VERSION "")
+# Loop through the subdirectories
+foreach(subdir ${subdirs})
+ get_filename_component(folder_name ${subdir} NAME)
+ message(STATUS "scanning: ${subdir} [${folder_name}]")
+ # Use string manipulation to extract version from folder name
+ string(REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" version ${folder_name})
+ # Check if the extracted version is higher than the current highest
+ # TODO: For some reason this var fails to populate in windows
+ if(version STREQUAL "")
+ continue()
+ elseif(version STRGREATER IFW_VERSION)
+ set(IFW_VERSION ${version})
+ endif()
+endforeach()
+# Fallback to last scanned subfolder if variable empty. Usually there is only one folder.
+if(version STREQUAL "")
+ set(IFW_VERSION ${folder_name})
+endif()
+
+message(STATUS "===========================================")
message(STATUS "Creating Installer")
-set(IFW_BINDIR $ENV{QT_ROOT}/Tools/QtInstallerFramework/4.5/bin)
+set(IFW_BINDIR ${IFW_ROOT}/${IFW_VERSION}/bin)
+message(STATUS ">>>> IFW_BIN PATH IS ${IFW_BINDIR}")
+execute_process(COMMAND ls "${IFW_BINDIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${PROJECT_APP_PATH}")
+execute_process(COMMAND ls "${PROJECT_APP_PATH}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_SOURCE_DIR}")
+execute_process(COMMAND ls "${CMAKE_SOURCE_DIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${TARGET_APP_PATH}")
+execute_process(COMMAND ls "${TARGET_APP_PATH}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_CURRENT_SOURCE_DIR}")
+execute_process(COMMAND ls "${CMAKE_CURRENT_SOURCE_DIR}")
+message(STATUS ">>>> IFW_BIN PATH IS ${CMAKE_CURRENT_SOURCE_DIR}/bin")
+execute_process(COMMAND ls "${CMAKE_CURRENT_SOURCE_DIR}/bin")
+message(STATUS "===========================================")
+set(IFW_BINDIR ${IFW_ROOT}/${IFW_VERSION}/bin)
message(STATUS "IFW_BIN PATH IS ${IFW_BINDIR}")
+
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${DEX_PROJECT_NAME}.7z)
message(STATUS "Contents of folder: ls ${CMAKE_CURRENT_SOURCE_DIR}")
execute_process(COMMAND ls "${CMAKE_CURRENT_SOURCE_DIR}")
diff --git a/cmake/project.metadata.cmake b/cmake/project.metadata.cmake
index a838dd9f6a..3c51249ee0 100644
--- a/cmake/project.metadata.cmake
+++ b/cmake/project.metadata.cmake
@@ -47,6 +47,9 @@ endif ()
if (DEFINED ENV{DEX_WEBSITE})
set(DEX_WEBSITE $ENV{DEX_WEBSITE})
endif ()
+if (DEFINED ENV{DEX_VERSION})
+ set(DEX_VERSION $ENV{DEX_VERSION})
+endif ()
if (DEFINED ENV{PROJECT_ROOT})
set(PROJECT_ROOT $ENV{PROJECT_ROOT})
else ()
@@ -67,6 +70,7 @@ message(STATUS "CMAKE_BUILD_TYPE --> ${CMAKE_BUILD_TYPE}")
message(STATUS "DEX_PROJECT_NAME --> ${DEX_PROJECT_NAME}")
message(STATUS "DEX_DISPLAY_NAME --> ${DEX_DISPLAY_NAME}")
message(STATUS "DEX_COMPANY --> ${DEX_COMPANY}")
+message(STATUS "DEX_VERSION --> ${DEX_VERSION}")
message(STATUS "DEX_WEBSITE --> ${DEX_WEBSITE}")
message(STATUS "CMAKE_SOURCE_DIR --> ${CMAKE_SOURCE_DIR}")
message(STATUS "PROJECT_ROOT --> ${PROJECT_ROOT}")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 531c27e8d6..5d33a981a0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -17,7 +17,7 @@ DEX_NEW_LIB(core INTERFACE
DEX_API="${DEX_API}" DEX_RPC="${DEX_RPC}" DEX_RPCPORT="${DEX_RPCPORT}" DEX_NAME="${DEX_DISPLAY_NAME}" DEX_WEBSITE_URL="${DEX_WEBSITE}"
DEX_SUPPORT_URL="${DEX_SUPPORT_PAGE}" DEX_DISCORD_URL="${DEX_DISCORD}" DEX_TWITTER_URL="${DEX_TWITTER}"
DEX_PRIMARY_COIN="${DEX_PRIMARY_COIN}" DEX_SECOND_PRIMARY_COIN="${DEX_SECOND_PRIMARY_COIN}" #DEX_COMMON_DATA_FOLDER="${DEX_COMMON_DATA_FOLDER}"
- DEX_PROJECT_NAME="${DEX_PROJECT_NAME}" DEX_COMPANY_NAME="${DEX_COMPANY_NAME}"
+ DEX_PROJECT_NAME="${DEX_PROJECT_NAME}" DEX_COMPANY_NAME="${DEX_COMPANY_NAME}" DEX_VERSION="${DEX_VERSION}"
DEX_REPOSITORY_OWNER="${DEX_REPOSITORY_OWNER}" DEX_REPOSITORY_NAME="${DEX_REPOSITORY_NAME}"
DEX_CHECKSUM_API_URL="${DEX_CHECKSUM_API_URL}" DEX_APPDATA_FOLDER="${DEX_APPDATA_FOLDER}"
INTERFACE_DEFS
diff --git a/src/app/app.cpp b/src/app/app.cpp
index ee80584c2e..d7cd93d9a7 100644
--- a/src/app/app.cpp
+++ b/src/app/app.cpp
@@ -44,7 +44,6 @@
#include "atomicdex/services/price/komodo_prices/komodo.prices.provider.hpp"
#include "atomicdex/services/price/coingecko/coingecko.wallet.charts.hpp"
#include "atomicdex/services/price/coinpaprika/coinpaprika.provider.hpp"
-#include "atomicdex/services/price/oracle/band.provider.hpp"
#include "atomicdex/services/price/orderbook.scanner.service.hpp"
namespace
@@ -181,6 +180,8 @@ namespace atomic_dex
bool application::has_coins_with_balance()
{
+ // TODO: Does this ignore test coins?
+ // Simple view on fresh wallet with only test coins from faucet returns `no tradable assets`
auto* portfolio_page = get_portfolio_page();
auto* portfolio_mdl = portfolio_page->get_portfolio();
auto portfolio_data = portfolio_mdl->get_underlying_data();
@@ -371,12 +372,9 @@ namespace atomic_dex
}
//! TODO: figure out why sometimes ZHTLC coins end up in here twice. When they do, without this check it crashes.
if (std::find(to_init.begin(), to_init.end(), ticker) != to_init.end()) {
- SPDLOG_DEBUG("Ticker {} is already in vector", ticker);
+ // SPDLOG_DEBUG("Ticker {} is already in vector", ticker);
add_to_init = false;
}
- else {
- SPDLOG_DEBUG("Ticker {} is not already in vector", ticker);
- }
if (add_to_init) {
to_init.push_back(ticker);
}
@@ -502,8 +500,7 @@ namespace atomic_dex
system_manager_.create_system(system_manager_, this);
system_manager_.create_system(system_manager_, settings_page_system.get_cfg());
system_manager_.create_system(system_manager_);
- system_manager_.create_system();
- // system_manager_.create_system(system_manager_);
+ //system_manager_.create_system(system_manager_);
//system_manager_.create_system(system_manager_);
system_manager_.create_system();
system_manager_.create_system();
diff --git a/src/app/main.prerequisites.hpp b/src/app/main.prerequisites.hpp
index ebb8a79841..f026bd21ab 100644
--- a/src/app/main.prerequisites.hpp
+++ b/src/app/main.prerequisites.hpp
@@ -338,12 +338,15 @@ handle_settings(QSettings& settings)
#else
create_settings_functor("ThemePath", QString::fromStdString(atomic_dex::utils::get_themes_path().string()));
#endif
+ using namespace std::chrono;
+ int timestamp = duration_cast(system_clock::now().time_since_epoch()).count() - 86400 * 2;
create_settings_functor("AutomaticUpdateOrderBot", QVariant(false));
create_settings_functor("WalletChartsCategory", qint32(WalletChartsCategories::OneMonth));
create_settings_functor("AvailableLang", QStringList{"en", "es", "fr", "de", "tr", "ru"});
create_settings_functor("CurrentLang", QString("en"));
create_settings_functor("2FA", 0);
create_settings_functor("MaximumNbCoinsEnabled", 50);
+ create_settings_functor("PirateSyncDate", timestamp);
create_settings_functor("DefaultTradingMode", TradingMode::Simple);
create_settings_functor("FontMode", QQuickWindow::TextRenderType::QtTextRendering);
}
diff --git a/src/core/atomicdex/api/faucet/faucet.cpp b/src/core/atomicdex/api/faucet/faucet.cpp
index 2fb699ceb1..06e2e44cb3 100644
--- a/src/core/atomicdex/api/faucet/faucet.cpp
+++ b/src/core/atomicdex/api/faucet/faucet.cpp
@@ -23,7 +23,7 @@
namespace
{
- constexpr const char* g_faucet_api_endpoint = "https://faucet.komodo.live/faucet/";
+ constexpr const char* g_faucet_api_endpoint = "https://faucet.komodo.earth/faucet/";
const auto g_faucet_api_client = std::make_unique(FROM_STD_STR(g_faucet_api_endpoint));
} // namespace
diff --git a/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp b/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp
index 65ca7505bb..f0616ad4d6 100644
--- a/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp
+++ b/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp
@@ -10,7 +10,7 @@
namespace
{
- constexpr const char* g_komodo_prices_endpoint = "https://prices.komodo.live:1313";
+ constexpr const char* g_komodo_prices_endpoint = "https://prices.komodo.earth";
constexpr const char* g_komodo_prices_endpoint_fallback = "https://prices.cipig.net:1717";
web::http::client::http_client_config g_komodo_prices_cfg{[]()
@@ -61,10 +61,6 @@ namespace atomic_dex::komodo_prices::api
{
x = provider::forex;
}
- else if (j == "nomics")
- {
- x = provider::nomics;
- }
else
{
x = provider::unknown;
diff --git a/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp b/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp
index de183477af..36ec80e245 100644
--- a/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp
+++ b/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp
@@ -13,7 +13,6 @@ namespace atomic_dex::komodo_prices::api
coingecko,
coinpaprika,
forex,
- nomics,
unknown
};
diff --git a/src/core/atomicdex/api/mm2/enable_slp_rpc.cpp b/src/core/atomicdex/api/mm2/enable_slp_rpc.cpp
index 314005d743..82f1524d94 100644
--- a/src/core/atomicdex/api/mm2/enable_slp_rpc.cpp
+++ b/src/core/atomicdex/api/mm2/enable_slp_rpc.cpp
@@ -19,7 +19,6 @@ namespace atomic_dex::mm2
void from_json(const nlohmann::json& j, enable_slp_rpc_result& in)
{
- j.at("token_id").get_to(in.token_id);
j.at("platform_coin").get_to(in.platform_coin);
j.at("required_confirmations").get_to(in.required_confirmations);
j.at("token_id").get_to(in.token_id);
diff --git a/src/core/atomicdex/api/mm2/mm2.client.cpp b/src/core/atomicdex/api/mm2/mm2.client.cpp
index 381cb28822..3dd79528fe 100644
--- a/src/core/atomicdex/api/mm2/mm2.client.cpp
+++ b/src/core/atomicdex/api/mm2/mm2.client.cpp
@@ -28,6 +28,8 @@
#include "atomicdex/constants/dex.constants.hpp"
#include "rpc.hpp"
#include "rpc.tx.history.hpp"
+#include "rpc2.enable_tendermint_token.hpp"
+#include "rpc2.enable_tendermint_with_assets.hpp"
namespace
{
@@ -38,10 +40,10 @@ namespace
{
using namespace std::chrono_literals;
- constexpr auto client_timeout = 30s;
+ //constexpr auto client_timeout = 30s;
web::http::client::http_client_config cfg;
- cfg.set_timeout(client_timeout);
+ //cfg.set_timeout(client_timeout);
return {FROM_STD_STR(atomic_dex::g_dex_rpc), cfg};
}
@@ -70,11 +72,12 @@ namespace
template
Rpc process_rpc_answer(const web::http::http_response& answer)
{
+ // SPDLOG_DEBUG("rpc answer: {}", TO_STD_STR(answer.extract_string(true).get()));
Rpc rpc;
auto json_answer = nlohmann::json::parse(TO_STD_STR(answer.extract_string(true).get()));
-
if (Rpc::is_v2)
{
+ // SPDLOG_DEBUG("v2 rpc answer")
if (answer.status_code() == 200)
rpc.result = json_answer.at("result").get();
else
@@ -160,6 +163,8 @@ namespace atomic_dex::mm2
template void mm2_client::process_rpc_async(const std::function&);
template void mm2_client::process_rpc_async(const std::function&);
template void mm2_client::process_rpc_async(const std::function&);
+ template void mm2_client::process_rpc_async(const std::function&);
+ template void mm2_client::process_rpc_async(const std::function&);
template void mm2_client::process_rpc_async(const std::function&);
template void mm2_client::process_rpc_async(const std::function&);
@@ -192,11 +197,11 @@ namespace atomic_dex::mm2
template
TAnswer
- mm2_client::process_rpc(TRequest&& request, std::string rpc_command)
+ mm2_client::process_rpc(TRequest&& request, std::string rpc_command, bool is_v2)
{
SPDLOG_DEBUG("Processing rpc call: {}", rpc_command);
- nlohmann::json json_data = mm2::template_request(rpc_command);
+ nlohmann::json json_data = mm2::template_request(rpc_command, is_v2);
mm2::to_json(json_data, request);
@@ -211,6 +216,12 @@ namespace atomic_dex::mm2
return rpc_process_answer(resp, rpc_command);
}
+ t_enable_z_coin_cancel_answer
+ mm2_client::rpc_enable_z_coin_cancel(t_enable_z_coin_cancel_request&& request)
+ {
+ return process_rpc(std::forward(request), "task::enable_z_coin::cancel", true);
+ }
+
t_disable_coin_answer
mm2_client::rpc_disable_coin(t_disable_coin_request&& request)
{
@@ -226,4 +237,4 @@ namespace atomic_dex::mm2
} // namespace atomic_dex
template atomic_dex::mm2::tx_history_answer atomic_dex::mm2::mm2_client::rpc_process_answer(const web::http::http_response& resp, const std::string& rpc_command);
-template atomic_dex::mm2::disable_coin_answer atomic_dex::mm2::mm2_client::rpc_process_answer(const web::http::http_response& resp, const std::string& rpc_command);
\ No newline at end of file
+template atomic_dex::mm2::disable_coin_answer atomic_dex::mm2::mm2_client::rpc_process_answer(const web::http::http_response& resp, const std::string& rpc_command);
diff --git a/src/core/atomicdex/api/mm2/mm2.client.hpp b/src/core/atomicdex/api/mm2/mm2.client.hpp
index 22f9a94c89..26a6b92672 100644
--- a/src/core/atomicdex/api/mm2/mm2.client.hpp
+++ b/src/core/atomicdex/api/mm2/mm2.client.hpp
@@ -11,6 +11,7 @@
#include "rpc.disable.hpp"
#include "rpc.recover.funds.hpp"
#include "rpc.hpp"
+#include "rpc2.task.enable_z_coin.cancel.hpp"
namespace atomic_dex::mm2
{
@@ -35,12 +36,13 @@ namespace atomic_dex::mm2
//! Synced
template
- TAnswer process_rpc(TRequest&& request, std::string rpc_command);
+ TAnswer process_rpc(TRequest&& request, std::string rpc_command, bool is_v2 = false);
template
RpcReturnType rpc_process_answer(const web::http::http_response& resp, const std::string& rpc_command);
- t_disable_coin_answer rpc_disable_coin(t_disable_coin_request&& request);
- t_recover_funds_of_swap_answer rpc_recover_funds(t_recover_funds_of_swap_request&& request);
+ t_disable_coin_answer rpc_disable_coin(t_disable_coin_request&& request);
+ t_recover_funds_of_swap_answer rpc_recover_funds(t_recover_funds_of_swap_request&& request);
+ t_enable_z_coin_cancel_answer rpc_enable_z_coin_cancel(t_enable_z_coin_cancel_request&& request);
};
} // namespace atomic_dex
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/mm2.cpp b/src/core/atomicdex/api/mm2/mm2.cpp
index d889bd07d1..4f8baa3321 100644
--- a/src/core/atomicdex/api/mm2/mm2.cpp
+++ b/src/core/atomicdex/api/mm2/mm2.cpp
@@ -26,8 +26,8 @@
#include "atomicdex/api/mm2/rpc.recover.funds.hpp"
#include "atomicdex/api/mm2/rpc.trade.preimage.hpp"
#include "atomicdex/api/mm2/rpc.validate.address.hpp"
-#include "atomicdex/api/mm2/rpc.withdraw.hpp"
-#include "atomicdex/api/mm2/rpc2.withdraw_status.hpp"
+#include "atomicdex/api/mm2/rpc2.withdraw.hpp"
+#include "atomicdex/api/mm2/rpc2.task.withdraw.status.hpp"
#include "atomicdex/api/mm2/rpc.recover.funds.hpp"
#include "atomicdex/pages/qt.settings.page.hpp"
#include "atomicdex/services/price/global.provider.hpp"
diff --git a/src/core/atomicdex/api/mm2/mm2.hpp b/src/core/atomicdex/api/mm2/mm2.hpp
index ae8c9f170d..4c55afafe8 100644
--- a/src/core/atomicdex/api/mm2/mm2.hpp
+++ b/src/core/atomicdex/api/mm2/mm2.hpp
@@ -34,7 +34,7 @@ namespace ag = antara::gaming;
namespace atomic_dex::mm2
{
- inline constexpr const char* g_etherscan_proxy_endpoint = "https://komodo.live:3334";
+ inline constexpr const char* g_etherscan_proxy_endpoint = "https://komodo.earth:3334";
inline std::unique_ptr g_etherscan_proxy_http_client{
std::make_unique(FROM_STD_STR(g_etherscan_proxy_endpoint))};
inline std::unique_ptr g_qtum_proxy_http_client{
diff --git a/src/core/atomicdex/api/mm2/my_tx_history_rpc.cpp b/src/core/atomicdex/api/mm2/my_tx_history_rpc.cpp
index 6a0c86ef95..a154fa4a0f 100644
--- a/src/core/atomicdex/api/mm2/my_tx_history_rpc.cpp
+++ b/src/core/atomicdex/api/mm2/my_tx_history_rpc.cpp
@@ -1,4 +1,4 @@
-// atomicdex-desktop
+// komodo-wallet
// Author(s): syl
#include
diff --git a/src/core/atomicdex/api/mm2/my_tx_history_rpc.hpp b/src/core/atomicdex/api/mm2/my_tx_history_rpc.hpp
index ea308b14b6..bc7e6e1c94 100644
--- a/src/core/atomicdex/api/mm2/my_tx_history_rpc.hpp
+++ b/src/core/atomicdex/api/mm2/my_tx_history_rpc.hpp
@@ -1,4 +1,4 @@
-// atomicdex-desktop
+// komodo-wallet
// Author(s): syl
#include
diff --git a/src/core/atomicdex/api/mm2/my_tx_history_v1_rpc.hpp b/src/core/atomicdex/api/mm2/my_tx_history_v1_rpc.hpp
index 8b85d28cc5..1ff69bcc08 100644
--- a/src/core/atomicdex/api/mm2/my_tx_history_v1_rpc.hpp
+++ b/src/core/atomicdex/api/mm2/my_tx_history_v1_rpc.hpp
@@ -1,4 +1,4 @@
-// atomicdex-desktop
+// komodo-wallet
// Author(s): syl
#pragma once
diff --git a/src/core/atomicdex/api/mm2/orderbook.order.contents.cpp b/src/core/atomicdex/api/mm2/orderbook.order.contents.cpp
index 7c066603fd..0da85f01c7 100644
--- a/src/core/atomicdex/api/mm2/orderbook.order.contents.cpp
+++ b/src/core/atomicdex/api/mm2/orderbook.order.contents.cpp
@@ -32,6 +32,15 @@ namespace atomic_dex::mm2
{
j.at("coin").get_to(contents.coin);
+ if (contents.coin.find("-segwit") != std::string::npos)
+ {
+ std::string uuid = j["uuid"];
+ contents.uuid = uuid + "-segwit";
+ }
+ else
+ {
+ j.at("uuid").get_to(contents.uuid);
+ }
if (j.at("address").contains("address_data"))
{
j.at("address").at("address_data").get_to(contents.address);
@@ -40,9 +49,7 @@ namespace atomic_dex::mm2
{
contents.address = "Shielded";
}
-
j.at("pubkey").get_to(contents.pubkey);
- j.at("uuid").get_to(contents.uuid);
j.at("is_mine").get_to(contents.is_mine);
j.at("price").at("decimal").get_to(contents.price);
diff --git a/src/core/atomicdex/api/mm2/paging_options.cpp b/src/core/atomicdex/api/mm2/paging_options.cpp
index a0f95fc001..91e2c9b834 100644
--- a/src/core/atomicdex/api/mm2/paging_options.cpp
+++ b/src/core/atomicdex/api/mm2/paging_options.cpp
@@ -1,4 +1,4 @@
-// atomicdex-desktop
+// komodo-wallet
// Author(s): syl
#include
diff --git a/src/core/atomicdex/api/mm2/paging_options.hpp b/src/core/atomicdex/api/mm2/paging_options.hpp
index df3ba02200..4f48ec69db 100644
--- a/src/core/atomicdex/api/mm2/paging_options.hpp
+++ b/src/core/atomicdex/api/mm2/paging_options.hpp
@@ -1,4 +1,4 @@
-// atomicdex-desktop
+// komodo-wallet
// Author(s): syl
#pragma once
diff --git a/src/core/atomicdex/api/mm2/rpc.electrum.cpp b/src/core/atomicdex/api/mm2/rpc.electrum.cpp
index dfea39b95b..9ac193efba 100644
--- a/src/core/atomicdex/api/mm2/rpc.electrum.cpp
+++ b/src/core/atomicdex/api/mm2/rpc.electrum.cpp
@@ -37,8 +37,14 @@ namespace atomic_dex::mm2
if (cfg.coin_type == CoinType::QRC20)
{
- j["swap_contract_address"] = cfg.is_testnet ? cfg.testnet_qrc_swap_contract_address : cfg.mainnet_qrc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.testnet_fallback_qrc_swap_contract_address : cfg.mainnet_fallback_qrc_swap_contract_address;
+ if (cfg.swap_contract_address.has_value())
+ {
+ j["swap_contract_address"] = cfg.swap_contract_address.value();
+ }
+ if (cfg.fallback_swap_contract_address.has_value())
+ {
+ j["fallback_swap_contract_address"] = cfg.fallback_swap_contract_address.value();
+ }
}
if (cfg.bchd_urls.has_value()) {
diff --git a/src/core/atomicdex/api/mm2/rpc.electrum.hpp b/src/core/atomicdex/api/mm2/rpc.electrum.hpp
index 1960e56ec3..86dc73d6ac 100644
--- a/src/core/atomicdex/api/mm2/rpc.electrum.hpp
+++ b/src/core/atomicdex/api/mm2/rpc.electrum.hpp
@@ -32,14 +32,12 @@ namespace atomic_dex::mm2
CoinType coin_type;
bool is_testnet{false};
bool with_tx_history{true};
- const std::string testnet_qrc_swap_contract_address{"0xba8b71f3544b93e2f681f996da519a98ace0107a"};
- const std::string testnet_fallback_qrc_swap_contract_address{testnet_qrc_swap_contract_address};
- const std::string mainnet_qrc_swap_contract_address{"0x2f754733acd6d753731c00fee32cb484551cc15d"};
- const std::string mainnet_fallback_qrc_swap_contract_address{mainnet_qrc_swap_contract_address};
+ std::optional swap_contract_address{std::nullopt};
+ std::optional fallback_swap_contract_address{std::nullopt};
std::optional address_format;
std::optional merge_params;
- std::optional> bchd_urls;
- std::optional allow_slp_unsafe_conf;
+ std::optional> bchd_urls;
+ std::optional allow_slp_unsafe_conf;
};
struct electrum_answer
diff --git a/src/core/atomicdex/api/mm2/rpc.enable.cpp b/src/core/atomicdex/api/mm2/rpc.enable.cpp
index 0722bb9c23..845694e8de 100644
--- a/src/core/atomicdex/api/mm2/rpc.enable.cpp
+++ b/src/core/atomicdex/api/mm2/rpc.enable.cpp
@@ -28,125 +28,43 @@ namespace atomic_dex::mm2
to_json(nlohmann::json& j, const enable_request& cfg)
{
j["coin"] = cfg.coin_name;
-
switch (cfg.coin_type)
{
case CoinType::ERC20:
{
- j["gas_station_url"] = cfg.gas_station_url;
- j["urls"] = cfg.urls;
- j["swap_contract_address"] = cfg.is_testnet ? cfg.erc_testnet_swap_contract_address : cfg.erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.erc_testnet_fallback_swap_contract_address : cfg.erc_fallback_swap_contract_address;
- break;
+ if (cfg.gas_station_url.has_value())
+ {
+ j["gas_station_url"] = cfg.gas_station_url.value();
+ }
}
case CoinType::Matic:
{
- j["gas_station_url"] = cfg.is_testnet ? cfg.testnet_matic_gas_station_url : cfg.matic_gas_station_url;
- j["gas_station_decimals"] = cfg.matic_gas_station_decimals;
- j["urls"] = cfg.urls;
- j["swap_contract_address"] = cfg.is_testnet ? cfg.matic_erc_testnet_swap_contract_address : cfg.matic_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.matic_erc_testnet_fallback_swap_contract_address : cfg.matic_erc_fallback_swap_contract_address;
- break;
- }
- case CoinType::Optimism:
- {
- j["urls"] = cfg.urls;
- j["swap_contract_address"] = cfg.optimism_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.optimism_erc_fallback_swap_contract_address;
- break;
- }
- case CoinType::Arbitrum:
- {
- j["urls"] = cfg.urls;
- j["swap_contract_address"] = cfg.arbitrum_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.arbitrum_erc_fallback_swap_contract_address;
- break;
- }
- case CoinType::BEP20:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.bnb_testnet_swap_contract_address : cfg.bnb_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.bnb_testnet_fallback_swap_contract_address : cfg.bnb_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::AVX20:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.avax_erc_testnet_swap_contract_address : cfg.avax_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.avax_erc_testnet_fallback_swap_contract_address : cfg.avax_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::FTM20:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.ftm_erc_testnet_swap_contract_address : cfg.ftm_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.ftm_erc_testnet_fallback_swap_contract_address : cfg.ftm_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::HRC20:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.one_erc_testnet_swap_contract_address : cfg.one_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.one_erc_testnet_fallback_swap_contract_address : cfg.one_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::Ubiq:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.ubiq_erc_testnet_swap_contract_address : cfg.ubiq_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.ubiq_erc_testnet_fallback_swap_contract_address : cfg.ubiq_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::KRC20:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.krc_erc_testnet_swap_contract_address : cfg.krc_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.krc_erc_testnet_fallback_swap_contract_address : cfg.krc_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::Moonriver:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.movr_erc_testnet_swap_contract_address : cfg.movr_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.movr_erc_testnet_fallback_swap_contract_address : cfg.movr_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::Moonbeam:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.glmr_erc_testnet_swap_contract_address : cfg.glmr_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.glmr_erc_testnet_fallback_swap_contract_address : cfg.glmr_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::HecoChain:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.hco_erc_testnet_swap_contract_address : cfg.hco_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.hco_erc_testnet_fallback_swap_contract_address : cfg.hco_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::SmartBCH:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.sbch_erc_testnet_swap_contract_address : cfg.sbch_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.sbch_erc_testnet_fallback_swap_contract_address : cfg.sbch_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::EthereumClassic:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.etc_erc_testnet_swap_contract_address : cfg.etc_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.etc_erc_testnet_fallback_swap_contract_address : cfg.etc_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
- }
- case CoinType::RSK:
- {
- j["swap_contract_address"] = cfg.is_testnet ? cfg.rsk_erc_testnet_swap_contract_address : cfg.rsk_erc_swap_contract_address;
- j["fallback_swap_contract"] = cfg.is_testnet ? cfg.rsk_erc_testnet_fallback_swap_contract_address : cfg.rsk_erc_fallback_swap_contract_address;
- j["urls"] = cfg.urls;
- break;
+ if (cfg.is_testnet)
+ {
+ if (cfg.testnet_matic_gas_station_url.has_value())
+ {
+ j["gas_station_url"] = cfg.testnet_matic_gas_station_url.value();
+ }
+ }
+ else
+ {
+ if (cfg.matic_gas_station_url.has_value())
+ {
+ j["gas_station_url"] = cfg.matic_gas_station_url.value();
+ }
+ }
+ if (cfg.matic_gas_station_decimals.has_value())
+ {
+ j["gas_station_decimals"] = cfg.matic_gas_station_decimals.value();
+ }
}
default:
+ j["urls"] = cfg.urls;
+ j["swap_contract_address"] = cfg.swap_contract_address;
+ if (cfg.fallback_swap_contract_address.has_value())
+ {
+ j["fallback_swap_contract"] = cfg.fallback_swap_contract_address.value();
+ }
break;
}
diff --git a/src/core/atomicdex/api/mm2/rpc.enable.hpp b/src/core/atomicdex/api/mm2/rpc.enable.hpp
index 2b7d3274e3..69170a0341 100644
--- a/src/core/atomicdex/api/mm2/rpc.enable.hpp
+++ b/src/core/atomicdex/api/mm2/rpc.enable.hpp
@@ -17,6 +17,7 @@
#pragma once
//! Deps
+#include
#include
//! Project Headers
@@ -27,76 +28,18 @@ namespace atomic_dex::mm2
//! Only for erc 20
struct enable_request
{
- std::string coin_name;
- std::vector urls;
- CoinType coin_type;
- bool is_testnet{false};
- const std::string erc_swap_contract_address{"0x24ABE4c71FC658C91313b6552cd40cD808b3Ea80"};
- const std::string erc_testnet_swap_contract_address{"0x6b5A52217006B965BB190864D62dc3d270F7AaFD"};
- const std::string erc_fallback_swap_contract_address{"0x8500AFc0bc5214728082163326C2FF0C73f4a871"};
- const std::string erc_testnet_fallback_swap_contract_address{"0x7Bc1bBDD6A0a722fC9bffC49c921B685ECB84b94"};
- const std::string etc_erc_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string etc_erc_testnet_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string etc_erc_fallback_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string etc_erc_testnet_fallback_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string ubiq_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ubiq_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ubiq_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ubiq_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string krc_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string krc_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string krc_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string krc_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string movr_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string movr_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string movr_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string movr_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string glmr_erc_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string glmr_erc_fallback_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string glmr_erc_testnet_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string glmr_erc_testnet_fallback_swap_contract_address{"0x6d9ce4BD298DE38bAfEFD15f5C6f5c95313B1d94"};
- const std::string hco_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string hco_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string hco_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string hco_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string avax_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string avax_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string avax_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string avax_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string one_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string one_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string one_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string one_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ftm_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ftm_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ftm_erc_testnet_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string ftm_erc_testnet_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string matic_erc_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string matic_erc_fallback_swap_contract_address{"0x9130b257D37A52E52F21054c4DA3450c72f595CE"};
- const std::string matic_erc_testnet_swap_contract_address{"0x73c1Dd989218c3A154C71Fc08Eb55A24Bd2B3A10"};
- const std::string matic_erc_testnet_fallback_swap_contract_address{"0x73c1Dd989218c3A154C71Fc08Eb55A24Bd2B3A10"};
- const std::string optimism_erc_swap_contract_address{"0x9130b257d37a52e52f21054c4da3450c72f595ce"};
- const std::string optimism_erc_fallback_swap_contract_address{"0x9130b257d37a52e52f21054c4da3450c72f595ce"};
- const std::string arbitrum_erc_swap_contract_address{"0x9130b257d37a52e52f21054c4da3450c72f595ce"};
- const std::string arbitrum_erc_fallback_swap_contract_address{"0x9130b257d37a52e52f21054c4da3450c72f595ce"};
- const std::string sbch_erc_swap_contract_address{"0x25bF2AAB8749AD2e4360b3e0B738f3Cd700C4D68"};
- const std::string sbch_erc_fallback_swap_contract_address{"0x25bF2AAB8749AD2e4360b3e0B738f3Cd700C4D68"};
- const std::string sbch_erc_testnet_swap_contract_address{"0x25bF2AAB8749AD2e4360b3e0B738f3Cd700C4D68"};
- const std::string sbch_erc_testnet_fallback_swap_contract_address{"0x25bF2AAB8749AD2e4360b3e0B738f3Cd700C4D68"};
- const std::string rsk_erc_swap_contract_address{"0x6D9CE4bD298de38Bafefd15F5C6F5c95313B1d94"};
- const std::string rsk_erc_fallback_swap_contract_address{"0x6D9CE4bD298de38Bafefd15F5C6F5c95313B1d94"};
- const std::string rsk_erc_testnet_swap_contract_address{"0x6D9CE4bD298de38Bafefd15F5C6F5c95313B1d94"};
- const std::string rsk_erc_testnet_fallback_swap_contract_address{"0x6D9CE4bD298de38Bafefd15F5C6F5c95313B1d94"};
- const std::string bnb_testnet_swap_contract_address{"0xcCD17C913aD7b772755Ad4F0BDFF7B34C6339150"};
- const std::string bnb_swap_contract_address{"0xeDc5b89Fe1f0382F9E4316069971D90a0951DB31"};
- const std::string bnb_fallback_swap_contract_address{bnb_swap_contract_address};
- const std::string bnb_testnet_fallback_swap_contract_address{bnb_testnet_swap_contract_address};
- const std::size_t matic_gas_station_decimals{9};
- std::string gas_station_url{"https://ethgasstation.info/json/ethgasAPI.json"};
- std::string matic_gas_station_url{"https://gasstation-mainnet.matic.network/"};
- std::string testnet_matic_gas_station_url{"https://gasstation-mumbai.matic.today/"};
- std::string type; ///< QRC-20 ?
- bool with_tx_history{true};
+ std::string coin_name;
+ std::vector urls;
+ CoinType coin_type;
+ bool is_testnet{false};
+ const std::string swap_contract_address;
+ std::optional fallback_swap_contract_address{std::nullopt};
+ std::optional matic_gas_station_decimals{9};
+ std::optional gas_station_url{std::nullopt};
+ std::optional matic_gas_station_url{std::nullopt};
+ std::optional testnet_matic_gas_station_url{std::nullopt};
+ std::optional type; ///< QRC-20 ?
+ bool with_tx_history{true};
};
void to_json(nlohmann::json& j, const enable_request& cfg);
diff --git a/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.cpp b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.cpp
new file mode 100644
index 0000000000..d20efa4132
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.cpp
@@ -0,0 +1,25 @@
+#include
+
+#include "rpc2.enable_tendermint_token.hpp"
+
+namespace atomic_dex::mm2
+{
+ void to_json(nlohmann::json& j, const enable_tendermint_token_rpc_request& request)
+ {
+ j["ticker"] = request.ticker;
+ if (request.activation_params.required_confirmations)
+ {
+ j["activation_params"]["required_confirmations"] = *request.activation_params.required_confirmations;
+ }
+ else
+ {
+ j["activation_params"] = nlohmann::json::object();
+ }
+ }
+
+ void from_json(const nlohmann::json& j, enable_tendermint_token_rpc_result& in)
+ {
+ j.at("platform_coin").get_to(in.platform_coin);
+ j.at("balances").get_to>(in.balances);
+ }
+}
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.hpp b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.hpp
new file mode 100644
index 0000000000..a41920ad3d
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_token.hpp
@@ -0,0 +1,59 @@
+/******************************************************************************
+ * Copyright © 2013-2022 The Komodo Platform Developers. *
+ * *
+ * See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at *
+ * the top-level directory of this distribution for the individual copyright *
+ * holder information and the developer policies on copyright and licensing. *
+ * *
+ * Unless otherwise agreed in a custom licensing agreement, no part of the *
+ * Komodo Platform software, including this file may be copied, modified, *
+ * propagated or distributed except according to the terms contained in the *
+ * LICENSE file *
+ * *
+ * Removal or modification of this copyright notice is prohibited. *
+ * *
+ ******************************************************************************/
+
+#pragma once
+
+#include
+#include
+
+#include //> nlohmann::json
+
+#include "rpc.hpp"
+#include "balance_info.hpp"
+
+namespace atomic_dex::mm2
+{
+ struct enable_tendermint_token_rpc
+ {
+ static constexpr auto endpoint = "enable_tendermint_token";
+ static constexpr bool is_v2 = true;
+
+ struct expected_request_type
+ {
+ std::string ticker;
+ struct { std::optional required_confirmations; } activation_params;
+ };
+
+ struct expected_result_type
+ {
+ std::string platform_coin;
+ std::unordered_map balances;
+ };
+
+ using expected_error_type = rpc_basic_error_type;
+
+ expected_request_type request;
+ std::optional result;
+ std::optional error;
+ };
+
+ using enable_tendermint_token_rpc_request = enable_tendermint_token_rpc::expected_request_type;
+ using enable_tendermint_token_rpc_result = enable_tendermint_token_rpc::expected_result_type;
+ using enable_tendermint_token_rpc_error = enable_tendermint_token_rpc::expected_error_type;
+
+ void to_json(nlohmann::json& j, const enable_tendermint_token_rpc_request& request);
+ void from_json(const nlohmann::json& j, enable_tendermint_token_rpc_result& in);
+}
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.cpp b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.cpp
new file mode 100644
index 0000000000..b924bbe656
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.cpp
@@ -0,0 +1,39 @@
+#include
+
+#include "rpc2.enable_tendermint_with_assets.hpp"
+
+namespace atomic_dex::mm2
+{
+ void to_json(nlohmann::json& j, const enable_tendermint_with_assets_request_rpc& in)
+ {
+ j["ticker"] = in.ticker;
+ j["rpc_urls"] = in.rpc_urls;
+ j["tx_history"] = in.tx_history;
+ j["tokens_params"] = in.tokens_params;
+ if (in.required_confirmations.has_value())
+ j["required_confirmations"] = in.required_confirmations.value();
+ if (in.requires_notarization.has_value())
+ j["requires_notarization"] = in.requires_notarization.value();
+ }
+
+ void to_json(nlohmann::json& j, const enable_tendermint_with_assets_request_rpc::tendermint_token_request_t& in)
+ {
+ j["ticker"] = in.ticker;
+ if (in.required_confirmations)
+ j["required_confirmations"] = in.required_confirmations.value();
+ }
+
+ void from_json(const nlohmann::json& json, enable_tendermint_with_assets_result_rpc& out)
+ {
+ out.address = json["address"];
+ out.current_block = json["current_block"];
+ out.tendermint_balances_infos = json["balance"].get();
+ out.tendermint_token_balances_infos = json["tokens_balances"].get();
+ }
+
+ void from_json(const nlohmann::json& json, enable_tendermint_with_assets_result_rpc::tendermint_balance_infos_t& out)
+ {
+ out.balances.spendable = json["spendable"];
+ out.balances.unspendable = json["unspendable"];
+ }
+}
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.hpp b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.hpp
new file mode 100644
index 0000000000..c65408658f
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.enable_tendermint_with_assets.hpp
@@ -0,0 +1,60 @@
+#pragma once
+
+#include
+
+#include "rpc.hpp"
+#include "balance_info.hpp"
+#include "atomicdex/config/electrum.cfg.hpp"
+
+namespace atomic_dex::mm2
+{
+ struct enable_tendermint_with_assets_rpc
+ {
+ static constexpr auto endpoint = "enable_tendermint_with_assets";
+ static constexpr bool is_v2 = true;
+
+ struct expected_request_type
+ {
+ struct tendermint_token_request_t
+ {
+ std::string ticker;
+ std::optional required_confirmations;
+ };
+
+ std::string ticker;
+ std::vector rpc_urls;
+ bool tx_history{true};
+ std::vector tokens_params;
+ std::optional required_confirmations;
+ std::optional requires_notarization;
+ };
+
+ struct expected_result_type
+ {
+ struct tendermint_balance_infos_t
+ {
+ balance_info balances;
+ };
+
+ std::string address;
+ std::size_t current_block;
+ tendermint_balance_infos_t tendermint_balances_infos;
+ std::unordered_map tendermint_token_balances_infos;
+ };
+
+ using expected_error_type = rpc_basic_error_type;
+
+ expected_request_type request;
+ std::optional result;
+ std::optional error;
+ };
+
+ using enable_tendermint_with_assets_request_rpc = enable_tendermint_with_assets_rpc::expected_request_type;
+ using enable_tendermint_with_assets_result_rpc = enable_tendermint_with_assets_rpc::expected_result_type;
+ using enable_tendermint_with_assets_error_rpc = enable_tendermint_with_assets_rpc::expected_error_type;
+
+ void to_json(nlohmann::json& j, const enable_tendermint_with_assets_request_rpc& in);
+ void to_json(nlohmann::json& j, const enable_tendermint_with_assets_request_rpc::tendermint_token_request_t& in);
+ void from_json(const nlohmann::json& json, enable_tendermint_with_assets_result_rpc& out);
+ void from_json(const nlohmann::json& json, enable_tendermint_with_assets_result_rpc::tendermint_balance_infos_t& out);
+}
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.cpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.cpp
new file mode 100644
index 0000000000..1c2a90f384
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.cpp
@@ -0,0 +1,53 @@
+/******************************************************************************
+ * Copyright © 2013-2022 The Komodo Platform Developers. *
+ * *
+ * See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at *
+ * the top-level directory of this distribution for the individual copyright *
+ * holder information and the developer policies on copyright and licensing. *
+ * *
+ * Unless otherwise agreed in a custom licensing agreement, no part of the *
+ * Komodo Platform software, including this file may be copied, modified, *
+ * propagated or distributed except according to the terms contained in the *
+ * LICENSE file *
+ * *
+ * Removal or modification of this copyright notice is prohibited. *
+ * *
+ ******************************************************************************/
+
+//! Deps
+#include
+
+//! Project Headers
+#include "atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.hpp"
+
+//! Implementation 2.0 RPC [enable_z_coin_cancel]
+namespace atomic_dex::mm2
+{
+ //! Serialization
+ void to_json(nlohmann::json& j, const enable_z_coin_cancel_request& request)
+ {
+ j["params"]["task_id"] = request.task_id;
+ }
+
+ //! Deserialization
+ void from_json(const nlohmann::json& j, enable_z_coin_cancel_answer_success& answer)
+ {
+ answer.result = j.at("result").get();
+ }
+
+ void
+ from_json(const nlohmann::json& j, enable_z_coin_cancel_answer& answer)
+ {
+ if (j.count("error") >= 1)
+ {
+ answer.error = j;
+ }
+ else
+ {
+ if (j.contains("result") && j.contains("mmrpc") && j.at("mmrpc").get() == "2.0")
+ {
+ answer.result = j.get();
+ }
+ }
+ }
+} // namespace atomic_dex::mm2
diff --git a/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.hpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.hpp
new file mode 100644
index 0000000000..fa6976dfc3
--- /dev/null
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.cancel.hpp
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * Copyright © 2013-2022 The Komodo Platform Developers. *
+ * *
+ * See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at *
+ * the top-level directory of this distribution for the individual copyright *
+ * holder information and the developer policies on copyright and licensing. *
+ * *
+ * Unless otherwise agreed in a custom licensing agreement, no part of the *
+ * Komodo Platform software, including this file may be copied, modified, *
+ * propagated or distributed except according to the terms contained in the *
+ * LICENSE file *
+ * *
+ * Removal or modification of this copyright notice is prohibited. *
+ * *
+ ******************************************************************************/
+
+#pragma once
+
+// Std Headers
+#include
+
+// Deps Headers
+#include
+
+//! Project Headers
+#include "generic.error.hpp"
+
+namespace atomic_dex::mm2
+{
+ struct enable_z_coin_cancel_request
+ {
+ int task_id;
+ };
+
+ void to_json(nlohmann::json& j, const enable_z_coin_cancel_request& request);
+
+ struct enable_z_coin_cancel_answer_success
+ {
+ std::string result;
+ };
+
+ void from_json(const nlohmann::json& j, enable_z_coin_cancel_answer_success& answer);
+
+ struct enable_z_coin_cancel_answer
+ {
+ std::optional result;
+ std::optional error;
+ std::string raw_result; ///< internal
+ int rpc_result_code; ///< internal
+ };
+
+ void from_json(const nlohmann::json& j, enable_z_coin_cancel_answer& answer);
+}
+
+namespace atomic_dex
+{
+ using t_enable_z_coin_cancel_request = mm2::enable_z_coin_cancel_request;
+ using t_enable_z_coin_cancel_answer = mm2::enable_z_coin_cancel_answer;
+ using t_enable_z_coin_cancel_answer_success = mm2::enable_z_coin_cancel_answer_success;
+} // namespace atomic_dex
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_z_coin.cpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.cpp
similarity index 78%
rename from src/core/atomicdex/api/mm2/rpc2.init_z_coin.cpp
rename to src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.cpp
index 6c61b672eb..a4eadae928 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_z_coin.cpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.cpp
@@ -18,23 +18,26 @@
#include
//! Project Headers
-#include "atomicdex/api/mm2/rpc2.init_z_coin.hpp"
+#include "atomicdex/api/mm2/rpc2.task.enable_z_coin.init.hpp"
-//! Implementation 2.0 RPC [init_z_coin]
+//! Implementation 2.0 RPC [enable_z_coin]
namespace atomic_dex::mm2
{
//! Serialization
- void to_json(nlohmann::json& j, const init_z_coin_request& request)
+ void to_json(nlohmann::json& j, const enable_z_coin_request& request)
{
j["params"]["ticker"] = request.coin_name;
j["params"]["activation_params"]["mode"]["rpc"] = "Light";
+ j["params"]["activation_params"]["mode"]["rpc_data"]["sync_params"]["height"] = request.sync_height;
j["params"]["activation_params"]["mode"]["rpc_data"]["electrum_servers"] = request.servers;
j["params"]["activation_params"]["mode"]["rpc_data"]["light_wallet_d_servers"] = request.z_urls;
+ j["params"]["activation_params"]["scan_blocks_per_iteration"] = 5000;
+ j["params"]["activation_params"]["scan_interval"] = 0;
j["params"]["tx_history"] = request.with_tx_history;
}
//! Deserialization
- void from_json(const nlohmann::json& j, init_z_coin_answer& answer)
+ void from_json(const nlohmann::json& j, enable_z_coin_answer& answer)
{
j.at("task_id").get_to(answer.task_id);
}
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_z_coin.hpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.hpp
similarity index 82%
rename from src/core/atomicdex/api/mm2/rpc2.init_z_coin.hpp
rename to src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.hpp
index d7fe101369..7fa02c2f92 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_z_coin.hpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.init.hpp
@@ -28,27 +28,28 @@
namespace atomic_dex::mm2
{
- struct init_z_coin_request
+ struct enable_z_coin_request
{
std::string coin_name;
std::vector servers;
std::vector z_urls;
CoinType coin_type;
+ int sync_height{0};
bool is_testnet{false};
bool with_tx_history{false}; // Not yet in API
};
- struct init_z_coin_answer
+ struct enable_z_coin_answer
{
int task_id;
};
- void to_json(nlohmann::json& j, const init_z_coin_request& request);
- void from_json(const nlohmann::json& j, init_z_coin_answer& answer);
+ void to_json(nlohmann::json& j, const enable_z_coin_request& request);
+ void from_json(const nlohmann::json& j, enable_z_coin_answer& answer);
}
namespace atomic_dex
{
- using t_init_z_coin_request = mm2::init_z_coin_request;
- using t_init_z_coin_answer = mm2::init_z_coin_answer;
+ using t_enable_z_coin_request = mm2::enable_z_coin_request;
+ using t_enable_z_coin_answer = mm2::enable_z_coin_answer;
} // namespace atomic_dex
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.cpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.cpp
similarity index 75%
rename from src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.cpp
rename to src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.cpp
index ded987e419..eff12d0753 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.cpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.cpp
@@ -18,19 +18,20 @@
#include
//! Project Headers
-#include "atomicdex/api/mm2/rpc2.init_z_coin_status.hpp"
+#include "atomicdex/api/mm2/rpc2.task.enable_z_coin.status.hpp"
-//! Implementation 2.0 RPC [init_z_coin_status]
+//! Implementation 2.0 RPC [enable_z_coin_status]
namespace atomic_dex::mm2
{
//! Serialization
- void to_json(nlohmann::json& j, const init_z_coin_status_request& request)
+ void to_json(nlohmann::json& j, const enable_z_coin_status_request& request)
{
j["params"]["task_id"] = request.task_id;
+ j["params"]["forget_if_finished"] = false;
}
//! Deserialization
- void from_json(const nlohmann::json& j, init_z_coin_status_answer_success& answer)
+ void from_json(const nlohmann::json& j, enable_z_coin_status_answer_success& answer)
{
j.at("result").at("status").get_to(answer.status); // [InProgress, Ready]
j.at("result").at("details").get_to(answer.details);
@@ -48,21 +49,21 @@ namespace atomic_dex::mm2
if (j.at("result").at("details").contains("result"))
{
- answer.coin = j.at("result").at("details").at("result").at("ticker").get();
- answer.current_block = j.at("result").at("details").at("result").at("current_block").get();
+ answer.coin = j.at("result").at("details").at("ticker").get();
+ answer.current_block = j.at("result").at("details").at("current_block").get();
- if (j.at("result").at("details").at("result").contains("wallet_balance"))
+ if (j.at("result").at("details").contains("wallet_balance"))
{
- answer.wallet_type = j.at("result").at("details").at("result").at("wallet_balance").at("wallet_type").get();
- answer.address = j.at("result").at("details").at("result").at("wallet_balance").at("address").get();
- answer.spendable_balance = j.at("result").at("details").at("result").at("wallet_balance").at("balance").at("spendable").get();
- answer.unspendable_balance = j.at("result").at("details").at("result").at("wallet_balance").at("balance").at("unspendable").get();
+ answer.wallet_type = j.at("result").at("details").at("wallet_balance").at("wallet_type").get();
+ answer.address = j.at("result").at("details").at("wallet_balance").at("address").get();
+ answer.spendable_balance = j.at("result").at("details").at("wallet_balance").at("balance").at("spendable").get();
+ answer.unspendable_balance = j.at("result").at("details").at("wallet_balance").at("balance").at("unspendable").get();
}
}
}
void
- from_json(const nlohmann::json& j, init_z_coin_status_answer& answer)
+ from_json(const nlohmann::json& j, enable_z_coin_status_answer& answer)
{
if (j.count("error") >= 1)
{
@@ -72,7 +73,7 @@ namespace atomic_dex::mm2
{
if (j.contains("result") && j.contains("mmrpc") && j.at("mmrpc").get() == "2.0")
{
- answer.result = j.at("result").get();
+ answer.result = j.at("result").get();
}
}
}
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.hpp b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.hpp
similarity index 75%
rename from src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.hpp
rename to src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.hpp
index 845c5e6356..e55735448f 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_z_coin_status.hpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.enable_z_coin.status.hpp
@@ -27,14 +27,14 @@
namespace atomic_dex::mm2
{
- struct init_z_coin_status_request
+ struct enable_z_coin_status_request
{
int task_id;
};
- void to_json(nlohmann::json& j, const init_z_coin_status_request& request);
+ void to_json(nlohmann::json& j, const enable_z_coin_status_request& request);
- struct init_z_coin_status_answer_success
+ struct enable_z_coin_status_answer_success
{
std::string status{"disabled"};
std::string details{"N/A"};
@@ -48,22 +48,22 @@ namespace atomic_dex::mm2
std::optional unspendable_balance;
};
- void from_json(const nlohmann::json& j, init_z_coin_status_answer_success& answer);
+ void from_json(const nlohmann::json& j, enable_z_coin_status_answer_success& answer);
- struct init_z_coin_status_answer
+ struct enable_z_coin_status_answer
{
- std::optional result;
+ std::optional result;
std::optional error;
std::string raw_result; ///< internal
int rpc_result_code; ///< internal
};
- void from_json(const nlohmann::json& j, init_z_coin_status_answer& answer);
+ void from_json(const nlohmann::json& j, enable_z_coin_status_answer& answer);
}
namespace atomic_dex
{
- using t_init_z_coin_status_request = mm2::init_z_coin_status_request;
- using t_init_z_coin_status_answer = mm2::init_z_coin_status_answer;
- using t_init_z_coin_status_answer_success = mm2::init_z_coin_status_answer_success;
+ using t_enable_z_coin_status_request = mm2::enable_z_coin_status_request;
+ using t_enable_z_coin_status_answer = mm2::enable_z_coin_status_answer;
+ using t_enable_z_coin_status_answer_success = mm2::enable_z_coin_status_answer_success;
} // namespace atomic_dex
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_withdraw.cpp b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.cpp
similarity index 82%
rename from src/core/atomicdex/api/mm2/rpc2.init_withdraw.cpp
rename to src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.cpp
index b42ca76fb2..29d44086fe 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_withdraw.cpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.cpp
@@ -18,20 +18,20 @@
#include
//! Project Headers
-#include "atomicdex/api/mm2/rpc2.init_withdraw.hpp"
+#include "atomicdex/api/mm2/rpc2.task.withdraw.init.hpp"
-//! Implementation 2.0 RPC [init_withdraw]
+//! Implementation 2.0 RPC [withdraw_init]
namespace atomic_dex::mm2
{
void
- to_json(nlohmann::json& j, const init_withdraw_fees& request)
+ to_json(nlohmann::json& j, const withdraw_init_fees& request)
{
j["type"] = request.type;
j["amount"] = request.amount.value();
}
//! Serialization
- void to_json(nlohmann::json& j, const init_withdraw_request& request)
+ void to_json(nlohmann::json& j, const withdraw_init_request& request)
{
nlohmann::json obj = nlohmann::json::object();
@@ -40,6 +40,10 @@ namespace atomic_dex::mm2
obj["params"]["amount"] = request.amount;
obj["params"]["max"] = request.max;
+ if (request.memo.has_value())
+ {
+ obj["params"]["memo"] = request.memo.value();
+ }
if (request.fees.has_value())
{
obj["params"]["fee"] = request.fees.value();
@@ -48,7 +52,7 @@ namespace atomic_dex::mm2
}
//! Deserialization
- void from_json(const nlohmann::json& j, init_withdraw_answer& answer)
+ void from_json(const nlohmann::json& j, withdraw_init_answer& answer)
{
j.at("task_id").get_to(answer.task_id);
}
diff --git a/src/core/atomicdex/api/mm2/rpc2.init_withdraw.hpp b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.hpp
similarity index 76%
rename from src/core/atomicdex/api/mm2/rpc2.init_withdraw.hpp
rename to src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.hpp
index 2f214f6de9..88558fd1cd 100644
--- a/src/core/atomicdex/api/mm2/rpc2.init_withdraw.hpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.init.hpp
@@ -24,33 +24,34 @@
namespace atomic_dex::mm2
{
- struct init_withdraw_fees
+ struct withdraw_init_fees
{
std::string type; ///< UtxoFixed, UtxoPerKbyte, EthGas, Qrc20Gas
std::optional amount; ///< Utxo only
};
- struct init_withdraw_request
+ struct withdraw_init_request
{
std::string coin;
std::string to;
std::string amount;
- std::optional fees{std::nullopt}; ///< ignored if std::nullopt
+ std::optional fees{std::nullopt}; ///< ignored if std::nullopt
+ std::optional memo; ///< memo for zhtlc
bool max{false};
};
- struct init_withdraw_answer
+ struct withdraw_init_answer
{
int task_id;
};
- void to_json(nlohmann::json& j, const init_withdraw_request& request);
- void from_json(const nlohmann::json& j, init_withdraw_answer& answer);
+ void to_json(nlohmann::json& j, const withdraw_init_request& request);
+ void from_json(const nlohmann::json& j, withdraw_init_answer& answer);
}
namespace atomic_dex
{
- using t_init_withdraw_request = mm2::init_withdraw_request;
- using t_init_withdraw_fees = mm2::init_withdraw_fees;
- using t_init_withdraw_answer = mm2::init_withdraw_answer;
+ using t_withdraw_init_request = mm2::withdraw_init_request;
+ using t_withdraw_init_fees = mm2::withdraw_init_fees;
+ using t_withdraw_init_answer = mm2::withdraw_init_answer;
} // namespace atomic_dex
diff --git a/src/core/atomicdex/api/mm2/rpc2.withdraw_status.cpp b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.status.cpp
similarity index 90%
rename from src/core/atomicdex/api/mm2/rpc2.withdraw_status.cpp
rename to src/core/atomicdex/api/mm2/rpc2.task.withdraw.status.cpp
index c38d5cfbe0..9df0b7b0af 100644
--- a/src/core/atomicdex/api/mm2/rpc2.withdraw_status.cpp
+++ b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.status.cpp
@@ -18,7 +18,7 @@
#include
//! Project Headers
-#include "atomicdex/api/mm2/rpc2.withdraw_status.hpp"
+#include "atomicdex/api/mm2/rpc2.task.withdraw.status.hpp"
//! Implementation 2.0 RPC [withdraw_status]
namespace atomic_dex::mm2
@@ -27,6 +27,7 @@ namespace atomic_dex::mm2
void to_json(nlohmann::json& j, const withdraw_status_request& request)
{
j["params"]["task_id"] = request.task_id;
+ j["params"]["forget_if_finished"] = false;
}
//! Deserialization
@@ -38,7 +39,7 @@ namespace atomic_dex::mm2
}
else
{
- answer.result = j.at("result").at("details").at("result").get();
+ answer.result = j.at("result").at("details").get();
}
}
} // namespace atomic_dex::mm2
diff --git a/src/core/atomicdex/api/mm2/rpc2.withdraw_status.hpp b/src/core/atomicdex/api/mm2/rpc2.task.withdraw.status.hpp
similarity index 100%
rename from src/core/atomicdex/api/mm2/rpc2.withdraw_status.hpp
rename to src/core/atomicdex/api/mm2/rpc2.task.withdraw.status.hpp
diff --git a/src/core/atomicdex/api/mm2/rpc.withdraw.cpp b/src/core/atomicdex/api/mm2/rpc2.withdraw.cpp
similarity index 66%
rename from src/core/atomicdex/api/mm2/rpc.withdraw.cpp
rename to src/core/atomicdex/api/mm2/rpc2.withdraw.cpp
index a37bd5c91d..cdf6ccf902 100644
--- a/src/core/atomicdex/api/mm2/rpc.withdraw.cpp
+++ b/src/core/atomicdex/api/mm2/rpc2.withdraw.cpp
@@ -6,7 +6,7 @@
#include
//! Our Headers
-#include "rpc.withdraw.hpp"
+#include "rpc2.withdraw.hpp"
namespace atomic_dex::mm2
{
@@ -41,22 +41,19 @@ namespace atomic_dex::mm2
{
nlohmann::json obj = nlohmann::json::object();
- obj["coin"] = cfg.coin;
- obj["amount"] = cfg.amount;
- obj["to"] = cfg.to;
- obj["max"] = cfg.max;
- if (cfg.fees.has_value())
- {
- obj["fee"] = cfg.fees.value();
- }
- if (j.contains("mmrpc") && j.at("mmrpc").get() == "2.0")
+ obj["params"]["coin"] = cfg.coin;
+ obj["params"]["amount"] = cfg.amount;
+ obj["params"]["to"] = cfg.to;
+ obj["params"]["max"] = cfg.max;
+ if (cfg.memo.has_value())
{
- j["params"] = obj;
+ obj["params"]["memo"] = cfg.memo.value();
}
- else
+ if (cfg.fees.has_value())
{
- j.update(obj);
+ obj["params"]["fee"] = cfg.fees.value();
}
+ j.update(obj);
}
void
@@ -68,14 +65,7 @@ namespace atomic_dex::mm2
}
else
{
- if (j.contains("result") && j.contains("mmrpc") && j.at("mmrpc").get() == "2.0")
- {
- answer.result = j.at("result").get();
- }
- else
- {
- answer.result = j.get();
- }
+ answer.result = j.at("result").get();
}
}
} // namespace atomic_dex::mm2
\ No newline at end of file
diff --git a/src/core/atomicdex/api/mm2/rpc.withdraw.hpp b/src/core/atomicdex/api/mm2/rpc2.withdraw.hpp
similarity index 95%
rename from src/core/atomicdex/api/mm2/rpc.withdraw.hpp
rename to src/core/atomicdex/api/mm2/rpc2.withdraw.hpp
index d424c7c825..51b9a687d8 100644
--- a/src/core/atomicdex/api/mm2/rpc.withdraw.hpp
+++ b/src/core/atomicdex/api/mm2/rpc2.withdraw.hpp
@@ -28,6 +28,7 @@ namespace atomic_dex::mm2
std::string to; ///< coins will be withdraw to this address
std::string amount; ///< ignored if max is true
std::optional fees{std::nullopt}; ///< ignored if std::nullopt
+ std::optional memo; ///< memo for tendermint
bool max{false};
};
diff --git a/src/core/atomicdex/api/mm2/transaction.data.cpp b/src/core/atomicdex/api/mm2/transaction.data.cpp
index 54dbf4b2e8..fd140e4667 100644
--- a/src/core/atomicdex/api/mm2/transaction.data.cpp
+++ b/src/core/atomicdex/api/mm2/transaction.data.cpp
@@ -18,6 +18,14 @@ namespace atomic_dex::mm2
j.at("total_fee").get_to(cfg.total_fee);
}
+ void from_json(const nlohmann::json& j, fee_tendermint_coin& cfg)
+ {
+ j.at("coin").get_to(cfg.coin);
+ j.at("type").get_to(cfg.type);
+ j.at("amount").get_to(cfg.amount);
+ j.at("gas_limit").get_to(cfg.gas_limit);
+ }
+
void from_json(const nlohmann::json& j, fee_qrc_coin& cfg)
{
j.at("coin").get_to(cfg.coin);
@@ -78,6 +86,20 @@ namespace atomic_dex::mm2
cfg.confirmations = j.at("confirmations").get();
}
+ // API returns null if no memo
+ if (j.contains("memo"))
+ {
+ try
+ {
+ cfg.memo = j.at("memo").get();
+ }
+ catch (const std::exception& ex)
+ {
+ cfg.memo = "";
+ //SPDLOG_ERROR("Error parsing memo: {}", ex.what());
+ }
+ }
+
if (cfg.from.empty())
{
if (cfg.coin == "FIRO")
@@ -90,6 +112,11 @@ namespace atomic_dex::mm2
}
}
+ if (j.contains("transaction_type"))
+ {
+ cfg.transaction_type = j.at("transaction_type").get();
+ }
+
// transaction_fee only in ZHTLC response
if (j.contains("transaction_fee"))
{
diff --git a/src/core/atomicdex/api/mm2/transaction.data.hpp b/src/core/atomicdex/api/mm2/transaction.data.hpp
index 9882c9a532..a39f64b9fd 100644
--- a/src/core/atomicdex/api/mm2/transaction.data.hpp
+++ b/src/core/atomicdex/api/mm2/transaction.data.hpp
@@ -25,6 +25,16 @@ namespace atomic_dex::mm2
void from_json(const nlohmann::json& j, fee_erc_coin& cfg);
+ struct fee_tendermint_coin
+ {
+ std::string type;
+ std::string coin;
+ std::string amount;
+ std::size_t gas_limit;
+ };
+
+ void from_json(const nlohmann::json& j, fee_erc_coin& cfg);
+
struct fee_qrc_coin
{
std::string coin;
@@ -38,9 +48,10 @@ namespace atomic_dex::mm2
struct fees_data
{
- std::optional normal_fees; ///< btc, kmd based coins
- std::optional erc_fees; ///< eth based coins
- std::optional qrc_fees; // Qtum based coin
+ std::optional normal_fees; ///< btc, kmd based coins
+ std::optional erc_fees; ///< eth based coins
+ std::optional qrc_fees; // Qtum based coin
+ std::optional tendermint_fees; // Qtum based coin
};
void from_json(const nlohmann::json& j, fees_data& cfg);
@@ -48,21 +59,23 @@ namespace atomic_dex::mm2
struct transaction_data
{
std::size_t timestamp;
+ std::string tx_hex;
+ std::string tx_hash;
std::vector from;
std::vector to;
- fees_data fee_details;
- std::size_t block_height;
- std::string coin;
+ std::string total_amount{"0"};
std::string spent_by_me;
std::string received_by_me;
std::string my_balance_change;
- std::string total_amount{"0"};
- std::string tx_hash;
- std::string tx_hex;
- std::string timestamp_as_date; ///< human readeable timestamp
+ std::size_t block_height;
+ fees_data fee_details;
+ std::string coin;
std::optional transaction_fee;
std::optional internal_id;
std::optional confirmations;
+ std::optional transaction_type;
+ std::optional memo;
+ std::string timestamp_as_date; ///< human readeable timestamp
};
void from_json(const nlohmann::json& j, transaction_data& cfg);
diff --git a/src/core/atomicdex/config/app.cfg.cpp b/src/core/atomicdex/config/app.cfg.cpp
index c4b25502cb..ba9fb02313 100644
--- a/src/core/atomicdex/config/app.cfg.cpp
+++ b/src/core/atomicdex/config/app.cfg.cpp
@@ -39,15 +39,17 @@ namespace
file.open(QIODevice::ReadOnly | QIODevice::Text);
nlohmann::json config_json_data;
- QString val = file.readAll();
- config_json_data = nlohmann::json::parse(val.toStdString());
- config_json_data["current_currency"] = config.current_currency;
- config_json_data["current_fiat"] = config.current_fiat;
- config_json_data["possible_currencies"] = config.possible_currencies;
- config_json_data["current_currency_sign"] = config.current_currency_sign;
- config_json_data["current_fiat_sign"] = config.current_fiat_sign;
- config_json_data["available_signs"] = config.available_currency_signs;
- config_json_data["notification_enabled"] = config.notification_enabled;
+ QString val = file.readAll();
+ config_json_data = nlohmann::json::parse(val.toStdString());
+ config_json_data["current_currency"] = config.current_currency;
+ config_json_data["current_fiat"] = config.current_fiat;
+ config_json_data["recommended_fiat"] = config.recommended_fiat;
+ config_json_data["possible_currencies"] = config.possible_currencies;
+ config_json_data["current_currency_sign"] = config.current_currency_sign;
+ config_json_data["current_fiat_sign"] = config.current_fiat_sign;
+ config_json_data["available_signs"] = config.available_currency_signs;
+ config_json_data["notification_enabled"] = config.notification_enabled;
+ config_json_data["spamfilter_enabled"] = config.spamfilter_enabled;
file.close();
@@ -66,11 +68,21 @@ namespace atomic_dex
j.at("current_currency").get_to(config.current_currency);
j.at("current_fiat").get_to(config.current_fiat);
j.at("available_fiat").get_to(config.available_fiat);
+ j.at("recommended_fiat").get_to(config.recommended_fiat);
j.at("possible_currencies").get_to(config.possible_currencies);
j.at("current_currency_sign").get_to(config.current_currency_sign);
j.at("available_signs").get_to(config.available_currency_signs);
j.at("current_fiat_sign").get_to(config.current_fiat_sign);
j.at("notification_enabled").get_to(config.notification_enabled);
+
+ if (j.contains("spamfilter_enabled"))
+ {
+ j.at("spamfilter_enabled").get_to(config.spamfilter_enabled);
+ }
+ else
+ {
+ config.spamfilter_enabled = true;
+ }
}
void
@@ -83,6 +95,16 @@ namespace atomic_dex
}
}
+ void
+ change_spamfilter_status(cfg& config, bool is_enabled)
+ {
+ if (config.spamfilter_enabled != is_enabled)
+ {
+ config.spamfilter_enabled = is_enabled;
+ upgrade_cfg(config);
+ }
+ }
+
cfg
load_cfg()
{
@@ -124,9 +146,21 @@ namespace atomic_dex
if (is_this_currency_a_fiat(config, new_currency))
{
SPDLOG_INFO("{} is fiat, setting it as current fiat and possible currencies", new_currency);
- config.current_fiat = new_currency;
- config.current_fiat_sign = config.current_currency_sign;
- config.possible_currencies[0] = new_currency;
+ config.current_fiat = new_currency;
+ config.current_fiat_sign = config.current_currency_sign;
+ config.possible_currencies[0] = new_currency;
+ bool update_recommended_fiat{true};
+
+ if (std::count(config.recommended_fiat.begin(), config.recommended_fiat.end(), new_currency))
+ {
+ SPDLOG_INFO("{} is already in recommended fiats", new_currency);
+ update_recommended_fiat = false;
+ }
+ if (update_recommended_fiat) {
+ SPDLOG_INFO("Adding {} to recommended fiats", new_currency);
+ config.recommended_fiat.pop_back();
+ config.recommended_fiat.insert(config.recommended_fiat.begin(), new_currency);
+ }
}
upgrade_cfg(config);
}
diff --git a/src/core/atomicdex/config/app.cfg.hpp b/src/core/atomicdex/config/app.cfg.hpp
index 3edd54cfa6..41b954d4dc 100644
--- a/src/core/atomicdex/config/app.cfg.hpp
+++ b/src/core/atomicdex/config/app.cfg.hpp
@@ -29,14 +29,17 @@ namespace atomic_dex
std::string current_fiat_sign;
std::unordered_map available_currency_signs;
std::vector available_fiat;
+ std::vector recommended_fiat;
std::vector possible_currencies;
bool notification_enabled;
+ bool spamfilter_enabled{false};
};
void from_json(const nlohmann::json& j, cfg& config);
void change_currency(cfg& config, const std::string& new_currency);
void change_fiat(cfg& config, const std::string& new_fiat);
void change_notification_status(cfg& config, bool is_enabled);
+ void change_spamfilter_status(cfg& config, bool is_enabled);
[[nodiscard]] bool is_this_currency_a_fiat(const cfg& config, const std::string& currency);
cfg load_cfg();
std::string retrieve_sign_from_ticker(const cfg& config, const std::string& currency);
diff --git a/src/core/atomicdex/config/coins.cfg.cpp b/src/core/atomicdex/config/coins.cfg.cpp
index b74b08a035..f428f7abc9 100644
--- a/src/core/atomicdex/config/coins.cfg.cpp
+++ b/src/core/atomicdex/config/coins.cfg.cpp
@@ -23,7 +23,8 @@
namespace
{
- CoinType get_coin_type_from_str(const std::string& coin_type)
+ CoinType
+ get_coin_type_from_str(const std::string& coin_type)
{
if (coin_type == "QRC-20")
{
@@ -33,6 +34,10 @@ namespace
{
return CoinType::ERC20;
}
+ if (coin_type == "EWT")
+ {
+ return CoinType::EWT;
+ }
if (coin_type == "UTXO")
{
return CoinType::UTXO;
@@ -105,6 +110,14 @@ namespace
{
return CoinType::RSK;
}
+ if (coin_type == "TENDERMINT")
+ {
+ return CoinType::TENDERMINT;
+ }
+ if (coin_type == "TENDERMINTTOKEN")
+ {
+ return CoinType::TENDERMINTTOKEN;
+ }
if (coin_type == "ZHTLC")
{
return CoinType::ZHTLC;
@@ -113,18 +126,25 @@ namespace
return CoinType::Invalid;
// throw std::invalid_argument{"Undefined given coin type."};
}
-}
+} // namespace
namespace atomic_dex
{
- bool is_wallet_only(std::string ticker)
+ bool
+ is_wallet_only(std::string ticker)
{
return std::any_of(g_wallet_only_coins.begin(), g_wallet_only_coins.end(), [ticker](std::string x) { return ticker == x; });
}
- bool is_default_coin(std::string ticker)
+ bool
+ is_default_coin(std::string ticker)
{
return std::any_of(g_default_coins.begin(), g_default_coins.end(), [ticker](std::string x) { return ticker == x; });
}
+ bool
+ is_faucet_coin(std::string ticker)
+ {
+ return std::any_of(g_faucet_coins.begin(), g_faucet_coins.end(), [ticker](std::string x) { return ticker == x; });
+ }
void
from_json(const nlohmann::json& j, coin_config& cfg)
@@ -135,28 +155,30 @@ namespace atomic_dex
cfg.coin_type = get_coin_type_from_str(cfg.type);
j.at("active").get_to(cfg.active);
j.at("explorer_url").get_to(cfg.explorer_url);
-
+ cfg.has_memos = false;
cfg.gui_ticker = j.contains("gui_coin") ? j.at("gui_coin").get() : cfg.ticker;
+ cfg.parent_coin = j.contains("parent_coin") ? j.at("parent_coin").get() : cfg.ticker;
cfg.minimal_claim_amount = cfg.is_claimable ? j.at("minimal_claim_amount").get() : "0";
cfg.coinpaprika_id = j.contains("coinpaprika_id") ? j.at("coinpaprika_id").get() : "test-coin";
cfg.coingecko_id = j.contains("coingecko_id") ? j.at("coingecko_id").get() : "test-coin";
- cfg.nomics_id = j.contains("nomics_id") ? j.at("nomics_id").get() : "test-coin";
+ cfg.livecoinwatch_id = j.contains("livecoinwatch_id") ? j.at("livecoinwatch_id").get() : "test-coin";
cfg.is_claimable = j.count("is_claimable") > 0;
cfg.is_custom_coin = j.contains("is_custom_coin") ? j.at("is_custom_coin").get() : false;
cfg.is_testnet = j.contains("is_testnet") ? j.at("is_testnet").get