Compare commits

...
Author SHA1 Message Date
wowario 732f34b595 Merge pull request '[drone] remove extra .exe [CI SKIP]' (#19) from wowario/wowlet:drone into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/19
2021-03-22 21:51:29 +00:00
wowario eb2f004d45 [drone] remove extra .exe [CI SKIP] 2021-03-23 00:50:25 +03:00
wowario 8b6eff5fb8 Merge pull request '[drone] mount vol' (#17) from wowario/wowlet:drone into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/17
2021-03-22 21:18:36 +00:00
wowario af743fc62f [drone] mount vol 2021-03-22 23:53:24 +03:00
wowario 2c33333000 Merge pull request 'update submodule' (#16) from wowario/wowlet:drone into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/16
2021-03-22 16:27:06 +00:00
wowario 2548134302 update submodule 2021-03-22 18:51:08 +03:00
wowario 7a995706b7 Merge pull request 'rename docker imgs' (#15) from wowario/wowlet:drone into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/15
2021-03-22 15:48:17 +00:00
wowario 47aca44551 rename docker imgs 2021-03-22 18:22:41 +03:00
wowario 08e069b3d9 Merge pull request 'simple ci' (#14) from wowario/wowlet:drone into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/14
2021-03-22 14:44:58 +00:00
wowario 6b7b4badcd simple ci 2021-03-22 17:43:50 +03:00
wowario a6cec46ecc Merge pull request 'initialize submodules by default' (#11) from wowario/wowlet:cmake into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/11
2021-03-22 12:57:05 +00:00
wowario 5ae3d42d1f Merge pull request 'add ci badge' (#12) from wowario/wowlet:readme into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/12
2021-03-22 12:56:52 +00:00
wowario fedeaa5c0d Merge pull request 'fix AppImage build' (#13) from wowario/wowlet:appimg into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/13
2021-03-22 12:56:40 +00:00
wowario ecca86a1ce fix AppImage build 2021-03-22 15:05:47 +03:00
wowario ea08119fa3 initialize submodules by default 2021-03-22 12:03:49 +03:00
wowario c3b7ae3ab1 add ci badge 2021-03-22 12:00:17 +03:00
Chad Thundercock ⚡ 6bb1f00082 Merge pull request 'wowletify BUILDING.md' (#10) from qvqc/wowlet:master into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/10
2021-03-15 07:37:33 +00:00
qvqc d6eea75b6a wowletify BUILDING.md 2021-03-11 20:50:29 +00:00
wowlet 341f83f71f Merge pull request 'rename-ccs-tab' (#6) from w0wz0rz/wowlet:rename-ccs-tab into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/6
2021-02-22 21:13:08 +00:00
wowlet 10be6d49cb Merge pull request 'Remove exchange tab' (#5) from w0wz0rz/wowlet:rename into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/5
2021-02-22 21:12:40 +00:00
wowlet 09c0e488a8 Merge pull request 'rename submodule branch' (#3) from wowario/wowlet:sub into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/3
2021-02-22 21:12:12 +00:00
wowlet 57736b1fee Merge pull request 'rename to wowlet' (#2) from wowario/wowlet:rename into master
Reviewed-on: https://git.wownero.com/wowlet/wowlet/pulls/2
2021-02-22 21:11:04 +00:00
w0wz0rz e284c2e349 Rename CCS tab to WFS 2021-02-22 20:29:31 +00:00
w0wz0rz 675fe02cb1 Remove tab exchange 2021-02-22 20:22:28 +00:00
wowario 5fe631037c rename files 2021-02-22 21:41:04 +03:00
wowario 736f10eb8a rename submodule branch 2021-02-22 10:02:08 +03:00
wowario c7c4237d10 rename to wowlet 2021-02-22 09:51:09 +03:00
wowlet 5e6bd0b9bb Update 'README.md' 2021-02-21 18:16:10 +00:00
wowario c1699c2c79 update opening pic 2021-02-20 18:21:37 +03:00
wowario d7364e1d80 update drone file 2021-02-20 17:46:02 +03:00
wowario d248aaf8b3 change name 2021-02-20 16:24:58 +03:00
wowario 67dff741dd update submodule 2021-02-20 15:16:27 +03:00
wowario 21fe180a84 remove xmrtowidget 2021-02-20 13:07:09 +03:00
wowario 3f83d74bac update HEAD 2021-02-20 12:11:33 +03:00
wowario ec142556d8 hide cal and exchange tabs 2021-02-20 11:01:39 +03:00
wowario fc426abfc0 update donation address to dev fund 2021-02-20 10:56:00 +03:00
wowario 6241c2e1de fix restore height 2021-02-20 10:42:33 +03:00
wowario ba940d6df4 update public nodes 2021-02-20 10:36:02 +03:00
wowario 29f4d627d2 rename to wowllet 2021-02-20 10:21:55 +03:00
wowario 774fa969a3 update acknowledgement 2021-02-20 09:56:19 +03:00
wowario f7d76eef98 update url 2021-02-20 09:43:23 +03:00
wowario 63dc0179c1 update README 2021-02-20 09:35:37 +03:00
wowario 0131476a5d change name 2021-02-20 09:33:04 +03:00
wowario 1b89370c1c update README 2021-02-18 13:04:27 +03:00
wowario c8606126f0 update submodule 2021-02-18 12:55:08 +03:00
tobtohtandwowario 52850ccf23 Update websocket URL 2021-02-18 12:28:22 +03:00
tobtohtandwowario 60540b87d0 Fix macOS builds 2021-02-18 12:27:28 +03:00
dscandwowario db5ba12190 SuchWidget - display listing of suchwow.xyz posts 2021-02-18 12:22:36 +03:00
dscandwowario 7cf050ff8e Fix restore height lookup bug temporarily. The date that src/utils/seeds.h#L29 outputs is wrong. Should be fixed. 2021-02-18 12:22:17 +03:00
dscandwowario b9d8128880 Wownerofy some more 2021-02-18 12:21:56 +03:00
dscandwowario 3e10b25068 Wownero 2021-02-18 12:20:16 +03:00
125 changed files with 833 additions and 2395 deletions
+26 -114
View File
@@ -1,138 +1,50 @@
---
kind: pipeline
type: docker
name: linux-release
name: linux-build
steps:
- name: build
image: feather:linux
- name: linux-build
image: wowlet/wowlet-linux:v0.1
volumes:
- name: ccache_linux_release
path: /root/.ccache
- name: monero
- name: cache
path: /drone/src/monero
- name: files_linux_release
path: /files
- name: files
path: /tmp/wowlet_linux
commands:
- TOR_BIN="/usr/local/tor/bin/tor" make -j11 release-static
- contrib/build-appimage.sh
environment:
OPENSSL_ROOT_DIR: /usr/local/openssl/
CMAKEFLAGS_EXTRA: -DFETCH_DEPS=Off
- name: deploy
image: feather:linux
volumes:
- name: ccache_linux_release
path: /root/.ccache
- name: files_linux_release
path: /linux-release
- name: files_linux_appimage
path: /linux-release-appimage
commands:
- export FN="feather-`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
- 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 TARGET_DIR="/linux-release-appimage/$DRONE_SOURCE_BRANCH"
- mkdir -p "$TARGET_DIR"
- echo "writing to $TARGET_DIR/$FN"
- mv "feather.AppImage" "$TARGET_DIR/$FN"
- echo "[*] written to https://build.featherwallet.org/files/linux-release-appimage/$DRONE_SOURCE_BRANCH/$FN"
- make release-static -j3
- export WOW="wowlet-`echo $DRONE_COMMIT_AFTER | cut -c 1-10`"
- cp build/bin/wowlet /tmp/wowlet_linux/$WOW
volumes:
- name: ccache_linux_release
- name: cache
host:
path: /var/drone/ccache_linux_release/
- name: monero
path: /home/wow/wowlet_wownero
- name: files
host:
path: /var/drone/monero
- name: files_linux_release
host:
path: /build/feather_files/files/linux-release/
- name: files_linux_appimage
host:
path: /build/feather_files/files/linux-release-appimage/
path: /home/wow/wowlet_linux
---
kind: pipeline
type: docker
name: windows-release
name: windows-build
steps:
- name: build
image: feather:win
- name: windows-build
image: wowlet/wowlet-win:v0.1
volumes:
- name: ccache_win_release
path: /root/.ccache
- name: files_win_release
path: /files
- name: monero
- name: cache
path: /drone/src/monero
- name: files
path: /tmp/wowlet_windows
commands:
- TOR_BIN="/usr/local/tor/bin/tor.exe" make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j11
environment:
CMAKEFLAGS_EXTRA: -DFETCH_DEPS=Off
- name: deploy
image: feather:win
volumes:
- name: files_win_release
path: /files
commands:
- export FN="feather-`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"
- make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j3
- export WOW="wowlet-`echo $DRONE_COMMIT_AFTER | cut -c 1-10`.exe"
- cp build/x86_64-w64-mingw32/release/bin/wowlet.exe /tmp/wowlet_windows/$WOW
volumes:
- name: ccache_win_release
- name: cache
host:
path: /var/drone/ccache_win_release/
- name: files_win_release
path: /home/wow/wowlet_wownero
- name: files
host:
path: /build/feather_files/files/windows-release/
- name: monero
host:
path: /var/drone/monero
---
kind: pipeline
type: docker
name: mac-release
steps:
- name: build
image: feather:mac
volumes:
- name: files_mac_release
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
- 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 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"
volumes:
- name: files_mac_release
host:
path: /build/feather_files/files/mac-release/
---
kind: signature
hmac: f16a0379280e2e89987930d635ec6fb938d67732fdaf4ddc488f2a9db64bda2c
path: /home/wow/wowlet_windows
...
+4 -6
View File
@@ -1,9 +1,7 @@
[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
[submodule "monero"]
path = monero
url = https://git.wownero.com/wownero/wownero
branch = wowlet
+14 -14
View File
@@ -1,6 +1,6 @@
## Buildbot builds
The docker build bins can be found here: https://build.featherwallet.org/files/
The docker build bins can be found here: https://build.wownero.org/files/
## Docker static builds
@@ -18,8 +18,8 @@ so that the resulting Feather binary is static. For more information, check the
#### 1. Clone
```bash
git clone --branch master --recursive https://git.wownero.com/feather/feather.git
cd feather
git clone --branch master --recursive https://git.wownero.com/wowlet/wowlet.git
cd wowlet
```
Replace `master` with the desired version tag (e.g. `beta-4`) to build the release binary.
@@ -27,7 +27,7 @@ Replace `master` with the desired version tag (e.g. `beta-4`) to build the relea
#### 2. Base image
```bash
docker build --tag feather:linux --build-arg THREADS=4 .
docker build --tag wowlet:linux --build-arg THREADS=4 .
```
Building the base image takes a while. You only need to build the base image once.
@@ -37,19 +37,19 @@ Building the base image takes a while. You only need to build the base image onc
##### Standalone binary
```bash
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'make release-static -j4'
docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:linux sh -c 'make release-static -j4'
```
If you're re-running a build make sure to `rm -rf build/` first.
The resulting binary can be found in `build/bin/feather`.
The resulting binary can be found in `build/bin/wowlet`.
##### AppImage
First create the standalone binary using the Docker command in the previous step.
```bash
docker run --rm -it -v $PWD:/feather -w /feather feather:linux contrib/build-appimage.sh
docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:linux contrib/build-appimage.sh
```
### Windows (reproducible)
@@ -57,8 +57,8 @@ docker run --rm -it -v $PWD:/feather -w /feather feather:linux contrib/build-app
#### 1. Clone
```bash
git clone --branch master --recursive https://git.wownero.com/feather/feather.git
cd feather
git clone --branch master --recursive https://git.wownero.com/wowlet/wowlet.git
cd wowlet
```
Replace `master` with the desired version tag (e.g. `beta-4`) to build the release binary.
@@ -67,7 +67,7 @@ Replace `master` with the desired version tag (e.g. `beta-4`) to build the relea
```bash
docker build -f Dockerfile.windows --tag feather:win --build-arg THREADS=4 .
docker build -f Dockerfile.windows --tag wowlet:win --build-arg THREADS=4 .
```
Building the base image takes a while. You only need to build the base image once.
@@ -75,12 +75,12 @@ Building the base image takes a while. You only need to build the base image onc
#### 3. Build
```bash
docker run --rm -it -v $PWD:/feather -w /feather feather:win sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
docker run --rm -it -v $PWD:/wowlet -w /wowlet wowlet:win sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
```
If you're re-running a build make sure to `rm -rf build/` first.
The resulting binary can be found in `build/x86_64-w64-mingw32/release/bin/feather.exe`.
The resulting binary can be found in `build/x86_64-w64-mingw32/release/bin/wowlet.exe`.
## macOS
@@ -94,7 +94,7 @@ HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" \
Clone the repository.
```bash
git clone --recursive https://git.wownero.com/feather/feather.git
git clone --recursive https://git.wownero.com/wowlet/wowlet.git
```
Get the latest LTS from here: https://www.qt.io/offline-installers and install.
@@ -105,4 +105,4 @@ Build Feather.
CMAKE_PREFIX_PATH=~/Qt5.15.1/5.15.1/clang_64 make mac-release
```
The resulting Mac OS application can be found `build/bin/feather.app` and will **not** have Tor embedded.
The resulting Mac OS application can be found `build/bin/wowlet.app` and will **not** have Tor embedded.
+15 -7
View File
@@ -7,12 +7,11 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
set(VERSION_MAJOR "0")
set(VERSION_MINOR "1")
set(VERSION_REVISION "0")
set(VERSION "beta-4")
set(VERSION "beta-1")
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,16 @@ if(DEBUG)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
set(MONERO_HEAD "aa0f58570d412cf02dd325e567bbc9fa093df16c")
# Update and init submodules by default
if(NOT MANUAL_SUBMODULES)
find_package(Git)
if(GIT_FOUND)
message(STATUS "Initializing submodules")
execute_process(COMMAND git "submodule" "update" "--init" "--recursive")
endif()
endif()
set(WOWNERO_HEAD "f611d5c9e32bc62f1735f6571b0bdb95cc020531")
set(BUILD_GUI_DEPS ON)
set(ARCH "x86-64")
set(BUILD_64 ON)
@@ -82,11 +90,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()
+1 -1
View File
@@ -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 -1
View File
@@ -7,7 +7,7 @@ pkgrel=1
pkgdesc='a free Monero desktop wallet'
license=('BSD')
arch=('x86_64')
url="https://featherwallet.org"
url="https://wownero.org"
depends=('boost-libs' 'libunwind' 'openssl' 'readline' 'pcsclite' 'hidapi' 'protobuf' 'miniupnpc' 'libgcrypt' 'qrencode' 'libsodium' 'libpgm' 'expat' 'qt5-base' 'qt5-websockets' 'tor')
makedepends=('git' 'cmake' 'boost')
+6 -29
View File
@@ -1,35 +1,12 @@
# Feather - a free Monero desktop wallet
[![Build Status](https://ci.wownero.com/api/badges/wowlet/wowlet/status.svg)](https://ci.wownero.com/wowlet/wowlet)
[![Build Status](https://build.featherwallet.org/api/badges/feather/feather/status.svg)](https://build.featherwallet.org/feather/feather)
# WOWlet- a free Wownero desktop wallet
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).
WOWlet 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)
* IRC: `#feather` on OFTC
* Development builds: [build.featherwallet.org/files](https://build.featherwallet.org/files/)
* Git: [git.wownero.com/wowlet/wowlet](https://git.wownero.com/wowlet/wowlet)
* IRC: `#wownero` on Freenode
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.
+1 -1
View File
@@ -4,7 +4,7 @@
Please do not open an issue to report security issues.
To report a vulnerability send an email to dev@featherwallet.org
To report a vulnerability send an email to dev@wownero.org
The following keys may be used to communicate sensitive information to developers:
+6 -6
View File
@@ -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:wowlet>/../.." -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:wowlet>/../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:wowlet>/../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:wowlet>/../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:wowlet>/../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:wowlet>/../PlugIns/imageformats/libqsvg.dylib
COMMENT "Copying libqsvg.dylib, running install_name_tool"
)
endif()
+13 -12
View File
@@ -3,18 +3,19 @@
set -e
unset SOURCE_DATE_EPOCH
APPDIR="$PWD/feather.AppDir"
APPDIR="$PWD/wowlet.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/wowlet.desktop" "$APPDIR/usr/share/applications/wowlet.desktop"
cp "$PWD/src/assets/images/appicons/64x64.png" "$APPDIR/wowlet.png"
cp "$PWD/build/bin/wowlet" "$APPDIR/usr/bin/wowlet"
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 wowlet.AppDir/usr/share/applications/wowlet.desktop -bundle-non-qt-libs
find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
find wowlet.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
# Manually create AppImage (reproducibly)
@@ -22,11 +23,11 @@ find feather.AppDir/ -exec touch -h -a -m -t 202101010100.00 {} \;
wget -nc https://github.com/AppImage/AppImageKit/releases/download/12/runtime-x86_64
echo "24da8e0e149b7211cbfb00a545189a1101cb18d1f27d4cfc1895837d2c30bc30 runtime-x86_64" | sha256sum -c
mksquashfs feather.AppDir feather.squashfs -info -root-owned -no-xattrs -noappend -fstime 0
mksquashfs wowlet.AppDir wowlet.squashfs -info -root-owned -no-xattrs -noappend -fstime 0
# 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=wowlet.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 wowlet.AppImage
cat runtime-x86_64 >> wowlet.AppImage
cat wowlet.squashfs >> wowlet.AppImage
chmod a+x wowlet.AppImage
Submodule contrib/tor deleted from e68770719e
+1 -1
Submodule monero updated: aa0f58570d...f611d5c9e3
+28 -24
View File
@@ -70,29 +70,29 @@ if(APPLE)
list(APPEND RESOURCES ${ICON})
endif()
add_executable(feather ${EXECUTABLE_FLAG} main.cpp
add_executable(wowlet ${EXECUTABLE_FLAG} main.cpp
${SOURCE_FILES}
${RESOURCES}
${ASSETS_TOR}
)
# mac os bundle
set_target_properties(feather PROPERTIES
set_target_properties(wowlet 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 wowlet 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(wowlet PUBLIC ${OPENGL_INCLUDE_DIR})
target_include_directories(wowlet 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(wowlet 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(wowlet PRIVATE DONATE_BEG=1)
endif()
if(TOR_BIN)
target_compile_definitions(feather PRIVATE HAS_TOR_BIN=1)
target_compile_definitions(wowlet PRIVATE HAS_TOR_BIN=1)
endif()
if(XMRIG)
target_compile_definitions(feather PRIVATE HAS_XMRIG=1)
target_compile_definitions(wowlet PRIVATE HAS_XMRIG=1)
endif()
if(HAVE_SYS_PRCTL_H)
target_compile_definitions(feather PRIVATE HAVE_SYS_PRCTL_H=1)
target_compile_definitions(wowlet PRIVATE HAVE_SYS_PRCTL_H=1)
endif()
if(STATIC)
target_compile_definitions(feather PRIVATE STATIC=1)
target_compile_definitions(wowlet PRIVATE STATIC=1)
endif()
if(STATIC)
target_compile_definitions(wowlet PRIVATE STATIC=1)
endif()
if("$ENV{DRONE}" STREQUAL "true")
target_compile_definitions(feather PRIVATE DRONE=1)
target_compile_definitions(wowlet PRIVATE DRONE=1)
endif()
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_definitions(feather PRIVATE QT_NO_DEBUG=1)
target_compile_definitions(wowlet PRIVATE QT_NO_DEBUG=1)
endif()
target_compile_definitions(feather
target_compile_definitions(wowlet
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(wowlet -Wl,--whole-archive monero-seed::monero-seed -Wl,--no-whole-archive)
else()
target_link_libraries(feather monero-seed::monero-seed)
target_link_libraries(wowlet monero-seed::monero-seed)
endif()
target_link_libraries(feather
target_link_libraries(wowlet
wallet_merged
${LMDB_LIBRARY}
epee
@@ -194,38 +198,38 @@ target_link_libraries(feather
)
if(APPLE)
target_link_libraries(feather
target_link_libraries(wowlet
KDMacTouchBar
)
target_include_directories(feather
target_include_directories(wowlet
PUBLIC ../contrib/KDMacTouchBar)
endif()
if(NOT APPLE)
target_link_libraries(feather
target_link_libraries(wowlet
Qt5::QSvgIconPlugin
Qt5::QSvgPlugin
)
endif()
if(STATIC)
target_link_libraries(feather
target_link_libraries(wowlet
Qt5::QSvgIconPlugin
Qt5::QSvgPlugin)
if(UNIX AND NOT APPLE)
target_link_libraries(feather
target_link_libraries(wowlet
Qt5::QXcbIntegrationPlugin)
endif()
endif()
if(X11_FOUND)
target_link_libraries(feather ${X11_LIBRARIES})
target_link_libraries(wowlet ${X11_LIBRARIES})
endif()
if(APPLE)
include(Deploy)
endif()
install(TARGETS feather
install(TARGETS wowlet
DESTINATION ${CMAKE_INSTALL_PREFIX}
)
+24 -19
View File
@@ -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() + "/.wowlet";
}
QFileInfo appImageDir(appImagePath);
return appImageDir.absoluteDir().path() + "/.feather";
return appImageDir.absoluteDir().path() + "/.wowlet";
}();
@@ -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/wowlet/").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);
@@ -310,7 +310,7 @@ void AppContext::onWalletOpened(Wallet *wallet) {
if(errMsg == QString("basic_string::_M_replace_aux") || errMsg == QString("std::bad_alloc")) {
qCritical() << errMsg;
this->walletManager->clearWalletCache(this->walletPath);
errMsg = QString("%1\n\nAttempted to clean wallet cache. Please restart Feather.").arg(errMsg);
errMsg = QString("%1\n\nAttempted to clean wallet cache. Please restart WOWlet.").arg(errMsg);
this->closeWallet(false);
emit walletOpenedError(errMsg);
} else if(errMsg.contains("wallet cannot be opened as")) {
@@ -361,7 +361,7 @@ void AppContext::onWalletOpened(Wallet *wallet) {
void AppContext::setWindowTitle(bool mining) {
QFileInfo fileInfo(this->walletPath);
auto title = QString("Feather - [%1]").arg(fileInfo.fileName());
auto title = QString("WOWlet - [%1]").arg(fileInfo.fileName());
if(this->walletViewOnly)
title += " [view-only]";
if(mining)
@@ -426,11 +426,16 @@ 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);
}
else if(cmd == "suchwow") {
QJsonArray such_data = msg.value("data").toArray();
emit suchWowUpdated(such_data);
}
else if(cmd == "txFiatHistory") {
auto txFiatHistory_data = msg.value("data").toObject();
AppContext::txFiatHistory->onWSData(txFiatHistory_data);
@@ -602,9 +607,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 +708,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);
}
}
+4 -3
View File
@@ -42,13 +42,13 @@ public:
bool isDebug = false;
// Donation config
const QString donationAddress = "47ntfT2Z5384zku39pTM6hGcnLnvpRYW2Azm87GiAAH2bcTidtq278TL6HmwyL8yjMeERqGEBs3cqC8vvHPJd1cWQrGC65f";
const QString donationAddress = "Wo3MWeKwtA918DU4c69hVSNgejdWFCRCuWjShRY66mJkU2Hv58eygJWDJS1MNa2Ge5M1WjUkGHuLqHkweDxwZZU42d16v94mP";
const int donationAmount = 25; // euro
bool donationSending = false;
QCommandLineParser *cmdargs;
QString coinName = "monero";
QString coinName = "wownero";
bool isTorSocks = false;
QString homeDir;
QString accountName;
@@ -162,6 +162,7 @@ signals:
void redditUpdated(QList<QSharedPointer<RedditPost>> &posts);
void nodesUpdated(QList<QSharedPointer<FeatherNode>> &nodes);
void ccsUpdated(QList<QSharedPointer<CCSEntry>> &entries);
void suchWowUpdated(const QJsonArray &such_data);
void nodeSourceChanged(NodeSource nodeSource);
void XMRigDownloads(const QJsonObject &data);
void setCustomNodes(QList<FeatherNode> nodes);
@@ -178,7 +179,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://feathercitimllbmdktu6cmjo3fizgmyfrntntqzu6xguqa2rlq5cgid.onion/ws"));
};
#endif //FEATHER_APPCONTEXT_H
+51 -6
View File
@@ -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/wowlet.desktop</file>
<file>assets/nodes.json</file>
<file>assets/images/appicons/32x32.png</file>
<file>assets/images/appicons/48x48.png</file>
@@ -13,8 +13,6 @@
<file>assets/images/appicons/256x256.png</file>
<file>assets/images/arrow.svg</file>
<file>assets/images/banners/1.png</file>
<file>assets/images/banners/2.png</file>
<file>assets/images/banners/3.png</file>
<file>assets/images/bitcoin.png</file>
<file>assets/images/camera_dark.png</file>
<file>assets/images/camera_white.png</file>
@@ -39,7 +37,7 @@
<file>assets/images/expired_icon.png</file>
<file>assets/images/eye1.png</file>
<file>assets/images/eye_blind.png</file>
<file>assets/images/feather.png</file>
<file>assets/images/wowlet.png</file>
<file>assets/images/file.png</file>
<file>assets/images/gnome-calc.png</file>
<file>assets/images/history.png</file>
@@ -56,6 +54,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 +148,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>
+3 -3
View File
@@ -1,7 +1,7 @@
Feather <feather_version> (<feather_git_head>)
WOWlet <feather_version> (<feather_git_head>)
Website: https://featherwallet.org
E-mail: dev@featherwallet.org
Website: https://wownero.org
E-mail: dev@wownero.org
Created by dsc, tobtoht, and contributors.
+5 -4
View File
@@ -1,12 +1,13 @@
WOWlet is a fork of Feather (https://git.featherwallet.org/feather/feather).
The wallet UI is heavily inspired by Electrum. We would like to recognize Thomas Voegtlin for his pioneering work on Bitcoin.
Feather uses monero-seed written by Tevador, for 14 word mnemonic seeds.
WOWlet uses monero-seed written by Tevador, for 14 word mnemonic seeds.
Wizard banner art was adapted from a paper wallet design by the themonera (themonera.art).
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 dsc, tobtoht, 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 :-)
-14
View File
@@ -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.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 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

BIN
View File
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

BIN
View File
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

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

+6 -28
View File
@@ -1,36 +1,14 @@
{
"mainnet": {
"tor": [
"xmrtolujkxnlinre.onion:18081",
"xmrag4hf5xlabmob.onion:18081",
"monero26mmldsallmxok2kwamne4ve3mybvvn2yijsvss7ey63hc4yyd.onion:18081",
"monero5sjoz5xmjn.onion:18081",
"mxcd4577fldb3ppzy7obmmhnu3tf57gbcbd4qhwr2kxyjj2qi3dnbfqd.onion:18081",
"moneroxmrxw44lku6qniyarpwgznpcwml4drq7vb24ppatlcg4kmxpqd.onion:18089",
"3hvpnd4xejtzcuowvru2wfjum5wjf7synigm44rrizr3k4v5vzam2bad.onion:18081",
"3t7v5zpcfxq2tocdofdcwxgrldco3elotz3iis4jtbbnscy5alezw7yd.onion:18081",
"4mslnrs5sfjxrb35.onion:18081",
"aytzr6aoxsegx2y6.onion:18081",
"rbpgdckle3h3vi4wwwrh75usqtoc5r3alohy7yyx57isynvay63nacyd.onion:18089",
"slvb7iuq6rwj4gjbbfwile5piamhnllwk3s5vqccn2hqvz2nmrkvpiid.onion:18089",
"wq7o3snkc65onqc3rjdoynnsve2z22aqs3gixdtaaayx4qhgbz74auqd.onion:18089"
"a2b6ain7ozgpxhzxkhl7vrnphrlvn4cqvibyhpcvyfbbgare6bm5m2yd.onion:18081"
],
"clearnet": [
"eu-west.node.xmr.pm:18089",
"eu-west-2.node.xmr.pm:18089",
"usa-east-va.node.xmr.pm:18089",
"canada.node.xmr.pm:18089",
"singapore.node.xmr.pm:18089",
"nodes.hashvault.pro:18081",
"node.supportxmr.com:18081",
"xmr-node-eu.cakewallet.com:18081",
"xmr-node-usa-east.cakewallet.com:18081",
"node.xmr.ru:18081",
"selsta1.featherwallet.net:18081",
"selsta2.featherwallet.net:18081",
"node-1.sethsimmons.me:18089",
"node-2.sethsimmons.me:18089",
"node-3.sethsimmons.me:18089"
"wownero.fyi:34568",
"wow.pwned.systems:34568",
"de1.wownodes.com:34568",
"wowbux.org:34568",
"global.wownodes.com:34568"
]
},
"stagenet": {
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,171 @@
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
1609825674:279148
+14
View File
@@ -0,0 +1,14 @@
[Desktop Entry]
Comment=Lightweight Wownero Wallet
Exec=wowlet
GenericName[en_US]=Wownero Wallet
GenericName=Wownero Wallet
Icon=wowlet
Name[en_US]=WOWlet
Name=WOWlet
Categories=Finance;Network;
StartupNotify=false
StartupWMClass=wowlet
Terminal=false
Type=Application
MimeType=x-scheme-handler/wownero;
+1 -1
View File
@@ -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());
+2 -2
View File
@@ -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);
+2 -2
View File
@@ -27,7 +27,7 @@
</property>
<widget class="QWidget" name="Feather">
<attribute name="title">
<string>Feather</string>
<string>WOWlet</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
@@ -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>
+2 -2
View File
@@ -89,8 +89,8 @@ QString DebugInfoDialog::statusToString(Wallet::ConnectionStatus status) {
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("WOWlet version: %1 \n").arg(ui->label_featherVersion->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());
+2 -2
View File
@@ -19,7 +19,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Feather version:</string>
<string>WOWlet version:</string>
</property>
</widget>
</item>
@@ -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>
+1 -1
View File
@@ -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()));
+1 -1
View File
@@ -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());
+1 -1
View File
@@ -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));
}
+1 -1
View File
@@ -8,7 +8,7 @@
namespace globals
{
const qreal cdiv = 1e12;
const qreal cdiv = 1e11;
}
#endif //FEATHER_GLOBALS_H
+1 -1
View File
@@ -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
+12 -4
View File
@@ -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) {
+15 -15
View File
@@ -41,7 +41,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
}
QCommandLineParser parser;
parser.setApplicationDescription("feather");
parser.setApplicationDescription("wowlet");
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,9 +96,9 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
if(cliMode) {
QCoreApplication cli_app(argc, argv);
QCoreApplication::setApplicationName("feather");
QCoreApplication::setOrganizationDomain("featherwallet.org");
QCoreApplication::setOrganizationName("featherwallet.org");
QCoreApplication::setApplicationName("wowlet");
QCoreApplication::setOrganizationDomain("wownero.org");
QCoreApplication::setOrganizationName("wownero.org");
auto *ctx = new AppContext(&parser);
ctx->applicationPath = QString(argv[0]);
@@ -129,16 +129,16 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) {
QApplication app(argc, argv);
QApplication::setApplicationName("feather");
QApplication::setOrganizationDomain("featherwallet.org");
QApplication::setOrganizationName("featherwallet.org");
QApplication::setApplicationName("wowlet");
QApplication::setOrganizationDomain("wownero.org");
QApplication::setOrganizationName("wownero.org");
parser.process(app); // Parse again for --help and --version
if(!quiet) {
QMap<QString, QString> info;
info["Qt"] = QT_VERSION_STR;
info["Feather"] = FEATHER_VERSION;
info["WOWlet"] = FEATHER_VERSION;
if (stagenet) info["Mode"] = "Stagenet";
else if (testnet) info["Mode"] = "Testnet";
else info["Mode"] = "Mainnet";
+33 -26
View File
@@ -6,6 +6,7 @@
#include <QDesktopServices>
#include <QCoreApplication>
#include <QSystemTrayIcon>
#include <QMessageBox>
#include <QFileDialog>
#include "mainwindow.h"
@@ -88,14 +89,14 @@ 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/wownero/wowlet/issues\" style=\"color: #33A4DF\">https://git.wownero.com/wownero/wowlet/issues</a><br/><br/>"
"\n"
"Before reporting a bug, upgrade to the most recent version of Feather "
"Before reporting a bug, upgrade to the most recent version of WOWlet "
"(latest release or git HEAD), and include the version number in your report. "
"Try to explain not only what the bug is, but how it occurs.</body>");
});
connect(ui->actionShow_debug_info, &QAction::triggered, this, &MainWindow::showDebugInfo);
connect(ui->actionOfficialWebsite, &QAction::triggered, [=] { Utils::externalLinkWarning(this, "https://featherwallet.org"); });
connect(ui->actionOfficialWebsite, &QAction::triggered, [=] { Utils::externalLinkWarning(this, "https://wownero.org"); });
#if defined(Q_OS_LINUX)
// system tray
@@ -106,7 +107,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 +129,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
@@ -166,6 +167,8 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
connect(ui->ccsWidget, &CCSWidget::selected, this, &MainWindow::showSendScreen);
connect(m_ctx, &AppContext::ccsUpdated, ui->ccsWidget->model(), &CCSModel::updateEntries);
connect(m_ctx, &AppContext::redditUpdated, ui->redditWidget->model(), &RedditModel::updatePosts);
connect(m_ctx, &AppContext::suchWowUpdated, ui->suchWowWidget, &SuchWowWidget::onWS);
connect(ui->suchWowWidget, &SuchWowWidget::donate, this, &MainWindow::suchDonate);
connect(ui->redditWidget, &RedditWidget::setStatusText, this, &MainWindow::setStatusText);
@@ -174,9 +177,9 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
});
connect(m_ctx, &AppContext::donationNag, [=]{
auto msg = "Feather is a 100% community-sponsored endeavor. Please consider supporting "
auto msg = "WOWlet is a 100% community-sponsored endeavor. Please consider supporting "
"the project financially. Get rid of this message by donating any amount.";
int ret = QMessageBox::information(this, "Donate to Feather", msg, QMessageBox::Yes, QMessageBox::No);
int ret = QMessageBox::information(this, "Donate to WOWlet", msg, QMessageBox::Yes, QMessageBox::No);
switch (ret) {
case QMessageBox::Yes:
this->donateButtonClicked();
@@ -226,7 +229,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
// testnet/stagenet warning
auto worthlessWarning = QString("Feather wallet is currently running in %1 mode. This is meant "
auto worthlessWarning = QString("WOWlet is currently running in %1 mode. This is meant "
"for developers only. Your coins are WORTHLESS.");
if(m_ctx->networkType == NetworkType::STAGENET) {
if (config()->get(Config::warnOnStagenet).toBool()) {
@@ -242,8 +245,8 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
}
if(config()->get(Config::warnOnAlpha).toBool()) {
QString warning = "Feather Wallet is currently in beta.\n\nPlease report any bugs "
"you encounter on our Git repository, IRC or on /r/FeatherWallet.";
QString warning = "WOWlet is currently in beta.\n\nPlease report any bugs "
"you encounter on our Git repository, IRC freenode #wownero or on /r/Wowonero.";
QMessageBox::warning(this, "Beta Warning", warning);
config()->set(Config::warnOnAlpha, false);
}
@@ -324,7 +327,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
// init touchbar
#ifdef Q_OS_MAC
m_touchbar = new KDMacTouchBar(this);
m_touchbarActionWelcome = new QAction(QIcon(":/assets/images/feather.png"), "Welcome to Feather!");
m_touchbarActionWelcome = new QAction(QIcon(":/assets/images/wowlet.png"), "Welcome to WOWlet!");
m_touchbarWalletItems = {ui->actionSettings, ui->actionCalculator, ui->actionKeys, ui->actionDonate_to_Feather};
m_touchbarWizardItems = {m_touchbarActionWelcome};
#endif
@@ -390,9 +393,6 @@ void MainWindow::initMenu() {
m_tabShowHideMapper["Calc"] = new ToggleTab(ui->tabCalc, "Calc", "Calc", ui->actionShow_calc, Config::showTabCalc);
m_tabShowHideSignalMapper->setMapping(ui->actionShow_calc, "Calc");
ui->actionShow_Exchange->setVisible(false);
ui->tabWidget->setTabVisible(Tabs::EXCHANGES, false);
#if defined(HAS_XMRIG)
connect(ui->actionShow_XMRig, &QAction::triggered, m_tabShowHideSignalMapper, QOverload<>::of(&QSignalMapper::map));
m_tabShowHideMapper["Mining"] = new ToggleTab(ui->tabXmrRig, "Mining", "Mining", ui->actionShow_XMRig, Config::showTabXMRig);
@@ -434,7 +434,7 @@ void MainWindow::initMenu() {
connect(ui->actionChange_restore_height, &QAction::triggered, this, &MainWindow::showRestoreHeightDialog);
connect(m_ctx, &AppContext::customRestoreHeightSet, [=](int height){
auto msg = QString("The restore height for this wallet has been set to %1. "
"Please re-open the wallet. Feather will now quit.").arg(height);
"Please re-open the wallet. WOWlet will now quit.").arg(height);
QMessageBox::information(this, "Cannot set custom restore height", msg);
this->menuQuitClicked();
});
@@ -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));
});
@@ -567,7 +567,7 @@ void MainWindow::onWalletOpenPasswordRequired(bool invalidPassword, const QStrin
void MainWindow::onWalletOpenedError(const QString &err) {
qDebug() << Q_FUNC_INFO << QString("Wallet open error: %1").arg(err);
QMessageBox::warning(this, "Wallet open error", err);
this->setWindowTitle("Feather");
this->setWindowTitle("WOWlet");
this->showWizard(WalletWizard::Page_OpenWallet);
this->touchbarShowWizard();
}
@@ -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,11 +1024,11 @@ 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;
ui->sendWidget->fill(m_ctx->donationAddress, "Donation to the Feather development team", donation);
ui->sendWidget->fill(m_ctx->donationAddress, "Donation to the WOWlet development team", donation);
ui->tabWidget->setCurrentIndex(Tabs::SEND);
}
@@ -1059,6 +1060,12 @@ void MainWindow::showSendScreen(const CCSEntry &entry) {
ui->tabWidget->setCurrentIndex(Tabs::SEND);
}
void MainWindow::suchDonate(const QString address) {
double donation = AppContext::prices->convert("EUR", "WOW", 2);
ui->sendWidget->fill(address, "SuchWow contribution :-)", donation);
ui->tabWidget->setCurrentIndex(Tabs::SEND);
}
void MainWindow::onViewOnBlockExplorer(const QString &txid) {
QString blockExplorerLink = Utils::blockExplorerLink(config()->get(Config::blockExplorer).toString(), m_ctx->networkType, txid);
Utils::externalLinkWarning(this, blockExplorerLink);
@@ -1161,14 +1168,14 @@ void MainWindow::showWalletCacheDebugDialog() {
void MainWindow::showNodeExhaustedMessage() {
// Spawning dialogs inside a lambda can cause system freezes on linux so we have to do it this way ¯\_(ツ)_/¯
auto msg = "Feather is in 'custom node connection mode' but could not "
auto msg = "WOWlet is in 'custom node connection mode' but could not "
"find an eligible node to connect to. Please go to Settings->Node "
"and enter a node manually.";
QMessageBox::warning(this, "Could not connect to a node", msg);
}
void MainWindow::showWSNodeExhaustedMessage() {
auto msg = "Feather is in 'automatic node connection mode' but the "
auto msg = "WOWlet is in 'automatic node connection mode' but the "
"websocket server returned no available nodes. Please go to Settings->Node "
"and enter a node manually.";
QMessageBox::warning(this, "Could not connect to a node", msg);
@@ -1295,7 +1302,7 @@ void MainWindow::importTransaction() {
auto result = QMessageBox::warning(this, "Warning", "Using this feature may allow a remote node to associate the transaction with your IP address.\n"
"\n"
"Connect to a trusted node or run Feather over Tor if network level metadata leakage is included in your threat model.",
"Connect to a trusted node or run WOWlet over Tor if network level metadata leakage is included in your threat model.",
QMessageBox::Ok | QMessageBox::Cancel);
if (result == QMessageBox::Ok) {
auto *dialog = new TxImportDialog(this, m_ctx);
+1 -1
View File
@@ -77,7 +77,6 @@ public:
RECEIVE,
COINS,
CALC,
EXCHANGES,
XMRIG
};
@@ -109,6 +108,7 @@ public slots:
void showSendTab();
void showHistoryTab();
void showSendScreen(const CCSEntry &entry);
void suchDonate(const QString address);
void skinChanged(const QString &skinName);
void menuTorClicked();
void onBlockchainSync(int height, int target);
+39 -33
View File
@@ -17,7 +17,7 @@
</sizepolicy>
</property>
<property name="windowTitle">
<string>Feather</string>
<string>WOWlet</string>
</property>
<property name="windowIcon">
<iconset resource="assets.qrc">
@@ -101,9 +101,38 @@
<property name="documentMode">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>SuchWow</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="SuchWowWidget" name="suchWowWidget" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>320</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>CCS</string>
<string>WFS</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="leftMargin">
@@ -125,7 +154,7 @@
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>/r/Monero</string>
<string>/r/Wownero</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="leftMargin">
@@ -272,29 +301,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tabExchange">
<attribute name="icon">
<iconset resource="assets.qrc">
<normaloff>:/assets/images/update.png</normaloff>:/assets/images/update.png</iconset>
</attribute>
<attribute name="title">
<string>Exchange</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
<widget class="QWidget" name="tabXmrRig">
<attribute name="icon">
<iconset resource="assets.qrc">
@@ -435,7 +441,6 @@
<addaction name="actionShow_Home"/>
<addaction name="actionShow_Coins"/>
<addaction name="actionShow_calc"/>
<addaction name="actionShow_Exchange"/>
<addaction name="actionShow_XMRig"/>
</widget>
<addaction name="menuFile"/>
@@ -501,7 +506,7 @@
</action>
<action name="actionDonate_to_Feather">
<property name="text">
<string>Donate to Feather</string>
<string>Donate to WOWlet</string>
</property>
</action>
<action name="actionExport_CSV">
@@ -674,11 +679,6 @@
<string>Import transaction</string>
</property>
</action>
<action name="actionShow_Exchange">
<property name="text">
<string>Show Exchange</string>
</property>
</action>
<action name="actionRescan_spent">
<property name="text">
<string>Rescan spent</string>
@@ -749,6 +749,12 @@
<header>widgets/redditwidget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>SuchWowWidget</class>
<extends>QWidget</extends>
<header>widgets/suchwowwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="assets.qrc"/>

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