Wownero
38
.drone.yml
|
@ -29,34 +29,34 @@ steps:
|
||||||
- name: files_linux_appimage
|
- name: files_linux_appimage
|
||||||
path: /linux-release-appimage
|
path: /linux-release-appimage
|
||||||
commands:
|
commands:
|
||||||
- export FN="feather-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
- export FN="feather-wow-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
||||||
- export TARGET_DIR="/linux-release/$DRONE_SOURCE_BRANCH"
|
- export TARGET_DIR="/linux-release/$DRONE_SOURCE_BRANCH"
|
||||||
- mkdir -p "$TARGET_DIR"
|
- mkdir -p "$TARGET_DIR"
|
||||||
- echo "writing to $TARGET_DIR/$FN"
|
- echo "writing to $TARGET_DIR/$FN"
|
||||||
- strip -s build/bin/feather
|
- strip -s build/bin/feather-wow
|
||||||
- zip -j "$TARGET_DIR/$FN" build/feather.log build/bin/feather
|
- zip -j "$TARGET_DIR/$FN" build/feather.log build/bin/feather-wow
|
||||||
- echo "[*] written to https://build.featherwallet.org/files/linux-release/$DRONE_SOURCE_BRANCH/$FN"
|
- echo "[*] written to https://build.featherwallet.org/files/linux-release/$DRONE_SOURCE_BRANCH/$FN"
|
||||||
- # AppImage
|
- # AppImage
|
||||||
- export FN="feather-`git rev-parse --short HEAD`.AppImage"
|
- export FN="feather-wow-`git rev-parse --short HEAD`.AppImage"
|
||||||
- export TARGET_DIR="/linux-release-appimage/$DRONE_SOURCE_BRANCH"
|
- export TARGET_DIR="/linux-release-appimage/$DRONE_SOURCE_BRANCH"
|
||||||
- mkdir -p "$TARGET_DIR"
|
- mkdir -p "$TARGET_DIR"
|
||||||
- echo "writing to $TARGET_DIR/$FN"
|
- echo "writing to $TARGET_DIR/$FN"
|
||||||
- mv "feather.AppImage" "$TARGET_DIR/$FN"
|
- mv "feather-wow.AppImage" "$TARGET_DIR/$FN"
|
||||||
- echo "[*] written to https://build.featherwallet.org/files/linux-release-appimage/$DRONE_SOURCE_BRANCH/$FN"
|
- echo "[*] written to https://build.featherwallet.org/files/linux-release-appimage/$DRONE_SOURCE_BRANCH/$FN"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: ccache_linux_release
|
- name: ccache_linux_release
|
||||||
host:
|
host:
|
||||||
path: /var/drone/ccache_linux_release/
|
path: /var/drone/ccache_wow_linux_release/
|
||||||
- name: monero
|
- name: monero
|
||||||
host:
|
host:
|
||||||
path: /var/drone/monero
|
path: /var/drone/monero
|
||||||
- name: files_linux_release
|
- name: files_linux_release
|
||||||
host:
|
host:
|
||||||
path: /build/feather_files/files/linux-release/
|
path: /build/feather_files/files-wow/linux-release/
|
||||||
- name: files_linux_appimage
|
- name: files_linux_appimage
|
||||||
host:
|
host:
|
||||||
path: /build/feather_files/files/linux-release-appimage/
|
path: /build/feather_files/files-wow/linux-release-appimage/
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
@ -82,19 +82,19 @@ steps:
|
||||||
- name: files_win_release
|
- name: files_win_release
|
||||||
path: /files
|
path: /files
|
||||||
commands:
|
commands:
|
||||||
- export FN="feather-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
- export FN="feather-wow-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
||||||
- export TARGET_DIR="/files/$DRONE_SOURCE_BRANCH"
|
- export TARGET_DIR="/files/$DRONE_SOURCE_BRANCH"
|
||||||
- mkdir -p "$TARGET_DIR"
|
- mkdir -p "$TARGET_DIR"
|
||||||
- echo "writing to $TARGET_DIR/$FN"
|
- echo "writing to $TARGET_DIR/$FN"
|
||||||
- zip -j "$TARGET_DIR/$FN" build/x86_64-w64-mingw32/release/bin/feather.exe
|
- zip -j "$TARGET_DIR/$FN" build/x86_64-w64-mingw32/release/bin/feather-wow.exe
|
||||||
- echo "[*] written to https://build.featherwallet.org/files/windows-release/$DRONE_SOURCE_BRANCH/$FN"
|
- echo "[*] written to https://build.featherwallet.org/files-wow/windows-release/$DRONE_SOURCE_BRANCH/$FN"
|
||||||
volumes:
|
volumes:
|
||||||
- name: ccache_win_release
|
- name: ccache_win_release
|
||||||
host:
|
host:
|
||||||
path: /var/drone/ccache_win_release/
|
path: /var/drone/ccache_wow_win_release/
|
||||||
- name: files_win_release
|
- name: files_win_release
|
||||||
host:
|
host:
|
||||||
path: /build/feather_files/files/windows-release/
|
path: /build/feather_files/files-wow/windows-release/
|
||||||
- name: monero
|
- name: monero
|
||||||
host:
|
host:
|
||||||
path: /var/drone/monero
|
path: /var/drone/monero
|
||||||
|
@ -112,25 +112,25 @@ steps:
|
||||||
path: /files
|
path: /files
|
||||||
commands:
|
commands:
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- ssh administrator@steve.jobs.xmr.pm "chmod +x build_macos.sh && PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ~/build_macos.sh $DRONE_COMMIT_SHA"
|
- ssh administrator@steve.jobs.xmr.pm "chmod +x build_wow_macos.sh && PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ~/build_wow_macos.sh $DRONE_COMMIT_SHA"
|
||||||
- scp -P22 administrator@steve.jobs.xmr.pm:feather.zip build/feather.zip
|
- scp -P22 administrator@steve.jobs.xmr.pm:feather-wow.zip build/feather-wow.zip
|
||||||
- name: deploy
|
- name: deploy
|
||||||
image: feather:mac
|
image: feather:mac
|
||||||
volumes:
|
volumes:
|
||||||
- name: files_mac_release
|
- name: files_mac_release
|
||||||
path: /files
|
path: /files
|
||||||
commands:
|
commands:
|
||||||
- export FN="feather-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
- export FN="feather-wow-`echo $DRONE_COMMIT_AFTER | cut -c 1-7`.zip"
|
||||||
- export TARGET_DIR="/files/$DRONE_SOURCE_BRANCH"
|
- export TARGET_DIR="/files/$DRONE_SOURCE_BRANCH"
|
||||||
- mkdir -p "$TARGET_DIR"
|
- mkdir -p "$TARGET_DIR"
|
||||||
- echo "writing to $TARGET_DIR/$FN"
|
- echo "writing to $TARGET_DIR/$FN"
|
||||||
- mv build/feather.zip "$TARGET_DIR/$FN"
|
- mv build/feather-wow.zip "$TARGET_DIR/$FN"
|
||||||
- echo "[*] written to https://build.featherwallet.org/files/mac-release/$DRONE_SOURCE_BRANCH/$FN"
|
- echo "[*] written to https://build.featherwallet.org/files-wow/mac-release/$DRONE_SOURCE_BRANCH/$FN"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: files_mac_release
|
- name: files_mac_release
|
||||||
host:
|
host:
|
||||||
path: /build/feather_files/files/mac-release/
|
path: /build/feather-wow_files/files-wow/mac-release/
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: f16a0379280e2e89987930d635ec6fb938d67732fdaf4ddc488f2a9db64bda2c
|
hmac: f16a0379280e2e89987930d635ec6fb938d67732fdaf4ddc488f2a9db64bda2c
|
||||||
|
|
|
@ -1,9 +1,3 @@
|
||||||
[submodule "monero"]
|
|
||||||
path = monero
|
|
||||||
url = https://git.wownero.com/feather/monero.git
|
|
||||||
[submodule "contrib/tor"]
|
|
||||||
path = contrib/tor
|
|
||||||
url = https://git.torproject.org/tor.git
|
|
||||||
[submodule "contrib/KDMacTouchBar"]
|
[submodule "contrib/KDMacTouchBar"]
|
||||||
path = contrib/KDMacTouchBar
|
path = contrib/KDMacTouchBar
|
||||||
url = https://github.com/KDAB/KDMacTouchBar.git
|
url = https://github.com/KDAB/KDMacTouchBar.git
|
||||||
|
|
|
@ -12,7 +12,6 @@ set(VERSION "beta-4")
|
||||||
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 Feather" 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)
|
||||||
|
@ -29,7 +28,7 @@ if(DEBUG)
|
||||||
set(CMAKE_VERBOSE_MAKEFILE ON)
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(MONERO_HEAD "aa0f58570d412cf02dd325e567bbc9fa093df16c")
|
set(MONERO_HEAD "b146027bc4515ebadb5e3705a9df9f325c053572")
|
||||||
set(BUILD_GUI_DEPS ON)
|
set(BUILD_GUI_DEPS ON)
|
||||||
set(ARCH "x86-64")
|
set(ARCH "x86-64")
|
||||||
set(BUILD_64 ON)
|
set(BUILD_64 ON)
|
||||||
|
@ -82,11 +81,11 @@ endfunction()
|
||||||
|
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
if(GIT_FOUND)
|
if(GIT_FOUND)
|
||||||
execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/monero OUTPUT_VARIABLE _MONERO_HEAD OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/monero OUTPUT_VARIABLE _WOWNERO_HEAD OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
if(NOT _MONERO_HEAD STREQUAL MONERO_HEAD)
|
if(NOT _WOWNERO_HEAD STREQUAL WOWNERO_HEAD)
|
||||||
message(FATAL_ERROR "[submodule] Monero HEAD was at ${_MONERO_HEAD} but should be at ${MONERO_HEAD}")
|
message(FATAL_ERROR "[submodule] Monero HEAD was at ${_WOWNERO_HEAD} but should be at ${WOWNERO_HEAD}")
|
||||||
else()
|
else()
|
||||||
message(STATUS "[submodule] Monero HEAD @ ${MONERO_HEAD}")
|
message(STATUS "[submodule] Monero HEAD @ ${WOWNERO_HEAD}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
2
Makefile
|
@ -30,7 +30,7 @@ CMAKEFLAGS = \
|
||||||
-DARCH=x86_64 \
|
-DARCH=x86_64 \
|
||||||
-DBUILD_64=On \
|
-DBUILD_64=On \
|
||||||
-DBUILD_TESTS=Off \
|
-DBUILD_TESTS=Off \
|
||||||
-DXMRIG=On \
|
-DXMRIG=Off \
|
||||||
-DTOR_BIN=Off \
|
-DTOR_BIN=Off \
|
||||||
-DCMAKE_CXX_STANDARD=11 \
|
-DCMAKE_CXX_STANDARD=11 \
|
||||||
-DCMAKE_VERBOSE_MAKEFILE=On \
|
-DCMAKE_VERBOSE_MAKEFILE=On \
|
||||||
|
|
32
README.md
|
@ -1,35 +1,13 @@
|
||||||
# Feather - a free Monero desktop wallet
|
# Feather-WOW - a free Wownero desktop wallet
|
||||||
|
|
||||||
[![Build Status](https://build.featherwallet.org/api/badges/feather/feather/status.svg)](https://build.featherwallet.org/feather/feather)
|
[![Build Status](https://build.featherwallet.org/api/badges/feather/feather-wow/status.svg)](https://build.featherwallet.org/feather/feather-wow)
|
||||||
|
|
||||||
Feather is a free, open-source Monero client Linux with ports for Mac OS and Windows written in C++ with the Qt framework. It is created and maintained by [dsc](dsc@xmr.pm) and [tobtoht](thotbot@protonmail.com).
|
Feather is a free, open-source Wownero client for Linux with ports for Mac OS and Windows.
|
||||||
|
|
||||||
## Development resources
|
## Development resources
|
||||||
* Web: [featherwallet.org](https://featherwallet.org)
|
* Web: [featherwallet.org](https://featherwallet.org)
|
||||||
* Git: [git.wownero.com/feather/feather](https://git.wownero.com/feather/feather)
|
* Git: [git.wownero.com/feather/feather-wow](https://git.wownero.com/feather/feather-wow)
|
||||||
* IRC: `#feather` on OFTC
|
* IRC: `#feather` on OFTC
|
||||||
* Development builds: [build.featherwallet.org/files](https://build.featherwallet.org/files/)
|
* Development builds: [build.featherwallet.org/files-wow](https://build.featherwallet.org/files-wow/)
|
||||||
|
|
||||||
Copyright (c) 2020-2021 The Monero Project.
|
Copyright (c) 2020-2021 The Monero Project.
|
||||||
|
|
||||||
## Compiling Feather from source
|
|
||||||
|
|
||||||
Feather uses Monero, as such it requires the same dependencies as outlined in [Monero's README](https://github.com/monero-project/monero#compiling-monero-from-source). Additionally, Feather uses:
|
|
||||||
|
|
||||||
- Qt 5.15.0
|
|
||||||
- libqrencode
|
|
||||||
- openpgp
|
|
||||||
|
|
||||||
See [BUILDING.md](https://git.wownero.com/feather/feather/src/branch/master/BUILDING.md) for information on how to compile a build.
|
|
||||||
|
|
||||||
## Supporting the project
|
|
||||||
|
|
||||||
Feather is a 100% community-sponsored endeavor. If you want to join our efforts, the easiest thing you can do is support the project financially.
|
|
||||||
|
|
||||||
`47ntfT2Z5384zku39pTM6hGcnLnvpRYW2Azm87GiAAH2bcTidtq278TL6HmwyL8yjMeERqGEBs3cqC8vvHPJd1cWQrGC65f`
|
|
||||||
|
|
||||||
## Developers
|
|
||||||
|
|
||||||
See [HACKING.md](https://git.wownero.com/feather/feather/src/branch/master/HACKING.md) for useful development resources.
|
|
||||||
|
|
||||||
It is HIGHLY recommended that you join the `#feather` IRC channel on OFTC if you are hacking on Feather. Due to the nature of this open source software project, joining this channel and idling is the best way to stay updated on best practices and new developments.
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ if(APPLE OR (WIN32 AND NOT STATIC))
|
||||||
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")
|
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")
|
||||||
add_custom_command(TARGET deploy
|
add_custom_command(TARGET deploy
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "$<TARGET_FILE_DIR:feather>/../.." -always-overwrite
|
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "$<TARGET_FILE_DIR:feather-wow>/../.." -always-overwrite
|
||||||
COMMENT "Running macdeployqt..."
|
COMMENT "Running macdeployqt..."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -16,11 +16,11 @@ if(APPLE OR (WIN32 AND NOT STATIC))
|
||||||
if(_qt_svg_dylib)
|
if(_qt_svg_dylib)
|
||||||
add_custom_command(TARGET deploy
|
add_custom_command(TARGET deploy
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/
|
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:feather-wow>/../PlugIns/imageformats/
|
||||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtGui.framework/Versions/5/QtGui" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtGui.framework/Versions/5/QtGui" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather-wow>/../PlugIns/imageformats/libqsvg.dylib
|
||||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather-wow>/../PlugIns/imageformats/libqsvg.dylib
|
||||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtSvg.framework/Versions/5/QtSvg" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtSvg.framework/Versions/5/QtSvg" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather-wow>/../PlugIns/imageformats/libqsvg.dylib
|
||||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
|
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather-wow>/../PlugIns/imageformats/libqsvg.dylib
|
||||||
COMMENT "Copying libqsvg.dylib, running install_name_tool"
|
COMMENT "Copying libqsvg.dylib, running install_name_tool"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -3,16 +3,17 @@
|
||||||
set -e
|
set -e
|
||||||
unset SOURCE_DATE_EPOCH
|
unset SOURCE_DATE_EPOCH
|
||||||
|
|
||||||
APPDIR="$PWD/feather.AppDir"
|
APPDIR="$PWD/feather-wow.AppDir"
|
||||||
|
|
||||||
mkdir -p "$APPDIR"
|
mkdir -p "$APPDIR"
|
||||||
mkdir -p "$APPDIR/usr/share/applications/"
|
mkdir -p "$APPDIR/usr/share/applications/"
|
||||||
mkdir -p "$APPDIR/usr/bin"
|
mkdir -p "$APPDIR/usr/bin"
|
||||||
|
|
||||||
cp "$PWD/src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
|
cp "$PWD/src/assets/feather-wow.desktop" "$APPDIR/usr/share/applications/feather-wow.desktop"
|
||||||
cp "$PWD/src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
|
cp "$PWD/src/assets/images/appicons/64x64.png" "$APPDIR/feather-wow.png"
|
||||||
cp "$PWD/build/bin/feather" "$APPDIR/usr/bin/feather"
|
cp "$PWD/build/bin/feather-wow" "$APPDIR/usr/bin/feather-wow"
|
||||||
|
|
||||||
LD_LIBRARY_PATH=/usr/local/lib /linuxdeployqt/squashfs-root/AppRun feather.AppDir/usr/share/applications/feather.desktop -bundle-non-qt-libs
|
LD_LIBRARY_PATH=/usr/local/lib /linuxdeployqt/squashfs-root/AppRun feather.AppDir/usr/share/applications/feather-wow.desktop -bundle-non-qt-libs
|
||||||
|
|
||||||
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
|
||||||
|
|
||||||
|
@ -26,7 +27,7 @@ mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappen
|
||||||
# mksquashfs writes a timestamp to the header
|
# mksquashfs writes a timestamp to the header
|
||||||
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
|
||||||
|
|
||||||
rm -f feather.AppImage
|
rm -f feather-wow.AppImage
|
||||||
cat runtime-x86_64 >> feather.AppImage
|
cat runtime-x86_64 >> feather-wow.AppImage
|
||||||
cat feather.squashfs >> feather.AppImage
|
cat feather.squashfs >> feather-wow.AppImage
|
||||||
chmod a+x feather.AppImage
|
chmod a+x feather-wow.AppImage
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit e68770719ef4d3d3b83398715b1e10391ab6a1b4
|
|
1
monero
|
@ -1 +0,0 @@
|
||||||
Subproject commit aa0f58570d412cf02dd325e567bbc9fa093df16c
|
|
|
@ -70,29 +70,29 @@ if(APPLE)
|
||||||
list(APPEND RESOURCES ${ICON})
|
list(APPEND RESOURCES ${ICON})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(feather ${EXECUTABLE_FLAG} main.cpp
|
add_executable(feather-wow ${EXECUTABLE_FLAG} main.cpp
|
||||||
${SOURCE_FILES}
|
${SOURCE_FILES}
|
||||||
${RESOURCES}
|
${RESOURCES}
|
||||||
${ASSETS_TOR}
|
${ASSETS_TOR}
|
||||||
)
|
)
|
||||||
|
|
||||||
# mac os bundle
|
# mac os bundle
|
||||||
set_target_properties(feather PROPERTIES
|
set_target_properties(feather-wow PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/utils/Info.plist"
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/utils/Info.plist"
|
||||||
LINK_FLAGS_RELEASE -s
|
LINK_FLAGS_RELEASE -s
|
||||||
)
|
)
|
||||||
|
|
||||||
set_property(TARGET feather PROPERTY RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
set_property(TARGET feather-wow PROPERTY RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||||
|
|
||||||
target_include_directories(feather PUBLIC ${OPENGL_INCLUDE_DIR})
|
target_include_directories(feather-wow PUBLIC ${OPENGL_INCLUDE_DIR})
|
||||||
target_include_directories(feather PUBLIC ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
|
target_include_directories(feather-wow PUBLIC ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
|
||||||
|
|
||||||
file(GLOB_RECURSE SRC_SOURCES *.cpp)
|
file(GLOB_RECURSE SRC_SOURCES *.cpp)
|
||||||
file(GLOB_RECURSE SRC_HEADERS *.h)
|
file(GLOB_RECURSE SRC_HEADERS *.h)
|
||||||
|
|
||||||
target_include_directories(feather PUBLIC
|
target_include_directories(feather-wow PUBLIC
|
||||||
${CMAKE_BINARY_DIR}/src/feather_autogen/include
|
${CMAKE_BINARY_DIR}/src/feather_autogen/include
|
||||||
${CMAKE_SOURCE_DIR}/monero/include
|
${CMAKE_SOURCE_DIR}/monero/include
|
||||||
${CMAKE_SOURCE_DIR}/monero/src
|
${CMAKE_SOURCE_DIR}/monero/src
|
||||||
|
@ -119,34 +119,38 @@ target_include_directories(feather PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
if(DONATE_BEG)
|
if(DONATE_BEG)
|
||||||
target_compile_definitions(feather PRIVATE DONATE_BEG=1)
|
target_compile_definitions(feather-wow PRIVATE DONATE_BEG=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(TOR_BIN)
|
if(TOR_BIN)
|
||||||
target_compile_definitions(feather PRIVATE HAS_TOR_BIN=1)
|
target_compile_definitions(feather-wow PRIVATE HAS_TOR_BIN=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(XMRIG)
|
if(XMRIG)
|
||||||
target_compile_definitions(feather PRIVATE HAS_XMRIG=1)
|
target_compile_definitions(feather-wow PRIVATE HAS_XMRIG=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(HAVE_SYS_PRCTL_H)
|
if(HAVE_SYS_PRCTL_H)
|
||||||
target_compile_definitions(feather PRIVATE HAVE_SYS_PRCTL_H=1)
|
target_compile_definitions(feather-wow PRIVATE HAVE_SYS_PRCTL_H=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(STATIC)
|
if(STATIC)
|
||||||
target_compile_definitions(feather PRIVATE STATIC=1)
|
target_compile_definitions(feather-wow PRIVATE STATIC=1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(STATIC)
|
||||||
|
target_compile_definitions(feather-wow PRIVATE STATIC=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("$ENV{DRONE}" STREQUAL "true")
|
if("$ENV{DRONE}" STREQUAL "true")
|
||||||
target_compile_definitions(feather PRIVATE DRONE=1)
|
target_compile_definitions(feather-wow PRIVATE DRONE=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
target_compile_definitions(feather PRIVATE QT_NO_DEBUG=1)
|
target_compile_definitions(feather-wow PRIVATE QT_NO_DEBUG=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_compile_definitions(feather
|
target_compile_definitions(feather-wow
|
||||||
PUBLIC
|
PUBLIC
|
||||||
${Qt5Core_DEFINITIONS}
|
${Qt5Core_DEFINITIONS}
|
||||||
${Qt5Widgets_DEFINITIONS}
|
${Qt5Widgets_DEFINITIONS}
|
||||||
|
@ -162,12 +166,12 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
# https://stackoverflow.com/questions/57766620/cmake-add-library-doesnt-initialize-static-global-variable
|
# https://stackoverflow.com/questions/57766620/cmake-add-library-doesnt-initialize-static-global-variable
|
||||||
# so that contrib/monero-seed/src/gf_elem.cpp properly initializes. A better solution is welcome.
|
# so that contrib/monero-seed/src/gf_elem.cpp properly initializes. A better solution is welcome.
|
||||||
target_link_libraries(feather -Wl,--whole-archive monero-seed::monero-seed -Wl,--no-whole-archive)
|
target_link_libraries(feather-wow -Wl,--whole-archive monero-seed::monero-seed -Wl,--no-whole-archive)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(feather monero-seed::monero-seed)
|
target_link_libraries(feather-wow monero-seed::monero-seed)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(feather
|
target_link_libraries(feather-wow
|
||||||
wallet_merged
|
wallet_merged
|
||||||
${LMDB_LIBRARY}
|
${LMDB_LIBRARY}
|
||||||
epee
|
epee
|
||||||
|
@ -202,30 +206,30 @@ if(APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
target_link_libraries(feather
|
target_link_libraries(feather-wow
|
||||||
Qt5::QSvgIconPlugin
|
Qt5::QSvgIconPlugin
|
||||||
Qt5::QSvgPlugin
|
Qt5::QSvgPlugin
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(STATIC)
|
if(STATIC)
|
||||||
target_link_libraries(feather
|
target_link_libraries(feather-wow
|
||||||
Qt5::QSvgIconPlugin
|
Qt5::QSvgIconPlugin
|
||||||
Qt5::QSvgPlugin)
|
Qt5::QSvgPlugin)
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
target_link_libraries(feather
|
target_link_libraries(feather-wow
|
||||||
Qt5::QXcbIntegrationPlugin)
|
Qt5::QXcbIntegrationPlugin)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(X11_FOUND)
|
if(X11_FOUND)
|
||||||
target_link_libraries(feather ${X11_LIBRARIES})
|
target_link_libraries(feather-wow ${X11_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
include(Deploy)
|
include(Deploy)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS feather
|
install(TARGETS feather-wow
|
||||||
DESTINATION ${CMAKE_INSTALL_PREFIX}
|
DESTINATION ${CMAKE_INSTALL_PREFIX}
|
||||||
)
|
)
|
||||||
|
|
|
@ -45,11 +45,11 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
|
||||||
QString appImagePath = qgetenv("APPIMAGE");
|
QString appImagePath = qgetenv("APPIMAGE");
|
||||||
if (appImagePath.isEmpty()) {
|
if (appImagePath.isEmpty()) {
|
||||||
qDebug() << "Not an appimage, using currentPath()";
|
qDebug() << "Not an appimage, using currentPath()";
|
||||||
return QDir::currentPath() + "/.feather";
|
return QDir::currentPath() + "/.feather-wow";
|
||||||
}
|
}
|
||||||
|
|
||||||
QFileInfo appImageDir(appImagePath);
|
QFileInfo appImageDir(appImagePath);
|
||||||
return appImageDir.absoluteDir().path() + "/.feather";
|
return appImageDir.absoluteDir().path() + "/.feather-wow";
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,10 +66,10 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
|
||||||
QString walletDir = config()->get(Config::walletDirectory).toString();
|
QString walletDir = config()->get(Config::walletDirectory).toString();
|
||||||
if (walletDir.isEmpty()) {
|
if (walletDir.isEmpty()) {
|
||||||
#if defined(Q_OS_LINUX) or defined(Q_OS_MAC)
|
#if defined(Q_OS_LINUX) or defined(Q_OS_MAC)
|
||||||
this->defaultWalletDir = QString("%1/Monero/wallets").arg(this->configRoot);
|
this->defaultWalletDir = QString("%1/Wownero/wallets").arg(this->configRoot);
|
||||||
this->defaultWalletDirRoot = QString("%1/Monero").arg(this->configRoot);
|
this->defaultWalletDirRoot = QString("%1/Wownero").arg(this->configRoot);
|
||||||
#elif defined(Q_OS_WIN)
|
#elif defined(Q_OS_WIN)
|
||||||
this->defaultWalletDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/Monero";
|
this->defaultWalletDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/Wownero";
|
||||||
this->defaultWalletDirRoot = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
this->defaultWalletDirRoot = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
|
@ -81,7 +81,7 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
|
||||||
if (!QDir().mkpath(defaultWalletDir))
|
if (!QDir().mkpath(defaultWalletDir))
|
||||||
qCritical() << "Unable to create dir: " << defaultWalletDir;
|
qCritical() << "Unable to create dir: " << defaultWalletDir;
|
||||||
|
|
||||||
this->configDirectory = QString("%1/.config/feather/").arg(this->configRoot);
|
this->configDirectory = QString("%1/.config/feather-wow/").arg(this->configRoot);
|
||||||
#if defined(Q_OS_UNIX)
|
#if defined(Q_OS_UNIX)
|
||||||
if(!this->configDirectory.endsWith('/'))
|
if(!this->configDirectory.endsWith('/'))
|
||||||
this->configDirectory = QString("%1/").arg(this->configDirectory);
|
this->configDirectory = QString("%1/").arg(this->configDirectory);
|
||||||
|
@ -90,12 +90,12 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
|
||||||
// Config
|
// Config
|
||||||
createConfigDirectory(this->configDirectory);
|
createConfigDirectory(this->configDirectory);
|
||||||
|
|
||||||
if(this->cmdargs->isSet("stagenet"))
|
// if(this->cmdargs->isSet("stagenet"))
|
||||||
this->networkType = NetworkType::STAGENET;
|
// this->networkType = NetworkType::STAGENET;
|
||||||
else if(this->cmdargs->isSet("testnet"))
|
// else if(this->cmdargs->isSet("testnet"))
|
||||||
this->networkType = NetworkType::TESTNET;
|
// this->networkType = NetworkType::TESTNET;
|
||||||
else
|
// else
|
||||||
this->networkType = NetworkType::MAINNET;
|
this->networkType = NetworkType::MAINNET;
|
||||||
|
|
||||||
// auto nodeSourceUInt = config()->get(Config::nodeSource).toUInt();
|
// auto nodeSourceUInt = config()->get(Config::nodeSource).toUInt();
|
||||||
// AppContext::nodeSource = static_cast<NodeSource>(nodeSourceUInt);
|
// AppContext::nodeSource = static_cast<NodeSource>(nodeSourceUInt);
|
||||||
|
@ -426,7 +426,7 @@ void AppContext::onWSMessage(const QJsonObject &msg) {
|
||||||
this->onWSReddit(reddit_data);
|
this->onWSReddit(reddit_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(cmd == "ccs") {
|
else if(cmd == "wfs") {
|
||||||
auto ccs_data = msg.value("data").toArray();
|
auto ccs_data = msg.value("data").toArray();
|
||||||
this->onWSCCS(ccs_data);
|
this->onWSCCS(ccs_data);
|
||||||
}
|
}
|
||||||
|
@ -602,9 +602,9 @@ void AppContext::createWalletFinish(const QString &password) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppContext::initRestoreHeights() {
|
void AppContext::initRestoreHeights() {
|
||||||
restoreHeights[NetworkType::TESTNET] = new RestoreHeightLookup(NetworkType::TESTNET);
|
restoreHeights[NetworkType::TESTNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::TESTNET);
|
||||||
restoreHeights[NetworkType::STAGENET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_monero_stagenet.txt", NetworkType::STAGENET);
|
restoreHeights[NetworkType::STAGENET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::STAGENET);
|
||||||
restoreHeights[NetworkType::MAINNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_monero_mainnet.txt", NetworkType::MAINNET);
|
restoreHeights[NetworkType::MAINNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppContext::onSetRestoreHeight(quint64 height){
|
void AppContext::onSetRestoreHeight(quint64 height){
|
||||||
|
@ -703,7 +703,7 @@ void AppContext::onUnconfirmedMoneyReceived(const QString &txId, quint64 amount)
|
||||||
qDebug() << Q_FUNC_INFO << txId << " " << QString::number(amount_num);
|
qDebug() << Q_FUNC_INFO << txId << " " << QString::number(amount_num);
|
||||||
|
|
||||||
if(this->currentWallet->synchronized()) {
|
if(this->currentWallet->synchronized()) {
|
||||||
auto notify = QString("%1 XMR (pending)").arg(amount_num);
|
auto notify = QString("%1 WOW (pending)").arg(amount_num);
|
||||||
Utils::desktopNotify("Payment received", notify, 5000);
|
Utils::desktopNotify("Payment received", notify, 5000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,13 +42,13 @@ public:
|
||||||
bool isDebug = false;
|
bool isDebug = false;
|
||||||
|
|
||||||
// Donation config
|
// Donation config
|
||||||
const QString donationAddress = "47ntfT2Z5384zku39pTM6hGcnLnvpRYW2Azm87GiAAH2bcTidtq278TL6HmwyL8yjMeERqGEBs3cqC8vvHPJd1cWQrGC65f";
|
const QString donationAddress = "WW2xGxtet29WxM6RBaxkTaBZoXC4mHGYoiHM5rPgViwNjnTLR452skNTsBMFp9JgMbdGucFQWF3PG95Hau9MnFjp2rmKgrcC7";
|
||||||
const int donationAmount = 25; // euro
|
const int donationAmount = 25; // euro
|
||||||
bool donationSending = false;
|
bool donationSending = false;
|
||||||
|
|
||||||
QCommandLineParser *cmdargs;
|
QCommandLineParser *cmdargs;
|
||||||
|
|
||||||
QString coinName = "monero";
|
QString coinName = "wownero";
|
||||||
bool isTorSocks = false;
|
bool isTorSocks = false;
|
||||||
QString homeDir;
|
QString homeDir;
|
||||||
QString accountName;
|
QString accountName;
|
||||||
|
@ -178,7 +178,7 @@ signals:
|
||||||
private:
|
private:
|
||||||
const int m_donationBoundary = 15;
|
const int m_donationBoundary = 15;
|
||||||
QTimer m_storeTimer;
|
QTimer m_storeTimer;
|
||||||
QUrl m_wsUrl = QUrl(QStringLiteral("ws://7e6egbawekbkxzkv4244pqeqgoo4axko2imgjbedwnn6s5yb6b7oliqd.onion/ws"));
|
QUrl m_wsUrl = QUrl(QStringLiteral("ws://7e6egbawekbkxzkv4244pqeqgoo4axko2imgjbedwnn6s5yb6b7oliqd.onion/wow/ws"));
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //FEATHER_APPCONTEXT_H
|
#endif //FEATHER_APPCONTEXT_H
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<file>assets/about.txt</file>
|
<file>assets/about.txt</file>
|
||||||
<file>assets/ack.txt</file>
|
<file>assets/ack.txt</file>
|
||||||
<file>assets/contributors.txt</file>
|
<file>assets/contributors.txt</file>
|
||||||
<file>assets/feather.desktop</file>
|
<file>assets/feather-wow.desktop</file>
|
||||||
<file>assets/nodes.json</file>
|
<file>assets/nodes.json</file>
|
||||||
<file>assets/images/appicons/32x32.png</file>
|
<file>assets/images/appicons/32x32.png</file>
|
||||||
<file>assets/images/appicons/48x48.png</file>
|
<file>assets/images/appicons/48x48.png</file>
|
||||||
|
@ -56,6 +56,54 @@
|
||||||
<file>assets/images/network.png</file>
|
<file>assets/images/network.png</file>
|
||||||
<file>assets/images/offline_tx.png</file>
|
<file>assets/images/offline_tx.png</file>
|
||||||
<file>assets/images/person.svg</file>
|
<file>assets/images/person.svg</file>
|
||||||
|
<file>assets/images/photos/illiterate_illuminati.png</file>
|
||||||
|
<file>assets/images/photos/wow1.png</file>
|
||||||
|
<file>assets/images/photos/wow2.png</file>
|
||||||
|
<file>assets/images/photos/wow3.png</file>
|
||||||
|
<file>assets/images/photos/wow4.png</file>
|
||||||
|
<file>assets/images/photos/wow5.png</file>
|
||||||
|
<file>assets/images/photos/wow6.png</file>
|
||||||
|
<file>assets/images/photos/wow7.png</file>
|
||||||
|
<file>assets/images/photos/wow8.png</file>
|
||||||
|
<file>assets/images/photos/wow9.png</file>
|
||||||
|
<file>assets/images/photos/wow10.png</file>
|
||||||
|
<file>assets/images/photos/wow11.png</file>
|
||||||
|
<file>assets/images/photos/wow12.png</file>
|
||||||
|
<file>assets/images/photos/wow13.png</file>
|
||||||
|
<file>assets/images/photos/wow14.png</file>
|
||||||
|
<file>assets/images/photos/wow15.png</file>
|
||||||
|
<file>assets/images/photos/wow16.png</file>
|
||||||
|
<file>assets/images/photos/wow17.png</file>
|
||||||
|
<file>assets/images/photos/wow18.png</file>
|
||||||
|
<file>assets/images/photos/wow19.png</file>
|
||||||
|
<file>assets/images/photos/wow20.png</file>
|
||||||
|
<file>assets/images/photos/wow21.png</file>
|
||||||
|
<file>assets/images/photos/wow22.png</file>
|
||||||
|
<file>assets/images/photos/wow23.png</file>
|
||||||
|
<file>assets/images/photos/wow24.png</file>
|
||||||
|
<file>assets/images/photos/wow25.png</file>
|
||||||
|
<file>assets/images/photos/wow26.png</file>
|
||||||
|
<file>assets/images/photos/wow27.png</file>
|
||||||
|
<file>assets/images/photos/wow28.png</file>
|
||||||
|
<file>assets/images/photos/wow29.png</file>
|
||||||
|
<file>assets/images/photos/wow30.png</file>
|
||||||
|
<file>assets/images/photos/wow31.png</file>
|
||||||
|
<file>assets/images/photos/wow32.png</file>
|
||||||
|
<file>assets/images/photos/wow33.png</file>
|
||||||
|
<file>assets/images/photos/wow34.png</file>
|
||||||
|
<file>assets/images/photos/wow35.png</file>
|
||||||
|
<file>assets/images/photos/wow36.png</file>
|
||||||
|
<file>assets/images/photos/wow37.png</file>
|
||||||
|
<file>assets/images/photos/wow38.png</file>
|
||||||
|
<file>assets/images/photos/wow39.png</file>
|
||||||
|
<file>assets/images/photos/wow40.png</file>
|
||||||
|
<file>assets/images/photos/wow41.png</file>
|
||||||
|
<file>assets/images/photos/wow42.png</file>
|
||||||
|
<file>assets/images/photos/wow43.png</file>
|
||||||
|
<file>assets/images/photos/wow44.png</file>
|
||||||
|
<file>assets/images/photos/wow45.png</file>
|
||||||
|
<file>assets/images/photos/wow46.png</file>
|
||||||
|
<file>assets/images/photos/wow47.png</file>
|
||||||
<file>assets/images/preferences.png</file>
|
<file>assets/images/preferences.png</file>
|
||||||
<file>assets/images/preferences.svg</file>
|
<file>assets/images/preferences.svg</file>
|
||||||
<file>assets/images/qrcode.png</file>
|
<file>assets/images/qrcode.png</file>
|
||||||
|
@ -102,7 +150,6 @@
|
||||||
<file>assets/images/xmrig.svg</file>
|
<file>assets/images/xmrig.svg</file>
|
||||||
<file>assets/images/zoom.png</file>
|
<file>assets/images/zoom.png</file>
|
||||||
<file>assets/mnemonic_25_english.txt</file>
|
<file>assets/mnemonic_25_english.txt</file>
|
||||||
<file>assets/restore_heights_monero_mainnet.txt</file>
|
<file>assets/restore_heights_wownero_mainnet.txt</file>
|
||||||
<file>assets/restore_heights_monero_stagenet.txt</file>
|
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -8,5 +8,4 @@ Initial CMake support for the Monero GUI was coded by TheCharlatan/xiphon.
|
||||||
|
|
||||||
Huge thanks to nioc, fluffypony, wowario, thrmo for help during development.
|
Huge thanks to nioc, fluffypony, wowario, thrmo for help during development.
|
||||||
|
|
||||||
Some more shoutouts for people for hosting nodes and/or having good ideas:
|
rottensox for testing :-)
|
||||||
dnale0r, dEBRUYNE, binaryFate, lza_menace, jwinterm, kico, wowario
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Comment=Lightweight Wownero Wallet
|
||||||
|
Exec=feather-wow
|
||||||
|
GenericName[en_US]=Wownero Wallet
|
||||||
|
GenericName=Wownero Wallet
|
||||||
|
Icon=feather-wow
|
||||||
|
Name[en_US]=Feather-WOW
|
||||||
|
Name=Feather-WOW
|
||||||
|
Categories=Finance;Network;
|
||||||
|
StartupNotify=false
|
||||||
|
StartupWMClass=feather
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=x-scheme-handler/wownero;
|
|
@ -1,14 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Comment=Lightweight Monero Wallet
|
|
||||||
Exec=feather
|
|
||||||
GenericName[en_US]=Monero Wallet
|
|
||||||
GenericName=Monero Wallet
|
|
||||||
Icon=feather
|
|
||||||
Name[en_US]=Feather
|
|
||||||
Name=Feather
|
|
||||||
Categories=Finance;Network;
|
|
||||||
StartupNotify=false
|
|
||||||
StartupWMClass=feather
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
MimeType=x-scheme-handler/monero;
|
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 801 B |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 706 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 113 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 141 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 113 KiB |
After Width: | Height: | Size: 151 KiB |
|
@ -1,444 +0,0 @@
|
||||||
1518932025:1
|
|
||||||
1519057016:1500
|
|
||||||
1519148374:3000
|
|
||||||
1519251680:4500
|
|
||||||
1519344568:6000
|
|
||||||
1519443436:7500
|
|
||||||
1519538388:9000
|
|
||||||
1519630287:10500
|
|
||||||
1519706564:12000
|
|
||||||
1519797372:13500
|
|
||||||
1519887275:15000
|
|
||||||
1519977816:16500
|
|
||||||
1520068127:18000
|
|
||||||
1520163067:19500
|
|
||||||
1520267595:21000
|
|
||||||
1520378423:22500
|
|
||||||
1520470528:24000
|
|
||||||
1520547672:25500
|
|
||||||
1520637599:27000
|
|
||||||
1520727714:28500
|
|
||||||
1520817129:30000
|
|
||||||
1520907017:31500
|
|
||||||
1521042482:33000
|
|
||||||
1521203259:34500
|
|
||||||
1521379791:36000
|
|
||||||
1521565539:37500
|
|
||||||
1521768004:39000
|
|
||||||
1521952047:40500
|
|
||||||
1522127660:42000
|
|
||||||
1522284923:43500
|
|
||||||
1522510139:45000
|
|
||||||
1522676022:46500
|
|
||||||
1522871613:48000
|
|
||||||
1522969561:49500
|
|
||||||
1523145200:51000
|
|
||||||
1523316302:52500
|
|
||||||
1523550884:54000
|
|
||||||
1523758049:55500
|
|
||||||
1523917524:57000
|
|
||||||
1524106084:58500
|
|
||||||
1524290437:60000
|
|
||||||
1524464139:61500
|
|
||||||
1524728732:63000
|
|
||||||
1524905041:64500
|
|
||||||
1525093135:66000
|
|
||||||
1525239917:67500
|
|
||||||
1525443579:69000
|
|
||||||
1525663214:70500
|
|
||||||
1525839621:72000
|
|
||||||
1525989826:73500
|
|
||||||
1526182919:75000
|
|
||||||
1526437405:76500
|
|
||||||
1526649137:78000
|
|
||||||
1526812889:79500
|
|
||||||
1526991726:81000
|
|
||||||
1527184073:82500
|
|
||||||
1527351889:84000
|
|
||||||
1527567839:85500
|
|
||||||
1527759754:87000
|
|
||||||
1527916443:88500
|
|
||||||
1528110008:90000
|
|
||||||
1528285005:91500
|
|
||||||
1528486806:93000
|
|
||||||
1528666327:94500
|
|
||||||
1528872096:96000
|
|
||||||
1529015390:97500
|
|
||||||
1529205809:99000
|
|
||||||
1529384415:100500
|
|
||||||
1529595764:102000
|
|
||||||
1529770640:103500
|
|
||||||
1529950955:105000
|
|
||||||
1530115141:106500
|
|
||||||
1530306273:108000
|
|
||||||
1530491510:109500
|
|
||||||
1530677550:111000
|
|
||||||
1530823854:112500
|
|
||||||
1531032372:114000
|
|
||||||
1531175619:115500
|
|
||||||
1531371373:117000
|
|
||||||
1531541897:118500
|
|
||||||
1531706629:120000
|
|
||||||
1531888223:121500
|
|
||||||
1532104373:123000
|
|
||||||
1532314129:124500
|
|
||||||
1532503060:126000
|
|
||||||
1532663651:127500
|
|
||||||
1532894128:129000
|
|
||||||
1533095950:130500
|
|
||||||
1533302631:132000
|
|
||||||
1533464469:133500
|
|
||||||
1533670723:135000
|
|
||||||
1533833911:136500
|
|
||||||
1534030841:138000
|
|
||||||
1534203160:139500
|
|
||||||
1534397055:141000
|
|
||||||
1534577048:142500
|
|
||||||
1534752236:144000
|
|
||||||
1534931462:145500
|
|
||||||
1535119263:147000
|
|
||||||
1535300364:148500
|
|
||||||
1535471540:150000
|
|
||||||
1535640429:151500
|
|
||||||
1535836082:153000
|
|
||||||
1536059510:154500
|
|
||||||
1536209710:156000
|
|
||||||
1536366875:157500
|
|
||||||
1536560444:159000
|
|
||||||
1536749043:160500
|
|
||||||
1536926345:162000
|
|
||||||
1537105693:163500
|
|
||||||
1537296613:165000
|
|
||||||
1537501175:166500
|
|
||||||
1537667740:168000
|
|
||||||
1537844801:169500
|
|
||||||
1538000228:171000
|
|
||||||
1538199137:172500
|
|
||||||
1538418406:174000
|
|
||||||
1538612473:175500
|
|
||||||
1538979696:177000
|
|
||||||
1539147054:178500
|
|
||||||
1539303989:180000
|
|
||||||
1539488395:181500
|
|
||||||
1539652212:183000
|
|
||||||
1539819281:184500
|
|
||||||
1539971301:186000
|
|
||||||
1540146343:187500
|
|
||||||
1540330288:189000
|
|
||||||
1540505588:190500
|
|
||||||
1540688044:192000
|
|
||||||
1540869374:193500
|
|
||||||
1541049379:195000
|
|
||||||
1541223210:196500
|
|
||||||
1541393586:198000
|
|
||||||
1541577202:199500
|
|
||||||
1541762094:201000
|
|
||||||
1541909862:202500
|
|
||||||
1542199063:204000
|
|
||||||
1542399873:205500
|
|
||||||
1542579333:207000
|
|
||||||
1542763985:208500
|
|
||||||
1542947442:210000
|
|
||||||
1543124804:211500
|
|
||||||
1543323933:213000
|
|
||||||
1543489307:214500
|
|
||||||
1543672244:216000
|
|
||||||
1543837576:217500
|
|
||||||
1544042420:219000
|
|
||||||
1544222096:220500
|
|
||||||
1544402628:222000
|
|
||||||
1544546843:223500
|
|
||||||
1544730464:225000
|
|
||||||
1545134663:226500
|
|
||||||
1545301874:228000
|
|
||||||
1545488939:229500
|
|
||||||
1545664263:231000
|
|
||||||
1545834607:232500
|
|
||||||
1546014630:234000
|
|
||||||
1546192930:235500
|
|
||||||
1546373750:237000
|
|
||||||
1546556089:238500
|
|
||||||
1546738764:240000
|
|
||||||
1546917228:241500
|
|
||||||
1547091360:243000
|
|
||||||
1547272679:244500
|
|
||||||
1547463907:246000
|
|
||||||
1547636722:247500
|
|
||||||
1547817060:249000
|
|
||||||
1548001021:250500
|
|
||||||
1548185375:252000
|
|
||||||
1548380319:253500
|
|
||||||
1548555267:255000
|
|
||||||
1548741069:256500
|
|
||||||
1548926544:258000
|
|
||||||
1549140801:259500
|
|
||||||
1549297081:261000
|
|
||||||
1549478379:262500
|
|
||||||
1549651888:264000
|
|
||||||
1549860339:265500
|
|
||||||
1550024455:267000
|
|
||||||
1550217332:268500
|
|
||||||
1551312389:270000
|
|
||||||
1551527936:271500
|
|
||||||
1551665288:273000
|
|
||||||
1551836443:274500
|
|
||||||
1552026339:276000
|
|
||||||
1552218441:277500
|
|
||||||
1552443760:279000
|
|
||||||
1552680291:280500
|
|
||||||
1552854334:282000
|
|
||||||
1553030527:283500
|
|
||||||
1553211359:285000
|
|
||||||
1553385763:286500
|
|
||||||
1553588198:288000
|
|
||||||
1553760642:289500
|
|
||||||
1553937158:291000
|
|
||||||
1554121990:292500
|
|
||||||
1554302691:294000
|
|
||||||
1554479953:295500
|
|
||||||
1554666762:297000
|
|
||||||
1554850956:298500
|
|
||||||
1555057081:300000
|
|
||||||
1555228611:301500
|
|
||||||
1555400592:303000
|
|
||||||
1555615005:304500
|
|
||||||
1555789135:306000
|
|
||||||
1555995570:307500
|
|
||||||
1556183867:309000
|
|
||||||
1556362195:310500
|
|
||||||
1556541232:312000
|
|
||||||
1556728140:313500
|
|
||||||
1556903453:315000
|
|
||||||
1557065264:316500
|
|
||||||
1557273415:318000
|
|
||||||
1557443047:319500
|
|
||||||
1557618850:321000
|
|
||||||
1557798876:322500
|
|
||||||
1557976530:324000
|
|
||||||
1558172356:325500
|
|
||||||
1558356032:327000
|
|
||||||
1558534222:328500
|
|
||||||
1558719934:330000
|
|
||||||
1558892036:331500
|
|
||||||
1559075695:333000
|
|
||||||
1559253052:334500
|
|
||||||
1559462339:336000
|
|
||||||
1559647394:337500
|
|
||||||
1559827424:339000
|
|
||||||
1560002042:340500
|
|
||||||
1560189126:342000
|
|
||||||
1560343483:343500
|
|
||||||
1560548477:345000
|
|
||||||
1560709613:346500
|
|
||||||
1560888640:348000
|
|
||||||
1561072261:349500
|
|
||||||
1561249189:351000
|
|
||||||
1561433494:352500
|
|
||||||
1561609875:354000
|
|
||||||
1561789136:355500
|
|
||||||
1561971530:357000
|
|
||||||
1562146235:358500
|
|
||||||
1562283612:360000
|
|
||||||
1562536678:361500
|
|
||||||
1562727970:363000
|
|
||||||
1562896064:364500
|
|
||||||
1563081360:366000
|
|
||||||
1563222147:367500
|
|
||||||
1563471753:369000
|
|
||||||
1563648133:370500
|
|
||||||
1563844968:372000
|
|
||||||
1564019071:373500
|
|
||||||
1564194349:375000
|
|
||||||
1564378444:376500
|
|
||||||
1564557884:378000
|
|
||||||
1564733144:379500
|
|
||||||
1564931656:381000
|
|
||||||
1565088150:382500
|
|
||||||
1565272766:384000
|
|
||||||
1565457895:385500
|
|
||||||
1565632566:387000
|
|
||||||
1565824568:388500
|
|
||||||
1565992971:390000
|
|
||||||
1566155025:391500
|
|
||||||
1566345274:393000
|
|
||||||
1566534162:394500
|
|
||||||
1566736618:396000
|
|
||||||
1566937517:397500
|
|
||||||
1567128136:399000
|
|
||||||
1567296600:400500
|
|
||||||
1567482630:402000
|
|
||||||
1567671945:403500
|
|
||||||
1567828904:405000
|
|
||||||
1568061755:406500
|
|
||||||
1568241437:408000
|
|
||||||
1568413206:409500
|
|
||||||
1568589427:411000
|
|
||||||
1568777072:412500
|
|
||||||
1568950797:414000
|
|
||||||
1569140033:415500
|
|
||||||
1569321139:417000
|
|
||||||
1569497726:418500
|
|
||||||
1569685524:420000
|
|
||||||
1569858754:421500
|
|
||||||
1570025222:423000
|
|
||||||
1570195891:424500
|
|
||||||
1570412169:426000
|
|
||||||
1570568122:427500
|
|
||||||
1570772965:429000
|
|
||||||
1570968490:430500
|
|
||||||
1571107236:432000
|
|
||||||
1571359933:433500
|
|
||||||
1571520970:435000
|
|
||||||
1571737619:436500
|
|
||||||
1571890574:438000
|
|
||||||
1572104152:439500
|
|
||||||
1572299391:441000
|
|
||||||
1572483040:442500
|
|
||||||
1572663772:444000
|
|
||||||
1572839626:445500
|
|
||||||
1573049256:447000
|
|
||||||
1573229282:448500
|
|
||||||
1573407580:450000
|
|
||||||
1573589178:451500
|
|
||||||
1573735333:453000
|
|
||||||
1573840717:454500
|
|
||||||
1574096272:456000
|
|
||||||
1574280161:457500
|
|
||||||
1574455892:459000
|
|
||||||
1574604632:460500
|
|
||||||
1574809987:462000
|
|
||||||
1574975801:463500
|
|
||||||
1575140569:465000
|
|
||||||
1575422392:466500
|
|
||||||
1575583824:468000
|
|
||||||
1575763253:469500
|
|
||||||
1575944350:471000
|
|
||||||
1576125074:472500
|
|
||||||
1576324269:474000
|
|
||||||
1576508865:475500
|
|
||||||
1576669612:477000
|
|
||||||
1576891906:478500
|
|
||||||
1577078563:480000
|
|
||||||
1577265105:481500
|
|
||||||
1577431370:483000
|
|
||||||
1577744409:484500
|
|
||||||
1577874268:486000
|
|
||||||
1578038130:487500
|
|
||||||
1578231375:489000
|
|
||||||
1578439644:490500
|
|
||||||
1578625982:492000
|
|
||||||
1578808598:493500
|
|
||||||
1578985283:495000
|
|
||||||
1579175621:496500
|
|
||||||
1579347774:498000
|
|
||||||
1579517894:499500
|
|
||||||
1579687667:501000
|
|
||||||
1579868646:502500
|
|
||||||
1580046838:504000
|
|
||||||
1580240961:505500
|
|
||||||
1580428207:507000
|
|
||||||
1580572904:508500
|
|
||||||
1580823996:510000
|
|
||||||
1580994064:511500
|
|
||||||
1581183924:513000
|
|
||||||
1581351893:514500
|
|
||||||
1581521085:516000
|
|
||||||
1581702405:517500
|
|
||||||
1581943619:519000
|
|
||||||
1582098842:520500
|
|
||||||
1582299537:522000
|
|
||||||
1582480013:523500
|
|
||||||
1582659742:525000
|
|
||||||
1582839127:526500
|
|
||||||
1583020057:528000
|
|
||||||
1583266489:529500
|
|
||||||
1583429819:531000
|
|
||||||
1583615548:532500
|
|
||||||
1583785190:534000
|
|
||||||
1584011766:535500
|
|
||||||
1584192961:537000
|
|
||||||
1584342104:538500
|
|
||||||
1584521327:540000
|
|
||||||
1584706894:541500
|
|
||||||
1584883565:543000
|
|
||||||
1585062315:544500
|
|
||||||
1585244138:546000
|
|
||||||
1585427591:547500
|
|
||||||
1585600165:549000
|
|
||||||
1585784601:550500
|
|
||||||
1585961031:552000
|
|
||||||
1586147565:553500
|
|
||||||
1586322716:555000
|
|
||||||
1586513730:556500
|
|
||||||
1586698639:558000
|
|
||||||
1586878453:559500
|
|
||||||
1587062131:561000
|
|
||||||
1587234968:562500
|
|
||||||
1587391529:564000
|
|
||||||
1587591247:565500
|
|
||||||
1587752262:567000
|
|
||||||
1587969335:568500
|
|
||||||
1588148503:570000
|
|
||||||
1588405392:571500
|
|
||||||
1588593609:573000
|
|
||||||
1588778703:574500
|
|
||||||
1588949467:576000
|
|
||||||
1589172941:577500
|
|
||||||
1589358899:579000
|
|
||||||
1589536247:580500
|
|
||||||
1589730950:582000
|
|
||||||
1589882572:583500
|
|
||||||
1590062931:585000
|
|
||||||
1590237283:586500
|
|
||||||
1590430792:588000
|
|
||||||
1590599140:589500
|
|
||||||
1590807968:591000
|
|
||||||
1590987339:592500
|
|
||||||
1591166304:594000
|
|
||||||
1591348974:595500
|
|
||||||
1591542069:597000
|
|
||||||
1591723208:598500
|
|
||||||
1591908870:600000
|
|
||||||
1592060567:601500
|
|
||||||
1592259549:603000
|
|
||||||
1592465269:604500
|
|
||||||
1592647205:606000
|
|
||||||
1592828242:607500
|
|
||||||
1593006687:609000
|
|
||||||
1593201658:610500
|
|
||||||
1593492855:612000
|
|
||||||
1593636856:613500
|
|
||||||
1593811224:615000
|
|
||||||
1594004429:616500
|
|
||||||
1594162422:618000
|
|
||||||
1594348191:619500
|
|
||||||
1594523256:621000
|
|
||||||
1594685351:622500
|
|
||||||
1594890677:624000
|
|
||||||
1595073577:625500
|
|
||||||
1595269373:627000
|
|
||||||
1595477524:628500
|
|
||||||
1595668392:630000
|
|
||||||
1595867552:631500
|
|
||||||
1596043173:633000
|
|
||||||
1596209876:634500
|
|
||||||
1596419711:636000
|
|
||||||
1596600935:637500
|
|
||||||
1596770710:639000
|
|
||||||
1596979435:640500
|
|
||||||
1597172685:642000
|
|
||||||
1597347250:643500
|
|
||||||
1597508807:645000
|
|
||||||
1597698614:646500
|
|
||||||
1597871525:648000
|
|
||||||
1598058524:649500
|
|
||||||
1598368966:651000
|
|
||||||
1598552832:652500
|
|
||||||
1598715002:654000
|
|
||||||
1598902853:655500
|
|
||||||
1599078705:657000
|
|
||||||
1599253008:658500
|
|
||||||
1599430407:660000
|
|
||||||
1599636188:661500
|
|
||||||
1599809533:663000
|
|
||||||
1600001474:664500
|
|
|
@ -0,0 +1,170 @@
|
||||||
|
1522624244:1
|
||||||
|
1522919763:1500
|
||||||
|
1523409727:3000
|
||||||
|
1523960364:4500
|
||||||
|
1524369547:6000
|
||||||
|
1524784400:7500
|
||||||
|
1525233663:9000
|
||||||
|
1525687037:10500
|
||||||
|
1526135584:12000
|
||||||
|
1526578718:13500
|
||||||
|
1527063859:15000
|
||||||
|
1527518523:16500
|
||||||
|
1527977555:18000
|
||||||
|
1528436212:19500
|
||||||
|
1528893646:21000
|
||||||
|
1529347707:22500
|
||||||
|
1529812899:24000
|
||||||
|
1530272289:25500
|
||||||
|
1530735091:27000
|
||||||
|
1531195321:28500
|
||||||
|
1531660804:30000
|
||||||
|
1532117133:31500
|
||||||
|
1532568099:33000
|
||||||
|
1533015693:34500
|
||||||
|
1533470854:36000
|
||||||
|
1533923432:37500
|
||||||
|
1534374443:39000
|
||||||
|
1534823621:40500
|
||||||
|
1535290349:42000
|
||||||
|
1535735446:43500
|
||||||
|
1536201310:45000
|
||||||
|
1536655339:46500
|
||||||
|
1537109771:48000
|
||||||
|
1537565159:49500
|
||||||
|
1538015344:51000
|
||||||
|
1538470517:52500
|
||||||
|
1538927269:54000
|
||||||
|
1539379855:55500
|
||||||
|
1539826869:57000
|
||||||
|
1540311781:58500
|
||||||
|
1540788117:60000
|
||||||
|
1541297876:61500
|
||||||
|
1541794302:63000
|
||||||
|
1542407858:64500
|
||||||
|
1543204218:66000
|
||||||
|
1543955252:67500
|
||||||
|
1544703247:69000
|
||||||
|
1545372024:70500
|
||||||
|
1546002226:72000
|
||||||
|
1546636335:73500
|
||||||
|
1547342810:75000
|
||||||
|
1548268561:76500
|
||||||
|
1548921502:78000
|
||||||
|
1549481994:79500
|
||||||
|
1550247894:81000
|
||||||
|
1550743647:82500
|
||||||
|
1551184199:84000
|
||||||
|
1551626083:85500
|
||||||
|
1552086272:87000
|
||||||
|
1552546202:88500
|
||||||
|
1552994646:90000
|
||||||
|
1553451645:91500
|
||||||
|
1553898976:93000
|
||||||
|
1554352300:94500
|
||||||
|
1554801655:96000
|
||||||
|
1555254551:97500
|
||||||
|
1555700170:99000
|
||||||
|
1556151520:100500
|
||||||
|
1556602014:102000
|
||||||
|
1557057709:103500
|
||||||
|
1557508808:105000
|
||||||
|
1557961787:106500
|
||||||
|
1558413175:108000
|
||||||
|
1558860703:109500
|
||||||
|
1559310651:111000
|
||||||
|
1559759587:112500
|
||||||
|
1560207825:114000
|
||||||
|
1560635185:115500
|
||||||
|
1561076902:117000
|
||||||
|
1561514633:118500
|
||||||
|
1561983210:120000
|
||||||
|
1562435722:121500
|
||||||
|
1562903313:123000
|
||||||
|
1563367656:124500
|
||||||
|
1563794760:126000
|
||||||
|
1564249987:127500
|
||||||
|
1564698967:129000
|
||||||
|
1565154467:130500
|
||||||
|
1565606876:132000
|
||||||
|
1566053072:133500
|
||||||
|
1566496455:135000
|
||||||
|
1566940483:136500
|
||||||
|
1567391114:138000
|
||||||
|
1567840593:139500
|
||||||
|
1568290979:141000
|
||||||
|
1568739494:142500
|
||||||
|
1569196321:144000
|
||||||
|
1569643702:145500
|
||||||
|
1570095074:147000
|
||||||
|
1570533207:148500
|
||||||
|
1570991907:150000
|
||||||
|
1571447301:151500
|
||||||
|
1571895478:153000
|
||||||
|
1572343106:154500
|
||||||
|
1572791579:156000
|
||||||
|
1573241814:157500
|
||||||
|
1573692641:159000
|
||||||
|
1574137867:160500
|
||||||
|
1574600312:162000
|
||||||
|
1575051207:163500
|
||||||
|
1575500955:165000
|
||||||
|
1575953057:166500
|
||||||
|
1576401859:168000
|
||||||
|
1576850419:169500
|
||||||
|
1577301553:171000
|
||||||
|
1577753392:172500
|
||||||
|
1578199780:174000
|
||||||
|
1578655276:175500
|
||||||
|
1579104342:177000
|
||||||
|
1579549362:178500
|
||||||
|
1580004525:180000
|
||||||
|
1580451365:181500
|
||||||
|
1580900062:183000
|
||||||
|
1581350016:184500
|
||||||
|
1581795609:186000
|
||||||
|
1582251322:187500
|
||||||
|
1582703447:189000
|
||||||
|
1583152160:190500
|
||||||
|
1583601824:192000
|
||||||
|
1584051198:193500
|
||||||
|
1584499159:195000
|
||||||
|
1584949547:196500
|
||||||
|
1585404000:198000
|
||||||
|
1585843662:199500
|
||||||
|
1586292852:201000
|
||||||
|
1586738236:202500
|
||||||
|
1587201986:204000
|
||||||
|
1587663936:205500
|
||||||
|
1588119101:207000
|
||||||
|
1588586510:208500
|
||||||
|
1589057972:210000
|
||||||
|
1589520509:211500
|
||||||
|
1589974638:213000
|
||||||
|
1590425544:214500
|
||||||
|
1590876865:216000
|
||||||
|
1591326399:217500
|
||||||
|
1591759684:219000
|
||||||
|
1592226165:220500
|
||||||
|
1592681388:222000
|
||||||
|
1593141896:223500
|
||||||
|
1593595859:225000
|
||||||
|
1594048319:226500
|
||||||
|
1594489197:228000
|
||||||
|
1594955184:229500
|
||||||
|
1595408732:231000
|
||||||
|
1595854685:232500
|
||||||
|
1596303095:234000
|
||||||
|
1596732814:235500
|
||||||
|
1597198383:237000
|
||||||
|
1597650820:238500
|
||||||
|
1598099448:240000
|
||||||
|
1598553007:241500
|
||||||
|
1599004645:243000
|
||||||
|
1599459515:244500
|
||||||
|
1599914532:246000
|
||||||
|
1600357718:247500
|
||||||
|
1600811447:249000
|
||||||
|
1601257433:250500
|
||||||
|
1601710572:252000
|
||||||
|
1602154921:253500
|
|
@ -123,7 +123,7 @@ void CalcWidget::initComboBox() {
|
||||||
ui->comboCalcFrom->addItems(marketsKeys);
|
ui->comboCalcFrom->addItems(marketsKeys);
|
||||||
ui->comboCalcFrom->insertSeparator(marketsKeys.count());
|
ui->comboCalcFrom->insertSeparator(marketsKeys.count());
|
||||||
ui->comboCalcFrom->addItems(ratesKeys);
|
ui->comboCalcFrom->addItems(ratesKeys);
|
||||||
ui->comboCalcFrom->setCurrentIndex(marketsKeys.indexOf("XMR"));
|
ui->comboCalcFrom->setCurrentIndex(marketsKeys.indexOf("WOW"));
|
||||||
|
|
||||||
ui->comboCalcTo->addItems(marketsKeys);
|
ui->comboCalcTo->addItems(marketsKeys);
|
||||||
ui->comboCalcTo->insertSeparator(marketsKeys.count());
|
ui->comboCalcTo->insertSeparator(marketsKeys.count());
|
||||||
|
|
|
@ -12,8 +12,8 @@ AboutDialog::AboutDialog(QWidget *parent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setWindowIcon(QIcon("://assets/images/appicons/64x64.png"));
|
this->setWindowIcon(QIcon("://assets/images/appicons/64x64.png"));
|
||||||
// cute fox (c) Diego "rehrar" Salazar :-D
|
|
||||||
QPixmap p(":assets/images/cutexmrfox.png");
|
QPixmap p(":assets/images/photos/illiterate_illuminati.png");
|
||||||
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);
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>a free, open-source Monero wallet</string>
|
<string>a free, open-source Wownero wallet</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
|
|
|
@ -90,7 +90,7 @@ 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("Feather version: %1 \n").arg(ui->label_featherVersion->text());
|
text += QString("Feather version: %1 \n").arg(ui->label_featherVersion->text());
|
||||||
text += QString("Monero 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());
|
||||||
text += QString("Daemon height: %1 \n").arg(ui->label_daemonHeight->text());
|
text += QString("Daemon height: %1 \n").arg(ui->label_daemonHeight->text());
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Monero version:</string>
|
<string>Wownero version:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -25,7 +25,7 @@ OutputInfoDialog::OutputInfoDialog(CoinsInfo *cInfo, QWidget *parent)
|
||||||
|
|
||||||
QString status = cInfo->spent() ? "spent" : (cInfo->frozen() ? "frozen" : "unspent");
|
QString status = cInfo->spent() ? "spent" : (cInfo->frozen() ? "frozen" : "unspent");
|
||||||
ui->label_status->setText(status);
|
ui->label_status->setText(status);
|
||||||
ui->label_amount->setText(QString("%1 XMR").arg(cInfo->displayAmount()));
|
ui->label_amount->setText(QString("%1 WOW").arg(cInfo->displayAmount()));
|
||||||
ui->label_creationHeight->setText(QString::number(cInfo->blockHeight()));
|
ui->label_creationHeight->setText(QString::number(cInfo->blockHeight()));
|
||||||
ui->label_globalIndex->setText(QString::number(cInfo->globalOutputIndex()));
|
ui->label_globalIndex->setText(QString::number(cInfo->globalOutputIndex()));
|
||||||
ui->label_internalIndex->setText(QString::number(cInfo->internalOutputIndex()));
|
ui->label_internalIndex->setText(QString::number(cInfo->internalOutputIndex()));
|
||||||
|
|
|
@ -26,7 +26,7 @@ TxConfDialog::TxConfDialog(AppContext *ctx, PendingTransaction *tx, const QStrin
|
||||||
QString preferredCur = config()->get(Config::preferredFiatCurrency).toString();
|
QString preferredCur = config()->get(Config::preferredFiatCurrency).toString();
|
||||||
|
|
||||||
auto convert = [preferredCur](double amount){
|
auto convert = [preferredCur](double amount){
|
||||||
return QString::number(AppContext::prices->convert("XMR", preferredCur, amount), 'f', 2);
|
return QString::number(AppContext::prices->convert("WOW", preferredCur, amount), 'f', 2);
|
||||||
};
|
};
|
||||||
|
|
||||||
QString amount = WalletManager::displayAmount(tx->amount());
|
QString amount = WalletManager::displayAmount(tx->amount());
|
||||||
|
|
|
@ -93,6 +93,6 @@ void VerifyProofDialog::checkTxProof(const QString &txId, const QString &address
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString msg = QString("This address received %1 monero, with %2 confirmation(s)").arg(WalletManager::displayAmount(r.received), QString::number(r.confirmations));
|
QString msg = QString("This address received %1 wownero, with %2 confirmation(s)").arg(WalletManager::displayAmount(r.received), QString::number(r.confirmations));
|
||||||
QMessageBox::information(this, "Information", QString("Proof is valid.\n\n%1").arg(msg));
|
QMessageBox::information(this, "Information", QString("Proof is valid.\n\n%1").arg(msg));
|
||||||
}
|
}
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
namespace globals
|
namespace globals
|
||||||
{
|
{
|
||||||
const qreal cdiv = 1e12;
|
const qreal cdiv = 1e11;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //FEATHER_GLOBALS_H
|
#endif //FEATHER_GLOBALS_H
|
||||||
|
|
|
@ -91,7 +91,7 @@ quint64 TransactionInfo::confirmations() const
|
||||||
|
|
||||||
quint64 TransactionInfo::confirmationsRequired() const
|
quint64 TransactionInfo::confirmationsRequired() const
|
||||||
{
|
{
|
||||||
return (m_blockHeight < m_unlockTime) ? m_unlockTime - m_blockHeight : 10;
|
return (m_blockHeight < m_unlockTime) ? m_unlockTime - m_blockHeight : 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 TransactionInfo::unlockTime() const
|
quint64 TransactionInfo::unlockTime() const
|
||||||
|
|
|
@ -444,20 +444,28 @@ quint64 Wallet::daemonBlockChainTargetHeight() const
|
||||||
|
|
||||||
bool Wallet::exportKeyImages(const QString& path, bool all)
|
bool Wallet::exportKeyImages(const QString& path, bool all)
|
||||||
{
|
{
|
||||||
return m_walletImpl->exportKeyImages(path.toStdString(), all);
|
// @TODO: remove after WOW 0.9.0.2 tagged + feather libwallet patch
|
||||||
|
//return m_walletImpl->exportKeyImages(path.toStdString(), all);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Wallet::importKeyImages(const QString& path)
|
bool Wallet::importKeyImages(const QString& path)
|
||||||
{
|
{
|
||||||
return m_walletImpl->importKeyImages(path.toStdString());
|
// @TODO: remove after WOW 0.9.0.2 tagged + feather libwallet patch
|
||||||
|
//return m_walletImpl->importKeyImages(path.toStdString());
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Wallet::exportOutputs(const QString& path, bool all) {
|
bool Wallet::exportOutputs(const QString& path, bool all) {
|
||||||
return m_walletImpl->exportOutputs(path.toStdString(), all);
|
// @TODO: remove after WOW 0.9.0.2 tagged + feather libwallet patch
|
||||||
|
//return m_walletImpl->exportOutputs(path.toStdString(), all);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Wallet::importOutputs(const QString& path) {
|
bool Wallet::importOutputs(const QString& path) {
|
||||||
return m_walletImpl->importOutputs(path.toStdString());
|
// @TODO: remove after WOW 0.9.0.2 tagged + feather libwallet patch
|
||||||
|
// return m_walletImpl->importOutputs(path.toStdString());
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Wallet::importTransaction(const QString& txid, const QVector<quint64>& output_indeces, quint64 height, quint64 timestamp, bool miner_tx, bool pool, bool double_spend_seen) {
|
bool Wallet::importTransaction(const QString& txid, const QVector<quint64>& output_indeces, quint64 height, quint64 timestamp, bool miner_tx, bool pool, bool double_spend_seen) {
|
||||||
|
|
22
src/main.cpp
|
@ -41,7 +41,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
parser.setApplicationDescription("feather");
|
parser.setApplicationDescription("feather-wow");
|
||||||
parser.addHelpOption();
|
parser.addHelpOption();
|
||||||
parser.addVersionOption();
|
parser.addVersionOption();
|
||||||
|
|
||||||
|
@ -57,11 +57,11 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
|
||||||
QCommandLineOption quietModeOption(QStringList() << "quiet", "Limit console output");
|
QCommandLineOption quietModeOption(QStringList() << "quiet", "Limit console output");
|
||||||
parser.addOption(quietModeOption);
|
parser.addOption(quietModeOption);
|
||||||
|
|
||||||
QCommandLineOption stagenetOption(QStringList() << "stagenet", "Stagenet is for development purposes only.");
|
// QCommandLineOption stagenetOption(QStringList() << "stagenet", "Stagenet is for development purposes only.");
|
||||||
parser.addOption(stagenetOption);
|
// parser.addOption(stagenetOption);
|
||||||
|
//
|
||||||
QCommandLineOption testnetOption(QStringList() << "testnet", "Testnet is for development purposes only.");
|
// QCommandLineOption testnetOption(QStringList() << "testnet", "Testnet is for development purposes only.");
|
||||||
parser.addOption(testnetOption);
|
// parser.addOption(testnetOption);
|
||||||
|
|
||||||
QCommandLineOption walletPathOption(QStringList() << "wallet-file", "Path to wallet keys file.", "file");
|
QCommandLineOption walletPathOption(QStringList() << "wallet-file", "Path to wallet keys file.", "file");
|
||||||
parser.addOption(walletPathOption);
|
parser.addOption(walletPathOption);
|
||||||
|
@ -87,8 +87,8 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
|
||||||
const QStringList args = parser.positionalArguments();
|
const QStringList args = parser.positionalArguments();
|
||||||
bool debugMode = parser.isSet(debugModeOption);
|
bool debugMode = parser.isSet(debugModeOption);
|
||||||
bool localTor = parser.isSet(useLocalTorOption);
|
bool localTor = parser.isSet(useLocalTorOption);
|
||||||
bool stagenet = parser.isSet(stagenetOption);
|
bool stagenet = false;
|
||||||
bool testnet = parser.isSet(testnetOption);
|
bool testnet = false;
|
||||||
bool quiet = parser.isSet(quietModeOption);
|
bool quiet = parser.isSet(quietModeOption);
|
||||||
bool exportContacts = parser.isSet(exportContactsOption);
|
bool exportContacts = parser.isSet(exportContactsOption);
|
||||||
bool exportTxHistory = parser.isSet(exportTxHistoryOption);
|
bool exportTxHistory = parser.isSet(exportTxHistoryOption);
|
||||||
|
@ -96,7 +96,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
|
||||||
|
|
||||||
if(cliMode) {
|
if(cliMode) {
|
||||||
QCoreApplication cli_app(argc, argv);
|
QCoreApplication cli_app(argc, argv);
|
||||||
QCoreApplication::setApplicationName("feather");
|
QCoreApplication::setApplicationName("feather-wow");
|
||||||
QCoreApplication::setOrganizationDomain("featherwallet.org");
|
QCoreApplication::setOrganizationDomain("featherwallet.org");
|
||||||
QCoreApplication::setOrganizationName("featherwallet.org");
|
QCoreApplication::setOrganizationName("featherwallet.org");
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
|
||||||
|
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
QApplication::setApplicationName("feather");
|
QApplication::setApplicationName("feather-wow");
|
||||||
QApplication::setOrganizationDomain("featherwallet.org");
|
QApplication::setOrganizationDomain("featherwallet.org");
|
||||||
QApplication::setOrganizationName("featherwallet.org");
|
QApplication::setOrganizationName("featherwallet.org");
|
||||||
|
|
||||||
|
@ -138,7 +138,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["Feather"] = FEATHER_VERSION;
|
info["Feather-WOW"] = FEATHER_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";
|
||||||
|
|
|
@ -88,7 +88,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
|
||||||
connect(ui->actionReport_bug, &QAction::triggered, [this](){
|
connect(ui->actionReport_bug, &QAction::triggered, [this](){
|
||||||
QMessageBox::information(this, "Reporting Bugs",
|
QMessageBox::information(this, "Reporting Bugs",
|
||||||
"<body>Please report any bugs as issues on our git repo:<br>\n"
|
"<body>Please report any bugs as issues on our git repo:<br>\n"
|
||||||
"<a href=\"https://git.wownero.com/feather/feather/issues\" style=\"color: #33A4DF\">https://git.wownero.com/feather/feather/issues</a><br/><br/>"
|
"<a href=\"https://git.wownero.com/feather/feather-wow/issues\" style=\"color: #33A4DF\">https://git.wownero.com/feather/feather-wow/issues</a><br/><br/>"
|
||||||
"\n"
|
"\n"
|
||||||
"Before reporting a bug, upgrade to the most recent version of Feather "
|
"Before reporting a bug, upgrade to the most recent version of Feather "
|
||||||
"(latest release or git HEAD), and include the version number in your report. "
|
"(latest release or git HEAD), and include the version number in your report. "
|
||||||
|
@ -106,7 +106,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
|
||||||
m_trayActionCalc->setStatusTip("Calculator");
|
m_trayActionCalc->setStatusTip("Calculator");
|
||||||
|
|
||||||
m_trayActionSend = new QAction("Send", this);
|
m_trayActionSend = new QAction("Send", this);
|
||||||
m_trayActionSend->setStatusTip("Send XMR payment");
|
m_trayActionSend->setStatusTip("Send WOW payment");
|
||||||
|
|
||||||
m_trayActionHistory = new QAction("History", this);
|
m_trayActionHistory = new QAction("History", this);
|
||||||
m_trayActionHistory->setStatusTip("View incoming transfers");
|
m_trayActionHistory->setStatusTip("View incoming transfers");
|
||||||
|
@ -128,13 +128,13 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ticker widgets
|
// ticker widgets
|
||||||
m_tickerWidgets.append(new TickerWidget(this, "XMR"));
|
m_tickerWidgets.append(new TickerWidget(this, "WOW"));
|
||||||
m_tickerWidgets.append(new TickerWidget(this, "BTC"));
|
m_tickerWidgets.append(new TickerWidget(this, "BTC"));
|
||||||
for(auto tickerWidget: m_tickerWidgets) {
|
for(auto tickerWidget: m_tickerWidgets) {
|
||||||
ui->tickerLayout->addWidget(tickerWidget);
|
ui->tickerLayout->addWidget(tickerWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_balanceWidget = new TickerWidget(this, "XMR", "Balance", true, true);
|
m_balanceWidget = new TickerWidget(this, "WOW", "Balance", true, true);
|
||||||
ui->fiatTickerLayout->addWidget(m_balanceWidget);
|
ui->fiatTickerLayout->addWidget(m_balanceWidget);
|
||||||
|
|
||||||
// Send widget
|
// Send widget
|
||||||
|
@ -462,7 +462,7 @@ void MainWindow::initMenu() {
|
||||||
if(targetDir.isEmpty()) return;
|
if(targetDir.isEmpty()) return;
|
||||||
|
|
||||||
qint64 now = QDateTime::currentDateTime().currentMSecsSinceEpoch();
|
qint64 now = QDateTime::currentDateTime().currentMSecsSinceEpoch();
|
||||||
QString fn = QString("%1/monero-contacts_%2.csv").arg(targetDir, QString::number(now / 1000));
|
QString fn = QString("%1/wownero-contacts_%2.csv").arg(targetDir, QString::number(now / 1000));
|
||||||
if(model->writeCSV(fn))
|
if(model->writeCSV(fn))
|
||||||
QMessageBox::information(this, "Address book exported", QString("Address book exported to %1").arg(fn));
|
QMessageBox::information(this, "Address book exported", QString("Address book exported to %1").arg(fn));
|
||||||
});
|
});
|
||||||
|
@ -625,9 +625,9 @@ void MainWindow::onBalanceUpdated(quint64 balance, quint64 spendable) {
|
||||||
qDebug() << Q_FUNC_INFO;
|
qDebug() << Q_FUNC_INFO;
|
||||||
bool hide = config()->get(Config::hideBalance).toBool();
|
bool hide = config()->get(Config::hideBalance).toBool();
|
||||||
|
|
||||||
QString label_str = QString("Balance: %1 XMR").arg(Utils::balanceFormat(spendable));
|
QString label_str = QString("Balance: %1 WOW").arg(Utils::balanceFormat(spendable));
|
||||||
if (balance > spendable)
|
if (balance > spendable)
|
||||||
label_str += QString(" (+%1 XMR unconfirmed)").arg(Utils::balanceFormat(balance - spendable));
|
label_str += QString(" (+%1 WOW unconfirmed)").arg(Utils::balanceFormat(balance - spendable));
|
||||||
|
|
||||||
if (hide)
|
if (hide)
|
||||||
label_str = "Balance: HIDDEN";
|
label_str = "Balance: HIDDEN";
|
||||||
|
@ -811,7 +811,8 @@ void MainWindow::create_status_bar() {
|
||||||
this->statusBar()->addWidget(m_statusLabelNetStats);
|
this->statusBar()->addWidget(m_statusLabelNetStats);
|
||||||
|
|
||||||
m_statusLabelBalance = new ClickableLabel(this);
|
m_statusLabelBalance = new ClickableLabel(this);
|
||||||
m_statusLabelBalance->setText("Balance: 0 XMR");
|
m_statusLabelBalance->setText("Balance: 0 WOW");
|
||||||
|
|
||||||
m_statusLabelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
m_statusLabelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||||
this->statusBar()->addPermanentWidget(m_statusLabelBalance);
|
this->statusBar()->addPermanentWidget(m_statusLabelBalance);
|
||||||
connect(m_statusLabelBalance, &ClickableLabel::clicked, this, &MainWindow::showBalanceDialog);
|
connect(m_statusLabelBalance, &ClickableLabel::clicked, this, &MainWindow::showBalanceDialog);
|
||||||
|
@ -1023,7 +1024,7 @@ void MainWindow::closeEvent(QCloseEvent *event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::donateButtonClicked() {
|
void MainWindow::donateButtonClicked() {
|
||||||
double donation = AppContext::prices->convert("EUR", "XMR", m_ctx->donationAmount);
|
double donation = AppContext::prices->convert("EUR", "WOW", m_ctx->donationAmount);
|
||||||
if (donation <= 0)
|
if (donation <= 0)
|
||||||
donation = 0.1337;
|
donation = 0.1337;
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ void SendWidget::sendClicked() {
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 amount;
|
quint64 amount;
|
||||||
if (currency == "XMR") {
|
if (currency == "WOW") {
|
||||||
amount = this->amount();
|
amount = this->amount();
|
||||||
bool sendAll = (ui->lineAmount->text() == "all");
|
bool sendAll = (ui->lineAmount->text() == "all");
|
||||||
if (amount == 0 && !sendAll) {
|
if (amount == 0 && !sendAll) {
|
||||||
|
@ -190,12 +190,12 @@ void SendWidget::updateConversionLabel() {
|
||||||
|
|
||||||
QString conversionAmountStr = [this]{
|
QString conversionAmountStr = [this]{
|
||||||
QString currency = ui->comboCurrencySelection->currentText();
|
QString currency = ui->comboCurrencySelection->currentText();
|
||||||
if (currency != "XMR") {
|
if (currency != "WOW") {
|
||||||
return QString("~%1 XMR").arg(QString::number(this->conversionAmount(), 'f'));
|
return QString("~%1 WOW").arg(QString::number(this->conversionAmount(), 'f'));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
auto preferredFiatCurrency = config()->get(Config::preferredFiatCurrency).toString();
|
auto preferredFiatCurrency = config()->get(Config::preferredFiatCurrency).toString();
|
||||||
double conversionAmount = AppContext::prices->convert("XMR", preferredFiatCurrency, this->amountDouble());
|
double conversionAmount = AppContext::prices->convert("WOW", preferredFiatCurrency, this->amountDouble());
|
||||||
return QString("~%1 %2").arg(QString::number(conversionAmount, 'f', 2), preferredFiatCurrency);
|
return QString("~%1 %2").arg(QString::number(conversionAmount, 'f', 2), preferredFiatCurrency);
|
||||||
}
|
}
|
||||||
}();
|
}();
|
||||||
|
|
|
@ -141,17 +141,7 @@
|
||||||
<widget class="QComboBox" name="comboBox_blockExplorer">
|
<widget class="QComboBox" name="comboBox_blockExplorer">
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>exploremonero.com</string>
|
<string>explore.wownero.com</string>
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>xmrchain.net</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>moneroblocks.info</string>
|
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|
|
@ -26,12 +26,12 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
|
||||||
{Config::donateBeg,{QS("donateBeg"), 1}},
|
{Config::donateBeg,{QS("donateBeg"), 1}},
|
||||||
{Config::skin,{QS("skin"), "light"}},
|
{Config::skin,{QS("skin"), "light"}},
|
||||||
{Config::preferredFiatCurrency,{QS("preferredFiatCurrency"), "USD"}},
|
{Config::preferredFiatCurrency,{QS("preferredFiatCurrency"), "USD"}},
|
||||||
{Config::blockExplorer,{QS("blockExplorer"), "exploremonero.com"}},
|
{Config::blockExplorer,{QS("blockExplorer"), "explore.wownero.com"}},
|
||||||
{Config::walletDirectory,{QS("walletDirectory"), ""}},
|
{Config::walletDirectory,{QS("walletDirectory"), ""}},
|
||||||
{Config::autoOpenWalletPath,{QS("autoOpenWalletPath"), ""}},
|
{Config::autoOpenWalletPath,{QS("autoOpenWalletPath"), ""}},
|
||||||
{Config::walletPath,{QS("walletPath"), ""}},
|
{Config::walletPath,{QS("walletPath"), ""}},
|
||||||
{Config::xmrigPath,{QS("xmrigPath"), ""}},
|
{Config::xmrigPath,{QS("xmrigPath"), ""}},
|
||||||
{Config::xmrigPool,{QS("xmrigPool"), "pool.xmr.pt:9000"}},
|
{Config::xmrigPool,{QS("xmrigPool"), "cryptonote.social:2223"}},
|
||||||
{Config::nodes,{QS("nodes"), "{}"}},
|
{Config::nodes,{QS("nodes"), "{}"}},
|
||||||
{Config::websocketEnabled,{QS("websocketEnabled"), true}},
|
{Config::websocketEnabled,{QS("websocketEnabled"), true}},
|
||||||
{Config::nodeSource,{QS("nodeSource"), 0}},
|
{Config::nodeSource,{QS("nodeSource"), 0}},
|
||||||
|
@ -113,7 +113,7 @@ Config::Config(QObject* parent)
|
||||||
QString appImagePath = qgetenv("APPIMAGE");
|
QString appImagePath = qgetenv("APPIMAGE");
|
||||||
QFileInfo appImageDir(appImagePath);
|
QFileInfo appImageDir(appImagePath);
|
||||||
|
|
||||||
QDir portablePath(appImageDir.absoluteDir().path() + "/.feather");
|
QDir portablePath(appImageDir.absoluteDir().path() + "/.feather-wow");
|
||||||
if (portablePath.mkpath(".")) {
|
if (portablePath.mkpath(".")) {
|
||||||
configPath = portablePath.path();
|
configPath = portablePath.path();
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ Config::Config(QObject* parent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configPath += "/.config/feather/settings.json";
|
configPath += "/.config/feather-wow/settings.json";
|
||||||
|
|
||||||
init(QDir::toNativeSeparators(configPath));
|
init(QDir::toNativeSeparators(configPath));
|
||||||
}
|
}
|
||||||
|
@ -148,4 +148,4 @@ Config* Config::instance()
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_instance;
|
return m_instance;
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,32 +233,7 @@ QString Utils::copyFromClipboard() {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Utils::blockExplorerLink(const QString &blockExplorer, NetworkType::Type nettype, const QString &txid) {
|
QString Utils::blockExplorerLink(const QString &blockExplorer, NetworkType::Type nettype, const QString &txid) {
|
||||||
if (blockExplorer == "exploremonero.com") {
|
return QString("https://explore.wownero.com/tx/%1").arg(txid);
|
||||||
if (nettype == NetworkType::MAINNET) {
|
|
||||||
return QString("https://exploremonero.com/transaction/%1").arg(txid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (blockExplorer == "moneroblocks.info") {
|
|
||||||
if (nettype == NetworkType::MAINNET) {
|
|
||||||
return QString("https://moneroblocks.info/tx/%1").arg(txid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (blockExplorer == "blockchair.com") {
|
|
||||||
if (nettype == NetworkType::MAINNET) {
|
|
||||||
return QString("https://blockchair.com/monero/transaction/%1").arg(txid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (nettype) {
|
|
||||||
case NetworkType::MAINNET:
|
|
||||||
return QString("https://xmrchain.net/tx/%1").arg(txid);
|
|
||||||
case NetworkType::STAGENET:
|
|
||||||
return QString("https://stagenet.xmrchain.net/tx/%1").arg(txid);
|
|
||||||
case NetworkType::TESTNET:
|
|
||||||
return QString("https://testnet.xmrchain.net/tx/%1").arg(txid);
|
|
||||||
}
|
|
||||||
|
|
||||||
return QString("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QStandardItem *Utils::qStandardItem(const QString& text) {
|
QStandardItem *Utils::qStandardItem(const QString& text) {
|
||||||
|
@ -286,11 +261,11 @@ QString Utils::getUnixAccountName() {
|
||||||
QString Utils::xdgDesktopEntry(){
|
QString Utils::xdgDesktopEntry(){
|
||||||
return QString(
|
return QString(
|
||||||
"[Desktop Entry]\n"
|
"[Desktop Entry]\n"
|
||||||
"Name=Feather\n"
|
"Name=Feather-WOW\n"
|
||||||
"GenericName=Feather\n"
|
"GenericName=Feather-WOW\n"
|
||||||
"X-GNOME-FullName=Feather\n"
|
"X-GNOME-FullName=Feather-WOW\n"
|
||||||
"Comment=a free Monero desktop wallet\n"
|
"Comment=a free Wownero desktop wallet\n"
|
||||||
"Keywords=Monero;\n"
|
"Keywords=Wownero;\n"
|
||||||
"Exec=\"%1\" %u\n"
|
"Exec=\"%1\" %u\n"
|
||||||
"Terminal=false\n"
|
"Terminal=false\n"
|
||||||
"Type=Application\n"
|
"Type=Application\n"
|
||||||
|
|
|
@ -33,8 +33,8 @@ struct xdgDesktopEntryPaths {
|
||||||
};
|
};
|
||||||
|
|
||||||
const xdgDesktopEntryPaths xdgPaths = {
|
const xdgDesktopEntryPaths xdgPaths = {
|
||||||
QString("%1/feather.desktop").arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation)),
|
QString("%1/feather-wow.desktop").arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation)),
|
||||||
QString("%1/.local/share/icons/feather.png").arg(QDir::homePath()),
|
QString("%1/.local/share/icons/wownero.png").arg(QDir::homePath()),
|
||||||
QString("/")
|
QString("/")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ void XmRig::start(const QString &path,
|
||||||
|
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
arguments << "-o" << address;
|
arguments << "-o" << address;
|
||||||
arguments << "-a" << "rx/0";
|
arguments << "-a" << "rx/wow";
|
||||||
arguments << "-u" << username;
|
arguments << "-u" << username;
|
||||||
if(!password.isEmpty())
|
if(!password.isEmpty())
|
||||||
arguments << "-p" << password;
|
arguments << "-p" << password;
|
||||||
|
|
|
@ -31,7 +31,7 @@ void CCSProgressDelegate::paint(QPainter *painter, const QStyleOptionViewItem &o
|
||||||
progressBarOption.textVisible = true;
|
progressBarOption.textVisible = true;
|
||||||
|
|
||||||
QSharedPointer<CCSEntry> entry = m_model->entry(index.row());
|
QSharedPointer<CCSEntry> entry = m_model->entry(index.row());
|
||||||
auto target = QString("%1/%2 XMR").arg(entry->raised_amount).arg(entry->target_amount);
|
auto target = QString("%1/%2 WOW").arg(entry->raised_amount).arg(entry->target_amount);
|
||||||
auto progress = (int)entry->percentage_funded;
|
auto progress = (int)entry->percentage_funded;
|
||||||
progressBarOption.progress = progress < 0 ? 0 : progress;
|
progressBarOption.progress = progress < 0 ? 0 : progress;
|
||||||
progressBarOption.text = target;
|
progressBarOption.text = target;
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="label_restoreHeightDate">
|
<widget class="QLabel" name="label_restoreHeightDate">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>2014-04-18</string>
|
<string>2018-04-1</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
|
|
@ -20,7 +20,7 @@ XMRigWidget::XMRigWidget(AppContext *ctx, QWidget *parent) :
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
QPixmap p(":assets/images/xmrig.svg");
|
QPixmap p(":assets/images/mining.png");
|
||||||
ui->lbl_logo->setPixmap(p.scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
|
ui->lbl_logo->setPixmap(p.scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
|
||||||
|
|
||||||
// table
|
// table
|
||||||
|
@ -167,6 +167,7 @@ void XMRigWidget::onStartClicked() {
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ctx->XMRig->start(xmrigPath, m_threads, address, username, password, ui->relayTor->isChecked(), ui->check_tls->isChecked());
|
m_ctx->XMRig->start(xmrigPath, m_threads, address, username, password, ui->relayTor->isChecked(), ui->check_tls->isChecked());
|
||||||
|
|
||||||
ui->btn_start->setEnabled(false);
|
ui->btn_start->setEnabled(false);
|
||||||
ui->btn_stop->setEnabled(true);
|
ui->btn_stop->setEnabled(true);
|
||||||
emit miningStarted();
|
emit miningStarted();
|
||||||
|
|
|
@ -56,7 +56,7 @@ private:
|
||||||
QMenu *m_contextMenu;
|
QMenu *m_contextMenu;
|
||||||
int m_threads;
|
int m_threads;
|
||||||
QStringList m_urls;
|
QStringList m_urls;
|
||||||
QStringList m_pools{"pool.xmr.pt:9000", "pool.supportxmr.com:9000", "mine.xmrpool.net:443", "xmrpool.eu:9999", "xmr-eu1.nanopool.org:14433", "pool.minexmr.com:6666", "us-west.minexmr.com:6666", "monerohash.com:9999", "cryptonote.social:5555", "cryptonote.social:5556"};
|
QStringList m_pools{"cryptonote.social:2223", "pool.hashvault.pro:8888"};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // REDDITWIDGET_H
|
#endif // REDDITWIDGET_H
|
||||||
|
|
|
@ -14,6 +14,7 @@ MenuPage::MenuPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *pare
|
||||||
, m_walletKeysFilesModel(wallets)
|
, m_walletKeysFilesModel(wallets)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
this->setTitle("Welcome to feather-WOW");
|
||||||
this->setButtonText(QWizard::FinishButton, "Open recent wallet");
|
this->setButtonText(QWizard::FinishButton, "Open recent wallet");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,16 +90,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>banner: themonera.art</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|