openvr-qml-windows
dsc 3 years ago committed by wowario
parent bb85f020d5
commit 3e10b25068
No known key found for this signature in database
GPG Key ID: 24DCBE762DE9C111

@ -29,34 +29,34 @@ steps:
- name: files_linux_appimage
path: /linux-release-appimage
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"
- mkdir -p "$TARGET_DIR"
- echo "writing to $TARGET_DIR/$FN"
- strip -s build/bin/feather
- zip -j "$TARGET_DIR/$FN" build/feather.log build/bin/feather
- strip -s build/bin/feather-wow
- 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"
- # 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"
- mkdir -p "$TARGET_DIR"
- 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"
volumes:
- name: ccache_linux_release
host:
path: /var/drone/ccache_linux_release/
path: /var/drone/ccache_wow_linux_release/
- name: monero
host:
path: /var/drone/monero
- name: files_linux_release
host:
path: /build/feather_files/files/linux-release/
path: /build/feather_files/files-wow/linux-release/
- name: files_linux_appimage
host:
path: /build/feather_files/files/linux-release-appimage/
path: /build/feather_files/files-wow/linux-release-appimage/
---
kind: pipeline
@ -82,19 +82,19 @@ steps:
- name: files_win_release
path: /files
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"
- mkdir -p "$TARGET_DIR"
- echo "writing to $TARGET_DIR/$FN"
- zip -j "$TARGET_DIR/$FN" build/x86_64-w64-mingw32/release/bin/feather.exe
- echo "[*] written to https://build.featherwallet.org/files/windows-release/$DRONE_SOURCE_BRANCH/$FN"
- zip -j "$TARGET_DIR/$FN" build/x86_64-w64-mingw32/release/bin/feather-wow.exe
- echo "[*] written to https://build.featherwallet.org/files-wow/windows-release/$DRONE_SOURCE_BRANCH/$FN"
volumes:
- name: ccache_win_release
host:
path: /var/drone/ccache_win_release/
path: /var/drone/ccache_wow_win_release/
- name: files_win_release
host:
path: /build/feather_files/files/windows-release/
path: /build/feather_files/files-wow/windows-release/
- name: monero
host:
path: /var/drone/monero
@ -112,25 +112,25 @@ steps:
path: /files
commands:
- 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"
- scp -P22 administrator@steve.jobs.xmr.pm:feather.zip build/feather.zip
- 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-wow.zip build/feather-wow.zip
- name: deploy
image: feather:mac
volumes:
- name: files_mac_release
path: /files
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"
- mkdir -p "$TARGET_DIR"
- echo "writing to $TARGET_DIR/$FN"
- mv build/feather.zip "$TARGET_DIR/$FN"
- echo "[*] written to https://build.featherwallet.org/files/mac-release/$DRONE_SOURCE_BRANCH/$FN"
- mv build/feather-wow.zip "$TARGET_DIR/$FN"
- echo "[*] written to https://build.featherwallet.org/files-wow/mac-release/$DRONE_SOURCE_BRANCH/$FN"
volumes:
- name: files_mac_release
host:
path: /build/feather_files/files/mac-release/
path: /build/feather-wow_files/files-wow/mac-release/
---
kind: signature
hmac: f16a0379280e2e89987930d635ec6fb938d67732fdaf4ddc488f2a9db64bda2c

6
.gitmodules vendored

