diff --git a/contrib/build-wine/deterministic.spec b/contrib/build-wine/deterministic.spec index 875a091ae..c6122a699 100644 --- a/contrib/build-wine/deterministic.spec +++ b/contrib/build-wine/deterministic.spec @@ -93,7 +93,7 @@ exe_standalone = EXE( a.scripts, a.binaries, a.datas, - name=os.path.join('build\\pyi.win32\\electrum', cmdline_name + ".exe"), + name=os.path.join('build\\pyi.win32\\electrum-lbry', cmdline_name + ".exe"), debug=False, strip=None, upx=False, @@ -106,7 +106,7 @@ exe_portable = EXE( a.scripts, a.binaries, a.datas + [ ('is_portable', 'README.md', 'DATA' ) ], - name=os.path.join('build\\pyi.win32\\electrum', cmdline_name + "-portable.exe"), + name=os.path.join('build\\pyi.win32\\electrum-lbry', cmdline_name + "-portable.exe"), debug=False, strip=None, upx=False, @@ -120,7 +120,7 @@ exe_dependent = EXE( pyz, a.scripts, exclude_binaries=True, - name=os.path.join('build\\pyi.win32\\electrum', cmdline_name), + name=os.path.join('build\\pyi.win32\\electrum-lbry', cmdline_name), debug=False, strip=None, upx=False, diff --git a/contrib/build-wine/docker/Dockerfile b/contrib/build-wine/docker/Dockerfile index 340bad00d..13d335228 100644 --- a/contrib/build-wine/docker/Dockerfile +++ b/contrib/build-wine/docker/Dockerfile @@ -20,7 +20,7 @@ RUN dpkg --add-architecture i386 && \ wine-stable-i386:i386=3.0.1~bionic \ wine-stable:amd64=3.0.1~bionic \ winehq-stable:amd64=3.0.1~bionic \ - git=1:2.17.1-1ubuntu0.3 \ + git \ p7zip-full=16.02+dfsg-6 \ make=4.1-9.1ubuntu1 \ mingw-w64=5.0.3-1 \ diff --git a/contrib/build-wine/electrum.nsi b/contrib/build-wine/electrum.nsi index ed7adcc3e..1c4625f2e 100644 --- a/contrib/build-wine/electrum.nsi +++ b/contrib/build-wine/electrum.nsi @@ -2,11 +2,11 @@ ;Include Modern UI !include "TextFunc.nsh" ;Needed for the $GetSize function. I know, doesn't sound logical, it isn't. !include "MUI2.nsh" - + ;-------------------------------- ;Variables - !define PRODUCT_NAME "Electrum" + !define PRODUCT_NAME "LBRY_Wallet" !define PRODUCT_WEB_SITE "https://github.com/spesmilo/electrum" !define PRODUCT_PUBLISHER "Electrum Technologies GmbH" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" @@ -16,7 +16,7 @@ ;Name and file Name "${PRODUCT_NAME}" - OutFile "dist/electrum-setup.exe" + OutFile "dist/electrum-lbry-setup.exe" ;Default installation folder InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" @@ -29,31 +29,31 @@ ;Specifies whether or not the installer will perform a CRC on itself before allowing an install CRCCheck on - + ;Sets whether or not the details of the install are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. ShowInstDetails show - + ;Sets whether or not the details of the uninstall are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. ShowUninstDetails show - + ;Sets the colors to use for the install info screen (the default is 00FF00 000000. Use the form RRGGBB (in hexadecimal, as in HTML, only minus the leading '#', since # can be used for comments). Note that if "/windows" is specified as the only parameter, the default windows colors will be used. InstallColors /windows - + ;This command sets the compression algorithm used to compress files/data in the installer. (http://nsis.sourceforge.net/Reference/SetCompressor) SetCompressor /SOLID lzma - + ;Sets the dictionary size in megabytes (MB) used by the LZMA compressor (default is 8 MB). SetCompressorDictSize 64 - + ;Sets the text that is shown (by default it is 'Nullsoft Install System vX.XX') in the bottom of the install window. Setting this to an empty string ("") uses the default; to set the string to blank, use " " (a space). - BrandingText "${PRODUCT_NAME} Installer v${PRODUCT_VERSION}" - + BrandingText "${PRODUCT_NAME} Installer v${PRODUCT_VERSION}" + ;Sets what the titlebars of the installer will display. By default, it is 'Name Setup', where Name is specified with the Name command. You can, however, override it with 'MyApp Installer' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string) Caption "${PRODUCT_NAME}" ;Adds the Product Version on top of the Version Tab in the Properties of the file. VIProductVersion 1.0.0.0 - + ;VIAddVersionKey - Adds a field in the Version Tab of the File Properties. This can either be a field provided by the system or a user defined field. VIAddVersionKey ProductName "${PRODUCT_NAME} Installer" VIAddVersionKey Comments "The installer for ${PRODUCT_NAME}" @@ -63,7 +63,7 @@ VIAddVersionKey FileVersion ${PRODUCT_VERSION} VIAddVersionKey ProductVersion ${PRODUCT_VERSION} VIAddVersionKey InternalName "${PRODUCT_NAME} Installer" - VIAddVersionKey LegalTrademarks "${PRODUCT_NAME} is a trademark of ${PRODUCT_PUBLISHER}" + VIAddVersionKey LegalTrademarks "${PRODUCT_NAME} is a trademark of ${PRODUCT_PUBLISHER}" VIAddVersionKey OriginalFilename "${PRODUCT_NAME}.exe" ;-------------------------------- @@ -71,9 +71,9 @@ !define MUI_ABORTWARNING !define MUI_ABORTWARNING_TEXT "Are you sure you wish to abort the installation of ${PRODUCT_NAME}?" - + !define MUI_ICON "c:\electrum\icons\electrum.ico" - + ;-------------------------------- ;Pages @@ -108,7 +108,7 @@ Section RMDir /r "$INSTDIR\*.*" Delete "$DESKTOP\${PRODUCT_NAME}.lnk" Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" - + ;Files to pack into the installer File /r "dist\electrum\*.*" File "c:\electrum\icons\electrum.ico" @@ -122,14 +122,14 @@ Section ;Create desktop shortcut DetailPrint "Creating desktop shortcut..." - CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "" + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-lbry-${PRODUCT_VERSION}.exe" "" ;Create start-menu items DetailPrint "Creating start-menu items..." CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 - CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" 0 - CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Testnet.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "--testnet" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-lbry-${PRODUCT_VERSION}.exe" "" "$INSTDIR\electrum-lbry-${PRODUCT_VERSION}.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Testnet.lnk" "$INSTDIR\electrum-lbry-${PRODUCT_VERSION}.exe" "--testnet" "$INSTDIR\electrum-lbry-${PRODUCT_VERSION}.exe" 0 ;Links bitcoin: URI's to Electrum @@ -167,7 +167,7 @@ Section "Uninstall" Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" RMDir "$SMPROGRAMS\${PRODUCT_NAME}" - DeleteRegKey HKCU "Software\Classes\bitcoin" + DeleteRegKey HKCU "Software\Classes\lbc" DeleteRegKey HKCU "Software\${PRODUCT_NAME}" DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}" SectionEnd diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py index 431e72e00..8edef001c 100644 --- a/electrum/base_wizard.py +++ b/electrum/base_wizard.py @@ -110,7 +110,7 @@ class BaseWizard(object): ('standard', _("Standard wallet")), ('2fa', _("Wallet with two-factor authentication")), ('multisig', _("Multi-signature wallet")), - ('imported', _("Import Bitcoin addresses or private keys")), + ('imported', _("Import LBRY Credits addresses or private keys")), ] choices = [pair for pair in wallet_kinds if pair[0] in wallet_types] self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type) @@ -183,8 +183,8 @@ class BaseWizard(object): def import_addresses_or_keys(self): v = lambda x: keystore.is_address_list(x) or keystore.is_private_key_list(x) - title = _("Import Bitcoin Addresses") - message = _("Enter a list of Bitcoin addresses (this will create a watching-only wallet), or a list of private keys.") + title = _("Import LBRY Credits Addresses") + message = _("Enter a list of LBRY Credits addresses (this will create a watching-only wallet), or a list of private keys.") self.add_xpub_dialog(title=title, message=message, run_next=self.on_import, is_valid=v, allow_multi=True, show_wif_help=True) @@ -340,14 +340,14 @@ class BaseWizard(object): # There is no general standard for HD multisig. # For legacy, this is partially compatible with BIP45; assumes index=0 # For segwit, a custom path is used, as there is no standard at all. - default_choice_idx = 2 + default_choice_idx = 0 choices = [ ('standard', 'legacy multisig (p2sh)', "m/45'/0"), ('p2wsh-p2sh', 'p2sh-segwit multisig (p2wsh-p2sh)', purpose48_derivation(0, xtype='p2wsh-p2sh')), ('p2wsh', 'native segwit multisig (p2wsh)', purpose48_derivation(0, xtype='p2wsh')), ] else: - default_choice_idx = 2 + default_choice_idx = 0 choices = [ ('standard', 'legacy (p2pkh)', bip44_derivation(0, bip43_purpose=44)), ('p2wpkh-p2sh', 'p2sh-segwit (p2wpkh-p2sh)', bip44_derivation(0, bip43_purpose=49)), @@ -544,10 +544,10 @@ class BaseWizard(object): _("The type of addresses used by your wallet will depend on your seed."), _("Segwit wallets use bech32 addresses, defined in BIP173."), _("Please note that websites and other wallets may not support these addresses yet."), - _("Thus, you might want to keep using a non-segwit wallet in order to be able to receive bitcoins during the transition period.") + _("Thus, you might want to keep using a non-segwit wallet in order to be able to receive LBRY Credits during the transition period.") ]) choices = [ - ('create_segwit_seed', _('Segwit')), + ('create_standard_seed', _('Legacy')), ] self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run) diff --git a/electrum/commands.py b/electrum/commands.py index 40a8142cf..69dd4a21d 100644 --- a/electrum/commands.py +++ b/electrum/commands.py @@ -91,7 +91,7 @@ def command(s): wallet = args[0].wallet password = kwargs.get('password') if c.requires_wallet and wallet is None: - raise Exception("wallet not loaded. Use 'electrum daemon load_wallet'") + raise Exception("wallet not loaded. Use 'electrum-lbry daemon load_wallet'") if c.requires_password and password is None and wallet.has_password(): return {'error': 'Password required' } return func(*args, **kwargs) @@ -156,8 +156,8 @@ class Commands: @command('') def restore(self, text, passphrase=None, password=None, encrypt_file=True): """Restore a wallet from text. Text can be a seed phrase, a master - public key, a master private key, a list of bitcoin addresses - or bitcoin private keys. If you want to be prompted for your + public key, a master private key, a list of lbry credits addresses + or lbry credits private keys. If you want to be prompted for your seed, type '?' or ':' (concealed) """ storage = WalletStorage(self.config.get_wallet_path()) if storage.file_exists(): @@ -366,7 +366,7 @@ class Commands: @command('') def dumpprivkeys(self): """Deprecated.""" - return "This command is deprecated. Use a pipe instead: 'electrum listaddresses | electrum getprivatekeys - '" + return "This command is deprecated. Use a pipe instead: 'electrum-lbry listaddresses | electrum-lbry getprivatekeys - '" @command('') def validateaddress(self, address): @@ -536,7 +536,7 @@ class Commands: @command('w') def setlabel(self, key, label): - """Assign a label to an item. Item may be a bitcoin address or a + """Assign a label to an item. Item may be a LBRY Credits address or a transaction ID""" self.wallet.set_label(key, label) @@ -616,7 +616,7 @@ class Commands: PR_PAID: 'Paid', PR_EXPIRED: 'Expired', } - out['amount (BTC)'] = format_satoshis(out.get('amount')) + out['amount (LBC)'] = format_satoshis(out.get('amount')) out['status'] = pr_str[out.get('status', PR_UNKNOWN)] return out @@ -756,8 +756,8 @@ def eval_bool(x: str) -> bool: param_descriptions = { 'privkey': 'Private key. Type \'?\' to get a prompt.', - 'destination': 'Bitcoin address, contact or alias', - 'address': 'Bitcoin address', + 'destination': 'LBRY Credits address, contact or alias', + 'address': 'LBRY Credits address', 'seed': 'Seed phrase', 'txid': 'Transaction ID', 'pos': 'Position', @@ -767,8 +767,8 @@ param_descriptions = { 'pubkey': 'Public key', 'message': 'Clear text message. Use quotes if it contains spaces.', 'encrypted': 'Encrypted message', - 'amount': 'Amount to be sent (in BTC). Type \'!\' to send the maximum available.', - 'requested_amount': 'Requested amount (in BTC).', + 'amount': 'Amount to be sent (in LBC). Type \'!\' to send the maximum available.', + 'requested_amount': 'Requested amount (in LBC).', 'outputs': 'list of ["address", amount]', 'redeem_script': 'redeem script (hexadecimal)', } @@ -786,7 +786,7 @@ command_options = { 'labels': ("-l", "Show the labels of listed addresses"), 'nocheck': (None, "Do not verify aliases"), 'imax': (None, "Maximum number of inputs"), - 'fee': ("-f", "Transaction fee (in BTC)"), + 'fee': ("-f", "Transaction fee (in LBC)"), 'from_addr': ("-F", "Source address (must be a wallet address; use sweep to spend from non-wallet address)."), 'change_addr': ("-c", "Change address. Default is a spare address, or the source address if it's not in the wallet"), 'nbits': (None, "Number of bits of entropy"), @@ -840,10 +840,10 @@ config_variables = { 'requests_dir': 'directory where a bip70 file will be written.', 'ssl_privkey': 'Path to your SSL private key, needed to sign the request.', 'ssl_chain': 'Chain of SSL certificates, needed for signed requests. Put your certificate at the top and the root CA at the end', - 'url_rewrite': 'Parameters passed to str.replace(), in order to create the r= part of bitcoin: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', + 'url_rewrite': 'Parameters passed to str.replace(), in order to create the r= part of lbry credits: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', }, 'listrequests':{ - 'url_rewrite': 'Parameters passed to str.replace(), in order to create the r= part of bitcoin: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', + 'url_rewrite': 'Parameters passed to str.replace(), in order to create the r= part of lbry credits: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', } } @@ -920,12 +920,12 @@ def add_global_options(parser): def get_parser(): # create main parser parser = argparse.ArgumentParser( - epilog="Run 'electrum help ' to see the help for a command") + epilog="Run 'electrum-lbry help ' to see the help for a command") add_global_options(parser) subparsers = parser.add_subparsers(dest='cmd', metavar='') # gui parser_gui = subparsers.add_parser('gui', description="Run Electrum's Graphical User Interface.", help="Run GUI (default)") - parser_gui.add_argument("url", nargs='?', default=None, help="bitcoin URI (or bip70 file)") + parser_gui.add_argument("url", nargs='?', default=None, help="lbry credits URI (or bip70 file)") parser_gui.add_argument("-g", "--gui", dest="gui", help="select graphical user interface", choices=['qt', 'kivy', 'text', 'stdio']) parser_gui.add_argument("-o", "--offline", action="store_true", dest="offline", default=False, help="Run offline") parser_gui.add_argument("-m", action="store_true", dest="hide_gui", default=False, help="hide GUI on startup") diff --git a/electrum/constants.py b/electrum/constants.py index 70a18480f..862333ccd 100644 --- a/electrum/constants.py +++ b/electrum/constants.py @@ -51,7 +51,7 @@ class BitcoinMainnet(AbstractNet): WIF_PREFIX = 0x1c ADDRTYPE_P2PKH = 0x55 ADDRTYPE_P2SH = 0x7A - SEGWIT_HRP = "bc" + SEGWIT_HRP = "lbc" GENESIS = "9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463" DEFAULT_PORTS = {'t': '50001', 's': '50002'} DEFAULT_SERVERS = read_json('servers.json', {}) @@ -80,7 +80,7 @@ class BitcoinTestnet(AbstractNet): WIF_PREFIX = 0xef ADDRTYPE_P2PKH = 111 ADDRTYPE_P2SH = 196 - SEGWIT_HRP = "tb" + SEGWIT_HRP = "tlbc" GENESIS = "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943" DEFAULT_PORTS = {'t': '51001', 's': '51002'} DEFAULT_SERVERS = read_json('servers_testnet.json', {}) @@ -105,7 +105,7 @@ class BitcoinTestnet(AbstractNet): class BitcoinRegtest(BitcoinTestnet): - SEGWIT_HRP = "bcrt" + SEGWIT_HRP = "blbc" GENESIS = "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206" DEFAULT_SERVERS = read_json('servers_regtest.json', {}) CHECKPOINTS = [] @@ -113,7 +113,7 @@ class BitcoinRegtest(BitcoinTestnet): class BitcoinSimnet(BitcoinTestnet): - SEGWIT_HRP = "sb" + SEGWIT_HRP = "slbc" GENESIS = "683e86bd5c6d110d91b94b97137ba6bfe02dbbdb8e3dff722a669b5d69d77af6" DEFAULT_SERVERS = read_json('servers_regtest.json', {}) CHECKPOINTS = [] diff --git a/electrum/contacts.py b/electrum/contacts.py index c09b59e22..bdf0e464f 100644 --- a/electrum/contacts.py +++ b/electrum/contacts.py @@ -90,7 +90,7 @@ class Contacts(dict): 'type': 'openalias', 'validated': validated } - raise Exception("Invalid Bitcoin address or alias", k) + raise Exception("Invalid LBRY Credits address or alias", k) def resolve_openalias(self, url): # support email-style addresses, per the OA standard @@ -100,7 +100,7 @@ class Contacts(dict): except DNSException as e: print_error(f'Error resolving openalias: {repr(e)}') return None - prefix = 'btc' + prefix = 'lbc' for record in records: string = to_string(record.strings[0], 'utf8') if string.startswith('oa1:' + prefix): @@ -118,7 +118,7 @@ class Contacts(dict): return regex.search(haystack).groups()[0] except AttributeError: return None - + def _validate(self, data): for k, v in list(data.items()): if k == 'contacts': @@ -130,4 +130,3 @@ class Contacts(dict): if _type != 'address': data.pop(k) return data - diff --git a/electrum/ecc.py b/electrum/ecc.py index 7c2cab92d..3aba140c0 100644 --- a/electrum/ecc.py +++ b/electrum/ecc.py @@ -306,7 +306,7 @@ class ECPubkey(object): def msg_magic(message: bytes) -> bytes: from .bitcoin import var_int length = bfh(var_int(len(message))) - return b"\x18Bitcoin Signed Message:\n" + length + message + return b"\x18LBRYcrd Signed Message:\n" + length + message def verify_message_with_address(address: str, sig65: bytes, message: bytes): diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py index ae57cab73..a176b0bda 100644 --- a/electrum/exchange_rate.py +++ b/electrum/exchange_rate.py @@ -131,7 +131,7 @@ class BitcoinAverage(ExchangeBase): async def get_rates(self, ccy): json = await self.get_json('apiv2.bitcoinaverage.com', '/indices/global/ticker/short') - return dict([(r.replace("BTC", ""), Decimal(json[r]['last'])) + return dict([(r.replace("LBC", ""), Decimal(json[r]['last'])) for r in json if r != 'timestamp']) def history_ccys(self): @@ -160,8 +160,8 @@ class BitcoinVenezuela(ExchangeBase): async def get_rates(self, ccy): json = await self.get_json('api.bitcoinvenezuela.com', '/') - rates = [(r, json['BTC'][r]) for r in json['BTC'] - if json['BTC'][r] is not None] # Giving NULL for LTC + rates = [(r, json['LBC'][r]) for r in json['LBC'] + if json['LBC'][r] is not None] # Giving NULL for LTC return dict(rates) def history_ccys(self): @@ -169,8 +169,8 @@ class BitcoinVenezuela(ExchangeBase): async def request_history(self, ccy): json = await self.get_json('api.bitcoinvenezuela.com', - "/historical/index.php?coin=BTC") - return json[ccy +'_BTC'] + "/historical/index.php?coin=LBC") + return json[ccy +'_LBC'] class Bitbank(ExchangeBase): diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py index c34e5ef9f..837f39e8b 100644 --- a/electrum/gui/kivy/main_window.py +++ b/electrum/gui/kivy/main_window.py @@ -151,7 +151,7 @@ class ElectrumWindow(App): self.send_screen.set_URI(uri) def on_new_intent(self, intent): - if intent.getScheme() != 'bitcoin': + if intent.getScheme() != 'lbrycredits': return uri = intent.getDataString() self.set_URI(uri) @@ -272,7 +272,7 @@ class ElectrumWindow(App): App.__init__(self)#, **kwargs) - title = _('Electrum App') + title = _('Electrum-LBRY App') self.electrum_config = config = kwargs.get('config', None) self.language = config.get('language', 'en') self.network = network = kwargs.get('network', None) # type: Network @@ -336,7 +336,7 @@ class ElectrumWindow(App): if is_address(data): self.set_URI(data) return - if data.startswith('bitcoin:'): + if data.startswith('lbrycredits:'): self.set_URI(data) return # try to decode transaction @@ -775,7 +775,7 @@ class ElectrumWindow(App): from plyer import notification icon = (os.path.dirname(os.path.realpath(__file__)) + '/../../' + self.icon) - notification.notify('Electrum', message, + notification.notify('Electrum-LBRY', message, app_icon=icon, app_name='Electrum') except ImportError: Logger.Error('Notification: needs plyer; `sudo pip install plyer`') diff --git a/electrum/gui/kivy/tools/bitcoin_intent.xml b/electrum/gui/kivy/tools/bitcoin_intent.xml index f433f72c1..4c609c9fc 100644 --- a/electrum/gui/kivy/tools/bitcoin_intent.xml +++ b/electrum/gui/kivy/tools/bitcoin_intent.xml @@ -3,5 +3,5 @@ - + diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 11dad7b61..faeb35d16 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -834,7 +834,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.receive_address_e = ButtonsLineEdit() self.receive_address_e.addCopyButton(self.app) self.receive_address_e.setReadOnly(True) - msg = _('Bitcoin address where the payment should be received. Note that each payment request uses a different Bitcoin address.') + msg = _('LBRY Credits address where the payment should be received. Note that each payment request uses a different LBRY Credits address.') self.receive_address_label = HelpLabel(_('Receiving address'), msg) self.receive_address_e.textChanged.connect(self.update_receive_qr) self.receive_address_e.setFocusPolicy(Qt.ClickFocus) @@ -864,8 +864,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): msg = ' '.join([ _('Expiration date of your request.'), _('This information is seen by the recipient if you send them a signed payment request.'), - _('Expired requests have to be deleted manually from your list, in order to free the corresponding Bitcoin addresses.'), - _('The bitcoin address never expires and will always be part of this electrum wallet.'), + _('Expired requests have to be deleted manually from your list, in order to free the corresponding LBRY Credits addresses.'), + _('The LBRY Credits address never expires and will always be part of this electrum wallet.'), ]) grid.addWidget(HelpLabel(_('Request expires'), msg), 3, 0) grid.addWidget(self.expires_combo, 3, 1) @@ -1091,7 +1091,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.amount_e = BTCAmountEdit(self.get_decimal_point) self.payto_e = PayToEdit(self) msg = _('Recipient of the funds.') + '\n\n'\ - + _('You may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)') + + _('You may enter a LBRY Credits address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)') payto_label = HelpLabel(_('Pay to'), msg) grid.addWidget(payto_label, 1, 0) grid.addWidget(self.payto_e, 1, 1, 1, -1) @@ -1138,7 +1138,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): hbox.addStretch(1) grid.addLayout(hbox, 4, 4) - msg = _('Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.') + '\n\n'\ + msg = _('LBRY Credits transactions are in general not free. A transaction fee is paid by the sender of the funds.') + '\n\n'\ + _('The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.') + '\n\n'\ + _('A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.') self.fee_e_label = HelpLabel(_('Fee'), msg) @@ -2739,7 +2739,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): fee_widgets.append((fee_type_label, fee_type_combo)) feebox_cb = QCheckBox(_('Edit fees manually')) - feebox_cb.setChecked(self.config.get('show_fee', False)) + feebox_cb.setChecked(self.config.get('show_fee', True)) feebox_cb.setToolTip(_("Show fee edit box in send tab.")) def on_feebox(x): self.config.set_key('show_fee', x == Qt.Checked) diff --git a/electrum/paymentrequest_pb2.py b/electrum/paymentrequest_pb2.py index f596128c1..20cb32c2a 100644 --- a/electrum/paymentrequest_pb2.py +++ b/electrum/paymentrequest_pb2.py @@ -18,6 +18,7 @@ _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( name='paymentrequest.proto', package='payments', + syntax='proto2', serialized_pb=_b('\n\x14paymentrequest.proto\x12\x08payments\"+\n\x06Output\x12\x11\n\x06\x61mount\x18\x01 \x01(\x04:\x01\x30\x12\x0e\n\x06script\x18\x02 \x02(\x0c\"\xa3\x01\n\x0ePaymentDetails\x12\x15\n\x07network\x18\x01 \x01(\t:\x04main\x12!\n\x07outputs\x18\x02 \x03(\x0b\x32\x10.payments.Output\x12\x0c\n\x04time\x18\x03 \x02(\x04\x12\x0f\n\x07\x65xpires\x18\x04 \x01(\x04\x12\x0c\n\x04memo\x18\x05 \x01(\t\x12\x13\n\x0bpayment_url\x18\x06 \x01(\t\x12\x15\n\rmerchant_data\x18\x07 \x01(\x0c\"\x95\x01\n\x0ePaymentRequest\x12\"\n\x17payment_details_version\x18\x01 \x01(\r:\x01\x31\x12\x16\n\x08pki_type\x18\x02 \x01(\t:\x04none\x12\x10\n\x08pki_data\x18\x03 \x01(\x0c\x12\"\n\x1aserialized_payment_details\x18\x04 \x02(\x0c\x12\x11\n\tsignature\x18\x05 \x01(\x0c\"\'\n\x10X509Certificates\x12\x13\n\x0b\x63\x65rtificate\x18\x01 \x03(\x0c\"i\n\x07Payment\x12\x15\n\rmerchant_data\x18\x01 \x01(\x0c\x12\x14\n\x0ctransactions\x18\x02 \x03(\x0c\x12#\n\trefund_to\x18\x03 \x03(\x0b\x32\x10.payments.Output\x12\x0c\n\x04memo\x18\x04 \x01(\t\">\n\nPaymentACK\x12\"\n\x07payment\x18\x01 \x02(\x0b\x32\x11.payments.Payment\x12\x0c\n\x04memo\x18\x02 \x01(\tB(\n\x1eorg.bitcoin.protocols.paymentsB\x06Protos') ) _sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -54,6 +55,7 @@ _OUTPUT = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], @@ -126,6 +128,7 @@ _PAYMENTDETAILS = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], @@ -184,6 +187,7 @@ _PAYMENTREQUEST = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], @@ -214,6 +218,7 @@ _X509CERTIFICATES = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], @@ -265,6 +270,7 @@ _PAYMENT = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], @@ -302,6 +308,7 @@ _PAYMENTACK = _descriptor.Descriptor( ], options=None, is_extendable=False, + syntax='proto2', extension_ranges=[], oneofs=[ ], diff --git a/electrum/simple_config.py b/electrum/simple_config.py index bd12d7898..c0aef1e28 100644 --- a/electrum/simple_config.py +++ b/electrum/simple_config.py @@ -20,10 +20,9 @@ FEE_DEPTH_TARGETS = [10000000, 5000000, 2000000, 1000000, 500000, 200000, 100000 # satoshi per kbyte FEERATE_MAX_DYNAMIC = 1500000 FEERATE_WARNING_HIGH_FEE = 600000 -FEERATE_FALLBACK_STATIC_FEE = 150000 -FEERATE_DEFAULT_RELAY = 1000 -FEERATE_STATIC_VALUES = [1000, 2000, 5000, 10000, 20000, 30000, - 50000, 70000, 100000, 150000, 200000, 300000] +FEERATE_FALLBACK_STATIC_FEE = 50000 +FEERATE_DEFAULT_RELAY = 50000 +FEERATE_STATIC_VALUES = [50000, 50000,] config = None @@ -202,7 +201,7 @@ class SimpleConfig(PrintError): base_unit = self.user_config.get('base_unit') if isinstance(base_unit, str): self._set_key_in_user_config('base_unit', None) - map_ = {'btc':8, 'mbtc':5, 'ubtc':2, 'bits':2, 'sat':0} + map_ = {'lbc':8, 'mlbc':5, 'ulbc':2, 'lbcs':2, 'dewey':0} decimal_point = map_.get(base_unit.lower()) self._set_key_in_user_config('decimal_point', decimal_point) diff --git a/electrum/util.py b/electrum/util.py index d5ea9c281..38d2c6add 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -56,9 +56,9 @@ def inv_dict(d): return {v: k for k, v in d.items()} -base_units = {'BTC':8, 'mBTC':5, 'bits':2, 'sat':0} +base_units = {'LBC':8, 'mLBC':5, 'deweys':2, 'dewey':0} base_units_inverse = inv_dict(base_units) -base_units_list = ['BTC', 'mBTC', 'bits', 'sat'] # list(dict) does not guarantee order +base_units_list = ['LBC', 'mLBC', 'deweys', 'dewey'] # list(dict) does not guarantee order DECIMAL_POINT_DEFAULT = 5 # mBTC @@ -620,44 +620,10 @@ def time_difference(distance_in_time, include_seconds): return "over %d years" % (round(distance_in_minutes / 525600)) mainnet_block_explorers = { - 'Bitupper Explorer': ('https://bitupper.com/en/explorer/bitcoin/', - {'tx': 'transactions/', 'addr': 'addresses/'}), - 'Biteasy.com': ('https://www.biteasy.com/blockchain/', - {'tx': 'transactions/', 'addr': 'addresses/'}), - 'Bitflyer.jp': ('https://chainflyer.bitflyer.jp/', - {'tx': 'Transaction/', 'addr': 'Address/'}), - 'Blockchain.info': ('https://blockchain.info/', + 'LBRY Explorer': ('https://explorer.lbry.io/', {'tx': 'tx/', 'addr': 'address/'}), - 'blockchainbdgpzk.onion': ('https://blockchainbdgpzk.onion/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockr.io': ('https://btc.blockr.io/', - {'tx': 'tx/info/', 'addr': 'address/info/'}), - 'Blockstream.info': ('https://blockstream.info/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blocktrail.com': ('https://www.blocktrail.com/BTC/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BTC.com': ('https://chain.btc.com/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Chain.so': ('https://www.chain.so/', - {'tx': 'tx/BTC/', 'addr': 'address/BTC/'}), - 'Insight.is': ('https://insight.bitpay.com/', - {'tx': 'tx/', 'addr': 'address/'}), - 'TradeBlock.com': ('https://tradeblock.com/blockchain/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BlockCypher.com': ('https://live.blockcypher.com/btc/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockchair.com': ('https://blockchair.com/bitcoin/', - {'tx': 'transaction/', 'addr': 'address/'}), - 'blockonomics.co': ('https://www.blockonomics.co/', - {'tx': 'api/tx?txid=', 'addr': '#/search?q='}), - 'OXT.me': ('https://oxt.me/', - {'tx': 'transaction/', 'addr': 'address/'}), - 'smartbit.com.au': ('https://www.smartbit.com.au/', - {'tx': 'tx/', 'addr': 'address/'}), - 'system default': ('blockchain:/', - {'tx': 'tx/', 'addr': 'address/'}), -} - + } + testnet_block_explorers = { 'Blocktrail.com': ('https://www.blocktrail.com/tBTC/', {'tx': 'tx/', 'addr': 'address/'}),