diff --git a/.github/workflows/atomicdex-desktop-ci.yml b/.github/workflows/atomicdex-desktop-ci.yml index 58a2c18ddd..51be287655 100644 --- a/.github/workflows/atomicdex-desktop-ci.yml +++ b/.github/workflows/atomicdex-desktop-ci.yml @@ -1,13 +1,9 @@ name: AtomicDex-Desktop CI on: - pull_request: - types: [ opened, synchronize, reopened ] push: branches: - - master - schedule: - - cron: '0 0 * * 1' + - nogeo env: DEX_PROJECT_NAME: "atomicdex-desktop" @@ -25,9 +21,7 @@ jobs: fail-fast: false matrix: name: [ - ubuntu-qt-5-15-2, - osx-qt-5-15-2, - windows-10-qt-5-15-2 + ubuntu-qt-5-15-2 ] include: @@ -36,15 +30,15 @@ jobs: qt: '5.15.2' type: 'release' - - name: osx-qt-5-15-2 - os: macos-latest - qt: '5.15.2' - type: 'release' +# - name: osx-qt-5-15-2 +# os: macos-latest +# qt: '5.15.2' +# type: 'release' - - name: windows-10-qt-5-15-2 - os: windows-latest - qt: '5.15.2' - type: 'release' +# - name: windows-10-qt-5-15-2 +# os: windows-latest +# qt: '5.15.2' +# type: 'release' #- name: osx-qt-5-15-2-dbg # os: macos-latest @@ -95,8 +89,10 @@ jobs: - name: Install QT IFW (MacOS) if: runner.os == 'macOS' run: | - python3 -m aqt tool mac tools_ifw 4.1.1-202105261132 qt.tools.ifw.41 --outputdir ${{ github.workspace }}/Qt + python3 -m aqt tool mac tools_ifw 4.2.0-0-202111080927 qt.tools.ifw.42 --outputdir ${{ github.workspace }}/Qt echo "${{ github.workspace }}/Qt/Tools/QtInstallerFramework/4.0/bin" >> $GITHUB_PATH + echo "${{ github.workspace }}/Qt/Tools/QtInstallerFramework/4.1/bin" >> $GITHUB_PATH + echo "${{ github.workspace }}/Qt/Tools/QtInstallerFramework/4.2/bin" >> $GITHUB_PATH - name: Install QT (Windows) if: runner.os == 'Windows' @@ -117,8 +113,10 @@ jobs: if: runner.os == 'Windows' run: | python -m pip install --upgrade pip - python -m aqt tool windows tools_ifw 4.1.1-202105261131 qt.tools.ifw.41 --outputdir C:/Qt + python -m aqt tool windows tools_ifw 4.2.0-0-202111080926 qt.tools.ifw.42 --outputdir C:/Qt echo "C:/Qt/Tools/QtInstallerFramework/4.0/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:/Qt/Tools/QtInstallerFramework/4.1/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:/Qt/Tools/QtInstallerFramework/4.2/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo $env:GITHUB_PATH echo $env:PATH @@ -186,25 +184,6 @@ jobs: ./ci_tools_atomic_dex build release ./ci_tools_atomic_dex bundle release - - name: import code signing certificates (macos) - if: runner.os == 'macOS' - uses: Apple-Actions/import-codesign-certs@v1 - with: - keychain: ${{ github.run_id }} - keychain-password: ${{ github.run_id }} - p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} - p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }} - - - name: import installer code signing certificates (macos) - if: runner.os == 'macOS' - uses: apple-actions/import-codesign-certs@v1 - with: - keychain: ${{ github.run_id }} - keychain-password: ${{ github.run_id }} - create-keychain: false - p12-file-base64: ${{ secrets.CERTIFICATES_INSTALLER_P12 }} - p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }} - - name: Build AtomicDEX (MacOS) if: runner.os == 'macOS' run: | @@ -228,65 +207,6 @@ jobs: $Env:QT_VERSION = "${{ matrix.qt }}" .\ci_tools_atomic_dex\ci_scripts\windows_script.ps1 - - name: Running Tests (Linux) - working-directory: ci_tools_atomic_dex - if: runner.os == 'Linux' && 'KomodoPlatform/atomicDEX-Desktop' == github.repository - run: | - export REPORT_CI_TOKEN=${{ secrets.REPORT_CI_TOKEN_SECRET }} - export ATOMICDEX_TEST_SEED=${{ secrets.ATOMICDEX_TEST_SEED }} - export ATOMICDEX_PASSWORD=${{ secrets.ATOMICDEX_PASSWORD }} - export QT_INSTALL_CMAKE_PATH=${{ github.workspace }}/Qt/${{ matrix.qt }}/gcc_64/lib/cmake - export QT_ROOT=${{ github.workspace }}/Qt/${{ matrix.qt }} - export PATH=${{ github.workspace }}/Qt/${{ matrix.qt }}/gcc_64/bin:$PATH - export PATH=$HOME/.nimble/bin:$PATH - #export CXXFLAGS=-stdlib=libc++ - #export LDFLAGS=-stdlib=libc++ - export CXX=clang++-12 - export CC=clang-12 - echo "Running tests" - ./ci_tools_atomic_dex tests release - cd build-Release/bin/AntaraAtomicDexTestsAppDir/usr/bin - cat ${{ env.DEX_PROJECT_NAME }}-tests-result.xml - #curl https://report.ci/upload.py --output upload.py - ls - #python upload.py --sha `git rev-parse HEAD` -n "[Doctest Linux]" --include='${{ env.DEX_PROJECT_NAME }}-tests-result.xml' --framework=doctest --merge ".*" - #echo "Uploading tests on Linux finished" - - - name: Running Tests (MacOS) - working-directory: ci_tools_atomic_dex - if: runner.os == 'macOS' && 'KomodoPlatform/atomicDEX-Desktop' == github.repository - run: | - export REPORT_CI_TOKEN=${{ secrets.REPORT_CI_TOKEN_SECRET }} - export ATOMICDEX_TEST_SEED=${{ secrets.ATOMICDEX_TEST_SEED }} - 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 CC=clang - export CXX=clang++ - echo "Running tests" - #./ci_tools_atomic_dex tests ${{ matrix.type }} - #cd build-${{ matrix.type }}/bin/${{ env.DEX_PROJECT_NAME }}_tests.app/Contents/MacOS - #cat ${{ env.DEX_PROJECT_NAME }}-tests-result.xml - #curl https://report.ci/upload.py --output upload.py - ls - #python upload.py --sha `git rev-parse HEAD` -n "[Doctest MacOS ${{ matrix.type }}]" --include='${{ env.DEX_PROJECT_NAME }}-tests-result.xml' --framework=doctest --merge ".*" - #echo "Uploading tests on OSX finished" - - - name: Running Tests (Windows) - shell: powershell - working-directory: ci_tools_atomic_dex - if: runner.os == 'Windows' && 'KomodoPlatform/atomicDEX-Desktop' == github.repository - run: | - echo "Running tests" - $Env:REPORT_CI_TOKEN = "${{ secrets.REPORT_CI_TOKEN_SECRET }}" - $Env:QT_INSTALL_CMAKE_PATH = "C:\Qt\${{ matrix.qt }}\msvc2019_64" - cmd /c '.\ci_tools_atomic_dex.exe tests release 2>&1' - cd build-Release - cd bin - ls - #Invoke-WebRequest -Uri https://report.ci/upload.py -OutFile upload.py - #python upload.py --sha $(git rev-parse HEAD) -n "[Doctest Windows]" --include='${{ env.DEX_PROJECT_NAME }}-tests-result.xml' --framework=doctest --merge ".*" - - name: Upload env variable for artifacts (Linux) if: runner.os == 'Linux' run: | diff --git a/.github/workflows/sync_mirror.yml b/.github/workflows/sync_mirror.yml deleted file mode 100644 index ad86db71c4..0000000000 --- a/.github/workflows/sync_mirror.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: GitlabSync - -on: - push: - branches: - - '*' - pull_request: - branches: - - dev - delete: - branches: - - '*' - -jobs: - sync: - runs-on: ubuntu-latest - name: Git Repo Sync - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: wangchucheng/git-repo-sync@v0.1.0 - with: - target-url: ${{ secrets.GITLAB_URL }} - target-username: ${{ secrets.GITLAB_USERNAME }} - target-token: ${{ secrets.GITLAB_TOKEN }} diff --git a/CMakeLists.txt b/CMakeLists.txt index dde4413451..7e3b843432 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.2) +project(${DEX_PROJECT_NAME} LANGUAGES CXX VERSION 0.5.3) message(STATUS "${PROJECT_NAME} is version ${PROJECT_VERSION}") include(cmake_default_options) @@ -61,13 +61,13 @@ endif () ##! We fetch our dependencies if (APPLE) FetchContent_Declare(mm2 - URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.4829/mm2-762f40258-Darwin-Release.zip) + URL http://195.201.0.6/dev/mm2-1b989f62e-Darwin-Release.zip) elseif (UNIX AND NOT APPLE) FetchContent_Declare(mm2 - URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.4829/mm2-762f40258-Linux-Release.zip) + URL http://195.201.0.6/dev/mm2-1b989f62e-Linux-Release.zip) else () FetchContent_Declare(mm2 - URL https://github.com/KomodoPlatform/atomicDEX-API/releases/download/beta-2.1.4829/mm2-762f40258-Windows_NT-Release.zip) + URL http://195.201.0.6/dev/mm2-1b989f62e-Windows_NT-Release.zip) endif () #FetchContent_Declare(qmaterial URL https://github.com/KomodoPlatform/Qaterial/archive/last-clang-working-2.zip) @@ -79,7 +79,7 @@ FetchContent_Declare( ) FetchContent_Declare(jl777-coins - URL https://github.com/KomodoPlatform/coins/archive/master.zip) + URL https://github.com/cipig/coins/archive/nogeo.zip) #FetchContent_Declare(adex-generics-coins # URL https://github.com/KomodoPlatform/atomicdex-desktop-generics/archive/main.zip) diff --git a/assets/config/0.5.2-coins.json b/assets/config/0.5.3-coins.json similarity index 70% rename from assets/config/0.5.2-coins.json rename to assets/config/0.5.3-coins.json index 3b2d19b327..dac9375eb4 100644 --- a/assets/config/0.5.2-coins.json +++ b/assets/config/0.5.3-coins.json @@ -1,104 +1,120 @@ { "1INCH-AVX20": { - "coin": "1INCH-AVX20", - "name": "1inch", - "coinpaprika_id": "1inch-1inch", - "coingecko_id": "1inch", - "nomics_id": "1INCH", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "1INCH-AVX20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "1INCH-BEP20": { - "coin": "1INCH-BEP20", - "name": "1inch", - "coinpaprika_id": "1inch-1inch", - "coingecko_id": "1inch", - "nomics_id": "1INCH", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "1INCH-BEP20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "1INCH-ERC20": { - "coin": "1INCH-ERC20", - "name": "1inch", - "coinpaprika_id": "1inch-1inch", - "coingecko_id": "1inch", - "nomics_id": "1INCH", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "1INCH-ERC20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "1INCH-HRC20": { - "coin": "1INCH-HRC20", - "name": "1inch", - "coinpaprika_id": "1inch-1inch", - "coingecko_id": "1inch", - "nomics_id": "1INCH", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "1INCH-HRC20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "1INCH-KRC20": { + "coin": "1INCH-KRC20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "1INCH-PLG20": { - "coin": "1INCH-PLG20", - "name": "1inch", - "coinpaprika_id": "1inch-1inch", - "coingecko_id": "1inch", - "nomics_id": "1INCH", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "1INCH-PLG20", + "name": "1inch", + "coinpaprika_id": "1inch-1inch", + "coingecko_id": "1inch", + "nomics_id": "1INCH", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "AAVE-AVX20": { - "coin": "AAVE-AVX20", - "name": "Aave", - "coinpaprika_id": "aave-new", - "coingecko_id": "aave", - "nomics_id": "AAVE", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "AAVE-AVX20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "AAVE-BEP20": { "coin": "AAVE-BEP20", @@ -137,75 +153,91 @@ "currently_enabled": false }, "AAVE-FTM20": { - "coin": "AAVE-FTM20", - "name": "Aave", - "coinpaprika_id": "aave-new", - "coingecko_id": "aave", - "nomics_id": "AAVE", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "AAVE-FTM20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "AAVE-HCO20": { - "coin": "AAVE-HCO20", - "name": "Aave", - "coinpaprika_id": "aave-new", - "coingecko_id": "aave", - "nomics_id": "AAVE", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "AAVE-HCO20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "AAVE-HRC20": { - "coin": "AAVE-HRC20", - "name": "Aave", - "coinpaprika_id": "aave-new", - "coingecko_id": "aave", - "nomics_id": "AAVE", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "AAVE-HRC20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "AAVE-KRC20": { + "coin": "AAVE-KRC20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "AAVE-PLG20": { - "coin": "AAVE-PLG20", - "name": "Aave", - "coinpaprika_id": "aave-new", - "coingecko_id": "aave", - "nomics_id": "AAVE", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "AAVE-PLG20", + "name": "Aave", + "coinpaprika_id": "aave-new", + "coingecko_id": "aave", + "nomics_id": "AAVE", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "ABY": { "coin": "ABY", "name": "ArtByte", "coinpaprika_id": "aby-artbyte", - "coingecko_id": "artbyte", + "coingecko_id": "test-coin", "electrum": [ { "url": "electrumx.aby.ewmcx.biz:50002", @@ -280,36 +312,38 @@ "currently_enabled": false }, "AGIX-ERC20": { - "coin": "AGIX-ERC20", - "name": "SingularityNET", - "coinpaprika_id": "agix-singularitynet", - "coingecko_id": "singularitynet", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "AGIX-ERC20", + "name": "SingularityNET", + "coinpaprika_id": "agix-singularitynet", + "coingecko_id": "singularitynet", + "nomics_id": "AGIX", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "AGIX-PLG20": { - "coin": "AGIX-PLG20", - "name": "SingularityNET", - "coinpaprika_id": "agix-singularitynet", - "coingecko_id": "singularitynet", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "AGIX-PLG20", + "name": "SingularityNET", + "coinpaprika_id": "agix-singularitynet", + "coingecko_id": "singularitynet", + "nomics_id": "AGIX", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "ANKR-BEP20": { "coin": "ANKR-BEP20", @@ -346,56 +380,59 @@ "currently_enabled": false }, "ARRR-BEP20": { - "coin": "ARRR-BEP20", - "name": "Pirate", - "coinpaprika_id": "arrr-pirate", - "coingecko_id": "pirate-chain", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false, - "wallet_only": true + "coin": "ARRR-BEP20", + "name": "Pirate", + "coinpaprika_id": "arrr-pirate", + "coingecko_id": "pirate-chain", + "nomics_id": "ARRR", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false, + "wallet_only": true }, "ARPA-BEP20": { - "coin": "ARPA-BEP20", - "name": "ARPA Chain", - "coinpaprika_id": "arpa-arpa-chain", - "coingecko_id": "arpa-chain", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false - }, - "ARPA-ERC20": { - "coin": "ARPA-ERC20", - "name": "ARPA Chain", - "coinpaprika_id": "arpa-arpa-chain", - "coingecko_id": "arpa-chain", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "ARPA-BEP20", + "name": "ARPA Chain", + "coinpaprika_id": "arpa-arpa-chain", + "coingecko_id": "arpa-chain", + "nomics_id": "ARPA", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false + }, + "ARPA-ERC20": { + "coin": "ARPA-ERC20", + "name": "ARPA Chain", + "coinpaprika_id": "arpa-arpa-chain", + "coingecko_id": "arpa-chain", + "nomics_id": "ARPA", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "ATOM-BEP20": { "coin": "ATOM-BEP20", @@ -418,7 +455,7 @@ "coin": "AUR", "name": "Auroracoin", "coinpaprika_id": "aur-auroracoin", - "coingecko_id": "auroracoin", + "coingecko_id": "test-coin", "nomics_id": "AUR", "electrum": [ { @@ -446,6 +483,7 @@ "name": "Travala.com", "coinpaprika_id": "ava-travala", "coingecko_id": "concierge-io", + "nomics_id": "AVA", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -534,38 +572,38 @@ "currently_enabled": false }, "AXS-BEP20": { - "coin": "AXS-BEP20", - "name": "Axie Infinity", - "coinpaprika_id": "axs-axie-infinity", - "coingecko_id": "axie-infinity", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "AXS-BEP20", + "name": "Axie Infinity", + "coinpaprika_id": "axs-axie-infinity", + "coingecko_id": "axie-infinity", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "AXS-ERC20": { - "coin": "AXS-ERC20", - "name": "Axie Infinity", - "coinpaprika_id": "axs-axie-infinity", - "coingecko_id": "axie-infinity", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "AXS-ERC20", + "name": "Axie Infinity", + "coinpaprika_id": "axs-axie-infinity", + "coingecko_id": "axie-infinity", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "BABYDOGE": { "coin": "BABYDOGE", @@ -589,6 +627,7 @@ "name": "Balancer", "coinpaprika_id": "bal-balancer", "coingecko_id": "balancer", + "nomics_id": "BAL", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -606,6 +645,7 @@ "name": "Balancer", "coinpaprika_id": "bal-balancer", "coingecko_id": "balancer", + "nomics_id": "BAL", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -618,20 +658,37 @@ "active": false, "currently_enabled": false }, + "BAL-KRC20": { + "coin": "BAL-KRC20", + "name": "Balancer", + "coinpaprika_id": "bal-balancer", + "coingecko_id": "balancer", + "nomics_id": "BAL", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "BAL-PLG20": { "coin": "BAL-PLG20", "name": "Balancer", "coinpaprika_id": "bal-balancer", "coingecko_id": "balancer", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "nomics_id": "BAL", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "BAND-BEP20": { "coin": "BAND-BEP20", @@ -668,19 +725,19 @@ "currently_enabled": false }, "BAND-FTM20": { - "coin": "BAND-FTM20", - "name": "Band Protocol", - "coinpaprika_id": "band-band-protocol", - "coingecko_id": "band-protocol", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "BAND-FTM20", + "name": "Band Protocol", + "coinpaprika_id": "band-band-protocol", + "coingecko_id": "band-protocol", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "BAND-PLG20": { "coin": "BAND-PLG20", @@ -725,40 +782,40 @@ "name": "Bitcoin Cash" }, "BCH-ERC20": { - "coin": "BCH-ERC20", - "name": "Bitcoin Cash", - "coinpaprika_id": "bch-bitcoin-cash", - "coingecko_id": "bitcoin-cash", - "nomics_id": "BCH", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "BCH-ERC20", + "name": "Bitcoin Cash", + "coinpaprika_id": "bch-bitcoin-cash", + "coingecko_id": "bitcoin-cash", + "nomics_id": "BCH", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "BCH-BEP20": { - "coin": "BCH-BEP20", - "name": "Bitcoin Cash", - "coinpaprika_id": "bch-bitcoin-cash", - "coingecko_id": "bitcoin-cash", - "nomics_id": "BCH", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "BCH-BEP20", + "name": "Bitcoin Cash", + "coinpaprika_id": "bch-bitcoin-cash", + "coingecko_id": "bitcoin-cash", + "nomics_id": "BCH", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "BCH-HCO20": { "coin": "BCH-HCO20", @@ -779,6 +836,7 @@ "BIDR-BEP20": { "coin": "BIDR-BEP20", "name": "BIDR", + "forex_id": "IDR", "coinpaprika_id": "bidr-binanceidr", "coingecko_id": "binanceidr", "nodes": [ @@ -798,6 +856,7 @@ "name": "BlackCoin", "coinpaprika_id": "blk-blackcoin", "coingecko_id": "blackcoin", + "nomics_id": "BLK", "electrum": [ { "url": "electrum1.blackcoin.nl:10002", @@ -939,44 +998,47 @@ "currently_enabled": false }, "BRZ-BEP20": { - "coin": "BRZ-BEP20", - "name": "Brazilian Digital Token", - "coinpaprika_id": "brz-brazilian-digital-token", - "coingecko_id": "brz", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "BRZ-BEP20", + "name": "Brazilian Digital Token", + "forex_id": "BRL", + "coinpaprika_id": "brz-brazilian-digital-token", + "coingecko_id": "brz", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "BRZ-ERC20": { - "coin": "BRZ-ERC20", - "name": "Brazilian Digital Token", - "coinpaprika_id": "brz-brazilian-digital-token", - "coingecko_id": "brz", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "BRZ-ERC20", + "name": "Brazilian Digital Token", + "forex_id": "BRL", + "coinpaprika_id": "brz-brazilian-digital-token", + "coingecko_id": "brz", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "BSTY": { "coin": "BSTY", "name": "GlobalBoost-Y", "coinpaprika_id": "bsty-globalboost-y", "coingecko_id": "globalboost", + "nomics_id": "BSTY", "electrum": [ { "url": "66.172.33.175:50001", @@ -1000,6 +1062,22 @@ "active": false, "currently_enabled": false }, + "RBTC": { + "coin": "RBTC", + "name": "RSK Smart Bitcoin", + "alias_ticker": "BTC", + "coinpaprika_id": "rbtc-smart-bitcoin", + "coingecko_id": "rootstock", + "nodes": [ + "https://public-node.rsk.co" + ], + "explorer_url": [ + "https://explorer.rsk.co" + ], + "type": "RSK Smart Bitcoin", + "active": false, + "currently_enabled": false + }, "BTC": { "coin": "BTC", "name": "Bitcoin", @@ -1032,6 +1110,7 @@ "name": "Bitcoin", "coinpaprika_id": "btc-bitcoin", "coingecko_id": "bitcoin", + "nomics_id": "BTC", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -1049,6 +1128,7 @@ "name": "BitcoinZ", "coinpaprika_id": "btcz-bitcoinz", "coingecko_id": "bitcoinz", + "nomics_id": "BTCZ", "electrum": [ { "url": "electrum1.btcz.rocks:50001" @@ -1065,42 +1145,44 @@ "currently_enabled": false }, "BTX": { - "coin": "BTX", - "name": "BitCore", - "coinpaprika_id": "btx-bitcore", - "coingecko_id": "bitcore", - "electrum": [ - { - "url": "btx-electrumx.coinsmunity.com:50002", - "protocol": "SSL", - "disable_cert_verification": true - } - ], - "explorer_url": [ - "https://chainz.cryptoid.info/btx/" - ], - "explorer_tx_url": "tx.dws?", - "explorer_address_url": "address.dws?", - "type": "UTXO", - "active": false, - "currently_enabled": false + "coin": "BTX", + "name": "BitCore", + "coinpaprika_id": "btx-bitcore", + "coingecko_id": "bitcore", + "nomics_id": "BTX", + "electrum": [ + { + "url": "btx-electrumx.coinsmunity.com:50002", + "protocol": "SSL", + "disable_cert_verification": true + } + ], + "explorer_url": [ + "https://chainz.cryptoid.info/btx/" + ], + "explorer_tx_url": "tx.dws?", + "explorer_address_url": "address.dws?", + "type": "UTXO", + "active": false, + "currently_enabled": false }, "BTX-BEP20": { - "coin": "BTX-BEP20", - "name": "BitCore", - "coinpaprika_id": "btx-bitcore", - "coingecko_id": "bitcore", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "BTX-BEP20", + "name": "BitCore", + "coinpaprika_id": "btx-bitcore", + "coingecko_id": "bitcore", + "nomics_id": "BTX", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "BET": { "coin": "BET", @@ -1126,8 +1208,7 @@ "https://bet.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "BOTS": { "coin": "BOTS", @@ -1153,8 +1234,7 @@ "https://bots.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "BTT-BEP20": { "coin": "BTT-BEP20", @@ -1174,51 +1254,53 @@ "currently_enabled": false }, "BTU-ERC20": { - "coin": "BTU-ERC20", - "name": "BTU Protocol", - "coinpaprika_id": "btu-btu-protocol", - "coingecko_id": "btu-protocol", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "BTU-ERC20", + "name": "BTU Protocol", + "coinpaprika_id": "btu-btu-protocol", + "coingecko_id": "btu-protocol", + "nomics_id": "BTU", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "BTU-PLG20": { - "coin": "BTU-PLG20", - "name": "BTU Protocol", - "coinpaprika_id": "btu-btu-protocol", - "coingecko_id": "btu-protocol", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "BTU-PLG20", + "name": "BTU Protocol", + "coinpaprika_id": "btu-btu-protocol", + "coingecko_id": "btu-protocol", + "nomics_id": "BTU", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "BUSD-AVX20": { - "coin": "BUSD-AVX20", - "name": "Binance USD", - "coinpaprika_id": "busd-binance-usd", - "coingecko_id": "binance-usd", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "BUSD-AVX20", + "name": "Binance USD", + "coinpaprika_id": "busd-binance-usd", + "coingecko_id": "binance-usd", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "BUSD-MVR20": { "coin": "BUSD-MVR20", @@ -1270,20 +1352,20 @@ "currently_enabled": false }, "BUSD-HRC20": { - "coin": "BUSD-HRC20", - "name": "Binance USD", - "coinpaprika_id": "busd-binance-usd", - "coingecko_id": "binance-usd", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "BUSD-HRC20", + "name": "Binance USD", + "coinpaprika_id": "busd-binance-usd", + "coingecko_id": "binance-usd", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "BUSD-PLG20": { "coin": "BUSD-PLG20", @@ -1304,7 +1386,7 @@ "coin": "BTE", "name": "Bitweb", "type": "UTXO", - "coingecko_id": "bitweb", + "coingecko_id": "test-coin", "coinpaprika_id": "bte-bitweb", "nomics_id": "BTE3", "electrum": [ @@ -1325,38 +1407,40 @@ "currently_enabled": false }, "CADC-ERC20": { - "coin": "CADC-ERC20", - "name": "CAD Coin", - "coinpaprika_id": "cadc-cad-coin", - "coingecko_id": "test-coin", - "nomics_id": "CADC", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "CADC-ERC20", + "name": "CAD Coin", + "forex_id": "CAD", + "coinpaprika_id": "cadc-cad-coin", + "coingecko_id": "test-coin", + "nomics_id": "CADC", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "CADC-PLG20": { - "coin": "CADC-PLG20", - "name": "CAD Coin", - "coinpaprika_id": "cadc-cad-coin", - "coingecko_id": "test-coin", - "nomics_id": "CADC", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "CADC-PLG20", + "name": "CAD Coin", + "forex_id": "CAD", + "coinpaprika_id": "cadc-cad-coin", + "coingecko_id": "test-coin", + "nomics_id": "CADC", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "CAKE": { "coin": "CAKE", @@ -1444,54 +1528,57 @@ "currently_enabled": false }, "CELR-ERC20": { - "coin": "CELR-ERC20", - "name": "Celer Network", - "coinpaprika_id": "celr-celer-network", - "coingecko_id": "celer-network", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "CELR-ERC20", + "name": "Celer Network", + "coinpaprika_id": "celr-celer-network", + "coingecko_id": "celer-network", + "nomics_id": "CELR", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "CELR-BEP20": { - "coin": "CELR-BEP20", - "name": "Celer Network", - "coinpaprika_id": "celr-celer-network", - "coingecko_id": "celer-network", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "CELR-BEP20", + "name": "Celer Network", + "coinpaprika_id": "celr-celer-network", + "coingecko_id": "celer-network", + "nomics_id": "CELR", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "CELR-ARB20": { - "coin": "CELR-ARB20", - "name": "Celer Network", - "coinpaprika_id": "celr-celer-network", - "coingecko_id": "celer-network", - "nodes": [ - "https://arb1.arbitrum.io/rpc" - ], - "explorer_url": [ - "https://arbiscan.io/" - ], - "type": "Arbitrum", - "active": false, - "currently_enabled": false, - "wallet_only": true + "coin": "CELR-ARB20", + "name": "Celer Network", + "coinpaprika_id": "celr-celer-network", + "coingecko_id": "celer-network", + "nomics_id": "CELR", + "nodes": [ + "https://arb1.arbitrum.io/rpc" + ], + "explorer_url": [ + "https://arbiscan.io/" + ], + "type": "Arbitrum", + "active": false, + "currently_enabled": false, + "wallet_only": true }, "CLC": { "coin": "CLC", @@ -1514,25 +1601,27 @@ "currently_enabled": false }, "COMP-AVX20": { - "coin": "COMP-AVX20", - "name": "Compound", - "coinpaprika_id": "comp-compoundd", - "coingecko_id": "compound-governance-token", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "COMP-AVX20", + "name": "Compound", + "coinpaprika_id": "comp-compoundd", + "coingecko_id": "compound-governance-token", + "nomics_id": "COMP", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "COMP-BEP20": { "coin": "COMP-BEP20", "name": "Compound", "coinpaprika_id": "comp-compoundd", "coingecko_id": "compound-governance-token", + "nomics_id": "COMP", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -1550,6 +1639,7 @@ "name": "Compound", "coinpaprika_id": "comp-compoundd", "coingecko_id": "compound-governance-token", + "nomics_id": "COMP", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -1562,11 +1652,28 @@ "active": false, "currently_enabled": false }, + "COMP-KRC20": { + "coin": "COMP-KRC20", + "name": "Compound", + "coinpaprika_id": "comp-compoundd", + "coingecko_id": "compound-governance-token", + "nomics_id": "COMP", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "COMP-PLG20": { "coin": "COMP-PLG20", "name": "Compound", "coinpaprika_id": "comp-compoundd", "coingecko_id": "compound-governance-token", + "nomics_id": "COMP", "nodes": [ "https://polygon-rpc.com" ], @@ -1601,69 +1708,68 @@ "https://crypto.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "DAI-AVX20": { - "coin": "DAI-AVX20", - "name": "Dai", - "coinpaprika_id": "dai-dai", - "coingecko_id": "dai", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "DAI-AVX20", + "name": "Dai", + "coinpaprika_id": "dai-dai", + "coingecko_id": "dai", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "DAI-FTM20": { - "coin": "DAI-FTM20", - "name": "Dai", - "coinpaprika_id": "dai-dai", - "coingecko_id": "dai", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false - }, - "DAI-HCO20": { - "coin": "DAI-HCO20", - "name": "Dai", - "coinpaprika_id": "dai-dai", - "coingecko_id": "dai", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "DAI-FTM20", + "name": "Dai", + "coinpaprika_id": "dai-dai", + "coingecko_id": "dai", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false + }, + "DAI-HCO20": { + "coin": "DAI-HCO20", + "name": "Dai", + "coinpaprika_id": "dai-dai", + "coingecko_id": "dai", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "DAI-HRC20": { - "coin": "DAI-HRC20", - "name": "Dai", - "coinpaprika_id": "dai-dai", - "coingecko_id": "dai", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "DAI-HRC20", + "name": "Dai", + "coinpaprika_id": "dai-dai", + "coingecko_id": "dai", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "DAI-BEP20": { "coin": "DAI-BEP20", @@ -1700,19 +1806,19 @@ "currently_enabled": false }, "DAI-MVR20": { - "coin": "DAI-MVR20", - "name": "Dai", - "coinpaprika_id": "dai-dai", - "coingecko_id": "dai", - "nodes": [ - "https://rpc.moonriver.moonbeam.network" - ], - "explorer_url": [ - "https://blockscout.moonriver.moonbeam.network/" - ], - "type": "Moonriver", - "active": false, - "currently_enabled": false + "coin": "DAI-MVR20", + "name": "Dai", + "coinpaprika_id": "dai-dai", + "coingecko_id": "dai", + "nodes": [ + "https://rpc.moonriver.moonbeam.network" + ], + "explorer_url": [ + "https://blockscout.moonriver.moonbeam.network/" + ], + "type": "Moonriver", + "active": false, + "currently_enabled": false }, "DAI-PLG20": { "coin": "DAI-PLG20", @@ -1757,6 +1863,32 @@ "explorer_tx_url": "transaction/", "type": "UTXO" }, + "DUST": { + "coin": "DUST", + "name": "Dragonfairy", + "coinpaprika_id": "test-coin", + "coingecko_id": "test-coin", + "electrum": [ + { + "url": "51.222.85.227:10001", + "ws_url": "51.222.85.227:9001" + }, + { + "url": "78.141.233.64:10001", + "ws_url": "78.141.233.64:9001" + }, + { + "url": "192.248.166.207:10001", + "ws_url": "192.248.166.207:9001" + } + ], + "explorer_url": [ + "http://dragonfairy.gives/" + ], + "type": "Smart Chain", + "active": false, + "currently_enabled": false + }, "DGB": { "active": false, "coin": "DGB", @@ -1789,6 +1921,7 @@ "name": "Digitalcoin", "coinpaprika_id": "dgc-digitalcoin", "coingecko_id": "digitalcoin", + "nomics_id": "DGC", "electrum": [ { "url": "electrumx.dgc.ewmcx.org:50001", @@ -1813,7 +1946,8 @@ "coin": "DIMI", "name": "Diminutive Coin", "coinpaprika_id": "dimi-diminutive-coin", - "coingecko_id": "diminutive-coin", + "coingecko_id": "test-coin", + "nomics_id": "DIMI", "electrum": [ { "url": "electrumx1.diminutivecoin.com:50012", @@ -1838,6 +1972,7 @@ "name": "DODO", "coinpaprika_id": "dodo-dodo", "coingecko_id": "dodo", + "nomics_id": "DODO", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -1855,6 +1990,7 @@ "name": "DODO", "coinpaprika_id": "dodo-dodo", "coingecko_id": "dodo", + "nomics_id": "DODO", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -1867,6 +2003,22 @@ "active": false, "currently_enabled": false }, + "DODO-KRC20": { + "coin": "DODO-KRC20", + "name": "DODO", + "coinpaprika_id": "dodo-dodo", + "coingecko_id": "dodo", + "nomics_id": "DODO", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "DOGE": { "coin": "DOGE", "name": "Dogecoin", @@ -1928,25 +2080,26 @@ "currently_enabled": false }, "DOT-HCO20": { - "coin": "DOT-HCO20", - "name": "Polkadot", - "coinpaprika_id": "dot-polkadot", - "coingecko_id": "polkadot", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "DOT-HCO20", + "name": "Polkadot", + "coinpaprika_id": "dot-polkadot", + "coingecko_id": "polkadot", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "DP": { "coin": "DP", "name": "DigitalPrice", "coinpaprika_id": "dp-digitalprice", "coingecko_id": "digitalprice", + "nomics_id": "DP", "electrum": [ { "url": "1.eu.dp.electrum.dexstats.info:10021" @@ -1964,6 +2117,7 @@ "name": "Electra", "coinpaprika_id": "eca-electra", "coingecko_id": "electra", + "nomics_id": "ECA", "electrum": [ { "url": "electrum1.cipig.net:10052", @@ -1989,7 +2143,8 @@ "coin": "EFL", "name": "e-Gulden", "coinpaprika_id": "efl-e-gulden", - "coingecko_id": "electronicgulden", + "coingecko_id": "test-coin", + "nomics_id": "EFL", "electrum": [ { "url": "holland.ecoincore.com:11017", @@ -2082,6 +2237,7 @@ "name": "Einsteinium", "coinpaprika_id": "emc2-einsteinium", "coingecko_id": "einsteinium", + "nomics_id": "EMC2", "electrum": [ { "url": "electrum1.cipig.net:10062", @@ -2155,53 +2311,53 @@ "currently_enabled": false }, "FET-ERC20": { - "coin": "FET-ERC20", - "name": "Fetch.ai", - "coinpaprika_id": "fetch-ai", - "coingecko_id": "fetch-ai", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "FET-ERC20", + "name": "Fetch.ai", + "coinpaprika_id": "fetch-ai", + "coingecko_id": "fetch-ai", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "FET-BEP20": { - "coin": "FET-BEP20", - "name": "Fetch.ai", - "coinpaprika_id": "fetch-ai", - "coingecko_id": "fetch-ai", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "FET-BEP20", + "name": "Fetch.ai", + "coinpaprika_id": "fetch-ai", + "coingecko_id": "fetch-ai", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "FET-PLG20": { - "coin": "FET-PLG20", - "name": "Fetch.ai", - "coinpaprika_id": "fetch-ai", - "coingecko_id": "fetch-ai", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "FET-PLG20", + "name": "Fetch.ai", + "coinpaprika_id": "fetch-ai", + "coingecko_id": "fetch-ai", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "FIL-BEP20": { "coin": "FIL-BEP20", @@ -2221,25 +2377,88 @@ "currently_enabled": false }, "FIL-HCO20": { - "coin": "FIL-HCO20", - "name": "Filecoin", - "coinpaprika_id": "fil-filecoin", - "coingecko_id": "filecoin", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "FIL-HCO20", + "name": "Filecoin", + "coinpaprika_id": "fil-filecoin", + "coingecko_id": "filecoin", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false + }, + "FLUX": { + "coin": "FLUX", + "name": "Flux", + "coinpaprika_id": "zel-zelcash", + "coingecko_id": "zelcash", + "nomics_id": "ZEL", + "electrum": [ + { + "url": "electrumx.runonflux.io:50002", + "protocol": "SSL", + "disable_cert_verification": true, + "ws_url": "electrumx.runonflux.io:50004" + }, + { + "url": "electrumx2.runonflux.io:50001", + "protocol": "TCP", + "ws_url": "electrumx2.runonflux.io:50004" + } + ], + "explorer_url": [ + "https://explorer.runonflux.io/" + ], + "type": "UTXO", + "active": false, + "currently_enabled": false + }, + "FLUX-ERC20": { + "coin": "FLUX-ERC20", + "name": "Flux", + "coinpaprika_id": "zel-zelcash", + "coingecko_id": "zelcash", + "nomics_id": "ZEL", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "FLUX-BEP20": { + "coin": "FLUX-BEP20", + "name": "Flux", + "coinpaprika_id": "zel-zelcash", + "coingecko_id": "zelcash", + "nomics_id": "ZEL", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "FIRO": { "coin": "FIRO", "name": "Firo", "coinpaprika_id": "firo-firo", "coingecko_id": "zcoin", + "nomics_id": "FIRO", "electrum": [ { "url": "electrumx01.firo.org:50001" @@ -2263,6 +2482,7 @@ "name": "Firo", "coinpaprika_id": "firo-firo", "coingecko_id": "zcoin", + "nomics_id": "FIRO", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -2523,6 +2743,7 @@ "name": "Groestlcoin", "coinpaprika_id": "grs-groestlcoin", "coingecko_id": "groestlcoin", + "nomics_id": "GRS", "electrum": [ { "url": "electrum10.groestlcoin.org:50001" @@ -2547,51 +2768,70 @@ "currently_enabled": false }, "GRT-AVX20": { - "coin": "GRT-AVX20", - "name": "The Graph", - "coinpaprika_id": "grt-the-graph", - "coingecko_id": "the-graph", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "GRT-AVX20", + "name": "The Graph", + "coinpaprika_id": "grt-the-graph", + "coingecko_id": "the-graph", + "nomics_id": "GRT", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "GRT-ERC20": { - "coin": "GRT-ERC20", - "name": "The Graph", - "coinpaprika_id": "grt-the-graph", - "coingecko_id": "the-graph", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "GRT-ERC20", + "name": "The Graph", + "coinpaprika_id": "grt-the-graph", + "coingecko_id": "the-graph", + "nomics_id": "GRT", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "GRT-KRC20": { + "coin": "GRT-KRC20", + "name": "The Graph", + "coinpaprika_id": "grt-the-graph", + "coingecko_id": "the-graph", + "nomics_id": "GRT", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "GRT-PLG20": { - "coin": "GRT-PLG20", - "name": "The Graph", - "coinpaprika_id": "grt-the-graph", - "coingecko_id": "the-graph", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "GRT-PLG20", + "name": "The Graph", + "coinpaprika_id": "grt-the-graph", + "coingecko_id": "the-graph", + "nomics_id": "GRT", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "HODL": { "coin": "HODL", @@ -2617,8 +2857,7 @@ ], "type": "Smart Chain", "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "INJ-BEP20": { "coin": "INJ-BEP20", @@ -2704,164 +2943,174 @@ "currently_enabled": false }, "JCHF-ERC20": { - "coin": "JCHF-ERC20", - "name": "Jarvis Swiss Franc", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-swiss-franc", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "JCHF-ERC20", + "name": "Jarvis Swiss Franc", + "forex_id": "CHF", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-swiss-franc", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "JCHF-PLG20": { - "coin": "JCHF-PLG20", - "name": "Jarvis Swiss Franc", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-swiss-franc", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "JCHF-PLG20", + "name": "Jarvis Swiss Franc", + "forex_id": "CHF", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-swiss-franc", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "JEUR-ERC20": { - "coin": "JEUR-ERC20", - "name": "Jarvis Euro", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-euro", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "JEUR-ERC20", + "name": "Jarvis Euro", + "forex_id": "EUR", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-euro", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "JEUR-PLG20": { - "coin": "JEUR-PLG20", - "name": "Jarvis Euro", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-euro", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "JEUR-PLG20", + "name": "Jarvis Euro", + "forex_id": "EUR", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-euro", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "JGBP-ERC20": { - "coin": "JGBP-ERC20", - "name": "Jarvis British Pound", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-british-pound", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "JGBP-ERC20", + "name": "Jarvis British Pound", + "forex_id": "GBP", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-british-pound", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "JGBP-PLG20": { - "coin": "JGBP-PLG20", - "name": "Jarvis British Pound", - "coinpaprika_id": "test-coin", - "coingecko_id": "jarvis-synthetic-british-pound", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "JGBP-PLG20", + "name": "Jarvis British Pound", + "forex_id": "GBP", + "coinpaprika_id": "test-coin", + "coingecko_id": "jarvis-synthetic-british-pound", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "JPYC-ERC20": { - "coin": "JPYC-ERC20", - "name": "JPY Coin", - "coinpaprika_id": "test-coin", - "coingecko_id": "jpyc", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "JPYC-ERC20", + "name": "JPY Coin", + "forex_id": "JPY", + "coinpaprika_id": "test-coin", + "coingecko_id": "jpyc", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "JPYC-PLG20": { - "coin": "JPYC-PLG20", - "name": "JPY Coin", - "coinpaprika_id": "test-coin", - "coingecko_id": "jpyc", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "JPYC-PLG20", + "name": "JPY Coin", + "forex_id": "JPY", + "coinpaprika_id": "test-coin", + "coingecko_id": "jpyc", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "JRT-ERC20": { - "coin": "JRT-ERC20", - "name": "Jarvis Reward Token", - "coinpaprika_id": "jrt-jarvis-reward-token", - "coingecko_id": "jarvis-reward-token", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "JRT-ERC20", + "name": "Jarvis Reward Token", + "coinpaprika_id": "jrt-jarvis-reward-token", + "coingecko_id": "jarvis-reward-token", + "nomics_id": "JRT", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "JRT-PLG20": { - "coin": "JRT-PLG20", - "name": "Jarvis Reward Token", - "coinpaprika_id": "jrt-jarvis-reward-token", - "coingecko_id": "jarvis-reward-token", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "JRT-PLG20", + "name": "Jarvis Reward Token", + "coinpaprika_id": "jrt-jarvis-reward-token", + "coingecko_id": "jarvis-reward-token", + "nomics_id": "JRT", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "JSTR": { "coin": "JSTR", @@ -2903,48 +3152,48 @@ "https://jumblr.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "KNC-BEP20": { - "coin": "KNC-BEP20", - "name": "Kyber Network", - "coinpaprika_id": "knc-kyber-network", - "coingecko_id": "kyber-network-crystal", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "KNC-BEP20", + "name": "Kyber Network", + "coinpaprika_id": "knc-kyber-network", + "coingecko_id": "kyber-network-crystal", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "KNC-ERC20": { - "coin": "KNC-ERC20", - "name": "Kyber Network", - "coinpaprika_id": "knc-kyber-network", - "coingecko_id": "kyber-network-crystal", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "KNC-ERC20", + "name": "Kyber Network", + "coinpaprika_id": "knc-kyber-network", + "coingecko_id": "kyber-network-crystal", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "KOIN": { "coin": "KOIN", "name": "Koinon", "coinpaprika_id": "koin-koinon", "coingecko_id": "koinon", + "nomics_id": "KOIN", "electrum": [ { "url": "electrum1.cipig.net:10024", @@ -2971,6 +3220,7 @@ "name": "LBRY Credits", "coinpaprika_id": "lbc-lbry-credits", "coingecko_id": "lbry-credits", + "nomics_id": "LBC", "electrum": [ { "url": "spv1.lbry.com:50001" @@ -3000,6 +3250,7 @@ "name": "Litecoin Cash", "coinpaprika_id": "lcc-litecoin-cash", "coingecko_id": "litecoin-cash", + "nomics_id": "LCC", "electrum": [ { "url": "188.166.117.139:50001" @@ -3043,75 +3294,75 @@ "is_segwit_on": false }, "LUNA-ERC20": { - "coin": "LUNA-ERC20", - "name": "Terra", - "coinpaprika_id": "luna-terra", - "coingecko_id": "terra-luna", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "LUNA-ERC20", + "name": "Terra", + "coinpaprika_id": "luna-terra", + "coingecko_id": "terra-luna", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "LUNA-BEP20": { - "coin": "LUNA-BEP20", - "name": "Terra", - "coinpaprika_id": "luna-terra", - "coingecko_id": "terra-luna", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "LUNA-BEP20", + "name": "Terra", + "coinpaprika_id": "luna-terra", + "coingecko_id": "terra-luna", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "LUNA-HRC20": { - "coin": "LUNA-HRC20", - "name": "Terra", - "coinpaprika_id": "luna-terra", - "coingecko_id": "terra-luna", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "LUNA-HRC20", + "name": "Terra", + "coinpaprika_id": "luna-terra", + "coingecko_id": "terra-luna", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "LUNA-PLG20": { - "coin": "LUNA-PLG20", - "name": "Terra", - "coinpaprika_id": "luna-terra", - "coingecko_id": "terra-luna", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "LUNA-PLG20", + "name": "Terra", + "coinpaprika_id": "luna-terra", + "coingecko_id": "terra-luna", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "LYNX": { "coin": "LYNX", "name": "Lynx", "coinpaprika_id": "lynx-lynx", - "coingecko_id": "lynx", + "coingecko_id": "test-coin", "nomics_id": "LYNX", "electrum": [ { @@ -3239,37 +3490,53 @@ "currently_enabled": false }, "MATIC-HCO20": { - "coin": "MATIC-HCO20", - "name": "Polygon", - "coinpaprika_id": "matic-matic-network", - "coingecko_id": "matic-network", - "nomics_id": "MATIC", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "MATIC-HCO20", + "name": "Polygon", + "coinpaprika_id": "matic-matic-network", + "coingecko_id": "matic-network", + "nomics_id": "MATIC", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "MATIC-HRC20": { - "coin": "MATIC-HRC20", - "name": "Polygon", - "coinpaprika_id": "matic-matic-network", - "coingecko_id": "matic-network", - "nomics_id": "MATIC", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "MATIC-HRC20", + "name": "Polygon", + "coinpaprika_id": "matic-matic-network", + "coingecko_id": "matic-network", + "nomics_id": "MATIC", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "MATIC-KRC20": { + "coin": "MATIC-KRC20", + "name": "Polygon", + "coinpaprika_id": "matic-matic-network", + "coingecko_id": "matic-network", + "nomics_id": "MATIC", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "MCL": { "coin": "MCL", @@ -3299,46 +3566,47 @@ "currently_enabled": false }, "MIR-ERC20": { - "coin": "MIR-ERC20", - "name": "Mirror Protocol", - "coinpaprika_id": "mir-mirror-protocol", - "coingecko_id": "mirror-protocol", - "nomics_id": "MIRROR", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "MIR-ERC20", + "name": "Mirror Protocol", + "coinpaprika_id": "mir-mirror-protocol", + "coingecko_id": "mirror-protocol", + "nomics_id": "MIRROR", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "MIR-BEP20": { - "coin": "MIR-BEP20", - "name": "Mirror Protocol", - "coinpaprika_id": "mir-mirror-protocol", - "coingecko_id": "mirror-protocol", - "nomics_id": "MIRROR", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "MIR-BEP20", + "name": "Mirror Protocol", + "coinpaprika_id": "mir-mirror-protocol", + "coingecko_id": "mirror-protocol", + "nomics_id": "MIRROR", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "MM-ERC20": { "coin": "MM-ERC20", "name": "Million", "coinpaprika_id": "mm-million", "coingecko_id": "million", + "nomics_id": "MM4", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -3352,66 +3620,70 @@ "currently_enabled": false }, "MM-AVX20": { - "coin": "MM-AVX20", - "name": "Million", - "coinpaprika_id": "mm-million", - "coingecko_id": "million", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "MM-AVX20", + "name": "Million", + "coinpaprika_id": "mm-million", + "coingecko_id": "million", + "nomics_id": "MM4", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "MM-BEP20": { - "coin": "MM-BEP20", - "name": "Million", - "coinpaprika_id": "mm-million", - "coingecko_id": "million", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "MM-BEP20", + "name": "Million", + "coinpaprika_id": "mm-million", + "coingecko_id": "million", + "nomics_id": "MM4", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "MM-MVR20": { - "coin": "MM-MVR20", - "name": "Million", - "coinpaprika_id": "mm-million", - "coingecko_id": "million", - "nodes": [ - "https://rpc.moonriver.moonbeam.network" - ], - "explorer_url": [ - "https://blockscout.moonriver.moonbeam.network/" - ], - "type": "Moonriver", - "active": false, - "currently_enabled": false + "coin": "MM-MVR20", + "name": "Million", + "coinpaprika_id": "mm-million", + "coingecko_id": "million", + "nomics_id": "MM4", + "nodes": [ + "https://rpc.moonriver.moonbeam.network" + ], + "explorer_url": [ + "https://blockscout.moonriver.moonbeam.network/" + ], + "type": "Moonriver", + "active": false, + "currently_enabled": false }, "MM-PLG20": { - "coin": "MM-PLG20", - "name": "Million", - "coinpaprika_id": "mm-million", - "coingecko_id": "million", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "MM-PLG20", + "name": "Million", + "coinpaprika_id": "mm-million", + "coingecko_id": "million", + "nomics_id": "MM4", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "MSHARK": { "coin": "MSHARK", @@ -3437,8 +3709,7 @@ ], "type": "Smart Chain", "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "NEAR-BEP20": { "coin": "NEAR-BEP20", @@ -3492,19 +3763,19 @@ "currently_enabled": false }, "OCEAN-PLG20": { - "coin": "OCEAN-PLG20", - "name": "Ocean Protocol", - "coinpaprika_id": "ocean-ocean-protocol", - "coingecko_id": "ocean-protocol", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "OCEAN-PLG20", + "name": "Ocean Protocol", + "coinpaprika_id": "ocean-ocean-protocol", + "coingecko_id": "ocean-protocol", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "ONE": { "active": false, @@ -3513,8 +3784,8 @@ "coinpaprika_id": "one-harmony", "currently_enabled": false, "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" + "https://api.harmony.one", + "https://api.s0.t.hmny.io" ], "explorer_url": [ "https://explorer.harmony.one/" @@ -3573,6 +3844,21 @@ "active": false, "currently_enabled": false }, + "PAX-KRC20": { + "coin": "PAX-KRC20", + "name": "Paxos Standard", + "coinpaprika_id": "pax-paxos-standard-token", + "coingecko_id": "paxos-standard", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "PAX-PLG20": { "coin": "PAX-PLG20", "name": "Paxos Standard", @@ -3643,6 +3929,7 @@ "coin": "KCS", "coingecko_id": "kucoin-shares", "coinpaprika_id": "kcs-kucoin-token", + "nomics_id": "KCS", "currently_enabled": false, "nodes": [ "https://rpc-mainnet.kcc.network" @@ -3657,7 +3944,8 @@ "active": false, "coin": "MOVR", "coingecko_id": "moonriver", - "coinpaprika_id": "test-coin", + "coinpaprika_id": "movr-moonriver", + "nomics_id": "MOVR", "currently_enabled": false, "nodes": [ "https://rpc.moonriver.moonbeam.network" @@ -3721,69 +4009,69 @@ "currently_enabled": false }, "ETH-FTM20": { - "coin": "ETH-FTM20", - "name": "Ethereum", - "coinpaprika_id": "eth-ethereum", - "coingecko_id": "ethereum", - "nomics_id": "ETH", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "ETH-FTM20", + "name": "Ethereum", + "coinpaprika_id": "eth-ethereum", + "coingecko_id": "ethereum", + "nomics_id": "ETH", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "ETH-HCO20": { - "coin": "ETH-HCO20", - "name": "Ethereum", - "coinpaprika_id": "eth-ethereum", - "coingecko_id": "ethereum", - "nomics_id": "ETH", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "ETH-HCO20", + "name": "Ethereum", + "coinpaprika_id": "eth-ethereum", + "coingecko_id": "ethereum", + "nomics_id": "ETH", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "ETH-HRC20": { - "coin": "ETH-HRC20", - "name": "Ethereum", - "coinpaprika_id": "eth-ethereum", - "coingecko_id": "ethereum", - "nomics_id": "ETH", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "ETH-HRC20", + "name": "Ethereum", + "coinpaprika_id": "eth-ethereum", + "coingecko_id": "ethereum", + "nomics_id": "ETH", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "ETH-KRC20": { - "coin": "ETH-KRC20", - "name": "Ethereum", - "coinpaprika_id": "eth-ethereum", - "coingecko_id": "ethereum", - "nomics_id": "ETH", - "nodes": [ - "https://rpc-mainnet.kcc.network" - ], - "explorer_url": [ - "https://explorer.kcc.io/en/" - ], - "type": "KRC-20", - "active": false, - "currently_enabled": false + "coin": "ETH-KRC20", + "name": "Ethereum", + "coinpaprika_id": "eth-ethereum", + "coingecko_id": "ethereum", + "nomics_id": "ETH", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "ETH-PLG20": { "coin": "ETH-PLG20", @@ -3873,6 +4161,7 @@ "name": "Unitus", "coinpaprika_id": "uis-unitus", "coingecko_id": "unitus", + "nomics_id": "UIS", "electrum": [ { "url": "failover.trc-uis.ewmcx.biz:50002", @@ -3895,6 +4184,7 @@ "name": "Unobtanium", "coinpaprika_id": "uno-unobtanium", "coingecko_id": "unobtanium", + "nomics_id": "UNO", "electrum": [ { "url": "uno-main.coinmunity.gold:50002", @@ -3917,19 +4207,19 @@ "currently_enabled": false }, "USDC-AVX20": { - "coin": "USDC-AVX20", - "name": "USD Coin", - "coinpaprika_id": "usdc-usd-coin", - "coingecko_id": "usd-coin", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "USDC-AVX20", + "name": "USD Coin", + "coinpaprika_id": "usdc-usd-coin", + "coingecko_id": "usd-coin", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "USDC-MVR20": { "coin": "USDC-MVR20", @@ -4026,20 +4316,20 @@ "currently_enabled": false }, "USDC-HRC20": { - "coin": "USDC-HRC20", - "name": "USD Coin", - "coinpaprika_id": "usdc-usd-coin", - "coingecko_id": "usd-coin", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "USDC-HRC20", + "name": "USD Coin", + "coinpaprika_id": "usdc-usd-coin", + "coingecko_id": "usd-coin", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "USDC-PLG20": { "coin": "USDC-PLG20", @@ -4087,19 +4377,19 @@ "currently_enabled": false }, "USDT-FTM20": { - "coin": "USDT-FTM20", - "name": "Tether", - "coinpaprika_id": "usdt-tether", - "coingecko_id": "tether", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "USDT-FTM20", + "name": "Tether", + "coinpaprika_id": "usdt-tether", + "coingecko_id": "tether", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "USDT-KRC20": { "coin": "USDT-KRC20", @@ -4198,20 +4488,20 @@ "wallet_only": true }, "USDT-HRC20": { - "coin": "USDT-HRC20", - "name": "Tether", - "coinpaprika_id": "usdt-tether", - "coingecko_id": "tether", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "USDT-HRC20", + "name": "Tether", + "coinpaprika_id": "usdt-tether", + "coingecko_id": "tether", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false }, "AWC": { "active": false, @@ -4235,21 +4525,23 @@ "name": "Basic Attention Token", "coinpaprika_id": "bat-basic-attention-token", "coingecko_id": "basic-attention-token", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "nomics_id": "BAT", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "BAT-ERC20": { "coin": "BAT-ERC20", "name": "Basic Attention Token", "coinpaprika_id": "bat-basic-attention-token", "coingecko_id": "basic-attention-token", + "nomics_id": "BAT", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -4267,6 +4559,7 @@ "name": "Basic Attention Token", "coinpaprika_id": "bat-basic-attention-token", "coingecko_id": "basic-attention-token", + "nomics_id": "BAT", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -4279,11 +4572,28 @@ "active": false, "currently_enabled": false }, + "BAT-KRC20": { + "coin": "BAT-KRC20", + "name": "Basic Attention Token", + "coinpaprika_id": "bat-basic-attention-token", + "coingecko_id": "basic-attention-token", + "nomics_id": "BAT", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "BAT-PLG20": { "coin": "BAT-PLG20", "name": "Basic Attention Token", "coinpaprika_id": "bat-basic-attention-token", "coingecko_id": "basic-attention-token", + "nomics_id": "BAT", "nodes": [ "https://polygon-rpc.com" ], @@ -4362,27 +4672,27 @@ } ], "explorer_url": [ - "https://labs.explorer.dexstats.info/" + "https://labs.explorer.dexstats.info/" + ], + "active": false, + "currently_enabled": false + }, + "LINK-AVX20": { + "coin": "LINK-AVX20", + "name": "Chainlink", + "coinpaprika_id": "link-chainlink", + "coingecko_id": "chainlink", + "nomics_id": "LINK", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" ], + "type": "AVX-20", "active": false, "currently_enabled": false }, - "LINK-AVX20": { - "coin": "LINK-AVX20", - "name": "Chainlink", - "coinpaprika_id": "link-chainlink", - "coingecko_id": "chainlink", - "nomics_id": "LINK", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false - }, "LINK-BEP20": { "coin": "LINK-BEP20", "name": "Chainlink", @@ -4420,53 +4730,69 @@ "currently_enabled": false }, "LINK-FTM20": { - "coin": "LINK-FTM20", - "name": "Chainlink", - "coinpaprika_id": "link-chainlink", - "coingecko_id": "chainlink", - "nomics_id": "LINK", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "LINK-FTM20", + "name": "Chainlink", + "coinpaprika_id": "link-chainlink", + "coingecko_id": "chainlink", + "nomics_id": "LINK", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "LINK-HCO20": { - "coin": "LINK-HCO20", - "name": "Chainlink", - "coinpaprika_id": "link-chainlink", - "coingecko_id": "chainlink", - "nomics_id": "LINK", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "LINK-HCO20", + "name": "Chainlink", + "coinpaprika_id": "link-chainlink", + "coingecko_id": "chainlink", + "nomics_id": "LINK", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false }, "LINK-HRC20": { - "coin": "LINK-HRC20", - "name": "Chainlink", - "coinpaprika_id": "link-chainlink", - "coingecko_id": "chainlink", - "nomics_id": "LINK", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false + "coin": "LINK-HRC20", + "name": "Chainlink", + "coinpaprika_id": "link-chainlink", + "coingecko_id": "chainlink", + "nomics_id": "LINK", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "LINK-KRC20": { + "coin": "LINK-KRC20", + "name": "Chainlink", + "coinpaprika_id": "link-chainlink", + "coingecko_id": "chainlink", + "nomics_id": "LINK", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "LINK-PLG20": { "coin": "LINK-PLG20", @@ -4531,8 +4857,7 @@ "https://mgw.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "DEX": { "coin": "DEX", @@ -4558,8 +4883,7 @@ "https://dex.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "RICK": { "coin": "RICK", @@ -4639,8 +4963,7 @@ "https://pangea.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "PIC": { "coin": "PIC", @@ -4662,6 +4985,33 @@ "active": false, "currently_enabled": false }, + "PPC": { + "coin": "PPC", + "name": "Peercoin", + "coinpaprika_id": "ppc-peercoin", + "coingecko_id": "peercoin", + "nomics_id": "PPC", + "electrum": [ + { + "url": "electrum.peercoinexplorer.net:50002", + "protocol": "SSL", + "disable_cert_verification": false + }, + { + "url": "allingas.peercoinexplorer.net:50002", + "protocol": "SSL", + "disable_cert_verification": false + } + ], + "explorer_url": [ + "https://chainz.cryptoid.info/ppc/" + ], + "explorer_tx_url": "tx.dws?", + "explorer_address_url": "address.dws?", + "type": "UTXO", + "active": false, + "currently_enabled": false + }, "QIAIR": { "coin": "QIAIR", "name": "Qi Airdrop Token", @@ -4679,6 +5029,7 @@ "name": "QiSwap", "coingecko_id": "qiswap", "coinpaprika_id": "qi-qiswap", + "nomics_id": "QI", "active": false, "currently_enabled": false, "explorer_url": [ @@ -4686,6 +5037,40 @@ ], "type": "QRC-20" }, + "QNT-ERC20": { + "coin": "QNT-ERC20", + "name": "Quant", + "coinpaprika_id": "qnt-quant", + "coingecko_id": "quant-network", + "nomics_id": "QNT", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "QNT-KRC20": { + "coin": "QNT-KRC20", + "name": "Quant", + "coinpaprika_id": "qnt-quant", + "coingecko_id": "quant-network", + "nomics_id": "QNT", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "REVS": { "coin": "REVS", "name": "REVS", @@ -4710,14 +5095,15 @@ "https://revs.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "SBCH": { "coin": "SBCH", "name": "SmartBCH", + "alias_ticker": "BCH", "coinpaprika_id": "bch-bitcoin-cash", "coingecko_id": "bitcoin-cash", + "nomics_id": "BCH", "nodes": [ "https://smartbch.fountainhead.cash/mainnet" ], @@ -4729,25 +5115,8 @@ "currently_enabled": false }, "SIBM-BEP20": { - "coin": "SIBM-BEP20", - "name": "SibMining", - "coinpaprika_id": "test-coin", - "coingecko_id": "test-coin", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false - }, - "SMTF-OLD": { - "coin": "SMTF-OLD", - "name": "SmartFi", + "coin": "SIBM-BEP20", + "name": "SibMining", "coinpaprika_id": "test-coin", "coingecko_id": "test-coin", "nodes": [ @@ -4765,7 +5134,7 @@ "SMTF-v2": { "coin": "SMTF-v2", "name": "SmartFi", - "coinpaprika_id": "test-coin", + "coinpaprika_id": "smtf-smartfi", "coingecko_id": "test-coin", "nodes": [ "http://bsc1.cipig.net:8655", @@ -4778,7 +5147,7 @@ "type": "BEP-20", "active": false, "currently_enabled": false - }, + }, "SOULJA": { "coin": "SOULJA", "name": "SouljaCoin", @@ -4844,6 +5213,7 @@ "name": "Syscoin", "coinpaprika_id": "sys-syscoin", "coingecko_id": "syscoin", + "nomics_id": "SYS", "electrum": [ { "url": "electrum1.cipig.net:10064", @@ -4967,29 +5337,30 @@ "https://supernet.explorer.dexstats.info/" ], "active": false, - "currently_enabled": false, - "wallet_only": true + "currently_enabled": false }, "SUSHI-AVX20": { - "coin": "SUSHI-AVX20", - "name": "Sushi", - "coinpaprika_id": "sushi-sushi", - "coingecko_id": "sushi", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "SUSHI-AVX20", + "name": "Sushi", + "coinpaprika_id": "sushi-sushi", + "coingecko_id": "sushi", + "nomics_id": "SUSHI", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "SUSHI-BEP20": { "coin": "SUSHI-BEP20", "name": "Sushi", "coinpaprika_id": "sushi-sushi", "coingecko_id": "sushi", + "nomics_id": "SUSHI", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -5007,6 +5378,7 @@ "name": "Sushi", "coinpaprika_id": "sushi-sushi", "coingecko_id": "sushi", + "nomics_id": "SUSHI", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -5020,33 +5392,67 @@ "currently_enabled": false }, "SUSHI-FTM20": { - "coin": "SUSHI-FTM20", - "name": "Sushi", - "coinpaprika_id": "sushi-sushi", - "coingecko_id": "sushi", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "SUSHI-FTM20", + "name": "Sushi", + "coinpaprika_id": "sushi-sushi", + "coingecko_id": "sushi", + "nomics_id": "SUSHI", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false }, "SUSHI-HRC20": { - "coin": "SUSHI-HRC20", + "coin": "SUSHI-HRC20", + "name": "Sushi", + "coinpaprika_id": "sushi-sushi", + "coingecko_id": "sushi", + "nomics_id": "SUSHI", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "SUSHI-KRC20": { + "coin": "SUSHI-KRC20", + "name": "Sushi", + "coinpaprika_id": "sushi-sushi", + "coingecko_id": "sushi", + "nomics_id": "SUSHI", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, + "SUSHI-MVR20": { + "coin": "SUSHI-MVR20", "name": "Sushi", "coinpaprika_id": "sushi-sushi", "coingecko_id": "sushi", + "nomics_id": "SUSHI", "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" + "https://rpc.moonriver.moonbeam.network" ], "explorer_url": [ - "https://explorer.harmony.one/" + "https://blockscout.moonriver.moonbeam.network/" ], - "type": "HRC-20", + "type": "Moonriver", "active": false, "currently_enabled": false }, @@ -5055,6 +5461,7 @@ "name": "Sushi", "coinpaprika_id": "sushi-sushi", "coingecko_id": "sushi", + "nomics_id": "SUSHI", "nodes": [ "https://polygon-rpc.com" ], @@ -5070,6 +5477,7 @@ "name": "Vite", "coinpaprika_id": "vite-vite", "coingecko_id": "vite", + "nomics_id": "VITE", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -5159,25 +5567,27 @@ "currently_enabled": false }, "MKR-AVX20": { - "coin": "MKR-AVX20", - "name": "Maker", - "coinpaprika_id": "mkr-maker", - "coingecko_id": "maker", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "MKR-AVX20", + "name": "Maker", + "coinpaprika_id": "mkr-maker", + "coingecko_id": "maker", + "nomics_id": "MKR", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "MKR-BEP20": { "coin": "MKR-BEP20", "name": "Maker", "coinpaprika_id": "mkr-maker", "coingecko_id": "maker", + "nomics_id": "MKR", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -5195,6 +5605,7 @@ "name": "Maker", "coinpaprika_id": "mkr-maker", "coingecko_id": "maker", + "nomics_id": "MKR", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -5207,11 +5618,28 @@ "active": false, "currently_enabled": false }, + "MKR-KRC20": { + "coin": "MKR-KRC20", + "name": "Maker", + "coinpaprika_id": "mkr-maker", + "coingecko_id": "maker", + "nomics_id": "MKR", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "MONA": { "coin": "MONA", "name": "MonaCoin", "coinpaprika_id": "mona-monacoin", "coingecko_id": "monacoin", + "nomics_id": "MONA", "electrum": [ { "url": "electrumx3.monacoin.nl:50001" @@ -5230,11 +5658,46 @@ "active": false, "currently_enabled": false }, + "MTSLA-ERC20": { + "coin": "MTSLA-ERC20", + "name": "Mirrored Tesla", + "coinpaprika_id": "test-coin", + "coingecko_id": "mirrored-tesla", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "MTSLA-BEP20": { + "coin": "MTSLA-BEP20", + "name": "Mirrored Tesla", + "coinpaprika_id": "test-coin", + "coingecko_id": "mirrored-tesla", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false + }, "NAV": { "coin": "NAV", "name": "NavCoin", "coinpaprika_id": "nav-navcoin", "coingecko_id": "nav-coin", + "nomics_id": "NAV", "electrum": [ { "url": "electrum1.cipig.net:10056" @@ -5254,59 +5717,79 @@ "currently_enabled": false }, "NAV-BEP20": { - "coin": "NAV-BEP20", - "name": "Navcoin", - "coinpaprika_id": "nav-navcoin", - "coingecko_id": "nav-coin", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "NAV-BEP20", + "name": "Navcoin", + "coinpaprika_id": "nav-navcoin", + "coingecko_id": "nav-coin", + "nomics_id": "NAV", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "NEXO-ERC20": { - "coin": "NEXO-ERC20", - "name": "Nexo", - "coinpaprika_id": "nexo-nexo", - "coingecko_id": "nexo", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "NEXO-ERC20", + "name": "Nexo", + "coinpaprika_id": "nexo-nexo", + "coingecko_id": "nexo", + "nomics_id": "NEXO", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "NEXO-KRC20": { + "coin": "NEXO-KRC20", + "name": "Nexo", + "coinpaprika_id": "nexo-nexo", + "coingecko_id": "nexo", + "nomics_id": "NEXO", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "NEXO-PLG20": { - "coin": "NEXO-PLG20", - "name": "Nexo", - "coinpaprika_id": "nexo-nexo", - "coingecko_id": "nexo", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "NEXO-PLG20", + "name": "Nexo", + "coinpaprika_id": "nexo-nexo", + "coingecko_id": "nexo", + "nomics_id": "NEXO", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "NMC": { "coin": "NMC", "name": "Namecoin", "coinpaprika_id": "nmc-namecoin", "coingecko_id": "namecoin", + "nomics_id": "NMC", "electrum": [ { "url": "82.119.233.36:50001" @@ -5339,6 +5822,7 @@ "name": "Novacoin", "coinpaprika_id": "nvc-novacoin", "coingecko_id": "novacoin", + "nomics_id": "NVC", "electrum": [ { "url": "electrumx.nvc.ewmcx.org:50002", @@ -5360,65 +5844,69 @@ "wallet_only": true }, "NVC-BEP20": { - "coin": "NVC-BEP20", - "name": "Novacoin", - "coinpaprika_id": "nvc-novacoin", - "coingecko_id": "novacoin", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "NVC-BEP20", + "name": "Novacoin", + "coinpaprika_id": "nvc-novacoin", + "coingecko_id": "novacoin", + "nomics_id": "NVC", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "NVC-QRC20": { - "coin": "NVC-QRC20", - "name": "Novacoin", - "coinpaprika_id": "nvc-novacoin", - "coingecko_id": "novacoin", - "explorer_url": [ - "https://explorer.qtum.org/" - ], - "type": "QRC-20", - "active": false, - "currently_enabled": false + "coin": "NVC-QRC20", + "name": "Novacoin", + "coinpaprika_id": "nvc-novacoin", + "coingecko_id": "novacoin", + "nomics_id": "NVC", + "explorer_url": [ + "https://explorer.qtum.org/" + ], + "type": "QRC-20", + "active": false, + "currently_enabled": false }, "OMG-ERC20": { - "coin": "OMG-ERC20", - "name": "OMG Network", - "coinpaprika_id": "omg-omg-network", - "coingecko_id": "omisego", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "OMG-ERC20", + "name": "OMG Network", + "coinpaprika_id": "omg-omg-network", + "coingecko_id": "omisego", + "nomics_id": "OMG", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "OMG-PLG20": { - "coin": "OMG-PLG20", - "name": "OMG Network", - "coinpaprika_id": "omg-omg-network", - "coingecko_id": "omisego", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "OMG-PLG20", + "name": "OMG Network", + "coinpaprika_id": "omg-omg-network", + "coingecko_id": "omisego", + "nomics_id": "OMG", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "QKC-BEP20": { "coin": "QKC-BEP20", @@ -5460,6 +5948,7 @@ "name": "Qtum", "coinpaprika_id": "qtum-qtum", "coingecko_id": "qtum", + "nomics_id": "QTUM", "electrum": [ { "url": "electrum1.cipig.net:10050", @@ -5470,109 +5959,112 @@ "ws_url": "electrum2.cipig.net:30050" }, { - "url": "electrum3.cipig.net:10050", - "ws_url": "electrum3.cipig.net:30050" + "url": "electrum3.cipig.net:10050", + "ws_url": "electrum3.cipig.net:30050" + } + ], + "explorer_url": [ + "https://explorer.qtum.org/" + ], + "type": "QRC-20", + "active": false, + "currently_enabled": false + }, + "QTUM-ERC20": { + "coin": "QTUM-ERC20", + "name": "Qtum", + "coinpaprika_id": "qtum-qtum", + "coingecko_id": "qtum", + "nomics_id": "QTUM", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "REN-ERC20": { + "coin": "REN-ERC20", + "name": "Ren", + "coinpaprika_id": "ren-republic-protocol", + "coingecko_id": "republic-protocol", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "REN-HRC20": { + "coin": "REN-HRC20", + "name": "Ren", + "coinpaprika_id": "ren-republic-protocol", + "coingecko_id": "republic-protocol", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, + "REN-HCO20": { + "coin": "REN-HCO20", + "name": "Ren", + "coinpaprika_id": "ren-republic-protocol", + "coingecko_id": "republic-protocol", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false + }, + "RTM": { + "coin": "RTM", + "name": "Raptoreum", + "coinpaprika_id": "rtm-raptoreum", + "coingecko_id": "raptoreum", + "nomics_id": "RTM", + "electrum": [ + { + "url": "209.151.151.21:50001", + "protocol": "TCP" + }, + { + "url": "209.50.52.239:50001", + "protocol": "TCP" } ], "explorer_url": [ - "https://explorer.qtum.org/" + "https://explorer.raptoreum.com/" ], - "type": "QRC-20", + "type": "UTXO", "active": false, "currently_enabled": false }, - "QTUM-ERC20": { - "coin": "QTUM-ERC20", - "name": "Qtum", - "coinpaprika_id": "qtum-qtum", - "coingecko_id": "qtum", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false - }, - "REN-ERC20": { - "coin": "REN-ERC20", - "name": "Ren", - "coinpaprika_id": "ren-republic-protocol", - "coingecko_id": "republic-protocol", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false - }, - "REN-HRC20": { - "coin": "REN-HRC20", - "name": "Ren", - "coinpaprika_id": "ren-republic-protocol", - "coingecko_id": "republic-protocol", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false - }, - "REN-HCO20": { - "coin": "REN-HCO20", - "name": "Ren", - "coinpaprika_id": "ren-republic-protocol", - "coingecko_id": "republic-protocol", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false - }, - "RTM": { - "coin": "RTM", - "name": "Raptoreum", - "coinpaprika_id": "rtm-raptoreum", - "coingecko_id": "raptoreum", - "electrum": [ - { - "url": "209.151.151.21:50001", - "protocol": "TCP" - }, - { - "url": "209.50.52.239:50001", - "protocol": "TCP" - } - ], - "explorer_url": [ - "https://explorer.raptoreum.com/" - ], - "type": "UTXO", - "active": false, - "currently_enabled": false - }, "RVN": { "coin": "RVN", "name": "Ravencoin", "coinpaprika_id": "rvn-ravencoin", "coingecko_id": "ravencoin", + "nomics_id": "RVN", "electrum": [ { "url": "electrum1.cipig.net:10051", @@ -5595,25 +6087,27 @@ "currently_enabled": false }, "SNX-AVX20": { - "coin": "SNX-AVX20", - "name": "Synthetix", - "coinpaprika_id": "snx-synthetix-network-token", - "coingecko_id": "havven", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "SNX-AVX20", + "name": "Synthetix", + "coinpaprika_id": "snx-synthetix-network-token", + "coingecko_id": "havven", + "nomics_id": "SNX", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "SNX-BEP20": { "coin": "SNX-BEP20", "name": "Synthetix", "coinpaprika_id": "snx-synthetix-network-token", "coingecko_id": "havven", + "nomics_id": "SNX", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -5631,6 +6125,7 @@ "name": "Synthetix", "coinpaprika_id": "snx-synthetix-network-token", "coingecko_id": "havven", + "nomics_id": "SNX", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -5644,25 +6139,43 @@ "currently_enabled": false }, "SNX-FTM20": { - "coin": "SNX-FTM20", - "name": "Synthetix", - "coinpaprika_id": "snx-synthetix-network-token", - "coingecko_id": "havven", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "SNX-FTM20", + "name": "Synthetix", + "coinpaprika_id": "snx-synthetix-network-token", + "coingecko_id": "havven", + "nomics_id": "SNX", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false + }, + "SNX-KRC20": { + "coin": "SNX-KRC20", + "name": "Synthetix", + "coinpaprika_id": "snx-synthetix-network-token", + "coingecko_id": "havven", + "nomics_id": "SNX", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "SNX-PLG20": { "coin": "SNX-PLG20", "name": "Synthetix", "coinpaprika_id": "snx-synthetix-network-token", "coingecko_id": "havven", + "nomics_id": "SNX", "nodes": [ "https://polygon-rpc.com" ], @@ -5693,6 +6206,56 @@ "active": false, "currently_enabled": false }, + "TEL-ERC20": { + "coin": "TEL-ERC20", + "name": "Telcoin", + "coinpaprika_id": "tel-telcoin", + "coingecko_id": "telcoin", + "nomics_id": "TEL", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "TEL-PLG20": { + "coin": "TEL-PLG20", + "name": "Telcoin", + "coinpaprika_id": "tel-telcoin", + "coingecko_id": "telcoin", + "nomics_id": "TEL", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false + }, + "TEL-KRC20": { + "coin": "TEL-KRC20", + "name": "Telcoin", + "coinpaprika_id": "tel-telcoin", + "coingecko_id": "telcoin", + "nomics_id": "TEL", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "THC": { "coin": "THC", "name": "HempCoin", @@ -5719,8 +6282,8 @@ "name": "Tokel", "coinpaprika_id": "tkl-tokel", "coingecko_id": "test-coin", + "nomics_id": "TKL2", "electrum": [ - { "url": "1.eu.tokel.electrum.dexstats.info:10077" }, @@ -5734,7 +6297,7 @@ "type": "Smart Chain", "active": false, "currently_enabled": false - }, + }, "TRC": { "coin": "TRC", "name": "Terracoin", @@ -5781,42 +6344,141 @@ "currently_enabled": false }, "TRYB-AVX20": { - "coin": "TRYB-AVX20", - "name": "BiLira", - "coinpaprika_id": "tryb-bilira", - "coingecko_id": "bilira", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "TRYB-AVX20", + "name": "BiLira", + "forex_id": "TRY", + "coinpaprika_id": "tryb-bilira", + "coingecko_id": "bilira", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "TRYB-BEP20": { "coin": "TRYB-BEP20", "name": "BiLira", + "forex_id": "TRY", + "coinpaprika_id": "tryb-bilira", + "coingecko_id": "bilira", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false + }, + "TRYB-ERC20": { + "coin": "TRYB-ERC20", + "name": "BiLira", + "forex_id": "TRY", "coinpaprika_id": "tryb-bilira", "coingecko_id": "bilira", "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "TUSD-BEP20": { + "coin": "TUSD-BEP20", + "name": "TrueUSD", + "coinpaprika_id": "tusd-trueusd", + "coingecko_id": "true-usd", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false + }, + "TUSD-ERC20": { + "coin": "TUSD-ERC20", + "name": "TrueUSD", + "coinpaprika_id": "tusd-trueusd", + "coingecko_id": "true-usd", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "TUSD-HCO20": { + "coin": "TUSD-HCO20", + "name": "TrueUSD", + "coinpaprika_id": "tusd-trueusd", + "coingecko_id": "true-usd", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false + }, + "TUSD-KRC20": { + "coin": "TUSD-KRC20", + "name": "TrueUSD", + "coinpaprika_id": "tusd-trueusd", + "coingecko_id": "true-usd", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, + "TUSD-PLG20": { + "coin": "TUSD-PLG20", + "name": "TrueUSD", + "coinpaprika_id": "tusd-trueusd", + "coingecko_id": "true-usd", + "nodes": [ + "https://polygon-rpc.com" ], "explorer_url": [ - "https://bscscan.com/" + "https://polygonscan.com/" ], - "type": "BEP-20", + "type": "Matic", "active": false, "currently_enabled": false }, - "TRYB-ERC20": { - "coin": "TRYB-ERC20", - "name": "BiLira", - "coinpaprika_id": "tryb-bilira", - "coingecko_id": "bilira", + "UST-ERC20": { + "coin": "UST-ERC20", + "name": "TerraUSD", + "coinpaprika_id": "ust-terrausd", + "coingecko_id": "terrausd", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -5829,11 +6491,11 @@ "active": false, "currently_enabled": false }, - "TUSD-BEP20": { - "coin": "TUSD-BEP20", - "name": "TrueUSD", - "coinpaprika_id": "tusd-trueusd", - "coingecko_id": "true-usd", + "UST-BEP20": { + "coin": "UST-BEP20", + "name": "TerraUSD", + "coinpaprika_id": "ust-terrausd", + "coingecko_id": "terrausd", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -5846,43 +6508,27 @@ "active": false, "currently_enabled": false }, - "TUSD-ERC20": { - "coin": "TUSD-ERC20", - "name": "TrueUSD", - "coinpaprika_id": "tusd-trueusd", - "coingecko_id": "true-usd", + "UST-HRC20": { + "coin": "UST-HRC20", + "name": "TerraUSD", + "coinpaprika_id": "ust-terrausd", + "coingecko_id": "terrausd", "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" + "https://api.harmony.one", + "https://api.s0.t.hmny.io" ], "explorer_url": [ - "https://etherscan.io/" + "https://explorer.harmony.one/" ], - "type": "ERC-20", + "type": "HRC-20", "active": false, "currently_enabled": false }, - "TUSD-HCO20": { - "coin": "TUSD-HCO20", - "name": "TrueUSD", - "coinpaprika_id": "tusd-trueusd", - "coingecko_id": "true-usd", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false - }, - "TUSD-PLG20": { - "coin": "TUSD-PLG20", - "name": "TrueUSD", - "coinpaprika_id": "tusd-trueusd", - "coingecko_id": "true-usd", + "UST-PLG20": { + "coin": "UST-PLG20", + "name": "TerraUSD", + "coinpaprika_id": "ust-terrausd", + "coingecko_id": "terrausd", "nodes": [ "https://polygon-rpc.com" ], @@ -5893,76 +6539,12 @@ "active": false, "currently_enabled": false }, - "UST-ERC20": { - "coin": "UST-ERC20", - "name": "TerraUSD", - "coinpaprika_id": "ust-terrausd", - "coingecko_id": "terrausd", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false - }, - "UST-BEP20": { - "coin": "UST-BEP20", - "name": "TerraUSD", - "coinpaprika_id": "ust-terrausd", - "coingecko_id": "terrausd", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false - }, - "UST-HRC20": { - "coin": "UST-HRC20", - "name": "TerraUSD", - "coinpaprika_id": "ust-terrausd", - "coingecko_id": "terrausd", - "nodes": [ - "https://api.harmony.one", - "https://api.s0.t.hmny.io" - ], - "explorer_url": [ - "https://explorer.harmony.one/" - ], - "type": "HRC-20", - "active": false, - "currently_enabled": false - }, - "UST-PLG20": { - "coin": "UST-PLG20", - "name": "TerraUSD", - "coinpaprika_id": "ust-terrausd", - "coingecko_id": "terrausd", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false - }, "VAL": { "coin": "VAL", "name": "Validity", "coinpaprika_id": "val-validity", "coingecko_id": "radium", + "nomics_id": "RADS", "electrum": [ { "url": "e1.validitytech.com:11002", @@ -6027,11 +6609,47 @@ "active": false, "currently_enabled": false }, + "WBTC-ERC20": { + "coin": "WBTC-ERC20", + "name": "Wrapped Bitcoin", + "coinpaprika_id": "wbtc-wrapped-bitcoin", + "coingecko_id": "wrapped-bitcoin", + "nomics_id": "WBTC", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "WBTC-HRC20": { + "coin": "WBTC-HRC20", + "name": "Wrapped Bitcoin", + "coinpaprika_id": "wbtc-wrapped-bitcoin", + "coingecko_id": "wrapped-bitcoin", + "nomics_id": "WBTC", + "nodes": [ + "https://api.harmony.one", + "https://api.s0.t.hmny.io" + ], + "explorer_url": [ + "https://explorer.harmony.one/" + ], + "type": "HRC-20", + "active": false, + "currently_enabled": false + }, "WCN": { "coin": "WCN", "name": "Widecoin", "coinpaprika_id": "wcn-widecoin", "coingecko_id": "widecoin", + "nomics_id": "WCN2", "electrum": [ { "url": "electrumx.widecoin.org:50001" @@ -6048,28 +6666,29 @@ "currently_enabled": false }, "WWCN-ERC20": { - "coin": "WWCN-ERC20", - "name": "Wrapped Widecoin", - "coinpaprika_id": "wwcn-wrapped-widecoin", - "coingecko_id": "wrapped-widecoin", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "WWCN-ERC20", + "name": "Wrapped Widecoin", + "coinpaprika_id": "wwcn-wrapped-widecoin", + "coingecko_id": "wrapped-widecoin", + "nomics_id": "WWCN", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "XEC": { - "active": false, "coin": "XEC", + "name": "eCash", "coingecko_id": "ecash", "coinpaprika_id": "xec-ecash", - "currently_enabled": false, + "nomics_id": "XEC", "electrum": [ { "url": "electrum.bitcoinabc.org:50002", @@ -6080,31 +6699,33 @@ "url": "fulcrum.pepipierre.fr:50002", "protocol": "SSL", "disable_cert_verification": true - } + } ], "explorer_url": [ "https://blockchair.com/ecash/" ], "explorer_tx_url": "transaction/", "type": "UTXO", - "name": "eCash" + "active": false, + "currently_enabled": false }, "XEP-BEP20": { - "coin": "XEP-BEP20", - "name": "Electra Protocol", - "coinpaprika_id": "xep-electra-protocol", - "coingecko_id": "electra-protocol", - "nodes": [ - "http://bsc1.cipig.net:8655", - "http://bsc2.cipig.net:8655", - "http://bsc3.cipig.net:8655" - ], - "explorer_url": [ - "https://bscscan.com/" - ], - "type": "BEP-20", - "active": false, - "currently_enabled": false + "coin": "XEP-BEP20", + "name": "Electra Protocol", + "coinpaprika_id": "xep-electra-protocol", + "coingecko_id": "electra-protocol", + "nomics_id": "XEP", + "nodes": [ + "http://bsc1.cipig.net:8655", + "http://bsc2.cipig.net:8655", + "http://bsc3.cipig.net:8655" + ], + "explorer_url": [ + "https://bscscan.com/" + ], + "type": "BEP-20", + "active": false, + "currently_enabled": false }, "XLM-BEP20": { "coin": "XLM-BEP20", @@ -6127,7 +6748,7 @@ "coin": "XMY", "name": "Myriad", "coinpaprika_id": "xmy-myriad", - "coingecko_id": "myriadcoin", + "coingecko_id": "test-coin", "nomics_id": "XMY", "electrum": [ { @@ -6149,6 +6770,7 @@ "name": "Primecoin", "coinpaprika_id": "xpm-primecoin", "coingecko_id": "primecoin", + "nomics_id": "XPM", "electrum": [ { "url": "electrumx.primecoin.org:50001", @@ -6212,36 +6834,38 @@ "name": "Ergon" }, "XSGD-ERC20": { - "coin": "XSGD-ERC20", - "name": "StraitsX SGD", - "coinpaprika_id": "xsgd-xsgd", - "coingecko_id": "xsgd", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false + "coin": "XSGD-ERC20", + "name": "StraitsX SGD", + "forex_id": "SGD", + "coinpaprika_id": "xsgd-xsgd", + "coingecko_id": "xsgd", + "nodes": [ + "http://eth1.cipig.net:8555", + "http://eth2.cipig.net:8555", + "http://eth3.cipig.net:8555" + ], + "explorer_url": [ + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false }, "XSGD-PLG20": { - "coin": "XSGD-PLG20", - "name": "StraitsX SGD", - "coinpaprika_id": "xsgd-xsgd", - "coingecko_id": "xsgd", - "nodes": [ - "https://polygon-rpc.com" - ], - "explorer_url": [ - "https://polygonscan.com/" - ], - "type": "Matic", - "active": false, - "currently_enabled": false + "coin": "XSGD-PLG20", + "name": "StraitsX SGD", + "forex_id": "SGD", + "coinpaprika_id": "xsgd-xsgd", + "coingecko_id": "xsgd", + "nodes": [ + "https://polygon-rpc.com" + ], + "explorer_url": [ + "https://polygonscan.com/" + ], + "type": "Matic", + "active": false, + "currently_enabled": false }, "XTZ-BEP20": { "coin": "XTZ-BEP20", @@ -6265,6 +6889,7 @@ "name": "Vanillacash", "coinpaprika_id": "xvc-vcash", "coingecko_id": "vcash", + "nomics_id": "XVC", "electrum": [ { "url": "electrumx.xvc.ewmcx.org:50001", @@ -6288,6 +6913,7 @@ "name": "Vanillacash", "coinpaprika_id": "xvc-vcash", "coingecko_id": "vcash", + "nomics_id": "XVC", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -6301,16 +6927,17 @@ "currently_enabled": false }, "XVC-QRC20": { - "coin": "XVC-QRC20", - "name": "Vanillacash", - "coinpaprika_id": "xvc-vcash", - "coingecko_id": "vcash", - "explorer_url": [ - "https://explorer.qtum.org/" - ], - "type": "QRC-20", - "active": false, - "currently_enabled": false + "coin": "XVC-QRC20", + "name": "Vanillacash", + "coinpaprika_id": "xvc-vcash", + "coingecko_id": "vcash", + "nomics_id": "XVC", + "explorer_url": [ + "https://explorer.qtum.org/" + ], + "type": "QRC-20", + "active": false, + "currently_enabled": false }, "XVS": { "coin": "XVS", @@ -6334,21 +6961,23 @@ "name": "yearn.finance", "coinpaprika_id": "yfi-yearnfinance", "coingecko_id": "yearn-finance", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "nomics_id": "YFI", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "YFI-BEP20": { "coin": "YFI-BEP20", "name": "yearn.finance", "coinpaprika_id": "yfi-yearnfinance", "coingecko_id": "yearn-finance", + "nomics_id": "YFI", "nodes": [ "http://bsc1.cipig.net:8655", "http://bsc2.cipig.net:8655", @@ -6366,33 +6995,51 @@ "name": "yearn.finance", "coinpaprika_id": "yfi-yearnfinance", "coingecko_id": "yearn-finance", + "nomics_id": "YFI", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", "http://eth3.cipig.net:8555" ], "explorer_url": [ - "https://etherscan.io/" + "https://etherscan.io/" + ], + "type": "ERC-20", + "active": false, + "currently_enabled": false + }, + "YFI-FTM20": { + "coin": "YFI-FTM20", + "name": "yearn.finance", + "coinpaprika_id": "yfi-yearnfinance", + "coingecko_id": "yearn-finance", + "nomics_id": "YFI", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false + }, + "YFI-KRC20": { + "coin": "YFI-KRC20", + "name": "yearn.finance", + "coinpaprika_id": "yfi-yearnfinance", + "coingecko_id": "yearn-finance", + "nomics_id": "YFI", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" ], - "type": "ERC-20", + "type": "KRC-20", "active": false, "currently_enabled": false }, - "YFI-FTM20": { - "coin": "YFI-FTM20", - "name": "yearn.finance", - "coinpaprika_id": "yfi-yearnfinance", - "coingecko_id": "yearn-finance", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false - }, "YFII-BEP20": { "coin": "YFII-BEP20", "name": "DFI.Money", @@ -6551,19 +7198,19 @@ "currently_enabled": false }, "ZRX-AVX20": { - "coin": "ZRX-AVX20", - "name": "0x", - "coinpaprika_id": "zrx-0x", - "coingecko_id": "0x", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "ZRX-AVX20", + "name": "0x", + "coinpaprika_id": "zrx-0x", + "coingecko_id": "0x", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "ZRX-ERC20": { "coin": "ZRX-ERC20", @@ -6668,6 +7315,7 @@ "name": "Ink", "coingecko_id": "ink", "coinpaprika_id": "ink-ink", + "nomics_id": "INK", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6678,8 +7326,9 @@ "SPC": { "coin": "SPC", "name": "SpaceChain", - "coingecko_id": "spacechain", + "coingecko_id": "spacechain-erc-20", "coinpaprika_id": "spc-spacechain", + "nomics_id": "SPC", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6692,6 +7341,7 @@ "name": "Hyper Pay", "coingecko_id": "hyper-pay", "coinpaprika_id": "hpy-hyper-pay", + "nomics_id": "HPY", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6704,6 +7354,7 @@ "name": "HalalChain", "coingecko_id": "halalchain", "coinpaprika_id": "hlc-halalchain", + "nomics_id": "HLC", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6716,6 +7367,7 @@ "name": "Luna Stars", "coingecko_id": "meetluna", "coinpaprika_id": "lstr-luna-stars", + "nomics_id": "LSTR", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6728,6 +7380,7 @@ "name": "Qbao", "coingecko_id": "qbao", "coinpaprika_id": "qbt-qbao", + "nomics_id": "QBT", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6740,6 +7393,7 @@ "name": "OceanChain", "coingecko_id": "oceanchain", "coinpaprika_id": "oc-oceanchain", + "nomics_id": "OC", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6752,6 +7406,7 @@ "name": "Profile Utility Token", "coingecko_id": "profile-utility-token", "coinpaprika_id": "put-profile-utility-token", + "nomics_id": "PUT", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6764,6 +7419,7 @@ "name": "Energo", "coingecko_id": "energo", "coinpaprika_id": "tsl-energo", + "nomics_id": "TSL", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6774,8 +7430,10 @@ "QC": { "coin": "QC", "name": "Qcash", + "forex_id": "CNY", "coingecko_id": "qcash", "coinpaprika_id": "qc-qcash", + "nomics_id": "QC", "active": false, "currently_enabled": false, "explorer_url": [ @@ -6786,6 +7444,7 @@ "SFUSD": { "coin": "SFUSD", "name": "SmartUSD", + "forex_id": "USD", "coinpaprika_id": "test-coin", "coingecko_id": "test-coin", "electrum": [ @@ -6848,6 +7507,7 @@ "name": "Celsius", "coinpaprika_id": "cel-celsius", "coingecko_id": "celsius-degree-token", + "nomics_id": "CEL", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -6865,6 +7525,7 @@ "name": "Celsius", "coinpaprika_id": "cel-celsius", "coingecko_id": "celsius-degree-token", + "nomics_id": "CEL", "nodes": [ "https://polygon-rpc.com" ], @@ -6897,6 +7558,7 @@ "name": "SwissBorg", "coinpaprika_id": "chsb-swissborg", "coingecko_id": "swissborg", + "nomics_id": "CHSB", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -6914,6 +7576,7 @@ "name": "SwissBorg", "coinpaprika_id": "chsb-swissborg", "coingecko_id": "swissborg", + "nomics_id": "CHSB", "nodes": [ "https://polygon-rpc.com" ], @@ -6929,6 +7592,7 @@ "name": "chiliZ", "coinpaprika_id": "chz-chiliz", "coingecko_id": "chiliz", + "nomics_id": "CHZ", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -6941,11 +7605,28 @@ "active": false, "currently_enabled": false }, + "CHZ-KRC20": { + "coin": "CHZ-KRC20", + "name": "chiliZ", + "coinpaprika_id": "chz-chiliz", + "coingecko_id": "chiliz", + "nomics_id": "CHZ", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "CHZ-PLG20": { "coin": "CHZ-PLG20", "name": "chiliZ", "coinpaprika_id": "chz-chiliz", "coingecko_id": "chiliz", + "nomics_id": "CHZ", "nodes": [ "https://polygon-rpc.com" ], @@ -6961,6 +7642,7 @@ "name": "Crypto.com", "coinpaprika_id": "cro-cryptocom-chain", "coingecko_id": "crypto-com-chain", + "nomics_id": "CRO", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -6973,11 +7655,28 @@ "active": false, "currently_enabled": false }, + "CRO-KRC20": { + "coin": "CRO-KRC20", + "name": "Crypto.com", + "coinpaprika_id": "cro-cryptocom-chain", + "coingecko_id": "crypto-com-chain", + "nomics_id": "CRO", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "CRO-PLG20": { "coin": "CRO-PLG20", "name": "Crypto.com", "coinpaprika_id": "cro-cryptocom-chain", "coingecko_id": "crypto-com-chain", + "nomics_id": "CRO", "nodes": [ "https://polygon-rpc.com" ], @@ -6993,6 +7692,7 @@ "name": "Curve DAO Token", "coinpaprika_id": "crv-curve-dao-token", "coingecko_id": "curve-dao-token", + "nomics_id": "CRV", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7006,40 +7706,59 @@ "currently_enabled": false }, "CRV-AVX20": { - "coin": "CRV-AVX20", - "name": "Curve DAO Token", - "coinpaprika_id": "crv-curve-dao-token", - "coingecko_id": "curve-dao-token", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "CRV-AVX20", + "name": "Curve DAO Token", + "coinpaprika_id": "crv-curve-dao-token", + "coingecko_id": "curve-dao-token", + "nomics_id": "CRV", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "CRV-FTM20": { - "coin": "CRV-FTM20", - "name": "Curve DAO Token", - "coinpaprika_id": "crv-curve-dao-token", - "coingecko_id": "curve-dao-token", - "nodes": [ - "https://rpc.ftm.tools/" - ], - "explorer_url": [ - "https://ftmscan.com/" - ], - "type": "FTM-20", - "active": false, - "currently_enabled": false + "coin": "CRV-FTM20", + "name": "Curve DAO Token", + "coinpaprika_id": "crv-curve-dao-token", + "coingecko_id": "curve-dao-token", + "nomics_id": "CRV", + "nodes": [ + "https://rpc.ftm.tools/" + ], + "explorer_url": [ + "https://ftmscan.com/" + ], + "type": "FTM-20", + "active": false, + "currently_enabled": false + }, + "CRV-KRC20": { + "coin": "CRV-KRC20", + "name": "Curve DAO Token", + "coinpaprika_id": "crv-curve-dao-token", + "coingecko_id": "curve-dao-token", + "nomics_id": "CRV", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "CRV-PLG20": { "coin": "CRV-PLG20", "name": "Curve DAO Token", "coinpaprika_id": "crv-curve-dao-token", "coingecko_id": "curve-dao-token", + "nomics_id": "CRV", "nodes": [ "https://polygon-rpc.com" ], @@ -7123,6 +7842,7 @@ "name": "Enjin Coin", "coinpaprika_id": "enj-enjin-coin", "coingecko_id": "enjincoin", + "nomics_id": "ENJ", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7135,11 +7855,28 @@ "active": false, "currently_enabled": false }, + "ENJ-KRC20": { + "coin": "ENJ-KRC20", + "name": "Enjin Coin", + "coinpaprika_id": "enj-enjin-coin", + "coingecko_id": "enjincoin", + "nomics_id": "ENJ", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "ENJ-PLG20": { "coin": "ENJ-PLG20", "name": "Enjin Coin", "coinpaprika_id": "enj-enjin-coin", "coingecko_id": "enjincoin", + "nomics_id": "ENJ", "nodes": [ "https://polygon-rpc.com" ], @@ -7153,6 +7890,7 @@ "EURS-ERC20": { "coin": "EURS-ERC20", "name": "STASIS EURO", + "forex_id": "EUR", "coinpaprika_id": "eurs-stasis-eurs", "coingecko_id": "stasis-eurs", "nodes": [ @@ -7170,6 +7908,7 @@ "EURS-PLG20": { "coin": "EURS-PLG20", "name": "STASIS EURO", + "forex_id": "EUR", "coinpaprika_id": "eurs-stasis-eurs", "coingecko_id": "stasis-eurs", "nodes": [ @@ -7187,6 +7926,7 @@ "name": "Gnosis", "coinpaprika_id": "gno-gnosis", "coingecko_id": "gnosis", + "nomics_id": "GNO", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7204,6 +7944,7 @@ "name": "Gnosis", "coinpaprika_id": "gno-gnosis", "coingecko_id": "gnosis", + "nomics_id": "GNO", "nodes": [ "https://polygon-rpc.com" ], @@ -7219,6 +7960,7 @@ "name": "HEX", "coinpaprika_id": "hex-hex", "coingecko_id": "hex", + "nomics_id": "HEX", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7236,6 +7978,7 @@ "name": "HEX", "coinpaprika_id": "hex-hex", "coingecko_id": "hex", + "nomics_id": "HEX", "nodes": [ "https://polygon-rpc.com" ], @@ -7251,6 +7994,7 @@ "name": "Holo", "coinpaprika_id": "hot-holo", "coingecko_id": "holotoken", + "nomics_id": "HOT", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7268,6 +8012,7 @@ "name": "Holo", "coinpaprika_id": "hot-holo", "coingecko_id": "holotoken", + "nomics_id": "HOT", "nodes": [ "https://polygon-rpc.com" ], @@ -7283,6 +8028,7 @@ "coin": "HT", "coingecko_id": "huobi-token", "coinpaprika_id": "ht-huobi-token", + "nomics_id": "HT", "currently_enabled": false, "nodes": [ "https://http-mainnet.hecochain.com" @@ -7295,9 +8041,10 @@ }, "HT-ERC20": { "coin": "HT-ERC20", - "name": "HuobiToken Ethereum", + "name": "Huobi Token", "coinpaprika_id": "ht-huobi-token", "coingecko_id": "huobi-token", + "nomics_id": "HT", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7328,19 +8075,34 @@ "currently_enabled": false }, "HUSD-HCO20": { - "coin": "HUSD-HCO20", - "name": "HUSD", - "coinpaprika_id": "husd-husd", - "coingecko_id": "husd", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "HUSD-HCO20", + "name": "HUSD", + "coinpaprika_id": "husd-husd", + "coingecko_id": "husd", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false + }, + "HUSD-KRC20": { + "coin": "HUSD-KRC20", + "name": "HUSD", + "coinpaprika_id": "husd-husd", + "coingecko_id": "husd", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "HUSD-PLG20": { "coin": "HUSD-PLG20", @@ -7362,6 +8124,7 @@ "name": "LEO Token", "coinpaprika_id": "leo-leo-token", "coingecko_id": "leo-token", + "nomics_id": "LEO", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7379,6 +8142,7 @@ "name": "LEO Token", "coinpaprika_id": "leo-leo-token", "coingecko_id": "leo-token", + "nomics_id": "LEO", "nodes": [ "https://polygon-rpc.com" ], @@ -7394,6 +8158,7 @@ "name": "Loopring", "coinpaprika_id": "lrc-loopring", "coingecko_id": "loopring", + "nomics_id": "LRC", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7411,6 +8176,7 @@ "name": "Loopring", "coinpaprika_id": "lrc-loopring", "coingecko_id": "loopring", + "nomics_id": "LRC", "nodes": [ "https://polygon-rpc.com" ], @@ -7426,6 +8192,7 @@ "name": "Decentraland", "coinpaprika_id": "mana-decentraland", "coingecko_id": "decentraland", + "nomics_id": "MANA", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7438,11 +8205,28 @@ "active": false, "currently_enabled": false }, + "MANA-KRC20": { + "coin": "MANA-KRC20", + "name": "Decentraland", + "coinpaprika_id": "mana-decentraland", + "coingecko_id": "decentraland", + "nomics_id": "MANA", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false + }, "MANA-PLG20": { "coin": "MANA-PLG20", "name": "Decentraland", "coinpaprika_id": "mana-decentraland", "coingecko_id": "decentraland", + "nomics_id": "MANA", "nodes": [ "https://polygon-rpc.com" ], @@ -7509,6 +8293,7 @@ "name": "Power Ledger", "coinpaprika_id": "powr-power-ledger", "coingecko_id": "power-ledger", + "nomics_id": "POWR", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7526,6 +8311,7 @@ "name": "Power Ledger", "coinpaprika_id": "powr-power-ledger", "coingecko_id": "power-ledger", + "nomics_id": "POWR", "nodes": [ "https://polygon-rpc.com" ], @@ -7536,23 +8322,6 @@ "active": false, "currently_enabled": false }, - "QNT": { - "coin": "QNT", - "name": "Quant", - "coinpaprika_id": "qnt-quant", - "coingecko_id": "quant-network", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false - }, "REP": { "coin": "REP", "name": "Reputation", @@ -7592,6 +8361,7 @@ "name": "iExec RLC", "coinpaprika_id": "rlc-iexec-rlc", "coingecko_id": "iexec-rlc", + "nomics_id": "RLC", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7609,6 +8379,7 @@ "name": "iExec RLC", "coinpaprika_id": "rlc-iexec-rlc", "coingecko_id": "iexec-rlc", + "nomics_id": "RLC", "nodes": [ "https://polygon-rpc.com" ], @@ -7709,6 +8480,7 @@ "name": "Serum", "coinpaprika_id": "srm-serum", "coingecko_id": "serum", + "nomics_id": "SRM", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7726,6 +8498,7 @@ "name": "Serum", "coinpaprika_id": "srm-serum", "coingecko_id": "serum", + "nomics_id": "SRM", "nodes": [ "https://polygon-rpc.com" ], @@ -7810,7 +8583,7 @@ "coinpaprika_id": "ubq-ubiq", "coingecko_id": "ubiq", "nodes": [ - "https://rpc.octano.dev/" + "https://rpc.octano.dev/" ], "explorer_url": [ "https://ubiqscan.io/" @@ -7824,6 +8597,7 @@ "name": "Unibright", "coinpaprika_id": "ubt-unibright", "coingecko_id": "unibright", + "nomics_id": "UBT", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7841,6 +8615,7 @@ "name": "Unibright", "coinpaprika_id": "ubt-unibright", "coingecko_id": "unibright", + "nomics_id": "UBT", "nodes": [ "https://polygon-rpc.com" ], @@ -7856,21 +8631,23 @@ "name": "UMA", "coinpaprika_id": "uma-uma", "coingecko_id": "uma", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "nomics_id": "UMA", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "UMA-ERC20": { "coin": "UMA-ERC20", "name": "UMA", "coinpaprika_id": "uma-uma", "coingecko_id": "uma", + "nomics_id": "UMA", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -7888,6 +8665,7 @@ "name": "UMA", "coinpaprika_id": "uma-uma", "coingecko_id": "uma", + "nomics_id": "UMA", "nodes": [ "https://polygon-rpc.com" ], @@ -7899,19 +8677,19 @@ "currently_enabled": false }, "UNI-AVX20": { - "coin": "UNI-AVX20", - "name": "Uniswap", - "coinpaprika_id": "uni-uniswap", - "coingecko_id": "uniswap", - "nodes": [ - "https://api.avax.network/ext/bc/C/rpc" - ], - "explorer_url": [ - "https://snowtrace.io/" - ], - "type": "AVX-20", - "active": false, - "currently_enabled": false + "coin": "UNI-AVX20", + "name": "Uniswap", + "coinpaprika_id": "uni-uniswap", + "coingecko_id": "uniswap", + "nodes": [ + "https://api.avax.network/ext/bc/C/rpc" + ], + "explorer_url": [ + "https://snowtrace.io/" + ], + "type": "AVX-20", + "active": false, + "currently_enabled": false }, "UNI-BEP20": { "coin": "UNI-BEP20", @@ -7948,19 +8726,34 @@ "currently_enabled": false }, "UNI-HCO20": { - "coin": "UNI-HCO20", - "name": "Uniswap", - "coinpaprika_id": "uni-uniswap", - "coingecko_id": "uniswap", - "nodes": [ - "https://http-mainnet.hecochain.com" - ], - "explorer_url": [ - "https://hecoinfo.com/" - ], - "type": "HecoChain", - "active": false, - "currently_enabled": false + "coin": "UNI-HCO20", + "name": "Uniswap", + "coinpaprika_id": "uni-uniswap", + "coingecko_id": "uniswap", + "nodes": [ + "https://http-mainnet.hecochain.com" + ], + "explorer_url": [ + "https://hecoinfo.com/" + ], + "type": "HecoChain", + "active": false, + "currently_enabled": false + }, + "UNI-KRC20": { + "coin": "UNI-KRC20", + "name": "Uniswap", + "coinpaprika_id": "uni-uniswap", + "coingecko_id": "uniswap", + "nodes": [ + "https://rpc-mainnet.kcc.network" + ], + "explorer_url": [ + "https://explorer.kcc.io/en/" + ], + "type": "KRC-20", + "active": false, + "currently_enabled": false }, "UNI-PLG20": { "coin": "UNI-PLG20", @@ -8057,6 +8850,7 @@ "name": "Voyager", "coinpaprika_id": "ethos-ethos", "coingecko_id": "ethos", + "nomics_id": "VGX", "nodes": [ "http://eth1.cipig.net:8555", "http://eth2.cipig.net:8555", @@ -8074,6 +8868,7 @@ "name": "Voyager", "coinpaprika_id": "ethos-ethos", "coingecko_id": "ethos", + "nomics_id": "VGX", "nodes": [ "https://polygon-rpc.com" ], @@ -8084,23 +8879,6 @@ "active": false, "currently_enabled": false }, - "WBTC": { - "coin": "WBTC", - "name": "Wrapped BTC", - "coinpaprika_id": "wbtc-wrapped-bitcoin", - "coingecko_id": "wrapped-bitcoin", - "nodes": [ - "http://eth1.cipig.net:8555", - "http://eth2.cipig.net:8555", - "http://eth3.cipig.net:8555" - ], - "explorer_url": [ - "https://etherscan.io/" - ], - "type": "ERC-20", - "active": false, - "currently_enabled": false - }, "XOR": { "coin": "XOR", "name": "Sora Token", diff --git a/atomic_defi_design/Dex/App.qml b/atomic_defi_design/Dex/App.qml index 33ab3ad59d..897a1a3ca6 100644 --- a/atomic_defi_design/Dex/App.qml +++ b/atomic_defi_design/Dex/App.qml @@ -11,219 +11,108 @@ import "Screens" import "Constants" import "Components" import "Dashboard" - -import App 1.0 as App - +import App 1.0 import Dex.Themes 1.0 as Dex +import "Screens/Startup" as Startup DexRectangle { id: app - property string currentWalletName: "" - property int page: current_page === 5 ? deepPage : current_page - property int deepPage: 0 - property string selected_wallet_name: "" - property bool debug: debug_bar - property bool debug_log: false - property alias globalGradient: globalGradient - property var notification_modal: notifications_modal - property var notifications_list: current_page == idx_dashboard ? loader.item.notifications_list : [] - - // Preload Chart - signal pairChanged(string base, string rel) - property var chart_component - property var chart_object - - readonly property int idx_first_launch: 0 - readonly property int idx_recover_seed: 1 - readonly property int idx_new_user: 2 - readonly property int idx_login: 3 - readonly property int idx_initial_loading: 4 - readonly property int idx_dashboard: 5 - property int current_page - property bool can_open_login: false - property bool disconnected: false - - property bool segwit_on: false - - onCurrent_pageChanged: { - if (window.logged !== undefined) { - if (current_page === idx_dashboard) { - window.logged = true - } else { - window.logged = false - } - } + // This enumeration represents every possible visual state (commonly named "screen") of the application + enum ScreenType + { + Startup, // Wallets selection, login, create wallet, import wallet, etc. + Dashboard // After logged to a wallet. } - function appendLog(text) { - log_area.append(text) - } + property string currentWalletName: API.app.wallet_mgr.wallet_default_name + property bool debug: debug_bar + property var notification_modal: notifications_modal + property var notifications_list: _currentPage === App.ScreenType.Dashboard ? loader.item.notifications_list : [] + property bool segwit_on: false - function firstPage() { - if (!API.app.first_run() && selected_wallet_name !== "") { - if(app.disconnected) { - app.disconnected = false - can_open_login = false - } else { - can_open_login = true - } - - } else { - can_open_login = false - } + property var _currentPage: API.app.wallet_mgr.log_status() ? App.ScreenType.Dashboard : App.ScreenType.Startup + property var _availablePages: [ _startup, dashboard ] - return idx_first_launch - } + property alias globalGradient: globalGradient - function onDisconnect() { - app.notifications_list = [] - API.app.wallet_mgr.set_log_status(false); - app.disconnected = true - openFirstLaunch() - } + // Preload Chart + signal pairChanged(string base, string rel) - function openFirstLaunch(force = false, set_wallet_name = true) { - if (set_wallet_name) selected_wallet_name = API.app.wallet_mgr.wallet_default_name - General.initialized_orderbook_pair = false - if (API.app.wallet_mgr.log_status()) { - current_page = idx_dashboard - } else { - current_page = force ? idx_first_launch : firstPage() - } + function onDisconnect() + { + app.notifications_list = []; + API.app.wallet_mgr.set_log_status(false); + _currentPage = App.ScreenType.Startup; } - Shortcut { + Shortcut + { sequence: "F11" onActivated: window.showNormal() } - Component { + + Component + { id: no_connection NoConnection {} } - NotificationsModal { - id: notifications_modal - } - Component { - id: first_launch - - FirstLaunch { - onClickedNewUser: () => { - current_page = idx_new_user - } - onClickedRecoverSeed: () => { - current_page = idx_recover_seed - } - onClickedWallet: () => { - current_page = idx_login - } - } - } + NotificationsModal { id: notifications_modal } - Component { - id: recover_seed - - RecoverSeed { - onClickedBack: () => { - can_open_login = false - openFirstLaunch(true) - } - onPostConfirmSuccess: () => { - openFirstLaunch(false, false) - } - } - } - - Component { - id: new_user - - NewUser { - onClickedBack: () => { - can_open_login = false - openFirstLaunch(true) - } - onPostCreateSuccess: () => { - openFirstLaunch(false, false) - } - } - } - - Component { - id: login - - Login { - onClickedBack: () => { - can_open_login = false - openFirstLaunch(true) - } - onPostLoginSuccess: () => { - current_page = idx_initial_loading - } - } - } - - Component { - id: initial_loading - - InitialLoading { - onLoaded: () => { - current_page = idx_dashboard + Component + { + id: _startup + Startup.Main + { + _selectedWalletName: currentWalletName + onLogged: + { + currentWalletName = walletName; + _currentPage = App.ScreenType.Dashboard; + window.logged = true } } } - - Component { + Component + { id: dashboard Dashboard {} } - Component { - id: dialogManager - DexDialogManager { - } + Component + { + id: dialogManager + DexDialogManager { } } - - - Loader { + Loader + { id: loader anchors.fill: parent - sourceComponent: { + sourceComponent: + { if (!API.app.internet_checker.internet_reacheable) return no_connection - switch (current_page) { - case idx_dashboard: - return dashboard - case idx_first_launch: - return first_launch - case idx_initial_loading: - return initial_loading - case idx_login: - return login - case idx_new_user: - return new_user - case idx_recover_seed: - return recover_seed - default: - return undefined - } + return _availablePages[_currentPage] } } // Error Modal - ModalLoader { + ModalLoader + { id: error_log_modal sourceComponent: LogModal {} } - function showError(title, content) { + function showError(title, content) + { if (content === undefined || content === null) return error_log_modal.open() error_log_modal.item.header = title @@ -231,23 +120,24 @@ DexRectangle } // Toast - ToastManager { - id: toast - } + ToastManager { id: toast } // Update Modal - NewUpdateModal { + NewUpdateModal + { id: new_update_modal visible: false } - UpdateInvalidChecksum { + UpdateInvalidChecksum + { id: update_invalid_checksum visible: false } // Fatal Error Modal - FatalErrorModal { + FatalErrorModal + { id: fatal_error_modal visible: false } @@ -278,19 +168,26 @@ DexRectangle } } - Item { + Item + { id: debug_control + property var splitViewState + anchors.bottom: parent.bottom anchors.right: parent.right width: 110 height: 20 visible: app.debug - Menu { + + Menu + { id: contextMenu - Action { + Action + { text: "Display Normal" - onTriggered: { + onTriggered: + { treeView.parent.visible = true _statusView.visible = true flow.parent.parent.visible = true @@ -299,79 +196,80 @@ DexRectangle app.parent.parent.update() } } - Action { + Action + { text: "Show Full" - onTriggered: { + onTriggered: + { app.parent.width = app.parent.parent.width - treeView.width app.parent.height = app.parent.parent.height treeView.parent.visible = false _statusView.visible = false flow.parent.parent.visible = false - } } - Action { + Action + { text: "Show Minimum" - onTriggered: { + onTriggered: + { app.parent.width = General.minimumWidth app.parent.height = General.minimumHeight } } - Action { + Action + { text: "Show FullScreen" - onTriggered: { - window.showFullScreen() - - } - + onTriggered: { window.showFullScreen(); } } - Action { + Action + { text: "Clean Cache" - onTriggered: { - _statusView.children[0].contentItem.children[0].clear() - } + onTriggered: _statusView.children[0].contentItem.children[0].clear() } } - Rectangle { + Rectangle + { width: parent.width radius: 1 height: 20 color: Qaterial.Colors.blueGray600 } - Row { + Row + { anchors.centerIn: parent spacing: 10 anchors.bottomMargin: 5 - DefaultText { + DefaultText + { text: "%1x%2".arg(app.width).arg(app.height) color: 'white' font.pixelSize: 13 layer.enabled: true - DropShadow { - color: 'black' - } + DropShadow { color: 'black' } } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { source: Qaterial.Icons.tools iconSize: 12 anchors.verticalCenter: parent.verticalCenter } - } - DefaultMouseArea { + DefaultMouseArea + { anchors.fill: parent - onClicked: { - contextMenu.open() - } + onClicked: contextMenu.open() } } - Component { + Component + { id: alertComponent - Popup { + Popup + { id: alertPopup property color backgroundColor: Qaterial.Colors.orange200 property color foregroundColor: Qaterial.Colors.gray900 @@ -385,27 +283,27 @@ DexRectangle width: 300 height: col.height + 25 function show(data) { - if("backgroundColor" in data) { + if ("backgroundColor" in data) { alertPopup.backgroundColor = data.backgroundColor } - if("foregroundColor" in data) { + if ("foregroundColor" in data) { alertPopup.foregroundColor = data.foregroundColor } - if("title" in data) { + if ("title" in data) { alertPopup.title = data.title } - if("subTitle" in data) { + if ("subTitle" in data) { alertPopup.subTitle = data.subTitle } - if("icon" in data) { + if ("icon" in data) { alertPopup.icon = data.icon } - if("timeout" in data) { + if ("timeout" in data) { alertPopup.timeout = data.timeout } alertPopup.open() @@ -413,12 +311,15 @@ DexRectangle alertTimer.restart() } - background: Qaterial.ClipRRect { - radius:4 - DexRectangle { + background: Qaterial.ClipRRect + { + radius: 4 + DefaultRectangle + { anchors.fill: parent color: alertPopup.backgroundColor - DexRectangle { + DefaultRectangle + { id: insideRect width: parent.width height: 8 @@ -426,53 +327,61 @@ DexRectangle opacity: .5 color: Qt.lighter(alertPopup.backgroundColor) border.width: 0 - Behavior on width { - NumberAnimation { + Behavior on width + { + NumberAnimation + { duration: alertPopup.timeout } } } } } - Timer { + Timer + { id: alertTimer interval: alertPopup.timeout running: areaAlert.containsMouse ? false : true - onTriggered: { - alertPopup.close() - } + onTriggered: alertPopup.close() } - RowLayout { + RowLayout + { anchors.fill: parent - Item { + Item + { Layout.fillHeight: true width: 60 - Qaterial.Icon { + Qaterial.Icon + { icon: alertPopup.icon size: alertPopup.iconSize anchors.centerIn: parent color: alertPopup.foregroundColor } } - Item { + Item + { Layout.fillWidth: true Layout.fillHeight: true - Column { + Column + { id: col width: parent.width anchors.verticalCenter: parent.verticalCenter spacing: 6 - DexLabel { + DexLabel + { text: alertPopup.title color: alertPopup.foregroundColor - font: App.DexTypo.head6 + font: DexTypo.head6 } - DexLabel { + DexLabel + { text: alertPopup.subTitle color: alertPopup.foregroundColor - font: App.DexTypo.subtitle1 + font: DexTypo.subtitle1 wrapMode: DexLabel.Wrap width: parent.width - 10 opacity: .6 @@ -480,7 +389,8 @@ DexRectangle } } } - DexMouseArea { + DexMouseArea + { id: areaAlert hoverEnabled: true anchors.fill: parent @@ -489,7 +399,8 @@ DexRectangle } } - function notifyCopy(title, subTitle) { + function notifyCopy(title, subTitle) + { app.notify({ title: title, subTitle: subTitle, @@ -497,26 +408,30 @@ DexRectangle foregroundColor: Qaterial.Colors.gray900, icon: Qaterial.Icons.contentCopy, iconSize: 35 - }) + }); } - function notify(data) { - let c = alertComponent.createObject(window) - c.show(data) + function notify(data) + { + let c = alertComponent.createObject(window); + c.show(data); } - Settings { + Settings + { id: atomic_settings2 fileName: atomic_cfg_file } - QtObject { + QtObject + { id: _font - property real fontDensity: App.DexTypo.fontDensity - property string fontFamily: App.DexTypo.fontFamily + property real fontDensity: DexTypo.fontDensity + property string fontFamily: DexTypo.fontFamily } - Settings { + Settings + { id: ui_font_settings property alias fontDensity: _font.fontDensity property alias fontFamily: _font.fontFamily @@ -524,61 +439,63 @@ DexRectangle function loadTheme() { - atomic_settings2.sync() - let current = atomic_settings2.value("CurrentTheme") - Dex.CurrentTheme.loadFromFilesystem(current) + atomic_settings2.sync(); + let current = atomic_settings2.value("CurrentTheme"); + Dex.CurrentTheme.loadFromFilesystem(current); } - function showDialog(data) { + function showDialog(data) + { let dialog = dialogManager.createObject(window, data) - for(var i in data) { - if(i.startsWith('on')) { - eval('dialog.%1.connect(data[i])'.arg(i)) - } + for (var i in data) + { + if(i.startsWith('on')) eval('dialog.%1.connect(data[i])'.arg(i)); } dialog.open() return dialog } - function showText(data) { - return showDialog(data) - } - function getText(data) { - data['getText'] = true - return showText(data) - } + function showText(data) { return showDialog(data); } - Component.onCompleted: { - selected_wallet_name !== "" - openFirstLaunch() - loadTheme() + function getText(data) + { + data['getText'] = true; + return showText(data); } - Timer { + + Component.onCompleted: loadTheme() + + Timer + { interval: 5000 repeat: true running: false onTriggered: loadTheme() } - Gradient { + + Gradient + { id: globalGradient - GradientStop { + GradientStop + { position: .80 - color: App.DexTheme.contentColorTop + color: DexTheme.contentColorTop } - GradientStop { + GradientStop + { position: 1 color: 'transparent' } } - Shortcut { + Shortcut + { sequence: "Ctrl+R" onActivated: loadTheme() } - color: App.DexTheme.surfaceColor + color: DexTheme.surfaceColor radius: 0 border.width: 0 border.color: 'transparent' - } diff --git a/atomic_defi_design/Dex/Components/DexAppPasswordField.qml b/atomic_defi_design/Dex/Components/DexAppPasswordField.qml index ad465431a2..aac6faa126 100644 --- a/atomic_defi_design/Dex/Components/DexAppPasswordField.qml +++ b/atomic_defi_design/Dex/Components/DexAppPasswordField.qml @@ -1,15 +1,19 @@ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Window 2.15 -import Qaterial 1.0 as Qaterial -import App 1.0 +import Qaterial 1.0 as Qaterial -DexAppTextField { +import App 1.0 +import Dex.Themes 1.0 as Dex +DexAppTextField +{ id: _inputPassword property string leftIcon: Qaterial.Icons.keyVariant + property color leftIconColor: Dex.CurrentTheme.foregroundColor + property alias hideFieldButton: _hideFieldButton height: 50 width: 300 @@ -27,38 +31,44 @@ DexAppTextField { field.leftPadding: 75 field.rightPadding: 60 field.placeholderText: qsTr("Type password") - DexRectangle { + + DefaultRectangle + { x: 5 height: 40 width: 60 radius: 20 color: _inputPassword.field.focus ? _inputPassword.background.border.color : DexTheme.accentColor anchors.verticalCenter: parent.verticalCenter - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.centerIn: parent iconSize: 19 - color: DexTheme.backgroundColor + color: leftIconColor source: _inputPassword.leftIcon } - } - Qaterial.AppBarButton { + + Qaterial.AppBarButton + { + id: _hideFieldButton + opacity: .8 - icon { + icon + { source: _inputPassword.field.echoMode === TextField.Password ? Qaterial.Icons.eyeOffOutline : Qaterial.Icons.eyeOutline - color: _inputPassword.field.focus ? _inputPassword.background.border.color : DexTheme.accentColor + color: Dex.CurrentTheme.foregroundColor } - anchors { + anchors + { verticalCenter: parent.verticalCenter right: parent.right rightMargin: 10 } - onClicked: { - if (_inputPassword.field.echoMode === TextField.Password) { - _inputPassword.field.echoMode = TextField.Normal - } else { - _inputPassword.field.echoMode = TextField.Password - } + onClicked: + { + if (_inputPassword.field.echoMode === TextField.Password) _inputPassword.field.echoMode = TextField.Normal; + else _inputPassword.field.echoMode = TextField.Password; } } -} \ No newline at end of file +} diff --git a/atomic_defi_design/Dex/Components/DexAppTextField.qml b/atomic_defi_design/Dex/Components/DexAppTextField.qml index 7d522d98d4..6284129b01 100644 --- a/atomic_defi_design/Dex/Components/DexAppTextField.qml +++ b/atomic_defi_design/Dex/Components/DexAppTextField.qml @@ -97,7 +97,7 @@ Item { anchors.topMargin: 1 anchors.bottomMargin: 1 radius: _background.radius - color: DexTheme.surfaceColor + color: background.color DexTextField { id: input_field onTextChanged: { @@ -144,4 +144,4 @@ Item { } } } -} \ No newline at end of file +} diff --git a/atomic_defi_design/Dex/Components/DexKeyChecker.qml b/atomic_defi_design/Dex/Components/DexKeyChecker.qml index ad4d706cd2..437caadbc9 100644 --- a/atomic_defi_design/Dex/Components/DexKeyChecker.qml +++ b/atomic_defi_design/Dex/Components/DexKeyChecker.qml @@ -7,8 +7,8 @@ import App 1.0 ColumnLayout { id: control - property - var field + + property var field property bool hide_hint: false property bool new_password: true property bool double_validation: false @@ -107,4 +107,4 @@ ColumnLayout { color: hintColor(passwordsDoMatch()) } } -} \ 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 929972978b..a1cc503c18 100644 --- a/atomic_defi_design/Dex/Components/PasswordField.qml +++ b/atomic_defi_design/Dex/Components/PasswordField.qml @@ -97,7 +97,7 @@ ColumnLayout { } DefaultText { font.pixelSize: Style.textSizeSmall3 - text_value: hintPrefix(passwordsDoMatch()) + qsTr("Password and Confirm Password have to be same") + text_value: hintPrefix(passwordsDoMatch()) + qsTr(high_security ? "Password and Confirm Password have to be same" : "Password suffix and confirm password suffix must be the same") color: hintColor(passwordsDoMatch()) } } diff --git a/atomic_defi_design/Dex/Components/PasswordForm.qml b/atomic_defi_design/Dex/Components/PasswordForm.qml index 5230f3c6a6..18b2d3c41f 100644 --- a/atomic_defi_design/Dex/Components/PasswordForm.qml +++ b/atomic_defi_design/Dex/Components/PasswordForm.qml @@ -9,6 +9,8 @@ ColumnLayout { property alias field: input_password.field property alias confirm_field: input_confirm_password.field + property alias field_title: input_password.title + property alias confirm_field_title: input_confirm_password.title property bool confirm: true property bool new_password: true property bool high_security: true @@ -32,6 +34,7 @@ ColumnLayout { id: input_password new_password: form.new_password hide_hint: !confirm + title: qsTr("Password") match_password: input_confirm_password.field.text high_security: form.high_security } diff --git a/atomic_defi_design/Dex/Components/SetupPage.qml b/atomic_defi_design/Dex/Components/SetupPage.qml index c4e5cfd632..b97a0a03ff 100644 --- a/atomic_defi_design/Dex/Components/SetupPage.qml +++ b/atomic_defi_design/Dex/Components/SetupPage.qml @@ -1,20 +1,25 @@ import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 + import "../Constants" import App 1.0 +import Dex.Themes 1.0 as Dex -Item { +Item +{ id: _control + property alias image: image property alias image_path: image.source property alias image_scale: image.scale property alias content: inner_space.sourceComponent property alias bottom_content: bottom_content.sourceComponent property double image_margin: 5 - property string backgroundColor: DexTheme.dexBoxBackgroundColor - property string borderColor: DexTheme.rectangleBorderColor - ColumnLayout { + property color backgroundColor: Dex.CurrentTheme.floatingBackgroundColor + + ColumnLayout + { id: window_layout anchors.horizontalCenter: parent.horizontalCenter @@ -22,7 +27,8 @@ Item { transformOrigin: Item.Center spacing: image_margin - DefaultImage { + DefaultImage + { id: image Layout.maximumWidth: 300 Layout.maximumHeight: Layout.maximumWidth * paintedHeight/paintedWidth @@ -31,7 +37,8 @@ Item { antialiasing: true } - Pane { + Pane + { id: pane leftPadding: 30 @@ -40,20 +47,20 @@ Item { bottomPadding: topPadding Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - background: DexRectangle { + background: DefaultRectangle + { + radius: 20 color: _control.backgroundColor - border { - color: DexTheme.portfolioPieGradient ? 'transparent' : _control.borderColor - } - gradient: DexTheme.portfolioPieGradient ? app.globalGradient : undefined } - contentChildren: Loader { + contentChildren: Loader + { id: inner_space } } - Loader { + Loader + { id: bottom_content Layout.alignment: Qt.AlignHCenter } diff --git a/atomic_defi_design/Dex/Constants/General.qml b/atomic_defi_design/Dex/Constants/General.qml index 8c3b405754..ee01c73525 100644 --- a/atomic_defi_design/Dex/Constants/General.qml +++ b/atomic_defi_design/Dex/Constants/General.qml @@ -1222,6 +1222,15 @@ QtObject { "FIRO/UST": "BITTREX:FIROUSD", "FIRO/DAI": "BITTREX:FIROUSD", "FIRO/PAX": "BITTREX:FIROUSD", + "FLUX/BTC": "KUCOIN:FLUXBTC", + "FLUX/USDT": "KUCOIN:FLUXUSDT", + "FLUX/BUSD": "KUCOIN:FLUXUSDT", + "FLUX/USDC": "KUCOIN:FLUXUSDT", + "FLUX/TUSD": "KUCOIN:FLUXUSDT", + "FLUX/HUSD": "KUCOIN:FLUXUSDT", + "FLUX/UST": "KUCOIN:FLUXUSDT", + "FLUX/DAI": "KUCOIN:FLUXUSDT", + "FLUX/PAX": "KUCOIN:FLUXUSDT", "FTC/BTC": "BITTREX:FTCBTC", "FTC/USDT": "BITTREX:FTCUSD", "FTC/BUSD": "BITTREX:FTCUSD", @@ -1577,6 +1586,15 @@ QtObject { "MONA/DAI": "BITTREX:MONAUSD", "MONA/PAX": "BITTREX:MONAUSD", "MONA/JPYC": "BITFLYER:MONAJPY", + "MTSLA/BTC": "FTX:TSLABTC", + "MTSLA/USDT": "NASDAQ:TSLA", + "MTSLA/BUSD": "NASDAQ:TSLA", + "MTSLA/USDC": "NASDAQ:TSLA", + "MTSLA/TUSD": "NASDAQ:TSLA", + "MTSLA/HUSD": "NASDAQ:TSLA", + "MTSLA/UST": "NASDAQ:TSLA", + "MTSLA/DAI": "NASDAQ:TSLA", + "MTSLA/PAX": "NASDAQ:TSLA", "NAV/BTC": "BINANCE:NAVBTC", "NAV/USDT": "BINANCE:NAVUSD", "NAV/BUSD": "BINANCE:NAVUSD", @@ -1700,6 +1718,17 @@ QtObject { "POWR/UST": "BINANCE:POWRUSD", "POWR/DAI": "BINANCE:POWRUSD", "POWR/PAX": "BINANCE:POWRUSD", + "PPC/BTC": "BITTREX:PPCBTC", + "PPC/USDT": "BITTREX:PPCUSD", + "PPC/BUSD": "BITTREX:PPCUSD", + "PPC/USDC": "BITTREX:PPCUSD", + "PPC/TUSD": "BITTREX:PPCUSD", + "PPC/HUSD": "BITTREX:PPCUSD", + "PPC/UST": "BITTREX:PPCUSD", + "PPC/DAI": "BITTREX:PPCUSD", + "PPC/PAX": "BITTREX:PPCUSD", + "PPC/EURS": "THEROCKTRADING:PPCEUR", + "PPC/JEUR": "THEROCKTRADING:PPCEUR", "QC/USDT": "FX_IDC:CNYUSD", "QC/BUSD": "FX_IDC:CNYUSD", "QC/USDC": "FX_IDC:CNYUSD", @@ -1724,6 +1753,7 @@ QtObject { "QKC/DAI": "BINANCE:QKCUSD", "QKC/PAX": "BINANCE:QKCUSD", "QNT/BTC": "BITTREX:QNTBTC", + "QNT/ETH": "BITTREX:QNTETH", "QNT/USDT": "BITTREX:QNTUSD", "QNT/BUSD": "BITTREX:QNTUSD", "QNT/USDC": "BITTREX:QNTUSD", @@ -1732,6 +1762,7 @@ QtObject { "QNT/UST": "BITTREX:QNTUSD", "QNT/DAI": "BITTREX:QNTUSD", "QNT/PAX": "BITTREX:QNTUSD", + "QNT/BNB": "BINANCE:QNTBNB", "QTUM/BTC": "BINANCE:QTUMBTC", "QTUM/ETH": "BINANCE:QTUMETH", "QTUM/USDT": "BINANCE:QTUMUSD", @@ -1923,6 +1954,16 @@ QtObject { "SYS/UST": "BINANCE:SYSUSD", "SYS/DAI": "BINANCE:SYSUSD", "SYS/PAX": "BINANCE:SYSUSD", + "TEL/BTC": "KUCOIN:TELBTC", + "TEL/ETH": "KUCOIN:TELETH", + "TEL/USDT": "KUCOIN:TELUSDT", + "TEL/BUSD": "KUCOIN:TELUSDT", + "TEL/USDC": "KUCOIN:TELUSDT", + "TEL/TUSD": "KUCOIN:TELUSDT", + "TEL/HUSD": "KUCOIN:TELUSDT", + "TEL/UST": "KUCOIN:TELUSDT", + "TEL/DAI": "KUCOIN:TELUSDT", + "TEL/PAX": "KUCOIN:TELUSDT", "TMTG/BTC": "OKEX:TMTGBTC", "TMTG/USDT": "OKEX:TMTGUSDT", "TRAC/BTC": "KUCOIN:TRACBTC", diff --git a/atomic_defi_design/Dex/Constants/Style.qml b/atomic_defi_design/Dex/Constants/Style.qml index 3b03379a2c..79bb8c6919 100644 --- a/atomic_defi_design/Dex/Constants/Style.qml +++ b/atomic_defi_design/Dex/Constants/Style.qml @@ -254,7 +254,8 @@ QtObject { case 'Moonriver': return getCoinColor("MOVR") case 'HecoChain': return getCoinColor("HECO") case 'SmartBCH': return getCoinColor("SBCH") - case 'Ethereum Classic': return getCoinColor("ETC") + case 'Ethereum Classic': return getCoinColor("ETC") + case 'RSK Smart Bitcoin': return getCoinColor("BTC") default: return getCoinColor("BTC") } } @@ -292,6 +293,7 @@ QtObject { "BRZ": "#B5DEC3", "BSTY": "#78570D", "BTC": "#E9983C", + "RBTC": "#E9983C", "BTT": "#666666", "BTE": "#FFE201", "BTX": "#FB30A6", @@ -301,6 +303,7 @@ QtObject { "CRV": "#517AB5", "DGC": "#BC7600", "DIMI": "#0BFBE2", + "DUST": "#6A032F", "EOS": "#4D4D4D", "FET": "#202944", "FTC": "#FFFFFF", @@ -327,6 +330,7 @@ QtObject { "CADC": "#FF6666", "DGB": "#006AD2", "DOT": "#E80082", + "FLUX": "#2B61D1", "FIRO": "#BB2100", "LBC": "#00775C", "LTC": "#BFBBBB", @@ -386,8 +390,6 @@ QtObject { "PAXG": "#DABE37", "REN": "#595959", "SMTF": "#F75836", - "SMTF-OLD": "#F75836", - "SMTF-v2": "#F75836", "SUSHI": "#E25DA8", "TRYB": "#0929AA", "TUSD": "#2E3181", @@ -430,9 +432,11 @@ QtObject { "LEO": "#F79B2C", "LINK": "#356CE4", "LRC": "#32C2F8", + "LSTR": "#7E3193", "MANA": "#FF3C6C", "MATIC": "#804EE1", "MKR": "#1BAF9F", + "MTSLA": "#CC0000", "NEAR": "#595959", "NEXO": "#A3B3D6", "NVC": "#FCF96D", @@ -441,10 +445,11 @@ QtObject { "ONE": "#00BEEE", "ONT": "#2692AF", "POWR": "#05BCAA", + "PPC": "#46BC60", "QI": "#FFFFFF", "QIAIR": "#FEFEFE", "QKC": "#2175B4", - "QNT": "#46DDC8", + "QNT": "#000000", "REP": "#0E0E21", "REV": "#78034D", "RLC": "#FFE100", @@ -459,6 +464,7 @@ QtObject { "STORJ": "#2683FF", "SXP": "#FD5F3B", "SYS": "#0084C7", + "TEL": "#1BD8FF", "TKL": "#1E2835", "TRC": "#096432", "TRX": "#F30031", diff --git a/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml b/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml index f501aea027..94a95e5b6a 100644 --- a/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml +++ b/atomic_defi_design/Dex/Dashboard/NotificationsModal.qml @@ -7,6 +7,7 @@ import Qaterial 1.0 as Qaterial import "../Constants" import App 1.0 import "../Components" +import "../Screens" DexPopup { id: root @@ -62,10 +63,10 @@ DexPopup { break case "open_wallet_page": api_wallet_page.ticker = notification.params.ticker - dashboard.switchPage(idx_dashboard_wallet) + dashboard.switchPage(Dashboard.PageType.Wallet) break case "open_swaps_page": - dashboard.switchPage(idx_dashboard_exchange) + dashboard.switchPage(Dashboard.PageType.DEX) dashboard.loader.onLoadComplete = () => { dashboard.current_component.current_page = dashboard.isSwapDone(notification.params.new_swap_status) ? idx_exchange_history : idx_exchange_orders @@ -196,7 +197,7 @@ DexPopup { qsTr("Your wallet balance changed"), human_date, "open_wallet_page") - } else { app.segwit_on = false } + } else { app.segwit_on = false } } readonly property string check_internet_connection_text: qsTr("Please check your internet connection (e.g. VPN service or firewall might block it).") diff --git a/atomic_defi_design/Dex/Portfolio/AssetsList.qml b/atomic_defi_design/Dex/Portfolio/AssetsList.qml index 7cf4e3ff15..8270441d03 100644 --- a/atomic_defi_design/Dex/Portfolio/AssetsList.qml +++ b/atomic_defi_design/Dex/Portfolio/AssetsList.qml @@ -4,6 +4,7 @@ import QtQuick.Layouts 1.12 import "../Constants" as Dex import "../Components" as Dex import "../String.js" as DexString +import "../Screens" import App 1.0 as Dex import Dex.Themes 1.0 as Dex @@ -94,7 +95,7 @@ Dex.DefaultListView else { api_wallet_page.ticker = ticker - dashboard.switchPage(idx_dashboard_wallet) + dashboard.switchPage(Dashboard.PageType.Wallet) } } onPressAndHold: diff --git a/atomic_defi_design/Dex/Screens/Dashboard.qml b/atomic_defi_design/Dex/Screens/Dashboard.qml index 8525b55fb9..6aba5a45c6 100644 --- a/atomic_defi_design/Dex/Screens/Dashboard.qml +++ b/atomic_defi_design/Dex/Screens/Dashboard.qml @@ -16,90 +16,77 @@ import "../Support" import "../Sidebar" as Sidebar import "../Fiat" import "../Settings" as SettingsPage +import "../Screens" //import Dex.Sidebar 1.0 as Dex Item { id: dashboard + enum PageType + { + Portfolio, + Wallet, + DEX, // DEX == Trading page + Addressbook, + Support + } + + property var currentPage: Dashboard.PageType.Portfolio + property var availablePages: [portfolio, wallet, exchange, addressbook, support] + property alias webEngineView: webEngineView - readonly property int idx_dashboard_portfolio: 0 - readonly property int idx_dashboard_wallet: 1 - readonly property int idx_dashboard_exchange: 2 - readonly property int idx_dashboard_addressbook: 3 - readonly property int idx_dashboard_news: 4 - readonly property int idx_dashboard_dapps: 5 - readonly property int idx_dashboard_settings: 6 - readonly property int idx_dashboard_support: 7 - readonly property int idx_dashboard_light_ui: 8 - readonly property int idx_dashboard_privacy_mode: 9 - readonly property int idx_dashboard_fiat_ramp: 10 - - //readonly property int idx_exchange_trade: 3 readonly property int idx_exchange_trade: 0 readonly property int idx_exchange_orders: 1 readonly property int idx_exchange_history: 2 property var current_ticker - Layout.fillWidth: true + property var notifications_list: ([]) - function openLogsFolder() { - Qt.openUrlExternally(General.os_file_prefix + API.app.settings_pg.get_log_folder()) - } + readonly property var portfolio_mdl: API.app.portfolio_pg.portfolio_mdl + property var portfolio_coins: portfolio_mdl.portfolio_proxy_mdl - readonly property - var api_wallet_page: API.app.wallet_pg - readonly property - var current_ticker_infos: api_wallet_page.ticker_infos - readonly property bool can_change_ticker: !api_wallet_page.tx_fetching_busy + readonly property var api_wallet_page: API.app.wallet_pg + readonly property var current_ticker_infos: api_wallet_page.ticker_infos + readonly property bool can_change_ticker: !api_wallet_page.tx_fetching_busy + readonly property bool is_dex_banned: !API.app.ip_checker.ip_authorized readonly property alias loader: loader readonly property alias current_component: loader.item - property int current_page: idx_dashboard_portfolio - - onCurrent_pageChanged: { - app.deepPage = current_page * 10 - } - readonly property bool is_dex_banned: !API.app.ip_checker.ip_authorized - - function inCurrentPage() { - return app.current_page === idx_dashboard + function openLogsFolder() + { + Qt.openUrlExternally(General.os_file_prefix + API.app.settings_pg.get_log_folder()) } + function inCurrentPage() { return app.current_page === idx_dashboard } + function switchPage(page) { if (loader.status === Loader.Ready) - current_page = page + currentPage = page else console.warn("Tried to switch to page %1 when loader is not ready yet.".arg(page)) } - property - var notifications_list: ([]) - - readonly property - var portfolio_mdl: API.app.portfolio_pg.portfolio_mdl - property - var portfolio_coins: portfolio_mdl.portfolio_proxy_mdl - - function resetCoinFilter() { - portfolio_coins.setFilterFixedString("") - } - + function resetCoinFilter() { portfolio_coins.setFilterFixedString("") } - function openTradeViewWithTicker() { + function openTradeViewWithTicker() + { dashboard.loader.onLoadComplete = () => { dashboard.current_component.openTradeView(api_wallet_page.ticker) } } + + Layout.fillWidth: true + + onCurrentPageChanged: sidebar.currentLineType = currentPage + // Al settings depends this modal - SettingsPage.SettingModal { - id: setting_modal - } + SettingsPage.SettingModal { id: setting_modal } // Force restart modal: opened when the user has more coins enabled than specified in its configuration ForceRestartModal { @@ -123,132 +110,88 @@ Item { border.color: 'transparent' // Modals - ModalLoader { + ModalLoader + { id: enable_coin_modal - sourceComponent: EnableCoinModal { + sourceComponent: EnableCoinModal + { anchors.centerIn: Overlay.overlay } } - Component { + Component + { id: portfolio Portfolio {} } - Component { + Component + { id: wallet Wallet {} } - Component { + Component + { id: exchange Exchange {} } - Component { + Component + { id: addressbook AddressBook {} } - Component { - id: news - - Item { - Layout.fillWidth: true - Layout.fillHeight: true - DefaultText { - anchors.centerIn: parent - text_value: qsTr("Content for this section will be added later. Stay tuned!") - } - } - } - - Component { - id: dapps - - Item { - Layout.fillWidth: true - Layout.fillHeight: true - DefaultText { - anchors.centerIn: parent - text_value: qsTr("Content for this section will be added later. Stay tuned!") - } - } - } - - Component { + Component + { id: settings - Settings { + Settings + { Layout.alignment: Qt.AlignCenter } } - Component { + Component + { id: support - Support { + Support + { Layout.alignment: Qt.AlignCenter } } - Component { - id: fiat_ramp - - FiatRamp { - - } - } - WebEngineView { id: webEngineView backgroundColor: "transparent" } - DefaultLoader { + DefaultLoader + { id: loader anchors.fill: parent transformOrigin: Item.Center asynchronous: true - sourceComponent: { - switch (current_page) { - case idx_dashboard_portfolio: - return portfolio - case idx_dashboard_wallet: - return wallet - case idx_dashboard_exchange: - return exchange - case idx_dashboard_addressbook: - return addressbook - case idx_dashboard_news: - return news - case idx_dashboard_dapps: - return dapps - case idx_dashboard_settings: - return settings - case idx_dashboard_support: - return support - case idx_dashboard_fiat_ramp: - return fiat_ramp - default: - return undefined - } - } + sourceComponent: availablePages[currentPage] } - Item { + Item + { visible: !loader.visible anchors.fill: parent - DexBusyIndicator { + DexBusyIndicator + { anchors.centerIn: parent running: !loader.visible } @@ -265,53 +208,37 @@ Item { onLineSelected: { isExpanded = true; - switch (lineType) - { - case Sidebar.Main.LineType.Portfolio: - switchPage(idx_dashboard_portfolio); - break; - case Sidebar.Main.LineType.Wallet: - switchPage(idx_dashboard_wallet); - break; - case Sidebar.Main.LineType.DEX: - isExpanded = false; - switchPage(idx_dashboard_exchange); - break; - case Sidebar.Main.LineType.Addressbook: - switchPage(idx_dashboard_addressbook); - break; - case Sidebar.Main.LineType.Portfolio: - switchPage(idx_dashboard_portfolio); - break; - case Sidebar.Main.LineType.Support: - switchPage(idx_dashboard_support); - break; - } + currentPage = lineType; } onSettingsClicked: setting_modal.open() } - ModalLoader { + ModalLoader + { id: add_custom_coin_modal sourceComponent: AddCustomCoinModal {} } // CEX Rates info - ModalLoader { + ModalLoader + { id: cex_rates_modal sourceComponent: CexInfoModal {} } - ModalLoader { + ModalLoader + { id: min_trade_modal sourceComponent: MinTradeModal {} } - ModalLoader { + ModalLoader + { id: restart_modal sourceComponent: RestartModal {} } - function getStatusColor(status) { + function getStatusColor(status) + { switch (status) { case "matching": return Style.colorYellow @@ -327,7 +254,8 @@ Item { } } - function isSwapDone(status) { + function isSwapDone(status) + { switch (status) { case "matching": case "matched": @@ -341,7 +269,8 @@ Item { } } - function getStatusStep(status) { + function getStatusStep(status) + { switch (status) { case "matching": return "0/3" @@ -360,7 +289,8 @@ Item { } } - function getStatusText(status, short_text=false) { + function getStatusText(status, short_text=false) + { switch(status) { case "matching": return short_text ? qsTr("Matching") : qsTr("Order Matching") @@ -379,12 +309,15 @@ Item { } } - function getStatusTextWithPrefix(status, short_text = false) { + function getStatusTextWithPrefix(status, short_text = false) + { return getStatusStep(status) + " " + getStatusText(status, short_text) } - function getEventText(event_name) { - switch (event_name) { + function getEventText(event_name) + { + switch (event_name) + { case "Started": return qsTr("Started") case "Negotiated": diff --git a/atomic_defi_design/Dex/Screens/Login.qml b/atomic_defi_design/Dex/Screens/Login.qml deleted file mode 100644 index 820997597e..0000000000 --- a/atomic_defi_design/Dex/Screens/Login.qml +++ /dev/null @@ -1,230 +0,0 @@ -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 - -import Qaterial 1.0 as Qaterial - -import "../Components" -import "../Constants" -import App 1.0 - -SetupPage { - id: login - - // Override - signal clickedBack() - signal postLoginSuccess() - - // Local - function reset() { - text_error = "" - } - - function onClickedLogin(password) { - if (API.app.wallet_mgr.login(password, selected_wallet_name)) { - console.log("Success: Login") - app.currentWalletName = selected_wallet_name - postLoginSuccess() - return true - } else { - console.log("Failed: Login") - text_error = qsTr("Incorrect Password") - return false - } - } - - property string text_error - - image_scale: 0.7 - image_path: General.image_path + "setup-logs.svg" - - content: ColumnLayout { - spacing: Style.rowSpacing - - function reset() { - login.reset() - input_password.reset() - } - - function trySubmit() { - if (!submit_button.enabled) return - - if (onClickedLogin(input_password.field.text)) - reset() - } - - width: 400 - - RowLayout { - Layout.fillWidth: true - spacing: 10 - Qaterial.AppBarButton { - icon.source: Qaterial.Icons.arrowLeft - Layout.alignment: Qt.AlignVCenter - onClicked: { - reset() - onClickedBack() - } - } - - DexLabel { - font: DexTypo.head6 - text_value: qsTr("Login") - Layout.alignment: Qt.AlignVCenter - } - - } - - Item { - Layout.fillWidth: true - Layout.preferredHeight: 5 - } - - DexAppTextField { - Layout.fillWidth: true - Layout.preferredHeight: 50 - background.border.width: 1 - background.radius: 25 - enabled: false - opacity: enabled ? 1 : .5 - background.border.color: field.focus ? DexTheme.accentColor : Style.colorBorder - field.font: DexTypo.head6 - field.horizontalAlignment: Qt.AlignLeft - field.leftPadding: 75 - field.text: selected_wallet_name - - DexRectangle { - x: 5 - height: 40 - width: 60 - radius: 20 - color: DexTheme.accentColor - anchors.verticalCenter: parent.verticalCenter - Qaterial.ColorIcon { - anchors.centerIn: parent - iconSize: 19 - source: Qaterial.Icons.account - color: DexTheme.surfaceColor - } - - } - } - - Item { - Layout.fillWidth: true - Layout.preferredHeight: 5 - opacity: .8 - - } - - DexAppTextField { - id: _inputPassword - Layout.fillWidth: true - Layout.preferredHeight: 50 - background.border.width: 1 - background.radius: 25 - background.border.color: field.focus ? DexTheme.accentColor : Style.colorBorder - field.echoMode: TextField.Password - field.font: field.echoMode === TextField.Password ? field.text === "" ? DexTypo.body1 : DexTypo.head5 : DexTypo.head6 - field.horizontalAlignment: Qt.AlignLeft - field.leftPadding: 75 - field.placeholderText: qsTr("Type password") - field.onAccepted: trySubmit() - DexRectangle { - x: 5 - height: 40 - width: 60 - radius: 20 - color: DexTheme.accentColor - anchors.verticalCenter: parent.verticalCenter - Qaterial.ColorIcon { - anchors.centerIn: parent - iconSize: 19 - source: Qaterial.Icons.keyVariant - color: DexTheme.surfaceColor - } - - } - Qaterial.AppBarButton { - opacity: .8 - icon { - source: _inputPassword.field.echoMode === TextField.Password ? Qaterial.Icons.eyeOutline : Qaterial.Icons.eyeOffOutline - color: DexTheme.accentColor - } - anchors { - verticalCenter: parent.verticalCenter - right: parent.right - rightMargin: 10 - } - onClicked: { - if (_inputPassword.field.echoMode === TextField.Password) { - _inputPassword.field.echoMode = TextField.Normal - } else { - _inputPassword.field.echoMode = TextField.Password - } - } - } - } - PasswordForm { - id: input_password - confirm: false - visible: false - field.text: _inputPassword.field.text - field.onAccepted: trySubmit() - } - Item { - Layout.fillWidth: true - Layout.preferredHeight: 10 - } - - RowLayout { - Layout.preferredWidth: 400 - spacing: Style.buttonSpacing - - Item { - Layout.fillWidth: true - Layout.preferredHeight: 10 - } - - DexButton { - id: _back - text: qsTr("Back") - visible: false - - } - - DexAppButton { - id: submit_button - text: qsTr("Login") - enabled: input_password.isValid() - onClicked: trySubmit() - radius: 20 - Layout.preferredWidth: _nextRow.implicitWidth + 40 - Layout.preferredHeight: 45 - label.color: 'transparent' - Row { - id: _nextRow - anchors.centerIn: parent - spacing: 10 - opacity: submit_button.enabled ? 1 : .6 - DexLabel { - text: qsTr("Connect") - font: DexTypo.button - anchors.verticalCenter: parent.verticalCenter - } - Qaterial.ColorIcon { - anchors.verticalCenter: parent.verticalCenter - source: Qaterial.Icons.arrowRight - iconSize: 14 - } - } - } - } - - DefaultText { - text_value: text_error - color: Style.colorRed - visible: text !== '' - } - } -} diff --git a/atomic_defi_design/Dex/Screens/RecoverSeed.qml b/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml similarity index 64% rename from atomic_defi_design/Dex/Screens/RecoverSeed.qml rename to atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml index 6c178353af..28817400ec 100644 --- a/atomic_defi_design/Dex/Screens/RecoverSeed.qml +++ b/atomic_defi_design/Dex/Screens/Startup/ImportWallet.qml @@ -4,131 +4,140 @@ import QtQuick.Controls 2.15 import Qaterial 1.0 as Qaterial -import "../Components" -import "../Constants" +import "../../Components" +import "../../Constants" import App 1.0 +import Dex.Themes 1.0 as Dex -SetupPage { +SetupPage +{ id: recover_seed - // Override - signal clickedBack() - signal postConfirmSuccess() - property int currentStep: 0 - - // Local - function reset() { - text_error = "" - } - function onClickedConfirm(password, seed, wallet_name) { - if (API.app.wallet_mgr.create(password, seed, wallet_name)) { - selected_wallet_name = wallet_name - postConfirmSuccess() - return true - } else { - text_error = qsTr("Failed to Import the wallet") - return false + property int currentStep: 0 + property string text_error + + signal backClicked() + signal postConfirmSuccess(string walletName) + + function reset() { text_error = ""; } + + function onClickedConfirm(password, seed, wallet_name) + { + if (API.app.wallet_mgr.create(password, seed, wallet_name)) + { + postConfirmSuccess(wallet_name); + return true; + } + else + { + text_error = qsTr("Failed to Import the wallet"); + return false; } } - property string text_error - image_scale: 0.7 - // Removed the image for now, no space - // image_path: General.image_path + "setup-wallet-restore-2.svg" - - content: ColumnLayout { + content: ColumnLayout + { spacing: Style.rowSpacing - RowLayout { + RowLayout + { Layout.fillWidth: true spacing: 10 - Qaterial.AppBarButton { + Qaterial.AppBarButton + { icon.source: Qaterial.Icons.arrowLeft - foregroundColor: DexTheme.foregroundColor + foregroundColor: Dex.CurrentTheme.foregroundColor Layout.alignment: Qt.AlignVCenter - onClicked: { - if (currentStep === 0) { - reset() - clickedBack() - } else { - if (text_error !== "") { - text_error = "" - } - currentStep-- + onClicked: + { + if (currentStep === 0) + { + reset(); + backClicked(); + } + else + { + if (text_error !== "") text_error = ""; + currentStep--; } } } - DexLabel { + DefaultText + { font: DexTypo.head6 Layout.fillWidth: true rightPadding: 20 wrapMode: Label.Wrap - text_value: if (currentStep === 0) { - qsTr("Import wallet - Setup") - } else if (currentStep === 1) { - qsTr("Import wallet - Choose password") - } + text_value: if (currentStep === 0) qsTr("Import wallet - Setup") + else if (currentStep === 1) qsTr("Import wallet - Choose password") Layout.alignment: Qt.AlignVCenter } } - function reset() { - recover_seed.reset() - input_wallet_name.reset() - _seedField.field.text = "" - _inputPassword.field.text = "" + function reset() + { + recover_seed.reset(); + input_wallet_name.reset(); + _seedField.field.text = ""; + _inputPassword.field.text = ""; } - function trySubmit() { - if (!submit_button.enabled) return + function trySubmit() + { + if (!submit_button.enabled) return; - text_error = General.checkIfWalletExists(input_wallet_name.field.text) - if (text_error !== "") return + text_error = General.checkIfWalletExists(input_wallet_name.field.text); + if (text_error !== "") return; - eula_modal.open() + eula_modal.open(); } - function tryPassLevel1() { - if (input_wallet_name.field.text == "") { - input_wallet_name.error = true - } + function tryPassLevel1() + { + if (input_wallet_name.field.text == "") input_wallet_name.error = true; - if (_seedField.isValid() && input_wallet_name.field.text !== "") { + if (_seedField.isValid() && input_wallet_name.field.text !== "") + { let checkWalletName = General.checkIfWalletExists(input_wallet_name.field.text) - if( checkWalletName === "" ) { - _seedField.error = false - _inputPassword.field.text = "" - _inputPasswordConfirm.field.text = "" - currentStep++ + if (checkWalletName === "" ) + { + _seedField.error = false; + _inputPassword.field.text = ""; + _inputPasswordConfirm.field.text = ""; + currentStep++; } - else { - input_wallet_name.error = true - text_error = checkWalletName + else + { + input_wallet_name.error = true; + text_error = checkWalletName; } - } else { - _seedField.error = true } + else _seedField.error = true; } - ModalLoader { + ModalLoader + { id: eula_modal - sourceComponent: EulaModal { + sourceComponent: EulaModal + { onConfirm: () => { if (onClickedConfirm(_inputPassword.field.text, _seedField.field.text, input_wallet_name.field.text)) - reset() + reset(); } } } - ColumnLayout { + ColumnLayout + { visible: currentStep === 0 Layout.preferredWidth: 450 spacing: Style.rowSpacing - DexAppTextField { + DexAppTextField + { id: input_wallet_name Layout.fillWidth: true Layout.preferredHeight: 50 @@ -141,64 +150,70 @@ SetupPage { field.placeholderText: qsTr("Wallet Name") field.onAccepted: tryPassLevel1() field.onTextChanged: text_error = "" - DexRectangle { + DefaultRectangle + { x: 5 height: 40 width: 60 radius: 20 - color: DexTheme.accentColor + color: Dex.CurrentTheme.accentColor anchors.verticalCenter: parent.verticalCenter - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.centerIn: parent iconSize: 19 source: Qaterial.Icons.wallet - color: DexTheme.surfaceColor + color: Dex.CurrentTheme.foregroundColor } - } } - DexLabel { + DexLabel + { text: qsTr("Enter seed") font: DexTypo.body1 } - DexAppPasswordField { + DexAppPasswordField + { id: _seedField Layout.fillWidth: true Layout.preferredHeight: 50 leftIcon: Qaterial.Icons.fileKey field.placeholderText: qsTr('Enter seed') field.onAccepted: tryPassLevel1() - field.onTextChanged: { + field.onTextChanged: + { field.text = field.text.replace("\n", "") field.cursorPosition = field.length } - function isValid() { - if (!allow_custom_seed.checked) { - _seedField.field.text = _seedField.field.text.trim().toLowerCase() - } - _seedField.field.text = _seedField.field.text.replace(/[^\w\s]/gi, '') - return allow_custom_seed.checked || API.app.wallet_mgr.mnemonic_validate(_seedField.field.text) + function isValid() + { + if (!allow_custom_seed.checked) _seedField.field.text = _seedField.field.text.trim().toLowerCase(); + _seedField.field.text = _seedField.field.text.replace(/[^\w\s]/gi, ''); + return allow_custom_seed.checked || API.app.wallet_mgr.mnemonic_validate(_seedField.field.text); } } - DexLabel { + DefaultText { id: _seedError visible: _seedField.error text: qsTr("BIP39 seed validation failed, try again or select 'Allow custom seed'") - color: DexTheme.redColor + color: Dex.CurrentTheme.noColor Layout.preferredWidth: parent.width - 40 wrapMode: DexLabel.Wrap font: DexTypo.body2 } - DexCheckBox { + DefaultCheckBox + { id: allow_custom_seed text: qsTr("Allow custom seed") - onToggled: { - if (allow_custom_seed.checked) { + onToggled: + { + if (allow_custom_seed.checked) + { let dialog = app.getText({ title: qsTr("Allow custom seed"), text: qsTr("Custom seed phrases might be less secure and easier to crack than a generated BIP39 compliant seed phrase or private key (WIF).