@ -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"]
path = contrib/KDMacTouchBar
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(XMRIG "Include XMRig module" ON)
option(TOR_BIN "Path to Tor binary to embed inside Feather" OFF)
option(STATIC "Link libraries statically, requires static Qt")
option(USE_DEVICE_TREZOR "Trezor support compilation" OFF)
option(DONATE_BEG "Prompt donation window every once in a while" ON)
@ -29,7 +28,7 @@ if(DEBUG)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
set(MONERO_HEAD "aa0f58570d412cf02dd325e567bbc9fa093df16c")
set(MONERO_HEAD "b146027bc4515ebadb5e3705a9df9f325c053572")
set(BUILD_GUI_DEPS ON)
set(ARCH "x86-64")
set(BUILD_64 ON)
@ -82,11 +81,11 @@ endfunction()
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/monero OUTPUT_VARIABLE _MONERO_HEAD OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT _MONERO_HEAD STREQUAL MONERO_HEAD)
message(FATAL_ERROR "[submodule] Monero HEAD was at ${_MONERO_HEAD} but should be at ${MONERO_HEAD}")
execute_process(COMMAND git rev-parse "HEAD" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/monero OUTPUT_VARIABLE _WOWNERO_HEAD OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT _WOWNERO_HEAD STREQUAL WOWNERO_HEAD)
message(FATAL_ERROR "[submodule] Monero HEAD was at ${_WOWNERO_HEAD} but should be at ${WOWNERO_HEAD}")
else()
message(STATUS "[submodule] Monero HEAD @ ${MONERO_HEAD}")
message(STATUS "[submodule] Monero HEAD @ ${WOWNERO_HEAD}")
endif()
endif()

@ -30,7 +30,7 @@ CMAKEFLAGS = \
-DARCH=x86_64 \
-DBUILD_64=On \
-DBUILD_TESTS=Off \
-DXMRIG=On \
-DXMRIG=Off \
-DTOR_BIN=Off \
-DCMAKE_CXX_STANDARD=11 \
-DCMAKE_VERBOSE_MAKEFILE=On \

@ -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
* 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
* 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.
## 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}")
add_custom_command(TARGET deploy
POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "$<TARGET_FILE_DIR:feather>/../.." -always-overwrite
COMMAND "${MACDEPLOYQT_EXECUTABLE}" "$<TARGET_FILE_DIR:feather-wow>/../.." -always-overwrite
COMMENT "Running macdeployqt..."
)
@ -16,11 +16,11 @@ if(APPLE OR (WIN32 AND NOT STATIC))
if(_qt_svg_dylib)
add_custom_command(TARGET deploy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:feather>/../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/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/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/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:feather>/../PlugIns/imageformats/libqsvg.dylib
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-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-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-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-wow>/../PlugIns/imageformats/libqsvg.dylib
COMMENT "Copying libqsvg.dylib, running install_name_tool"
)
endif()

@ -3,16 +3,17 @@
set -e
unset SOURCE_DATE_EPOCH
APPDIR="$PWD/feather.AppDir"
APPDIR="$PWD/feather-wow.AppDir"
mkdir -p "$APPDIR"
mkdir -p "$APPDIR/usr/share/applications/"
mkdir -p "$APPDIR/usr/bin"
cp "$PWD/src/assets/feather.desktop" "$APPDIR/usr/share/applications/feather.desktop"
cp "$PWD/src/assets/images/appicons/64x64.png" "$APPDIR/feather.png"
cp "$PWD/build/bin/feather" "$APPDIR/usr/bin/feather"
cp "$PWD/src/assets/feather-wow.desktop" "$APPDIR/usr/share/applications/feather-wow.desktop"
cp "$PWD/src/assets/images/appicons/64x64.png" "$APPDIR/feather-wow.png"
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 {} \;
@ -26,7 +27,7 @@ mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappen
# mksquashfs writes a timestamp to the header
printf '\x00\x00\x00\x00' | dd conv=notrunc of=feather.squashfs bs=1 seek=$((0x8))
rm -f feather.AppImage
cat runtime-x86_64 >> feather.AppImage
cat feather.squashfs >> feather.AppImage
chmod a+x feather.AppImage
rm -f feather-wow.AppImage
cat runtime-x86_64 >> feather-wow.AppImage
cat feather.squashfs >> feather-wow.AppImage
chmod a+x feather-wow.AppImage

@ -1 +0,0 @@
Subproject commit e68770719ef4d3d3b83398715b1e10391ab6a1b4

@ -1 +0,0 @@
Subproject commit aa0f58570d412cf02dd325e567bbc9fa093df16c

