forked from Public/monero-gui
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f650e96363 | ||
|
|
91e3d3ae04 | ||
|
|
9f33c77a47 | ||
|
|
7d9c1284f9 | ||
|
|
84899f4884 | ||
|
|
9c9ff13bd2 | ||
|
|
b117b9be61 | ||
|
|
f0ccf29f48 | ||
|
|
3e80d563df | ||
|
|
e4bdff0a0c | ||
|
|
6b82c01891 | ||
|
|
cd1eab45d0 | ||
|
|
511e2f467a | ||
|
|
4941b494cc | ||
|
|
5e949dbc15 | ||
|
|
bdf14a2520 |
@@ -5,7 +5,7 @@ message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
|
|||||||
|
|
||||||
set(VERSION_MAJOR "18")
|
set(VERSION_MAJOR "18")
|
||||||
set(VERSION_MINOR "2")
|
set(VERSION_MINOR "2")
|
||||||
set(VERSION_REVISION "0")
|
set(VERSION_REVISION "2")
|
||||||
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
|
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
|
||||||
|
|
||||||
option(STATIC "Link libraries statically, requires static Qt")
|
option(STATIC "Link libraries statically, requires static Qt")
|
||||||
|
|||||||
@@ -130,11 +130,12 @@ RUN git clone -b VER-2-10-2 --depth 1 https://git.savannah.gnu.org/git/freetype/
|
|||||||
make -j$THREADS install && \
|
make -j$THREADS install && \
|
||||||
rm -rf $(pwd)
|
rm -rf $(pwd)
|
||||||
|
|
||||||
RUN git clone -b R_2_2_9 --depth 1 https://github.com/libexpat/libexpat && \
|
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 && \
|
||||||
cd libexpat/expat && \
|
echo "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16 expat-2.4.8.tar.bz2" | sha256sum -c && \
|
||||||
git reset --hard a7bc26b69768f7fb24f0c7976fae24b157b85b13 && \
|
tar -xf expat-2.4.8.tar.bz2 && \
|
||||||
./buildconf.sh && \
|
rm expat-2.4.8.tar.bz2 && \
|
||||||
./configure --disable-shared --enable-static && \
|
cd expat-2.4.8 && \
|
||||||
|
./configure --enable-static --disable-shared --prefix=/usr && \
|
||||||
make -j$THREADS && \
|
make -j$THREADS && \
|
||||||
make -j$THREADS install && \
|
make -j$THREADS install && \
|
||||||
rm -rf $(pwd)
|
rm -rf $(pwd)
|
||||||
@@ -174,16 +175,6 @@ RUN wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && \
|
|||||||
make -j$THREADS install && \
|
make -j$THREADS install && \
|
||||||
rm -rf $(pwd)
|
rm -rf $(pwd)
|
||||||
|
|
||||||
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 && \
|
|
||||||
echo "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16 expat-2.4.8.tar.bz2" | sha256sum -c && \
|
|
||||||
tar -xf expat-2.4.8.tar.bz2 && \
|
|
||||||
rm expat-2.4.8.tar.bz2 && \
|
|
||||||
cd expat-2.4.8 && \
|
|
||||||
./configure --enable-static --disable-shared --prefix=/usr && \
|
|
||||||
make -j$THREADS && \
|
|
||||||
make -j$THREADS install && \
|
|
||||||
rm -rf $(pwd)
|
|
||||||
|
|
||||||
RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.16.2.tar.gz && \
|
RUN wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.16.2.tar.gz && \
|
||||||
echo "2e32f283820c24c51ca1dd8afecfdb747c7385a137abe865c99db4b257403581 unbound-1.16.2.tar.gz" | sha256sum -c && \
|
echo "2e32f283820c24c51ca1dd8afecfdb747c7385a137abe865c99db4b257403581 unbound-1.16.2.tar.gz" | sha256sum -c && \
|
||||||
tar -xzf unbound-1.16.2.tar.gz && \
|
tar -xzf unbound-1.16.2.tar.gz && \
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ Status of the translations:
|
|||||||
|
|
||||||
Packages are available for
|
Packages are available for
|
||||||
* Arch Linux: [monero-gui](https://www.archlinux.org/packages/community/x86_64/monero-gui/)
|
* Arch Linux: [monero-gui](https://www.archlinux.org/packages/community/x86_64/monero-gui/)
|
||||||
* Debian: See the [whonix/monero-gui repository](https://gitlab.com/whonix/monero-gui#how-to-install-monero-using-apt-get)
|
|
||||||
* Void Linux: `xbps-install -S monero-gui`
|
* Void Linux: `xbps-install -S monero-gui`
|
||||||
* Flatpak: [Monero GUI](https://flathub.org/apps/details/org.getmonero.Monero)
|
* Flatpak: [Monero GUI](https://flathub.org/apps/details/org.getmonero.Monero)
|
||||||
* GuixSD: `guix package -i monero-gui`
|
* GuixSD: `guix package -i monero-gui`
|
||||||
@@ -108,7 +107,7 @@ Packaging for your favorite distribution would be a welcome contribution!
|
|||||||
```
|
```
|
||||||
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
||||||
```
|
```
|
||||||
\* `master` - replace with the desired version tag (e.g. `v0.18.2.0`) to build the release binaries.
|
\* `master` - replace with the desired version tag (e.g. `v0.18.2.2`) to build the release binaries.
|
||||||
3. Prepare build environment
|
3. Prepare build environment
|
||||||
```
|
```
|
||||||
cd monero-gui
|
cd monero-gui
|
||||||
@@ -131,7 +130,7 @@ Packaging for your favorite distribution would be a welcome contribution!
|
|||||||
```
|
```
|
||||||
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
||||||
```
|
```
|
||||||
\* `master` - replace with the desired version tag (e.g. `v0.18.2.0`) to build the release binaries.
|
\* `master` - replace with the desired version tag (e.g. `v0.18.2.2`) to build the release binaries.
|
||||||
3. Prepare build environment
|
3. Prepare build environment
|
||||||
```
|
```
|
||||||
cd monero-gui
|
cd monero-gui
|
||||||
|
|||||||
2
monero
2
monero
Submodule monero updated: 99be9a044f...e06129bb4d
@@ -50,15 +50,6 @@ Rectangle {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
function validUnsigned(s) {
|
|
||||||
if (s.length == 0)
|
|
||||||
return false
|
|
||||||
for (var i = 0; i < s.length; ++i)
|
|
||||||
if ("0123456789".indexOf(s[i]) == -1)
|
|
||||||
return false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
function validRing(str, relative) {
|
function validRing(str, relative) {
|
||||||
var outs = str.split(" ");
|
var outs = str.split(" ");
|
||||||
if (outs.length == 0)
|
if (outs.length == 0)
|
||||||
@@ -109,136 +100,6 @@ Rectangle {
|
|||||||
color: MoneroComponents.Style.defaultFontColor
|
color: MoneroComponents.Style.defaultFontColor
|
||||||
}
|
}
|
||||||
|
|
||||||
MoneroComponents.LabelSubheader {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
textFormat: Text.RichText
|
|
||||||
text: qsTr("Outputs marked as spent") + translationManager.emptyString
|
|
||||||
tooltip: qsTr(
|
|
||||||
"In order to obscure which inputs in a Monero transaction are being spent, a third party should not be able " +
|
|
||||||
"to tell which inputs in a ring are already known to be spent. Being able to do so would weaken the protection " +
|
|
||||||
"afforded by ring signatures. If all but one of the inputs are known to be already spent, then the input being " +
|
|
||||||
"actually spent becomes apparent, thereby nullifying the effect of ring signatures, one of the three main layers " +
|
|
||||||
"of privacy protection Monero uses.<br>" +
|
|
||||||
"To help transactions avoid those inputs, a list of known spent ones can be used to avoid using them in new " +
|
|
||||||
"transactions. Such a list is maintained by the Monero project and is available on the getmonero.org website, " +
|
|
||||||
"and you can import this list here.<br>" +
|
|
||||||
"Alternatively, you can scan the blockchain (and the blockchain of key-reusing Monero clones) yourself " +
|
|
||||||
"using the monero-blockchain-mark-spent-outputs tool to create a list of known spent outputs.<br>"
|
|
||||||
) + translationManager.emptyString
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.TextPlain {
|
|
||||||
textFormat: Text.RichText
|
|
||||||
font.family: MoneroComponents.Style.fontRegular.name
|
|
||||||
font.pixelSize: 14
|
|
||||||
text: qsTr("This sets which outputs are known to be spent, and thus not to be used as privacy placeholders in ring signatures. ") +
|
|
||||||
qsTr("You should only have to load a file when you want to refresh the list. Manual adding/removing is possible if needed.") + translationManager.emptyString
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
Layout.fillWidth: true;
|
|
||||||
color: MoneroComponents.Style.defaultFontColor
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 12
|
|
||||||
|
|
||||||
FileDialog {
|
|
||||||
id: loadBlackballFileDialog
|
|
||||||
title: qsTr("Please choose a file from which to load outputs to mark as spent") + translationManager.emptyString;
|
|
||||||
folder: "file://"
|
|
||||||
nameFilters: ["*"]
|
|
||||||
|
|
||||||
onAccepted: {
|
|
||||||
loadBlackballFileLine.text = walletManager.urlToLocalPath(loadBlackballFileDialog.fileUrl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.LineEdit {
|
|
||||||
id: loadBlackballFileLine
|
|
||||||
Layout.fillWidth: true
|
|
||||||
fontSize: 16
|
|
||||||
placeholderFontSize: 16
|
|
||||||
placeholderText: qsTr("Path to file") + "..." + translationManager.emptyString
|
|
||||||
labelFontSize: 14
|
|
||||||
labelText: qsTr("Filename with outputs to mark as spent") + ":" + translationManager.emptyString
|
|
||||||
copyButton: true
|
|
||||||
readOnly: false
|
|
||||||
}
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 18
|
|
||||||
|
|
||||||
MoneroComponents.StandardButton {
|
|
||||||
id: selectBlackballFileButton
|
|
||||||
text: qsTr("Browse") + translationManager.emptyString
|
|
||||||
enabled: true
|
|
||||||
small: true
|
|
||||||
onClicked: {
|
|
||||||
loadBlackballFileDialog.open()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.StandardButton {
|
|
||||||
id: loadBlackballFileButton
|
|
||||||
text: qsTr("Load") + translationManager.emptyString
|
|
||||||
small: true
|
|
||||||
enabled: !!appWindow.currentWallet && loadBlackballFileLine.text !== ""
|
|
||||||
onClicked: appWindow.currentWallet.blackballOutputs(walletManager.urlToLocalPath(loadBlackballFileDialog.fileUrl), true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
GridLayout {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
columnSpacing: 20
|
|
||||||
|
|
||||||
MoneroComponents.LineEdit {
|
|
||||||
id: blackballOutputAmountLine
|
|
||||||
Layout.fillWidth: true
|
|
||||||
fontSize: 16
|
|
||||||
labelFontSize: 14
|
|
||||||
labelText: qsTr("Or manually mark a single output as spent/unspent:") + translationManager.emptyString
|
|
||||||
placeholderFontSize: 16
|
|
||||||
placeholderText: qsTr("Paste output amount") + "..." + translationManager.emptyString
|
|
||||||
readOnly: false
|
|
||||||
validator: IntValidator { bottom: 0 }
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.LineEdit {
|
|
||||||
id: blackballOutputOffsetLine
|
|
||||||
Layout.fillWidth: true
|
|
||||||
fontSize: 16
|
|
||||||
labelFontSize: 14
|
|
||||||
labelText: " "
|
|
||||||
placeholderFontSize: 16
|
|
||||||
placeholderText: qsTr("Paste output offset") + "..." + translationManager.emptyString
|
|
||||||
readOnly: false
|
|
||||||
validator: IntValidator { bottom: 0 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 18
|
|
||||||
|
|
||||||
MoneroComponents.StandardButton {
|
|
||||||
id: blackballButton
|
|
||||||
text: qsTr("Mark as spent") + translationManager.emptyString
|
|
||||||
small: true
|
|
||||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
|
||||||
onClicked: appWindow.currentWallet.blackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.StandardButton {
|
|
||||||
id: unblackballButton
|
|
||||||
text: qsTr("Mark as unspent") + translationManager.emptyString
|
|
||||||
small: true
|
|
||||||
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
|
|
||||||
onClicked: appWindow.currentWallet.unblackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MoneroComponents.LabelSubheader {
|
MoneroComponents.LabelSubheader {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 24
|
Layout.topMargin: 24
|
||||||
|
|||||||
@@ -1013,46 +1013,6 @@ QString Wallet::getDaemonLogPath() const
|
|||||||
return QString::fromStdString(m_walletImpl->getDefaultDataDir()) + "/bitmonero.log";
|
return QString::fromStdString(m_walletImpl->getDefaultDataDir()) + "/bitmonero.log";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Wallet::blackballOutput(const QString &amount, const QString &offset)
|
|
||||||
{
|
|
||||||
return m_walletImpl->blackballOutput(amount.toStdString(), offset.toStdString());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Wallet::blackballOutputs(const QList<QString> &pubkeys, bool add)
|
|
||||||
{
|
|
||||||
std::vector<std::string> std_pubkeys;
|
|
||||||
foreach (const QString &pubkey, pubkeys) {
|
|
||||||
std_pubkeys.push_back(pubkey.toStdString());
|
|
||||||
}
|
|
||||||
return m_walletImpl->blackballOutputs(std_pubkeys, add);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Wallet::blackballOutputs(const QString &filename, bool add)
|
|
||||||
{
|
|
||||||
QFile file(filename);
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (!file.open(QIODevice::ReadOnly))
|
|
||||||
return false;
|
|
||||||
QList<QString> outputs;
|
|
||||||
QTextStream in(&file);
|
|
||||||
while (!in.atEnd()) {
|
|
||||||
outputs.push_back(in.readLine());
|
|
||||||
}
|
|
||||||
file.close();
|
|
||||||
return blackballOutputs(outputs, add);
|
|
||||||
}
|
|
||||||
catch (const std::exception &e) {
|
|
||||||
file.close();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Wallet::unblackballOutput(const QString &amount, const QString &offset)
|
|
||||||
{
|
|
||||||
return m_walletImpl->unblackballOutput(amount.toStdString(), offset.toStdString());
|
|
||||||
}
|
|
||||||
|
|
||||||
QString Wallet::getRing(const QString &key_image)
|
QString Wallet::getRing(const QString &key_image)
|
||||||
{
|
{
|
||||||
std::vector<uint64_t> cring;
|
std::vector<uint64_t> cring;
|
||||||
|
|||||||
@@ -341,12 +341,6 @@ public:
|
|||||||
QString getDaemonLogPath() const;
|
QString getDaemonLogPath() const;
|
||||||
QString getWalletLogPath() const;
|
QString getWalletLogPath() const;
|
||||||
|
|
||||||
// Blackalled outputs
|
|
||||||
Q_INVOKABLE bool blackballOutput(const QString &amount, const QString &offset);
|
|
||||||
Q_INVOKABLE bool blackballOutputs(const QList<QString> &outputs, bool add);
|
|
||||||
Q_INVOKABLE bool blackballOutputs(const QString &filename, bool add);
|
|
||||||
Q_INVOKABLE bool unblackballOutput(const QString &amount, const QString &offset);
|
|
||||||
|
|
||||||
// Rings
|
// Rings
|
||||||
Q_INVOKABLE QString getRing(const QString &key_image);
|
Q_INVOKABLE QString getRing(const QString &key_image);
|
||||||
Q_INVOKABLE QString getRings(const QString &txid);
|
Q_INVOKABLE QString getRings(const QString &txid);
|
||||||
|
|||||||
@@ -49,17 +49,17 @@ void P2PoolManager::download() {
|
|||||||
QString fileName;
|
QString fileName;
|
||||||
QString validHash;
|
QString validHash;
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-windows-x64.zip";
|
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-windows-x64.zip";
|
||||||
fileName = m_p2poolPath + "/p2pool-v3.0-windows-x64.zip";
|
fileName = m_p2poolPath + "/p2pool-v3.2-windows-x64.zip";
|
||||||
validHash = "102390ca812ede79f26f6a9b7c0ff7cf57b1c37523bee223e8ee10d6bc890e1b";
|
validHash = "5c3c7a43782b2d468c37f8d559ef3095902ffec9a2bab39128412979fc245702";
|
||||||
#elif defined(Q_OS_LINUX)
|
#elif defined(Q_OS_LINUX)
|
||||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-linux-x64.tar.gz";
|
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-linux-x64.tar.gz";
|
||||||
fileName = m_p2poolPath + "/p2pool-v3.0-linux-x64.tar.gz";
|
fileName = m_p2poolPath + "/p2pool-v3.2-linux-x64.tar.gz";
|
||||||
validHash = "a7a0fdd19a0c413cbb2beb7f767cc3f706e26cd0cf3a08c104e312fd7ebd882e";
|
validHash = "d3f47b8300bb693880308f410294593b823fdd4bbe4c6863408167ee3def29d9";
|
||||||
#elif defined(Q_OS_MACOS)
|
#elif defined(Q_OS_MACOS)
|
||||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-macos-x64.tar.gz";
|
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-macos-x64.tar.gz";
|
||||||
fileName = m_p2poolPath + "/p2pool-v3.0-macos-x64.tar.gz";
|
fileName = m_p2poolPath + "/p2pool-v3.2-macos-x64.tar.gz";
|
||||||
validHash = "b648fef621891c16713bf42504677c1def205c4e63c7c51d91f850e57f4a97d6";
|
validHash = "1cc573038d4234afc77464410061587e2b2bd57a4785607de3488a6a5c8ded97";
|
||||||
#endif
|
#endif
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
epee::net_utils::http::http_simple_client http_client;
|
epee::net_utils::http::http_simple_client http_client;
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ Rectangle {
|
|||||||
ListElement { column1: "Ledger Nano S"; column2: "Ledger";}
|
ListElement { column1: "Ledger Nano S"; column2: "Ledger";}
|
||||||
ListElement { column1: "Ledger Nano S Plus"; column2: "Ledger";}
|
ListElement { column1: "Ledger Nano S Plus"; column2: "Ledger";}
|
||||||
ListElement { column1: "Ledger Nano X"; column2: "Ledger";}
|
ListElement { column1: "Ledger Nano X"; column2: "Ledger";}
|
||||||
|
ListElement { column1: "Ledger Stax"; column2: "Ledger";}
|
||||||
ListElement { column1: "Trezor Model T"; column2: "Trezor";}
|
ListElement { column1: "Trezor Model T"; column2: "Trezor";}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user