To confirm you understand the risk and know what you are doing, type 'I understand' in the box below."), @@ -209,33 +224,37 @@ SetupPage { }, yesButtonText: qsTr("Enable"), onAccepted: function() { - allow_custom_seed.checked = true + allow_custom_seed.checked = true; dialog.close() }, onRejected: function() { - allow_custom_seed.checked = false + allow_custom_seed.checked = false; } }) - } else { - allow_custom_seed.checked = false } + else allow_custom_seed.checked = false; } } - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - RowLayout { + RowLayout + { Layout.preferredWidth: 400 spacing: Style.buttonSpacing - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - DexAppButton { + + DexAppButton + { id: nextButton enabled: input_wallet_name.field.text !== "" && _seedField.field.text !== "" onClicked: tryPassLevel1() @@ -244,19 +263,21 @@ SetupPage { Layout.preferredWidth: _nextRow.implicitWidth + 40 Layout.preferredHeight: 45 label.color: 'transparent' - Row { + Row + { id: _nextRow anchors.centerIn: parent spacing: 10 - DexLabel { + DexLabel + { text: qsTr("Next") font: DexTypo.button - color: nextButton.foregroundColor anchors.verticalCenter: parent.verticalCenter } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter - color: nextButton.foregroundColor + color: Dex.CurrentTheme.foregroundColor source: Qaterial.Icons.arrowRight iconSize: 14 } @@ -264,27 +285,31 @@ SetupPage { } } - DefaultText { + DefaultText + { text_value: text_error - color: Style.colorRed + color: Dex.CurrentTheme.noColor visible: text !== '' } } - ColumnLayout { + ColumnLayout + { visible: currentStep === 1 Layout.preferredWidth: 460 Layout.rightMargin: 5 spacing: Style.rowSpacing - DexAppPasswordField { + DexAppPasswordField + { id: _inputPassword Layout.fillWidth: true Layout.preferredHeight: 50 field.onAccepted: trySubmit() } - DexKeyChecker { + DexKeyChecker + { id: _keyChecker double_validation: true field: _inputPassword.field @@ -292,60 +317,63 @@ SetupPage { Layout.leftMargin: 20 } - DexAppPasswordField { + DexAppPasswordField + { id: _inputPasswordConfirm Layout.fillWidth: true Layout.preferredHeight: 50 field.onAccepted: trySubmit() } - Item { - Layout.fillWidth: true - } + Item { Layout.fillWidth: true } - RowLayout { + RowLayout + { Layout.preferredWidth: 400 - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - DexAppButton { + DexAppButton + { id: submit_button enabled: _keyChecker.isValid() opacity: enabled ? 1 : .4 - onClicked: { - trySubmit() - } + onClicked: trySubmit() radius: 20 Layout.preferredWidth: _nextRow2.implicitWidth + 40 Layout.preferredHeight: 45 label.color: 'transparent' - Row { + Row + { id: _nextRow2 anchors.centerIn: parent spacing: 10 - DexLabel { + DefaultText + { text: qsTr("Continue") font: DexTypo.button - color: submit_button.foregroundColor anchors.verticalCenter: parent.verticalCenter } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter source: Qaterial.Icons.arrowRight - color: submit_button.foregroundColor + color: Dex.CurrentTheme.foregroundColor iconSize: 14 } } } } - DefaultText { + DefaultText + { text_value: text_error - color: Style.colorRed + color: Dex.CurrentTheme.noColor visible: text !== '' } } } -} \ No newline at end of file +} diff --git a/atomic_defi_design/Dex/Screens/InitialLoading.qml b/atomic_defi_design/Dex/Screens/Startup/Logging.qml similarity index 69% rename from atomic_defi_design/Dex/Screens/InitialLoading.qml rename to atomic_defi_design/Dex/Screens/Startup/Logging.qml index 0fc6c4106c..81c63ff6d0 100644 --- a/atomic_defi_design/Dex/Screens/InitialLoading.qml +++ b/atomic_defi_design/Dex/Screens/Startup/Logging.qml @@ -2,33 +2,26 @@ import QtQuick 2.15 import QtQuick.Layouts 1.15 import QtQuick.Controls 2.15 -import "../Components" -import "../Constants" +import "../../Components" import App 1.0 -import "../Wallet" -import "../Exchange" -import "../Sidebar" import Dex.Themes 1.0 as Dex -SetupPage { - // Override - property - var onLoaded: () => {} +SetupPage +{ + signal logged() readonly property string current_status: API.app.wallet_mgr.initial_loading_status - onCurrent_statusChanged: { - if (current_status === "enabling_coins") - onLoaded() - } + onCurrent_statusChanged: if (current_status === "enabling_coins") logged() image_path: Dex.CurrentTheme.bigLogoPath image_margin: 30 backgroundColor: 'transparent' - borderColor: 'transparent' - content: ColumnLayout { - DefaultBusyIndicator { + content: ColumnLayout + { + DefaultBusyIndicator + { Layout.preferredHeight: 100 Layout.preferredWidth: 100 Layout.alignment: Qt.AlignHCenter @@ -37,12 +30,14 @@ SetupPage { scale: 0.8 } - DefaultText { + DefaultText + { text_value: qsTr("Loading, please wait") Layout.bottomMargin: 10 } - DefaultText { + DefaultText + { Layout.alignment: Qt.AlignHCenter text_value: (current_status === "initializing_mm2" ? qsTr("Initializing MM2") : current_status === "enabling_coins" ? qsTr("Enabling assets") : qsTr("Getting ready")) + "..." diff --git a/atomic_defi_design/Dex/Screens/Startup/Login.qml b/atomic_defi_design/Dex/Screens/Startup/Login.qml new file mode 100644 index 0000000000..0e4a6c7846 --- /dev/null +++ b/atomic_defi_design/Dex/Screens/Startup/Login.qml @@ -0,0 +1,121 @@ +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 + +import Qaterial 1.0 as Qaterial + +import "../../Components" +import "../../Constants" +import App 1.0 +import Dex.Themes 1.0 as Dex + +SetupPage +{ + id: login + + property string text_error + property string walletName + + signal backClicked() + signal loginSucceeded() + + function reset() { text_error = "" } + + function onClickedLogin(password) + { + if (API.app.wallet_mgr.login(password, walletName)) + { + console.info("Success: Login"); + app.currentWalletName = walletName; + loginSucceeded(); + return true; + } + else + { + console.info("Failed: Login"); + text_error = qsTr("Incorrect Password"); + return false; + } + } + + + image_scale: 0.7 + backgroundColor: 'transparent' + image_path: Dex.CurrentTheme.bigLogoPath + + content: ColumnLayout + { + id: content + + spacing: 20 + + DexLabel + { + Layout.alignment: Qt.AlignHCenter + text: "%1 wallet".arg(walletName) + color: Dex.CurrentTheme.foregroundColor + font: DexTypo.body1 + topPadding: 10 + } + + DexAppPasswordField + { + id: _inputPassword + Layout.alignment: Qt.AlignHCenter + height: 50 + width: 300 + background.color: Dex.CurrentTheme.floatingBackgroundColor + field.onAccepted: + { + if (_keyChecker.isValid()) + { + onClickedLogin(field.text) + } + else + { + _keyChecker.visible = true + } + } + + leftIconColor: Dex.CurrentTheme.foregroundColor + hideFieldButton.icon.color: Dex.CurrentTheme.foregroundColor + } + + DexKeyChecker + { + id: _passwordChecker + visible: false + field: _inputPassword.field + } + + DefaultButton + { + Layout.alignment: Qt.AlignHCenter + radius: width + width: 150 + text: qsTr("connect") + enabled: _passwordChecker.isValid() + onClicked: _inputPassword.field.accepted() + } + + DexKeyChecker + { + Layout.alignment: Qt.AlignHCenter + id: _keyChecker + field: _inputPassword.field + visible: false + } + + Qaterial.AppBarButton + { + Layout.alignment: Qt.AlignHCenter + width: 80 + icon.width: 40 + icon.height: 40 + icon.source: Qaterial.Icons.close + icon.color: Dex.CurrentTheme.foregroundColor + backgroundColor: 'transparent' + onClicked: backClicked() + } + } +} diff --git a/atomic_defi_design/Dex/Screens/Startup/Main.qml b/atomic_defi_design/Dex/Screens/Startup/Main.qml new file mode 100644 index 0000000000..32562622a0 --- /dev/null +++ b/atomic_defi_design/Dex/Screens/Startup/Main.qml @@ -0,0 +1,94 @@ +import QtQuick 2.15 + +Item +{ + id: root + + enum StartupPage + { + WalletsView, + NewWallet, + ImportWallet, + Login, + Logging + } + + property var currentPage + + property var _availablePages: [ _walletsView, _newWallet, _importWallet, _login, _logging ] + property string _selectedWalletName + + signal logged(string walletName) + + Component.onCompleted: _selectedWalletName.length > 0 ? currentPage = Main.StartupPage.Login : currentPage = Main.StartupPage.WalletsView + + Loader + { + id: _pageLoader + anchors.fill: parent + sourceComponent: _availablePages[currentPage] + } + + Component + { + id: _walletsView + WalletsView + { + onNewWalletClicked: currentPage = Main.StartupPage.NewWallet + onImportWalletClicked: currentPage = Main.StartupPage.ImportWallet + onWalletSelected: + { + _selectedWalletName = walletName; + currentPage = Main.StartupPage.Login; + } + } + } + + Component + { + id: _newWallet + NewWallet + { + onWalletCreated: + { + _selectedWalletName = walletName; + currentPage = Main.StartupPage.Login; + } + onBackClicked: currentPage = Main.StartupPage.WalletsView + } + } + + Component + { + id: _importWallet + ImportWallet + { + onBackClicked: currentPage = Main.StartupPage.WalletsView + onPostConfirmSuccess: + { + _selectedWalletName = walletName; + currentPage = Main.StartupPage.Logging; + } + } + } + + Component + { + id: _login + Login + { + onBackClicked: currentPage = Main.StartupPage.WalletsView + onLoginSucceeded: currentPage = Main.StartupPage.Logging + walletName: _selectedWalletName + } + } + + Component + { + id: _logging + Logging + { + onLogged: root.logged(_selectedWalletName) + } + } +} diff --git a/atomic_defi_design/Dex/Screens/NewUser.qml b/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml similarity index 71% rename from atomic_defi_design/Dex/Screens/NewUser.qml rename to atomic_defi_design/Dex/Screens/Startup/NewWallet.qml index d993c89ddf..0924cc84b8 100644 --- a/atomic_defi_design/Dex/Screens/NewUser.qml +++ b/atomic_defi_design/Dex/Screens/Startup/NewWallet.qml @@ -4,16 +4,18 @@ import QtQuick.Controls 2.15 import Qaterial 1.0 as Qaterial -import "../Components" -import "../Constants" +import "../../Components" +import "../../Constants" import App 1.0 +import Dex.Themes 1.0 as Dex -SetupPage { +SetupPage +{ id: new_user // Override - signal clickedBack() - signal postCreateSuccess() + signal backClicked() + signal walletCreated(string walletName) property string current_mnemonic property string text_error @@ -24,53 +26,51 @@ SetupPage { property int current_word_idx: 0 property int guess_count: 1 - Component.onCompleted: onOpened() - - function onOpened() { - current_mnemonic = API.app.get_mnemonic() - } + function onOpened() { current_mnemonic = API.app.get_mnemonic() } - function getWords() { - return current_mnemonic.split(" ") - } + function getWords() { return current_mnemonic.split(" ") } - function setRandomGuessWord() { + function setRandomGuessWord() + { const prev_idx = current_word_idx while (current_word_idx === prev_idx) current_word_idx = General.getRandomInt(0, getWords().length - 1) } - function validGuessField(field) { + function validGuessField(field) + { return field.acceptableInput } - function submitGuess(field) { - if (validGuessField(field)) { + function submitGuess(field) + { + if (validGuessField(field)) + { // Check if it's correct - if (field.text === getWords()[current_word_idx]) { - if (isFinalGuess()) { - return [true, true] - } else { - ++guess_count - setRandomGuessWord() + if (field.text === getWords()[current_word_idx]) + { + if (isFinalGuess()) + { + return [true, true]; } - field.text = "" - guess_text_error = "" - return [true, false] - } else { - guess_text_error = qsTr("Wrong word, please check again") + else + { + ++guess_count; + setRandomGuessWord(); + } + field.text = ""; + guess_text_error = ""; + return [true, false]; } + else guess_text_error = qsTr("Wrong word, please check again"); } - - return [false, false] + return [false, false]; } - function isFinalGuess() { - return guess_count === 3 - } + function isFinalGuess() { return guess_count === 3 } - // Local - function reset() { + function reset() + { current_mnemonic = "" text_error = "" @@ -79,33 +79,31 @@ SetupPage { guess_count = 1 } - function shuffle(array) { + function shuffle(array) + { var currentIndex = array.length, randomIndex; // While there remain elements to shuffle... - while (0 !== currentIndex) { + while (0 !== currentIndex) + { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex--; // And swap it with the current element. - [array[currentIndex], array[randomIndex]] = [ - array[randomIndex], array[currentIndex] - ]; + [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; } return array; } - function getRandom4x(list, keep) { - + function getRandom4x(list, keep) + { // remove keep const index = list.indexOf(keep); - if (index > -1) { - list.splice(index, 1); - } + if (index > -1) list.splice(index, 1); // randomlise let randomList = shuffle(list) @@ -120,45 +118,54 @@ SetupPage { return finalList } - function onClickedCreate(password, generated_seed, wallet_name) { - if (API.app.wallet_mgr.create(password, generated_seed, wallet_name)) { - selected_wallet_name = wallet_name - postCreateSuccess() + function onClickedCreate(password, generated_seed, wallet_name) + { + if (API.app.wallet_mgr.create(password, generated_seed, wallet_name)) + { + walletCreated(wallet_name); return true - } else { + } + else + { text_error = qsTr("Failed to create a wallet") return false } } image_scale: 0.7 - // Removed the image for now, no space - //image_path: General.image_path + (form_is_filled ? "settings-seed.svg" : "setup-welcome-wallet.svg") - content: ColumnLayout { + content: ColumnLayout + { spacing: Style.rowSpacing - RowLayout { + RowLayout + { Layout.fillWidth: true spacing: 10 - Qaterial.AppBarButton { + Qaterial.AppBarButton + { icon.source: Qaterial.Icons.arrowLeft - foregroundColor: DexTheme.foregroundColor + foregroundColor: Dex.CurrentTheme.foregroundColor Layout.alignment: Qt.AlignVCenter - onClicked: { - if (currentStep === 0) { + onClicked: + { + if (currentStep === 0) + { reset() - clickedBack() - } else { - if (currentStep == 2) { + backClicked(); + } + else + { + if (currentStep == 2) + { currentStep = 0 _inputPassword.field.text = "" _inputPasswordConfirm.field.text = "" - } else { + } + else + { input_seed_word.field.text = "" currentStep-- } - - } } } @@ -177,11 +184,10 @@ SetupPage { } - Item { - Layout.fillWidth: true - } + Item { Layout.fillWidth: true } - function reset() { + function reset() + { new_user.reset() input_wallet_name.reset() _inputPassword.field.text = "" @@ -189,7 +195,8 @@ SetupPage { input_generated_seed.text = "" } - function completeForm() { + function completeForm() + { if (!continue_button.enabled) return text_error = General.checkIfWalletExists(input_wallet_name.field.text) @@ -203,14 +210,20 @@ SetupPage { form_is_filled = true } - function tryGuess() { + function tryGuess() + { // Open EULA if it's the final one let sub = submitGuess(input_seed_word.field) - if (sub[0] == true && sub[1] == true) { + if (sub[0] == true && sub[1] == true) + { currentStep++ - } else if (sub[0] == true && sub[1] == false) { + } + else if (sub[0] == true && sub[1] == false) + { input_seed_word.field.text = "" - } else { + } + else + { input_seed_word.field.text = "" input_seed_word.error = true setRandomGuessWord() @@ -218,9 +231,11 @@ SetupPage { } } - ModalLoader { + ModalLoader + { id: eula_modal - sourceComponent: EulaModal { + sourceComponent: EulaModal + { onConfirm: () => { if (onClickedCreate(_inputPassword.field.text, input_generated_seed.text, @@ -229,12 +244,14 @@ SetupPage { } } - ColumnLayout { + ColumnLayout + { visible: currentStep === 0 Layout.preferredWidth: 450 spacing: Style.rowSpacing - DexAppTextField { + DexAppTextField + { id: input_wallet_name Layout.fillWidth: true Layout.preferredHeight: 50 @@ -248,30 +265,34 @@ SetupPage { field.placeholderText: "Wallet Name" field.onTextChanged: text_error = "" - DexRectangle { + DexRectangle + { x: 5 height: 40 width: 60 radius: 20 - color: DexTheme.accentColor + color: Dex.CurrentTheme.accentColor anchors.verticalCenter: parent.verticalCenter - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.centerIn: parent iconSize: 19 source: Qaterial.Icons.wallet - color: DexTheme.surfaceColor + color: Dex.CurrentTheme.foregroundColor } - } } - DexRectangle { + + DefaultRectangle + { Layout.topMargin: 10 Layout.bottomMargin: Layout.topMargin Layout.fillWidth: true - color: DexTheme.redColor + color: Dex.CurrentTheme.noColor height: warning_texts.height + 20 - Column { + Column + { id: warning_texts anchors.centerIn: parent @@ -279,41 +300,47 @@ SetupPage { spacing: 10 - DexLabel { + DefaultText + { width: parent.width - 40 horizontalAlignment: Text.AlignHCenter anchors.horizontalCenter: parent.horizontalCenter text_value: qsTr("Important: Back up your seed phrase before proceeding!") - color: Style.colorWhite4 } - DexLabel { + DefaultText { width: parent.width - 40 horizontalAlignment: Text.AlignHCenter anchors.horizontalCenter: parent.horizontalCenter text_value: qsTr("We recommend storing it offline.") font.pixelSize: Style.textSizeSmall4 - color: Style.colorWhite4 } } } - TextField { + TextField + { id: input_generated_seed visible: false text: current_mnemonic } - Column { + + Column + { Layout.fillWidth: true spacing: 5 - RowLayout { + RowLayout + { width: parent.width - DexLabel { + DefaultText + { text: qsTr("Generated Seed") font: DexTypo.body1 Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter } - Qaterial.AppBarButton { + + Qaterial.AppBarButton + { icon.source: Qaterial.Icons.contentCopy Layout.alignment: Qt.AlignVCenter onClicked: { @@ -323,25 +350,29 @@ SetupPage { } } } - Item { + Item + { width: parent.width height: _insideFlow.height - Grid { + Grid + { id: _insideFlow width: parent.width spacing: 10 - Repeater { + Repeater + { model: current_mnemonic.split(" ") - delegate: DexRectangle { + delegate: DefaultRectangle + { width: (_insideFlow.width - 30) / 4 height: _insideLabel.implicitHeight + 15 - color: DexTheme.accentColor + color: Dex.CurrentTheme.innerBackgroundColor opacity: .8 - DexLabel { + DefaultText + { id: _insideLabel text: (index + 1) + ". " + modelData font: DexTypo.body2 - color: DexTheme.backgroundColor anchors.centerIn: parent } } @@ -350,25 +381,39 @@ SetupPage { } } - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - RowLayout { + RowLayout + { Layout.preferredWidth: 400 spacing: Style.buttonSpacing - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - DexAppButton { + + DexAppButton + { id: nextButton + enabled: input_wallet_name.field.text !== "" - onClicked: { + radius: 20 + opacity: enabled ? 1 : .4 + Layout.preferredWidth: _nextRow.implicitWidth + 40 + Layout.preferredHeight: 45 + label.color: 'transparent' + + onClicked: + { text_error = General.checkIfWalletExists(input_wallet_name.field.text) - if (text_error !== "") { + if (text_error !== "") + { input_wallet_name.error = true return } @@ -378,24 +423,23 @@ SetupPage { guess_count = 1 setRandomGuessWord() } - radius: 20 - opacity: enabled ? 1 : .4 - Layout.preferredWidth: _nextRow.implicitWidth + 40 - Layout.preferredHeight: 45 - label.color: 'transparent' - Row { + + Row + { id: _nextRow anchors.centerIn: parent spacing: 10 - DexLabel { + DefaultText + { text: qsTr("Next") font: DexTypo.button - color: nextButton.foregroundColor + color: Dex.CurrentTheme.foregroundColor anchors.verticalCenter: parent.verticalCenter } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter - color: nextButton.foregroundColor + color: Dex.CurrentTheme.foregroundColor source: Qaterial.Icons.arrowRight iconSize: 14 } @@ -403,25 +447,29 @@ SetupPage { } } - DefaultText { + DefaultText + { text_value: text_error - color: DexTheme.redColor + color: Dex.CurrentTheme.noColor visible: text !== '' } } // Second page, write the seed word - ColumnLayout { + ColumnLayout + { visible: currentStep === 1 - FloatingBackground { + FloatingBackground + { Layout.topMargin: 10 Layout.bottomMargin: Layout.topMargin Layout.fillWidth: true height: 140 - Column { + Column + { id: warning_texts_2 anchors.centerIn: parent @@ -429,42 +477,49 @@ SetupPage { spacing: 5 - DexLabel { + DefaultText + { width: parent.width - 40 anchors.horizontalCenter: parent.horizontalCenter - font { - bold: true - } + font { bold: true } text_value: qsTr("Let's double check your seed phrase") } - DexLabel { + + DefaultText + { width: parent.width - 40 anchors.horizontalCenter: parent.horizontalCenter text_value: qsTr("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.") font.pixelSize: Style.textSizeSmall4 - color: DexTheme.foregroundColorLightColor2 + color: Dex.CurrentTheme.foregroundColor } } } - Column { + Column + { Layout.fillWidth: true spacing: 5 - Item { + Item + { width: parent.width - 10 height: _insideFlow2.height - Grid { + Grid + { id: _insideFlow2 width: parent.width spacing: 10 horizontalItemAlignment: Grid.AlignHCenter - Repeater { + Repeater + { id: mmo model: getRandom4x(current_mnemonic.split(" "), getWords()[current_word_idx]) - delegate: DexAppButton { + delegate: DexAppButton + { width: (_insideFlow2.width - 30) / 4 text: modelData ?? "" - onClicked: { + onClicked: + { input_seed_word.field.text = modelData tryGuess() } @@ -474,12 +529,14 @@ SetupPage { } } - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 5 } - DexAppTextField { + DexAppTextField + { id: input_seed_word Layout.fillWidth: true Layout.preferredHeight: 50 @@ -490,42 +547,47 @@ SetupPage { field.horizontalAlignment: Qt.AlignLeft field.leftPadding: 75 field.placeholderText: qsTr("Enter the %n. word", "", current_word_idx + 1) - field.validator: RegExpValidator { - regExp: /[a-z]+/ - } + field.validator: RegExpValidator { regExp: /[a-z]+/ } field.onAccepted: tryGuess() - DexRectangle { + DefaultRectangle + { x: 5 height: 40 width: 60 radius: 20 - color: DexTheme.accentColor + color: Dex.CurrentTheme.accentColor anchors.verticalCenter: parent.verticalCenter - DexLabel { + + DefaultText + { anchors.centerIn: parent font: DexTypo.head6 - color: DexTheme.backgroundColor text: current_word_idx + 1 } } } - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - RowLayout { + RowLayout + { Layout.preferredWidth: 400 spacing: Style.buttonSpacing - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - DexAppButton { + + DexAppButton + { id: checkForNext enabled: validGuessField(input_seed_word.field) opacity: enabled ? 1 : .4 @@ -534,19 +596,23 @@ SetupPage { Layout.preferredWidth: _nextRow3.implicitWidth + 40 Layout.preferredHeight: 45 label.color: 'transparent' - Row { + Row + { id: _nextRow3 anchors.centerIn: parent spacing: 10 - DexLabel { + DefaultText + { text: qsTr("Check") font: DexTypo.button - color: checkForNext.foregroundColor + color: Dex.CurrentTheme.foregroundColor anchors.verticalCenter: parent.verticalCenter } - Qaterial.ColorIcon { + + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter - color: checkForNext.foregroundColor + color: Dex.CurrentTheme.foregroundColor source: Qaterial.Icons.check iconSize: 14 } @@ -554,27 +620,31 @@ SetupPage { } } - DefaultText { + DefaultText + { text_value: guess_text_error - color: DexTheme.redColor + color: Dex.CurrentTheme.noColor visible: input_seed_word.error DexVisibleBehavior on visible {} } } - ColumnLayout { + ColumnLayout + { visible: currentStep === 2 Layout.preferredWidth: 450 spacing: Style.rowSpacing - DexAppPasswordField { + DexAppPasswordField + { id: _inputPassword Layout.fillWidth: true Layout.preferredHeight: 50 field.onAccepted: _keyChecker.isValid() ? eula_modal.open() : undefined } - DexKeyChecker { + DexKeyChecker + { id: _keyChecker field: _inputPassword.field double_validation: true @@ -582,59 +652,67 @@ SetupPage { match_password: _inputPasswordConfirm.field.text } - DexAppPasswordField { + DexAppPasswordField + { id: _inputPasswordConfirm Layout.fillWidth: true Layout.preferredHeight: 50 field.onAccepted: _keyChecker.isValid() ? eula_modal.open() : undefined } - Item { - Layout.fillWidth: true - } + Item { Layout.fillWidth: true } - RowLayout { + RowLayout + { Layout.preferredWidth: 400 - Item { + Item + { Layout.fillWidth: true Layout.preferredHeight: 10 } - DexAppButton { + DexAppButton + { id: finalRegisterButton enabled: _keyChecker.isValid() opacity: enabled ? 1 : .4 - onClicked: eula_modal.open() radius: 20 Layout.preferredWidth: _nextRow2.implicitWidth + 40 Layout.preferredHeight: 45 label.color: 'transparent' - Row { + onClicked: eula_modal.open() + + Row + { id: _nextRow2 anchors.centerIn: parent spacing: 10 - DexLabel { + DefaultText + { text: qsTr("Continue") font: DexTypo.button - color: finalRegisterButton.foregroundColor anchors.verticalCenter: parent.verticalCenter } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter source: Qaterial.Icons.arrowRight - color: finalRegisterButton.foregroundColor + color: Dex.CurrentTheme.foregroundColor iconSize: 14 } } } } - DefaultText { + DefaultText + { text_value: text_error - color: DexTheme.redColor + color: Dex.CurrentTheme.noColor visible: text !== '' } } } -} \ No newline at end of file + + Component.onCompleted: onOpened() +} diff --git a/atomic_defi_design/Dex/Screens/FirstLaunch.qml b/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml similarity index 51% rename from atomic_defi_design/Dex/Screens/FirstLaunch.qml rename to atomic_defi_design/Dex/Screens/Startup/WalletsView.qml index 538f70ae41..1c0e89d8ad 100644 --- a/atomic_defi_design/Dex/Screens/FirstLaunch.qml +++ b/atomic_defi_design/Dex/Screens/Startup/WalletsView.qml @@ -7,164 +7,52 @@ import QtQuick.Window 2.15 import Qaterial 1.0 as Qaterial -import "../Components" -import "../Constants" +import "../../Components" +import "../../Constants" +import "../../Settings" import App 1.0 -import "../Settings" import Dex.Themes 1.0 as Dex -SetupPage { +SetupPage +{ // Override id: _setup - property - var onClickedNewUser: () => {} - property - var onClickedRecoverSeed: () => {} - property - var onClickedWallet: () => {} + property var wallets: API.app.wallet_mgr.get_wallets() - // Local - function updateWallets() { - wallets = API.app.wallet_mgr.get_wallets() - } - - function onClickedLogin(password) { - if (API.app.wallet_mgr.login(password, selected_wallet_name)) { - console.log("Success: Login") - app.currentWalletName = selected_wallet_name - return true - } else { - console.log("Failed: Login") - return false - } - } - property - var wallets: ([]) + signal newWalletClicked() + signal importWalletClicked(); + signal walletSelected(string walletName); - image_path: (bottomDrawer.y === 0 && bottomDrawer.visible) ? "" : Dex.CurrentTheme.bigLogoPath + image_path: Dex.CurrentTheme.bigLogoPath image_margin: 30 - Drawer { - id: bottomDrawer - width: parent.width - height: parent.height - edge: Qt.BottomEdge - dim: false // - modal: false - background: Item { - DexRectangle { - id: _drawerBG - anchors.fill: parent - radius: 0 - border.width: 0 - color: 'black' - opacity: .8 - } - Column { - anchors.bottom: parent.bottom - anchors.bottomMargin: 250 - anchors.horizontalCenter: parent.horizontalCenter - spacing: 20 - Image { - /*width: 200 - height: 130*/ - source: Dex.CurrentTheme.bigLogoPath - anchors.horizontalCenter: parent.horizontalCenter - } - DexLabel { - anchors.horizontalCenter: parent.horizontalCenter - text: "%1 wallet".arg(selected_wallet_name) - color: DexTheme.foregroundColorLightColor4 - font: DexTypo.body1 - topPadding: 10 - } - Connections { - target: bottomDrawer - function onVisibleChanged() { - _inputPassword.field.text = "" - } - } - - DexAppPasswordField { - id: _inputPassword - height: 50 - width: 300 - anchors.horizontalCenter: parent.horizontalCenter - field.onAccepted: { - if (_keyChecker.isValid()) { - if (onClickedLogin(field.text)) { - bottomDrawer.close() - app.current_page = idx_initial_loading - } else { - error = true - } - } else { - error = true - } - } - } - - DexKeyChecker { - id: _passwordChecker - visible: false - field: _inputPassword.field - } - - DexButton { - radius: width - width: 150 - text: qsTr("connect") - opacity: enabled ? 1 : 0.6 - enabled: _passwordChecker.isValid() - anchors.horizontalCenter: parent.horizontalCenter - onClicked: { - _inputPassword.field.accepted() - } - } - DexKeyChecker { - id: _keyChecker - field: _inputPassword.field - visible: false - } - } - Qaterial.AppBarButton { - anchors.bottom: parent.bottom - anchors.bottomMargin: 60 - anchors.horizontalCenter: parent.horizontalCenter - width: 80 - icon.width: 40 - icon.height: 40 - icon.source: Qaterial.Icons.close - onClicked: bottomDrawer.close() - } - } - - } - content: ColumnLayout { + content: ColumnLayout + { id: content_column width: 400 spacing: Style.rowSpacing - opacity: (bottomDrawer.y === 0 && bottomDrawer.visible) ? .3 : 1 - RowLayout { + RowLayout + { Layout.fillWidth: true - DexLabel { + DexLabel + { font: DexTypo.head6 text_value: qsTr("Welcome") Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter } - DexLanguage { + DexLanguage + { Layout.preferredWidth: 55 Layout.alignment: Qt.AlignVCenter } } - Item { - Layout.fillWidth: true - } + Item { Layout.fillWidth: true } - DexAppButton { + DefaultButton + { Layout.fillWidth: true horizontalAlignment: Qt.AlignLeft Layout.minimumWidth: 350 @@ -172,103 +60,124 @@ SetupPage { text: qsTr("New Wallet") Layout.preferredHeight: 50 radius: 8 - //backgroundColor: DexTheme.accentColor - onClicked: onClickedNewUser() + onClicked: newWalletClicked() } - DexAppButton { + DefaultButton + { text: qsTr("Import wallet") horizontalAlignment: Qt.AlignLeft - //backgroundColor: DexTheme.accentColor leftPadding: 20 radius: 8 Layout.fillWidth: true Layout.preferredHeight: 50 - onClicked: onClickedRecoverSeed() + onClicked: importWalletClicked() } // Wallets - ColumnLayout { + ColumnLayout + { spacing: Style.rowSpacing visible: wallets.length > 0 - DexLabel { + DexLabel + { text_value: qsTr("My Wallets") font.pixelSize: Style.textSizeSmall2 Layout.alignment: Qt.AlignHCenter } - Item { + + Item + { height: 15 Layout.fillWidth: true - Rectangle { + Rectangle + { height: 2 width: parent.width - color: DexTheme.accentColor - Rectangle { + color: Dex.CurrentTheme.accentColor + Rectangle + { anchors.centerIn: parent width: 9 height: 9 radius: 6 - color: DexTheme.accentColor + color: Dex.CurrentTheme.accentColor } } } - DexRectangle { + DexRectangle + { id: bg - width: content_column.width + readonly property int row_height: 40 + + width: content_column.width Layout.minimumHeight: row_height Layout.preferredHeight: row_height * Math.min(wallets.length, 3) color: "transparent" - DefaultListView { + + + DefaultListView + { id: list implicitHeight: bg.Layout.preferredHeight model: wallets - delegate: ClipRRect { + delegate: ClipRRect + { radius: 5 width: bg.width height: bg.row_height - DexRectangle { + DefaultRectangle + { color: "transparent" border.width: 0 - anchors.fill: parent - Rectangle { + Rectangle + { height: parent.height width: mouse_area.containsMouse ? parent.width : 0 opacity: .4 - Behavior on width { - NumberAnimation { + color: Dex.CurrentTheme.buttonColorHovered + visible: mouse_area.containsMouse + + Behavior on width + { + NumberAnimation + { duration: 250 } } - color: DexTheme.buttonColorHovered - visible: mouse_area.containsMouse } - DefaultMouseArea { + + DefaultMouseArea + { id: mouse_area anchors.fill: parent hoverEnabled: true - onClicked: { - selected_wallet_name = model.modelData - bottomDrawer.open() + onClicked: + { + walletSelected(model.modelData) } } - Qaterial.ColorIcon { + Qaterial.ColorIcon + { anchors.verticalCenter: parent.verticalCenter - color: DexTheme.foregroundColor + color: Dex.CurrentTheme.foregroundColor source: Qaterial.Icons.account iconSize: 16 x: 20 } - DefaultText { + + DefaultText + { anchors.left: parent.left anchors.leftMargin: 45 @@ -277,37 +186,45 @@ SetupPage { font.pixelSize: Style.textSizeSmall2 } } - Item { + + Item + { anchors.right: parent.right anchors.margins: 10 height: parent.height width: 30 - Qaterial.ColorIcon { + Qaterial.ColorIcon + { source: Qaterial.Icons.delete_ iconSize: 18 anchors.centerIn: parent opacity: .8 - color: _deleteArea.containsMouse ? DexTheme.redColor : DexTheme.foregroundColor + color: _deleteArea.containsMouse ? Dex.CurrentTheme.noColor : Dex.CurrentTheme.foregroundColor } - DexMouseArea { + + DexMouseArea + { id: _deleteArea hoverEnabled: true anchors.fill: parent - onClicked: { - let wallet_name = model.modelData + onClicked: + { + let wallet_name = model.modelData; let dialog = app.getText({ "title": qsTr("Delete") + " %1 ".arg(wallet_name) + ("wallet?"), text: qsTr("Enter password to confirm deletion of") + " %1 ".arg(wallet_name) + qsTr("wallet"), standardButtons: Dialog.Yes | Dialog.Cancel, warning: true, width: 300, - iconColor: DexTheme.redColor, + iconColor: Dex.CurrentTheme.noColor, isPassword: true, placeholderText: qsTr("Type password"), yesButtonText: qsTr("Delete"), cancelButtonText: qsTr("Cancel"), - onAccepted: function(text) { - if (API.app.wallet_mgr.confirm_password(wallet_name, text)) { + onAccepted: function(text) + { + if (API.app.wallet_mgr.confirm_password(wallet_name, text)) + { API.app.wallet_mgr.delete_wallet(wallet_name); app.showText({ title: qsTr("Wallet status"), @@ -315,12 +232,13 @@ SetupPage { standardButtons: Dialog.Ok }) _setup.wallets = API.app.wallet_mgr.get_wallets() - } else { + } else + { app.showText({ title: qsTr("Wallet status"), text: "%1 ".arg(wallet_name) + qsTr("wallet password entered is incorrect"), iconSource: Qaterial.Icons.alert, - iconColor: DexTheme.redColor, + iconColor: Dex.CurrentTheme.noColor, warning: true, standardButtons: Dialog.Ok }) @@ -328,8 +246,7 @@ SetupPage { dialog.close() dialog.destroy() } - - }) + }); } } } @@ -337,44 +254,15 @@ SetupPage { } } } - - - - HorizontalLine { - } - - } - Component.onCompleted: { - updateWallets() - } - Connections { - target: app - function onCan_open_loginChanged() { - console.log("LOGIN STATE changed") - if (app.can_open_login) { - bottomDrawer.open() - app.can_open_login = false - } - } + HorizontalLine { } } - GaussianBlur { + + GaussianBlur + { anchors.fill: _setup visible: false source: _setup radius: 21 deviation: 2 } - RecursiveBlur { - visible: bottomDrawer.y === 0 && bottomDrawer.visible - anchors.fill: _setup - source: _setup - radius: 2 - loops: 120 - } - - - - bottom_content: LinksRow { - visible: !(bottomDrawer.y === 0 && bottomDrawer.visible) - } } diff --git a/atomic_defi_design/Dex/Screens/qmldir b/atomic_defi_design/Dex/Screens/qmldir new file mode 100644 index 0000000000..84a27bbee5 --- /dev/null +++ b/atomic_defi_design/Dex/Screens/qmldir @@ -0,0 +1,3 @@ +module Dex.Screens + +Startup 1.0 Startup/Main.qml diff --git a/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml b/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml index e998ee8d9e..8abadc62a5 100644 --- a/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml +++ b/atomic_defi_design/Dex/Settings/CamouflagePasswordModal.qml @@ -12,7 +12,7 @@ BasicModal { width: 800 onClosed: { - input_password.reset() + input_password_suffix.reset() } ModalContent { @@ -60,9 +60,12 @@ BasicModal { } PasswordForm { - id: input_password + id: input_password_suffix Layout.fillWidth: true - field.placeholderText: qsTr("Enter a suffix") + field_title: qsTr("Password suffix") + confirm_field_title: qsTr("Confirm pasword suffix") + field.placeholderText: qsTr("Enter a password suffix") + confirm_field.placeholderText: qsTr("Enter the same password suffix to confirm") high_security: false } @@ -83,9 +86,9 @@ BasicModal { leftPadding: 40 rightPadding: 40 radius: 20 - enabled: input_password.isValid() + enabled: input_password_suffix.isValid() onClicked: { - API.app.wallet_mgr.set_emergency_password(input_password.field.text) + API.app.wallet_mgr.set_emergency_password(input_password_suffix.field.text) root.close() } } diff --git a/atomic_defi_design/Dex/Sidebar/Bottom.qml b/atomic_defi_design/Dex/Sidebar/Bottom.qml index 1e98b02a98..29c8addd86 100644 --- a/atomic_defi_design/Dex/Sidebar/Bottom.qml +++ b/atomic_defi_design/Dex/Sidebar/Bottom.qml @@ -10,7 +10,7 @@ ColumnLayout height: lineHeight * 3 - signal supportLineSelected(var lineObj) + signal supportLineSelected(var lineType) signal settingsClicked() FigurativeLine @@ -33,7 +33,7 @@ ColumnLayout label.text: isExpanded ? qsTr("Support") : "" icon.source: General.image_path + "menu-support-white.png" type: Main.LineType.Support - onClicked: supportLineSelected(this) + onClicked: supportLineSelected(type) DexTooltip { diff --git a/atomic_defi_design/Dex/Sidebar/Center.qml b/atomic_defi_design/Dex/Sidebar/Center.qml index 8008941886..430bcecd1f 100644 --- a/atomic_defi_design/Dex/Sidebar/Center.qml +++ b/atomic_defi_design/Dex/Sidebar/Center.qml @@ -8,13 +8,16 @@ import Dex.Themes 1.0 as Dex Item { - signal lineSelected(Line lineObj) + property alias spacing: _columnLayout.spacing + + signal lineSelected(var lineType) height: lineHeight * 5 // Selection List ColumnLayout { + id: _columnLayout anchors.fill: parent FigurativeLine { @@ -24,7 +27,7 @@ Item type: Main.LineType.Portfolio label.text: isExpanded ? qsTr("Portfolio") : "" icon.source: General.image_path + "menu-assets-portfolio.svg" - onClicked: lineSelected(this) + onClicked: lineSelected(type) DexTooltip { @@ -41,7 +44,7 @@ Item type: Main.LineType.Wallet label.text: isExpanded ? qsTr("Wallet") : "" icon.source: General.image_path + "menu-assets-white.svg" - onClicked: lineSelected(this) + onClicked: lineSelected(type) DexTooltip { @@ -58,7 +61,7 @@ Item type: Main.LineType.DEX label.text: isExpanded ? qsTr("DEX") : "" icon.source: General.image_path + "menu-exchange-white.svg" - onClicked: lineSelected(this) + onClicked: lineSelected(type) DexTooltip { @@ -75,7 +78,7 @@ Item type: Main.LineType.Addressbook label.text: isExpanded ? qsTr("Address Book") : "" icon.source: General.image_path + "menu-news-white.svg" - onClicked: lineSelected(this) + onClicked: lineSelected(type) DefaultTooltip { diff --git a/atomic_defi_design/Dex/Sidebar/Line.qml b/atomic_defi_design/Dex/Sidebar/Line.qml index 06946a30cd..2b3e2740f0 100644 --- a/atomic_defi_design/Dex/Sidebar/Line.qml +++ b/atomic_defi_design/Dex/Sidebar/Line.qml @@ -36,7 +36,7 @@ Item }) style: Text.Normal color: !enabled ? Dex.CurrentTheme.textDisabledColor : - _mouseArea.containsMouse && _currentLineType !== type ? Dex.CurrentTheme.sidebarLineTextHovered : + _mouseArea.containsMouse && currentLineType !== type ? Dex.CurrentTheme.sidebarLineTextHovered : Dex.CurrentTheme.foregroundColor } diff --git a/atomic_defi_design/Dex/Sidebar/Main.qml b/atomic_defi_design/Dex/Sidebar/Main.qml index 08e596b96c..c64eee556a 100644 --- a/atomic_defi_design/Dex/Sidebar/Main.qml +++ b/atomic_defi_design/Dex/Sidebar/Main.qml @@ -10,7 +10,6 @@ Item enum LineType { - None, Portfolio, Wallet, DEX, // DEX == Trading page @@ -20,8 +19,7 @@ Item property bool isExpanded: true property real lineHeight: 44 - - property var _currentLineType: Main.LineType.Portfolio + property var currentLineType: Main.LineType.Portfolio property alias _selectionCursor: _selectionCursor signal lineSelected(var lineType) @@ -31,6 +29,9 @@ Item width: isExpanded ? 200 : 80 height: parent.height + onCurrentLineTypeChanged: if (currentLineType === Main.LineType.DEX) isExpanded = false + else isExpanded = true + // Background Rectangle Rectangle { @@ -49,10 +50,15 @@ Item { id: _selectionCursor - y: center.y + y: + { + if (currentLineType === Main.LineType.Support) return bottom.y + lineHeight + bottom.spacing; + else return center.y + currentLineType * (lineHeight + center.spacing); + } + anchors.right: parent.right radius: 18 - width: isExpanded ? 185 : 80 + width: isExpanded ? 185 : 76 height: lineHeight opacity: .7 @@ -61,7 +67,7 @@ Item { orientation: Gradient.Horizontal GradientStop { position: 0.125; color: Dex.CurrentTheme.sidebarCursorStartColor } - GradientStop { position: 0.900; color: Dex.CurrentTheme.sidebarCursorEndColor } + GradientStop { position: 0.933; color: Dex.CurrentTheme.sidebarCursorEndColor } } Behavior on y @@ -87,28 +93,26 @@ Item anchors.topMargin: 69.5 onLineSelected: { - if (_currentLineType === lineObj.type) + if (currentLineType === lineType) return; - _currentLineType = lineObj.type; - root.lineSelected(lineObj.type); - _selectionCursor.y = y + lineObj.y; + currentLineType = lineType; + root.lineSelected(lineType); } } Bottom { - id: botton + id: bottom width: parent.width anchors.bottom: parent.bottom anchors.bottomMargin: 62 onSupportLineSelected: { - if (_currentLineType === lineObj.type) + if (currentLineType === lineType) return; - _currentLineType = lineObj.type; - root.lineSelected(lineObj.type); - _selectionCursor.y = y + lineObj.y; + currentLineType = lineType; + root.lineSelected(lineType); } onSettingsClicked: root.settingsClicked() } diff --git a/atomic_defi_design/Dex/Sidebar/Top.qml b/atomic_defi_design/Dex/Sidebar/Top.qml index 6ed263fe31..dd985c23f1 100644 --- a/atomic_defi_design/Dex/Sidebar/Top.qml +++ b/atomic_defi_design/Dex/Sidebar/Top.qml @@ -13,6 +13,7 @@ DefaultImage DefaultText { + visible: isExpanded anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.bottom anchors.topMargin: 35 diff --git a/atomic_defi_design/Dex/Wallet/Wallet.qml b/atomic_defi_design/Dex/Wallet/Wallet.qml index 96141edbb8..7ca50fcc2d 100644 --- a/atomic_defi_design/Dex/Wallet/Wallet.qml +++ b/atomic_defi_design/Dex/Wallet/Wallet.qml @@ -5,6 +5,7 @@ import QtGraphicalEffects 1.0 import "../Components" import "../Constants" +import "../Screens" import App 1.0 RowLayout @@ -22,7 +23,7 @@ RowLayout // Local function onClickedSwap() { - dashboard.switchPage(idx_dashboard_exchange) + dashboard.switchPage(Dashboard.PageType.DEX) dashboard.current_ticker = api_wallet_page.ticker API.app.trading_pg.set_pair(true, api_wallet_page.ticker) } diff --git a/atomic_defi_design/Dex/main.qml b/atomic_defi_design/Dex/main.qml index 089e9863f0..98681ec71d 100644 --- a/atomic_defi_design/Dex/main.qml +++ b/atomic_defi_design/Dex/main.qml @@ -10,7 +10,6 @@ import Qaterial 1.0 as Qaterial //! Project Imports import App 1.0 -import "Screens" import "Components" import Dex.Themes 1.0 as Dex @@ -18,7 +17,6 @@ DexWindow { id: window - property alias application: app property int previousX: 0 property int previousY: 0 property int real_visibility @@ -31,10 +29,9 @@ DexWindow minimumWidth: General.minimumWidth minimumHeight: General.minimumHeight - background: DexRectangle + background: DefaultRectangle { - anchors.fill: parent - color: "transparent" + anchors.fill: parent } Universal.background: Dex.CurrentTheme.backgroundColor @@ -61,60 +58,54 @@ DexWindow visible: isOsx } - App + + DexPopup { - id: app - anchors.fill: parent - anchors.topMargin: 30 - } - - DexPopup - { - id: userMenu + id: userMenu - spacing: 8 - padding: 2 + spacing: 8 + padding: 2 backgroundColor: DexTheme.dexBoxBackgroundColor - contentItem: Item - { - implicitWidth: 130 - implicitHeight: 30 + contentItem: Item + { + implicitWidth: 130 + implicitHeight: 30 Rectangle { width: parent.width - 10 height: parent.height - 5 - anchors.centerIn: parent - color: logout_area.containsMouse? DexTheme.contentColorTopBold : DexTheme.buttonColorHovered + anchors.centerIn: parent + color: logout_area.containsMouse? DexTheme.contentColorTopBold : DexTheme.buttonColorHovered Row { - anchors.centerIn: parent + anchors.centerIn: parent spacing: 5 Qaterial.Icon { - anchors.verticalCenter: parent.verticalCenter - icon: Qaterial.Icons.logout - color: DexTheme.foregroundColor - size: 11 + anchors.verticalCenter: parent.verticalCenter + icon: Qaterial.Icons.logout + color: DexTheme.foregroundColor + size: 11 } DexLabel { - anchors.verticalCenter: parent.verticalCenter - color: DexTheme.foregroundColor - text: qsTr('Logout') - } - } + anchors.verticalCenter: parent.verticalCenter + color: DexTheme.foregroundColor + text: qsTr('Logout') + } + } DexMouseArea { - id: logout_area - hoverEnabled: true - anchors.fill: parent + id: logout_area + hoverEnabled: true + anchors.fill: parent onClicked: { - let dialog = app.showText({ + let dialog = app.showText({ "title": qsTr("Confirm Logout"), text: qsTr("Are you sure you want to log out?") , standardButtons: Dialog.Yes | Dialog.Cancel, @@ -125,204 +116,204 @@ DexWindow yesButtonText: qsTr("Yes"), cancelButtonText: qsTr("Cancel"), onAccepted: function(text) { - app.notifications_list = [] + app.notifications_list = [] userMenu.close() - app.currentWalletName = "" - API.app.disconnect() - app.onDisconnect() + app.currentWalletName = "" + API.app.disconnect() + app.onDisconnect() dialog.close() dialog.destroy() }, onRejected: function() { - userMenu.close() + userMenu.close() } }) - } - } - } - } - } + } + } + } + } + } DexMacControl { visible: isOsx } Row { - height: 30 - leftPadding: 8 - anchors.right: isOsx? parent.right : undefined - anchors.rightMargin: isOsx? 8 : 0 - layoutDirection: isOsx? Qt.RightToLeft : Qt.LeftToRight - spacing: 5 + height: 30 + leftPadding: 8 + anchors.right: isOsx? parent.right : undefined + anchors.rightMargin: isOsx? 8 : 0 + layoutDirection: isOsx? Qt.RightToLeft : Qt.LeftToRight + spacing: 5 Image { source: "qrc:/assets/images/dex-tray-icon.png" - width: 15 - height: 15 - smooth: true - antialiasing: true + width: 15 + height: 15 + smooth: true + antialiasing: true visible: !_label.visible - anchors.verticalCenter: parent.verticalCenter - } + anchors.verticalCenter: parent.verticalCenter + } DexLabel { - text: atomic_app_name - font.family: 'Montserrat' - font.weight: Font.Medium - opacity: .5 - leftPadding: 5 - color: DexTheme.foregroundColor - visible: !_label.visible - anchors.verticalCenter: parent.verticalCenter - } + text: atomic_app_name + font.family: 'Montserrat' + font.weight: Font.Medium + opacity: .5 + leftPadding: 5 + color: DexTheme.foregroundColor + visible: !_label.visible + anchors.verticalCenter: parent.verticalCenter + } - } + } Item { - width: _row.width - height: 30 + width: _row.width + height: 30 Behavior on x { NumberAnimation { - duration: 200 - } - } - anchors.right: parent.right - anchors.rightMargin: isOsx? 10 : 120 + duration: 200 + } + } + anchors.right: parent.right + anchors.rightMargin: isOsx? 10 : 120 Row { - id: _row - anchors.verticalCenter: parent.verticalCenter - layoutDirection: Qt.RightToLeft - spacing: 6 + id: _row + anchors.verticalCenter: parent.verticalCenter + layoutDirection: Qt.RightToLeft + spacing: 6 DexLabel { - text: " | " - opacity: .1 - font.family: 'Montserrat' - font.weight: Font.Medium - visible: _label.visible & !isOsx - color: DexTheme.foregroundColor - anchors.verticalCenter: parent.verticalCenter - leftPadding: 2 - } + text: " | " + opacity: .1 + font.family: 'Montserrat' + font.weight: Font.Medium + visible: _label.visible & !isOsx + color: DexTheme.foregroundColor + anchors.verticalCenter: parent.verticalCenter + leftPadding: 2 + } Rectangle { - width: __row.width + 10 - height: __row.height + 5 + width: __row.width + 10 + height: __row.height + 5 anchors.verticalCenter: parent.verticalCenter - radius: 3 - color: _area.containsMouse? DexTheme.dexBoxBackgroundColor : "transparent" + radius: 3 + color: _area.containsMouse? DexTheme.dexBoxBackgroundColor : "transparent" Row { - id: __row - anchors.centerIn: parent - layoutDirection: isOsx? Qt.RightToLeft : Qt.LeftToRight - spacing: 6 + id: __row + anchors.centerIn: parent + layoutDirection: isOsx? Qt.RightToLeft : Qt.LeftToRight + spacing: 6 Qaterial.ColorIcon { - source: Qaterial.Icons.accountCircle - iconSize: 18 - visible: _label.visible - color: DexTheme.foregroundColor - anchors.verticalCenter: parent.verticalCenter - } + source: Qaterial.Icons.accountCircle + iconSize: 18 + visible: _label.visible + color: DexTheme.foregroundColor + anchors.verticalCenter: parent.verticalCenter + } DexLabel { - id: _label - text: API.app.wallet_mgr.wallet_default_name?? "" - font.family: 'Montserrat' - font.weight: Font.Medium - opacity: .7 - visible: window.logged - color: DexTheme.foregroundColor - anchors.verticalCenter: parent.verticalCenter - } + id: _label + text: API.app.wallet_mgr.wallet_default_name?? "" + font.family: 'Montserrat' + font.weight: Font.Medium + opacity: .7 + visible: window.logged + color: Dex.CurrentTheme.foregroundColor + anchors.verticalCenter: parent.verticalCenter + } Qaterial.ColorIcon { - source: Qaterial.Icons.menuDown - iconSize: 14 - visible: _label.visible - color: DexTheme.foregroundColor - anchors.verticalCenter: parent.verticalCenter - } - } + source: Qaterial.Icons.menuDown + iconSize: 14 + visible: _label.visible + color: Dex.CurrentTheme.foregroundColor + anchors.verticalCenter: parent.verticalCenter + } + } DexMouseArea { - id: _area - anchors.fill: parent - onClicked: { - if(userMenu.visible){ - userMenu.close() - }else { - userMenu.openAt(mapToItem(Overlay.overlay, width / 2, height), Item.Top) - } - } - } - } + id: _area + anchors.fill: parent + onClicked: { + if(userMenu.visible){ + userMenu.close() + }else { + userMenu.openAt(mapToItem(Overlay.overlay, width / 2, height), Item.Top) + } + } + } + } DexLabel { - text: " | " - opacity: .1 - font.family: 'Montserrat' - font.weight: Font.Medium - visible: _label.visible - color: DexTheme.foregroundColor - anchors.verticalCenter: parent.verticalCenter - leftPadding: 2 - } + text: " | " + opacity: .1 + font.family: 'Montserrat' + font.weight: Font.Medium + visible: _label.visible + color: DexTheme.foregroundColor + anchors.verticalCenter: parent.verticalCenter + leftPadding: 2 + } Row { - anchors.verticalCenter: parent.verticalCenter - spacing: 6 - + anchors.verticalCenter: parent.verticalCenter + spacing: 6 + DexLabel { - leftPadding: 2 - text: qsTr("Balance") - font.family: 'Montserrat' - font.weight: Font.Medium - opacity: .7 + leftPadding: 2 + text: qsTr("Balance") + font.family: 'Montserrat' + font.weight: Font.Medium + opacity: .7 visible: _label.visible - anchors.verticalCenter: parent.verticalCenter - } - DexLabel { - text: ":" - opacity: .7 - font.family: 'Montserrat' - font.weight: Font.Medium + anchors.verticalCenter: parent.verticalCenter + } + DexLabel { + text: ":" + opacity: .7 + font.family: 'Montserrat' + font.weight: Font.Medium visible: _label.visible - anchors.verticalCenter: parent.verticalCenter - } + anchors.verticalCenter: parent.verticalCenter + } DexLabel { - text_value: General.formatFiat("", API.app.portfolio_pg.balance_fiat_all,API.app.settings_pg.current_currency) - font.family: 'lato' - font.weight: Font.Medium + text_value: General.formatFiat("", API.app.portfolio_pg.balance_fiat_all,API.app.settings_pg.current_currency) + font.family: 'lato' + font.weight: Font.Medium visible: _label.visible - privacy: true - anchors.verticalCenter: parent.verticalCenter + privacy: true + anchors.verticalCenter: parent.verticalCenter DexMouseArea { - anchors.fill: parent + anchors.fill: parent onClicked: { - const current_fiat = API.app.settings_pg.current_currency - const available_fiats = API.app.settings_pg.get_available_currencies() - const current_index = available_fiats.indexOf( - current_fiat) - const next_index = (current_index + 1) - % available_fiats.length - const next_fiat = available_fiats[next_index] - API.app.settings_pg.current_currency = next_fiat - } - } - } - } + const current_fiat = API.app.settings_pg.current_currency + const available_fiats = API.app.settings_pg.get_available_currencies() + const current_index = available_fiats.indexOf( + current_fiat) + const next_index = (current_index + 1) + % available_fiats.length + const next_fiat = available_fiats[next_index] + API.app.settings_pg.current_currency = next_fiat + } + } + } + } DefaultText { @@ -336,47 +327,54 @@ DexWindow } DexIconButton { - opacity: containsMouse? 1 : .8 - anchors.verticalCenter: parent.verticalCenter + opacity: containsMouse? 1 : .8 + anchors.verticalCenter: parent.verticalCenter iconSize: 22 - icon: Qaterial.Icons.bellOutline - visible: _label.visible - active: app.notification_modal.opened + icon: Qaterial.Icons.bellOutline + visible: _label.visible + active: app.notification_modal.opened AnimatedRectangle { - z: 1 - anchors.right: parent.right - anchors.rightMargin: -3 - y: -3 - radius: width/2 - width: count_text.height * 1.4 - height: width - visible: app.notifications_list !== undefined? app.notifications_list.length > 0 : false - color: DexTheme.redColor + z: 1 + anchors.right: parent.right + anchors.rightMargin: -3 + y: -3 + radius: width/2 + width: count_text.height * 1.4 + height: width + visible: app.notifications_list !== undefined? app.notifications_list.length > 0 : false + color: DexTheme.redColor DefaultText { - id: count_text - anchors.centerIn: parent - text_value: _label.visible ? app.notifications_list.length ?? 0 : 0 - font.pixelSize: 8 + id: count_text + anchors.centerIn: parent + text_value: _label.visible ? app.notifications_list.length ?? 0 : 0 + font.pixelSize: 8 font.family: 'Lato' - } - } + } + } onClicked: { if (app.notification_modal.visible) app.notification_modal.close() else app.notification_modal.openAt(mapToItem(Overlay.overlay, -165, 18), Item.Top) - } - } + } + } Settings { - id: atomic_settings0 - fileName: atomic_cfg_file - } - } - } + id: atomic_settings0 + fileName: atomic_cfg_file + } + } + } + + App + { + id: app + anchors.fill: parent + anchors.topMargin: 30 + } } diff --git a/atomic_defi_design/assets/images/coins/dust.png b/atomic_defi_design/assets/images/coins/dust.png new file mode 100644 index 0000000000..96f0eac59d Binary files /dev/null and b/atomic_defi_design/assets/images/coins/dust.png differ diff --git a/atomic_defi_design/assets/images/coins/flux.png b/atomic_defi_design/assets/images/coins/flux.png new file mode 100644 index 0000000000..80a7711a43 Binary files /dev/null and b/atomic_defi_design/assets/images/coins/flux.png differ diff --git a/atomic_defi_design/assets/images/coins/lstr.png b/atomic_defi_design/assets/images/coins/lstr.png index 7fbd676823..7c50bb68de 100644 Binary files a/atomic_defi_design/assets/images/coins/lstr.png and b/atomic_defi_design/assets/images/coins/lstr.png differ diff --git a/atomic_defi_design/assets/images/coins/mtsla.png b/atomic_defi_design/assets/images/coins/mtsla.png new file mode 100644 index 0000000000..7ca819a90e Binary files /dev/null and b/atomic_defi_design/assets/images/coins/mtsla.png differ diff --git a/atomic_defi_design/assets/images/coins/qnt.png b/atomic_defi_design/assets/images/coins/qnt.png index cb9543f99b..1496985fee 100644 Binary files a/atomic_defi_design/assets/images/coins/qnt.png and b/atomic_defi_design/assets/images/coins/qnt.png differ diff --git a/atomic_defi_design/assets/images/coins/rbtc.png b/atomic_defi_design/assets/images/coins/rbtc.png new file mode 100644 index 0000000000..784b8f359a Binary files /dev/null and b/atomic_defi_design/assets/images/coins/rbtc.png differ diff --git a/atomic_defi_design/assets/images/coins/smtf-old.png b/atomic_defi_design/assets/images/coins/smtf-old.png deleted file mode 100644 index 9c1c14c6de..0000000000 Binary files a/atomic_defi_design/assets/images/coins/smtf-old.png and /dev/null differ diff --git a/atomic_defi_design/assets/images/coins/smtf-v2.png b/atomic_defi_design/assets/images/coins/smtf-v2.png deleted file mode 100644 index 9c1c14c6de..0000000000 Binary files a/atomic_defi_design/assets/images/coins/smtf-v2.png and /dev/null differ diff --git a/atomic_defi_design/assets/images/coins/smtf.png b/atomic_defi_design/assets/images/coins/smtf.png index 6733d821f1..9c1c14c6de 100644 Binary files a/atomic_defi_design/assets/images/coins/smtf.png and b/atomic_defi_design/assets/images/coins/smtf.png differ diff --git a/atomic_defi_design/assets/images/providers/forex.png b/atomic_defi_design/assets/images/providers/forex.png new file mode 100644 index 0000000000..eeeb6625ea Binary files /dev/null and b/atomic_defi_design/assets/images/providers/forex.png differ diff --git a/atomic_defi_design/assets/images/providers/nomics.png b/atomic_defi_design/assets/images/providers/nomics.png new file mode 100644 index 0000000000..72bf9a5c2c Binary files /dev/null and b/atomic_defi_design/assets/images/providers/nomics.png differ diff --git a/atomic_defi_design/assets/languages/atomic_defi_en.ts b/atomic_defi_design/assets/languages/atomic_defi_en.ts index c3da43ce14..1ab3d4698b 100644 --- a/atomic_defi_design/assets/languages/atomic_defi_en.ts +++ b/atomic_defi_design/assets/languages/atomic_defi_en.ts @@ -487,7 +487,7 @@ App - + Recover Funds Result @@ -1228,7 +1228,7 @@ DexAppPasswordField - + Type password @@ -1272,7 +1272,7 @@ DexPaginator - + items per page @@ -1298,7 +1298,7 @@ DexSweetComboBox - + Search @@ -1415,80 +1415,10 @@ - - FirstLaunch - - - Type password - - - - - connect - - - - - Welcome - - - - - New Wallet - - - - - Import wallet - - - - - My Wallets - - - - - - Delete - - - - - Enter password to confirm deletion of - - - - - wallet - - - - - Cancel - Cancel - - - - - Wallet status - - - - - wallet deleted successfully - - - - - wallet password entered is incorrect - - - General - + %n day(s) @@ -1496,7 +1426,7 @@ - + %nd day @@ -1505,7 +1435,7 @@ - + %nh hours @@ -1514,7 +1444,7 @@ - + %nm minutes @@ -1523,7 +1453,7 @@ - + %ns seconds @@ -1532,7 +1462,7 @@ - + %nms milliseconds @@ -1541,66 +1471,66 @@ - + - - + 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 - - + + %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 @@ -1608,27 +1538,27 @@ Header - + You get - + You send - + Fiat Price - + CEX rate - + Price @@ -1638,7 +1568,7 @@ - + Total @@ -1652,25 +1582,72 @@ - InitialLoading + ImportWallet - - Loading, please wait + + Failed to Import the wallet - - Initializing MM2 + + Import wallet - Setup - - Enabling assets + + Import wallet - Choose password - - Getting ready + + Wallet Name + + + + + + Enter seed + + + + + BIP39 seed validation failed, try again or select 'Allow custom seed' + + + + + 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 + + + + + Enable + + + + + Next + + + + + Continue @@ -1730,31 +1707,38 @@ - Login + Logging - - Incorrect Password + + Loading, please wait - - Type password + + Initializing MM2 - - Connect + + Enabling assets - - Back + + Getting ready + + + Login - - - Login + + Incorrect Password + + + + + connect @@ -2014,85 +1998,85 @@ - NewUser + NewWallet - + Wrong word, please check again - + Failed to create a wallet - + New Wallet - - Choose Password - - - - - Generated Seed + + Confirm Seed - - Check + + Choose Password - + Important: Back up your seed phrase before proceeding! - + We recommend storing it offline. - - Confirm Seed - - - - - Continue + + Generated Seed - - Let's double check your seed phrase + + Copied to Clipboard - - Copied to Clipboard + + Next - - 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 %n. word + + + Check + + + + + Continue + + NoConnection @@ -2334,7 +2318,7 @@ Right slider: Sets the volume you want to trade. OrderList - + No results found @@ -2466,38 +2450,38 @@ Right slider: Sets the volume you want to trade. OrdersPage - - + + Filter - + Date - + Export CSV - + Apply Filter - + From - + To - + Please choose the CSV export name and location @@ -2577,22 +2561,22 @@ Right slider: Sets the volume you want to trade. - + Show only coins with balance - + (%1/%2) - + Portfolio - + Add asset @@ -2600,38 +2584,38 @@ Right slider: Sets the volume you want to trade. PriceLine - + Set swap price for evaluation - + Exchange rate - + Selected - + Expensive - + Expedient - + %1 compared to CEX PRICE_DIFF% - + CEXchange rate @@ -2678,17 +2662,17 @@ Right slider: Sets the volume you want to trade. ProView - + Failed to place the order - + Placed the order - + Chart @@ -2698,52 +2682,52 @@ Right slider: Sets the volume you want to trade. - + Exchange Rates - + Orders - + History - + Order Book - + Best Orders - + Place Order - + Buy - + Sell - + Order Selected - + Start Swap @@ -2777,131 +2761,61 @@ Right slider: Sets the volume you want to trade. - - RecoverSeed - - - Failed to Import the wallet - - - - - Import wallet - Setup - - - - - Import wallet - Choose password - - - - - Wallet Name - - - - - - Enter seed - - - - - BIP39 seed validation failed, try again or select '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 - - - - - Enable - - - - - Next - - - - - Continue - - - - - Allow custom seed - - - RecoverSeedModal - - + + View seed and private keys - + Please enter your password to view the seed. - + Wrong Password - + Cancel Cancel - + View - + Backup seed - + RPC Password - + Search a coin. - + Public Address - + Private Key - + Close @@ -3265,7 +3179,7 @@ Right slider: Sets the volume you want to trade. - + Changing theme to %1 @@ -3296,88 +3210,88 @@ Right slider: Sets the volume you want to trade. - + Ask system's password before sending coins ? (2FA) - + View seed and private keys - - + + Show - + Setup Camouflage Password - + Open - + Disclaimer and ToS - + Application version - + DEX Version - + DEX Version copied to clipboard. - + MM2 version - + MM2 Version - + MM2 Version copied to clipboard. - + Qt version - + Qt Version - + Qt Version copied to clipboard. - + Search Update - + Logout @@ -3474,32 +3388,32 @@ Right slider: Sets the volume you want to trade. SubBestOrder - + Token - + Available Quantity - + Available Quantity (in %1) - + Fiat Volume - + CEX Rate - + %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> @@ -3816,7 +3730,7 @@ Network fees can vary greatly depending on your selected trading pair. SweetDexComboBox - + Search @@ -3886,22 +3800,22 @@ Network fees can vary greatly depending on your selected trading pair. - + MAX - + To - + Pick an order - + Price @@ -3941,70 +3855,70 @@ Network fees can vary greatly depending on your selected trading pair. - + 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 - - + + Search - + No buy orders found for %1. - + You can check later or try to sell a different coin. - + Total %1 fees: - + %2 (%3) @@ -4129,6 +4043,71 @@ Network fees can vary greatly depending on your selected trading pair. + + WalletsView + + + Welcome + + + + + New Wallet + + + + + Import wallet + + + + + My Wallets + + + + + + Delete + + + + + Enter password to confirm deletion of + + + + + wallet + + + + + Type password + + + + + Cancel + Cancel + + + + + Wallet status + + + + + wallet deleted successfully + + + + + wallet password entered is incorrect + + + atomic_dex::wallet_page @@ -4195,32 +4174,32 @@ Network fees can vary greatly depending on your selected trading pair. main - + Logout - + Confirm Logout - + Are you sure you want to log out? - + Yes Yes - + Cancel Cancel - + Balance diff --git a/atomic_defi_design/assets/languages/atomic_defi_fr.ts b/atomic_defi_design/assets/languages/atomic_defi_fr.ts index 6f3d141ecd..51e19feeb5 100644 --- a/atomic_defi_design/assets/languages/atomic_defi_fr.ts +++ b/atomic_defi_design/assets/languages/atomic_defi_fr.ts @@ -489,7 +489,7 @@ App - + Recover Funds Result Le résultat de la récupération des fonds @@ -1230,7 +1230,7 @@ DexAppPasswordField - + Type password Tapez votre mot de passe @@ -1274,7 +1274,7 @@ DexPaginator - + items per page Nombres d'éléments par page @@ -1300,7 +1300,7 @@ DexSweetComboBox - + Search Rechercher @@ -1417,80 +1417,10 @@ Les frais seront calculés - - FirstLaunch - - - Type password - Tapez votre mot de passe - - - - connect - Connection - - - - Welcome - Bienvenue - - - - New Wallet - Nouveau portefeuille - - - - Import wallet - - - - - My Wallets - Mes portefeuilles - - - - - Delete - Supprimez - - - - Enter password to confirm deletion of - Entrez le mot de passe pour confirmer la suppression de - - - - wallet - portefeuille - - - - Cancel - Annuler - - - - - Wallet status - État du portefeuille - - - - wallet deleted successfully - portefeuille supprimé avec succès - - - - wallet password entered is incorrect - Le mot de passe du portefeuille est incorrect - - General - + %n day(s) %n jour(s) @@ -1498,7 +1428,7 @@ - + %nd day @@ -1507,7 +1437,7 @@ - + %nh hours @@ -1516,7 +1446,7 @@ - + %nm minutes @@ -1525,7 +1455,7 @@ - + %ns seconds @@ -1534,7 +1464,7 @@ - + %nms milliseconds @@ -1543,66 +1473,66 @@ - + - - - + 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 Veuillez remplir le champ de volume - - + + %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 @@ -1610,27 +1540,27 @@ Header - + You get Vous recevez - + You send Vous envoyez - + Fiat Price Prix fiduciaire - + CEX rate Taux CEX - + Price Prix @@ -1640,7 +1570,7 @@ Quantité - + Total Total @@ -1654,26 +1584,73 @@ - InitialLoading + ImportWallet - - Loading, please wait - Chargement en cours, veuillez patienter + + Failed to Import the wallet + - - Initializing MM2 - Initialisation de MM2 + + Import wallet - Setup + - - Enabling assets - Activer les actifs + + Import wallet - Choose password + - - Getting ready - Chargement + + Wallet Name + Nom du portefeuille + + + + + Enter seed + Entrez la phrase de récupération + + + + BIP39 seed validation failed, try again or select 'Allow custom seed' + Échec de la validation de la phrase de récupération BIP39, réessayez ou sélectionnez ' Autoriser les phrases de récupérations personnalisées' + + + + Allow custom seed + Autoriser les phrases de récupération personnalisées + + + + <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 + + + + + Enable + Activer + + + + Next + Suivant + + + + Continue + Continuer @@ -1732,32 +1709,39 @@ - Login + Logging - - Incorrect Password - Mot de passe incorrect + + Loading, please wait + Chargement en cours, veuillez patienter - - - Login - Connection + + Initializing MM2 + Initialisation de MM2 - - Type password - Tapez votre mot de passe + + Enabling assets + Activer les actifs - - Back - Retour + + Getting ready + Chargement + + + + Login + + + Incorrect Password + Mot de passe incorrect - - Connect - Connexion + + connect + Connection @@ -2016,85 +2000,85 @@ - NewUser + NewWallet - + Wrong word, please check again - Mauvais mot, veuillez vérifier à nouveau + Mauvais mot, veuillez vérifier à nouveau - + Failed to create a wallet - Impossible de créer un portefeuille + Impossible de créer un portefeuille - - Choose Password - Choisissez un mot de passe + + New Wallet + Nouveau portefeuille - - Important: Back up your seed phrase before proceeding! - Important: sauvegardez votre phrase de recupération avant de continuer ! + + Confirm Seed + Confirmer la phrase de récupération - - We recommend storing it offline. - Nous vous recommandons de le stocker hors ligne. + + Choose Password + Choisissez un mot de passe - - Generated Seed - Générer un Seed + + Important: Back up your seed phrase before proceeding! + Important: sauvegardez votre phrase de recupération avant de continuer ! - - Check - Vérifier + + We recommend storing it offline. + Nous vous recommandons de le stocker hors ligne. - - New Wallet - Nouveau portefeuille + + Generated Seed + Générer un Seed - - Confirm Seed - Confirmer la phrase de récupération + + Copied to Clipboard + Copier dans le presse-papier - - Continue - Continuer + + Next + Suivant - + Let's double check your seed phrase - Vérifions à nouveau votre phrase de récupération - - - - Copied to Clipboard - Copier dans le presse-papier - - - - Next - Suivant + 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. + 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 %n. word - + Entrez le mot numéro %n Entrez le mot numéro %n + + + Check + Vérifier + + + + Continue + Continuer + NoConnection @@ -2338,7 +2322,7 @@ Curseur droit : définit le volume que vous souhaitez trader. OrderList - + No results found @@ -2470,38 +2454,38 @@ Curseur droit : définit le volume que vous souhaitez trader. OrdersPage - + From De - + To Vers - + Apply Filter Appliquer les changements - - + + Filter Filtrer - + Date Date - + Export CSV Exporter CSV - + Please choose the CSV export name and location Veuillez choisir le nom et l'emplacement de l'exportation CSV @@ -2581,22 +2565,22 @@ Curseur droit : définit le volume que vous souhaitez trader. - + Show only coins with balance Afficher uniquement les assets avec solde - + (%1/%2) - + Portfolio - + Add asset Ajouter un actif @@ -2604,38 +2588,38 @@ Curseur droit : définit le volume que vous souhaitez trader. PriceLine - + Set swap price for evaluation Définir le prix d'échange pour l'évaluation - + Exchange rate Taux de l'échange - + Selected Choisi - + Expensive Coûteuse - + Expedient Abordable - + %1 compared to CEX PRICE_DIFF% %1 par rapport aux CEX - + CEXchange rate Taux du CEX @@ -2682,17 +2666,17 @@ Curseur droit : définit le volume que vous souhaitez trader. ProView - + Failed to place the order Échec lors du placement de l'ordre - + Placed the order L'ordre a été placé avec succès - + Chart Chart @@ -2702,52 +2686,52 @@ Curseur droit : définit le volume que vous souhaitez trader. Informations de Trading - + Exchange Rates Taux d'échanges - + Orders Ordres - + History Historique - + Order Book Carnet d'ordres - + Best Orders Meilleurs offres - + Place Order Placer l'ordre - + Buy Acheter - + Sell Vendre - + Order Selected Ordre séléctionné - + Start Swap Commencez le swap @@ -2781,131 +2765,61 @@ Curseur droit : définit le volume que vous souhaitez trader. Fermer - - RecoverSeed - - - Failed to Import the wallet - - - - - Import wallet - Setup - - - - - Import wallet - Choose password - - - - - Wallet Name - Nom du portefeuille - - - - - Enter seed - Entrez la phrase de récupération - - - - BIP39 seed validation failed, try again or select 'Allow custom seed' - Échec de la validation de la phrase de récupération BIP39, réessayez ou sélectionnez ' Autoriser les phrases de récupérations personnalisées' - - - - <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 - - - - - Enable - Activer - - - - Next - Suivant - - - - Continue - Continuer - - - - Allow custom seed - Autoriser les phrases de récupération personnalisées - - RecoverSeedModal - - + + View seed and private keys Afficher le seed et les clefs privées - + Please enter your password to view the seed. Veuillez entrer votre mot de passe pour voir la phrase de récupération. - + Wrong Password Mauvais mot de passe - + Cancel Annuler - + Backup seed Seed de récuperation - + RPC Password Mot de passe RPC - + Search a coin. Rechercher une asset. - + Public Address Adresse publique - + Private Key Clé privée - + Close Fermer - + View Voir @@ -3270,7 +3184,7 @@ Curseur droit : définit le volume que vous souhaitez trader. Confirmer - + Changing theme to %1 @@ -3295,62 +3209,62 @@ Curseur droit : définit le volume que vous souhaitez trader. 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 - + DEX Version - + DEX Version copied to clipboard. - + MM2 version Version de MM2 - + MM2 Version - + MM2 Version copied to clipboard. - + Qt version Version de Qt - + Qt Version - + Qt Version copied to clipboard. - + Search Update Rechercher une mise à jour - + Logout Se déconnecter @@ -3360,28 +3274,28 @@ Curseur droit : définit le volume que vous souhaitez trader. - + 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 @@ -3478,32 +3392,32 @@ Curseur droit : définit le volume que vous souhaitez trader. SubBestOrder - + Token Asset - + Available Quantity Quantité disponible - + Available Quantity (in %1) Quantité disponible (en %1) - + Fiat Volume Montant Fiduciaire - + CEX Rate 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> @@ -3826,7 +3740,7 @@ Les frais de réseau peuvent varier considérablement en fonction de votre paire SweetDexComboBox - + Search Rechercher @@ -3896,22 +3810,22 @@ Les frais de réseau peuvent varier considérablement en fonction de votre paire Entrez un montant - + MAX MAX - + To Vers - + Pick an order Choisir une commande - + Price Prix @@ -3951,70 +3865,70 @@ Les frais de réseau peuvent varier considérablement en fonction de votre paire - + 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 - - + + Search Rechercher - + No buy orders found for %1. - + You can check later or try to sell a different coin. - + Total %1 fees: Frais totaux %1 : - + %2 (%3) @@ -4139,6 +4053,71 @@ Les frais de réseau peuvent varier considérablement en fonction de votre paire Entrez le nom du portefeuille ici + + WalletsView + + + Welcome + Bienvenue + + + + New Wallet + Nouveau portefeuille + + + + Import wallet + + + + + My Wallets + Mes portefeuilles + + + + + Delete + Supprimez + + + + Enter password to confirm deletion of + Entrez le mot de passe pour confirmer la suppression de + + + + wallet + portefeuille + + + + Type password + Tapez votre mot de passe + + + + Cancel + Annuler + + + + + Wallet status + État du portefeuille + + + + wallet deleted successfully + portefeuille supprimé avec succès + + + + wallet password entered is incorrect + Le mot de passe du portefeuille est incorrect + + atomic_dex::wallet_page @@ -4205,32 +4184,32 @@ Les frais de réseau peuvent varier considérablement en fonction de votre paire main - + Logout Se déconnecter - + Confirm Logout Confirmer la déconnexion - + Are you sure you want to log out? Êtes-vous sûr de vouloir vous déconnecter ? - + Yes Oui - + Cancel Annuler - + Balance Balance diff --git a/atomic_defi_design/assets/languages/atomic_defi_ru.ts b/atomic_defi_design/assets/languages/atomic_defi_ru.ts index eca53557b5..cbd3779a71 100644 --- a/atomic_defi_design/assets/languages/atomic_defi_ru.ts +++ b/atomic_defi_design/assets/languages/atomic_defi_ru.ts @@ -489,7 +489,7 @@ App - + Recover Funds Result Результат восстановления средств @@ -1230,7 +1230,7 @@ DexAppPasswordField - + Type password Введите пароль @@ -1275,7 +1275,7 @@ DexPaginator - + items per page элементов на странице @@ -1301,7 +1301,7 @@ DexSweetComboBox - + Search Поиск @@ -1418,80 +1418,10 @@ Комиссия будет рассчитана - - FirstLaunch - - - Type password - Введите пароль - - - - connect - подключиться - - - - Welcome - Добро пожаловать - - - - New Wallet - Новый кошелек - - - - Import wallet - Импортировать кошелек - - - - My Wallets - Мои кошельки - - - - - Delete - Удалить - - - - Enter password to confirm deletion of - Введите пароль чтобы подтвердить удаление - - - - wallet - кошелек - - - - Cancel - Отмена - - - - - Wallet status - Статус кошелька - - - - wallet deleted successfully - кошелек успешно удален - - - - wallet password entered is incorrect - введен неверный пароль к кошельку - - General - + %n day(s) %n день @@ -1500,7 +1430,7 @@ - + %nd day @@ -1510,7 +1440,7 @@ - + %nh hours @@ -1520,7 +1450,7 @@ - + %nm minutes @@ -1530,7 +1460,7 @@ - + %ns seconds @@ -1540,7 +1470,7 @@ - + %nms milliseconds @@ -1550,66 +1480,66 @@ - + - - - + 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 Пожалуйста, укажите сумму - - + + %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 Неизвестная ошибка @@ -1617,27 +1547,27 @@ Header - + You get Вы получите - + You send Вы отправите - + Fiat Price фиатная цена - + CEX rate Цена на CEX - + Price Цена @@ -1647,7 +1577,7 @@ Количество - + Total Всего @@ -1661,26 +1591,73 @@ - InitialLoading + ImportWallet - - Loading, please wait - Загрузка. Пожалуйста, подождите + + Failed to Import the wallet + Не удалось импортировать кошелек - - Initializing MM2 - Инициализация MM2 + + Import wallet - Setup + Импорт кошелька - Введите данные - - Enabling assets - Добавление ассетов + + Import wallet - Choose password + Импорт кошелька - Задайте пароль - - Getting ready - Подготовка + + Wallet Name + Название кошелька + + + + + Enter seed + Введите сид-фразу + + + + BIP39 seed validation failed, try again or select 'Allow custom seed' + BIP39 валидация сид-фразы неуспешна, пожалуйста попробуйте снова или выберите 'Разрешить пользовательский формат сид-фразы' + + + + 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 + + + + + Enable + Добавить + + + + Next + Далее + + + + Continue + Продолжить @@ -1739,32 +1716,39 @@ - Login + Logging - - Incorrect Password - Неправильный пароль + + Loading, please wait + Загрузка. Пожалуйста, подождите - - - Login - Вход + + Initializing MM2 + Инициализация MM2 - - Type password - Введите пароль + + Enabling assets + Добавление ассетов - - Back - Назад + + Getting ready + Подготовка + + + Login - - Connect - Подключиться + + Incorrect Password + Неправильный пароль + + + + connect + подключиться @@ -2023,86 +2007,86 @@ - NewUser + NewWallet - + Wrong word, please check again - Неверное слово. Пожалуйста, попробуйте еще раз + Неверное слово. Пожалуйста, попробуйте еще раз - + Failed to create a wallet - Ошибка при создании кошелька + Ошибка при создании кошелька - + New Wallet - Новый кошелек - - - - Choose Password - Задайте пароль + Новый кошелек - - Generated Seed - Сгенерированный seed ключ + + Confirm Seed + Подтвердить seed ключ - - Check - Проверить + + Choose Password + Задайте пароль - + Important: Back up your seed phrase before proceeding! - Важно: убедитесь, что вы сохранили ваш seed ключ, прежде чем продолжить! + Важно: убедитесь, что вы сохранили ваш seed ключ, прежде чем продолжить! - + We recommend storing it offline. - Мы рекумендуем хранить его офлайн. - - - - Confirm Seed - Подтвердить seed ключ - - - - Continue - Продолжить + Мы рекумендуем хранить его офлайн. - - Let's double check your seed phrase - Давайте перепроверим ваш seed ключ + + Generated Seed + Сгенерированный 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 ключе, чтобы убедиться, что вы сможете легко восстановить свой кошелек, когда захотите. + Ваш seed ключ важен, и поэтому мы хотим убедиться, что вы его сохранили. Мы зададим вам три разных вопроса о вашем seed ключе, чтобы убедиться, что вы сможете легко восстановить свой кошелек, когда захотите. - + Enter the %n. word - + Введите %nе слово Введите %nе слово Введите %nе слово + + + Check + Проверить + + + + Continue + Продолжить + NoConnection @@ -2346,7 +2330,7 @@ Right slider: Sets the volume you want to trade. OrderList - + No results found @@ -2478,38 +2462,38 @@ Right slider: Sets the volume you want to trade. OrdersPage - + From От - + To Кому - + Export CSV Скачать CSV - - + + Filter Фильтр - + Date Дата - + Apply Filter Применить фильтр - + Please choose the CSV export name and location Выберите название и расположение загружаемого файла @@ -2590,22 +2574,22 @@ Right slider: Sets the volume you want to trade. - + Show only coins with balance Показывать только монеты с балансом - + (%1/%2) - + Portfolio - + Add asset Добавить крипто актив @@ -2613,38 +2597,38 @@ Right slider: Sets the volume you want to trade. PriceLine - + Set swap price for evaluation Установите цену для оценки - + Exchange rate Обменный курс - + Selected Выбрано - + Expensive Невыгодный курс - + Expedient Выгодный курс - + %1 compared to CEX PRICE_DIFF% %1 по сравнению с CEX - + CEXchange rate CEXchange Цена @@ -2691,17 +2675,17 @@ Right slider: Sets the volume you want to trade. ProView - + Failed to place the order Не удалось разместить ордер - + Placed the order Ордер размещен - + Chart График @@ -2711,52 +2695,52 @@ Right slider: Sets the volume you want to trade. Торговая информация - + Exchange Rates Курс обмена - + Orders Ордеры - + History История - + Order Book Ордербук - + Best Orders Лучшие ордеры - + Place Order Разместить ордер - + Buy Купить - + Sell Продать - + Order Selected Ордер выбран - + Start Swap Начать Своп @@ -2790,131 +2774,61 @@ Right slider: Sets the volume you want to trade. Закрыть - - RecoverSeed - - - Failed to Import the wallet - Не удалось импортировать кошелек - - - - Import wallet - Setup - Импорт кошелька - Введите данные - - - - Import wallet - Choose password - Импорт кошелька - Задайте пароль - - - - Wallet Name - Название кошелька - - - - - Enter seed - Введите сид-фразу - - - - BIP39 seed validation failed, try again or select 'Allow custom seed' - BIP39 валидация сид-фразы неуспешна, пожалуйста попробуйте снова или выберите 'Разрешить пользовательский формат сид-фразы' - - - - <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 - - - - - Enable - Добавить - - - - Next - Далее - - - - Continue - Продолжить - - - - Allow custom seed - Разрешить пользовательский формат сид-фразы - - RecoverSeedModal - - + + View seed and private keys Показать seed-фразу и приватные ключи - + Please enter your password to view the seed. Введите пароль для отображения seed ключа. - + Wrong Password Неправильный пароль - + Cancel Отменить - + Backup seed Сделать бекап seed-фразы - + RPC Password RPC Пароль - + Search a coin. Поиск актива. - + Public Address Публичный адрес - + Private Key Приватный ключ - + Close Закрыть - + View Показать @@ -3279,7 +3193,7 @@ Right slider: Sets the volume you want to trade. - + Changing theme to %1 @@ -3304,62 +3218,62 @@ Right slider: Sets the volume you want to trade. Тема - + Ask system's password before sending coins ? (2FA) Спрашивать системный пароль перед отправкой монет? (2FA) - + Application version Версия приложения - + DEX Version - + DEX Version copied to clipboard. - + MM2 version Версия MM2 - + MM2 Version - + MM2 Version copied to clipboard. - + Qt version Версия Qt - + Qt Version - + Qt Version copied to clipboard. - + Search Update Проверить на обновления - + Logout Выход @@ -3369,28 +3283,28 @@ Right slider: Sets the volume you want to trade. - + View seed and private keys Показать seed-фразу и приватные ключи - - + + Show Показать - + Setup Camouflage Password Установить камуфляжный пароль - + Open Установить - + Disclaimer and ToS Дисклеймер и Условия Использования @@ -3487,32 +3401,32 @@ Right slider: Sets the volume you want to trade. SubBestOrder - + Token Токен - + Available Quantity Доступное количество - + Available Quantity (in %1) Доступное количество (в %1) - + Fiat Volume Фиатный объем - + CEX Rate 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> @@ -3840,7 +3754,7 @@ Network fees can vary greatly depending on your selected trading pair. SweetDexComboBox - + Search Поиск @@ -3910,22 +3824,22 @@ Network fees can vary greatly depending on your selected trading pair. Введите количество - + MAX МАКС - + To Получатель - + Pick an order Выберите ордер - + Price Цена @@ -3965,70 +3879,70 @@ Network fees can vary greatly depending on your selected trading pair. - + 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 транзакций - - + + Search Поиск - + No buy orders found for %1. - + You can check later or try to sell a different coin. - + Total %1 fees: Всего %1 комиссий: - + %2 (%3) @@ -4154,6 +4068,71 @@ Network fees can vary greatly depending on your selected trading pair. Название кошелька + + WalletsView + + + Welcome + Добро пожаловать + + + + New Wallet + Новый кошелек + + + + Import wallet + Импортировать кошелек + + + + My Wallets + Мои кошельки + + + + + Delete + Удалить + + + + Enter password to confirm deletion of + Введите пароль чтобы подтвердить удаление + + + + wallet + кошелек + + + + Type password + Введите пароль + + + + Cancel + + + + + + Wallet status + Статус кошелька + + + + wallet deleted successfully + кошелек успешно удален + + + + wallet password entered is incorrect + введен неверный пароль к кошельку + + atomic_dex::wallet_page @@ -4220,32 +4199,32 @@ Network fees can vary greatly depending on your selected trading pair. main - + Logout Выход - + Confirm Logout Подтверждение выхода - + Are you sure you want to log out? Вы действительно хотите выйти? - + Yes Да - + Cancel Отменить - + Balance Баланс diff --git a/atomic_defi_design/assets/languages/atomic_defi_tr.ts b/atomic_defi_design/assets/languages/atomic_defi_tr.ts index 4f42bd93c5..8b33599244 100644 --- a/atomic_defi_design/assets/languages/atomic_defi_tr.ts +++ b/atomic_defi_design/assets/languages/atomic_defi_tr.ts @@ -487,7 +487,7 @@ App - + Recover Funds Result Fon Kurtarma Sonucu @@ -1228,7 +1228,7 @@ DexAppPasswordField - + Type password @@ -1271,7 +1271,7 @@ DexPaginator - + items per page sayfa başına öğe @@ -1297,7 +1297,7 @@ DexSweetComboBox - + Search Ara @@ -1414,87 +1414,17 @@ Ücretler hesaplanacak - - FirstLaunch - - - Type password - - - - - connect - - - - - Welcome - Hoşgeldiniz - - - - New Wallet - Yeni Cüzdan - - - - Import wallet - - - - - My Wallets - Cüzdanlarım - - - - - Delete - Sil - - - - Enter password to confirm deletion of - - - - - wallet - - - - - Cancel - İptal - - - - - Wallet status - - - - - wallet deleted successfully - - - - - wallet password entered is incorrect - - - General - + %n day(s) %n gün - + %nd day @@ -1502,7 +1432,7 @@ - + %nh hours @@ -1510,7 +1440,7 @@ - + %nm minutes @@ -1518,7 +1448,7 @@ - + %ns seconds @@ -1526,7 +1456,7 @@ - + %nms milliseconds @@ -1534,66 +1464,66 @@ - + - - - + 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 Lütfen hacim alanını doldurunuz - - + + %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 @@ -1601,27 +1531,27 @@ Header - + You get Alacağınız - + You send Göndereceğiniz - + Fiat Price Döviz Fiyatı - + CEX rate CEX oranı - + Price Fiyat @@ -1631,7 +1561,7 @@ Miktar - + Total Toplam @@ -1645,26 +1575,73 @@ - InitialLoading + ImportWallet - - Loading, please wait - Yükleniyor, lütfen bekleyiniz + + Failed to Import the wallet + - - Initializing MM2 - MM2 başlatılıyor + + Import wallet - Setup + - - Enabling assets - Varlıklar etkinleştiriliyor + + Import wallet - Choose password + - - Getting ready - Hazırlanıyor + + Wallet Name + Cüzdan Adı + + + + + Enter seed + + + + + BIP39 seed validation failed, try again or select 'Allow custom seed' + + + + + 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. + + + + + + I understand + + + + + Enable + Etkinleştir + + + + Next + İleri + + + + Continue + Devam @@ -1723,31 +1700,38 @@ - Login + Logging - - Incorrect Password - Yanlış Parola + + Loading, please wait + Yükleniyor, lütfen bekleyiniz - - - Login - Giriş + + Initializing MM2 + MM2 başlatılıyor - - Type password - + + Enabling assets + Varlıklar etkinleştiriliyor - - Back - Geri + + Getting ready + Hazırlanıyor + + + + Login + + + Incorrect Password + Yanlış Parola - - Connect + + connect @@ -2007,84 +1991,84 @@ - NewUser + NewWallet - + Wrong word, please check again - Hatalı kelime, lütfen kontrol ediniz + Hatalı kelime, lütfen kontrol ediniz - + Failed to create a wallet - Cüzdan oluşturulamadı - - - - Choose Password - - - - - Important: Back up your seed phrase before proceeding! - Önemli: Devam etmeden önce seed kelimelerinizi yedekleyin! + Cüzdan oluşturulamadı - - We recommend storing it offline. - Çevrimdışı saklamanızı öneririz. + + New Wallet + Yeni Cüzdan - - Generated Seed - Seed Oluştur + + Confirm Seed + Seed'i Onayla - - Check + + Choose Password - - New Wallet - Yeni Cüzdan - - - - Confirm Seed - Seed'i Onayla + + Important: Back up your seed phrase before proceeding! + Önemli: Devam etmeden önce seed kelimelerinizi yedekleyin! - - Continue - Devam + + We recommend storing it offline. + Çevrimdışı saklamanızı öneririz. - - Let's double check your seed phrase - Seed kelimelerinizi tekrar kontrol edelim + + Generated Seed + Seed Oluştur - + Copied to Clipboard Panoya Kopyalandı - + 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. + 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 %n. word - + %n. kelimeyi giriniz + + + Check + + + + + Continue + Devam + NoConnection @@ -2326,7 +2310,7 @@ Right slider: Sets the volume you want to trade. OrderList - + No results found @@ -2458,38 +2442,38 @@ Right slider: Sets the volume you want to trade. OrdersPage - + From Gönderen - + To Alan - + Apply Filter Filtreyi Uygula - - + + Filter - + Date Tarih - + Export CSV CSV'yi dışa aktar - + Please choose the CSV export name and location Lütfen CSV dışa aktarma adını ve konumunu seçin @@ -2568,22 +2552,22 @@ Right slider: Sets the volume you want to trade. - + Show only coins with balance Sadece bakiyesi olan koinleri göster - + (%1/%2) - + Portfolio - + Add asset Varlık ekle @@ -2591,38 +2575,38 @@ Right slider: Sets the volume you want to trade. PriceLine - + Set swap price for evaluation Değerlendirme için takas fiyatı belirleyin - + Exchange rate Döviz kuru - + Selected Seçili - + Expensive Pahalı - + Expedient Uygun - + %1 compared to CEX PRICE_DIFF% CEX ile karşılaştırıldığında %1 - + CEXchange rate CEXchange kuru @@ -2669,17 +2653,17 @@ Right slider: Sets the volume you want to trade. ProView - + Failed to place the order Emir başarısız oldu - + Placed the order Emir başarılı - + Chart Grafik @@ -2689,52 +2673,52 @@ Right slider: Sets the volume you want to trade. Al Sat Bilgisi - + Exchange Rates Döviz kurları - + Orders Emirler - + History Tarihçe - + Order Book Emir Defteri - + Best Orders En İyi Emirler - + Place Order Emir Ver - + Buy Al - + Sell Sat - + Order Selected Emir Seçildi - + Start Swap Takas Başlat @@ -2768,131 +2752,61 @@ Right slider: Sets the volume you want to trade. Kapat - - RecoverSeed - - - Failed to Import the wallet - - - - - Import wallet - Setup - - - - - Import wallet - Choose password - - - - - Wallet Name - Cüzdan Adı - - - - - Enter seed - - - - - BIP39 seed validation failed, try again or select '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 - - - - - Enable - Etkinleştir - - - - Next - İleri - - - - Continue - Devam - - - - Allow custom seed - Özel Seed'e izin ver - - RecoverSeedModal - - + + View seed and private keys Seed ve özel anahtarları görüntüle - + Please enter your password to view the seed. Seed'i görmek için lütfen parolanızı giriniz. - + Wrong Password Yanlış Parola - + Cancel İptal - + Backup seed Seed'i yedekle - + RPC Password RPC Parolası - + Search a coin. Koin ara. - + Public Address Public Adres - + Private Key Private Key - + Close Kapat - + View Görüntüle @@ -3257,7 +3171,7 @@ Right slider: Sets the volume you want to trade. Onayla - + Changing theme to %1 @@ -3282,62 +3196,62 @@ Right slider: Sets the volume you want to trade. Tema - + Ask system's password before sending coins ? (2FA) Para göndermeden önce sistem parolası sorulsun mu ? (2FA) - + Application version Uygulama sürümü - + DEX Version - + DEX Version copied to clipboard. - + 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ış @@ -3347,28 +3261,28 @@ Right slider: Sets the volume you want to trade. - + View seed and private keys Seed ve özel anahtarları görüntüle - - + + Show Göster - + Setup Camouflage Password Kamuflaj Parolasını Ayarla - + Open - + Disclaimer and ToS Sorumluluk Reddi ve K.Ş. @@ -3465,32 +3379,32 @@ Right slider: Sets the volume you want to trade. SubBestOrder - + Token Token - + Available Quantity Mevcut Miktar - + Available Quantity (in %1) Mevcut Miktar (%1 olarak) - + Fiat Volume Fiat Hacmi - + CEX Rate 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> @@ -3818,7 +3732,7 @@ Ağ ücretleri, seçtiğiniz işlem çiftine bağlı olarak büyük ölçüde de SweetDexComboBox - + Search Ara @@ -3888,22 +3802,22 @@ Ağ ücretleri, seçtiğiniz işlem çiftine bağlı olarak büyük ölçüde de Bir miktar gir - + MAX MAKS - + To Alan - + Pick an order Emri seç - + Price Fiyat @@ -3943,70 +3857,70 @@ Ağ ücretleri, seçtiğiniz işlem çiftine bağlı olarak büyük ölçüde de - + Swap Now Şimdi Takasla - + 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 - - + + Search Ara - + No buy orders found for %1. - + You can check later or try to sell a different coin. - + Total %1 fees: Toplam %1 işlem giderleri: - + %2 (%3) %2 (%3) @@ -4131,6 +4045,71 @@ Ağ ücretleri, seçtiğiniz işlem çiftine bağlı olarak büyük ölçüde de Cüzdanınızın adını giriniz + + WalletsView + + + Welcome + Hoşgeldiniz + + + + New Wallet + Yeni Cüzdan + + + + Import wallet + + + + + My Wallets + Cüzdanlarım + + + + + Delete + Sil + + + + Enter password to confirm deletion of + + + + + wallet + + + + + Type password + + + + + Cancel + + + + + + Wallet status + + + + + wallet deleted successfully + + + + + wallet password entered is incorrect + + + atomic_dex::wallet_page @@ -4197,32 +4176,32 @@ Ağ ücretleri, seçtiğiniz işlem çiftine bağlı olarak büyük ölçüde de main - + Logout Çıkış - + Confirm Logout - + Are you sure you want to log out? - + Yes Evet - + Cancel İptal - + Balance Bakiye diff --git a/atomic_defi_design/qml.qrc b/atomic_defi_design/qml.qrc index d118431f00..17f8149bf3 100644 --- a/atomic_defi_design/qml.qrc +++ b/atomic_defi_design/qml.qrc @@ -86,6 +86,7 @@ assets/images/coins/doge.png assets/images/coins/dot.png assets/images/coins/dp.png + assets/images/coins/dust.png assets/images/coins/dx.png assets/images/coins/eca.png assets/images/coins/efl.png @@ -101,6 +102,7 @@ assets/images/coins/ethr.png assets/images/coins/eurs.png assets/images/coins/fet.png + assets/images/coins/flux.png assets/images/coins/fil.png assets/images/coins/firo.png assets/images/coins/fjc.png @@ -162,6 +164,7 @@ assets/images/coins/morty.png assets/images/coins/movr.png assets/images/coins/mshark.png + assets/images/coins/mtsla.png assets/images/coins/nav.png assets/images/coins/near.png assets/images/coins/nexo.png @@ -179,6 +182,7 @@ assets/images/coins/pic.png assets/images/coins/pnk.png assets/images/coins/powr.png + assets/images/coins/ppc.png assets/images/coins/put.png assets/images/coins/qbt.png assets/images/coins/qc.png @@ -189,6 +193,7 @@ assets/images/coins/qrc-20.png assets/images/coins/qrc20.png assets/images/coins/qtum.png + assets/images/coins/rbtc.png assets/images/coins/ren.png assets/images/coins/rep.png assets/images/coins/rev.png @@ -205,8 +210,6 @@ assets/images/coins/sibm.png assets/images/coins/skl.png assets/images/coins/smart-chain.png - assets/images/coins/smtf-old.png - assets/images/coins/smtf-v2.png assets/images/coins/smtf.png assets/images/coins/snt.png assets/images/coins/snx.png @@ -223,6 +226,7 @@ assets/images/coins/sys.png assets/images/coins/tblk.png assets/images/coins/tbtc.png + assets/images/coins/tel.png assets/images/coins/thc.png assets/images/coins/thx.png assets/images/coins/tkl.png @@ -281,6 +285,8 @@ assets/images/providers/binance.png assets/images/providers/coingecko.png assets/images/providers/coinpaprika.png + assets/images/providers/forex.png + assets/images/providers/nomics.png assets/images/dashboard-copy.svg assets/images/dashboard-eye-hide.svg assets/images/dashboard-eye.svg @@ -533,11 +539,13 @@ Dex/NoConnection.qml Dex/Portfolio/Portfolio.qml Dex/Screens/Dashboard.qml - Dex/Screens/FirstLaunch.qml - Dex/Screens/InitialLoading.qml - Dex/Screens/Login.qml - Dex/Screens/NewUser.qml - Dex/Screens/RecoverSeed.qml + Dex/Screens/qmldir + Dex/Screens/Startup/ImportWallet.qml + Dex/Screens/Startup/Logging.qml + Dex/Screens/Startup/Login.qml + Dex/Screens/Startup/Main.qml + Dex/Screens/Startup/NewWallet.qml + Dex/Screens/Startup/WalletsView.qml Dex/Settings/AddCustomCoinModal.qml Dex/Settings/CamouflagePasswordModal.qml Dex/Settings/Combo_fiat.qml diff --git a/ci_tools_atomic_dex/ci_scripts/windows_script.ps1 b/ci_tools_atomic_dex/ci_scripts/windows_script.ps1 index 075c4d16fc..b082b6cc83 100644 --- a/ci_tools_atomic_dex/ci_scripts/windows_script.ps1 +++ b/ci_tools_atomic_dex/ci_scripts/windows_script.ps1 @@ -1,11 +1,6 @@ Set-ExecutionPolicy RemoteSigned -scope CurrentUser -$DWFILE = ($PWD | select -exp Path) + '\nim-1.2.6.zip' -(New-Object System.Net.WebClient).DownloadFile('https://github.com/KomodoPlatform/nim_kmd_package_list/raw/master/nim-1.2.6_x64.zip', $DWFILE) -$DWFOLDER = ($PWD | select -exp Path) -Expand-Archive -LiteralPath $DWFILE -DestinationPath $DWFOLDER -$ENV:PATH=$ENV:PATH+';'+($PWD | select -exp Path)+'\nim-1.2.6\bin;'+$ENV:UserProfile+'.nimble\bin' -& $DWFOLDER\nim-1.2.6\finish.exe -y + Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') scoop install llvm --global @@ -18,14 +13,10 @@ scoop cache rm git scoop cache rm cmake scoop cache rm ninja scoop cache rm llvm -scoop cache rm nim $Env:QT_INSTALL_CMAKE_PATH = "C:\Qt\$Env:QT_VERSION\msvc2019_64" $Env:QT_ROOT = "C:\Qt" -cd ci_tools_atomic_dex -#$file = 'src\generate.nim' -#$regex = '(?<=g_vcpkg_cmake_script_path & ")[^"]*' -#(Get-Content $file) -replace $regex, ' -DVCPKG_TARGET_TRIPLET=x64-windows ' | Set-Content $file -nimble build -y -#cmd /c '.\ci_tools_atomic_dex.exe build release 2>&1' -cmd /c '.\ci_tools_atomic_dex.exe bundle release 2>&1' -#ls bundle-Release/bundle.zip +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -GNinja ../ +ninja +ninja install 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 e627fbdcce..c57c7c8b86 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.2 + 0.5.3 ${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 b13a298e5e..8430b67c98 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.2 - 2021-09-23 + 0.5.3 + 2021-11-10 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 7172d1cb0a..3d3d782642 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.2 + 0.5.3 @DEX_DISPLAY_NAME@ Installer @DEX_WEBSITE@ @DEX_COMPANY@ 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 b13a298e5e..8430b67c98 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,8 +2,8 @@ ${DEX_DISPLAY_NAME} Install ${DEX_DISPLAY_NAME}. - 0.5.2 - 2021-09-23 + 0.5.3 + 2021-11-10 diff --git a/cmake/install/macos/dex_install.cmake b/cmake/install/macos/dex_install.cmake index 59dd822705..a785fb56ea 100644 --- a/cmake/install/macos/dex_install.cmake +++ b/cmake/install/macos/dex_install.cmake @@ -4,8 +4,8 @@ if (APPLE) MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}" RESOURCE ${ICON} MACOSX_BUNDLE_ICON_FILE dex-logo - MACOSX_BUNDLE_SHORT_VERSION_STRING 0.5.2 - MACOSX_BUNDLE_LONG_VERSION_STRING 0.5.2 + MACOSX_BUNDLE_SHORT_VERSION_STRING 0.5.3 + MACOSX_BUNDLE_LONG_VERSION_STRING 0.5.3 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 565be0c2dd..4b921f9ccb 100644 --- a/cmake/install/macos/osx_post_install.cmake +++ b/cmake/install/macos/osx_post_install.cmake @@ -87,10 +87,10 @@ if (NOT EXISTS ${CMAKE_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.dmg) ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE) - execute_process(COMMAND ${PROJECT_ROOT_DIR}/cmake/install/macos/macos_notarize.sh --app-specific-password=$ENV{APPLE_ATOMICDEX_PASSWORD} --apple-id=$ENV{APPLE_ID} --primary-bundle-id=com.komodoplatform.atomicdex --target-binary=${CMAKE_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.dmg - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ECHO_OUTPUT_VARIABLE - ECHO_ERROR_VARIABLE) +# execute_process(COMMAND ${PROJECT_ROOT_DIR}/cmake/install/macos/macos_notarize.sh --app-specific-password=$ENV{APPLE_ATOMICDEX_PASSWORD} --apple-id=$ENV{APPLE_ID} --primary-bundle-id=com.komodoplatform.atomicdex --target-binary=${CMAKE_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.dmg +# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +# ECHO_OUTPUT_VARIABLE +# ECHO_ERROR_VARIABLE) else() message(STATUS "dmg already generated - skipping") endif () @@ -98,7 +98,7 @@ 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.1/bin) +set(IFW_BINDIR ${QT_ROOT_DIR}/Tools/QtInstallerFramework/4.2/bin) message(STATUS "IFW_BIN PATH IS ${IFW_BINDIR}") if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${DEX_PROJECT_NAME}.7z) message(STATUS "Generating ${DEX_PROJECT_NAME}.7z with [${IFW_BINDIR}/archivegen ${DEX_PROJECT_NAME}.7z ${DEX_PROJECT_NAME}.app] from directory: ${CMAKE_CURRENT_SOURCE_DIR}/bin") @@ -123,14 +123,14 @@ execute_process(COMMAND codesign --deep --force -v -s "$ENV{MAC_SIGN_IDENTITY}" ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE) -execute_process(COMMAND ${PROJECT_ROOT_DIR}/cmake/install/macos/macos_notarize.sh --app-specific-password=$ENV{APPLE_ATOMICDEX_PASSWORD} --apple-id=$ENV{APPLE_ID} --primary-bundle-id=com.komodoplatform.atomicdex --target-binary=${PROJECT_ROOT_DIR}/ci_tools_atomic_dex/installer/osx/${DEX_PROJECT_NAME}_installer.app - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ECHO_OUTPUT_VARIABLE - ECHO_ERROR_VARIABLE) +#execute_process(COMMAND ${PROJECT_ROOT_DIR}/cmake/install/macos/macos_notarize.sh --app-specific-password=$ENV{APPLE_ATOMICDEX_PASSWORD} --apple-id=$ENV{APPLE_ID} --primary-bundle-id=com.komodoplatform.atomicdex --target-binary=${PROJECT_ROOT_DIR}/ci_tools_atomic_dex/installer/osx/${DEX_PROJECT_NAME}_installer.app +# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +# ECHO_OUTPUT_VARIABLE +# ECHO_ERROR_VARIABLE) file(COPY ${PROJECT_ROOT_DIR}/ci_tools_atomic_dex/installer/osx/${DEX_PROJECT_NAME}_installer.app DESTINATION ${TARGET_APP_PATH}) execute_process(COMMAND ${IFW_BINDIR}/archivegen ${DEX_PROJECT_NAME}_installer.7z ${DEX_PROJECT_NAME}_installer.app WORKING_DIRECTORY ${TARGET_APP_PATH} ECHO_OUTPUT_VARIABLE - ECHO_ERROR_VARIABLE) \ No newline at end of file + ECHO_ERROR_VARIABLE) diff --git a/cmake/project.metadata.cmake b/cmake/project.metadata.cmake index c03424fd92..c0903b0e84 100644 --- a/cmake/project.metadata.cmake +++ b/cmake/project.metadata.cmake @@ -110,4 +110,4 @@ macro(generate_linux_metafiles) configure_file(${CMAKE_CURRENT_LIST_DIR}/assets/logo/dex-logo-64.png ${CMAKE_CURRENT_LIST_DIR}/cmake/install/linux/dex-logo-64.png COPYONLY) # Configures x64 Linux logo configure_file(${CMAKE_CURRENT_LIST_DIR}/assets/logo/dex-logo.png ${CMAKE_CURRENT_LIST_DIR}/cmake/install/linux/dex-logo.png COPYONLY) -endmacro() \ No newline at end of file +endmacro() diff --git a/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp b/src/core/atomicdex/api/komodo_prices/komodo.prices.cpp index ddb8afeb46..69485f82d2 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.cipig.net:1717"; web::http::client::http_client_config g_komodo_prices_cfg{[]() { web::http::client::http_client_config cfg; @@ -54,6 +54,14 @@ namespace atomic_dex::komodo_prices::api { x = provider::coinpaprika; } + else if (j == "forex") + { + x = provider::forex; + } + else if (j == "nomics") + { + x = provider::nomics; + } else { x = provider::unknown; @@ -68,8 +76,8 @@ namespace atomic_dex::komodo_prices::api { web::http::http_request req; req.set_method(web::http::methods::GET); - SPDLOG_INFO("url: {}", TO_STD_STR(g_komodo_prices_client->base_uri().to_string()) + "api/v1/tickers?expire_at=600"); - req.set_request_uri(FROM_STD_STR("/api/v1/tickers?expire_at=600")); + SPDLOG_INFO("url: {}", TO_STD_STR(g_komodo_prices_client->base_uri().to_string()) + "api/v2/tickers?expire_at=86400"); + req.set_request_uri(FROM_STD_STR("/api/v2/tickers?expire_at=86400")); return g_komodo_prices_client->request(req); } } // namespace atomic_dex::komodo_prices::api diff --git a/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp b/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp index 96458d45ae..72a5edbdc4 100644 --- a/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp +++ b/src/core/atomicdex/api/komodo_prices/komodo.prices.hpp @@ -12,6 +12,8 @@ namespace atomic_dex::komodo_prices::api binance, coingecko, coinpaprika, + forex, + nomics, unknown }; diff --git a/src/core/atomicdex/api/mm2/rpc.enable.cpp b/src/core/atomicdex/api/mm2/rpc.enable.cpp index c707954024..922f929b62 100644 --- a/src/core/atomicdex/api/mm2/rpc.enable.cpp +++ b/src/core/atomicdex/api/mm2/rpc.enable.cpp @@ -134,6 +134,13 @@ namespace mm2::api 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; + } default: break; } diff --git a/src/core/atomicdex/api/mm2/rpc.enable.hpp b/src/core/atomicdex/api/mm2/rpc.enable.hpp index 8e2faa1d66..d4e572da07 100644 --- a/src/core/atomicdex/api/mm2/rpc.enable.hpp +++ b/src/core/atomicdex/api/mm2/rpc.enable.hpp @@ -83,6 +83,10 @@ namespace mm2::api 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}; diff --git a/src/core/atomicdex/config/coins.cfg.cpp b/src/core/atomicdex/config/coins.cfg.cpp index a31d7db26c..942f91cbdf 100644 --- a/src/core/atomicdex/config/coins.cfg.cpp +++ b/src/core/atomicdex/config/coins.cfg.cpp @@ -69,6 +69,11 @@ namespace atomic_dex SPDLOG_INFO("coin: {} support segwit with current_segwit mode: {}", cfg.ticker, cfg.is_segwit_on); } + if (j.contains("alias_ticker")) + { + cfg.alias_ticker = j.at("alias_ticker").get(); + } + j.at("explorer_url").get_to(cfg.explorer_url); if (j.contains("explorer_tx_url")) { @@ -154,6 +159,10 @@ namespace atomic_dex { cfg.coin_type = CoinType::EthereumClassic; } + else if (cfg.type == "RSK Smart Bitcoin") + { + cfg.coin_type = CoinType::RSK; + } if (j.contains("wallet_only")) { cfg.wallet_only = j.at("wallet_only").get(); @@ -235,6 +244,11 @@ namespace atomic_dex cfg.fees_ticker = cfg.is_testnet.value() ? "ETCT" : "ETC"; cfg.is_erc_family = true; break; + case CoinType::RSK: + cfg.has_parent_fees_ticker = true; + cfg.fees_ticker = cfg.is_testnet.value() ? "RBTCT" : "RBTC"; + cfg.is_erc_family = true; + break; case CoinType::SLP: cfg.has_parent_fees_ticker = true; cfg.fees_ticker = "BCH"; diff --git a/src/core/atomicdex/config/coins.cfg.hpp b/src/core/atomicdex/config/coins.cfg.hpp index 3ae11572df..e705630d4c 100644 --- a/src/core/atomicdex/config/coins.cfg.hpp +++ b/src/core/atomicdex/config/coins.cfg.hpp @@ -35,11 +35,12 @@ namespace atomic_dex struct coin_config { public: - static constexpr const char* erc_gas_stations = "https://ethgasstation.info/json/ethgasAPI.json"; + static constexpr const char* erc_gas_stations = "https://ethgasstation.info/json/ethgasAPI.json"; static constexpr const char* matic_gas_stations = "https://gasstation-mainnet.matic.network/"; - using electrum_servers = std::vector; - using nodes = std::vector; + using electrum_servers = std::vector; + using nodes = std::vector; std::string ticker; + std::optional alias_ticker{std::nullopt}; std::string gui_ticker; ///< Ticker displayed in the gui std::string name; ///< nice name std::optional electrum_urls; diff --git a/src/core/atomicdex/config/mm2.cfg.hpp b/src/core/atomicdex/config/mm2.cfg.hpp index 0213830ba8..99ae9766bc 100644 --- a/src/core/atomicdex/config/mm2.cfg.hpp +++ b/src/core/atomicdex/config/mm2.cfg.hpp @@ -33,8 +33,7 @@ namespace atomic_dex std::string gui{std::string(DEX_NAME) + " "s + atomic_dex::get_version()}; int64_t netid{7777}; std::vector seednodes{}; - //std::vector seednodes{"195.201.91.96", "195.201.91.53", "168.119.174.126", "46.4.78.11", "46.4.87.18"}; - //std::vector seednodes{"46.4.78.11", "46.4.87.18"}; + //std::vector seednodes{"46.4.78.11", "46.4.87.18", "168.119.236.246", "89.248.168.39", "89.248.173.231", "80.82.76.214"}; #ifdef _WIN32 std::string userhome{utils::u8string(fs::path(_wgetenv(L"HOMEPATH")))}; #else diff --git a/src/core/atomicdex/config/raw.mm2.coins.cfg.hpp b/src/core/atomicdex/config/raw.mm2.coins.cfg.hpp index 78a65a8383..0d787c4a70 100644 --- a/src/core/atomicdex/config/raw.mm2.coins.cfg.hpp +++ b/src/core/atomicdex/config/raw.mm2.coins.cfg.hpp @@ -79,8 +79,8 @@ namespace atomic_dex struct address_format { - std::string format; - std::string network; + std::string format; + std::optional network{std::nullopt}; }; struct coin_element @@ -139,7 +139,7 @@ namespace atomic_dex from_json(const json& j, atomic_dex::address_format& x) { x.format = j.at("format").get(); - x.network = j.at("network").get(); + x.network = atomic_dex::get_optional(j, "network"); } inline void @@ -147,7 +147,10 @@ namespace atomic_dex { j = json::object(); j["format"] = x.format; - j["network"] = x.network; + if (x.network.has_value()) + { + j["network"] = x.network.value(); + } } inline void @@ -190,7 +193,8 @@ namespace atomic_dex to_json(json& j, const atomic_dex::coin_element& x) { j = json::object(); - auto to_json_functor = [&j](const std::string field_name, const auto& field) { + auto to_json_functor = [&j](const std::string field_name, const auto& field) + { if (field.has_value()) { j[field_name] = field.value(); @@ -255,7 +259,7 @@ namespace atomic_dex try { nlohmann::json j = nlohmann::json::parse(val.toStdString()); - //ifs >> j; + // ifs >> j; t_mm2_raw_coins coins = j; out.reserve(coins.size()); for (auto&& coin: coins) { out[coin.coin] = coin; } @@ -264,6 +268,7 @@ namespace atomic_dex } catch (const std::exception& error) { + SPDLOG_ERROR("parse error: {}", error.what()); LOG_PATH("cannot parse mm2 raw cfg file: {}", file_path); } return out; diff --git a/src/core/atomicdex/constants/qt.coins.enums.hpp b/src/core/atomicdex/constants/qt.coins.enums.hpp index b30cb4a6aa..9c3a14f54e 100644 --- a/src/core/atomicdex/constants/qt.coins.enums.hpp +++ b/src/core/atomicdex/constants/qt.coins.enums.hpp @@ -49,9 +49,10 @@ namespace atomic_dex HecoChain = 15, SmartBCH = 16, EthereumClassic = 17, - Disabled = 18, - All = 19, - Size = 20 + RSK = 18, + Disabled = 19, + All = 20, + Size = 21 }; Q_ENUM(CoinTypeEnum) diff --git a/src/core/atomicdex/models/qt.orderbook.proxy.model.cpp b/src/core/atomicdex/models/qt.orderbook.proxy.model.cpp index 5ad4ec7e45..db253ed09e 100644 --- a/src/core/atomicdex/models/qt.orderbook.proxy.model.cpp +++ b/src/core/atomicdex/models/qt.orderbook.proxy.model.cpp @@ -166,7 +166,7 @@ namespace atomic_dex std::string ticker = this->sourceModel()->data(idx, orderbook_model::CoinRole).toString().toStdString(); const auto& provider = this->m_system_mgr.get_system(); const auto coin_info = this->m_system_mgr.get_system().get_global_cfg()->get_coin_info(ticker); - t_float_50 limit("10"); + t_float_50 limit("0"); bool is_cex_id_available = this->sourceModel()->data(idx, orderbook_model::HaveCEXIDRole).toBool(); if (coin_info.ticker.empty() || coin_info.wallet_only) //< this means it's not present in our cfg - skipping diff --git a/src/core/atomicdex/pages/qt.trading.page.cpp b/src/core/atomicdex/pages/qt.trading.page.cpp index 5a81f90d2f..878c1ec922 100644 --- a/src/core/atomicdex/pages/qt.trading.page.cpp +++ b/src/core/atomicdex/pages/qt.trading.page.cpp @@ -160,7 +160,7 @@ namespace atomic_dex .price_numer = is_selected_order ? m_preferred_order->at("price_numer").get() : "", .volume_denom = is_selected_order ? m_preferred_order->at("base_max_volume_denom").get() : "", .volume_numer = is_selected_order ? m_preferred_order->at("base_max_volume_numer").get() : "", - .is_exact_selected_order_volume = is_selected_max && m_max_volume.toStdString() == m_preferred_order->at("base_max_volume").get(), + .is_exact_selected_order_volume = is_selected_max && m_max_volume.toStdString() == utils::extract_large_float(m_preferred_order->at("base_max_volume").get()), .base_nota = base_nota.isEmpty() ? std::optional{std::nullopt} : boost::lexical_cast(base_nota.toStdString()), .base_confs = base_confs.isEmpty() ? std::optional{std::nullopt} : base_confs.toUInt(), .min_volume = (rel_min_volume_f <= rel_min_trade) ? std::optional{std::nullopt} : get_min_trade_vol().toStdString()}; diff --git a/src/core/atomicdex/services/mm2/mm2.service.cpp b/src/core/atomicdex/services/mm2/mm2.service.cpp index 1a44a0125e..2eb529b223 100644 --- a/src/core/atomicdex/services/mm2/mm2.service.cpp +++ b/src/core/atomicdex/services/mm2/mm2.service.cpp @@ -514,7 +514,7 @@ namespace atomic_dex catch (const std::exception& error) { SPDLOG_ERROR("exception in batch_balance_and_tx: {}", error.what()); - // this->dispatcher_.trigger(true); + this->dispatcher_.trigger(true); } }) .then([this, batch = batch_array](pplx::task previous_task) @@ -1202,9 +1202,9 @@ namespace atomic_dex SPDLOG_DEBUG("process_tx ticker: {}", ticker); std::error_code ec; using namespace std::string_literals; - auto construct_url_functor = - [this]( - const std::string& main_ticker, const std::string& test_ticker, const std::string& url, const std::string& token_url, const std::string& ticker, const std::string& address) + auto construct_url_functor = [this]( + const std::string& main_ticker, const std::string& test_ticker, const std::string& url, const std::string& token_url, + const std::string& ticker, const std::string& address) { std::string out; if (ticker == main_ticker || ticker == test_ticker) @@ -1248,6 +1248,15 @@ namespace atomic_dex case CoinTypeGadget::Optimism: out = construct_url_functor("ETH-OPT20", "ETHK-OPT20", "optimism_tx_history", "optimism_tx_history", ticker, address); break; + case CoinTypeGadget::EthereumClassic: + out = construct_url_functor("ETC", "ETCT", "etc_tx_history", "etc_tx_history", ticker, address); + break; + case CoinTypeGadget::RSK: + out = construct_url_functor("RBTC", "RBTCT", "rsk_tx_history", "rsk_tx_history", ticker, address); + break; + case CoinTypeGadget::AVX20: + out = construct_url_functor("AVAX", "AVAXT", "avx_tx_history", "avx_tx_history", ticker, address); + break; default: break; } diff --git a/src/core/atomicdex/services/price/global.provider.cpp b/src/core/atomicdex/services/price/global.provider.cpp index b31752ab09..4f3d8110db 100644 --- a/src/core/atomicdex/services/price/global.provider.cpp +++ b/src/core/atomicdex/services/price/global.provider.cpp @@ -192,7 +192,7 @@ namespace atomic_dex { return "1"; } - std::string ticker = ticker_in; + std::string ticker = utils::retrieve_main_ticker(ticker_in); try { //! FIXME: fix zatJum crash report, frontend QML try to retrieve price before program is even launched diff --git a/src/core/atomicdex/services/price/komodo_prices/komodo.prices.provider.cpp b/src/core/atomicdex/services/price/komodo_prices/komodo.prices.provider.cpp index 3393ebff01..2fb21de3ed 100644 --- a/src/core/atomicdex/services/price/komodo_prices/komodo.prices.provider.cpp +++ b/src/core/atomicdex/services/price/komodo_prices/komodo.prices.provider.cpp @@ -4,6 +4,7 @@ //! Project Headers #include "atomicdex/events/events.hpp" #include "atomicdex/services/price/komodo_prices/komodo.prices.provider.hpp" +#include "atomicdex/utilities/global.utilities.hpp" //! Constructor namespace atomic_dex @@ -121,7 +122,7 @@ namespace atomic_dex std::string komodo_prices_provider::get_price_provider(const std::string& ticker) const { - auto provider = get_info_answer(ticker).price_provider; + auto provider = get_info_answer(utils::retrieve_main_ticker(ticker)).price_provider; switch (provider) { case komodo_prices::api::provider::binance: @@ -130,6 +131,10 @@ namespace atomic_dex return "coingecko"; case komodo_prices::api::provider::coinpaprika: return "coinpaprika"; + case komodo_prices::api::provider::forex: + return "forex"; + case komodo_prices::api::provider::nomics: + return "nomics"; default: return "unknown"; } diff --git a/src/core/atomicdex/utilities/qt.utilities.cpp b/src/core/atomicdex/utilities/qt.utilities.cpp index df98ce9c6a..9d091bb971 100644 --- a/src/core/atomicdex/utilities/qt.utilities.cpp +++ b/src/core/atomicdex/utilities/qt.utilities.cpp @@ -56,7 +56,7 @@ namespace atomic_dex QString change_24h = "0"; if (is_this_currency_a_fiat(config, config.current_currency)) { - change_24h = QString::fromStdString(provider.get_change_24h(coin.ticker)); + change_24h = QString::fromStdString(provider.get_change_24h(utils::retrieve_main_ticker(coin.ticker))); } return change_24h; } diff --git a/src/tests/utilities/global.utilities.tests.cpp b/src/tests/utilities/global.utilities.tests.cpp index bcc982dedf..fc83d423b9 100644 --- a/src/tests/utilities/global.utilities.tests.cpp +++ b/src/tests/utilities/global.utilities.tests.cpp @@ -18,6 +18,7 @@ #include +#include "atomicdex/utilities/safe.float.hpp" #include "atomicdex/utilities/global.utilities.hpp" using namespace atomic_dex::utils; @@ -105,6 +106,12 @@ TEST_CASE("atomic_dex::utils::retrieve_main_ticker()") CHECK_EQ(atomic_dex::utils::retrieve_main_ticker("BUSD-ERC20"), "BUSD"); } +TEST_CASE("extract_large_float") +{ + CHECK_EQ("12504.71255285", atomic_dex::utils::extract_large_float("12504.712552852304076")); + CHECK_EQ("1.1", atomic_dex::utils::extract_large_float("1.1")); +} + /*TEST_CASE("u8string") { using namespace std::string_literals; diff --git a/vcpkg.json b/vcpkg.json index 07d3fb221a..d027873163 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,6 +1,6 @@ { "name": "atomicdex-desktop", - "version-string": "0.5.2", + "version-string": "0.5.3", "dependencies": [ "entt", "boost-multiprecision",