From b729452a32989f4ceeef27dacde6abec8818d570 Mon Sep 17 00:00:00 2001 From: David Date: Sun, 11 Nov 2018 13:11:04 +0000 Subject: [PATCH] Add BTX support --- LICENCE => LICENSE | 0 MANIFEST.in | 2 +- README.rst | 2 +- contrib/build-wine/build-electrum-git.sh | 85 +- contrib/build-wine/electrum.nsi | 78 +- contrib/build-wine/tmp/LICENSE | 20 + electrum.desktop | 14 +- electrum/address_synchronizer.py | 2 +- electrum/base_wizard.py | 8 +- electrum/blockchain.py | 22 +- electrum/checkpoints.json | 1110 +---------------- electrum/commands.py | 28 +- electrum/constants.py | 14 +- electrum/currencies.json | 663 +--------- electrum/ecc.py | 2 +- electrum/exchange_rate.py | 4 + electrum/gui/kivy/main_window.py | 8 +- electrum/gui/kivy/tools/blacklist.txt | 2 +- electrum/gui/kivy/uix/dialogs/settings.py | 2 +- electrum/gui/kivy/uix/screens.py | 6 +- electrum/gui/kivy/uix/ui_screens/receive.kv | 2 +- electrum/gui/qt/main_window.py | 43 +- electrum/gui/qt/password_dialog.py | 2 +- electrum/gui/qt/paytoedit.py | 4 +- electrum/gui/stdio.py | 2 +- electrum/gui/text.py | 2 +- electrum/interface.py | 2 + electrum/plot.py | 2 +- electrum/plugin.py | 4 +- .../plugins/digitalbitbox/digitalbitbox.py | 2 +- electrum/plugins/email_requests/qt.py | 6 +- electrum/plugins/hw_wallet/plugin.py | 2 +- electrum/plugins/keepkey/clientbase.py | 2 +- electrum/plugins/keepkey/keepkey.py | 2 +- electrum/plugins/keepkey/qt.py | 12 +- electrum/plugins/ledger/ledger.py | 6 +- electrum/plugins/safe_t/clientbase.py | 2 +- electrum/plugins/safe_t/qt.py | 12 +- electrum/plugins/safe_t/safe_t.py | 2 +- electrum/plugins/trezor/qt.py | 12 +- electrum/plugins/trezor/trezor.py | 4 +- electrum/scripts/get_history.py | 2 +- electrum/scripts/watch_address.py | 2 +- electrum/servers.json | 407 +----- electrum/servers_testnet.json | 34 +- electrum/simple_config.py | 15 +- electrum/util.py | 68 +- electrum/wallet.py | 6 +- run_electrum | 4 +- setup.py | 9 +- 50 files changed, 259 insertions(+), 2487 deletions(-) rename LICENCE => LICENSE (100%) create mode 100644 contrib/build-wine/tmp/LICENSE diff --git a/LICENCE b/LICENSE similarity index 100% rename from LICENCE rename to LICENSE diff --git a/MANIFEST.in b/MANIFEST.in index 5c7667c6d..15fc55b59 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -include LICENCE RELEASE-NOTES AUTHORS +include LICENSE RELEASE-NOTES AUTHORS include README.rst include electrum.desktop include *.py diff --git a/README.rst b/README.rst index 7c198e625..597646bc6 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -Electrum - Lightweight Bitcoin client +Electrum - Lightweight Bitcore client ===================================== :: diff --git a/contrib/build-wine/build-electrum-git.sh b/contrib/build-wine/build-electrum-git.sh index 438c28ce6..9c159eb65 100755 --- a/contrib/build-wine/build-electrum-git.sh +++ b/contrib/build-wine/build-electrum-git.sh @@ -15,19 +15,7 @@ PYTHON="wine $PYHOME/python.exe -OO -B" # Let's begin! set -e -here="$(dirname "$(readlink -e "$0")")" - -. "$CONTRIB"/build_tools_util.sh - -pushd $WINEPREFIX/drive_c/electrum - -VERSION=`git describe --tags --dirty --always` -info "Last commit: $VERSION" - -# Load electrum-locale for this release -git submodule update --init - -pushd ./contrib/deterministic-build/electrum-locale +pushd ../../electrum if ! which msgfmt > /dev/null 2>&1; then fail "Please install gettext" fi @@ -38,14 +26,15 @@ for i in ./locale/*; do done popd -find -exec touch -d '2000-11-11T11:11:11+00:00' {} + -popd - +cp -f ../../LICENSE . # Install frozen dependencies -$PYTHON -m pip install --no-warn-script-location -r "$CONTRIB"/deterministic-build/requirements.txt +$PYTHON -m pip install -r ../deterministic-build/requirements.txt +$PYTHON -m pip install -r ../deterministic-build/requirements-hw.txt -$PYTHON -m pip install --no-warn-script-location -r "$CONTRIB"/deterministic-build/requirements-hw.txt +pushd $WINEPREFIX/drive_c/electrum +find -exec touch -d '2000-11-11T11:11:11+00:00' {} + +popd pushd $WINEPREFIX/drive_c/electrum # see https://github.com/pypa/pip/issues/2195 -- pip makes a copy of the entire directory @@ -53,66 +42,14 @@ info "Pip installing Electrum. This might take a long time if the project folder $PYTHON -m pip install --no-warn-script-location . popd - -rm -rf dist/ +#rm -rf dist/ # build standalone and portable versions -info "Running pyinstaller..." -wine "$PYHOME/scripts/pyinstaller.exe" --noconfirm --ascii --clean --name $NAME_ROOT-$VERSION -w deterministic.spec - -# set timestamps in dist, in order to make the installer reproducible -pushd dist -find -exec touch -d '2000-11-11T11:11:11+00:00' {} + -popd +wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" --noconfirm --ascii --clean --name electrum-btx-3.3.6 -w deterministic.spec info "building NSIS installer" # $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 -cd dist -mv electrum-setup.exe $NAME_ROOT-$VERSION-setup.exe -cd .. - -info "Padding binaries to 8-byte boundaries, and fixing COFF image checksum in PE header" -# note: 8-byte boundary padding is what osslsigncode uses: -# https://github.com/mtrojnar/osslsigncode/blob/6c8ec4427a0f27c145973450def818e35d4436f6/osslsigncode.c#L3047 -( - cd dist - for binary_file in ./*.exe; do - info ">> fixing $binary_file..." - # code based on https://github.com/erocarrera/pefile/blob/bbf28920a71248ed5c656c81e119779c131d9bd4/pefile.py#L5877 - python3 <> 32) - if checksum > 2 ** 32: - checksum = (checksum & 0xffffffff) + (checksum >> 32) - -checksum = (checksum & 0xffff) + (checksum >> 16) -checksum = (checksum) + (checksum >> 16) -checksum = checksum & 0xffff -checksum += len(binary) - -# Set the checksum -binary[checksum_offset : checksum_offset + 4] = int.to_bytes(checksum, byteorder="little", length=4) - -with open(pe_file, "wb") as f: - f.write(binary) -EOF - done -) - -sha256sum dist/electrum*.exe +echo "Done." +sha256sum dist/electrum*exe diff --git a/contrib/build-wine/electrum.nsi b/contrib/build-wine/electrum.nsi index 1946c7749..411e7eb5f 100644 --- a/contrib/build-wine/electrum.nsi +++ b/contrib/build-wine/electrum.nsi @@ -6,23 +6,26 @@ ;-------------------------------- ;Variables - !define PRODUCT_NAME "Electrum" - !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}" + !define PRODUCT_NAME "electrum-btx" + !define PRODUCT_VER "3.3.6" + !define PRODUCT_WEB_SITE "https://github.com/LIMXTEC/electrum-btx" + !define PRODUCT_PUBLISHER "bitcore.cc" + !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}-${PRODUCT_VER}" + !define HOME "C:\electrum" + !define LICENSE_TXT "LICENSE" ;-------------------------------- ;General ;Name and file - Name "${PRODUCT_NAME}" - OutFile "dist/electrum-setup.exe" + Name "${PRODUCT_NAME}-${PRODUCT_VER}" + OutFile "dist/${PRODUCT_NAME}-${PRODUCT_VER}-setup.exe" ;Default installation folder - InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" + InstallDir "$PROGRAMFILES\${PRODUCT_NAME}-${PRODUCT_VER}" ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\${PRODUCT_NAME}" "" + InstallDirRegKey HKCU "Software\${PRODUCT_NAME}-${PRODUCT_VER}" "" ;Request application privileges for Windows Vista RequestExecutionLevel admin @@ -46,10 +49,10 @@ 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_VER}" ;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}" + Caption "${PRODUCT_NAME}-${PRODUCT_VER}" ;Adds the Product Version on top of the Version Tab in the Properties of the file. VIProductVersion 1.0.0.0 @@ -57,26 +60,26 @@ ;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}" - VIAddVersionKey CompanyName "${PRODUCT_NAME}" - VIAddVersionKey LegalCopyright "2013-2018 ${PRODUCT_PUBLISHER}" + VIAddVersionKey CompanyName "${PRODUCT_PUBLISHER}" + VIAddVersionKey LegalCopyright "2017-2019 ${PRODUCT_PUBLISHER}" VIAddVersionKey FileDescription "${PRODUCT_NAME} Installer" - VIAddVersionKey FileVersion ${PRODUCT_VERSION} - VIAddVersionKey ProductVersion ${PRODUCT_VERSION} + VIAddVersionKey FileVersion ${PRODUCT_VER} + VIAddVersionKey ProductVersion ${PRODUCT_VER} VIAddVersionKey InternalName "${PRODUCT_NAME} Installer" VIAddVersionKey LegalTrademarks "${PRODUCT_NAME} is a trademark of ${PRODUCT_PUBLISHER}" - VIAddVersionKey OriginalFilename "${PRODUCT_NAME}.exe" + VIAddVersionKey OriginalFilename "${PRODUCT_NAME}-${PRODUCT_VER}-setup.exe" ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING !define MUI_ABORTWARNING_TEXT "Are you sure you wish to abort the installation of ${PRODUCT_NAME}?" - - !define MUI_ICON "c:\electrum\electrum\gui\icons\electrum.ico" + !define MUI_ICON "${HOME}\icons\electrum.ico" ;-------------------------------- ;Pages + !insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM @@ -103,18 +106,13 @@ FunctionEnd Section SetOutPath $INSTDIR - - ;Uninstall previous version files - 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\electrum\gui\icons\electrum.ico" + File "dist\${PRODUCT_NAME}-${PRODUCT_VER}.exe" + File "${HOME}\icons\electrum.ico" ;Store installation folder - WriteRegStr HKCU "Software\${PRODUCT_NAME}" "" $INSTDIR + WriteRegStr HKCU "Software\${PRODUCT_NAME}-${PRODUCT_VER}" "" $INSTDIR ;Create uninstaller DetailPrint "Creating uninstaller..." @@ -122,26 +120,24 @@ Section ;Create desktop shortcut DetailPrint "Creating desktop shortcut..." - CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\electrum-${PRODUCT_VERSION}.exe" "" + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}-${PRODUCT_VER}.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 - + CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}\${PRODUCT_NAME}-${PRODUCT_VER}.lnk" "$INSTDIR\${PRODUCT_NAME}-${PRODUCT_VER}.exe" "" "$INSTDIR\${PRODUCT_NAME}-${PRODUCT_VER}.exe" 0 ;Links bitcoin: URI's to Electrum - WriteRegStr HKCU "Software\Classes\bitcoin" "" "URL:bitcoin Protocol" - WriteRegStr HKCU "Software\Classes\bitcoin" "URL Protocol" "" - 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\${PRODUCT_NAME}-${PRODUCT_VER}" "" "URL:bitcore Protocol" + WriteRegStr HKCU "Software\Classes\${PRODUCT_NAME}-${PRODUCT_VER}" "URL Protocol" "" + WriteRegStr HKCU "Software\Classes\${PRODUCT_NAME}-${PRODUCT_VER}" "DefaultIcon" "$\"$INSTDIR\electrum.ico, 0$\"" + WriteRegStr HKCU "Software\Classes\${PRODUCT_NAME}-${PRODUCT_VER}\shell\open\command" "" "$\"$INSTDIR\${PRODUCT_NAME}-${PRODUCT_VER}.exe$\" $\"%1$\"" ;Adds an uninstaller possibility to Windows Uninstall or change a program section WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" - WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VER}" WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" WriteRegStr HKCU "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\electrum.ico" @@ -163,11 +159,11 @@ Section "Uninstall" RMDir "$INSTDIR" - Delete "$DESKTOP\${PRODUCT_NAME}.lnk" - Delete "$SMPROGRAMS\${PRODUCT_NAME}\*.*" - RMDir "$SMPROGRAMS\${PRODUCT_NAME}" + Delete "$DESKTOP\${PRODUCT_NAME}-${PRODUCT_VER}.lnk" + Delete "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}\*.*" + RMDir "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}" - DeleteRegKey HKCU "Software\Classes\bitcoin" - DeleteRegKey HKCU "Software\${PRODUCT_NAME}" + DeleteRegKey HKCU "Software\Classes\${PRODUCT_NAME}-${PRODUCT_VER}" + DeleteRegKey HKCU "Software\${PRODUCT_NAME}-${PRODUCT_VER}" DeleteRegKey HKCU "${PRODUCT_UNINST_KEY}" SectionEnd diff --git a/contrib/build-wine/tmp/LICENSE b/contrib/build-wine/tmp/LICENSE new file mode 100644 index 000000000..b8bb97185 --- /dev/null +++ b/contrib/build-wine/tmp/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/electrum.desktop b/electrum.desktop index e40106716..e1f447d2b 100644 --- a/electrum.desktop +++ b/electrum.desktop @@ -2,21 +2,21 @@ # sudo desktop-file-install electrum.desktop [Desktop Entry] -Comment=Lightweight Bitcoin Client +Comment=Lightweight Bitcore Client Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum %u" -GenericName[en_US]=Bitcoin Wallet -GenericName=Bitcoin Wallet +GenericName[en_US]=Bitcore Wallet +GenericName=Bitcore Wallet Icon=electrum -Name[en_US]=Electrum Bitcoin Wallet -Name=Electrum Bitcoin Wallet +Name[en_US]=Electrum Bitcore Wallet +Name=Electrum Bitcore Wallet Categories=Finance;Network; StartupNotify=true StartupWMClass=electrum Terminal=false Type=Application -MimeType=x-scheme-handler/bitcoin; +MimeType=x-scheme-handler/bitcore; Actions=Testnet; [Desktop Action Testnet] -Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum --testnet %u" +Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum-btx --testnet %u" Name=Testnet mode diff --git a/electrum/address_synchronizer.py b/electrum/address_synchronizer.py index 843f3679f..ef3a13465 100644 --- a/electrum/address_synchronizer.py +++ b/electrum/address_synchronizer.py @@ -714,7 +714,7 @@ def get_addr_received(self, address): @with_local_height_cached def get_addr_balance(self, address, *, excluded_coins: Set[str] = None): - """Return the balance of a bitcoin address: + """Return the balance of a bitcore address: confirmed and matured, unconfirmed, unmatured """ if not excluded_coins: # cache is only used if there are no excluded_coins diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py index f907dab40..245ffd971 100644 --- a/electrum/base_wizard.py +++ b/electrum/base_wizard.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Electrum - lightweight Bitcoin client +# Electrum - lightweight Bitcore client # Copyright (C) 2016 Thomas Voegtlin # # Permission is hereby granted, free of charge, to any person @@ -131,7 +131,7 @@ def new(self): ('standard', _("Standard wallet")), ('2fa', _("Wallet with two-factor authentication")), ('multisig', _("Multi-signature wallet")), - ('imported', _("Import Bitcoin addresses or private keys")), + ('imported', _("Import Bitcore 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) @@ -203,8 +203,8 @@ def choose_keystore(self): def import_addresses_or_keys(self): v = lambda x: keystore.is_address_list(x) or keystore.is_private_key_list(x, raise_on_error=True) - 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 Bitcore Addresses") + message = _("Enter a list of Bitcore 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) diff --git a/electrum/blockchain.py b/electrum/blockchain.py index 5f7c36cd7..390c89a7c 100644 --- a/electrum/blockchain.py +++ b/electrum/blockchain.py @@ -583,21 +583,22 @@ def can_connect(self, header: dict, check_height: bool=True) -> bool: return False if prev_hash != header.get('prev_block_hash'): return False - try: - target = self.get_target(height // 2016 - 1) - except MissingHeader: - return False - try: - self.verify_header(header, prev_hash, target) - except BaseException as e: - return False + #try: + # target = self.get_target(height // 2016 - 1) + #except MissingHeader: + # return False + #try: + # self.verify_header(header, prev_hash, target) + #except BaseException as e: + # return False return True def connect_chunk(self, idx: int, hexdata: str) -> bool: assert idx >= 0, idx try: data = bfh(hexdata) - self.verify_chunk(idx, data) + #BTX: deactivated + #self.verify_chunk(idx, data) self.save_chunk(idx, data) return True except BaseException as e: @@ -610,7 +611,8 @@ def get_checkpoints(self): n = self.height() // 2016 for index in range(n): h = self.get_hash((index+1) * 2016 -1) - target = self.get_target(index) + #target = self.get_target(index) + target=0 cp.append((h, target)) return cp diff --git a/electrum/checkpoints.json b/electrum/checkpoints.json index 12e5ebcf1..573ca3d69 100644 --- a/electrum/checkpoints.json +++ b/electrum/checkpoints.json @@ -1,1110 +1,6 @@ [ [ - "00000000693067b0e6b440bc51450b9f3850561b07f6d3c021c54fbd6abb9763", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000f037ad09d0b05ee66b8c1da83030abaf909d2b1bf519c3c7d2cd3fdf", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000006ce8b5f16fcedde13acbc9641baa1c67734f177d770a4069c06c9de8", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000563298de120522b5ae17da21aaae02eee2d7fcb5be65d9224dbd601c", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000009b0a4b2833b4a0aa61171ee75b8eb301ac45a18713795a72e461a946", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000fa8a7363e8f6fdc88ec55edf264c9c7b31268c26e497a4587c750584", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000008ac55b5cd76a5c176f2457f0e9df5ff1c719d939f1022712b1ba2092", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000007f0c796631f00f542c0b402d638d3518bc208f8c9e5d29d2f169c084", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000ffb062296c9d4eb5f87bbf905d30669d26eab6bced341bd3f1dba5fd", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "0000000074c108842c3ec2252bba62db4050bf0dddfee3ddaa5f847076b8822f", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "0000000067dc2f84a73fbf5d3c70678ce4a1496ef3a62c557bc79cbdd1d49f22", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000dbf06f47c0624262ecb197bccf6bdaaabc2d973708ac401ac8955acc", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000009260fe30ec89ef367122f429dcc59f61735760f2b2288f2e854f04ac", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000f9f1a700898c4e0671af6efd441eaf339ba075a5c5c7b0949473c80b", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "000000005107662c86452e7365f32f8ffdc70d8d87aa6f78630a79f7d77fbfe6", - 26959535291011309493156476344723991336010898738574164086137773096960 - ], - [ - "00000000984f962134a7291e3693075ae03e521f0ee33378ec30a334d860034b", - 22791060871177364286867400663010583169263383106957897897309909286912 - ], - [ - "000000005e36047e39452a7beaaa6721048ac408a3e75bb60a8b0008713653ce", - 20657664212610420653213483117824978239553266057163961604478437687296 - ], - [ - "00000000128d789579ffbec00203a371cbb39cee27df35d951fd66e62ed59258", - 20055820920770189543295303139304627292355830414308479769458683936768 - ], - [ - "000000008dde642fb80481bb5e1671cb04c6716de5b7f783aa3388456d5c8a85", - 14823939180767414932263578623363531361763221729526512593941781544960 - ], - [ - "000000008135b689ad1557d4e148a8b9e58e2c4a67240fc87962abb69710231a", - 10665477591887247494381404907447500979192021944764506987270680608768 - ], - [ - "00000000308496ef3e4f9fa542a772df637b4aaf1dcce404424611feacfc09e7", - 7129927859545590787920041835044506526699926406309469412482969763840 - ], - [ - "000000001a2e0c63d7d012003c9173acfd04ccd6372027718979228c461b5ed5", - 5949911473257063494842414979623989957440207170696926280907451531264 - ], - [ - "000000002e0c0ac26ccde91b51ab018576b3a126b413e9f6f787b36637f1b174", - 5905492491837656485645884063467495540781288435542782321354050895872 - ], - [ - "00000000103226f85fe2b68795f087dcec345e523363f18017e60b5c94175355", - 4430143390146946405787502162943966061454423600514874825749833973760 - ], - [ - "000000001ae6f66fd4de47f8d6f357e798943bbfc4f39ebf14b0975fab059173", - 3447600406241317909690675945127070282093452846402311540118831235072 - ], - [ - "000000000a3f22690162744d3bc0b674c92e661a25afb3d2ac8b39b27ac14373", - 2351604382534916182160036119666703740669209516522695514729880748032 - ], - [ - "0000000006dc436c3c515a97446af858c1203a501c85d26c4a30afa380aba4a1", - 2098151686442211199940455690614286210348997571531298297574806519808 - ], - [ - "000000000943fe1680ffcc498ce50790ff8e842a8af2c157664e4fbc1cb7cb46", - 2275790652544821279950241890112140030244814501479017131553197129728 - ], - [ - "000000000847b2144376c1fb057ea1d5a027d5a6004277ed4c72422e93df04e9", - 1622203955679450683159610732218403647246163922223729367236739072000 - ], - [ - "00000000094505954deb1d31382b86d0510fd280a34143400b1856a4d52b4c93", - 1551048739079662593758612650769536967206480773659027300489594142720 - ], - [ - "000000000109272cecb3f7e98ac12cf149fa8a1b2aaab248e1b006b0dc595a3a", - 1389323280429349294447518501872137680563441219958739463959193059328 - ], - [ - "0000000009e6aa0fe39b790625ffeb18a2d6ff5060a5bd14e699e83c54109977", - 1147152896345386682952518188670047452875537662186691235300769792000 - ], - [ - "0000000000d14af55c4eae0121184919baba2deb8bf89c3af6b8e4c4f35c8e4e", - 594007861936424273334637371358095438347537381057796937154824241152 - ], - [ - "0000000003dfbfa2b33707e691ab2ab7cda7503be2c2cce43d1b21cd1cc757fb", - 148501965484106068333659342839523859586884345264449234288706060288 - ], - [ - "0000000000c169d181d66d242901f70d006f3e088c1ae9cacb88b94b8266e9c3", - 110393429764504113949181711819653188468070301266890302199533928448 - ], - [ - "000000000009f7d1439d6a2fc1a456db8e843674275bf0133fc7b43b5f45b96e", - 76554528428498296726819074079132986384157750623812250673757552640 - ], - [ - "000000000011b8a8fad7973548b50f6d4b2ba1690f7487c374e43248c576354f", - 52678642966898219212816601311127992435882858542187514726849708032 - ], - [ - "000000000077e856b6cc475d9cf784119811214c9cac8d7b674ec24faa7c2c0c", - 43246870766561725070861386869077695524372774526710079316876591104 - ], - [ - "00000000004cbb474f2cbf3a65f690efa09804512af3351ba3a0888c806c6625", - 37817516728945957090904676150631917288430706594442690521085247488 - ], - [ - "0000000000235b1ec6656d8e91f3dde3b6ab9ad7e75b332e4da9355ce60d860e", - 29373101246077110899697012205905070265841442578602225419818106880 - ], - [ - "00000000002a153a2c95a8e5493db93086b0e3fe590b636a5871ace57523ef93", - 20444488966645742314409346972440253478913291170842138088329707520 - ], - [ - "00000000000e9550e084908cf91a4e8b74f9f1315d1bc4020709f9e7f261bb18", - 19563849255781403323327768731100757126732627316116500830377476096 - ], - [ - "00000000002c2cfef3bb85b463d3fcd39b73a6d3d5ae11c1e2a8113e3794f28d", - 12545026348036226200394850922278603223904369245268262607334146048 - ], - [ - "00000000000fa92b757ee29674aa97e98a49ba3ad340d2baa94155d71648dfe1", - 8719867261221084516486306056196045840260667577454435863762042880 - ], - [ - "0000000000030571601dbc8e13d00d45004eee6ea8b6ab3cdfb38d2546fee21c", - 5942996718418989293499865695368015163438891473576991811912597504 - ], - [ - "00000000000bb6adef42e63082b20fd2b1dc1b324c51973512a4c31f29a9986e", - 3926013280397599483741094494745234959951218212740030386090803200 - ], - [ - "000000000000765094788a98dbb8adac30d248b7129b59b1441ee2b7ef9e332f", - 3337321571246095014985518819479127172783474909736415373333364736 - ], - [ - "00000000000431a0aa9625f82975709f3c6f4f64d04c559512af051599872084", - 2200419182034594781720344474937177839165432393990533906392154112 - ], - [ - "00000000000292b850b8f8578e6b4d03cbb4a78ada44afbb4d2f80a16490e8f9", - 1861311314983800126815643622927230076368334845814253369901973504 - ], - [ - "0000000000025afe84e27423011af25f777e5a94545dbd00fd04bebe9050f7dd", - 1653206561150525499452195696179626311675293455763937233695932416 - ], - [ - "0000000000000e389cccae2a40437be574fd806909e24136711e7f8bce671d65", - 1462200632444444190489436459820840230299714881944341127503020032 - ], - [ - "0000000000030510bf6bc1649726cf2e6e4010c64a2c8fd3fde5dc92535ca40e", - 1224744150896501443874292381730317417444978877835711165914677248 - ], - [ - "00000000000082648057f14fc835779c6ce46a407bafb2e5c2ac1d20d9f4e822", - 1036989760889350435547200084292752907272941324136347429599444992 - ], - [ - "000000000000f38accd6b22959010471a6d9f159d43bf2a9d4c53c220201254e", - 739430030225080220618328322475016688484025266646974337550123008 - ], - [ - "0000000000004ed7a73133678b5eb883cd8882bf14dfb26c104ae0c3f94cf4ee", - 484975157177710342494716926626447514974484083994735770500857856 - ], - [ - "00000000000037bb3ff4cf649a1757d4028ecc10f893529b4a2214792c981f96", - 353833947722011807976659613996792948209273674048993161457434624 - ], - [ - "0000000000008008f46559fe7f181e9dc0648f213472a1e576e8bf506b88f22f", - 390843739553851677760235428436025349398613161749553108945469440 - ], - [ - "000000000000691d0c2444db713bf6c088844cc95a37cdc55cc269bb0a31d8c8", - 327394795212563108599383268946242257264650552916910648089116672 - ], - [ - "00000000000071153b0afcc64a425f8442c29749610797119e732dd4b723f675", - 291935447509363748964474894494542149680088347011133317125767168 - ], - [ - "000000000000a384acb522e4e5935ad2bc31366ecf1f16f1f11023e967ef033d", - 245823858161213192073337185391658632187400443916100519594033152 - ], - [ - "0000000000002e532093d43e901292121fb7c6583caf2d13b666fe7e194b4a97", - 171262555713783851185422181139260521316022447660158187451973632 - ], - [ - "00000000000033e435c4bbddc7eb255146aa7f18e61a832983af3a9ee5dd144d", - 110438984653392107399822606842181601255647711092336854093004800 - ], - [ - "00000000000028ff4b0bd45f0e3e713f91fa1821d28a276a1a1f32f786662f13", - 61993465896324436412959469550829248888675813063783317791309824 - ], - [ - "0000000000001ef9c75318e116a607af4de68fb4f67c788677ee6779fb5fa0d5", - 47525089675259291211422247200069659468817014361857087365971968 - ], - [ - "0000000000000e6e98694ccb8247aad63aaa1e2bec5a7be14329407e4cea6223", - 30742228348699538311994447367921718297595975288392383715082240 - ], - [ - "000000000000000a2153574b2523a6d1844c3cb82d085e2575846dd8c5d4ebb4", - 19547336162709893274575855467812492508787617050928192350584832 - ], - [ - "00000000000002a92c1b1ffb2a8388979cf30798e312335ae2a1b922927ee83d", - 17248274092338559882155796390905381469049315669915374897332224 - ], - [ - "00000000000004d54b1422ce733922e7672a4e2ecc86dcf96c0de06565cddaa6", - 15943936487596784557029840069157210316687734428242467413295104 - ], - [ - "00000000000009dd91ae96cbbf67af42340b0bc715b3606aa725f630b470262d", - 14273467308195657992975774342458504496649432985410431166185472 - ], - [ - "00000000000007d33d78522fa95bdcd4a25072aeac844cbe9b6bc5d0cc885d0a", - 14930233597189143322113827544414041000381079823613435714732032 - ], - [ - "00000000000003dd57f5dd1228f68390b586700063225d26bac972bd120546d2", - 15164766714763258952996988973449124317842091658872414191747072 - ], - [ - "000000000000076bdeca878b47c392f51fbda543b1e69612cf7d305deb537604", - 15357836632983707094928406965317628870031114888441593128288256 - ], - [ - "00000000000008eb1bb7e18d9dfe62210d761cbf114d59ca08e4f638b8563e30", - 15958672964717750944291813934170287689797412223641384931819520 - ], - [ - "00000000000001b0d8d885e4d77d7c51e8f1fdaba68f229ac04d191915845f09", - 18362361570655080300849714079315004638119732162003921272832000 - ], - [ - "000000000000081baa3a716d5f9ab072c9fc3b798900234c9be23ab02a287c30", - 22401652017447755518156310839596703571934659990690572544245760 - ], - [ - "00000000000005b88d0224b9b0d4b65d3de9a61d93609bb91c9297440f1c4657", - 22607619418140130980719672680045705126213018528712048676700160 - ], - [ - "000000000000027d6a6870403fa43a650b7d9a6e61243f375a79ea935ad9ef1f", - 24717289559589094364468373797949472355802981654048927838633984 - ], - [ - "0000000000000810a3490b86e4f302f6557f9621c5c8620c2b09ec8f0cf72794", - 23340814324747679919001773364939281849550099124416593832968192 - ], - [ - "000000000000073833bca8d0ea909fde717e251576b7b3ccaaa58ad5d39eed60", - 23242391331131109072962566885467580392541369223033474166816768 - ], - [ - "000000000000031b7fd2ed1f28ff74e969aa891297706c38bd2e1d3bc48183c4", - 21554562042243053719921017803645315870071034703425342074257408 - ], - [ - "0000000000000b0738bcba382983811d40b531f2e68cd57126092755f1be4ba6", - 20615546854515052444405957679617344022137222968655050411343872 - ], - [ - "000000000000000664cbfd5e3fa497c07614c33a0934b83e01fbe980634a9aa4", - 19540887421473929614259883543522244007742949396702043752628224 - ], - [ - "000000000000021eb520df39289a70e40c59822a8c47924dc4940e7d0c1455c4", - 19588382523276445241758125434587686389961661359576757951266816 - ], - [ - "0000000000000275e0c41b11bc250fe887c5e60c8ebaaa449f5c28c67133d496", - 18009299117968233362105684657812007807160912568078774269116416 - ], - [ - "000000000000097fb0fdbeee0cee7e8f4e1a4ef8fad49f3d549624b0d47abed0", - 17993483763986497389087426516491816616385967180337839494660096 - ], - [ - "000000000000053f199ae19d34365277e534f978ea2f6c69cd4757a4fc099af5", - 16574638092431222848464934504874974361824393751455373256032256 - ], - [ - "0000000000000217b2e7b4f61682d24b9357d62ad29f27ed45ea2a32dc1f32f6", - 17085559845791583266730740536950670241169412424878408752693248 - ], - [ - "000000000000039c1d77acd4702393f48ca61983c64fc0209ade141c694b2359", - 17870687961287995446644888885900316642120964851955511819501568 - ], - [ - "0000000000000ae53f0c78330f6c2fbece2752909bc3742823e4fab29c5fd2b0", - 15554707140145502641228553657813466188995512591033787398225920 - ], - [ - "00000000000004b4d72b8631a85ec7d226dc696f1913ba1bf735b7c8dec207b8", - 16944226977030767532657500340718760127019357828074148225613824 - ], - [ - "00000000000006e06735bffb7d2f215dcadd8311fc33f4a46661fdca3dc0560e", - 17028747171100603034973679895960153979114298528140818252824576 - ], - [ - "000000000000055fc0110d4a38ffb338eabc30c8b0aef355d4643d21b5b6a860", - 15614535766060906942258863525753414259523988166363835227176960 - ], - [ - "000000000000081b69cb4de006c14084c4861f0e4a140c37200117a738733fe8", - 15392654931672180089790308609774483894682932641297604569726976 - ], - [ - "00000000000009920770f2d40b5b6a8aba33d969b855c91b0f56e3db9c27e41a", - 14444739009842829731785903206212823051010663269705670545375232 - ], - [ - "0000000000000791dd1cb7a684a54c72ccde51f459fff0fc3e6e051641b1e941", - 13237058963854547748734324548161076199478283141947127217782784 - ], - [ - "000000000000019da474a1a598b5cf28534b7fd9b214eed0f36c67c203a9b449", - 12305424274651356593961118223415860240572779254789271782948864 - ], - [ - "000000000000074333e888bac730f9772b65e4cc9d07edb122c6e3c6606bc8ab", - 11046080738989403765716562970384822165842244193743674858799104 - ], - [ - "000000000000067080669115c445f378f3dec19787558d0e03263b9dec5d7720", - 10007073282210984973971337419529346944295676968729147521105920 - ], - [ - "0000000000000304760bf583f4ac241c5ffe77312fa213634eba252c720530f1", - 9412783771427520201810837309176674245361798887059324066070528 - ], - [ - "000000000000041fb61665c8a31b8b5c3ae8fe81903ea81530c979d5094e6f9d", - 8825801199382903987726989797449454220615414953524072026210304 - ], - [ - "000000000000022fc7f2a5c87b2bab742d71c4eb662d572df33f18193d6abf0e", - 8774971387283464186072960143252932765613148614319486309236736 - ], - [ - "000000000000013c6d43ba38bc5f24e699515b9d78602694112fefdc64606640", - 8158785580212107593904235970576336449063725988071903546310656 - ], - [ - "00000000000001665176b9a810fddf27cca60dfcfd80bf113289fcc8ffed0284", - 8002789794116287035234223109988652176644807295346590313611264 - ], - [ - "00000000000002dc6ef80f56a00f1091471d942ce9bfb656ebdab4ea0b77eb0b", - 7839560629067579481152758851432818444879208153964570478641152 - ], - [ - "00000000000002a1fa5546ec48ca88b9e5710e2c6d895bb3675004fdacd6ab13", - 7999430563890709006856701613305138698914315019190763857641472 - ], - [ - "00000000000000f517517c11e649b98feca7da84ae44fb643de5a86798fe3c31", - 9047927233058169382412882048952728634925849476849852060008448 - ], - [ - "0000000000000299cab92a923348acf9251f656bcbacdb641fd0a66d895a6e8f", - 8296391419817537486273948666838217011279219811331013552898048 - ], - [ - "000000000000027508b977f72c3a0f06f1f36e311ad079536630661880934501", - 9081029136740872581753422344739175313292014241889017867010048 - ], - [ - "00000000000001925959229452cc6fbfef0104ebed7ccd6f584f2439c5dd1f1b", - 8230751570811169734692743946971314968326461977249645504495616 - ], - [ - "00000000000003b34ca89509da5f558af468c194afaa8d458bbeb07c50cc7c74", - 7384127474250891166670391848516180960454656786677558849568768 - ], - [ - "0000000000000076559e314ab0c86cc552e34fd79488415d3d17f6ea3c01adb3", - 6172230000534146257480611019445716458048957888854766248787968 - ], - [ - "000000000000003a58043252cdc30ed2f37fb17e6ef1658324b1478f16c1463b", - 5561365017980676031428107027647386014985059524839404952616960 - ], - [ - "000000000000011babf767e60240658195b693711c217d7da0d9215ccab45333", - 4026319404534786334009451711043898716884778820756489262596096 - ], - [ - "000000000000027579d28fb480ccad8e2516d1219d4c1919e3fd4fc0c882955d", - 3513558656525386849113615662535622466519417660386833443323904 - ], - [ - "0000000000000074546fe07f80ba15fc81897ec56a5535de727df9fda9dab500", - 3004083578955603829930099910053556479043735076695139267117056 - ], - [ - "00000000000000b6c55833b80c07894f4c4d3bb686e5ddbc1b1d162e22752ca3", - 2675541054922611112919804040984964595022815308724929898217472 - ], - [ - "00000000000001326f2f970753122e35bfdf3358d046ddf5ea22e57f5d82b00d", - 2409843108029446766213067266805752590003732794677225687351296 - ], - [ - "00000000000000641084745613912464ff73c974bafd0bf6dd306295f019d306", - 2218268905456883731807407021635746739577921454491297946533888 - ], - [ - "000000000000011ae105ddb1a5bbac6931a6578d95c201525f3a945276a64559", - 1727551573307299192250197436766000536509732237655131060961280 - ], - [ - "00000000000000d9b66fee19af89eaaf3f3933d1acd2617924c107f0abbe0a41", - 1394031503757574068227953656553224448260418805016069352194048 - ], - [ - "0000000000000011956d42670c2f75eeb344ac0657a806775998e2c58fa4b157", - 1263610003247723462826224891154624535497729630761756072607744 - ], - [ - "00000000000000959b1ea990368fd16d494e68ee13bd7245ddd9cdfba3330100", - 1030450001678223668360152541055867895065240185756254103142400 - ], - [ - "0000000000000091f86b1e423e24fe358c72db181cfcc2738c85f2f51871a960", - 862513010327976103705811440432628413487564277790886242287616 - ], - [ - "0000000000000055e146e473b49fe656a1f2f4b8c33e72b80acc18f84d9fcc26", - 720982641204331278205950312227594303241470815982254303477760 - ], - [ - "000000000000004f6a191a3261274735292bc30a1f79f23a143e4ee7dd2f64c1", - 530591525189316709998942710962548491505413142398652303540224 - ], - [ - "000000000000005327c8e714272803c60277333362e74ec88b9ffab5410c2358", - 410030579894253754102159787320079652501746816512444002729984 - ], - [ - "0000000000000002e2a62b8705564c38d6a746fc8e971a450a69989152b5ee97", - 310118479516817784682897231521434079438159381558537557639168 - ], - [ - "00000000000000202bf3ff30109538bfd9b5075c6438ab5ef64ebe2cf9b61404", - 239366800071949252578530950352093786414793290792735831228416 - ], - [ - "000000000000001c997105893f5991cb45765ff856b6e503f8466cb22cdd330a", - 181156297885756721946540202079438048595571151633323613224960 - ], - [ - "0000000000000010c13ce182a3d8fc6748b75640447eb360d7739a5fe984ffc1", - 142431093377788751676361246670241704468765375727695350988800 - ], - [ - "000000000000000bbb49db68b79ecc8393376d78272d237bb612288af64c1de8", - 100696259189502783924473792493100546893980348528488767029248 - ], - [ - "0000000000000001bbfd0973c367d30eef2416d9e94bdddea53bccf541a4858f", - 68962778243821519216393853205209897734463141354237780295680 - ], - [ - "0000000000000004ee5b6ace996ab746f1e6dd952cdbc74c0b4f8b9ac51c7335", - 52765641310467331636297188681879886184148735229489015947264 - ], - [ - "0000000000000002f2f23b515085d0c9f37a2824304ccb7ca1546a48548d0dac", - 44233472386696495417387091608220539804351405166731810832384 - ], - [ - "00000000000000045590c3fdeca1753d148a87614a70fa0897a17f90bb321654", - 38110290672195532365762668664552282566878756832852091863040 - ], - [ - "0000000000000002b704edc0bf1435fe2116040b547adb1bc2d196eb81779834", - 29679649578007061283718812081441644170496168236939550392320 - ], - [ - "00000000000000038cc59dc6dd68ae0fbe2ded8a3de65dbd9a2f9a36d26772df", - 22829202948393929850749706076701368331072452018388575715328 - ], - [ - "0000000000000000a979bc50075e7cdf0da5274f7314910b2d798b1aeaf6543f", - 19005913916847449503306572434028937600915626422125897711616 - ], - [ - "0000000000000001dd8e548c8cf5b77cde6e5631cd542e39f42c41952e5e7085", - 15065005852539512185984435657022720640916062598235628240896 - ], - [ - "0000000000000002513542a461de351a5a94f96b4bcd3e324a48d2d71b403fe0", - 12288698618318346282960995223961541766142764336009759948800 - ], - [ - "000000000000000150cc07163e78d599a7e56c0d1040641bffb382705ac17df0", - 10284386012808371892335572105827331142617405906583881252864 - ], - [ - "00000000000000009051d83d276dad5c547612f67c2907acf6a143039bddb1bb", - 8614444778121073626993210829679478604092861119379437256704 - ], - [ - "00000000000000000b83d3947d2790ab0bcbbb61eba1eb8d8f0f0eb3e9d461e0", - 7065379129219572345353864175298106702426244380437224882176 - ], - [ - "00000000000000005a4fbbaeffee6d52fa329dd8c559f90c9b30264c46ad33fd", - 6343094824615218102798845742064326605321937397913065881600 - ], - [ - "00000000000000006b6834bae83e895a78c5026a8c8141388040d90506cf3148", - 5384518863803604621895699676581808210968416076987222720512 - ], - [ - "0000000000000000bf3c066c9acdb008e7fff3672f1391b35c8877b76b9e295e", - 4405349994161605759458363322921957536960017949107037405184 - ], - [ - "00000000000000006bcf448b771c8f4db4e2ca653474e3b29504ec08422b3fba", - 3863038134637689339706803268689141874606936642244315185152 - ], - [ - "000000000000000098686ab04cc22fec77e4fa2d76d5a3cc0eb8cbf4ed800cdc", - 3369574570478873127315415525946742317481702644901195284480 - ], - [ - "000000000000000036cc637d80982595b1fa30f877efe8904965e6fd70aeae1a", - 3045099693687311168583241534842989903432036285033490677760 - ], - [ - "00000000000000000ee9b585e0a707347d7c80f3a905f48fa32d448917335366", - 2578448441038522347123624842639328775756428679710156783616 - ], - [ - "00000000000000000401800189014bad6a3ca1af029e19b362d6ef3c5425a8dc", - 2293149852232440455888971398133692017055281498246925516800 - ], - [ - "00000000000000001b44d4645ac00773be676f3de8a8bff1a5fdd1fb04d2b3b2", - 2002553378451099534811946324256852041059202347552707969024 - ], - [ - "00000000000000003ff2a53152ee98910d7383c0177459ad258c4b2d2c4d4610", - 1602972750958019380418919163663316163747908621623690788864 - ], - [ - "00000000000000001bb242c9463b511b9e6a99a6d48bd783acb070ca27861c2b", - 1555090122338762644529309082074529684497336694348804259840 - ], - [ - "000000000000000019d43247356b848a7ef8b1c786d8c833b76e382608cb59e9", - 1438882362326364789097016808333128944459434864174551793664 - ], - [ - "00000000000000003711b624fbde8c77d4c7e25334cfa8bc176b7248ca67b24b", - 1366448002777625511026173062127977611952455397852592472064 - ], - [ - "0000000000000000092c1f996e0b6d07fd0e73dfe6409a5c2adc1206e997c3a2", - 1130631509982695295834811811892052032638591596239280668672 - ], - [ - "000000000000000020ce180d66df9d3c28aee9fcec7896071ec67091a9753283", - 982897592923314645728937741958820396011314229953349812224 - ], - [ - "000000000000000018d37d53ae02e13634eefb8d9246253e99c1bdf65ac293ea", - 903780639904017349860452775965599807564731663176966340608 - ], - [ - "00000000000000001607d1a21507dea1c0e5f398daf94d35fb7e0a3238f96a0f", - 777796486219054632155478957346406689849105796561635377152 - ], - [ - "00000000000000001acae244523061f650ddab9c3271d13c0cd86071ae6e8a5f", - 770217816864616291160628694313702426464491250746461782016 - ], - [ - "0000000000000000104430189dba1219b0e3dd90824e8c2271609aca5b71250f", - 749174812297985386116525053725808178560617045558724395008 - ], - [ - "00000000000000001aa260733b6d8f8faa2092af35e55973278bb17f8eaeca6b", - 680733321990486529407107157001552378184394215934016880640 - ], - [ - "000000000000000009925ad5866a9cb3a1d83d9399137bccc7b5470b38b1db2b", - 668970595596618687654683311252875969389523722950049529856 - ], - [ - "00000000000000001133acacb92e43e24af63a487923361a4a98c87a5550dffe", - 673862533877092685902494685124943911912916060357898797056 - ], - [ - "000000000000000018c66b4a76ca69204e24ee069da9368c7a9883adb36c24af", - 683252062220249508849116041812776958610205092831121375232 - ], - [ - "000000000000000010b13aed220b96c35ccd5f07125b51308db976eefcd718f9", - 663358803453687177159928221638562617962497973903752691712 - ], - [ - "0000000000000000031b14ece1cfda0e23774e473cd2676834f73155e4f46a2b", - 613111582105360026820898034285227810088764320248934432768 - ], - [ - "000000000000000010bfa427c8d305d861ab5ee4776d87d6d911f5fb3045c754", - 653202279051259096361833571150520065936493508031976308736 - ], - [ - "000000000000000005d1e9e192a43a19e2fbd933ffb27df2623187ad5ce10adc", - 606439838822957553646521558653356639834299145437709336576 - ], - [ - "00000000000000000f9e30784bd647e91f6923263a674c9c5c18084fe79a41f8", - 577485176368838834686684127480472050622611986764206702592 - ], - [ - "00000000000000000036d3e1c36e4b959a3e4ad6376ce9ae65961e60350c86e8", - 568436119447114618883887501211268589217582000336195813376 - ], - [ - "00000000000000000b3ec9df7aebc319bb12491ba651337f9b3541e78446eca8", - 577075114085443079269506210404847846798089003835028668416 - ], - [ - "000000000000000012d24ce222e3c81d4c148f2bce88f752c0dba184c3bc6844", - 545227566982404669720599751103563308707559049533419683840 - ], - [ - "000000000000000000c4ccbdd98c267bd16bda12b63b648c47af3ac51c1cc574", - 566251116039239425785056264238964437451875594947144974336 - ], - [ - "00000000000000000056bfec1dca8e82710f411af64b1d3b04a2d2364a81993f", - 565860883410058976058672534759150528155363303710710038528 - ], - [ - "00000000000000001275d1cadce690546f74f77f6d4a6190e2137a8a819946f6", - 552364745922238091561919045022000637317595931246011088896 - ], - [ - "000000000000000003816ae80c6413b84cbee2f639ba497ab5872ec9711eb256", - 566500670366816952120145379831520408210047884740723212288 - ], - [ - "00000000000000000d92953224570f521b09553194da1ca3c4b31a09a238f4f6", - 542528489142608155505707877213460200687386787807972294656 - ], - [ - "000000000000000006721943f23cfacf20c17c2ad6ea4e902af36b01f92e3c06", - 545717322027080804612101478705745866012577831152301113344 - ], - [ - "0000000000000000031d9af2fe38cc02410361fb213181fdb667c74e210d54c4", - 527827980769521817826567786138322798799309668948178370560 - ], - [ - "0000000000000000142e8a13ef6994961655c8e86aece3f0abebd2ee05473e75", - 515692606534173891771672037645739723025219384908133171200 - ], - [ - "00000000000000000c7a8db37a746d6637ef6a6eab28735608fd715ee2f394e7", - 511567664312971151375333957573881285830542480898837708800 - ], - [ - "000000000000000007854877c66c71a49af40d20f2d6f817becfe4d66d5e5a81", - 496889230460615059653870414954457230681194245244172894208 - ], - [ - "000000000000000005ce1d2d10aeb9def4d38233e859d98a4a168ea3fa36687a", - 473325989086544548323169648982069700877697035484407005184 - ], - [ - "000000000000000007c71decfe74855ad99dc2aa4a2e713165db5a8d6da5f32a", - 454358737757395076722955683517864397151243915416267915264 - ], - [ - "000000000000000008ce4f34161be6760569877c685e37ebebce3546ea42a767", - 443316987659242217350916733941384923365365929826941140992 - ], - [ - "0000000000000000086233f4843682eb47bacb58930a5577fbfd5c9ebd57ddf9", - 442802913227320896234856097023585967110900073490544590848 - ], - [ - "000000000000000010a904eee4fc763c6b88d378884f368fd652f63c1af71580", - 433057199397126884276233483897801969646324654385408245760 - ], - [ - "00000000000000000c114754749d622d4fa2f78c84d7147c345b2b99a8e83d2e", - 409419129139225030716120689261979366152221060879441985536 - ], - [ - "000000000000000000a5039e32cc9a89aeffbde1391e8bc9ae9724127904f01d", - 370716507988397359530778284103407727265240291588416995328 - ], - [ - "000000000000000003b0b73d9b3259c318cca48a6335b5d64545583f7f3773fa", - 340818253309165415058055171484606858815006633875327680512 - ], - [ - "00000000000000000198bcc5bd65fd0ccd1c7e3b49e0170ea80296cbfee05042", - 288495652867775987986282369150900282132304927019642126336 - ], - [ - "00000000000000000a60f379d3dc1413491f360809a97cbb02c81442c613dce7", - 259524902203633530447121351815377152077137395840706412544 - ], - [ - "0000000000000000038973a5f8ba8cdc7e371dcc8f4b24337ef695f24b962907", - 237834253647442358407456603145452341381064939329604812800 - ], - [ - "000000000000000004b8ec471974913d052a3af7dc2a8c6f01c2ac2f3d1f7b19", - 224600391397450328424792273873642383828872941895338164224 - ], - [ - "0000000000000000075d572eef1c4210adc7abf4e40986d7f0a80003853bfec4", - 187067719845325692996306936867878122094522982476155977728 - ], - [ - "0000000000000000074f9edbfc07648dc74392ba8248f0983ffea63431b3bc20", - 164898540577033087399552264895286015147022701908103004160 - ], - [ - "000000000000000003c4a4d9c62b3a7f4893afe14eef8a6a377229d23ad4b1ea", - 170169861298531990750482624090969781281789404909188153344 - ], - [ - "00000000000000000404b6939e6c35a5448386e5d58f318c82ce2fefb7d73e47", - 162900609378736249874251099581569547607832255884553093120 - ], - [ - "0000000000000000034656c96781091b5fbc799c881ea85b41cba0b88128eff7", - 161578008857017275969393492955354620126364423170461532160 - ], - [ - "0000000000000000045645e2acd740a88d2b3a09369e9f0f80d5376e4b6c5189", - 150883090635422687830679296233896712896447026244773478400 - ], - [ - "00000000000000000381e6a138308c6547d6fe3eb3437250ffefdebbf71eefd1", - 150899178845446426410002882396535253739927398750206558208 - ], - [ - "0000000000000000012100ddbb2102e65fb1ebbf104ead754a4110abffc4b8bc", - 138784382553152119468195441786396823230753870240366460928 - ], - [ - "0000000000000000046f56e59b9b1293b5e7c1587aa6d29c4f3f79b98cf22ee6", - 135262935280049154152065372885142255350817451144176992256 - ], - [ - "000000000000000001bd1c291e91f4476f93454d4542d2ed7e44fc86902c93bb", - 137505556928474480767543871928291413858290772017802117120 - ], - [ - "000000000000000001c37a483375ff6fd6ed7c5b79d80167b027a8fdb0721dcd", - 128713911367130082233924624261304605948946745676720504832 - ], - [ - "0000000000000000051804b4c2da5298c4573386bf1d4242bf0e26a49ec32e42", - 126333978716874242627475052620752087219210710628817698816 - ], - [ - "0000000000000000034bff7888f1f7294311f0199322f77c1457018c875bd9e1", - 126278605342839049377710151409810132688161986656629424128 - ], - [ - "00000000000000000506b43c9283ccbc40f583e0c734e4a8af2ce6a4262c6221", - 133533639774706835230353390473157702360903922769486413824 - ], - [ - "000000000000000003937068e19a0750a33978050f019d2b60f430e3da707db9", - 124022888639743237872084547350559836284832548627419234304 - ], - [ - "000000000000000002e2f6ec3c9eb965aa706c788da7dede201b6b4b8fae3971", - 122123731568103772089607259872577666017242529148853813248 - ], - [ - "000000000000000000b3076636b13562bb4315f895bcb324e0c962763c2196b1", - 119378259820331825692479928211144812308894309500762193920 - ], - [ - "00000000000000000025b8961d1d0cfba33b0205ec10b3ce541618e352b0bbd5", - 111759931157462873316041289986819959868258380300102402048 - ], - [ - "00000000000000000421d58b78b9f063a4b20e181d55c9c79082f9e4b8b30925", - 104283029085035157753191385936387396702868516379761311744 - ], - [ - "0000000000000000027fd968d41741f31c73c4a3b304472da0165245278e2ea3", - 106299667504289830835845558415962632664710558339861315584 - ], - [ - "00000000000000000364a23184b8a2c009d13172094421c22e4d9bc85dcf90a5", - 105881374043672627773432318187360570734220873198601240576 - ], - [ - "0000000000000000042a2ed4a504424060407825d774a54f2e148fa769ee72ff", - 95668727978371040303278646201741713440261619517174579200 - ], - [ - "0000000000000000025f769f13f2806fed19d9948b1a7ef19048177789afc5d3", - 94012390634764280055243391736606357298689315295029362688 - ], - [ - "000000000000000000b3ff31d54e9e83515ee18360c7dc59e30697d083c745ff", - 86923102180582917240747796162767475850640519180006195200 - ], - [ - "0000000000000000021ecdcb2368ce66c23efd8bd8ab6a88a8bb70571c6e67f0", - 84861566431029438820446406485131195674434646972185968640 - ], - [ - "000000000000000001972cb33b862b27c1dc3f3a723f7d1cfd69aebe0409126c", - 80022382513656536844370512820784980102919810105407963136 - ], - [ - "000000000000000000cb26d2b1018d80670ccc41d89c7da92175bd6b00f27a3e", - 68605739707508652902977299640495787127103841947617329152 - ], - [ - "00000000000000000276deb4022f66cacd929c690cd6b4f7e740836b614b21f4", - 63859343606086615291372321518809062931940920926127783936 - ], - [ - "000000000000000000587912ced677698c86eec8b1d70144dccb1c6b0bad0f17", - 61163258921643354765656928775243357859392914550528409600 - ], - [ - "0000000000000000009f989a246ac4221ebdced8ccebae9b8d5c83b69bb5e7c8", - 58509826700983959310706392369835644790490546910263246848 - ], - [ - "000000000000000000038bed8b89c4e82c13076dd64dc5f7a349c39d3921d607", - 56672777602924507578641088682504585686103825941044133888 - ], - [ - "00000000000000000122f47d580700a3a5b4b6cb46669a36e4fa974c720ab6cd", - 53958359841942568206719748916397287559357255547625668608 - ], - [ - "00000000000000000172ad9ea56a90bdfed0f364a902500e9ff4d74f000ced99", - 51764751112426770751506128647798102319231116027761786880 - ], - [ - "00000000000000000201d7429db233c7055e9699c5bfb57b167ca8d0c710dc71", - 51649140486907347007064544362790913467244253139882213376 - ], - [ - "000000000000000000c0549b2a8adbefbf6c909f61fdc4d6087c44a549cf8201", - 48144529712666433692552181910809237167694270386587828224 - ], - [ - "0000000000000000015b6789cdc5dc13766f58b38f16d5b35bf79ce4b040f7fd", - 45240046586752885057924289339576851866807485277820420096 - ], - [ - "0000000000000000013a31b29f845d97465bff53f901027f8ab4b1a2f59118a8", - 39718797393257298660757754408019939605415460564426031104 - ], - [ - "00000000000000000088cdeaa7389a7de9f09e3a28b3647630fea3bd1b107134", - 37880625861940376795251270290737354395669643839013912576 - ], - [ - "000000000000000001389446206ebcd378c32cd00b4920a8a1ba7b540ca7d699", - 38043004539854389433075372490391464304285496568268718080 - ], - [ - "000000000000000000f41e2b7f056b6edef47477d0d0f5833d5d4a047151f2dc", - 33509870757351677175294676059494700127350769223450230784 - ], - [ - "0000000000000000010e0373719b7538e713e47d8d7189826dce4264d85a79b8", - 31340207270661909233492904963194738468218672502370467840 - ], - [ - "00000000000000000053e2d10bd703ad5b7787614965711d6170b69b133aa366", - 29201223626342991605750065618903157022235193117232857088 - ], - [ - "000000000000000000cbeff0b533f8e1189cf09dfbebf57a8ebe349362811b80", - 30353962581764818649842367179120467226026534727449575424 - ], - [ - "000000000000000000d0ad638ad61e7c4c3113618b8b26b2044347c00c042278", - 29217311836366730185073651781541697865715565622665936896 - ], - [ - "000000000000000000a7bda943639876a2d7a8caf4cac45678fb237d59c28ba1", - 24433127148609864747615599184820261456796420809345204224 - ], - [ - "000000000000000000fb6c6a307c8363e923873499ba6299597769c10a438e61", - 23988269434232535193761088780698748366141469438183997440 - ], - [ - "0000000000000000006f408147ffbcaa0fb1dcf1f199c527ffdaf159d86e5cd9", - 22526487188587264742197108840494583820145762956159746048 - ], - [ - "000000000000000000e3be3cf7343d7792c0d47d3c39ddb9ceaf19961e9eeab4", - 18556440756915402760741928101946749165024073301499052032 - ], - [ - "000000000000000000b3fb09d6def197657e20f9c1d5e9680cfcac1e1f9aa269", - 19758940920085072387393228723348383373068660102939017216 - ], - [ - "000000000000000000bfe71f044145e1b42fdfb3a523ee2a215e80fa6afc2a98", - 20014481558369106100835306608979160026489460596213284864 - ], - [ - "000000000000000000cee3bff56ee49c0f96d1cbd17fa17dc6f84b3f48aed765", - 16946123176864917983795071264823963343174695083267063808 - ], - [ - "00000000000000000089ef13654974b8896b0b0909dd9ae8e350b8a8a7807ce3", - 14392961660539521116256653268419249019684881662910398464 - ], - [ - "0000000000000000003105a067417c318dab31e25ae1583fa2b27be226945fdd", - 13960450711994363030255127593764523087979983609872252928 - ], - [ - "000000000000000000720da39f66f29337b9a29223e1ce05fd5ee57bb72a9223", - 12101157559014734955774763823279522156034099347349045248 - ], - [ - "0000000000000000006a8957cbd52c2038861514f106f7f9f76392d5cb83fd4c", - 10356793971791534424976101420669664288187918308140384256 - ], - [ - "0000000000000000006b68e55432541794388c94fe9e805652038e7b3cac0681", - 9378292318569022964986206758839123913433917663832178688 - ], - [ - "00000000000000000001c9deea9f0302eadb1250df1ad53da802dfb40d47face", - 8964447668935855171055978546867850348456065181232922624 - ], - [ - "00000000000000000013aaa8778111530a626a3fe57e4e6f4a878c92669b04d1", - 8192878571041388924351625416816775770172128369752145920 - ], - [ - "0000000000000000002f67aa98789b98304a32e54bffbb34c8693eb0acac4c30", - 7786052052270684126234611299412205796254663675224260608 - ], - [ - "0000000000000000002e5f072398ee27b25b6cdcf69051bcdbbece417093c979", - 7678459224733657715202292429397298472913633233275453440 - ], - [ - "00000000000000000028d7447c20ade2053bbaf49e8a16eb5fb1bc74335d0d18", - 7021961458254440109762706424650140438182306270565892096 - ], - [ - "00000000000000000042d89446b9043387be2d4c09aa9e9524176c5754616510", - 6702918573828378664524678433037841287557455508299317248 - ], - [ - "00000000000000000018ec4d369bab2c13174834a02138decea7c85685d46bd6", - 6505870154073602347674948421782035713149324747260035072 - ], - [ - "0000000000000000000d4a6c2237c6c46b963b17f60d9c850c4915518deb6678", - 6259542822111302646229226565336702507884435252736688128 - ], - [ - "00000000000000000031adb986da21237ce06b57ae5390b7f0f890ab8e21b66a", - 5456617206587901877414813377199700077413780408546361344 - ], - [ - "000000000000000000031df41201cd3789559333cd9529f99834a805014c9b13", - 5309609141393698345581459330931267317315649121846034432 - ], - [ - "00000000000000000020c68bfc8de14bc9dd2d6cf45161a67e0c6455cf28cfd8", - 5026314587016750785722693470327208449351582469580652544 - ], - [ - "00000000000000000009dce52e227d46a6bdf38a8c1f2e88c6044893289c2bf0", - 5205879062684137510961952799929229129995569309608312832 - ], - [ - "0000000000000000002eca92f4e44dcf144115851689ace0ff4ce271792f16fe", - 4531442825108320403104334767545311437480985430866264064 - ], - [ - "00000000000000000000943de85f4495f053ff55f27d135edc61c27990c2eec5", - 4219470685603665866184576203153693664105230070242607104 - ], - [ - "0000000000000000001d9d48d93793aaa85b5f6d17c176d4ef905c7e7112b1cf", - 4007526641161212986792514236082843733160766044725313536 - ], - [ - "0000000000000000001877e616b546d1ba5cf9e8b8edd9eba480a4fbb9f02bce", - 3840827764407250199942201944063224491938810378873470976 - ], - [ - "00000000000000000025eb2c783f2f29d68ab4260f4b0248450c0038debc7ba4", - 3769176185135465353474348091454476000617158630021529600 - ], - [ - "0000000000000000000c61b8a7779dcc46e88ca343b9a3fcc6763917fe3b87e2", - 3616317728887026217259424694800679959591344645351669760 - ], - [ - "00000000000000000003dba9fedba6a0b92b640167eeda0d41485a3c85ac4ac6", - 3753318892370425056811838111019504329853891761930240000 - ], - [ - "0000000000000000001ac75bed7eb6169255893f99de28f24e3e0e57b6f7db7b", - 3752507758961706405692235065937346792777982719368888320 - ], - [ - "0000000000000000000e5796e9c5cdc8a8a2de84fd17287d7dfe89074de31766", - 4052052750044136275098507698196378011637603685579620352 - ], - [ - "00000000000000000015fe695e8d2e5ed3a7de81d3818ef43a444e1ee7b3ace2", - 4774638159061819979596346127394133648234752261950013440 - ], - [ - "00000000000000000015a08d0a60237487070fe0d956d5fb5fd9d21ad6d7b2d3", - 5279534360700703025330663904443631645337169341976674304 - ], - [ - "00000000000000000008f4f64baaa9b28d4476f2a000c459df492d5664320b12", - 4798269179035823348880781507454323228379569035237392384 - ], - [ - "00000000000000000028a69d9498c46b2b073752133e3e9e585965e7dab55065", - 4581847093576588582947343450056030606262879232408420352 + "e7874ac02e4da5148fe44510c7f0c7242f52b3726992553ebbc8c7f303c473ab", + 0 ] -] \ No newline at end of file +] diff --git a/electrum/commands.py b/electrum/commands.py index 4defc0523..343eba6d0 100644 --- a/electrum/commands.py +++ b/electrum/commands.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Electrum - lightweight Bitcoin client +# Electrum - lightweight Bitcore client # Copyright (C) 2011 thomasv@gitorious # # Permission is hereby granted, free of charge, to any person @@ -151,8 +151,8 @@ def create(self, passphrase=None, password=None, encrypt_file=True, segwit=False @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. + public key, a master private key, a list of bitcore addresses + or bitcore private keys. If you want to be prompted for an argument, type '?' or ':' (concealed) """ d = restore_wallet_from_text(text, @@ -515,7 +515,7 @@ def history(self, year=None, show_addresses=False, show_fiat=False, show_fees=Fa @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 bitcore address or a transaction ID""" self.wallet.set_label(key, label) @@ -607,7 +607,7 @@ def _format_request(self, out): PR_PAID: 'Paid', PR_EXPIRED: 'Expired', } - out['amount (BTC)'] = format_satoshis(out.get('amount')) + out['amount (BTX)'] = format_satoshis(out.get('amount')) out['status'] = pr_str[out.get('status', PR_UNKNOWN)] return out @@ -777,8 +777,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': 'Bitcore address, contact or alias', + 'address': 'Bitcore address', 'seed': 'Seed phrase', 'txid': 'Transaction ID', 'pos': 'Position', @@ -788,8 +788,8 @@ def eval_bool(x: str) -> bool: '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 BTX). Type \'!\' to send the maximum available.', + 'requested_amount': 'Requested amount (in BTX).', 'outputs': 'list of ["address", amount]', 'redeem_script': 'redeem script (hexadecimal)', } @@ -807,7 +807,7 @@ def eval_bool(x: str) -> bool: '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 BTX)"), '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"), @@ -866,10 +866,10 @@ def eval_bool(x: str) -> bool: '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 bitcore: 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 bitcore: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', } } @@ -937,7 +937,7 @@ def add_global_options(parser): group.add_argument("-v", dest="verbosity", help="Set verbosity (log levels)", default='') group.add_argument("-V", dest="verbosity_shortcuts", help="Set verbosity (shortcut-filter list)", default='') group.add_argument("-D", "--dir", dest="electrum_path", help="electrum directory") - group.add_argument("-P", "--portable", action="store_true", dest="portable", default=False, help="Use local 'electrum_data' directory") + group.add_argument("-P", "--portable", action="store_true", dest="portable", default=False, help="Use local 'electrum-btx_data' directory") group.add_argument("-w", "--wallet", dest="wallet_path", help="wallet path") group.add_argument("--testnet", action="store_true", dest="testnet", default=False, help="Use Testnet") group.add_argument("--regtest", action="store_true", dest="regtest", default=False, help="Use Regtest") @@ -951,7 +951,7 @@ def get_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="bitcore 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 26504312c..b8e9a88a9 100644 --- a/electrum/constants.py +++ b/electrum/constants.py @@ -54,10 +54,10 @@ class BitcoinMainnet(AbstractNet): TESTNET = False WIF_PREFIX = 0x80 - ADDRTYPE_P2PKH = 0 - ADDRTYPE_P2SH = 5 - SEGWIT_HRP = "bc" - GENESIS = "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" + ADDRTYPE_P2PKH = 3 + ADDRTYPE_P2SH = 125 + SEGWIT_HRP = "btx" + GENESIS = "604148281e5c4b7f2487e5d03cd60d8e6f69411d613f6448034508cea52e9574" DEFAULT_PORTS = {'t': '50001', 's': '50002'} DEFAULT_SERVERS = read_json('servers.json', {}) CHECKPOINTS = read_json('checkpoints.json', []) @@ -78,7 +78,7 @@ class BitcoinMainnet(AbstractNet): 'p2wsh': 0x02aa7ed3, # Zpub } XPUB_HEADERS_INV = inv_dict(XPUB_HEADERS) - BIP44_COIN_TYPE = 0 + BIP44_COIN_TYPE = 160 class BitcoinTestnet(AbstractNet): @@ -88,7 +88,7 @@ class BitcoinTestnet(AbstractNet): ADDRTYPE_P2PKH = 111 ADDRTYPE_P2SH = 196 SEGWIT_HRP = "tb" - GENESIS = "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943" + GENESIS = "02c5d66e8edb49984eb743c798bca069466ce457b7febfa3c3a01b33353b7bc6" DEFAULT_PORTS = {'t': '51001', 's': '51002'} DEFAULT_SERVERS = read_json('servers_testnet.json', {}) CHECKPOINTS = read_json('checkpoints_testnet.json', []) @@ -115,7 +115,7 @@ class BitcoinTestnet(AbstractNet): class BitcoinRegtest(BitcoinTestnet): SEGWIT_HRP = "bcrt" - GENESIS = "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206" + GENESIS = "604148281e5c4b7f2487e5d03cd60d8e6f69411d613f6448034508cea52e9574" DEFAULT_SERVERS = read_json('servers_regtest.json', {}) CHECKPOINTS = [] diff --git a/electrum/currencies.json b/electrum/currencies.json index 657072bef..89ac0aa41 100644 --- a/electrum/currencies.json +++ b/electrum/currencies.json @@ -1,398 +1,5 @@ { - "BitFlyer": [ - "JPY" - ], - "BitPay": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BCH", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BTC", - "BTN", - "BWP", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNY", - "COP", - "CRC", - "CUP", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EGP", - "ETB", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "INR", - "IQD", - "IRR", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KPW", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRU", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PAX", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SDG", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "STN", - "SVC", - "SYP", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VES", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XOF", - "XPF", - "YER", - "ZAR", - "ZMW", - "ZWL" - ], - "BitStamp": [ - "USD", - "EUR" - ], - "Bitbank": [ - "JPY" - ], - "BitcoinAverage": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BTN", - "BWP", - "BYN", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNH", - "CNY", - "COP", - "CRC", - "CUC", - "CUP", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EGP", - "ERN", - "ETB", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GGP", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "IMP", - "INR", - "IQD", - "IRR", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KPW", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRO", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SDG", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "SSP", - "STD", - "SVC", - "SYP", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VES", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XDR", - "XOF", - "XPD", - "XPF", - "XPT", - "YER", - "ZAR", - "ZMW", - "ZWL" - ], - "BitcoinVenezuela": [ - "ARS", - "ETH", - "EUR", - "LTC", - "USD", - "VEF", - "XMR" - ], - "Bitcointoyou": [ - "BRL" - ], - "Bitmarket": [ - "PLN" - ], - "Bitso": [ - "MXN" - ], - "Bitvalor": [ - "BRL" - ], - "BlockchainInfo": [ - "AUD", - "BRL", - "CAD", - "CHF", - "CLP", - "CNY", - "DKK", - "EUR", - "GBP", - "HKD", - "INR", - "ISK", - "JPY", - "KRW", - "NZD", - "PLN", - "RUB", - "SEK", - "SGD", - "THB", - "TWD", - "USD" - ], - "Bylls": [ - "CAD" - ], - "CoinCap": [ - "USD" - ], - "CoinDesk": [ + "BitcoinAverage": [ "AED", "AFN", "ALL", @@ -414,19 +21,20 @@ "BOB", "BRL", "BSD", - "BTC", "BTN", "BWP", - "BYR", + "BYN", "BZD", "CAD", "CDF", "CHF", "CLF", "CLP", + "CNH", "CNY", "COP", "CRC", + "CUC", "CUP", "CVE", "CZK", @@ -434,7 +42,6 @@ "DKK", "DOP", "DZD", - "EEK", "EGP", "ERN", "ETB", @@ -443,6 +50,7 @@ "FKP", "GBP", "GEL", + "GGP", "GHS", "GIP", "GMD", @@ -456,6 +64,7 @@ "HUF", "IDR", "ILS", + "IMP", "INR", "IQD", "IRR", @@ -478,8 +87,6 @@ "LKR", "LRD", "LSL", - "LTL", - "LVL", "LYD", "MAD", "MDL", @@ -489,7 +96,6 @@ "MNT", "MOP", "MRO", - "MTL", "MUR", "MVR", "MWK", @@ -525,6 +131,7 @@ "SLL", "SOS", "SRD", + "SSP", "STD", "SVC", "SYP", @@ -543,21 +150,21 @@ "USD", "UYU", "UZS", - "VEF", + "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", - "XBT", "XCD", "XDR", "XOF", + "XPD", "XPF", + "XPT", "YER", "ZAR", - "ZMK", "ZMW", "ZWL" ], @@ -617,282 +224,38 @@ "XRP", "ZAR" ], - "Coinbase": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BAT", - "BBD", - "BCH", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BSV", - "BTC", - "BTN", - "BWP", - "BYN", - "BYR", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNH", - "CNY", - "COP", - "CRC", - "CUC", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EEK", - "EGP", - "ERN", - "ETB", - "ETC", - "ETH", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GGP", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "IMP", - "INR", - "IQD", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LTC", - "LTL", - "LVL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRO", - "MTL", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "SSP", - "STD", - "SVC", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XDR", - "XOF", - "XPD", - "XPF", - "XPT", - "YER", - "ZAR", - "ZEC", - "ZMK", - "ZMW", - "ZRX", - "ZWL" - ], - "Kraken": [ - "CAD", - "EUR", - "GBP", - "JPY", - "USD" - ], - "LocalBitcoins": [ - "AED", - "ARS", + "CoinMarketCap": [ "AUD", - "BAM", - "BDT", - "BGN", - "BOB", "BRL", - "BWP", - "BYN", "CAD", "CHF", "CLP", "CNY", - "COP", - "CRC", "CZK", "DKK", - "DOP", - "EGP", - "ETH", "EUR", "GBP", - "GEL", - "GHS", - "GTQ", "HKD", - "HNL", - "HRK", "HUF", "IDR", "ILS", "INR", - "IRR", - "JOD", "JPY", - "KES", "KRW", - "KZT", - "LKR", - "LTC", - "MAD", "MXN", "MYR", - "NGN", "NOK", "NZD", - "OMR", - "PAB", - "PEN", "PHP", "PKR", "PLN", - "QAR", - "RON", - "RSD", "RUB", - "RWF", - "SAR", "SEK", "SGD", - "SZL", "THB", "TRY", - "TTD", "TWD", - "TZS", - "UAH", - "UGX", "USD", - "UYU", - "VES", - "VND", - "XAF", - "XMR", - "XRP", "ZAR" - ], - "MercadoBitcoin": [ - "BRL" - ], - "NegocieCoins": [ - "BRL" - ], - "TheRockTrading": [ - "EUR" - ], - "Zaif": [ - "JPY" - ], - "itBit": [] -} \ No newline at end of file + ] +} diff --git a/electrum/ecc.py b/electrum/ecc.py index 569f51f32..7e3840f51 100644 --- a/electrum/ecc.py +++ b/electrum/ecc.py @@ -312,7 +312,7 @@ def is_pubkey_bytes(cls, b: bytes): 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"\x18BitCore Signed Message:\n" + length + message def verify_message_with_address(address: str, sig65: bytes, message: bytes, *, net=None): diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py index d19a7dcd0..9cc69e14e 100644 --- a/electrum/exchange_rate.py +++ b/electrum/exchange_rate.py @@ -368,6 +368,10 @@ async def get_rates(self, ccy): '/v1/funds/BTCEUR/ticker') return {'EUR': Decimal(json['last'])} +class CoinMarketCap(ExchangeBase): + def get_rates(self, ccy): + json = self.get_json("api.coinmarketcap.com", "/v1/ticker/bitcore/?convert=" + ccy) + return {ccy: Decimal(json[0]["price_" + ccy.lower()])} class Winkdex(ExchangeBase): diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py index 2ec4de174..88cdcbc9c 100644 --- a/electrum/gui/kivy/main_window.py +++ b/electrum/gui/kivy/main_window.py @@ -161,7 +161,7 @@ def set_URI(self, uri): self.send_screen.set_URI(uri) def on_new_intent(self, intent): - if intent.getScheme() != 'bitcoin': + if intent.getScheme() != 'bitcore': return uri = intent.getDataString() self.set_URI(uri) @@ -305,7 +305,7 @@ def __init__(self, **kwargs): self.daemon = self.gui_object.daemon self.fx = self.daemon.fx - self.use_rbf = config.get('use_rbf', True) + self.use_rbf = config.get('use_rbf', False) self.use_change = config.get('use_change', True) self.use_unconfirmed = not config.get('confirmed_only', False) @@ -350,7 +350,7 @@ def on_qr(self, data): if is_address(data): self.set_URI(data) return - if data.startswith('bitcoin:'): + if data.startswith('bitcore:'): self.set_URI(data) return # try to decode transaction @@ -508,7 +508,7 @@ def on_start(self): self.fiat_unit = self.fx.ccy if self.fx.is_enabled() else '' # default tab self.switch_to('history') - # bind intent for bitcoin: URI scheme + # bind intent for bitcore: URI scheme if platform == 'android': from android import activity from jnius import autoclass diff --git a/electrum/gui/kivy/tools/blacklist.txt b/electrum/gui/kivy/tools/blacklist.txt index bb689ff32..6bd911712 100644 --- a/electrum/gui/kivy/tools/blacklist.txt +++ b/electrum/gui/kivy/tools/blacklist.txt @@ -70,7 +70,7 @@ pydoc_data/* tty.pyo #anydbm.pyo nturl2path.pyo -LICENCE.txt +LICENSE.txt macurl2path.pyo dummy_threading.pyo audiodev.pyo diff --git a/electrum/gui/kivy/uix/dialogs/settings.py b/electrum/gui/kivy/uix/dialogs/settings.py index dddd501be..ad34c8b19 100644 --- a/electrum/gui/kivy/uix/dialogs/settings.py +++ b/electrum/gui/kivy/uix/dialogs/settings.py @@ -44,7 +44,7 @@ SettingsItem: bu: app.base_unit title: _('Denomination') + ': ' + self.bu - description: _("Base unit for Bitcoin amounts.") + description: _("Base unit for Bitcore amounts.") action: partial(root.unit_dialog, self) CardSeparator SettingsItem: diff --git a/electrum/gui/kivy/uix/screens.py b/electrum/gui/kivy/uix/screens.py index 093a982fb..d2dcd9495 100644 --- a/electrum/gui/kivy/uix/screens.py +++ b/electrum/gui/kivy/uix/screens.py @@ -259,10 +259,10 @@ def do_send(self): else: address = str(self.screen.address) if not address: - self.app.show_error(_('Recipient not specified.') + ' ' + _('Please scan a Bitcoin address or a payment request')) + self.app.show_error(_('Recipient not specified.') + ' ' + _('Please scan a Bitcore address or a payment request')) return if not bitcoin.is_address(address): - self.app.show_error(_('Invalid Bitcoin Address') + ':\n' + address) + self.app.show_error(_('Invalid Bitcore Address') + ':\n' + address) return try: amount = self.app.get_amount(self.screen.amount) @@ -391,7 +391,7 @@ def update_qr(self): def do_share(self): uri = self.get_URI() - self.app.do_share(uri, _("Share Bitcoin Request")) + self.app.do_share(uri, _("Share Bitcore Request")) def do_copy(self): uri = self.get_URI() diff --git a/electrum/gui/kivy/uix/ui_screens/receive.kv b/electrum/gui/kivy/uix/ui_screens/receive.kv index 574e16c00..fe453d2a6 100644 --- a/electrum/gui/kivy/uix/ui_screens/receive.kv +++ b/electrum/gui/kivy/uix/ui_screens/receive.kv @@ -68,7 +68,7 @@ ReceiveScreen: pos_hint: {'center_y': .5} BlueButton: id: address_label - text: s.address if s.address else _('Bitcoin Address') + text: s.address if s.address else _('Bitcore Address') shorten: True on_release: Clock.schedule_once(lambda dt: app.addresses_dialog(s)) CardSeparator: diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 4d539a3eb..06c860df1 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Electrum - lightweight Bitcoin client +# Electrum - lightweight Bitcore client # Copyright (C) 2012 thomasv@gitorious # # Permission is hereby granted, free of charge, to any person @@ -463,8 +463,9 @@ def warn_if_watching_only(self): if self.wallet.is_watching_only(): msg = ' '.join([ _("This wallet is watching-only."), - _("This means you will not be able to spend Bitcoins with it."), - _("Make sure you own the seed phrase or the private keys, before you request Bitcoins to be sent to this wallet.") + _("This means you will not be able to spend Bitcores with it."), + _("Make sure you own the seed phrase or the private keys, before you request Bitcores to be sent to this wallet.") + ]) self.show_warning(msg, title=_('Watch-only wallet')) @@ -632,7 +633,7 @@ def add_toggle_action(view_menu, tab): help_menu = menubar.addMenu(_("&Help")) help_menu.addAction(_("&About"), self.show_about) help_menu.addAction(_("&Check for updates"), self.show_update_check) - help_menu.addAction(_("&Official website"), lambda: webopen("https://electrum.org")) + help_menu.addAction(_("&Official website"), lambda: webbrowser.open("https://bitcore.cc")) help_menu.addSeparator() help_menu.addAction(_("&Documentation"), lambda: webopen("http://docs.electrum.org/")).setShortcut(QKeySequence.HelpContents) help_menu.addAction(_("&Report Bug"), self.show_report_bug) @@ -645,18 +646,18 @@ def donate_to_server(self): d = self.network.get_donation_address() if d: host = self.network.get_parameters().host - self.pay_to_URI('bitcoin:%s?message=donation for %s'%(d, host)) + self.pay_to_URI('bitcore:%s?message=donation for %s'%(d, host)) else: self.show_error(_('No donation address for this server')) def show_about(self): QMessageBox.about(self, "Electrum", (_("Version")+" %s" % ELECTRUM_VERSION + "\n\n" + - _("Electrum's focus is speed, with low resource usage and simplifying Bitcoin.") + " " + + _("Electrum's focus is speed, with low resource usage and simplifying Bitcore.") + " " + _("You do not need to perform regular backups, because your wallet can be " "recovered from a secret phrase that you can memorize or write on paper.") + " " + _("Startup times are instant because it operates in conjunction with high-performance " - "servers that handle the most complicated parts of the Bitcoin system.") + "\n\n" + + "servers that handle the most complicated parts of the Bitcore system.") + "\n\n" + _("Uses icons from the Icons8 icon pack (icons8.com)."))) def show_update_check(self, version=None): @@ -902,7 +903,7 @@ def create_receive_tab(self): 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 = _('Bitcore address where the payment should be received. Note that each payment request uses a different Bitcore address.') self.receive_address_label = HelpLabel(_('Receiving address'), msg) self.receive_address_e.textChanged.connect(self.update_receive_qr) self.receive_address_e.textChanged.connect(self.update_receive_address_styling) @@ -933,8 +934,8 @@ def create_receive_tab(self): 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 Bitcore addresses.'), + _('The bitcore 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) @@ -1176,7 +1177,7 @@ def create_send_tab(self): 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 Bitcore 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 Bitcore address)') payto_label = HelpLabel(_('Pay to'), msg) grid.addWidget(payto_label, 1, 0) grid.addWidget(self.payto_e, 1, 1, 1, -1) @@ -1222,7 +1223,7 @@ def create_send_tab(self): 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 = _('Bitcore 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) @@ -1626,10 +1627,10 @@ def check_send_tab_outputs_and_show_errors(self, outputs) -> bool: for o in outputs: if o.address is None: - self.show_error(_('Bitcoin Address is None')) + self.show_error(_('Bitcore Address is None')) return True if o.type == TYPE_ADDRESS and not bitcoin.is_address(o.address): - self.show_error(_('Invalid Bitcoin Address')) + self.show_error(_('Invalid Bitcore Address')) return True if o.value is None: self.show_error(_('Invalid Amount')) @@ -1665,7 +1666,7 @@ def do_send(self, preview = False): amount = tx.output_value() if self.max_button.isChecked() else sum(map(lambda x:x[2], outputs)) fee = tx.get_fee() - use_rbf = self.config.get('use_rbf', True) + use_rbf = self.config.get('use_rbf', False) if use_rbf: tx.set_rbf(True) @@ -2081,7 +2082,7 @@ def update_console(self): 'electrum': electrum, 'daemon': self.gui_object.daemon, 'util': util, - 'bitcoin': bitcoin, + 'bitcore': bitcoin, }) c = commands.Commands(self.config, self.wallet, self.network, lambda: self.console.set_json(True)) @@ -2340,7 +2341,7 @@ def do_sign(self, address, message, signature, password): address = address.text().strip() message = message.toPlainText().strip() if not bitcoin.is_address(address): - self.show_message(_('Invalid Bitcoin address.')) + self.show_message(_('Invalid Bitcore address.')) return if self.wallet.is_watching_only(): self.show_message(_('This is a watching-only wallet.')) @@ -2368,7 +2369,7 @@ def do_verify(self, address, message, signature): address = address.text().strip() message = message.toPlainText().strip().encode('utf-8') if not bitcoin.is_address(address): - self.show_message(_('Invalid Bitcoin address.')) + self.show_message(_('Invalid Bitcore address.')) return try: # This can throw on invalid base64 @@ -2514,8 +2515,8 @@ def read_tx_from_qrcode(self): return if not data: return - # if the user scanned a bitcoin URI - if str(data).startswith("bitcoin:"): + # if the user scanned a bitcore URI + if str(data).startswith("bitcore:"): self.pay_to_URI(data) return # else if the user scanned an offline signed tx @@ -2960,7 +2961,7 @@ def on_alias_edit(): units = base_units_list msg = (_('Base unit of your wallet.') - + '\n1 BTC = 1000 mBTC. 1 mBTC = 1000 bits. 1 bit = 100 sat.\n' + + '\n1 BTX = 1000 mBTX. 1 mBTX = 1000 bits. 1 bit = 100 sat.\n' + _('This setting affects the Send tab, and all balance related fields.')) unit_label = HelpLabel(_('Base unit') + ':', msg) unit_combo = QComboBox() diff --git a/electrum/gui/qt/password_dialog.py b/electrum/gui/qt/password_dialog.py index 851bbc5aa..1de3a8c07 100644 --- a/electrum/gui/qt/password_dialog.py +++ b/electrum/gui/qt/password_dialog.py @@ -249,7 +249,7 @@ def create_password_layout(self, wallet, is_encrypted, OK_button): msg += ' ' + _('Use this dialog to add a password to your wallet.') else: if not is_encrypted: - msg = _('Your bitcoins are password protected. However, your wallet file is not encrypted.') + msg = _('Your bitcores are password protected. However, your wallet file is not encrypted.') else: msg = _('Your wallet is password protected and encrypted.') msg += ' ' + _('Use this dialog to change your password.') diff --git a/electrum/gui/qt/paytoedit.py b/electrum/gui/qt/paytoedit.py index ecb0ff47c..8d9b4229c 100644 --- a/electrum/gui/qt/paytoedit.py +++ b/electrum/gui/qt/paytoedit.py @@ -129,7 +129,7 @@ def check_text(self): self.payto_address = None if len(lines) == 1: data = lines[0] - if data.startswith("bitcoin:"): + if data.startswith("bitcore:"): self.scan_f(data) return try: @@ -203,7 +203,7 @@ def update_size(self): def qr_input(self): data = super(PayToEdit,self).qr_input() - if data.startswith("bitcoin:"): + if data.startswith("bitcore:"): self.scan_f(data) # TODO: update fee diff --git a/electrum/gui/stdio.py b/electrum/gui/stdio.py index 13b640c35..50859d948 100644 --- a/electrum/gui/stdio.py +++ b/electrum/gui/stdio.py @@ -170,7 +170,7 @@ def main(self): def do_send(self): if not is_address(self.str_recipient): - print(_('Invalid Bitcoin address')) + print(_('Invalid Bitcore address')) return try: amount = int(Decimal(self.str_amount) * COIN) diff --git a/electrum/gui/text.py b/electrum/gui/text.py index 35e8b0307..ccfd10b32 100644 --- a/electrum/gui/text.py +++ b/electrum/gui/text.py @@ -339,7 +339,7 @@ def do_clear(self): def do_send(self): if not is_address(self.str_recipient): - self.show_message(_('Invalid Bitcoin address')) + self.show_message(_('Invalid Bitcore address')) return try: amount = int(Decimal(self.str_amount) * COIN) diff --git a/electrum/interface.py b/electrum/interface.py index b5eac439c..d5726583b 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -25,6 +25,8 @@ import os import re import ssl +ssl._create_default_https_context = ssl._create_unverified_context + import sys import traceback import asyncio diff --git a/electrum/plot.py b/electrum/plot.py index 3174d1b26..0aaf110ab 100644 --- a/electrum/plot.py +++ b/electrum/plot.py @@ -37,7 +37,7 @@ def plot_history(history): plt.subplots_adjust(bottom=0.2) plt.xticks( rotation=25 ) ax = plt.gca() - plt.ylabel('BTC') + plt.ylabel('BTX') plt.xlabel('Month') xfmt = md.DateFormatter('%Y-%m-%d') ax.xaxis.set_major_formatter(xfmt) diff --git a/electrum/plugin.py b/electrum/plugin.py index a7313862e..0af25145d 100644 --- a/electrum/plugin.py +++ b/electrum/plugin.py @@ -496,9 +496,9 @@ def force_pair_xpub(self, plugin, handler, info, xpub, derivation, devices): # or it is not pairable raise DeviceUnpairableError( _('Electrum cannot pair with your {}.\n\n' - 'Before you request bitcoins to be sent to addresses in this ' + 'Before you request bitcores to be sent to addresses in this ' 'wallet, ensure you can pair with your device, or that you have ' - 'its seed (and passphrase, if any). Otherwise all bitcoins you ' + 'its seed (and passphrase, if any). Otherwise all bitcores you ' 'receive will be unspendable.').format(plugin.device)) def unpaired_device_infos(self, handler, plugin: 'HW_PluginBase', devices=None, diff --git a/electrum/plugins/digitalbitbox/digitalbitbox.py b/electrum/plugins/digitalbitbox/digitalbitbox.py index 27a2a3876..7338404a4 100644 --- a/electrum/plugins/digitalbitbox/digitalbitbox.py +++ b/electrum/plugins/digitalbitbox/digitalbitbox.py @@ -734,7 +734,7 @@ def setup_device(self, device_info, wizard, purpose): client.handler = self.create_handler(wizard) if purpose == HWD_SETUP_NEW_WALLET: client.setupRunning = True - client.get_xpub("m/44'/0'", 'standard') + client.get_xpub("m/44'/160'", 'standard') def is_mobile_paired(self): diff --git a/electrum/plugins/email_requests/qt.py b/electrum/plugins/email_requests/qt.py index 000c60d62..282624b81 100644 --- a/electrum/plugins/email_requests/qt.py +++ b/electrum/plugins/email_requests/qt.py @@ -81,7 +81,7 @@ def poll(self): p = [p] continue for item in p: - if item.get_content_type() == "application/bitcoin-paymentrequest": + if item.get_content_type() == "application/bitcore-paymentrequest": pr_str = item.get_payload() pr_str = base64.b64decode(pr_str) self.on_receive(pr_str) @@ -111,10 +111,10 @@ def send(self, recipient, message, payment_request): msg['Subject'] = message msg['To'] = recipient msg['From'] = self.username - part = MIMEBase('application', "bitcoin-paymentrequest") + part = MIMEBase('application', "bitcore-paymentrequest") part.set_payload(payment_request) encode_base64(part) - part.add_header('Content-Disposition', 'attachment; filename="payreq.btc"') + part.add_header('Content-Disposition', 'attachment; filename="payreq.btx"') msg.attach(part) try: s = smtplib.SMTP_SSL(self.imap_server, timeout=2) diff --git a/electrum/plugins/hw_wallet/plugin.py b/electrum/plugins/hw_wallet/plugin.py index fd3ed6979..8f9c64286 100644 --- a/electrum/plugins/hw_wallet/plugin.py +++ b/electrum/plugins/hw_wallet/plugin.py @@ -72,7 +72,7 @@ def show_address_helper(self, wallet, address, keystore=None): if keystore is None: keystore = wallet.get_keystore() if not is_address(address): - keystore.handler.show_error(_('Invalid Bitcoin Address')) + keystore.handler.show_error(_('Invalid Bitcore Address')) return False if not wallet.is_mine(address): keystore.handler.show_error(_('Address not in wallet.')) diff --git a/electrum/plugins/keepkey/clientbase.py b/electrum/plugins/keepkey/clientbase.py index 740ffe694..6882978ea 100644 --- a/electrum/plugins/keepkey/clientbase.py +++ b/electrum/plugins/keepkey/clientbase.py @@ -64,7 +64,7 @@ def callback_PassphraseRequest(self, req): msg = _("Enter a passphrase to generate this wallet. Each time " "you use this wallet your {} will prompt you for the " "passphrase. If you forget the passphrase you cannot " - "access the bitcoins in the wallet.").format(self.device) + "access the bitcores in the wallet.").format(self.device) else: msg = _("Enter the passphrase to unlock this wallet:") passphrase = self.handler.get_passphrase(msg, self.creating_wallet) diff --git a/electrum/plugins/keepkey/keepkey.py b/electrum/plugins/keepkey/keepkey.py index 93cf709b2..ca9c7d3d2 100644 --- a/electrum/plugins/keepkey/keepkey.py +++ b/electrum/plugins/keepkey/keepkey.py @@ -175,7 +175,7 @@ def get_client(self, keystore, force_pair=True): return client def get_coin_name(self): - return "Testnet" if constants.net.TESTNET else "Bitcoin" + return "Testnet" if constants.net.TESTNET else "Bitcore" def initialize_device(self, device_id, wizard, handler): # Initialization method diff --git a/electrum/plugins/keepkey/qt.py b/electrum/plugins/keepkey/qt.py index eb6f0cb63..0880f8387 100644 --- a/electrum/plugins/keepkey/qt.py +++ b/electrum/plugins/keepkey/qt.py @@ -29,10 +29,10 @@ "accessible behind its own passphrase.") RECOMMEND_PIN = _( "You should enable PIN protection. Your PIN is the only protection " - "for your bitcoins if your device is lost or stolen.") + "for your bitcores if your device is lost or stolen.") PASSPHRASE_NOT_PIN = _( "If you forget a passphrase you will be unable to access any " - "bitcoins in the wallet behind it. A passphrase is not a PIN. " + "bitcores in the wallet behind it. A passphrase is not a PIN. " "Only change this if you are sure you understand it.") CHARACTER_RECOVERY = ( "Use the recovery cipher shown on your device to input your seed words. " @@ -406,7 +406,7 @@ def wipe_device(): if wallet and sum(wallet.get_balance()): title = _("Confirm Device Wipe") msg = _("Are you SURE you want to wipe the device?\n" - "Your wallet still has bitcoins in it!") + "Your wallet still has bitcores in it!") if not self.question(msg, title=title, icon=QMessageBox.Critical): return @@ -481,7 +481,7 @@ def slider_released(): settings_glayout.addWidget(pin_button, 2, 1) pin_msg = QLabel(_("PIN protection is strongly recommended. " "A PIN is your only protection against someone " - "stealing your bitcoins if they obtain physical " + "stealing your bitcores if they obtain physical " "access to your {}.").format(plugin.device)) pin_msg.setWordWrap(True) pin_msg.setStyleSheet("color: red") @@ -523,7 +523,7 @@ def slider_released(): clear_pin_button.clicked.connect(clear_pin) clear_pin_warning = QLabel( _("If you disable your PIN, anyone with physical access to your " - "{} device can spend your bitcoins.").format(plugin.device)) + "{} device can spend your bitcores").format(plugin.device)) clear_pin_warning.setWordWrap(True) clear_pin_warning.setStyleSheet("color: red") advanced_glayout.addWidget(clear_pin_button, 0, 2) @@ -548,7 +548,7 @@ def slider_released(): wipe_device_msg.setWordWrap(True) wipe_device_warning = QLabel( _("Only wipe a device if you have the recovery seed written down " - "and the device wallet(s) are empty, otherwise the bitcoins " + "and the device wallet(s) are empty, otherwise the bitcores " "will be lost forever.")) wipe_device_warning.setWordWrap(True) wipe_device_warning.setStyleSheet("color: red") diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py index af886b84e..f792d0326 100644 --- a/electrum/plugins/ledger/ledger.py +++ b/electrum/plugins/ledger/ledger.py @@ -36,7 +36,7 @@ MSG_NEEDS_FW_UPDATE_GENERIC = _('Firmware version too old. Please update at') + \ ' https://www.ledgerwallet.com' -MSG_NEEDS_FW_UPDATE_SEGWIT = _('Firmware version (or "Bitcoin" app) too old for Segwit support. Please update at') + \ +MSG_NEEDS_FW_UPDATE_SEGWIT = _('Firmware version (or "Bitcore" app) too old for Segwit support. Please update at') + \ ' https://www.ledgerwallet.com' MULTI_OUTPUT_SUPPORT = '1.1.4' SEGWIT_SUPPORT = '1.1.10' @@ -202,7 +202,7 @@ def checkDevice(self): self.perform_hw1_preflight() except BTChipException as e: if (e.sw == 0x6d00 or e.sw == 0x6700): - raise UserFacingException(_("Device not in Bitcoin mode")) from e + raise UserFacingException(_("Device not in Bitcore mode")) from e raise e self.preflightDone = True @@ -606,7 +606,7 @@ def setup_device(self, device_info, wizard, purpose): raise UserFacingException(_('Failed to create a client for this device.') + '\n' + _('Make sure it is in the correct state.')) client.handler = self.create_handler(wizard) - client.get_xpub("m/44'/0'", 'standard') # TODO replace by direct derivation once Nano S > 1.1 + client.get_xpub("m/44'/160'", 'standard') # TODO replace by direct derivation once Nano S > 1.1 def get_xpub(self, device_id, derivation, xtype, wizard): if xtype not in self.SUPPORTED_XTYPES: diff --git a/electrum/plugins/safe_t/clientbase.py b/electrum/plugins/safe_t/clientbase.py index c402622ea..a5b48d1d8 100644 --- a/electrum/plugins/safe_t/clientbase.py +++ b/electrum/plugins/safe_t/clientbase.py @@ -69,7 +69,7 @@ def callback_PassphraseRequest(self, req): msg = _("Enter a passphrase to generate this wallet. Each time " "you use this wallet your {} will prompt you for the " "passphrase. If you forget the passphrase you cannot " - "access the bitcoins in the wallet.").format(self.device) + "access the bitcores in the wallet.").format(self.device) else: msg = _("Enter the passphrase to unlock this wallet:") passphrase = self.handler.get_passphrase(msg, self.creating_wallet) diff --git a/electrum/plugins/safe_t/qt.py b/electrum/plugins/safe_t/qt.py index ae5aa2b74..884abbaa6 100644 --- a/electrum/plugins/safe_t/qt.py +++ b/electrum/plugins/safe_t/qt.py @@ -29,10 +29,10 @@ "accessible behind its own passphrase.") RECOMMEND_PIN = _( "You should enable PIN protection. Your PIN is the only protection " - "for your bitcoins if your device is lost or stolen.") + "for your bitcores if your device is lost or stolen.") PASSPHRASE_NOT_PIN = _( "If you forget a passphrase you will be unable to access any " - "bitcoins in the wallet behind it. A passphrase is not a PIN. " + "bitcores in the wallet behind it. A passphrase is not a PIN. " "Only change this if you are sure you understand it.") @@ -316,7 +316,7 @@ def wipe_device(): if wallet and sum(wallet.get_balance()): title = _("Confirm Device Wipe") msg = _("Are you SURE you want to wipe the device?\n" - "Your wallet still has bitcoins in it!") + "Your wallet still has bitcores in it!") if not self.question(msg, title=title, icon=QMessageBox.Critical): return @@ -388,7 +388,7 @@ def slider_released(): settings_glayout.addWidget(pin_button, 2, 1) pin_msg = QLabel(_("PIN protection is strongly recommended. " "A PIN is your only protection against someone " - "stealing your bitcoins if they obtain physical " + "stealing your bitcores if they obtain physical " "access to your {}.").format(plugin.device)) pin_msg.setWordWrap(True) pin_msg.setStyleSheet("color: red") @@ -453,7 +453,7 @@ def slider_released(): clear_pin_button.clicked.connect(clear_pin) clear_pin_warning = QLabel( _("If you disable your PIN, anyone with physical access to your " - "{} device can spend your bitcoins.").format(plugin.device)) + "{} device can spend your bitcores.").format(plugin.device)) clear_pin_warning.setWordWrap(True) clear_pin_warning.setStyleSheet("color: red") advanced_glayout.addWidget(clear_pin_button, 0, 2) @@ -478,7 +478,7 @@ def slider_released(): wipe_device_msg.setWordWrap(True) wipe_device_warning = QLabel( _("Only wipe a device if you have the recovery seed written down " - "and the device wallet(s) are empty, otherwise the bitcoins " + "and the device wallet(s) are empty, otherwise the bitcores " "will be lost forever.")) wipe_device_warning.setWordWrap(True) wipe_device_warning.setStyleSheet("color: red") diff --git a/electrum/plugins/safe_t/safe_t.py b/electrum/plugins/safe_t/safe_t.py index 379243d7b..aab204600 100644 --- a/electrum/plugins/safe_t/safe_t.py +++ b/electrum/plugins/safe_t/safe_t.py @@ -159,7 +159,7 @@ def get_client(self, keystore, force_pair=True): return client def get_coin_name(self): - return "Testnet" if constants.net.TESTNET else "Bitcoin" + return "Testnet" if constants.net.TESTNET else "Bitcore" def initialize_device(self, device_id, wizard, handler): # Initialization method diff --git a/electrum/plugins/trezor/qt.py b/electrum/plugins/trezor/qt.py index 281e3f56d..25b6dcecb 100644 --- a/electrum/plugins/trezor/qt.py +++ b/electrum/plugins/trezor/qt.py @@ -29,10 +29,10 @@ "accessible behind its own passphrase.") RECOMMEND_PIN = _( "You should enable PIN protection. Your PIN is the only protection " - "for your bitcoins if your device is lost or stolen.") + "for your bitcores if your device is lost or stolen.") PASSPHRASE_NOT_PIN = _( "If you forget a passphrase you will be unable to access any " - "bitcoins in the wallet behind it. A passphrase is not a PIN. " + "bitcores in the wallet behind it. A passphrase is not a PIN. " "Only change this if you are sure you understand it.") MATRIX_RECOVERY = _( "Enter the recovery words by pressing the buttons according to what " @@ -443,7 +443,7 @@ def wipe_device(): if wallet and sum(wallet.get_balance()): title = _("Confirm Device Wipe") msg = _("Are you SURE you want to wipe the device?\n" - "Your wallet still has bitcoins in it!") + "Your wallet still has bitcore in it!") if not self.question(msg, title=title, icon=QMessageBox.Critical): return @@ -515,7 +515,7 @@ def slider_released(): settings_glayout.addWidget(pin_button, 2, 1) pin_msg = QLabel(_("PIN protection is strongly recommended. " "A PIN is your only protection against someone " - "stealing your bitcoins if they obtain physical " + "stealing your bitcores if they obtain physical " "access to your {}.").format(plugin.device)) pin_msg.setWordWrap(True) pin_msg.setStyleSheet("color: red") @@ -580,7 +580,7 @@ def slider_released(): clear_pin_button.clicked.connect(clear_pin) clear_pin_warning = QLabel( _("If you disable your PIN, anyone with physical access to your " - "{} device can spend your bitcoins.").format(plugin.device)) + "{} device can spend your bitcores.").format(plugin.device)) clear_pin_warning.setWordWrap(True) clear_pin_warning.setStyleSheet("color: red") advanced_glayout.addWidget(clear_pin_button, 0, 2) @@ -605,7 +605,7 @@ def slider_released(): wipe_device_msg.setWordWrap(True) wipe_device_warning = QLabel( _("Only wipe a device if you have the recovery seed written down " - "and the device wallet(s) are empty, otherwise the bitcoins " + "and the device wallet(s) are empty, otherwise the bitcores " "will be lost forever.")) wipe_device_warning.setWordWrap(True) wipe_device_warning.setStyleSheet("color: red") diff --git a/electrum/plugins/trezor/trezor.py b/electrum/plugins/trezor/trezor.py index 75b168f26..55d2c4a95 100644 --- a/electrum/plugins/trezor/trezor.py +++ b/electrum/plugins/trezor/trezor.py @@ -109,7 +109,7 @@ class TrezorPlugin(HW_PluginBase): firmware_URL = 'https://wallet.trezor.io' libraries_URL = 'https://github.com/trezor/python-trezor' - minimum_firmware = (1, 5, 2) + minimum_firmware = (1, 7, 1) keystore_class = TrezorKeyStore minimum_library = (0, 11, 0) maximum_library = (0, 12) @@ -183,7 +183,7 @@ def get_client(self, keystore, force_pair=True): return client def get_coin_name(self): - return "Testnet" if constants.net.TESTNET else "Bitcoin" + return "Testnet" if constants.net.TESTNET else "Bitcore" def initialize_device(self, device_id, wizard, handler): # Initialization method diff --git a/electrum/scripts/get_history.py b/electrum/scripts/get_history.py index a97698288..e69d1bad0 100755 --- a/electrum/scripts/get_history.py +++ b/electrum/scripts/get_history.py @@ -11,7 +11,7 @@ try: addr = sys.argv[1] except Exception: - print("usage: get_history ") + print("usage: get_history ") sys.exit(1) loop, stopping_fut, loop_thread = create_and_start_event_loop() diff --git a/electrum/scripts/watch_address.py b/electrum/scripts/watch_address.py index 851160de5..90f51ef2b 100755 --- a/electrum/scripts/watch_address.py +++ b/electrum/scripts/watch_address.py @@ -11,7 +11,7 @@ try: addr = sys.argv[1] except Exception: - print("usage: watch_address ") + print("usage: watch_address ") sys.exit(1) # start network diff --git a/electrum/servers.json b/electrum/servers.json index fa8e9b651..d75c08433 100644 --- a/electrum/servers.json +++ b/electrum/servers.json @@ -1,417 +1,26 @@ { - "3smoooajg7qqac2y.onion": { + "ele1.bitcore.cc": { "pruning": "-", "s": "50002", "t": "50001", - "version": "1.4" + "version": "1.1" }, - "81-7-10-251.blue.kundencontroller.de": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "E-X.not.fyi": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "VPS.hsmiths.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "b.ooze.cc": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bauerjda5hnedjam.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bauerjhejlv6di7s.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bitcoin.corgi.party": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bitcoin3nqy3db7c.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bitcoins.sk": { + "ele2.bitcore.cc": { "pruning": "-", "s": "50002", "t": "50001", - "version": "1.4" + "version": "1.1" }, - "btc.cihar.com": { + "ele3.bitcore.cc": { "pruning": "-", "s": "50002", "t": "50001", - "version": "1.4" - }, - "btc.xskyx.net": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "currentlane.lovebitco.in": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "daedalus.bauerj.eu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.jochen-hoenicke.de": { - "pruning": "-", - "s": "50005", - "t": "50003", - "version": "1.4" - }, - "dragon085.startdedicated.de": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "e-1.claudioboxx.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "e.keff.org": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum-server.ninja": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum-unlimited.criptolayer.net": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrum.eff.ro": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.festivaldelhumor.org": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.hsmiths.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.leblancnet.us": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.mindspot.org": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrum.qtornado.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.taborsky.cz": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrum.villocq.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum2.eff.ro": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum2.villocq.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrumx.bot.nu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrumx.ddns.net": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrumx.ftp.sh": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrumx.ml": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrumx.soon.it": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrumxhqdsmlu.onion": { - "pruning": "-", - "t": "50001", - "version": "1.4" - }, - "elx01.knas.systems": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "enode.duckdns.org": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "fedaykin.goip.de": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "fn.48.org": { - "pruning": "-", - "s": "50002", - "t": "50003", - "version": "1.4" - }, - "helicarrier.bauerj.eu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "hsmiths4fyqlw5xw.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "hsmiths5mjk6uijs.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "icarus.tetradrachm.net": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.emzy.de": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "ndnd.selfhost.eu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "ndndword5lpb7eex.onion": { - "pruning": "-", - "t": "50001", - "version": "1.4" - }, - "orannis.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "ozahtqwp25chjdjd.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "qtornadoklbgdyww.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "rbx.curalle.ovh": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "s7clinmo4cazmhul.onion": { - "pruning": "-", - "t": "50001", - "version": "1.4" - }, - "tardis.bauerj.eu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "technetium.network": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "tomscryptos.com": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "ulrichard.ch": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "vmd27610.contaboserver.net": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "vmd30612.contaboserver.net": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "wsw6tua3xl24gsmi264zaep6seppjyrkyucpsmuxnjzyt3f3j6swshad.onion": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "xray587.startdedicated.de": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "yuio.top": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "bitcoin.dragon.zone": { - "pruning": "-", - "s": "50004", - "t": "50003", - "version": "1.4" - }, - "ecdsa.net" : { - "pruning": "-", - "s": "110", - "t": "50001", - "version": "1.4" - }, - "btc.usebsv.com": { - "pruning": "-", - "s": "50006", - "version": "1.4" - }, - "e2.keff.org": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "electrum.hodlister.co": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrum3.hodlister.co": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrum5.hodlister.co": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "electrumx.electricnewyear.net": { - "pruning": "-", - "s": "50002", - "version": "1.4" - }, - "fortress.qtornado.com": { - "pruning": "-", - "s": "443", - "t": "50001", - "version": "1.4" - }, - "green-gold.westeurope.cloudapp.azure.com": { - "pruning": "-", - "s": "56002", - "t": "56001", - "version": "1.4" + "version": "1.1" }, - "electrumx.erbium.eu": { + "ele4.bitcore.cc": { "pruning": "-", "s": "50002", "t": "50001", - "version": "1.4" + "version": "1.1" } } diff --git a/electrum/servers_testnet.json b/electrum/servers_testnet.json index 3fffeaa38..5356f090c 100644 --- a/electrum/servers_testnet.json +++ b/electrum/servers_testnet.json @@ -1,38 +1,8 @@ { - "hsmithsxurybd7uh.onion": { - "pruning": "-", - "s": "53012", - "t": "53011", - "version": "1.4" - }, - "testnet.hsmiths.com": { - "pruning": "-", - "s": "53012", - "t": "53011", - "version": "1.4" - }, - "testnet.qtornado.com": { - "pruning": "-", - "s": "51002", - "t": "51001", - "version": "1.4" - }, - "testnet1.bauerj.eu": { - "pruning": "-", - "s": "50002", - "t": "50001", - "version": "1.4" - }, - "tn.not.fyi": { - "pruning": "-", - "s": "55002", - "t": "55001", - "version": "1.4" - }, - "bitcoin.cluelessperson.com": { + "127.0.0.1": { "pruning": "-", "s": "51002", "t": "51001", - "version": "1.4" + "version": "1.2" } } diff --git a/electrum/simple_config.py b/electrum/simple_config.py index 8a970802b..92285e219 100644 --- a/electrum/simple_config.py +++ b/electrum/simple_config.py @@ -20,12 +20,11 @@ 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_MAX_DYNAMIC = 10000000 +FEERATE_WARNING_HIGH_FEE = 10000000 +FEERATE_FALLBACK_STATIC_FEE = 100000 +FEERATE_DEFAULT_RELAY = 100000 +FEERATE_STATIC_VALUES = [100000, 200000, 500000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000] config = None @@ -268,7 +267,7 @@ def get_wallet_path(self): new_path = os.path.join(self.path, "wallets", "default_wallet") # default path in pre 1.9 versions - old_path = os.path.join(self.path, "electrum.dat") + old_path = os.path.join(self.path, "electrum-btx.dat") if os.path.exists(old_path) and not os.path.exists(new_path): os.rename(old_path, new_path) @@ -483,7 +482,7 @@ def has_dynamic_fees_ready(self): return self.has_fee_etas() def is_dynfee(self): - return bool(self.get('dynamic_fees', True)) + return bool(self.get('dynamic_fees', False)) def use_mempool_fees(self): return bool(self.get('mempool_fees', False)) diff --git a/electrum/util.py b/electrum/util.py index 62df080a9..3f5153f74 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -65,9 +65,9 @@ def inv_dict(d): ca_path = certifi.where() -base_units = {'BTC':8, 'mBTC':5, 'bits':2, 'sat':0} +base_units = {'BTX':8, 'mBTX':5, 'bits':2, 'sat':0} base_units_inverse = inv_dict(base_units) -base_units_list = ['BTC', 'mBTC', 'bits', 'sat'] # list(dict) does not guarantee order +base_units_list = ['BTX', 'mBTX', 'bits', 'sat'] # list(dict) does not guarantee order DECIMAL_POINT_DEFAULT = 5 # mBTC @@ -76,7 +76,7 @@ class UnknownBaseUnit(Exception): pass def decimal_point_to_base_unit_name(dp: int) -> str: - # e.g. 8 -> "BTC" + # e.g. 8 -> "BTX" try: return base_units_inverse[dp] except KeyError: @@ -84,7 +84,7 @@ def decimal_point_to_base_unit_name(dp: int) -> str: def base_unit_name_to_decimal_point(unit_name: str) -> int: - # e.g. "BTC" -> 8 + # e.g. "BTX" -> 8 try: return base_units[unit_name] except KeyError: @@ -152,7 +152,7 @@ def __repr__(self): return 'Satoshis(%d)'%self.value def __str__(self): - return format_satoshis(self.value) + return format_satoshis(self.value) + " BTX" def __eq__(self, other): return self.value == other.value @@ -472,11 +472,11 @@ def user_dir(): if 'ANDROID_DATA' in os.environ: return android_data_dir() elif os.name == 'posix': - return os.path.join(os.environ["HOME"], ".electrum") + return os.path.join(os.environ["HOME"], ".electrum-btx") elif "APPDATA" in os.environ: - return os.path.join(os.environ["APPDATA"], "Electrum") + return os.path.join(os.environ["APPDATA"], "Electrum-BTX") elif "LOCALAPPDATA" in os.environ: - return os.path.join(os.environ["LOCALAPPDATA"], "Electrum") + return os.path.join(os.environ["LOCALAPPDATA"], "Electrum-BTX") else: #raise Exception("No home directory found in environment variables.") return @@ -648,37 +648,11 @@ 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/'}), - 'Bitflyer.jp': ('https://chainflyer.bitflyer.jp/', - {'tx': 'Transaction/', 'addr': 'Address/'}), - 'Blockchain.info': ('https://blockchain.com/btc/', + 'bitcore.cc': ('https://insight.bitcore.cc/', {'tx': 'tx/', 'addr': 'address/'}), - 'blockchainbdgpzk.onion': ('https://blockchainbdgpzk.onion/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockstream.info': ('https://blockstream.info/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Bitaps.com': ('https://btc.bitaps.com/', - {'tx': '', 'addr': ''}), - 'BTC.com': ('https://btc.com/', - {'tx': '', 'addr': ''}), - '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:/', + 'cryptoID': ('https://chainz.cryptoid.info/', + {'tx': 'btx/tx.dws?', 'addr': 'address.dws?'}), + 'system default': ('https://insight.bitcore.cc/', {'tx': 'tx/', 'addr': 'address/'}), } @@ -701,12 +675,8 @@ def block_explorer_info(): from . import constants return mainnet_block_explorers if not constants.net.TESTNET else testnet_block_explorers -def block_explorer(config: 'SimpleConfig') -> str: - from . import constants - default_ = 'Blockstream.info' - be_key = config.get('block_explorer', default_) - be = block_explorer_info().get(be_key) - return be_key if be is not None else default_ +def block_explorer(config): + return config.get('block_explorer', 'system default') def block_explorer_tuple(config: 'SimpleConfig') -> Optional[Tuple[str, dict]]: return block_explorer_info().get(block_explorer(config)) @@ -739,12 +709,12 @@ def parse_URI(uri: str, on_pr: Callable = None, *, loop=None) -> dict: if ':' not in uri: if not bitcoin.is_address(uri): - raise InvalidBitcoinURI("Not a bitcoin address") + raise InvalidBitcoinURI("Not a bitcore address") return {'address': uri} u = urllib.parse.urlparse(uri) - if u.scheme != 'bitcoin': - raise InvalidBitcoinURI("Not a bitcoin URI") + if u.scheme != 'bitcore': + raise InvalidBitcoinURI("Not a bitcore URI") address = u.path # python for android fails to parse query @@ -761,7 +731,7 @@ def parse_URI(uri: str, on_pr: Callable = None, *, loop=None) -> dict: out = {k: v[0] for k, v in pq.items()} if address: if not bitcoin.is_address(address): - raise InvalidBitcoinURI(f"Invalid bitcoin address: {address}") + raise InvalidBitcoinURI(f"Invalid bitcore address: {address}") out['address'] = address if 'amount' in out: am = out['amount'] @@ -831,7 +801,7 @@ def create_bip21_uri(addr, amount_sat: Optional[int], message: Optional[str], raise Exception(f"illegal key for URI: {repr(k)}") v = urllib.parse.quote(v) query.append(f"{k}={v}") - p = urllib.parse.ParseResult(scheme='bitcoin', netloc='', path=addr, params='', query='&'.join(query), fragment='') + p = urllib.parse.ParseResult(scheme='bitcore', netloc='', path=addr, params='', query='&'.join(query), fragment='') return str(urllib.parse.urlunparse(p)) diff --git a/electrum/wallet.py b/electrum/wallet.py index acb605a69..a744da88b 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -728,7 +728,7 @@ def make_unsigned_transaction(self, coins, outputs, config, fixed_fee=None, for i, o in enumerate(outputs): if o.type == TYPE_ADDRESS: if not is_address(o.address): - raise Exception("Invalid bitcoin address: {}".format(o.address)) + raise Exception("Invalid bitcore address: {}".format(o.address)) if o.value == '!': if i_max is not None: raise Exception("More than one output set to spend max") @@ -1179,7 +1179,7 @@ def get_payment_request(self, addr, config): if not r: return out = copy.copy(r) - out['URI'] = 'bitcoin:' + addr + '?amount=' + format_satoshis(out.get('amount')) + out['URI'] = 'bitcore:' + addr + '?amount=' + format_satoshis(out.get('amount')) status, conf = self.get_request_status(addr) out['status'] = status if conf is not None: @@ -1397,7 +1397,7 @@ def txin_value(self, txin): return None def price_at_timestamp(self, txid, price_func): - """Returns fiat price of bitcoin at the time tx got confirmed.""" + """Returns fiat price of bitcore at the time tx got confirmed.""" timestamp = self.get_tx_height(txid).timestamp return price_func(timestamp if timestamp else time.time()) diff --git a/run_electrum b/run_electrum index 1f5ee2f03..c185db8e9 100755 --- a/run_electrum +++ b/run_electrum @@ -328,7 +328,7 @@ if __name__ == '__main__': config_options['portable'] = True if config_options.get('portable'): - config_options['electrum_path'] = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'electrum_data') + config_options['electrum_path'] = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'electrum-btx_data') if not config_options.get('verbosity'): warnings.simplefilter('ignore', DeprecationWarning) @@ -336,7 +336,7 @@ if __name__ == '__main__': # check uri uri = config_options.get('url') if uri: - if not uri.startswith('bitcoin:'): + if not uri.startswith('bitcore:'): print_stderr('unknown command:', uri) sys.exit(1) config_options['url'] = uri diff --git a/setup.py b/setup.py index 409664742..e36fc1135 100755 --- a/setup.py +++ b/setup.py @@ -85,10 +85,13 @@ }, scripts=['electrum/electrum'], data_files=data_files, - description="Lightweight Bitcoin Wallet", + description="Lightweight Bitcore Wallet", author="Thomas Voegtlin", author_email="thomasv@electrum.org", license="MIT Licence", - url="https://electrum.org", - long_description="""Lightweight Bitcoin Wallet""", + url="https://bitcore.cc", + long_description="""Lightweight Bitcore Wallet""", + #cmdclass={ + # 'install': CustomInstallCommand, + #}, )