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_MINOR "2")
|
||||
set(VERSION_REVISION "0")
|
||||
set(VERSION_REVISION "2")
|
||||
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
|
||||
|
||||
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 && \
|
||||
rm -rf $(pwd)
|
||||
|
||||
RUN git clone -b R_2_2_9 --depth 1 https://github.com/libexpat/libexpat && \
|
||||
cd libexpat/expat && \
|
||||
git reset --hard a7bc26b69768f7fb24f0c7976fae24b157b85b13 && \
|
||||
./buildconf.sh && \
|
||||
./configure --disable-shared --enable-static && \
|
||||
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)
|
||||
@@ -174,16 +175,6 @@ RUN wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && \
|
||||
make -j$THREADS install && \
|
||||
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 && \
|
||||
echo "2e32f283820c24c51ca1dd8afecfdb747c7385a137abe865c99db4b257403581 unbound-1.16.2.tar.gz" | sha256sum -c && \
|
||||
tar -xzf unbound-1.16.2.tar.gz && \
|
||||
|
||||
@@ -87,7 +87,6 @@ Status of the translations:
|
||||
|
||||
Packages are available for
|
||||
* 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`
|
||||
* Flatpak: [Monero GUI](https://flathub.org/apps/details/org.getmonero.Monero)
|
||||
* 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
|
||||
```
|
||||
\* `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
|
||||
```
|
||||
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
|
||||
```
|
||||
\* `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
|
||||
```
|
||||
cd monero-gui
|
||||
|
||||
2
monero
2
monero
Submodule monero updated: 99be9a044f...e06129bb4d
@@ -50,15 +50,6 @@ Rectangle {
|
||||
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) {
|
||||
var outs = str.split(" ");
|
||||
if (outs.length == 0)
|
||||
@@ -109,136 +100,6 @@ Rectangle {
|
||||
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 {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 24
|
||||
|
||||
@@ -1013,46 +1013,6 @@ QString Wallet::getDaemonLogPath() const
|
||||
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)
|
||||
{
|
||||
std::vector<uint64_t> cring;
|
||||
|
||||
@@ -341,12 +341,6 @@ public:
|
||||
QString getDaemonLogPath() 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
|
||||
Q_INVOKABLE QString getRing(const QString &key_image);
|
||||
Q_INVOKABLE QString getRings(const QString &txid);
|
||||
|
||||
@@ -49,17 +49,17 @@ void P2PoolManager::download() {
|
||||
QString fileName;
|
||||
QString validHash;
|
||||
#ifdef Q_OS_WIN
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-windows-x64.zip";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.0-windows-x64.zip";
|
||||
validHash = "102390ca812ede79f26f6a9b7c0ff7cf57b1c37523bee223e8ee10d6bc890e1b";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-windows-x64.zip";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.2-windows-x64.zip";
|
||||
validHash = "5c3c7a43782b2d468c37f8d559ef3095902ffec9a2bab39128412979fc245702";
|
||||
#elif defined(Q_OS_LINUX)
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-linux-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.0-linux-x64.tar.gz";
|
||||
validHash = "a7a0fdd19a0c413cbb2beb7f767cc3f706e26cd0cf3a08c104e312fd7ebd882e";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-linux-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.2-linux-x64.tar.gz";
|
||||
validHash = "d3f47b8300bb693880308f410294593b823fdd4bbe4c6863408167ee3def29d9";
|
||||
#elif defined(Q_OS_MACOS)
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.0/p2pool-v3.0-macos-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.0-macos-x64.tar.gz";
|
||||
validHash = "b648fef621891c16713bf42504677c1def205c4e63c7c51d91f850e57f4a97d6";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.2/p2pool-v3.2-macos-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.2-macos-x64.tar.gz";
|
||||
validHash = "1cc573038d4234afc77464410061587e2b2bd57a4785607de3488a6a5c8ded97";
|
||||
#endif
|
||||
QFile file(fileName);
|
||||
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 Plus"; column2: "Ledger";}
|
||||
ListElement { column1: "Ledger Nano X"; column2: "Ledger";}
|
||||
ListElement { column1: "Ledger Stax"; column2: "Ledger";}
|
||||
ListElement { column1: "Trezor Model T"; column2: "Trezor";}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user