mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-31 09:21:39 +00:00
Merge branch 'master' of https://github.com/spesmilo/electrum into uncopyable-seed
This commit is contained in:
commit
939ed8fe40
14 changed files with 23 additions and 238 deletions
|
@ -1,4 +1,5 @@
|
|||
include README LICENCE RELEASE-NOTES AUTHORS
|
||||
include LICENCE RELEASE-NOTES AUTHORS
|
||||
include README.rst
|
||||
include electrum.conf.sample
|
||||
include electrum.desktop
|
||||
include *.py
|
||||
|
@ -12,4 +13,4 @@ include app.fil
|
|||
include icons.qrc
|
||||
recursive-include icons *
|
||||
recursive-include scripts *
|
||||
recursive-include docs *
|
||||
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
# Release 2.5.1 (bugfixes)
|
||||
* signatures in transactions were still using the old class
|
||||
* make sure that setup.py uses python2
|
||||
* fix wizard crash with trustedcoin plugin
|
||||
* fix socket infinite loop
|
||||
* fix history bug #1479
|
||||
|
||||
# Release 2.5
|
||||
* Low-S values are used in signatures (BIP 62).
|
||||
* The Kivy GUI has been merged into master.
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
To add a new theme, simply create a new directory in the electrum data directory (either ./data or your system wide local data).
|
||||
|
||||
Inside your directory create a file called name.cfg with the name of that theme.
|
||||
|
||||
Create another file called style.css - this will be your CSS for the theme (see other themes for reference).
|
||||
|
||||
Documentation on Qt's stylesheets (used by Electrum):
|
||||
|
||||
Overview: http://qt-project.org/doc/qt-4.8/stylesheet.html
|
||||
Examples: http://qt-project.org/doc/qt-4.8/stylesheet-examples.html
|
||||
Reference manual: http://doc.qt.nokia.com/4.7-snapshot/stylesheet-reference.html
|
||||
|
|
@ -1 +0,0 @@
|
|||
Cleanlook
|
|
@ -1,62 +0,0 @@
|
|||
#main_window
|
||||
{
|
||||
background: qlineargradient(x1: 0, y1: 0, x2:0,y2:1, stop: 0 white , stop: 1 #E8E8E8);
|
||||
}
|
||||
|
||||
MiniWindow QPushButton {
|
||||
color: #777;
|
||||
border: 1px solid #CCC;
|
||||
border-radius: 0px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 white, stop: 1 #E6E6E6);
|
||||
min-height: 30px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
#send_button{
|
||||
color: #FFF;
|
||||
border: 1px solid #3786E6;
|
||||
border-radius: 4px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #72B2F8, stop: 1 #3484E6);
|
||||
padding: 2px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#send_button:disabled{
|
||||
color: #D3E8FE;
|
||||
border: 1px solid #6DAEF7;
|
||||
border-radius: 4px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #A5CFFA, stop: 1 #72B2F8);
|
||||
}
|
||||
#address_input, #amount_input, #label_input
|
||||
{
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
min-height: 23px;
|
||||
border: 1px solid #AAA9A9;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#address_input[isValid=true]
|
||||
{
|
||||
color: #4D9948;
|
||||
}
|
||||
|
||||
#address_input[isValid=false]
|
||||
{
|
||||
color: #CE4141;
|
||||
}
|
||||
|
||||
#balance_label
|
||||
{
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#history
|
||||
{
|
||||
color: #888;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
Dark
|
|
@ -1,35 +0,0 @@
|
|||
#main_window
|
||||
{
|
||||
background-image: url(:/icons/dark_background.png);
|
||||
}
|
||||
|
||||
#address_input[readOnly=true], #amount_input[readOnly=true]
|
||||
{
|
||||
font: italic;
|
||||
color: gray;
|
||||
}
|
||||
#address_input[readOnly=false], #amount_input[readOnly=false]
|
||||
{
|
||||
font: normal;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#valid_address::indicator
|
||||
{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
#valid_address::indicator:checked
|
||||
{
|
||||
image: url(confirmed.png);
|
||||
}
|
||||
#valid_address::indicator:unchecked
|
||||
{
|
||||
image: url(unconfirmed.png);
|
||||
}
|
||||
|
||||
#balance_label
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
Sahara
|
|
@ -1,102 +0,0 @@
|
|||
#main_window
|
||||
{
|
||||
background: qlineargradient(x1: 0, y1: 0, x2:0,y2:1, stop: 0 white , stop: 1 #F2E3BE);
|
||||
}
|
||||
|
||||
MiniWindow QPushButton {
|
||||
color: #C1A76D;
|
||||
border: 1px solid #A7811C;
|
||||
border-radius: 0px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 white, stop: 1 #F2E3BE);
|
||||
min-height: 25px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
#send_button{
|
||||
color: #FEEBA7;
|
||||
border: 1px solid #AD8B35;
|
||||
border-radius: 4px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #E0A035, stop: 1 #AD8B35);
|
||||
min-width: 80px;
|
||||
min-height: 23px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#send_button:disabled{
|
||||
color: #FEEDD3;
|
||||
border: 1px solid #F7D46D;
|
||||
border-radius: 4px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #FAEEA5, stop: 1 #DBC050);
|
||||
min-width: 80px;
|
||||
min-height: 23px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#receive_button
|
||||
{
|
||||
color: #FEEBA7;
|
||||
border: 1px solid #AD8B35;
|
||||
border-radius: 4px;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #E0A035, stop: 1 #AD8B35);
|
||||
min-height: 25px;
|
||||
min-width: 30px;
|
||||
}
|
||||
#receive_button[isActive=true]
|
||||
{
|
||||
color: #FEEBA7;
|
||||
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||
stop: 0 #E0A035, stop: 1 #987620);
|
||||
}
|
||||
|
||||
#address_input, #amount_input
|
||||
{
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #CBAE69;
|
||||
width: 225px;
|
||||
}
|
||||
|
||||
#address_input[isValid=true]
|
||||
{
|
||||
color: #4D9948;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #CBAE69;
|
||||
width: 225px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#address_input[isValid=false]
|
||||
{
|
||||
color: #CE4141;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #CBAE69;
|
||||
width: 225px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#address_input[isValid=placeholder]
|
||||
{
|
||||
color: #DEC58D;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #CBAE69;
|
||||
width: 225px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
#balance_label
|
||||
{
|
||||
color: #7E5907;
|
||||
}
|
||||
|
||||
#history
|
||||
{
|
||||
color: #8B6914;
|
||||
}
|
||||
|
|
@ -745,7 +745,7 @@ class Transaction:
|
|||
for_sig = Hash(self.tx_for_sig(i).decode('hex'))
|
||||
pkey = regenerate_key(sec)
|
||||
secexp = pkey.secret
|
||||
private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
|
||||
private_key = bitcoin.MySigningKey.from_secret_exponent( secexp, curve = SECP256k1 )
|
||||
public_key = private_key.get_verifying_key()
|
||||
sig = private_key.sign_digest_deterministic( for_sig, hashfunc=hashlib.sha256, sigencode = ecdsa.util.sigencode_der )
|
||||
assert public_key.verify_digest( sig, for_sig, sigdecode = ecdsa.util.sigdecode_der)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
ELECTRUM_VERSION = '2.5' # version of the client package
|
||||
ELECTRUM_VERSION = '2.5.1' # version of the client package
|
||||
PROTOCOL_VERSION = '0.10' # protocol version requested
|
||||
NEW_SEED_VERSION = 11 # electrum versions >= 2.0
|
||||
OLD_SEED_VERSION = 4 # electrum versions < 2.0
|
||||
|
|
|
@ -769,9 +769,11 @@ class Abstract_Wallet(PrintError):
|
|||
dd.pop(addr)
|
||||
else:
|
||||
dd[addr] = l
|
||||
self.txi.pop(tx_hash)
|
||||
self.txo.pop(tx_hash)
|
||||
|
||||
try:
|
||||
self.txi.pop(tx_hash)
|
||||
self.txo.pop(tx_hash)
|
||||
except KeyError:
|
||||
self.print_error("tx was not in history", tx_hash)
|
||||
|
||||
def receive_tx_callback(self, tx_hash, tx, tx_height):
|
||||
self.add_transaction(tx_hash, tx)
|
||||
|
|
|
@ -21,8 +21,8 @@ from collections import defaultdict
|
|||
try:
|
||||
from SimpleWebSocketServer import WebSocket, SimpleSSLWebSocketServer
|
||||
except ImportError:
|
||||
print "install SimpleWebSocketServer"
|
||||
sys.exit()
|
||||
import sys
|
||||
sys.exit("install SimpleWebSocketServer")
|
||||
|
||||
import util
|
||||
|
||||
|
@ -93,7 +93,7 @@ class WsClientThread(util.DaemonThread):
|
|||
except Queue.Empty:
|
||||
continue
|
||||
id = r.get('id')
|
||||
if id is None:
|
||||
if id is None:
|
||||
method = r.get('method')
|
||||
params = r.get('params')
|
||||
else:
|
||||
|
|
17
setup.py
17
setup.py
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/env python2
|
||||
|
||||
# python setup.py sdist --format=zip,gztar
|
||||
|
||||
|
@ -8,23 +8,20 @@ import sys
|
|||
import platform
|
||||
import imp
|
||||
|
||||
|
||||
version = imp.load_source('version', 'lib/version.py')
|
||||
|
||||
if sys.version_info[:3] < (2, 7, 0):
|
||||
sys.exit("Error: Electrum requires Python version >= 2.7.0...")
|
||||
|
||||
|
||||
|
||||
data_files = []
|
||||
if platform.system() in [ 'Linux', 'FreeBSD', 'DragonFly']:
|
||||
|
||||
if platform.system() in ['Linux', 'FreeBSD', 'DragonFly']:
|
||||
usr_share = os.path.join(sys.prefix, "share")
|
||||
data_files += [
|
||||
(os.path.join(usr_share, 'applications/'), ['electrum.desktop']),
|
||||
(os.path.join(usr_share, 'pixmaps/'), ['icons/electrum.png'])
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
name="Electrum",
|
||||
version=version.ELECTRUM_VERSION,
|
||||
|
@ -48,14 +45,6 @@ setup(
|
|||
'www/index.html',
|
||||
'wordlist/*.txt',
|
||||
'locale/*/LC_MESSAGES/electrum.mo',
|
||||
],
|
||||
'electrum_gui': [
|
||||
"qt/themes/cleanlook/name.cfg",
|
||||
"qt/themes/cleanlook/style.css",
|
||||
"qt/themes/sahara/name.cfg",
|
||||
"qt/themes/sahara/style.css",
|
||||
"qt/themes/dark/name.cfg",
|
||||
"qt/themes/dark/style.css",
|
||||
]
|
||||
},
|
||||
scripts=['electrum'],
|
||||
|
|
Loading…
Add table
Reference in a new issue