@ -70,29 +70,29 @@ if(APPLE)
list(APPEND RESOURCES ${ICON})
endif()
add_executable(feather ${EXECUTABLE_FLAG} main.cpp
add_executable(feather-wow ${EXECUTABLE_FLAG} main.cpp
${SOURCE_FILES}
${RESOURCES}
${ASSETS_TOR}
)
# mac os bundle
set_target_properties(feather PROPERTIES
set_target_properties(feather-wow PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/utils/Info.plist"
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 PUBLIC ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
target_include_directories(feather-wow PUBLIC ${OPENGL_INCLUDE_DIR})
target_include_directories(feather-wow PUBLIC ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
file(GLOB_RECURSE SRC_SOURCES *.cpp)
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_SOURCE_DIR}/monero/include
${CMAKE_SOURCE_DIR}/monero/src
@ -119,34 +119,38 @@ target_include_directories(feather PUBLIC
)
if(DONATE_BEG)
target_compile_definitions(feather PRIVATE DONATE_BEG=1)
target_compile_definitions(feather-wow PRIVATE DONATE_BEG=1)
endif()
if(TOR_BIN)
target_compile_definitions(feather PRIVATE HAS_TOR_BIN=1)
target_compile_definitions(feather-wow PRIVATE HAS_TOR_BIN=1)
endif()
if(XMRIG)
target_compile_definitions(feather PRIVATE HAS_XMRIG=1)
target_compile_definitions(feather-wow PRIVATE HAS_XMRIG=1)
endif()
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()
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()
if("$ENV{DRONE}" STREQUAL "true")
target_compile_definitions(feather PRIVATE DRONE=1)
target_compile_definitions(feather-wow PRIVATE DRONE=1)
endif()
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()
target_compile_definitions(feather
target_compile_definitions(feather-wow
PUBLIC
${Qt5Core_DEFINITIONS}
${Qt5Widgets_DEFINITIONS}
@ -162,12 +166,12 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
if(UNIX AND NOT APPLE)
# 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.
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()
target_link_libraries(feather monero-seed::monero-seed)
target_link_libraries(feather-wow monero-seed::monero-seed)
endif()
target_link_libraries(feather
target_link_libraries(feather-wow
wallet_merged
${LMDB_LIBRARY}
epee
@ -202,30 +206,30 @@ if(APPLE)
endif()
if(NOT APPLE)
target_link_libraries(feather
target_link_libraries(feather-wow
Qt5::QSvgIconPlugin
Qt5::QSvgPlugin
)
endif()
if(STATIC)
target_link_libraries(feather
target_link_libraries(feather-wow
Qt5::QSvgIconPlugin
Qt5::QSvgPlugin)
if(UNIX AND NOT APPLE)
target_link_libraries(feather
target_link_libraries(feather-wow
Qt5::QXcbIntegrationPlugin)
endif()
endif()
if(X11_FOUND)
target_link_libraries(feather ${X11_LIBRARIES})
target_link_libraries(feather-wow ${X11_LIBRARIES})
endif()
if(APPLE)
include(Deploy)
endif()
install(TARGETS feather
install(TARGETS feather-wow
DESTINATION ${CMAKE_INSTALL_PREFIX}
)

@ -45,11 +45,11 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
QString appImagePath = qgetenv("APPIMAGE");
if (appImagePath.isEmpty()) {
qDebug() << "Not an appimage, using currentPath()";
return QDir::currentPath() + "/.feather";
return QDir::currentPath() + "/.feather-wow";
}
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();
if (walletDir.isEmpty()) {
#if defined(Q_OS_LINUX) or defined(Q_OS_MAC)
this->defaultWalletDir = QString("%1/Monero/wallets").arg(this->configRoot);
this->defaultWalletDirRoot = QString("%1/Monero").arg(this->configRoot);
this->defaultWalletDir = QString("%1/Wownero/wallets").arg(this->configRoot);
this->defaultWalletDirRoot = QString("%1/Wownero").arg(this->configRoot);
#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);
#endif
} else {
@ -81,7 +81,7 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
if (!QDir().mkpath(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(!this->configDirectory.endsWith('/'))
this->configDirectory = QString("%1/").arg(this->configDirectory);
@ -90,12 +90,12 @@ AppContext::AppContext(QCommandLineParser *cmdargs) {
// Config
createConfigDirectory(this->configDirectory);
if(this->cmdargs->isSet("stagenet"))
this->networkType = NetworkType::STAGENET;
else if(this->cmdargs->isSet("testnet"))
this->networkType = NetworkType::TESTNET;
else
this->networkType = NetworkType::MAINNET;
// if(this->cmdargs->isSet("stagenet"))
// this->networkType = NetworkType::STAGENET;
// else if(this->cmdargs->isSet("testnet"))
// this->networkType = NetworkType::TESTNET;
// else
this->networkType = NetworkType::MAINNET;
// auto nodeSourceUInt = config()->get(Config::nodeSource).toUInt();
// AppContext::nodeSource = static_cast<NodeSource>(nodeSourceUInt);
@ -426,7 +426,7 @@ void AppContext::onWSMessage(const QJsonObject &msg) {
this->onWSReddit(reddit_data);
}
else if(cmd == "ccs") {
else if(cmd == "wfs") {
auto ccs_data = msg.value("data").toArray();
this->onWSCCS(ccs_data);
}
@ -602,9 +602,9 @@ void AppContext::createWalletFinish(const QString &password) {
}
void AppContext::initRestoreHeights() {
restoreHeights[NetworkType::TESTNET] = new RestoreHeightLookup(NetworkType::TESTNET);
restoreHeights[NetworkType::STAGENET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_monero_stagenet.txt", NetworkType::STAGENET);
restoreHeights[NetworkType::MAINNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_monero_mainnet.txt", NetworkType::MAINNET);
restoreHeights[NetworkType::TESTNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::TESTNET);
restoreHeights[NetworkType::STAGENET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::STAGENET);
restoreHeights[NetworkType::MAINNET] = RestoreHeightLookup::fromFile(":/assets/restore_heights_wownero_mainnet.txt", NetworkType::MAINNET);
}
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);
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);
}
}

@ -42,13 +42,13 @@ public:
bool isDebug = false;
// Donation config
const QString donationAddress = "47ntfT2Z5384zku39pTM6hGcnLnvpRYW2Azm87GiAAH2bcTidtq278TL6HmwyL8yjMeERqGEBs3cqC8vvHPJd1cWQrGC65f";
const QString donationAddress = "WW2xGxtet29WxM6RBaxkTaBZoXC4mHGYoiHM5rPgViwNjnTLR452skNTsBMFp9JgMbdGucFQWF3PG95Hau9MnFjp2rmKgrcC7";
const int donationAmount = 25; // euro
bool donationSending = false;
QCommandLineParser *cmdargs;
QString coinName = "monero";
QString coinName = "wownero";
bool isTorSocks = false;
QString homeDir;
QString accountName;
@ -178,7 +178,7 @@ signals:
private:
const int m_donationBoundary = 15;
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

@ -3,7 +3,7 @@
<file>assets/about.txt</file>
<file>assets/ack.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/images/appicons/32x32.png</file>
<file>assets/images/appicons/48x48.png</file>
@ -56,6 +56,54 @@
<file>assets/images/network.png</file>
<file>assets/images/offline_tx.png</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.svg</file>
<file>assets/images/qrcode.png</file>
@ -102,7 +150,6 @@
<file>assets/images/xmrig.svg</file>
<file>assets/images/zoom.png</file>
<file>assets/mnemonic_25_english.txt</file>
<file>assets/restore_heights_monero_mainnet.txt</file>
<file>assets/restore_heights_monero_stagenet.txt</file>
<file>assets/restore_heights_wownero_mainnet.txt</file>
</qresource>
</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.
Some more shoutouts for people for hosting nodes and/or having good ideas:
dnale0r, dEBRUYNE, binaryFate, lza_menace, jwinterm, kico, wowario
rottensox for testing :-)

@ -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;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

File diff suppressed because it is too large Load Diff

@ -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->insertSeparator(marketsKeys.count());
ui->comboCalcFrom->addItems(ratesKeys);
ui->comboCalcFrom->setCurrentIndex(marketsKeys.indexOf("XMR"));
ui->comboCalcFrom->setCurrentIndex(marketsKeys.indexOf("WOW"));
ui->comboCalcTo->addItems(marketsKeys);
ui->comboCalcTo->insertSeparator(marketsKeys.count());

@ -12,8 +12,8 @@ AboutDialog::AboutDialog(QWidget *parent)
{
ui->setupUi(this);
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));
auto about = Utils::fileOpenQRC(":assets/about.txt");
auto about_text = Utils::barrayToString(about);

@ -43,7 +43,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>a free, open-source Monero wallet</string>
<string>a free, open-source Wownero wallet</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>

@ -90,7 +90,7 @@ void DebugInfoDialog::copyToClipboad() {
// Two spaces at the end of each line are for newlines in Markdown
QString 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("Daemon height: %1 \n").arg(ui->label_daemonHeight->text());

@ -36,7 +36,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Monero version:</string>
<string>Wownero version:</string>
</property>
</widget>
</item>

@ -25,7 +25,7 @@ OutputInfoDialog::OutputInfoDialog(CoinsInfo *cInfo, QWidget *parent)
QString status = cInfo->spent() ? "spent" : (cInfo->frozen() ? "frozen" : "unspent");
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_globalIndex->setText(QString::number(cInfo->globalOutputIndex()));
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();
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());

@ -93,6 +93,6 @@ void VerifyProofDialog::checkTxProof(const QString &txId, const QString &address
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));
}

@ -8,7 +8,7 @@
namespace globals
{
const qreal cdiv = 1e12;
const qreal cdiv = 1e11;
}
#endif //FEATHER_GLOBALS_H

@ -91,7 +91,7 @@ quint64 TransactionInfo::confirmations() 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

@ -444,20 +444,28 @@ quint64 Wallet::daemonBlockChainTargetHeight() const
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)
{
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) {
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) {
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) {

@ -41,7 +41,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
}
QCommandLineParser parser;
parser.setApplicationDescription("feather");
parser.setApplicationDescription("feather-wow");
parser.addHelpOption();
parser.addVersionOption();
@ -57,11 +57,11 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
QCommandLineOption quietModeOption(QStringList() << "quiet", "Limit console output");
parser.addOption(quietModeOption);
QCommandLineOption stagenetOption(QStringList() << "stagenet", "Stagenet is for development purposes only.");
parser.addOption(stagenetOption);
QCommandLineOption testnetOption(QStringList() << "testnet", "Testnet is for development purposes only.");
parser.addOption(testnetOption);
// QCommandLineOption stagenetOption(QStringList() << "stagenet", "Stagenet is for development purposes only.");
// parser.addOption(stagenetOption);
//
// QCommandLineOption testnetOption(QStringList() << "testnet", "Testnet is for development purposes only.");
// parser.addOption(testnetOption);
QCommandLineOption walletPathOption(QStringList() << "wallet-file", "Path to wallet keys file.", "file");
parser.addOption(walletPathOption);
@ -87,8 +87,8 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
const QStringList args = parser.positionalArguments();
bool debugMode = parser.isSet(debugModeOption);
bool localTor = parser.isSet(useLocalTorOption);
bool stagenet = parser.isSet(stagenetOption);
bool testnet = parser.isSet(testnetOption);
bool stagenet = false;
bool testnet = false;
bool quiet = parser.isSet(quietModeOption);
bool exportContacts = parser.isSet(exportContactsOption);
bool exportTxHistory = parser.isSet(exportTxHistoryOption);
@ -96,7 +96,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
if(cliMode) {
QCoreApplication cli_app(argc, argv);
QCoreApplication::setApplicationName("feather");
QCoreApplication::setApplicationName("feather-wow");
QCoreApplication::setOrganizationDomain("featherwallet.org");
QCoreApplication::setOrganizationName("featherwallet.org");
@ -129,7 +129,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
QApplication app(argc, argv);
QApplication::setApplicationName("feather");
QApplication::setApplicationName("feather-wow");
QApplication::setOrganizationDomain("featherwallet.org");
QApplication::setOrganizationName("featherwallet.org");
@ -138,7 +138,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
if(!quiet) {
QMap<QString, QString> info;
info["Qt"] = QT_VERSION_STR;
info["Feather"] = FEATHER_VERSION;
info["Feather-WOW"] = FEATHER_VERSION;
if (stagenet) info["Mode"] = "Stagenet";
else if (testnet) info["Mode"] = "Testnet";
else info["Mode"] = "Mainnet";

@ -88,7 +88,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
connect(ui->actionReport_bug, &QAction::triggered, [this](){
QMessageBox::information(this, "Reporting Bugs",
"<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"
"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. "
@ -106,7 +106,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
m_trayActionCalc->setStatusTip("Calculator");
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->setStatusTip("View incoming transfers");
@ -128,13 +128,13 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
#endif
// ticker widgets
m_tickerWidgets.append(new TickerWidget(this, "XMR"));
m_tickerWidgets.append(new TickerWidget(this, "WOW"));
m_tickerWidgets.append(new TickerWidget(this, "BTC"));
for(auto tickerWidget: m_tickerWidgets) {
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);
// Send widget
@ -462,7 +462,7 @@ void MainWindow::initMenu() {
if(targetDir.isEmpty()) return;
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))
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;
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)
label_str += QString(" (+%1 XMR unconfirmed)").arg(Utils::balanceFormat(balance - spendable));
label_str += QString(" (+%1 WOW unconfirmed)").arg(Utils::balanceFormat(balance - spendable));
if (hide)
label_str = "Balance: HIDDEN";
@ -811,7 +811,8 @@ void MainWindow::create_status_bar() {
this->statusBar()->addWidget(m_statusLabelNetStats);
m_statusLabelBalance = new ClickableLabel(this);
m_statusLabelBalance->setText("Balance: 0 XMR");
m_statusLabelBalance->setText("Balance: 0 WOW");
m_statusLabelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse);
this->statusBar()->addPermanentWidget(m_statusLabelBalance);
connect(m_statusLabelBalance, &ClickableLabel::clicked, this, &MainWindow::showBalanceDialog);
@ -1023,7 +1024,7 @@ void MainWindow::closeEvent(QCloseEvent *event) {
}
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)
donation = 0.1337;

@ -145,7 +145,7 @@ void SendWidget::sendClicked() {
}
quint64 amount;
if (currency == "XMR") {
if (currency == "WOW") {
amount = this->amount();
bool sendAll = (ui->lineAmount->text() == "all");
if (amount == 0 && !sendAll) {
@ -190,12 +190,12 @@ void SendWidget::updateConversionLabel() {
QString conversionAmountStr = [this]{
QString currency = ui->comboCurrencySelection->currentText();
if (currency != "XMR") {
return QString("~%1 XMR").arg(QString::number(this->conversionAmount(), 'f'));
if (currency != "WOW") {
return QString("~%1 WOW").arg(QString::number(this->conversionAmount(), 'f'));
} else {
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);
}
}();

@ -141,17 +141,7 @@
<widget class="QComboBox" name="comboBox_blockExplorer">
<item>
<property name="text">
<string>exploremonero.com</string>
</property>
</item>
<item>
<property name="text">
<string>xmrchain.net</string>
</property>
</item>
<item>
<property name="text">
<string>moneroblocks.info</string>
<string>explore.wownero.com</string>
</property>
</item>
<item>

@ -26,12 +26,12 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
{Config::donateBeg,{QS("donateBeg"), 1}},
{Config::skin,{QS("skin"), "light"}},
{Config::preferredFiatCurrency,{QS("preferredFiatCurrency"), "USD"}},
{Config::blockExplorer,{QS("blockExplorer"), "exploremonero.com"}},
{Config::blockExplorer,{QS("blockExplorer"), "explore.wownero.com"}},
{Config::walletDirectory,{QS("walletDirectory"), ""}},
{Config::autoOpenWalletPath,{QS("autoOpenWalletPath"), ""}},
{Config::walletPath,{QS("walletPath"), ""}},
{Config::xmrigPath,{QS("xmrigPath"), ""}},
{Config::xmrigPool,{QS("xmrigPool"), "pool.xmr.pt:9000"}},
{Config::xmrigPool,{QS("xmrigPool"), "cryptonote.social:2223"}},
{Config::nodes,{QS("nodes"), "{}"}},
{Config::websocketEnabled,{QS("websocketEnabled"), true}},
{Config::nodeSource,{QS("nodeSource"), 0}},
@ -113,7 +113,7 @@ Config::Config(QObject* parent)
QString appImagePath = qgetenv("APPIMAGE");
QFileInfo appImageDir(appImagePath);
QDir portablePath(appImageDir.absoluteDir().path() + "/.feather");
QDir portablePath(appImageDir.absoluteDir().path() + "/.feather-wow");
if (portablePath.mkpath(".")) {
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));
}
@ -148,4 +148,4 @@ Config* Config::instance()
}
return m_instance;
}
}

@ -233,32 +233,7 @@ QString Utils::copyFromClipboard() {
}
QString Utils::blockExplorerLink(const QString &blockExplorer, NetworkType::Type nettype, const QString &txid) {
if (blockExplorer == "exploremonero.com") {
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("");
return QString("https://explore.wownero.com/tx/%1").arg(txid);
}
QStandardItem *Utils::qStandardItem(const QString& text) {
@ -286,11 +261,11 @@ QString Utils::getUnixAccountName() {
QString Utils::xdgDesktopEntry(){
return QString(
"[Desktop Entry]\n"
"Name=Feather\n"
"GenericName=Feather\n"
"X-GNOME-FullName=Feather\n"
"Comment=a free Monero desktop wallet\n"
"Keywords=Monero;\n"
"Name=Feather-WOW\n"
"GenericName=Feather-WOW\n"
"X-GNOME-FullName=Feather-WOW\n"
"Comment=a free Wownero desktop wallet\n"
"Keywords=Wownero;\n"
"Exec=\"%1\" %u\n"
"Terminal=false\n"
"Type=Application\n"

@ -33,8 +33,8 @@ struct xdgDesktopEntryPaths {
};
const xdgDesktopEntryPaths xdgPaths = {
QString("%1/feather.desktop").arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation)),
QString("%1/.local/share/icons/feather.png").arg(QDir::homePath()),
QString("%1/feather-wow.desktop").arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation)),
QString("%1/.local/share/icons/wownero.png").arg(QDir::homePath()),
QString("/")
};

@ -54,7 +54,7 @@ void XmRig::start(const QString &path,
QStringList arguments;
arguments << "-o" << address;
arguments << "-a" << "rx/0";
arguments << "-a" << "rx/wow";
arguments << "-u" << username;
if(!password.isEmpty())
arguments << "-p" << password;

@ -31,7 +31,7 @@ void CCSProgressDelegate::paint(QPainter *painter, const QStyleOptionViewItem &o
progressBarOption.textVisible = true;
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;
progressBarOption.progress = progress < 0 ? 0 : progress;
progressBarOption.text = target;

@ -53,7 +53,7 @@
<item row="0" column="1">
<widget class="QLabel" name="label_restoreHeightDate">
<property name="text">
<string>2014-04-18</string>
<string>2018-04-1</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>

@ -20,7 +20,7 @@ XMRigWidget::XMRigWidget(AppContext *ctx, QWidget *parent) :
{
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));
// 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());
ui->btn_start->setEnabled(false);
ui->btn_stop->setEnabled(true);
emit miningStarted();

@ -56,7 +56,7 @@ private:
QMenu *m_contextMenu;
int m_threads;
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

@ -14,6 +14,7 @@ MenuPage::MenuPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *pare
, m_walletKeysFilesModel(wallets)
{
ui->setupUi(this);
this->setTitle("Welcome to feather-WOW");
this->setButtonText(QWizard::FinishButton, "Open recent wallet");
}

@ -90,16 +90,6 @@
</property>
</widget>
</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>
</widget>
<resources/>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save