Compare commits

..

1 Commits

Author SHA1 Message Date
Riccardo Spagni
ea8e3d0267 Merge pull request #841
2bc86d1 monero submodule: use release-v0.11.0.0 branch (Jaquee)
2017-09-25 17:50:24 +02:00
31 changed files with 487 additions and 2575 deletions

View File

@@ -475,14 +475,6 @@ Rectangle {
panel.settingsClicked()
}
}
Rectangle {
visible: settingsButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
height: 1
}
}

View File

@@ -10,11 +10,6 @@ Copyright (c) 2014-2017, The Monero Project
- Github: [https://github.com/monero-project/monero-core](https://github.com/monero-project/monero-core)
- IRC: [#monero-dev on Freenode](irc://chat.freenode.net/#monero-dev)
## Vulnerability Response
- Our [Vulnerability Response Process](https://github.com/monero-project/meta/blob/master/VULNERABILITY_RESPONSE_PROCESS.md) encourages responsible disclosure
- We are also available via [HackerOne](https://hackerone.com/monero)
## Introduction
Monero is a private, secure, untraceable, decentralised digital currency. You are your bank, you control your funds, and nobody can trace your transfers unless you allow them to do so.
@@ -61,8 +56,7 @@ See [LICENSE](LICENSE).
Packages are available for
* Arch Linux via AUR: [monero-wallet-qt](https://aur.archlinux.org/packages/monero-wallet-qt/)
* Void Linux: xbps-install -S monero-core
* Arch Linux via AUR: [monero-core-git](https://aur.archlinux.org/packages/monero-core-git/)
Packaging for your favorite distribution would be a welcome contribution!

View File

@@ -0,0 +1,147 @@
# Monero GUI Vulnerability Response Process
## Preamble
Researchers/Hackers: while you research/hack, we ask that you please refrain from committing the following:
- Denial of Service / Active exploiting against the network
- Social Engineering of Monero staff or contractors
- Any physical or electronic attacks against Monero community property and/or data centers
## I. Points of Contact for Security Issues
```
ric@getmonero.org
BDA6 BD70 42B7 21C4 67A9 759D 7455 C5E3 C0CD CEB9
luigi1111@getmonero.org
8777 AB8F 778E E894 87A2 F8E7 F4AC A018 3641 E010
moneromooo.monero@gmail.com
48B0 8161 FBDA DFE3 93AD FC3E 686F 0745 4D6C EFC3
jaquee.monero@gmail.com
D21E 9CC1 2F51 C4FE A9E0 52FF 384E 52B0 9F45 DC39
```
## II. Security Response Team
- fluffypony
- luigi1111
- moneromooo
- Jaquee
## III. Incident Response
1. Researcher submits report via one or both of two methods:
- a. Email
- b. [HackerOne](https://hackerone.com/monero)
2. Response Team designates a Response Manager who is in charge of the particular report based on availability and/or knowledge-set
3. In no more than 3 working days, Response Team should gratefully respond to researcher using only encrypted, secure channels
4. Response Manager makes inquiries to satisfy any needed information to confirm if submission is indeed a vulnerability
- a. If submission proves to be vulnerable, proceed to next step
- b. If not vulnerable:
- i. Response Manager responds with reasons why submission is not a vulnerability
- ii. Response Manager moves discussion to a new or existing ticket on GitHub if necessary
5. If over email, Response Manager opens a HackerOne issue for new submission
6. Establish severity of vulnerability:
- a. HIGH: impacts network as a whole, has potential to break entire network, results in the loss of monero, or is on a scale of great catastrophe
- b. MEDIUM: impacts individual nodes, wallets, or must be carefully exploited
- c. LOW: is not easily exploitable
7. Respond according to the severity of the vulnerability:
- a. HIGH severities must be notified on website and reddit /r/Monero within 3 working days of classification
- i. The notification should list appropriate steps for users to take, if any
- ii. The notification must not include any details that could suggest an exploitation path
- iii. The latter takes precedence over the former
- b. MEDIUM and HIGH severities will require a Point Release
- c. LOW severities will be addressed in the next Regular Release
8. Response Team applies appropriate patch(es)
- a. Response Manager designates a PRIVATE git "hotfix branch" to work in
- b. Patches are reviewed with the researcher
- c. Any messages associated with PUBLIC commits during the time of review should not make reference to the security nature of the PRIVATE branch or its commits
- d. Vulnerability announcement is drafted
- i. Include the severity of the vulnerability
- ii. Include all vulnerable systems/apps/code
- iii. Include solutions (if any) if patch cannot be applied
- e. Release date is discussed
9. At release date, Response Team coordinates with developers to finalize update:
- a. Response Manager propagates the "hotfix branch" to trunk
- b. Response Manager includes vulnerability announcement draft in release notes
- c. Proceed with the Point or Regular Release
## IV. Post-release Disclosure Process
1. Response Team has 90 days to fulfill all points within section III
2. If the Incident Response process in section III is successfully completed:
- a. Response Manager contacts researcher and asks if researcher wishes for credit
- b. Finalize vulnerability announcement draft and include the following:
- i. Project name and URL
- ii. Versions known to be affected
- iii. Versions known to be not affected (for example, the vulnerable code was introduced in a recent version, and older versions are therefore unaffected)
- iv. Versions not checked
- v. Type of vulnerability and its impact
- vi. If already obtained or applicable, a CVE-ID
- vii. The planned, coordinated release date
- viii. Mitigating factors (for example, the vulnerability is only exposed in uncommon, non-default configurations)
- ix. Workarounds (configuration changes users can make to reduce their exposure to the vulnerability)
- x. If applicable, credits to the original reporter
- c. Release finalized vulnerability announcement on website and reddit /r/Monero
- d. For HIGH severities, release finalized vulnerability announcement on well-known mailing lists:
- i. oss-security@lists.openwall.com
- ii. bugtraq@securityfocus.com
- e. If applicable, developers request a CVE-ID
- i. The commit that applied the fix is made reference too in a future commit and includes a CVE-ID
3. If the Incident Response process in section III is *not* successfully completed:
- a. Response Team and developers organize an IRC meeting to discuss why/what points in section III were not resolved and how the team can resolve them in the future
- b. Any developer meetings immediately following the incident should include points made in section V
- c. If disputes arise about whether or when to disclose information about a vulnerability, the Response Team will publicly discuss the issue via IRC and attempt to reach consensus
- d. If consensus on a timely disclosure is not met (no later than 90 days), the researcher (after 90 days) has every right to expose the vulnerability to the public
## V. Incident Analysis
1. Isolate codebase
- a. Response Team and developers should coordinate to work on the following:
- i. Problematic implementation of classes/libraries/functions, etc.
- ii. Focus on apps/distro packaging, etc.
- iii. Operator/config error, etc.
2. Auditing
- a. Response Team and developers should coordinate to work on the following:
- i. Auditing of problem area(s) as discussed in point 1
- ii. Generate internal reports and store for future reference
- iii. If results are not sensitive, share with the public via IRC or GitHub
3. Response Team has 45 days following completion of section III to ensure completion of section V
## VI. Resolutions
Any further questions or resolutions regarding the incident(s) between the researcher and response + development team after public disclosure can be addressed via the following:
- [GitHub](https://github.com/monero-project/monero/issues/)
- [HackerOne](https://hackerone.com/monero)
- [Reddit /r/Monero](https://reddit.com/r/Monero/)
- IRC
- Email
## VII. Continuous Improvement
1. Response Team and developers should hold annual meetings to review the previous year's incidents
2. Response Team or designated person(s) should give a brief presentation, including:
- a. Areas of Monero affected by the incidents
- b. Any network downtime or monetary cost (if any) of the incidents
- c. Ways in which the incidents could have been avoided (if any)
- d. How effective this process was in dealing with the incidents
3. After the presentation, Response Team and developers should discuss:
- a. Potential changes to development processes to reduce future incidents
- b. Potential changes to this process to improve future responses

View File

@@ -54,7 +54,7 @@ if [[ $platform == *bsd* ]]; then
fi
# build libwallet
./get_libwallet_api.sh $BUILD_TYPE
$SHELL get_libwallet_api.sh $BUILD_TYPE
# build zxcvbn
$MAKE -C src/zxcvbn-c || exit

View File

@@ -116,7 +116,7 @@ Item {
Row {
id: row2
spacing: bar.width / 14
spacing: ((bar.width - 8) / 2) / 4
Repeater {
model: 4
@@ -125,7 +125,7 @@ Item {
id: delegateItem2
currentX: x + row2.x
currentIndex: index
mainTick: currentIndex === 0
mainTick: currentIndex === 0 || currentIndex === 3 || currentIndex === 13
Component.onCompleted: {
row.positions[currentIndex] = delegateItem2
}
@@ -135,7 +135,7 @@ Item {
Row {
id: row1
spacing: bar.width / 14
spacing: ((bar.width - 8) / 2) / 10
Repeater {
model: 10
@@ -144,7 +144,7 @@ Item {
id: delegateItem1
currentX: x + row1.x
currentIndex: index + 4
mainTick: currentIndex === 13
mainTick: currentIndex === 0 || currentIndex === 3 || currentIndex === 13
Component.onCompleted: {
row.positions[currentIndex] = delegateItem1
}

View File

@@ -53,6 +53,7 @@ Item {
color: "#4A4949"
text: {
if(currentIndex === 0) return qsTr("Normal") + translationManager.emptyString
if(currentIndex === 3) return qsTr("Medium") + translationManager.emptyString
if(currentIndex === 13) return qsTr("High") + translationManager.emptyString
return ""
}
@@ -64,7 +65,7 @@ Item {
anchors.topMargin: 14
width: 1
color: "#DBDBDB"
height: 8
height: currentIndex === 8 ? 16 : 8
visible: !parent.mainTick
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -1,14 +1,10 @@
; Monero Helium Hydra GUI Wallet Installer for Windows
; Monero GUI Wallet Beta 2 Installer for Windows
; Copyright (c) 2014-2017, The Monero Project
; See LICENSE
[Setup]
AppName=Monero GUI Wallet
; For InnoSetup this is the property that uniquely identifies the application as such
; Thus it's important to keep this stable over releases
; With a different "AppName" InnoSetup would treat a mere update as a completely new application and thus mess up
AppVersion=0.11.1.0
AppVersion=0.10.3.1
DefaultDirName={pf}\Monero GUI Wallet
DefaultGroupName=Monero GUI Wallet
UninstallDisplayIcon={app}\monero-wallet-gui.exe
@@ -40,7 +36,7 @@ Source: "FinishImage.bmp"; Flags: dontcopy
Source: "bin\monero-wallet-gui.exe"; DestDir: "{app}"; Flags: comparetimestamp
; Monero GUI wallet log file
; The GUI wallet does not have the "--log-file" command-line option of the CLI wallet and insists to put the .log beside the .exe
; Beta 2 does not have the "--log-file" command-line option of the CLI wallet and insists to put the .log beside the .exe
; so pre-create the file and give the necessary permissions to the wallet to write into it
Source: "monero-wallet-gui.log"; DestDir: "{app}"; Flags: comparetimestamp; Permissions: users-modify
@@ -59,9 +55,7 @@ Source: "monero-daemon.bat"; DestDir: "{app}"; Flags: comparetimestamp;
; Monero blockchain utilities
Source: "bin\monero-blockchain-export.exe"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\monero-blockchain-import.exe"; DestDir: "{app}"; Flags: comparetimestamp
; was present in 0.10.3.1, not present anymore in 0.11.1.0
; Source: "bin\monero-utils-deserialize.exe"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\monero-utils-deserialize.exe"; DestDir: "{app}"; Flags: comparetimestamp
; Various .qm files for translating the wallet UI "on the fly" into all supported languages
Source: "bin\translations\*"; DestDir: "{app}\translations"; Flags: recursesubdirs comparetimestamp
@@ -167,8 +161,7 @@ Source: "bin\libicuuc57.dll"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\libintl-8.dll"; DestDir: "{app}"; Flags: comparetimestamp
; JasPer, support for JPEG-2000
; was present in 0.10.3.1, not present anymore in 0.11.1.0
; Source: "bin\libjasper-1.dll"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\libjasper-1.dll"; DestDir: "{app}"; Flags: comparetimestamp
; libjpeg, C library for reading and writing JPEG image files
Source: "bin\libjpeg-8.dll"; DestDir: "{app}"; Flags: comparetimestamp
@@ -235,7 +228,7 @@ begin
// Additional wizard page for entering a special blockchain location
blockChainDefaultDir := ExpandConstant('{commonappdata}\bitmonero');
s := 'The default folder to store the Monero blockchain is ' + blockChainDefaultDir;
s := s + '. As this will need more than 30 GB of free space, you may want to use a folder on a different drive.';
s := s + '. As this will need up to 20 GB of free space, you may want to use a folder on a different drive.';
s := s + ' If yes, specify that folder here.';
BlockChainDirPage := CreateInputDirPage(wpSelectDir,
@@ -341,10 +334,7 @@ Name: "{group}\Uninstall GUI Wallet"; Filename: "{uninstallexe}"
; and insists on displaying ALL icons on one single level
Name: "{group}\Utilities\Monero Daemon"; Filename: "{app}\monerod.exe"; Parameters: {code:DaemonFlags}
Name: "{group}\Utilities\Read Me"; Filename: "{app}\ReadMe.htm"
; CLI wallet: Needs a working directory ("Start in:") set in the icon, because with no such directory set
; it tries to create new wallets without a path given in the probably non-writable program folder and will abort with an error
Name: "{group}\Utilities\Textual (CLI) Wallet"; Filename: "{app}\monero-wallet-cli.exe"; WorkingDir: "{userdocs}\Monero\wallets"
Name: "{group}\Utilities\Textual (CLI) Wallet"; Filename: "{app}\monero-wallet-cli.exe"
; Icons for troubleshooting problems / testing / debugging
; To show that they are in some way different (not for everyday use), make them visually different

View File

@@ -1,28 +1,26 @@
# Monero GUI Wallet Windows Installer #
# Monero GUI Wallet Beta 2 Windows Installer #
Copyright (c) 2014-2017, The Monero Project
## Introduction ##
This is a *Inno Setup* script `Monero.iss` plus some related files
that allows you to build a standalone Windows installer (.exe) for
the GUI wallet that comes with the Helium Hydra release of Monero.
This is a *Inno Setup* script `Monero.iss` plus some related files that
allows you to build a standalone Windows installer (.exe) for the
Monero GUI Wallet Beta 2.
This turns the GUI wallet into a more or less standard Windows program,
This turns the GUI Wallet into a more or less standard Windows program,
by default installed into a subdirectory of `C:\Program Files`, a
program group with some icons in the *Start* menu, and automatic
uninstall support. It helps lowering the "barrier to entry"
somewhat, especially for less technically experienced users of
Monero.
uninstall support. It helps lower the "barrier to entry" somewhat,
especially for less technically experienced users of Monero.
As the setup script in file [Monero.iss](Monero.iss) has to list every
single file of the GUI wallet package to install by name,
this version of the script only works with exactly the GUI wallet
for Monero release *Helium Hydra* that you find on
single file of the GUI Wallet package to install by name, this version
of the script only works with exactly the GUI Beta 2 that you find on
[the official download page](https://getmonero.org/downloads/).
But of course it will be easy to modify the script for future
versions of the GUI wallet.
But of course it will be easy to modify the script for future versions
of the GUI Wallet.
## License ##
@@ -30,15 +28,14 @@ See [LICENSE](LICENSE).
## Building ##
You can only build on Windows, and the result is always a
Windows .exe file that can act as a standalone installer for the
Helium Hydra GUI wallet.
You can only build on Windows, and the result is always a Windows .exe
file that can act as a standalone installer for the GUI Wallet Beta 2.
The build steps in detail:
1. Install *Inno Setup*. You can get it from [here](http://www.jrsoftware.org/isdl.php)
2. Get the Inno Setup script plus related files by cloning the whole [monero-core GitHub repository](https://github.com/monero-project/monero-core); you will only need the files in the installer directory `installers\windows` however
3. The setup script is written to take the GUI wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI wallet from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the `monero-gui-0.11.1.0` directory to this `bin` subdirectory
4. Start Inno Setup, load `Monero.iss` and compile it
2. Get the Inno Setup script plus related files by cloning the whole [monero-core](https://github.com/monero-project/monero-core) repository; you will only need the files in the installer directory `installers\windows` however
3. The setup script is written to take the GUI Wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI Wallet Beta 2 from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the `monero-gui-0.10.3.1-beta2` directory to this `bin` subdirectory
4. Start Inno Setup, load `Monero.iss` and compile it.
5. The result i.e. the finished installer will be the file `mysetup.exe` in the `installers\windows\Output` subdirectory

View File

@@ -1,13 +1,13 @@
<html>
<head>
<title>Monero Helium Hydra GUI Wallet</title>
<title>Monero GUI Wallet Beta 2</title>
</head>
<body style="font-family: Arial, Helvetica, sans-serif">
<h1>Monero Helium Hydra GUI Wallet</h1>
<h1>Monero GUI Wallet Beta 2</h1>
<p>Copyright (c) 2014-2017, The Monero Project<br>
Date: September 19, 2017</p>
Date: June 28, 2017</p>
<h2>Preface</h2>
@@ -23,8 +23,8 @@
<h2>Content of the Package</h2>
<p>You just installed the <i>Monero GUI wallet</i> for Windows, release Helium Hydra, more exact version 0.11.1.0.
The wallet enables you to send and receive Moneroj in a secure and very private way.
<p>You just installed the Beta 2 of the <i>Monero GUI Wallet</i> for Windows, more exact version 0.10.3.1. The wallet
enables you to send and receive moneroj in a secure and very private way.
</p>
<p>Also included is the <i>Monero daemon</i>, so you have everything now to run a so-called <i>full node</i>
@@ -33,22 +33,7 @@
<p>For checking whether there are already newer versions of this package you can go to the
<a href="https://getmonero.org/downloads/">Downloads</a> page on <a href="https://getmonero.org/home">getmonero.org</a>,
the official Monero site.</p>
<h2>Upgrading</h2>
<p>If you have already a release of the GUI wallet software on your computer that was installed with the help
of this installer (in an earlier version), upgrading is easy: Just run the new installer; there is no need to
uninstall the old Monero release first.</p>
<p>But if you run a release of the GUI wallet software that you downloaded as a .zip file and unzipped into a
folder, if you "installed it manually" so to say, don't try to upgrade by pointing the installer to that folder,
because this might lead to problems e.g. if you try to uninstall everything later.</p>
<p>It's better to let the installer put the software into another folder and then delete the old folder, either
outright or after moving away any additional files that you may have stored there. (If you did not change
default locations for wallets and the blockchain, you don't have to worry about them, they won't be in that
particular folder, but elsewhere "in safety".)</p>
the official Monero site.</p>
<h2>Access to the Blockchain</h2>
@@ -61,7 +46,7 @@
provides the most security and privacy possible for you.</p>
<p>However if your Internet access makes it difficult to run a full node, or if you have simply no room to store
the blockchain locally (over 30 GB in fall 2017, and of course growing), you can compromise and try to connect
the blockchain locally (over 17 GB in summer 2017, and of course growing), you can compromise and try to connect
to a remote node. One way of finding such a node is checking
<a href="https://moneroworld.com/pages/nodes.html">this page</a>.
</p>
@@ -105,13 +90,21 @@
<h2>Troubleshooting</h2>
<p>The Monero software and especially the GUI wallet are "work in progress", and sometimes things go wrong.</p>
<p>The Monero software and especially the GUI wallet are "work in progress", as you can expect seeing the word
<i>Beta</i> in the name of the package, and sometimes things go wrong.</p>
<p>Please note that despite any technical problems that you may encounter your moneroj are almost always safe: You may
not be able to move them or you even may not see how many you currently have, but you most probably won't loose any.
But do remember that the seed needed to re-create the wallet <b>is</b> critical, however: <b>Never loose your
seed!</b></p>
<p>There is a <b>bug</b> in this beta of the GUI wallet that triggers if it is installed in a path that contains spaces /
blank characters, like the default location for Windows programs <i>C:\Program Files</i> unfortunately does.
Symptoms are problems in the communication between the wallet and the daemon, e.g. the wallet not "seeing" the
daemon and then not knowing whether it is "synchronized" with the network and thus ready to work or not. You can
avoid these problems by starting the daemon yourself, with the help of the <i>Monero Daemon</i> icon in the
<i>Utilities</i> sub-folder of the Monero program group.</p>
<p>In the <i>Utilities</i> sub-folder there are several more icons that may help you to solve problems.
These are the icons with a <i>x</i> in front and the name <i>(in parenthesis)</i> to make them visually stand
apart from the "normal" ones because you will probably only need them in case of trouble, but not during normal
@@ -149,15 +142,15 @@
<tr>
<td><i>x (Check GUI Wallet Log)</i></td>
<td>Open the log with status and error messages of the GUI wallet program in Notepad;
experienced people have a chance to diagnose technical problems with the wallet,
usually by looking at the last few lines of this log</td>
experienced people have a chance to diagnose technical problems with the wallet by looking at the last few lines
of this log</td>
</tr>
<tr>
<td><i>x (Check Daemon Log)</i></td>
<td>
Open the log with status and error messages of the daemon in Notepad; again, the last few
lines of this (possible very long) log are usually the most important for troubleshooting
lines of this (possible very long) log are the most important for troubleshooting
</td>
</tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -37,5 +37,4 @@ List of available languages for your wallet's seed:
<language display_name="繁體中文 (台灣)" locale="zh-tw_CN" wallet_language="English" flag="/lang/flags/taiwan.png" qs="none"/>
<language display_name="עברית" locale="he_HE" wallet_language="English" flag="/lang/flags/israel.png" qs="none"/>
<language display_name="한국어" locale="ko_KO" wallet_language="English" flag="/lang/flags/south_korea.png" qs="none"/>
<language display_name="Română" locale="ro_RO" wallet_language="English" flag="/lang/flags/romania.png" qs="none"/>
</languages>

View File

@@ -880,7 +880,7 @@ ApplicationWindow {
property bool allow_background_mining : false
property bool miningIgnoreBattery : true
property bool testnet: false
property string daemon_address: testnet ? "localhost:28081" : "localhost:18081"
property string daemon_address: "localhost:18081"
property string payment_id
property int restore_height : 0
property bool is_recovering : false
@@ -912,25 +912,13 @@ ApplicationWindow {
id: transactionConfirmationPopup
onAccepted: {
close();
transactionConfirmationPasswordDialog.onAcceptedCallback = function() {
if(appWindow.password === transactionConfirmationPasswordDialog.password){
// Save transaction to file if view only wallet
if(viewOnly) {
saveTxDialog.open();
} else {
handleTransactionConfirmed()
}
} else {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Wrong password");
informationPopup.open()
informationPopup.onCloseCallback = function() {
transactionConfirmationPasswordDialog.open()
}
}
transactionConfirmationPasswordDialog.password = ""
}
transactionConfirmationPasswordDialog.open()
// Save transaction to file if view only wallet
if(viewOnly) {
saveTxDialog.open();
return;
} else
handleTransactionConfirmed()
}
}
@@ -980,15 +968,6 @@ ApplicationWindow {
}
PasswordDialog {
id: transactionConfirmationPasswordDialog
property var onAcceptedCallback
onAccepted: {
if (onAcceptedCallback())
onAcceptedCallback();
}
}
DaemonManagerDialog {
id: daemonManagerDialog
onRejected: {

View File

@@ -91,8 +91,7 @@ LIBS += -L$$WALLET_ROOT/lib \
-lwallet_merged \
-lepee \
-lunbound \
-leasylogging \
-lreadline \
-leasylogging
}
@@ -304,7 +303,6 @@ TRANSLATIONS = \ # English is default language, no explicit translation file
$$PWD/translations/monero-core_zh-tw.ts \ # Chinese (Traditional-Taiwan)
$$PWD/translations/monero-core_he.ts \ # Hebrew
$$PWD/translations/monero-core_ko.ts \ # Korean
$$PWD/translations/monero-core_ro.ts \ # Romanian
CONFIG(release, debug|release) {
DESTDIR = release/bin

View File

@@ -497,76 +497,9 @@ Rectangle {
text: qsTr("Embedded Monero version: ") + Version.GUI_MONERO_VERSION + translationManager.emptyString
}
TextBlock {
id: restoreHeightText
Layout.fillWidth: true
textFormat: Text.RichText
property var txt: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C}</style>" + qsTr("Wallet creation height: ") + currentWallet.walletCreationHeight + translationManager.emptyString
property var linkTxt: qsTr(" <a href='#'>(Click to change)</a>") + translationManager.emptyString
text: (typeof currentWallet == "undefined") ? "" : txt + linkTxt
onLinkActivated: {
restoreHeightRow.visible = true;
}
text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet creation height: ") + currentWallet.walletCreationHeight + translationManager.emptyString
}
RowLayout {
id: restoreHeightRow
visible: false
LineEdit {
id: restoreHeight
Layout.preferredWidth: 80
Layout.fillWidth: true
text: currentWallet.walletCreationHeight
validator: IntValidator {
bottom:0
}
}
StandardButton {
id: restoreHeightSave
Layout.fillWidth: false
Layout.leftMargin: 30
text: qsTr("Save") + translationManager.emptyString
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
onClicked: {
currentWallet.walletCreationHeight = restoreHeight.text
// Restore height is saved in .keys file. Set password to trigger rewrite.
currentWallet.setPassword(appWindow.password)
restoreHeightRow.visible = false
// Show confirmation dialog
confirmationDialog.title = qsTr("Rescan wallet cache") + translationManager.emptyString;
confirmationDialog.text = qsTr("Are you sure you want to rebuild the wallet cache?\n"
+ "The following information will be deleted\n"
+ "- Recipient addresses\n"
+ "- Tx keys\n"
+ "- Tx descriptions\n\n"
+ "The old wallet cache file will be renamed and can be restored later.\n"
);
confirmationDialog.icon = StandardIcon.Question
confirmationDialog.cancelText = qsTr("Cancel")
confirmationDialog.onAcceptedCallback = function() {
walletManager.closeWallet();
walletManager.clearWalletCache(persistentSettings.wallet_path);
walletManager.openWalletAsync(persistentSettings.wallet_path, appWindow.password,
persistentSettings.testnet);
}
confirmationDialog.onRejectedCallback = null;
confirmationDialog.open()
}
}
}
TextBlock {
Layout.fillWidth: true
text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet log path: ") + currentWallet.walletLogPath + translationManager.emptyString

View File

@@ -45,7 +45,7 @@ Rectangle {
property bool showAdvanced: false
function scaleValueToMixinCount(scaleValue) {
var scaleToMixinCount = [4,5,6,7,8,9,10,11,12,14,16,18,21,25];
var scaleToMixinCount = [4,5,6,7,8,9,10,11,12,13,14,15,20,25];
if (scaleValue < scaleToMixinCount.length) {
return scaleToMixinCount[scaleValue];
} else {

View File

@@ -121,7 +121,6 @@
<file>lang/flags/usa.png</file>
<file>lang/flags/israel.png</file>
<file>lang/flags/south_korea.png</file>
<file>lang/flags/romania.png</file>
<file>wizard/WizardManageWalletUI.qml</file>
<file>wizard/WizardRecoveryWallet.qml</file>
<file>wizard/WizardMemoTextInput.qml</file>

View File

@@ -45,7 +45,7 @@ QList<TransactionInfo *> TransactionHistory::getAll() const
if (ti->timestamp() <= firstDateTime) {
firstDateTime = ti->timestamp();
}
quint64 requiredConfirmations = (ti->blockHeight() < ti->unlockTime()) ? ti->unlockTime() - ti->blockHeight() : 10;
quint64 requiredConfirmations = (ti->blockHeight() < ti->unlockTime()) ? ti->unlockTime() - ti->blockHeight() : 0;
// store last tx height
if (ti->confirmations() < requiredConfirmations && ti->blockHeight() >= lastTxHeight) {
lastTxHeight = ti->blockHeight();

View File

@@ -207,7 +207,6 @@ void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLim
QFuture<bool> future = watcher->future();
watcher->deleteLater();
if(future.result()){
emit walletCreationHeightChanged();
qDebug() << "init async finished - starting refresh";
connected(true);
m_walletImpl->startRefresh();
@@ -600,12 +599,6 @@ bool Wallet::useForkRules(quint8 required_version, quint64 earlyBlocks) const
}
}
void Wallet::setWalletCreationHeight(quint64 height)
{
m_walletImpl->setRefreshFromBlockHeight(height);
emit walletCreationHeightChanged();
}
QString Wallet::getDaemonLogPath() const
{
return QString::fromStdString(m_walletImpl->getDefaultDataDir()) + "/bitmonero.log";

View File

@@ -47,7 +47,7 @@ class Wallet : public QObject
Q_PROPERTY(QString publicSpendKey READ getPublicSpendKey)
Q_PROPERTY(QString daemonLogPath READ getDaemonLogPath CONSTANT)
Q_PROPERTY(QString walletLogPath READ getWalletLogPath CONSTANT)
Q_PROPERTY(quint64 walletCreationHeight READ getWalletCreationHeight WRITE setWalletCreationHeight NOTIFY walletCreationHeightChanged)
Q_PROPERTY(quint64 walletCreationHeight READ getWalletCreationHeight CONSTANT)
public:
@@ -245,8 +245,6 @@ public:
QString getPublicSpendKey() const {return QString::fromStdString(m_walletImpl->publicSpendKey());}
quint64 getWalletCreationHeight() const {return m_walletImpl->getRefreshFromBlockHeight();}
void setWalletCreationHeight(quint64 height);
QString getDaemonLogPath() const;
QString getWalletLogPath() const;
@@ -265,7 +263,6 @@ signals:
void unconfirmedMoneyReceived(const QString &txId, quint64 amount);
void newBlock(quint64 height, quint64 targetHeight);
void historyModelChanged() const;
void walletCreationHeightChanged();
// emitted when transaction is created async
void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount);

View File

@@ -3,7 +3,6 @@
#include "TransactionInfo.h"
#include <QDateTime>
#include <QDebug>
TransactionHistoryModel::TransactionHistoryModel(QObject *parent)
@@ -87,7 +86,7 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
result = tInfo->confirmations();
break;
case TransactionConfirmationsRequiredRole:
result = (tInfo->blockHeight() < tInfo->unlockTime()) ? tInfo->unlockTime() - tInfo->blockHeight() : 10;
result = (tInfo->blockHeight() < tInfo->unlockTime()) ? tInfo->unlockTime() - tInfo->blockHeight() : 0;
break;
case TransactionHashRole:
result = tInfo->hash();

View File

@@ -16,12 +16,12 @@
<message>
<location filename="../pages/AddressBook.qml" line="71"/>
<source>QRCODE</source>
<translation>QR koodi</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="93"/>
<source>4...</source>
<translation>4...</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="102"/>
@@ -31,37 +31,37 @@
<message>
<location filename="../pages/AddressBook.qml" line="114"/>
<source>Paste 64 hexadecimal characters</source>
<translation>Liitä 64 heksadesimaalimerkkiä</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="123"/>
<source>Description &lt;font size=&apos;2&apos;&gt;(Optional)&lt;/font&gt;</source>
<translation>Kuvaus &lt;font size=&apos;2&apos;&gt;(Valinnainen)&lt;/font&gt;</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="135"/>
<source>Give this entry a name or description</source>
<translation>Anna tähän nimi tai kuvaus</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="151"/>
<source>Add</source>
<translation>Lisää</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="156"/>
<source>Error</source>
<translation>Virhe</translation>
<translation type="unfinished">Virhe</translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="159"/>
<source>Invalid address</source>
<translation>Virheellinen osoite</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="163"/>
<source>Can&apos;t create entry</source>
<translation>Ei voida lisätä merkintää</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -105,12 +105,12 @@
<message>
<location filename="../components/DaemonConsole.qml" line="117"/>
<source>Close</source>
<translation>Sulje</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/DaemonConsole.qml" line="128"/>
<source>command + enter (e.g help)</source>
<translation>Käsky + enter (esim. help)</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -118,17 +118,17 @@
<message>
<location filename="../components/DaemonManagerDialog.qml" line="93"/>
<source>Starting Monero daemon in %1 seconds</source>
<translation>Käynnistetään Monero taustaohjelma %1 sekunnin kuluttua</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/DaemonManagerDialog.qml" line="115"/>
<source>Start daemon (%1)</source>
<translation>Käynnistä taustaohjelma (%1)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/DaemonManagerDialog.qml" line="132"/>
<source>Use custom settings</source>
<translation>Käytä omavalintaisia asetuksia</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -187,12 +187,12 @@
<message>
<location filename="../pages/History.qml" line="183"/>
<source>Type for incremental search...</source>
<translation>Kirjoita hakeaksesi...</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/History.qml" line="276"/>
<source>Filter</source>
<translation>Filtteri</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/History.qml" line="223"/>
@@ -248,7 +248,7 @@
<message>
<location filename="../components/HistoryTable.qml" line="52"/>
<source>Destinations:</source>
<translation>Kohteet:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="78"/>
@@ -268,17 +268,17 @@
<message>
<location filename="../components/HistoryTable.qml" line="266"/>
<source>(%1/10 confirmations)</source>
<translation>(%1/10 vahvistusta)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="270"/>
<source>UNCONFIRMED</source>
<translation>VAHVISTAMATON</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="271"/>
<source>PENDING</source>
<translation>VIREILLÄ</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="300"/>
@@ -336,47 +336,47 @@
<message>
<location filename="../LeftPanel.qml" line="93"/>
<source>Testnet</source>
<translation>Testnet</translation>
<translation type="unfinished">Testnet</translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="304"/>
<source>Address book</source>
<translation>Osoitekirja</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="305"/>
<source>B</source>
<translation>B</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="354"/>
<source>H</source>
<translation>H</translation>
<translation></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="376"/>
<source>Advanced</source>
<translation>Edistynyt</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="377"/>
<source>D</source>
<translation>D</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="398"/>
<source>Mining</source>
<translation>Louhinta</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="399"/>
<source>M</source>
<translation>M</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="422"/>
<source>Check payment</source>
<translation>Tarkista maksu</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="446"/>
@@ -386,17 +386,17 @@
<message>
<location filename="../LeftPanel.qml" line="470"/>
<source>E</source>
<translation>E</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="280"/>
<source>S</source>
<translation>S</translation>
<translation></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="447"/>
<source>I</source>
<translation>I</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="469"/>
@@ -409,12 +409,12 @@
<message>
<location filename="../MiddlePanel.qml" line="46"/>
<source>Balance</source>
<translation>Saldo</translation>
<translation type="unfinished">Saldo</translation>
</message>
<message>
<location filename="../MiddlePanel.qml" line="48"/>
<source>Unlocked Balance</source>
<translation>Lukittamaton Saldo</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -422,17 +422,17 @@
<message>
<location filename="../pages/Mining.qml" line="73"/>
<source>Solo mining</source>
<translation>Soololouhinta</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="80"/>
<source>(only available for local daemons)</source>
<translation>(saatavilla vain paikallisille taustaohjelmille)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="86"/>
<source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source>
<translation>Louhinta tietokoneellasi auttaa vahvistamaan Moneroverkkoa. Mitä enemmän ihmiset louhivat, sitä vaikeampaa on hyökätä verkkoon ja jokainen pieni osa auttaa.&lt;br&gt; &lt;br&gt;Louhinta myös antaa sinulle pienen mahdollisuuden ansaita vähän Moneroa. Tietokoneesi luo haketta etsien lohkon ratkaisuja. Jos löydät lohkon, saat siihen liittyvän palkinnon. Onnea!</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="96"/>
@@ -442,17 +442,17 @@
<message>
<location filename="../pages/Mining.qml" line="104"/>
<source>(optional)</source>
<translation>(valinnainen)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="116"/>
<source>Background mining (experimental)</source>
<translation>Louhinta taustalla (kokeellinen)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="132"/>
<source>Enable mining when running on battery</source>
<translation>Salli louhinta akkuvirralla</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="142"/>
@@ -462,12 +462,12 @@
<message>
<location filename="../pages/Mining.qml" line="151"/>
<source>Start mining</source>
<translation>Aloita louhinta</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="161"/>
<source>Error starting mining</source>
<translation>Virhe louhinnan aloittamisessa</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="162"/>

View File

@@ -31,7 +31,7 @@
<message>
<location filename="../pages/AddressBook.qml" line="114"/>
<source>Paste 64 hexadecimal characters</source>
<translation> 16 64 </translation>
<translation>64 16 </translation>
</message>
<message>
<location filename="../pages/AddressBook.qml" line="123"/>
@@ -74,7 +74,7 @@
<message>
<location filename="../components/AddressBookTable.qml" line="104"/>
<source>Payment ID:</source>
<translation> :</translation>
<translation> :</translation>
</message>
</context>
<context>
@@ -82,7 +82,7 @@
<message>
<location filename="../BasicPanel.qml" line="97"/>
<source>Locked Balance:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../BasicPanel.qml" line="110"/>
@@ -92,7 +92,7 @@
<message>
<location filename="../BasicPanel.qml" line="133"/>
<source>Available Balance:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../BasicPanel.qml" line="146"/>
@@ -110,7 +110,7 @@
<message>
<location filename="../components/DaemonConsole.qml" line="128"/>
<source>command + enter (e.g help)</source>
<translation> + (: 도움)</translation>
<translation> + (: 도움)</translation>
</message>
</context>
<context>
@@ -118,7 +118,7 @@
<message>
<location filename="../components/DaemonManagerDialog.qml" line="93"/>
<source>Starting Monero daemon in %1 seconds</source>
<translation> %1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../components/DaemonManagerDialog.qml" line="115"/>
@@ -177,17 +177,17 @@
<message>
<location filename="../pages/History.qml" line="70"/>
<source> selected: </source>
<translation> : </translation>
<translation> : </translation>
</message>
<message>
<location filename="../pages/History.qml" line="135"/>
<source>Filter transaction history</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/History.qml" line="183"/>
<source>Type for incremental search...</source>
<translation> ...</translation>
<translation> ...</translation>
</message>
<message>
<location filename="../pages/History.qml" line="276"/>
@@ -218,7 +218,7 @@
<message>
<location filename="../pages/History.qml" line="370"/>
<source>Amount from</source>
<translation> </translation>
<translation></translation>
</message>
</context>
<context>
@@ -226,23 +226,23 @@
<message>
<location filename="../components/HistoryTable.qml" line="48"/>
<source>Tx ID:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="49"/>
<location filename="../components/HistoryTable.qml" line="203"/>
<source>Payment ID:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="50"/>
<source>Tx key:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="51"/>
<source>Tx note:</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="52"/>
@@ -257,17 +257,17 @@
<message>
<location filename="../components/HistoryTable.qml" line="110"/>
<source>Details</source>
<translation> </translation>
<translation></translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="251"/>
<source>BlockHeight:</source>
<translation>:</translation>
<translation>:</translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="266"/>
<source>(%1/%2 confirmations)</source>
<translation type="unfinished">(%1/%2 }</translation>
<translation type="unfinished">(%1/10 ) {1/%2 ?}</translation>
</message>
<message>
<location filename="../components/HistoryTable.qml" line="270"/>
@@ -305,7 +305,7 @@
<message>
<location filename="../LeftPanel.qml" line="177"/>
<source>Unlocked balance</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="279"/>
@@ -315,22 +315,22 @@
<message>
<location filename="../LeftPanel.qml" line="329"/>
<source>Receive</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="353"/>
<source>History</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="93"/>
<source>Testnet</source>
<translation></translation>
<translation> </translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="280"/>
<source>S</source>
<translation type="unfinished">S</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="304"/>
@@ -340,17 +340,17 @@
<message>
<location filename="../LeftPanel.qml" line="305"/>
<source>B</source>
<translation type="unfinished">B</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="330"/>
<source>R</source>
<translation type="unfinished">R</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="354"/>
<source>H</source>
<translation type="unfinished">H</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="376"/>
@@ -360,7 +360,7 @@
<message>
<location filename="../LeftPanel.qml" line="377"/>
<source>D</source>
<translation type="unfinished">D</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="398"/>
@@ -370,7 +370,7 @@
<message>
<location filename="../LeftPanel.qml" line="399"/>
<source>M</source>
<translation type="unfinished">M</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="422"/>
@@ -380,7 +380,7 @@
<message>
<location filename="../LeftPanel.qml" line="423"/>
<source>K</source>
<translation type="unfinished">K</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="446"/>
@@ -390,17 +390,17 @@
<message>
<location filename="../LeftPanel.qml" line="447"/>
<source>I</source>
<translation type="unfinished">I</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="469"/>
<source>Settings</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../LeftPanel.qml" line="470"/>
<source>E</source>
<translation type="unfinished">E</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -413,7 +413,7 @@
<message>
<location filename="../MiddlePanel.qml" line="48"/>
<source>Unlocked Balance</source>
<translation> </translation>
<translation> </translation>
</message>
</context>
<context>
@@ -421,7 +421,7 @@
<message>
<location filename="../pages/Mining.qml" line="73"/>
<source>Solo mining</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="80"/>
@@ -431,7 +431,7 @@
<message>
<location filename="../pages/Mining.qml" line="86"/>
<source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source>
<translation> . . . , , . !</translation>
<translation> . . . . . !</translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="96"/>
@@ -446,12 +446,12 @@
<message>
<location filename="../pages/Mining.qml" line="116"/>
<source>Background mining (experimental)</source>
<translation> ( )</translation>
<translation> ()</translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="132"/>
<source>Enable mining when running on battery</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="142"/>
@@ -491,7 +491,7 @@
<message>
<location filename="../pages/Mining.qml" line="203"/>
<source>Mining at %1 H/s</source>
<translation> %1 H/s </translation>
<translation> %1 H/s</translation>
</message>
<message>
<location filename="../pages/Mining.qml" line="206"/>
@@ -509,7 +509,7 @@
<message>
<location filename="../components/MobileHeader.qml" line="94"/>
<source>Unlocked Balance:</source>
<translation> </translation>
<translation> </translation>
</message>
</context>
<context>
@@ -573,7 +573,7 @@
<message>
<location filename="../components/PrivacyLevelSmall.qml" line="100"/>
<source>Low</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../components/PrivacyLevelSmall.qml" line="109"/>
@@ -583,7 +583,7 @@
<message>
<location filename="../components/PrivacyLevelSmall.qml" line="118"/>
<source>High</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -601,7 +601,7 @@
<message>
<location filename="../components/ProgressBar.qml" line="100"/>
<source>Synchronizing blocks</source>
<translation> </translation>
<translation> </translation>
</message>
</context>
<context>
@@ -609,7 +609,7 @@
<message>
<location filename="../pages/Receive.qml" line="64"/>
<source>Invalid payment ID</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="107"/>
@@ -619,7 +619,7 @@
<message>
<location filename="../pages/Receive.qml" line="129"/>
<source>in the txpool: %1</source>
<translation> : %1</translation>
<translation> : %1</translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="136"/>
@@ -649,12 +649,12 @@
<message>
<location filename="../pages/Receive.qml" line="156"/>
<source> with more money (%1)</source>
<translation> (%1)</translation>
<translation> (%1)</translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="158"/>
<source> with not enough money (%1)</source>
<translation> (%1)</translation>
<translation> (%1)</translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="190"/>
@@ -664,17 +664,17 @@
<message>
<location filename="../pages/Receive.qml" line="197"/>
<source>ReadOnly wallet address displayed here</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="230"/>
<source>16 hexadecimal characters</source>
<translation>16 16</translation>
<translation>16 16 </translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="266"/>
<source>Clear</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="276"/>
@@ -729,7 +729,7 @@
<message>
<location filename="../pages/Receive.qml" line="285"/>
<source>Generate payment ID for integrated address</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Receive.qml" line="309"/>
@@ -752,12 +752,12 @@
<message>
<location filename="../RightPanel.qml" line="63"/>
<source>Help</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../RightPanel.qml" line="64"/>
<source>About</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -765,12 +765,12 @@
<message>
<location filename="../components/SearchInput.qml" line="69"/>
<source>Search by...</source>
<translation>... </translation>
<translation> ...</translation>
</message>
<message>
<location filename="../components/SearchInput.qml" line="228"/>
<source>SEARCH</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -819,7 +819,7 @@
<message>
<location filename="../pages/Settings.qml" line="163"/>
<source>Rescan wallet balance</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="172"/>
@@ -834,7 +834,7 @@
<message>
<location filename="../pages/Settings.qml" line="178"/>
<source>Sucessfully rescanned spent outputs</source>
<translation> .</translation>
<translation> .</translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="257"/>
@@ -884,7 +884,7 @@
<message>
<location filename="../pages/Settings.qml" line="415"/>
<source>Custom decorations</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="426"/>
@@ -929,12 +929,12 @@
<message>
<location filename="../pages/Settings.qml" line="585"/>
<source>Error: Filesystem is read only</source>
<translation>오류: 해당 </translation>
<translation>오류: </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="589"/>
<source>Warning: There&apos;s only %1 GB available on the device. Blockchain requires ~%2 GB of data.</source>
<translation>경고 : 해당장치에 %1 GB뿐입니다. ~ %2 GB의 .</translation>
<translation>경고 : 장치에 %1 GB뿐입니다. ~ %2 GB의 .</translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="591"/>
@@ -965,22 +965,22 @@
<message>
<location filename="../pages/Settings.qml" line="527"/>
<source>Secret view key</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="528"/>
<source>Public view key</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="529"/>
<source>Secret spend key</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="530"/>
<source>Public spend key</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Settings.qml" line="540"/>
@@ -1003,33 +1003,33 @@
<message>
<location filename="../pages/Sign.qml" line="68"/>
<source>Good signature</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="69"/>
<source>This is a good signature</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="73"/>
<source>Bad signature</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="74"/>
<source>This signature did not verify</source>
<translation> .</translation>
<translation> .</translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="111"/>
<source>Sign a message or file contents with your address:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="122"/>
<location filename="../pages/Sign.qml" line="294"/>
<source>Either message:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="137"/>
@@ -1045,7 +1045,7 @@
<message>
<location filename="../pages/Sign.qml" line="184"/>
<source>Please choose a file to sign</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="197"/>
@@ -1067,7 +1067,7 @@
<message>
<location filename="../pages/Sign.qml" line="419"/>
<source>&lt;style type=&apos;text/css&apos;&gt;a {text-decoration: none; color: #FF6C3C; font-size: 14px;}&lt;/style&gt; Signing address &lt;font size=&apos;2&apos;&gt; ( Paste in or select from &lt;/font&gt; &lt;a href=&apos;#&apos;&gt;Address book&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</source>
<translation type="unfinished"> &lt;font size=&apos;2&apos;&gt; (&lt;/font&gt; &lt;a href=&apos;#&apos;&gt;&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</translation>
<translation type="unfinished"> &lt;font size=&apos;2&apos;&gt; ( &lt;/font&gt; &lt;a href=&apos;#&apos;&gt;&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="172"/>
@@ -1078,7 +1078,7 @@
<message>
<location filename="../pages/Sign.qml" line="212"/>
<source>Filename with message to sign</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="251"/>
@@ -1091,17 +1091,17 @@
<message>
<location filename="../pages/Sign.qml" line="282"/>
<source>Verify a message or file signature from an address:</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="309"/>
<source>Message to verify</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Sign.qml" line="383"/>
<source>Filename with message to verify</source>
<translation> </translation>
<translation> </translation>
</message>
</context>
<context>
@@ -1132,27 +1132,27 @@
<message>
<location filename="../components/StandardDropdown.qml" line="199"/>
<source>High (x166 fee)</source>
<translation> (x166 )</translation>
<translation> (x166 )</translation>
</message>
<message>
<location filename="../components/StandardDropdown.qml" line="200"/>
<source>Slow (x0.25 fee)</source>
<translation> (x0.25 )</translation>
<translation> (x0.25 )</translation>
</message>
<message>
<location filename="../components/StandardDropdown.qml" line="201"/>
<source>Default (x1 fee)</source>
<translation> (x1 )</translation>
<translation> (x1 )</translation>
</message>
<message>
<location filename="../components/StandardDropdown.qml" line="202"/>
<source>Fast (x5 fee)</source>
<translation> (x5 )</translation>
<translation> (x5 )</translation>
</message>
<message>
<location filename="../components/StandardDropdown.qml" line="203"/>
<source>Fastest (x41.5 fee)</source>
<translation> (x41.5 )</translation>
<translation> (x41.5 )</translation>
</message>
<message>
<location filename="../components/StandardDropdown.qml" line="204"/>
@@ -1180,7 +1180,7 @@
<message>
<location filename="../components/TableDropdown.qml" line="183"/>
<source>&lt;b&gt;Send to this address&lt;/b&gt;</source>
<translation>&lt;b&gt; &lt;/b&gt;</translation>
<translation>&lt;b&gt; &lt;/b&gt;</translation>
</message>
<message>
<location filename="../components/TableDropdown.qml" line="184"/>
@@ -1198,7 +1198,7 @@
<message>
<location filename="../components/TableHeader.qml" line="65"/>
<source>Payment ID</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../components/TableHeader.qml" line="66"/>
@@ -1208,7 +1208,7 @@
<message>
<location filename="../components/TableHeader.qml" line="67"/>
<source>Block height</source>
<translation> </translation>
<translation></translation>
</message>
<message>
<location filename="../components/TableHeader.qml" line="68"/>
@@ -1231,7 +1231,7 @@
<message>
<location filename="../components/TickDelegate.qml" line="57"/>
<source>High</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -1249,7 +1249,7 @@
<message>
<location filename="../pages/Transfer.qml" line="78"/>
<source>Privacy level (ringsize %1)</source>
<translation> ( %1)</translation>
<translation> ( %1)</translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="125"/>
@@ -1259,7 +1259,7 @@
<message>
<location filename="../pages/Transfer.qml" line="135"/>
<source>Transaction priority</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="175"/>
@@ -1269,17 +1269,17 @@
<message>
<location filename="../pages/Transfer.qml" line="197"/>
<source>Low (x1 fee)</source>
<translation> (x1 )</translation>
<translation> (x1 )</translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="198"/>
<source>Medium (x20 fee)</source>
<translation> (x20 )</translation>
<translation> (x20 )</translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="199"/>
<source>High (x166 fee)</source>
<translation> (x166 )</translation>
<translation> (x166 )</translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="237"/>
@@ -1294,7 +1294,7 @@
<message>
<location filename="../pages/Transfer.qml" line="285"/>
<source>Resolve</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="303"/>
@@ -1345,22 +1345,22 @@
<message>
<location filename="../pages/Transfer.qml" line="499"/>
<source>Sweep Unmixable</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="513"/>
<source>Create tx file</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="535"/>
<source>Sign tx file</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="549"/>
<source>Submit tx file</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="582"/>
@@ -1372,7 +1372,7 @@
<location filename="../pages/Transfer.qml" line="590"/>
<source>
Number of transactions: </source>
<translation> : </translation>
<translation> : </translation>
</message>
<message>
<location filename="../pages/Transfer.qml" line="592"/>
@@ -1539,12 +1539,12 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../pages/TxKey.qml" line="152"/>
<source>Transaction ID</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/TxKey.qml" line="161"/>
<source>Paste tx ID</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../pages/TxKey.qml" line="193"/>
@@ -1575,27 +1575,27 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardConfigure.qml" line="79"/>
<source>Were almost there - lets just configure some Monero preferences</source>
<translation> - .</translation>
<translation> - .</translation>
</message>
<message>
<location filename="../wizard/WizardConfigure.qml" line="97"/>
<source>Kickstart the Monero blockchain?</source>
<translation> ?</translation>
<translation> ?</translation>
</message>
<message>
<location filename="../wizard/WizardConfigure.qml" line="115"/>
<source>It is very important to write it down as this is the only backup you will need for your wallet.</source>
<translation> .</translation>
<translation> .</translation>
</message>
<message>
<location filename="../wizard/WizardConfigure.qml" line="126"/>
<source>Enable disk conservation mode?</source>
<translation> ?</translation>
<translation> ?</translation>
</message>
<message>
<location filename="../wizard/WizardConfigure.qml" line="144"/>
<source>Disk conservation mode uses substantially less disk-space, but the same amount of bandwidth as a regular Monero instance. However, storing the full blockchain is beneficial to the security of the Monero network. If you are on a device with limited disk space, then this option is appropriate for you.</source>
<translation> . . .</translation>
<translation> . . .</translation>
</message>
<message>
<location filename="../wizard/WizardConfigure.qml" line="157"/>
@@ -1629,32 +1629,32 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardDonation.qml" line="93"/>
<source>Monero development is solely supported by donations</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../wizard/WizardDonation.qml" line="113"/>
<source>Enable auto-donations of?</source>
<translation> ?</translation>
<translation> ?</translation>
</message>
<message>
<location filename="../wizard/WizardDonation.qml" line="153"/>
<source>% of my fee added to each transaction</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../wizard/WizardDonation.qml" line="164"/>
<source>For every transaction, a small transaction fee is charged. This option lets you add an additional amount, as a percentage of that fee, to your transaction to support Monero development. For instance, a 50% autodonation take a transaction fee of 0.005 XMR and add a 0.0025 XMR to support Monero development.</source>
<translation> . . , 50% 0.005 XMR이면 0.0025 XMR이 .</translation>
<translation> . . , 50 % 0.005 XMR이면 0.0025 XMR이 .</translation>
</message>
<message>
<location filename="../wizard/WizardDonation.qml" line="176"/>
<source>Allow background mining?</source>
<translation> ?</translation>
<translation> ?</translation>
</message>
<message>
<location filename="../wizard/WizardDonation.qml" line="194"/>
<source>Mining secures the Monero network, and also pays a small reward for the work done. This option will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.</source>
<translation> . IDLE . .</translation>
<translation> . . .</translation>
</message>
</context>
<context>
@@ -1701,7 +1701,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardFinish.qml" line="68"/>
<source>Testnet</source>
<translation></translation>
<translation> </translation>
</message>
<message>
<location filename="../wizard/WizardFinish.qml" line="70"/>
@@ -1711,17 +1711,17 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardFinish.qml" line="78"/>
<source>New wallet details:</source>
<translation> :</translation>
<translation> :</translation>
</message>
<message>
<location filename="../wizard/WizardFinish.qml" line="82"/>
<source>Don&apos;t forget to write down your seed. You can view your seed and change your settings on settings page.</source>
<translation> (seed) . .</translation>
<translation> (seed) . .</translation>
</message>
<message>
<location filename="../wizard/WizardFinish.qml" line="128"/>
<source>Youre all set up!</source>
<translation> !</translation>
<translation> !</translation>
</message>
</context>
<context>
@@ -1729,7 +1729,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardMain.qml" line="176"/>
<source>A wallet with same name already exists. Please change wallet name</source>
<translation> . .</translation>
<translation> . .</translation>
</message>
<message>
<location filename="../wizard/WizardMain.qml" line="184"/>
@@ -1739,7 +1739,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardMain.qml" line="366"/>
<source>USE MONERO</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../wizard/WizardMain.qml" line="383"/>
@@ -1755,7 +1755,7 @@ Please upgrade or connect to another daemon</source>
<location filename="../wizard/WizardMain.qml" line="394"/>
<source>The view only wallet has been created. You can open it by closing this current wallet, clicking the &quot;Open wallet from file&quot; option, and selecting the view wallet in:
%1</source>
<translation> . &quot; &quot; :
<translation> . &quot; &quot; :
%1</translation>
</message>
<message>
@@ -1799,7 +1799,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardManageWalletUI.qml" line="220"/>
<source>Spend key (private)</source>
<translation> ()</translation>
<translation> ()</translation>
</message>
<message>
<location filename="../wizard/WizardManageWalletUI.qml" line="232"/>
@@ -1809,7 +1809,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardManageWalletUI.qml" line="245"/>
<source>Your wallet is stored in</source>
<translation> : </translation>
<translation> </translation>
</message>
<message>
<location filename="../wizard/WizardManageWalletUI.qml" line="271"/>
@@ -1865,7 +1865,7 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../wizard/WizardOptions.qml" line="295"/>
<source>Testnet</source>
<translation></translation>
<translation> </translation>
</message>
</context>
<context>
@@ -1881,7 +1881,7 @@ Please upgrade or connect to another daemon</source>
<source> &lt;br&gt;Note: this password cannot be recovered. If you forget it then the wallet will have to be restored from its 25 word mnemonic seed.&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Enter a strong password&lt;/b&gt; (using letters, numbers, and/or symbols):</source>
<translation> &lt;br&gt;참고: , 25 .&lt;br/&gt;&lt;br/&gt;
&lt;b&gt; &lt;/b&gt; (, ):</translation>
&lt;b&gt; &lt;/b&gt; (, / ):</translation>
</message>
</context>
<context>
@@ -1942,27 +1942,27 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../main.qml" line="361"/>
<source>Unlocked balance (waiting for block)</source>
<translation> ( )</translation>
<translation> ( )</translation>
</message>
<message>
<location filename="../main.qml" line="361"/>
<source>Unlocked balance (~%1 min)</source>
<translation> (~%1 )</translation>
<translation> (~%1 )</translation>
</message>
<message>
<location filename="../main.qml" line="361"/>
<source>Unlocked balance</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../main.qml" line="413"/>
<source>Waiting for daemon to start...</source>
<translation> ...</translation>
<translation> ...</translation>
</message>
<message>
<location filename="../main.qml" line="419"/>
<source>Waiting for daemon to stop...</source>
<translation> ...</translation>
<translation> ...</translation>
</message>
<message>
<location filename="../main.qml" line="444"/>
@@ -1989,7 +1989,7 @@ Please upgrade or connect to another daemon</source>
<location filename="../main.qml" line="510"/>
<location filename="../main.qml" line="623"/>
<source>No unmixable outputs to sweep</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../main.qml" line="522"/>
@@ -2000,18 +2000,21 @@ Please upgrade or connect to another daemon</source>
<message>
<location filename="../main.qml" line="523"/>
<location filename="../main.qml" line="636"/>
<source>Please confirm transaction: </source>
<source>Please confirm transaction:
</source>
<translation> :</translation>
</message>
<message>
<location filename="../main.qml" line="524"/>
<source> Address: </source>
<source>
Address: </source>
<translation>:</translation>
</message>
<message>
<location filename="../main.qml" line="525"/>
<source> Payment ID: </source>
<translation> : </translation>
<source>
Payment ID: </source>
<translation> : </translation>
</message>
<message>
<location filename="../main.qml" line="526"/>
@@ -2024,18 +2027,21 @@ Amount: </source>
<message>
<location filename="../main.qml" line="527"/>
<location filename="../main.qml" line="638"/>
<source> Fee: </source>
<source>
Fee: </source>
<translation>: </translation>
</message>
<message>
<location filename="../main.qml" line="528"/>
<source> Ringsize: </source>
<translation> : </translation>
<source>
Ringsize: </source>
<translation>: </translation>
</message>
<message>
<location filename="../main.qml" line="734"/>
<source>This address received %1 monero, with %2 confirmation(s).</source>
<translation> %1 XMR을 , %2 .</translation>
<translation> % 1XMR을 , % 2 .</translation>
</message>
<message>
<location filename="../main.qml" line="1324"/>
@@ -2059,12 +2065,15 @@ Amount: </source>
</message>
<message>
<location filename="../main.qml" line="529"/>
<source> Number of transactions: </source>
<source>
Number of transactions: </source>
<translation> : </translation>
</message>
<message>
<location filename="../main.qml" line="530"/>
<source> Description: </source>
<source>
Description: </source>
<translation>: </translation>
</message>
<message>
@@ -2075,7 +2084,7 @@ Amount: </source>
<message>
<location filename="../main.qml" line="572"/>
<source>Insufficient funds. Unlocked balance: %1</source>
<translation> . : %1</translation>
<translation> . : %1</translation>
</message>
<message>
<location filename="../main.qml" line="675"/>
@@ -2090,7 +2099,7 @@ Amount: </source>
<message>
<location filename="../main.qml" line="684"/>
<source>Money sent successfully: %1 transaction(s) </source>
<translation> : %1 </translation>
<translation> : %1 () </translation>
</message>
<message>
<location filename="../main.qml" line="684"/>
@@ -2105,12 +2114,12 @@ Amount: </source>
<message>
<location filename="../main.qml" line="729"/>
<source>This address received %1 monero, but the transaction is not yet mined</source>
<translation> % 1XMR을 , </translation>
<translation> % 1XMR을 , </translation>
</message>
<message>
<location filename="../main.qml" line="738"/>
<source>This address received nothing</source>
<translation> </translation>
<translation> </translation>
</message>
<message>
<location filename="../main.qml" line="750"/>
@@ -2140,7 +2149,7 @@ Amount: </source>
<message>
<location filename="../main.qml" line="1072"/>
<source>send to the same destination</source>
<translation> </translation>
<translation> </translation>
</message>
</context>
</TS>

File diff suppressed because it is too large Load Diff

View File

@@ -17,13 +17,13 @@ fi
if [[ "$BUILD_TYPE" == "Release" ]]; then
echo "Release build"
ICU_FILES=(libicuuc57.dll libicuin57.dll libicudt57.dll)
ICU_FILES="libicuuc57.dll libicuin57.dll libicudt57.dll"
else
echo "Debug build"
ICU_FILES=(libicuucd57.dll libicuind57.dll libicudtd57.dll)
ICU_FILES="libicuucd57.dll libicuind57.dll libicudtd57.dll"
fi
FILES=(zlib1.dll libwinpthread-1.dll libtiff-5.dll libstdc++-6.dll libpng16-16.dll libpcre16-0.dll libpcre-1.dll libmng-2.dll liblzma-5.dll liblcms2-2.dll libjpeg-8.dll libintl-8.dll libiconv-2.dll libharfbuzz-0.dll libgraphite2.dll libglib-2.0-0.dll libfreetype-6.dll libbz2-1.dll)
FILES="zlib1.dll libwinpthread-1.dll libtiff-5.dll libstdc++-6.dll libpng16-16.dll libpcre16-0.dll libpcre-1.dll libmng-2.dll liblzma-5.dll liblcms2-2.dll libjpeg-8.dll libjasper-1.dll libintl-8.dll libiconv-2.dll libharfbuzz-0.dll libgraphite2.dll libglib-2.0-0.dll libfreetype-6.dll libbz2-1.dll"
platform=$(get_platform)
@@ -33,9 +33,10 @@ elif [[ "$platform" == "mingw32" ]]; then
PLATFORM_FILES="libgcc_s_dw2-1.dll"
fi
for f in "${FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done
for f in $FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in "${ICU_FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done
for f in $ICU_FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in $PLATFORM_FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in "${PLATFORM_FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done

View File

@@ -50,7 +50,7 @@ ColumnLayout {
autoDonationAmount = wizard.settings["auto_donations_amount"] + " %",
backgroundMiningEnabled = wizard.settings["allow_background_mining"] === true,
backgroundMiningText = backgroundMiningEnabled ? qsTr("Enabled") : qsTr("Disabled"),
testnetEnabled = appWindow.persistentSettings.testnet,
testnetEnabled = wizard.settings['testnet'] === true,
testnetText = testnetEnabled ? qsTr("Enabled") : qsTr("Disabled"),
restoreHeightEnabled = wizard.settings['restore_height'] !== undefined;
@@ -64,7 +64,7 @@ ColumnLayout {
// ? trStart + qsTr("Donation amount") + trMiddle + autoDonationAmount + trEnd
// : "")
// + trStart + qsTr("Background mining") + trMiddle + backgroundMiningText + trEnd
+ trStart + qsTr("Daemon address") + trMiddle + persistentSettings.daemon_address + trEnd
+ trStart + qsTr("Daemon address") + trMiddle + wizard.settings["daemon_address"] + trEnd
+ trStart + qsTr("Testnet") + trMiddle + testnetText + trEnd
+ (restoreHeightEnabled
? trStart + qsTr("Restore height") + trMiddle + wizard.settings['restore_height'] + trEnd

View File

@@ -233,8 +233,11 @@ ColumnLayout {
appWindow.persistentSettings.allow_background_mining = false //settings.allow_background_mining
appWindow.persistentSettings.auto_donations_enabled = false //settings.auto_donations_enabled
appWindow.persistentSettings.auto_donations_amount = false //settings.auto_donations_amount
appWindow.persistentSettings.daemon_address = settings.daemon_address
appWindow.persistentSettings.testnet = settings.testnet
appWindow.persistentSettings.restore_height = (isNaN(settings.restore_height))? 0 : settings.restore_height
appWindow.persistentSettings.is_recovering = (settings.is_recovering === undefined)? false : settings.is_recovering
}
// reading settings from persistent storage

View File

@@ -56,10 +56,10 @@ ColumnLayout {
property int rowSpacing: 10
function checkFields(){
var addressOK = walletManager.addressValid(addressLine.text, persistentSettings.testnet)
var viewKeyOK = walletManager.keyValid(viewKeyLine.text, addressLine.text, true, persistentSettings.testnet)
var addressOK = walletManager.addressValid(addressLine.text, wizard.settings.testnet)
var viewKeyOK = walletManager.keyValid(viewKeyLine.text, addressLine.text, true, wizard.settings.testnet)
// Spendkey is optional
var spendKeyOK = (spendKeyLine.text.length > 0)? walletManager.keyValid(spendKeyLine.text, addressLine.text, false, persistentSettings.testnet) : true
var spendKeyOK = (spendKeyLine.text.length > 0)? walletManager.keyValid(spendKeyLine.text, addressLine.text, false, wizard.settings.testnet) : true
addressLine.error = !addressOK && addressLine.text.length != 0
viewKeyLine.error = !viewKeyOK && viewKeyLine.text.length != 0

View File

@@ -44,12 +44,25 @@ ColumnLayout {
function onPageClosed() {
// Save settings used in open from file.
// other wizard settings are saved on last page in applySettings()
appWindow.persistentSettings.testnet = wizard.settings["testnet"]
appWindow.persistentSettings.daemon_address = wizard.settings["daemon_address"]
appWindow.persistentSettings.language = wizard.settings.language
appWindow.persistentSettings.locale = wizard.settings.locale
return true;
}
function saveDaemonAddress() {
wizard.settings["daemon_address"] = daemonAddress.text
wizard.settings["testnet"] = testNet.checked
}
QtObject {
id: d
readonly property string daemonAddressTestnet : "localhost:38081"
readonly property string daemonAddressMainnet : "localhost:18081"
}
Behavior on opacity {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
@@ -126,6 +139,7 @@ ColumnLayout {
anchors.fill: parent
hoverEnabled: true
onClicked: {
page.saveDaemonAddress()
page.createWalletClicked()
}
}
@@ -168,6 +182,7 @@ ColumnLayout {
anchors.fill: parent
hoverEnabled: true
onClicked: {
page.saveDaemonAddress()
page.recoveryWalletClicked()
}
}
@@ -211,6 +226,7 @@ ColumnLayout {
anchors.fill: parent
hoverEnabled: true
onClicked: {
page.saveDaemonAddress()
page.openWalletClicked()
}
}
@@ -231,30 +247,62 @@ ColumnLayout {
}
RowLayout {
// daemon select
// TODO: Move to separate page
ColumnLayout {
Layout.leftMargin: wizardLeftMargin
Layout.rightMargin: wizardRightMargin
Layout.topMargin: 30
Layout.alignment: Qt.AlignCenter
Layout.fillWidth: true
Rectangle {
width: 100
CheckBox {
id: testNet
text: qsTr("Testnet") + translationManager.emptyString
background: "#FFFFFF"
fontColor: "#4A4646"
fontSize: 16
checkedIcon: "../images/checkedVioletIcon.png"
uncheckedIcon: "../images/uncheckedIcon.png"
checked: appWindow.persistentSettings.testnet;
onClicked: {
persistentSettings.testnet = testNet.checked
console.log("testnet set to ", persistentSettings.testnet)
Label {
Layout.topMargin: 20
fontSize: 14
text: qsTr("Custom daemon address (optional)") + translationManager.emptyString
+ translationManager.emptyString
}
GridLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
columnSpacing: 20
rowSpacing: 20
flow: isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight
RowLayout {
spacing: 20
Layout.alignment: Qt.AlignCenter
LineEdit {
id: daemonAddress
Layout.alignment: Qt.AlignCenter
width: 200
fontSize: 14
text: {
if(appWindow.persistentSettings.daemon_address)
return appWindow.persistentSettings.daemon_address;
return testNet.checked ? d.daemonAddressTestnet : d.daemonAddressMainnet
}
}
CheckBox {
id: testNet
Layout.alignment: Qt.AlignCenter
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Testnet") + translationManager.emptyString
background: "#FFFFFF"
fontColor: "#4A4646"
fontSize: 16
checkedIcon: "../images/checkedVioletIcon.png"
uncheckedIcon: "../images/uncheckedIcon.png"
checked: appWindow.persistentSettings.testnet;
}
}
}
}
}

View File

@@ -39,6 +39,12 @@ ColumnLayout {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
QtObject {
id: d
readonly property string daemonAddressTestnet : "localhost:38018";
readonly property string daemonAddressMainnet : "localhost:18018";
}
onOpacityChanged: visible = opacity !== 0
function onPageClosed(settingsObject) {