mirror of
				https://git.wownero.com/wowlet/wowlet.git
				synced 2024-08-15 01:03:14 +00:00 
			
		
		
		
	Merge pull request 'rename freather to wowlet' (#36) from wowario/wowlet:wow-rename into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/36
This commit is contained in:
		
						commit
						d23ffd1972
					
				
					 114 changed files with 367 additions and 465 deletions
				
			
		
							
								
								
									
										6
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -8,8 +8,8 @@ build/*
 | 
				
			||||||
CMakeCache.txt
 | 
					CMakeCache.txt
 | 
				
			||||||
CMakeFiles
 | 
					CMakeFiles
 | 
				
			||||||
cmake_install.cmake
 | 
					cmake_install.cmake
 | 
				
			||||||
feather_autogen/
 | 
					wowlet_autogen/
 | 
				
			||||||
feather.cbp
 | 
					wowlet.cbp
 | 
				
			||||||
src/tor/*
 | 
					src/tor/*
 | 
				
			||||||
!src/tor/.gitkeep
 | 
					!src/tor/.gitkeep
 | 
				
			||||||
src/config-feather.h
 | 
					src/config-wowlet.h
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@ Static builds via Docker are done in 3 steps:
 | 
				
			||||||
### Linux (reproducible)
 | 
					### Linux (reproducible)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The docker image for reproducible Linux static builds uses Ubuntu 16.04 and compiles the required libraries statically 
 | 
					The docker image for reproducible Linux static builds uses Ubuntu 16.04 and compiles the required libraries statically 
 | 
				
			||||||
so that the resulting Feather binary is static. For more information, check the Dockerfile: `Dockerfile`.
 | 
					so that the resulting `wowlet` binary is static. For more information, check the Dockerfile: `Dockerfile`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### 1. Clone
 | 
					#### 1. Clone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@ git clone --recursive https://git.wownero.com/wowlet/wowlet.git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Get the latest LTS from here: https://www.qt.io/offline-installers and install.
 | 
					Get the latest LTS from here: https://www.qt.io/offline-installers and install.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Build Feather.
 | 
					Build WOWlet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
CMAKE_PREFIX_PATH=~/Qt5.15.1/5.15.1/clang_64 make mac-release
 | 
					CMAKE_PREFIX_PATH=~/Qt5.15.1/5.15.1/clang_64 make mac-release
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
cmake_minimum_required(VERSION 3.13)
 | 
					cmake_minimum_required(VERSION 3.13)
 | 
				
			||||||
project(feather)
 | 
					project(wowlet)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
 | 
					message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@ set(VERSION "beta-1")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
option(FETCH_DEPS "Download dependencies if they are not found" ON)
 | 
					option(FETCH_DEPS "Download dependencies if they are not found" ON)
 | 
				
			||||||
option(XMRIG "Include XMRig module" ON)
 | 
					option(XMRIG "Include XMRig module" ON)
 | 
				
			||||||
option(TOR_BIN "Path to Tor binary to embed inside Feather" OFF)
 | 
					option(TOR_BIN "Path to Tor binary to embed inside WOWlet" OFF)
 | 
				
			||||||
option(STATIC "Link libraries statically, requires static Qt")
 | 
					option(STATIC "Link libraries statically, requires static Qt")
 | 
				
			||||||
option(USE_DEVICE_TREZOR "Trezor support compilation" OFF)
 | 
					option(USE_DEVICE_TREZOR "Trezor support compilation" OFF)
 | 
				
			||||||
option(DONATE_BEG "Prompt donation window every once in a while" ON)
 | 
					option(DONATE_BEG "Prompt donation window every once in a while" ON)
 | 
				
			||||||
| 
						 | 
					@ -98,7 +98,7 @@ get_directory_property(UNBOUND_LIBRARY DIRECTORY "monero" DEFINITION UNBOUND_LIB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include(CMakePackageConfigHelpers)
 | 
					include(CMakePackageConfigHelpers)
 | 
				
			||||||
include(VersionMonero)
 | 
					include(VersionMonero)
 | 
				
			||||||
include(VersionFeather)
 | 
					include(VersionWowlet)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include_directories(${EASYLOGGING_INCLUDE})
 | 
					include_directories(${EASYLOGGING_INCLUDE})
 | 
				
			||||||
link_directories(${EASYLOGGING_LIBRARY_DIRS})
 | 
					link_directories(${EASYLOGGING_LIBRARY_DIRS})
 | 
				
			||||||
| 
						 | 
					@ -127,7 +127,7 @@ find_package(monero-seed CONFIG)
 | 
				
			||||||
if(NOT monero-seed_FOUND)
 | 
					if(NOT monero-seed_FOUND)
 | 
				
			||||||
  if(FETCH_DEPS)
 | 
					  if(FETCH_DEPS)
 | 
				
			||||||
    FetchContent_Declare(monero-seed
 | 
					    FetchContent_Declare(monero-seed
 | 
				
			||||||
      GIT_REPOSITORY https://git.wownero.com/feather/monero-seed.git)
 | 
					      GIT_REPOSITORY https://git.wownero.com/wowlet/monero-seed.git)
 | 
				
			||||||
    FetchContent_GetProperties(monero-seed)
 | 
					    FetchContent_GetProperties(monero-seed)
 | 
				
			||||||
    if(NOT monero-seed_POPULATED)
 | 
					    if(NOT monero-seed_POPULATED)
 | 
				
			||||||
      message(STATUS "Fetching monero-seed")
 | 
					      message(STATUS "Fetching monero-seed")
 | 
				
			||||||
| 
						 | 
					@ -183,7 +183,7 @@ if("$ENV{DRONE}" STREQUAL "true")
 | 
				
			||||||
    message(STATUS "We are inside a static compile with Drone CI")
 | 
					    message(STATUS "We are inside a static compile with Drone CI")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# To build Feather with embedded (and static) Tor, pass CMake -DTOR_BIN=/path/to/tor
 | 
					# To build WOWlet with embedded (and static) Tor, pass CMake -DTOR_BIN=/path/to/tor
 | 
				
			||||||
if(TOR_BIN)
 | 
					if(TOR_BIN)
 | 
				
			||||||
    if(APPLE)
 | 
					    if(APPLE)
 | 
				
			||||||
        execute_process(COMMAND bash -c "touch ${CMAKE_CURRENT_SOURCE_DIR}/src/tor/libevent-2.1.7.dylib")
 | 
					        execute_process(COMMAND bash -c "touch ${CMAKE_CURRENT_SOURCE_DIR}/src/tor/libevent-2.1.7.dylib")
 | 
				
			||||||
| 
						 | 
					@ -194,7 +194,7 @@ if(TOR_BIN)
 | 
				
			||||||
        set(TOR_VERSION "${out}")
 | 
					        set(TOR_VERSION "${out}")
 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
    message(STATUS "${TOR_VERSION}")
 | 
					    message(STATUS "${TOR_VERSION}")
 | 
				
			||||||
    configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
 | 
					    configure_file("cmake/config-wowlet.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-wowlet.h")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # on the buildbot Tor is baked into the image
 | 
					    # on the buildbot Tor is baked into the image
 | 
				
			||||||
    # - linux: See `Dockerfile`
 | 
					    # - linux: See `Dockerfile`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -392,7 +392,7 @@ RUN git clone -b v4.0.2 --depth 1 https://github.com/fukuchi/libqrencode.git &&
 | 
				
			||||||
    make -j$THREADS install && \
 | 
					    make -j$THREADS install && \
 | 
				
			||||||
    rm -rf $(pwd)
 | 
					    rm -rf $(pwd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN git clone https://git.wownero.com/feather/monero-seed.git && \
 | 
					RUN git clone https://git.wownero.com/wowlet/monero-seed.git && \
 | 
				
			||||||
    cd monero-seed && \
 | 
					    cd monero-seed && \
 | 
				
			||||||
    git reset --hard 4674ef09b6faa6fe602ab5ae0b9ca8e1fd7d5e1b && \
 | 
					    git reset --hard 4674ef09b6faa6fe602ab5ae0b9ca8e1fd7d5e1b && \
 | 
				
			||||||
    cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && \
 | 
					    cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -172,7 +172,7 @@ RUN git clone -b tor-0.4.5.5-rc --depth 1 https://git.torproject.org/tor.git &&
 | 
				
			||||||
    rm -rf $(pwd) && \
 | 
					    rm -rf $(pwd) && \
 | 
				
			||||||
    strip -s -D /usr/local/tor/bin/tor.exe
 | 
					    strip -s -D /usr/local/tor/bin/tor.exe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN git clone https://git.wownero.com/feather/monero-seed.git && \
 | 
					RUN git clone https://git.wownero.com/wowlet/monero-seed.git && \
 | 
				
			||||||
    cd monero-seed && \
 | 
					    cd monero-seed && \
 | 
				
			||||||
    git reset --hard 4674ef09b6faa6fe602ab5ae0b9ca8e1fd7d5e1b && \
 | 
					    git reset --hard 4674ef09b6faa6fe602ab5ae0b9ca8e1fd7d5e1b && \
 | 
				
			||||||
    cmake -DCMAKE_INSTALL_PREFIX=/depends/x86_64-w64-mingw32 \
 | 
					    cmake -DCMAKE_INSTALL_PREFIX=/depends/x86_64-w64-mingw32 \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ RUN apt install -y \
 | 
				
			||||||
    wget \
 | 
					    wget \
 | 
				
			||||||
    xz-utils
 | 
					    xz-utils
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN git clone -b feather-patch --depth 1 https://git.wownero.com/feather/mxe.git && \
 | 
					RUN git clone -b wowlet-patch --depth 1 https://git.wownero.com/wowlet/mxe.git && \
 | 
				
			||||||
    cd mxe && \
 | 
					    cd mxe && \
 | 
				
			||||||
    make -j$THREADS MXE_TARGETS='x86_64-w64-mingw32.static' gcc libqrencode pkgconf libgpg_error libgcrypt cmake libsodium lzma readline libzmq boost qtbase qtsvg qtwebsockets qtimageformats qtmultimedia
 | 
					    make -j$THREADS MXE_TARGETS='x86_64-w64-mingw32.static' gcc libqrencode pkgconf libgpg_error libgcrypt cmake libsodium lzma readline libzmq boost qtbase qtsvg qtwebsockets qtimageformats qtmultimedia
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,7 +67,7 @@ RUN ln -s /mxe/usr/x86_64-w64-mingw32.static/lib/libsicuin.a /mxe/usr/x86_64-w64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV PATH="/mxe/usr/bin/:$PATH"
 | 
					ENV PATH="/mxe/usr/bin/:$PATH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN git clone https://git.wownero.com/feather/monero-seed.git && \
 | 
					RUN git clone https://git.wownero.com/wowlet/monero-seed.git && \
 | 
				
			||||||
    cd monero-seed && \
 | 
					    cd monero-seed && \
 | 
				
			||||||
    cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && \
 | 
					    cmake -DCMAKE_BUILD_TYPE=Release -Bbuild && \
 | 
				
			||||||
    make -Cbuild -j$THREADS && \
 | 
					    make -Cbuild -j$THREADS && \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,6 +11,5 @@ The following keys may be used to communicate sensitive information to developer
 | 
				
			||||||
| Name | Fingerprint |
 | 
					| Name | Fingerprint |
 | 
				
			||||||
|------|-------------|
 | 
					|------|-------------|
 | 
				
			||||||
| dsc | 1BFD 40F9 B0E2 B40D C8C7 FD4A 521F 1E79 91AA 42DC |
 | 
					| dsc | 1BFD 40F9 B0E2 B40D C8C7 FD4A 521F 1E79 91AA 42DC |
 | 
				
			||||||
| tobtoht | C5AB E5C0 E50F A2B3 F14A B92D 1CAD D27F 41F4 5C3C |
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Public keys can be found in `utils/pubkeys`.
 | 
					Public keys can be found in `utils/pubkeys`.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,4 +46,4 @@ else ()
 | 
				
			||||||
    set(MONERO_VERSION "${TAG}")
 | 
					    set(MONERO_VERSION "${TAG}")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
 | 
					configure_file("cmake/config-wowlet.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-wowlet.h")
 | 
				
			||||||
| 
						 | 
					@ -10,8 +10,8 @@ if(RET)
 | 
				
			||||||
    # Something went wrong, set the version tag to -unknown
 | 
					    # Something went wrong, set the version tag to -unknown
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    message(WARNING "Cannot determine current commit. Make sure that you are building either from a Git working tree or from a source archive.")
 | 
					    message(WARNING "Cannot determine current commit. Make sure that you are building either from a Git working tree or from a source archive.")
 | 
				
			||||||
    set(FEATHER_BRANCH "unknown")
 | 
					    set(WOWLET_BRANCH "unknown")
 | 
				
			||||||
    configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
 | 
					    configure_file("cmake/config-wowlet.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-wowlet.h")
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
    string(SUBSTRING ${COMMIT} 0 9 COMMIT)
 | 
					    string(SUBSTRING ${COMMIT} 0 9 COMMIT)
 | 
				
			||||||
    message(STATUS "You are currently on commit ${COMMIT}")
 | 
					    message(STATUS "You are currently on commit ${COMMIT}")
 | 
				
			||||||
| 
						 | 
					@ -21,19 +21,19 @@ else()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(NOT TAGGEDCOMMIT)
 | 
					    if(NOT TAGGEDCOMMIT)
 | 
				
			||||||
        message(STATUS "Cannot determine most recent tag. Make sure that you are building either from a Git working tree or from a source archive.")
 | 
					        message(STATUS "Cannot determine most recent tag. Make sure that you are building either from a Git working tree or from a source archive.")
 | 
				
			||||||
        set(FEATHER_BRANCH "${COMMIT}")
 | 
					        set(WOWLET_BRANCH "${COMMIT}")
 | 
				
			||||||
    else()
 | 
					    else()
 | 
				
			||||||
        message(STATUS "The most recent tag was at ${TAGGEDCOMMIT}")
 | 
					        message(STATUS "The most recent tag was at ${TAGGEDCOMMIT}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Check if we're building that tagged commit or a different one
 | 
					        # Check if we're building that tagged commit or a different one
 | 
				
			||||||
        if(COMMIT STREQUAL TAGGEDCOMMIT)
 | 
					        if(COMMIT STREQUAL TAGGEDCOMMIT)
 | 
				
			||||||
            message(STATUS "You are building a tagged release")
 | 
					            message(STATUS "You are building a tagged release")
 | 
				
			||||||
            set(FEATHER_BRANCH "release")
 | 
					            set(WOWLET_BRANCH "release")
 | 
				
			||||||
        else()
 | 
					        else()
 | 
				
			||||||
            message(STATUS "You are ahead of or behind a tagged release")
 | 
					            message(STATUS "You are ahead of or behind a tagged release")
 | 
				
			||||||
            set(FEATHER_BRANCH "${COMMIT}")
 | 
					            set(WOWLET_BRANCH "${COMMIT}")
 | 
				
			||||||
        endif()
 | 
					        endif()
 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    configure_file("cmake/config-feather.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-feather.h")
 | 
					    configure_file("cmake/config-wowlet.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/src/config-wowlet.h")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
#ifndef FEATHER_VERSION_H
 | 
					 | 
				
			||||||
#define FEATHER_VERSION_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define FEATHER_VERSION "@VERSION@"
 | 
					 | 
				
			||||||
#define FEATHER_BRANCH "@FEATHER_BRANCH@"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define MONERO_VERSION "@MONERO_VERSION@"
 | 
					 | 
				
			||||||
#define MONERO_BRANCH "@MONERO_BRANCH@"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define TOR_VERSION "@TOR_VERSION@"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //FEATHER_VERSION_H
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								cmake/config-wowlet.h.cmake
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								cmake/config-wowlet.h.cmake
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					#ifndef WOWLET_VERSION_H
 | 
				
			||||||
 | 
					#define WOWLET_VERSION_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define WOWLET_VERSION "@VERSION@"
 | 
				
			||||||
 | 
					#define WOWLET_BRANCH "@WOWLET_BRANCH@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MONERO_VERSION "@MONERO_VERSION@"
 | 
				
			||||||
 | 
					#define MONERO_BRANCH "@MONERO_BRANCH@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TOR_VERSION "@TOR_VERSION@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //WOWLET_VERSION_H
 | 
				
			||||||
| 
						 | 
					@ -93,7 +93,7 @@ file(GLOB_RECURSE SRC_SOURCES *.cpp)
 | 
				
			||||||
file(GLOB_RECURSE SRC_HEADERS *.h)
 | 
					file(GLOB_RECURSE SRC_HEADERS *.h)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_include_directories(wowlet PUBLIC
 | 
					target_include_directories(wowlet PUBLIC
 | 
				
			||||||
        ${CMAKE_BINARY_DIR}/src/feather_autogen/include
 | 
					        ${CMAKE_BINARY_DIR}/src/wowlet_autogen/include
 | 
				
			||||||
        ${CMAKE_SOURCE_DIR}/monero/include
 | 
					        ${CMAKE_SOURCE_DIR}/monero/include
 | 
				
			||||||
        ${CMAKE_SOURCE_DIR}/monero/src
 | 
					        ${CMAKE_SOURCE_DIR}/monero/src
 | 
				
			||||||
        ${CMAKE_SOURCE_DIR}/monero/external/easylogging++
 | 
					        ${CMAKE_SOURCE_DIR}/monero/external/easylogging++
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,7 +142,7 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
 | 
				
			||||||
    this->walletManager = WalletManager::instance();
 | 
					    this->walletManager = WalletManager::instance();
 | 
				
			||||||
    QString logPath = QString("%1/daemon.log").arg(configDirectory);
 | 
					    QString logPath = QString("%1/daemon.log").arg(configDirectory);
 | 
				
			||||||
    Monero::Utils::onStartup();
 | 
					    Monero::Utils::onStartup();
 | 
				
			||||||
    Monero::Wallet::init("", "feather", logPath.toStdString(), true);
 | 
					    Monero::Wallet::init("", "wowlet", logPath.toStdString(), true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool logLevelFromEnv;
 | 
					    bool logLevelFromEnv;
 | 
				
			||||||
    int logLevel = qEnvironmentVariableIntValue("MONERO_LOG_LEVEL", &logLevelFromEnv);
 | 
					    int logLevel = qEnvironmentVariableIntValue("MONERO_LOG_LEVEL", &logLevelFromEnv);
 | 
				
			||||||
| 
						 | 
					@ -444,7 +444,7 @@ void AppContext::onWSMessage(const QJsonObject &msg) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AppContext::onWSNodes(const QJsonArray &nodes) {
 | 
					void AppContext::onWSNodes(const QJsonArray &nodes) {
 | 
				
			||||||
    QList<QSharedPointer<FeatherNode>> l;
 | 
					    QList<QSharedPointer<WowletNode>> l;
 | 
				
			||||||
    for (auto &&entry: nodes) {
 | 
					    for (auto &&entry: nodes) {
 | 
				
			||||||
        auto obj = entry.toObject();
 | 
					        auto obj = entry.toObject();
 | 
				
			||||||
        auto nettype = obj.value("nettype");
 | 
					        auto nettype = obj.value("nettype");
 | 
				
			||||||
| 
						 | 
					@ -463,12 +463,12 @@ void AppContext::onWSNodes(const QJsonArray &nodes) {
 | 
				
			||||||
        if(type == "tor" && (!(this->isTails || this->isWhonix || this->isTorSocks)))
 | 
					        if(type == "tor" && (!(this->isTails || this->isWhonix || this->isTorSocks)))
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto node = new FeatherNode(
 | 
					        auto node = new WowletNode(
 | 
				
			||||||
                obj.value("address").toString(),
 | 
					                obj.value("address").toString(),
 | 
				
			||||||
                 obj.value("height").toInt(),
 | 
					                 obj.value("height").toInt(),
 | 
				
			||||||
                 obj.value("target_height").toInt(),
 | 
					                 obj.value("target_height").toInt(),
 | 
				
			||||||
                obj.value("online").toBool());
 | 
					                obj.value("online").toBool());
 | 
				
			||||||
        QSharedPointer<FeatherNode> r = QSharedPointer<FeatherNode>(node);
 | 
					        QSharedPointer<WowletNode> r = QSharedPointer<WowletNode>(node);
 | 
				
			||||||
        l.append(r);
 | 
					        l.append(r);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    this->nodes->onWSNodesReceived(l);
 | 
					    this->nodes->onWSNodesReceived(l);
 | 
				
			||||||
| 
						 | 
					@ -536,7 +536,7 @@ void AppContext::createConfigDirectory(const QString &dir) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AppContext::createWallet(FeatherSeed seed, const QString &path, const QString &password) {
 | 
					void AppContext::createWallet(WowletSeed seed, const QString &path, const QString &password) {
 | 
				
			||||||
    if(Utils::fileExists(path)) {
 | 
					    if(Utils::fileExists(path)) {
 | 
				
			||||||
        auto err = QString("Failed to write wallet to path: \"%1\"; file already exists.").arg(path);
 | 
					        auto err = QString("Failed to write wallet to path: \"%1\"; file already exists.").arg(path);
 | 
				
			||||||
        qCritical() << err;
 | 
					        qCritical() << err;
 | 
				
			||||||
| 
						 | 
					@ -552,7 +552,7 @@ void AppContext::createWallet(FeatherSeed seed, const QString &path, const QStri
 | 
				
			||||||
    Wallet *wallet = nullptr;
 | 
					    Wallet *wallet = nullptr;
 | 
				
			||||||
    if (seed.seedType == SeedType::TEVADOR) {
 | 
					    if (seed.seedType == SeedType::TEVADOR) {
 | 
				
			||||||
        wallet = this->walletManager->createDeterministicWalletFromSpendKey(path, password, seed.language, this->networkType, seed.spendKey, seed.restoreHeight, this->kdfRounds);
 | 
					        wallet = this->walletManager->createDeterministicWalletFromSpendKey(path, password, seed.language, this->networkType, seed.spendKey, seed.restoreHeight, this->kdfRounds);
 | 
				
			||||||
        wallet->setCacheAttribute("feather.seed", seed.mnemonic.join(" "));
 | 
					        wallet->setCacheAttribute("wowlet.seed", seed.mnemonic.join(" "));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (seed.seedType == SeedType::MONERO) {
 | 
					    if (seed.seedType == SeedType::MONERO) {
 | 
				
			||||||
        wallet = this->walletManager->recoveryWallet(path, password, seed.mnemonic.join(" "), "", this->networkType, seed.restoreHeight, this->kdfRounds);
 | 
					        wallet = this->walletManager->recoveryWallet(path, password, seed.mnemonic.join(" "), "", this->networkType, seed.restoreHeight, this->kdfRounds);
 | 
				
			||||||
| 
						 | 
					@ -614,7 +614,7 @@ void AppContext::initRestoreHeights() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AppContext::onSetRestoreHeight(quint64 height){
 | 
					void AppContext::onSetRestoreHeight(quint64 height){
 | 
				
			||||||
    auto seed = this->currentWallet->getCacheAttribute("feather.seed");
 | 
					    auto seed = this->currentWallet->getCacheAttribute("wowlet.seed");
 | 
				
			||||||
    if(!seed.isEmpty()) {
 | 
					    if(!seed.isEmpty()) {
 | 
				
			||||||
        const auto msg = "This wallet has a 14 word mnemonic seed which has the restore height embedded.";
 | 
					        const auto msg = "This wallet has a 14 word mnemonic seed which has the restore height embedded.";
 | 
				
			||||||
        emit setRestoreHeightError(msg);
 | 
					        emit setRestoreHeightError(msg);
 | 
				
			||||||
| 
						 | 
					@ -811,7 +811,7 @@ void AppContext::onTransactionCommitted(bool status, PendingTransaction *tx, con
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    emit transactionCommitted(status, tx, txid);
 | 
					    emit transactionCommitted(status, tx, txid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // this tx was a donation to Feather, stop our nagging
 | 
					    // this tx was a donation to WOWlet, stop our nagging
 | 
				
			||||||
    if(this->donationSending) {
 | 
					    if(this->donationSending) {
 | 
				
			||||||
        this->donationSending = false;
 | 
					        this->donationSending = false;
 | 
				
			||||||
        config()->set(Config::donateBeg, -1);
 | 
					        config()->set(Config::donateBeg, -1);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_APPCONTEXT_H
 | 
					#ifndef WOWLET_APPCONTEXT_H
 | 
				
			||||||
#define FEATHER_APPCONTEXT_H
 | 
					#define WOWLET_APPCONTEXT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
#include <QProcess>
 | 
					#include <QProcess>
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
#include "utils/xmrig.h"
 | 
					#include "utils/xmrig.h"
 | 
				
			||||||
#include "utils/wsclient.h"
 | 
					#include "utils/wsclient.h"
 | 
				
			||||||
#include "utils/txfiathistory.h"
 | 
					#include "utils/txfiathistory.h"
 | 
				
			||||||
#include "utils/FeatherSeed.h"
 | 
					#include "utils/WowletSeed.h"
 | 
				
			||||||
#include "widgets/RedditPost.h"
 | 
					#include "widgets/RedditPost.h"
 | 
				
			||||||
#include "widgets/CCSEntry.h"
 | 
					#include "widgets/CCSEntry.h"
 | 
				
			||||||
#include "utils/RestoreHeightLookup.h"
 | 
					#include "utils/RestoreHeightLookup.h"
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@ public:
 | 
				
			||||||
    bool refreshed = false;
 | 
					    bool refreshed = false;
 | 
				
			||||||
    WalletManager *walletManager;
 | 
					    WalletManager *walletManager;
 | 
				
			||||||
    Wallet *currentWallet = nullptr;
 | 
					    Wallet *currentWallet = nullptr;
 | 
				
			||||||
    void createWallet(FeatherSeed seed, const QString &path, const QString &password);
 | 
					    void createWallet(WowletSeed seed, const QString &path, const QString &password);
 | 
				
			||||||
    void createWalletViewOnly(const QString &path, const QString &password, const QString &address, const QString &viewkey, const QString &spendkey, quint64 restoreHeight);
 | 
					    void createWalletViewOnly(const QString &path, const QString &password, const QString &address, const QString &viewkey, const QString &spendkey, quint64 restoreHeight);
 | 
				
			||||||
    void createWalletFinish(const QString &password);
 | 
					    void createWalletFinish(const QString &password);
 | 
				
			||||||
    void syncStatusUpdated(quint64 height, quint64 target);
 | 
					    void syncStatusUpdated(quint64 height, quint64 target);
 | 
				
			||||||
| 
						 | 
					@ -166,12 +166,12 @@ signals:
 | 
				
			||||||
    void createTransactionCancelled(const QVector<QString> &address, double amount);
 | 
					    void createTransactionCancelled(const QVector<QString> &address, double amount);
 | 
				
			||||||
    void createTransactionSuccess(PendingTransaction *tx, const QVector<QString> &address);
 | 
					    void createTransactionSuccess(PendingTransaction *tx, const QVector<QString> &address);
 | 
				
			||||||
    void redditUpdated(QList<QSharedPointer<RedditPost>> &posts);
 | 
					    void redditUpdated(QList<QSharedPointer<RedditPost>> &posts);
 | 
				
			||||||
    void nodesUpdated(QList<QSharedPointer<FeatherNode>> &nodes);
 | 
					    void nodesUpdated(QList<QSharedPointer<WowletNode>> &nodes);
 | 
				
			||||||
    void ccsUpdated(QList<QSharedPointer<CCSEntry>> &entries);
 | 
					    void ccsUpdated(QList<QSharedPointer<CCSEntry>> &entries);
 | 
				
			||||||
    void suchWowUpdated(const QJsonArray &such_data);
 | 
					    void suchWowUpdated(const QJsonArray &such_data);
 | 
				
			||||||
    void nodeSourceChanged(NodeSource nodeSource);
 | 
					    void nodeSourceChanged(NodeSource nodeSource);
 | 
				
			||||||
    void XMRigDownloads(const QJsonObject &data);
 | 
					    void XMRigDownloads(const QJsonObject &data);
 | 
				
			||||||
    void setCustomNodes(QList<FeatherNode> nodes);
 | 
					    void setCustomNodes(QList<WowletNode> nodes);
 | 
				
			||||||
    void openAliasResolveError(const QString &msg);
 | 
					    void openAliasResolveError(const QString &msg);
 | 
				
			||||||
    void openAliasResolved(const QString &address, const QString &openAlias);
 | 
					    void openAliasResolved(const QString &address, const QString &openAlias);
 | 
				
			||||||
    void setRestoreHeightError(const QString &msg);
 | 
					    void setRestoreHeightError(const QString &msg);
 | 
				
			||||||
| 
						 | 
					@ -186,7 +186,8 @@ private:
 | 
				
			||||||
    WalletKeysFilesModel *m_walletKeysFilesModel;
 | 
					    WalletKeysFilesModel *m_walletKeysFilesModel;
 | 
				
			||||||
    const int m_donationBoundary = 15;
 | 
					    const int m_donationBoundary = 15;
 | 
				
			||||||
    QTimer m_storeTimer;
 | 
					    QTimer m_storeTimer;
 | 
				
			||||||
 | 
					    // @TODO: Replace url
 | 
				
			||||||
    QUrl m_wsUrl = QUrl(QStringLiteral("ws://feathercitimllbmdktu6cmjo3fizgmyfrntntqzu6xguqa2rlq5cgid.onion/ws"));
 | 
					    QUrl m_wsUrl = QUrl(QStringLiteral("ws://feathercitimllbmdktu6cmjo3fizgmyfrntntqzu6xguqa2rlq5cgid.onion/ws"));
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_APPCONTEXT_H
 | 
					#endif //WOWLET_APPCONTEXT_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
WOWlet <feather_version> (<feather_git_head>)
 | 
					WOWlet <wowlet_version> (<wowlet_git_head>)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Website: https://wownero.org
 | 
					Website: https://wownero.org
 | 
				
			||||||
E-mail: dev@wownero.org
 | 
					E-mail: dev@wownero.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CLI_H
 | 
					#ifndef WOWLET_CLI_H
 | 
				
			||||||
#define FEATHER_CLI_H
 | 
					#define WOWLET_CLI_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QtCore>
 | 
					#include <QtCore>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -46,4 +46,4 @@ signals:
 | 
				
			||||||
    void closeApplication();
 | 
					    void closeApplication();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CLI_H
 | 
					#endif //WOWLET_CLI_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COINSWIDGET_H
 | 
					#ifndef WOWLET_COINSWIDGET_H
 | 
				
			||||||
#define FEATHER_COINSWIDGET_H
 | 
					#define WOWLET_COINSWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
#include "model/CoinsModel.h"
 | 
					#include "model/CoinsModel.h"
 | 
				
			||||||
| 
						 | 
					@ -76,4 +76,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COINSWIDGET_H
 | 
					#endif //WOWLET_COINSWIDGET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								src/config-feather.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/config-feather.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					#ifndef WOWLET_VERSION_H
 | 
				
			||||||
 | 
					#define WOWLET_VERSION_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define WOWLET_VERSION "beta-1"
 | 
				
			||||||
 | 
					#define WOWLET_BRANCH "fd09b8875"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MONERO_VERSION "v0.9.0.2"
 | 
				
			||||||
 | 
					#define MONERO_BRANCH "f611d5c9e"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TOR_VERSION ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //WOWLET_VERSION_H
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_WALLETCACHEDEBUGDIALOG_H
 | 
					#ifndef WOWLET_WALLETCACHEDEBUGDIALOG_H
 | 
				
			||||||
#define FEATHER_WALLETCACHEDEBUGDIALOG_H
 | 
					#define WOWLET_WALLETCACHEDEBUGDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -27,4 +27,4 @@ private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_WALLETCACHEDEBUGDIALOG_H
 | 
					#endif //WOWLET_WALLETCACHEDEBUGDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
#include "aboutdialog.h"
 | 
					#include "aboutdialog.h"
 | 
				
			||||||
#include "ui_aboutdialog.h"
 | 
					#include "ui_aboutdialog.h"
 | 
				
			||||||
#include "utils/utils.h"
 | 
					#include "utils/utils.h"
 | 
				
			||||||
#include "config-feather.h"
 | 
					#include "config-wowlet.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AboutDialog::AboutDialog(QWidget *parent)
 | 
					AboutDialog::AboutDialog(QWidget *parent)
 | 
				
			||||||
        : QDialog(parent)
 | 
					        : QDialog(parent)
 | 
				
			||||||
| 
						 | 
					@ -17,8 +17,8 @@ AboutDialog::AboutDialog(QWidget *parent)
 | 
				
			||||||
    ui->aboutImage->setPixmap(p.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 | 
					    ui->aboutImage->setPixmap(p.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 | 
				
			||||||
    auto about = Utils::fileOpenQRC(":assets/about.txt");
 | 
					    auto about = Utils::fileOpenQRC(":assets/about.txt");
 | 
				
			||||||
    auto about_text = Utils::barrayToString(about);
 | 
					    auto about_text = Utils::barrayToString(about);
 | 
				
			||||||
    about_text = about_text.replace("<feather_version>", FEATHER_VERSION);
 | 
					    about_text = about_text.replace("<wowlet_version>", WOWLET_VERSION);
 | 
				
			||||||
    about_text = about_text.replace("<feather_git_head>", FEATHER_BRANCH);
 | 
					    about_text = about_text.replace("<wowlet_git_head>", WOWLET_BRANCH);
 | 
				
			||||||
    about_text = about_text.replace("<current_year>", QString::number(QDate::currentDate().year()));
 | 
					    about_text = about_text.replace("<current_year>", QString::number(QDate::currentDate().year()));
 | 
				
			||||||
    ui->copyrightText->setPlainText(about_text);
 | 
					    ui->copyrightText->setPlainText(about_text);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@
 | 
				
			||||||
     <property name="currentIndex">
 | 
					     <property name="currentIndex">
 | 
				
			||||||
      <number>0</number>
 | 
					      <number>0</number>
 | 
				
			||||||
     </property>
 | 
					     </property>
 | 
				
			||||||
     <widget class="QWidget" name="Feather">
 | 
					     <widget class="QWidget" name="WOWlet">
 | 
				
			||||||
      <attribute name="title">
 | 
					      <attribute name="title">
 | 
				
			||||||
       <string>WOWlet</string>
 | 
					       <string>WOWlet</string>
 | 
				
			||||||
      </attribute>
 | 
					      </attribute>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_BALANCEDIALOG_H
 | 
					#ifndef WOWLET_BALANCEDIALOG_H
 | 
				
			||||||
#define FEATHER_BALANCEDIALOG_H
 | 
					#define WOWLET_BALANCEDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,4 +24,4 @@ private:
 | 
				
			||||||
    Ui::BalanceDialog *ui;
 | 
					    Ui::BalanceDialog *ui;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_BALANCEDIALOG_H
 | 
					#endif //WOWLET_BALANCEDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_BROADCASTTXDIALOG_H
 | 
					#ifndef WOWLET_BROADCASTTXDIALOG_H
 | 
				
			||||||
#define FEATHER_BROADCASTTXDIALOG_H
 | 
					#define WOWLET_BROADCASTTXDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -32,4 +32,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_BROADCASTTXDIALOG_H
 | 
					#endif //WOWLET_BROADCASTTXDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CONTACTSDIALOG_H
 | 
					#ifndef WOWLET_CONTACTSDIALOG_H
 | 
				
			||||||
#define FEATHER_CONTACTSDIALOG_H
 | 
					#define WOWLET_CONTACTSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,4 +28,4 @@ private:
 | 
				
			||||||
    QString m_name;
 | 
					    QString m_name;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CONTACTSDIALOG_H
 | 
					#endif //WOWLET_CONTACTSDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "debuginfodialog.h"
 | 
					#include "debuginfodialog.h"
 | 
				
			||||||
#include "ui_debuginfodialog.h"
 | 
					#include "ui_debuginfodialog.h"
 | 
				
			||||||
#include "config-feather.h"
 | 
					#include "config-wowlet.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DebugInfoDialog::DebugInfoDialog(AppContext *ctx, QWidget *parent)
 | 
					DebugInfoDialog::DebugInfoDialog(AppContext *ctx, QWidget *parent)
 | 
				
			||||||
        : QDialog(parent)
 | 
					        : QDialog(parent)
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ void DebugInfoDialog::updateInfo() {
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        torStatus = "Unknown";
 | 
					        torStatus = "Unknown";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui->label_featherVersion->setText(QString("%1-%2").arg(FEATHER_VERSION, FEATHER_BRANCH));
 | 
					    ui->label_wowletVersion->setText(QString("%1-%2").arg(WOWLET_VERSION, WOWLET_BRANCH));
 | 
				
			||||||
    ui->label_moneroVersion->setText(QString("%1-%2").arg(MONERO_VERSION, MONERO_BRANCH));
 | 
					    ui->label_moneroVersion->setText(QString("%1-%2").arg(MONERO_VERSION, MONERO_BRANCH));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui->label_walletHeight->setText(QString::number(m_ctx->currentWallet->blockChainHeight()));
 | 
					    ui->label_walletHeight->setText(QString::number(m_ctx->currentWallet->blockChainHeight()));
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,7 @@ void DebugInfoDialog::updateInfo() {
 | 
				
			||||||
    ui->label_websocketStatus->setText(Utils::QtEnumToString(m_ctx->ws->webSocket.state()).remove("State"));
 | 
					    ui->label_websocketStatus->setText(Utils::QtEnumToString(m_ctx->ws->webSocket.state()).remove("State"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui->label_netType->setText(Utils::QtEnumToString(m_ctx->currentWallet->nettype()));
 | 
					    ui->label_netType->setText(Utils::QtEnumToString(m_ctx->currentWallet->nettype()));
 | 
				
			||||||
    ui->label_seedType->setText(m_ctx->currentWallet->getCacheAttribute("feather.seed").isEmpty() ? "25 word" : "14 word");
 | 
					    ui->label_seedType->setText(m_ctx->currentWallet->getCacheAttribute("wowlet.seed").isEmpty() ? "25 word" : "14 word");
 | 
				
			||||||
    ui->label_viewOnly->setText(m_ctx->currentWallet->viewOnly() ? "True" : "False");
 | 
					    ui->label_viewOnly->setText(m_ctx->currentWallet->viewOnly() ? "True" : "False");
 | 
				
			||||||
    ui->label_primaryOnly->setText(m_ctx->currentWallet->balance(0) == m_ctx->currentWallet->balanceAll() ? "True" : "False");
 | 
					    ui->label_primaryOnly->setText(m_ctx->currentWallet->balance(0) == m_ctx->currentWallet->balanceAll() ? "True" : "False");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,7 +89,7 @@ QString DebugInfoDialog::statusToString(Wallet::ConnectionStatus status) {
 | 
				
			||||||
void DebugInfoDialog::copyToClipboad() {
 | 
					void DebugInfoDialog::copyToClipboad() {
 | 
				
			||||||
    // Two spaces at the end of each line are for newlines in Markdown
 | 
					    // Two spaces at the end of each line are for newlines in Markdown
 | 
				
			||||||
    QString text = "";
 | 
					    QString text = "";
 | 
				
			||||||
    text += QString("WOWlet version: %1  \n").arg(ui->label_featherVersion->text());
 | 
					    text += QString("WOWlet version: %1  \n").arg(ui->label_wowletVersion->text());
 | 
				
			||||||
    text += QString("Wownero version: %1  \n").arg(ui->label_moneroVersion->text());
 | 
					    text += QString("Wownero version: %1  \n").arg(ui->label_moneroVersion->text());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    text += QString("Wallet height: %1  \n").arg(ui->label_walletHeight->text());
 | 
					    text += QString("Wallet height: %1  \n").arg(ui->label_walletHeight->text());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_DEBUGINFODIALOG_H
 | 
					#ifndef WOWLET_DEBUGINFODIALOG_H
 | 
				
			||||||
#define FEATHER_DEBUGINFODIALOG_H
 | 
					#define WOWLET_DEBUGINFODIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -31,4 +31,4 @@ private:
 | 
				
			||||||
    Ui::DebugInfoDialog *ui;
 | 
					    Ui::DebugInfoDialog *ui;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_DEBUGINFODIALOG_H
 | 
					#endif //WOWLET_DEBUGINFODIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@
 | 
				
			||||||
      </widget>
 | 
					      </widget>
 | 
				
			||||||
     </item>
 | 
					     </item>
 | 
				
			||||||
     <item row="0" column="1">
 | 
					     <item row="0" column="1">
 | 
				
			||||||
      <widget class="QLabel" name="label_featherVersion">
 | 
					      <widget class="QLabel" name="label_wowletVersion">
 | 
				
			||||||
       <property name="text">
 | 
					       <property name="text">
 | 
				
			||||||
        <string>TextLabel</string>
 | 
					        <string>TextLabel</string>
 | 
				
			||||||
       </property>
 | 
					       </property>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_KEYSDIALOG_H
 | 
					#ifndef WOWLET_KEYSDIALOG_H
 | 
				
			||||||
#define FEATHER_KEYSDIALOG_H
 | 
					#define WOWLET_KEYSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -24,4 +24,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_KEYSDIALOG_H
 | 
					#endif //WOWLET_KEYSDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_OUTPUTINFODIALOG_H
 | 
					#ifndef WOWLET_OUTPUTINFODIALOG_H
 | 
				
			||||||
#define FEATHER_OUTPUTINFODIALOG_H
 | 
					#define WOWLET_OUTPUTINFODIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/Coins.h"
 | 
					#include "libwalletqt/Coins.h"
 | 
				
			||||||
| 
						 | 
					@ -25,4 +25,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_OUTPUTINFODIALOG_H
 | 
					#endif //WOWLET_OUTPUTINFODIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_OUTPUTSWEEPDIALOG_H
 | 
					#ifndef WOWLET_OUTPUTSWEEPDIALOG_H
 | 
				
			||||||
#define FEATHER_OUTPUTSWEEPDIALOG_H
 | 
					#define WOWLET_OUTPUTSWEEPDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,4 +31,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_OUTPUTSWEEPDIALOG_H
 | 
					#endif //WOWLET_OUTPUTSWEEPDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_PASSWORDCHANGEDIALOG_H
 | 
					#ifndef WOWLET_PASSWORDCHANGEDIALOG_H
 | 
				
			||||||
#define FEATHER_PASSWORDCHANGEDIALOG_H
 | 
					#define WOWLET_PASSWORDCHANGEDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -27,4 +27,4 @@ private:
 | 
				
			||||||
    void setPassword();
 | 
					    void setPassword();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_PASSWORDCHANGEDIALOG_H
 | 
					#endif //WOWLET_PASSWORDCHANGEDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_PASSWORDDIALOG_H
 | 
					#ifndef WOWLET_PASSWORDDIALOG_H
 | 
				
			||||||
#define FEATHER_PASSWORDDIALOG_H
 | 
					#define WOWLET_PASSWORDDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,4 +24,4 @@ private:
 | 
				
			||||||
    Ui::PasswordDialog *ui;
 | 
					    Ui::PasswordDialog *ui;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_PASSWORDDIALOG_H
 | 
					#endif //WOWLET_PASSWORDDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_QRCODEDIALOG_H
 | 
					#ifndef WOWLET_QRCODEDIALOG_H
 | 
				
			||||||
#define FEATHER_QRCODEDIALOG_H
 | 
					#define WOWLET_QRCODEDIALOG_H
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "qrcode/QrCode.h"
 | 
					#include "qrcode/QrCode.h"
 | 
				
			||||||
| 
						 | 
					@ -29,4 +29,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_QRCODEDIALOG_H
 | 
					#endif //WOWLET_QRCODEDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@ SeedDialog::SeedDialog(Wallet *wallet, QWidget *parent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui->label_restoreHeight->setText(QString::number(wallet->getWalletCreationHeight()));
 | 
					    ui->label_restoreHeight->setText(QString::number(wallet->getWalletCreationHeight()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QString seed_14_words = wallet->getCacheAttribute("feather.seed");
 | 
					    QString seed_14_words = wallet->getCacheAttribute("wowlet.seed");
 | 
				
			||||||
    QString seed_25_words = wallet->getSeed();
 | 
					    QString seed_25_words = wallet->getSeed();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (seed_14_words.isEmpty()) {
 | 
					    if (seed_14_words.isEmpty()) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_SEEDDIALOG_H
 | 
					#ifndef WOWLET_SEEDDIALOG_H
 | 
				
			||||||
#define FEATHER_SEEDDIALOG_H
 | 
					#define WOWLET_SEEDDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -26,4 +26,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_SEEDDIALOG_H
 | 
					#endif //WOWLET_SEEDDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_SIGNVERIFYDIALOG_H
 | 
					#ifndef WOWLET_SIGNVERIFYDIALOG_H
 | 
				
			||||||
#define FEATHER_SIGNVERIFYDIALOG_H
 | 
					#define WOWLET_SIGNVERIFYDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,4 @@ private slots:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_SIGNVERIFYDIALOG_H
 | 
					#endif //WOWLET_SIGNVERIFYDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TORINFODIALOG_H
 | 
					#ifndef WOWLET_TORINFODIALOG_H
 | 
				
			||||||
#define FEATHER_TORINFODIALOG_H
 | 
					#define WOWLET_TORINFODIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,4 +29,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TORINFODIALOG_H
 | 
					#endif //WOWLET_TORINFODIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TRANSACTIONINFODIALOG_H
 | 
					#ifndef WOWLET_TRANSACTIONINFODIALOG_H
 | 
				
			||||||
#define FEATHER_TRANSACTIONINFODIALOG_H
 | 
					#define WOWLET_TRANSACTIONINFODIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include <QTextCharFormat>
 | 
					#include <QTextCharFormat>
 | 
				
			||||||
| 
						 | 
					@ -35,4 +35,4 @@ private:
 | 
				
			||||||
    QString m_txKey;
 | 
					    QString m_txKey;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TRANSACTIONINFODIALOG_H
 | 
					#endif //WOWLET_TRANSACTIONINFODIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TXCONFADVDIALOG_H
 | 
					#ifndef WOWLET_TXCONFADVDIALOG_H
 | 
				
			||||||
#define FEATHER_TXCONFADVDIALOG_H
 | 
					#define WOWLET_TXCONFADVDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include <QStandardItemModel>
 | 
					#include <QStandardItemModel>
 | 
				
			||||||
| 
						 | 
					@ -50,4 +50,4 @@ private:
 | 
				
			||||||
    QMenu *m_exportSignedMenu;
 | 
					    QMenu *m_exportSignedMenu;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TXCONFADVDIALOG_H
 | 
					#endif //WOWLET_TXCONFADVDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TXCONFDIALOG_H
 | 
					#ifndef WOWLET_TXCONFDIALOG_H
 | 
				
			||||||
#define FEATHER_TXCONFDIALOG_H
 | 
					#define WOWLET_TXCONFDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/PendingTransaction.h"
 | 
					#include "libwalletqt/PendingTransaction.h"
 | 
				
			||||||
| 
						 | 
					@ -33,4 +33,4 @@ private:
 | 
				
			||||||
    QString m_description;
 | 
					    QString m_description;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TXCONFDIALOG_H
 | 
					#endif //WOWLET_TXCONFDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TXIMPORTDIALOG_H
 | 
					#ifndef WOWLET_TXIMPORTDIALOG_H
 | 
				
			||||||
#define FEATHER_TXIMPORTDIALOG_H
 | 
					#define WOWLET_TXIMPORTDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -36,4 +36,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TXIMPORTDIALOG_H
 | 
					#endif //WOWLET_TXIMPORTDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_VERIFYPROOFDIALOG_H
 | 
					#ifndef WOWLET_VERIFYPROOFDIALOG_H
 | 
				
			||||||
#define FEATHER_VERIFYPROOFDIALOG_H
 | 
					#define WOWLET_VERIFYPROOFDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -32,4 +32,4 @@ private:
 | 
				
			||||||
    Wallet *m_wallet;
 | 
					    Wallet *m_wallet;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_VERIFYPROOFDIALOG_H
 | 
					#endif //WOWLET_VERIFYPROOFDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_VIEWONLYDIALOG_H
 | 
					#ifndef WOWLET_VIEWONLYDIALOG_H
 | 
				
			||||||
#define FEATHER_VIEWONLYDIALOG_H
 | 
					#define WOWLET_VIEWONLYDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
| 
						 | 
					@ -29,4 +29,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_KEYSDIALOG_H
 | 
					#endif //WOWLET_KEYSDIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@ WalletInfoDialog::WalletInfoDialog(AppContext *ctx, QWidget *parent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui->label_walletName->setText(keys.fileName().replace(".keys", ""));
 | 
					    ui->label_walletName->setText(keys.fileName().replace(".keys", ""));
 | 
				
			||||||
    ui->label_netType->setText(Utils::QtEnumToString(ctx->currentWallet->nettype()));
 | 
					    ui->label_netType->setText(Utils::QtEnumToString(ctx->currentWallet->nettype()));
 | 
				
			||||||
    ui->label_seedType->setText(ctx->currentWallet->getCacheAttribute("feather.seed").isEmpty() ? "25 word" : "14 word");
 | 
					    ui->label_seedType->setText(ctx->currentWallet->getCacheAttribute("wowlet.seed").isEmpty() ? "25 word" : "14 word");
 | 
				
			||||||
    ui->label_viewOnly->setText(ctx->currentWallet->viewOnly() ? "True" : "False");
 | 
					    ui->label_viewOnly->setText(ctx->currentWallet->viewOnly() ? "True" : "False");
 | 
				
			||||||
    ui->label_path->setText(ctx->walletPath);
 | 
					    ui->label_path->setText(ctx->walletPath);
 | 
				
			||||||
    ui->label_cacheSize->setText(QString("%1 MB").arg(QString::number(cache.size() / 1e6, 'f', 2)));
 | 
					    ui->label_cacheSize->setText(QString("%1 MB").arg(QString::number(cache.size() / 1e6, 'f', 2)));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_WALLETINFODIALOG_H
 | 
					#ifndef WOWLET_WALLETINFODIALOG_H
 | 
				
			||||||
#define FEATHER_WALLETINFODIALOG_H
 | 
					#define WOWLET_WALLETINFODIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDialog>
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,4 +27,4 @@ private:
 | 
				
			||||||
    AppContext *m_ctx;
 | 
					    AppContext *m_ctx;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_WALLETINFODIALOG_H
 | 
					#endif //WOWLET_WALLETINFODIALOG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_GLOBALS_H
 | 
					#ifndef WOWLET_GLOBALS_H
 | 
				
			||||||
#define FEATHER_GLOBALS_H
 | 
					#define WOWLET_GLOBALS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QtGlobal>
 | 
					#include <QtGlobal>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,4 +11,4 @@ namespace globals
 | 
				
			||||||
    const qreal cdiv = 1e11;
 | 
					    const qreal cdiv = 1e11;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_GLOBALS_H
 | 
					#endif //WOWLET_GLOBALS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_HISTORYWIDGET_H
 | 
					#ifndef WOWLET_HISTORYWIDGET_H
 | 
				
			||||||
#define FEATHER_HISTORYWIDGET_H
 | 
					#define WOWLET_HISTORYWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "model/TransactionHistoryModel.h"
 | 
					#include "model/TransactionHistoryModel.h"
 | 
				
			||||||
#include "model/TransactionHistoryProxyModel.h"
 | 
					#include "model/TransactionHistoryProxyModel.h"
 | 
				
			||||||
| 
						 | 
					@ -60,4 +60,4 @@ private:
 | 
				
			||||||
    Wallet *m_wallet = nullptr;
 | 
					    Wallet *m_wallet = nullptr;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_HISTORYWIDGET_H
 | 
					#endif //WOWLET_HISTORYWIDGET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2014-2021, The Monero Project.
 | 
					// Copyright (c) 2014-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_ADDRESSBOOKINFO_H
 | 
					#ifndef WOWLET_ADDRESSBOOKINFO_H
 | 
				
			||||||
#define FEATHER_ADDRESSBOOKINFO_H
 | 
					#define WOWLET_ADDRESSBOOKINFO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
| 
						 | 
					@ -25,4 +25,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_ADDRESSBOOKINFO_H
 | 
					#endif //WOWLET_ADDRESSBOOKINFO_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COINS_H
 | 
					#ifndef WOWLET_COINS_H
 | 
				
			||||||
#define FEATHER_COINS_H
 | 
					#define WOWLET_COINS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <functional>
 | 
					#include <functional>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,4 +49,4 @@ private:
 | 
				
			||||||
    mutable QList<CoinsInfo*> m_tinfo;
 | 
					    mutable QList<CoinsInfo*> m_tinfo;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COINS_H
 | 
					#endif //WOWLET_COINS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COINSINFO_H
 | 
					#ifndef WOWLET_COINSINFO_H
 | 
				
			||||||
#define FEATHER_COINSINFO_H
 | 
					#define WOWLET_COINSINFO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
| 
						 | 
					@ -88,4 +88,4 @@ private:
 | 
				
			||||||
    bool m_coinbase;
 | 
					    bool m_coinbase;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COINSINFO_H
 | 
					#endif //WOWLET_COINSINFO_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2014-2021, The Monero Project.
 | 
					// Copyright (c) 2014-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CONSTRUCTIONINFO_H
 | 
					#ifndef WOWLET_CONSTRUCTIONINFO_H
 | 
				
			||||||
#define FEATHER_CONSTRUCTIONINFO_H
 | 
					#define WOWLET_CONSTRUCTIONINFO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
| 
						 | 
					@ -43,4 +43,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CONSTRUCTIONINFO_H
 | 
					#endif //WOWLET_CONSTRUCTIONINFO_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2014-2021, The Monero Project.
 | 
					// Copyright (c) 2014-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_INPUT_H
 | 
					#ifndef WOWLET_INPUT_H
 | 
				
			||||||
#define FEATHER_INPUT_H
 | 
					#define WOWLET_INPUT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
| 
						 | 
					@ -26,4 +26,4 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_INPUT_H
 | 
					#endif //WOWLET_INPUT_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2014-2021, The Monero Project.
 | 
					// Copyright (c) 2014-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_PENDINGTRANSACTIONINFO_H
 | 
					#ifndef WOWLET_PENDINGTRANSACTIONINFO_H
 | 
				
			||||||
#define FEATHER_PENDINGTRANSACTIONINFO_H
 | 
					#define WOWLET_PENDINGTRANSACTIONINFO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include "ConstructionInfo.h"
 | 
					#include "ConstructionInfo.h"
 | 
				
			||||||
| 
						 | 
					@ -43,4 +43,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_PENDINGTRANSACTIONINFO_H
 | 
					#endif //WOWLET_PENDINGTRANSACTIONINFO_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_RINGS_H
 | 
					#ifndef WOWLET_RINGS_H
 | 
				
			||||||
#define FEATHER_RINGS_H
 | 
					#define WOWLET_RINGS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
| 
						 | 
					@ -25,4 +25,4 @@ public:
 | 
				
			||||||
    std::vector<uint64_t> ringMembers() const { return m_ringMembers; }
 | 
					    std::vector<uint64_t> ringMembers() const { return m_ringMembers; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_RINGS_H
 | 
					#endif //WOWLET_RINGS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@ namespace {
 | 
				
			||||||
    static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 30;
 | 
					    static const int DAEMON_BLOCKCHAIN_TARGET_HEIGHT_CACHE_TTL_SECONDS = 30;
 | 
				
			||||||
    static const int WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS = 5;
 | 
					    static const int WALLET_CONNECTION_STATUS_CACHE_TTL_SECONDS = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static constexpr char ATTRIBUTE_SUBADDRESS_ACCOUNT[] = "feather.subaddress_account";
 | 
					    static constexpr char ATTRIBUTE_SUBADDRESS_ACCOUNT[] = "wowlet.subaddress_account";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Wallet::Wallet(QObject * parent)
 | 
					Wallet::Wallet(QObject * parent)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
#include <QtCore>
 | 
					#include <QtCore>
 | 
				
			||||||
#include <QtGui>
 | 
					#include <QtGui>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config-feather.h"
 | 
					#include "config-wowlet.h"
 | 
				
			||||||
#include "mainwindow.h"
 | 
					#include "mainwindow.h"
 | 
				
			||||||
#include "cli.h"
 | 
					#include "cli.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -155,7 +155,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
 | 
				
			||||||
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 | 
					    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 | 
				
			||||||
    QApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton);
 | 
					    QApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton);
 | 
				
			||||||
    QApplication::setDesktopSettingsAware(true); // use system font
 | 
					    QApplication::setDesktopSettingsAware(true); // use system font
 | 
				
			||||||
    QApplication::setApplicationVersion(FEATHER_VERSION);
 | 
					    QApplication::setApplicationVersion(WOWLET_VERSION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QApplication app(argc, argv);
 | 
					    QApplication app(argc, argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
 | 
				
			||||||
    if(!quiet) {
 | 
					    if(!quiet) {
 | 
				
			||||||
        QMap<QString, QString> info;
 | 
					        QMap<QString, QString> info;
 | 
				
			||||||
        info["Qt"] = QT_VERSION_STR;
 | 
					        info["Qt"] = QT_VERSION_STR;
 | 
				
			||||||
        info["WOWlet"] = FEATHER_VERSION;
 | 
					        info["WOWlet"] = WOWLET_VERSION;
 | 
				
			||||||
        if (stagenet) info["Mode"] = "Stagenet";
 | 
					        if (stagenet) info["Mode"] = "Stagenet";
 | 
				
			||||||
        else if (testnet) info["Mode"] = "Testnet";
 | 
					        else if (testnet) info["Mode"] = "Testnet";
 | 
				
			||||||
        else info["Mode"] = "Mainnet";
 | 
					        else info["Mode"] = "Mainnet";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -328,7 +328,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
 | 
				
			||||||
#ifdef Q_OS_MAC
 | 
					#ifdef Q_OS_MAC
 | 
				
			||||||
    m_touchbar = new KDMacTouchBar(this);
 | 
					    m_touchbar = new KDMacTouchBar(this);
 | 
				
			||||||
    m_touchbarActionWelcome = new QAction(QIcon(":/assets/images/wowlet.png"), "Welcome to WOWlet!");
 | 
					    m_touchbarActionWelcome = new QAction(QIcon(":/assets/images/wowlet.png"), "Welcome to WOWlet!");
 | 
				
			||||||
    m_touchbarWalletItems = {ui->actionSettings, ui->actionCalculator, ui->actionKeys, ui->actionDonate_to_Feather};
 | 
					    m_touchbarWalletItems = {ui->actionSettings, ui->actionCalculator, ui->actionKeys, ui->actionDonate_to_Wowlet};
 | 
				
			||||||
    m_touchbarWizardItems = {m_touchbarActionWelcome};
 | 
					    m_touchbarWizardItems = {m_touchbarActionWelcome};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -480,7 +480,7 @@ void MainWindow::initMenu() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // About screen
 | 
					    // About screen
 | 
				
			||||||
    connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::menuAboutClicked);
 | 
					    connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::menuAboutClicked);
 | 
				
			||||||
    connect(ui->actionDonate_to_Feather, &QAction::triggered, this, &MainWindow::donateButtonClicked);
 | 
					    connect(ui->actionDonate_to_Wowlet, &QAction::triggered, this, &MainWindow::donateButtonClicked);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Close wallet
 | 
					    // Close wallet
 | 
				
			||||||
    connect(ui->actionClose, &QAction::triggered, this, &MainWindow::menuWalletCloseClicked);
 | 
					    connect(ui->actionClose, &QAction::triggered, this, &MainWindow::menuWalletCloseClicked);
 | 
				
			||||||
| 
						 | 
					@ -876,7 +876,7 @@ void MainWindow::updatePasswordIcon() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::showRestoreHeightDialog() {
 | 
					void MainWindow::showRestoreHeightDialog() {
 | 
				
			||||||
    // settings custom restore height is only available for 25 word seeds
 | 
					    // settings custom restore height is only available for 25 word seeds
 | 
				
			||||||
    auto seed = m_ctx->currentWallet->getCacheAttribute("feather.seed");
 | 
					    auto seed = m_ctx->currentWallet->getCacheAttribute("wowlet.seed");
 | 
				
			||||||
    if(!seed.isEmpty()) {
 | 
					    if(!seed.isEmpty()) {
 | 
				
			||||||
        const auto msg = "This wallet has a 14 word mnemonic seed which has the restore height embedded.";
 | 
					        const auto msg = "This wallet has a 14 word mnemonic seed which has the restore height embedded.";
 | 
				
			||||||
        QMessageBox::warning(this, "Cannot set custom restore height", msg);
 | 
					        QMessageBox::warning(this, "Cannot set custom restore height", msg);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -429,7 +429,7 @@
 | 
				
			||||||
    </property>
 | 
					    </property>
 | 
				
			||||||
    <addaction name="actionAbout"/>
 | 
					    <addaction name="actionAbout"/>
 | 
				
			||||||
    <addaction name="actionOfficialWebsite"/>
 | 
					    <addaction name="actionOfficialWebsite"/>
 | 
				
			||||||
    <addaction name="actionDonate_to_Feather"/>
 | 
					    <addaction name="actionDonate_to_Wowlet"/>
 | 
				
			||||||
    <addaction name="separator"/>
 | 
					    <addaction name="separator"/>
 | 
				
			||||||
    <addaction name="actionReport_bug"/>
 | 
					    <addaction name="actionReport_bug"/>
 | 
				
			||||||
    <addaction name="actionShow_debug_info"/>
 | 
					    <addaction name="actionShow_debug_info"/>
 | 
				
			||||||
| 
						 | 
					@ -504,7 +504,7 @@
 | 
				
			||||||
    <string>Report bug</string>
 | 
					    <string>Report bug</string>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
  </action>
 | 
					  </action>
 | 
				
			||||||
  <action name="actionDonate_to_Feather">
 | 
					  <action name="actionDonate_to_Wowlet">
 | 
				
			||||||
   <property name="text">
 | 
					   <property name="text">
 | 
				
			||||||
    <string>Donate to WOWlet</string>
 | 
					    <string>Donate to WOWlet</string>
 | 
				
			||||||
   </property>
 | 
					   </property>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_ADDRESSBOOKPROXYMODEL_H
 | 
					#ifndef WOWLET_ADDRESSBOOKPROXYMODEL_H
 | 
				
			||||||
#define FEATHER_ADDRESSBOOKPROXYMODEL_H
 | 
					#define WOWLET_ADDRESSBOOKPROXYMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QSortFilterProxyModel>
 | 
					#include <QSortFilterProxyModel>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,4 +25,4 @@ private:
 | 
				
			||||||
    QRegExp m_searchRegExp;
 | 
					    QRegExp m_searchRegExp;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_ADDRESSBOOKPROXYMODEL_H
 | 
					#endif //WOWLET_ADDRESSBOOKPROXYMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CCSMODEL_H
 | 
					#ifndef WOWLET_CCSMODEL_H
 | 
				
			||||||
#define FEATHER_CCSMODEL_H
 | 
					#define WOWLET_CCSMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QAbstractTableModel>
 | 
					#include <QAbstractTableModel>
 | 
				
			||||||
#include <QSharedPointer>
 | 
					#include <QSharedPointer>
 | 
				
			||||||
| 
						 | 
					@ -39,4 +39,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CCSMODEL_H
 | 
					#endif //WOWLET_CCSMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COINSMODEL_H
 | 
					#ifndef WOWLET_COINSMODEL_H
 | 
				
			||||||
#define FEATHER_COINSMODEL_H
 | 
					#define WOWLET_COINSMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wallet/api/wallet2_api.h>
 | 
					#include <wallet/api/wallet2_api.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,4 +55,4 @@ private:
 | 
				
			||||||
    QIcon m_eyeBlind;
 | 
					    QIcon m_eyeBlind;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COINSMODEL_H
 | 
					#endif //WOWLET_COINSMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COINSPROXYMODEL_H
 | 
					#ifndef WOWLET_COINSPROXYMODEL_H
 | 
				
			||||||
#define FEATHER_COINSPROXYMODEL_H
 | 
					#define WOWLET_COINSPROXYMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QSortFilterProxyModel>
 | 
					#include <QSortFilterProxyModel>
 | 
				
			||||||
#include "libwalletqt/Coins.h"
 | 
					#include "libwalletqt/Coins.h"
 | 
				
			||||||
| 
						 | 
					@ -25,4 +25,4 @@ private:
 | 
				
			||||||
    Coins *m_coins;
 | 
					    Coins *m_coins;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COINSPROXYMODEL_H
 | 
					#endif //WOWLET_COINSPROXYMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_MODELUTILS_H
 | 
					#ifndef WOWLET_MODELUTILS_H
 | 
				
			||||||
#define FEATHER_MODELUTILS_H
 | 
					#define WOWLET_MODELUTILS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QString>
 | 
					#include <QString>
 | 
				
			||||||
#include <QModelIndex>
 | 
					#include <QModelIndex>
 | 
				
			||||||
| 
						 | 
					@ -15,4 +15,4 @@ public:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_MODELUTILS_H
 | 
					#endif //WOWLET_MODELUTILS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ void NodeModel::clear() {
 | 
				
			||||||
    endResetModel();
 | 
					    endResetModel();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeModel::updateNodes(const QList<FeatherNode> nodes) {
 | 
					void NodeModel::updateNodes(const QList<WowletNode> nodes) {
 | 
				
			||||||
    beginResetModel();
 | 
					    beginResetModel();
 | 
				
			||||||
    m_nodes.clear();
 | 
					    m_nodes.clear();
 | 
				
			||||||
    m_nodes = nodes;
 | 
					    m_nodes = nodes;
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ QVariant NodeModel::data(const QModelIndex &index, int role) const {
 | 
				
			||||||
    if (!index.isValid() || index.row() < 0 || index.row() >= m_nodes.count())
 | 
					    if (!index.isValid() || index.row() < 0 || index.row() >= m_nodes.count())
 | 
				
			||||||
        return QVariant();
 | 
					        return QVariant();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeatherNode node = m_nodes.at(index.row());
 | 
					    WowletNode node = m_nodes.at(index.row());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(role == Qt::DisplayRole) {
 | 
					    if(role == Qt::DisplayRole) {
 | 
				
			||||||
        switch(index.column()) {
 | 
					        switch(index.column()) {
 | 
				
			||||||
| 
						 | 
					@ -94,10 +94,10 @@ QVariant NodeModel::headerData(int section, Qt::Orientation orientation, int rol
 | 
				
			||||||
    return QVariant();
 | 
					    return QVariant();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FeatherNode NodeModel::node(int row) {
 | 
					WowletNode NodeModel::node(int row) {
 | 
				
			||||||
    if (row < 0 || row >= m_nodes.size()) {
 | 
					    if (row < 0 || row >= m_nodes.size()) {
 | 
				
			||||||
        qCritical("%s: no reddit post for index %d", __FUNCTION__, row);
 | 
					        qCritical("%s: no reddit post for index %d", __FUNCTION__, row);
 | 
				
			||||||
        return FeatherNode();
 | 
					        return WowletNode();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return m_nodes.at(row);
 | 
					    return m_nodes.at(row);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,13 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_NODEMODEL_H
 | 
					#ifndef WOWLET_NODEMODEL_H
 | 
				
			||||||
#define FEATHER_NODEMODEL_H
 | 
					#define WOWLET_NODEMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QAbstractTableModel>
 | 
					#include <QAbstractTableModel>
 | 
				
			||||||
#include <QIcon>
 | 
					#include <QIcon>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FeatherNode;
 | 
					class WowletNode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class NodeModel : public QAbstractTableModel {
 | 
					class NodeModel : public QAbstractTableModel {
 | 
				
			||||||
    Q_OBJECT
 | 
					    Q_OBJECT
 | 
				
			||||||
| 
						 | 
					@ -25,16 +25,16 @@ public:
 | 
				
			||||||
    int columnCount(const QModelIndex &parent) const override;
 | 
					    int columnCount(const QModelIndex &parent) const override;
 | 
				
			||||||
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
 | 
					    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
 | 
				
			||||||
    QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
 | 
					    QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
 | 
				
			||||||
    FeatherNode node(int row);
 | 
					    WowletNode node(int row);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void clear();
 | 
					    void clear();
 | 
				
			||||||
    void updateNodes(QList<FeatherNode> nodes);
 | 
					    void updateNodes(QList<WowletNode> nodes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    QList<FeatherNode> m_nodes;
 | 
					    QList<WowletNode> m_nodes;
 | 
				
			||||||
    QIcon m_offline;
 | 
					    QIcon m_offline;
 | 
				
			||||||
    QIcon m_online;
 | 
					    QIcon m_online;
 | 
				
			||||||
    int m_nodeSource;
 | 
					    int m_nodeSource;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_NODEMODEL_H
 | 
					#endif //WOWLET_NODEMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_REDDITMODEL_H
 | 
					#ifndef WOWLET_REDDITMODEL_H
 | 
				
			||||||
#define FEATHER_REDDITMODEL_H
 | 
					#define WOWLET_REDDITMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QAbstractTableModel>
 | 
					#include <QAbstractTableModel>
 | 
				
			||||||
#include <QSharedPointer>
 | 
					#include <QSharedPointer>
 | 
				
			||||||
| 
						 | 
					@ -38,4 +38,4 @@ private:
 | 
				
			||||||
    QList<QSharedPointer<RedditPost>> m_posts;
 | 
					    QList<QSharedPointer<RedditPost>> m_posts;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_REDDITMODEL_H
 | 
					#endif //WOWLET_REDDITMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_SUBADDRESSPROXYMODEL_H
 | 
					#ifndef WOWLET_SUBADDRESSPROXYMODEL_H
 | 
				
			||||||
#define FEATHER_SUBADDRESSPROXYMODEL_H
 | 
					#define WOWLET_SUBADDRESSPROXYMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libwalletqt/Subaddress.h"
 | 
					#include "libwalletqt/Subaddress.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,4 +35,4 @@ private:
 | 
				
			||||||
    bool m_hidePrimary;
 | 
					    bool m_hidePrimary;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_SUBADDRESSPROXYMODEL_H
 | 
					#endif //WOWLET_SUBADDRESSPROXYMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_SUBADDRESSVIEW_H
 | 
					#ifndef WOWLET_SUBADDRESSVIEW_H
 | 
				
			||||||
#define FEATHER_SUBADDRESSVIEW_H
 | 
					#define WOWLET_SUBADDRESSVIEW_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QTreeView>
 | 
					#include <QTreeView>
 | 
				
			||||||
#include <QKeyEvent>
 | 
					#include <QKeyEvent>
 | 
				
			||||||
| 
						 | 
					@ -19,4 +19,4 @@ protected:
 | 
				
			||||||
    void keyPressEvent(QKeyEvent *event);
 | 
					    void keyPressEvent(QKeyEvent *event);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_SUBADDRESSVIEW_H
 | 
					#endif //WOWLET_SUBADDRESSVIEW_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TRANSACTIONHISTORYPROXYMODEL_H
 | 
					#ifndef WOWLET_TRANSACTIONHISTORYPROXYMODEL_H
 | 
				
			||||||
#define FEATHER_TRANSACTIONHISTORYPROXYMODEL_H
 | 
					#define WOWLET_TRANSACTIONHISTORYPROXYMODEL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libwalletqt/TransactionHistory.h"
 | 
					#include "libwalletqt/TransactionHistory.h"
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,4 @@ private:
 | 
				
			||||||
    QRegExp m_searchRegExp;
 | 
					    QRegExp m_searchRegExp;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TRANSACTIONHISTORYPROXYMODEL_H
 | 
					#endif //WOWLET_TRANSACTIONHISTORYPROXYMODEL_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_RECEIVEWIDGET_H
 | 
					#ifndef WOWLET_RECEIVEWIDGET_H
 | 
				
			||||||
#define FEATHER_RECEIVEWIDGET_H
 | 
					#define WOWLET_RECEIVEWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
#include "qrcode/QrCode.h"
 | 
					#include "qrcode/QrCode.h"
 | 
				
			||||||
| 
						 | 
					@ -59,4 +59,4 @@ private:
 | 
				
			||||||
    void showQrCodeDialog();
 | 
					    void showQrCodeDialog();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_RECEIVEWIDGET_H
 | 
					#endif //WOWLET_RECEIVEWIDGET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@ Settings::Settings(QWidget *parent) :
 | 
				
			||||||
    // nodes
 | 
					    // nodes
 | 
				
			||||||
    ui->nodeWidget->setupUI(m_ctx);
 | 
					    ui->nodeWidget->setupUI(m_ctx);
 | 
				
			||||||
    connect(ui->nodeWidget, &NodeWidget::nodeSourceChanged, m_ctx->nodes, &Nodes::onNodeSourceChanged);
 | 
					    connect(ui->nodeWidget, &NodeWidget::nodeSourceChanged, m_ctx->nodes, &Nodes::onNodeSourceChanged);
 | 
				
			||||||
    connect(ui->nodeWidget, &NodeWidget::connectToNode, m_ctx->nodes, QOverload<const FeatherNode&>::of(&Nodes::connectToNode));
 | 
					    connect(ui->nodeWidget, &NodeWidget::connectToNode, m_ctx->nodes, QOverload<const WowletNode&>::of(&Nodes::connectToNode));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // setup checkboxes
 | 
					    // setup checkboxes
 | 
				
			||||||
    ui->checkBox_externalLink->setChecked(config()->get(Config::warnOnExternalLink).toBool());
 | 
					    ui->checkBox_externalLink->setChecked(config()->get(Config::warnOnExternalLink).toBool());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,8 @@
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
// Copyright (c) 2012 thomasv@gitorious
 | 
					// Copyright (c) 2012 thomasv@gitorious
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_COLORSCHEME_H
 | 
					#ifndef WOWLET_COLORSCHEME_H
 | 
				
			||||||
#define FEATHER_COLORSCHEME_H
 | 
					#define WOWLET_COLORSCHEME_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QString>
 | 
					#include <QString>
 | 
				
			||||||
#include <QVector>
 | 
					#include <QVector>
 | 
				
			||||||
| 
						 | 
					@ -41,4 +41,4 @@ public:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_COLORSCHEME_H
 | 
					#endif //WOWLET_COLORSCHEME_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_RESTOREHEIGHTLOOKUP_H
 | 
					#ifndef WOWLET_RESTOREHEIGHTLOOKUP_H
 | 
				
			||||||
#define FEATHER_RESTOREHEIGHTLOOKUP_H
 | 
					#define WOWLET_RESTOREHEIGHTLOOKUP_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <cstdio>
 | 
					#include <cstdio>
 | 
				
			||||||
#include <cstdlib>
 | 
					#include <cstdlib>
 | 
				
			||||||
| 
						 | 
					@ -73,4 +73,4 @@ struct RestoreHeightLookup {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_RESTOREHEIGHTLOOKUP_H
 | 
					#endif //WOWLET_RESTOREHEIGHTLOOKUP_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
#ifndef FEATHER_FEATHERSEED_H
 | 
					#ifndef WOWLET_WOWLETSEED_H
 | 
				
			||||||
#define FEATHER_FEATHERSEED_H
 | 
					#define WOWLET_WOWLETSEED_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libwalletqt/WalletManager.h"
 | 
					#include "libwalletqt/WalletManager.h"
 | 
				
			||||||
#include "libwalletqt/Wallet.h"
 | 
					#include "libwalletqt/Wallet.h"
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ enum SeedType {
 | 
				
			||||||
    TEVADOR     // 14 word seeds
 | 
					    TEVADOR     // 14 word seeds
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct FeatherSeed {
 | 
					struct WowletSeed {
 | 
				
			||||||
    QString coin;
 | 
					    QString coin;
 | 
				
			||||||
    QString language;
 | 
					    QString language;
 | 
				
			||||||
    SeedType seedType;
 | 
					    SeedType seedType;
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@ struct FeatherSeed {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QString errorString;
 | 
					    QString errorString;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    explicit FeatherSeed(RestoreHeightLookup *lookup,
 | 
					    explicit WowletSeed(RestoreHeightLookup *lookup,
 | 
				
			||||||
                          const QString &coin = "monero",
 | 
					                          const QString &coin = "monero",
 | 
				
			||||||
                          const QString &language = "English",
 | 
					                          const QString &language = "English",
 | 
				
			||||||
                          const QStringList &mnemonic = {})
 | 
					                          const QStringList &mnemonic = {})
 | 
				
			||||||
| 
						 | 
					@ -111,4 +111,4 @@ struct FeatherSeed {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_FEATHERSEED_H
 | 
					#endif //WOWLET_WOWLETSEED_H
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_FPROCESS_H
 | 
					#ifndef WOWLET_FPROCESS_H
 | 
				
			||||||
#define FEATHER_FPROCESS_H
 | 
					#define WOWLET_FPROCESS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QProcess>
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,4 +21,4 @@ protected:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_FPROCESS_H
 | 
					#endif //WOWLET_FPROCESS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,8 @@
 | 
				
			||||||
// Copyright (C) 2011 Felix Geyer <debfx@fobos.de>
 | 
					// Copyright (C) 2011 Felix Geyer <debfx@fobos.de>
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_SETTINGS_H
 | 
					#ifndef WOWLET_SETTINGS_H
 | 
				
			||||||
#define FEATHER_SETTINGS_H
 | 
					#define WOWLET_SETTINGS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
#include <QSettings>
 | 
					#include <QSettings>
 | 
				
			||||||
| 
						 | 
					@ -78,4 +78,4 @@ inline Config* config()
 | 
				
			||||||
    return Config::instance();
 | 
					    return Config::instance();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_SETTINGS_H
 | 
					#endif //WOWLET_SETTINGS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_DAEMON_RPC_H
 | 
					#ifndef WOWLET_DAEMON_RPC_H
 | 
				
			||||||
#define FEATHER_DAEMON_RPC_H
 | 
					#define WOWLET_DAEMON_RPC_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,4 +48,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_DAEMON_RPC_H
 | 
					#endif //WOWLET_DAEMON_RPC_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_NETWORKING_H
 | 
					#ifndef WOWLET_NETWORKING_H
 | 
				
			||||||
#define FEATHER_NETWORKING_H
 | 
					#define WOWLET_NETWORKING_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QRegExp>
 | 
					#include <QRegExp>
 | 
				
			||||||
#include <QtNetwork>
 | 
					#include <QtNetwork>
 | 
				
			||||||
| 
						 | 
					@ -38,4 +38,4 @@ private:
 | 
				
			||||||
    QNetworkAccessManager *m_networkAccessManager;
 | 
					    QNetworkAccessManager *m_networkAccessManager;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_NETWORKING_H
 | 
					#endif //WOWLET_NETWORKING_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ Nodes::Nodes(AppContext *ctx, QNetworkAccessManager *networkAccessManager, QObje
 | 
				
			||||||
        QObject(parent),
 | 
					        QObject(parent),
 | 
				
			||||||
        m_ctx(ctx),
 | 
					        m_ctx(ctx),
 | 
				
			||||||
        m_networkAccessManager(networkAccessManager),
 | 
					        m_networkAccessManager(networkAccessManager),
 | 
				
			||||||
        m_connection(FeatherNode()),
 | 
					        m_connection(WowletNode()),
 | 
				
			||||||
        modelWebsocket(new NodeModel(NodeSource::websocket, this)),
 | 
					        modelWebsocket(new NodeModel(NodeSource::websocket, this)),
 | 
				
			||||||
        modelCustom(new NodeModel(NodeSource::custom, this)) {
 | 
					        modelCustom(new NodeModel(NodeSource::custom, this)) {
 | 
				
			||||||
    this->loadConfig();
 | 
					    this->loadConfig();
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@ void Nodes::loadConfig() {
 | 
				
			||||||
    // load custom nodes
 | 
					    // load custom nodes
 | 
				
			||||||
    auto nodes = obj.value("custom").toArray();
 | 
					    auto nodes = obj.value("custom").toArray();
 | 
				
			||||||
    for (auto value: nodes) {
 | 
					    for (auto value: nodes) {
 | 
				
			||||||
        auto customNode = FeatherNode(value.toString());
 | 
					        auto customNode = WowletNode(value.toString());
 | 
				
			||||||
        customNode.custom = true;
 | 
					        customNode.custom = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(m_connection == customNode) {
 | 
					        if(m_connection == customNode) {
 | 
				
			||||||
| 
						 | 
					@ -57,7 +57,7 @@ void Nodes::loadConfig() {
 | 
				
			||||||
    // load cached websocket nodes
 | 
					    // load cached websocket nodes
 | 
				
			||||||
    auto ws = obj.value("ws").toArray();
 | 
					    auto ws = obj.value("ws").toArray();
 | 
				
			||||||
    for (auto value: ws) {
 | 
					    for (auto value: ws) {
 | 
				
			||||||
        auto wsNode = FeatherNode(value.toString());
 | 
					        auto wsNode = WowletNode(value.toString());
 | 
				
			||||||
        wsNode.custom = false;
 | 
					        wsNode.custom = false;
 | 
				
			||||||
        wsNode.online = true;  // assume online
 | 
					        wsNode.online = true;  // assume online
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,7 +104,7 @@ void Nodes::loadConfig() {
 | 
				
			||||||
                nodes_list = nodes_json[netKey].toObject()["clearnet"].toArray();
 | 
					                nodes_list = nodes_json[netKey].toObject()["clearnet"].toArray();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            for (auto node: nodes_list) {
 | 
					            for (auto node: nodes_list) {
 | 
				
			||||||
                auto wsNode = FeatherNode(node.toString());
 | 
					                auto wsNode = WowletNode(node.toString());
 | 
				
			||||||
                wsNode.custom = false;
 | 
					                wsNode.custom = false;
 | 
				
			||||||
                wsNode.online = true;
 | 
					                wsNode.online = true;
 | 
				
			||||||
                m_websocketNodes.append(wsNode);
 | 
					                m_websocketNodes.append(wsNode);
 | 
				
			||||||
| 
						 | 
					@ -134,7 +134,7 @@ void Nodes::connectToNode() {
 | 
				
			||||||
    this->autoConnect(true);
 | 
					    this->autoConnect(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Nodes::connectToNode(const FeatherNode &node) {
 | 
					void Nodes::connectToNode(const WowletNode &node) {
 | 
				
			||||||
    if (node.address.isEmpty())
 | 
					    if (node.address.isEmpty())
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,7 +169,7 @@ void Nodes::autoConnect(bool forceReconnect) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (wsMode && !m_wsNodesReceived && m_websocketNodes.count() == 0) {
 | 
					    if (wsMode && !m_wsNodesReceived && m_websocketNodes.count() == 0) {
 | 
				
			||||||
        // this situation should rarely occur due to the usage of the websocket node cache on startup.
 | 
					        // this situation should rarely occur due to the usage of the websocket node cache on startup.
 | 
				
			||||||
        qInfo() << "Feather is in websocket connection mode but was not able to receive any nodes (yet).";
 | 
					        qInfo() << "WOWlet is in websocket connection mode but was not able to receive any nodes (yet).";
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -200,9 +200,9 @@ void Nodes::autoConnect(bool forceReconnect) {
 | 
				
			||||||
    this->updateModels();
 | 
					    this->updateModels();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FeatherNode Nodes::pickEligibleNode() {
 | 
					WowletNode Nodes::pickEligibleNode() {
 | 
				
			||||||
    // Pick a node at random to connect to
 | 
					    // Pick a node at random to connect to
 | 
				
			||||||
    auto rtn = FeatherNode();
 | 
					    auto rtn = WowletNode();
 | 
				
			||||||
    auto wsMode = (this->source() == NodeSource::websocket);
 | 
					    auto wsMode = (this->source() == NodeSource::websocket);
 | 
				
			||||||
    auto nodes = wsMode ? m_websocketNodes : m_customNodes;
 | 
					    auto nodes = wsMode ? m_websocketNodes : m_customNodes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -224,7 +224,7 @@ FeatherNode Nodes::pickEligibleNode() {
 | 
				
			||||||
    // Pick random eligible node
 | 
					    // Pick random eligible node
 | 
				
			||||||
    int mode_height = this->modeHeight(nodes);
 | 
					    int mode_height = this->modeHeight(nodes);
 | 
				
			||||||
    for (int index : node_indeces) {
 | 
					    for (int index : node_indeces) {
 | 
				
			||||||
        const FeatherNode &node = nodes.at(index);
 | 
					        const WowletNode &node = nodes.at(index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // This may fail to detect bad nodes if cached nodes are used
 | 
					        // This may fail to detect bad nodes if cached nodes are used
 | 
				
			||||||
        // Todo: wait on websocket before connecting, only use cache if websocket is unavailable
 | 
					        // Todo: wait on websocket before connecting, only use cache if websocket is unavailable
 | 
				
			||||||
| 
						 | 
					@ -258,7 +258,7 @@ FeatherNode Nodes::pickEligibleNode() {
 | 
				
			||||||
    return rtn;
 | 
					    return rtn;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Nodes::onWSNodesReceived(const QList<QSharedPointer<FeatherNode>> &nodes) {
 | 
					void Nodes::onWSNodesReceived(const QList<QSharedPointer<WowletNode>> &nodes) {
 | 
				
			||||||
    m_websocketNodes.clear();
 | 
					    m_websocketNodes.clear();
 | 
				
			||||||
    m_wsNodesReceived = true;
 | 
					    m_wsNodesReceived = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -303,7 +303,7 @@ void Nodes::onNodeSourceChanged(NodeSource nodeSource) {
 | 
				
			||||||
    this->autoConnect(true);
 | 
					    this->autoConnect(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Nodes::setCustomNodes(const QList<FeatherNode> &nodes) {
 | 
					void Nodes::setCustomNodes(const QList<WowletNode> &nodes) {
 | 
				
			||||||
    m_customNodes.clear();
 | 
					    m_customNodes.clear();
 | 
				
			||||||
    auto key = QString::number(m_ctx->networkType);
 | 
					    auto key = QString::number(m_ctx->networkType);
 | 
				
			||||||
    auto obj = m_configJson.value(key).toObject();
 | 
					    auto obj = m_configJson.value(key).toObject();
 | 
				
			||||||
| 
						 | 
					@ -329,7 +329,7 @@ void Nodes::updateModels() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Nodes::resetLocalState() {
 | 
					void Nodes::resetLocalState() {
 | 
				
			||||||
    auto resetState = [this](QList<FeatherNode> *model){
 | 
					    auto resetState = [this](QList<WowletNode> *model){
 | 
				
			||||||
        for (auto&& node: *model) {
 | 
					        for (auto&& node: *model) {
 | 
				
			||||||
            node.isConnecting = false;
 | 
					            node.isConnecting = false;
 | 
				
			||||||
            node.isActive = false;
 | 
					            node.isActive = false;
 | 
				
			||||||
| 
						 | 
					@ -372,11 +372,11 @@ void Nodes::WSNodeExhaustedWarning() {
 | 
				
			||||||
    m_wsExhaustedWarningEmitted = true;
 | 
					    m_wsExhaustedWarningEmitted = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QList<FeatherNode> Nodes::customNodes() {
 | 
					QList<WowletNode> Nodes::customNodes() {
 | 
				
			||||||
    return m_customNodes;
 | 
					    return m_customNodes;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FeatherNode Nodes::connection() {
 | 
					WowletNode Nodes::connection() {
 | 
				
			||||||
    return m_connection;
 | 
					    return m_connection;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -384,7 +384,7 @@ NodeSource Nodes::source() {
 | 
				
			||||||
    return m_source;
 | 
					    return m_source;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int Nodes::modeHeight(const QList<FeatherNode> &nodes) {
 | 
					int Nodes::modeHeight(const QList<WowletNode> &nodes) {
 | 
				
			||||||
    QVector<int> heights;
 | 
					    QVector<int> heights;
 | 
				
			||||||
    for (const auto &node: nodes) {
 | 
					    for (const auto &node: nodes) {
 | 
				
			||||||
        heights.push_back(node.height);
 | 
					        heights.push_back(node.height);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_NODES_H
 | 
					#ifndef WOWLET_NODES_H
 | 
				
			||||||
#define FEATHER_NODES_H
 | 
					#define WOWLET_NODES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QTimer>
 | 
					#include <QTimer>
 | 
				
			||||||
#include <QRegExp>
 | 
					#include <QRegExp>
 | 
				
			||||||
| 
						 | 
					@ -20,8 +20,8 @@ enum NodeSource {
 | 
				
			||||||
    custom
 | 
					    custom
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct FeatherNode {
 | 
					struct WowletNode {
 | 
				
			||||||
    explicit FeatherNode(QString _address = "", int height = 0, int target_height = 0, bool online = false)
 | 
					    explicit WowletNode(QString _address = "", int height = 0, int target_height = 0, bool online = false)
 | 
				
			||||||
            : height(height), target_height(target_height), online(online){
 | 
					            : height(height), target_height(target_height), online(online){
 | 
				
			||||||
        // wonky ipv4/host parsing, should be fine(tm)(c).
 | 
					        // wonky ipv4/host parsing, should be fine(tm)(c).
 | 
				
			||||||
        if(_address.isEmpty()) return;
 | 
					        if(_address.isEmpty()) return;
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ struct FeatherNode {
 | 
				
			||||||
        return QString("%1://%2/get_info").arg(this->isHttps ? "https": "http",this->full);
 | 
					        return QString("%1://%2/get_info").arg(this->isHttps ? "https": "http",this->full);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool operator == (const FeatherNode &other) const {
 | 
					    bool operator == (const WowletNode &other) const {
 | 
				
			||||||
        return this->full == other.full;
 | 
					        return this->full == other.full;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -87,18 +87,18 @@ public:
 | 
				
			||||||
    void writeConfig();
 | 
					    void writeConfig();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    NodeSource source();
 | 
					    NodeSource source();
 | 
				
			||||||
    FeatherNode connection();
 | 
					    WowletNode connection();
 | 
				
			||||||
    QList<FeatherNode> customNodes();
 | 
					    QList<WowletNode> customNodes();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    NodeModel *modelWebsocket;
 | 
					    NodeModel *modelWebsocket;
 | 
				
			||||||
    NodeModel *modelCustom;
 | 
					    NodeModel *modelCustom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public slots:
 | 
					public slots:
 | 
				
			||||||
    void connectToNode();
 | 
					    void connectToNode();
 | 
				
			||||||
    void connectToNode(const FeatherNode &node);
 | 
					    void connectToNode(const WowletNode &node);
 | 
				
			||||||
    void onWSNodesReceived(const QList<QSharedPointer<FeatherNode>>& nodes);
 | 
					    void onWSNodesReceived(const QList<QSharedPointer<WowletNode>>& nodes);
 | 
				
			||||||
    void onNodeSourceChanged(NodeSource nodeSource);
 | 
					    void onNodeSourceChanged(NodeSource nodeSource);
 | 
				
			||||||
    void setCustomNodes(const QList<FeatherNode>& nodes);
 | 
					    void setCustomNodes(const QList<WowletNode>& nodes);
 | 
				
			||||||
    void autoConnect(bool forceReconnect = false);
 | 
					    void autoConnect(bool forceReconnect = false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
signals:
 | 
					signals:
 | 
				
			||||||
| 
						 | 
					@ -114,24 +114,24 @@ private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QStringList m_recentFailures;
 | 
					    QStringList m_recentFailures;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QList<FeatherNode> m_customNodes;
 | 
					    QList<WowletNode> m_customNodes;
 | 
				
			||||||
    QList<FeatherNode> m_websocketNodes;
 | 
					    QList<WowletNode> m_websocketNodes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeatherNode m_connection;  // current active connection, if any
 | 
					    WowletNode m_connection;  // current active connection, if any
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool m_wsNodesReceived = false;
 | 
					    bool m_wsNodesReceived = false;
 | 
				
			||||||
    bool m_wsExhaustedWarningEmitted = true;
 | 
					    bool m_wsExhaustedWarningEmitted = true;
 | 
				
			||||||
    bool m_customExhaustedWarningEmitted = true;
 | 
					    bool m_customExhaustedWarningEmitted = true;
 | 
				
			||||||
    bool m_enableAutoconnect = true;
 | 
					    bool m_enableAutoconnect = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeatherNode pickEligibleNode();
 | 
					    WowletNode pickEligibleNode();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void updateModels();
 | 
					    void updateModels();
 | 
				
			||||||
    void resetLocalState();
 | 
					    void resetLocalState();
 | 
				
			||||||
    void exhausted();
 | 
					    void exhausted();
 | 
				
			||||||
    void WSNodeExhaustedWarning();
 | 
					    void WSNodeExhaustedWarning();
 | 
				
			||||||
    void nodeExhaustedWarning();
 | 
					    void nodeExhaustedWarning();
 | 
				
			||||||
    int modeHeight(const QList<FeatherNode> &nodes);
 | 
					    int modeHeight(const QList<WowletNode> &nodes);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_NODES_H
 | 
					#endif //WOWLET_NODES_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_PRICES_H
 | 
					#ifndef WOWLET_PRICES_H
 | 
				
			||||||
#define FEATHER_PRICES_H
 | 
					#define WOWLET_PRICES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
#include <QProcess>
 | 
					#include <QProcess>
 | 
				
			||||||
| 
						 | 
					@ -39,4 +39,4 @@ signals:
 | 
				
			||||||
    void cryptoPricesUpdated();
 | 
					    void cryptoPricesUpdated();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_PRICES_H
 | 
					#endif //WOWLET_PRICES_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
#include "utils/utils.h"
 | 
					#include "utils/utils.h"
 | 
				
			||||||
#include "utils/tor.h"
 | 
					#include "utils/tor.h"
 | 
				
			||||||
#include "appcontext.h"
 | 
					#include "appcontext.h"
 | 
				
			||||||
#include "config-feather.h"
 | 
					#include "config-wowlet.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString Tor::torHost = "127.0.0.1";
 | 
					QString Tor::torHost = "127.0.0.1";
 | 
				
			||||||
quint16 Tor::torPort = 9050;
 | 
					quint16 Tor::torPort = 9050;
 | 
				
			||||||
| 
						 | 
					@ -116,7 +116,7 @@ void Tor::start() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Tor::checkConnection() {
 | 
					void Tor::checkConnection() {
 | 
				
			||||||
    // We might not be able to connect to localhost if torsocks is used to start feather
 | 
					    // We might not be able to connect to localhost if torsocks is used to start wowlet
 | 
				
			||||||
    if (m_ctx->isTorSocks)
 | 
					    if (m_ctx->isTorSocks)
 | 
				
			||||||
        this->setConnectionState(true);
 | 
					        this->setConnectionState(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TOR_H
 | 
					#ifndef WOWLET_TOR_H
 | 
				
			||||||
#define FEATHER_TOR_H
 | 
					#define WOWLET_TOR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <cstdio>
 | 
					#include <cstdio>
 | 
				
			||||||
#include <cstdlib>
 | 
					#include <cstdlib>
 | 
				
			||||||
| 
						 | 
					@ -112,4 +112,4 @@ private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AppContext;  // forward declaration
 | 
					class AppContext;  // forward declaration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TOR_H
 | 
					#endif //WOWLET_TOR_H
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TXFIATHISTORY_H
 | 
					#ifndef WOWLET_TXFIATHISTORY_H
 | 
				
			||||||
#define FEATHER_TXFIATHISTORY_H
 | 
					#define WOWLET_TXFIATHISTORY_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TxFiatHistory : public QObject {
 | 
					class TxFiatHistory : public QObject {
 | 
				
			||||||
    Q_OBJECT
 | 
					    Q_OBJECT
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,4 @@ private:
 | 
				
			||||||
    int m_genesis_timestamp;
 | 
					    int m_genesis_timestamp;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TXFIATHISTORY_H
 | 
					#endif //WOWLET_TXFIATHISTORY_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_UTILS_H
 | 
					#ifndef WOWLET_UTILS_H
 | 
				
			||||||
#define FEATHER_UTILS_H
 | 
					#define WOWLET_UTILS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QRegExp>
 | 
					#include <QRegExp>
 | 
				
			||||||
#include <QStandardItemModel>
 | 
					#include <QStandardItemModel>
 | 
				
			||||||
| 
						 | 
					@ -86,4 +86,4 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AppContext;  // forward declaration
 | 
					class AppContext;  // forward declaration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_UTILS_H
 | 
					#endif //WOWLET_UTILS_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_WHONIX_H
 | 
					#ifndef WOWLET_WHONIX_H
 | 
				
			||||||
#define FEATHER_WHONIX_H
 | 
					#define WOWLET_WHONIX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QString>
 | 
					#include <QString>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,4 +12,4 @@ struct WhonixOS {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_WHONIX_H
 | 
					#endif //WOWLET_WHONIX_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_XMRIG_H
 | 
					#ifndef WOWLET_XMRIG_H
 | 
				
			||||||
#define FEATHER_XMRIG_H
 | 
					#define WOWLET_XMRIG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <cstdio>
 | 
					#include <cstdio>
 | 
				
			||||||
#include <cstdlib>
 | 
					#include <cstdlib>
 | 
				
			||||||
| 
						 | 
					@ -42,4 +42,4 @@ private:
 | 
				
			||||||
    ChildProcess m_process;
 | 
					    ChildProcess m_process;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_XMRIG_H
 | 
					#endif //WOWLET_XMRIG_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CCSENTRY_H
 | 
					#ifndef WOWLET_CCSENTRY_H
 | 
				
			||||||
#define FEATHER_CCSENTRY_H
 | 
					#define WOWLET_CCSENTRY_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QString>
 | 
					#include <QString>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,4 +21,4 @@ struct CCSEntry {
 | 
				
			||||||
    int contributions = 0;
 | 
					    int contributions = 0;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CCSENTRY_H
 | 
					#endif //WOWLET_CCSENTRY_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,8 @@
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
// Copyright (c) 2012 thomasv@gitorious
 | 
					// Copyright (c) 2012 thomasv@gitorious
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_PAYTOEDIT_H
 | 
					#ifndef WOWLET_PAYTOEDIT_H
 | 
				
			||||||
#define FEATHER_PAYTOEDIT_H
 | 
					#define WOWLET_PAYTOEDIT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QObject>
 | 
					#include <QObject>
 | 
				
			||||||
#include <QPlainTextEdit>
 | 
					#include <QPlainTextEdit>
 | 
				
			||||||
| 
						 | 
					@ -67,4 +67,4 @@ private:
 | 
				
			||||||
    QVector<PartialTxOutput> m_outputs;
 | 
					    QVector<PartialTxOutput> m_outputs;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_PAYTOEDIT_H
 | 
					#endif //WOWLET_PAYTOEDIT_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_REDDITPOST_H
 | 
					#ifndef WOWLET_REDDITPOST_H
 | 
				
			||||||
#define FEATHER_REDDITPOST_H
 | 
					#define WOWLET_REDDITPOST_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QString>
 | 
					#include <QString>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,4 +16,4 @@ struct RedditPost {
 | 
				
			||||||
    int comments;
 | 
					    int comments;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_REDDITPOST_H
 | 
					#endif //WOWLET_REDDITPOST_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CSSPROGRESSDELEGATE_H
 | 
					#ifndef WOWLET_CSSPROGRESSDELEGATE_H
 | 
				
			||||||
#define FEATHER_CSSPROGRESSDELEGATE_H
 | 
					#define WOWLET_CSSPROGRESSDELEGATE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QStyledItemDelegate>
 | 
					#include <QStyledItemDelegate>
 | 
				
			||||||
#include "model/CCSModel.h"
 | 
					#include "model/CCSModel.h"
 | 
				
			||||||
| 
						 | 
					@ -20,4 +20,4 @@ private:
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CSSPROGRESSDELEGATE_H
 | 
					#endif //WOWLET_CSSPROGRESSDELEGATE_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@ NodeWidget::NodeWidget(QWidget *parent)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeWidget::onShowWSContextMenu(const QPoint &pos) {
 | 
					void NodeWidget::onShowWSContextMenu(const QPoint &pos) {
 | 
				
			||||||
    m_activeView = ui->wsView;
 | 
					    m_activeView = ui->wsView;
 | 
				
			||||||
    FeatherNode node = this->selectedNode();
 | 
					    WowletNode node = this->selectedNode();
 | 
				
			||||||
    if (node.full.isEmpty()) return;
 | 
					    if (node.full.isEmpty()) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this->showContextMenu(pos, node);
 | 
					    this->showContextMenu(pos, node);
 | 
				
			||||||
| 
						 | 
					@ -57,13 +57,13 @@ void NodeWidget::onShowWSContextMenu(const QPoint &pos) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeWidget::onShowCustomContextMenu(const QPoint &pos) {
 | 
					void NodeWidget::onShowCustomContextMenu(const QPoint &pos) {
 | 
				
			||||||
    m_activeView = ui->customView;
 | 
					    m_activeView = ui->customView;
 | 
				
			||||||
    FeatherNode node = this->selectedNode();
 | 
					    WowletNode node = this->selectedNode();
 | 
				
			||||||
    if (node.full.isEmpty()) return;
 | 
					    if (node.full.isEmpty()) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this->showContextMenu(pos, node);
 | 
					    this->showContextMenu(pos, node);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeWidget::showContextMenu(const QPoint &pos, const FeatherNode &node) {
 | 
					void NodeWidget::showContextMenu(const QPoint &pos, const WowletNode &node) {
 | 
				
			||||||
    QMenu menu(this);
 | 
					    QMenu menu(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!node.isActive) {
 | 
					    if (!node.isActive) {
 | 
				
			||||||
| 
						 | 
					@ -86,27 +86,27 @@ void NodeWidget::onContextConnect() {
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        m_activeView = ui->wsView;
 | 
					        m_activeView = ui->wsView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeatherNode node = this->selectedNode();
 | 
					    WowletNode node = this->selectedNode();
 | 
				
			||||||
    if (!node.full.isEmpty())
 | 
					    if (!node.full.isEmpty())
 | 
				
			||||||
        emit connectToNode(node);
 | 
					        emit connectToNode(node);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeWidget::onContextStatusURL() {
 | 
					void NodeWidget::onContextStatusURL() {
 | 
				
			||||||
    FeatherNode node = this->selectedNode();
 | 
					    WowletNode node = this->selectedNode();
 | 
				
			||||||
    if (!node.full.isEmpty())
 | 
					    if (!node.full.isEmpty())
 | 
				
			||||||
        Utils::externalLinkWarning(this, node.as_url());
 | 
					        Utils::externalLinkWarning(this, node.as_url());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NodeWidget::onContextNodeCopy() {
 | 
					void NodeWidget::onContextNodeCopy() {
 | 
				
			||||||
    FeatherNode node = this->selectedNode();
 | 
					    WowletNode node = this->selectedNode();
 | 
				
			||||||
    Utils::copyToClipboard(node.full);
 | 
					    Utils::copyToClipboard(node.full);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FeatherNode NodeWidget::selectedNode() {
 | 
					WowletNode NodeWidget::selectedNode() {
 | 
				
			||||||
    QModelIndex index = m_activeView->currentIndex();
 | 
					    QModelIndex index = m_activeView->currentIndex();
 | 
				
			||||||
    if (!index.isValid()) return FeatherNode();
 | 
					    if (!index.isValid()) return WowletNode();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    FeatherNode node;
 | 
					    WowletNode node;
 | 
				
			||||||
    if (m_activeView == ui->customView) {
 | 
					    if (m_activeView == ui->customView) {
 | 
				
			||||||
        node = m_customModel->node(index.row());
 | 
					        node = m_customModel->node(index.row());
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
| 
						 | 
					@ -118,10 +118,10 @@ FeatherNode NodeWidget::selectedNode() {
 | 
				
			||||||
void NodeWidget::onContextCustomNodeRemove() {
 | 
					void NodeWidget::onContextCustomNodeRemove() {
 | 
				
			||||||
    QModelIndex index = ui->customView->currentIndex();
 | 
					    QModelIndex index = ui->customView->currentIndex();
 | 
				
			||||||
    if (!index.isValid()) return;
 | 
					    if (!index.isValid()) return;
 | 
				
			||||||
    FeatherNode node = m_customModel->node(index.row());
 | 
					    WowletNode node = m_customModel->node(index.row());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto nodes = m_ctx->nodes->customNodes();
 | 
					    auto nodes = m_ctx->nodes->customNodes();
 | 
				
			||||||
    QMutableListIterator<FeatherNode> i(nodes);
 | 
					    QMutableListIterator<WowletNode> i(nodes);
 | 
				
			||||||
    while (i.hasNext())
 | 
					    while (i.hasNext())
 | 
				
			||||||
        if (i.next() == node)
 | 
					        if (i.next() == node)
 | 
				
			||||||
            i.remove();
 | 
					            i.remove();
 | 
				
			||||||
| 
						 | 
					@ -141,14 +141,14 @@ void NodeWidget::onCustomAddClicked(){
 | 
				
			||||||
    if (!ok || text.isEmpty())
 | 
					    if (!ok || text.isEmpty())
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QList<FeatherNode> nodesList;
 | 
					    QList<WowletNode> nodesList;
 | 
				
			||||||
    auto newNodesList = text.split("\n");
 | 
					    auto newNodesList = text.split("\n");
 | 
				
			||||||
    for(auto &newNodeText: newNodesList) {
 | 
					    for(auto &newNodeText: newNodesList) {
 | 
				
			||||||
        newNodeText = newNodeText.replace("\r", "").trimmed();
 | 
					        newNodeText = newNodeText.replace("\r", "").trimmed();
 | 
				
			||||||
        if(newNodeText.isEmpty())
 | 
					        if(newNodeText.isEmpty())
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto node = FeatherNode(newNodeText);
 | 
					        auto node = WowletNode(newNodeText);
 | 
				
			||||||
        node.custom = true;
 | 
					        node.custom = true;
 | 
				
			||||||
        nodesList.append(node);
 | 
					        nodesList.append(node);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ private slots:
 | 
				
			||||||
    void onContextNodeCopy();
 | 
					    void onContextNodeCopy();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
signals:
 | 
					signals:
 | 
				
			||||||
    void connectToNode(FeatherNode node);
 | 
					    void connectToNode(WowletNode node);
 | 
				
			||||||
    void nodeSourceChanged(NodeSource nodeSource);
 | 
					    void nodeSourceChanged(NodeSource nodeSource);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
| 
						 | 
					@ -56,8 +56,8 @@ private:
 | 
				
			||||||
    QAction *m_contextActionOpenStatusURL;
 | 
					    QAction *m_contextActionOpenStatusURL;
 | 
				
			||||||
    QAction *m_contextActionCopy;
 | 
					    QAction *m_contextActionCopy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void showContextMenu(const QPoint &pos, const FeatherNode &node);
 | 
					    void showContextMenu(const QPoint &pos, const WowletNode &node);
 | 
				
			||||||
    FeatherNode selectedNode();
 | 
					    WowletNode selectedNode();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // NODEWIDGET_H
 | 
					#endif // NODEWIDGET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,6 +57,7 @@ signals:
 | 
				
			||||||
    void thumbReceived(SuchWowPost *test);
 | 
					    void thumbReceived(SuchWowPost *test);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
 | 
					    // @TODO: Replace url
 | 
				
			||||||
    QString m_weburl = "http://feathercitimllbmdktu6cmjo3fizgmyfrntntqzu6xguqa2rlq5cgid.onion/suchwow";
 | 
					    QString m_weburl = "http://feathercitimllbmdktu6cmjo3fizgmyfrntntqzu6xguqa2rlq5cgid.onion/suchwow";
 | 
				
			||||||
    AppContext *m_ctx = nullptr;
 | 
					    AppContext *m_ctx = nullptr;
 | 
				
			||||||
    UtilsNetworking *m_networkThumb = nullptr;
 | 
					    UtilsNetworking *m_networkThumb = nullptr;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_TXPROOFWIDGET_H
 | 
					#ifndef WOWLET_TXPROOFWIDGET_H
 | 
				
			||||||
#define FEATHER_TXPROOFWIDGET_H
 | 
					#define WOWLET_TXPROOFWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QWidget>
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,4 @@ private:
 | 
				
			||||||
    Wallet *m_wallet;
 | 
					    Wallet *m_wallet;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_TXPROOFWIDGET_H
 | 
					#endif //WOWLET_TXPROOFWIDGET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,11 +83,11 @@ XMRigWidget::XMRigWidget(AppContext *ctx, QWidget *parent) :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // username/password
 | 
					    // username/password
 | 
				
			||||||
    connect(ui->lineEdit_password, &QLineEdit::editingFinished, [=]() {
 | 
					    connect(ui->lineEdit_password, &QLineEdit::editingFinished, [=]() {
 | 
				
			||||||
        m_ctx->currentWallet->setCacheAttribute("feather.xmrig_password", ui->lineEdit_password->text());
 | 
					        m_ctx->currentWallet->setCacheAttribute("wowlet.xmrig_password", ui->lineEdit_password->text());
 | 
				
			||||||
        m_ctx->storeWallet();
 | 
					        m_ctx->storeWallet();
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    connect(ui->lineEdit_address, &QLineEdit::editingFinished, [=]() {
 | 
					    connect(ui->lineEdit_address, &QLineEdit::editingFinished, [=]() {
 | 
				
			||||||
        m_ctx->currentWallet->setCacheAttribute("feather.xmrig_username", ui->lineEdit_address->text());
 | 
					        m_ctx->currentWallet->setCacheAttribute("wowlet.xmrig_username", ui->lineEdit_address->text());
 | 
				
			||||||
        m_ctx->storeWallet();
 | 
					        m_ctx->storeWallet();
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,17 +104,17 @@ void XMRigWidget::onWalletClosed() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void XMRigWidget::onWalletOpened(Wallet *wallet){
 | 
					void XMRigWidget::onWalletOpened(Wallet *wallet){
 | 
				
			||||||
    // Xmrig username
 | 
					    // Xmrig username
 | 
				
			||||||
    auto username = m_ctx->currentWallet->getCacheAttribute("feather.xmrig_username");
 | 
					    auto username = m_ctx->currentWallet->getCacheAttribute("wowlet.xmrig_username");
 | 
				
			||||||
    if(!username.isEmpty())
 | 
					    if(!username.isEmpty())
 | 
				
			||||||
        ui->lineEdit_address->setText(username);
 | 
					        ui->lineEdit_address->setText(username);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Xmrig passwd
 | 
					    // Xmrig passwd
 | 
				
			||||||
    auto password = m_ctx->currentWallet->getCacheAttribute("feather.xmrig_password");
 | 
					    auto password = m_ctx->currentWallet->getCacheAttribute("wowlet.xmrig_password");
 | 
				
			||||||
    if(!password.isEmpty()) {
 | 
					    if(!password.isEmpty()) {
 | 
				
			||||||
        ui->lineEdit_password->setText(password);
 | 
					        ui->lineEdit_password->setText(password);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        ui->lineEdit_password->setText("featherwallet");
 | 
					        ui->lineEdit_password->setText("wowlet");
 | 
				
			||||||
        m_ctx->currentWallet->setCacheAttribute("feather.xmrig_password", ui->lineEdit_password->text());
 | 
					        m_ctx->currentWallet->setCacheAttribute("wowlet.xmrig_password", ui->lineEdit_password->text());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -145,8 +145,8 @@ void XMRigWidget::onStartClicked() {
 | 
				
			||||||
    xmrigPath = config()->get(Config::xmrigPath).toString();
 | 
					    xmrigPath = config()->get(Config::xmrigPath).toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // username is receiving address usually
 | 
					    // username is receiving address usually
 | 
				
			||||||
    auto username = m_ctx->currentWallet->getCacheAttribute("feather.xmrig_username");
 | 
					    auto username = m_ctx->currentWallet->getCacheAttribute("wowlet.xmrig_username");
 | 
				
			||||||
    auto password = m_ctx->currentWallet->getCacheAttribute("feather.xmrig_password");
 | 
					    auto password = m_ctx->currentWallet->getCacheAttribute("wowlet.xmrig_password");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(username.isEmpty()) {
 | 
					    if(username.isEmpty()) {
 | 
				
			||||||
        QString err = "Please specify a receiving address on the Settings screen";
 | 
					        QString err = "Please specify a receiving address on the Settings screen";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CREATEWALLET_H
 | 
					#ifndef WOWLET_CREATEWALLET_H
 | 
				
			||||||
#define FEATHER_CREATEWALLET_H
 | 
					#define WOWLET_CREATEWALLET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QLabel>
 | 
					#include <QLabel>
 | 
				
			||||||
#include <QWizardPage>
 | 
					#include <QWizardPage>
 | 
				
			||||||
| 
						 | 
					@ -35,4 +35,4 @@ private:
 | 
				
			||||||
    bool validateWidgets();
 | 
					    bool validateWidgets();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CREATEWALLET_H
 | 
					#endif //WOWLET_CREATEWALLET_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ void CreateWalletSeedPage::seedRoulette(int count) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CreateWalletSeedPage::generateSeed() {
 | 
					void CreateWalletSeedPage::generateSeed() {
 | 
				
			||||||
    FeatherSeed seed = FeatherSeed(m_ctx->restoreHeights[m_ctx->networkType], m_ctx->coinName, m_ctx->seedLanguage);
 | 
					    WowletSeed seed = WowletSeed(m_ctx->restoreHeights[m_ctx->networkType], m_ctx->coinName, m_ctx->seedLanguage);
 | 
				
			||||||
    m_mnemonic = seed.mnemonic.join(" ");
 | 
					    m_mnemonic = seed.mnemonic.join(" ");
 | 
				
			||||||
    m_restoreHeight = seed.restoreHeight;
 | 
					    m_restoreHeight = seed.restoreHeight;
 | 
				
			||||||
    this->displaySeed(m_mnemonic);
 | 
					    this->displaySeed(m_mnemonic);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_CREATEWALLETSEED_H
 | 
					#ifndef WOWLET_CREATEWALLETSEED_H
 | 
				
			||||||
#define FEATHER_CREATEWALLETSEED_H
 | 
					#define WOWLET_CREATEWALLETSEED_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QLabel>
 | 
					#include <QLabel>
 | 
				
			||||||
#include <QWizardPage>
 | 
					#include <QWizardPage>
 | 
				
			||||||
| 
						 | 
					@ -47,4 +47,4 @@ private:
 | 
				
			||||||
    int m_rouletteSpin = 15;
 | 
					    int m_rouletteSpin = 15;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_CREATEWALLETSEED_H
 | 
					#endif //WOWLET_CREATEWALLETSEED_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
// SPDX-License-Identifier: BSD-3-Clause
 | 
					// SPDX-License-Identifier: BSD-3-Clause
 | 
				
			||||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
					// Copyright (c) 2020-2021, The Monero Project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef FEATHER_WIZARDMENU_H
 | 
					#ifndef WOWLET_WIZARDMENU_H
 | 
				
			||||||
#define FEATHER_WIZARDMENU_H
 | 
					#define WOWLET_WIZARDMENU_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QLabel>
 | 
					#include <QLabel>
 | 
				
			||||||
#include <QWizardPage>
 | 
					#include <QWizardPage>
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,4 @@ private:
 | 
				
			||||||
    Ui::MenuPage *ui;
 | 
					    Ui::MenuPage *ui;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //FEATHER_WIZARDMENU_H
 | 
					#endif //WOWLET_WIZARDMENU_H
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue