Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf qt5 pkg-config
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost@1.85 hidapi openssl zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf qt5 pkg-config
- name: build
run: DEV_MODE=ON make release -j3
- name: test qml
Expand Down Expand Up @@ -134,6 +134,7 @@ jobs:
path: |
/home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui
/home/runner/work/monero-gui/monero-gui/build/release/bin/monerod
/home/runner/work/monero-gui/monero-gui/build/release/bin/i2pd

docker-windows-static:
runs-on: ubuntu-22.04
Expand All @@ -155,6 +156,7 @@ jobs:
path: |
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monerod.exe
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/i2pd.exe

docker-android:
runs-on: ubuntu-22.04
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@
[submodule "external/quirc"]
path = external/quirc
url = https://github.com/dlbeer/quirc/
[submodule "external/i2pd"]
path = external/i2pd
url = https://github.com/PurpleI2P/i2pd
11 changes: 11 additions & 0 deletions Dockerfile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ RUN apt update && \
libpng-dev libpthread-stubs0-dev libsodium-dev libtool-bin libudev-dev libusb-1.0-0-dev mesa-common-dev \
pkg-config python wget xutils-dev

RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get dist-upgrade -y && \
apt-get install -y build-essential && \
apt-get install build-essential software-properties-common -y && \
add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
apt-get update -y && \
apt-get install gcc-9 g++-9 -y && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9 && \
update-alternatives --config gcc

RUN git clone -b xorgproto-2020.1 --depth 1 https://gitlab.freedesktop.org/xorg/proto/xorgproto && \
cd xorgproto && \
git reset --hard c62e8203402cafafa5ba0357b6d1c019156c9f36 && \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ENV SOURCE_DATE_EPOCH=1397818193

RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -y build-essential cmake g++-mingw-w64 gettext git libtool pkg-config \
python && \
python binutils-mingw-w64 libz-mingw-w64-dev && \
rm -rf /var/lib/apt/lists/*

RUN update-alternatives --set x86_64-w64-mingw32-g++ $(which x86_64-w64-mingw32-g++-posix) && \
Expand Down
89 changes: 81 additions & 8 deletions components/NetworkStatusItem.qml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,28 @@ Rectangle {
property var connected: Wallet.ConnectionStatus_Disconnected

function getConnectionStatusString(status) {
let proxyType = persistentSettings.proxyType;
proxyType = proxyType === "TOR" ? "Tor" : proxyType;
let i2pEnabled = proxyType == "I2P";
let torEnabled = proxyType == "TOR";
let anonNetworkEnabled = i2pEnabled || torEnabled;

switch(appWindow.i2pStartStopInProgress) {
case 1:
return qsTr("Connecting to I2P");
case 2:
return qsTr("Stopping I2P");
default:
break;
}
switch(appWindow.torStartStopInProgress) {
case 1:
return qsTr("Connecting to Tor");
case 2:
return qsTr("Stopping Tor");
default:
break;
}
switch (appWindow.daemonStartStopInProgress)
{
case 1:
Expand All @@ -50,21 +72,64 @@ Rectangle {
}
switch (status) {
case Wallet.ConnectionStatus_Connected:
if (!appWindow.daemonSynced)
if (!appWindow.daemonSynced) {
if (appWindow.walletMode <= 1) {
if (appWindow.bootstrapNodeStatus == 1) {
if (anonNetworkEnabled)
return qsTr("Searching " + proxyType + " node");

return qsTr("Searching node");
}

if (anonNetworkEnabled) {
if (appWindow.bootstrapNodeStatus == 0)
return qsTr("No " + proxyType + " nodes found")
}
}

if (torEnabled)
return qsTr("Synchronizing (Tor)") + translationManager.emptyString;
if (i2pEnabled)
return qsTr("Synchronizing (I2P)") + translationManager.emptyString;

return qsTr("Synchronizing");
}

let remoteNodeLabel = "Remote node";
if (torEnabled)
remoteNodeLabel = "Remote Tor node";
if (i2pEnabled)
remoteNodeLabel = "Remote I2P node";

if (persistentSettings.useRemoteNode && persistentSettings.allowRemoteNodeMining && appWindow.isMining)
return qsTr("Remote node") + " + " + qsTr("Mining");
return qsTr(remoteNodeLabel) + " + " + qsTr("Mining");
if (persistentSettings.useRemoteNode)
return qsTr("Remote node");
return appWindow.isMining ? qsTr("Connected") + " + " + qsTr("Mining"): qsTr("Connected");
return qsTr(remoteNodeLabel);
let connectedLabel = "Connected";

if (torEnabled)
connectedLabel = "Connected (Tor)";
if (i2pEnabled)
connectedLabel = "Connected (I2P)";

return appWindow.isMining ? qsTr(connectedLabel) + " + " + qsTr("Mining"): qsTr(connectedLabel);
case Wallet.ConnectionStatus_WrongVersion:
return qsTr("Wrong version");
case Wallet.ConnectionStatus_Disconnected:
if (appWindow.walletMode <= 1) {
return qsTr("Searching node") + translationManager.emptyString;
if (torEnabled)
return qsTr("Connecting to Tor") + translationManager.emptyString;
if (i2pEnabled)
return qsTr("Connecting to I2P") + translationManager.emptyString;

return qsTr("Starting the node") + translationManager.emptyString;
}
return qsTr("Disconnected");
case Wallet.ConnectionStatus_Connecting:
if (torEnabled)
return qsTr("Connecting with Tor") + translationManager.emptyString;
if (i2pEnabled)
return qsTr("Connecting with I2P") + translationManager.emptyString;
return qsTr("Connecting");
default:
return qsTr("Invalid connection status");
Expand Down Expand Up @@ -95,8 +160,12 @@ Rectangle {
if(appWindow.isMining) {
return "qrc:///images/miningxmr.png"
} else if(item.connected == Wallet.ConnectionStatus_Connected || !MoneroComponents.Style.blackTheme) {
if (persistentSettings.proxyType === "TOR") return "qrc:///images/tor.png"
else if (persistentSettings.proxyType === "I2P") return "qrc:///images/i2p.png"
return "qrc:///images/lightning.png"
} else {
if (persistentSettings.proxyType === "TOR") return "qrc:///images/tor-white.png"
else if (persistentSettings.proxyType === "I2P") return "qrc:///images/i2p-white.png"
return "qrc:///images/lightning-white.png"
}
}
Expand Down Expand Up @@ -190,20 +259,24 @@ Rectangle {
onClicked: {
const callback = function(result) {
refreshMouseArea.visible = true;
appWindow.bootstrapNodeStatus = 0;

if (result) {
appWindow.showStatusMessage(qsTr("Successfully switched to another public node"), 3);
appWindow.bootstrapNodeStatus = 2;
appWindow.currentWallet.refreshHeightAsync();
} else {
appWindow.showStatusMessage(qsTr("Failed to switch public node"), 3);
}
};

daemonManager.sendCommandAsync(
["set_bootstrap_daemon", "auto"],
daemonManager.setBootstrapNodeAsync(
appWindow.currentWallet.nettype,
persistentSettings.proxyType,
persistentSettings.blockchainDataDir,
callback);


appWindow.bootstrapNodeStatus = 1;
refreshMouseArea.visible = false;
appWindow.showStatusMessage(qsTr("Switching to another public node"), 3);
}
Expand Down
33 changes: 33 additions & 0 deletions external/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,36 @@ add_library(quirc STATIC
)
set_target_properties(quirc PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(quirc PUBLIC quirc/lib)

set(CMAKE_CXX_STANDARD 17)
option(WITH_LIBRARY "" OFF)

if (MINGW)
set(WITH_STATIC ON)
set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
set(ZLIB_INCLUDE_DIR /usr/x86_64-w64-mingw32/include)
set(ZLIB_LIBRARY /usr/x86_64-w64-mingw32/lib/libz.a)
endif()

if (STATIC AND NOT MINGW)
set(Boost_USE_STATIC_RUNTIME ON)
endif()

if (APPLE)
set(HOMEBREW 1)
endif()

add_subdirectory(i2pd/build)

if(WIN32)
set(I2PD_BINARY ${CMAKE_BINARY_DIR}/external/i2pd/build/i2pd.exe)
set(I2PD_BIN ${CMAKE_BINARY_DIR}/bin/i2pd.exe)
else()
set(I2PD_BINARY ${CMAKE_BINARY_DIR}/external/i2pd/build/i2pd)
set(I2PD_BIN ${CMAKE_BINARY_DIR}/bin/i2pd)
endif()

add_custom_target(copy_i2pd ALL
DEPENDS ${I2PD_BINARY}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin
COMMAND ${CMAKE_COMMAND} -E copy ${I2PD_BINARY} ${I2PD_BIN})
1 change: 1 addition & 0 deletions external/i2pd
Submodule i2pd added at e8d59c
Binary file added images/i2p-white.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/i2p-white@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/i2p.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/i2p@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/tor-white.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/tor-white@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/tor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/tor@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
79 changes: 79 additions & 0 deletions js/nodes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"mainnet": {
"tor": [
"loveanvthlsepingenr7opdqy6nlhn5jidwvzzxfmwsw2rry5mn2gfqd.onion:18089",
"dtrnd4in2igrtfx2c45ghf2drns3doddmcsfy6b5gjw5iinukd33slqd.onion:18081",
"3vjfahy3dk4znsicambgluiaa5whqb364skmsq5os7bnxjhbavbawqad.onion:18089",
"ip4zpbps7unk6xhlanqtw24f75akfbl3upeckfjqjks7ftfnk4i73oid.onion:18081",
"cakexmrl7bonq7ovjka5kuwuyd3f7qnkz6z6s6dmsy3uckwra7bvggyd.onion:18081",
"qz43zul2x56jexzoqgkx2trzwcfnr6l3hbtfcfx54g4r3eahy3bssjyd.onion:18089",
"majesticrepik35vnngouksfl7jiwf6sj7s2doj3bvdffq27tgqoeayd.onion:18089",
"plowsof3t5hogddwabaeiyrno25efmzfxyro2vligremt7sxpsclfaid.onion:18089",
"plowsoffjexmxalw73tkjmf422gq6575fc7vicuu4javzn2ynnte6tyd.onion:18089",
"plowsofe6cleftfmk2raiw5h2x66atrik3nja4bfd3zrfa2hdlgworad.onion:18089",
"ravfxmrqgd4j2o2gdc2yaij2wcmkcflu2rdnzhng5htk5hgnh6gmyeid.onion:18081",
"ravfxmrzi3eet62s4nkuu5sgpq6otgtffluk3ylb2kuvimtb34sonryd.onion:18089",
"rucknium757bokwv3ss35ftgc3gzb7hgbvvglbg3hisp7tsj2fkd2nyd.onion:18081",
"mhfsxznn5pi4xuxohj5k7unqp73sa6d44mbeewbpxnm25z3wzfogcfyd.onion:18081",
"7inib34hqn2ocmlaaxjshdavbdn5w5rfdff735lbz33765j2pz3tn4ad.onion:18081",
"sfprpc2fws6ltnq4hyr7lvpul3nank5layd7q7tyc5h4gy4h77gtabad.onion:18089",
"4kzkwyooeth3lxajxs7pmcriq6cgvnbex2vojum2uqflczsci4dlreyd.onion:18089",
"trocadorh642rks54sxufwy4kys23mrsgof3axowyro5ljb2dkgdlmad.onion:18089",
"moneroxmrxw44lku6qniyarpwgznpcwml4drq7vb24ppatlcg4kmxpqd.onion:18089",
"a6orjo6aiotog3njppja5jwnd3rexzfjiejxnojvw74p3kma45fundid.onion:18089"
],
"i2p": [
"ofrnxmr5ltaazarexs3damrcsldc5p6qlcos3vk25cwdgyjvrueq.b32.i2p:18089",
"vdmnehdjkpkg57nthgnjfuaqgku673r5bpbqg56ix6fyqoywgqrq.b32.i2p:18089",
"uqj3aphckqtjsitz7kxx5flqpwjlq5ppr3chazfued7xucv3nheq.b32.i2p:18089",
"ugnlcdciyhghh2zert7c3kl4biwkirc43ke33jiy5slnd3mv2trq.b32.i2p:18089",
"5dmhmmaff5mqkgmz4haq5w2wrgobhelrat7lvbt27okojkzbx6hq.b32.i2p:18089"
],
"clearnet": [
"node3-us.monero.love:18081",
"node2-eu.monero.love:18089",
"xmr-node.cakewallet.com:18081",
"singapore.node.xmr.pm:18089",
"node.majesticbank.is:18089",
"node.majesticbank.at:18089",
"node.monerodevs.org:18089",
"node2.monerodevs.org:18089",
"node3.monerodevs.org:18089",
"ravfx.its-a-node.org:18081",
"ravfx2.its-a-node.org:18089",
"rucknium.me:18081",
"selsta1.featherwallet.net:18081",
"selsta2.featherwallet.net:18081",
"node.sethforprivacy.com:18089",
"xmr.stormycloud.org:18089",
"node.trocador.app:18089",
"node.xmr.ru:18081"
]
},
"testnet": {
"tor": [
"plowsof3t5hogddwabaeiyrno25efmzfxyro2vligremt7sxpsclfaid.onion:28089",
"plowsoffjexmxalw73tkjmf422gq6575fc7vicuu4javzn2ynnte6tyd.onion:28089"
],
"clearnet": [
"node2.sethforprivacy.com:28089",
"node.sethforprivacy.com:28089",
"testnet.xmr-tw.org:28081",
"singapore.node.xmr.pm:28081"
]
},
"stagenet": {
"tor": [
"ct36dsbe3oubpbebpxmiqz4uqk6zb6nhmkhoekileo4fts23rvuse2qd.onion:38081",
"plowsof3t5hogddwabaeiyrno25efmzfxyro2vligremt7sxpsclfaid.onion:38089",
"plowsoffjexmxalw73tkjmf422gq6575fc7vicuu4javzn2ynnte6tyd.onion:38089"
],
"clearnet": [
"node.sethforprivacy.com:38089",
"node2.sethforprivacy.com:38089",
"xmr-lux.boldsuck.org:38081",
"stagenet.xmr-tw.org:38081",
"singapore.node.xmr.pm:38081"
]
}
}
Loading
Loading