mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-23 17:47:31 +00:00
Fix typos
This commit is contained in:
parent
5b2b59420f
commit
989c9c2b55
37 changed files with 57 additions and 57 deletions
|
@ -57,7 +57,7 @@ Version".
|
||||||
Development version
|
Development version
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Check out the code from Github::
|
Check out the code from GitHub::
|
||||||
|
|
||||||
git clone git://github.com/spesmilo/electrum.git
|
git clone git://github.com/spesmilo/electrum.git
|
||||||
cd electrum
|
cd electrum
|
||||||
|
|
|
@ -77,7 +77,7 @@ find -exec touch -d '2000-11-11T11:11:11+00:00' {} +
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# build NSIS installer
|
# build NSIS installer
|
||||||
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself.
|
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script itself.
|
||||||
wine "$WINEPREFIX/drive_c/Program Files (x86)/NSIS/makensis.exe" /DPRODUCT_VERSION=$VERSION electrum.nsi
|
wine "$WINEPREFIX/drive_c/Program Files (x86)/NSIS/makensis.exe" /DPRODUCT_VERSION=$VERSION electrum.nsi
|
||||||
|
|
||||||
cd dist
|
cd dist
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
;Include Modern UI
|
;Include Modern UI
|
||||||
!include "TextFunc.nsh" ;Needed for the $GetSize fuction. I know, doesn't sound logical, it isn't.
|
!include "TextFunc.nsh" ;Needed for the $GetSize function. I know, doesn't sound logical, it isn't.
|
||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
|
@ -138,7 +138,7 @@ Section
|
||||||
WriteRegStr HKCU "Software\Classes\bitcoin" "DefaultIcon" "$\"$INSTDIR\electrum.ico, 0$\""
|
WriteRegStr HKCU "Software\Classes\bitcoin" "DefaultIcon" "$\"$INSTDIR\electrum.ico, 0$\""
|
||||||
WriteRegStr HKCU "Software\Classes\bitcoin\shell\open\command" "" "$\"$INSTDIR\electrum-${PRODUCT_VERSION}.exe$\" $\"%1$\""
|
WriteRegStr HKCU "Software\Classes\bitcoin\shell\open\command" "" "$\"$INSTDIR\electrum-${PRODUCT_VERSION}.exe$\" $\"%1$\""
|
||||||
|
|
||||||
;Adds an uninstaller possibilty to Windows Uninstall or change a program section
|
;Adds an uninstaller possibility to Windows Uninstall or change a program section
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||||
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||||
|
|
4
electrum
4
electrum
|
@ -271,7 +271,7 @@ def get_connected_hw_devices(plugins):
|
||||||
def get_password_for_hw_device_encrypted_storage(plugins):
|
def get_password_for_hw_device_encrypted_storage(plugins):
|
||||||
devices = get_connected_hw_devices(plugins)
|
devices = get_connected_hw_devices(plugins)
|
||||||
if len(devices) == 0:
|
if len(devices) == 0:
|
||||||
print_msg("Error: No connected hw device found. Can not decrypt this wallet.")
|
print_msg("Error: No connected hw device found. Cannot decrypt this wallet.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
elif len(devices) > 1:
|
elif len(devices) > 1:
|
||||||
print_msg("Warning: multiple hardware devices detected. "
|
print_msg("Warning: multiple hardware devices detected. "
|
||||||
|
@ -336,7 +336,7 @@ def init_plugins(config, gui_name):
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# The hook will only be used in the Qt GUI right now
|
# The hook will only be used in the Qt GUI right now
|
||||||
util.setup_thread_excepthook()
|
util.setup_thread_excepthook()
|
||||||
# on osx, delete Process Serial Number arg generated for apps launched in Finder
|
# on macOS, delete Process Serial Number arg generated for apps launched in Finder
|
||||||
sys.argv = list(filter(lambda x: not x.startswith('-psn'), sys.argv))
|
sys.argv = list(filter(lambda x: not x.startswith('-psn'), sys.argv))
|
||||||
|
|
||||||
# old 'help' syntax
|
# old 'help' syntax
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Configuration file for the electrum client
|
# Configuration file for the Electrum client
|
||||||
# Settings defined here are shared across wallets
|
# Settings defined here are shared across wallets
|
||||||
#
|
#
|
||||||
# copy this file to /etc/electrum.conf if you want read-only settings
|
# copy this file to /etc/electrum.conf if you want read-only settings
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# If you want electrum to appear in a linux app launcher ("start menu"), install this by doing:
|
# If you want Electrum to appear in a Linux app launcher ("start menu"), install this by doing:
|
||||||
# sudo desktop-file-install electrum.desktop
|
# sudo desktop-file-install electrum.desktop
|
||||||
|
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
|
|
|
@ -32,7 +32,7 @@ try:
|
||||||
sys.argv = ['']
|
sys.argv = ['']
|
||||||
import kivy
|
import kivy
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# This error ideally shouldn't raised with pre-built packages
|
# This error ideally shouldn't be raised with pre-built packages
|
||||||
sys.exit("Error: Could not import kivy. Please install it using the" + \
|
sys.exit("Error: Could not import kivy. Please install it using the" + \
|
||||||
"instructions mentioned here `http://kivy.org/#download` .")
|
"instructions mentioned here `http://kivy.org/#download` .")
|
||||||
|
|
||||||
|
|
|
@ -398,7 +398,7 @@
|
||||||
|
|
||||||
<ActionOvrButton@ActionButton>
|
<ActionOvrButton@ActionButton>
|
||||||
#on_release:
|
#on_release:
|
||||||
# fixme: the following line was commented out because it does no seem to do what it is intended
|
# fixme: the following line was commented out because it does not seem to do what it is intended
|
||||||
# Clock.schedule_once(lambda dt: self.parent.parent.dismiss() if self.parent else None, 0.05)
|
# Clock.schedule_once(lambda dt: self.parent.parent.dismiss() if self.parent else None, 0.05)
|
||||||
on_press:
|
on_press:
|
||||||
Clock.schedule_once(lambda dt: app.popup_dialog(self.name), 0.05)
|
Clock.schedule_once(lambda dt: app.popup_dialog(self.name), 0.05)
|
||||||
|
|
|
@ -270,7 +270,7 @@ class ElectrumWindow(App):
|
||||||
self.use_change = config.get('use_change', True)
|
self.use_change = config.get('use_change', True)
|
||||||
self.use_unconfirmed = not config.get('confirmed_only', False)
|
self.use_unconfirmed = not config.get('confirmed_only', False)
|
||||||
|
|
||||||
# create triggers so as to minimize updation a max of 2 times a sec
|
# create triggers so as to minimize updating a max of 2 times a sec
|
||||||
self._trigger_update_wallet = Clock.create_trigger(self.update_wallet, .5)
|
self._trigger_update_wallet = Clock.create_trigger(self.update_wallet, .5)
|
||||||
self._trigger_update_status = Clock.create_trigger(self.update_status, .5)
|
self._trigger_update_status = Clock.create_trigger(self.update_status, .5)
|
||||||
self._trigger_update_history = Clock.create_trigger(self.update_history, .5)
|
self._trigger_update_history = Clock.create_trigger(self.update_history, .5)
|
||||||
|
@ -728,7 +728,7 @@ class ElectrumWindow(App):
|
||||||
def show_error(self, error, width='200dp', pos=None, arrow_pos=None,
|
def show_error(self, error, width='200dp', pos=None, arrow_pos=None,
|
||||||
exit=False, icon='atlas://gui/kivy/theming/light/error', duration=0,
|
exit=False, icon='atlas://gui/kivy/theming/light/error', duration=0,
|
||||||
modal=False):
|
modal=False):
|
||||||
''' Show a error Message Bubble.
|
''' Show an error Message Bubble.
|
||||||
'''
|
'''
|
||||||
self.show_info_bubble( text=error, icon=icon, width=width,
|
self.show_info_bubble( text=error, icon=icon, width=width,
|
||||||
pos=pos or Window.center, arrow_pos=arrow_pos, exit=exit,
|
pos=pos or Window.center, arrow_pos=arrow_pos, exit=exit,
|
||||||
|
@ -736,7 +736,7 @@ class ElectrumWindow(App):
|
||||||
|
|
||||||
def show_info(self, error, width='200dp', pos=None, arrow_pos=None,
|
def show_info(self, error, width='200dp', pos=None, arrow_pos=None,
|
||||||
exit=False, duration=0, modal=False):
|
exit=False, duration=0, modal=False):
|
||||||
''' Show a Info Message Bubble.
|
''' Show an Info Message Bubble.
|
||||||
'''
|
'''
|
||||||
self.show_error(error, icon='atlas://gui/kivy/theming/light/important',
|
self.show_error(error, icon='atlas://gui/kivy/theming/light/important',
|
||||||
duration=duration, modal=modal, exit=exit, pos=pos,
|
duration=duration, modal=modal, exit=exit, pos=pos,
|
||||||
|
@ -744,7 +744,7 @@ class ElectrumWindow(App):
|
||||||
|
|
||||||
def show_info_bubble(self, text=_('Hello World'), pos=None, duration=0,
|
def show_info_bubble(self, text=_('Hello World'), pos=None, duration=0,
|
||||||
arrow_pos='bottom_mid', width=None, icon='', modal=False, exit=False):
|
arrow_pos='bottom_mid', width=None, icon='', modal=False, exit=False):
|
||||||
'''Method to show a Information Bubble
|
'''Method to show an Information Bubble
|
||||||
|
|
||||||
.. parameters::
|
.. parameters::
|
||||||
text: Message to be displayed
|
text: Message to be displayed
|
||||||
|
|
|
@ -3,7 +3,7 @@ __all__ = ('NFCBase', 'NFCScanner')
|
||||||
class NFCBase(Widget):
|
class NFCBase(Widget):
|
||||||
''' This is the base Abstract definition class that the actual hardware dependent
|
''' This is the base Abstract definition class that the actual hardware dependent
|
||||||
implementations would be based on. If you want to define a feature that is
|
implementations would be based on. If you want to define a feature that is
|
||||||
accissible and implemented by every platform implementation then define that
|
accessible and implemented by every platform implementation then define that
|
||||||
method in this class.
|
method in this class.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -39,6 +39,6 @@ class NFCBase(Widget):
|
||||||
# load NFCScanner implementation
|
# load NFCScanner implementation
|
||||||
|
|
||||||
NFCScanner = core_select_lib('nfc_manager', (
|
NFCScanner = core_select_lib('nfc_manager', (
|
||||||
# keep the dummy implementtation as the last one to make it the fallback provider.NFCScanner = core_select_lib('nfc_scanner', (
|
# keep the dummy implementation as the last one to make it the fallback provider.NFCScanner = core_select_lib('nfc_scanner', (
|
||||||
('android', 'scanner_android', 'ScannerAndroid'),
|
('android', 'scanner_android', 'ScannerAndroid'),
|
||||||
('dummy', 'scanner_dummy', 'ScannerDummy')), True, 'electrum_gui.kivy')
|
('dummy', 'scanner_dummy', 'ScannerDummy')), True, 'electrum_gui.kivy')
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
'''This is the Android implementatoin of NFC Scanning using the
|
'''This is the Android implementation of NFC Scanning using the
|
||||||
built in NFC adapter of some android phones.
|
built in NFC adapter of some android phones.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ app = None
|
||||||
|
|
||||||
|
|
||||||
class ScannerAndroid(NFCBase):
|
class ScannerAndroid(NFCBase):
|
||||||
''' This is the class responsible for handling the interace with the
|
''' This is the class responsible for handling the interface with the
|
||||||
Android NFC adapter. See Module Documentation for deatils.
|
Android NFC adapter. See Module Documentation for details.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
name = 'NFCAndroid'
|
name = 'NFCAndroid'
|
||||||
|
@ -56,7 +56,7 @@ class ScannerAndroid(NFCBase):
|
||||||
if not self.nfc_adapter:
|
if not self.nfc_adapter:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# specify that we want our activity to remain on top whan a new intent
|
# specify that we want our activity to remain on top when a new intent
|
||||||
# is fired
|
# is fired
|
||||||
self.nfc_pending_intent = PendingIntent.getActivity(context, 0,
|
self.nfc_pending_intent = PendingIntent.getActivity(context, 0,
|
||||||
Intent(context, context.getClass()).addFlags(
|
Intent(context, context.getClass()).addFlags(
|
||||||
|
@ -128,7 +128,7 @@ class ScannerAndroid(NFCBase):
|
||||||
return details
|
return details
|
||||||
|
|
||||||
def on_new_intent(self, intent):
|
def on_new_intent(self, intent):
|
||||||
''' This functions is called when the application receives a
|
''' This function is called when the application receives a
|
||||||
new intent, for the ones the application has registered previously,
|
new intent, for the ones the application has registered previously,
|
||||||
either in the manifest or in the foreground dispatch setup in the
|
either in the manifest or in the foreground dispatch setup in the
|
||||||
nfc_init function above.
|
nfc_init function above.
|
||||||
|
@ -184,7 +184,7 @@ class ScannerAndroid(NFCBase):
|
||||||
return extRecord
|
return extRecord
|
||||||
|
|
||||||
def create_ndef_message(self, *recs):
|
def create_ndef_message(self, *recs):
|
||||||
''' Create the Ndef message that will written to tag
|
''' Create the Ndef message that will be written to tag
|
||||||
'''
|
'''
|
||||||
records = []
|
records = []
|
||||||
for record in recs:
|
for record in recs:
|
||||||
|
|
|
@ -143,7 +143,7 @@ class InfoBubble(Factory.Bubble):
|
||||||
else:
|
else:
|
||||||
Window.add_widget(self)
|
Window.add_widget(self)
|
||||||
|
|
||||||
# wait for the bubble to adjust it's size according to text then animate
|
# wait for the bubble to adjust its size according to text then animate
|
||||||
Clock.schedule_once(lambda dt: self._show(pos, duration))
|
Clock.schedule_once(lambda dt: self._show(pos, duration))
|
||||||
|
|
||||||
def _show(self, pos, duration):
|
def _show(self, pos, duration):
|
||||||
|
|
|
@ -65,7 +65,7 @@ Builder.load_string('''
|
||||||
description: _("Create replaceable transactions.")
|
description: _("Create replaceable transactions.")
|
||||||
message:
|
message:
|
||||||
_('If you check this box, your transactions will be marked as non-final,') \
|
_('If you check this box, your transactions will be marked as non-final,') \
|
||||||
+ ' ' + _('and you will have the possiblity, while they are unconfirmed, to replace them with transactions that pays higher fees.') \
|
+ ' ' + _('and you will have the possibility, while they are unconfirmed, to replace them with transactions that pays higher fees.') \
|
||||||
+ ' ' + _('Note that some merchants do not accept non-final transactions until they are confirmed.')
|
+ ' ' + _('Note that some merchants do not accept non-final transactions until they are confirmed.')
|
||||||
action: partial(root.boolean_dialog, 'use_rbf', _('Replace by fee'), self.message)
|
action: partial(root.boolean_dialog, 'use_rbf', _('Replace by fee'), self.message)
|
||||||
CardSeparator
|
CardSeparator
|
||||||
|
|
|
@ -209,7 +209,7 @@ class SendScreen(CScreen):
|
||||||
if not self.screen.address:
|
if not self.screen.address:
|
||||||
return
|
return
|
||||||
if self.screen.is_pr:
|
if self.screen.is_pr:
|
||||||
# it sould be already saved
|
# it should be already saved
|
||||||
return
|
return
|
||||||
# save address as invoice
|
# save address as invoice
|
||||||
from electrum.paymentrequest import make_unsigned_request, PaymentRequest
|
from electrum.paymentrequest import make_unsigned_request, PaymentRequest
|
||||||
|
@ -460,7 +460,7 @@ class TabbedCarousel(Factory.TabbedPanel):
|
||||||
self.current_tab.state = "normal"
|
self.current_tab.state = "normal"
|
||||||
header.state = 'down'
|
header.state = 'down'
|
||||||
self._current_tab = header
|
self._current_tab = header
|
||||||
# set the carousel to load the appropriate slide
|
# set the carousel to load the appropriate slide
|
||||||
# saved in the screen attribute of the tab head
|
# saved in the screen attribute of the tab head
|
||||||
slide = carousel.slides[header.slide]
|
slide = carousel.slides[header.slide]
|
||||||
if carousel.current_slide != slide:
|
if carousel.current_slide != slide:
|
||||||
|
|
|
@ -63,7 +63,7 @@ class Exception_Window(QWidget, MessageBoxMixin):
|
||||||
self.exc_args = (exctype, value, tb)
|
self.exc_args = (exctype, value, tb)
|
||||||
self.main_window = main_window
|
self.main_window = main_window
|
||||||
QWidget.__init__(self)
|
QWidget.__init__(self)
|
||||||
self.setWindowTitle('Electrum - ' + _('An Error Occured'))
|
self.setWindowTitle('Electrum - ' + _('An Error Occurred'))
|
||||||
self.setMinimumSize(600, 300)
|
self.setMinimumSize(600, 300)
|
||||||
|
|
||||||
main_box = QVBoxLayout()
|
main_box = QVBoxLayout()
|
||||||
|
|
|
@ -441,7 +441,7 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
|
||||||
|
|
||||||
def show_restore(self, wallet, network):
|
def show_restore(self, wallet, network):
|
||||||
# FIXME: these messages are shown after the install wizard is
|
# FIXME: these messages are shown after the install wizard is
|
||||||
# finished and the window closed. On MacOSX they appear parented
|
# finished and the window closed. On macOS they appear parented
|
||||||
# with a re-appeared ghost install wizard window...
|
# with a re-appeared ghost install wizard window...
|
||||||
if network:
|
if network:
|
||||||
def task():
|
def task():
|
||||||
|
|
|
@ -519,7 +519,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
|
|
||||||
tools_menu = menubar.addMenu(_("&Tools"))
|
tools_menu = menubar.addMenu(_("&Tools"))
|
||||||
|
|
||||||
# Settings / Preferences are all reserved keywords in OSX using this as work around
|
# Settings / Preferences are all reserved keywords in macOS using this as work around
|
||||||
tools_menu.addAction(_("Electrum preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog)
|
tools_menu.addAction(_("Electrum preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog)
|
||||||
tools_menu.addAction(_("&Network"), lambda: self.gui_object.show_network_dialog(self))
|
tools_menu.addAction(_("&Network"), lambda: self.gui_object.show_network_dialog(self))
|
||||||
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
||||||
|
@ -2376,7 +2376,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
|
|
||||||
if isinstance(self.wallet, Multisig_Wallet):
|
if isinstance(self.wallet, Multisig_Wallet):
|
||||||
self.show_message(_('WARNING: This is a multi-signature wallet.') + '\n' +
|
self.show_message(_('WARNING: This is a multi-signature wallet.') + '\n' +
|
||||||
_('It can not be "backed up" by simply exporting these private keys.'))
|
_('It cannot be "backed up" by simply exporting these private keys.'))
|
||||||
|
|
||||||
d = WindowModalDialog(self, _('Private keys'))
|
d = WindowModalDialog(self, _('Private keys'))
|
||||||
d.setMinimumSize(980, 300)
|
d.setMinimumSize(980, 300)
|
||||||
|
|
|
@ -199,7 +199,7 @@ class CoinChooserBase(PrintError):
|
||||||
utxos = [c['prevout_hash'] + str(c['prevout_n']) for c in coins]
|
utxos = [c['prevout_hash'] + str(c['prevout_n']) for c in coins]
|
||||||
self.p = PRNG(''.join(sorted(utxos)))
|
self.p = PRNG(''.join(sorted(utxos)))
|
||||||
|
|
||||||
# Copy the ouputs so when adding change we don't modify "outputs"
|
# Copy the outputs so when adding change we don't modify "outputs"
|
||||||
tx = Transaction.from_io([], outputs[:])
|
tx = Transaction.from_io([], outputs[:])
|
||||||
# Weight of the transaction with no inputs and no change
|
# Weight of the transaction with no inputs and no change
|
||||||
# Note: this will use legacy tx serialization as the need for "segwit"
|
# Note: this will use legacy tx serialization as the need for "segwit"
|
||||||
|
|
|
@ -340,7 +340,7 @@ class Commands:
|
||||||
|
|
||||||
@command('')
|
@command('')
|
||||||
def version(self):
|
def version(self):
|
||||||
"""Return the version of electrum."""
|
"""Return the version of Electrum."""
|
||||||
from .version import ELECTRUM_VERSION
|
from .version import ELECTRUM_VERSION
|
||||||
return ELECTRUM_VERSION
|
return ELECTRUM_VERSION
|
||||||
|
|
||||||
|
@ -589,7 +589,7 @@ class Commands:
|
||||||
@command('w')
|
@command('w')
|
||||||
def addrequest(self, amount, memo='', expiration=None, force=False):
|
def addrequest(self, amount, memo='', expiration=None, force=False):
|
||||||
"""Create a payment request, using the first unused address of the wallet.
|
"""Create a payment request, using the first unused address of the wallet.
|
||||||
The address will be condidered as used after this operation.
|
The address will be considered as used after this operation.
|
||||||
If no payment is received, the address will be considered as unused if the payment request is deleted from the wallet."""
|
If no payment is received, the address will be considered as unused if the payment request is deleted from the wallet."""
|
||||||
addr = self.wallet.get_unused_address()
|
addr = self.wallet.get_unused_address()
|
||||||
if addr is None:
|
if addr is None:
|
||||||
|
@ -635,7 +635,7 @@ class Commands:
|
||||||
|
|
||||||
@command('n')
|
@command('n')
|
||||||
def notify(self, address, URL):
|
def notify(self, address, URL):
|
||||||
"""Watch an address. Everytime the address changes, a http POST is sent to the URL."""
|
"""Watch an address. Every time the address changes, a http POST is sent to the URL."""
|
||||||
def callback(x):
|
def callback(x):
|
||||||
import urllib.request
|
import urllib.request
|
||||||
headers = {'content-type':'application/json'}
|
headers = {'content-type':'application/json'}
|
||||||
|
|
|
@ -43,7 +43,7 @@ from . import pem
|
||||||
|
|
||||||
|
|
||||||
def Connection(server, queue, config_path):
|
def Connection(server, queue, config_path):
|
||||||
"""Makes asynchronous connections to a remote electrum server.
|
"""Makes asynchronous connections to a remote Electrum server.
|
||||||
Returns the running thread that is making the connection.
|
Returns the running thread that is making the connection.
|
||||||
|
|
||||||
Once the thread has connected, it finishes, placing a tuple on the
|
Once the thread has connected, it finishes, placing a tuple on the
|
||||||
|
@ -240,7 +240,7 @@ class TcpConnection(threading.Thread, util.PrintError):
|
||||||
|
|
||||||
class Interface(util.PrintError):
|
class Interface(util.PrintError):
|
||||||
"""The Interface class handles a socket connected to a single remote
|
"""The Interface class handles a socket connected to a single remote
|
||||||
electrum server. It's exposed API is:
|
Electrum server. Its exposed API is:
|
||||||
|
|
||||||
- Member functions close(), fileno(), get_responses(), has_timed_out(),
|
- Member functions close(), fileno(), get_responses(), has_timed_out(),
|
||||||
ping_required(), queue_request(), send_requests()
|
ping_required(), queue_request(), send_requests()
|
||||||
|
|
|
@ -147,7 +147,7 @@ class Imported_KeyStore(Software_KeyStore):
|
||||||
privkey, compressed, txin_type, internal_use=True)
|
privkey, compressed, txin_type, internal_use=True)
|
||||||
# NOTE: if the same pubkey is reused for multiple addresses (script types),
|
# NOTE: if the same pubkey is reused for multiple addresses (script types),
|
||||||
# there will only be one pubkey-privkey pair for it in self.keypairs,
|
# there will only be one pubkey-privkey pair for it in self.keypairs,
|
||||||
# and the privkey will encode a txin_type but that txin_type can not be trusted.
|
# and the privkey will encode a txin_type but that txin_type cannot be trusted.
|
||||||
# Removing keys complicates this further.
|
# Removing keys complicates this further.
|
||||||
self.keypairs[pubkey] = pw_encode(serialized_privkey, password)
|
self.keypairs[pubkey] = pw_encode(serialized_privkey, password)
|
||||||
return txin_type, pubkey
|
return txin_type, pubkey
|
||||||
|
@ -512,7 +512,7 @@ class Hardware_KeyStore(KeyStore, Xpub):
|
||||||
}
|
}
|
||||||
|
|
||||||
def unpaired(self):
|
def unpaired(self):
|
||||||
'''A device paired with the wallet was diconnected. This can be
|
'''A device paired with the wallet was disconnected. This can be
|
||||||
called in any thread context.'''
|
called in any thread context.'''
|
||||||
self.print_error("unpaired")
|
self.print_error("unpaired")
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ class Mnemonic(object):
|
||||||
|
|
||||||
def make_seed(self, seed_type='standard', num_bits=132):
|
def make_seed(self, seed_type='standard', num_bits=132):
|
||||||
prefix = version.seed_prefix(seed_type)
|
prefix = version.seed_prefix(seed_type)
|
||||||
# increase num_bits in order to obtain a uniform distibution for the last word
|
# increase num_bits in order to obtain a uniform distribution for the last word
|
||||||
bpw = math.log(len(self.wordlist), 2)
|
bpw = math.log(len(self.wordlist), 2)
|
||||||
# rounding
|
# rounding
|
||||||
n = int(math.ceil(num_bits/bpw) * bpw)
|
n = int(math.ceil(num_bits/bpw) * bpw)
|
||||||
|
|
|
@ -148,7 +148,7 @@ class PaymentRequest:
|
||||||
self.error = "Error: Cannot parse payment request"
|
self.error = "Error: Cannot parse payment request"
|
||||||
return False
|
return False
|
||||||
if not pr.signature:
|
if not pr.signature:
|
||||||
# the address will be dispayed as requestor
|
# the address will be displayed as requestor
|
||||||
self.requestor = None
|
self.requestor = None
|
||||||
return True
|
return True
|
||||||
if pr.pki_type in ["x509+sha256", "x509+sha1"]:
|
if pr.pki_type in ["x509+sha256", "x509+sha1"]:
|
||||||
|
|
|
@ -1315,7 +1315,7 @@ class Abstract_Wallet(PrintError):
|
||||||
self.synchronizer.release()
|
self.synchronizer.release()
|
||||||
self.synchronizer = None
|
self.synchronizer = None
|
||||||
self.verifier = None
|
self.verifier = None
|
||||||
# Now no references to the syncronizer or verifier
|
# Now no references to the synchronizer or verifier
|
||||||
# remain so they will be GC-ed
|
# remain so they will be GC-ed
|
||||||
self.storage.put('stored_height', self.get_local_height())
|
self.storage.put('stored_height', self.get_local_height())
|
||||||
self.save_transactions()
|
self.save_transactions()
|
||||||
|
|
|
@ -270,7 +270,7 @@ class DigitalBitbox_Client():
|
||||||
|
|
||||||
choices = [
|
choices = [
|
||||||
_('Do not pair'),
|
_('Do not pair'),
|
||||||
_('Import pairing from the digital bitbox desktop app'),
|
_('Import pairing from the Digital Bitbox desktop app'),
|
||||||
]
|
]
|
||||||
try:
|
try:
|
||||||
reply = self.handler.win.query_choice(_('Mobile pairing options'), choices)
|
reply = self.handler.win.query_choice(_('Mobile pairing options'), choices)
|
||||||
|
|
|
@ -201,7 +201,7 @@ class Plugin(BasePlugin):
|
||||||
d.setMinimumSize(500, 200)
|
d.setMinimumSize(500, 200)
|
||||||
|
|
||||||
vbox = QVBoxLayout(d)
|
vbox = QVBoxLayout(d)
|
||||||
vbox.addWidget(QLabel(_('Server hosting your email acount')))
|
vbox.addWidget(QLabel(_('Server hosting your email account')))
|
||||||
grid = QGridLayout()
|
grid = QGridLayout()
|
||||||
vbox.addLayout(grid)
|
vbox.addLayout(grid)
|
||||||
grid.addWidget(QLabel('Server (IMAP)'), 0, 0)
|
grid.addWidget(QLabel('Server (IMAP)'), 0, 0)
|
||||||
|
|
|
@ -34,7 +34,7 @@ from electrum.i18n import _
|
||||||
from electrum.util import PrintError
|
from electrum.util import PrintError
|
||||||
|
|
||||||
# The trickiest thing about this handler was getting windows properly
|
# The trickiest thing about this handler was getting windows properly
|
||||||
# parented on MacOSX.
|
# parented on macOS.
|
||||||
class QtHandlerBase(QObject, PrintError):
|
class QtHandlerBase(QObject, PrintError):
|
||||||
'''An interface between the GUI (here, QT) and the device handling
|
'''An interface between the GUI (here, QT) and the device handling
|
||||||
logic for handling I/O.'''
|
logic for handling I/O.'''
|
||||||
|
|
|
@ -143,7 +143,7 @@ class KeepKeyClientBase(GuiMixin, PrintError):
|
||||||
def expand_path(n):
|
def expand_path(n):
|
||||||
'''Convert bip32 path to list of uint32 integers with prime flags
|
'''Convert bip32 path to list of uint32 integers with prime flags
|
||||||
0/-1/1' -> [0, 0x80000001, 0x80000001]'''
|
0/-1/1' -> [0, 0x80000001, 0x80000001]'''
|
||||||
# This code is similar to code in trezorlib where it unforunately
|
# This code is similar to code in trezorlib where it unfortunately
|
||||||
# is not declared as a staticmethod. Our n has an extra element.
|
# is not declared as a staticmethod. Our n has an extra element.
|
||||||
PRIME_DERIVATION_FLAG = 0x80000000
|
PRIME_DERIVATION_FLAG = 0x80000000
|
||||||
path = []
|
path = []
|
||||||
|
|
|
@ -99,7 +99,7 @@ class KeepKeyCompatiblePlugin(HW_PluginBase):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def create_client(self, device, handler):
|
def create_client(self, device, handler):
|
||||||
# disable bridge because it seems to never returns if keepkey is plugged
|
# disable bridge because it seems to never returns if KeepKey is plugged
|
||||||
#transport = self._try_bridge(device) or self._try_hid(device)
|
#transport = self._try_bridge(device) or self._try_hid(device)
|
||||||
transport = self._try_hid(device)
|
transport = self._try_hid(device)
|
||||||
if not transport:
|
if not transport:
|
||||||
|
@ -395,7 +395,7 @@ class KeepKeyCompatiblePlugin(HW_PluginBase):
|
||||||
o.script_pubkey = bfh(vout['scriptPubKey'])
|
o.script_pubkey = bfh(vout['scriptPubKey'])
|
||||||
return t
|
return t
|
||||||
|
|
||||||
# This function is called from the trezor libraries (via tx_api)
|
# This function is called from the TREZOR libraries (via tx_api)
|
||||||
def get_tx(self, tx_hash):
|
def get_tx(self, tx_hash):
|
||||||
tx = self.prev_tx[tx_hash]
|
tx = self.prev_tx[tx_hash]
|
||||||
return self.electrum_tx_to_txtype(tx)
|
return self.electrum_tx_to_txtype(tx)
|
||||||
|
|
|
@ -457,7 +457,7 @@ class SettingsDialog(WindowModalDialog):
|
||||||
settings_glayout = QGridLayout()
|
settings_glayout = QGridLayout()
|
||||||
|
|
||||||
# Settings tab - Label
|
# Settings tab - Label
|
||||||
label_msg = QLabel(_("Name this {}. If you have mutiple devices "
|
label_msg = QLabel(_("Name this {}. If you have multiple devices "
|
||||||
"their labels help distinguish them.")
|
"their labels help distinguish them.")
|
||||||
.format(plugin.device))
|
.format(plugin.device))
|
||||||
label_msg.setWordWrap(True)
|
label_msg.setWordWrap(True)
|
||||||
|
|
|
@ -32,7 +32,7 @@ helpTxt = [_("Your Ledger Wallet wants to tell you a one-time PIN code.<br><br>"
|
||||||
_("Waiting for authentication on your mobile phone"),
|
_("Waiting for authentication on your mobile phone"),
|
||||||
_("Transaction accepted by mobile phone. Waiting for confirmation."),
|
_("Transaction accepted by mobile phone. Waiting for confirmation."),
|
||||||
_("Click Pair button to begin pairing a mobile phone."),
|
_("Click Pair button to begin pairing a mobile phone."),
|
||||||
_("Scan this QR code with your LedgerWallet phone app to pair it with this Ledger device.<br>"
|
_("Scan this QR code with your Ledger Wallet phone app to pair it with this Ledger device.<br>"
|
||||||
"To complete pairing you will need your security card to answer a challenge." )
|
"To complete pairing you will need your security card to answer a challenge." )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -544,7 +544,7 @@ class LedgerPlugin(HW_PluginBase):
|
||||||
if device.interface_number == 0 or device.usage_page == 0xffa0:
|
if device.interface_number == 0 or device.usage_page == 0xffa0:
|
||||||
ledger = True
|
ledger = True
|
||||||
else:
|
else:
|
||||||
return None # non-compatible interface of a nano s or blue
|
return None # non-compatible interface of a Nano S or Blue
|
||||||
dev = hid.device()
|
dev = hid.device()
|
||||||
dev.open_path(device.path)
|
dev.open_path(device.path)
|
||||||
dev.set_nonblocking(True)
|
dev.set_nonblocking(True)
|
||||||
|
|
|
@ -149,7 +149,7 @@ class TrezorClientBase(GuiMixin, PrintError):
|
||||||
def expand_path(n):
|
def expand_path(n):
|
||||||
'''Convert bip32 path to list of uint32 integers with prime flags
|
'''Convert bip32 path to list of uint32 integers with prime flags
|
||||||
0/-1/1' -> [0, 0x80000001, 0x80000001]'''
|
0/-1/1' -> [0, 0x80000001, 0x80000001]'''
|
||||||
# This code is similar to code in trezorlib where it unforunately
|
# This code is similar to code in trezorlib where it unfortunately
|
||||||
# is not declared as a staticmethod. Our n has an extra element.
|
# is not declared as a staticmethod. Our n has an extra element.
|
||||||
PRIME_DERIVATION_FLAG = 0x80000000
|
PRIME_DERIVATION_FLAG = 0x80000000
|
||||||
path = []
|
path = []
|
||||||
|
|
|
@ -467,7 +467,7 @@ class SettingsDialog(WindowModalDialog):
|
||||||
settings_glayout = QGridLayout()
|
settings_glayout = QGridLayout()
|
||||||
|
|
||||||
# Settings tab - Label
|
# Settings tab - Label
|
||||||
label_msg = QLabel(_("Name this {}. If you have mutiple devices "
|
label_msg = QLabel(_("Name this {}. If you have multiple devices "
|
||||||
"their labels help distinguish them.")
|
"their labels help distinguish them.")
|
||||||
.format(plugin.device))
|
.format(plugin.device))
|
||||||
label_msg.setWordWrap(True)
|
label_msg.setWordWrap(True)
|
||||||
|
|
|
@ -479,7 +479,7 @@ class TrezorPlugin(HW_PluginBase):
|
||||||
o.script_pubkey = bfh(vout['scriptPubKey'])
|
o.script_pubkey = bfh(vout['scriptPubKey'])
|
||||||
return t
|
return t
|
||||||
|
|
||||||
# This function is called from the trezor libraries (via tx_api)
|
# This function is called from the TREZOR libraries (via tx_api)
|
||||||
def get_tx(self, tx_hash):
|
def get_tx(self, tx_hash):
|
||||||
tx = self.prev_tx[tx_hash]
|
tx = self.prev_tx[tx_hash]
|
||||||
return self.electrum_tx_to_txtype(tx)
|
return self.electrum_tx_to_txtype(tx)
|
||||||
|
|
|
@ -149,7 +149,7 @@ class Plugin(TrustedCoinPlugin):
|
||||||
vbox.addLayout(hbox)
|
vbox.addLayout(hbox)
|
||||||
vbox.addStretch(10)
|
vbox.addStretch(10)
|
||||||
|
|
||||||
msg = _('TrustedCoin charges a small fee to co-sign transactions. The fee depends on how many prepaid transactions you buy. An extra output is added to your transaction everytime you run out of prepaid transactions.') + '<br/>'
|
msg = _('TrustedCoin charges a small fee to co-sign transactions. The fee depends on how many prepaid transactions you buy. An extra output is added to your transaction every time you run out of prepaid transactions.') + '<br/>'
|
||||||
label = QLabel(msg)
|
label = QLabel(msg)
|
||||||
label.setWordWrap(1)
|
label.setWordWrap(1)
|
||||||
vbox.addWidget(label)
|
vbox.addWidget(label)
|
||||||
|
@ -258,7 +258,7 @@ class Plugin(TrustedCoinPlugin):
|
||||||
msg = _('Then, enter your Google Authenticator code:')
|
msg = _('Then, enter your Google Authenticator code:')
|
||||||
else:
|
else:
|
||||||
label = QLabel(
|
label = QLabel(
|
||||||
"This wallet is already registered with Trustedcoin. "
|
"This wallet is already registered with TrustedCoin. "
|
||||||
"To finalize wallet creation, please enter your Google Authenticator Code. "
|
"To finalize wallet creation, please enter your Google Authenticator Code. "
|
||||||
)
|
)
|
||||||
label.setWordWrap(1)
|
label.setWordWrap(1)
|
||||||
|
|
|
@ -176,7 +176,7 @@ class TrustedCoinCosignerClient(object):
|
||||||
|
|
||||||
def transfer_credit(self, id, recipient, otp, signature_callback):
|
def transfer_credit(self, id, recipient, otp, signature_callback):
|
||||||
"""
|
"""
|
||||||
Tranfer a cosigner's credits to another cosigner.
|
Transfer a cosigner's credits to another cosigner.
|
||||||
:param id: the id of the sending cosigner
|
:param id: the id of the sending cosigner
|
||||||
:param recipient: the id of the recipient cosigner
|
:param recipient: the id of the recipient cosigner
|
||||||
:param otp: the one time password (of the sender)
|
:param otp: the one time password (of the sender)
|
||||||
|
@ -250,7 +250,7 @@ class Wallet_2fa(Multisig_Wallet):
|
||||||
try:
|
try:
|
||||||
tx = mk_tx(outputs + [fee_output])
|
tx = mk_tx(outputs + [fee_output])
|
||||||
except NotEnoughFunds:
|
except NotEnoughFunds:
|
||||||
# trustedcoin won't charge if the total inputs is
|
# TrustedCoin won't charge if the total inputs is
|
||||||
# lower than their fee
|
# lower than their fee
|
||||||
tx = mk_tx(outputs)
|
tx = mk_tx(outputs)
|
||||||
if tx.input_value() >= fee:
|
if tx.input_value() >= fee:
|
||||||
|
|
Loading…
Add table
Reference in a new issue