From cd115618fc39fd772e89000c1b0dd4219ed4105d Mon Sep 17 00:00:00 2001 From: David Date: Thu, 15 Nov 2018 21:34:18 +0000 Subject: [PATCH] inital commit --- .github/ISSUE_TEMPLATE.md | 2 + .gitignore | 23 + .gitmodules | 6 + .travis.yml | 58 + AUTHORS | 12 + Info.plist | 22 + LICENSE | 20 + MANIFEST.in | 18 + README.rst | 115 + RELEASE-NOTES | 1061 ++ contrib/build-osx/README.md | 36 + contrib/build-osx/base.sh | 12 + contrib/build-osx/cdrkit-deterministic.patch | 86 + contrib/build-osx/make_osx | 94 + contrib/build-osx/osx.spec | 104 + contrib/build-osx/package.sh | 88 + contrib/build-wine/README.md | 37 + contrib/build-wine/build-electrum-git.sh | 55 + contrib/build-wine/build-secp256k1.sh | 40 + contrib/build-wine/build.sh | 28 + contrib/build-wine/deterministic.spec | 140 + contrib/build-wine/docker/Dockerfile | 33 + contrib/build-wine/docker/README.md | 90 + contrib/build-wine/electrum.nsi | 170 + contrib/build-wine/prepare-wine.sh | 150 + contrib/build-wine/sign.sh | 34 + contrib/build-wine/tmp/LICENSE | 20 + contrib/build-wine/unsign.sh | 56 + .../deterministic-build/check_submodules.sh | 35 + .../find_restricted_dependencies.py | 38 + .../requirements-binaries.txt | 56 + .../deterministic-build/requirements-hw.txt | 122 + contrib/deterministic-build/requirements.txt | 69 + contrib/freeze_packages.sh | 39 + contrib/make_apk | 17 + contrib/make_download | 57 + contrib/make_locale | 82 + contrib/make_packages | 13 + contrib/make_tgz | 1 + .../requirements/requirements-binaries.txt | 2 + contrib/requirements/requirements-hw.txt | 8 + contrib/requirements/requirements-travis.txt | 3 + contrib/requirements/requirements.txt | 10 + contrib/sign_packages | 18 + contrib/upload | 17 + electrum-env | 27 + electrum.conf.sample | 16 + electrum.desktop | 21 + electrum.icns | Bin 0 -> 830527 bytes electrum/__init__.py | 14 + electrum/address_synchronizer.py | 794 + electrum/base_crash_reporter.py | 128 + electrum/base_wizard.py | 572 + electrum/bitcoin.py | 782 + electrum/blockchain.py | 405 + electrum/checkpoints.json | 6 + electrum/checkpoints_testnet.json | 2662 +++ electrum/coinchooser.py | 392 + electrum/commands.py | 895 + electrum/constants.py | 133 + electrum/contacts.py | 135 + electrum/crypto.py | 151 + electrum/currencies.json | 36 + electrum/daemon.py | 316 + electrum/dnssec.py | 272 + electrum/ecc.py | 434 + electrum/ecc_fast.py | 223 + electrum/electrum | 1 + electrum/exchange_rate.py | 578 + electrum/gui/__init__.py | 5 + electrum/gui/kivy/Makefile | 32 + electrum/gui/kivy/Readme.md | 130 + electrum/gui/kivy/__init__.py | 62 + electrum/gui/kivy/data/background.png | Bin 0 -> 41063 bytes electrum/gui/kivy/data/fonts/Roboto-Bold.ttf | Bin 0 -> 72584 bytes .../gui/kivy/data/fonts/Roboto-Condensed.ttf | Bin 0 -> 147668 bytes .../gui/kivy/data/fonts/Roboto-Medium.ttf | Bin 0 -> 160696 bytes electrum/gui/kivy/data/fonts/Roboto.ttf | Bin 0 -> 84564 bytes electrum/gui/kivy/data/fonts/tron/License.txt | 4 + electrum/gui/kivy/data/fonts/tron/Readme.txt | 21 + electrum/gui/kivy/data/fonts/tron/Tr2n.ttf | Bin 0 -> 34476 bytes electrum/gui/kivy/data/glsl/default.fs | 4 + electrum/gui/kivy/data/glsl/default.png | Bin 0 -> 224 bytes electrum/gui/kivy/data/glsl/default.vs | 6 + electrum/gui/kivy/data/glsl/header.fs | 10 + electrum/gui/kivy/data/glsl/header.vs | 17 + .../gui/kivy/data/images/defaulttheme-0.png | Bin 0 -> 72519 bytes .../gui/kivy/data/images/defaulttheme.atlas | 1 + .../electrum/qr/SimpleScannerActivity.java | 48 + electrum/gui/kivy/data/logo/kivy-icon-32.png | Bin 0 -> 4561 bytes electrum/gui/kivy/data/style.kv | 754 + electrum/gui/kivy/i18n.py | 46 + electrum/gui/kivy/main.kv | 464 + electrum/gui/kivy/main_window.py | 1041 ++ electrum/gui/kivy/nfc_scanner/__init__.py | 44 + .../gui/kivy/nfc_scanner/scanner_android.py | 242 + .../gui/kivy/nfc_scanner/scanner_dummy.py | 52 + .../gui/kivy/theming/light/action_bar.png | Bin 0 -> 552 bytes .../theming/light/action_button_group.png | Bin 0 -> 188 bytes .../kivy/theming/light/action_group_dark.png | Bin 0 -> 380 bytes .../kivy/theming/light/action_group_light.png | Bin 0 -> 375 bytes .../gui/kivy/theming/light/add_contact.png | Bin 0 -> 4154 bytes .../gui/kivy/theming/light/arrow_back.png | Bin 0 -> 3760 bytes electrum/gui/kivy/theming/light/bit_logo.png | Bin 0 -> 683 bytes .../kivy/theming/light/blue_bg_round_rb.png | Bin 0 -> 242 bytes .../kivy/theming/light/btn_create_account.png | Bin 0 -> 311 bytes .../theming/light/btn_create_act_disabled.png | Bin 0 -> 427 bytes electrum/gui/kivy/theming/light/btn_nfc.png | Bin 0 -> 362 bytes .../kivy/theming/light/btn_send_address.png | Bin 0 -> 210 bytes .../gui/kivy/theming/light/btn_send_nfc.png | Bin 0 -> 209 bytes .../gui/kivy/theming/light/calculator.png | Bin 0 -> 2138 bytes electrum/gui/kivy/theming/light/camera.png | Bin 0 -> 1304 bytes electrum/gui/kivy/theming/light/card.png | Bin 0 -> 866 bytes .../gui/kivy/theming/light/card_bottom.png | Bin 0 -> 383 bytes electrum/gui/kivy/theming/light/card_btn.png | Bin 0 -> 357 bytes electrum/gui/kivy/theming/light/card_top.png | Bin 0 -> 550 bytes .../theming/light/carousel_deselected.png | Bin 0 -> 1160 bytes .../kivy/theming/light/carousel_selected.png | Bin 0 -> 1026 bytes electrum/gui/kivy/theming/light/clock1.png | Bin 0 -> 3089 bytes electrum/gui/kivy/theming/light/clock2.png | Bin 0 -> 4725 bytes electrum/gui/kivy/theming/light/clock3.png | Bin 0 -> 4467 bytes electrum/gui/kivy/theming/light/clock4.png | Bin 0 -> 3190 bytes electrum/gui/kivy/theming/light/clock5.png | Bin 0 -> 3524 bytes electrum/gui/kivy/theming/light/close.png | Bin 0 -> 8489 bytes .../gui/kivy/theming/light/closebutton.png | Bin 0 -> 3521 bytes electrum/gui/kivy/theming/light/confirmed.png | Bin 0 -> 5113 bytes electrum/gui/kivy/theming/light/contact.png | Bin 0 -> 1277 bytes .../kivy/theming/light/contact_overlay.png | Bin 0 -> 2361 bytes .../kivy/theming/light/create_act_text.png | Bin 0 -> 330 bytes .../theming/light/create_act_text_active.png | Bin 0 -> 308 bytes electrum/gui/kivy/theming/light/dialog.png | Bin 0 -> 393 bytes .../theming/light/dropdown_background.png | Bin 0 -> 1231 bytes .../kivy/theming/light/electrum_icon640.png | Bin 0 -> 182805 bytes electrum/gui/kivy/theming/light/error.png | Bin 0 -> 13454 bytes electrum/gui/kivy/theming/light/gear.png | Bin 0 -> 10150 bytes electrum/gui/kivy/theming/light/globe.png | Bin 0 -> 5938 bytes .../gui/kivy/theming/light/icon_border.png | Bin 0 -> 514 bytes electrum/gui/kivy/theming/light/important.png | Bin 0 -> 6451 bytes electrum/gui/kivy/theming/light/info.png | Bin 0 -> 5793 bytes .../theming/light/lightblue_bg_round_lb.png | Bin 0 -> 244 bytes electrum/gui/kivy/theming/light/logo.png | Bin 0 -> 9322 bytes .../gui/kivy/theming/light/logo_atom_dull.png | Bin 0 -> 3902 bytes electrum/gui/kivy/theming/light/mail_icon.png | Bin 0 -> 4548 bytes .../gui/kivy/theming/light/manualentry.png | Bin 0 -> 3892 bytes electrum/gui/kivy/theming/light/network.png | Bin 0 -> 2412 bytes electrum/gui/kivy/theming/light/nfc.png | Bin 0 -> 2467 bytes electrum/gui/kivy/theming/light/nfc_clock.png | Bin 0 -> 33894 bytes electrum/gui/kivy/theming/light/nfc_phone.png | Bin 0 -> 3797 bytes .../gui/kivy/theming/light/nfc_stage_one.png | Bin 0 -> 12943 bytes .../theming/light/overflow_background.png | Bin 0 -> 887 bytes .../kivy/theming/light/overflow_btn_dn.png | Bin 0 -> 184 bytes .../gui/kivy/theming/light/paste_icon.png | Bin 0 -> 3637 bytes electrum/gui/kivy/theming/light/pen.png | Bin 0 -> 1641 bytes electrum/gui/kivy/theming/light/qrcode.png | Bin 0 -> 14836 bytes electrum/gui/kivy/theming/light/save.png | Bin 0 -> 946 bytes electrum/gui/kivy/theming/light/settings.png | Bin 0 -> 216 bytes electrum/gui/kivy/theming/light/shadow.png | Bin 0 -> 884 bytes .../gui/kivy/theming/light/shadow_right.png | Bin 0 -> 243 bytes electrum/gui/kivy/theming/light/share.png | Bin 0 -> 3325 bytes .../kivy/theming/light/star_big_inactive.png | Bin 0 -> 6843 bytes .../gui/kivy/theming/light/stepper_full.png | Bin 0 -> 14998 bytes .../gui/kivy/theming/light/stepper_left.png | Bin 0 -> 14388 bytes .../light/stepper_restore_password.png | Bin 0 -> 14704 bytes .../theming/light/stepper_restore_seed.png | Bin 0 -> 14704 bytes electrum/gui/kivy/theming/light/tab.png | Bin 0 -> 2837 bytes electrum/gui/kivy/theming/light/tab_btn.png | Bin 0 -> 3065 bytes .../kivy/theming/light/tab_btn_disabled.png | Bin 0 -> 3065 bytes .../kivy/theming/light/tab_btn_pressed.png | Bin 0 -> 2798 bytes .../gui/kivy/theming/light/tab_disabled.png | Bin 0 -> 2919 bytes electrum/gui/kivy/theming/light/tab_strip.png | Bin 0 -> 2840 bytes .../kivy/theming/light/textinput_active.png | Bin 0 -> 488 bytes .../gui/kivy/theming/light/unconfirmed.png | Bin 0 -> 4700 bytes electrum/gui/kivy/theming/light/wallet.png | Bin 0 -> 824 bytes electrum/gui/kivy/theming/light/wallets.png | Bin 0 -> 260 bytes .../kivy/theming/light/white_bg_round_top.png | Bin 0 -> 280 bytes electrum/gui/kivy/tools/bitcoin_intent.xml | 7 + electrum/gui/kivy/tools/blacklist.txt | 107 + electrum/gui/kivy/tools/buildozer.spec | 186 + electrum/gui/kivy/uix/__init__.py | 1 + electrum/gui/kivy/uix/combobox.py | 93 + electrum/gui/kivy/uix/context_menu.py | 56 + electrum/gui/kivy/uix/dialogs/__init__.py | 220 + electrum/gui/kivy/uix/dialogs/addresses.py | 180 + .../gui/kivy/uix/dialogs/amount_dialog.py | 148 + .../gui/kivy/uix/dialogs/bump_fee_dialog.py | 118 + .../gui/kivy/uix/dialogs/checkbox_dialog.py | 52 + .../gui/kivy/uix/dialogs/choice_dialog.py | 77 + .../gui/kivy/uix/dialogs/crash_reporter.py | 193 + electrum/gui/kivy/uix/dialogs/fee_dialog.py | 131 + electrum/gui/kivy/uix/dialogs/fx_dialog.py | 111 + .../gui/kivy/uix/dialogs/installwizard.py | 1043 ++ electrum/gui/kivy/uix/dialogs/invoices.py | 169 + electrum/gui/kivy/uix/dialogs/label_dialog.py | 55 + .../gui/kivy/uix/dialogs/nfc_transaction.py | 32 + .../gui/kivy/uix/dialogs/password_dialog.py | 142 + electrum/gui/kivy/uix/dialogs/qr_dialog.py | 47 + electrum/gui/kivy/uix/dialogs/qr_scanner.py | 44 + electrum/gui/kivy/uix/dialogs/question.py | 53 + electrum/gui/kivy/uix/dialogs/requests.py | 157 + electrum/gui/kivy/uix/dialogs/seed_options.py | 51 + electrum/gui/kivy/uix/dialogs/settings.py | 220 + electrum/gui/kivy/uix/dialogs/tx_dialog.py | 185 + electrum/gui/kivy/uix/dialogs/wallets.py | 65 + electrum/gui/kivy/uix/drawer.py | 257 + electrum/gui/kivy/uix/gridview.py | 205 + electrum/gui/kivy/uix/menus.py | 95 + electrum/gui/kivy/uix/qrcodewidget.py | 134 + electrum/gui/kivy/uix/screens.py | 484 + electrum/gui/kivy/uix/ui_screens/about.kv | 55 + electrum/gui/kivy/uix/ui_screens/history.kv | 78 + electrum/gui/kivy/uix/ui_screens/invoice.kv | 89 + electrum/gui/kivy/uix/ui_screens/network.kv | 53 + electrum/gui/kivy/uix/ui_screens/proxy.kv | 76 + electrum/gui/kivy/uix/ui_screens/receive.kv | 142 + electrum/gui/kivy/uix/ui_screens/send.kv | 127 + electrum/gui/kivy/uix/ui_screens/server.kv | 63 + electrum/gui/kivy/uix/ui_screens/status.kv | 84 + electrum/gui/qt/__init__.py | 314 + electrum/gui/qt/address_dialog.py | 98 + electrum/gui/qt/address_list.py | 195 + electrum/gui/qt/amountedit.py | 128 + electrum/gui/qt/completion_text_edit.py | 120 + electrum/gui/qt/console.py | 359 + electrum/gui/qt/contact_list.py | 98 + electrum/gui/qt/exception_window.py | 143 + electrum/gui/qt/fee_slider.py | 78 + electrum/gui/qt/history_list.py | 436 + electrum/gui/qt/icons_rc.py | 14540 ++++++++++++++++ electrum/gui/qt/installwizard.py | 635 + electrum/gui/qt/invoice_list.py | 83 + electrum/gui/qt/main_window.py | 3222 ++++ electrum/gui/qt/network_dialog.py | 519 + electrum/gui/qt/password_dialog.py | 305 + electrum/gui/qt/paytoedit.py | 250 + electrum/gui/qt/qrcodewidget.py | 133 + electrum/gui/qt/qrtextedit.py | 76 + electrum/gui/qt/qrwindow.py | 89 + electrum/gui/qt/request_list.py | 129 + electrum/gui/qt/seed_dialog.py | 212 + electrum/gui/qt/transaction_dialog.py | 333 + electrum/gui/qt/util.py | 819 + electrum/gui/qt/utxo_list.py | 77 + electrum/gui/stdio.py | 233 + electrum/gui/text.py | 505 + electrum/i18n.py | 81 + electrum/interface.py | 410 + electrum/jsonrpc.py | 98 + electrum/keystore.py | 797 + electrum/mnemonic.py | 182 + electrum/msqr.py | 94 + electrum/network.py | 1323 ++ electrum/old_mnemonic.py | 1697 ++ electrum/paymentrequest.proto | 47 + electrum/paymentrequest.py | 525 + electrum/paymentrequest_pb2.py | 367 + electrum/pem.py | 191 + electrum/plot.py | 63 + electrum/plugin.py | 568 + electrum/plugins/README | 31 + electrum/plugins/__init__.py | 26 + electrum/plugins/audio_modem/__init__.py | 7 + electrum/plugins/audio_modem/qt.py | 128 + electrum/plugins/coldcard/README.md | 65 + electrum/plugins/coldcard/__init__.py | 7 + electrum/plugins/coldcard/cmdline.py | 47 + electrum/plugins/coldcard/coldcard.py | 693 + electrum/plugins/coldcard/qt.py | 242 + electrum/plugins/cosigner_pool/__init__.py | 9 + electrum/plugins/cosigner_pool/qt.py | 235 + electrum/plugins/digitalbitbox/__init__.py | 6 + electrum/plugins/digitalbitbox/cmdline.py | 14 + .../plugins/digitalbitbox/digitalbitbox.py | 767 + electrum/plugins/digitalbitbox/qt.py | 43 + electrum/plugins/email_requests/__init__.py | 5 + electrum/plugins/email_requests/qt.py | 271 + .../plugins/greenaddress_instant/__init__.py | 5 + electrum/plugins/greenaddress_instant/qt.py | 107 + electrum/plugins/hw_wallet/__init__.py | 2 + electrum/plugins/hw_wallet/cmdline.py | 46 + electrum/plugins/hw_wallet/plugin.py | 137 + electrum/plugins/hw_wallet/qt.py | 231 + electrum/plugins/keepkey/__init__.py | 7 + electrum/plugins/keepkey/client.py | 14 + electrum/plugins/keepkey/clientbase.py | 236 + electrum/plugins/keepkey/cmdline.py | 14 + electrum/plugins/keepkey/keepkey.py | 441 + electrum/plugins/keepkey/qt.py | 586 + electrum/plugins/labels/__init__.py | 9 + electrum/plugins/labels/cmdline.py | 11 + electrum/plugins/labels/kivy.py | 14 + electrum/plugins/labels/labels.py | 167 + electrum/plugins/labels/qt.py | 78 + electrum/plugins/ledger/__init__.py | 7 + electrum/plugins/ledger/auth2fa.py | 358 + electrum/plugins/ledger/cmdline.py | 14 + electrum/plugins/ledger/ledger.py | 637 + electrum/plugins/ledger/qt.py | 81 + .../plugins/revealer/DejaVuSansMono-Bold.ttf | Bin 0 -> 331536 bytes electrum/plugins/revealer/LICENSE_DEJAVU.txt | 99 + .../revealer/SIL Open Font License.txt | 43 + .../plugins/revealer/SourceSansPro-Bold.otf | Bin 0 -> 235128 bytes electrum/plugins/revealer/__init__.py | 16 + electrum/plugins/revealer/hmac_drbg.py | 51 + electrum/plugins/revealer/qt.py | 752 + electrum/plugins/safe_t/__init__.py | 8 + electrum/plugins/safe_t/client.py | 11 + electrum/plugins/safe_t/clientbase.py | 238 + electrum/plugins/safe_t/cmdline.py | 14 + electrum/plugins/safe_t/qt.py | 492 + electrum/plugins/safe_t/safe_t.py | 484 + electrum/plugins/safe_t/transport.py | 95 + electrum/plugins/trezor/__init__.py | 8 + electrum/plugins/trezor/client.py | 11 + electrum/plugins/trezor/clientbase.py | 251 + electrum/plugins/trezor/cmdline.py | 14 + electrum/plugins/trezor/qt.py | 613 + electrum/plugins/trezor/transport.py | 95 + electrum/plugins/trezor/trezor.py | 495 + electrum/plugins/trustedcoin/__init__.py | 11 + electrum/plugins/trustedcoin/cmdline.py | 45 + electrum/plugins/trustedcoin/kivy.py | 110 + electrum/plugins/trustedcoin/qt.py | 313 + electrum/plugins/trustedcoin/trustedcoin.py | 673 + electrum/plugins/virtualkeyboard/__init__.py | 5 + electrum/plugins/virtualkeyboard/qt.py | 61 + electrum/qrscanner.py | 89 + electrum/ripemd.py | 393 + electrum/rsakey.py | 542 + electrum/scripts/bip70.py | 35 + electrum/scripts/block_headers.py | 29 + electrum/scripts/estimate_fee.py | 7 + electrum/scripts/get_history.py | 18 + electrum/scripts/peers.py | 14 + electrum/scripts/servers.py | 10 + electrum/scripts/txradar.py | 20 + electrum/scripts/util.py | 87 + electrum/scripts/watch_address.py | 36 + electrum/segwit_addr.py | 122 + electrum/servers.json | 26 + electrum/servers_regtest.json | 8 + electrum/servers_testnet.json | 8 + electrum/simple_config.py | 573 + electrum/storage.py | 670 + electrum/synchronizer.py | 213 + electrum/tests/__init__.py | 38 + electrum/tests/test_bitcoin.py | 766 + electrum/tests/test_commands.py | 33 + electrum/tests/test_dnssec.py | 41 + electrum/tests/test_interface.py | 28 + electrum/tests/test_mnemonic.py | 42 + electrum/tests/test_simple_config.py | 186 + electrum/tests/test_storage_upgrade.py | 301 + electrum/tests/test_transaction.py | 819 + electrum/tests/test_util.py | 109 + electrum/tests/test_wallet.py | 71 + electrum/tests/test_wallet_vertical.py | 1648 ++ electrum/tests/test_x509.py | 6 + electrum/transaction.py | 1242 ++ electrum/util.py | 912 + electrum/verifier.py | 175 + electrum/version.py | 18 + electrum/wallet.py | 1676 ++ electrum/websockets.py | 140 + electrum/wordlist/chinese_simplified.txt | 2048 +++ electrum/wordlist/english.txt | 2048 +++ electrum/wordlist/japanese.txt | 2048 +++ electrum/wordlist/portuguese.txt | 1654 ++ electrum/wordlist/spanish.txt | 2048 +++ electrum/x509.py | 340 + icons.qrc | 64 + icons/clock1.png | Bin 0 -> 6574 bytes icons/clock2.png | Bin 0 -> 6901 bytes icons/clock3.png | Bin 0 -> 5643 bytes icons/clock4.png | Bin 0 -> 5670 bytes icons/clock5.png | Bin 0 -> 5614 bytes icons/coldcard.png | Bin 0 -> 528 bytes icons/coldcard_unpaired.png | Bin 0 -> 788 bytes icons/confirmed.png | Bin 0 -> 54212 bytes icons/confirmed.svg | 44 + icons/copy.png | Bin 0 -> 2111 bytes icons/digitalbitbox.png | Bin 0 -> 2964 bytes icons/digitalbitbox_unpaired.png | Bin 0 -> 2549 bytes icons/electrum.ico | Bin 0 -> 79877 bytes icons/electrum.png | Bin 0 -> 23779 bytes icons/electrumBTX.png | Bin 0 -> 23779 bytes icons/electrum_BTX.png | Bin 0 -> 19928 bytes icons/electrum_dark_icon.png | Bin 0 -> 1268 bytes icons/electrum_launcher.png | Bin 0 -> 22217 bytes icons/electrum_light_icon.png | Bin 0 -> 1268 bytes icons/electrum_presplash.png | Bin 0 -> 28587 bytes icons/electrumb.png | Bin 0 -> 30982 bytes icons/expired.png | Bin 0 -> 28522 bytes icons/eye1.png | Bin 0 -> 2910 bytes icons/file.png | Bin 0 -> 4779 bytes icons/info.png | Bin 0 -> 1771 bytes icons/keepkey.png | Bin 0 -> 2766 bytes icons/keepkey_unpaired.png | Bin 0 -> 2726 bytes icons/key.png | Bin 0 -> 5428 bytes icons/ledger.png | Bin 0 -> 2161 bytes icons/ledger_unpaired.png | Bin 0 -> 2140 bytes icons/lock.png | Bin 0 -> 40380 bytes icons/lock.svg | 277 + icons/microphone.png | Bin 0 -> 199 bytes icons/network.png | Bin 0 -> 3031 bytes icons/offline_tx.png | Bin 0 -> 463 bytes icons/preferences.png | Bin 0 -> 58005 bytes icons/preferences.svg | 686 + icons/qrcode.png | Bin 0 -> 314 bytes icons/qrcode_white.png | Bin 0 -> 380 bytes icons/revealer.png | Bin 0 -> 272 bytes icons/revealer_c.png | Bin 0 -> 1965 bytes icons/safe-t.png | Bin 0 -> 3871 bytes icons/safe-t_unpaired.png | Bin 0 -> 3719 bytes icons/seal.png | Bin 0 -> 38276 bytes icons/seed.png | Bin 0 -> 10322 bytes icons/speaker.png | Bin 0 -> 392 bytes icons/status_connected.png | Bin 0 -> 71068 bytes icons/status_connected.svg | 173 + icons/status_connected_proxy.png | Bin 0 -> 69081 bytes icons/status_connected_proxy.svg | 173 + icons/status_disconnected.png | Bin 0 -> 66105 bytes icons/status_disconnected.svg | 293 + icons/status_lagging.png | Bin 0 -> 74851 bytes icons/status_lagging.svg | 173 + icons/status_waiting.png | Bin 0 -> 81206 bytes icons/status_waiting.svg | 398 + icons/tab_addresses.png | Bin 0 -> 886 bytes icons/tab_coins.png | Bin 0 -> 1592 bytes icons/tab_console.png | Bin 0 -> 824 bytes icons/tab_contacts.png | Bin 0 -> 1446 bytes icons/tab_history.png | Bin 0 -> 2182 bytes icons/tab_receive.png | Bin 0 -> 1873 bytes icons/tab_send.png | Bin 0 -> 1550 bytes icons/tor_logo.png | Bin 0 -> 2712 bytes icons/trezor.png | Bin 0 -> 2606 bytes icons/trezor_unpaired.png | Bin 0 -> 1950 bytes icons/trustedcoin-status.png | Bin 0 -> 2034 bytes icons/trustedcoin-wizard.png | Bin 0 -> 2206 bytes icons/unconfirmed.png | Bin 0 -> 3532 bytes icons/unlock.png | Bin 0 -> 45956 bytes icons/unlock.svg | 509 + icons/unpaid.png | Bin 0 -> 23805 bytes icons/warning.png | Bin 0 -> 4839 bytes icons/zoom.png | Bin 0 -> 11786 bytes pubkeys/Animazing.asc | 38 + pubkeys/ThomasV.asc | 87 + pubkeys/bauerj.asc | 166 + pubkeys/kyuupichan.asc | 59 + pubkeys/sombernight.asc | 92 + pubkeys/wozz.asc | 199 + run_electrum | 481 + setup.py | 103 + snap/snapcraft.yaml | 23 + tox.ini | 12 + 454 files changed, 87823 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 .travis.yml create mode 100644 AUTHORS create mode 100644 Info.plist create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100644 RELEASE-NOTES create mode 100644 contrib/build-osx/README.md create mode 100644 contrib/build-osx/base.sh create mode 100644 contrib/build-osx/cdrkit-deterministic.patch create mode 100755 contrib/build-osx/make_osx create mode 100644 contrib/build-osx/osx.spec create mode 100755 contrib/build-osx/package.sh create mode 100644 contrib/build-wine/README.md create mode 100755 contrib/build-wine/build-electrum-git.sh create mode 100755 contrib/build-wine/build-secp256k1.sh create mode 100755 contrib/build-wine/build.sh create mode 100644 contrib/build-wine/deterministic.spec create mode 100644 contrib/build-wine/docker/Dockerfile create mode 100644 contrib/build-wine/docker/README.md create mode 100644 contrib/build-wine/electrum.nsi create mode 100755 contrib/build-wine/prepare-wine.sh create mode 100755 contrib/build-wine/sign.sh create mode 100644 contrib/build-wine/tmp/LICENSE create mode 100755 contrib/build-wine/unsign.sh create mode 100755 contrib/deterministic-build/check_submodules.sh create mode 100755 contrib/deterministic-build/find_restricted_dependencies.py create mode 100644 contrib/deterministic-build/requirements-binaries.txt create mode 100644 contrib/deterministic-build/requirements-hw.txt create mode 100644 contrib/deterministic-build/requirements.txt create mode 100755 contrib/freeze_packages.sh create mode 100755 contrib/make_apk create mode 100755 contrib/make_download create mode 100755 contrib/make_locale create mode 100755 contrib/make_packages create mode 100755 contrib/make_tgz create mode 100644 contrib/requirements/requirements-binaries.txt create mode 100644 contrib/requirements/requirements-hw.txt create mode 100644 contrib/requirements/requirements-travis.txt create mode 100644 contrib/requirements/requirements.txt create mode 100755 contrib/sign_packages create mode 100755 contrib/upload create mode 100755 electrum-env create mode 100644 electrum.conf.sample create mode 100644 electrum.desktop create mode 100644 electrum.icns create mode 100644 electrum/__init__.py create mode 100644 electrum/address_synchronizer.py create mode 100644 electrum/base_crash_reporter.py create mode 100644 electrum/base_wizard.py create mode 100644 electrum/bitcoin.py create mode 100644 electrum/blockchain.py create mode 100644 electrum/checkpoints.json create mode 100644 electrum/checkpoints_testnet.json create mode 100644 electrum/coinchooser.py create mode 100644 electrum/commands.py create mode 100644 electrum/constants.py create mode 100644 electrum/contacts.py create mode 100644 electrum/crypto.py create mode 100644 electrum/currencies.json create mode 100644 electrum/daemon.py create mode 100644 electrum/dnssec.py create mode 100644 electrum/ecc.py create mode 100644 electrum/ecc_fast.py create mode 120000 electrum/electrum create mode 100644 electrum/exchange_rate.py create mode 100644 electrum/gui/__init__.py create mode 100644 electrum/gui/kivy/Makefile create mode 100644 electrum/gui/kivy/Readme.md create mode 100644 electrum/gui/kivy/__init__.py create mode 100644 electrum/gui/kivy/data/background.png create mode 100644 electrum/gui/kivy/data/fonts/Roboto-Bold.ttf create mode 100644 electrum/gui/kivy/data/fonts/Roboto-Condensed.ttf create mode 100644 electrum/gui/kivy/data/fonts/Roboto-Medium.ttf create mode 100644 electrum/gui/kivy/data/fonts/Roboto.ttf create mode 100644 electrum/gui/kivy/data/fonts/tron/License.txt create mode 100644 electrum/gui/kivy/data/fonts/tron/Readme.txt create mode 100644 electrum/gui/kivy/data/fonts/tron/Tr2n.ttf create mode 100644 electrum/gui/kivy/data/glsl/default.fs create mode 100644 electrum/gui/kivy/data/glsl/default.png create mode 100644 electrum/gui/kivy/data/glsl/default.vs create mode 100644 electrum/gui/kivy/data/glsl/header.fs create mode 100644 electrum/gui/kivy/data/glsl/header.vs create mode 100644 electrum/gui/kivy/data/images/defaulttheme-0.png create mode 100644 electrum/gui/kivy/data/images/defaulttheme.atlas create mode 100644 electrum/gui/kivy/data/java-classes/org/electrum/qr/SimpleScannerActivity.java create mode 100644 electrum/gui/kivy/data/logo/kivy-icon-32.png create mode 100644 electrum/gui/kivy/data/style.kv create mode 100644 electrum/gui/kivy/i18n.py create mode 100644 electrum/gui/kivy/main.kv create mode 100644 electrum/gui/kivy/main_window.py create mode 100644 electrum/gui/kivy/nfc_scanner/__init__.py create mode 100644 electrum/gui/kivy/nfc_scanner/scanner_android.py create mode 100644 electrum/gui/kivy/nfc_scanner/scanner_dummy.py create mode 100644 electrum/gui/kivy/theming/light/action_bar.png create mode 100644 electrum/gui/kivy/theming/light/action_button_group.png create mode 100644 electrum/gui/kivy/theming/light/action_group_dark.png create mode 100644 electrum/gui/kivy/theming/light/action_group_light.png create mode 100644 electrum/gui/kivy/theming/light/add_contact.png create mode 100644 electrum/gui/kivy/theming/light/arrow_back.png create mode 100644 electrum/gui/kivy/theming/light/bit_logo.png create mode 100644 electrum/gui/kivy/theming/light/blue_bg_round_rb.png create mode 100644 electrum/gui/kivy/theming/light/btn_create_account.png create mode 100644 electrum/gui/kivy/theming/light/btn_create_act_disabled.png create mode 100644 electrum/gui/kivy/theming/light/btn_nfc.png create mode 100644 electrum/gui/kivy/theming/light/btn_send_address.png create mode 100644 electrum/gui/kivy/theming/light/btn_send_nfc.png create mode 100644 electrum/gui/kivy/theming/light/calculator.png create mode 100644 electrum/gui/kivy/theming/light/camera.png create mode 100644 electrum/gui/kivy/theming/light/card.png create mode 100644 electrum/gui/kivy/theming/light/card_bottom.png create mode 100644 electrum/gui/kivy/theming/light/card_btn.png create mode 100644 electrum/gui/kivy/theming/light/card_top.png create mode 100644 electrum/gui/kivy/theming/light/carousel_deselected.png create mode 100644 electrum/gui/kivy/theming/light/carousel_selected.png create mode 100644 electrum/gui/kivy/theming/light/clock1.png create mode 100644 electrum/gui/kivy/theming/light/clock2.png create mode 100644 electrum/gui/kivy/theming/light/clock3.png create mode 100644 electrum/gui/kivy/theming/light/clock4.png create mode 100644 electrum/gui/kivy/theming/light/clock5.png create mode 100644 electrum/gui/kivy/theming/light/close.png create mode 100644 electrum/gui/kivy/theming/light/closebutton.png create mode 100644 electrum/gui/kivy/theming/light/confirmed.png create mode 100644 electrum/gui/kivy/theming/light/contact.png create mode 100644 electrum/gui/kivy/theming/light/contact_overlay.png create mode 100644 electrum/gui/kivy/theming/light/create_act_text.png create mode 100644 electrum/gui/kivy/theming/light/create_act_text_active.png create mode 100644 electrum/gui/kivy/theming/light/dialog.png create mode 100644 electrum/gui/kivy/theming/light/dropdown_background.png create mode 100644 electrum/gui/kivy/theming/light/electrum_icon640.png create mode 100644 electrum/gui/kivy/theming/light/error.png create mode 100644 electrum/gui/kivy/theming/light/gear.png create mode 100644 electrum/gui/kivy/theming/light/globe.png create mode 100644 electrum/gui/kivy/theming/light/icon_border.png create mode 100644 electrum/gui/kivy/theming/light/important.png create mode 100644 electrum/gui/kivy/theming/light/info.png create mode 100644 electrum/gui/kivy/theming/light/lightblue_bg_round_lb.png create mode 100644 electrum/gui/kivy/theming/light/logo.png create mode 100644 electrum/gui/kivy/theming/light/logo_atom_dull.png create mode 100644 electrum/gui/kivy/theming/light/mail_icon.png create mode 100644 electrum/gui/kivy/theming/light/manualentry.png create mode 100644 electrum/gui/kivy/theming/light/network.png create mode 100644 electrum/gui/kivy/theming/light/nfc.png create mode 100644 electrum/gui/kivy/theming/light/nfc_clock.png create mode 100644 electrum/gui/kivy/theming/light/nfc_phone.png create mode 100644 electrum/gui/kivy/theming/light/nfc_stage_one.png create mode 100644 electrum/gui/kivy/theming/light/overflow_background.png create mode 100644 electrum/gui/kivy/theming/light/overflow_btn_dn.png create mode 100644 electrum/gui/kivy/theming/light/paste_icon.png create mode 100644 electrum/gui/kivy/theming/light/pen.png create mode 100644 electrum/gui/kivy/theming/light/qrcode.png create mode 100644 electrum/gui/kivy/theming/light/save.png create mode 100644 electrum/gui/kivy/theming/light/settings.png create mode 100644 electrum/gui/kivy/theming/light/shadow.png create mode 100644 electrum/gui/kivy/theming/light/shadow_right.png create mode 100644 electrum/gui/kivy/theming/light/share.png create mode 100644 electrum/gui/kivy/theming/light/star_big_inactive.png create mode 100644 electrum/gui/kivy/theming/light/stepper_full.png create mode 100644 electrum/gui/kivy/theming/light/stepper_left.png create mode 100644 electrum/gui/kivy/theming/light/stepper_restore_password.png create mode 100644 electrum/gui/kivy/theming/light/stepper_restore_seed.png create mode 100644 electrum/gui/kivy/theming/light/tab.png create mode 100644 electrum/gui/kivy/theming/light/tab_btn.png create mode 100644 electrum/gui/kivy/theming/light/tab_btn_disabled.png create mode 100644 electrum/gui/kivy/theming/light/tab_btn_pressed.png create mode 100644 electrum/gui/kivy/theming/light/tab_disabled.png create mode 100644 electrum/gui/kivy/theming/light/tab_strip.png create mode 100644 electrum/gui/kivy/theming/light/textinput_active.png create mode 100644 electrum/gui/kivy/theming/light/unconfirmed.png create mode 100644 electrum/gui/kivy/theming/light/wallet.png create mode 100644 electrum/gui/kivy/theming/light/wallets.png create mode 100644 electrum/gui/kivy/theming/light/white_bg_round_top.png create mode 100644 electrum/gui/kivy/tools/bitcoin_intent.xml create mode 100644 electrum/gui/kivy/tools/blacklist.txt create mode 100644 electrum/gui/kivy/tools/buildozer.spec create mode 100644 electrum/gui/kivy/uix/__init__.py create mode 100644 electrum/gui/kivy/uix/combobox.py create mode 100644 electrum/gui/kivy/uix/context_menu.py create mode 100644 electrum/gui/kivy/uix/dialogs/__init__.py create mode 100644 electrum/gui/kivy/uix/dialogs/addresses.py create mode 100644 electrum/gui/kivy/uix/dialogs/amount_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/bump_fee_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/checkbox_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/choice_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/crash_reporter.py create mode 100644 electrum/gui/kivy/uix/dialogs/fee_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/fx_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/installwizard.py create mode 100644 electrum/gui/kivy/uix/dialogs/invoices.py create mode 100644 electrum/gui/kivy/uix/dialogs/label_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/nfc_transaction.py create mode 100644 electrum/gui/kivy/uix/dialogs/password_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/qr_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/qr_scanner.py create mode 100644 electrum/gui/kivy/uix/dialogs/question.py create mode 100644 electrum/gui/kivy/uix/dialogs/requests.py create mode 100644 electrum/gui/kivy/uix/dialogs/seed_options.py create mode 100644 electrum/gui/kivy/uix/dialogs/settings.py create mode 100644 electrum/gui/kivy/uix/dialogs/tx_dialog.py create mode 100644 electrum/gui/kivy/uix/dialogs/wallets.py create mode 100644 electrum/gui/kivy/uix/drawer.py create mode 100644 electrum/gui/kivy/uix/gridview.py create mode 100644 electrum/gui/kivy/uix/menus.py create mode 100644 electrum/gui/kivy/uix/qrcodewidget.py create mode 100644 electrum/gui/kivy/uix/screens.py create mode 100644 electrum/gui/kivy/uix/ui_screens/about.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/history.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/invoice.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/network.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/proxy.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/receive.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/send.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/server.kv create mode 100644 electrum/gui/kivy/uix/ui_screens/status.kv create mode 100644 electrum/gui/qt/__init__.py create mode 100644 electrum/gui/qt/address_dialog.py create mode 100644 electrum/gui/qt/address_list.py create mode 100644 electrum/gui/qt/amountedit.py create mode 100644 electrum/gui/qt/completion_text_edit.py create mode 100644 electrum/gui/qt/console.py create mode 100644 electrum/gui/qt/contact_list.py create mode 100644 electrum/gui/qt/exception_window.py create mode 100644 electrum/gui/qt/fee_slider.py create mode 100644 electrum/gui/qt/history_list.py create mode 100644 electrum/gui/qt/icons_rc.py create mode 100644 electrum/gui/qt/installwizard.py create mode 100644 electrum/gui/qt/invoice_list.py create mode 100644 electrum/gui/qt/main_window.py create mode 100644 electrum/gui/qt/network_dialog.py create mode 100644 electrum/gui/qt/password_dialog.py create mode 100644 electrum/gui/qt/paytoedit.py create mode 100644 electrum/gui/qt/qrcodewidget.py create mode 100644 electrum/gui/qt/qrtextedit.py create mode 100644 electrum/gui/qt/qrwindow.py create mode 100644 electrum/gui/qt/request_list.py create mode 100644 electrum/gui/qt/seed_dialog.py create mode 100644 electrum/gui/qt/transaction_dialog.py create mode 100644 electrum/gui/qt/util.py create mode 100644 electrum/gui/qt/utxo_list.py create mode 100644 electrum/gui/stdio.py create mode 100644 electrum/gui/text.py create mode 100644 electrum/i18n.py create mode 100644 electrum/interface.py create mode 100644 electrum/jsonrpc.py create mode 100644 electrum/keystore.py create mode 100644 electrum/mnemonic.py create mode 100644 electrum/msqr.py create mode 100644 electrum/network.py create mode 100644 electrum/old_mnemonic.py create mode 100644 electrum/paymentrequest.proto create mode 100644 electrum/paymentrequest.py create mode 100644 electrum/paymentrequest_pb2.py create mode 100644 electrum/pem.py create mode 100644 electrum/plot.py create mode 100644 electrum/plugin.py create mode 100644 electrum/plugins/README create mode 100644 electrum/plugins/__init__.py create mode 100644 electrum/plugins/audio_modem/__init__.py create mode 100644 electrum/plugins/audio_modem/qt.py create mode 100644 electrum/plugins/coldcard/README.md create mode 100644 electrum/plugins/coldcard/__init__.py create mode 100644 electrum/plugins/coldcard/cmdline.py create mode 100644 electrum/plugins/coldcard/coldcard.py create mode 100644 electrum/plugins/coldcard/qt.py create mode 100644 electrum/plugins/cosigner_pool/__init__.py create mode 100644 electrum/plugins/cosigner_pool/qt.py create mode 100644 electrum/plugins/digitalbitbox/__init__.py create mode 100644 electrum/plugins/digitalbitbox/cmdline.py create mode 100644 electrum/plugins/digitalbitbox/digitalbitbox.py create mode 100644 electrum/plugins/digitalbitbox/qt.py create mode 100644 electrum/plugins/email_requests/__init__.py create mode 100644 electrum/plugins/email_requests/qt.py create mode 100644 electrum/plugins/greenaddress_instant/__init__.py create mode 100644 electrum/plugins/greenaddress_instant/qt.py create mode 100644 electrum/plugins/hw_wallet/__init__.py create mode 100644 electrum/plugins/hw_wallet/cmdline.py create mode 100644 electrum/plugins/hw_wallet/plugin.py create mode 100644 electrum/plugins/hw_wallet/qt.py create mode 100644 electrum/plugins/keepkey/__init__.py create mode 100644 electrum/plugins/keepkey/client.py create mode 100644 electrum/plugins/keepkey/clientbase.py create mode 100644 electrum/plugins/keepkey/cmdline.py create mode 100644 electrum/plugins/keepkey/keepkey.py create mode 100644 electrum/plugins/keepkey/qt.py create mode 100644 electrum/plugins/labels/__init__.py create mode 100644 electrum/plugins/labels/cmdline.py create mode 100644 electrum/plugins/labels/kivy.py create mode 100644 electrum/plugins/labels/labels.py create mode 100644 electrum/plugins/labels/qt.py create mode 100644 electrum/plugins/ledger/__init__.py create mode 100644 electrum/plugins/ledger/auth2fa.py create mode 100644 electrum/plugins/ledger/cmdline.py create mode 100644 electrum/plugins/ledger/ledger.py create mode 100644 electrum/plugins/ledger/qt.py create mode 100644 electrum/plugins/revealer/DejaVuSansMono-Bold.ttf create mode 100644 electrum/plugins/revealer/LICENSE_DEJAVU.txt create mode 100644 electrum/plugins/revealer/SIL Open Font License.txt create mode 100644 electrum/plugins/revealer/SourceSansPro-Bold.otf create mode 100644 electrum/plugins/revealer/__init__.py create mode 100644 electrum/plugins/revealer/hmac_drbg.py create mode 100644 electrum/plugins/revealer/qt.py create mode 100644 electrum/plugins/safe_t/__init__.py create mode 100644 electrum/plugins/safe_t/client.py create mode 100644 electrum/plugins/safe_t/clientbase.py create mode 100644 electrum/plugins/safe_t/cmdline.py create mode 100644 electrum/plugins/safe_t/qt.py create mode 100644 electrum/plugins/safe_t/safe_t.py create mode 100644 electrum/plugins/safe_t/transport.py create mode 100644 electrum/plugins/trezor/__init__.py create mode 100644 electrum/plugins/trezor/client.py create mode 100644 electrum/plugins/trezor/clientbase.py create mode 100644 electrum/plugins/trezor/cmdline.py create mode 100644 electrum/plugins/trezor/qt.py create mode 100644 electrum/plugins/trezor/transport.py create mode 100644 electrum/plugins/trezor/trezor.py create mode 100644 electrum/plugins/trustedcoin/__init__.py create mode 100644 electrum/plugins/trustedcoin/cmdline.py create mode 100644 electrum/plugins/trustedcoin/kivy.py create mode 100644 electrum/plugins/trustedcoin/qt.py create mode 100644 electrum/plugins/trustedcoin/trustedcoin.py create mode 100644 electrum/plugins/virtualkeyboard/__init__.py create mode 100644 electrum/plugins/virtualkeyboard/qt.py create mode 100644 electrum/qrscanner.py create mode 100644 electrum/ripemd.py create mode 100644 electrum/rsakey.py create mode 100755 electrum/scripts/bip70.py create mode 100755 electrum/scripts/block_headers.py create mode 100755 electrum/scripts/estimate_fee.py create mode 100755 electrum/scripts/get_history.py create mode 100755 electrum/scripts/peers.py create mode 100755 electrum/scripts/servers.py create mode 100755 electrum/scripts/txradar.py create mode 100644 electrum/scripts/util.py create mode 100755 electrum/scripts/watch_address.py create mode 100644 electrum/segwit_addr.py create mode 100644 electrum/servers.json create mode 100644 electrum/servers_regtest.json create mode 100644 electrum/servers_testnet.json create mode 100644 electrum/simple_config.py create mode 100644 electrum/storage.py create mode 100644 electrum/synchronizer.py create mode 100644 electrum/tests/__init__.py create mode 100644 electrum/tests/test_bitcoin.py create mode 100644 electrum/tests/test_commands.py create mode 100644 electrum/tests/test_dnssec.py create mode 100644 electrum/tests/test_interface.py create mode 100644 electrum/tests/test_mnemonic.py create mode 100644 electrum/tests/test_simple_config.py create mode 100644 electrum/tests/test_storage_upgrade.py create mode 100644 electrum/tests/test_transaction.py create mode 100644 electrum/tests/test_util.py create mode 100644 electrum/tests/test_wallet.py create mode 100644 electrum/tests/test_wallet_vertical.py create mode 100644 electrum/tests/test_x509.py create mode 100644 electrum/transaction.py create mode 100644 electrum/util.py create mode 100644 electrum/verifier.py create mode 100644 electrum/version.py create mode 100644 electrum/wallet.py create mode 100644 electrum/websockets.py create mode 100644 electrum/wordlist/chinese_simplified.txt create mode 100644 electrum/wordlist/english.txt create mode 100644 electrum/wordlist/japanese.txt create mode 100644 electrum/wordlist/portuguese.txt create mode 100644 electrum/wordlist/spanish.txt create mode 100644 electrum/x509.py create mode 100644 icons.qrc create mode 100644 icons/clock1.png create mode 100644 icons/clock2.png create mode 100644 icons/clock3.png create mode 100644 icons/clock4.png create mode 100644 icons/clock5.png create mode 100644 icons/coldcard.png create mode 100644 icons/coldcard_unpaired.png create mode 100644 icons/confirmed.png create mode 100644 icons/confirmed.svg create mode 100644 icons/copy.png create mode 100644 icons/digitalbitbox.png create mode 100644 icons/digitalbitbox_unpaired.png create mode 100644 icons/electrum.ico create mode 100644 icons/electrum.png create mode 100644 icons/electrumBTX.png create mode 100644 icons/electrum_BTX.png create mode 100644 icons/electrum_dark_icon.png create mode 100644 icons/electrum_launcher.png create mode 100644 icons/electrum_light_icon.png create mode 100644 icons/electrum_presplash.png create mode 100644 icons/electrumb.png create mode 100644 icons/expired.png create mode 100644 icons/eye1.png create mode 100644 icons/file.png create mode 100644 icons/info.png create mode 100644 icons/keepkey.png create mode 100644 icons/keepkey_unpaired.png create mode 100644 icons/key.png create mode 100644 icons/ledger.png create mode 100644 icons/ledger_unpaired.png create mode 100644 icons/lock.png create mode 100644 icons/lock.svg create mode 100644 icons/microphone.png create mode 100644 icons/network.png create mode 100644 icons/offline_tx.png create mode 100644 icons/preferences.png create mode 100644 icons/preferences.svg create mode 100644 icons/qrcode.png create mode 100644 icons/qrcode_white.png create mode 100644 icons/revealer.png create mode 100644 icons/revealer_c.png create mode 100644 icons/safe-t.png create mode 100644 icons/safe-t_unpaired.png create mode 100644 icons/seal.png create mode 100644 icons/seed.png create mode 100644 icons/speaker.png create mode 100644 icons/status_connected.png create mode 100644 icons/status_connected.svg create mode 100644 icons/status_connected_proxy.png create mode 100644 icons/status_connected_proxy.svg create mode 100644 icons/status_disconnected.png create mode 100644 icons/status_disconnected.svg create mode 100644 icons/status_lagging.png create mode 100644 icons/status_lagging.svg create mode 100644 icons/status_waiting.png create mode 100644 icons/status_waiting.svg create mode 100644 icons/tab_addresses.png create mode 100644 icons/tab_coins.png create mode 100644 icons/tab_console.png create mode 100644 icons/tab_contacts.png create mode 100644 icons/tab_history.png create mode 100644 icons/tab_receive.png create mode 100644 icons/tab_send.png create mode 100644 icons/tor_logo.png create mode 100644 icons/trezor.png create mode 100644 icons/trezor_unpaired.png create mode 100644 icons/trustedcoin-status.png create mode 100644 icons/trustedcoin-wizard.png create mode 100644 icons/unconfirmed.png create mode 100644 icons/unlock.png create mode 100644 icons/unlock.svg create mode 100644 icons/unpaid.png create mode 100644 icons/warning.png create mode 100644 icons/zoom.png create mode 100644 pubkeys/Animazing.asc create mode 100644 pubkeys/ThomasV.asc create mode 100644 pubkeys/bauerj.asc create mode 100644 pubkeys/kyuupichan.asc create mode 100644 pubkeys/sombernight.asc create mode 100644 pubkeys/wozz.asc create mode 100755 run_electrum create mode 100755 setup.py create mode 100644 snap/snapcraft.yaml create mode 100644 tox.ini diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..ef05ebc2a --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,2 @@ + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..1d61cb934 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +####-*.patch +*.pyc +*.swp +build/ +dist/ +*.egg/ +contrib/pyinstaller/ +Electrum.egg-info/ +contrib/build-wine/LICENSE +#electrum/gui/qt/icons_rc.py +locale/ +.devlocaltmp/ +*_trial_temp +packages +env/ +.tox/ +.buildozer/ +bin/ +/app.fil + +# tox files +.cache/ +.coverage diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..5a0f914f1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "contrib/deterministic-build/electrum-icons"] + path = contrib/deterministic-build/electrum-icons + url = https://github.com/spesmilo/electrum-icons +[submodule "contrib/deterministic-build/electrum-locale"] + path = contrib/deterministic-build/electrum-locale + url = https://github.com/spesmilo/electrum-locale diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..6f28247b7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,58 @@ +sudo: true +dist: xenial +language: python +python: + - 3.5 + - 3.6 + - 3.7 +addons: + apt: + sources: + - sourceline: 'ppa:tah83/secp256k1' + packages: + - libsecp256k1-0 +install: + - pip install -r contrib/requirements/requirements-travis.txt +cache: + - pip: true + - directories: + - /tmp/electrum-build +script: + - tox +after_success: + - if [ "$TRAVIS_BRANCH" = "master" ]; then pip install pycurl requests && contrib/make_locale; fi + - coveralls +jobs: + include: + - stage: binary builds + sudo: true + language: c + python: false + env: + - TARGET_OS=Windows + services: + - docker + install: + - sudo docker build --no-cache -t electrum-wine-builder-img ./contrib/build-wine/docker/ + script: + - sudo docker run --name electrum-wine-builder-cont -v $PWD:/opt/wine64/drive_c/electrum --rm --workdir /opt/wine64/drive_c/electrum/contrib/build-wine electrum-wine-builder-img ./build.sh + after_success: true + - os: osx + language: c + env: + - TARGET_OS=macOS + python: false + install: + - git fetch --all --tags + - git fetch origin --unshallow + script: ./contrib/build-osx/make_osx + after_script: ls -lah dist && md5 dist/* + after_success: true + - stage: release check + install: + - git fetch --all --tags + - git fetch origin --unshallow + script: + - ./contrib/deterministic-build/check_submodules.sh + after_success: true + if: tag IS present diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 000000000..9cff06784 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,12 @@ +ThomasV - Creator and maintainer. +Animazing / Tachikoma - Styled the new GUI. Mac version. +Azelphur - GUI stuff. +Coblee - Alternate coin support and py2app support. +Deafboy - Ubuntu packages. +EagleTM - Bugfixes. +ErebusBat - Mac distribution. +Genjix - Porting pro-mode functionality to lite-gui and worked on server +Slush - Work on the server. Designed the original Stratum spec. +Julian Toash (Tuxavant) - Various fixes to the client. +rdymac - Website and translations. +kyuupichan - Miscellaneous. \ No newline at end of file diff --git a/Info.plist b/Info.plist new file mode 100644 index 000000000..e914dea11 --- /dev/null +++ b/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleURLTypes + + + CFBundleURLName + bitcore + CFBundleURLSchemes + + bitcore + + + + LSArchitecturePriority + + x86_64 + i386 + + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..b8bb97185 --- /dev/null +++ b/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/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..a46190b80 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,18 @@ +include LICENSE RELEASE-NOTES AUTHORS +include README.rst +include electrum.conf.sample +include electrum.desktop +include *.py +include run_electrum +include contrib/requirements/requirements.txt +include contrib/requirements/requirements-hw.txt +recursive-include packages *.py +recursive-include packages cacert.pem +include icons.qrc +graft icons + +graft electrum +prune electrum/tests + +global-exclude __pycache__ +global-exclude *.py[co] diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..553f94325 --- /dev/null +++ b/README.rst @@ -0,0 +1,115 @@ +Electrum - Lightweight Bitcore client +===================================== + +:: + + Licence: MIT Licence + Author: Thomas Voegtlin + Language: Python + Homepage: https://electrum.org/ + + +.. image:: https://travis-ci.org/spesmilo/electrum.svg?branch=master + :target: https://travis-ci.org/spesmilo/electrum + :alt: Build Status +.. image:: https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master + :target: https://coveralls.io/github/spesmilo/electrum?branch=master + :alt: Test coverage statistics +.. image:: https://d322cqt584bo4o.cloudfront.net/electrum/localized.svg + :target: https://crowdin.com/project/electrum + :alt: Help translate Electrum online + + + + + +Getting started +=============== + +Electrum is a pure python application. If you want to use the +Qt interface, install the Qt dependencies:: + + sudo apt-get install python3-pyqt5 + +If you downloaded the official package (tar.gz), you can run +Electrum from its root directory, without installing it on your +system; all the python dependencies are included in the 'packages' +directory. To run Electrum from its root directory, just do:: + + ./run_electrum + +You can also install Electrum on your system, by running this command:: + + sudo apt-get install python3-setuptools + pip3 install .[fast] + +This will download and install the Python dependencies used by +Electrum, instead of using the 'packages' directory. +The 'fast' extra contains some optional dependencies that we think +are often useful but they are not strictly needed. + +If you cloned the git repository, you need to compile extra files +before you can run Electrum. Read the next section, "Development +Version". + + + +Development version +=================== + +Check out the code from GitHub:: + + git clone git://github.com/spesmilo/electrum.git + cd electrum + +Run install (this should install dependencies):: + + pip3 install .[fast] + +Render the SVG icons to PNGs (optional):: + + for i in lock unlock confirmed status_lagging status_disconnected status_connected_proxy status_connected status_waiting preferences; do convert -background none icons/$i.svg icons/$i.png; done + +Compile the icons file for Qt:: + + sudo apt-get install pyqt5-dev-tools + pyrcc5 icons.qrc -o electrum/gui/qt/icons_rc.py + +Compile the protobuf description file:: + + sudo apt-get install protobuf-compiler + protoc --proto_path=electrum --python_out=electrum electrum/paymentrequest.proto + +Create translations (optional):: + + sudo apt-get install python-requests gettext + ./contrib/make_locale + + + + +Creating Binaries +================= + + +To create binaries, create the 'packages' directory:: + + ./contrib/make_packages + +This directory contains the python dependencies used by Electrum. + +Mac OS X / macOS +-------- + +See `contrib/build-osx/`. + +Windows +------- + +See `contrib/build-wine/`. + + +Android +------- + +See `electrum/gui/kivy/Readme.md` file. diff --git a/RELEASE-NOTES b/RELEASE-NOTES new file mode 100644 index 000000000..74b687747 --- /dev/null +++ b/RELEASE-NOTES @@ -0,0 +1,1061 @@ +# Release 3.2.3 - (September 3, 2018) + + * hardware wallet: the Safe-T mini from Archos is now supported. + * hardware wallet: the Coldcard from Coinkite is now supported. + * BIP39 seeds: if a seed extension (aka passphrase) contained + multiple consecutive whitespaces or leading/trailing whitespaces + then the derived addresses were not following spec. This has been + fixed, and affected should move their coins. The wizard will show a + warning in this case. (#4566) + * Revealer: the PRNG used has been changed (#4649) + * fix Linux distributables: 'typing' was not bundled, needed for python 3.4 + * fix #4626: fix spending from segwit multisig wallets involving a Trezor + cosigner when using a custom derivation path + * fix #4491: on Android, if user had set "uBTC" as base unit, app crashed + * fix #4497: on Android, paying bip70 invoices from cold start did not work + * Several other minor bugfixes and usability improvements. + + +# Release 3.2.2 - (July 2nd, 2018) + + * Fix DNS resolution on Windows + * Fix websocket bug in daemon + + +# Release 3.2.1 - (July 1st, 2018) + + * fix Windows binaries: due to build process changes, the locale files + were not included; the language could not be changed from English + * fix Linux distributables: wordlists were not included (#4475) + + +# Release 3.2.0 - Satoshi's Vision (June 30, 2018) + + * If present, libsecp256k1 is used to speed up elliptic curve + operations. The library is bundled in the Windows, MacOS, and + Android binaries. On Linux, it needs to be installed separately. + * Two-factor authentication is available on Android. Note that this + will only provide additional security if one time passwords are + generated on a separate device. + * Semi-automated crash reporting is implemented for Android. + * Transactions that are dropped from the mempool are kept in the + wallet as 'local', and can be rebroadcast. Previously these + transactions were deleted from the wallet. + * The scriptSig and witness part of transaction inputs are no longer + parsed, unless actually needed. The wallet will no longer display + 'from' addresses corresponding to transaction inputs, except for + its own inputs. + * The partial transaction format has been incompatibly changed. This + was needed as for partial transactions the scriptSig/witness has to + be parsed, but for signed transactions we did not want to do the + parsing. Users should make sure that all instances of Electrum + they use to co-sign or offline sign, are updated together. + * Signing of partial transactions created with online imported + addresses wallets now supports significantly more + setups. Previously only online p2pkh address + offline WIF was + supported. Now the following setups are all supported: + - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline WIF, + - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline seed/xprv, + - online {p2sh, p2wsh-p2sh, p2wsh}-multisig address + offline seeds/xprvs + (potentially distributed among several different machines) + Note that for the online address + offline HD secret case, you need + the offline wallet to recognize the address (i.e. within gap + limit). Having an xpub on the online machine is still the + recommended setup, as this allows the online machine to generate + new addresses on demand. + * Segwit multisig for bip39 and hardware wallets is now enabled. + (both p2wsh-p2sh and native p2wsh) + * Ledger: offline signing for segwit inputs (#3302) This has already + worked for Trezor and Digital Bitbox. Offline segwit signing can be + combined with online imported addresses wallets. + * Added Revealer plugin. ( https://revealer.cc ) Revealer is a seed + phrase back-up solution. It allows you to create a cold, analog, + multi-factor backup of your wallet seeds, or of any arbitrary + secret. The Revealer utilizes a transparent plastic visual one time + pad. + * Fractional fee rates: the Qt GUI now displays fee rates with 0.1 + sat/byte precision, and also allows this same resolution in the + Send tab. + * Hardware wallets: a "show address" button is now displayed in the + Receive tab of the Qt GUI. (#4316) + * Trezor One: implemented advanced/matrix recovery (#4329) + * Qt/Kivy: added "sat" as optional base unit. + * Kivy GUI: significant performance improvements when displaying + history and address list of large wallets; and transaction dialog + of large transactions. + * Windows: use dnspython to resolve dns instead of socket.getaddrinfo + (#4422) + * Importing minikeys: use uncompressed pubkey instead of compressed + (#4384) + * SPV proofs: check inner nodes not to be valid transactions (#4436) + * Qt GUI: there is now an optional "dark" theme (#4461) + * Several other minor bugfixes and usability improvements. + + +# Release 3.1.3 - (April 16, 2018) + + * Qt GUI: seed word auto-complete during restore + * Android: fix some crashes + * performance improvements (wallet, and Qt GUI) + * hardware wallets: show debug message during device scan + * Digital Bitbox: enabled BIP84 (p2wpkh) wallet creation + * add regtest support (via --regtest flag) + * other minor bugfixes and usability improvements + +# Release 3.1.2 - (March 28, 2018) + + * Kivy/android: request PIN on startup + * Improve OSX build process + * Fix various bugs with hardware wallets + * Other minor bugfixes + +# Release 3.1.1 - (March 12, 2018) + + * fix #4031: Trezor T support + * partial fix #4060: proxy and hardware wallet can't be used together + * fix #4039: can't set address labels + * fix crash related to coinbase transactions + * MacOS: use internal graphics card + * fix openalias related crashes + * speed-up capital gains calculations + * hw wallet encryption: re-prompt for passphrase if incorrect + * other minor fixes. + + + +# Release 3.1.0 - (March 5, 2018) + + * Memory-pool based fee estimation. Dynamic fees can target a desired + depth in the memory pool. This feature is optional, and ETA-based + estimates from Bitcoin Core are still available. Note that miners + could exploit this feature, if they conspired and filled the memory + pool with expensive transactions that never get mined. However, + since the Electrum client already trusts an Electrum server with + fee estimates, activating this feature does not introduce any new + vulnerability. In addition, the client uses a hard threshold to + protect itself from servers sending excessive fee estimates. In + practice, ETA-based estimates have resulted in sticky fees, and + caused many users to overpay for transactions. Advanced users tend + to visit (and trust) websites that display memory-pool data in + order to set their fees. + * Capital gains: For each outgoing transaction, the difference + between the acquisition and liquidation prices of outgoing coins is + displayed in the wallet history. By default, historical exchange + rates are used to compute acquisition and liquidation prices. These + values can also be entered manually, in order to match the actual + price realized by the user. The order of liquidation of coins is + the natural order defined by the blockchain; this results in + capital gain values that are invariant to changes in the set of + addresses that are in the wallet. Any other ordering strategy (such + as FIFO, LIFO) would result in capital gain values that depend on + the presence of other addresses in the wallet. + * Local transactions: Transactions can be saved in the wallet without + being broadcast. The inputs of local transactions are considered as + spent, and their change outputs can be re-used in subsequent + transactions. This can be combined with cold storage, in order to + create several transactions before broadcasting them. Outgoing + transactions that have been removed from the memory pool are also + saved in the wallet, and can be broadcast again. + * Checkpoints: The initial download of a headers file was replaced + with hardcoded checkpoints. The wallet uses one checkpoint per + retargeting period. The headers for a retargeting period are + downloaded only if transactions need to be verified in this period. + * The 'privacy' and 'priority' coin selection policies have been + merged into one. Previously, the 'privacy' policy has been unusable + because it was was not prioritizing confirmed coins. The new policy + is similar to 'privacy', except that it de-prioritizes addresses + that have unconfirmed coins. + * The 'Send' tab of the Qt GUI displays how transaction fees are + computed from transaction size. + * The wallet history can be filtered by time interval. + * Replace-by-fee is enabled by default. Note that this might cause + some issues with wallets that do not display RBF transactions until + they are confirmed. + * Watching-only wallets and hardware wallets can be encrypted. + * Semi-automated crash reporting + * The SSL checkbox option was removed from the GUI. + * The Trezor T hardware wallet is now supported. + * BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware + wallets can now be created when specifying a BIP84 derivation + path. This is usable with Trezor and Ledger. + * Windows: the binaries now include ZBar, and QR code scanning should work. + * The Wallet Import Format (WIF) for private keys that was extended in 3.0 + is changed. Keys in the previous format can be imported, compatibility + is maintained. Newly exported keys will be serialized as + "script_type:original_wif_format_key". + * BIP32 master keys for testnet once again have different version bytes than + on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the + corresponding testnet prefixes are {t,u,U,v,V}|{pub,prv}. + More details and exact version bytes are specified at: + https://github.com/spesmilo/electrum-docs/blob/master/xpub_version_bytes.rst + Note that due to this change, testnet wallet files created with previous + versions of Electrum must be considered broken, and they need to be + recreated from seed words. + * A new version of the Electrum protocol is required by the client + (version 1.2). Servers using older versions of the protocol will + not be displayed in the GUI. + + +# Release 3.0.6 : + * Fix transaction parsing bug #3788 + +# Release 3.0.5 : (Security update) + +This is a follow-up to the 3.0.4 release, which did not completely fix +issue #3374. Users should upgrade to 3.0.5. + + * The JSONRPC interface is password protected + * JSONRPC commands are disabled if the GUI is running, except 'ping', + which is used to determine if a GUI is already running + + +# Release 3.0.4 : (Security update) + + * Fix a vulnerability caused by Cross-Origin Resource Sharing (CORS) + in the JSONRPC interface. Previous versions of Electrum are + vulnerable to port scanning and deanonimization attacks from + malicious websites. Wallets that are not password-protected are + vulnerable to theft. + * Bundle QR scanner with Android app + * Minor bug fixes + +# Release 3.0.3 + * Qt GUI: sweeping now uses the Send tab, allowing fees to be set + * Windows: if using the installer binary, there is now a separate shortcut + for "Electrum Testnet" + * Digital Bitbox: added suport for p2sh-segwit + * OS notifications for incoming transactions + * better transaction size estimation: + - fees for segwit txns were somewhat underestimated (#3347) + - some multisig txns were underestimated + - handle uncompressed pubkeys + * fix #3321: testnet for Windows binaries + * fix #3264: Ledger/dbb signing on some platforms + * fix #3407: KeepKey sending to p2sh output + * other minor fixes and usability improvements + +# Release 3.0.2 + * Android: replace requests tab with address tab, with access to + private keys + * sweeping minikeys: search for both compressed and uncompressed + pubkeys + * fix wizard crash when attempting to reset Google Authenticator + * fix #3248: fix Ledger+segwit signing + * fix #3262: fix SSL payment request signing + * other minor fixes. + +# Release 3.0.1 + * minor bug and usability fixes + +# Release 3.0 - Uncanny Valley (November 1st, 2017) + + * The project was migrated to Python3 and Qt5. Python2 is no longer + supported. If you cloned the source repository, you will need to + run "python3 setup.py install" in order to install the new + dependencies. + + * Segwit support: + + - Native segwit scripts are supported using a new type of + seed. The version number for segwit seeds is 0x100. The install + wizard will not create segwit seeds by default; users must + opt-in with the segwit option. + + - Native segwit scripts are represented using bech32 addresses, + following BIP173. Please note that BIP173 is still in draft + status, and that other wallets/websites may not support + it. Thus, you should keep a non-segwit wallet in order to be + able to receive bitcoins during the transition period. If BIP173 + ends up being rejected or substantially modified, your wallet + may have to be restored from seed. This will not affect funds + sent to bech32 addresses, and it will not affect the capacity of + Electrum to spend these funds. + + - Segwit scripts embedded in p2sh are supported with hardware + wallets or bip39 seeds. To create a segwit-in-p2sh wallet, + trezor/ledger users will need to enter a BIP49 derivation path. + + - The BIP32 master keys of segwit wallets are serialized using new + version numbers. The new version numbers encode the script type, + and they result in the following prefixes: + + * xpub/xprv : p2pkh or p2sh + * ypub/yprv : p2wpkh-in-p2sh + * Ypub/Yprv : p2wsh-in-p2sh + * zpub/zprv : p2wpkh + * Zpub/Zprv : p2wsh + + These values are identical for mainnet and testnet; tpub/tprv + prefixes are no longer used in testnet wallets. + + - The Wallet Import Format (WIF) is similarly extended for segwit + scripts. After a base58-encoded key is decoded to binary, its + first byte encodes the script type: + + * 128 + 0: p2pkh + * 128 + 1: p2wpkh + * 128 + 2: p2wpkh-in-p2sh + * 128 + 5: p2sh + * 128 + 6: p2wsh + * 128 + 7: p2wsh-in-p2sh + + The distinction between p2sh and p2pkh in private key means that + it is not possible to import a p2sh private key and associate it + to a p2pkh address. + + * A new version of the Electrum protocol is required by the client + (version 1.1). Servers using older versions of the protocol will + not be displayed in the GUI. + + * By default, transactions are time-locked to the height of the + current block. Other values of locktime may be passed using the + command line. + + +# Release 2.9.3 + * fix configuration file issue #2719 + * fix ledger signing of non-RBF transactions + * disable 'spend confirmed only' option by default + +# Release 2.9.2 + * force headers download if headers file is corrupted + * add websocket to windows builds + +# Release 2.9.1 + * fix initial headers download + * validate contacts on import + * command-line option for locktime + +# Release 2.9 - Independence (July 27th, 2017) + * Multiple Chain Validation: Electrum will download and validate + block headers sent by servers that may follow different branches + of a fork in the Bitcoin blockchain. Instead of a linear sequence, + block headers are organized in a tree structure. Branching points + are located efficiently using binary search. The purpose of MCV is + to detect and handle blockchain forks that are invisible to the + classical SPV model. + * The desired branch of a blockchain fork can be selected using the + network dialog. Branches are identified by the hash and height of + the diverging block. Coin splitting is possible using RBF + transaction (a tutorial will be added). + * Multibit support: If the user enters a BIP39 seed (or uses a + hardware wallet), the full derivation path is configurable in the + install wizard. + * Option to send only confirmed coins + * Qt GUI: + - Network dialog uses tabs and gets updated by network events. + - The gui tabs use icons + * Kivy GUI: + - separation between network dialog and wallet settings dialog. + - option for manual server entry + - proxy configuration + * Daemon: The wallet password can be passed as parameter to the + JSONRPC API. + * Various other bugfixes and improvements. + + +# Release 2.8.3 + * Fix crash on reading older wallet formats. + * TrustedCoin: remove pay-per-tx option + +# Release 2.8.2 + * show paid invoices in history tab + * improve CPFP dialog + * fixes for trezor, keepkey + * other minor bugfixes + +# Release 2.8.1 + * fix Digital Bitbox plugin + * fix daemon jsonrpc + * fix trustedcoin wallet creation + * other minor bugfixes + +# Release 2.8.0 (March 9, 2017) + * Wallet file encryption using ECIES: A keypair is derived from the + wallet password. Once the wallet is decrypted, only the public key + is retained in memory, in order to save the encrypted file. + * The daemon requires wallets to be explicitly loaded before + commands can use them. Wallets can be loaded using: 'electrum + daemon load_wallet [-w path]'. This command will require a + password if the wallet is encrypted. + * Invoices and contacts are stored in the wallet file and are no + longer shared between wallets. Previously created invoices and + contacts files may be imported from the menu. + * Fees improvements: + - Dynamic fees are enabled by default. + - Child Pays For Parent (CPFP) dialog in the GUI. + - RBF is automatically proposed for low fee transactions. + * Support for Segregated Witness (testnet only). + * Support for Digital Bitbox hardware wallet. + * The GUI shows a blue icon when connected using a proxy. + +# Release 2.7.18 + * enforce https on exchange rate APIs + * use hardcoded list of exchanges + * move 'Freeze' menu to Coins (utxo) tab + * various bugfixes + +# Release 2.7.17 + * fix a few minor regressions in the Qt GUI + +# Release 2.7.16 + * add Testnet support (fix #541) + * allow daemon to be launched in the foreground (fix #1873) + * Qt: use separate tabs for addresses and UTXOs + * Qt: update fee slider with a network callback + * Ledger: new ui and mobile 2fa validation (neocogent) + +# Release 2.7.15 + * Use fee slider for both static and dynamic fees. + * Add fee slider to RBF dialog (fix #2083). + * Simplify fee preferences. + * Critical: Fix password update issue (#2097). This bug prevents + password updates in multisig and 2FA wallets. It may also cause + wallet corruption if the wallet contains several master private + keys (such as 2FA wallets that have been restored from + seed). Affected wallets will need to be restored again. + +# Release 2.7.14 + * Merge exchange_rate plugin with main code + * Faster synchronization and transaction creation + * Fix bugs #2096, #2016 + +# Release 2.7.13 + * fix message signing with imported keys + * add size to transaction details window + * move plot plugin to main code + * minor bugfixes + +# Release 2.7.12 + various bugfixes + +# Release 2.7.11 + * fix offline signing (issue #195) + * fix android crashes caused by threads + +# Release 2.7.10 + * various fixes for hardware wallets + * improve fee bumping + * separate sign and broadcast buttons in Qt tx dialog + * allow spaces in private keys + +# Release 2.7.9 + * Fix a bug with the ordering of pubkeys in recent multisig wallets. + Affected wallets will regenerate their public keys when opened for + the first time. This bug does not affect address generation. + * Fix hardware wallet issues #1975, #1976 + +# Release 2.7.8 + * Fix a bug with fee bumping + * Fix crash when parsing request (issue #1969) + +# Release 2.7.7 + * Fix utf8 encoding bug with old wallet seeds (issue #1967) + * Fix delete request from menu (isue #1968) + +# Release 2.7.6 + * Fixes a critical bug with imported private keys (issue #1966). Keys + imported in Electrum 2.7.x were not encrypted, even if the wallet + had a password. If you imported private keys using Electrum 2.7.x, + you will need to import those keys again. If you imported keys in + 2.6 and converted with 2.7.x, you don't need to do anything, but + you still need to upgrade in order to be able to spend. + * Wizard: Hide seed options in a popup dialog. + +# Release 2.7.5 + * Add number of confirmations to request status. (issue #1757) + * In the GUI, refer to passphrase as 'seed extension'. + * Fix bug with utf8 encoded passphrases. + * Kivy wizard: add a dialog for seed options. + * Kivy wizard: add current word to suggestions, because some users + don't see the space key. + +# Release 2.7.4 + * Fix private key import in wizard + * Fix Ledger display (issue #1961) + * Fix old watching-only wallets (issue #1959) + * Fix Android compatibility (issue #1947) + +# Release 2.7.3 + * fix Trezor and Keepkey support in Windows builds + * fix sweep private key dialog + * minor fixes: #1958, #1959 + +# Release 2.7.2 + * fix bug in password update (issue #1954) + * fix fee slider (issue #1953) + +# Release 2.7.1 + * fix wizard crash with old seeds + * fix issue #1948: fee slider + +# Release 2.7.0 (Oct 2 2016) + + * The wallet file format has been upgraded. This upgrade is not + backward compatible, which means that a wallet upgraded to the 2.7 + format will not be readable by earlier versions of + Electrum. Multiple accounts inside the same wallet are not + supported in the new format; the Qt GUI will propose to split any + wallet that has several accounts. Make sure that you have saved + your seed phrase before you upgrade Electrum. + * This version introduces a separation between wallets types and + keystores types. 'Wallet type' defines the type of Bitcoin contract + used in the wallet, while 'keystore type' refers to the method used + to store private keys. Therefore, so-called 'hardware wallets' will + be referred to as 'hardware keystores'. + * Hardware keystores: + - The Ledger Nano S is supported. + - Hardware keystores can be used as cosigners in multi-signature + wallets. + - Multiple hardware cosigners can be used in the same multisig + wallet. One icon per keystore is displayed in the satus bar. Each + connected device will co-sign the transaction. + * Replace-By-Fee: RBF transactions are supported in both Qt and + Android. A warning is displayed in the history for transactions + that are replaceable, have unconfirmed parents, or that have very + low fees. + * Dynamic fees: Dynamic fees are enabled by default. A slider allows + the user to select the expected confirmation time of their + transaction. The expected confirmation times of incoming + transactions is also displayed in the history. + * The install wizards of Qt and Kivy have been unified. + * Qt GUI (Desktop): + - A fee slider is visible in the in send tab + - The Address tab is hidden by default, can be shown with Ctrl-A + - UTXOs are displayed in the Address tab + * Kivy GUI (Android): + - The GUI displays the complete transaction history. + - Multisig wallets are supported. + - Wallets can be created and deleted in the GUI. + * Seed phrases can be extended with a user-chosen passphrase. The + length of seed phrases is standardized to 12 words, using 132 bits + of entropy (including 2FA seeds). In the wizard, the type of the + seed is displayed in the seed input dialog. + * TrustedCoin users can request a reset of their Google Authenticator + account, if they still have their seed. + + +# Release 2.6.4 (bugfixes) + * fix coinchooser bug (#1703) + * fix daemon JSONRPC (#1731) + * fix command-line broadcast (#1728) + * QT: add colors to labels + +# Release 2.6.3 (bugfixes) + * fix command line parsing of transactions + * fix signtransaction --privkey (#1715) + +# Release 2.6.2 (bugfixes) + * fix Trustedcoin restore from seed (bug #1704) + * small improvements to kivy GUI + +# Release 2.6.1 (bugfixes) + * fix broadcast command (bug #1688) + * fix tx dialog (bug #1690) + * kivy: support old-type seed phrases in wizard + +# Release 2.6 + * The source code is relicensed under the MIT Licence + * First official release of the Kivy GUI, with android APK + * The old 'android' and 'gtk' GUIs are deprecated + * Separation between plugins and GUIs + * The command line uses jsonrpc to communicate with the daemon + * New command: 'notify
' + * Alternative coin selection policy, designed to help preserve user + privacy. Enable it by setting the Coin Selection preference to + Privacy. + * The install wizard has been rewritten and improved + * Support minikeys as used in Casascius coins for private key import + and sweeping + * Much improved support for TREZOR and KeepKey devices: + - full device information display + - initialize a new or wiped device in 4 ways: + 1) device generates a new wallet + 2) you enter a seed + 3) you enter a BIP39 mnemonic to generate the seed + 4) you enter a master private key + - KeepKey secure seed recovery (KeepKey only) + - change / set / disable PIN + - set homescreen (TREZOR only) + - set a session timeout. Once a session has timed out, further use + of the device requires your PIN and passhphrase to be re-entered + - enable / disable passphrases + - device wipe + - multiple device support + +# Release 2.5.4 + * increase MIN_RELAY_TX_FEE to avoid dust transactions + +# Release 2.5.3 (bugfixes) + * installwizard: do not allow direct copy-paste of the seed + * installwizard: fix bug #1531 (starting offline) + +# Release 2.5.2 (bugfixes) + * fix bug #1513 (client tries to broadcast transaction while not connected) + * fix synchronization bug (#1520) + * fix command line bug (#1494) + * fixes for exchange rate plugin + +# Release 2.5.1 (bugfixes) + * signatures in transactions were still using the old class + * make sure that setup.py uses python2 + * fix wizard crash with trustedcoin plugin + * fix socket infinite loop + * fix history bug #1479 + +# Release 2.5 + * Low-S values are used in signatures (BIP 62). + * The Kivy GUI has been merged into master. + * The Qt GUI supports multiple windows in the same process. When a + new Electrum instance is started, it checks for an already running + Electrum process, and connects to it. + * The network layer uses select(), so all server communication is + handled by a single thread. Moreover, the synchronizer, verifier, + and exchange rate plugin now run as separate jobs within the + networking thread instead of as their own threads. + * Plugins are revamped, particularly the exchange rate plugin. + +# Release 2.4.4 + * Fix bug with TrustedCoin plugin + +# Release 2.4.3 + * Support for KeepKey hardware wallet + * Simplified Chinese wordlist + * Minor bugfixes and GUI tweaks + +# Release 2.4.2 + * Command line can read arguments from stdin (pipe) + * Speedup fee computation for large transactions + * Various bugfixes + +# Release 2.4.1 + * Use ssl.PROTOCOL_TLSv1 + * Fix DNSSEC issues with ECDSA signatures + * Replace TLSLite dependency with minimal RSA implementation + * Dynamic Fees: using estimatefee value returned by server + * Various GUI improvements + +# Release 2.4 + * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is + supported directly, without activating a plugin. The verification + uses DNSSEC. + * The DNSSEC verification code was rewritten. The previous code, + which was part of the OpenAlias plugin, is vulnerable and should + not be trusted (Electrum 2.0 to 2.3). + * Payment requests can be signed using Bitcoin addresses stored + in DNS (OpenAlias). The identity of the requestor is verified using + DNSSEC. + * Payment requests signed with OpenAlias keys can be shared as + bitcoin: URIs, if they are simple (a single address-type + output). The BIP21 URI scheme is extended with 'name', 'sig', + 'time', 'exp'. + * Arbitrary m-of-n multisig wallets are supported (n<=15). + * Multisig transactions can be signed with TREZOR. When you create + the multisig wallet, just enter the xpub of your existing TREZOR + wallet. + * Transaction fees set manually in the GUI are retained, including + when the user uses the '!' shortcut. + * New 'email' plugin, that enables sending and receiving payment + requests by email. + * The daemon supports Websocket notifications of payments. + +# Release 2.3.3 + * fix proxy settings (issue #1309) + * improvements to the transaction dialog: + - request password after showing transaction + - show change addresses in yellow color + +# Release 2.3.2 + * minor bugfixes + * updated ledger plugin + * sort inputs/outputs lexicographically (BIP-LI01) + +# Release 2.3.1 + * patch a bug with payment requests + +# Release 2.3 + * Improved logic for the network layer. + * More efficient coin selection. Spend oldest coins first, and + minimize the number of transaction inputs. + * Plugins are loaded independently of the GUI. As a result, Openalias, + TrustedCoin and TREZOR wallets can be used with the command + line. Example: 'electrum payto ' + * The command line has been refactored: + - Arguments are parsed with argparse. + - The inline help includes a description of options. + - Some commands have been renamed. Notably, 'mktx' and 'payto' have + been merged into a single command, with a --broadcast option. + Type 'electrum --help' for a complete overview. + * The command line accepts the '!' syntax to send the maximum + amount available. It can be combined with the '--from' option. + Example: 'payto ! --from ' + * The command line also accepts a '?' shortcut for private keys + arguments, that triggers a prompt. + * Payment requests can be managed with the command line, using the + following commands: 'addrequest', 'rmrequest', 'listrequests'. + Payment requests can be signed with a SSL certificate, and published + as bip70 files in a public web directory. To see the relevant + configuration variables, type 'electrum addrequest --help' + * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The + jsonrpc interface may be called by php. + +# Release 2.2 + * Show amounts (thousands separators and decimal point) + according to locale in GUI + * Show unmatured coins in balance + * Fix exchange rates plugin + * Network layer: refactoring and fixes + +# Release 2.1.1 + * patch a bug that prevents new wallet creation. + * fix connection issue on osx binaries + +# Release 2.1 + * Faster startup, thanks to the following optimizations: + 1. Transaction input/outputs are cached in the wallet file + 2. Fast X509 certificate parser, not using pyasn1 anymore. + 3. The Label Sync plugin only requests modified labels. + * The 'Invoices' and 'Send' tabs have been merged. + * Contacts are stored in a separate file, shared between wallets. + * A Search Box is available in the GUI (Ctrl-S) + * Payment requests have an expiration date and can be exported to + BIP70 files. + * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..." + * Own addresses are shown in green in the Transaction dialog. + * Address History dialog. + * The OpenAlias plugin was improved. + * Various bug fixes and GUI improvements. + * A new LabelSync backend is being used an import of the old + database was made but since the release came later it's + recommended that you do a full push when you upgrade. + +# Release 2.0.4 - Minor GUI improvements + * The password dialog will ask for password again if the user enters + a wrong password + * The Master Public Key dialog displays which keys belong to the + wallet, and which are cosigners + * The transaction dialog will ask to save unsaved transaction + received from cosigner pool, when user clicks on 'Close' + * The multisig restore dialog accepts xprv keys. + * The network daemon must be started explicitly before using commands + that require a connection + Example: + electrum daemon start + electrum getaddressunspent + electrum daemon status + electrum daemon stop + If a daemon is running, the GUI will use it. + +# Release 2.0.3 - bugfixes and minor GUI improvements + * Do not use daemon threads (fix #960) + * Add a zoom button to receive tab + * Add exchange rate conversion to receive tab + * Use Tor's default port number in default proxy config + +# Release 2.0.2 - bugfixes + * Fix transaction sweep (#1066) + * Fix thread timing bug (#1054) + +# Release 2.0.1 - bugfixes + * Fix critical bug in TREZOR address derivation: passphrases were not + NFKD normalized. TREZOR users who created a wallet protected by a + passphrase containing utf-8 characters with diacritics are + affected. These users will have to open their wallet with version + 2.0 and to move their funds to a new wallet. + * Use a file socket for the daemon (fixes network dialog issues) + * Fix crash caused by QR scanner icon when zbar not installed. + * Fix CosignerPool plugin + * Label Sync plugin: Fix label sharing between multisig wallets + + +# Release 2.0 + + * Before you upgrade, make sure you have saved your wallet seed on + paper. + + * Documentation is now hosted on a wiki: http://electrum.orain.org + + * New seed derivation method (not compatible with BIP39). The seed + phrase includes a version number, that refers to the wallet + structure. The version number also serves as a checksum, and it + will prevent the import of seeds from incompatible wallets. Old + Electrum seeds are still supported. + + * New address derivation (BIP32). Standard wallets are single account + and use a gap limit of 20. + + * Support for Multisig wallets using parallel BIP32 derivations and + P2SH addresses ("2 of 2", "2 of 3"). + + * Compact serialization format for unsigned or partially signed + transactions, that includes the BIP32 master public key and + derivation needed to sign inputs. Serialized transactions can be + sent to cosigners or to cold storage using QR codes (using Andreas + Schildbach's base 43 idea). + + * Support for BIP70 payment requests: + - Verification of the chain of signatures uses tlslite. + - In the GUI, payment requests are shown in the 'Invoices' tab. + + * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger). + + * Two-factor authentication service by TrustedCoin. This service uses + "2 of 3" multisig wallets and Google Authenticator. Note that + wallets protected by this service can be deterministically restored + from seed, without Trustedcoin's server. + + * Cosigner Pool plugin: encrypted communication channel for multisig + wallets, to send and receive partially signed transactions. + + * Audio Modem plugin: send and receive transactions by sound. + + * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC. + + * New 'Receive' tab in the GUI: + - create and manage payment requests, with QR Codes + - the former 'Receive' tab was renamed to 'Addresses' + - the former Point of Sale plugin is replaced by a resizeable + window that pops up if you click on the QR code + + * The 'Send' tab in the Qt GUI supports transactions with multiple + outputs, and raw hexadecimal scripts. + + * The GUI can connect to the Electrum daemon: "electrum -d" will + start the daemon if it is not already running, and the GUI will + connect to it. The daemon can serve several clients. It times out + if no client uses if for more than 5 minutes. + + * The install wizard can be used to import addresses or private + keys. A watching-only wallet is created by entering a list of + addresses in the wizard dialog. + + * New file format: Wallets files are saved as JSON. Note that new + wallet files cannot be read by older versions of Electrum. Old + wallet files will be converted to the new format; this operation + may take some time, because public keys will be derived for each + address of your wallet. + + * The client accepts servers with a CA-signed SSL certificate. + + * ECIES encrypt/decrypt methods, availabe in the GUI and using + the command line: + encrypt + decrypt + + * The Android GUI has received various updates and it is much more + stable. Another script was added to Android, called Authenticator, + that works completely offline: it reads an unsigned transaction + shown as QR code, signs it and shows the result as a QR code. + + +# Release 1.9.8 + +* Electrum servers were upgraded to version 0.9. The new server stores + a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the + bitcointalk forum. This property allows the client to directly + request the balance of any address. The new commands are: + 1. getaddressbalance
+ 2. getaddressunspent
+ 3. getutxoaddress + +* Command-line commands that require a connection to the network spawn + a daemon, that remains connected and handles subsequent + commands. The daemon terminates itself if it remains unused for more + than one minute. The purpose of this is to make scripting more + efficient. For example, a bash script using many electrum commands + will open only one connection. + +# Release 1.9.7 +* Fix for offline signing +* Various bugfixes +* GUI usability improvements +* Coinbase Buyback plugin + +# Release 1.9.6 +* During wallet creation, do not write seed to disk until it is encrypted. +* Confirmation dialog if the transaction fee is higher than 1mBTC. +* bugfixes + +# Release 1.9.5 + +* Coin control: select addresses to send from +* Put addresses that have been used in a minimized section (Qt GUI) +* Allow non ascii chars in passwords + + +# Release 1.9.4 +bugfixes: offline transactions + +# Release 1.9.3 +bugfixes: connection problems, transactions staying unverified + +# Release 1.9.2 +* fix a syntax error + +# Release 1.9.1 +* fix regression with --offline mode +* fix regression with --portable mode: use a dedicated directory + +# Release 1.9 + +* The client connects to multiple servers in order to retrieve block headers and find the longest chain +* SSL certificate validation (to prevent MITM) +* Deterministic signatures (RFC 6979) +* Menu to create/restore/open wallets +* Create transactions with multiple outputs from CSV (comma separated values) +* New text gui: stdio +* Plugins are no longer tied to the qt GUI, they can reach all GUIs +* Proxy bugs have been fixed + + +# Release 1.8.1 + +* Notification option when receiving new tranactions +* Confirm dialogue before sending large amounts +* Alternative datafile location for non-windows systems +* Fix offline wallet creation +* Remove enforced tx fee +* Tray icon improvements +* Various bugfixes + + +# Release 1.8 + +* Menubar in classic gui +* Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code. +* Fixed bug where never-confirmed transactions prevented further spending + + +# Release 1.7.4 + +* Increase default fee +* fix create and restore in command line +* fix verify message in the gui + + +# Release 1.7.3: + +* Classic GUI can display amounts in mBTC +* Account selector in the classic GUI +* Changed the way the portable flag uses without supplying a -w argument +* Classic GUI asks users to enter their seed on wallet creation + + +# Release 1.7.2: + +* Transactions that are in the same block are displayed in chronological order in the history. +* The client computes transaction priority and rejects zero-fee transactions that need a fee. +* The default fee was lowered to 200 uBTC per kb. +* Due to an internal format change, your history may be pruned when + you open your wallet for the first time after upgrading to 1.7.2. If + this is the case, please visit a full server to restore your full + history. You will only need to do that once. + + +# Release 1.7.1: bugfixes. + + +# Release 1.7 + +* The Classic GUI can be extended with plugins. Developers who want to +add new features or third-party services to Electrum are invited to +write plugins. Some previously existing and non-essential features of +Electrum (point-of-sale mode, qrcode scanner) were removed from the +core and are now available as plugins. + +* The wallet waits for 2 confirmations before creating new +addresses. This makes recovery from seed more robust. Note that it +might create unwanted gaps if you use Electrum 1.7 together with older +versions of Electrum. + +* An interactive Python console replaces the 'Wall' tab. The provided +python environment gives users access to the wallet and gui. Most +electrum commands are available as python function in the +console. Custom scripts an be loaded with a "run(filename)" +command. Tab-completions are available. + +* The location of the Electrum folder in Windows changed from +LOCALAPPDATA to APPDATA. Discussion on this topic can be found here: +https://bitcointalk.org/index.php?topic=144575.0 + +* Private keys can be exported from within the classic GUI: + For a single address, use the address menu (right-click). + To export the keys of your entire wallet, use the settings dialog (import/export tab). + +* It is possible to create, sign and redeem multisig transaction using the +command line interface. This is made possible by the following new commands: + dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction +The syntax of these commands is similar to their bitcoind counterpart. +For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071 + +* Offline wallets now work in a way similar to Armory: + 1. user creates an unsigned transaction using the online (watching-only) wallet. + 2. unsigned transaction is copied to the offline computer, and signed by the offline wallet. + 3. signed transaction is copied to the online computer, broadcasted by the online client. + 4. All these steps can be done via the command line interface or the classic GUI. + +* Many command line commands have been renamed in order to make the syntax consistent with bitcoind. + +# Release 1.6.2 + +== Classic GUI +* Added new version notification + +# Release 1.6.1 (11-01-2013) + +== Core +* It is now possible to restore a wallet from MPK (this will create a watching-only wallet) +* A switch button allows to easily switch between Lite and Classic GUI. + +== Classic GUI +* Seed and MPK help dialogs were rewritten +* Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin. + +== Lite GUI +* The receiving button was removed in favor of a menu item to keep it consistent with the history toggle. + +# Release 1.6.0 (07-01-2013) + +== Core +* (Feature) Add support for importing, signing and verifiying compressed keys +* (Feature) Auto reconnect to random server on disconnect +* (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server +* (Bug) Under rare circumstances changing password with incorrect password could damage wallet + +== Lite GUI +* (Chore) Use blockchain.info for exchange rate data +* (Feature) added currency conversion for BRL, CNY, RUB +* (Feature) Saraha theme +* (Feature) csv import/export for transactions including labels + +== Classic GUI +* (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms +* (Feature) Debits in history shown in red +* (Feature) csv import/export for transactions including labels + +# Release 1.5.8 (02-01-2013) + +== Core +* (Bug) Fix pending address balance on received coins for pruning servers +* (Bug) Fix history command line option to show output again (regression by SPV) +* (Chore) Add timeout to blockchain headers file download by HTTP +* (Feature) new option: -L, --language: default language used in GUI. + +== Lite GUI +* (Bug) Sending to auto-completed contacts works again +* (Chore) Added version number to title bar + +== Classic GUI +* (Feature) Language selector in options. + +# Release 1.5.7 (18-12-2012) + +== Core +* The blockchain headers file is no longer included in the packages, it is downloaded on startup. +* New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet + +== Lite GUI +* (Feature) Added the ability to export your transactions to a CSV file. +* (Feature) Added a label dialog after sending a transaction. +* (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses. +* (Chore) Removed server selection. With all the new server options a simple menu item does not suffice anymore. diff --git a/contrib/build-osx/README.md b/contrib/build-osx/README.md new file mode 100644 index 000000000..c1e96d90b --- /dev/null +++ b/contrib/build-osx/README.md @@ -0,0 +1,36 @@ +Building Mac OS binaries +======================== + +This guide explains how to build Electrum binaries for macOS systems. + +The build process consists of two steps: + +## 1. Building the binary + +This needs to be done on a system running macOS or OS X. We use El Capitan (10.11.6) as building it on High Sierra +makes the binaries incompatible with older versions. + +Before starting, make sure that the Xcode command line tools are installed (e.g. you have `git`). + + + cd electrum + ./contrib/build-osx/make_osx + +This creates a folder named Electrum.app. + +## 2. Building the image +The usual way to distribute macOS applications is to use image files containing the +application. Although these images can be created on a Mac with the built-in `hdiutil`, +they are not deterministic. + +Instead, we use the toolchain that Bitcoin uses: genisoimage and libdmg-hfsplus. +These tools do not work on macOS, so you need a separate Linux machine (or VM). + +Copy the Electrum.app directory over and install the dependencies, e.g.: + + apt install libcap-dev cmake make gcc faketime + +Then you can just invoke `package.sh` with the path to the app: + + cd electrum + ./contrib/build-osx/package.sh ~/Electrum.app/ \ No newline at end of file diff --git a/contrib/build-osx/base.sh b/contrib/build-osx/base.sh new file mode 100644 index 000000000..c5a5c0d69 --- /dev/null +++ b/contrib/build-osx/base.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +RED='\033[0;31m' +BLUE='\033[0,34m' +NC='\033[0m' # No Color +function info { + printf "\r💬 ${BLUE}INFO:${NC} ${1}\n" +} +function fail { + printf "\r🗯 ${RED}ERROR:${NC} ${1}\n" + exit 1 +} diff --git a/contrib/build-osx/cdrkit-deterministic.patch b/contrib/build-osx/cdrkit-deterministic.patch new file mode 100644 index 000000000..d01e5b75e --- /dev/null +++ b/contrib/build-osx/cdrkit-deterministic.patch @@ -0,0 +1,86 @@ +--- cdrkit-1.1.11.old/genisoimage/tree.c 2008-10-21 19:57:47.000000000 -0400 ++++ cdrkit-1.1.11/genisoimage/tree.c 2013-12-06 00:23:18.489622668 -0500 +@@ -1139,8 +1139,9 @@ + scan_directory_tree(struct directory *this_dir, char *path, + struct directory_entry *de) + { +- DIR *current_dir; ++ int current_file; + char whole_path[PATH_MAX]; ++ struct dirent **d_list; + struct dirent *d_entry; + struct directory *parent; + int dflag; +@@ -1164,7 +1165,8 @@ + this_dir->dir_flags |= DIR_WAS_SCANNED; + + errno = 0; /* Paranoia */ +- current_dir = opendir(path); ++ //current_dir = opendir(path); ++ current_file = scandir(path, &d_list, NULL, alphasort); + d_entry = NULL; + + /* +@@ -1173,12 +1175,12 @@ + */ + old_path = path; + +- if (current_dir) { ++ if (current_file >= 0) { + errno = 0; +- d_entry = readdir(current_dir); ++ d_entry = d_list[0]; + } + +- if (!current_dir || !d_entry) { ++ if (current_file < 0 || !d_entry) { + int ret = 1; + + #ifdef USE_LIBSCHILY +@@ -1191,8 +1193,8 @@ + de->isorec.flags[0] &= ~ISO_DIRECTORY; + ret = 0; + } +- if (current_dir) +- closedir(current_dir); ++ if(d_list) ++ free(d_list); + return (ret); + } + #ifdef ABORT_DEEP_ISO_ONLY +@@ -1208,7 +1210,7 @@ + errmsgno(EX_BAD, "use Rock Ridge extensions via -R or -r,\n"); + errmsgno(EX_BAD, "or allow deep ISO9660 directory nesting via -D.\n"); + } +- closedir(current_dir); ++ free(d_list); + return (1); + } + #endif +@@ -1250,13 +1252,13 @@ + * The first time through, skip this, since we already asked + * for the first entry when we opened the directory. + */ +- if (dflag) +- d_entry = readdir(current_dir); ++ if (dflag && current_file >= 0) ++ d_entry = d_list[current_file]; + dflag++; + +- if (!d_entry) ++ if (current_file < 0) + break; +- ++ current_file--; + /* OK, got a valid entry */ + + /* If we do not want all files, then pitch the backups. */ +@@ -1348,7 +1350,7 @@ + insert_file_entry(this_dir, whole_path, d_entry->d_name); + #endif /* APPLE_HYB */ + } +- closedir(current_dir); ++ free(d_list); + + #ifdef APPLE_HYB + /* \ No newline at end of file diff --git a/contrib/build-osx/make_osx b/contrib/build-osx/make_osx new file mode 100755 index 000000000..8697838e7 --- /dev/null +++ b/contrib/build-osx/make_osx @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +# Parameterize +PYTHON_VERSION=3.6.4 +BUILDDIR=/tmp/electrum-build +PACKAGE=electrum-btx +GIT_REPO=https://github.com/LIMXTEC/electrum-btx +LIBSECP_VERSION=452d8e4d2a2f9f1b5be6b02e18f1ba102e5ca0b4 + +. $(dirname "$0")/base.sh + +src_dir=$(dirname "$0") +cd $src_dir/../.. + +export PYTHONHASHSEED=22 +VERSION=`git describe --tags --dirty` + +which brew > /dev/null 2>&1 || fail "Please install brew from https://brew.sh/ to continue" + +info "Installing Python $PYTHON_VERSION" +export PATH="~/.pyenv/bin:~/.pyenv/shims:~/Library/Python/3.6/bin:$PATH" +if [ -d "~/.pyenv" ]; then + pyenv update +else + curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash > /dev/null 2>&1 +fi +PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install -s $PYTHON_VERSION && \ +pyenv global $PYTHON_VERSION || \ +fail "Unable to use Python $PYTHON_VERSION" + + +info "Installing pyinstaller" +python3 -m pip install git+https://github.com/ecdsa/pyinstaller@fix_2952 -I --user || fail "Could not install pyinstaller" + +info "Using these versions for building $PACKAGE:" +sw_vers +python3 --version +echo -n "Pyinstaller " +pyinstaller --version + +rm -rf ./dist + +git submodule init +git submodule update + +rm -rf $BUILDDIR > /dev/null 2>&1 +mkdir $BUILDDIR + +cp -R ./contrib/deterministic-build/electrum-locale/locale/ ./electrum/locale/ +cp ./contrib/deterministic-build/electrum-icons/icons_rc.py ./electrum/gui/qt/ + + +info "Downloading libusb..." +curl https://homebrew.bintray.com/bottles/libusb-1.0.22.el_capitan.bottle.tar.gz | \ +tar xz --directory $BUILDDIR +cp $BUILDDIR/libusb/1.0.22/lib/libusb-1.0.dylib contrib/build-osx + +info "Building libsecp256k1" +brew install autoconf automake libtool +git clone https://github.com/bitcoin-core/secp256k1 $BUILDDIR/secp256k1 +pushd $BUILDDIR/secp256k1 +git reset --hard $LIBSECP_VERSION +git clean -f -x -q +./autogen.sh +./configure --enable-module-recovery --enable-experimental --enable-module-ecdh --disable-jni +make +popd +cp $BUILDDIR/secp256k1/.libs/libsecp256k1.0.dylib contrib/build-osx + + +info "Installing requirements..." +python3 -m pip install -Ir ./contrib/deterministic-build/requirements.txt --user && \ +python3 -m pip install -Ir ./contrib/deterministic-build/requirements-binaries.txt --user || \ +fail "Could not install requirements" + +info "Installing hardware wallet requirements..." +python3 -m pip install -Ir ./contrib/deterministic-build/requirements-hw.txt --user || \ +fail "Could not install hardware wallet requirements" + +info "Building $PACKAGE..." +python3 setup.py install --user > /dev/null || fail "Could not build $PACKAGE" + +info "Faking timestamps..." +for d in ~/Library/Python/ ~/.pyenv .; do + pushd $d + find . -exec touch -t '200101220000' {} + + popd +done + +info "Building binary" +pyinstaller --noconfirm --ascii --clean --name $VERSION contrib/build-osx/osx.spec || fail "Could not build binary" + +info "Creating .DMG" +hdiutil create -fs HFS+ -volname $PACKAGE -srcfolder dist/$PACKAGE.app dist/electrum-$VERSION.dmg || fail "Could not create .DMG" diff --git a/contrib/build-osx/osx.spec b/contrib/build-osx/osx.spec new file mode 100644 index 000000000..d27967643 --- /dev/null +++ b/contrib/build-osx/osx.spec @@ -0,0 +1,104 @@ +# -*- mode: python -*- + +from PyInstaller.utils.hooks import collect_data_files, collect_submodules, collect_dynamic_libs + +import sys +import os + +PACKAGE='electrum-btx' +PYPKG='electrum-btx' +MAIN_SCRIPT='run_electrum' +ICONS_FILE='icons/electrumBTX.icns' + +for i, x in enumerate(sys.argv): + if x == '--name': + VERSION = sys.argv[i+1] + break +else: + raise Exception('no version') + +electrum = os.path.abspath(".") + "/" +block_cipher = None + +# see https://github.com/pyinstaller/pyinstaller/issues/2005 +hiddenimports = [] +hiddenimports += collect_submodules('trezorlib') +hiddenimports += collect_submodules('safetlib') +hiddenimports += collect_submodules('btchip') +hiddenimports += collect_submodules('keepkeylib') +hiddenimports += collect_submodules('websocket') +hiddenimports += collect_submodules('ckcc') + +datas = [ + (electrum + PYPKG + '/*.json', PYPKG), + (electrum + PYPKG + '/wordlist/english.txt', PYPKG + '/wordlist'), + (electrum + PYPKG + '/locale', PYPKG + '/locale'), + (electrum + PYPKG + '/plugins', PYPKG + '/plugins'), +] +datas += collect_data_files('trezorlib') +datas += collect_data_files('safetlib') +datas += collect_data_files('btchip') +datas += collect_data_files('keepkeylib') +datas += collect_data_files('ckcc') + +# Add libusb so Trezor and Safe-T mini will work +binaries = [(electrum + "contrib/build-osx/libusb-1.0.dylib", ".")] +binaries += [(electrum + "contrib/build-osx/libsecp256k1.0.dylib", ".")] + +# Workaround for "Retro Look": +binaries += [b for b in collect_dynamic_libs('PyQt5') if 'macstyle' in b[0]] + +# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports +a = Analysis([electrum+ MAIN_SCRIPT, + electrum+'electrum/gui/qt/main_window.py', + electrum+'electrum/gui/text.py', + electrum+'electrum/util.py', + electrum+'electrum/wallet.py', + electrum+'electrum/simple_config.py', + electrum+'electrum/bitcoin.py', + electrum+'electrum/dnssec.py', + electrum+'electrum/commands.py', + electrum+'electrum/plugins/cosigner_pool/qt.py', + electrum+'electrum/plugins/email_requests/qt.py', + electrum+'electrum/plugins/trezor/client.py', + electrum+'electrum/plugins/trezor/qt.py', + electrum+'electrum/plugins/safe_t/client.py', + electrum+'electrum/plugins/safe_t/qt.py', + electrum+'electrum/plugins/keepkey/qt.py', + electrum+'electrum/plugins/ledger/qt.py', + electrum+'electrum/plugins/coldcard/qt.py', + ], + binaries=binaries, + datas=datas, + hiddenimports=hiddenimports, + hookspath=[]) + +# http://stackoverflow.com/questions/19055089/pyinstaller-onefile-warning-pyconfig-h-when-importing-scipy-or-scipy-signal +for d in a.datas: + if 'pyconfig' in d[0]: + a.datas.remove(d) + break + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.datas, + name=PACKAGE, + debug=False, + strip=False, + upx=True, + icon=electrum+ICONS_FILE, + console=False) + +app = BUNDLE(exe, + version = VERSION, + name=PACKAGE + '.app', + icon=electrum+ICONS_FILE, + bundle_identifier=None, + info_plist={ + 'NSHighResolutionCapable': 'True', + 'NSSupportsAutomaticGraphicsSwitching': 'True' + } +) diff --git a/contrib/build-osx/package.sh b/contrib/build-osx/package.sh new file mode 100755 index 000000000..dcbc29388 --- /dev/null +++ b/contrib/build-osx/package.sh @@ -0,0 +1,88 @@ +#!/usr/bin/env bash + +cdrkit_version=1.1.11 +cdrkit_download_path=http://distro.ibiblio.org/fatdog/source/600/c +cdrkit_file_name=cdrkit-${cdrkit_version}.tar.bz2 +cdrkit_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564 +cdrkit_patches=cdrkit-deterministic.patch +genisoimage=genisoimage-$cdrkit_version + +libdmg_url=https://github.com/theuni/libdmg-hfsplus + + +export LD_PRELOAD=$(locate libfaketime.so.1) +export FAKETIME="2000-01-22 00:00:00" +export PATH=$PATH:~/bin + +. $(dirname "$0")/base.sh + +if [ -z "$1" ]; then + echo "Usage: $0 Electrum.app" + exit -127 +fi + +mkdir -p ~/bin + +if ! which ${genisoimage} > /dev/null 2>&1; then + mkdir -p /tmp/electrum-macos + cd /tmp/electrum-macos + info "Downloading cdrkit $cdrkit_version" + wget -nc ${cdrkit_download_path}/${cdrkit_file_name} + tar xvf ${cdrkit_file_name} + + info "Patching genisoimage" + cd cdrkit-${cdrkit_version} + patch -p1 < ../cdrkit-deterministic.patch + + info "Building genisoimage" + cmake . -Wno-dev + make genisoimage + cp genisoimage/genisoimage ~/bin/${genisoimage} +fi + +if ! which dmg > /dev/null 2>&1; then + mkdir -p /tmp/electrum-macos + cd /tmp/electrum-macos + info "Downloading libdmg" + LD_PRELOAD= git clone ${libdmg_url} + cd libdmg-hfsplus + info "Building libdmg" + cmake . + make + cp dmg/dmg ~/bin +fi + +${genisoimage} -version || fail "Unable to install genisoimage" +dmg -|| fail "Unable to install libdmg" + +plist=$1/Contents/Info.plist +test -f "$plist" || fail "Info.plist not found" +VERSION=$(grep -1 ShortVersionString $plist |tail -1|gawk 'match($0, /(.*)<\/string>/, a) {print a[1]}') +echo $VERSION + +rm -rf /tmp/electrum-macos/image > /dev/null 2>&1 +mkdir /tmp/electrum-macos/image/ +cp -r $1 /tmp/electrum-macos/image/ + +build_dir=$(dirname "$1") +test -n "$build_dir" -a -d "$build_dir" || exit +cd $build_dir + +${genisoimage} \ + -no-cache-inodes \ + -D \ + -l \ + -probe \ + -V "Electrum" \ + -no-pad \ + -r \ + -dir-mode 0755 \ + -apple \ + -o Electrum_uncompressed.dmg \ + /tmp/electrum-macos/image || fail "Unable to create uncompressed dmg" + +dmg dmg Electrum_uncompressed.dmg electrum-$VERSION.dmg || fail "Unable to create compressed dmg" +rm Electrum_uncompressed.dmg + +echo "Done." +md5sum electrum-$VERSION.dmg diff --git a/contrib/build-wine/README.md b/contrib/build-wine/README.md new file mode 100644 index 000000000..c6348c975 --- /dev/null +++ b/contrib/build-wine/README.md @@ -0,0 +1,37 @@ +Windows Binary Builds +===================== + +These scripts can be used for cross-compilation of Windows Electrum executables from Linux/Wine. + +For reproducible builds, see the `docker` folder. + + +Usage: + + +1. Install the following dependencies: + + - dirmngr + - gpg + - 7Zip + - Wine (>= v2) + - (and, for building libsecp256k1) + - mingw-w64 + - autotools-dev + - autoconf + - libtool + + +For example: + +``` +$ sudo apt-get install wine-development dirmngr gnupg2 p7zip-full +$ sudo apt-get install mingw-w64 autotools-dev autoconf libtool +``` + +The binaries are also built by Travis CI, so if you are having problems, +[that script](https://github.com/spesmilo/electrum/blob/master/.travis.yml) might help. + +2. Make sure `/opt` is writable by the current user. +3. Run `build.sh`. +4. The generated binaries are in `./dist`. diff --git a/contrib/build-wine/build-electrum-git.sh b/contrib/build-wine/build-electrum-git.sh new file mode 100755 index 000000000..76797050d --- /dev/null +++ b/contrib/build-wine/build-electrum-git.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +NAME_ROOT=electrum +PYTHON_VERSION=3.6.6 + +# These settings probably don't need any change +export WINEPREFIX=/opt/wine64 +export PYTHONDONTWRITEBYTECODE=1 +export PYTHONHASHSEED=22 + +PYHOME=c:/python$PYTHON_VERSION +PYTHON="wine $PYHOME/python.exe -OO -B" + + +# Let's begin! +cd `dirname $0` +set -e + +pushd ../../electrum +if ! which msgfmt > /dev/null 2>&1; then + echo "Please install gettext" + exit 1 +fi +for i in ./locale/*; do + dir=$i/LC_MESSAGES + mkdir -p $dir + msgfmt --output-file=$dir/electrum.mo $i/electrum.po || true +done +popd + +cp -f ../../LICENSE . + +# Install frozen dependencies +$PYTHON -m pip install -r ../deterministic-build/requirements.txt +$PYTHON -m pip install -r ../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 +$PYTHON setup.py install +popd + +#rm -rf dist/ + +# build standalone and portable versions +wine "C:/python$PYTHON_VERSION/scripts/pyinstaller.exe" --noconfirm --ascii --clean --name electrum-btx-3.2.3 -w deterministic.spec + +# build 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 + +echo "Done." +md5sum dist/electrum*exe diff --git a/contrib/build-wine/build-secp256k1.sh b/contrib/build-wine/build-secp256k1.sh new file mode 100755 index 000000000..30d4a598b --- /dev/null +++ b/contrib/build-wine/build-secp256k1.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# heavily based on https://github.com/ofek/coincurve/blob/417e726f553460f88d7edfa5dc67bfda397c4e4a/.travis/build_windows_wheels.sh + +set -e + +build_dll() { + #sudo apt-get install -y mingw-w64 + export SOURCE_DATE_EPOCH=1530212462 + ./autogen.sh + echo "LDFLAGS = -no-undefined" >> Makefile.am + LDFLAGS="-Wl,--no-insert-timestamp" ./configure \ + --host=$1 \ + --enable-module-recovery \ + --enable-experimental \ + --enable-module-ecdh \ + --disable-jni + make + ${1}-strip .libs/libsecp256k1-0.dll +} + + +cd /tmp/electrum-build + +if [ ! -d secp256k1 ]; then + git clone https://github.com/bitcoin-core/secp256k1.git + cd secp256k1; +else + cd secp256k1 + git pull +fi + +git reset --hard 452d8e4d2a2f9f1b5be6b02e18f1ba102e5ca0b4 +git clean -f -x -q + +build_dll i686-w64-mingw32 # 64-bit would be: x86_64-w64-mingw32 +mv .libs/libsecp256k1-0.dll libsecp256k1.dll + +find -exec touch -d '2000-11-11T11:11:11+00:00' {} + + +echo "building libsecp256k1 finished" diff --git a/contrib/build-wine/build.sh b/contrib/build-wine/build.sh new file mode 100755 index 000000000..01ca071fe --- /dev/null +++ b/contrib/build-wine/build.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Lucky number +export PYTHONHASHSEED=22 + +here=$(dirname "$0") +test -n "$here" -a -d "$here" || exit + +echo "Clearing $here/build and $here/dist..." +rm "$here"/build/* -rf +rm "$here"/dist/* -rf + +mkdir -p /tmp/electrum-build +mkdir -p /tmp/electrum-build/pip-cache +export PIP_CACHE_DIR="/tmp/electrum-build/pip-cache" + +$here/build-secp256k1.sh || exit 1 + +$here/prepare-wine.sh || exit 1 + +echo "Resetting modification time in C:\Python..." +# (Because of some bugs in pyinstaller) +pushd /opt/wine64/drive_c/python* +find -exec touch -d '2000-11-11T11:11:11+00:00' {} + +popd +ls -l /opt/wine64/drive_c/python* + +$here/build-electrum-git.sh && \ +echo "Done." diff --git a/contrib/build-wine/deterministic.spec b/contrib/build-wine/deterministic.spec new file mode 100644 index 000000000..875a091ae --- /dev/null +++ b/contrib/build-wine/deterministic.spec @@ -0,0 +1,140 @@ +# -*- mode: python -*- + +from PyInstaller.utils.hooks import collect_data_files, collect_submodules, collect_dynamic_libs + +import sys +for i, x in enumerate(sys.argv): + if x == '--name': + cmdline_name = sys.argv[i+1] + break +else: + raise Exception('no name') + +PYTHON_VERSION = '3.6.6' +PYHOME = 'c:/python' + PYTHON_VERSION + +home = 'C:\\electrum\\' + +# see https://github.com/pyinstaller/pyinstaller/issues/2005 +hiddenimports = [] +hiddenimports += collect_submodules('trezorlib') +hiddenimports += collect_submodules('safetlib') +hiddenimports += collect_submodules('btchip') +hiddenimports += collect_submodules('keepkeylib') +hiddenimports += collect_submodules('websocket') +hiddenimports += collect_submodules('ckcc') + +# Add libusb binary +binaries = [(PYHOME+"/libusb-1.0.dll", ".")] + +# Workaround for "Retro Look": +binaries += [b for b in collect_dynamic_libs('PyQt5') if 'qwindowsvista' in b[0]] + +binaries += [('C:/tmp/libsecp256k1.dll', '.')] + +datas = [ + (home+'electrum/*.json', 'electrum'), + (home+'electrum/wordlist/english.txt', 'electrum/wordlist'), + (home+'electrum/locale', 'electrum/locale'), + (home+'electrum/plugins', 'electrum/plugins'), + ('C:\\Program Files (x86)\\ZBar\\bin\\', '.'), +] +datas += collect_data_files('trezorlib') +datas += collect_data_files('safetlib') +datas += collect_data_files('btchip') +datas += collect_data_files('keepkeylib') +datas += collect_data_files('ckcc') + +# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports +a = Analysis([home+'run_electrum', + home+'electrum/gui/qt/main_window.py', + home+'electrum/gui/text.py', + home+'electrum/util.py', + home+'electrum/wallet.py', + home+'electrum/simple_config.py', + home+'electrum/bitcoin.py', + home+'electrum/dnssec.py', + home+'electrum/commands.py', + home+'electrum/plugins/cosigner_pool/qt.py', + home+'electrum/plugins/email_requests/qt.py', + home+'electrum/plugins/trezor/client.py', + home+'electrum/plugins/trezor/qt.py', + home+'electrum/plugins/safe_t/client.py', + home+'electrum/plugins/safe_t/qt.py', + home+'electrum/plugins/keepkey/qt.py', + home+'electrum/plugins/ledger/qt.py', + home+'electrum/plugins/coldcard/qt.py', + #home+'packages/requests/utils.py' + ], + binaries=binaries, + datas=datas, + #pathex=[home+'lib', home+'gui', home+'plugins'], + hiddenimports=hiddenimports, + hookspath=[]) + + +# http://stackoverflow.com/questions/19055089/pyinstaller-onefile-warning-pyconfig-h-when-importing-scipy-or-scipy-signal +for d in a.datas: + if 'pyconfig' in d[0]: + a.datas.remove(d) + break + +# hotfix for #3171 (pre-Win10 binaries) +a.binaries = [x for x in a.binaries if not x[1].lower().startswith(r'c:\windows')] + +pyz = PYZ(a.pure) + + +##### +# "standalone" exe with all dependencies packed into it + +exe_standalone = EXE( + pyz, + a.scripts, + a.binaries, + a.datas, + name=os.path.join('build\\pyi.win32\\electrum', cmdline_name + ".exe"), + debug=False, + strip=None, + upx=False, + icon=home+'icons/electrum.ico', + console=False) + # console=True makes an annoying black box pop up, but it does make Electrum output command line commands, with this turned off no output will be given but commands can still be used + +exe_portable = EXE( + pyz, + a.scripts, + a.binaries, + a.datas + [ ('is_portable', 'README.md', 'DATA' ) ], + name=os.path.join('build\\pyi.win32\\electrum', cmdline_name + "-portable.exe"), + debug=False, + strip=None, + upx=False, + icon=home+'icons/electrum.ico', + console=False) + +##### +# exe and separate files that NSIS uses to build installer "setup" exe + +exe_dependent = EXE( + pyz, + a.scripts, + exclude_binaries=True, + name=os.path.join('build\\pyi.win32\\electrum', cmdline_name), + debug=False, + strip=None, + upx=False, + icon=home+'icons/electrum.ico', + console=False) + +coll = COLLECT( + exe_dependent, + a.binaries, + a.zipfiles, + a.datas, + strip=None, + upx=True, + debug=False, + icon=home+'icons/electrum.ico', + console=False, + name=os.path.join('dist', 'electrum')) diff --git a/contrib/build-wine/docker/Dockerfile b/contrib/build-wine/docker/Dockerfile new file mode 100644 index 000000000..f46e98128 --- /dev/null +++ b/contrib/build-wine/docker/Dockerfile @@ -0,0 +1,33 @@ +FROM ubuntu:18.04@sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d + +ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 + +RUN dpkg --add-architecture i386 && \ + apt-get update -q && \ + apt-get install -qy \ + wget=1.19.4-1ubuntu2.1 \ + gnupg2=2.2.4-1ubuntu1.1 \ + dirmngr=2.2.4-1ubuntu1.1 \ + software-properties-common=0.96.24.32.4 \ + && \ + wget -nc https://dl.winehq.org/wine-builds/Release.key && \ + apt-key add Release.key && \ + apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/ && \ + apt-get update -q && \ + apt-get install -qy \ + wine-stable-amd64:amd64=3.0.1~bionic \ + wine-stable-i386:i386=3.0.1~bionic \ + wine-stable:amd64=3.0.1~bionic \ + winehq-stable:amd64=3.0.1~bionic \ + git=1:2.17.1-1ubuntu0.1 \ + p7zip-full=16.02+dfsg-6 \ + make=4.1-9.1ubuntu1 \ + mingw-w64=5.0.3-1 \ + autotools-dev=20180224.1 \ + autoconf=2.69-11 \ + libtool=2.4.6-2 \ + gettext=0.19.8.1-6 \ + && \ + rm -rf /var/lib/apt/lists/* && \ + apt-get autoremove -y && \ + apt-get clean diff --git a/contrib/build-wine/docker/README.md b/contrib/build-wine/docker/README.md new file mode 100644 index 000000000..0df96ea5a --- /dev/null +++ b/contrib/build-wine/docker/README.md @@ -0,0 +1,90 @@ +Deterministic Windows binaries with Docker +========================================== + +Produced binaries are deterministic, so you should be able to generate +binaries that match the official releases. + +This assumes an Ubuntu host, but it should not be too hard to adapt to another +similar system. The docker commands should be executed in the project's root +folder. + +1. Install Docker + + ``` + $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + $ sudo apt-get update + $ sudo apt-get install -y docker-ce + ``` + +2. Build image + + ``` + $ sudo docker build --no-cache -t electrum-wine-builder-img contrib/build-wine/docker + ``` + + Note: see [this](https://stackoverflow.com/a/40516974/7499128) if having dns problems + +3. Build Windows binaries + + ``` + $ git checkout $REV + $ sudo docker run \ + --name electrum-wine-builder-cont \ + -v $PWD:/opt/wine64/drive_c/electrum \ + --rm \ + --workdir /opt/wine64/drive_c/electrum/contrib/build-wine \ + electrum-wine-builder-img \ + ./build.sh + ``` +4. The generated binaries are in `./contrib/build-wine/dist`. + + + +Note: the `setup` binary (NSIS installer) is not deterministic yet. + + +Code Signing +============ + +Electrum Windows builds are signed with a Microsoft Authenticode™ code signing +certificate in addition to the GPG-based signatures. + +The advantage of using Authenticode is that Electrum users won't receive a +Windows SmartScreen warning when starting it. + +The release signing procedure involves a signer (the holder of the +certificate/key) and one or multiple trusted verifiers: + + +| Signer | Verifier | +|-----------------------------------------------------------|-----------------------------------| +| Build .exe files using `build.sh` | | +| Sign .exe with `./sign.sh` | | +| Upload signed files to download server | | +| | Build .exe files using `build.sh` | +| | Compare files using `unsign.sh` | +| | Sign .exe file using `gpg -b` | + +| Signer and verifiers: | +|-----------------------------------------------------------------------------------------------| +| Upload signatures to 'electrum-signatures' repo, as `$version/$filename.$builder.asc` | + + + +Verify Integrity of signed binary +================================= + +Every user can verify that the official binary was created from the source code in this +repository. To do so, the Authenticode signature needs to be stripped since the signature +is not reproducible. + +This procedure removes the differences between the signed and unsigned binary: + +1. Remove the signature from the signed binary using osslsigncode or signtool. +2. Set the COFF image checksum for the signed binary to 0x0. This is necessary + because pyinstaller doesn't generate a checksum. +3. Append null bytes to the _unsigned_ binary until the byte count is a multiple + of 8. + +The script `unsign.sh` performs these steps. diff --git a/contrib/build-wine/electrum.nsi b/contrib/build-wine/electrum.nsi new file mode 100644 index 000000000..baf210fec --- /dev/null +++ b/contrib/build-wine/electrum.nsi @@ -0,0 +1,170 @@ +;-------------------------------- +;Include Modern UI + !include "TextFunc.nsh" ;Needed for the $GetSize function. I know, doesn't sound logical, it isn't. + !include "MUI2.nsh" + +;-------------------------------- +;Variables + + !define PRODUCT_NAME "electrum-btx" + !define PRODUCT_VER "3.2.3" + !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}-${PRODUCT_VER}" + OutFile "dist/${PRODUCT_NAME}-${PRODUCT_VER}-setup.exe" + + ;Default installation folder + InstallDir "$PROGRAMFILES\${PRODUCT_NAME}-${PRODUCT_VER}" + + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\${PRODUCT_NAME}-${PRODUCT_VER}" "" + + ;Request application privileges for Windows Vista + RequestExecutionLevel admin + + ;Specifies whether or not the installer will perform a CRC on itself before allowing an install + CRCCheck on + + ;Sets whether or not the details of the install are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. + ShowInstDetails show + + ;Sets whether or not the details of the uninstall are shown. Can be 'hide' (the default) to hide the details by default, allowing the user to view them, or 'show' to show them by default, or 'nevershow', to prevent the user from ever seeing them. + ShowUninstDetails show + + ;Sets the colors to use for the install info screen (the default is 00FF00 000000. Use the form RRGGBB (in hexadecimal, as in HTML, only minus the leading '#', since # can be used for comments). Note that if "/windows" is specified as the only parameter, the default windows colors will be used. + InstallColors /windows + + ;This command sets the compression algorithm used to compress files/data in the installer. (http://nsis.sourceforge.net/Reference/SetCompressor) + SetCompressor /SOLID lzma + + ;Sets the dictionary size in megabytes (MB) used by the LZMA compressor (default is 8 MB). + SetCompressorDictSize 64 + + ;Sets the text that is shown (by default it is 'Nullsoft Install System vX.XX') in the bottom of the install window. Setting this to an empty string ("") uses the default; to set the string to blank, use " " (a space). + BrandingText "${PRODUCT_NAME} Installer v${PRODUCT_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}-${PRODUCT_VER}" + + ;Adds the Product Version on top of the Version Tab in the Properties of the file. + VIProductVersion 1.0.0.0 + + ;VIAddVersionKey - Adds a field in the Version Tab of the File Properties. This can either be a field provided by the system or a user defined field. + VIAddVersionKey ProductName "${PRODUCT_NAME} Installer" + VIAddVersionKey Comments "The installer for ${PRODUCT_NAME}" + VIAddVersionKey CompanyName "${PRODUCT_PUBLISHER}" + VIAddVersionKey LegalCopyright "2017-2018 ${PRODUCT_PUBLISHER}" + VIAddVersionKey FileDescription "${PRODUCT_NAME} Installer" + 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}-${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 "${HOME}\icons\electrum.ico" + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}" + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +;Check if we have Administrator rights +Function .onInit + UserInfo::GetAccountType + pop $0 + ${If} $0 != "admin" ;Require admin rights on NT4+ + MessageBox mb_iconstop "Administrator rights required!" + SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED + Quit + ${EndIf} +FunctionEnd + +Section + SetOutPath $INSTDIR + + ;Files to pack into the installer + File "dist\${PRODUCT_NAME}-${PRODUCT_VER}.exe" + File "${HOME}\icons\electrum.ico" + + ;Store installation folder + WriteRegStr HKCU "Software\${PRODUCT_NAME}-${PRODUCT_VER}" "" $INSTDIR + + ;Create uninstaller + DetailPrint "Creating uninstaller..." + WriteUninstaller "$INSTDIR\Uninstall.exe" + + ;Create desktop shortcut + DetailPrint "Creating desktop shortcut..." + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}-${PRODUCT_VER}.exe" "" + + ;Create start-menu items + DetailPrint "Creating start-menu items..." + 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\${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_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" + + ;Fixes Windows broken size estimates + ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 + IntFmt $0 "0x%08X" $0 + WriteRegDWORD HKCU "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0" +SectionEnd + +;-------------------------------- +;Descriptions + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + RMDir /r "$INSTDIR\*.*" + + RMDir "$INSTDIR" + + Delete "$DESKTOP\${PRODUCT_NAME}-${PRODUCT_VER}.lnk" + Delete "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}\*.*" + RMDir "$SMPROGRAMS\${PRODUCT_NAME}-${PRODUCT_VER}" + + 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/prepare-wine.sh b/contrib/build-wine/prepare-wine.sh new file mode 100755 index 000000000..ffa31e620 --- /dev/null +++ b/contrib/build-wine/prepare-wine.sh @@ -0,0 +1,150 @@ +#!/bin/bash + +# Please update these carefully, some versions won't work under Wine +NSIS_FILENAME=nsis-3.03-setup.exe +NSIS_URL=https://prdownloads.sourceforge.net/nsis/$NSIS_FILENAME?download +NSIS_SHA256=bd3b15ab62ec6b0c7a00f46022d441af03277be893326f6fea8e212dc2d77743 + +ZBAR_FILENAME=zbarw-20121031-setup.exe +ZBAR_URL=https://sourceforge.net/projects/zbarw/files/$ZBAR_FILENAME/download +ZBAR_SHA256=177e32b272fa76528a3af486b74e9cb356707be1c5ace4ed3fcee9723e2c2c02 + +LIBUSB_FILENAME=libusb-1.0.22.7z +LIBUSB_URL=https://prdownloads.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.22/$LIBUSB_FILENAME?download +LIBUSB_SHA256=671f1a420757b4480e7fadc8313d6fb3cbb75ca00934c417c1efa6e77fb8779b + +PYTHON_VERSION=3.6.6 + +## These settings probably don't need change +export WINEPREFIX=/opt/wine64 +#export WINEARCH='win32' + +PYHOME=c:/python$PYTHON_VERSION +PYTHON="wine $PYHOME/python.exe -OO -B" + + +# based on https://superuser.com/questions/497940/script-to-verify-a-signature-with-gpg +verify_signature() { + local file=$1 keyring=$2 out= + if out=$(gpg --no-default-keyring --keyring "$keyring" --status-fd 1 --verify "$file" 2>/dev/null) && + echo "$out" | grep -qs "^\[GNUPG:\] VALIDSIG "; then + return 0 + else + echo "$out" >&2 + exit 1 + fi +} + +verify_hash() { + local file=$1 expected_hash=$2 + actual_hash=$(sha256sum $file | awk '{print $1}') + if [ "$actual_hash" == "$expected_hash" ]; then + return 0 + else + echo "$file $actual_hash (unexpected hash)" >&2 + rm "$file" + exit 1 + fi +} + +download_if_not_exist() { + local file_name=$1 url=$2 + if [ ! -e $file_name ] ; then + wget -O $PWD/$file_name "$url" + fi +} + +# https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/templates/header.sh +retry() { + local result=0 + local count=1 + while [ $count -le 3 ]; do + [ $result -ne 0 ] && { + echo -e "\nThe command \"$@\" failed. Retrying, $count of 3.\n" >&2 + } + ! { "$@"; result=$?; } + [ $result -eq 0 ] && break + count=$(($count + 1)) + sleep 1 + done + + [ $count -gt 3 ] && { + echo -e "\nThe command \"$@\" failed 3 times.\n" >&2 + } + + return $result +} + +# Let's begin! +here=$(dirname $(readlink -e $0)) +set -e + +wine 'wineboot' + +# HACK to work around https://bugs.winehq.org/show_bug.cgi?id=42474#c22 +# needed for python 3.6+ +rm -f /opt/wine-stable/lib/wine/fakedlls/api-ms-win-core-path-l1-1-0.dll +rm -f /opt/wine-stable/lib/wine/api-ms-win-core-path-l1-1-0.dll.so + +cd /tmp/electrum-build + +# Install Python +# note: you might need "sudo apt-get install dirmngr" for the following +# keys from https://www.python.org/downloads/#pubkeys +KEYLIST_PYTHON_DEV="531F072D39700991925FED0C0EDDC5F26A45C816 26DEA9D4613391EF3E25C9FF0A5B101836580288 CBC547978A3964D14B9AB36A6AF053F07D9DC8D2 C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF 12EF3DC38047DA382D18A5B999CDEA9DA4135B38 8417157EDBE73D9EAC1E539B126EB563A74B06BF DBBF2EEBF925FAADCF1F3FFFD9866941EA5BBD71 2BA0DB82515BBB9EFFAC71C5C9BE28DEE6DF025C 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D C9B104B3DD3AA72D7CCB1066FB9921286F5E1540 97FC712E4C024BBEA48A61ED3A5CA953F73C700D 7ED10B6531D7C8E1BC296021FC624643487034E5" +KEYRING_PYTHON_DEV="keyring-electrum-build-python-dev.gpg" +for server in $(shuf -e ha.pool.sks-keyservers.net \ + hkp://p80.pool.sks-keyservers.net:80 \ + keyserver.ubuntu.com \ + hkp://keyserver.ubuntu.com:80) ; do + retry gpg --no-default-keyring --keyring $KEYRING_PYTHON_DEV --keyserver "$server" --recv-keys $KEYLIST_PYTHON_DEV \ + && break || : ; +done +for msifile in core dev exe lib pip tools; do + echo "Installing $msifile..." + wget -N -c "https://www.python.org/ftp/python/$PYTHON_VERSION/win32/${msifile}.msi" + wget -N -c "https://www.python.org/ftp/python/$PYTHON_VERSION/win32/${msifile}.msi.asc" + verify_signature "${msifile}.msi.asc" $KEYRING_PYTHON_DEV + wine msiexec /i "${msifile}.msi" /qb TARGETDIR=C:/python$PYTHON_VERSION +done + +# upgrade pip +$PYTHON -m pip install pip --upgrade + +# Install pywin32-ctypes (needed by pyinstaller) +$PYTHON -m pip install pywin32-ctypes==0.1.2 + +# install PySocks +$PYTHON -m pip install win_inet_pton==1.0.1 + +$PYTHON -m pip install -r $here/../deterministic-build/requirements-binaries.txt + +# Install PyInstaller +$PYTHON -m pip install https://github.com/ecdsa/pyinstaller/archive/fix_2952.zip + +# Install ZBar +download_if_not_exist $ZBAR_FILENAME "$ZBAR_URL" +verify_hash $ZBAR_FILENAME "$ZBAR_SHA256" +wine "$PWD/$ZBAR_FILENAME" /S + +# Upgrade setuptools (so Electrum can be installed later) +$PYTHON -m pip install setuptools --upgrade + +# Install NSIS installer +download_if_not_exist $NSIS_FILENAME "$NSIS_URL" +verify_hash $NSIS_FILENAME "$NSIS_SHA256" +wine "$PWD/$NSIS_FILENAME" /S + +download_if_not_exist $LIBUSB_FILENAME "$LIBUSB_URL" +verify_hash $LIBUSB_FILENAME "$LIBUSB_SHA256" +7z x -olibusb $LIBUSB_FILENAME -aoa + +cp libusb/MS32/dll/libusb-1.0.dll $WINEPREFIX/drive_c/python$PYTHON_VERSION/ + +# add dlls needed for pyinstaller: +cp $WINEPREFIX/drive_c/python$PYTHON_VERSION/Lib/site-packages/PyQt5/Qt/bin/* $WINEPREFIX/drive_c/python$PYTHON_VERSION/ + +mkdir -p $WINEPREFIX/drive_c/tmp +cp secp256k1/libsecp256k1.dll $WINEPREFIX/drive_c/tmp/ + +echo "Wine is configured." diff --git a/contrib/build-wine/sign.sh b/contrib/build-wine/sign.sh new file mode 100755 index 000000000..724b13dd1 --- /dev/null +++ b/contrib/build-wine/sign.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +here=$(dirname "$0") +test -n "$here" -a -d "$here" || exit +cd $here + +CERT_FILE=${CERT_FILE:-~/codesigning/cert.pem} +KEY_FILE=${KEY_FILE:-~/codesigning/key.pem} +if [[ ! -f "$CERT_FILE" ]]; then + ls $CERT_FILE + echo "Make sure that $CERT_FILE and $KEY_FILE exist" +fi + +if ! which osslsigncode > /dev/null 2>&1; then + echo "Please install osslsigncode" +fi + +rm -rf signed +mkdir -p signed >/dev/null 2>&1 + +cd dist +echo "Found $(ls *.exe | wc -w) files to sign." +for f in $(ls *.exe); do + echo "Signing $f..." + osslsigncode sign \ + -certs "$CERT_FILE" \ + -key "$KEY_FILE" \ + -n "Electrum" \ + -i "https://electrum.org/" \ + -t "http://timestamp.digicert.com/" \ + -in "$f" \ + -out "../signed/$f" + ls ../signed/$f -lah +done 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/contrib/build-wine/unsign.sh b/contrib/build-wine/unsign.sh new file mode 100755 index 000000000..fd1e5da81 --- /dev/null +++ b/contrib/build-wine/unsign.sh @@ -0,0 +1,56 @@ +#!/bin/bash +here=$(dirname "$0") +test -n "$here" -a -d "$here" || exit +cd $here + +if ! which osslsigncode > /dev/null 2>&1; then + echo "Please install osslsigncode" + exit +fi + +# exit if command fails +set -e + +mkdir -p signed >/dev/null 2>&1 +mkdir -p signed/stripped >/dev/null 2>&1 + +version=`python3 -c "import electrum; print(electrum.version.ELECTRUM_VERSION)"` + +echo "Found $(ls dist/*.exe | wc -w) files to verify." + +for mine in $(ls dist/*.exe); do + echo "---------------" + f=$(basename $mine) + echo "Downloading https://download.electrum.org/$version/$f" + wget -q https://download.electrum.org/$version/$f -O signed/$f + out="signed/stripped/$f" + size=$( wc -c < $mine ) + # Step 1: Remove PE signature from signed binary + osslsigncode remove-signature -in signed/$f -out $out > /dev/null 2>&1 + # Step 2: Remove checksum and padding from signed binary + python3 < 0: + if binary[-n:] != bytearray(n): + print('expecting failure for', str(pe_file)) + binary = binary[:size] +with open(pe_file, "wb") as f: + f.write(binary) +EOF + chmod +x $out + if cmp -s $out $mine; then + echo "Success: $f" + gpg --sign --armor --detach signed/$f + else + echo "Failure: $f" + fi +done diff --git a/contrib/deterministic-build/check_submodules.sh b/contrib/deterministic-build/check_submodules.sh new file mode 100755 index 000000000..d9c1b61d5 --- /dev/null +++ b/contrib/deterministic-build/check_submodules.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +here=$(dirname "$0") +test -n "$here" -a -d "$here" || exit + +cd ${here}/../.. + +git submodule init +git submodule update + +function get_git_mtime { + if [ $# -eq 1 ]; then + git log --pretty=%at -n1 -- $1 + else + git log --pretty=%ar -n1 -- $2 + fi +} + +fail=0 + +for f in icons/* "icons.qrc"; do + if (( $(get_git_mtime "$f") > $(get_git_mtime "contrib/deterministic-build/electrum-icons/") )); then + echo "Modification time of $f (" $(get_git_mtime --readable "$f") ") is newer than"\ + "last update of electrum-icons" + fail=1 + fi +done + +if [ $(date +%s -d "2 weeks ago") -gt $(get_git_mtime "contrib/deterministic-build/electrum-locale/") ]; then + echo "Last update from electrum-locale is older than 2 weeks."\ + "Please update it to incorporate the latest translations from crowdin." + fail=1 +fi + +exit ${fail} \ No newline at end of file diff --git a/contrib/deterministic-build/find_restricted_dependencies.py b/contrib/deterministic-build/find_restricted_dependencies.py new file mode 100755 index 000000000..1734d5750 --- /dev/null +++ b/contrib/deterministic-build/find_restricted_dependencies.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +import sys + +import requests + + +def check_restriction(p, r): + # See: https://www.python.org/dev/peps/pep-0496/ + # Hopefully we don't need to parse the whole microlanguage + if "extra" in r and "[" not in p: + return False + for marker in ["os_name", "platform_release", "sys_platform", "platform_system"]: + if marker in r: + return True + + +for p in sys.stdin.read().split(): + p = p.strip() + if not p: + continue + assert "==" in p, "This script expects a list of packages with pinned version, e.g. package==1.2.3, not {}".format(p) + p, v = p.rsplit("==", 1) + try: + data = requests.get("https://pypi.org/pypi/{}/{}/json".format(p, v)).json()["info"] + except ValueError: + raise Exception("Package could not be found: {}=={}".format(p, v)) + try: + for r in data["requires_dist"]: + if ";" not in r: + continue + d, restricted = r.split(";", 1) + if check_restriction(d, restricted): + print(d, sep=" ") + print("Installing {} from {} although it is only needed for {}".format(d, p, restricted), file=sys.stderr) + except TypeError: + # Has no dependencies at all + continue + diff --git a/contrib/deterministic-build/requirements-binaries.txt b/contrib/deterministic-build/requirements-binaries.txt new file mode 100644 index 000000000..02561924b --- /dev/null +++ b/contrib/deterministic-build/requirements-binaries.txt @@ -0,0 +1,56 @@ +pip==10.0.1 \ + --hash=sha256:717cdffb2833be8409433a93746744b59505f42146e8d37de6c62b430e25d6d7 \ + --hash=sha256:f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68 +pycryptodomex==3.6.4 \ + --hash=sha256:0461e88a7199f9e88f9f90c2c1e109e9e1f7bbb94dc6192e5df52829d31510c1 \ + --hash=sha256:08d0aba5a72e8af5da118ac4b6a5d75befceca7dd92a031b040ed5ff4417cec2 \ + --hash=sha256:0e22d47935d5fa95f556d5f5857576bc6750233964de06a840d58459010c3889 \ + --hash=sha256:10ef21d1728ec0b8afc4f8e1d8d9ea66f317154ea18731a4a05bd996cdc33fdf \ + --hash=sha256:1962b81eef81bf5c42d625816904a22a0bd23d15ca5d49891a54e3c0d0189d84 \ + --hash=sha256:24aae88efe3cbcb4a9cf840b2c352e7de1d6c2c5b3df37ff99b5c7e271e8f3a8 \ + --hash=sha256:43ad6d1d7ca545d53360bf412ee70fcb9ede876b4376fc6db06fc7328f70588c \ + --hash=sha256:4daabe7c0404e673b9029aa43761c779b9b4df2cbe11ccd94daded6a0acd8808 \ + --hash=sha256:4e15af025e02b04b0d0728e8248e4384d3dc7a3a89a020f5bd4d04ef2c5d9d4c \ + --hash=sha256:5b4d3c4a069a05972e0ed7111071bbcb4727ac652b5d7e8f786e8ea2fe63306b \ + --hash=sha256:67ad8b2ad15a99ae70e287454a112f67d2abaf160ee9c97f9daebf2296066447 \ + --hash=sha256:6d7e6fb69d9fd2c57e177f8a9cdf6489a725da77568e3d0a226c7dd18504396a \ + --hash=sha256:7907d7a5adde7cd07d19f129a4afa892b68b0b52a07eaf989e48e2677040b4bf \ + --hash=sha256:88210edafd564c8ff4a68716aaf0627e3bc43e9c192a33d6f5616743f72c2d9b \ + --hash=sha256:8a6b14a90bdcbcdc268acae87126c33bf4250d3842803a93a548d7c10135893a \ + --hash=sha256:94a10446ad61965516aecd610a2dd28d79ab1dfd8723903e1bd19ffa985c208e \ + --hash=sha256:99bda900a0bf6f9e6c69bdeb6114f7f6730b9d36a47bc1fe144263ce85bfc403 \ + --hash=sha256:9dae2e738622bd35ba82fe0b06f773be137a14e6b28defb2e36efc2d809cd28a \ + --hash=sha256:a04cd6021ff2756c38135a95f81b980485507bccbff4d2b8f62e537552270471 \ + --hash=sha256:a3b61625b60dd5e72556520a77464e2ac568c20b8ad12ea1f4443bf5051dc624 \ + --hash=sha256:a9a91fd9e7967a5bad88d542c9fce09323e15d16cb6fa9b8978390e46e68cbdf \ + --hash=sha256:afc44f1b595bd736ec3762dd9a2d0ef276a6ac560c85f643acfc4c0bf0c73384 \ + --hash=sha256:b5f3c8912b36e6abb843a51eecb414a1161f80c0ca0b65066c23aa449b5f98db \ + --hash=sha256:cc07c8b7686dd7093f33067a02b92f4fed860d75ad2bcc4e60624f70fdb94576 \ + --hash=sha256:da646eddbe026306fd1cb2c392a9aee4ebea13f2a9add9af303bb3151786a5d8 \ + --hash=sha256:df93eaccd5c09e6380fab8f15c06a89944415e4bb9af64a94f467ce4c782ff8e \ + --hash=sha256:e667303019770834354c75022ab0324d5ae5bf7cd7015939678033a58f87ee70 \ + --hash=sha256:f921219040ce994c9118b7218b7f7b4e9394e507c97cfc869ce5358437fc26cd +PyQt5==5.10.1 \ + --hash=sha256:1e652910bd1ffd23a3a48c510ecad23a57a853ed26b782cd54b16658e6f271ac \ + --hash=sha256:4db7113f464c733a99fcb66c4c093a47cf7204ad3f8b3bda502efcc0839ac14b \ + --hash=sha256:9c17ab3974c1fc7bbb04cc1c9dae780522c0ebc158613f3025fccae82227b5f7 \ + --hash=sha256:f6035baa009acf45e5f460cf88f73580ad5dc0e72330029acd99e477f20a5d61 +setuptools==40.0.0 \ + --hash=sha256:012adb8e25fbfd64c652e99e7bab58799a3aaf05d39ab38561f69190a909015f \ + --hash=sha256:d68abee4eed409fbe8c302ac4d8429a1ffef912cd047a903b5701c024048dd49 +SIP==4.19.8 \ + --hash=sha256:09f9a4e6c28afd0bafedb26ffba43375b97fe7207bd1a0d3513f79b7d168b331 \ + --hash=sha256:105edaaa1c8aa486662226360bd3999b4b89dd56de3e314d82b83ed0587d8783 \ + --hash=sha256:1bb10aac55bd5ab0e2ee74b3047aa2016cfa7932077c73f602a6f6541af8cd51 \ + --hash=sha256:265ddf69235dd70571b7d4da20849303b436192e875ce7226be7144ca702a45c \ + --hash=sha256:52074f7cb5488e8b75b52f34ec2230bc75d22986c7fe5cd3f2d266c23f3349a7 \ + --hash=sha256:5ff887a33839de8fc77d7f69aed0259b67a384dc91a1dc7588e328b0b980bde2 \ + --hash=sha256:74da4ddd20c5b35c19cda753ce1e8e1f71616931391caeac2de7a1715945c679 \ + --hash=sha256:7d69e9cf4f8253a3c0dfc5ba6bb9ac8087b8239851f22998e98cb35cfe497b68 \ + --hash=sha256:97bb93ee0ef01ba90f57be2b606e08002660affd5bc380776dd8b0fcaa9e093a \ + --hash=sha256:cf98150a99e43fda7ae22abe655b6f202e491d6291486548daa56cb15a2fcf85 \ + --hash=sha256:d9023422127b94d11c1a84bfa94933e959c484f2c79553c1ef23c69fe00d25f8 \ + --hash=sha256:e72955e12f4fccf27aa421be383453d697b8a44bde2cc26b08d876fd492d0174 +wheel==0.31.1 \ + --hash=sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c \ + --hash=sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f diff --git a/contrib/deterministic-build/requirements-hw.txt b/contrib/deterministic-build/requirements-hw.txt new file mode 100644 index 000000000..ea2d91190 --- /dev/null +++ b/contrib/deterministic-build/requirements-hw.txt @@ -0,0 +1,122 @@ +btchip-python==0.1.27 \ + --hash=sha256:e58a941abbb2d8901bf4858baa18012537c60812c7f895f9a039113ecce3032b +certifi==2018.4.16 \ + --hash=sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7 \ + --hash=sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0 +chardet==3.0.4 \ + --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \ + --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 +click==6.7 \ + --hash=sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d \ + --hash=sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b +Cython==0.28.4 \ + --hash=sha256:01487236575df8f17b46982071438dce4f7eaf8acc8fb99fca3510d343cd7a28 \ + --hash=sha256:0671d17c7a27634d6819246e535241b951141ed0e3f6f2a6d618fd32344dae3e \ + --hash=sha256:0e6190d6971c46729f712dd7307a9c0a8c027bfa5b4d8f2edef106b01759926c \ + --hash=sha256:202587c754901d0678bd6ff89c707f099987928239049a528470c06c6c922cf8 \ + --hash=sha256:345197ba9278cf6a914cb7421dc665a0531a219b0072abf6b0cebfdf68e75725 \ + --hash=sha256:3a296b8d6b02f0e01ab04bedea658f43eef5ad2f8e586a820226ead1a677d9b1 \ + --hash=sha256:484572a2b22823a967be106137a93f7d634db116b3f7accb37dbd760eda2fa9f \ + --hash=sha256:4c67c9c803e50ceff32cc5e4769c50fc8ae8df9c4e5cc592ce8310b5a1076d23 \ + --hash=sha256:539038087c321911745fc2e77049209b1231300d481cb4d682b2f95c724814b3 \ + --hash=sha256:58113e0683c3688594c112103d7e9f2d0092fd2d8297a220240bea22e184dfdd \ + --hash=sha256:65cb25ca4284804293a2404d1be3b5a98818be21a72791649bacbcfa4e431d41 \ + --hash=sha256:699e765da2580e34b08473fc0acef3a2d7bcb7f13eb29401cd25236bcf000080 \ + --hash=sha256:6b54c3470810cea49a8be90814d05c5325ceb9c5bf429fd86c36fc1b32dfc157 \ + --hash=sha256:71ac1629e4eae2ed329be8caf45efea10bfe1af3d8767e12e64b83e4ea5a3250 \ + --hash=sha256:722c179d3df8677f3daf45b1a2764678ed4f0aaddbaa7211a8a08ebfd907c0db \ + --hash=sha256:76ac2b08d3d956d77b574bb43cbf1d37bd58b9d50c04ba281303e695854ebc46 \ + --hash=sha256:7eff1157be9e26bf7494288c89979ca69d593a009e2c7420a739e2cf1e0635f5 \ + --hash=sha256:99546c8696d27d0efa639c77b2f8af6e61dc3a5073caae4f27ffd991ca926f42 \ + --hash=sha256:a0c263b31d335f29c11f4a9e98fbcd908d0731d4ea99bfd27c1c47caaeb4ca2e \ + --hash=sha256:a29c66292605bff962adc26530c030607aa699206b12dfb84f131b0454e15df4 \ + --hash=sha256:a4d3724c5a1ddd86d7d830d8e02c40151839b833791dd4b6fe9e144380fa7d37 \ + --hash=sha256:aed9f33b19d542eea56c38ef3862ca56147f7903648156cd57eabb0fe47c35d6 \ + --hash=sha256:b57e733dd8871d2cc7358c2e0fe33027453afffbcd0ea6a537f54877cad5131c \ + --hash=sha256:d5bf4db62236e82955c40bafbaa18d54b20b5ceefa06fb57c7facc443929f4bd \ + --hash=sha256:d9272dd71ab78e87fa34a0a59bbd6acc9a9c0005c834a6fc8457ff9619dc6795 \ + --hash=sha256:e9d5671bcbb90a41b0832fcb3872fcbaca3d68ff11ea09724dd6cbdf31d947fb \ + --hash=sha256:ee54646afb2b73b293c94cf079682d18d404ebd6c01122dc3980f111aec2d8ae \ + --hash=sha256:f16a87197939977824609005b73f9ebb291b9653a14e5f27afc1c5d6f981ba39 +ecdsa==0.13 \ + --hash=sha256:40d002cf360d0e035cf2cb985e1308d41aaa087cbfc135b2dc2d844296ea546c \ + --hash=sha256:64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa +hidapi==0.7.99.post21 \ + --hash=sha256:1ac170f4d601c340f2cd52fd06e85c5e77bad7ceac811a7bb54b529f7dc28c24 \ + --hash=sha256:8d3be666f464347022e2b47caf9132287885d9eacc7895314fc8fefcb4e42946 \ + --hash=sha256:b4b1f6aff0192e9be153fe07c1b7576cb7a1ff52e78e3f76d867be95301a8e87 \ + --hash=sha256:bf03f06f586ce7d8aeb697a94b7dba12dc9271aae92d7a8d4486360ff711a660 \ + --hash=sha256:c76de162937326fcd57aa399f94939ce726242323e65c15c67e183da1f6c26f7 \ + --hash=sha256:d4ad1e46aef98783a9e6274d523b8b1e766acfc3d72828cd44a337564d984cfa \ + --hash=sha256:d4b5787a04613503357606bb10e59c3e2c1114fa00ee328b838dd257f41cbd7b \ + --hash=sha256:e0be1aa6566979266a8fc845ab0e18613f4918cf2c977fe67050f5dc7e2a9a97 \ + --hash=sha256:edfb16b16a298717cf05b8c8a9ad1828b6ff3de5e93048ceccd74e6ae4ff0922 +idna==2.7 \ + --hash=sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e \ + --hash=sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16 +keepkey==4.0.2 \ + --hash=sha256:cddee60ae405841cdff789cbc54168ceaeb2282633420f2be155554c25c69138 +libusb1==1.6.4 \ + --hash=sha256:8c930d9c1d037d9c83924c82608aa6a1adcaa01ca0e4a23ee0e8e18d7eee670d +mnemonic==0.18 \ + --hash=sha256:02a7306a792370f4a0c106c2cf1ce5a0c84b9dbd7e71c6792fdb9ad88a727f1d +pbkdf2==1.3 \ + --hash=sha256:ac6397369f128212c43064a2b4878038dab78dab41875364554aaf2a684e6979 +pip==10.0.1 \ + --hash=sha256:717cdffb2833be8409433a93746744b59505f42146e8d37de6c62b430e25d6d7 \ + --hash=sha256:f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68 +protobuf==3.6.0 \ + --hash=sha256:12985d9f40c104da2f44ec089449214876809b40fdc5d9e43b93b512b9e74056 \ + --hash=sha256:12c97fe27af12fc5d66b23f905ab09dd4fb0c68d5a74a419d914580e6d2e71e3 \ + --hash=sha256:327fb9d8a8247bc780b9ea7ed03c0643bc0d22c139b761c9ec1efc7cc3f0923e \ + --hash=sha256:3895319db04c0b3baed74fb66be7ba9f4cd8e88a432b8e71032cdf08b2dfee23 \ + --hash=sha256:695072063e256d32335d48b9484451f7c7948edc3dbd419469d6a778602682fc \ + --hash=sha256:7d786f3ef5b33a04e6538089674f244a3b0f588155016559d950989010af97d0 \ + --hash=sha256:8bf82bb7a466a54be7272dcb492f71d55a2453a58d862fb74c3f2083f2768543 \ + --hash=sha256:9bbc1ae1c33c1bd3a2fc05a3aec328544d2b039ff0ce6f000063628a32fad777 \ + --hash=sha256:9e992c68103ab5635728d29fcf132c669cb4e2db24d012685210276185009d17 \ + --hash=sha256:9f1087abb67b34e55108bc610936b34363a7aac692023bcbb17e065c253a1f80 \ + --hash=sha256:9fefcb92a3784b446abf3641d9a14dad815bee88e0edd10b9a9e0e144d01a991 \ + --hash=sha256:a37836aa47d1b81c2db1a6b7a5e79926062b5d76bd962115a0e615551be2b48d \ + --hash=sha256:cca22955443c55cf86f963a4ad7057bca95e4dcde84d6a493066d380cfab3bb0 \ + --hash=sha256:d7ac50bc06d31deb07ace6de85556c1d7330e5c0958f3b2af85037d6d1182abf \ + --hash=sha256:dfe6899304b898538f4dc94fa0b281b56b70e40f58afa4c6f807805261cbe2e8 +pyblake2==1.1.2 \ + --hash=sha256:3757f7ad709b0e1b2a6b3919fa79fe3261f166fc375cd521f2be480f8319dde9 \ + --hash=sha256:407e02c7f8f36fcec1b7aa114ddca0c1060c598142ea6f6759d03710b946a7e3 \ + --hash=sha256:4d47b4a2c1d292b1e460bde1dda4d13aa792ed2ed70fcc263b6bc24632c8e902 \ + --hash=sha256:5ccc7eb02edb82fafb8adbb90746af71460fbc29aa0f822526fc976dff83e93f \ + --hash=sha256:8043267fbc0b2f3748c6920591cd0b8b5609dcce60c504c32858aa36206386f2 \ + --hash=sha256:982295a87907d50f4723db6bc724660da76b6547826d52160171d54f95b919ac \ + --hash=sha256:baa2190bfe549e36163aa44664d4ee3a9080b236fc5d42f50dc6fd36bbdc749e \ + --hash=sha256:c53417ee0bbe77db852d5fd1036749f03696ebc2265de359fe17418d800196c4 \ + --hash=sha256:fbc9fcde75713930bc2a91b149e97be2401f7c9c56d735b46a109210f58d7358 +requests==2.19.1 \ + --hash=sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1 \ + --hash=sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a +safet==0.1.3 \ + --hash=sha256:ba80fe9f6ba317ab9514a8726cd3792e68eb46dd419f380d48ae4a0ccae646dc \ + --hash=sha256:e5d8e6a87c8bdf1cefd07004181b93fd7631557fdab09d143ba8d1b29291d6dc +setuptools==40.0.0 \ + --hash=sha256:012adb8e25fbfd64c652e99e7bab58799a3aaf05d39ab38561f69190a909015f \ + --hash=sha256:d68abee4eed409fbe8c302ac4d8429a1ffef912cd047a903b5701c024048dd49 +six==1.11.0 \ + --hash=sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 \ + --hash=sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb +trezor==0.10.2 \ + --hash=sha256:4dba4d5c53d3ca22884d79fb4aa68905fb8353a5da5f96c734645d8cf537138d \ + --hash=sha256:d2b32f25982ab403758d870df1d0de86d0751c106ef1cd1289f452880ce68b84 +urllib3==1.23 \ + --hash=sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf \ + --hash=sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5 +websocket-client==0.48.0 \ + --hash=sha256:18f1170e6a1b5463986739d9fd45c4308b0d025c1b2f9b88788d8f69e8a5eb4a \ + --hash=sha256:db70953ae4a064698b27ae56dcad84d0ee68b7b43cb40940f537738f38f510c1 +wheel==0.31.1 \ + --hash=sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c \ + --hash=sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f +pyaes==1.6.1 \ + --hash=sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f +ckcc-protocol==0.7.2 \ + --hash=sha256:498db4ccdda018cd9f40210f5bd02ddcc98e7df583170b2eab4035c86c3cc03b \ + --hash=sha256:31ee5178cfba8895eb2a6b8d06dc7830b51461a0ff767a670a64707c63e6b264 diff --git a/contrib/deterministic-build/requirements.txt b/contrib/deterministic-build/requirements.txt new file mode 100644 index 000000000..1b226f9dd --- /dev/null +++ b/contrib/deterministic-build/requirements.txt @@ -0,0 +1,69 @@ +certifi==2018.4.16 \ + --hash=sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7 \ + --hash=sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0 +chardet==3.0.4 \ + --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \ + --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 +dnspython==1.15.0 \ + --hash=sha256:40f563e1f7a7b80dc5a4e76ad75c23da53d62f1e15e6e517293b04e1f84ead7c \ + --hash=sha256:861e6e58faa730f9845aaaa9c6c832851fbf89382ac52915a51f89c71accdd31 +ecdsa==0.13 \ + --hash=sha256:40d002cf360d0e035cf2cb985e1308d41aaa087cbfc135b2dc2d844296ea546c \ + --hash=sha256:64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa +idna==2.7 \ + --hash=sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e \ + --hash=sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16 +jsonrpclib-pelix==0.3.1 \ + --hash=sha256:5417b1508d5a50ec64f6e5b88907f111155d52607b218ff3ba9a777afb2e49e3 \ + --hash=sha256:bd89a6093bc4d47dc8a096197aacb827359944a4533be5193f3845f57b9f91b4 +pip==10.0.1 \ + --hash=sha256:717cdffb2833be8409433a93746744b59505f42146e8d37de6c62b430e25d6d7 \ + --hash=sha256:f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68 +protobuf==3.6.0 \ + --hash=sha256:12985d9f40c104da2f44ec089449214876809b40fdc5d9e43b93b512b9e74056 \ + --hash=sha256:12c97fe27af12fc5d66b23f905ab09dd4fb0c68d5a74a419d914580e6d2e71e3 \ + --hash=sha256:327fb9d8a8247bc780b9ea7ed03c0643bc0d22c139b761c9ec1efc7cc3f0923e \ + --hash=sha256:3895319db04c0b3baed74fb66be7ba9f4cd8e88a432b8e71032cdf08b2dfee23 \ + --hash=sha256:695072063e256d32335d48b9484451f7c7948edc3dbd419469d6a778602682fc \ + --hash=sha256:7d786f3ef5b33a04e6538089674f244a3b0f588155016559d950989010af97d0 \ + --hash=sha256:8bf82bb7a466a54be7272dcb492f71d55a2453a58d862fb74c3f2083f2768543 \ + --hash=sha256:9bbc1ae1c33c1bd3a2fc05a3aec328544d2b039ff0ce6f000063628a32fad777 \ + --hash=sha256:9e992c68103ab5635728d29fcf132c669cb4e2db24d012685210276185009d17 \ + --hash=sha256:9f1087abb67b34e55108bc610936b34363a7aac692023bcbb17e065c253a1f80 \ + --hash=sha256:9fefcb92a3784b446abf3641d9a14dad815bee88e0edd10b9a9e0e144d01a991 \ + --hash=sha256:a37836aa47d1b81c2db1a6b7a5e79926062b5d76bd962115a0e615551be2b48d \ + --hash=sha256:cca22955443c55cf86f963a4ad7057bca95e4dcde84d6a493066d380cfab3bb0 \ + --hash=sha256:d7ac50bc06d31deb07ace6de85556c1d7330e5c0958f3b2af85037d6d1182abf \ + --hash=sha256:dfe6899304b898538f4dc94fa0b281b56b70e40f58afa4c6f807805261cbe2e8 +pyaes==1.6.1 \ + --hash=sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f +PySocks==1.6.8 \ + --hash=sha256:3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672 +QDarkStyle==2.5.4 \ + --hash=sha256:3eb60922b8c4d9cedecb6897ca4c9f8a259d81bdefe5791976ccdf12432de1f0 \ + --hash=sha256:51331fc6490b38c376e6ba8d8c814320c8d2d1c2663055bc396321a7c28fa8be +qrcode==6.0 \ + --hash=sha256:037b0db4c93f44586e37f84c3da3f763874fcac85b2974a69a98e399ac78e1bf \ + --hash=sha256:de4ffc15065e6ff20a551ad32b6b41264f3c75275675406ddfa8e3530d154be3 +requests==2.19.1 \ + --hash=sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1 \ + --hash=sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a +setuptools==40.0.0 \ + --hash=sha256:012adb8e25fbfd64c652e99e7bab58799a3aaf05d39ab38561f69190a909015f \ + --hash=sha256:d68abee4eed409fbe8c302ac4d8429a1ffef912cd047a903b5701c024048dd49 +six==1.11.0 \ + --hash=sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9 \ + --hash=sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb +typing==3.6.4 \ + --hash=sha256:3a887b021a77b292e151afb75323dea88a7bc1b3dfa92176cff8e44c8b68bddf \ + --hash=sha256:b2c689d54e1144bbcfd191b0832980a21c2dbcf7b5ff7a66248a60c90e951eb8 \ + --hash=sha256:d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2 +urllib3==1.23 \ + --hash=sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf \ + --hash=sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5 +wheel==0.31.1 \ + --hash=sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c \ + --hash=sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f +colorama==0.3.9 \ + --hash=sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda \ + --hash=sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1 diff --git a/contrib/freeze_packages.sh b/contrib/freeze_packages.sh new file mode 100755 index 000000000..19d6b5fcc --- /dev/null +++ b/contrib/freeze_packages.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Run this after a new release to update dependencies + +venv_dir=~/.electrum-venv +contrib=$(dirname "$0") + +which virtualenv > /dev/null 2>&1 || { echo "Please install virtualenv" && exit 1; } +python3 -m hashin -h > /dev/null 2>&1 || { python3 -m pip install hashin; } +other_python=$(which python3) + +for i in '' '-hw' '-binaries'; do + rm -rf "$venv_dir" + virtualenv -p $(which python3) $venv_dir + + source $venv_dir/bin/activate + + echo "Installing $m dependencies" + + python -m pip install -r $contrib/requirements/requirements${i}.txt --upgrade + + echo "OK." + + requirements=$(pip freeze --all) + restricted=$(echo $requirements | $other_python $contrib/deterministic-build/find_restricted_dependencies.py) + requirements="$requirements $restricted" + + echo "Generating package hashes..." + rm $contrib/deterministic-build/requirements${i}.txt + touch $contrib/deterministic-build/requirements${i}.txt + + for requirement in $requirements; do + echo -e "\r Hashing $requirement..." + $other_python -m hashin -r $contrib/deterministic-build/requirements${i}.txt ${requirement} + done + + echo "OK." +done + +echo "Done. Updated requirements" diff --git a/contrib/make_apk b/contrib/make_apk new file mode 100755 index 000000000..773aeab54 --- /dev/null +++ b/contrib/make_apk @@ -0,0 +1,17 @@ +#!/bin/bash + +pushd ./electrum/gui/kivy/ + +if [[ -n "$1" && "$1" == "release" ]] ; then + echo -n Keystore Password: + read -s password + export P4A_RELEASE_KEYSTORE=~/.keystore + export P4A_RELEASE_KEYSTORE_PASSWD=$password + export P4A_RELEASE_KEYALIAS_PASSWD=$password + export P4A_RELEASE_KEYALIAS=electrum + make release +else + make apk +fi + +popd diff --git a/contrib/make_download b/contrib/make_download new file mode 100755 index 000000000..097fbf06d --- /dev/null +++ b/contrib/make_download @@ -0,0 +1,57 @@ +#!/usr/bin/python3 +import re +import os +import sys + +from electrum.version import ELECTRUM_VERSION, APK_VERSION +print("version", ELECTRUM_VERSION) + +dirname = sys.argv[1] +print("directory", dirname) + +download_page = os.path.join(dirname, "panel-download.html") +download_template = download_page + ".template" + +with open(download_template) as f: + string = f.read() + +version = version_win = version_mac = version_android = ELECTRUM_VERSION +string = string.replace("##VERSION##", version) +string = string.replace("##VERSION_WIN##", version_win) +string = string.replace("##VERSION_MAC##", version_mac) +string = string.replace("##VERSION_ANDROID##", version_android) +string = string.replace("##VERSION_APK##", APK_VERSION) + +files = { + 'tgz': "Electrum-%s.tar.gz" % version, + 'zip': "Electrum-%s.zip" % version, + 'mac': "electrum-%s.dmg" % version_mac, + 'win': "electrum-%s.exe" % version_win, + 'win_setup': "electrum-%s-setup.exe" % version_win, + 'win_portable': "electrum-%s-portable.exe" % version_win, +} + +for k, n in files.items(): + path = "dist/%s"%n + link = "https://download.electrum.org/%s/%s"%(version,n) + if not os.path.exists(path): + os.system("wget -q %s -O %s" % (link, path)) + if not os.path.getsize(path): + os.unlink(path) + string = re.sub("
(.*?)
"%k, '', string, flags=re.DOTALL + re.MULTILINE) + continue + sigpath = path + '.asc' + siglink = link + '.asc' + if not os.path.exists(sigpath): + os.system("wget -q %s -O %s" % (siglink, sigpath)) + if not os.path.getsize(sigpath): + os.unlink(sigpath) + string = re.sub("
(.*?)
"%k, '', string, flags=re.DOTALL + re.MULTILINE) + continue + if os.system("gpg --verify %s"%sigpath) != 0: + raise Exception(sigpath) + string = string.replace("##link_%s##"%k, link) + + +with open(download_page,'w') as f: + f.write(string) diff --git a/contrib/make_locale b/contrib/make_locale new file mode 100755 index 000000000..3c28d5702 --- /dev/null +++ b/contrib/make_locale @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +import os +import subprocess +import io +import zipfile +import requests + +os.chdir(os.path.dirname(os.path.realpath(__file__))) +os.chdir('..') + +cmd = "find electrum -type f -name '*.py' -o -name '*.kv'" + +files = subprocess.check_output(cmd, shell=True) + +with open("app.fil", "wb") as f: + f.write(files) + +print("Found {} files to translate".format(len(files.splitlines()))) + +# Generate fresh translation template +if not os.path.exists('electrum/locale'): + os.mkdir('electrum/locale') +cmd = 'xgettext -s --from-code UTF-8 --language Python --no-wrap -f app.fil --output=electrum/locale/messages.pot' +print('Generate template') +os.system(cmd) + +os.chdir('electrum') + +crowdin_identifier = 'electrum' +crowdin_file_name = 'files[electrum-client/messages.pot]' +locale_file_name = 'locale/messages.pot' +crowdin_api_key = None + +filename = os.path.expanduser('~/.crowdin_api_key') +if os.path.exists(filename): + with open(filename) as f: + crowdin_api_key = f.read().strip() + +if "crowdin_api_key" in os.environ: + crowdin_api_key = os.environ["crowdin_api_key"] + +if crowdin_api_key: + # Push to Crowdin + print('Push to Crowdin') + url = ('https://api.crowdin.com/api/project/' + crowdin_identifier + '/update-file?key=' + crowdin_api_key) + with open(locale_file_name, 'rb') as f: + files = {crowdin_file_name: f} + response = requests.request('POST', url, files=files) + print("", "update-file:", "-"*20, response.text, "-"*20, sep="\n") + # Build translations + print('Build translations') + response = requests.request('GET', 'https://api.crowdin.com/api/project/' + crowdin_identifier + '/export?key=' + crowdin_api_key) + print("", "export:", "-" * 20, response.text, "-" * 20, sep="\n") + +# Download & unzip +print('Download translations') +s = requests.request('GET', 'https://crowdin.com/backend/download/project/' + crowdin_identifier + '.zip').content +zfobj = zipfile.ZipFile(io.BytesIO(s)) + +print('Unzip translations') +for name in zfobj.namelist(): + if not name.startswith('electrum-client/locale'): + continue + if name.endswith('/'): + if not os.path.exists(name[16:]): + os.mkdir(name[16:]) + else: + with open(name[16:], 'wb') as output: + output.write(zfobj.read(name)) + +# Convert .po to .mo +print('Installing') +for lang in os.listdir('locale'): + if lang.startswith('messages'): + continue + # Check LC_MESSAGES folder + mo_dir = 'locale/%s/LC_MESSAGES' % lang + if not os.path.exists(mo_dir): + os.mkdir(mo_dir) + cmd = 'msgfmt --output-file="%s/electrum.mo" "locale/%s/electrum.po"' % (mo_dir,lang) + print('Installing', lang) + os.system(cmd) diff --git a/contrib/make_packages b/contrib/make_packages new file mode 100755 index 000000000..9cfd32bb2 --- /dev/null +++ b/contrib/make_packages @@ -0,0 +1,13 @@ +#!/bin/bash + +contrib=$(dirname "$0") +test -n "$contrib" -a -d "$contrib" || exit + +whereis pip3 +if [ $? -ne 0 ] ; then echo "Install pip3" ; exit ; fi + +rm "$contrib"/../packages/ -r + +#Install pure python modules in electrum directory +pip3 install -r $contrib/deterministic-build/requirements.txt -t $contrib/../packages + diff --git a/contrib/make_tgz b/contrib/make_tgz new file mode 100755 index 000000000..9e53dd288 --- /dev/null +++ b/contrib/make_tgz @@ -0,0 +1 @@ +python3 setup.py sdist --format=zip,gztar diff --git a/contrib/requirements/requirements-binaries.txt b/contrib/requirements/requirements-binaries.txt new file mode 100644 index 000000000..9faf682e9 --- /dev/null +++ b/contrib/requirements/requirements-binaries.txt @@ -0,0 +1,2 @@ +PyQt5<5.11 +pycryptodomex diff --git a/contrib/requirements/requirements-hw.txt b/contrib/requirements/requirements-hw.txt new file mode 100644 index 000000000..a6ae0a3a5 --- /dev/null +++ b/contrib/requirements/requirements-hw.txt @@ -0,0 +1,8 @@ +Cython>=0.27 +trezor[hidapi]>=0.9.0 +safet[hidapi]>=0.1.0 +keepkey +btchip-python +ckcc-protocol>=0.7.2 +websocket-client +hidapi diff --git a/contrib/requirements/requirements-travis.txt b/contrib/requirements/requirements-travis.txt new file mode 100644 index 000000000..b0aaeff51 --- /dev/null +++ b/contrib/requirements/requirements-travis.txt @@ -0,0 +1,3 @@ +tox +python-coveralls +tox-travis diff --git a/contrib/requirements/requirements.txt b/contrib/requirements/requirements.txt new file mode 100644 index 000000000..99b859c30 --- /dev/null +++ b/contrib/requirements/requirements.txt @@ -0,0 +1,10 @@ +pyaes>=0.1a1 +ecdsa>=0.9 +requests +qrcode +protobuf +dnspython +jsonrpclib-pelix +PySocks>=1.6.6 +qdarkstyle<3.0 +typing>=3.0.0 diff --git a/contrib/sign_packages b/contrib/sign_packages new file mode 100755 index 000000000..d11ef5fc3 --- /dev/null +++ b/contrib/sign_packages @@ -0,0 +1,18 @@ +#!/usr/bin/python2 + +import os +import getpass + +if __name__ == '__main__': + + os.chdir("dist") + password = getpass.getpass("Password:") + for f in os.listdir('.'): + if f.endswith('asc'): + continue + os.system( "gpg --sign --armor --detach --passphrase \"%s\" %s"%(password, f) ) + + os.chdir("..") + + + diff --git a/contrib/upload b/contrib/upload new file mode 100755 index 000000000..29c7e0276 --- /dev/null +++ b/contrib/upload @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +version=`git describe --tags` +echo $version + +here=$(dirname "$0") +cd $here/../dist + +sftp -oBatchMode=no -b - thomasv@download.electrum.org << ! + cd electrum-downloads + mkdir $version + cd $version + mput * + bye +! \ No newline at end of file diff --git a/electrum-env b/electrum-env new file mode 100755 index 000000000..71dfd5958 --- /dev/null +++ b/electrum-env @@ -0,0 +1,27 @@ +#!/bin/bash +# +# This script creates a virtualenv named 'env' and installs all +# python dependencies before activating the env and running Electrum. +# If 'env' already exists, it is activated and Electrum is started +# without any installations. Additionally, the PYTHONPATH environment +# variable is set properly before running Electrum. +# +# python-qt and its dependencies will still need to be installed with +# your package manager. + +PYTHON_VER="$(python3 -c 'import sys; print(sys.version[:3])')" + +cd $(dirname $0) +if [ -e ./env/bin/activate ]; then + source ./env/bin/activate +else + virtualenv env -p `which python3` + source ./env/bin/activate + python3 setup.py install +fi + +export PYTHONPATH="/usr/local/lib/python${PYTHON_VER}/site-packages:$PYTHONPATH" + +./run_electrum "$@" + +deactivate diff --git a/electrum.conf.sample b/electrum.conf.sample new file mode 100644 index 000000000..72a50b238 --- /dev/null +++ b/electrum.conf.sample @@ -0,0 +1,16 @@ +# Configuration file for the Electrum client +# Settings defined here are shared across wallets +# +# copy this file to /etc/electrum.conf if you want read-only settings + +[client] +server = electrum.novit.ro:50001:t +proxy = None +gap_limit = 5 +# booleans use python syntax +use_change = True +gui = qt +num_zeros = 2 +# default transaction fee is in Satoshis +fee = 10000 +winpos-qt = [799, 226, 877, 435] diff --git a/electrum.desktop b/electrum.desktop new file mode 100644 index 000000000..2eba0b6f7 --- /dev/null +++ b/electrum.desktop @@ -0,0 +1,21 @@ +# If you want Electrum to appear in a Linux app launcher ("start menu"), install this by doing: +# sudo desktop-file-install electrum.desktop + +[Desktop Entry] +Comment=Lightweight Bitcore Client +Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\" electrum %u" +GenericName[en_US]=Bitcore Wallet +GenericName=Bitcore Wallet +Icon=electrumBTX +Name[en_US]=Electrum Bitcore Wallet +Name=Electrum Bitcore Wallet +Categories=Finance;Network; +StartupNotify=false +Terminal=false +Type=Application +MimeType=x-scheme-handler/bitcore; +Actions=Testnet; + +[Desktop Action Testnet] +Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\" electrum-btx --testnet %u" +Name=Testnet mode diff --git a/electrum.icns b/electrum.icns new file mode 100644 index 0000000000000000000000000000000000000000..977b124d0d2689d03659c9affaff13c34a51caad GIT binary patch literal 830527 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

Si=B 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≫eSmFp-FRT>gCAkiY@T+>C!`%j-~|KHtr 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%0A@5PqwHyRkJ%AI@%bqb` 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 z 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

HKz^Rj4iIhvi%-4^*L%eym8VmB-6dD#FQqe1 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⋙YQW>0wjp`OQSrvUy0jUr^Nxbc`2tn)!c083TE!xF(^(MtPn6Q4u3wrw$PFKh?%QyX zZuQJ;F7k0e+{KmCorw5X4Cov8)dgB=dZ-&CSZ+Qt0}!ELN0t|vtEp=Tt{g-qseh#x zd@f&ob#{*pjO}j%3)Z;EgWZL$EVc_04i^yNB6F5iZ!@=FT>*)U3C#cmm9v>$VE%Cb z72#^jGiI&7mHz052&1+3-d_(g2JolUPnWnS90x545fgv#1lZt;@Au~Qk9;Uwg$2Ka zJ8F%*TjNA9t5;v+BssDq~d zPR*xN`SF;c%I~TrR`^+C0^4iqc%@NcIo5hSgjR1gnM>2C?;6BGI|WH3T#c$}{kua? z&1Oc9Ye@4@dFBdAc`G_k#s9wiU zs{+-{GtS~ksFuWS6`0}~`TDlC+pLARv_q_J$k{|^d<|vWTCQ_-w1WV(VW{bMXWH!{a($`Z$s) z!QmT#=w?vqaWMKoe(GO|xJd+(AjtJmRWzx|z-hO`)wiF^dC8`>XXAO1}G?FiRo=Yv_ri8brhs83Y-E zp$DzSC$KleCQiP8zNL7&739~EIyO434%4=IEKj!kV{wRd7TraEP}2GchXhF!4fxMY%0!gZ`Ee{ zz2%=4r`0G&6ucxr+U@77_JNB1*!mag3V`UZ3vE`*GJCE4~|*-&#pZ_yoCzQ!YIk&n7Pd4atU`lm&s zAYi@4*V%*4noo!C#($+odGHM5=P3P=9vMWt^H2Jv)Y_NAX-* ztl&aWDoBo(*4nS*yZ4%N-t(r7mT4azH0?sz@UPjgA>z$MH9F46n?hCX&ajIvK)-g< ziKKVYksx_c!z!V>yI~RI2nuaw7TWXd+haeF%Or{NuIf7L%DVzOa-Tj~!eP(wZT5vy zDAiMWb{ZB?UR^3Z#oQQpX@Wpgr9awp;d_}Q(!1fH@NMxy{GddGkiox3AeX^%_rJtF zHwA9ITk!sF7XJ;BC=YuH)#yDQ7g9z2SqCQ4C(+k~s9y?wQ6Hsem3K;c28|8V0H`s^ z3d^y+RCq8|FaW^} z`lv9W*as#wDx6x$3gCc_F`Brq`Y61$G*pC!nNP~0C0F0(w4S!B zp<1oK2C&qQ8Hu@5Nls{vapR4@n(5=D^%oNEjJt@y30@DDAxJ+N1n))4$MH~Of-m9M z&y}8g2%cI)Hnm*z?);#xhgjuVuursW^Hb5p|GXw0Wnv@;wg`+7^>?RWh^GMFZ!ros1=ecp?&Yc2|FRCC_Q=Dt!b~^U>-?Br{-Ta-|w( za_pnS|H^fr%YI`tSvkrpAu9k)7hnqgAK*k+0`l!i%f6F(6onwN3a$#ZOp*FN5M?3oqwf zZm2Cs)Y`@Yk_fwqE+Mi15-$>8s!+*pM$KNZ@I85dHww*C=zd;r)Hm>^vD?fXFj?5M zD;!E0hfqip=k1hf%Fj9dIkM@BsVKampR)}5-RnM+-KjU!tXs6NND}E^*B>tHZVazr z`fnkSYOvBJQ+%up@?!d{>*5=mmG{QwmGlS~tJ0u>mnojk@B&`d@o`tphM0~@PlpmH zdl+Gr*U8%^wX}ko?kP?ImdhKtME1O0d(Mpa5C?zOzd!rmh3DsOV08rWYi)z@OX{DZ z=nQUFb-4EamDzpnHv3?rW!R4gTox_5(hE$2(c5W<$GIUn;d^(y8v9hyxNnwAuS5ImZi{{15#%zkdE<8AP-2x=)JJz~#H zQCuOND`U)RNG~l%)KiP^;UF0pdWiGFCK7rof#M>Ou2X7Y8R-NFa*RXJmeM%%vk_Zn z|0~4?ge;G|9pXK`i&=Q_gS~$jdo+myT(t%_ybzH5gqVJsn)4rc5pU<-M)Gbb{&cO) zDSewU?dhN*s>=raN*v|}_tUjd$T2GK;7dfmdf@lrCkMVZzsT^4-7AZa=>ZfOb6D1z z*Y&l8V}MNK5iZy61*D^((BxlV^~TV0M9AklSR&E*4yH#kyvdY{zY+K%|~o49@_>a%ds+F+*$JC1|O514>ueS>hRP;jjlKQd#@#yxd#*-rjH~1U!U#yU~_J zmy&QOrru*SU#6WNPTu+3aE`&)8a;)52JoX)KwB_Dc$}xm<67(TtB}=Pkn>i!wfUw=z&eHQP9+rW7x~k?oYzzH~aeQO| zZv{fi$ljSi*4ZAqn(z}H#o`)x|lqWkrrR$GedDrxWR>zZFF zj&k!?Pug65bK-d(=XnUvJf7CaEN9WF(S87$R~LWPqN9HDin9)#jpkSPyOf zl8r&Wckrw8g+8NzUo}=C(x3j%>w#HZ(w{v?=^@>kF6pHe(`v^d9fmgsplS*IydeikcS2RUQMQK}K#0h? z@5ClT>~NjNZBXk(AMp3x_Ce62fpaG?%kxbFQvzLz)D&u2VKyB@u!}s)4`|JoKayo_ z_DZeZs@so28b;^e{{)9)VEnR6lph{7ASk!;`z698aq2+vO}V*Nhpm|wTpPR0qh--D z?}NxQm!FhdgMk|J(b!0;NoVJ}8z0R?)Y6sMMCuY2iToF5HrW`Xu>gG~i5Gvx2L>^p zMP2r#CV^z=mn6}X@Mmg#jfb{CKl-aThi8!Wmo}C&p2q^Ra2PUYp@fok^^6asX(QNO zrk9>g_zo!y(*PhAgjH?XuEo#E*TZaCCUpg(Z6X3Rq)WW?Uig!g-&z5SjL!q#2{;p& zeZz|ZAcC;({L>o>{R>h4T4o6P87M>JXzAWe_O=o4`9Gkpy}1MygI^rN6?Vlemlg~F z_nPTX{$$-JverG;MeBHQM>wFjD?FL9Pi2l>n|x@$x~-J%HAoutQ#T{UNueJ5tQ9i* z%!RMaFI@MP?3-hvWK3Hshz}Syhb7_+Ka0U`@j;cU9bsqHcI1*JUw8{u;yamsS zg&Dj%?xe2)>vlTJXU=_Je!`{?WjB@4rL2g37Zn2#YRP>8DvKv2`29jtMKS_DG^>q7 z;$8wpDBFn5149iW(P}@)Qf^Z8`@!P3D>VTH z-XQGdBP@Zh+>Z9Dz$k~JKkomT)Ywjq@=iQB_7(?kHBfo=Cf=;`bmh}`6rL&m-?uVb z56IjZy5huI#_;6&BK_&_!jsm_jCg94Hb`9(&GDmALLUv7l70>ewvyrwDSIgsFMQkv zxtyGULL`D_d1R^7cbuV*dRxl!G9zIL`}q(De-NJMA;Sv**rqg%s*Y6&K;{Jsv)EiB ztuT{tOT4SudaEjKaJr(DeZR!Kbx`Z;f8HvW1_5;~DUXA<;WqpjM$apL>JO{cLHP{_ zEgh0TG0k@Wr?Q7PUXs0r=RZS9GsvOY66d;$qSvbw{d~ot_OU9R=WnKB-zU$-K+qLM0jsMmi&!({JL`_S!Im~7XyE&7 zrvbH;-)I2>CBYGKbwwfuU>d?!eotP2`p_>~@IiK;)fm8N3ixoj$qWUsC?rFytI{v3 zC*F>a6falSJp?T+a)VI(;K#<#Xa7X=`3FjF;;t5_SS?i&Pp>%{0$uB6v1zQ;Kh$a( z#{BeSLMA#xZ_!=!7az#)-fZHKpPha14dvfXKBtfuE`IkK|8*VZ!EcR&V;r26{z#Ab zm0JHqX+P^jF*~J?26fcWp<*z60}$Q#dw!IyMrBr0QA1?B)d?_0WauyA%gs7w$qVx3 zc2lj%cnGGbS&sX6EZ`gqpzi)B;Sr3)Y5(-vPo6h3_}5|rFE;2enF)PZyNx9-EOP=+_}f}(aMP4o5lBh7@5FE05Q400F2U$7m2v(EGX%Z!l>66 zD5KpE+%tZI=V)_cGUEL_2{M^XDL6=cN`Wh!;sR5D%?OW{J|_c^CO|bHsIiXo7k(%| z(%or9Zhr;AC#6fjl3JPrDFeawQ6n<|!fC5N%c`{ds70#=85kiZVN3#9idl-pkuMKR zNk=D0N$I+X-lDtcPr>Q}?DnS?Nb>~j?XVpq;LC$6q0svJM#+ICN4coXvLCLZo=9(` zKL$ZkcU_3al2zw)J$l$?DI;iLM<%S%&EU;1?X0VTm9%l8fhM{eK&%De{w@$X>97~( zrvY;w^zzL94!BpE`-iyC1{4X9(Sd`*9Swm590AhcUyDFC)do56Rge*o(Di{)BQMXS zkDZK+rdH%$99%$>nCL9CRx$>{jcbH`bygnyKwEQ&n*YlfKjSG z7k-4~!BR%hirRCdazHO=oTMkx7mD;(uvK>AS~}y?A-^rszq@{%-6ws72xX`Z4ImTz zp=BMAYlRb(55s+nLXvnDGnuslSpHRqHk3T1vpf8gWr)ufGw+88lzIVuQ+XpLl9s_i zqJ(BT8UBlHqwWA(-;lu{C<>Ft3ApH|HEQU|`9hC}k<+ydhG9jcLkOKqt$tEY&c+JA zH>_fdnbrSin=jt>n~pKmRG?O!saE}oimEr61QEp~lGF}_d7YKB%yL?Ega@N59|d_& zRzuel<0AS~eZ`M-L8LD=-CnmPd=kiKkf2$q-2-rQPoF-2!R|NraZ1z+>524(+Pi?w za8CL}n$sJAxzR8EGbl%>QzI8t4GJ+#w)%gw>tXiw0HHbZ3NOHbc7Ua5Tj>kF*cNMulxHqJ{drU8N+~Y5a;kM6QUEKpxN=E# z)*gRQVCRnTU$~}=XluGqc=so~M&~r8qm9~)Se*?m2zmqpKVVh14z=z<094BiUHJmi zlcDoVMQ`Y@z3{}Bfj<^JGvHYrzI4FltVXP6u#Zn^QECbI$nVJiPH;L!a$&M*r40hZ zSSI<`vihYT(i5uEf-8er^sK1b^=z8-PWorqn?6?L8q&qc4S1MuyvV32U2Sj+c^oOSap)9OcSM5dv1WIbtjEr1=Q^-1+ z`@%O^@3j>56m0mh8;lGo%XEqHnOA>Ez7f&%(xppW~Av!X~m zoASF9=(S{R+5N|dR%V@U5Vaq!-c;h@|Ot$)&IBP}NR3r?v1z-`JSqa|YEg zcLKI&;z1T>Pz1j$DbAn*DIo$_4Y2%BV6AD*w$1%;elb{mf)xW2qVi|)1$aPf;28@* z$j)Vc`jhL=&3-o~?+8dK%ff0IF#%K+PGCu_;y^P1FHdn?HK;^*%uPF3Vr!p#Zx2g) z3gJZPbs9W-rj;t?7ye1{RaX>FBsRu4V}Nwc&Pms(zP$=s^RIdTkK|A5LE>=czvYXAYjTX-}V#p3mE2Uq0r-{QTS4&S~Em0ic3V%U_u{-1A6yy5Qg^E4zDO zcNGL?LtR5j7+MyF&+b^u+W#yp;Q{v?5{3vm`MCw2m()_k*|aO+dS*Wl{L-rg#ev_5WCrR`HF)vZqvvaFSd;UGmZP71j-! zv$Pi;OGO2bauFLp^kCNiZ|^+d{Hn^le{QCykq(4F5{MKLEMQw#4eUx4U2&tJ=%TM( zSH!hZl(A4{)m8j_R%LZpMfA;z3bF_Y#PwAaK@ zW+wkL^S|fbb5D8B)6R41UAr=Tlk%s4vkjsNDT>xVC5K)>B&%wf)5$k*i)%>ocIcBhMG(&KBw z3+OverzqQ8(X&VZl{H=<&HO0WDzRxb zyCZ!*FM2ud^AU^YW*UdMm!kOy5OHu0egr0V1H>2N4-4G|vpVLwZBP78%P;zRh0NKlghsg8q%x<9t(H^bw{M2fQM2T4( z>;5DqupTBmeAA}zz3FFic!cs0Qg*Y0;a`r1MU1O?AQcP1GXF==8s27M8eMI*{$`jl znGaHSghvUfEFMbftfs21>I{o9sPtKTY8|-l4V~Uu2&I--Ywo%O;nY@MwagkYD*jwR z#X4g4;^#3o^FjxBtckzX_hwkBUzAMs$m#<3>->wI8~x2I33x zM^&!7;~@(F^po=g#s886$pb~z8zzNIIrpVfRb$b5A{N|S$(i9*GP8?rU=)CWh^ENQ z5L#_xLT>x!i>?5bG2}a==&EC+*Q5EScWnsQPd}YG^okO|Tpwts)|lZTMy6g$)>{0d zGAiW=ARZ+A>RYa?ZwS94DAo(npe5qGyAJAhC4Eepy)+o|dgP-;QQ9NW5MIEz!MiLE z(we`kmrm9#03pygbGYwaD+z}StY0OR>8Ft5UhyQ*#ZTLsBVN4sy}r|IV&e)LkoIAaL0yqK7gYnhDz z2@ED~z~kC>#Rb_n(ZvrUA}x?pCYf;(c{vO5On4opwhrjH_~@_Zqb;qNYG+-XKZjWk z13n2_(dw23zgozhi3Fg+<)@!NE6f#x-z6pC@lqUbb*(>Yf-ejyrtb#S!eaf6B5WcE z{R;y4#-%r8|Kaqj9I+}sT=)|nyBYWpUX_P%4UG)%dZt=ZS!(?sH2Nqo(u-KU z_HKaaO3aZY6efB)@tgQ!R^*f2!h_;(@wxaNC?-=44a(MYZ!qzkV3RM7)IJCG``4hv zJ|y|F)<5wjk#@xmoRA3$X-zcTW4B~Wo10h~>#dAh7gqwYYLLY5+^>r!ZD6O`R}MKf z|Bw+)qutV$1K}QWUcuCQDg3Nuz0TG>@&*pIEBc_x|JtkBuvOW`7KxxsAenQZC>DRz z%lVSll%UOYG!A}hP58KF@oq~|&TTvIO%S?|^NlzMQHEBBNeE?bt7VW7%Gc1C|6Dke zs5+K))t`s@q+yYd-xYCmr||=Qd#?k(gZjt>_2D=5w7aqJB=nfg#Q8k~ZRfx1*l_yN zA2R!)K7WtditVgy5iR1&@CP12tew;h9Q+qJ7w!r1VKdQ1uAq}WhDb*g)GtI|=-em$ ziHwd7qr@kcF!GIOvI|%7vEd`j4>>JAPkc_7OHQj$B_AdaCArW$)k<<>T`=6Sv_c92OPgNG|cY7C~8%(CRSaT-N4mQ6IohdCHwI#ELyxlB>^AET@pJ5AWq9tN+w)fKNxv$(3rlDSCy=eF4Sc)8DKSuMZ z(^%By7@+l^cfWj`LbdWXI|;eAF^}Tc0^}`rFY`ai6mi9f5JbY>!fyh_ zrOTo z_{a2b5kocTTl5jg537W!}yvRyzksL{$O!y^V1Ly{(h3yHDfJ6x_yfeFP=85^o(WqBJ zG_A&xut=k+snnp0o6RsB&myn1-b&Q)-!jqrm zj;=nMytWWP!&P#zWZ)TzB>ZvdjoD-Nwy##~*#@V~gbNsvzndp1H$iSJWu;NC7}U;M zxKSLAdIfLKVg1QDm8{ zq%XM?m>YzD@ZJf&b^hN35{kJ*12G?~Ov62_rhACiY8~-bP}8OSp4fkMc!ID0Y7c(l zOz=s!tHQ4wBc7O%xI*}&N3Zqzg2${aD^w4{xbTlCi5?cx7mgzx8I*kNpx5M&(D!~W z_0d*f)wSY`2YrC`Xz|OVH)YHuMv7KqZRbtmSBAvltAXKKa#&Bk+M}*wliCp_bZF*8`mooa0Iu3* zOV(;8UFXEh^Y3!7)|>fOnik-=G8Gw}pz_q3YNo!K#pb6hzbL!a%+uC^)#81T?pgno zzhc7{)`@H3j`y9_qK_X@AO3UM_1Oj5{kG!hkj(>@L(a-CY3mH{0UxW$%e!n@7}wGe z&Sfg}_P+9`Y9qpIXrb1%FGbmRqGt|`xSeuoell9@XQ(7Cu9D)iCD@h$4>(;rGfrt@ z$KQ3UF38T=CT=4yPJ2!MF%-ZDpvx*Uu*S#;<+ReRj!hejwt2^*pJns5$p;2Tk4sX7 zfP2X4`FLh(E<}NziSTPhq7L@(af~GH&MWB&DBu^xq2CV-A75}+cJuBMenGx_EP#ZQ zXbGqihn$dWt-Ka52muv=0V&B602M}5+0TlDyoR+P@J!~hUkWn+4J9y_QC(Yoh%eNs zrP?mXK+=mypnO$MUrr3wK`X%8>SuITZhdq36o+QM9;o%PNrfp7zj`TRS{qGAqkW!= z-A0>BD{JbfKR7IlJ}=wRg*a|msH1h(*J4}14yXh&XD^kPYc522Ypymt!?{k(qS^bss`pFCsZ1i#L~+&_;} z59Fs)v~^;W6qzXEPFU1adiD)VO}vz4b{=wb$Ls z#cDxnuF-#elG~6#m~c}~YM-}V16B892kb9e$y>E_`3r_w1B-GAwQnWrSo622bI1e1> z<);Y|&xt@h?qLp@qQQheSzV?%QU(L;N4yA6osFD?({4wui7wTSXK>od2t_k-z9c%> zX+^Dc7W#9Mo=u~}AG_9vC&7ifJc?hPyD-GppLl<~WtHmPU%o=wY#J8vIk?g3LaZhD z2*Uqzl58aNHN^04Z;^-bEAN~_95(TDY#)+dg~4D<;W-Pf-NbGd-l6_w798o(f8oTW zjK{9a^idlrc}?RMxQGdP$3Hs_;TQ3Z2Rk2C=S^zkJMx9U#gF1k@u&EdJhY%nR;+h3 zlvp)M{2u)nDvNDA!vC1$V^0acK-x13KqW;bps5T-;ND1I`*x5qDI&yL8Zn`wR*>ZP z9^?}}S}NJb;LsbkZVEp>_|*I(mDvIbtSf?|PH`0&+W2VRjw5q@KuZi%K-=l}tG z)vFhfnxU+HM8w-hiXPzhO|7h!rsy zjV7L%I%N8rBzcfrRHphQFMGi4ekLqeLX~2WWYN5A>*Bkz4?w^xdEE@tX==+VTtSY| zf-}T9X%(VAyfpM0f*Kgic|WrSKRx)g{KFcxjTV7VMX5!JCNA3ixk#p_RQhy;3lE!t z=l2$2c0YpLGj%KVp`7I(%f8J()GusW(ED+{iUQtx49+b;b@u+B&Goe$rQK~^Fcu=I zeRE-!(7S3S2rt5q;i*UWw1m)3;aT_=-i3d| z<@Uf4=^E**S&V-9pNfwV-&nTdBbB28KG{X^vG`4Vw{>H2nz+uV#=#Z1 z?TMGsCyv%{XpE&p{zO;8YnXDq+NC@@8O?i03v{UmRHME59Ge)r3N4XRkj?e96 z)!zL*dy9~G|9@FWJ?s4CTCEg+`%Kq3?KGk>oZr=M3S^rDjT~g5j^`JreIdVn>4(`T zuhO@t^?D{a`g$*HImWOsqiNq?t4`Mde451o)U6p3O{K0 zirl24oRU0AxQHWs+q=G|{ZgWyeyh_}bVkIMfq4zk+2+b}R0>!59pW1cpNFWdbulhPH6l=FadsrcVz*pf`XkP3?*9$*M4{S1RE&5bXMCk+nj!rFS87{1+~`J!7Mi zbTeLW8n6qn?+qtpf;vnoResE5M*8c+4+t3xG>u@QqogSfGX`bi0{4kRtLiQ8 zD$qI#g1xtWbNC6Xt*)B>n*8~c(S7Vm9O~U2o<%%c{%iSEU(`M}Q|5y^b#R4$51@X< zzhw85$CtAv=6ExkO+dD*3*ym^qGmzLp|l*{cm1?6PIbfqcvAlzlhRl5v3!`mzgF^T z5VTk8qL~4EpH>zU2iRo>?|us))?fG#Uceo?yt-u;8bxfwYqQOve_8l83rhIkZbvS( z;-a(YExMDmuR2ODbmGyojDO%GzR>dm`0C2_@E7}6-it;ZMI4=V$dHBcVN$J0+?o?TpDAKnj=R)93E zJkuwxoVboWQ_ErmTp7t~Kc#)O999I$So!jgSQS5*c3S?8wRQIWJ`t-wMp2G+Xyg0w zcg|hndGq;}PtgN>3OKZat`{*?kTDBg0hHB;81VX=-PRS5dC6CRfovjpw3U3|X%Yk< z*|U-e`)B~usQ5VU#}R)V&*M=byVpXDrvDW1Abcd#-$^V~Mdx=?)GflV;aRUD-cz*g z@?*Eq=|i*l+n5WkEP|A>$HLhtwK9Gml_}I9=;ZT zGtl=w@w@nbPn-M(Yw5Ck30x|u-&^kz*a9C$;P2o>)O%7FP8?mjU!yy%4=J9y%!>WPc&91sQ-PPR@9tH=OkgHbFX_~K# zIyM2&AFPPdG$&h3e~7YB{beP|bt51Rj3fNXo=S1;c|a~e*6Mv-`p{n%6@?dJ0qpQl z@^!Bzzs!&`W%-E(A7`dUdn2-KO#6|fPZ!q%h~AVg^S{4FQ1kX3!1fMc61Q!DPeeJ5 zB_&hei%_VX5FLFzQ6Dt|=r#s5u?i{ZTg{`xmmj&2flG}i2(NqC))>Z4DkLE<5Pp z_Bmr{O%D!;v)WbA)H}=a`|^G7n1-Q&P)t3umH<=V$)CwD?yBRXqaCaZiHCd=)pq;I z7m@hy1XnEx?5(RV%1(&`f4wZMo<;Qe9C=I!acpQ0H$jvApoPqMuVtiBq?xklf~v{N zOm98w@)P&sC%Gv2+Hj@)7|kftU$gf2>IFZ~T%nfu+!E}?OM-bXg3z;Q7_zk7cg9Ki zKd?dQUBo&Z9E(Y$wd?UEM+Me(mui!Ig-HRVXZI@#KyS%JM`8VL>CM@jl$|?Zn2pky zP3l&$f)|zE_UlK&Vg<}%72Tg;E?HQ{s0J(2q}-BX(F@nb!wUYfsPYkT-DNi;ocv}6Tdq9b~_ z;$)?DvM&A@w);M|V@eu4w34UlH&0!)qCV43&%Z|l^Fm0X%{f|oFAB*e`uJUW>6pJS z;(2TXKc-SwRO49Mb^2%>OTHG}mi<`KDy@DA1`FSdmlBTmA{2cUZNens$?~J;t8UKx(TB& z4S&D#)7fzrLpI4EVi1REAg@LJCbs7Hf|uhUgf`~b%nxYtHUCZ@DS=M*T#m%_|Jce4 zvd<^{ZWAIYw6vAChl#DlJuuEo5d0G{@AY|mO+m{{FR)%HXs1--pHyg44+54jJkeFO z)Ks9%{blqMzBy`qxQ>244Hk7SHEJoF!Qc!2!R<6c8s|liJ~^Mj5b-&T!p;HdQ~8-i zfG+_p$W+`_6VPj0RseplzItW{MQE+|YAk{WA>yx43cnfE5FU0Sme91F3Sr{s^55E; z@@_kDa)dYqVdsj|)qfpXeHgD5Y=Yel)aQrX#yJJN~R$Us4@kj3dN|M($fJWha?v)xJOmGs&gqw(I}NC6NzK1MPdKUg06;71ehoArjc+FH91^X?C5nR|ie;lrL6 z7SHQTSUFxgaJ=-S&*Y!)ZVVrxE3lD5{0qY>O>C#0xRq?J(J1nN_?Q#J^X8qvaM$i! zAf&qQX&38r+}HAkMN7l|;8aU^DyF~iYaodp!nK68iB`2UT)pz*?4u##vnSZIQ3~__ zz`1(l2Re_351t23XOjPZ_-fTPv(ZL=!nVo~<|XTfc>)w>Jm5EaQcCm7cZ#U}2}-XI z#MHwFkMNs2ZdCa3AAaoLAn+D{@C$ydomW0R3?08(5$L$A)r-O@Y`J{{1UinNPU@kz z03nR3T;-SUBlX2-t^oXWa@~9~gF4Ky3Xde=5I* zbH?5eWn}vM=ixx0&@aK)4SpAR9mV}Ut3O$7`s-vJ*67bf(?6S)c+UlOM}f#`;Bbtv z$a5PP9pP@RJomB)mA&KHJz?CQDaYQC2gQ1rT~iGC{CFq2NlCZyyN|x&|D7-+{7hS~ zm29X9zQN4J5tE*VoDa=PT?2tX{Zv)}c7!vLSgipV&2W%NxGe=xXnP_$7epnX3=@W; z&wItU)`WXm8BzxN=_v6w3R?q%JPy}A!kYC*8=eUFcDy_swsDlLbW}RqZ6}}%GWqF_ zekpm3A=7_c{+aBDD1k=06EK+gdZ;?E)QX_DX6;ixmA@XF_`fm9HHceSXsR0c6^fyk zJ>h4gw}i7A=7sqkQ&FCs;aMQ>2xxjRcvBx<{chn?n{V{fK^{`d8qIfVm9fUX|M$Qq zF%_+XVNc^c5$_rHmG!5Yg1bgEgc}y$!Yah%W^0UU=(P9=?BqM5($kRjVKN(K6+<{F z^_{iNZQ;KX(P4?G>#1bY`uN0lVwW&sboXcIZt)Au#CR%*TQdk#89*WCtLM21K^B9m ztnLw8!&7ZXgaf)JhN+me9mI34vk1n2=}yy~)Hc#rmMQa`OnOj`b870&o$^a}+@zu`NO38h z{G1OI=#f2_n3u{J*%bci(Vu32j9K;KHxD0r*D8DrJ@9)&d>mg{y^jwq&O9YQR?9cx z8x0WppQ6V*qqAzy3OPh1y_a7&?iCNuLwmeaM7`%%^&W=e-=>x#}`VY?wvXbI<&=|g;w3mC~0Py`dJHqmOYU8 zE5;b|ULwJeuSlf=wtgV%nsIXeS`@&)Lfo~`RttyR$&X?V@iT;R6z?@ir1J{3Q_EQ* z#!(`1o*bUv#pe`gJ{MU9J;MAM4q{lZyK7u%>6pc*wJ8umS8QFyzMimPV||8vB;U4w zvTjjWl(k@f@`)~@t%VU+)A!ZkC>!{8;cBM0R&fH&R@RqqX=!FAq$O-v{Zwdcq&qRP zGju(lqrB$!F;Z^jZpTGJeE+vX{pR{mNAp`Z{eaN4aZ4DpWh-^*2rZnT)Xa40L=M83 zfDn&m8f*f1pFqXOVdPKBw}jDMGx*5pgm57B-b8r46$^f?@{S?lz?A^c4UdH<>ef=1 zdZ<^ZN{7~QRV1~$QbqjP(5ujjVCzBn^=UudNtsyp4W*;8nV8aIDR!cZ7WRx|*WSM@ zx;6XBjx9p+YzFhyi7}WV+)3ErfP)~mh}_#b`R%AKnD=G`>R70MD1_Fuj#e7#{6afC z1jbO~WcgTY!Apf%rn;6GkP%_zl6OUz$0Sh9j9I(6du&+Uc|e$iLeOTD#ANXfkJOZ{ zuEge!@$_~1@E2c!YiB$`Mt+9SX(_be$+v31nvX|x5#G*<$&P$uXk*!F2hCOoLfigp z*1I2cW-hBjr_N|OwHCePTnZ>vIu7_%SE;@Xd%A`AjlaI0*19<~0#hS>n}#P>*kYF^ z(l?MpV+Xq^_-KGWS0h(3WSYiVyW|!>A@`n*rUd>Lrq{V?4A*50 zr#xL8B{WJX=Vf(w92mwnZVpefo=k^{NI=EN<`6ryeNkB95*7)yy|sGB{P1L1a03c!nk)w4n?s9c??r>+-smwEB(~c%dG{@ z`-i$;eBWF2vi#H}RIw-z*WpmGYQCmo|Eej0{u_$dIjlXIbDCtEM$^qtYo zSA^VGA*yj5?S3VPSZ>{YXZ$>F+X3raUbd%8)CVTzB=MzVqNP8MF9lo+=HS zB3f~F(GxD!S9|$A#0z&p^AIm10+k}+r*H+4*wPF7a=6vT-zyqU(JW3mnqE+sTyP71 z@~D0^juv8PySEd#am6)rCAvb3TmCfLJIi< zxc&{xy#KJ^rfi9_ms{+f)Z%hP|Ih?e3dZ*`!K?Vm!Xtl`;tc8A;imvvooMvg#<73f z8LuaaoUC&`J3+Uk)gTc;4r>n z5v^mRDUBjiD^W?STq-gJ_Iys^ef#A+b+6Rru)b4Ss3aC^rMqKBm>{^JfCSXb_k4Uw zkYY#mLe?XM58;LS)!Ak#y)Tz(>cT7th3co&I#pU{FW7nlwBtr_zlh&M2><;=x_|P) z;jfjsdgUpdqN(HAz@=FXlt1(oALtWx1VpD2aD=IxZt;@^v|8DAI~*>OBN5kM>xPg;ax!4BJad9NR?m~xBE^Du$>T_=UGW@(t&m9eHg569Af zJdzTo^KK$p>-zxWBP|X|KLJIM!I81%UtbZZt6vs2bdL_rT@yGBmXmmh;7}>9V(XW# zD6;NxVNBN)`uEFOQAk%J#xjebQo+iNr7bR=SMj`~cYURgVd<6XNJX;|oP*FgC5#rl zbP`nCR13d#7`-bXT-Am8y48I65`55h*MSSA5e}4fl1Zh~n1lZ)hX5TKs)IQe)71Zk zg*gw@HHHVrPYw&q0>6X^HgG3@uJWXWd9?TQig58kJEelmR2{`mPG#xqNfX3Zi*#7FPZ4bJ@By-aPY~4z_ zIOiRi>rvk7cY|W-fJkia?P(X<+p(@(Q<3UeSAS(2A$EM9hBlvDTJ*&uLd_d zetiLO|Cxg{A7<;_0{?th8B*@k-V9lFt^E3%1&M1Hj1S-k2eLfRaAuS#6%TWtq`>NCo&=5 zkz?aebowk5t+NXs{P4hW+EDcG<$aocDPdAiVokuxROqb%OY{9+zPJ?%XPjG^H zgSQe>HBjbU1s7SeoF|N={u>xD9FHXcVolK35ldq;PcX2u036Q8pAQa~EcqXO9EDt)`OItsW8I_cMKdhjUHpmjRl|Aq#S#Q-VZkgU}V_1 z)y}=sp$w(~B3~0Nb3;@BJ4C#m3PFiWOsGd%oF(=xLpvrqt{x+tZL5dh7bdWi z@j&{N(>m+IA&qOo{@p9XF_`yfU?FHpYfm;*j_zb0H-!eq4kk6u$9m8pqV_wGrj)3- zb&*S{t9&9QTvUYi?&%k>P1N@k`jfx0J85KKbZz(8arC)ez_@weGr42bSn_asF)Hj$Rs?!pg2K z#w)Q(RXMmiV@h;myPfa@9eJvFUQXpP1>>hM#ZarAo~2ZEWVn_s zTiz^hUfnh$93Z$5MHl{5V#+_I)=_9I90I`0mS3A)R4T8yy@^|tW$JeMK`bguc*b5B zVAr3;pknw3-`Gv|BoV z5tf9vhIe)~g^%)93RQFOg40zGH}OuG*TCpRVEdmHmr3|3b+*Mv1Cl10@DlX01yI4A zG8;e_>27?`g=!UF^yMH56&k?+uJ2wf?}6wm{tyZqUJ4*0p5?O595|s(9xgxyS;d%g zYSG#on`|MAhwQOy55=HzZTT`wcgKcvHm~EH0YB|XMrjfz#Y%N?wZ=-pwx;kN4%7b8 zldah=6=83<16%Xs+ct*x0_$eP$1z=qf1w1l(~&K{{1&L52CE;FrGZg*yGzhh{{8q( z@Im_)`yi;`cj!~xSQnI5Mwc-yC`xaKygw`z0E2tY_Gv69j}JIilNBipT@5Uq9TXIl zS<8O;B^P9C4*Fz%4hLo42^(6=419?x%b-fsv?H#iV|}=B^7;8IR(vsgY}P;X8SkfP z$&zK!-{7WNzW!W)ty?M2SqFsr$G(!aQSL02k5D(EZ0*!$;7SUrX!$)v_2HxU;T+Xd z^`(_Bgug#{_CUD!08>z1i==Q}*?QTAD=ry>g*xSTSh-=T0NUMrt`Mq9f<#UN;Km#i zS^e3;F`y%1V2!~OpUv*x{}cH?Gp+ayKwSl>GSgj{ii+r@8!_u9DliT+{e~H>`70i4 zSyO3 zZtGLtMBXE=)k_f{&|nB!Z~r}5Y*OWV@>SK#A^Koid5FT^FW4L!x;=`G?{^qu_M6Wh zf1%T5*nRi(71^~6?_WjBsxQeDR!U@1nJ@ZB`0BY|Prv@ijT_=9hFcT6hprl!i-T|* z*M+&1dj#;U7aW2|aN)f5jK)9jwP0tW>htvF*?-v4=jjxkJ&xeM3ltxKFmDX{isEmy zzhQg$s;?XdZP@N%l)YSC1jk9147ud@fQzXpXIYb{9xwOS;~O0Il~-mThd4h*xF(qp zMd6CVUxAol9YwtgrFX)l59i-Eur+|Db$J8nlwTZ}Q#lL>o}hAp&j-c;L?D)x0CZ?K z`19~%)yKez^&3dgb|EjrYK0F zBf5D<2UKRXT#DyUd-aM4sinn@9vRMNyXqgf<#Tw}=Xd!^^>D=|OF&CxSD*ymu>Xg1 zeQqp-PpeJ?r3A>w@(V%vs~mD)5rtn+I7D1^1CYYEK7YNR;2$%JPkzf;y`qY+fW3Y( zx*H#eSJIGWHGZx8C1g^U!W!G_pbrcH!%_h>)Rj#83Tsv&4BllQySC5Dwc2&?T-4Gs zNVcdo+sgX(*TZ~T8=xh{nx=DC5;_ZD=`8-!Oa;Dg()szPt+lola=WSoNUwZ=N%^vD z_I)Y`;jXm&R(=Vd2xl`|V3pukJyaiq$s!MuORK{nK7b))4<_vP2_Sn0Y8F7Bm>Fb& z?Hx=>ZHt&r<`K+o58ggq929)|bJ;=$&&~nG+F>Y#t+{xwL1NeBGtW=^x`K~wTsY;t z{G--iPs?O?mPS5R*QNaE^IwQET0vIz)>@`=t9`*II7bL>!5;_x2E~YfUuZBs@WW$L zO)AmAr~Yhi!}zN5W_a8TOACO#+gbr=+FGVtBvtbDs6#CpSOGS;r*$+~#>~J|S7mq6 zS9v$gsIvlH{8Me@8++Q!2DjFdtzOYfID~ghhc6uTq5ND-Z<}I_v9`}c@hBa_f3EUD_}7rPtdMvl64|IM?>Aeif=lo*2J=b5 zYi9po7XC>0$OrY*C*jYOSqV`Z(`aWIkk&f*%F)uxp?o{M6hNz!Vq~MOO4A6m*UyE* zuS9{GYNbZ7U}*f1Af5!60kjqWnq7fe{Y5IG9fiJ(Io67mYUa#yWk+Ki)^QZ~HB&#B zpQTT6n?P<)h1K#CU+ED3Ym^W8idlOxlxNTJs<$j%2vazZ@JoVI@S5V;p7Qo`9Pxqp zp(hw-Z4qdE#Ei!17CT`m47xF+o`CPbbFWJ8K-$3=)tC|{Tu+Ooqr0MU+y|&AhxYa% zq5uT`B`#{qzmWY4mcaLTngWB`sB{!Y%?4P@1vAS}2V87y?+V{ACE$u=+uZ>PKk*b_ z>BwoL2|xIX`KEGY3D|T+gk!ScTK>iC!zw<(YxjfvVtkxy8)w z+`Bs5+g}t?H_fF0eJo^?DS;2dRW(q+4IWI zHs-Sr+FnErig=nHjQioAGd{cyOXrse-$Z^oq*VP>S9Ph*{;YnxM&>ti?A6z%{d4|K zTPke%NHUCak3@Sam7{X`O%NP{$FfpBalw%1J@~K22aclx*rWm+ zmr|H3ov(zmp`+Z23iW+g5V!C5LoYN=dqE|wqwjO(7TSt}+PA*HRnQKW7$Q~GQe1>= z9xe6wrtl9){T~rj9a!mO0@cE=N{N+CbP?7KTRX#-4*WoVp3e>tZUT!>z6#fS#Uquc zQ+nMcSL83HGfw3T4#8u2#ihb2`k?j`-QffA1NAoDCYZVLT4VokqwbH+A7tld@38_4 zAEKAxrvM@$AlOm}mp(*M5HvD2@5R6e9XcoHxNo-{h71iQWc1Y^xhmVhr>S2JcRm8_ z`W&{lv`{sivu{~=Wg+N!4U2g$-~WC2Mb=VVURk%E6|VOd&t#yIPs-1-CXU7)_EWhk zUvSs}<4_WQ>ltRb(H}lAeyDVGyqeV0R44E1ST4LYh7K!l*eU=-e*u(oF-RnfPY_fR zufFSquFYYpy>2bEe~Lb+eYLnKfyXY-R&b2g=@4=u@Q&qI>}yN4cVEIUdaDgz#qnDg z@BiNX3e{1*o)ykpy$40OBE9Zhndpm2l%w)guF5yz7d%7BMS6?=;sYwk2acjk^-j;e z2SEHZ?A-8E0C6nTMe8YV=snO|25Vnc_k&#>`Guhb?&JIB;snveZ1Ru6o~$9gg74v zOGyYKo?;PFCi`*l$b98LEQCMOn<^h8K7bia0pb@m2UEsBe0;?DX?V>5h_=H}0Z^+r zQp+HfzUHIPM~SFLSg4$Q5qvBA+7F$6Mn02!oX@lS{SdoGCGhw)*|O0M;S?4?{2Aue zN=FTL7EXe%Fp)*U!1oPqG(M6H?_5$H5^ry5G&d)73CDBP8Rh69_FUim1$ zVIlk?YNT_dyM*6be=Z3t2}9QZuZNG6ETyyiVR9Ls3Lvmzj(Ohsw`Gq*+CM|9W`0qh z8?~L#^nJP6L^t4g?*>@9p^uYR+Idb0e&FhC6BYjqg1?mzxm0hzPi$_l>}`54pRWUi zcBNN7$}cG2A@5}VXWcUY82~+A^am>i%^d@(rTC>8{(0E=$kz=x4-I)76cs2cUW5&g zyEqQOI`3aop+)w_vUa0A-&E20z=}LM)>D$OF7I| z07h&Kab{1o=*y309^c^mC1$LqxzZ7!#_Gx3LsYa@els1tSI^+{&wiwKS|i_A#)CBs zm{}O4CB1VvS@^(n^UFCN>{{wIIx0B{wOk?aN$69R(zC`1m>&Ue+TTB#6@vev{FJXR zA=YN1A&R4US*PeMdW-Hxf9jw3!BF9Ns1x6ae=KY`bPp4qOaAb+0Ae@buRqWJ40RuX z*dwX8TLFpD@%dNlxCMrI7Dn!whMU>8i?D>IL4KQBefs~?-jN^szc+`UbIjFy>Cmi& z!L{O1O3t18x|Z+KTMZYg?YCzZ$>{TH9sKn5-1jP9<`dT)$*qaLVu^d|1^a59l;gK zSNR|Kmi$BH$)FhPEmi)Ium-@DT7T#(I#b)eTK|L@@ks;c8;EZzd}Q~->@vI+K-}%c zK-TRr@l!Cf76pmOeibo!;y+mdv%*t+=T2_0TLC6`h&fC>?cDsB1J22RN-KQ{LaL2A z+Q(n7w#^8f*jjB}x~JOUMB?5;E`{jpeTsu`>Aj6a(8DJ3@9fOOr}n2jmFrz5axi#^ zF<4!qC-j96W`Ub6RIhjI4~E1iXuYSzH&&grYjCjEZ5QAg-U=X^seid6Tg582n_&3S z;HqjQn=og04iDjG9S4e@JN@+hC}ZrwXyO`7$aQSZXpOat@2AXU97kPrVy~R&S{8P% zrP?*s7J-M!H3OoLbv`7YFj+wfH{{7T~~Enk&G`r|q}%o@0;WHpT#l-&a1419^M z(D!XrXB~BAuv8j=J9i0R`ZDrp@N$#*#_NNE8>ViUD*&h#2X98#g&#oF^@J2_0(y`Y z!gKg-XzcC`SIllrrnNVsd!7C|Wk-x`=6=>a^)2}sTROte*~NE$Z1uH=U#)b((hjs$ zAQ756%0g)7xry@yTUUHDJ5fI2O{8yz)%8BPBozLf@a5%fKnZlHeBii4@E}gz2A|** zyo1642RIWwMOUhzFDWHOS6wfEs)tY3iC^q-m=69W(twM7z(v8CabkW64Etu({%U?M zEHeIa*u(O5)xwYoBkIEsm;5aIn7vU1+d5!3d-fth($2Nm&!7I*{P`U8`7v7j6Jh2y zm~}G%sV=c5b|)B}wneC#Iw`mbSVM~%>%#k=_$D9f^Z~B?ptt8Q;LkiKKVnN)cs~OAT3~I&U|+{u zwX)vQCP7aWbzh;nQ;Syz7RK|5>l>TLg%2+J5?>OQmDB3y3do=Fp?uudwc*RGkb4c5 zz#7s>85Yy0F8WDe3T5Dfs~SMmC(PPWFh6Oj3twIM-Ao6SFo;%N7Yp0nmlD0Eos@q9 zA%7>o)f8Kg-!|r#>1qd`)HBSQT{m$uc$&YI9 z4DVp%`n53V7@(8jt3}mmM^3*)#oo`VjVAT9ldqjo?aQA0&+Oj~^oWm2HA>G1zAb+@ z=j2^PdBV?n(o1OE6~5o4XIBTpnZ^>dZFmFa{iLxzT)X%?OvRe(T|W;W;A^Qa2cMi@ zh|+uqC8*_>GBb$5Zh}Ag!qX(?{jXSfXLjxGr}Y5Wc_*_=th1BJhf=aan@^veUyl`V zEUc;pLa8etj!439(kCl{R1;z3Tlv<&M<2P7qpt#%fHsrFmU-7PKnZD;St-v$-kiUz zvpu|-FVda_T%!=i4G6JJcv%Kz!B1lEpy0*hLj*|1Klv6P}egA-GczZA#{ex;UP31^<2?@vGc6ol?| zynO+ZA*S8Hz2K}zX{9gNB`A%PEl*{TsHqiv9NUG$=;osrUw!hwvdi_lV)EO=HZHBP zYd{oc87=?;>Utm_(HcLcK6_f( zxC1Y;d?pjy2i-`rJxYOet&}(qRbH~pW}cd##41QxFjIkfU6t@tAUQkqy82#GKnr!W z{%>4xNA~Ex(D#psudqyd9{zqb4`=>eehyPYmw*ACgC{G%gi4&ppIwbhxaYr%mYB0J z80e}Gzu-iiZ_d9t`*k(4V8+yvOSqF0Q_IDcDFr8g#+>{B`V=okz)nKIUrH|f^Nw}* z_H`qPytnu<$89PBAHbB^J`Stpw+P!sRReM*3nP`^uOF4A-cM!VkuJfdD5e+lsNI!1 zAVfGzqT~u83co-_qS8D0T3@JOeTuCS0eqULyBUwTjZE%dG&g&S@E$H&S_)H z!%oltracdDXRz;;AiWLqNBjKs!BnRKe(7F0>y4DuL@bm~FT5lB?!IFBtMYOMqx$nc za)r4tb7!8Af0Cy1pQyB0tkEhDMi4^BOZ0h`6AO!x#>%I4{Ufd1&tc-JMEUNNQ+bKFjknyY1wt?Sft@((b6@&RBT&u^_^!~6W6AL0~S zepd)CV3l{=s2ia_DJd<@Mo)$1!2B>~!o3*q_cNXFSMa&~zU}y?;IVJXM}f~-3|hVf z#rXFq(dUx4Frsk_`5KRK@~Ko@l>+dOs!V3j?|&`4EBh?q8eb^hzT%vH_LbUJ>M5Rp z6>x`~kbeym@kH1~=f3OoAaRNdRur$O08*&U9uQ{~v6_g!1^+2pyvJewWpMOUn4f$^ z2FLet8XLk$7<3A)=MGjz!EYU8t`mx+z9wnBnfoW&w zuf%%#2(9jmfnzgp_}Y4hPpOkSDDH#_Ijd-VuUOOtv9tKlp`O=L2AX-0AnPMz!V>^k zQpHo<)veH(j{0f!p5u}S!u{&yRLW0f@G=SiT}xgW-s1zJ`(EoWBnhYcuCq~ZEmFy| z=_iD1xH$!6=#ye2;I?Ffn+O_DIkpOsOxVLGzM^qEHHYP=WK%1L-^Bxs=j6T zv&DDOol$6o50ufq$U~fOP0Yjf56#Wg0=n?; z$RM93+J#H0TX6K8ym4(7&ZeGkM?jB2%+xK~9EDQ-aCcTQo=VU5q6kst(^K-LHT|A+ zmXxOo{!%Q@vl1`9FF$Krv<4tY(Y5&c;ybget?Uy0Bb57;SHa^xRqI}rEzCcr2w#n9 zdm;QZk!b5Airm|x8{@Hru_U7YoSqVAW)%tNz0&dXI5B2L3G_&Bpm`c4li+K#U7J%h z1^6Jp?@Tx<%zdae3Vxi`uylLlQYxR7mQ7p7hJR$t<1Ik`90X2v&{_+Pw5w}mgK`xx zOTw#&AX=V_J9k2Zp~pilJjSzV#7^;hJ*RZ!sTN<|uW=}nm2{OZW2*0`F#$oYpZ$5? zyBePMy=wPWV|Y!|c(kI2os>^uitrP(Xr~iXgMOR%nIbTbbF4*CCPwKwy(g&ZJ$aR% zODQVp1(f>s>hbD*Ge0d^-T+j;VUGH`$G^|^RP~7Ec1u6sa^8sxP?yFBB)12@F}w;K zoj+Mwl7}IX8syu8=(SNtj0MmH7P$9O6p6AS*nP{G zXZzeEgAD{PW#o{RC32yJ>^6!goFAtFJ&gI+&%aFMkK8Fmndkj!@3FO>7 zoPJV%BFuX>cI5E{?#F#QoTzE1PMAx=D}fd+?dMIIJ$X;STXkn*f_bl|N2~lAxz|); zJ^5@U^&TOa{(S(R0bPC!5WCyi7=fznIMg`7`Yz_{LwFTR^`(gE3=r2$ zgia{~{C4o*tv0Z6?+O9s0FHe4PT@qv>1ype@pAIRvsnWjW3Kfa>*#OX%l-9>Z_DoF z8COkH535~;xSHz^1Eqm3MWK&-7)y2k4n^>C9uMa?9!}Jv7O|i#19ca4F9vm$V7zSW z;+fK>P1n!kY^9~wa@fDJT=!lErhYq`@%2LJc_V9NHu<#<;eM(H+2&Ex(o$V1gN@zc zXsm*lU;-RRO%JD*Q=||Oa4BC+>*>%E_22a~t04NquErCzu}ApSz1C5zA>pIo_LppR zzJuL-^9gg;gN`Y<<~wuN@bF9+=+T-f`i#@^1M)7WzD9&2VdR5xXk+nW9!2r1YUz=g;QB_b_`W)?~1oW_ztY3rP4iSD^Lid z*LQ{)i29*aa2EbF@HmCqk44#zK@mvFN~y{MQ1@sf!oG%(r|=h&v${xsS$r#BE3UX9 zXf;(}-*Y$MvgWoQ12ENWwPtFSdJE_5*1Z1DzYa}Z>c!)_S=8Im6}n!rU)Vag2h$g2 z#yqX17nAqSw}?Aj?hx5l+G?{5X#4vaiJyZq{NHt-{Tp>1AkU;TLU zosDXp*MFYF1%m@skD3D5X-t+{H0AM(Eq0IiwqR$~U3Xkm*Rvl$n)K~^cNZ{Xq9TeS zR>Wm1OIcW8Vd+iKrNe@PqTZ!Sv11{L1r@u-#1f2MiC9qVqM{~tG>Hl-Mx*=YuKM!+ z_6%cb+^#>-A4zr!e@Phju2i$Kz)#)GnXj-j(S^xHu=6~>8+Xj2{`rZ< z`q!vgc@bB+hE)d+lr$#UTI&bZ4frc4yle+?r8_ir@S*_~R?|;i&<51)Fk6?F;Wwmm zu|-w?9pt{wb@Rdt^M=~723ary6yj~nX4ar=E#3CPkP;JXxA!f5&z^Uk`+BT?@P}=8 z+t01;U8OtR*EjK-qeV+MKf6vId77#`reWO z$6qIBH+4vLB{pX}%ZA?Ix`FZWMDKx)kE%oW z7nN`47Hrd|EN=E}{73UwrdM2N++6=dQ{}sYqR)T0_;Rn^g~;Bct6q^WkL4aR$H~@K3Cr9nnl3zz9K3aI;MIw54y{nRO}g?n zyr-vdv>?;$#Ibus(vM}`AI>GN$X{-GqssEu>#&@i#f5_#m$W?Ue>JD&$GZHUi$}9$ z8{^!sXYSkd!TZAF*Z2AEzs;IEe`d=~lGb@}kcyR?^ zajm~m@Uyn5>`YX6iB^+b{e$LFx3@vFwf(UPaq)0s(dC*k7o0rIyz8%e5+lvq@6R_~ zxz|#C)Hi(N@x8+0(xxf?oQ@%5uZ{A4IMX9_L1~9=Qt!FSf_>A!dv{?=dA`jq&!ww; z9>2{n%lT(q)&MI z;@%Tx*y-7i)g$g?&yAdYG@-WnZVamcqU=@?H(=EP!O#t3H*+?8Tee3xoFA23pC&n9 z;wxpjKaiZNv(!|K4DxfRv!q&t6KSFgHU_hj5_Uq#Q# z&7({;w_aJQ$EVl$OtD^_M0-E&0r%$`7w_k)xw?Cz4OZ`$EnMZ^>vVkNqr>;B0#_a{ zcxRb(zOybF_qy$;ejS(NmJFXD`)i21NyxL3arQ+)@l)%6 z8(!A=epr{;o%au&Zl|e=7akovtD$oA#H^%m+}|9#cKwQphig&e_Ecs_%@4-{BZo!q zZM~gOU_xl>(VztjkTK(kFGe>$iN63<6`;BeS_kaB= zuMO-DJ8cepx%<||F>7BAKD5X6u$N|Y-+P-IDWUh=mz+K$j2vh8@qw8p%HdwoixPG_$i0sk zocvyY9l3klwfYf@{#LyjSjG$lm+18`JO}hmZA{y4H*@7jyT5nla~og1bKaND41XcG zcYJ;Dtd#`q*wpWs9f6zeesHRKl$mheVv{^ zE{HUotcs)0P<*v@`1Xhqm)GyhVeiXGUY-AT#{u@_!uVr}Z)dmqwEXwkHqz#cI@w!G80mpWf;G>do!>ZPCwWoSai%Zu_Bl!o}9SS@S)|c=J`$tH&2j zTP7YcP+&dVC1Q)Gj=8poP23HW9&WtnZSBAMa%bip{lg~f;$P#>{xh^|gI%&mDbapB z>z?0?u5UB}3p>Iuovte1I()tGO|(Vu0PVpapPNnU-qd6hgU-wbQy@?vX#BdEIE`<&Mp4Zu!7|+OS3# zaVucTh1PjJBY7R8J01Uw;0xr#*FOm|ESG-eXn)_v>m;<4{t+md>}HFxqNm=pd!kF|~b zSS^l@PF!YvOmon0P}|?4n{8V|(reEDc7KY6e*c7qd1>+SPZWJgHg+v*I0k#B^9H{i zr4>P&qIK52&5sxK(4NjXvn6h!+>>Ykqz}DS(I=M8{TRm^Nz=CfHeWmUO>xEiHG@(s2A=2~ogy@0 zW_;hWJoMb<%zY|GQ%79pUC(YqU-w)S-jSBN*4l<0_)PNegG^3(ERJ`k7mB360zIv;v(rH%H@^o05^1TBwV5OD;&Arp4t5x5C^!8kkhAZML*>qS4iE zIYn7nm#zET*xEZrDZ__nrj_Vou>ZU>(k(SBS*L5VBTbteNHeluL{4&cT7)(=H|G+A z$zsQRqEm~SPs21_oHAUZO)W$K$pt0rSR9QqJj942(a}K}9+*~=HpTBVoQphuL_uzD zA!%aeL=5y8HFlCXAS`}L`m~I!99{A3d5c#!Z9RCTl`o% z@Cj6B!sgTflg09)GZ+NRiAHl`5_CEPSZr{w21_=B$)K^hPI|f}jl-tnj8zR*Y!;Kj z0D{XZ2P+1b2Q2g~Q2}-wHq(_s2Z8{g(HSII5nP}#d2BXO1{^+z1Hhp1xByH#jmB^U z;1V=C0Ldj`fIG6ff)gF3Arp;)fC^|dAdqVSj(KH>mC!>!iiWaHm`-J2jur!-k0gSn z2WtjWSTt15!WF&?0uZ3(AmGs)NpM8SEEW&wG=c|wa2D`M;0Oe$k4HGtT!GDEvDpZb z=7@A41!cf>7VvnK33T)om!N1)fGa${paR%#)X0tIgh1Wg0a!Ge7lD2iU_AMHo;8z( zTL=!1&d~EffIdc-3kZV7_V4j2@HDWFc-U zdVGEjSaAe=a7Xkkl3`+uHBI1Li(62HITaNax&Z~$fzwxf9%^E+J0EQPKp3*zEIT>)H#oRX}~(j^9wWO;?YA|$pbTbq)E_LM3M)J)E4BRWMvSN-4#KQ1o=8uFhGgEvRs!55FD!0K{^Bmhyg@0^s>VgG$kEMN-}aX zARDHZV3MjqCIRphrz2T9wHNSyVwpS$s>(^sXcGF*EUyHmTq+g;iDy9#AeH$CiL+-12dlzV($WHHkV1}T zq0iYukVrx5FDuTJE0xlzB`S#mWKwW9hEOcQ5SA1c;BTpgg&0Dq#27*n0VzP84cXb5 z+N@m2R#S!=^JkJs4y4)^veVPEAxZ583X$JDDy@WKOsn|Vgyh&LOe=|B9ngKmvH)e6 zIwoBm6B!nwkc<4N+_WUYSK=QOf^3#is$hR9uGXSI%PDsnvzwd`{ctEGQ6eTBW_vSK z0~n}=*RjEXy#Z;T26!r{1rqewj6*zi1}I04a)SvN=25eS)CkkxVBAU3ObnkWByOgf z{&P=KoR!ob(qM+%D1>6@M-6fPvjmC@SJ7pkmXUqIXPyc$#T|N(B z`i5FXfkqQZ1Vd@DHER39|7lfkFgNZ&UP|S^+WsRLqkNQP6icb2gc;pzG^`4R85LI{ zOtk)APgFoZBcwVC;{V~v|LAyh8-?%_%1^y9R8?O>@;RtjM?Z(#82JBA157cDgB}|g z>Jba!8m&aOg}v(69=#Xlw%O6BfMzjx?+l%>KZ`hXruuICwFc zEMO9VRgf>>u^faPj=LiZpD9Qnc~%TMk3b=OUKv>Pxdem5q2tpA>J?z6!!izRK2G=o ztn(}m7QG6v6i`KwMer5_+8`F;=@*McW#B=ALN1re6;io>0NynCqe7aG55V{^!0SW^ zG3nDarE_C)ro~cq#YUZ+lNhsbL1KJPawJ-#3dv2I1o~o_oR|};0=WW~B)~$lFdH&R z2oOt9SZXb3r)ZAk<3%Y1Kgq<5g%BMH3$w<{#3)bbKQ4cU`{)_E2?_}bJR!(r!o1kX zTqWL1Mm&Ca-(_SPK!!Jn9d-2thsPy^2aAQ& list(txid, height) + self.history = storage.get('addr_history',{}) + # Verified transactions. txid -> VerifiedTxInfo. Access with self.lock. + verified_tx = storage.get('verified_tx3', {}) + self.verified_tx = {} + for txid, (height, timestamp, txpos, header_hash) in verified_tx.items(): + self.verified_tx[txid] = VerifiedTxInfo(height, timestamp, txpos, header_hash) + # Transactions pending verification. txid -> tx_height. Access with self.lock. + self.unverified_tx = defaultdict(int) + # true when synchronized + self.up_to_date = False + # thread local storage for caching stuff + self.threadlocal_cache = threading.local() + + self.load_and_cleanup() + + def load_and_cleanup(self): + self.load_transactions() + self.load_local_history() + self.check_history() + self.load_unverified_transactions() + self.remove_local_transactions_we_dont_have() + + def is_mine(self, address): + return address in self.history + + def get_addresses(self): + return sorted(self.history.keys()) + + def get_address_history(self, addr): + h = [] + # we need self.transaction_lock but get_tx_height will take self.lock + # so we need to take that too here, to enforce order of locks + with self.lock, self.transaction_lock: + related_txns = self._history_local.get(addr, set()) + for tx_hash in related_txns: + tx_height = self.get_tx_height(tx_hash).height + h.append((tx_hash, tx_height)) + return h + + def get_address_history_len(self, addr: str) -> int: + """Return number of transactions where address is involved.""" + return len(self._history_local.get(addr, ())) + + def get_txin_address(self, txi): + addr = txi.get('address') + if addr and addr != "(pubkey)": + return addr + prevout_hash = txi.get('prevout_hash') + prevout_n = txi.get('prevout_n') + dd = self.txo.get(prevout_hash, {}) + for addr, l in dd.items(): + for n, v, is_cb in l: + if n == prevout_n: + return addr + return None + + def get_txout_address(self, txo: TxOutput): + if txo.type == TYPE_ADDRESS: + addr = txo.address + elif txo.type == TYPE_PUBKEY: + addr = bitcoin.public_key_to_p2pkh(bfh(txo.address)) + else: + addr = None + return addr + + def load_unverified_transactions(self): + # review transactions that are in the history + for addr, hist in self.history.items(): + for tx_hash, tx_height in hist: + # add it in case it was previously unconfirmed + self.add_unverified_tx(tx_hash, tx_height) + + def start_threads(self, network): + self.network = network + if self.network is not None: + self.verifier = SPV(self.network, self) + self.synchronizer = Synchronizer(self, network) + network.add_jobs([self.verifier, self.synchronizer]) + else: + self.verifier = None + self.synchronizer = None + + def stop_threads(self): + if self.network: + self.network.remove_jobs([self.synchronizer, self.verifier]) + self.synchronizer.release() + self.synchronizer = None + self.verifier = None + # Now no references to the synchronizer or verifier + # remain so they will be GC-ed + self.storage.put('stored_height', self.get_local_height()) + self.save_transactions() + self.save_verified_tx() + self.storage.write() + + def add_address(self, address): + if address not in self.history: + self.history[address] = [] + self.set_up_to_date(False) + if self.synchronizer: + self.synchronizer.add(address) + + def get_conflicting_transactions(self, tx): + """Returns a set of transaction hashes from the wallet history that are + directly conflicting with tx, i.e. they have common outpoints being + spent with tx. If the tx is already in wallet history, that will not be + reported as a conflict. + """ + conflicting_txns = set() + with self.transaction_lock: + for txin in tx.inputs(): + if txin['type'] == 'coinbase': + continue + prevout_hash = txin['prevout_hash'] + prevout_n = txin['prevout_n'] + spending_tx_hash = self.spent_outpoints[prevout_hash].get(prevout_n) + if spending_tx_hash is None: + continue + # this outpoint has already been spent, by spending_tx + assert spending_tx_hash in self.transactions + conflicting_txns |= {spending_tx_hash} + txid = tx.txid() + if txid in conflicting_txns: + # this tx is already in history, so it conflicts with itself + if len(conflicting_txns) > 1: + raise Exception('Found conflicting transactions already in wallet history.') + conflicting_txns -= {txid} + return conflicting_txns + + def add_transaction(self, tx_hash, tx, allow_unrelated=False): + assert tx_hash, tx_hash + assert tx, tx + assert tx.is_complete() + # we need self.transaction_lock but get_tx_height will take self.lock + # so we need to take that too here, to enforce order of locks + with self.lock, self.transaction_lock: + # NOTE: returning if tx in self.transactions might seem like a good idea + # BUT we track is_mine inputs in a txn, and during subsequent calls + # of add_transaction tx, we might learn of more-and-more inputs of + # being is_mine, as we roll the gap_limit forward + is_coinbase = tx.inputs()[0]['type'] == 'coinbase' + tx_height = self.get_tx_height(tx_hash).height + if not allow_unrelated: + # note that during sync, if the transactions are not properly sorted, + # it could happen that we think tx is unrelated but actually one of the inputs is is_mine. + # this is the main motivation for allow_unrelated + is_mine = any([self.is_mine(self.get_txin_address(txin)) for txin in tx.inputs()]) + is_for_me = any([self.is_mine(self.get_txout_address(txo)) for txo in tx.outputs()]) + if not is_mine and not is_for_me: + raise UnrelatedTransactionException() + # Find all conflicting transactions. + # In case of a conflict, + # 1. confirmed > mempool > local + # 2. this new txn has priority over existing ones + # When this method exits, there must NOT be any conflict, so + # either keep this txn and remove all conflicting (along with dependencies) + # or drop this txn + conflicting_txns = self.get_conflicting_transactions(tx) + if conflicting_txns: + existing_mempool_txn = any( + self.get_tx_height(tx_hash2).height in (TX_HEIGHT_UNCONFIRMED, TX_HEIGHT_UNCONF_PARENT) + for tx_hash2 in conflicting_txns) + existing_confirmed_txn = any( + self.get_tx_height(tx_hash2).height > 0 + for tx_hash2 in conflicting_txns) + if existing_confirmed_txn and tx_height <= 0: + # this is a non-confirmed tx that conflicts with confirmed txns; drop. + return False + if existing_mempool_txn and tx_height == TX_HEIGHT_LOCAL: + # this is a local tx that conflicts with non-local txns; drop. + return False + # keep this txn and remove all conflicting + to_remove = set() + to_remove |= conflicting_txns + for conflicting_tx_hash in conflicting_txns: + to_remove |= self.get_depending_transactions(conflicting_tx_hash) + for tx_hash2 in to_remove: + self.remove_transaction(tx_hash2) + # add inputs + def add_value_from_prev_output(): + dd = self.txo.get(prevout_hash, {}) + # note: this nested loop takes linear time in num is_mine outputs of prev_tx + for addr, outputs in dd.items(): + # note: instead of [(n, v, is_cb), ...]; we could store: {n -> (v, is_cb)} + for n, v, is_cb in outputs: + if n == prevout_n: + if addr and self.is_mine(addr): + if d.get(addr) is None: + d[addr] = set() + d[addr].add((ser, v)) + return + self.txi[tx_hash] = d = {} + for txi in tx.inputs(): + if txi['type'] == 'coinbase': + continue + prevout_hash = txi['prevout_hash'] + prevout_n = txi['prevout_n'] + ser = prevout_hash + ':%d' % prevout_n + self.spent_outpoints[prevout_hash][prevout_n] = tx_hash + add_value_from_prev_output() + # add outputs + self.txo[tx_hash] = d = {} + for n, txo in enumerate(tx.outputs()): + v = txo[2] + ser = tx_hash + ':%d'%n + addr = self.get_txout_address(txo) + if addr and self.is_mine(addr): + if d.get(addr) is None: + d[addr] = [] + d[addr].append((n, v, is_coinbase)) + # give v to txi that spends me + next_tx = self.spent_outpoints[tx_hash].get(n) + if next_tx is not None: + dd = self.txi.get(next_tx, {}) + if dd.get(addr) is None: + dd[addr] = set() + if (ser, v) not in dd[addr]: + dd[addr].add((ser, v)) + self._add_tx_to_local_history(next_tx) + # add to local history + self._add_tx_to_local_history(tx_hash) + # save + self.transactions[tx_hash] = tx + return True + + def remove_transaction(self, tx_hash): + def remove_from_spent_outpoints(): + # undo spends in spent_outpoints + if tx is not None: # if we have the tx, this branch is faster + for txin in tx.inputs(): + if txin['type'] == 'coinbase': + continue + prevout_hash = txin['prevout_hash'] + prevout_n = txin['prevout_n'] + self.spent_outpoints[prevout_hash].pop(prevout_n, None) + if not self.spent_outpoints[prevout_hash]: + self.spent_outpoints.pop(prevout_hash) + else: # expensive but always works + for prevout_hash, d in list(self.spent_outpoints.items()): + for prevout_n, spending_txid in d.items(): + if spending_txid == tx_hash: + self.spent_outpoints[prevout_hash].pop(prevout_n, None) + if not self.spent_outpoints[prevout_hash]: + self.spent_outpoints.pop(prevout_hash) + # Remove this tx itself; if nothing spends from it. + # It is not so clear what to do if other txns spend from it, but it will be + # removed when those other txns are removed. + if not self.spent_outpoints[tx_hash]: + self.spent_outpoints.pop(tx_hash) + + with self.transaction_lock: + self.print_error("removing tx from history", tx_hash) + tx = self.transactions.pop(tx_hash, None) + remove_from_spent_outpoints() + self._remove_tx_from_local_history(tx_hash) + self.txi.pop(tx_hash, None) + self.txo.pop(tx_hash, None) + + def get_depending_transactions(self, tx_hash): + """Returns all (grand-)children of tx_hash in this wallet.""" + children = set() + for other_hash in self.spent_outpoints[tx_hash].values(): + children.add(other_hash) + children |= self.get_depending_transactions(other_hash) + return children + + def receive_tx_callback(self, tx_hash, tx, tx_height): + self.add_unverified_tx(tx_hash, tx_height) + self.add_transaction(tx_hash, tx, allow_unrelated=True) + + def receive_history_callback(self, addr, hist, tx_fees): + with self.lock: + old_hist = self.get_address_history(addr) + for tx_hash, height in old_hist: + if (tx_hash, height) not in hist: + # make tx local + self.unverified_tx.pop(tx_hash, None) + self.verified_tx.pop(tx_hash, None) + if self.verifier: + self.verifier.remove_spv_proof_for_tx(tx_hash) + self.history[addr] = hist + + for tx_hash, tx_height in hist: + # add it in case it was previously unconfirmed + self.add_unverified_tx(tx_hash, tx_height) + # if addr is new, we have to recompute txi and txo + tx = self.transactions.get(tx_hash) + if tx is None: + continue + self.add_transaction(tx_hash, tx, allow_unrelated=True) + + # Store fees + self.tx_fees.update(tx_fees) + + @profiler + def load_transactions(self): + # load txi, txo, tx_fees + self.txi = self.storage.get('txi', {}) + for txid, d in list(self.txi.items()): + for addr, lst in d.items(): + self.txi[txid][addr] = set([tuple(x) for x in lst]) + self.txo = self.storage.get('txo', {}) + self.tx_fees = self.storage.get('tx_fees', {}) + tx_list = self.storage.get('transactions', {}) + # load transactions + self.transactions = {} + for tx_hash, raw in tx_list.items(): + tx = Transaction(raw) + self.transactions[tx_hash] = tx + if self.txi.get(tx_hash) is None and self.txo.get(tx_hash) is None: + self.print_error("removing unreferenced tx", tx_hash) + self.transactions.pop(tx_hash) + # load spent_outpoints + _spent_outpoints = self.storage.get('spent_outpoints', {}) + self.spent_outpoints = defaultdict(dict) + for prevout_hash, d in _spent_outpoints.items(): + for prevout_n_str, spending_txid in d.items(): + prevout_n = int(prevout_n_str) + self.spent_outpoints[prevout_hash][prevout_n] = spending_txid + + @profiler + def load_local_history(self): + self._history_local = {} # address -> set(txid) + for txid in itertools.chain(self.txi, self.txo): + self._add_tx_to_local_history(txid) + + @profiler + def check_history(self): + save = False + hist_addrs_mine = list(filter(lambda k: self.is_mine(k), self.history.keys())) + hist_addrs_not_mine = list(filter(lambda k: not self.is_mine(k), self.history.keys())) + for addr in hist_addrs_not_mine: + self.history.pop(addr) + save = True + for addr in hist_addrs_mine: + hist = self.history[addr] + for tx_hash, tx_height in hist: + if self.txi.get(tx_hash) or self.txo.get(tx_hash): + continue + tx = self.transactions.get(tx_hash) + if tx is not None: + self.add_transaction(tx_hash, tx, allow_unrelated=True) + save = True + if save: + self.save_transactions() + + def remove_local_transactions_we_dont_have(self): + txid_set = set(self.txi) | set(self.txo) + for txid in txid_set: + tx_height = self.get_tx_height(txid).height + if tx_height == TX_HEIGHT_LOCAL and txid not in self.transactions: + self.remove_transaction(txid) + + @profiler + def save_transactions(self, write=False): + with self.transaction_lock: + tx = {} + for k,v in self.transactions.items(): + tx[k] = str(v) + self.storage.put('transactions', tx) + self.storage.put('txi', self.txi) + self.storage.put('txo', self.txo) + self.storage.put('tx_fees', self.tx_fees) + self.storage.put('addr_history', self.history) + self.storage.put('spent_outpoints', self.spent_outpoints) + if write: + self.storage.write() + + def save_verified_tx(self, write=False): + with self.lock: + self.storage.put('verified_tx3', self.verified_tx) + if write: + self.storage.write() + + def clear_history(self): + with self.lock: + with self.transaction_lock: + self.txi = {} + self.txo = {} + self.tx_fees = {} + self.spent_outpoints = defaultdict(dict) + self.history = {} + self.verified_tx = {} + self.transactions = {} + self.save_transactions() + + def get_txpos(self, tx_hash): + """Returns (height, txpos) tuple, even if the tx is unverified.""" + with self.lock: + if tx_hash in self.verified_tx: + info = self.verified_tx[tx_hash] + return info.height, info.txpos + elif tx_hash in self.unverified_tx: + height = self.unverified_tx[tx_hash] + return (height, 0) if height > 0 else ((1e9 - height), 0) + else: + return (1e9+1, 0) + + def with_local_height_cached(func): + # get local height only once, as it's relatively expensive. + # take care that nested calls work as expected + def f(self, *args, **kwargs): + orig_val = getattr(self.threadlocal_cache, 'local_height', None) + self.threadlocal_cache.local_height = orig_val or self.get_local_height() + try: + return func(self, *args, **kwargs) + finally: + self.threadlocal_cache.local_height = orig_val + return f + + @with_local_height_cached + def get_history(self, domain=None): + # get domain + if domain is None: + domain = self.history.keys() + domain = set(domain) + # 1. Get the history of each address in the domain, maintain the + # delta of a tx as the sum of its deltas on domain addresses + tx_deltas = defaultdict(int) + for addr in domain: + h = self.get_address_history(addr) + for tx_hash, height in h: + delta = self.get_tx_delta(tx_hash, addr) + if delta is None or tx_deltas[tx_hash] is None: + tx_deltas[tx_hash] = None + else: + tx_deltas[tx_hash] += delta + # 2. create sorted history + history = [] + for tx_hash in tx_deltas: + delta = tx_deltas[tx_hash] + tx_mined_status = self.get_tx_height(tx_hash) + history.append((tx_hash, tx_mined_status, delta)) + history.sort(key = lambda x: self.get_txpos(x[0])) + history.reverse() + # 3. add balance + c, u, x = self.get_balance(domain) + balance = c + u + x + h2 = [] + for tx_hash, tx_mined_status, delta in history: + h2.append((tx_hash, tx_mined_status, delta, balance)) + if balance is None or delta is None: + balance = None + else: + balance -= delta + h2.reverse() + # fixme: this may happen if history is incomplete + if balance not in [None, 0]: + self.print_error("Error: history not synchronized") + return [] + + return h2 + + def _add_tx_to_local_history(self, txid): + with self.transaction_lock: + for addr in itertools.chain(self.txi.get(txid, []), self.txo.get(txid, [])): + cur_hist = self._history_local.get(addr, set()) + cur_hist.add(txid) + self._history_local[addr] = cur_hist + + def _remove_tx_from_local_history(self, txid): + with self.transaction_lock: + for addr in itertools.chain(self.txi.get(txid, []), self.txo.get(txid, [])): + cur_hist = self._history_local.get(addr, set()) + try: + cur_hist.remove(txid) + except KeyError: + pass + else: + self._history_local[addr] = cur_hist + + def add_unverified_tx(self, tx_hash, tx_height): + if tx_hash in self.verified_tx: + if tx_height in (TX_HEIGHT_UNCONFIRMED, TX_HEIGHT_UNCONF_PARENT): + with self.lock: + self.verified_tx.pop(tx_hash) + if self.verifier: + self.verifier.remove_spv_proof_for_tx(tx_hash) + else: + with self.lock: + # tx will be verified only if height > 0 + self.unverified_tx[tx_hash] = tx_height + # to remove pending proof requests: + if self.verifier: + self.verifier.remove_spv_proof_for_tx(tx_hash) + + def add_verified_tx(self, tx_hash: str, info: VerifiedTxInfo): + # Remove from the unverified map and add to the verified map + with self.lock: + self.unverified_tx.pop(tx_hash, None) + self.verified_tx[tx_hash] = info + tx_mined_status = self.get_tx_height(tx_hash) + self.network.trigger_callback('verified', tx_hash, tx_mined_status) + + def get_unverified_txs(self): + '''Returns a map from tx hash to transaction height''' + with self.lock: + return dict(self.unverified_tx) # copy + + def undo_verifications(self, blockchain, height): + '''Used by the verifier when a reorg has happened''' + txs = set() + with self.lock: + for tx_hash, info in list(self.verified_tx.items()): + tx_height = info.height + if tx_height >= height: + header = blockchain.read_header(tx_height) + if not header or hash_header(header) != info.header_hash: + self.verified_tx.pop(tx_hash, None) + # NOTE: we should add these txns to self.unverified_tx, + # but with what height? + # If on the new fork after the reorg, the txn is at the + # same height, we will not get a status update for the + # address. If the txn is not mined or at a diff height, + # we should get a status update. Unless we put tx into + # unverified_tx, it will turn into local. So we put it + # into unverified_tx with the old height, and if we get + # a status update, that will overwrite it. + self.unverified_tx[tx_hash] = tx_height + txs.add(tx_hash) + return txs + + def get_local_height(self): + """ return last known height if we are offline """ + cached_local_height = getattr(self.threadlocal_cache, 'local_height', None) + if cached_local_height is not None: + return cached_local_height + return self.network.get_local_height() if self.network else self.storage.get('stored_height', 0) + + def get_tx_height(self, tx_hash: str) -> TxMinedStatus: + """ Given a transaction, returns (height, conf, timestamp, header_hash) """ + with self.lock: + if tx_hash in self.verified_tx: + info = self.verified_tx[tx_hash] + conf = max(self.get_local_height() - info.height + 1, 0) + return TxMinedStatus(info.height, conf, info.timestamp, info.header_hash) + elif tx_hash in self.unverified_tx: + height = self.unverified_tx[tx_hash] + return TxMinedStatus(height, 0, None, None) + else: + # local transaction + return TxMinedStatus(TX_HEIGHT_LOCAL, 0, None, None) + + def set_up_to_date(self, up_to_date): + with self.lock: + self.up_to_date = up_to_date + if up_to_date: + self.save_transactions(write=True) + # if the verifier is also up to date, persist that too; + # otherwise it will persist its results when it finishes + if self.verifier and self.verifier.is_up_to_date(): + self.save_verified_tx(write=True) + + def is_up_to_date(self): + with self.lock: return self.up_to_date + + def get_tx_delta(self, tx_hash, address): + "effect of tx on address" + delta = 0 + # substract the value of coins sent from address + d = self.txi.get(tx_hash, {}).get(address, []) + for n, v in d: + delta -= v + # add the value of the coins received at address + d = self.txo.get(tx_hash, {}).get(address, []) + for n, v, cb in d: + delta += v + return delta + + def get_tx_value(self, txid): + " effect of tx on the entire domain" + delta = 0 + for addr, d in self.txi.get(txid, {}).items(): + for n, v in d: + delta -= v + for addr, d in self.txo.get(txid, {}).items(): + for n, v, cb in d: + delta += v + return delta + + def get_wallet_delta(self, tx): + """ effect of tx on wallet """ + is_relevant = False # "related to wallet?" + is_mine = False + is_pruned = False + is_partial = False + v_in = v_out = v_out_mine = 0 + for txin in tx.inputs(): + addr = self.get_txin_address(txin) + if self.is_mine(addr): + is_mine = True + is_relevant = True + d = self.txo.get(txin['prevout_hash'], {}).get(addr, []) + for n, v, cb in d: + if n == txin['prevout_n']: + value = v + break + else: + value = None + if value is None: + is_pruned = True + else: + v_in += value + else: + is_partial = True + if not is_mine: + is_partial = False + for addr, value in tx.get_outputs(): + v_out += value + if self.is_mine(addr): + v_out_mine += value + is_relevant = True + if is_pruned: + # some inputs are mine: + fee = None + if is_mine: + v = v_out_mine - v_out + else: + # no input is mine + v = v_out_mine + else: + v = v_out_mine - v_in + if is_partial: + # some inputs are mine, but not all + fee = None + else: + # all inputs are mine + fee = v_in - v_out + if not is_mine: + fee = None + return is_relevant, is_mine, v, fee + + def get_addr_io(self, address): + h = self.get_address_history(address) + received = {} + sent = {} + for tx_hash, height in h: + l = self.txo.get(tx_hash, {}).get(address, []) + for n, v, is_cb in l: + received[tx_hash + ':%d'%n] = (height, v, is_cb) + for tx_hash, height in h: + l = self.txi.get(tx_hash, {}).get(address, []) + for txi, v in l: + sent[txi] = height + return received, sent + + def get_addr_utxo(self, address): + coins, spent = self.get_addr_io(address) + for txi in spent: + coins.pop(txi) + out = {} + for txo, v in coins.items(): + tx_height, value, is_cb = v + prevout_hash, prevout_n = txo.split(':') + x = { + 'address':address, + 'value':value, + 'prevout_n':int(prevout_n), + 'prevout_hash':prevout_hash, + 'height':tx_height, + 'coinbase':is_cb + } + out[txo] = x + return out + + # return the total amount ever received by an address + def get_addr_received(self, address): + received, sent = self.get_addr_io(address) + return sum([v for height, v, is_cb in received.values()]) + + @with_local_height_cached + def get_addr_balance(self, address): + """Return the balance of a bitcore address: + confirmed and matured, unconfirmed, unmatured + """ + received, sent = self.get_addr_io(address) + c = u = x = 0 + local_height = self.get_local_height() + for txo, (tx_height, v, is_cb) in received.items(): + if is_cb and tx_height + COINBASE_MATURITY > local_height: + x += v + elif tx_height > 0: + c += v + else: + u += v + if txo in sent: + if sent[txo] > 0: + c -= v + else: + u -= v + return c, u, x + + @with_local_height_cached + def get_utxos(self, domain=None, excluded=None, mature=False, confirmed_only=False): + coins = [] + if domain is None: + domain = self.get_addresses() + domain = set(domain) + if excluded: + domain = set(domain) - excluded + for addr in domain: + utxos = self.get_addr_utxo(addr) + for x in utxos.values(): + if confirmed_only and x['height'] <= 0: + continue + if mature and x['coinbase'] and x['height'] + COINBASE_MATURITY > self.get_local_height(): + continue + coins.append(x) + continue + return coins + + def get_balance(self, domain=None): + if domain is None: + domain = self.get_addresses() + domain = set(domain) + cc = uu = xx = 0 + for addr in domain: + c, u, x = self.get_addr_balance(addr) + cc += c + uu += u + xx += x + return cc, uu, xx + + def is_used(self, address): + h = self.history.get(address,[]) + return len(h) != 0 + + def is_empty(self, address): + c, u, x = self.get_addr_balance(address) + return c+u+x == 0 diff --git a/electrum/base_crash_reporter.py b/electrum/base_crash_reporter.py new file mode 100644 index 000000000..a5702e2e6 --- /dev/null +++ b/electrum/base_crash_reporter.py @@ -0,0 +1,128 @@ +# Electrum - lightweight Bitcoin client +# +# 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. +import json +import locale +import traceback +import subprocess +import sys +import os + +import requests + +from .version import ELECTRUM_VERSION +from .import constants +from .i18n import _ + + +class BaseCrashReporter(object): + report_server = "https://crashhub.electrum.org" + config_key = "show_crash_reporter" + issue_template = """

Traceback

+
+{traceback}
+
+ +

Additional information

+
    +
  • Electrum version: {app_version}
  • +
  • Python version: {python_version}
  • +
  • Operating system: {os}
  • +
  • Wallet type: {wallet_type}
  • +
  • Locale: {locale}
  • +
+ """ + CRASH_MESSAGE = _('Something went wrong while executing Electrum.') + CRASH_TITLE = _('Sorry!') + REQUEST_HELP_MESSAGE = _('To help us diagnose and fix the problem, you can send us a bug report that contains ' + 'useful debug information:') + DESCRIBE_ERROR_MESSAGE = _("Please briefly describe what led to the error (optional):") + ASK_CONFIRM_SEND = _("Do you want to send this report?") + + def __init__(self, exctype, value, tb): + self.exc_args = (exctype, value, tb) + + def send_report(self, endpoint="/crash"): + if constants.net.GENESIS[-4:] not in ["4943", "e26f"] and ".electrum.org" in BaseCrashReporter.report_server: + # Gah! Some kind of altcoin wants to send us crash reports. + raise Exception(_("Missing report URL.")) + report = self.get_traceback_info() + report.update(self.get_additional_info()) + report = json.dumps(report) + response = requests.post(BaseCrashReporter.report_server + endpoint, data=report) + return response + + def get_traceback_info(self): + exc_string = str(self.exc_args[1]) + stack = traceback.extract_tb(self.exc_args[2]) + readable_trace = "".join(traceback.format_list(stack)) + id = { + "file": stack[-1].filename, + "name": stack[-1].name, + "type": self.exc_args[0].__name__ + } + return { + "exc_string": exc_string, + "stack": readable_trace, + "id": id + } + + def get_additional_info(self): + args = { + "app_version": ELECTRUM_VERSION, + "python_version": sys.version, + "os": self.get_os_version(), + "wallet_type": "unknown", + "locale": locale.getdefaultlocale()[0] or "?", + "description": self.get_user_description() + } + try: + args["wallet_type"] = self.get_wallet_type() + except: + # Maybe the wallet isn't loaded yet + pass + try: + args["app_version"] = self.get_git_version() + except: + # This is probably not running from source + pass + return args + + @staticmethod + def get_git_version(): + dir = os.path.dirname(os.path.realpath(sys.argv[0])) + version = subprocess.check_output( + ['git', 'describe', '--always', '--dirty'], cwd=dir) + return str(version, "utf8").strip() + + def get_report_string(self): + info = self.get_additional_info() + info["traceback"] = "".join(traceback.format_exception(*self.exc_args)) + return self.issue_template.format(**info) + + def get_user_description(self): + raise NotImplementedError + + def get_wallet_type(self): + raise NotImplementedError + + def get_os_version(self): + raise NotImplementedError diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py new file mode 100644 index 000000000..50f5243d8 --- /dev/null +++ b/electrum/base_wizard.py @@ -0,0 +1,572 @@ +# -*- coding: utf-8 -*- +# +# Electrum - lightweight Bitcore client +# Copyright (C) 2016 Thomas Voegtlin +# +# 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. + +import os +import sys +import traceback +from functools import partial + +from . import bitcoin +from . import keystore +from .keystore import bip44_derivation, purpose48_derivation +from .wallet import Imported_Wallet, Standard_Wallet, Multisig_Wallet, wallet_types, Wallet +from .storage import STO_EV_USER_PW, STO_EV_XPUB_PW, get_derivation_used_for_hw_device_encryption +from .i18n import _ +from .util import UserCancelled, InvalidPassword, WalletFileException + +# hardware device setup purpose +HWD_SETUP_NEW_WALLET, HWD_SETUP_DECRYPT_WALLET = range(0, 2) + + +class ScriptTypeNotSupported(Exception): pass + + +class GoBack(Exception): pass + + +class BaseWizard(object): + + def __init__(self, config, plugins, storage): + super(BaseWizard, self).__init__() + self.config = config + self.plugins = plugins + self.storage = storage + self.wallet = None + self.stack = [] + self.plugin = None + self.keystores = [] + self.is_kivy = config.get('gui') == 'kivy' + self.seed_type = None + + def set_icon(self, icon): + pass + + def run(self, *args): + action = args[0] + args = args[1:] + self.stack.append((action, args)) + if not action: + return + if type(action) is tuple: + self.plugin, action = action + if self.plugin and hasattr(self.plugin, action): + f = getattr(self.plugin, action) + f(self, *args) + elif hasattr(self, action): + f = getattr(self, action) + f(*args) + else: + raise Exception("unknown action", action) + + def can_go_back(self): + return len(self.stack)>1 + + def go_back(self): + if not self.can_go_back(): + return + self.stack.pop() + action, args = self.stack.pop() + self.run(action, *args) + + def new(self): + name = os.path.basename(self.storage.path) + title = _("Create") + ' ' + name + message = '\n'.join([ + _("What kind of wallet do you want to create?") + ]) + wallet_kinds = [ + ('standard', _("Standard wallet")), + ('2fa', _("Wallet with two-factor authentication")), + ('multisig', _("Multi-signature wallet")), + ('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) + + def upgrade_storage(self): + exc = None + def on_finished(): + if exc is None: + self.wallet = Wallet(self.storage) + self.terminate() + else: + raise exc + def do_upgrade(): + nonlocal exc + try: + self.storage.upgrade() + except Exception as e: + exc = e + self.waiting_dialog(do_upgrade, _('Upgrading wallet format...'), on_finished=on_finished) + + def load_2fa(self): + self.storage.put('wallet_type', '2fa') + self.storage.put('use_trustedcoin', True) + self.plugin = self.plugins.load_plugin('trustedcoin') + + def on_wallet_type(self, choice): + self.wallet_type = choice + if choice == 'standard': + action = 'choose_keystore' + elif choice == 'multisig': + action = 'choose_multisig' + elif choice == '2fa': + self.load_2fa() + action = self.storage.get_action() + elif choice == 'imported': + action = 'import_addresses_or_keys' + self.run(action) + + def choose_multisig(self): + def on_multisig(m, n): + self.multisig_type = "%dof%d"%(m, n) + self.storage.put('wallet_type', self.multisig_type) + self.n = n + self.run('choose_keystore') + self.multisig_dialog(run_next=on_multisig) + + def choose_keystore(self): + assert self.wallet_type in ['standard', 'multisig'] + i = len(self.keystores) + title = _('Add cosigner') + ' (%d of %d)'%(i+1, self.n) if self.wallet_type=='multisig' else _('Keystore') + if self.wallet_type =='standard' or i==0: + message = _('Do you want to create a new seed, or to restore a wallet using an existing seed?') + choices = [ + ('choose_seed_type', _('Create a new seed')), + ('restore_from_seed', _('I already have a seed')), + ('restore_from_key', _('Use a master key')), + ] + if not self.is_kivy: + choices.append(('choose_hw_device', _('Use a hardware device'))) + else: + message = _('Add a cosigner to your multi-sig wallet') + choices = [ + ('restore_from_key', _('Enter cosigner key')), + ('restore_from_seed', _('Enter cosigner seed')), + ] + if not self.is_kivy: + choices.append(('choose_hw_device', _('Cosign with hardware device'))) + + self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run) + + def import_addresses_or_keys(self): + v = lambda x: keystore.is_address_list(x) or keystore.is_private_key_list(x) + 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) + + def on_import(self, text): + # create a temporary wallet and exploit that modifications + # will be reflected on self.storage + if keystore.is_address_list(text): + w = Imported_Wallet(self.storage) + for x in text.split(): + w.import_address(x) + elif keystore.is_private_key_list(text): + k = keystore.Imported_KeyStore({}) + self.storage.put('keystore', k.dump()) + w = Imported_Wallet(self.storage) + for x in keystore.get_private_keys(text): + w.import_private_key(x, None) + self.keystores.append(w.keystore) + else: + return self.terminate() + return self.run('create_wallet') + + def restore_from_key(self): + if self.wallet_type == 'standard': + v = keystore.is_master_key + title = _("Create keystore from a master key") + message = ' '.join([ + _("To create a watching-only wallet, please enter your master public key (xpub/ypub/zpub)."), + _("To create a spending wallet, please enter a master private key (xprv/yprv/zprv).") + ]) + self.add_xpub_dialog(title=title, message=message, run_next=self.on_restore_from_key, is_valid=v) + else: + i = len(self.keystores) + 1 + self.add_cosigner_dialog(index=i, run_next=self.on_restore_from_key, is_valid=keystore.is_bip32_key) + + def on_restore_from_key(self, text): + k = keystore.from_master_key(text) + self.on_keystore(k) + + def choose_hw_device(self, purpose=HWD_SETUP_NEW_WALLET): + title = _('Hardware Keystore') + # check available plugins + support = self.plugins.get_hardware_support() + if not support: + msg = '\n'.join([ + _('No hardware wallet support found on your system.'), + _('Please install the relevant libraries (eg python-trezor for Trezor).'), + ]) + self.confirm_dialog(title=title, message=msg, run_next= lambda x: self.choose_hw_device(purpose)) + return + # scan devices + devices = [] + devmgr = self.plugins.device_manager + try: + scanned_devices = devmgr.scan_devices() + except BaseException as e: + devmgr.print_error('error scanning devices: {}'.format(e)) + debug_msg = ' {}:\n {}'.format(_('Error scanning devices'), e) + else: + debug_msg = '' + for name, description, plugin in support: + try: + # FIXME: side-effect: unpaired_device_info sets client.handler + u = devmgr.unpaired_device_infos(None, plugin, devices=scanned_devices) + except BaseException as e: + devmgr.print_error('error getting device infos for {}: {}'.format(name, e)) + indented_error_msg = ' '.join([''] + str(e).splitlines(keepends=True)) + debug_msg += ' {}:\n{}\n'.format(plugin.name, indented_error_msg) + continue + devices += list(map(lambda x: (name, x), u)) + if not debug_msg: + debug_msg = ' {}'.format(_('No exceptions encountered.')) + if not devices: + msg = ''.join([ + _('No hardware device detected.') + '\n', + _('To trigger a rescan, press \'Next\'.') + '\n\n', + _('If your device is not detected on Windows, go to "Settings", "Devices", "Connected devices", and do "Remove device". Then, plug your device again.') + ' ', + _('On Linux, you might have to add a new permission to your udev rules.') + '\n\n', + _('Debug message') + '\n', + debug_msg + ]) + self.confirm_dialog(title=title, message=msg, run_next= lambda x: self.choose_hw_device(purpose)) + return + # select device + self.devices = devices + choices = [] + for name, info in devices: + state = _("initialized") if info.initialized else _("wiped") + label = info.label or _("An unnamed {}").format(name) + descr = "%s [%s, %s]" % (label, name, state) + choices.append(((name, info), descr)) + msg = _('Select a device') + ':' + self.choice_dialog(title=title, message=msg, choices=choices, run_next= lambda *args: self.on_device(*args, purpose=purpose)) + + def on_device(self, name, device_info, *, purpose): + self.plugin = self.plugins.get_plugin(name) + try: + self.plugin.setup_device(device_info, self, purpose) + except OSError as e: + self.show_error(_('We encountered an error while connecting to your device:') + + '\n' + str(e) + '\n' + + _('To try to fix this, we will now re-pair with your device.') + '\n' + + _('Please try again.')) + devmgr = self.plugins.device_manager + devmgr.unpair_id(device_info.device.id_) + self.choose_hw_device(purpose) + return + except (UserCancelled, GoBack): + self.choose_hw_device(purpose) + return + except BaseException as e: + traceback.print_exc(file=sys.stderr) + self.show_error(str(e)) + self.choose_hw_device(purpose) + return + if purpose == HWD_SETUP_NEW_WALLET: + def f(derivation, script_type): + self.run('on_hw_derivation', name, device_info, derivation, script_type) + self.derivation_and_script_type_dialog(f) + elif purpose == HWD_SETUP_DECRYPT_WALLET: + derivation = get_derivation_used_for_hw_device_encryption() + xpub = self.plugin.get_xpub(device_info.device.id_, derivation, 'standard', self) + password = keystore.Xpub.get_pubkey_from_xpub(xpub, ()) + try: + self.storage.decrypt(password) + except InvalidPassword: + # try to clear session so that user can type another passphrase + devmgr = self.plugins.device_manager + client = devmgr.client_by_id(device_info.device.id_) + if hasattr(client, 'clear_session'): # FIXME not all hw wallet plugins have this + client.clear_session() + raise + else: + raise Exception('unknown purpose: %s' % purpose) + + def derivation_and_script_type_dialog(self, f): + message1 = _('Choose the type of addresses in your wallet.') + message2 = '\n'.join([ + _('You can override the suggested derivation path.'), + _('If you are not sure what this is, leave this field unchanged.') + ]) + if self.wallet_type == 'multisig': + # There is no general standard for HD multisig. + # For legacy, this is partially compatible with BIP45; assumes index=0 + # For segwit, a custom path is used, as there is no standard at all. + choices = [ + ('standard', 'legacy multisig (p2sh)', "m/45'/0"), + ('p2wsh-p2sh', 'p2sh-segwit multisig (p2wsh-p2sh)', purpose48_derivation(0, xtype='p2wsh-p2sh')), + ('p2wsh', 'native segwit multisig (p2wsh)', purpose48_derivation(0, xtype='p2wsh')), + ] + else: + choices = [ + ('standard', 'legacy (p2pkh)', bip44_derivation(0, bip43_purpose=44)), + ('p2wpkh-p2sh', 'p2sh-segwit (p2wpkh-p2sh)', bip44_derivation(0, bip43_purpose=49)), + ('p2wpkh', 'native segwit (p2wpkh)', bip44_derivation(0, bip43_purpose=84)), + ] + while True: + try: + self.choice_and_line_dialog( + run_next=f, title=_('Script type and Derivation path'), message1=message1, + message2=message2, choices=choices, test_text=bitcoin.is_bip32_derivation) + return + except ScriptTypeNotSupported as e: + self.show_error(e) + # let the user choose again + + def on_hw_derivation(self, name, device_info, derivation, xtype): + from .keystore import hardware_keystore + try: + xpub = self.plugin.get_xpub(device_info.device.id_, derivation, xtype, self) + except ScriptTypeNotSupported: + raise # this is handled in derivation_dialog + except BaseException as e: + traceback.print_exc(file=sys.stderr) + self.show_error(e) + return + d = { + 'type': 'hardware', + 'hw_type': name, + 'derivation': derivation, + 'xpub': xpub, + 'label': device_info.label, + } + k = hardware_keystore(d) + self.on_keystore(k) + + def passphrase_dialog(self, run_next, is_restoring=False): + title = _('Seed extension') + message = '\n'.join([ + _('You may extend your seed with custom words.'), + _('Your seed extension must be saved together with your seed.'), + ]) + warning = '\n'.join([ + _('Note that this is NOT your encryption password.'), + _('If you do not know what this is, leave this field empty.'), + ]) + warn_issue4566 = is_restoring and self.seed_type == 'bip39' + self.line_dialog(title=title, message=message, warning=warning, + default='', test=lambda x:True, run_next=run_next, + warn_issue4566=warn_issue4566) + + def restore_from_seed(self): + self.opt_bip39 = True + self.opt_ext = True + is_cosigning_seed = lambda x: bitcoin.seed_type(x) in ['standard', 'segwit'] + test = bitcoin.is_seed if self.wallet_type == 'standard' else is_cosigning_seed + self.restore_seed_dialog(run_next=self.on_restore_seed, test=test) + + def on_restore_seed(self, seed, is_bip39, is_ext): + self.seed_type = 'bip39' if is_bip39 else bitcoin.seed_type(seed) + if self.seed_type == 'bip39': + f = lambda passphrase: self.on_restore_bip39(seed, passphrase) + self.passphrase_dialog(run_next=f, is_restoring=True) if is_ext else f('') + elif self.seed_type in ['standard', 'segwit']: + f = lambda passphrase: self.run('create_keystore', seed, passphrase) + self.passphrase_dialog(run_next=f, is_restoring=True) if is_ext else f('') + elif self.seed_type == 'old': + self.run('create_keystore', seed, '') + elif self.seed_type == '2fa': + self.load_2fa() + self.run('on_restore_seed', seed, is_ext) + else: + raise Exception('Unknown seed type', self.seed_type) + + def on_restore_bip39(self, seed, passphrase): + def f(derivation, script_type): + self.run('on_bip43', seed, passphrase, derivation, script_type) + self.derivation_and_script_type_dialog(f) + + def create_keystore(self, seed, passphrase): + k = keystore.from_seed(seed, passphrase, self.wallet_type == 'multisig') + self.on_keystore(k) + + def on_bip43(self, seed, passphrase, derivation, script_type): + k = keystore.from_bip39_seed(seed, passphrase, derivation, xtype=script_type) + self.on_keystore(k) + + def on_keystore(self, k): + has_xpub = isinstance(k, keystore.Xpub) + if has_xpub: + from .bitcoin import xpub_type + t1 = xpub_type(k.xpub) + if self.wallet_type == 'standard': + if has_xpub and t1 not in ['standard', 'p2wpkh', 'p2wpkh-p2sh']: + self.show_error(_('Wrong key type') + ' %s'%t1) + self.run('choose_keystore') + return + self.keystores.append(k) + self.run('create_wallet') + elif self.wallet_type == 'multisig': + assert has_xpub + if t1 not in ['standard', 'p2wsh', 'p2wsh-p2sh']: + self.show_error(_('Wrong key type') + ' %s'%t1) + self.run('choose_keystore') + return + if k.xpub in map(lambda x: x.xpub, self.keystores): + self.show_error(_('Error: duplicate master public key')) + self.run('choose_keystore') + return + if len(self.keystores)>0: + t2 = xpub_type(self.keystores[0].xpub) + if t1 != t2: + self.show_error(_('Cannot add this cosigner:') + '\n' + "Their key type is '%s', we are '%s'"%(t1, t2)) + self.run('choose_keystore') + return + self.keystores.append(k) + if len(self.keystores) == 1: + xpub = k.get_master_public_key() + self.stack = [] + self.run('show_xpub_and_add_cosigners', xpub) + elif len(self.keystores) < self.n: + self.run('choose_keystore') + else: + self.run('create_wallet') + + def create_wallet(self): + encrypt_keystore = any(k.may_have_password() for k in self.keystores) + # note: the following condition ("if") is duplicated logic from + # wallet.get_available_storage_encryption_version() + if self.wallet_type == 'standard' and isinstance(self.keystores[0], keystore.Hardware_KeyStore): + # offer encrypting with a pw derived from the hw device + k = self.keystores[0] + try: + k.handler = self.plugin.create_handler(self) + password = k.get_password_for_storage_encryption() + except UserCancelled: + devmgr = self.plugins.device_manager + devmgr.unpair_xpub(k.xpub) + self.choose_hw_device() + return + except BaseException as e: + traceback.print_exc(file=sys.stderr) + self.show_error(str(e)) + return + self.request_storage_encryption( + run_next=lambda encrypt_storage: self.on_password( + password, + encrypt_storage=encrypt_storage, + storage_enc_version=STO_EV_XPUB_PW, + encrypt_keystore=False)) + else: + # prompt the user to set an arbitrary password + self.request_password( + run_next=lambda password, encrypt_storage: self.on_password( + password, + encrypt_storage=encrypt_storage, + storage_enc_version=STO_EV_USER_PW, + encrypt_keystore=encrypt_keystore), + force_disable_encrypt_cb=not encrypt_keystore) + + def on_password(self, password, *, encrypt_storage, + storage_enc_version=STO_EV_USER_PW, encrypt_keystore): + self.storage.set_keystore_encryption(bool(password) and encrypt_keystore) + if encrypt_storage: + self.storage.set_password(password, enc_version=storage_enc_version) + for k in self.keystores: + if k.may_have_password(): + k.update_password(None, password) + if self.wallet_type == 'standard': + self.storage.put('seed_type', self.seed_type) + keys = self.keystores[0].dump() + self.storage.put('keystore', keys) + self.wallet = Standard_Wallet(self.storage) + self.run('create_addresses') + elif self.wallet_type == 'multisig': + for i, k in enumerate(self.keystores): + self.storage.put('x%d/'%(i+1), k.dump()) + self.storage.write() + self.wallet = Multisig_Wallet(self.storage) + self.run('create_addresses') + elif self.wallet_type == 'imported': + if len(self.keystores) > 0: + keys = self.keystores[0].dump() + self.storage.put('keystore', keys) + self.wallet = Imported_Wallet(self.storage) + self.wallet.storage.write() + self.terminate() + + def show_xpub_and_add_cosigners(self, xpub): + self.show_xpub_dialog(xpub=xpub, run_next=lambda x: self.run('choose_keystore')) + + def choose_seed_type(self): + title = _('Choose Seed type') + message = ' '.join([ + _("The type of addresses used by your wallet will depend on your seed."), + _("Segwit wallets use bech32 addresses, defined in BIP173."), + _("Please note that websites and other wallets may not support these addresses yet."), + _("Thus, you might want to keep using a non-segwit wallet in order to be able to receive bitcoins during the transition period.") + ]) + choices = [ + ('create_standard_seed', _('Standard')), + ('create_segwit_seed', _('Segwit')), + ] + self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run) + + def create_segwit_seed(self): self.create_seed('segwit') + def create_standard_seed(self): self.create_seed('standard') + + def create_seed(self, seed_type): + from . import mnemonic + self.seed_type = seed_type + seed = mnemonic.Mnemonic('en').make_seed(self.seed_type) + self.opt_bip39 = False + f = lambda x: self.request_passphrase(seed, x) + self.show_seed_dialog(run_next=f, seed_text=seed) + + def request_passphrase(self, seed, opt_passphrase): + if opt_passphrase: + f = lambda x: self.confirm_seed(seed, x) + self.passphrase_dialog(run_next=f) + else: + self.run('confirm_seed', seed, '') + + def confirm_seed(self, seed, passphrase): + f = lambda x: self.confirm_passphrase(seed, passphrase) + self.confirm_seed_dialog(run_next=f, test=lambda x: x==seed) + + def confirm_passphrase(self, seed, passphrase): + f = lambda x: self.run('create_keystore', seed, x) + if passphrase: + title = _('Confirm Seed Extension') + message = '\n'.join([ + _('Your seed extension must be saved together with your seed.'), + _('Please type it here.'), + ]) + self.line_dialog(run_next=f, title=title, message=message, default='', test=lambda x: x==passphrase) + else: + f('') + + def create_addresses(self): + def task(): + self.wallet.synchronize() + self.wallet.storage.write() + self.terminate() + msg = _("Electrum is generating your addresses, please wait...") + self.waiting_dialog(task, msg) diff --git a/electrum/bitcoin.py b/electrum/bitcoin.py new file mode 100644 index 000000000..ccd57070f --- /dev/null +++ b/electrum/bitcoin.py @@ -0,0 +1,782 @@ +# -*- coding: utf-8 -*- +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2011 thomasv@gitorious +# +# 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. + +import hashlib +from typing import List + +from .util import bfh, bh2u, BitcoinException, print_error, assert_bytes, to_bytes, inv_dict +from . import version +from . import segwit_addr +from . import constants +from . import ecc +from .crypto import Hash, sha256, hash_160, hmac_oneshot + + +################################## transactions + +COINBASE_MATURITY = 100 +COIN = 100000000 +TOTAL_COIN_SUPPLY_LIMIT_IN_BTC = 21000000 + +# supported types of transaction outputs +TYPE_ADDRESS = 0 +TYPE_PUBKEY = 1 +TYPE_SCRIPT = 2 + + +def rev_hex(s): + return bh2u(bfh(s)[::-1]) + + +def int_to_hex(i: int, length: int=1) -> str: + """Converts int to little-endian hex string. + `length` is the number of bytes available + """ + if not isinstance(i, int): + raise TypeError('{} instead of int'.format(i)) + range_size = pow(256, length) + if i < -range_size/2 or i >= range_size: + raise OverflowError('cannot convert int {} to hex ({} bytes)'.format(i, length)) + if i < 0: + # two's complement + i = range_size + i + s = hex(i)[2:].rstrip('L') + s = "0"*(2*length - len(s)) + s + return rev_hex(s) + +def script_num_to_hex(i: int) -> str: + """See CScriptNum in Bitcoin Core. + Encodes an integer as hex, to be used in script. + + ported from https://github.com/bitcoin/bitcoin/blob/8cbc5c4be4be22aca228074f087a374a7ec38be8/src/script/script.h#L326 + """ + if i == 0: + return '' + + result = bytearray() + neg = i < 0 + absvalue = abs(i) + while absvalue > 0: + result.append(absvalue & 0xff) + absvalue >>= 8 + + if result[-1] & 0x80: + result.append(0x80 if neg else 0x00) + elif neg: + result[-1] |= 0x80 + + return bh2u(result) + + +def var_int(i: int) -> str: + # https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer + if i<0xfd: + return int_to_hex(i) + elif i<=0xffff: + return "fd"+int_to_hex(i,2) + elif i<=0xffffffff: + return "fe"+int_to_hex(i,4) + else: + return "ff"+int_to_hex(i,8) + + +def witness_push(item: str) -> str: + """Returns data in the form it should be present in the witness. + hex -> hex + """ + return var_int(len(item) // 2) + item + + +def op_push(i: int) -> str: + if i<0x4c: # OP_PUSHDATA1 + return int_to_hex(i) + elif i<=0xff: + return '4c' + int_to_hex(i) + elif i<=0xffff: + return '4d' + int_to_hex(i,2) + else: + return '4e' + int_to_hex(i,4) + + +def push_script(data: str) -> str: + """Returns pushed data to the script, automatically + choosing canonical opcodes depending on the length of the data. + hex -> hex + + ported from https://github.com/btcsuite/btcd/blob/fdc2bc867bda6b351191b5872d2da8270df00d13/txscript/scriptbuilder.go#L128 + """ + data = bfh(data) + from .transaction import opcodes + + data_len = len(data) + + # "small integer" opcodes + if data_len == 0 or data_len == 1 and data[0] == 0: + return bh2u(bytes([opcodes.OP_0])) + elif data_len == 1 and data[0] <= 16: + return bh2u(bytes([opcodes.OP_1 - 1 + data[0]])) + elif data_len == 1 and data[0] == 0x81: + return bh2u(bytes([opcodes.OP_1NEGATE])) + + return op_push(data_len) + bh2u(data) + + +def add_number_to_script(i: int) -> bytes: + return bfh(push_script(script_num_to_hex(i))) + + +hash_encode = lambda x: bh2u(x[::-1]) +hash_decode = lambda x: bfh(x)[::-1] +hmac_sha_512 = lambda x, y: hmac_oneshot(x, y, hashlib.sha512) + + +def is_new_seed(x, prefix=version.SEED_PREFIX): + from . import mnemonic + x = mnemonic.normalize_text(x) + s = bh2u(hmac_sha_512(b"Seed version", x.encode('utf8'))) + return s.startswith(prefix) + + +def is_old_seed(seed): + from . import old_mnemonic, mnemonic + seed = mnemonic.normalize_text(seed) + words = seed.split() + try: + # checks here are deliberately left weak for legacy reasons, see #3149 + old_mnemonic.mn_decode(words) + uses_electrum_words = True + except Exception: + uses_electrum_words = False + try: + seed = bfh(seed) + is_hex = (len(seed) == 16 or len(seed) == 32) + except Exception: + is_hex = False + return is_hex or (uses_electrum_words and (len(words) == 12 or len(words) == 24)) + + +def seed_type(x): + if is_old_seed(x): + return 'old' + elif is_new_seed(x): + return 'standard' + elif is_new_seed(x, version.SEED_PREFIX_SW): + return 'segwit' + elif is_new_seed(x, version.SEED_PREFIX_2FA): + return '2fa' + return '' + +is_seed = lambda x: bool(seed_type(x)) + + +############ functions from pywallet ##################### + +def hash160_to_b58_address(h160: bytes, addrtype): + s = bytes([addrtype]) + s += h160 + return base_encode(s+Hash(s)[0:4], base=58) + + +def b58_address_to_hash160(addr): + addr = to_bytes(addr, 'ascii') + _bytes = base_decode(addr, 25, base=58) + return _bytes[0], _bytes[1:21] + + +def hash160_to_p2pkh(h160, *, net=None): + if net is None: + net = constants.net + return hash160_to_b58_address(h160, net.ADDRTYPE_P2PKH) + +def hash160_to_p2sh(h160, *, net=None): + if net is None: + net = constants.net + return hash160_to_b58_address(h160, net.ADDRTYPE_P2SH) + +def public_key_to_p2pkh(public_key: bytes) -> str: + return hash160_to_p2pkh(hash_160(public_key)) + +def hash_to_segwit_addr(h, witver, *, net=None): + if net is None: + net = constants.net + return segwit_addr.encode(net.SEGWIT_HRP, witver, h) + +def public_key_to_p2wpkh(public_key): + return hash_to_segwit_addr(hash_160(public_key), witver=0) + +def script_to_p2wsh(script): + return hash_to_segwit_addr(sha256(bfh(script)), witver=0) + +def p2wpkh_nested_script(pubkey): + pkh = bh2u(hash_160(bfh(pubkey))) + return '00' + push_script(pkh) + +def p2wsh_nested_script(witness_script): + wsh = bh2u(sha256(bfh(witness_script))) + return '00' + push_script(wsh) + +def pubkey_to_address(txin_type, pubkey): + if txin_type == 'p2pkh': + return public_key_to_p2pkh(bfh(pubkey)) + elif txin_type == 'p2wpkh': + return public_key_to_p2wpkh(bfh(pubkey)) + elif txin_type == 'p2wpkh-p2sh': + scriptSig = p2wpkh_nested_script(pubkey) + return hash160_to_p2sh(hash_160(bfh(scriptSig))) + else: + raise NotImplementedError(txin_type) + +def redeem_script_to_address(txin_type, redeem_script): + if txin_type == 'p2sh': + return hash160_to_p2sh(hash_160(bfh(redeem_script))) + elif txin_type == 'p2wsh': + return script_to_p2wsh(redeem_script) + elif txin_type == 'p2wsh-p2sh': + scriptSig = p2wsh_nested_script(redeem_script) + return hash160_to_p2sh(hash_160(bfh(scriptSig))) + else: + raise NotImplementedError(txin_type) + + +def script_to_address(script, *, net=None): + from .transaction import get_address_from_output_script + t, addr = get_address_from_output_script(bfh(script), net=net) + assert t == TYPE_ADDRESS + return addr + +def address_to_script(addr, *, net=None): + if net is None: + net = constants.net + witver, witprog = segwit_addr.decode(net.SEGWIT_HRP, addr) + if witprog is not None: + if not (0 <= witver <= 16): + raise BitcoinException('impossible witness version: {}'.format(witver)) + OP_n = witver + 0x50 if witver > 0 else 0 + script = bh2u(bytes([OP_n])) + script += push_script(bh2u(bytes(witprog))) + return script + addrtype, hash_160 = b58_address_to_hash160(addr) + if addrtype == net.ADDRTYPE_P2PKH: + script = '76a9' # op_dup, op_hash_160 + script += push_script(bh2u(hash_160)) + script += '88ac' # op_equalverify, op_checksig + elif addrtype == net.ADDRTYPE_P2SH: + script = 'a9' # op_hash_160 + script += push_script(bh2u(hash_160)) + script += '87' # op_equal + else: + raise BitcoinException('unknown address type: {}'.format(addrtype)) + return script + +def address_to_scripthash(addr): + script = address_to_script(addr) + return script_to_scripthash(script) + +def script_to_scripthash(script): + h = sha256(bytes.fromhex(script))[0:32] + return bh2u(bytes(reversed(h))) + +def public_key_to_p2pk_script(pubkey): + script = push_script(pubkey) + script += 'ac' # op_checksig + return script + +__b58chars = b'123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' +assert len(__b58chars) == 58 + +__b43chars = b'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$*+-./:' +assert len(__b43chars) == 43 + + +def base_encode(v: bytes, base: int) -> str: + """ encode v, which is a string of bytes, to base58.""" + assert_bytes(v) + if base not in (58, 43): + raise ValueError('not supported base: {}'.format(base)) + chars = __b58chars + if base == 43: + chars = __b43chars + long_value = 0 + for (i, c) in enumerate(v[::-1]): + long_value += (256**i) * c + result = bytearray() + while long_value >= base: + div, mod = divmod(long_value, base) + result.append(chars[mod]) + long_value = div + result.append(chars[long_value]) + # Bitcoin does a little leading-zero-compression: + # leading 0-bytes in the input become leading-1s + nPad = 0 + for c in v: + if c == 0x00: + nPad += 1 + else: + break + result.extend([chars[0]] * nPad) + result.reverse() + return result.decode('ascii') + + +def base_decode(v, length, base): + """ decode v into a string of len bytes.""" + # assert_bytes(v) + v = to_bytes(v, 'ascii') + if base not in (58, 43): + raise ValueError('not supported base: {}'.format(base)) + chars = __b58chars + if base == 43: + chars = __b43chars + long_value = 0 + for (i, c) in enumerate(v[::-1]): + digit = chars.find(bytes([c])) + if digit == -1: + raise ValueError('Forbidden character {} for base {}'.format(c, base)) + long_value += digit * (base**i) + result = bytearray() + while long_value >= 256: + div, mod = divmod(long_value, 256) + result.append(mod) + long_value = div + result.append(long_value) + nPad = 0 + for c in v: + if c == chars[0]: + nPad += 1 + else: + break + result.extend(b'\x00' * nPad) + if length is not None and len(result) != length: + return None + result.reverse() + return bytes(result) + + +class InvalidChecksum(Exception): + pass + + +def EncodeBase58Check(vchIn): + hash = Hash(vchIn) + return base_encode(vchIn + hash[0:4], base=58) + + +def DecodeBase58Check(psz): + vchRet = base_decode(psz, None, base=58) + key = vchRet[0:-4] + csum = vchRet[-4:] + hash = Hash(key) + cs32 = hash[0:4] + if cs32 != csum: + raise InvalidChecksum('expected {}, actual {}'.format(bh2u(cs32), bh2u(csum))) + else: + return key + + +# backwards compat +# extended WIF for segwit (used in 3.0.x; but still used internally) +# the keys in this dict should be a superset of what Imported Wallets can import +WIF_SCRIPT_TYPES = { + 'p2pkh':0, + 'p2wpkh':1, + 'p2wpkh-p2sh':2, + 'p2sh':5, + 'p2wsh':6, + 'p2wsh-p2sh':7 +} +WIF_SCRIPT_TYPES_INV = inv_dict(WIF_SCRIPT_TYPES) + + +PURPOSE48_SCRIPT_TYPES = { + 'p2wsh-p2sh': 1, # specifically multisig + 'p2wsh': 2, # specifically multisig +} +PURPOSE48_SCRIPT_TYPES_INV = inv_dict(PURPOSE48_SCRIPT_TYPES) + + +def serialize_privkey(secret: bytes, compressed: bool, txin_type: str, + internal_use: bool=False) -> str: + # we only export secrets inside curve range + secret = ecc.ECPrivkey.normalize_secret_bytes(secret) + if internal_use: + prefix = bytes([(WIF_SCRIPT_TYPES[txin_type] + constants.net.WIF_PREFIX) & 255]) + else: + prefix = bytes([constants.net.WIF_PREFIX]) + suffix = b'\01' if compressed else b'' + vchIn = prefix + secret + suffix + base58_wif = EncodeBase58Check(vchIn) + if internal_use: + return base58_wif + else: + return '{}:{}'.format(txin_type, base58_wif) + + +def deserialize_privkey(key: str) -> (str, bytes, bool): + if is_minikey(key): + return 'p2pkh', minikey_to_private_key(key), False + + txin_type = None + if ':' in key: + txin_type, key = key.split(sep=':', maxsplit=1) + if txin_type not in WIF_SCRIPT_TYPES: + raise BitcoinException('unknown script type: {}'.format(txin_type)) + try: + vch = DecodeBase58Check(key) + except BaseException: + neutered_privkey = str(key)[:3] + '..' + str(key)[-2:] + raise BitcoinException("cannot deserialize privkey {}" + .format(neutered_privkey)) + + if txin_type is None: + # keys exported in version 3.0.x encoded script type in first byte + prefix_value = vch[0] - constants.net.WIF_PREFIX + try: + txin_type = WIF_SCRIPT_TYPES_INV[prefix_value] + except KeyError: + raise BitcoinException('invalid prefix ({}) for WIF key (1)'.format(vch[0])) + else: + # all other keys must have a fixed first byte + if vch[0] != constants.net.WIF_PREFIX: + raise BitcoinException('invalid prefix ({}) for WIF key (2)'.format(vch[0])) + + if len(vch) not in [33, 34]: + raise BitcoinException('invalid vch len for WIF key: {}'.format(len(vch))) + compressed = len(vch) == 34 + secret_bytes = vch[1:33] + # we accept secrets outside curve range; cast into range here: + secret_bytes = ecc.ECPrivkey.normalize_secret_bytes(secret_bytes) + return txin_type, secret_bytes, compressed + + +def is_compressed(sec): + return deserialize_privkey(sec)[2] + + +def address_from_private_key(sec): + txin_type, privkey, compressed = deserialize_privkey(sec) + public_key = ecc.ECPrivkey(privkey).get_public_key_hex(compressed=compressed) + return pubkey_to_address(txin_type, public_key) + +def is_segwit_address(addr): + try: + witver, witprog = segwit_addr.decode(constants.net.SEGWIT_HRP, addr) + except Exception as e: + return False + return witprog is not None + +def is_b58_address(addr): + try: + addrtype, h = b58_address_to_hash160(addr) + except Exception as e: + return False + if addrtype not in [constants.net.ADDRTYPE_P2PKH, constants.net.ADDRTYPE_P2SH]: + return False + return addr == hash160_to_b58_address(h, addrtype) + +def is_address(addr): + return is_segwit_address(addr) or is_b58_address(addr) + + +def is_private_key(key): + try: + k = deserialize_privkey(key) + return k is not False + except: + return False + + +########### end pywallet functions ####################### + +def is_minikey(text): + # Minikeys are typically 22 or 30 characters, but this routine + # permits any length of 20 or more provided the minikey is valid. + # A valid minikey must begin with an 'S', be in base58, and when + # suffixed with '?' have its SHA256 hash begin with a zero byte. + # They are widely used in Casascius physical bitcoins. + return (len(text) >= 20 and text[0] == 'S' + and all(ord(c) in __b58chars for c in text) + and sha256(text + '?')[0] == 0x00) + +def minikey_to_private_key(text): + return sha256(text) + + +###################################### BIP32 ############################## + +BIP32_PRIME = 0x800000a0 + + +def protect_against_invalid_ecpoint(func): + def func_wrapper(*args): + n = args[-1] + while True: + is_prime = n & BIP32_PRIME + try: + return func(*args[:-1], n=n) + except ecc.InvalidECPointException: + print_error('bip32 protect_against_invalid_ecpoint: skipping index') + n += 1 + is_prime2 = n & BIP32_PRIME + if is_prime != is_prime2: raise OverflowError() + return func_wrapper + + +# Child private key derivation function (from master private key) +# k = master private key (32 bytes) +# c = master chain code (extra entropy for key derivation) (32 bytes) +# n = the index of the key we want to derive. (only 32 bits will be used) +# If n is hardened (i.e. the 32nd bit is set), the resulting private key's +# corresponding public key can NOT be determined without the master private key. +# However, if n is not hardened, the resulting private key's corresponding +# public key can be determined without the master private key. +@protect_against_invalid_ecpoint +def CKD_priv(k, c, n): + if n < 0: raise ValueError('the bip32 index needs to be non-negative') + is_prime = n & BIP32_PRIME + return _CKD_priv(k, c, bfh(rev_hex(int_to_hex(n,4))), is_prime) + + +def _CKD_priv(k, c, s, is_prime): + try: + keypair = ecc.ECPrivkey(k) + except ecc.InvalidECPointException as e: + raise BitcoinException('Impossible xprv (not within curve order)') from e + cK = keypair.get_public_key_bytes(compressed=True) + data = bytes([0]) + k + s if is_prime else cK + s + I = hmac_oneshot(c, data, hashlib.sha512) + I_left = ecc.string_to_number(I[0:32]) + k_n = (I_left + ecc.string_to_number(k)) % ecc.CURVE_ORDER + if I_left >= ecc.CURVE_ORDER or k_n == 0: + raise ecc.InvalidECPointException() + k_n = ecc.number_to_string(k_n, ecc.CURVE_ORDER) + c_n = I[32:] + return k_n, c_n + +# Child public key derivation function (from public key only) +# K = master public key +# c = master chain code +# n = index of key we want to derive +# This function allows us to find the nth public key, as long as n is +# not hardened. If n is hardened, we need the master private key to find it. +@protect_against_invalid_ecpoint +def CKD_pub(cK, c, n): + if n < 0: raise ValueError('the bip32 index needs to be non-negative') + if n & BIP32_PRIME: raise Exception() + return _CKD_pub(cK, c, bfh(rev_hex(int_to_hex(n,4)))) + +# helper function, callable with arbitrary string. +# note: 's' does not need to fit into 32 bits here! (c.f. trustedcoin billing) +def _CKD_pub(cK, c, s): + I = hmac_oneshot(c, cK + s, hashlib.sha512) + pubkey = ecc.ECPrivkey(I[0:32]) + ecc.ECPubkey(cK) + if pubkey.is_at_infinity(): + raise ecc.InvalidECPointException() + cK_n = pubkey.get_public_key_bytes(compressed=True) + c_n = I[32:] + return cK_n, c_n + + +def xprv_header(xtype, *, net=None): + if net is None: + net = constants.net + return bfh("%08x" % net.XPRV_HEADERS[xtype]) + + +def xpub_header(xtype, *, net=None): + if net is None: + net = constants.net + return bfh("%08x" % net.XPUB_HEADERS[xtype]) + + +def serialize_xprv(xtype, c, k, depth=0, fingerprint=b'\x00'*4, + child_number=b'\x00'*4, *, net=None): + if not ecc.is_secret_within_curve_range(k): + raise BitcoinException('Impossible xprv (not within curve order)') + xprv = xprv_header(xtype, net=net) \ + + bytes([depth]) + fingerprint + child_number + c + bytes([0]) + k + return EncodeBase58Check(xprv) + + +def serialize_xpub(xtype, c, cK, depth=0, fingerprint=b'\x00'*4, + child_number=b'\x00'*4, *, net=None): + xpub = xpub_header(xtype, net=net) \ + + bytes([depth]) + fingerprint + child_number + c + cK + return EncodeBase58Check(xpub) + + +class InvalidMasterKeyVersionBytes(BitcoinException): pass + + +def deserialize_xkey(xkey, prv, *, net=None): + if net is None: + net = constants.net + xkey = DecodeBase58Check(xkey) + if len(xkey) != 78: + raise BitcoinException('Invalid length for extended key: {}' + .format(len(xkey))) + depth = xkey[4] + fingerprint = xkey[5:9] + child_number = xkey[9:13] + c = xkey[13:13+32] + header = int('0x' + bh2u(xkey[0:4]), 16) + headers = net.XPRV_HEADERS if prv else net.XPUB_HEADERS + if header not in headers.values(): + raise InvalidMasterKeyVersionBytes('Invalid extended key format: {}' + .format(hex(header))) + xtype = list(headers.keys())[list(headers.values()).index(header)] + n = 33 if prv else 32 + K_or_k = xkey[13+n:] + if prv and not ecc.is_secret_within_curve_range(K_or_k): + raise BitcoinException('Impossible xprv (not within curve order)') + return xtype, depth, fingerprint, child_number, c, K_or_k + + +def deserialize_xpub(xkey, *, net=None): + return deserialize_xkey(xkey, False, net=net) + +def deserialize_xprv(xkey, *, net=None): + return deserialize_xkey(xkey, True, net=net) + +def xpub_type(x): + return deserialize_xpub(x)[0] + + +def is_xpub(text): + try: + deserialize_xpub(text) + return True + except: + return False + + +def is_xprv(text): + try: + deserialize_xprv(text) + return True + except: + return False + + +def xpub_from_xprv(xprv): + xtype, depth, fingerprint, child_number, c, k = deserialize_xprv(xprv) + cK = ecc.ECPrivkey(k).get_public_key_bytes(compressed=True) + return serialize_xpub(xtype, c, cK, depth, fingerprint, child_number) + + +def bip32_root(seed, xtype): + I = hmac_oneshot(b"Bitcoin seed", seed, hashlib.sha512) + master_k = I[0:32] + master_c = I[32:] + # create xprv first, as that will check if master_k is within curve order + xprv = serialize_xprv(xtype, master_c, master_k) + cK = ecc.ECPrivkey(master_k).get_public_key_bytes(compressed=True) + xpub = serialize_xpub(xtype, master_c, cK) + return xprv, xpub + + +def xpub_from_pubkey(xtype, cK): + if cK[0] not in (0x02, 0x03): + raise ValueError('Unexpected first byte: {}'.format(cK[0])) + return serialize_xpub(xtype, b'\x00'*32, cK) + + +def bip32_derivation(s): + if not s.startswith('m/'): + raise ValueError('invalid bip32 derivation path: {}'.format(s)) + s = s[2:] + for n in s.split('/'): + if n == '': continue + i = int(n[:-1]) + BIP32_PRIME if n[-1] == "'" else int(n) + yield i + +def convert_bip32_path_to_list_of_uint32(n: str) -> List[int]: + """Convert bip32 path to list of uint32 integers with prime flags + m/0/-1/1' -> [0, 0x80000001, 0x80000001] + + based on code in trezorlib + """ + path = [] + for x in n.split('/')[1:]: + if x == '': continue + prime = 0 + if x.endswith("'"): + x = x.replace('\'', '') + prime = BIP32_PRIME + if x.startswith('-'): + prime = BIP32_PRIME + path.append(abs(int(x)) | prime) + return path + +def is_bip32_derivation(x): + try: + [ i for i in bip32_derivation(x)] + return True + except : + return False + +def bip32_private_derivation(xprv, branch, sequence): + if not sequence.startswith(branch): + raise ValueError('incompatible branch ({}) and sequence ({})' + .format(branch, sequence)) + if branch == sequence: + return xprv, xpub_from_xprv(xprv) + xtype, depth, fingerprint, child_number, c, k = deserialize_xprv(xprv) + sequence = sequence[len(branch):] + for n in sequence.split('/'): + if n == '': continue + i = int(n[:-1]) + BIP32_PRIME if n[-1] == "'" else int(n) + parent_k = k + k, c = CKD_priv(k, c, i) + depth += 1 + parent_cK = ecc.ECPrivkey(parent_k).get_public_key_bytes(compressed=True) + fingerprint = hash_160(parent_cK)[0:4] + child_number = bfh("%08X"%i) + cK = ecc.ECPrivkey(k).get_public_key_bytes(compressed=True) + xpub = serialize_xpub(xtype, c, cK, depth, fingerprint, child_number) + xprv = serialize_xprv(xtype, c, k, depth, fingerprint, child_number) + return xprv, xpub + + +def bip32_public_derivation(xpub, branch, sequence): + xtype, depth, fingerprint, child_number, c, cK = deserialize_xpub(xpub) + if not sequence.startswith(branch): + raise ValueError('incompatible branch ({}) and sequence ({})' + .format(branch, sequence)) + sequence = sequence[len(branch):] + for n in sequence.split('/'): + if n == '': continue + i = int(n) + parent_cK = cK + cK, c = CKD_pub(cK, c, i) + depth += 1 + fingerprint = hash_160(parent_cK)[0:4] + child_number = bfh("%08X"%i) + return serialize_xpub(xtype, c, cK, depth, fingerprint, child_number) + + +def bip32_private_key(sequence, k, chain): + for i in sequence: + k, chain = CKD_priv(k, chain, i) + return k diff --git a/electrum/blockchain.py b/electrum/blockchain.py new file mode 100644 index 000000000..bbabc2a1e --- /dev/null +++ b/electrum/blockchain.py @@ -0,0 +1,405 @@ +# Electrum - lightweight Bitcoin client +# Copyright (C) 2012 thomasv@ecdsa.org +# +# 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. +import os +import threading + +from . import util +from .bitcoin import Hash, hash_encode, int_to_hex, rev_hex +from . import constants +from .util import bfh, bh2u + +MAX_TARGET = 0x00000000FFFF0000000000000000000000000000000000000000000000000000 + + +class MissingHeader(Exception): + pass + +class InvalidHeader(Exception): + pass + +def serialize_header(res): + s = int_to_hex(res.get('version'), 4) \ + + rev_hex(res.get('prev_block_hash')) \ + + rev_hex(res.get('merkle_root')) \ + + int_to_hex(int(res.get('timestamp')), 4) \ + + int_to_hex(int(res.get('bits')), 4) \ + + int_to_hex(int(res.get('nonce')), 4) + return s + +def deserialize_header(s, height): + if not s: + raise InvalidHeader('Invalid header: {}'.format(s)) + if len(s) != 80: + raise InvalidHeader('Invalid header length: {}'.format(len(s))) + hex_to_int = lambda s: int('0x' + bh2u(s[::-1]), 16) + h = {} + h['version'] = hex_to_int(s[0:4]) + h['prev_block_hash'] = hash_encode(s[4:36]) + h['merkle_root'] = hash_encode(s[36:68]) + h['timestamp'] = hex_to_int(s[68:72]) + h['bits'] = hex_to_int(s[72:76]) + h['nonce'] = hex_to_int(s[76:80]) + h['block_height'] = height + return h + +def hash_header(header): + if header is None: + return '0' * 64 + if header.get('prev_block_hash') is None: + header['prev_block_hash'] = '00'*32 + return hash_encode(Hash(bfh(serialize_header(header)))) + + +blockchains = {} + +def read_blockchains(config): + blockchains[0] = Blockchain(config, 0, None) + fdir = os.path.join(util.get_headers_dir(config), 'forks') + util.make_dir(fdir) + l = filter(lambda x: x.startswith('fork_'), os.listdir(fdir)) + l = sorted(l, key = lambda x: int(x.split('_')[1])) + for filename in l: + forkpoint = int(filename.split('_')[2]) + parent_id = int(filename.split('_')[1]) + b = Blockchain(config, forkpoint, parent_id) + h = b.read_header(b.forkpoint) + if b.parent().can_connect(h, check_height=False): + blockchains[b.forkpoint] = b + else: + util.print_error("cannot connect", filename) + return blockchains + +def check_header(header): + if type(header) is not dict: + return False + for b in blockchains.values(): + if b.check_header(header): + return b + return False + +def can_connect(header): + for b in blockchains.values(): + if b.can_connect(header): + return b + return False + + +class Blockchain(util.PrintError): + """ + Manages blockchain headers and their verification + """ + + def __init__(self, config, forkpoint, parent_id): + self.config = config + self.catch_up = None # interface catching up + self.forkpoint = forkpoint + self.checkpoints = constants.net.CHECKPOINTS + self.parent_id = parent_id + assert parent_id != forkpoint + self.lock = threading.RLock() + with self.lock: + self.update_size() + + def with_lock(func): + def func_wrapper(self, *args, **kwargs): + with self.lock: + return func(self, *args, **kwargs) + return func_wrapper + + def parent(self): + return blockchains[self.parent_id] + + def get_max_child(self): + children = list(filter(lambda y: y.parent_id==self.forkpoint, blockchains.values())) + return max([x.forkpoint for x in children]) if children else None + + def get_forkpoint(self): + mc = self.get_max_child() + return mc if mc is not None else self.forkpoint + + def get_branch_size(self): + return self.height() - self.get_forkpoint() + 1 + + def get_name(self): + return self.get_hash(self.get_forkpoint()).lstrip('00')[0:10] + + def check_header(self, header): + header_hash = hash_header(header) + height = header.get('block_height') + return header_hash == self.get_hash(height) + + def fork(parent, header): + forkpoint = header.get('block_height') + self = Blockchain(parent.config, forkpoint, parent.forkpoint) + open(self.path(), 'w+').close() + self.save_header(header) + return self + + def height(self): + return self.forkpoint + self.size() - 1 + + def size(self): + with self.lock: + return self._size + + def update_size(self): + p = self.path() + self._size = os.path.getsize(p)//80 if os.path.exists(p) else 0 + + def verify_header(self, header, prev_hash, target): + _hash = hash_header(header) + if prev_hash != header.get('prev_block_hash'): + raise Exception("prev hash mismatch: %s vs %s" % (prev_hash, header.get('prev_block_hash'))) + if constants.net.TESTNET: + return + bits = self.target_to_bits(target) + if bits != header.get('bits'): + raise Exception("bits mismatch: %s vs %s" % (bits, header.get('bits'))) + if int('0x' + _hash, 16) > target: + raise Exception("insufficient proof of work: %s vs target %s" % (int('0x' + _hash, 16), target)) + + def verify_chunk(self, index, data): + num = len(data) // 80 + prev_hash = self.get_hash(index * 2016 - 1) + target = self.get_target(index-1) + for i in range(num): + raw_header = data[i*80:(i+1) * 80] + header = deserialize_header(raw_header, index*2016 + i) + self.verify_header(header, prev_hash, target) + prev_hash = hash_header(header) + + def path(self): + d = util.get_headers_dir(self.config) + filename = 'blockchain_headers' if self.parent_id is None else os.path.join('forks', 'fork_%d_%d'%(self.parent_id, self.forkpoint)) + return os.path.join(d, filename) + + @with_lock + def save_chunk(self, index, chunk): + chunk_within_checkpoint_region = index < len(self.checkpoints) + # chunks in checkpoint region are the responsibility of the 'main chain' + if chunk_within_checkpoint_region and self.parent_id is not None: + main_chain = blockchains[0] + main_chain.save_chunk(index, chunk) + return + + delta_height = (index * 2016 - self.forkpoint) + delta_bytes = delta_height * 80 + # if this chunk contains our forkpoint, only save the part after forkpoint + # (the part before is the responsibility of the parent) + if delta_bytes < 0: + chunk = chunk[-delta_bytes:] + delta_bytes = 0 + truncate = not chunk_within_checkpoint_region + self.write(chunk, delta_bytes, truncate) + self.swap_with_parent() + + @with_lock + def swap_with_parent(self): + if self.parent_id is None: + return + parent_branch_size = self.parent().height() - self.forkpoint + 1 + if parent_branch_size >= self.size(): + return + self.print_error("swap", self.forkpoint, self.parent_id) + parent_id = self.parent_id + forkpoint = self.forkpoint + parent = self.parent() + self.assert_headers_file_available(self.path()) + with open(self.path(), 'rb') as f: + my_data = f.read() + self.assert_headers_file_available(parent.path()) + with open(parent.path(), 'rb') as f: + f.seek((forkpoint - parent.forkpoint)*80) + parent_data = f.read(parent_branch_size*80) + self.write(parent_data, 0) + parent.write(my_data, (forkpoint - parent.forkpoint)*80) + # store file path + for b in blockchains.values(): + b.old_path = b.path() + # swap parameters + self.parent_id = parent.parent_id; parent.parent_id = parent_id + self.forkpoint = parent.forkpoint; parent.forkpoint = forkpoint + self._size = parent._size; parent._size = parent_branch_size + # move files + for b in blockchains.values(): + if b in [self, parent]: continue + if b.old_path != b.path(): + self.print_error("renaming", b.old_path, b.path()) + os.rename(b.old_path, b.path()) + # update pointers + blockchains[self.forkpoint] = self + blockchains[parent.forkpoint] = parent + + def assert_headers_file_available(self, path): + if os.path.exists(path): + return + elif not os.path.exists(util.get_headers_dir(self.config)): + raise FileNotFoundError('Electrum headers_dir does not exist. Was it deleted while running?') + else: + raise FileNotFoundError('Cannot find headers file but headers_dir is there. Should be at {}'.format(path)) + + def write(self, data, offset, truncate=True): + filename = self.path() + with self.lock: + self.assert_headers_file_available(filename) + with open(filename, 'rb+') as f: + if truncate and offset != self._size*80: + f.seek(offset) + f.truncate() + f.seek(offset) + f.write(data) + f.flush() + os.fsync(f.fileno()) + self.update_size() + + @with_lock + def save_header(self, header): + delta = header.get('block_height') - self.forkpoint + data = bfh(serialize_header(header)) + # headers are only _appended_ to the end: + assert delta == self.size() + assert len(data) == 80 + self.write(data, delta*80) + self.swap_with_parent() + + def read_header(self, height): + assert self.parent_id != self.forkpoint + if height < 0: + return + if height < self.forkpoint: + return self.parent().read_header(height) + if height > self.height(): + return + delta = height - self.forkpoint + name = self.path() + self.assert_headers_file_available(name) + with open(name, 'rb') as f: + f.seek(delta * 80) + h = f.read(80) + if len(h) < 80: + raise Exception('Expected to read a full header. This was only {} bytes'.format(len(h))) + if h == bytes([0])*80: + return None + return deserialize_header(h, height) + + def get_hash(self, height): + if height == -1: + return '0000000000000000000000000000000000000000000000000000000000000000' + elif height == 0: + return constants.net.GENESIS + elif height < len(self.checkpoints) * 2016: + assert (height+1) % 2016 == 0, height + index = height // 2016 + h, t = self.checkpoints[index] + return h + else: + return hash_header(self.read_header(height)) + + def get_target(self, index): + # compute target from chunk x, used in chunk x+1 + if constants.net.TESTNET: + return 0 + if index == -1: + return MAX_TARGET + if index < len(self.checkpoints): + h, t = self.checkpoints[index] + return t + # new target + first = self.read_header(index * 2016) + last = self.read_header(index * 2016 + 2015) + if not first or not last: + raise MissingHeader() + bits = last.get('bits') + target = self.bits_to_target(bits) + nActualTimespan = last.get('timestamp') - first.get('timestamp') + nTargetTimespan = 14 * 24 * 60 * 60 + nActualTimespan = max(nActualTimespan, nTargetTimespan // 4) + nActualTimespan = min(nActualTimespan, nTargetTimespan * 4) + new_target = min(MAX_TARGET, (target * nActualTimespan) // nTargetTimespan) + return new_target + + def bits_to_target(self, bits): + bitsN = (bits >> 24) & 0xff + if not (bitsN >= 0x03 and bitsN <= 0x1d): + raise Exception("First part of bits should be in [0x03, 0x1d]") + bitsBase = bits & 0xffffff + if not (bitsBase >= 0x8000 and bitsBase <= 0x7fffff): + raise Exception("Second part of bits should be in [0x8000, 0x7fffff]") + return bitsBase << (8 * (bitsN-3)) + + def target_to_bits(self, target): + c = ("%064x" % target)[2:] + while c[:2] == '00' and len(c) > 6: + c = c[2:] + bitsN, bitsBase = len(c) // 2, int('0x' + c[:6], 16) + if bitsBase >= 0x800000: + bitsN += 1 + bitsBase >>= 8 + return bitsN << 24 | bitsBase + + def can_connect(self, header, check_height=True): + if header is None: + return False + height = header['block_height'] + if check_height and self.height() != height - 1: + #self.print_error("cannot connect at height", height) + return False + if height == 0: + return hash_header(header) == constants.net.GENESIS + try: + prev_hash = self.get_hash(height - 1) + except: + 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 + return True + + def connect_chunk(self, idx, hexdata): + try: + data = bfh(hexdata) + #self.verify_chunk(idx, data) + #self.print_error("validated chunk %d" % idx) + self.save_chunk(idx, data) + return True + except BaseException as e: + self.print_error('verify_chunk %d failed'%idx, str(e)) + return False + + def get_checkpoints(self): + # for each chunk, store the hash of the last block and the target after the chunk + cp = [] + n = self.height() // 2016 + for index in range(n): + h = self.get_hash((index+1) * 2016 -1) + #target = self.get_target(index) + target=0 + cp.append((h, target)) + return cp diff --git a/electrum/checkpoints.json b/electrum/checkpoints.json new file mode 100644 index 000000000..573ca3d69 --- /dev/null +++ b/electrum/checkpoints.json @@ -0,0 +1,6 @@ +[ + [ + "e7874ac02e4da5148fe44510c7f0c7242f52b3726992553ebbc8c7f303c473ab", + 0 + ] +] diff --git a/electrum/checkpoints_testnet.json b/electrum/checkpoints_testnet.json new file mode 100644 index 000000000..aaa4ea28e --- /dev/null +++ b/electrum/checkpoints_testnet.json @@ -0,0 +1,2662 @@ +[ + [ + "00000000864b744c5025331036aa4a16e9ed1cbb362908c625272150fa059b29", + 0 + ], + [ + "000000002e9ccffc999166ccf8d72129e1b2e9c754f6c90ad2f77cab0d9fb4c7", + 0 + ], + [ + "0000000009b9f0436a9c733e2c9a9d9c8fe3475d383bdc1beb7bfa995f90be70", + 0 + ], + [ + "000000000a9c9c79f246042b9e2819822287f2be7cd6487aecf7afab6a88bed5", + 0 + ], + [ + "000000003a7002e1247b0008cba36cd46f57cd7ce56ac9d9dc5644265064df09", + 0 + ], + [ + "00000000061e01e82afff6e7aaea4eb841b78cc0eed3af11f6706b14471fa9c8", + 0 + ], + [ + "000000003911e011ae2459e44d4581ac69ba703fb26e1421529bd326c538f12d", + 0 + ], + [ + "000000000a5984d6c73396fe40de392935f5fc2a8e48eedf38034ce0a3178a60", + 0 + ], + [ + "000000000786bdc642fa54c0a791d58b732ed5676516fffaeca04492be97c243", + 0 + ], + [ + "000000001359c49f9618f3ee69afbd1b3196f1832acc47557d42256fcc6b7f48", + 0 + ], + [ + "00000000270dde98d582af35dff5aed02087dad8529dc5c808c67573d6dabaf4", + 0 + ], + [ + "00000000425c160908c215c4adf998771a2d1c472051bc58320696f3a5eb0644", + 0 + ], + [ + "0000000006a5976471986377805d4a148d8822bb7f458138c83f167d197817c9", + 0 + ], + [ + "000000000318394ea17038ef369f3cccc79b3d7dfda957af6c8cd4a471ffa814", + 0 + ], + [ + "000000000ad4f9d0b8e86871478cc849f7bc42fb108ebec50e4a795afc284926", + 0 + ], + [ + "000000000207e63e68f2a7a4c067135883d726fd65e3620142fb9bdf50cce1f6", + 0 + ], + [ + "00000000003b426d2c12ee66b2eedb4dcc05d5e158685b222240d31e43687762", + 0 + ], + [ + "00000000017cf6ee86e3d483f9a978ded72be1fa5af37d287a71c5dfb87cdd83", + 0 + ], + [ + "00000000004b1d9fe16fc0c72cfa0395c98a3e460cd2affb8640e28bca295a4a", + 0 + ], + [ + "0000000046d191b09f7726e4f8bfaffed6c30734afbf1f95e6bddbe0b07d9e88", + 0 + ], + [ + "0000000082cec8200e9ea055c2991bf74560eb7e7140691ea53e7828dbdc9553", + 0 + ], + [ + "000000003775b96d6b362d4804afe2d9c3cf3cbb46a45c3ccc377c94e83edd23", + 0 + ], + [ + "00000000037835a92404acb2f18768a49d4f93685ead30aad6bb3b073f411e02", + 0 + ], + [ + "0000000006cf75d17706d1f62e6b08e6ba5facfde38a8920b7d808a6b6781ff2", + 0 + ], + [ + "0000000003dff257cdae43703fcd0ca91fda0970f5fc04258b4608fb1942a6f6", + 0 + ], + [ + "0000000000532d97d18867658e08c789f627535652382147e33bf8626d4131bc", + 0 + ], + [ + "000000000266dfb79bb11dedd0ae748505863ab3ab731269cd71a2c2fbd159b3", + 0 + ], + [ + "00000000349ff0119d5c0dd8ffad8bf41cd6126a88416148b81fa4dcaebc42e1", + 0 + ], + [ + "000000003c61939b4799eeea4335218d30de9b1071605126d719dce0f0d14810", + 0 + ], + [ + "000000003d9284570ed648d2b12ad24046ac8b9abcf05c4e9813ea110490cf73", + 0 + ], + [ + "0000000001360b66e6dc0ccfbd75356034e721ae55c3d5c71a58be5d281c252b", + 0 + ], + [ + "000000000c114f42504916bfb2ee26ed8307b3f7f74226c1cfe1f5302ec23d26", + 0 + ], + [ + "0000000007acac3fcf97b4ca81821263b704364adaa2736fce0a0722bfed4f8d", + 0 + ], + [ + "00000000059768ef7731d27f9c2be48c6e16d7cb56680625f08ff25ead504280", + 0 + ], + [ + "000000000351c8908f1f52518ce4bd251b896ca3fbccb69a2607db6624bafcfc", + 0 + ], + [ + "0000000068d7ccae048e212e9e2ecb4d944f583b4490df4fbf654b4915597052", + 0 + ], + [ + "000000000e2aaa36417187233ff55325473bd5b7a164b358da60c96d1920fd77", + 0 + ], + [ + "000000001eb11ef6dbe0647bc87a8d218f6e59c2b9690f17edcf0dbd39cd0308", + 0 + ], + [ + "00000000022e7855e24cc3fff67ce093242434a8ffa45882333a0f08a40aad9c", + 0 + ], + [ + "000000000210130ff4e3186258c09a8463c1e196f5c5432b4c7b6954e907bf63", + 0 + ], + [ + "0000000000e01372ede322bf88ee5ed8a46dd4fd8df832eca16180263fc8b1ef", + 0 + ], + [ + "00000000a0701896e26d5d884834b267512e0af52c92edc4bccf1c5c803d3c4f", + 0 + ], + [ + "00000000869fc8d9ac1588f3e5bdfd60253e9824083800b7794010e0e9c6b6fe", + 0 + ], + [ + "000000001d43b3165ec30736f28f0761600b092686f861db23ec38f2d92b0ec6", + 0 + ], + [ + "000000000ef4092da8c2056e5933de0e1530194c3ad941a9b393fbb26f98862e", + 0 + ], + [ + "0000000001e3fed39f70023909f962bea146b03bc8e94e5d19d7da93123f4f64", + 0 + ], + [ + "0000000000b4b8c877bbe3cde97649845290bb78999ecff4621b9bf2ab16aa2e", + 0 + ], + [ + "00000000006095ba3b4742883a0ec427a3fd685ffb65b987ea77ebfedea7da82", + 0 + ], + [ + "000000000168f0a76a6068a34fc042553aff4aa63b906028f28c2a4c327328e1", + 0 + ], + [ + "0000000000af10f3079b4989ac4ff0baaecab38220510cdae9672d6922e93919", + 0 + ], + [ + "0000000000312791ada0f6a4c5eaf2a1cd57cd06f5970a8ab49923817b862c35", + 0 + ], + [ + "000000000055f3d4f45c4d199d9c230cb2cfeb68c8e934cfd061bd616358655a", + 0 + ], + [ + "000000000036b6129bb5a786bfdd75cb4b932f7dcae9da469d3ba35096f1e821", + 0 + ], + [ + "00000000002fbccf271c13e486673251ecd7951ecc12ee73c4390e0ff09e9b59", + 0 + ], + [ + "0000000000314e297a81bf002fc40eb391d8883ea45ee4e782385aa0fdba6452", + 0 + ], + [ + "00000000d3c473819ec3b3c268f7b555df22772e407bc8f246a47cfc579ec61f", + 0 + ], + [ + "0000000075a438fda6bdb391263d0a2a6e8e68edd9dd8f70fe5734eab9351eb8", + 0 + ], + [ + "0000000017ebae0a2bec50008b4a4ea8839798cbd9ff228e76aba087d0ff1736", + 0 + ], + [ + "000000000800466ba31c0bbc12b125f16d05ed27788de045e25d6f093817d29c", + 0 + ], + [ + "00000000002163c41f2264f202e611aeb9ba6c0a3ee95cd8e5e7e571edc64edf", + 0 + ], + [ + "0000000000de9882d417786fce8c755cfaad17f40cda744d4badedfe5e414e31", + 0 + ], + [ + "00000000002af352cf41f60a5ebf033bf7e4967c0597cee706ba877b795aefb4", + 0 + ], + [ + "0000000000009ca0030f1dd0b09cc628f2d4d278c87b20781a1b136dc395debf", + 0 + ], + [ + "00000000ffd27370a76d06a0da0e3805f47e35e2cf584d73d2c5ecaa2e525642", + 0 + ], + [ + "00000000720da6910aa75099baa020cb8db37e1dc19cdff66152225b7609c23a", + 0 + ], + [ + "000000000a5c2cc704bce5e8527ce91bac7430c659624ecd86e6a1bb9b697962", + 0 + ], + [ + "00000000084273545134e9a06483c8fab00c2b0628056bb1967f310c74a971bc", + 0 + ], + [ + "0000000002f66f4da52804647b1c3e1f89d17bdb05e9cd4ebbd922007c773f21", + 0 + ], + [ + "00000000c46146c9d0a67a354b3f82947e52670a3bded6d8513ab34a68ae18bd", + 0 + ], + [ + "000000002f61c429d7dbe7bde75796086efe574998766806138710a2d6001eba", + 0 + ], + [ + "0000000001daf3e3e78a57df2c2d2ddd14093d10515925e75c818bec3bbd30c2", + 0 + ], + [ + "0000000002e133a7427a9aac6ceca969b27507c14111a45512cdf8f52a436de0", + 0 + ], + [ + "0000000000f7c4374d458666740de1d0e8c55229a209ced7c38e38708781487c", + 0 + ], + [ + "000000000035bb9ea329ba30b83eeb4ea6f57c2fe703b97f9b879f21e22643e0", + 0 + ], + [ + "00000000001220503e0aaee266bca85de09ce97b0091f24972d1ad1c8afe8609", + 0 + ], + [ + "000000000010a614c60457f8d2ae2bb826d037f52113252888fadda8ed773c9c", + 0 + ], + [ + "00000000585a8b882ecff8aa8434feeac4ef199ca669bd81ed473e37f0bb4528", + 0 + ], + [ + "000000009504ffdb5fe82ad88218fb5e75a8bc185247e30e22d23b9fd9b7f282", + 0 + ], + [ + "000000000ddec7d73bcd653168d82e34cf5746e006bccda8a9c031c3289b9568", + 0 + ], + [ + "000000000cb6620ee4e8cb8b6b4d51251e5961f7ae2e83538ab3a4fef3bcc773", + 0 + ], + [ + "000000000239224a0841738513c1eda712b73266ea958aa75f44a3985ebfab82", + 0 + ], + [ + "00000000002630c7c3586fcc19079300403c54dc293bcfdf8a9981f85a5c31bc", + 0 + ], + [ + "000000000028d8c34f44e51fd71f5401094a983f6566e6d08ce86ec5d1bd639c", + 0 + ], + [ + "00000000000dca95f1828adc3c37b4625f60aeb35a6614a4358322b7a6bc2f7d", + 0 + ], + [ + "00000000d72ec84fda18959ddc474d1a31a3a13b1d94695136c4810af8c01a0b", + 0 + ], + [ + "00000000327c29604996eb7f0a208160969ee4408a1cad277a956334f94e0f35", + 0 + ], + [ + "000000000e1bd41d009c1910fcfee7bf1cc1adb04b0b7a632ac36c1092f01bb7", + 0 + ], + [ + "000000000201a5afed48b9d095b949229e9882ef8bc96767be3097c87264dfb6", + 0 + ], + [ + "00000000003f28e8f3f9c80b1269bb0aa3b57501c12458550ef04fd43aca6a33", + 0 + ], + [ + "000000000029e09fc14e38a6a0103c8c67383f41af7d76998055682525f4ca89", + 0 + ], + [ + "00000000285ce297602995582ba5d32d583d618a6a92643566e25dd36cf2b7ab", + 0 + ], + [ + "00000000657045fa54fac52b8480dc84bd4c418940ba63679f4bd6add6a39962", + 0 + ], + [ + "0000000017b7bb58be05a47ff7c4ead27db750813d6bcf3f99cbcc35324cf445", + 0 + ], + [ + "00000000003a310e39b6df17f17450496b4f5c1593399bfa1ab8b4d39bac9b25", + 0 + ], + [ + "00000000000bfbc5294f003548a9636ebbcea3ba42577821266317676fbc363c", + 0 + ], + [ + "000000002329351dd70c24da2eea5ac19f65b6053c4611aa4eb93bcc2783c57e", + 0 + ], + [ + "000000004ce02f1005aa6fa4d158c6e4fce95ab053d88ae74881dd080c24e057", + 0 + ], + [ + "0000000000fdaaa54cdaade8cfb75245de0747c60c0307ad11be9fe154535565", + 0 + ], + [ + "0000000003dc49f7472f960eedb4fb2d1ccc8b0530ca6c75ed2bba9718b6f297", + 0 + ], + [ + "00000000014ca604d769d4b99fff03ae3ac84d1e8eb991c5dac7c3cd4d9e68ee", + 0 + ], + [ + "0000000000190ab8ecef3a3d5583563851672d81a4d4d952b8cf3bd503c655e5", + 0 + ], + [ + "00000000001204d263b607987fab11e1c19c94b7e3e674cc73cc2fb7b05fbf07", + 0 + ], + [ + "0000000000141e8d7f7ac359a8ae58e35ce6010c25ddd6f1881f41c0b939332e", + 0 + ], + [ + "00000000946344dd06ef5ddd13fb74f20c475daf911ff4e3f1dcdf64c330e274", + 0 + ], + [ + "00000000ec77a7892e48b85bcbaf404d16d7fc93747d7e9e3ba6195a9b6f1525", + 0 + ], + [ + "0000000018a305c04dea8e93e423ce9569872e0ec5af49d23a0e3872b0ad6297", + 0 + ], + [ + "00000000055e32c5f8a86c9a712eeb6440bbf9810ae6da12d0cea2493138a885", + 0 + ], + [ + "0000000001913fcbe67badbce4234e86e35a1ea867ecd69814b5f5ab039b7d4b", + 0 + ], + [ + "00000000002c71fe4403aee704720ceafd21f9f8c9c97a8bfbd25bb46223aa40", + 0 + ], + [ + "0000000000343a42da0c811836d0785c272591facd816f0e7fdcfb1109d8f9a8", + 0 + ], + [ + "00000000000309b182608b3eea7fafd0d72e3c79a0a3a9cda03cde3947e332e1", + 0 + ], + [ + "00000000000204cc04e421c3958a64d7bc024a474ce792d42ab5b48a5a6f3927", + 0 + ], + [ + "000000005eaa010e7255bd37e0b00780575074a74d889e17c4dbc578f917348d", + 0 + ], + [ + "00000000a0d425f62d9196c069286dc6635ded9d027de40070d397e45bd63e0e", + 0 + ], + [ + "000000003355fd37068ce2d5d2a94ef964eeb9b687f21f4a00850a3e6cc4a71f", + 0 + ], + [ + "000000000ca9148dabe9424cd8c96860c90d836ab25970a3e91856764e2e640c", + 0 + ], + [ + "0000000000bde23f829dde8edef35436be4b8978da21fd2c3a8100ef5334e3cc", + 0 + ], + [ + "000000000028bb26f1427fbfabeae65d55a9e59e18230713e40f0f7c9c2dee12", + 0 + ], + [ + "00000000002ac05422d254e597ee6b5e0f8be9b3e2f887486442d720c7766919", + 0 + ], + [ + "00000000000e36d0b6f187dd9601b1d1dcd987c3e0f6a081ffd039c7c5e32462", + 0 + ], + [ + "0000000000048d7b1f2a2a11fda34a5cfeea067ab03e482931e5a0f463f438ba", + 0 + ], + [ + "00000000f780ab88c8a4f4247573a749fbb087a4e3fb6a7d29926de8a9ab3462", + 0 + ], + [ + "000000000313bbe6a940e6a8c40ba091aa1ebbaad135bbbff3ed8ae07cf574d2", + 0 + ], + [ + "000000001d4ab29721aa2722482562670a0d71dc1eb73231c5dafb64756b04e8", + 0 + ], + [ + "0000000006588bcbdec38d19962b96cf0352cbf1b90f3379cc6787d018cdb96d", + 0 + ], + [ + "000000000022e79539a21ac24f9daa2cbddf2bb4a3125f88a5efc20d13ea856b", + 0 + ], + [ + "0000000000dd284b7fee584cc578a10fbe57e8efe6bf6ebacb23c0ac5d46cdf7", + 0 + ], + [ + "00000000001451143787f411c93d5506065c3fb597966f2fd7a4a5c078ee6aa2", + 0 + ], + [ + "00000000000ca977394af1e414dc1f9d83efa007f7226e11d3a00f59a1fdfad1", + 0 + ], + [ + "0000000000011f8caa80580e7a796bbce5b84e60731bf48e03c6ff5c6bba868e", + 0 + ], + [ + "000000000001705beb1376af1af08b437acef6befbe7d3b60c5fbaf6bb7f38c9", + 0 + ], + [ + "000000000000c838f1f45422d93ca9b5838368a37423efa8439ee24b2bf247a2", + 0 + ], + [ + "00000000000111ad857d31d07fdc8b32d17af2522c18bdaccfef449b29d17362", + 0 + ], + [ + "000000000000312a7718fc616b0ecfdbf6066f71ec1a4a8c43f50f02f61cc398", + 0 + ], + [ + "0000000000007d232b217a59b804ef67091c5720a5460c2c16bf97b97a24801e", + 0 + ], + [ + "000000000000177235c33695aced585685b4c500eb76e72caad02e17503900eb", + 0 + ], + [ + "00000000000037f5c5890da7a8e2acd2b0669ad7db648ac43140c637a1c81637", + 0 + ], + [ + "0000000000002123904063f223bc35135c426a4f9a0b74c1907e837b810f0321", + 0 + ], + [ + "0000000000000961db809da357d91a9341170fafef9f24896d8730bd05cf3f96", + 0 + ], + [ + "000000000d2e8fcd05eb874e98cfc3a6e239f6974950e6f50b0487513ecab760", + 0 + ], + [ + "00000000017e362508c8db23fae0431eaed708d9db13e48fd5d318066bf6733f", + 0 + ], + [ + "000000000011b2bc4fe36f90b7ba5a62f974db250bfdc285b70c71148023c7e3", + 0 + ], + [ + "000000000001be28570b378dd5dd2eb3aa495c229913b6757fe8900dfa3cce99", + 0 + ], + [ + "0000000000242bd0bb16d0a5324e0b4b5a83697dabb3b4a059084557478e50b9", + 0 + ], + [ + "0000000000d8ce69d18da32ed52e503d6b5ad48d970b90545f956b2d2af2edf6", + 0 + ], + [ + "0000000000366655bf0cb3dd0cd7801e0adbd26b5b441b77a9e3642597effb00", + 0 + ], + [ + "00000000000dc7aa00d4607ca8374d40d1187f1c084b620edb45fc39bc8d2db8", + 0 + ], + [ + "000000000003baf60d9c6e70a765cf517f66a124509191188e9547ad09edf68b", + 0 + ], + [ + "000000000000e0f476893b8fb4d37e855353075fde73dbc1fe181cc956349f19", + 0 + ], + [ + "00000000000032ed16b7de758abadf4a4fb2df7a101ff275c51f29e1555a89a5", + 0 + ], + [ + "0000000000000a564d03f0f2fe20f6fb5f038d931f732d817641cd7fff3b0acd", + 0 + ], + [ + "000000000000011aa4d0fdcea8d4ca85cd5d548e322e2b6abd17f8444be855c5", + 0 + ], + [ + "0000000000000610588540267a0eb544531047d4c8af0f21fca7cd3d96205cfc", + 0 + ], + [ + "00000000000002770dab5e14843149df8f76b8dc8458ed3ed2ed8a14a6e2e564", + 0 + ], + [ + "00000000000006b70ebc9f75bd32f466602cbd4b86c3c2d2379059542bb8bec6", + 0 + ], + [ + "00000000000000ef579af389fa7674f98a2371063fa8b218c5ca0ad94e21b896", + 0 + ], + [ + "000000000000021b6108dc988f9153383f9501ab9001109aa87902ddd4c8a4d1", + 0 + ], + [ + "000000000000022c02ff22bc0af5201f0e1a14a75879c494731e4fbf999218c8", + 0 + ], + [ + "000000000000032651c988edc1ccd08e82b888cbb8135e24a958ac0c0b640d5d", + 0 + ], + [ + "000000000000015aefdfa0790bed326c38c358c07aac0674f5b2e771258b8df3", + 0 + ], + [ + "00000000000000822e1534c86afef911b67d3fa20cf2b12d93d20d64005f54d7", + 0 + ], + [ + "00000000000000338b871276768c923b1c603fd6150bd054c2287e532e61de7f", + 0 + ], + [ + "00000000000002d0af52c0cae894bf836b61137ace2bd7500abd13a584c02741", + 0 + ], + [ + "000000006f8443a458f38d8731821c07a2fda0ecdbb1cf797f541844d468ce0c", + 0 + ], + [ + "0000000000b6fbd8b4e227f5514979a61d8b0b918d2adc154e585ca926386704", + 0 + ], + [ + "000000000f4f5e49b10278e27d9dee15b92f9d4a257138a206831e0c00188767", + 0 + ], + [ + "0000000002c7e9769bd8ae9906fc5682e937b5c31ab5b5b86e4d70af2c15a95c", + 0 + ], + [ + "0000000000f68a1db8cd387e0a2f93f45149fe1ee4a230bb386313bdd42058e8", + 0 + ], + [ + "0000000000f0f65c360c8f0f9853ad1142f16675dc1175d61afdbef977776b25", + 0 + ], + [ + "000000000004f734e634156511cbef7dfefebdf317e7488aa6c2562572d7ecb7", + 0 + ], + [ + "0000000000002a46a7a16787e8317dc567ae26816324c2035be0186ba54d5cb8", + 0 + ], + [ + "000000000001a593e6f01875b77e270163538d88452779bb557df7c2607c28e0", + 0 + ], + [ + "0000000000004f24cfafa10bd50a452535f64be577a6161e51c7c71542f654c4", + 0 + ], + [ + "00000000597cce73e84b63f08cfcb9b01f5e7621752d8c8e08fabbd6ab5c0dd5", + 0 + ], + [ + "000000007cad379df01247771fff471bc99faea1b86218602f45ab13efc5e9f6", + 0 + ], + [ + "000000000d6085aab25892be49c49d6c0a3949befdc3ddce2faa46b104e1e804", + 0 + ], + [ + "0000000002be5996786b42d6a229093896aea9966b1854ea261e01e84da1f420", + 0 + ], + [ + "00000000002684b72056e270b115d80b12b2f68eac7412355287226aecd9b5e0", + 0 + ], + [ + "0000000079ea27efb24366c87856a9e371c56fcbd59d09d3164a5c2fc15fcbca", + 0 + ], + [ + "000000001694120525dba4548ca54087544da1fbefa51c38f0208d683418825d", + 0 + ], + [ + "000000000693e80d372938f3553151ab9d0a9a6922182591c701df739dc9a502", + 0 + ], + [ + "0000000002950d9cb23c8511937811910b712f73d448e6fdc2e39e029b86848b", + 0 + ], + [ + "000000000091c40056c6a48f33db17764af89c01f62ae653aa5e494146164cee", + 0 + ], + [ + "00000000001f373c47e1a39af4e1ebcd8c88411ec49d6bd520c2781564070971", + 0 + ], + [ + "00000000000809ca4b2170c57958709b867095b1972d80a2ee55359fbd0940fe", + 0 + ], + [ + "0000000000038e7bd66fc3308447b1370dbdd0661c427c512bdbc641ff360fb2", + 0 + ], + [ + "000000009a3325df76e2de1fc1970cc2f241fa8a41da9ad745a0d9666d9ff51d", + 0 + ], + [ + "000000003176e92ff837bf43a48a995c1a321b166475f586ffb4b962e0254a4a", + 0 + ], + [ + "0000000001ae3292e81ca3859b75bccd5bff825cd9f496efd085160c716ed05e", + 0 + ], + [ + "00000000033bdac4f0d36bb912fba28bb5caa54d1b611759a10f79ff3c969cf2", + 0 + ], + [ + "00000000004c6db7fa0e2c9f08693abfeb128c5827b511a5c46c623a103b416b", + 0 + ], + [ + "00000000003d87f48bb95e9431760d0c5f4f93c77d02fce9dd1673e9f5b01029", + 0 + ], + [ + "00000000000e214fc3d8b97571eb75d248ca29f8e25a584c33de8488ceee72b0", + 0 + ], + [ + "00000000000133269b7159b828700d02de770a8cbd91f3d166e6bbc95d8e0dfc", + 0 + ], + [ + "000000000000cc92e2dd933a08f7fd87f84451627982fb66583587858217c059", + 0 + ], + [ + "00000000000030708136c20c4c8216314005b3cb5c551ded33b26cf64d2ff47d", + 0 + ], + [ + "00000000c472a1341d479ed02f31b699e448c035049a7092670b38f4ec6121f0", + 0 + ], + [ + "000000000a358834d6eed41b9b7161a338aba53828111414cdea7552ed15548a", + 0 + ], + [ + "000000000e13e77372daea775c8358916e57ed11835899c14e5140ed9be11089", + 0 + ], + [ + "00000000008252cd0931f94b2465bd4f93e4bfeec6697962c5b034cf3d12cf7c", + 0 + ], + [ + "00000000019812cd6cde3a43831234be71e68118be24a80161349b8b327acb5b", + 0 + ], + [ + "00000000005865499f301adfb59f8380743e4c3b3ab220ca4eb97dc6628df626", + 0 + ], + [ + "000000000015f77e1e61329560a4378eb401fa5bf0ef90b0a014a4d7857ca7a8", + 0 + ], + [ + "00000000e9cbcbb625e8a463ba8e7f14be46ba9538ffe93338784ccad3d992e8", + 0 + ], + [ + "000000000fb27169efcc2873cfaac223ebb91cc5e1e5ad7e9a312d42bedf7c42", + 0 + ], + [ + "000000000c9c96d62ebfbf3fa4003f1d46d175140ab084dee17e8125fa40f24a", + 0 + ], + [ + "000000000311e3a766b1ab2064b68a344a561eb496d595126808ffb166c71cc1", + 0 + ], + [ + "00000000677568c82262ac3a4ca3f909bdfb0b35145ad490fa3fbdc719d06b91", + 0 + ], + [ + "000000000ee77ba9ab657e51fd9140f5c9b46731d9341e98188f929c97d04746", + 0 + ], + [ + "0000000008a67eb9c91a6d74168f3f385270fa942ea00bdd31924d1b6ea11148", + 0 + ], + [ + "00000000017f93c9e0026e90d579e18c83b4a8557f0c00e9b85ab164cf4466c5", + 0 + ], + [ + "0000000000994efa379235c03711a8e6b29895d928b5fde96cb01c02374c0602", + 0 + ], + [ + "00000000b3be9f23c943d71d7c7dbdf6dd672d77a712f6c83e9796a85e4379f2", + 0 + ], + [ + "000000000713e1089b0b2bdcba462b740c9396f822f1c73e090713978a7f1314", + 0 + ], + [ + "0000000002fc44d358401a7ac9ce4ddcb17f3cbac08e40242e755e60ab2292ed", + 0 + ], + [ + "00000000021ef2c04fd30be7049f73b9a8353ac96a467dd5f0b9c1457be1bc5e", + 0 + ], + [ + "000000000023b95b440ccbbdcb914172cf675cd15d6111bd7f5a436a4925d36e", + 0 + ], + [ + "00000000001983521dbffd1b742a6d4b5dfda3f46579fbbdd83a2ebf9a039bec", + 0 + ], + [ + "0000000000044d53dbea312432e68fa90dc2148946f613216dbdeec86f6a67c1", + 0 + ], + [ + "00000000000107667692f12d21a55a72ff1dce828f96872e36c35bfbae475a8d", + 0 + ], + [ + "000000000000252d1d0c01744ec25af801ef7c57e2581c95295070b6a8a85bd5", + 0 + ], + [ + "000000001c1da54e16dc06158677024d9e74bff39bfaec83434ac33673fcc251", + 0 + ], + [ + "00000000b4d0c6ae86bfdf7ba4c205fc3e6b3b6d63836b85e30e9d8bac922301", + 0 + ], + [ + "000000002b16179cb022bf678bd847dd6fc1908d0df04abf0c7874981eb33ee7", + 0 + ], + [ + "000000000e6783554aae41856424d184dc4fa061f40676efd107e6f933a25641", + 0 + ], + [ + "00000000005ae4acbab519895b4b523d97a09e381c9e4b044e642f73b8c0f1b0", + 0 + ], + [ + "000000000010372b59c9595d947064804b75ab21868dd075a3842ab7d2df6181", + 0 + ], + [ + "00000000002f9f587ea304093be049d3142ac0c92f9c68928a4f82d12b929b69", + 0 + ], + [ + "000000000005d4cae51b3c76dc3c61bed0c265c4f228c0c4d1d3d147146c34eb", + 0 + ], + [ + "000000000001a5b6c0e0a0b485a490cb52ccdf9b22596656039b51545bb07be5", + 0 + ], + [ + "000000000000d723d0976338edf55d08edab995dd6283cbb688855f0dca6e8f5", + 0 + ], + [ + "00000000bfebfae90208a82c7fa06c0f61674dbf1e4f9162e370656c38d611bb", + 0 + ], + [ + "000000000c91cd144b2a92ab5024c87f70cc1d76a4a7f26a82a98c5aaad62850", + 0 + ], + [ + "00000000077c8114eb5cfb69c3924c699d0c70334360dd1daa95db0db4816953", + 0 + ], + [ + "000000000348a6443e091db8f68e88a10afad7c6e3e5392247902c4b4feade43", + 0 + ], + [ + "0000000000d63b70351e05829ad8a56336521b361b0d50eb7ea1f5b46c25b00a", + 0 + ], + [ + "00000000004658603163f0ede572120a1bbfce8d313aa282ae54d2ffd9fe9079", + 0 + ], + [ + "0000000000048063b410c793db34856f23acfb19a0ce72f5997fa572773378c8", + 0 + ], + [ + "00000000000228fb6e587fa593ff8b4764064bba8bfc2f43ba5b1f12af33d04a", + 0 + ], + [ + "00000000000082e3ddb75c0ea2a98922b1556ce10346f9bb0cedd97ccb3fdf62", + 0 + ], + [ + "00000000000005571b54d4886b44b81c21dfbefa554cd7c23430e5aeff6b5ae2", + 0 + ], + [ + "00000000306a603ca1a0d961e08e103a9f13f3615163c3373d1bd2a67cadc2a7", + 0 + ], + [ + "00000000195d93ba7ae19832b622de86ebdadf3c78f1751ef2b2e9b0e3a530d8", + 0 + ], + [ + "0000000000476d0d00cbc68bb20b4893f0e608b02a1e029b8c6c73e169c49e69", + 0 + ], + [ + "000000000051348044bc10fc05960c244c3ccd3b3b6c145ffd9958a1c8bc0215", + 0 + ], + [ + "0000000001e4df369203badca9aedc28c240d592b12d284ce0b0463fc7537c09", + 0 + ], + [ + "000000000091cc1ccd448b0ec9185618a84dea96f52477cfb9b9ca2b60cebe83", + 0 + ], + [ + "000000000024a50299c0ef0c6dec9c64336b6cf5c1a1b0013e22fd4fcee1d7d1", + 0 + ], + [ + "00000000000349248c1df06c3783d1270cd97ce7f605b9036fca0fdc2f0fbb96", + 0 + ], + [ + "000000000001afe6793e7427a3d780876d26eb7f2ded92563f991bf7302aea69", + 0 + ], + [ + "0000000000007148006e139e24d9fccc307661c9a0cbcd1af983487c2f0780c9", + 0 + ], + [ + "0000000000002734722a341984738177a3f6f264291424e4984f2128d921bf29", + 0 + ], + [ + "000000000109b02caaa95e49a477757a41a42daed40e92f54fa09e63f5538cd2", + 0 + ], + [ + "000000009a11c7ff8b8fa7fbff5a04c25906f701ab5bd67195736f9ccc839ab9", + 0 + ], + [ + "000000002b1d77f8e0cd60af1c62ef6d381e8905665b15a7fbc546d0c1a45e18", + 0 + ], + [ + "0000000002588cb017de9e2f23cea7edc5082f1b3faec890f9252d556efeac40", + 0 + ], + [ + "00000000008b07f177adc24a4b1a64d2dbcfbcc903ba861d493e11d6b33af7dc", + 0 + ], + [ + "0000000000bab8db5020aa8e052165275e8eb3e7c843533246bf6e4c8374757e", + 0 + ], + [ + "0000000000138488fdca8bfc327e6dbd6c72c5f1dc5868d9c0ea886665b9b56b", + 0 + ], + [ + "0000000000094021fc954efbf08be667fef1b817e8715d4093a561fc30264aa7", + 0 + ], + [ + "000000000000e8183e64072db79adfc6c09b650c4178001be3fade4050b06005", + 0 + ], + [ + "0000000000004c93e8661c75974cd191c68dd66999da4f70d039c0ba4a12b970", + 0 + ], + [ + "00000000000021c675b3ec404bb996f5e68f9eeceeac6946e5a6822987824d33", + 0 + ], + [ + "0000000000000ad85684d30f25d1ec34638f099df2f33b418a07307c68fe3c2d", + 0 + ], + [ + "000000000009c6add76ac42a1942c4ce74d25d1b8975d4e3ac8932185e785a44", + 0 + ], + [ + "000000001e7d828d354716881683eb6fb5caec5d91afce298e4e3bcee9574924", + 0 + ], + [ + "000000000a0e438ab203d8fd3e56100f2f14759f704bff6c699df0bb4e9aad64", + 0 + ], + [ + "000000000b7d5c2895df8bc1fdf5d31e0f663564cb5cff3b18642c44a71b6248", + 0 + ], + [ + "000000000193209ecd92fce00a75975446423d94a325ed525c15d5ab921da273", + 0 + ], + [ + "000000000020835bdc30ac67efdbc785d15186914bc14e86387f97450df46418", + 0 + ], + [ + "00000000000c9078321f0030214c75e170b01ec664d39bab1b1e48460a54eb63", + 0 + ], + [ + "00000000000ac68b63d486ade190dc9108eb3730d25e7537649fe21c30e0121f", + 0 + ], + [ + "000000000002a94dfc5f4b677b251a7a7647dbb99c0803df8658222227fe3e3f", + 0 + ], + [ + "000000000000b076bbef0e50593b1595ffb3d571e7ad95dbdf06dca8824ef7f3", + 0 + ], + [ + "000000000000167075c8bcd24233d25cd268271c0e8fcb6f301ee1b6f6ff0341", + 0 + ], + [ + "00000000013107aa587bcf12ac445330ff0325d73c5253f7e6a49ed8c50257bb", + 0 + ], + [ + "00000000090ff53d49c9ffd51511af8d5cba2038a8e25e3b17186b1bc941f43d", + 0 + ], + [ + "000000000d9e704d5607f77f8983cc56069571a3761d5bd5da55f05ec5d8e844", + 0 + ], + [ + "0000000002b2b4c0950fb6390f0ae860840e84eb0a82e5e8a9bc37c14bbf43b0", + 0 + ], + [ + "0000000000be10137a2434dce1d97850b768ce878c1c80ec905f6e9f21e65fa7", + 0 + ], + [ + "00000000005cd966f80183d4c048e63a5c14f649298dfd261d989d9e3c026bf4", + 0 + ], + [ + "00000000000e8f30e55006a4082380c4b1a372b7ad919d3a9b0a52fe5ee881d3", + 0 + ], + [ + "0000000000018c70a4c27bdba237ad19ebae5d3ca23f1394ccc746d73669a1c4", + 0 + ], + [ + "0000000000022acc8432c883953227786f7a6560aeaf0176d232c8affa5b25b4", + 0 + ], + [ + "0000000000001854e95b28b4efcb2cfeb08c76d8cf1fb03f2055b3fb758f3a1c", + 0 + ], + [ + "000000000000187080c2c39f5a3ea8be72ac4d3ec0d16b21cd34f1541bef23be", + 0 + ], + [ + "0000000000001593766a3c63b524f658ec7690df467cc7bbcebbdb56385500d4", + 0 + ], + [ + "00000000000012d6966dc51a41f2c617192169ec8418405e164ba83b9f7ecdfe", + 0 + ], + [ + "0000000000001d0c7d0a2605e127b00448b71e756ad96625116ab8ca18f74900", + 0 + ], + [ + "000000000009cb439ea49282d257595ad1f7602856c16cc26fff423f7783c792", + 0 + ], + [ + "0000000000889282b98336c994d7420a639221e0484b511227fd616d78dbd028", + 0 + ], + [ + "000000000071a4a2ad6767864bd21239c74c9912a40ca9fd3b209e21b66460d9", + 0 + ], + [ + "0000000000f3ed2c3c9a7c3a7291e859cecba8cf9243d23a4892e6be8ea9b70f", + 0 + ], + [ + "00000000006a4258ffdff8b7f6f4f685ce18c6eb1d7a1cf501ca9e02fcb7620a", + 0 + ], + [ + "00000000004af78f1a109d1267a9c24d69c6a4b30fea49f0efa6c8834cf394f9", + 0 + ], + [ + "0000000000193bf3efbb145747198470a81b2cd33c991057676742d5c22a64b2", + 0 + ], + [ + "000000000006b436798c7e4a8c3bdbf054a66707feee5a18ce9ca57eb95bb48a", + 0 + ], + [ + "0000000000001db50c7caa3a02ea4f173343f958f334a8bf3f8638add9e69b34", + 0 + ], + [ + "0000000000003c621629cc0bcec5968d61d2e42c6673de4d46555118ad5001d8", + 0 + ], + [ + "0000000000001262bef2918265f6dd4534013a4650444054fb4f5e490c5ed57b", + 0 + ], + [ + "0000000000000120ceee972d70cc84430006645997c7337976c673bd75cbef2b", + 0 + ], + [ + "00000000ba16134dc0c418a116b97ad5deccd6bf6e3daa028a8a6a80d7823faf", + 0 + ], + [ + "00000000a1a00d6d6fe0660e63402a5a7c7248589211594d37fd800456ce84b6", + 0 + ], + [ + "00000000394766cec78f962c29aaa715b66e3ad34e1f2323dba45e087cb3b395", + 0 + ], + [ + "0000000008b15a3020676f5e084210ecc05f646885eca1cf6a10e9ae9e3995cc", + 0 + ], + [ + "0000000002cf7eb98abe784f6e516670a88b9028a6faabfd099a364c2dc5c42b", + 0 + ], + [ + "000000000054015fec337a9ee43eea501d2292f031f5bc1f09758d20f5cd3135", + 0 + ], + [ + "0000000000068d24d31a9f1192d848155a2f90939627bc456c9a337135a923fa", + 0 + ], + [ + "000000000006262bd09358258edcc455f9ba46b7f9d6e69d0f6b9da89488a4a5", + 0 + ], + [ + "000000000002327bf77ae67961463ea98a78dab06c24ac7d58b1727c5f856626", + 0 + ], + [ + "0000000000006672235c1606fbacd7861b16b267d203b4d687708eeb1fc25e6d", + 0 + ], + [ + "000000000000ac0c9a39a47313a8715f125c46d6ea8be8741b99b1db4a8aae47", + 0 + ], + [ + "0000000000007e93f6578e7856aae0ecf6341e1312664d9e1d812ff254c37ae6", + 0 + ], + [ + "0000000000002a980acdb1443926875e7d4a57859b2b45ce3fa92c7716319f62", + 0 + ], + [ + "0000000000683bfd82c63514bc58a80daf699a6bcd040bb2a499540baf52463d", + 0 + ], + [ + "00000000373e6262928d7a6cac965b294aef35f90b72c85100ef91501775e06a", + 0 + ], + [ + "0000000000f7bc44061b65c62d4d7747138df127dd2a30f583c3ebb66a25c7a4", + 0 + ], + [ + "000000000212a71c38d0e13ab7c5646c949d4b7ca23afedbe351a43b7607043b", + 0 + ], + [ + "0000000000a836e88f76ee5dcca1e884572f32f4460a3b024280738d76e98ced", + 0 + ], + [ + "0000000000413f6c1b1c9841961636bb3290f2410ba0731f3522c4ff3faa2e0e", + 0 + ], + [ + "0000000000082336107412226110ab2a53016d4faad4deec048828507a300248", + 0 + ], + [ + "000000000000a91e7a3f35a23f01621dd051e314da617714991467131808d3bf", + 0 + ], + [ + "000000000000cd6576950f6f238227c3ba7f62405ed1bf3af4878c6dc1b04635", + 0 + ], + [ + "0000000000674099e9741e44da03e9531402a2607a19a65660b57470340828db", + 0 + ], + [ + "0000000030c4744001ae85f9e6b46ed0664449927b86b8fbf25b22b851d23671", + 0 + ], + [ + "00000000002f5095ad1a12eb9eedf88ce1e7268368461b6b4e10051148f436cb", + 0 + ], + [ + "000000000057d3e2a77eadb8b9613cb839ab02a96094dd5d0a6d1f09026c3936", + 0 + ], + [ + "00000000004e0a28be887d6ed037cd9102cbbda7d6c9e584ba51f2c2dce96232", + 0 + ], + [ + "0000000000211346d8099f7ecea72481c4cd45591f5e0d7e347725ac2162f142", + 0 + ], + [ + "0000000000199ae9fc06c5acee766db6033b86f76c266cadefe1461c611c2198", + 0 + ], + [ + "00000000004c9e5748558d4f5a75bc824171e3b958152dfd6844330f1e907f8c", + 0 + ], + [ + "0000000000137addf1521361dad1ee007eb9e6dd4eb8441492ebfaa3c240d556", + 0 + ], + [ + "000000000054d4c77bb7964e5327c35760d87b890ea336aec5ecdeb783350738", + 0 + ], + [ + "00000000006b7b06d04818e97a4df66164b471912f88d9cd02de4af6c8bbe74f", + 0 + ], + [ + "0000000000380fa9858e3e90335c061a3776a26bee1e8b6851de33ec63670782", + 0 + ], + [ + "00000000000842598b03fb79ce7386e9f9181a02dcf1effc8f70d3ff7368ccd5", + 0 + ], + [ + "000000000003d3475edecd733fc7b82432882d9c9f1350a98ef8921b87db4dec", + 0 + ], + [ + "00000000000000e330a8d57a38dbcc0b0a5dc7a4210f231b8082b9be5f9e4bce", + 0 + ], + [ + "000000000000218ff87fd50cfba2fd04203a78d2600cb2c4dcb039d803426e19", + 0 + ], + [ + "00000000007c96e6e3ed3146260348ac79ea7dc2ec2ae6bf8dc203400a37721d", + 0 + ], + [ + "000000005abaa10bf7260470c28ba32f1755b4cfd3734aad580681e39a9605a5", + 0 + ], + [ + "00000000005e77c226e6fffccafa56055e68f0ea0a30101e6a243ab9b3e07db0", + 0 + ], + [ + "0000000000e989fe27f85b89c1e852d7bc94b09033cc6c8b32fbbbd9383a9ae1", + 0 + ], + [ + "000000000091a1e962438583146293ef34156962445ffc5e81e4d0fe327d37ac", + 0 + ], + [ + "0000000000477978a6903217e2817d10e99bdfedb4f8bc396b96fd5b0b93b522", + 0 + ], + [ + "00000000000bfd9e5f13a9c03c48e8b58a937cf1ae2849160f1ca11f8fcced3c", + 0 + ], + [ + "00000000000158dd3c31b6379887b4353ef2898c03b7ce55458fcd57cb6f0639", + 0 + ], + [ + "00000000000029d7009eb56b9d38366005576b82a9b59fc845522a34ad36a38a", + 0 + ], + [ + "0000000000e6e207a82b8ad7136352204bb8e9ccfcd25885a715d3c65cbee997", + 0 + ], + [ + "0000000000fadc4429f50fc534ccac4db5e51a313df25034d6c5c25f7e83448c", + 0 + ], + [ + "000000000019c58defcfdab6c6ab9497685e61118effda4c2613bf44be19fcbd", + 0 + ], + [ + "000000000006cf444d846093c5045d42ddc0986ca805f261476d0fd2eb474c39", + 0 + ], + [ + "0000000000d0856a3d6a1e5b1ac7e388cc029bd8410b3b1489598974fe470568", + 0 + ], + [ + "00000000003d9aae63ed532b78082ca5386211e22410fd24ebd5318d1a4cd1da", + 0 + ], + [ + "00000000000345003879f86021a6d5e3fe93813246818c145947b7e225691177", + 0 + ], + [ + "00000000000175393730cde3e49de7af2b81ae736eee005a9f9c4a1e878c52ec", + 0 + ], + [ + "00000000000087a8c621c879aec2a897258632d6aa631b9a38ba4d564e08682a", + 0 + ], + [ + "0000000000002ea641b2975935bd9caf337b51ac9f9bb90a54f6ea6ee5d3112b", + 0 + ], + [ + "0000000000000c544f9b6a8cbab6d25caf949875622bf75139234850b10affe1", + 0 + ], + [ + "0000000000000f66fc4e37232a29f3389c493863a980d58a1d570eddd5268999", + 0 + ], + [ + "00000000001213fe2bbb8aacb1fc14983586e09db964151cb507956a81b35f25", + 0 + ], + [ + "0000000000ba82c2160602ddc1913bc4c133ad0af8848e014367c84110d00e05", + 0 + ], + [ + "0000000000b7a98b364b1cf9521275a915c7a1b3a0f0c052c7d8efb620ec0870", + 0 + ], + [ + "000000000047dc62db23540ab4aee43e54812aedb623a2a158aa3244fc784722", + 0 + ], + [ + "00000000005291002da10e53c3855882251a6e5a425b5e639ef9be3bd05767ca", + 0 + ], + [ + "00000000005ffbcbc0d9b380584bdc78050a6f0c3582b4c9c5103a150cbc71f5", + 0 + ], + [ + "00000000000a7a69cc06b0a68b27a8fa5d29727ec3b6db8d32d61cf7489b5ff3", + 0 + ], + [ + "000000000007212eb8c49758d98cefaa6098da2b877a6055be341f5f7c0ad301", + 0 + ], + [ + "000000000068d1099d8cf3f43f6d164f2925b1d52ede75640cc65ca020e1de1c", + 0 + ], + [ + "0000000008d5ddef4468a4414bd08184c2eba0ec536b85a743b1091828a6a884", + 0 + ], + [ + "000000000acae40db93b589783b0cde70b98552955cb3c12f08de1b417d9008d", + 0 + ], + [ + "000000000066a51eaa3a54036f338719da3d5779180c0bc3787b533410de90e5", + 0 + ], + [ + "00000000008b521677a6e897950aac69640e52efb01b7af10bba3820ecd09a89", + 0 + ], + [ + "00000000001823f0e399311cab0fcf57403e094feebf99b22030bafd2004da87", + 0 + ], + [ + "00000000000bf821c2abf5bcd00ca96439ddf5b0b593be5601145fda5338efdc", + 0 + ], + [ + "000000000003f4fd19b2af0141289177014ecc6dce6ea8fb50bab93d4a291095", + 0 + ], + [ + "00000000000011842d892a02e55ca594caddc9f3cea1979ddffefc070eda8498", + 0 + ], + [ + "000000000000208aa0259d20f51c0e7b8895e18a93aea79af9b3832e710ef134", + 0 + ], + [ + "00000000000007218f849e72dee1f7fb6fcf36f3b6745c6468187ed2ed13287f", + 0 + ], + [ + "00000000000f79f656cae641c2b74554c6ecd673c0c7550671c4c2af940661b3", + 0 + ], + [ + "0000000000199b4d178c05fd1c3154c9a4632eadc7bfc734c4522176c977ce8a", + 0 + ], + [ + "00000000085d0682d481635cb2e6de2e4d9884589455a86194f0b222f9acb3c6", + 0 + ], + [ + "00000000015972a5a6786a14b009bf582c4bbf7b9854591dd8d26f82b43ddaef", + 0 + ], + [ + "000000000064bf72b7bdbfcbe96dbbd0efcaf7aa94c0f92cb4e6662819468fe4", + 0 + ], + [ + "00000000003df36b7962bb4ad62266c462382eddc93f4bfeac464b95f7a89ee9", + 0 + ], + [ + "000000000006516d3a9f424eb61db5dfb85aeee29708b78c65d24827bd926263", + 0 + ], + [ + "000000000001c1709fe1b294712638db356e89155650f6fbecde79ec47a92af7", + 0 + ], + [ + "000000000000dfc23251344b593c16c28cd195abcb337519d7bc82175721a033", + 0 + ], + [ + "0000000000000aae2dd2bf0b8581d137fcfa3d9c4cadbe3ef3834d7cae4268c0", + 0 + ], + [ + "000000000000092a5baff3d9a5ae87689b2afe668e71bac3b342c7d383f0060f", + 0 + ], + [ + "00000000000fa906eeff7d2e126698d88b8cda01d32ea2c039c26984daaa17a3", + 0 + ], + [ + "00000000002d4315e5bdc2bcfdb245b914130764a50943a2b2e02ea3acf5c47b", + 0 + ], + [ + "0000000000fc2bc9bb83e04cbe922d64719295bfef6320027725402306bcf1a0", + 0 + ], + [ + "000000000142690e7c334b97612746d6db208e6153bdfa8479d86d1b575feacd", + 0 + ], + [ + "0000000000629a7820e8cdbbed18dcfe16c992152badc745ca73b9b34e53fb0d", + 0 + ], + [ + "000000000023c2e9dbf3fe03248e40f4ec3fb2dc81ac573d5a6a4f490c701877", + 0 + ], + [ + "000000000013658a43b6d1c4be95fa36e32d3edf80716de3a8f7e98858016adb", + 0 + ], + [ + "000000000007c847295d8c4b6da9d8a64b57c3a2307e64387bf8882b9d35d6de", + 0 + ], + [ + "0000000000032bf90b823332af80bd2ea18f411f081c7dca8f2fe79d9215526b", + 0 + ], + [ + "000000000000001bc0655da6f24c6952e811006897a0c6dd8b6bd94f178636c8", + 0 + ], + [ + "0000000000001e1d09b15393190cf686e25488db7fcbc2f1ebacc8165fe6e3a0", + 0 + ], + [ + "00000000000cc79ae066badb4157def4067057cefd705bf87f1d832845a7ab36", + 0 + ], + [ + "000000000014408398244b94b4eff6b54875802ede6df2d1d21915333a195719", + 0 + ], + [ + "0000000000114135a1bc757110c05162fa649b694db9569be117e34832c87257", + 0 + ], + [ + "00000000009b15fb2bcee1af904989ba0761e4cddc6b3ee214c0bb07dac6211f", + 0 + ], + [ + "000000000012be506dde2c54adf355bdb41a457b0abec436202a3be73f0b052c", + 0 + ], + [ + "00000000000963760ceb5fc65570650d494805e05c9d753f3ea6d44247ad3d08", + 0 + ], + [ + "00000000000bfec54977673f68b6fe5f088398e697d778fa7987f8bab6a70825", + 0 + ], + [ + "000000000000e7f428bb413c17032c0031af0d26133ba93f744a5a0c16cf7e1a", + 0 + ], + [ + "00000000000036bc80378323c6eaff8ab350b6d89955f602960cb7c93d2feb4c", + 0 + ], + [ + "00000000000f0d5edcaeba823db17f366be49a80d91d15b77747c2e017b8c20a", + 0 + ], + [ + "00000000001ff8fd57798082ab5a7452ada211e1c3be38745155505601498829", + 0 + ], + [ + "000000000020f960b535eac585e5810ad64f158c1142f0eecd925c8058172933", + 0 + ], + [ + "0000000000067bd89409368d221507a160e5c45972eeb01efe210054fe8e7d85", + 0 + ], + [ + "00000000003521f2d5ea3232d4835ca6c6bae083ba90458f67d4cd765ce93b09", + 0 + ], + [ + "000000000005ab3ff3a0c484eff7b571fb78ce27d93f77a480074232e5ce0c1d", + 0 + ], + [ + "00000000001048c9eca7cc1cbb86946c04498052071f7e7c775bba565ada337c", + 0 + ], + [ + "00000000000154caacde41be616f924d7d478812148242fba85605eefec9ac61", + 0 + ], + [ + "000000000000c34f75bd6f338c0206a31a8d5021cc2ded51e88a6ef4fe686d10", + 0 + ], + [ + "0000000000001e0581d86c49a6ca14ba88639ef908abb09210b57989e06b1a1f", + 0 + ], + [ + "0000000000d0e6dc0bf830b50bde3e400e16ec4f772f92a55390e62d4aa73af3", + 0 + ], + [ + "00000000069c2501a2f32cc69af72a602ff674438ae04dd05516f72a71b9ab26", + 0 + ], + [ + "0000000000c926b38954550c9b8d363ff058c2eb135eebdb3e640cfa67df803d", + 0 + ], + [ + "000000000011e9ad9c18e9e2095c3662af5be1e918dff653758583aa45dc8197", + 0 + ], + [ + "0000000000f311624ff4dcdf07400d0d2fec8b16b14c1c16babc377a2d85ad21", + 0 + ], + [ + "00000000002e455cabfdc2a8955e8ddfe717b12efe5b80937b0c0ad6ac977fc5", + 0 + ], + [ + "00000000000fed8889a22339b340f599ac7908e790bfc3cfca9b78078a52d228", + 0 + ], + [ + "0000000000012ca4492956b3f859b00e5db14b54d422cd95c68c7150743db365", + 0 + ], + [ + "0000000000004c58e8f7bac59eb4a036764a4d8e0da51c0290858ab14fb72481", + 0 + ], + [ + "0000000000002f60bc99563ff5b4b800c176fe8bde95e8f968fd6b53d74c9cef", + 0 + ], + [ + "0000000000000bffd10a3fb0b5b86d8b2561f39d07f8a4c41dfa08e3e49b7db5", + 0 + ], + [ + "00000000000006a296be9cd8fd4e3145c146863adbe08b71831abb8a869d032c", + 0 + ], + [ + "0000000000000c557f496e82891039ff22e277bd604be6e2e8b95e519bee91f9", + 0 + ], + [ + "0000000000399b30d2111c4bf3051c1f7f2f35bba7ff290d92393341ae47df55", + 0 + ], + [ + "000000001f88733439e4e8d3c474504aed62037faa16f3845b4c671f69732e26", + 0 + ], + [ + "0000000018aa2f93d2ab76a7e2f1bf5b565b4a1b0ececb6ee46490984f6c0d4b", + 0 + ], + [ + "0000000005e22674fcf65ce7be896a0557205ab26d1f76d73a717f5f14a6d6ad", + 0 + ], + [ + "0000000000223d866b324c097973210f8fc715c9535908359d61d8e1ab2f0100", + 0 + ], + [ + "00000000002b321fd6452ab43849bd7a781953ec4485554e0fdc579f2a52c90a", + 0 + ], + [ + "0000000000173132748c51b5754b0341232325bd118455bf3c8d25164d3eb92a", + 0 + ], + [ + "00000000000143158cdea5fbb9453bbe1a7a900e6feba1e2193e4f5c106d9fba", + 0 + ], + [ + "0000000000014677751456af5630025b3d9921a4eafb4d36a06498f0c6a84c56", + 0 + ], + [ + "000000000000243976cf2d30ecd3cb1fd0b805fba4da92d2758f78e1c6f8ae92", + 0 + ], + [ + "0000000000001323db1ab3f247bcb1e92592004b43e4bed0966ed09f675cf269", + 0 + ], + [ + "000000000000017a410c22c4b6caf710f5ccf005d644caf276ea8626a538798d", + 0 + ], + [ + "0000000000170b2b1374e3a0dfdce2fbc5e302e1e0e9fb419dc057c9959902d1", + 0 + ], + [ + "000000000015b4fad4d929630487680cda2d3aada138c58cc08241ef6dd4ab09", + 0 + ], + [ + "00000000000abebab869f1620843d413a3d9e06dc7d9f5201a414d547ace1f99", + 0 + ], + [ + "00000000000b0bdaf05c2fe8b12ebd2372f49d8eabcfbccdadd68b5e5b7c9565", + 0 + ], + [ + "00000000000ca1af42ee1be2c8895d94f39dab5fcdbe0b4b4065f4be534e7294", + 0 + ], + [ + "000000000069d0cc8c0452bf86cff87db05232f801a162acab2d080d6e4e9ea9", + 0 + ], + [ + "000000000019c7f7685f5bdc3afbb5e978cb3f4f70fea7b2b410139741303b53", + 0 + ], + [ + "00000000000d3874ce21db78f4d1883ad9ae8b26c1d7c13f3d723ff85629d595", + 0 + ], + [ + "0000000000033f87c25275ff72b58630d8da90221f2c84bcbd77c8e615709f8b", + 0 + ], + [ + "000000000000dc72adaaae6483eb6737de7d21b3a24b2426330e80b078ceaed1", + 0 + ], + [ + "00000000000002fb1337228db02ac464565271f22f045c1b6ee5e449f057a829", + 0 + ], + [ + "00000000000001902376ff640d3088899af0819dbd15f602156a13ac2fc8e94e", + 0 + ], + [ + "000000000000007ee49761a1c8284a3b8acefa39e37e455be4773d648e2db794", + 0 + ], + [ + "00000000000005b4d495a77f57018dbc72bf47993d494349329a3c653f04ab93", + 0 + ], + [ + "000000000000009dcb3ae6d68828e2f5ccfd58780abb260354e74484106f81ce", + 0 + ], + [ + "00000000a3ceb118021fb42d39be52db951c6f852bb9a241046e972706f7329a", + 0 + ], + [ + "00000000574e8e1c27fa54c77b4e7cd1b79de070f0d3ad5b383206ab9777d983", + 0 + ], + [ + "0000000039d562f640c1743421d53e7e04c3e8ba222c339fff6f3d25b1d4a7fe", + 0 + ], + [ + "000000000001cb1559d55c697871e18d5c26800f77fb11587241bfbec3b15e26", + 0 + ], + [ + "000000000006e01a93090319756c7ca826ef655feb0cc2ef9abcc59d67de5e5b", + 0 + ], + [ + "000000000000a81aaf5a4c013032638a077af6aad8bc449d74daef8ad3a74419", + 0 + ], + [ + "00000000000087d0574963c1582f2161298e2de5e48f74566291ef9afc2be24a", + 0 + ], + [ + "0000000000033251e71c347cd663945fb68efe82a8c6666c0b41e93f1c46658d", + 0 + ], + [ + "000000000000f592857e6f0e4711b5b93fdf95f2b21a5963bde15be750a07908", + 0 + ], + [ + "0000000000004353c8426e18b942a5012934ddac8322b86d6ab98ed7c0ee86ed", + 0 + ], + [ + "00000000004f027845b699f42e7d0d30c530e99524c5f97186ce6a250a5fac42", + 0 + ], + [ + "000000002fc6407edc060df90785082834867331e6746a43ed34a26fbdc5df64", + 0 + ], + [ + "0000000000048733007c91ea3665bd4e1653b10799e3f43abee0fe830ffbb3ad", + 0 + ], + [ + "0000000000025a9b1c5afceba0c78c4b0320797acdc1ad50b4e040f148fbff7f", + 0 + ], + [ + "00000000007ca6d026d27387edc1c5570de41c61bacbcb1dad2c0f300b49e637", + 0 + ], + [ + "00000000000258f683a77ad509da82a4fab24188fdb4b4690e212c50794a9abb", + 0 + ], + [ + "0000000000015111bce7b6ac13c930484e14e31e13e43355cb4d63c8f1782440", + 0 + ], + [ + "000000000001ca074fdecac7749d95f28f10c83a7e13787fd865bfbe505382bc", + 0 + ], + [ + "0000000000001c11a6505dd44ab405fdc07ddfc015f3c1166a5d9352ab58b52c", + 0 + ], + [ + "0000000000000c83f7f8e1cab4efa08d6c68c4555fb6ab542e01b87edd8f56ac", + 0 + ], + [ + "00000000000009561d0ceba15388573d2a994aff24512ec3ed7d7881aa0997dd", + 0 + ], + [ + "00000000007dc7cfbbb94db1fbc076a70a1252fd595686b4d75b2ea77ed6ee9e", + 0 + ], + [ + "00000000000251feb68a8c90852f73aeb29ebda191038737b7edd37c9475f4ac", + 0 + ], + [ + "0000000000013f9a97045ea9047654e514951288911b2c3986787c27bab49106", + 0 + ], + [ + "0000000006e8c37735c61f22bec69f4cb7eba03172349e7012b7704652f3e83a", + 0 + ], + [ + "0000000001f341add5657043d8e50e53ba079fe24966a2668f904be5579c84b9", + 0 + ], + [ + "000000000029a6275cd477d77939424bd183c2f1308a9912f45aa7cc9ed13b56", + 0 + ], + [ + "00000000000a0336239e5e1faedf5bd2eedf38c9a5ba34a832356aea70aeb102", + 0 + ], + [ + "000000000003c1a2b25093a64eb624055f6a3a26e18b8e7ea2d9382ec7a3609a", + 0 + ], + [ + "000000000001bd89bf7e8740ce22adfa6e8793bd1716a647e558ed1742ee8329", + 0 + ], + [ + "0000000000001320421f1bb2c94000e11a621f581fc277c0e2911c3b89f680bd", + 0 + ], + [ + "000000000054ce90a949f5ae2d43c4ace599668c6ccbc50620f6d5705922ea7c", + 0 + ], + [ + "00000000200d16fea4857e6b73169cc593421a57971acdbcaf87a31d7d8d72c8", + 0 + ], + [ + "0000000000e75602181c88f713b91c49de291ed878be305d25b75c0ec5fbe942", + 0 + ], + [ + "000000000081f8169c3c3665f20351dc0fe499612ae232ec0b55858a8e5dc6e9", + 0 + ], + [ + "0000000000d7ad232e7593fb435d125343b8113bbdb3705ab58ac0e18c26cc79", + 0 + ], + [ + "0000000000076df615d887e33193ca2dc0f2fc0e70744512c95da6242e9b1a81", + 0 + ], + [ + "0000000000084a62093d1929843e74456686429b698a7ea9b1901c1565779f58", + 0 + ], + [ + "00000000000251d1da01e9de9fcaf3ca3a64bff78a5faf51a8e697dfab6b5e4b", + 0 + ], + [ + "000000000000609a8798996b1f1fe0b66060a628eadc380d0d369a2318c2d0ec", + 0 + ], + [ + "00000000000014770aeab044a022e86d888a6ede75b6474022c71aead3a1db74", + 0 + ], + [ + "00000000000004101d04ebc90ade5d4b911aa13c038ecf25e9887d877203ddb8", + 0 + ], + [ + "000000007c700410b61eb7ff1aaccbfc3a79e4e4484ad7a2b0eda4d91dc4b613", + 0 + ], + [ + "00000000055ff438a031413ee042fd3c0a2b69be98690542806ff123b7988024", + 0 + ], + [ + "000000002eca5f9f2c3b656d2550662fdee4c95da133eade51a5cae653bc69fe", + 0 + ], + [ + "000000000c679b76ccf0c5b943095fdee8fa466311edbea2c4a05f9430ffef3f", + 0 + ], + [ + "00000000007c6f494e32d5d9de58fa008a770fdc0a7b4a141be5b7c2de3ab970", + 0 + ], + [ + "0000000000d5dcd5a26c8ad29c1293e70401e2f90d8288469df3816b8cc6d4aa", + 0 + ], + [ + "00000000000d754d94f36cacbfb620710672afb1558499cabe17ca62c54a7d3a", + 0 + ], + [ + "000000000004096bb78fba714b130f7f1f929e2803c75a7a85619f7a2b86567f", + 0 + ], + [ + "0000000000020e686c38d44c35896df35f9f1b7723a82a826a5e2393c25ef68c", + 0 + ], + [ + "000000000000504f9af6885c0cb6484109ea205a956c8efae9557a1f5b9233da", + 0 + ], + [ + "0000000000000e8746e52e4320ec17e66434a3936a3825f7046fe874e92275fb", + 0 + ], + [ + "0000000000000f48d818a9a026270c9f733f629959bea25192596d59874b1ce2", + 0 + ], + [ + "00000000eaa9214cb05b241828a1cfb0c4209fb7ea64429815d61f7c1d98939e", + 0 + ], + [ + "000000001f7f915a6002cce4edd5cba392307f3a199a520ee8937327a9135162", + 0 + ], + [ + "0000000009674ee0c606d687bdcddf8e023462927e2902b3381bc4bb862a7397", + 0 + ], + [ + "0000000001f3f3528c083a4b11eb2f04d8bbeca92b57f05d8282909bde78bc77", + 0 + ], + [ + "000000000131917ac459aefb91774dbb42caeca497afc0cfd1766e0338cc7f88", + 0 + ], + [ + "000000000027634444081e1289354cb50034a506bb306a2ac1d8280683771c5c", + 0 + ], + [ + "000000000017a852acff78fbee573329d45bb8b121e9f6fc1e4f687bb3778ada", + 0 + ], + [ + "000000000006789e1a00eca982fb2827f680b254c4a0ecb005af4464f3585a02", + 0 + ], + [ + "0000000000015d2e9f54b1e9419d6b32ce68ae626cdd7f2a1954f22ca39ae0fa", + 0 + ], + [ + "0000000000002f7893bc169165ed9fefb434b6201103f23cc84a747a68ff8797", + 0 + ], + [ + "00000000000008471ccf356a18dd48aa12506ef0b6162cb8f98a8d8bb0465902", + 0 + ], + [ + "0000000000000596f00b9db53c4111bcde16f3781471c5307af1a996e34ec20a", + 0 + ], + [ + "000000000000007b5d2406f64f5f5833c063a6906552e815e603140c00bca951", + 0 + ], + [ + "0000000093ca5d935740a1b25f10ce092fd777c2bb521f3156619389ae78931e", + 0 + ], + [ + "00000000292f3a48559527341f72400a0f8a783aebcaae5bfa0e390dfaa5286b", + 0 + ], + [ + "000000001e852ed7ddf0108d1fce0f4f686f43c8c1b85bcb12c43e564dc7630e", + 0 + ], + [ + "000000000c4bea8fb1e7f3a1f3e6c6b3f71388c0ec7eef3de381853767e89f87", + 0 + ], + [ + "00000000029ef31a21711b55c4300efa38ace0b706091e373f48285286f2c578", + 0 + ], + [ + "0000000000979060786bb008f193d3917e28667bb1b28329f3adadc172e4cce7", + 0 + ], + [ + "000000000019030ceb98013b1627517b45b04ee055ef445813bbebaa25fa1ed3", + 0 + ], + [ + "00000000000adf202247bb794fc9a3c82cd8767143f1e6ed5f60940ee18b09a8", + 0 + ], + [ + "000000000000b19061e2481d8be6183b3d881b0d58601072d2a32729435f6af3", + 0 + ], + [ + "0000000000007a6d34f59b29e8d4da53e51e3414acd18527466d064945fe19fc", + 0 + ], + [ + "0000000000002e66ca213a2c3e9eb5fa62de29feb83880a0bd29f90fca8ad199", + 0 + ], + [ + "0000000000000b4ca10aa100728d0928f37db5296303db1b74ffe29e4a17b6cd", + 0 + ], + [ + "0000000000000143309f6b19567955743775f61f8dc6932c0b46cf5fb11c6c72", + 0 + ], + [ + "00000000000000b04d5409b3ac60cc18c0b9a3d58b303594635a8f75a9d2abd5", + 0 + ], + [ + "000000000000040a2699f62a552703a278608248c2ce823f4cd8845376e9a371", + 0 + ], + [ + "00000000000005cfcb850db7e83d4963994f958bae9b1de1483f5aeb3d449925", + 0 + ], + [ + "00000000000190f80220e70c1481153671a7c90fd856988c183ab0e3d9313df8", + 0 + ], + [ + "000000009374563a06178641d06776f66554c2a094b5319f0801fe35cef72ccf", + 0 + ], + [ + "00000000003e4e6e5e8e4a89e7de50eed104d4a49d2992ff101b6740beec7cb5", + 0 + ], + [ + "0000000000618cd377d14aaa441cbdb92527894f98da316eca81664f8ab5488d", + 0 + ], + [ + "00000000000d977ab2897885fee712f58612fce8c10ffbe9400326fe3429b77b", + 0 + ], + [ + "00000000000c3575b487dd0f938c5bc744fa65ca4ca3a9c981b8bda903ec110b", + 0 + ], + [ + "0000000000247ac689595ed8d62678bfe53e5af13c0f5455e558f5e6bb375c16", + 0 + ], + [ + "0000000000093d175376aa621176511f335a48f824b66d998e8082f85134a48b", + 0 + ], + [ + "000000000000c0c0448fe922f2c737946297d35f2c25ad7cc223e11bbe58e1f8", + 0 + ], + [ + "00000000000016abe4e7c10ddb658bb089b2ef3b1de3f3329097cf679eedf2b5", + 0 + ], + [ + "000000000000242757cea5b68c52b83dd8c2eb9257492074fc69dfa30bd4cbf4", + 0 + ], + [ + "00000000000006813f3dd7726a509fbe3101835db155dfd35d44aeae6aedb316", + 0 + ], + [ + "000000000000053cc4f39cff1c8cee1aff7e289a85dee84164d2d981afc8f17a", + 0 + ], + [ + "00000000000000789724805cf1d37ef689acf52c47a460507f540d5e5ca79bfa", + 0 + ], + [ + "00000000000003d71618bb8952887f65540270a5e54d6246b9419e08831b5e4e", + 0 + ], + [ + "0000000000000251a513a33eadfad67c015f6e3b291dfd0ae1cc4bb3a43006dc", + 0 + ], + [ + "00000000968009e3f8d6e6071e7def68298307717a9af6c2d44986deaae297d5", + 0 + ], + [ + "0000000062bcacb734df83bbfa3e1b9a8dfa570ecffb6c29eaaf8e9498cccd30", + 0 + ], + [ + "000000001d4618c0931bd3c25ee592c35341f30ff3b549a671f637b3c26ef414", + 0 + ], + [ + "000000000418b329df96a004f1b652ad06a7ca295f9f2e711c412d00493f5a86", + 0 + ], + [ + "000000000302bfb88e9027237d023c4b969e106c9a7a23a84103776de7880836", + 0 + ], + [ + "000000000069b9f7d9134fd93c8b7e3af8b26bbcbb5553af02fb6ed644d7fca5", + 0 + ], + [ + "00000000000411ec444240ee91e2777ad18b80dee854e3e838e32209e84774fa", + 0 + ], + [ + "0000000000007c73f322eba4dee5463305227c7e1a8139f1b7b296444f265052", + 0 + ], + [ + "00000000000129adf0f9c0242aedbb9d87935d67ee4ddea758c00344d4b6a29e", + 0 + ], + [ + "000000000000343594e671158b6e1b4b6499f6ad66e2aeabf1f6d295d3dba850", + 0 + ], + [ + "000000000000320f0d5c22ba22b588b97a0e02273034bcd53669b1c8c4eeda1b", + 0 + ], + [ + "0000000000001e8cdb2d98471a5c60bdbddbe644b9ad08e17a97b3a7dce1e332", + 0 + ], + [ + "0000000000000026c9994ccdd027e86f51a2e36812f754bd855a7f9b1ca56511", + 0 + ], + [ + "00000000000002746a820a2c08b35b8d0493c4b5d468fcc971b9c88003e84849", + 0 + ], + [ + "000000000002949f844e92645df73ce9c093e5aac0d962a0fa13eb076eec835c", + 0 + ], + [ + "00000000000156fbda67468ae2863993b98a41227c420246e4bc4e68c84df0e8", + 0 + ], + [ + "000000000003b43c6c807122c8dd10e2a0cffbf72946f41c97c1ab82d416f74d", + 0 + ], + [ + "000000000004e0635c2438b1b649007e5d424b3de846299a8db53049ebf4da0c", + 0 + ], + [ + "00000000000258e4b79e3cca2ab7d12b35ba77fc491572f2e794f0a10f5236d9", + 0 + ], + [ + "0000000000f5816875d9fece105e499b0467b8fb23ea973c48d828a235acdebd", + 0 + ], + [ + "000000000001353bbaec810af7a4c74b4964ae072361c0889ed6d59cf16db6fd", + 0 + ], + [ + "00000000000b354d8c389473670ca6bed7e3dffa069f270d35ec9dad810af141", + 0 + ], + [ + "000000000002fa1f39e7cd8730fa08085ba2b532146ad1ef3b400a13e835ca36", + 0 + ], + [ + "000000000000d2c7943eee59652a9783bff27e474a92ec206c5c6e3cdd58d0d7", + 0 + ], + [ + "00000000000036034181b4d9a84a97490b49fbee4262b9cfb25a7bfc9c0eec9f", + 0 + ], + [ + "00000000000007deb59381cce692f152fc902732d96a7e7d463bc83915b37c0a", + 0 + ], + [ + "00000000ea7d32833462c0f72ade0cae4766e6065caa4e510331929c56d16632", + 0 + ], + [ + "000000000068fce0ddd370d4c8f9129a7bc7843e75fc57666202d3b90239e269", + 0 + ], + [ + "0000000026b4a2212c9c9493f8bd9d5331cab6d8eda8ee017410e58a783ca069", + 0 + ], + [ + "0000000009535ea2dc7e83c31cd17f1db1bb78b0a678fc0610844273de143bf5", + 0 + ], + [ + "00000000008607cbd5baca91d5b8b82ee965aace335744a3e21578af22bee8ba", + 0 + ], + [ + "000000000030dcedae0f5e98c4e176f9569ce76c4d4135bb028fc3144ef381d9", + 0 + ], + [ + "0000000000297c3f0e3fa85731222ba934a955bf513247a72a33c74c498cadbe", + 0 + ], + [ + "0000000000020a0d4a1e8120cbdb486e758b58919c9df12e0edc8ca1f2795e94", + 0 + ], + [ + "000000000000078773afc9023182bfb6534a60158672e6bc6e8aa5052854da80", + 0 + ], + [ + "00000000000102ecdd67800807d9e137357805b9bbf8a439ed86bde5b19fbeb7", + 0 + ], + [ + "0000000000005c3d2e3c7ee737c67ab465533acb233e0df902c1525fc11c3a55", + 0 + ], + [ + "0000000000001a77771650cdbbceff87caa4461391ba6a4ddc9815b5b0ab47b0", + 0 + ], + [ + "000000000000071ec390bbd28fa2a84e52ab5b32901d0723d22646b04ae01dc3", + 0 + ], + [ + "00000000000005c3ec3194f710c6f26ee736d59cc935ddfa574440f39846433a", + 0 + ], + [ + "00000000000001cc3df6924591939269d61ead563b9eb68402a2ca01d7ff99e2", + 0 + ], + [ + "000000008c778b3554ceaf3a13a856acbfe46b5750fb86fd92ba30651c2852f4", + 0 + ], + [ + "00000000107ca31f75f8ea76073dda3c33330b2706c1ec20c3ec240e853b65c5", + 0 + ], + [ + "0000000006ba99b08e7f2869ce113e2ad7464891de7b4cfa96f330d706a2da46", + 0 + ], + [ + "000000000f31036bd51b2818f6dfb90ada9be5019abf55fb15694b181e269865", + 0 + ], + [ + "00000000004fcc101bc47eb7a379b9f608d5c00ac04d2d0ea165ae2937070796", + 0 + ], + [ + "000000000044d5ca3eda838edef0df7e69e1934047f8482822ce58ff7a18466d", + 0 + ], + [ + "000000000029bdfb157be6d400c4dd3370d98afdd8cd3db6f1ada8c19bbf4650", + 0 + ], + [ + "000000000005e9699ad8035caa4f73af781ac2040c87b8aa77459b3607209aa8", + 0 + ], + [ + "000000000001c0ba033f7d85beeaa167c9bde0e192240653a7ff6d9b81679842", + 0 + ], + [ + "0000000000000e0176111f29e800b49c7b8c7226dbbf4df715f1a4f06bcaaa49", + 0 + ], + [ + "00000000ac3bb2cf42192e9053f5384355228a2b3d70b4ece4d45773a5d5ddd2", + 0 + ], + [ + "000000000f29f7b60842b1044b2db7998e9bcbd92f8ec6fe8d159c6d582f1f1a", + 0 + ], + [ + "00000000352f86bc5f9760961a25de009940508bb2cd0b37f378fbc87dc97eef", + 0 + ], + [ + "000000000e9b3086008679ed57f59857f64c3954368ba1088117dbf88d5839cd", + 0 + ], + [ + "000000000015324bd8fed0e61b62bd1d6c663b862cb98ea03c494a92e4a8d0af", + 0 + ], + [ + "000000000020475a181b7a084b341860a72fc0c1fdfcc13a85adeb0471444b0f", + 0 + ], + [ + "0000000000031905c508a975707b74f24e733880382775ee0e6250666473e1d8", + 0 + ], + [ + "000000000000ca38b15d2ea33a6eef505a9c661540a18882f79ba9a3c575a9bd", + 0 + ], + [ + "000000000002739979a7a89fa279303b6606885e750b19e91ed637d7f222b392", + 0 + ], + [ + "00000000000091e935fc266facc2c92759d5468a39aee5be6b76b519a9bc7567", + 0 + ], + [ + "00000000000006e339938254208203b67c3c400f703fc29535fc646699e36e58", + 0 + ], + [ + "00000000000008f6f1d1150d77f93a7f1baa24b65ceb471b1825b2e92ca6997c", + 0 + ], + [ + "000000000000004894e1edcc5421dbcec77d47c5c50bf27b2cff3f1c242c9eb3", + 0 + ], + [ + "000000000000054e97fb5e1a8bd7900f7c329385895761aaa40d11b3c75b0c8e", + 0 + ], + [ + "0000000000000600f4bcc5a89527eede43d1d3342dc12eee1371ab534b0102dc", + 0 + ], + [ + "00000000d1ad5c3ef8c3bb4610b34c264e4ca1ea51c4c8bac18b215e7dc96948", + 0 + ], + [ + "0000000062f6a07ae11f9724b8ba9dc2b7348ffd02b59edd3cd2bf387fab9723", + 0 + ], + [ + "000000000014e4c97c9b09ff20203213f3336b0927fd19d214cef1f544756e39", + 0 + ], + [ + "0000000000d004681880e127aed3fa73255a2e75c2e5c8580cd555526614b294", + 0 + ], + [ + "000000000008093189bba28d40662d6964afc1c0fc9b5c1681bbe32e8bee6c0b", + 0 + ], + [ + "00000000002df10cf8165b2204ef4db6721c8c2119d60463b040fbc81c266bbf", + 0 + ], + [ + "00000000000c28c789e7cd9800b98c1dd32e2dda54048116ff47ed856a14acfb", + 0 + ], + [ + "000000000003e8e7755d9b8299b28c71d9f0e18909f25bc9f3eeec3464ece1dd", + 0 + ], + [ + "0000000000004b95a0103abe2cb97806caca76f6922d9c5df003cf4a467df822", + 0 + ], + [ + "0000000000005f12d2ab72bfa715860444c281265ef77e09dc2d041ce89506c0", + 0 + ], + [ + "00000000000016eeedb3f367daaee93334188db877fb01cd0282b990f60812b3", + 0 + ], + [ + "00000000000001daf3bd8306b6f6899af8aa656d87ac2aa37d493fdcb0cb3000", + 0 + ], + [ + "0000000000000390b86892ad0bed9b520783056961cad7362ace8049aa00471c", + 0 + ], + [ + "00000000000002105d01b4de7d3e3ada9c757a239151d50b5dd193e3951a23cc", + 0 + ], + [ + "00000000000002362fa802df308201a4b1fff2fd8a91892915a46f5d54098ff4", + 0 + ], + [ + "00000000000004fb8aa6c6aecb64b9d8d7e691a6cd56fad69fc5278b9e8d98cb", + 0 + ], + [ + "00000000000000ce3bd9752b2508ddae1ee71332e905163a3c0d7e10b8c472f7", + 0 + ], + [ + "00000000000002d0d8520982f15a45d4a405334c61886b6d13d95843386af647", + 0 + ], + [ + "00000000cafd25502ad67d5d409edfc98f5bbd3173e86e085c69658d58da5f70", + 0 + ], + [ + "00000000b01e0675317a29a07731ea092fa029016a40ed8bb4fc17cde50eda05", + 0 + ], + [ + "000000002676805396ed2883ccc8ad401aa0a974627559fbae2416ba5c54999c", + 0 + ], + [ + "0000000000030ab759158f3d425824228dc5c91f32db91d404bee29ee3a41878", + 0 + ], + [ + "00000000000da1c8040ec08e7490fb201ca1fb3571f29c0efd3351ae197d3017", + 0 + ], + [ + "000000000004e3cba890c16ffc7d1c019d4ab88afa39315164e1b08b8e6a9330", + 0 + ], + [ + "00000000000bdcfb630b43977be44529e54daa02d199014a0967deac669bd060", + 0 + ], + [ + "000000000007254038f9c621d6df0d9fbd90b5697e4170cd6090daaf579f3790", + 0 + ], + [ + "000000000002263e27ea1cec943632bf469a28b067f0bfde3b9a6b48540981b4", + 0 + ], + [ + "000000000000f194a8d17e683d17f222d23a9032f034d4dc4497263fd785dfa0", + 0 + ], + [ + "00000000000036e359b7b07044e3cd5b132a3c72501a0f3f9ccde167f5316bba", + 0 + ], + [ + "0000000000000b10e98a90e0fd1ffbf7d5fc5a76e8e6e960c6fb158711af6f48", + 0 + ], + [ + "0000000000000104e1e4303b8dae78389bb4e6c38f3eb3fe42aec6464bd5c397", + 0 + ], + [ + "00000000000000bde368a635921f5ad25aeb4b784651de24d624cf20c27691c7", + 0 + ], + [ + "0000000081a626a33cff134e7e56dc0f0a67b1735c96256774885d5d095807c0", + 0 + ], + [ + "0000000055d357cdf39130eb767f416101e79025515906bea528f43cb6446920", + 0 + ], + [ + "0000000012558b30f9c1a156fd80b02451e8dfcc7fe0350fb4adeeb84951a0a6", + 0 + ], + [ + "000000000001a4868924fc7cca0334ffc4dd49c07fb841c1da059a7c219bdf95", + 0 + ], + [ + "00000000000010086bd2bba88c71b08cfc7e24183d610a2803e6d382049d52c0", + 0 + ], + [ + "0000000000018c83992fe05d820b097228de93787e3f59e65cb89ad4c385e364", + 0 + ], + [ + "00000000000023ab80324770ff4c6802d09e5e1e7de78d2a8e64783904d47f19", + 0 + ], + [ + "000000000000287fa294ea557835d8c98bfe94c4d8b18d5b10f1b62d68957113", + 0 + ] +] \ No newline at end of file diff --git a/electrum/coinchooser.py b/electrum/coinchooser.py new file mode 100644 index 000000000..5a69cccfe --- /dev/null +++ b/electrum/coinchooser.py @@ -0,0 +1,392 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2015 kyuupichan@gmail +# +# 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. +from collections import defaultdict, namedtuple +from math import floor, log10 + +from .bitcoin import sha256, COIN, TYPE_ADDRESS, is_address +from .transaction import Transaction, TxOutput +from .util import NotEnoughFunds, PrintError + + +# A simple deterministic PRNG. Used to deterministically shuffle a +# set of coins - the same set of coins should produce the same output. +# Although choosing UTXOs "randomly" we want it to be deterministic, +# so if sending twice from the same UTXO set we choose the same UTXOs +# to spend. This prevents attacks on users by malicious or stale +# servers. +class PRNG: + def __init__(self, seed): + self.sha = sha256(seed) + self.pool = bytearray() + + def get_bytes(self, n): + while len(self.pool) < n: + self.pool.extend(self.sha) + self.sha = sha256(self.sha) + result, self.pool = self.pool[:n], self.pool[n:] + return result + + def randint(self, start, end): + # Returns random integer in [start, end) + n = end - start + r = 0 + p = 1 + while p < n: + r = self.get_bytes(1)[0] + (r << 8) + p = p << 8 + return start + (r % n) + + def choice(self, seq): + return seq[self.randint(0, len(seq))] + + def shuffle(self, x): + for i in reversed(range(1, len(x))): + # pick an element in x[:i+1] with which to exchange x[i] + j = self.randint(0, i+1) + x[i], x[j] = x[j], x[i] + + +Bucket = namedtuple('Bucket', + ['desc', + 'weight', # as in BIP-141 + 'value', # in satoshis + 'coins', # UTXOs + 'min_height', # min block height where a coin was confirmed + 'witness']) # whether any coin uses segwit + +def strip_unneeded(bkts, sufficient_funds): + '''Remove buckets that are unnecessary in achieving the spend amount''' + bkts = sorted(bkts, key = lambda bkt: bkt.value) + for i in range(len(bkts)): + if not sufficient_funds(bkts[i + 1:]): + return bkts[i:] + # Shouldn't get here + return bkts + +class CoinChooserBase(PrintError): + + enable_output_value_rounding = False + + def keys(self, coins): + raise NotImplementedError + + def bucketize_coins(self, coins): + keys = self.keys(coins) + buckets = defaultdict(list) + for key, coin in zip(keys, coins): + buckets[key].append(coin) + + def make_Bucket(desc, coins): + witness = any(Transaction.is_segwit_input(coin, guess_for_address=True) for coin in coins) + # note that we're guessing whether the tx uses segwit based + # on this single bucket + weight = sum(Transaction.estimated_input_weight(coin, witness) + for coin in coins) + value = sum(coin['value'] for coin in coins) + min_height = min(coin['height'] for coin in coins) + return Bucket(desc, weight, value, coins, min_height, witness) + + return list(map(make_Bucket, buckets.keys(), buckets.values())) + + def penalty_func(self, tx): + def penalty(candidate): + return 0 + return penalty + + def change_amounts(self, tx, count, fee_estimator, dust_threshold): + # Break change up if bigger than max_change + output_amounts = [o.value for o in tx.outputs()] + # Don't split change of less than 0.02 BTC + max_change = max(max(output_amounts) * 1.25, 0.02 * COIN) + + # Use N change outputs + for n in range(1, count + 1): + # How much is left if we add this many change outputs? + change_amount = max(0, tx.get_fee() - fee_estimator(n)) + if change_amount // n <= max_change: + break + + # Get a handle on the precision of the output amounts; round our + # change to look similar + def trailing_zeroes(val): + s = str(val) + return len(s) - len(s.rstrip('0')) + + zeroes = [trailing_zeroes(i) for i in output_amounts] + min_zeroes = min(zeroes) + max_zeroes = max(zeroes) + + if n > 1: + zeroes = range(max(0, min_zeroes - 1), (max_zeroes + 1) + 1) + else: + # if there is only one change output, this will ensure that we aim + # to have one that is exactly as precise as the most precise output + zeroes = [min_zeroes] + + # Calculate change; randomize it a bit if using more than 1 output + remaining = change_amount + amounts = [] + while n > 1: + average = remaining / n + amount = self.p.randint(int(average * 0.7), int(average * 1.3)) + precision = min(self.p.choice(zeroes), int(floor(log10(amount)))) + amount = int(round(amount, -precision)) + amounts.append(amount) + remaining -= amount + n -= 1 + + # Last change output. Round down to maximum precision but lose + # no more than 10**max_dp_to_round_for_privacy + # e.g. a max of 2 decimal places means losing 100 satoshis to fees + max_dp_to_round_for_privacy = 2 if self.enable_output_value_rounding else 0 + N = pow(10, min(max_dp_to_round_for_privacy, zeroes[0])) + amount = (remaining // N) * N + amounts.append(amount) + + assert sum(amounts) <= change_amount + + return amounts + + def change_outputs(self, tx, change_addrs, fee_estimator, dust_threshold): + amounts = self.change_amounts(tx, len(change_addrs), fee_estimator, + dust_threshold) + assert min(amounts) >= 0 + assert len(change_addrs) >= len(amounts) + # If change is above dust threshold after accounting for the + # size of the change output, add it to the transaction. + dust = sum(amount for amount in amounts if amount < dust_threshold) + amounts = [amount for amount in amounts if amount >= dust_threshold] + change = [TxOutput(TYPE_ADDRESS, addr, amount) + for addr, amount in zip(change_addrs, amounts)] + self.print_error('change:', change) + if dust: + self.print_error('not keeping dust', dust) + return change + + def make_tx(self, coins, outputs, change_addrs, fee_estimator, + dust_threshold): + """Select unspent coins to spend to pay outputs. If the change is + greater than dust_threshold (after adding the change output to + the transaction) it is kept, otherwise none is sent and it is + added to the transaction fee. + + Note: fee_estimator expects virtual bytes + """ + + # Deterministic randomness from coins + utxos = [c['prevout_hash'] + str(c['prevout_n']) for c in coins] + self.p = PRNG(''.join(sorted(utxos))) + + # Copy the outputs so when adding change we don't modify "outputs" + tx = Transaction.from_io([], outputs[:]) + # Weight of the transaction with no inputs and no change + # Note: this will use legacy tx serialization as the need for "segwit" + # would be detected from inputs. The only side effect should be that the + # marker and flag are excluded, which is compensated in get_tx_weight() + base_weight = tx.estimated_weight() + spent_amount = tx.output_value() + + def fee_estimator_w(weight): + return fee_estimator(Transaction.virtual_size_from_weight(weight)) + + def get_tx_weight(buckets): + total_weight = base_weight + sum(bucket.weight for bucket in buckets) + is_segwit_tx = any(bucket.witness for bucket in buckets) + if is_segwit_tx: + total_weight += 2 # marker and flag + # non-segwit inputs were previously assumed to have + # a witness of '' instead of '00' (hex) + # note that mixed legacy/segwit buckets are already ok + num_legacy_inputs = sum((not bucket.witness) * len(bucket.coins) + for bucket in buckets) + total_weight += num_legacy_inputs + + return total_weight + + def sufficient_funds(buckets): + '''Given a list of buckets, return True if it has enough + value to pay for the transaction''' + total_input = sum(bucket.value for bucket in buckets) + total_weight = get_tx_weight(buckets) + return total_input >= spent_amount + fee_estimator_w(total_weight) + + # Collect the coins into buckets, choose a subset of the buckets + buckets = self.bucketize_coins(coins) + buckets = self.choose_buckets(buckets, sufficient_funds, + self.penalty_func(tx)) + + tx.add_inputs([coin for b in buckets for coin in b.coins]) + tx_weight = get_tx_weight(buckets) + + # change is sent back to sending address unless specified + if not change_addrs: + change_addrs = [tx.inputs()[0]['address']] + # note: this is not necessarily the final "first input address" + # because the inputs had not been sorted at this point + assert is_address(change_addrs[0]) + + # This takes a count of change outputs and returns a tx fee + output_weight = 4 * Transaction.estimated_output_size(change_addrs[0]) + fee = lambda count: fee_estimator_w(tx_weight + count * output_weight) + change = self.change_outputs(tx, change_addrs, fee, dust_threshold) + tx.add_outputs(change) + + self.print_error("using %d inputs" % len(tx.inputs())) + self.print_error("using buckets:", [bucket.desc for bucket in buckets]) + + return tx + + def choose_buckets(self, buckets, sufficient_funds, penalty_func): + raise NotImplemented('To be subclassed') + + +class CoinChooserRandom(CoinChooserBase): + + def bucket_candidates_any(self, buckets, sufficient_funds): + '''Returns a list of bucket sets.''' + if not buckets: + raise NotEnoughFunds() + + candidates = set() + + # Add all singletons + for n, bucket in enumerate(buckets): + if sufficient_funds([bucket]): + candidates.add((n, )) + + # And now some random ones + attempts = min(100, (len(buckets) - 1) * 10 + 1) + permutation = list(range(len(buckets))) + for i in range(attempts): + # Get a random permutation of the buckets, and + # incrementally combine buckets until sufficient + self.p.shuffle(permutation) + bkts = [] + for count, index in enumerate(permutation): + bkts.append(buckets[index]) + if sufficient_funds(bkts): + candidates.add(tuple(sorted(permutation[:count + 1]))) + break + else: + # FIXME this assumes that the effective value of any bkt is >= 0 + # we should make sure not to choose buckets with <= 0 eff. val. + raise NotEnoughFunds() + + candidates = [[buckets[n] for n in c] for c in candidates] + return [strip_unneeded(c, sufficient_funds) for c in candidates] + + def bucket_candidates_prefer_confirmed(self, buckets, sufficient_funds): + """Returns a list of bucket sets preferring confirmed coins. + + Any bucket can be: + 1. "confirmed" if it only contains confirmed coins; else + 2. "unconfirmed" if it does not contain coins with unconfirmed parents + 3. other: e.g. "unconfirmed parent" or "local" + + This method tries to only use buckets of type 1, and if the coins there + are not enough, tries to use the next type but while also selecting + all buckets of all previous types. + """ + conf_buckets = [bkt for bkt in buckets if bkt.min_height > 0] + unconf_buckets = [bkt for bkt in buckets if bkt.min_height == 0] + other_buckets = [bkt for bkt in buckets if bkt.min_height < 0] + + bucket_sets = [conf_buckets, unconf_buckets, other_buckets] + already_selected_buckets = [] + + for bkts_choose_from in bucket_sets: + try: + def sfunds(bkts): + return sufficient_funds(already_selected_buckets + bkts) + + candidates = self.bucket_candidates_any(bkts_choose_from, sfunds) + break + except NotEnoughFunds: + already_selected_buckets += bkts_choose_from + else: + raise NotEnoughFunds() + + candidates = [(already_selected_buckets + c) for c in candidates] + return [strip_unneeded(c, sufficient_funds) for c in candidates] + + def choose_buckets(self, buckets, sufficient_funds, penalty_func): + candidates = self.bucket_candidates_prefer_confirmed(buckets, sufficient_funds) + penalties = [penalty_func(cand) for cand in candidates] + winner = candidates[penalties.index(min(penalties))] + self.print_error("Bucket sets:", len(buckets)) + self.print_error("Winning penalty:", min(penalties)) + return winner + +class CoinChooserPrivacy(CoinChooserRandom): + """Attempts to better preserve user privacy. + First, if any coin is spent from a user address, all coins are. + Compared to spending from other addresses to make up an amount, this reduces + information leakage about sender holdings. It also helps to + reduce blockchain UTXO bloat, and reduce future privacy loss that + would come from reusing that address' remaining UTXOs. + Second, it penalizes change that is quite different to the sent amount. + Third, it penalizes change that is too big. + """ + + def keys(self, coins): + return [coin['address'] for coin in coins] + + def penalty_func(self, tx): + min_change = min(o.value for o in tx.outputs()) * 0.75 + max_change = max(o.value for o in tx.outputs()) * 1.33 + spent_amount = sum(o.value for o in tx.outputs()) + + def penalty(buckets): + badness = len(buckets) - 1 + total_input = sum(bucket.value for bucket in buckets) + # FIXME "change" here also includes fees + change = float(total_input - spent_amount) + # Penalize change not roughly in output range + if change < min_change: + badness += (min_change - change) / (min_change + 10000) + elif change > max_change: + badness += (change - max_change) / (max_change + 10000) + # Penalize large change; 5 BTC excess ~= using 1 more input + badness += change / (COIN * 5) + return badness + + return penalty + + +COIN_CHOOSERS = { + 'Privacy': CoinChooserPrivacy, +} + +def get_name(config): + kind = config.get('coin_chooser') + if not kind in COIN_CHOOSERS: + kind = 'Privacy' + return kind + +def get_coin_chooser(config): + klass = COIN_CHOOSERS[get_name(config)] + coinchooser = klass() + coinchooser.enable_output_value_rounding = config.get('coin_chooser_output_rounding', False) + return coinchooser diff --git a/electrum/commands.py b/electrum/commands.py new file mode 100644 index 000000000..89e7a619b --- /dev/null +++ b/electrum/commands.py @@ -0,0 +1,895 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcore client +# Copyright (C) 2011 thomasv@gitorious +# +# 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. + +import sys +import datetime +import copy +import argparse +import json +import ast +import base64 +from functools import wraps +from decimal import Decimal + +from .import util, ecc +from .util import bfh, bh2u, format_satoshis, json_decode, print_error, json_encode +from . import bitcoin +from .bitcoin import is_address, hash_160, COIN, TYPE_ADDRESS +from .i18n import _ +from .transaction import Transaction, multisig_script, TxOutput +from .paymentrequest import PR_PAID, PR_UNPAID, PR_UNKNOWN, PR_EXPIRED +from .plugin import run_hook + +known_commands = {} + + +def satoshis(amount): + # satoshi conversion must not be performed by the parser + return int(COIN*Decimal(amount)) if amount not in ['!', None] else amount + + +class Command: + def __init__(self, func, s): + self.name = func.__name__ + self.requires_network = 'n' in s + self.requires_wallet = 'w' in s + self.requires_password = 'p' in s + self.description = func.__doc__ + self.help = self.description.split('.')[0] if self.description else None + varnames = func.__code__.co_varnames[1:func.__code__.co_argcount] + self.defaults = func.__defaults__ + if self.defaults: + n = len(self.defaults) + self.params = list(varnames[:-n]) + self.options = list(varnames[-n:]) + else: + self.params = list(varnames) + self.options = [] + self.defaults = [] + + +def command(s): + def decorator(func): + global known_commands + name = func.__name__ + known_commands[name] = Command(func, s) + @wraps(func) + def func_wrapper(*args, **kwargs): + c = known_commands[func.__name__] + wallet = args[0].wallet + password = kwargs.get('password') + if c.requires_wallet and wallet is None: + raise Exception("wallet not loaded. Use 'electrum daemon load_wallet'") + if c.requires_password and password is None and wallet.has_password(): + return {'error': 'Password required' } + return func(*args, **kwargs) + return func_wrapper + return decorator + + +class Commands: + + def __init__(self, config, wallet, network, callback = None): + self.config = config + self.wallet = wallet + self.network = network + self._callback = callback + + def _run(self, method, args, password_getter): + # this wrapper is called from the python console + cmd = known_commands[method] + if cmd.requires_password and self.wallet.has_password(): + password = password_getter() + if password is None: + return + else: + password = None + + f = getattr(self, method) + if cmd.requires_password: + result = f(*args, **{'password':password}) + else: + result = f(*args) + + if self._callback: + self._callback() + return result + + @command('') + def commands(self): + """List of commands""" + return ' '.join(sorted(known_commands.keys())) + + @command('') + def create(self, segwit=False): + """Create a new wallet""" + raise Exception('Not a JSON-RPC command') + + @command('wn') + def restore(self, text): + """Restore a wallet from text. Text can be a seed phrase, a master + public key, a master private key, a list of bitcore addresses + or bitcore private keys. If you want to be prompted for your + seed, type '?' or ':' (concealed) """ + raise Exception('Not a JSON-RPC command') + + @command('wp') + def password(self, password=None, new_password=None): + """Change wallet password. """ + if self.wallet.storage.is_encrypted_with_hw_device() and new_password: + raise Exception("Can't change the password of a wallet encrypted with a hw device.") + b = self.wallet.storage.is_encrypted() + self.wallet.update_password(password, new_password, b) + self.wallet.storage.write() + return {'password':self.wallet.has_password()} + + @command('') + def getconfig(self, key): + """Return a configuration variable. """ + return self.config.get(key) + + @classmethod + def _setconfig_normalize_value(cls, key, value): + if key not in ('rpcuser', 'rpcpassword'): + value = json_decode(value) + try: + value = ast.literal_eval(value) + except: + pass + return value + + @command('') + def setconfig(self, key, value): + """Set a configuration variable. 'value' may be a string or a Python expression.""" + value = self._setconfig_normalize_value(key, value) + self.config.set_key(key, value) + return True + + @command('') + def make_seed(self, nbits=132, language=None, segwit=False): + """Create a seed""" + from .mnemonic import Mnemonic + t = 'segwit' if segwit else 'standard' + s = Mnemonic(language).make_seed(t, nbits) + return s + + @command('n') + def getaddresshistory(self, address): + """Return the transaction history of any address. Note: This is a + walletless server query, results are not checked by SPV. + """ + sh = bitcoin.address_to_scripthash(address) + return self.network.get_history_for_scripthash(sh) + + @command('w') + def listunspent(self): + """List unspent outputs. Returns the list of unspent transaction + outputs in your wallet.""" + l = copy.deepcopy(self.wallet.get_utxos()) + for i in l: + v = i["value"] + i["value"] = str(Decimal(v)/COIN) if v is not None else None + return l + + @command('n') + def getaddressunspent(self, address): + """Returns the UTXO list of any address. Note: This + is a walletless server query, results are not checked by SPV. + """ + sh = bitcoin.address_to_scripthash(address) + return self.network.listunspent_for_scripthash(sh) + + @command('') + def serialize(self, jsontx): + """Create a transaction from json inputs. + Inputs must have a redeemPubkey. + Outputs must be a list of {'address':address, 'value':satoshi_amount}. + """ + keypairs = {} + inputs = jsontx.get('inputs') + outputs = jsontx.get('outputs') + locktime = jsontx.get('lockTime', 0) + for txin in inputs: + if txin.get('output'): + prevout_hash, prevout_n = txin['output'].split(':') + txin['prevout_n'] = int(prevout_n) + txin['prevout_hash'] = prevout_hash + sec = txin.get('privkey') + if sec: + txin_type, privkey, compressed = bitcoin.deserialize_privkey(sec) + pubkey = ecc.ECPrivkey(privkey).get_public_key_hex(compressed=compressed) + keypairs[pubkey] = privkey, compressed + txin['type'] = txin_type + txin['x_pubkeys'] = [pubkey] + txin['signatures'] = [None] + txin['num_sig'] = 1 + + outputs = [TxOutput(TYPE_ADDRESS, x['address'], int(x['value'])) for x in outputs] + tx = Transaction.from_io(inputs, outputs, locktime=locktime) + tx.sign(keypairs) + return tx.as_dict() + + @command('wp') + def signtransaction(self, tx, privkey=None, password=None): + """Sign a transaction. The wallet keys will be used unless a private key is provided.""" + tx = Transaction(tx) + if privkey: + txin_type, privkey2, compressed = bitcoin.deserialize_privkey(privkey) + pubkey_bytes = ecc.ECPrivkey(privkey2).get_public_key_bytes(compressed=compressed) + h160 = bitcoin.hash_160(pubkey_bytes) + x_pubkey = 'fd' + bh2u(b'\x00' + h160) + tx.sign({x_pubkey:(privkey2, compressed)}) + else: + self.wallet.sign_transaction(tx, password) + return tx.as_dict() + + @command('') + def deserialize(self, tx): + """Deserialize a serialized transaction""" + tx = Transaction(tx) + return tx.deserialize() + + @command('n') + def broadcast(self, tx): + """Broadcast a transaction to the network. """ + tx = Transaction(tx) + return self.network.broadcast_transaction(tx) + + @command('') + def createmultisig(self, num, pubkeys): + """Create multisig address""" + assert isinstance(pubkeys, list), (type(num), type(pubkeys)) + redeem_script = multisig_script(pubkeys, num) + address = bitcoin.hash160_to_p2sh(hash_160(bfh(redeem_script))) + return {'address':address, 'redeemScript':redeem_script} + + @command('w') + def freeze(self, address): + """Freeze address. Freeze the funds at one of your wallet\'s addresses""" + return self.wallet.set_frozen_state([address], True) + + @command('w') + def unfreeze(self, address): + """Unfreeze address. Unfreeze the funds at one of your wallet\'s address""" + return self.wallet.set_frozen_state([address], False) + + @command('wp') + def getprivatekeys(self, address, password=None): + """Get private keys of addresses. You may pass a single wallet address, or a list of wallet addresses.""" + if isinstance(address, str): + address = address.strip() + if is_address(address): + return self.wallet.export_private_key(address, password)[0] + domain = address + return [self.wallet.export_private_key(address, password)[0] for address in domain] + + @command('w') + def ismine(self, address): + """Check if address is in wallet. Return true if and only address is in wallet""" + return self.wallet.is_mine(address) + + @command('') + def dumpprivkeys(self): + """Deprecated.""" + return "This command is deprecated. Use a pipe instead: 'electrum listaddresses | electrum getprivatekeys - '" + + @command('') + def validateaddress(self, address): + """Check that an address is valid. """ + return is_address(address) + + @command('w') + def getpubkeys(self, address): + """Return the public keys for a wallet address. """ + return self.wallet.get_public_keys(address) + + @command('w') + def getbalance(self): + """Return the balance of your wallet. """ + c, u, x = self.wallet.get_balance() + out = {"confirmed": str(Decimal(c)/COIN)} + if u: + out["unconfirmed"] = str(Decimal(u)/COIN) + if x: + out["unmatured"] = str(Decimal(x)/COIN) + return out + + @command('n') + def getaddressbalance(self, address): + """Return the balance of any address. Note: This is a walletless + server query, results are not checked by SPV. + """ + sh = bitcoin.address_to_scripthash(address) + out = self.network.get_balance_for_scripthash(sh) + out["confirmed"] = str(Decimal(out["confirmed"])/COIN) + out["unconfirmed"] = str(Decimal(out["unconfirmed"])/COIN) + return out + + @command('n') + def getmerkle(self, txid, height): + """Get Merkle branch of a transaction included in a block. Electrum + uses this to verify transactions (Simple Payment Verification).""" + return self.network.get_merkle_for_transaction(txid, int(height)) + + @command('n') + def getservers(self): + """Return the list of available servers""" + return self.network.get_servers() + + @command('') + def version(self): + """Return the version of Electrum.""" + from .version import ELECTRUM_VERSION + return ELECTRUM_VERSION + + @command('w') + def getmpk(self): + """Get master public key. Return your wallet\'s master public key""" + return self.wallet.get_master_public_key() + + @command('wp') + def getmasterprivate(self, password=None): + """Get master private key. Return your wallet\'s master private key""" + return str(self.wallet.keystore.get_master_private_key(password)) + + @command('wp') + def getseed(self, password=None): + """Get seed phrase. Print the generation seed of your wallet.""" + s = self.wallet.get_seed(password) + return s + + @command('wp') + def importprivkey(self, privkey, password=None): + """Import a private key.""" + if not self.wallet.can_import_privkey(): + return "Error: This type of wallet cannot import private keys. Try to create a new wallet with that key." + try: + addr = self.wallet.import_private_key(privkey, password) + out = "Keypair imported: " + addr + except BaseException as e: + out = "Error: " + str(e) + return out + + def _resolver(self, x): + if x is None: + return None + out = self.wallet.contacts.resolve(x) + if out.get('type') == 'openalias' and self.nocheck is False and out.get('validated') is False: + raise Exception('cannot verify alias', x) + return out['address'] + + @command('n') + def sweep(self, privkey, destination, fee=None, nocheck=False, imax=100): + """Sweep private keys. Returns a transaction that spends UTXOs from + privkey to a destination address. The transaction is not + broadcasted.""" + from .wallet import sweep + tx_fee = satoshis(fee) + privkeys = privkey.split() + self.nocheck = nocheck + #dest = self._resolver(destination) + tx = sweep(privkeys, self.network, self.config, destination, tx_fee, imax) + return tx.as_dict() if tx else None + + @command('wp') + def signmessage(self, address, message, password=None): + """Sign a message with a key. Use quotes if your message contains + whitespaces""" + sig = self.wallet.sign_message(address, message, password) + return base64.b64encode(sig).decode('ascii') + + @command('') + def verifymessage(self, address, signature, message): + """Verify a signature.""" + sig = base64.b64decode(signature) + message = util.to_bytes(message) + return ecc.verify_message_with_address(address, sig, message) + + def _mktx(self, outputs, fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime=None): + self.nocheck = nocheck + change_addr = self._resolver(change_addr) + domain = None if domain is None else map(self._resolver, domain) + final_outputs = [] + for address, amount in outputs: + address = self._resolver(address) + amount = satoshis(amount) + final_outputs.append(TxOutput(TYPE_ADDRESS, address, amount)) + + coins = self.wallet.get_spendable_coins(domain, self.config) + tx = self.wallet.make_unsigned_transaction(coins, final_outputs, self.config, fee, change_addr) + if locktime != None: + tx.locktime = locktime + if rbf is None: + rbf = self.config.get('use_rbf', True) + if rbf: + tx.set_rbf(True) + if not unsigned: + self.wallet.sign_transaction(tx, password) + return tx + + @command('wp') + def payto(self, destination, amount, fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=None, password=None, locktime=None): + """Create a transaction. """ + tx_fee = satoshis(fee) + domain = from_addr.split(',') if from_addr else None + tx = self._mktx([(destination, amount)], tx_fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime) + return tx.as_dict() + + @command('wp') + def paytomany(self, outputs, fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=None, password=None, locktime=None): + """Create a multi-output transaction. """ + tx_fee = satoshis(fee) + domain = from_addr.split(',') if from_addr else None + tx = self._mktx(outputs, tx_fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime) + return tx.as_dict() + + @command('w') + def history(self, year=None, show_addresses=False, show_fiat=False): + """Wallet history. Returns the transaction history of your wallet.""" + kwargs = {'show_addresses': show_addresses} + if year: + import time + start_date = datetime.datetime(year, 1, 1) + end_date = datetime.datetime(year+1, 1, 1) + kwargs['from_timestamp'] = time.mktime(start_date.timetuple()) + kwargs['to_timestamp'] = time.mktime(end_date.timetuple()) + if show_fiat: + from .exchange_rate import FxThread + fx = FxThread(self.config, None) + kwargs['fx'] = fx + return json_encode(self.wallet.get_full_history(**kwargs)) + + @command('w') + def setlabel(self, key, label): + """Assign a label to an item. Item may be a bitcore address or a + transaction ID""" + self.wallet.set_label(key, label) + + @command('w') + def listcontacts(self): + """Show your list of contacts""" + return self.wallet.contacts + + @command('w') + def getalias(self, key): + """Retrieve alias. Lookup in your list of contacts, and for an OpenAlias DNS record.""" + return self.wallet.contacts.resolve(key) + + @command('w') + def searchcontacts(self, query): + """Search through contacts, return matching entries. """ + results = {} + for key, value in self.wallet.contacts.items(): + if query.lower() in key.lower(): + results[key] = value + return results + + @command('w') + def listaddresses(self, receiving=False, change=False, labels=False, frozen=False, unused=False, funded=False, balance=False): + """List wallet addresses. Returns the list of all addresses in your wallet. Use optional arguments to filter the results.""" + out = [] + for addr in self.wallet.get_addresses(): + if frozen and not self.wallet.is_frozen(addr): + continue + if receiving and self.wallet.is_change(addr): + continue + if change and not self.wallet.is_change(addr): + continue + if unused and self.wallet.is_used(addr): + continue + if funded and self.wallet.is_empty(addr): + continue + item = addr + if labels or balance: + item = (item,) + if balance: + item += (format_satoshis(sum(self.wallet.get_addr_balance(addr))),) + if labels: + item += (repr(self.wallet.labels.get(addr, '')),) + out.append(item) + return out + + @command('n') + def gettransaction(self, txid): + """Retrieve a transaction. """ + if self.wallet and txid in self.wallet.transactions: + tx = self.wallet.transactions[txid] + else: + raw = self.network.get_transaction(txid) + if raw: + tx = Transaction(raw) + else: + raise Exception("Unknown transaction") + return tx.as_dict() + + @command('') + def encrypt(self, pubkey, message): + """Encrypt a message with a public key. Use quotes if the message contains whitespaces.""" + public_key = ecc.ECPubkey(bfh(pubkey)) + encrypted = public_key.encrypt_message(message) + return encrypted + + @command('wp') + def decrypt(self, pubkey, encrypted, password=None): + """Decrypt a message encrypted with a public key.""" + return self.wallet.decrypt_message(pubkey, encrypted, password) + + def _format_request(self, out): + pr_str = { + PR_UNKNOWN: 'Unknown', + PR_UNPAID: 'Pending', + PR_PAID: 'Paid', + PR_EXPIRED: 'Expired', + } + out['amount (BTX)'] = format_satoshis(out.get('amount')) + out['status'] = pr_str[out.get('status', PR_UNKNOWN)] + return out + + @command('w') + def getrequest(self, key): + """Return a payment request""" + r = self.wallet.get_payment_request(key, self.config) + if not r: + raise Exception("Request not found") + return self._format_request(r) + + #@command('w') + #def ackrequest(self, serialized): + # """""" + # pass + + @command('w') + def listrequests(self, pending=False, expired=False, paid=False): + """List the payment requests you made.""" + out = self.wallet.get_sorted_requests(self.config) + if pending: + f = PR_UNPAID + elif expired: + f = PR_EXPIRED + elif paid: + f = PR_PAID + else: + f = None + if f is not None: + out = list(filter(lambda x: x.get('status')==f, out)) + return list(map(self._format_request, out)) + + @command('w') + def createnewaddress(self): + """Create a new receiving address, beyond the gap limit of the wallet""" + return self.wallet.create_new_address(False) + + @command('w') + def getunusedaddress(self): + """Returns the first unused address of the wallet, or None if all addresses are used. + An address is considered as used if it has received a transaction, or if it is used in a payment request.""" + return self.wallet.get_unused_address() + + @command('w') + def addrequest(self, amount, memo='', expiration=None, force=False): + """Create a payment request, using the first unused address of the wallet. + The address will be considered as used after this operation. + If no payment is received, the address will be considered as unused if the payment request is deleted from the wallet.""" + addr = self.wallet.get_unused_address() + if addr is None: + if force: + addr = self.wallet.create_new_address(False) + else: + return False + amount = satoshis(amount) + expiration = int(expiration) if expiration else None + req = self.wallet.make_payment_request(addr, amount, memo, expiration) + self.wallet.add_payment_request(req, self.config) + out = self.wallet.get_payment_request(addr, self.config) + return self._format_request(out) + + @command('w') + def addtransaction(self, tx): + """ Add a transaction to the wallet history """ + tx = Transaction(tx) + if not self.wallet.add_transaction(tx.txid(), tx): + return False + self.wallet.save_transactions() + return tx.txid() + + @command('wp') + def signrequest(self, address, password=None): + "Sign payment request with an OpenAlias" + alias = self.config.get('alias') + if not alias: + raise Exception('No alias in your configuration') + alias_addr = self.wallet.contacts.resolve(alias)['address'] + self.wallet.sign_payment_request(address, alias, alias_addr, password) + + @command('w') + def rmrequest(self, address): + """Remove a payment request""" + return self.wallet.remove_payment_request(address, self.config) + + @command('w') + def clearrequests(self): + """Remove all payment requests""" + for k in list(self.wallet.receive_requests.keys()): + self.wallet.remove_payment_request(k, self.config) + + @command('n') + def notify(self, address, URL): + """Watch an address. Every time the address changes, a http POST is sent to the URL.""" + def callback(x): + import urllib.request + headers = {'content-type':'application/json'} + data = {'address':address, 'status':x.get('result')} + serialized_data = util.to_bytes(json.dumps(data)) + try: + req = urllib.request.Request(URL, serialized_data, headers) + response_stream = urllib.request.urlopen(req, timeout=5) + util.print_error('Got Response for %s' % address) + except BaseException as e: + util.print_error(str(e)) + self.network.subscribe_to_addresses([address], callback) + return True + + @command('wn') + def is_synchronized(self): + """ return wallet synchronization status """ + return self.wallet.is_up_to_date() + + @command('n') + def getfeerate(self, fee_method=None, fee_level=None): + """Return current suggested fee rate (in sat/kvByte), according to config + settings or supplied parameters. + """ + if fee_method is None: + dyn, mempool = None, None + elif fee_method.lower() == 'static': + dyn, mempool = False, False + elif fee_method.lower() == 'eta': + dyn, mempool = True, False + elif fee_method.lower() == 'mempool': + dyn, mempool = True, True + else: + raise Exception('Invalid fee estimation method: {}'.format(fee_method)) + if fee_level is not None: + fee_level = Decimal(fee_level) + return self.config.fee_per_kb(dyn=dyn, mempool=mempool, fee_level=fee_level) + + @command('') + def help(self): + # for the python console + return sorted(known_commands.keys()) + +param_descriptions = { + 'privkey': 'Private key. Type \'?\' to get a prompt.', + 'destination': 'Bitcore address, contact or alias', + 'address': 'Bitcore address', + 'seed': 'Seed phrase', + 'txid': 'Transaction ID', + 'pos': 'Position', + 'height': 'Block height', + 'tx': 'Serialized transaction (hexadecimal)', + 'key': 'Variable name', + 'pubkey': 'Public key', + 'message': 'Clear text message. Use quotes if it contains spaces.', + 'encrypted': 'Encrypted message', + '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)', +} + +command_options = { + 'password': ("-W", "Password"), + 'new_password':(None, "New Password"), + 'receiving': (None, "Show only receiving addresses"), + 'change': (None, "Show only change addresses"), + 'frozen': (None, "Show only frozen addresses"), + 'unused': (None, "Show only unused addresses"), + 'funded': (None, "Show only funded addresses"), + 'balance': ("-b", "Show the balances of listed addresses"), + '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 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"), + 'segwit': (None, "Create segwit seed"), + 'language': ("-L", "Default language for wordlist"), + 'privkey': (None, "Private key. Set to '?' to get a prompt."), + 'unsigned': ("-u", "Do not sign transaction"), + 'rbf': (None, "Replace-by-fee transaction"), + 'locktime': (None, "Set locktime block number"), + 'domain': ("-D", "List of addresses"), + 'memo': ("-m", "Description of the request"), + 'expiration': (None, "Time in seconds"), + 'timeout': (None, "Timeout in seconds"), + 'force': (None, "Create new address beyond gap limit, if no more addresses are available."), + 'pending': (None, "Show only pending requests."), + 'expired': (None, "Show only expired requests."), + 'paid': (None, "Show only paid requests."), + 'show_addresses': (None, "Show input and output addresses"), + 'show_fiat': (None, "Show fiat value of transactions"), + 'year': (None, "Show history for a given year"), + 'fee_method': (None, "Fee estimation method to use"), + 'fee_level': (None, "Float between 0.0 and 1.0, representing fee slider position") +} + + +# don't use floats because of rounding errors +from .transaction import tx_from_str +json_loads = lambda x: json.loads(x, parse_float=lambda x: str(Decimal(x))) +arg_types = { + 'num': int, + 'nbits': int, + 'imax': int, + 'year': int, + 'tx': tx_from_str, + 'pubkeys': json_loads, + 'jsontx': json_loads, + 'inputs': json_loads, + 'outputs': json_loads, + 'fee': lambda x: str(Decimal(x)) if x is not None else None, + 'amount': lambda x: str(Decimal(x)) if x != '!' else '!', + 'locktime': int, + 'fee_method': str, + 'fee_level': json_loads, +} + +config_variables = { + + 'addrequest': { + '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 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 bitcore: URIs. Example: \"(\'file:///var/www/\',\'https://electrum.org/\')\"', + } +} + +def set_default_subparser(self, name, args=None): + """see http://stackoverflow.com/questions/5176691/argparse-how-to-specify-a-default-subcommand""" + subparser_found = False + for arg in sys.argv[1:]: + if arg in ['-h', '--help']: # global help if no subparser + break + else: + for x in self._subparsers._actions: + if not isinstance(x, argparse._SubParsersAction): + continue + for sp_name in x._name_parser_map.keys(): + if sp_name in sys.argv[1:]: + subparser_found = True + if not subparser_found: + # insert default in first position, this implies no + # global options without a sub_parsers specified + if args is None: + sys.argv.insert(1, name) + else: + args.insert(0, name) + +argparse.ArgumentParser.set_default_subparser = set_default_subparser + + +# workaround https://bugs.python.org/issue23058 +# see https://github.com/nickstenning/honcho/pull/121 + +def subparser_call(self, parser, namespace, values, option_string=None): + from argparse import ArgumentError, SUPPRESS, _UNRECOGNIZED_ARGS_ATTR + parser_name = values[0] + arg_strings = values[1:] + # set the parser name if requested + if self.dest is not SUPPRESS: + setattr(namespace, self.dest, parser_name) + # select the parser + try: + parser = self._name_parser_map[parser_name] + except KeyError: + tup = parser_name, ', '.join(self._name_parser_map) + msg = _('unknown parser {!r} (choices: {})').format(*tup) + raise ArgumentError(self, msg) + # parse all the remaining options into the namespace + # store any unrecognized options on the object, so that the top + # level parser can decide what to do with them + namespace, arg_strings = parser.parse_known_args(arg_strings, namespace) + if arg_strings: + vars(namespace).setdefault(_UNRECOGNIZED_ARGS_ATTR, []) + getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).extend(arg_strings) + +argparse._SubParsersAction.__call__ = subparser_call + + +def add_network_options(parser): + parser.add_argument("-1", "--oneserver", action="store_true", dest="oneserver", default=None, help="connect to one server only") + parser.add_argument("-s", "--server", dest="server", default=None, help="set server host:port:protocol, where protocol is either t (tcp) or s (ssl)") + parser.add_argument("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http") + parser.add_argument("--noonion", action="store_true", dest="noonion", default=None, help="do not try to connect to onion servers") + +def add_global_options(parser): + group = parser.add_argument_group('global options') + # const is for when no argument is given to verbosity + # default is for when the flag is missing + group.add_argument("-v", dest="verbosity", help="Set verbosity filter", default='', const='*', nargs='?') + 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-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") + group.add_argument("--simnet", action="store_true", dest="simnet", default=False, help="Use Simnet") + +def get_parser(): + # create main parser + parser = argparse.ArgumentParser( + epilog="Run 'electrum help ' to see the help for a command") + add_global_options(parser) + subparsers = parser.add_subparsers(dest='cmd', metavar='') + # gui + parser_gui = subparsers.add_parser('gui', description="Run Electrum's Graphical User Interface.", help="Run GUI (default)") + parser_gui.add_argument("url", nargs='?', default=None, help="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") + parser_gui.add_argument("-L", "--lang", dest="language", default=None, help="default language used in GUI") + add_network_options(parser_gui) + add_global_options(parser_gui) + # daemon + parser_daemon = subparsers.add_parser('daemon', help="Run Daemon") + parser_daemon.add_argument("subcommand", choices=['start', 'status', 'stop', 'load_wallet', 'close_wallet'], nargs='?') + #parser_daemon.set_defaults(func=run_daemon) + add_network_options(parser_daemon) + add_global_options(parser_daemon) + # commands + for cmdname in sorted(known_commands.keys()): + cmd = known_commands[cmdname] + p = subparsers.add_parser(cmdname, help=cmd.help, description=cmd.description) + add_global_options(p) + if cmdname == 'restore': + p.add_argument("-o", "--offline", action="store_true", dest="offline", default=False, help="Run offline") + for optname, default in zip(cmd.options, cmd.defaults): + a, help = command_options[optname] + b = '--' + optname + action = "store_true" if type(default) is bool else 'store' + args = (a, b) if a else (b,) + if action == 'store': + _type = arg_types.get(optname, str) + p.add_argument(*args, dest=optname, action=action, default=default, help=help, type=_type) + else: + p.add_argument(*args, dest=optname, action=action, default=default, help=help) + + for param in cmd.params: + h = param_descriptions.get(param, '') + _type = arg_types.get(param, str) + p.add_argument(param, help=h, type=_type) + + cvh = config_variables.get(cmdname) + if cvh: + group = p.add_argument_group('configuration variables', '(set with setconfig/getconfig)') + for k, v in cvh.items(): + group.add_argument(k, nargs='?', help=v) + + # 'gui' is the default command + parser.set_default_subparser('gui') + return parser diff --git a/electrum/constants.py b/electrum/constants.py new file mode 100644 index 000000000..ec432f28e --- /dev/null +++ b/electrum/constants.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2018 The Electrum developers +# +# 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. + +import os +import json + + +def read_json(filename, default): + path = os.path.join(os.path.dirname(__file__), filename) + try: + with open(path, 'r') as f: + r = json.loads(f.read()) + except: + r = default + return r + + +class BitcoinMainnet: + + TESTNET = False + WIF_PREFIX = 0x80 + 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', []) + + XPRV_HEADERS = { + 'standard': 0x0488ade4, # xprv + 'p2wpkh-p2sh': 0x049d7878, # yprv + 'p2wsh-p2sh': 0x0295b005, # Yprv + 'p2wpkh': 0x04b2430c, # zprv + 'p2wsh': 0x02aa7a99, # Zprv + } + XPUB_HEADERS = { + 'standard': 0x0488b21e, # xpub + 'p2wpkh-p2sh': 0x049d7cb2, # ypub + 'p2wsh-p2sh': 0x0295b43f, # Ypub + 'p2wpkh': 0x04b24746, # zpub + 'p2wsh': 0x02aa7ed3, # Zpub + } + BIP44_COIN_TYPE = 160 + + +class BitcoinTestnet: + + TESTNET = True + WIF_PREFIX = 0xef + ADDRTYPE_P2PKH = 111 + ADDRTYPE_P2SH = 196 + SEGWIT_HRP = "tb" + GENESIS = "02c5d66e8edb49984eb743c798bca069466ce457b7febfa3c3a01b33353b7bc6" + DEFAULT_PORTS = {'t': '51001', 's': '51002'} + DEFAULT_SERVERS = read_json('servers_testnet.json', {}) + CHECKPOINTS = read_json('checkpoints_testnet.json', []) + + XPRV_HEADERS = { + 'standard': 0x04358394, # tprv + 'p2wpkh-p2sh': 0x044a4e28, # uprv + 'p2wsh-p2sh': 0x024285b5, # Uprv + 'p2wpkh': 0x045f18bc, # vprv + 'p2wsh': 0x02575048, # Vprv + } + XPUB_HEADERS = { + 'standard': 0x043587cf, # tpub + 'p2wpkh-p2sh': 0x044a5262, # upub + 'p2wsh-p2sh': 0x024289ef, # Upub + 'p2wpkh': 0x045f1cf6, # vpub + 'p2wsh': 0x02575483, # Vpub + } + BIP44_COIN_TYPE = 1 + + +class BitcoinRegtest(BitcoinTestnet): + + SEGWIT_HRP = "bcrt" + GENESIS = "604148281e5c4b7f2487e5d03cd60d8e6f69411d613f6448034508cea52e9574" + DEFAULT_SERVERS = read_json('servers_regtest.json', {}) + CHECKPOINTS = [] + + +class BitcoinSimnet(BitcoinTestnet): + + SEGWIT_HRP = "sb" + GENESIS = "683e86bd5c6d110d91b94b97137ba6bfe02dbbdb8e3dff722a669b5d69d77af6" + DEFAULT_SERVERS = read_json('servers_regtest.json', {}) + CHECKPOINTS = [] + + +# don't import net directly, import the module instead (so that net is singleton) +net = BitcoinMainnet + +def set_simnet(): + global net + net = BitcoinSimnet + +def set_mainnet(): + global net + net = BitcoinMainnet + + +def set_testnet(): + global net + net = BitcoinTestnet + + +def set_regtest(): + global net + net = BitcoinRegtest diff --git a/electrum/contacts.py b/electrum/contacts.py new file mode 100644 index 000000000..03b8d3ecc --- /dev/null +++ b/electrum/contacts.py @@ -0,0 +1,135 @@ +# Electrum - Lightweight Bitcoin Client +# Copyright (c) 2015 Thomas Voegtlin +# +# 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. +import re +import dns +from dns.exception import DNSException +import json +import traceback +import sys + +from . import bitcoin +from . import dnssec +from .util import export_meta, import_meta, print_error, to_string + + +class Contacts(dict): + + def __init__(self, storage): + self.storage = storage + d = self.storage.get('contacts', {}) + try: + self.update(d) + except: + return + # backward compatibility + for k, v in self.items(): + _type, n = v + if _type == 'address' and bitcoin.is_address(n): + self.pop(k) + self[n] = ('address', k) + + def save(self): + self.storage.put('contacts', dict(self)) + + def import_file(self, path): + import_meta(path, self._validate, self.load_meta) + + def load_meta(self, data): + self.update(data) + self.save() + + def export_file(self, filename): + export_meta(self, filename) + + def __setitem__(self, key, value): + dict.__setitem__(self, key, value) + self.save() + + def pop(self, key): + if key in self.keys(): + dict.pop(self, key) + self.save() + + def resolve(self, k): + if bitcoin.is_address(k): + return { + 'address': k, + 'type': 'address' + } + if k in self.keys(): + _type, addr = self[k] + if _type == 'address': + return { + 'address': addr, + 'type': 'contact' + } + out = self.resolve_openalias(k) + if out: + address, name, validated = out + return { + 'address': address, + 'name': name, + 'type': 'openalias', + 'validated': validated + } + raise Exception("Invalid Bitcoin address or alias", k) + + def resolve_openalias(self, url): + # support email-style addresses, per the OA standard + url = url.replace('@', '.') + try: + records, validated = dnssec.query(url, dns.rdatatype.TXT) + except DNSException as e: + print_error('Error resolving openalias: ', str(e)) + return None + prefix = 'btc' + for record in records: + string = to_string(record.strings[0], 'utf8') + if string.startswith('oa1:' + prefix): + address = self.find_regex(string, r'recipient_address=([A-Za-z0-9]+)') + name = self.find_regex(string, r'recipient_name=([^;]+)') + if not name: + name = address + if not address: + continue + return address, name, validated + + def find_regex(self, haystack, needle): + regex = re.compile(needle) + try: + return regex.search(haystack).groups()[0] + except AttributeError: + return None + + def _validate(self, data): + for k, v in list(data.items()): + if k == 'contacts': + return self._validate(v) + if not bitcoin.is_address(k): + data.pop(k) + else: + _type, _ = v + if _type != 'address': + data.pop(k) + return data + diff --git a/electrum/crypto.py b/electrum/crypto.py new file mode 100644 index 000000000..de8b6b5d7 --- /dev/null +++ b/electrum/crypto.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2018 The Electrum developers +# +# 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. + +import base64 +import os +import hashlib +import hmac + +import pyaes + +from .util import assert_bytes, InvalidPassword, to_bytes, to_string + + +try: + from Cryptodome.Cipher import AES +except: + AES = None + + +class InvalidPadding(Exception): + pass + + +def append_PKCS7_padding(data): + assert_bytes(data) + padlen = 16 - (len(data) % 16) + return data + bytes([padlen]) * padlen + + +def strip_PKCS7_padding(data): + assert_bytes(data) + if len(data) % 16 != 0 or len(data) == 0: + raise InvalidPadding("invalid length") + padlen = data[-1] + if padlen > 16: + raise InvalidPadding("invalid padding byte (large)") + for i in data[-padlen:]: + if i != padlen: + raise InvalidPadding("invalid padding byte (inconsistent)") + return data[0:-padlen] + + +def aes_encrypt_with_iv(key, iv, data): + assert_bytes(key, iv, data) + data = append_PKCS7_padding(data) + if AES: + e = AES.new(key, AES.MODE_CBC, iv).encrypt(data) + else: + aes_cbc = pyaes.AESModeOfOperationCBC(key, iv=iv) + aes = pyaes.Encrypter(aes_cbc, padding=pyaes.PADDING_NONE) + e = aes.feed(data) + aes.feed() # empty aes.feed() flushes buffer + return e + + +def aes_decrypt_with_iv(key, iv, data): + assert_bytes(key, iv, data) + if AES: + cipher = AES.new(key, AES.MODE_CBC, iv) + data = cipher.decrypt(data) + else: + aes_cbc = pyaes.AESModeOfOperationCBC(key, iv=iv) + aes = pyaes.Decrypter(aes_cbc, padding=pyaes.PADDING_NONE) + data = aes.feed(data) + aes.feed() # empty aes.feed() flushes buffer + try: + return strip_PKCS7_padding(data) + except InvalidPadding: + raise InvalidPassword() + + +def EncodeAES(secret, s): + assert_bytes(s) + iv = bytes(os.urandom(16)) + ct = aes_encrypt_with_iv(secret, iv, s) + e = iv + ct + return base64.b64encode(e) + +def DecodeAES(secret, e): + e = bytes(base64.b64decode(e)) + iv, e = e[:16], e[16:] + s = aes_decrypt_with_iv(secret, iv, e) + return s + +def pw_encode(s, password): + if password: + secret = Hash(password) + return EncodeAES(secret, to_bytes(s, "utf8")).decode('utf8') + else: + return s + +def pw_decode(s, password): + if password is not None: + secret = Hash(password) + try: + d = to_string(DecodeAES(secret, s), "utf8") + except Exception: + raise InvalidPassword() + return d + else: + return s + + +def sha256(x: bytes) -> bytes: + x = to_bytes(x, 'utf8') + return bytes(hashlib.sha256(x).digest()) + + +def Hash(x: bytes) -> bytes: + x = to_bytes(x, 'utf8') + out = bytes(sha256(sha256(x))) + return out + + +def hash_160(x: bytes) -> bytes: + try: + md = hashlib.new('ripemd160') + md.update(sha256(x)) + return md.digest() + except BaseException: + from . import ripemd + md = ripemd.new(sha256(x)) + return md.digest() + + +def hmac_oneshot(key: bytes, msg: bytes, digest) -> bytes: + if hasattr(hmac, 'digest'): + # requires python 3.7+; faster + return hmac.digest(key, msg, digest) + else: + return hmac.new(key, msg, digest).digest() diff --git a/electrum/currencies.json b/electrum/currencies.json new file mode 100644 index 000000000..0d4aa2023 --- /dev/null +++ b/electrum/currencies.json @@ -0,0 +1,36 @@ +{ + "CoinMarketCap": [ + "AUD", + "BRL", + "CAD", + "CHF", + "CLP", + "CNY", + "CZK", + "DKK", + "EUR", + "GBP", + "HKD", + "HUF", + "IDR", + "ILS", + "INR", + "JPY", + "KRW", + "MXN", + "MYR", + "NOK", + "NZD", + "PHP", + "PKR", + "PLN", + "RUB", + "SEK", + "SGD", + "THB", + "TRY", + "TWD", + "USD", + "ZAR" + ] +} \ No newline at end of file diff --git a/electrum/daemon.py b/electrum/daemon.py new file mode 100644 index 000000000..ccdce4a0a --- /dev/null +++ b/electrum/daemon.py @@ -0,0 +1,316 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2015 Thomas Voegtlin +# +# 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. +import ast +import os +import time +import traceback +import sys + +# from jsonrpc import JSONRPCResponseManager +import jsonrpclib +from .jsonrpc import VerifyingJSONRPCServer + +from .version import ELECTRUM_VERSION +from .network import Network +from .util import json_decode, DaemonThread +from .util import print_error, to_string +from .wallet import Wallet +from .storage import WalletStorage +from .commands import known_commands, Commands +from .simple_config import SimpleConfig +from .exchange_rate import FxThread +from .plugin import run_hook + + +def get_lockfile(config): + return os.path.join(config.path, 'daemon') + + +def remove_lockfile(lockfile): + os.unlink(lockfile) + + +def get_fd_or_server(config): + '''Tries to create the lockfile, using O_EXCL to + prevent races. If it succeeds it returns the FD. + Otherwise try and connect to the server specified in the lockfile. + If this succeeds, the server is returned. Otherwise remove the + lockfile and try again.''' + lockfile = get_lockfile(config) + while True: + try: + return os.open(lockfile, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o644), None + except OSError: + pass + server = get_server(config) + if server is not None: + return None, server + # Couldn't connect; remove lockfile and try again. + remove_lockfile(lockfile) + + +def get_server(config): + lockfile = get_lockfile(config) + while True: + create_time = None + try: + with open(lockfile) as f: + (host, port), create_time = ast.literal_eval(f.read()) + rpc_user, rpc_password = get_rpc_credentials(config) + if rpc_password == '': + # authentication disabled + server_url = 'http://%s:%d' % (host, port) + else: + server_url = 'http://%s:%s@%s:%d' % ( + rpc_user, rpc_password, host, port) + server = jsonrpclib.Server(server_url) + # Test daemon is running + server.ping() + return server + except Exception as e: + print_error("[get_server]", e) + if not create_time or create_time < time.time() - 1.0: + return None + # Sleep a bit and try again; it might have just been started + time.sleep(1.0) + + +def get_rpc_credentials(config): + rpc_user = config.get('rpcuser', None) + rpc_password = config.get('rpcpassword', None) + if rpc_user is None or rpc_password is None: + rpc_user = 'user' + import ecdsa, base64 + bits = 128 + nbytes = bits // 8 + (bits % 8 > 0) + pw_int = ecdsa.util.randrange(pow(2, bits)) + pw_b64 = base64.b64encode( + pw_int.to_bytes(nbytes, 'big'), b'-_') + rpc_password = to_string(pw_b64, 'ascii') + config.set_key('rpcuser', rpc_user) + config.set_key('rpcpassword', rpc_password, save=True) + elif rpc_password == '': + from .util import print_stderr + print_stderr('WARNING: RPC authentication is disabled.') + return rpc_user, rpc_password + + +class Daemon(DaemonThread): + + def __init__(self, config, fd, is_gui): + DaemonThread.__init__(self) + self.config = config + if config.get('offline'): + self.network = None + else: + self.network = Network(config) + self.network.start() + self.fx = FxThread(config, self.network) + if self.network: + self.network.add_jobs([self.fx]) + self.gui = None + self.wallets = {} + # Setup JSONRPC server + self.init_server(config, fd, is_gui) + + def init_server(self, config, fd, is_gui): + host = config.get('rpchost', '127.0.0.1') + port = config.get('rpcport', 0) + + rpc_user, rpc_password = get_rpc_credentials(config) + try: + server = VerifyingJSONRPCServer((host, port), logRequests=False, + rpc_user=rpc_user, rpc_password=rpc_password) + except Exception as e: + self.print_error('Warning: cannot initialize RPC server on host', host, e) + self.server = None + os.close(fd) + return + os.write(fd, bytes(repr((server.socket.getsockname(), time.time())), 'utf8')) + os.close(fd) + self.server = server + server.timeout = 0.1 + server.register_function(self.ping, 'ping') + if is_gui: + server.register_function(self.run_gui, 'gui') + else: + server.register_function(self.run_daemon, 'daemon') + self.cmd_runner = Commands(self.config, None, self.network) + for cmdname in known_commands: + server.register_function(getattr(self.cmd_runner, cmdname), cmdname) + server.register_function(self.run_cmdline, 'run_cmdline') + + def ping(self): + return True + + def run_daemon(self, config_options): + config = SimpleConfig(config_options) + sub = config.get('subcommand') + assert sub in [None, 'start', 'stop', 'status', 'load_wallet', 'close_wallet'] + if sub in [None, 'start']: + response = "Daemon already running" + elif sub == 'load_wallet': + path = config.get_wallet_path() + wallet = self.load_wallet(path, config.get('password')) + if wallet is not None: + self.cmd_runner.wallet = wallet + run_hook('load_wallet', wallet, None) + response = wallet is not None + elif sub == 'close_wallet': + path = config.get_wallet_path() + if path in self.wallets: + self.stop_wallet(path) + response = True + else: + response = False + elif sub == 'status': + if self.network: + p = self.network.get_parameters() + current_wallet = self.cmd_runner.wallet + current_wallet_path = current_wallet.storage.path \ + if current_wallet else None + response = { + 'path': self.network.config.path, + 'server': p[0], + 'blockchain_height': self.network.get_local_height(), + 'server_height': self.network.get_server_height(), + 'spv_nodes': len(self.network.get_interfaces()), + 'connected': self.network.is_connected(), + 'auto_connect': p[4], + 'version': ELECTRUM_VERSION, + 'wallets': {k: w.is_up_to_date() + for k, w in self.wallets.items()}, + 'current_wallet': current_wallet_path, + 'fee_per_kb': self.config.fee_per_kb(), + } + else: + response = "Daemon offline" + elif sub == 'stop': + self.stop() + response = "Daemon stopped" + return response + + def run_gui(self, config_options): + config = SimpleConfig(config_options) + if self.gui: + #if hasattr(self.gui, 'new_window'): + # path = config.get_wallet_path() + # self.gui.new_window(path, config.get('url')) + # response = "ok" + #else: + # response = "error: current GUI does not support multiple windows" + response = "error: Electrum GUI already running" + else: + response = "Error: Electrum is running in daemon mode. Please stop the daemon first." + return response + + def load_wallet(self, path, password): + # wizard will be launched if we return + if path in self.wallets: + wallet = self.wallets[path] + return wallet + storage = WalletStorage(path, manual_upgrades=True) + if not storage.file_exists(): + return + if storage.is_encrypted(): + if not password: + return + storage.decrypt(password) + if storage.requires_split(): + return + if storage.get_action(): + return + wallet = Wallet(storage) + wallet.start_threads(self.network) + self.wallets[path] = wallet + return wallet + + def add_wallet(self, wallet): + path = wallet.storage.path + self.wallets[path] = wallet + + def get_wallet(self, path): + return self.wallets.get(path) + + def stop_wallet(self, path): + wallet = self.wallets.pop(path) + wallet.stop_threads() + + def run_cmdline(self, config_options): + password = config_options.get('password') + new_password = config_options.get('new_password') + config = SimpleConfig(config_options) + # FIXME this is ugly... + config.fee_estimates = self.network.config.fee_estimates.copy() + config.mempool_fees = self.network.config.mempool_fees.copy() + cmdname = config.get('cmd') + cmd = known_commands[cmdname] + if cmd.requires_wallet: + path = config.get_wallet_path() + wallet = self.wallets.get(path) + if wallet is None: + return {'error': 'Wallet "%s" is not loaded. Use "electrum daemon load_wallet"'%os.path.basename(path) } + else: + wallet = None + # arguments passed to function + args = map(lambda x: config.get(x), cmd.params) + # decode json arguments + args = [json_decode(i) for i in args] + # options + kwargs = {} + for x in cmd.options: + kwargs[x] = (config_options.get(x) if x in ['password', 'new_password'] else config.get(x)) + cmd_runner = Commands(config, wallet, self.network) + func = getattr(cmd_runner, cmd.name) + result = func(*args, **kwargs) + return result + + def run(self): + while self.is_running(): + self.server.handle_request() if self.server else time.sleep(0.1) + for k, wallet in self.wallets.items(): + wallet.stop_threads() + if self.network: + self.print_error("shutting down network") + self.network.stop() + self.network.join() + self.on_stop() + + def stop(self): + self.print_error("stopping, removing lockfile") + remove_lockfile(get_lockfile(self.config)) + DaemonThread.stop(self) + + def init_gui(self, config, plugins): + gui_name = config.get('gui', 'qt') + if gui_name in ['lite', 'classic']: + gui_name = 'qt' + gui = __import__('electrum.gui.' + gui_name, fromlist=['electrum']) + self.gui = gui.ElectrumGui(config, self, plugins) + try: + self.gui.main() + except BaseException as e: + traceback.print_exc(file=sys.stdout) + # app will exit now diff --git a/electrum/dnssec.py b/electrum/dnssec.py new file mode 100644 index 000000000..6a8ac9807 --- /dev/null +++ b/electrum/dnssec.py @@ -0,0 +1,272 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2015 Thomas Voegtlin +# +# 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. + +# Check DNSSEC trust chain. +# Todo: verify expiration dates +# +# Based on +# http://backreference.org/2010/11/17/dnssec-verification-with-dig/ +# https://github.com/rthalley/dnspython/blob/master/tests/test_dnssec.py + + +# import traceback +# import sys +import time +import struct + + +import dns.name +import dns.query +import dns.dnssec +import dns.message +import dns.resolver +import dns.rdatatype +import dns.rdtypes.ANY.NS +import dns.rdtypes.ANY.CNAME +import dns.rdtypes.ANY.DLV +import dns.rdtypes.ANY.DNSKEY +import dns.rdtypes.ANY.DS +import dns.rdtypes.ANY.NSEC +import dns.rdtypes.ANY.NSEC3 +import dns.rdtypes.ANY.NSEC3PARAM +import dns.rdtypes.ANY.RRSIG +import dns.rdtypes.ANY.SOA +import dns.rdtypes.ANY.TXT +import dns.rdtypes.IN.A +import dns.rdtypes.IN.AAAA + + +# Pure-Python version of dns.dnssec._validate_rsig +import ecdsa +from . import rsakey + + +def python_validate_rrsig(rrset, rrsig, keys, origin=None, now=None): + from dns.dnssec import ValidationFailure, ECDSAP256SHA256, ECDSAP384SHA384 + from dns.dnssec import _find_candidate_keys, _make_hash, _is_ecdsa, _is_rsa, _to_rdata, _make_algorithm_id + + if isinstance(origin, str): + origin = dns.name.from_text(origin, dns.name.root) + + for candidate_key in _find_candidate_keys(keys, rrsig): + if not candidate_key: + raise ValidationFailure('unknown key') + + # For convenience, allow the rrset to be specified as a (name, rdataset) + # tuple as well as a proper rrset + if isinstance(rrset, tuple): + rrname = rrset[0] + rdataset = rrset[1] + else: + rrname = rrset.name + rdataset = rrset + + if now is None: + now = time.time() + if rrsig.expiration < now: + raise ValidationFailure('expired') + if rrsig.inception > now: + raise ValidationFailure('not yet valid') + + hash = _make_hash(rrsig.algorithm) + + if _is_rsa(rrsig.algorithm): + keyptr = candidate_key.key + (bytes,) = struct.unpack('!B', keyptr[0:1]) + keyptr = keyptr[1:] + if bytes == 0: + (bytes,) = struct.unpack('!H', keyptr[0:2]) + keyptr = keyptr[2:] + rsa_e = keyptr[0:bytes] + rsa_n = keyptr[bytes:] + n = ecdsa.util.string_to_number(rsa_n) + e = ecdsa.util.string_to_number(rsa_e) + pubkey = rsakey.RSAKey(n, e) + sig = rrsig.signature + + elif _is_ecdsa(rrsig.algorithm): + if rrsig.algorithm == ECDSAP256SHA256: + curve = ecdsa.curves.NIST256p + key_len = 32 + digest_len = 32 + elif rrsig.algorithm == ECDSAP384SHA384: + curve = ecdsa.curves.NIST384p + key_len = 48 + digest_len = 48 + else: + # shouldn't happen + raise ValidationFailure('unknown ECDSA curve') + keyptr = candidate_key.key + x = ecdsa.util.string_to_number(keyptr[0:key_len]) + y = ecdsa.util.string_to_number(keyptr[key_len:key_len * 2]) + assert ecdsa.ecdsa.point_is_valid(curve.generator, x, y) + point = ecdsa.ellipticcurve.Point(curve.curve, x, y, curve.order) + verifying_key = ecdsa.keys.VerifyingKey.from_public_point(point, curve) + r = rrsig.signature[:key_len] + s = rrsig.signature[key_len:] + sig = ecdsa.ecdsa.Signature(ecdsa.util.string_to_number(r), + ecdsa.util.string_to_number(s)) + + else: + raise ValidationFailure('unknown algorithm %u' % rrsig.algorithm) + + hash.update(_to_rdata(rrsig, origin)[:18]) + hash.update(rrsig.signer.to_digestable(origin)) + + if rrsig.labels < len(rrname) - 1: + suffix = rrname.split(rrsig.labels + 1)[1] + rrname = dns.name.from_text('*', suffix) + rrnamebuf = rrname.to_digestable(origin) + rrfixed = struct.pack('!HHI', rdataset.rdtype, rdataset.rdclass, + rrsig.original_ttl) + rrlist = sorted(rdataset); + for rr in rrlist: + hash.update(rrnamebuf) + hash.update(rrfixed) + rrdata = rr.to_digestable(origin) + rrlen = struct.pack('!H', len(rrdata)) + hash.update(rrlen) + hash.update(rrdata) + + digest = hash.digest() + + if _is_rsa(rrsig.algorithm): + digest = _make_algorithm_id(rrsig.algorithm) + digest + if pubkey.verify(bytearray(sig), bytearray(digest)): + return + + elif _is_ecdsa(rrsig.algorithm): + diglong = ecdsa.util.string_to_number(digest) + if verifying_key.pubkey.verifies(diglong, sig): + return + + else: + raise ValidationFailure('unknown algorithm %s' % rrsig.algorithm) + + raise ValidationFailure('verify failure') + + +# replace validate_rrsig +dns.dnssec._validate_rrsig = python_validate_rrsig +dns.dnssec.validate_rrsig = python_validate_rrsig +dns.dnssec.validate = dns.dnssec._validate + + + +from .util import print_error + + +# hard-coded trust anchors (root KSKs) +trust_anchors = [ + # KSK-2017: + dns.rrset.from_text('.', 1 , 'IN', 'DNSKEY', '257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU='), + # KSK-2010: + dns.rrset.from_text('.', 15202, 'IN', 'DNSKEY', '257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0='), +] + + +def check_query(ns, sub, _type, keys): + q = dns.message.make_query(sub, _type, want_dnssec=True) + response = dns.query.tcp(q, ns, timeout=5) + assert response.rcode() == 0, 'No answer' + answer = response.answer + assert len(answer) != 0, ('No DNS record found', sub, _type) + assert len(answer) != 1, ('No DNSSEC record found', sub, _type) + if answer[0].rdtype == dns.rdatatype.RRSIG: + rrsig, rrset = answer + elif answer[1].rdtype == dns.rdatatype.RRSIG: + rrset, rrsig = answer + else: + raise Exception('No signature set in record') + if keys is None: + keys = {dns.name.from_text(sub):rrset} + dns.dnssec.validate(rrset, rrsig, keys) + return rrset + + +def get_and_validate(ns, url, _type): + # get trusted root key + root_rrset = None + for dnskey_rr in trust_anchors: + try: + # Check if there is a valid signature for the root dnskey + root_rrset = check_query(ns, '', dns.rdatatype.DNSKEY, {dns.name.root: dnskey_rr}) + break + except dns.dnssec.ValidationFailure: + # It's OK as long as one key validates + continue + if not root_rrset: + raise dns.dnssec.ValidationFailure('None of the trust anchors found in DNS') + keys = {dns.name.root: root_rrset} + # top-down verification + parts = url.split('.') + for i in range(len(parts), 0, -1): + sub = '.'.join(parts[i-1:]) + name = dns.name.from_text(sub) + # If server is authoritative, don't fetch DNSKEY + query = dns.message.make_query(sub, dns.rdatatype.NS) + response = dns.query.udp(query, ns, 3) + assert response.rcode() == dns.rcode.NOERROR, "query error" + rrset = response.authority[0] if len(response.authority) > 0 else response.answer[0] + rr = rrset[0] + if rr.rdtype == dns.rdatatype.SOA: + continue + # get DNSKEY (self-signed) + rrset = check_query(ns, sub, dns.rdatatype.DNSKEY, None) + # get DS (signed by parent) + ds_rrset = check_query(ns, sub, dns.rdatatype.DS, keys) + # verify that a signed DS validates DNSKEY + for ds in ds_rrset: + for dnskey in rrset: + htype = 'SHA256' if ds.digest_type == 2 else 'SHA1' + good_ds = dns.dnssec.make_ds(name, dnskey, htype) + if ds == good_ds: + break + else: + continue + break + else: + raise Exception("DS does not match DNSKEY") + # set key for next iteration + keys = {name: rrset} + # get TXT record (signed by zone) + rrset = check_query(ns, url, _type, keys) + return rrset + + +def query(url, rtype): + # 8.8.8.8 is Google's public DNS server + nameservers = ['8.8.8.8'] + ns = nameservers[0] + try: + out = get_and_validate(ns, url, rtype) + validated = True + except BaseException as e: + #traceback.print_exc(file=sys.stderr) + print_error("DNSSEC error:", str(e)) + resolver = dns.resolver.get_default_resolver() + out = resolver.query(url, rtype) + validated = False + return out, validated diff --git a/electrum/ecc.py b/electrum/ecc.py new file mode 100644 index 000000000..b7f6c643a --- /dev/null +++ b/electrum/ecc.py @@ -0,0 +1,434 @@ +# -*- coding: utf-8 -*- +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2018 The Electrum developers +# +# 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. + +import base64 +import hmac +import hashlib +from typing import Union + + +import ecdsa +from ecdsa.ecdsa import curve_secp256k1, generator_secp256k1 +from ecdsa.curves import SECP256k1 +from ecdsa.ellipticcurve import Point +from ecdsa.util import string_to_number, number_to_string + +from .util import bfh, bh2u, assert_bytes, print_error, to_bytes, InvalidPassword, profiler +from .crypto import (Hash, aes_encrypt_with_iv, aes_decrypt_with_iv, hmac_oneshot) +from .ecc_fast import do_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1 + + +do_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1() + +CURVE_ORDER = SECP256k1.order + + +def generator(): + return ECPubkey.from_point(generator_secp256k1) + + +def point_at_infinity(): + return ECPubkey(None) + + +def sig_string_from_der_sig(der_sig, order=CURVE_ORDER): + r, s = ecdsa.util.sigdecode_der(der_sig, order) + return ecdsa.util.sigencode_string(r, s, order) + + +def der_sig_from_sig_string(sig_string, order=CURVE_ORDER): + r, s = ecdsa.util.sigdecode_string(sig_string, order) + return ecdsa.util.sigencode_der_canonize(r, s, order) + + +def der_sig_from_r_and_s(r, s, order=CURVE_ORDER): + return ecdsa.util.sigencode_der_canonize(r, s, order) + + +def get_r_and_s_from_der_sig(der_sig, order=CURVE_ORDER): + r, s = ecdsa.util.sigdecode_der(der_sig, order) + return r, s + + +def get_r_and_s_from_sig_string(sig_string, order=CURVE_ORDER): + r, s = ecdsa.util.sigdecode_string(sig_string, order) + return r, s + + +def sig_string_from_r_and_s(r, s, order=CURVE_ORDER): + return ecdsa.util.sigencode_string_canonize(r, s, order) + + +def point_to_ser(P, compressed=True) -> bytes: + if isinstance(P, tuple): + assert len(P) == 2, 'unexpected point: %s' % P + x, y = P + else: + x, y = P.x(), P.y() + if x is None or y is None: # infinity + return None + if compressed: + return bfh(('%02x' % (2+(y&1))) + ('%064x' % x)) + return bfh('04'+('%064x' % x)+('%064x' % y)) + + +def get_y_coord_from_x(x, odd=True): + curve = curve_secp256k1 + _p = curve.p() + _a = curve.a() + _b = curve.b() + for offset in range(128): + Mx = x + offset + My2 = pow(Mx, 3, _p) + _a * pow(Mx, 2, _p) + _b % _p + My = pow(My2, (_p + 1) // 4, _p) + if curve.contains_point(Mx, My): + if odd == bool(My & 1): + return My + return _p - My + raise Exception('ECC_YfromX: No Y found') + + +def ser_to_point(ser: bytes) -> (int, int): + if ser[0] not in (0x02, 0x03, 0x04): + raise ValueError('Unexpected first byte: {}'.format(ser[0])) + if ser[0] == 0x04: + return string_to_number(ser[1:33]), string_to_number(ser[33:]) + x = string_to_number(ser[1:]) + return x, get_y_coord_from_x(x, ser[0] == 0x03) + + +def _ser_to_python_ecdsa_point(ser: bytes) -> ecdsa.ellipticcurve.Point: + x, y = ser_to_point(ser) + try: + return Point(curve_secp256k1, x, y, CURVE_ORDER) + except: + raise InvalidECPointException() + + +class InvalidECPointException(Exception): + """e.g. not on curve, or infinity""" + + +class _MyVerifyingKey(ecdsa.VerifyingKey): + @classmethod + def from_signature(klass, sig, recid, h, curve): # TODO use libsecp?? + """ See http://www.secg.org/download/aid-780/sec1-v2.pdf, chapter 4.1.6 """ + from ecdsa import util, numbertheory + from . import msqr + curveFp = curve.curve + G = curve.generator + order = G.order() + # extract r,s from signature + r, s = util.sigdecode_string(sig, order) + # 1.1 + x = r + (recid//2) * order + # 1.3 + alpha = ( x * x * x + curveFp.a() * x + curveFp.b() ) % curveFp.p() + beta = msqr.modular_sqrt(alpha, curveFp.p()) + y = beta if (beta - recid) % 2 == 0 else curveFp.p() - beta + # 1.4 the constructor checks that nR is at infinity + try: + R = Point(curveFp, x, y, order) + except: + raise InvalidECPointException() + # 1.5 compute e from message: + e = string_to_number(h) + minus_e = -e % order + # 1.6 compute Q = r^-1 (sR - eG) + inv_r = numbertheory.inverse_mod(r,order) + try: + Q = inv_r * ( s * R + minus_e * G ) + except: + raise InvalidECPointException() + return klass.from_public_point( Q, curve ) + + +class _MySigningKey(ecdsa.SigningKey): + """Enforce low S values in signatures""" + + def sign_number(self, number, entropy=None, k=None): + r, s = ecdsa.SigningKey.sign_number(self, number, entropy, k) + if s > CURVE_ORDER//2: + s = CURVE_ORDER - s + return r, s + + +class _PubkeyForPointAtInfinity: + point = ecdsa.ellipticcurve.INFINITY + + +class ECPubkey(object): + + def __init__(self, b: bytes): + if b is not None: + assert_bytes(b) + point = _ser_to_python_ecdsa_point(b) + self._pubkey = ecdsa.ecdsa.Public_key(generator_secp256k1, point) + else: + self._pubkey = _PubkeyForPointAtInfinity() + + @classmethod + def from_sig_string(cls, sig_string: bytes, recid: int, msg_hash: bytes): + assert_bytes(sig_string) + if len(sig_string) != 64: + raise Exception('Wrong encoding') + if recid < 0 or recid > 3: + raise ValueError('recid is {}, but should be 0 <= recid <= 3'.format(recid)) + ecdsa_verifying_key = _MyVerifyingKey.from_signature(sig_string, recid, msg_hash, curve=SECP256k1) + ecdsa_point = ecdsa_verifying_key.pubkey.point + return ECPubkey.from_point(ecdsa_point) + + @classmethod + def from_signature65(cls, sig: bytes, msg_hash: bytes): + if len(sig) != 65: + raise Exception("Wrong encoding") + nV = sig[0] + if nV < 27 or nV >= 35: + raise Exception("Bad encoding") + if nV >= 31: + compressed = True + nV -= 4 + else: + compressed = False + recid = nV - 27 + return cls.from_sig_string(sig[1:], recid, msg_hash), compressed + + @classmethod + def from_point(cls, point): + _bytes = point_to_ser(point, compressed=False) # faster than compressed + return ECPubkey(_bytes) + + def get_public_key_bytes(self, compressed=True): + if self.is_at_infinity(): raise Exception('point is at infinity') + return point_to_ser(self.point(), compressed) + + def get_public_key_hex(self, compressed=True): + return bh2u(self.get_public_key_bytes(compressed)) + + def point(self) -> (int, int): + return self._pubkey.point.x(), self._pubkey.point.y() + + def __mul__(self, other: int): + if not isinstance(other, int): + raise TypeError('multiplication not defined for ECPubkey and {}'.format(type(other))) + ecdsa_point = self._pubkey.point * other + return self.from_point(ecdsa_point) + + def __rmul__(self, other: int): + return self * other + + def __add__(self, other): + if not isinstance(other, ECPubkey): + raise TypeError('addition not defined for ECPubkey and {}'.format(type(other))) + ecdsa_point = self._pubkey.point + other._pubkey.point + return self.from_point(ecdsa_point) + + def __eq__(self, other): + return self._pubkey.point.x() == other._pubkey.point.x() \ + and self._pubkey.point.y() == other._pubkey.point.y() + + def __ne__(self, other): + return not (self == other) + + def verify_message_for_address(self, sig65: bytes, message: bytes) -> None: + assert_bytes(message) + h = Hash(msg_magic(message)) + public_key, compressed = self.from_signature65(sig65, h) + # check public key + if public_key != self: + raise Exception("Bad signature") + # check message + self.verify_message_hash(sig65[1:], h) + + def verify_message_hash(self, sig_string: bytes, msg_hash: bytes) -> None: + assert_bytes(sig_string) + if len(sig_string) != 64: + raise Exception('Wrong encoding') + ecdsa_point = self._pubkey.point + verifying_key = _MyVerifyingKey.from_public_point(ecdsa_point, curve=SECP256k1) + verifying_key.verify_digest(sig_string, msg_hash, sigdecode=ecdsa.util.sigdecode_string) + + def encrypt_message(self, message: bytes, magic: bytes = b'BIE1'): + """ + ECIES encryption/decryption methods; AES-128-CBC with PKCS7 is used as the cipher; hmac-sha256 is used as the mac + """ + assert_bytes(message) + + randint = ecdsa.util.randrange(CURVE_ORDER) + ephemeral_exponent = number_to_string(randint, CURVE_ORDER) + ephemeral = ECPrivkey(ephemeral_exponent) + ecdh_key = (self * ephemeral.secret_scalar).get_public_key_bytes(compressed=True) + key = hashlib.sha512(ecdh_key).digest() + iv, key_e, key_m = key[0:16], key[16:32], key[32:] + ciphertext = aes_encrypt_with_iv(key_e, iv, message) + ephemeral_pubkey = ephemeral.get_public_key_bytes(compressed=True) + encrypted = magic + ephemeral_pubkey + ciphertext + mac = hmac_oneshot(key_m, encrypted, hashlib.sha256) + + return base64.b64encode(encrypted + mac) + + @classmethod + def order(cls): + return CURVE_ORDER + + def is_at_infinity(self): + return self == point_at_infinity() + + +def msg_magic(message: bytes) -> bytes: + from .bitcoin import var_int + length = bfh(var_int(len(message))) + return b"\x18BitCore Signed Message:\n" + length + message + + +def verify_message_with_address(address: str, sig65: bytes, message: bytes): + from .bitcoin import pubkey_to_address + assert_bytes(sig65, message) + try: + h = Hash(msg_magic(message)) + public_key, compressed = ECPubkey.from_signature65(sig65, h) + # check public key using the address + pubkey_hex = public_key.get_public_key_hex(compressed) + for txin_type in ['p2pkh','p2wpkh','p2wpkh-p2sh']: + addr = pubkey_to_address(txin_type, pubkey_hex) + if address == addr: + break + else: + raise Exception("Bad signature") + # check message + public_key.verify_message_hash(sig65[1:], h) + return True + except Exception as e: + print_error("Verification error: {0}".format(e)) + return False + + +def is_secret_within_curve_range(secret: Union[int, bytes]) -> bool: + if isinstance(secret, bytes): + secret = string_to_number(secret) + return 0 < secret < CURVE_ORDER + + +class ECPrivkey(ECPubkey): + + def __init__(self, privkey_bytes: bytes): + assert_bytes(privkey_bytes) + if len(privkey_bytes) != 32: + raise Exception('unexpected size for secret. should be 32 bytes, not {}'.format(len(privkey_bytes))) + secret = string_to_number(privkey_bytes) + if not is_secret_within_curve_range(secret): + raise InvalidECPointException('Invalid secret scalar (not within curve order)') + self.secret_scalar = secret + + point = generator_secp256k1 * secret + super().__init__(point_to_ser(point)) + self._privkey = ecdsa.ecdsa.Private_key(self._pubkey, secret) + + @classmethod + def from_secret_scalar(cls, secret_scalar: int): + secret_bytes = number_to_string(secret_scalar, CURVE_ORDER) + return ECPrivkey(secret_bytes) + + @classmethod + def from_arbitrary_size_secret(cls, privkey_bytes: bytes): + """This method is only for legacy reasons. Do not introduce new code that uses it. + Unlike the default constructor, this method does not require len(privkey_bytes) == 32, + and the secret does not need to be within the curve order either. + """ + return ECPrivkey(cls.normalize_secret_bytes(privkey_bytes)) + + @classmethod + def normalize_secret_bytes(cls, privkey_bytes: bytes) -> bytes: + scalar = string_to_number(privkey_bytes) % CURVE_ORDER + if scalar == 0: + raise Exception('invalid EC private key scalar: zero') + privkey_32bytes = number_to_string(scalar, CURVE_ORDER) + return privkey_32bytes + + def sign(self, data: bytes, sigencode=None, sigdecode=None) -> bytes: + if sigencode is None: + sigencode = sig_string_from_r_and_s + if sigdecode is None: + sigdecode = get_r_and_s_from_sig_string + private_key = _MySigningKey.from_secret_exponent(self.secret_scalar, curve=SECP256k1) + sig = private_key.sign_digest_deterministic(data, hashfunc=hashlib.sha256, sigencode=sigencode) + public_key = private_key.get_verifying_key() + if not public_key.verify_digest(sig, data, sigdecode=sigdecode): + raise Exception('Sanity check verifying our own signature failed.') + return sig + + def sign_transaction(self, hashed_preimage: bytes) -> bytes: + return self.sign(hashed_preimage, + sigencode=der_sig_from_r_and_s, + sigdecode=get_r_and_s_from_der_sig) + + def sign_message(self, message: bytes, is_compressed: bool) -> bytes: + def bruteforce_recid(sig_string): + for recid in range(4): + sig65 = construct_sig65(sig_string, recid, is_compressed) + try: + self.verify_message_for_address(sig65, message) + return sig65, recid + except Exception as e: + continue + else: + raise Exception("error: cannot sign message. no recid fits..") + + message = to_bytes(message, 'utf8') + msg_hash = Hash(msg_magic(message)) + sig_string = self.sign(msg_hash, + sigencode=sig_string_from_r_and_s, + sigdecode=get_r_and_s_from_sig_string) + sig65, recid = bruteforce_recid(sig_string) + return sig65 + + def decrypt_message(self, encrypted, magic=b'BIE1'): + encrypted = base64.b64decode(encrypted) + if len(encrypted) < 85: + raise Exception('invalid ciphertext: length') + magic_found = encrypted[:4] + ephemeral_pubkey_bytes = encrypted[4:37] + ciphertext = encrypted[37:-32] + mac = encrypted[-32:] + if magic_found != magic: + raise Exception('invalid ciphertext: invalid magic bytes') + try: + ecdsa_point = _ser_to_python_ecdsa_point(ephemeral_pubkey_bytes) + except AssertionError as e: + raise Exception('invalid ciphertext: invalid ephemeral pubkey') from e + if not ecdsa.ecdsa.point_is_valid(generator_secp256k1, ecdsa_point.x(), ecdsa_point.y()): + raise Exception('invalid ciphertext: invalid ephemeral pubkey') + ephemeral_pubkey = ECPubkey.from_point(ecdsa_point) + ecdh_key = (ephemeral_pubkey * self.secret_scalar).get_public_key_bytes(compressed=True) + key = hashlib.sha512(ecdh_key).digest() + iv, key_e, key_m = key[0:16], key[16:32], key[32:] + if mac != hmac_oneshot(key_m, encrypted[:-32], hashlib.sha256): + raise InvalidPassword() + return aes_decrypt_with_iv(key_e, iv, ciphertext) + + +def construct_sig65(sig_string, recid, is_compressed): + comp = 4 if is_compressed else 0 + return bytes([27 + recid + comp]) + sig_string diff --git a/electrum/ecc_fast.py b/electrum/ecc_fast.py new file mode 100644 index 000000000..10ed30096 --- /dev/null +++ b/electrum/ecc_fast.py @@ -0,0 +1,223 @@ +# taken (with minor modifications) from pycoin +# https://github.com/richardkiss/pycoin/blob/01b1787ed902df23f99a55deb00d8cd076a906fe/pycoin/ecdsa/native/secp256k1.py + +import os +import sys +import traceback +import ctypes +from ctypes.util import find_library +from ctypes import ( + byref, c_byte, c_int, c_uint, c_char_p, c_size_t, c_void_p, create_string_buffer, CFUNCTYPE, POINTER +) + +import ecdsa + +from .util import print_stderr, print_error + + +SECP256K1_FLAGS_TYPE_MASK = ((1 << 8) - 1) +SECP256K1_FLAGS_TYPE_CONTEXT = (1 << 0) +SECP256K1_FLAGS_TYPE_COMPRESSION = (1 << 1) +# /** The higher bits contain the actual data. Do not use directly. */ +SECP256K1_FLAGS_BIT_CONTEXT_VERIFY = (1 << 8) +SECP256K1_FLAGS_BIT_CONTEXT_SIGN = (1 << 9) +SECP256K1_FLAGS_BIT_COMPRESSION = (1 << 8) + +# /** Flags to pass to secp256k1_context_create. */ +SECP256K1_CONTEXT_VERIFY = (SECP256K1_FLAGS_TYPE_CONTEXT | SECP256K1_FLAGS_BIT_CONTEXT_VERIFY) +SECP256K1_CONTEXT_SIGN = (SECP256K1_FLAGS_TYPE_CONTEXT | SECP256K1_FLAGS_BIT_CONTEXT_SIGN) +SECP256K1_CONTEXT_NONE = (SECP256K1_FLAGS_TYPE_CONTEXT) + +SECP256K1_EC_COMPRESSED = (SECP256K1_FLAGS_TYPE_COMPRESSION | SECP256K1_FLAGS_BIT_COMPRESSION) +SECP256K1_EC_UNCOMPRESSED = (SECP256K1_FLAGS_TYPE_COMPRESSION) + + +def load_library(): + if sys.platform == 'darwin': + library_path = 'libsecp256k1.0.dylib' + elif sys.platform in ('windows', 'win32'): + library_path = 'libsecp256k1.dll' + elif 'ANDROID_DATA' in os.environ: + library_path = 'libsecp256k1.so' + else: + library_path = 'libsecp256k1.so.0' + + secp256k1 = ctypes.cdll.LoadLibrary(library_path) + if not secp256k1: + print_stderr('[ecc] warning: libsecp256k1 library failed to load') + return None + + try: + secp256k1.secp256k1_context_create.argtypes = [c_uint] + secp256k1.secp256k1_context_create.restype = c_void_p + + secp256k1.secp256k1_context_randomize.argtypes = [c_void_p, c_char_p] + secp256k1.secp256k1_context_randomize.restype = c_int + + secp256k1.secp256k1_ec_pubkey_create.argtypes = [c_void_p, c_void_p, c_char_p] + secp256k1.secp256k1_ec_pubkey_create.restype = c_int + + secp256k1.secp256k1_ecdsa_sign.argtypes = [c_void_p, c_char_p, c_char_p, c_char_p, c_void_p, c_void_p] + secp256k1.secp256k1_ecdsa_sign.restype = c_int + + secp256k1.secp256k1_ecdsa_verify.argtypes = [c_void_p, c_char_p, c_char_p, c_char_p] + secp256k1.secp256k1_ecdsa_verify.restype = c_int + + secp256k1.secp256k1_ec_pubkey_parse.argtypes = [c_void_p, c_char_p, c_char_p, c_size_t] + secp256k1.secp256k1_ec_pubkey_parse.restype = c_int + + secp256k1.secp256k1_ec_pubkey_serialize.argtypes = [c_void_p, c_char_p, c_void_p, c_char_p, c_uint] + secp256k1.secp256k1_ec_pubkey_serialize.restype = c_int + + secp256k1.secp256k1_ecdsa_signature_parse_compact.argtypes = [c_void_p, c_char_p, c_char_p] + secp256k1.secp256k1_ecdsa_signature_parse_compact.restype = c_int + + secp256k1.secp256k1_ecdsa_signature_normalize.argtypes = [c_void_p, c_char_p, c_char_p] + secp256k1.secp256k1_ecdsa_signature_normalize.restype = c_int + + secp256k1.secp256k1_ecdsa_signature_serialize_compact.argtypes = [c_void_p, c_char_p, c_char_p] + secp256k1.secp256k1_ecdsa_signature_serialize_compact.restype = c_int + + secp256k1.secp256k1_ec_pubkey_tweak_mul.argtypes = [c_void_p, c_char_p, c_char_p] + secp256k1.secp256k1_ec_pubkey_tweak_mul.restype = c_int + + secp256k1.ctx = secp256k1.secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY) + r = secp256k1.secp256k1_context_randomize(secp256k1.ctx, os.urandom(32)) + if r: + return secp256k1 + else: + print_stderr('[ecc] warning: secp256k1_context_randomize failed') + return None + except (OSError, AttributeError): + #traceback.print_exc(file=sys.stderr) + print_stderr('[ecc] warning: libsecp256k1 library was found and loaded but there was an error when using it') + return None + + +class _patched_functions: + prepared_to_patch = False + monkey_patching_active = False + + +def _prepare_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1(): + if not _libsecp256k1: + return + + # save original functions so that we can undo patching (needed for tests) + _patched_functions.orig_sign = staticmethod(ecdsa.ecdsa.Private_key.sign) + _patched_functions.orig_verify = staticmethod(ecdsa.ecdsa.Public_key.verifies) + _patched_functions.orig_mul = staticmethod(ecdsa.ellipticcurve.Point.__mul__) + + curve_secp256k1 = ecdsa.ecdsa.curve_secp256k1 + curve_order = ecdsa.curves.SECP256k1.order + point_at_infinity = ecdsa.ellipticcurve.INFINITY + + def mul(self: ecdsa.ellipticcurve.Point, other: int): + if self.curve() != curve_secp256k1: + # this operation is not on the secp256k1 curve; use original implementation + return _patched_functions.orig_mul(self, other) + other %= curve_order + if self == point_at_infinity or other == 0: + return point_at_infinity + pubkey = create_string_buffer(64) + public_pair_bytes = b'\4' + self.x().to_bytes(32, byteorder="big") + self.y().to_bytes(32, byteorder="big") + r = _libsecp256k1.secp256k1_ec_pubkey_parse( + _libsecp256k1.ctx, pubkey, public_pair_bytes, len(public_pair_bytes)) + if not r: + return False + r = _libsecp256k1.secp256k1_ec_pubkey_tweak_mul(_libsecp256k1.ctx, pubkey, other.to_bytes(32, byteorder="big")) + if not r: + return point_at_infinity + + pubkey_serialized = create_string_buffer(65) + pubkey_size = c_size_t(65) + _libsecp256k1.secp256k1_ec_pubkey_serialize( + _libsecp256k1.ctx, pubkey_serialized, byref(pubkey_size), pubkey, SECP256K1_EC_UNCOMPRESSED) + x = int.from_bytes(pubkey_serialized[1:33], byteorder="big") + y = int.from_bytes(pubkey_serialized[33:], byteorder="big") + return ecdsa.ellipticcurve.Point(curve_secp256k1, x, y, curve_order) + + def sign(self: ecdsa.ecdsa.Private_key, hash: int, random_k: int): + # note: random_k is ignored + if self.public_key.curve != curve_secp256k1: + # this operation is not on the secp256k1 curve; use original implementation + return _patched_functions.orig_sign(self, hash, random_k) + secret_exponent = self.secret_multiplier + nonce_function = None + sig = create_string_buffer(64) + sig_hash_bytes = hash.to_bytes(32, byteorder="big") + _libsecp256k1.secp256k1_ecdsa_sign( + _libsecp256k1.ctx, sig, sig_hash_bytes, secret_exponent.to_bytes(32, byteorder="big"), nonce_function, None) + compact_signature = create_string_buffer(64) + _libsecp256k1.secp256k1_ecdsa_signature_serialize_compact(_libsecp256k1.ctx, compact_signature, sig) + r = int.from_bytes(compact_signature[:32], byteorder="big") + s = int.from_bytes(compact_signature[32:], byteorder="big") + return ecdsa.ecdsa.Signature(r, s) + + def verify(self: ecdsa.ecdsa.Public_key, hash: int, signature: ecdsa.ecdsa.Signature): + if self.curve != curve_secp256k1: + # this operation is not on the secp256k1 curve; use original implementation + return _patched_functions.orig_verify(self, hash, signature) + sig = create_string_buffer(64) + input64 = signature.r.to_bytes(32, byteorder="big") + signature.s.to_bytes(32, byteorder="big") + r = _libsecp256k1.secp256k1_ecdsa_signature_parse_compact(_libsecp256k1.ctx, sig, input64) + if not r: + return False + r = _libsecp256k1.secp256k1_ecdsa_signature_normalize(_libsecp256k1.ctx, sig, sig) + + public_pair_bytes = b'\4' + self.point.x().to_bytes(32, byteorder="big") + self.point.y().to_bytes(32, byteorder="big") + pubkey = create_string_buffer(64) + r = _libsecp256k1.secp256k1_ec_pubkey_parse( + _libsecp256k1.ctx, pubkey, public_pair_bytes, len(public_pair_bytes)) + if not r: + return False + + return 1 == _libsecp256k1.secp256k1_ecdsa_verify(_libsecp256k1.ctx, sig, hash.to_bytes(32, byteorder="big"), pubkey) + + # save new functions so that we can (re-)do patching + _patched_functions.fast_sign = sign + _patched_functions.fast_verify = verify + _patched_functions.fast_mul = mul + + _patched_functions.prepared_to_patch = True + + +def do_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1(): + if not _libsecp256k1: + # FIXME print_error will always print as 'verbosity' is not yet initialised + print_error('[ecc] info: libsecp256k1 library not available, falling back to python-ecdsa. ' + 'This means signing operations will be slower.') + return + if not _patched_functions.prepared_to_patch: + raise Exception("can't patch python-ecdsa without preparations") + ecdsa.ecdsa.Private_key.sign = _patched_functions.fast_sign + ecdsa.ecdsa.Public_key.verifies = _patched_functions.fast_verify + ecdsa.ellipticcurve.Point.__mul__ = _patched_functions.fast_mul + # ecdsa.ellipticcurve.Point.__add__ = ... # TODO?? + + _patched_functions.monkey_patching_active = True + + +def undo_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1(): + if not _libsecp256k1: + return + if not _patched_functions.prepared_to_patch: + raise Exception("can't patch python-ecdsa without preparations") + ecdsa.ecdsa.Private_key.sign = _patched_functions.orig_sign + ecdsa.ecdsa.Public_key.verifies = _patched_functions.orig_verify + ecdsa.ellipticcurve.Point.__mul__ = _patched_functions.orig_mul + + _patched_functions.monkey_patching_active = False + + +def is_using_fast_ecc(): + return _patched_functions.monkey_patching_active + + +try: + _libsecp256k1 = load_library() +except: + _libsecp256k1 = None + #traceback.print_exc(file=sys.stderr) + +_prepare_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1() diff --git a/electrum/electrum b/electrum/electrum new file mode 120000 index 000000000..74bf81ab6 --- /dev/null +++ b/electrum/electrum @@ -0,0 +1 @@ +../run_electrum \ No newline at end of file diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py new file mode 100644 index 000000000..9c2eb6ed9 --- /dev/null +++ b/electrum/exchange_rate.py @@ -0,0 +1,578 @@ +from datetime import datetime +import inspect +import requests +import sys +import os +import json +from threading import Thread +import time +import csv +import decimal +from decimal import Decimal + +from .bitcoin import COIN +from .i18n import _ +from .util import PrintError, ThreadJob, make_dir + + +# See https://en.wikipedia.org/wiki/ISO_4217 +CCY_PRECISIONS = {'BHD': 3, 'BIF': 0, 'BYR': 0, 'CLF': 4, 'CLP': 0, + 'CVE': 0, 'DJF': 0, 'GNF': 0, 'IQD': 3, 'ISK': 0, + 'JOD': 3, 'JPY': 0, 'KMF': 0, 'KRW': 0, 'KWD': 3, + 'LYD': 3, 'MGA': 1, 'MRO': 1, 'OMR': 3, 'PYG': 0, + 'RWF': 0, 'TND': 3, 'UGX': 0, 'UYI': 0, 'VND': 0, + 'VUV': 0, 'XAF': 0, 'XAU': 4, 'XOF': 0, 'XPF': 0} + + +class ExchangeBase(PrintError): + + def __init__(self, on_quotes, on_history): + self.history = {} + self.quotes = {} + self.on_quotes = on_quotes + self.on_history = on_history + + def get_json(self, site, get_string): + # APIs must have https + url = ''.join(['https://', site, get_string]) + response = requests.request('GET', url, headers={'User-Agent' : 'Electrum'}, timeout=10) + return response.json() + + def get_csv(self, site, get_string): + url = ''.join(['https://', site, get_string]) + response = requests.request('GET', url, headers={'User-Agent' : 'Electrum'}) + reader = csv.DictReader(response.content.decode().split('\n')) + return list(reader) + + def name(self): + return self.__class__.__name__ + + def update_safe(self, ccy): + try: + self.print_error("getting fx quotes for", ccy) + self.quotes = self.get_rates(ccy) + self.print_error("received fx quotes") + except BaseException as e: + self.print_error("failed fx quotes:", e) + self.on_quotes() + + def update(self, ccy): + t = Thread(target=self.update_safe, args=(ccy,)) + t.setDaemon(True) + t.start() + + def read_historical_rates(self, ccy, cache_dir): + filename = os.path.join(cache_dir, self.name() + '_'+ ccy) + if os.path.exists(filename): + timestamp = os.stat(filename).st_mtime + try: + with open(filename, 'r', encoding='utf-8') as f: + h = json.loads(f.read()) + h['timestamp'] = timestamp + except: + h = None + else: + h = None + if h: + self.history[ccy] = h + self.on_history() + return h + + def get_historical_rates_safe(self, ccy, cache_dir): + try: + self.print_error("requesting fx history for", ccy) + h = self.request_history(ccy) + self.print_error("received fx history for", ccy) + except BaseException as e: + self.print_error("failed fx history:", e) + return + filename = os.path.join(cache_dir, self.name() + '_' + ccy) + with open(filename, 'w', encoding='utf-8') as f: + f.write(json.dumps(h)) + h['timestamp'] = time.time() + self.history[ccy] = h + self.on_history() + + def get_historical_rates(self, ccy, cache_dir): + if ccy not in self.history_ccys(): + return + h = self.history.get(ccy) + if h is None: + h = self.read_historical_rates(ccy, cache_dir) + if h is None or h['timestamp'] < time.time() - 24*3600: + t = Thread(target=self.get_historical_rates_safe, args=(ccy, cache_dir)) + t.setDaemon(True) + t.start() + + def history_ccys(self): + return [] + + def historical_rate(self, ccy, d_t): + return self.history.get(ccy, {}).get(d_t.strftime('%Y-%m-%d'), 'NaN') + + def get_currencies(self): + rates = self.get_rates('') + return sorted([str(a) for (a, b) in rates.items() if b is not None and len(a)==3]) + +class BitcoinAverage(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('apiv2.bitcoinaverage.com', '/indices/global/ticker/short') + return dict([(r.replace("BTC", ""), Decimal(json[r]['last'])) + for r in json if r != 'timestamp']) + + def history_ccys(self): + return ['AUD', 'BRL', 'CAD', 'CHF', 'CNY', 'EUR', 'GBP', 'IDR', 'ILS', + 'MXN', 'NOK', 'NZD', 'PLN', 'RON', 'RUB', 'SEK', 'SGD', 'USD', + 'ZAR'] + + def request_history(self, ccy): + history = self.get_csv('apiv2.bitcoinaverage.com', + "/indices/global/history/BTC%s?period=alltime&format=csv" % ccy) + return dict([(h['DateTime'][:10], h['Average']) + for h in history]) + + +class Bitcointoyou(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('bitcointoyou.com', "/API/ticker.aspx") + return {'BRL': Decimal(json['ticker']['last'])} + + def history_ccys(self): + return ['BRL'] + + +class BitcoinVenezuela(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('api.bitcoinvenezuela.com', '/') + rates = [(r, json['BTC'][r]) for r in json['BTC'] + if json['BTC'][r] is not None] # Giving NULL for LTC + return dict(rates) + + def history_ccys(self): + return ['ARS', 'EUR', 'USD', 'VEF'] + + def request_history(self, ccy): + return self.get_json('api.bitcoinvenezuela.com', + "/historical/index.php?coin=BTC")[ccy +'_BTC'] + + +class Bitbank(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('public.bitbank.cc', '/btc_jpy/ticker') + return {'JPY': Decimal(json['data']['last'])} + + +class BitFlyer(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('bitflyer.jp', '/api/echo/price') + return {'JPY': Decimal(json['mid'])} + + +class Bitmarket(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('www.bitmarket.pl', '/json/BTCPLN/ticker.json') + return {'PLN': Decimal(json['last'])} + + +class BitPay(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('bitpay.com', '/api/rates') + return dict([(r['code'], Decimal(r['rate'])) for r in json]) + + +class Bitso(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('api.bitso.com', '/v2/ticker') + return {'MXN': Decimal(json['last'])} + + +class BitStamp(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('www.bitstamp.net', '/api/ticker/') + return {'USD': Decimal(json['last'])} + + +class Bitvalor(ExchangeBase): + + def get_rates(self,ccy): + json = self.get_json('api.bitvalor.com', '/v1/ticker.json') + return {'BRL': Decimal(json['ticker_1h']['total']['last'])} + + +class BlockchainInfo(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('blockchain.info', '/ticker') + return dict([(r, Decimal(json[r]['15m'])) for r in json]) + + +class BTCChina(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('data.btcchina.com', '/data/ticker') + return {'CNY': Decimal(json['ticker']['last'])} + + +class BTCParalelo(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('btcparalelo.com', '/api/price') + return {'VEF': Decimal(json['price'])} + + +class Coinbase(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('coinbase.com', + '/api/v1/currencies/exchange_rates') + return dict([(r[7:].upper(), Decimal(json[r])) + for r in json if r.startswith('btc_to_')]) + + +class CoinDesk(ExchangeBase): + + def get_currencies(self): + dicts = self.get_json('api.coindesk.com', + '/v1/bpi/supported-currencies.json') + return [d['currency'] for d in dicts] + + def get_rates(self, ccy): + json = self.get_json('api.coindesk.com', + '/v1/bpi/currentprice/%s.json' % ccy) + result = {ccy: Decimal(json['bpi'][ccy]['rate_float'])} + return result + + def history_starts(self): + return { 'USD': '2012-11-30', 'EUR': '2013-09-01' } + + def history_ccys(self): + return self.history_starts().keys() + + def request_history(self, ccy): + start = self.history_starts()[ccy] + end = datetime.today().strftime('%Y-%m-%d') + # Note ?currency and ?index don't work as documented. Sigh. + query = ('/v1/bpi/historical/close.json?start=%s&end=%s' + % (start, end)) + json = self.get_json('api.coindesk.com', query) + return json['bpi'] + + +class Coinsecure(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('api.coinsecure.in', '/v0/noauth/newticker') + return {'INR': Decimal(json['lastprice'] / 100.0 )} + + +class Foxbit(ExchangeBase): + + def get_rates(self,ccy): + json = self.get_json('api.bitvalor.com', '/v1/ticker.json') + return {'BRL': Decimal(json['ticker_1h']['exchanges']['FOX']['last'])} + + +class itBit(ExchangeBase): + + def get_rates(self, ccy): + ccys = ['USD', 'EUR', 'SGD'] + json = self.get_json('api.itbit.com', '/v1/markets/XBT%s/ticker' % ccy) + result = dict.fromkeys(ccys) + if ccy in ccys: + result[ccy] = Decimal(json['lastPrice']) + return result + + +class Kraken(ExchangeBase): + + def get_rates(self, ccy): + ccys = ['EUR', 'USD', 'CAD', 'GBP', 'JPY'] + pairs = ['XBT%s' % c for c in ccys] + json = self.get_json('api.kraken.com', + '/0/public/Ticker?pair=%s' % ','.join(pairs)) + return dict((k[-3:], Decimal(float(v['c'][0]))) + for k, v in json['result'].items()) + + +class LocalBitcoins(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('localbitcoins.com', + '/bitcoinaverage/ticker-all-currencies/') + return dict([(r, Decimal(json[r]['rates']['last'])) for r in json]) + + +class MercadoBitcoin(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('api.bitvalor.com', '/v1/ticker.json') + return {'BRL': Decimal(json['ticker_1h']['exchanges']['MBT']['last'])} + + +class NegocieCoins(ExchangeBase): + + def get_rates(self,ccy): + json = self.get_json('api.bitvalor.com', '/v1/ticker.json') + return {'BRL': Decimal(json['ticker_1h']['exchanges']['NEG']['last'])} + +class TheRockTrading(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('api.therocktrading.com', + '/v1/funds/BTCEUR/ticker') + return {'EUR': Decimal(json['last'])} + +class Unocoin(ExchangeBase): + + def get_rates(self, ccy): + json = self.get_json('www.unocoin.com', 'trade?buy') + return {'INR': Decimal(json)} + + +class WEX(ExchangeBase): + + def get_rates(self, ccy): + json_eur = self.get_json('wex.nz', '/api/3/ticker/btc_eur') + json_rub = self.get_json('wex.nz', '/api/3/ticker/btc_rur') + json_usd = self.get_json('wex.nz', '/api/3/ticker/btc_usd') + return {'EUR': Decimal(json_eur['btc_eur']['last']), + 'RUB': Decimal(json_rub['btc_rur']['last']), + 'USD': Decimal(json_usd['btc_usd']['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): + + def get_rates(self, ccy): + json = self.get_json('winkdex.com', '/api/v0/price') + return {'USD': Decimal(json['price'] / 100.0)} + + def history_ccys(self): + return ['USD'] + + def request_history(self, ccy): + json = self.get_json('winkdex.com', + "/api/v0/series?start_time=1342915200") + history = json['series'][0]['results'] + return dict([(h['timestamp'][:10], h['price'] / 100.0) + for h in history]) + + +class Zaif(ExchangeBase): + def get_rates(self, ccy): + json = self.get_json('api.zaif.jp', '/api/1/last_price/btc_jpy') + return {'JPY': Decimal(json['last_price'])} + + +def dictinvert(d): + inv = {} + for k, vlist in d.items(): + for v in vlist: + keys = inv.setdefault(v, []) + keys.append(k) + return inv + +def get_exchanges_and_currencies(): + import os, json + path = os.path.join(os.path.dirname(__file__), 'currencies.json') + try: + with open(path, 'r', encoding='utf-8') as f: + return json.loads(f.read()) + except: + pass + d = {} + is_exchange = lambda obj: (inspect.isclass(obj) + and issubclass(obj, ExchangeBase) + and obj != ExchangeBase) + exchanges = dict(inspect.getmembers(sys.modules[__name__], is_exchange)) + for name, klass in exchanges.items(): + exchange = klass(None, None) + try: + d[name] = exchange.get_currencies() + print(name, "ok") + except: + print(name, "error") + continue + with open(path, 'w', encoding='utf-8') as f: + f.write(json.dumps(d, indent=4, sort_keys=True)) + return d + + +CURRENCIES = get_exchanges_and_currencies() + + +def get_exchanges_by_ccy(history=True): + if not history: + return dictinvert(CURRENCIES) + d = {} + exchanges = CURRENCIES.keys() + for name in exchanges: + klass = globals()[name] + exchange = klass(None, None) + d[name] = exchange.history_ccys() + return dictinvert(d) + + +class FxThread(ThreadJob): + + def __init__(self, config, network): + self.config = config + self.network = network + self.ccy = self.get_currency() + self.history_used_spot = False + self.ccy_combo = None + self.hist_checkbox = None + self.cache_dir = os.path.join(config.path, 'cache') + self.set_exchange(self.config_exchange()) + make_dir(self.cache_dir) + + def get_currencies(self, h): + d = get_exchanges_by_ccy(h) + return sorted(d.keys()) + + def get_exchanges_by_ccy(self, ccy, h): + d = get_exchanges_by_ccy(h) + return d.get(ccy, []) + + def ccy_amount_str(self, amount, commas): + prec = CCY_PRECISIONS.get(self.ccy, 2) + fmt_str = "{:%s.%df}" % ("," if commas else "", max(0, prec)) + try: + rounded_amount = round(amount, prec) + except decimal.InvalidOperation: + rounded_amount = amount + return fmt_str.format(rounded_amount) + + def run(self): + # This runs from the plugins thread which catches exceptions + if self.is_enabled(): + if self.timeout ==0 and self.show_history(): + self.exchange.get_historical_rates(self.ccy, self.cache_dir) + if self.timeout <= time.time(): + self.timeout = time.time() + 150 + self.exchange.update(self.ccy) + + def is_enabled(self): + return bool(self.config.get('use_exchange_rate')) + + def set_enabled(self, b): + return self.config.set_key('use_exchange_rate', bool(b)) + + def get_history_config(self): + return bool(self.config.get('history_rates')) + + def set_history_config(self, b): + self.config.set_key('history_rates', bool(b)) + + def get_history_capital_gains_config(self): + return bool(self.config.get('history_rates_capital_gains', False)) + + def set_history_capital_gains_config(self, b): + self.config.set_key('history_rates_capital_gains', bool(b)) + + def get_fiat_address_config(self): + return bool(self.config.get('fiat_address')) + + def set_fiat_address_config(self, b): + self.config.set_key('fiat_address', bool(b)) + + def get_currency(self): + '''Use when dynamic fetching is needed''' + return self.config.get("currency", "EUR") + + def config_exchange(self): + return self.config.get('use_exchange', 'BitcoinAverage') + + def show_history(self): + return self.is_enabled() and self.get_history_config() and self.ccy in self.exchange.history_ccys() + + def set_currency(self, ccy): + self.ccy = ccy + self.config.set_key('currency', ccy, True) + self.timeout = 0 # Because self.ccy changes + self.on_quotes() + + def set_exchange(self, name): + class_ = globals().get(name, BitcoinAverage) + self.print_error("using exchange", name) + if self.config_exchange() != name: + self.config.set_key('use_exchange', name, True) + self.exchange = class_(self.on_quotes, self.on_history) + # A new exchange means new fx quotes, initially empty. Force + # a quote refresh + self.timeout = 0 + self.exchange.read_historical_rates(self.ccy, self.cache_dir) + + def on_quotes(self): + if self.network: + self.network.trigger_callback('on_quotes') + + def on_history(self): + if self.network: + self.network.trigger_callback('on_history') + + def exchange_rate(self): + '''Returns None, or the exchange rate as a Decimal''' + rate = self.exchange.quotes.get(self.ccy) + if rate is None: + return Decimal('NaN') + return Decimal(rate) + + def format_amount(self, btc_balance): + rate = self.exchange_rate() + return '' if rate.is_nan() else "%s" % self.value_str(btc_balance, rate) + + def format_amount_and_units(self, btc_balance): + rate = self.exchange_rate() + return '' if rate.is_nan() else "%s %s" % (self.value_str(btc_balance, rate), self.ccy) + + def get_fiat_status_text(self, btc_balance, base_unit, decimal_point): + rate = self.exchange_rate() + return _(" (No FX rate available)") if rate.is_nan() else " 1 %s~%s %s" % (base_unit, + self.value_str(COIN / (10**(8 - decimal_point)), rate), self.ccy) + + def fiat_value(self, satoshis, rate): + return Decimal('NaN') if satoshis is None else Decimal(satoshis) / COIN * Decimal(rate) + + def value_str(self, satoshis, rate): + return self.format_fiat(self.fiat_value(satoshis, rate)) + + def format_fiat(self, value): + if value.is_nan(): + return _("No data") + return "%s" % (self.ccy_amount_str(value, True)) + + def history_rate(self, d_t): + if d_t is None: + return Decimal('NaN') + rate = self.exchange.historical_rate(self.ccy, d_t) + # Frequently there is no rate for today, until tomorrow :) + # Use spot quotes in that case + if rate == 'NaN' and (datetime.today().date() - d_t.date()).days <= 2: + rate = self.exchange.quotes.get(self.ccy, 'NaN') + self.history_used_spot = True + return Decimal(rate) + + def historical_value_str(self, satoshis, d_t): + return self.format_fiat(self.historical_value(satoshis, d_t)) + + def historical_value(self, satoshis, d_t): + return self.fiat_value(satoshis, self.history_rate(d_t)) + + def timestamp_rate(self, timestamp): + from .util import timestamp_to_datetime + date = timestamp_to_datetime(timestamp) + return self.history_rate(date) diff --git a/electrum/gui/__init__.py b/electrum/gui/__init__.py new file mode 100644 index 000000000..9974520ac --- /dev/null +++ b/electrum/gui/__init__.py @@ -0,0 +1,5 @@ +# To create a new GUI, please add its code to this directory. +# Three objects are passed to the ElectrumGui: config, daemon and plugins +# The Wallet object is instanciated by the GUI + +# Notifications about network events are sent to the GUI by using network.register_callback() diff --git a/electrum/gui/kivy/Makefile b/electrum/gui/kivy/Makefile new file mode 100644 index 000000000..7e87afa6b --- /dev/null +++ b/electrum/gui/kivy/Makefile @@ -0,0 +1,32 @@ +PYTHON = python3 + +# needs kivy installed or in PYTHONPATH + +.PHONY: theming apk clean + +theming: + $(PYTHON) -m kivy.atlas theming/light 1024 theming/light/*.png +prepare: + # running pre build setup + @cp tools/buildozer.spec ../../../buildozer.spec + # copy electrum to main.py + @cp ../../../run_electrum ../../../main.py + @-if [ ! -d "../../.buildozer" ];then \ + cd ../../..; buildozer android debug;\ + cp -f electrum/gui/kivy/tools/blacklist.txt .buildozer/android/platform/python-for-android/src/blacklist.txt;\ + rm -rf ./.buildozer/android/platform/python-for-android/dist;\ + fi +apk: + @make prepare + @-cd ../../..; buildozer android debug deploy run + @make clean +release: + @make prepare + @-cd ../../..; buildozer android release + @make clean +clean: + # Cleaning up + # rename main.py to electrum + @-rm ../../../main.py + # remove buildozer.spec + @-rm ../../../buildozer.spec diff --git a/electrum/gui/kivy/Readme.md b/electrum/gui/kivy/Readme.md new file mode 100644 index 000000000..4c151accc --- /dev/null +++ b/electrum/gui/kivy/Readme.md @@ -0,0 +1,130 @@ +# Kivy GUI + +The Kivy GUI is used with Electrum on Android devices. To generate an APK file, follow these instructions. + +## 1. Preliminaries + +Make sure the current user can write `/opt` (e.g. `sudo chown username: /opt`). + +We assume that you already got Electrum to run from source on this machine, +hence have e.g. `git`, `python3-pip` and `python3-setuptools`. + +## 2. Install kivy + +Install kivy for python3 as described [here](https://kivy.org/docs/installation/installation-linux.html). +So for example: +```sh +sudo add-apt-repository ppa:kivy-team/kivy +sudo apt-get install python3-kivy +``` + + +## 3. Install python-for-android (p4a) +p4a is used to package Electrum, Python, SDL and a bootstrap Java app into an APK file. +We patched p4a to add some functionality we need for Electrum. Until those changes are +merged into p4a, you need to merge them locally (into the master branch): + +3.1 [kivy/python-for-android#1217](https://github.com/kivy/python-for-android/pull/1217) + +Something like this should work: + +```sh +cd /opt +git clone https://github.com/kivy/python-for-android +cd python-for-android +git remote add agilewalker https://github.com/agilewalker/python-for-android +git remote add sombernight https://github.com/SomberNight/python-for-android +git fetch --all +git checkout 93759f36ba45c7bbe0456a4b3e6788622924cbac +git cherry-pick a2fb5ecbc09c4847adbcfd03c6b1ca62b3d09b8d # openssl-fix +git cherry-pick a0ef2007bc60ed642fbd8b61937995dbed0ddd24 # disable backups +``` + +## 4. Install buildozer +4.1 Buildozer is a frontend to p4a. Luckily we don't need to patch it: + +```sh +cd /opt +git clone https://github.com/kivy/buildozer +cd buildozer +sudo python3 setup.py install +``` + +4.2 Install additional dependencies: +```sh +sudo apt-get install python-pip +``` +and the ones listed +[here](https://buildozer.readthedocs.io/en/latest/installation.html#targeting-android). + +You will also need +```sh +python3 -m pip install colorama appdirs sh jinja2 +``` + + +4.3 Download the [Crystax NDK](https://www.crystax.net/en/download) manually. +Extract into `/opt/crystax-ndk-10.3.2` + + +## 5. Create the UI Atlas +In the `gui/kivy` directory of Electrum, run `make theming`. + +## 6. Download Electrum dependencies +```sh +sudo contrib/make_packages +``` + +## 7. Try building the APK and fail + +```sh +contrib/make_apk +``` + +During this build attempt, buildozer downloaded some tools, +e.g. those needed in the next step. + +## 8. Update the Android SDK build tools + +### Method 1: Using the GUI + + Start the Android SDK manager in GUI mode: + + ~/.buildozer/android/platform/android-sdk-20/tools/android + + Check the latest SDK available and install it + ("Android SDK Tools" and "Android SDK Platform-tools"). + Close the SDK manager. Repeat until there is no newer version. + + Reopen the SDK manager, and install the latest build tools + ("Android SDK Build-tools"), 27.0.3 at the time of writing. + + Install "Android Support Repository" from the SDK manager (under "Extras"). + +### Method 2: Using the command line: + + Repeat the following command until there is nothing to install: + + ~/.buildozer/android/platform/android-sdk-20/tools/android update sdk -u -t tools,platform-tools + + Install Build Tools, android API 19 and Android Support Library: + + ~/.buildozer/android/platform/android-sdk-20/tools/android update sdk -u -t build-tools-27.0.3,android-19,extra-android-m2repository + + +## 9. Build the APK + +```sh +contrib/make_apk +``` + +# FAQ +## Why do I get errors like `package me.dm7.barcodescanner.zxing does not exist` while compiling? +Update your Android build tools to version 27 like described above. + +## Why do I get errors like `(use -source 7 or higher to enable multi-catch statement)` while compiling? +Make sure that your p4a installation includes commit a3cc78a6d1a107cd3b6bd28db8b80f89e3ecddd2. +Also make sure you have recent SDK tools and platform-tools + +## I changed something but I don't see any differences on the phone. What did I do wrong? +You probably need to clear the cache: `rm -rf .buildozer/android/platform/build/{build,dists}` diff --git a/electrum/gui/kivy/__init__.py b/electrum/gui/kivy/__init__.py new file mode 100644 index 000000000..7b9941281 --- /dev/null +++ b/electrum/gui/kivy/__init__.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Electrum - lightweight Bitcoin client +# Copyright (C) 2012 thomasv@gitorious +# +# 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. +# +# Kivy GUI + +import sys +import os + +try: + sys.argv = [''] + import kivy +except ImportError: + # This error ideally shouldn't be raised with pre-built packages + sys.exit("Error: Could not import kivy. Please install it using the" + \ + "instructions mentioned here `http://kivy.org/#download` .") + +# minimum required version for kivy +kivy.require('1.8.0') +from kivy.logger import Logger + + + + +class ElectrumGui: + + def __init__(self, config, daemon, plugins): + Logger.debug('ElectrumGUI: initialising') + self.daemon = daemon + self.network = daemon.network + self.config = config + self.plugins = plugins + + def main(self): + from .main_window import ElectrumWindow + self.config.open_last_wallet() + w = ElectrumWindow(config=self.config, + network=self.network, + plugins = self.plugins, + gui_object=self) + w.run() diff --git a/electrum/gui/kivy/data/background.png b/electrum/gui/kivy/data/background.png new file mode 100644 index 0000000000000000000000000000000000000000..77f42ccdd92e45ab39abe13ebb20f313baded1ac GIT binary patch literal 41063 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

{koF3GqPW1EyTk=XLX5_^v8gex>i{eck)kND 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 literal 0 HcmV?d00001 diff --git a/electrum/gui/kivy/data/fonts/Roboto.ttf b/electrum/gui/kivy/data/fonts/Roboto.ttf new file mode 100644 index 0000000000000000000000000000000000000000..153c60882bb8fc6d129dd906fffc3aa4992593ed GIT binary patch literal 84564 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 =)Z7^|Pf~xAuj%JN$JHS7I~K9- z-iWh{>rV7VbLJLV$;&&11_z}V$gBFnHa2<4kYv4gyLR5cpjRV4*W?pc9^m5uK4N;| zEJD|KGFOzIyRV;{rTFA#9XogFxKOq#oH4ynFT({axV26f9b`2>H?|$qZTD^m7s=%8 z>|}lO@rr#deVy8|5rMw`R_(YxCaJ&3=k*tmmh(SlwtbIU

Jg}$pFFj!M9V+r{zH@B+4K?;cjlED~ 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�T$ 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

~^~_nHSjkH|gmmt- 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 JD`_=@{tKX~8*u;t literal 0 HcmV?d00001 diff --git a/electrum/gui/kivy/data/fonts/tron/License.txt b/electrum/gui/kivy/data/fonts/tron/License.txt new file mode 100644 index 000000000..fbc86ed93 --- /dev/null +++ b/electrum/gui/kivy/data/fonts/tron/License.txt @@ -0,0 +1,4 @@ +Copyright (c) 2010-2011, Jeff Bell [www.randombell.com] | [jeffbell@randombell.com]. +This font may be distributed freely however must retain this document as well as the Readme.txt file. +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is available with a FAQ at: http://scripts.sil.org/OFL \ No newline at end of file diff --git a/electrum/gui/kivy/data/fonts/tron/Readme.txt b/electrum/gui/kivy/data/fonts/tron/Readme.txt new file mode 100644 index 000000000..2e2fb69f6 --- /dev/null +++ b/electrum/gui/kivy/data/fonts/tron/Readme.txt @@ -0,0 +1,21 @@ +TR2N v1.3 + +ABOUT THE FONT: +A font based upon the poster text for TRON LEGACY. + +The font is different from the pre-existing TRON font currently on the web. Similar in minor aspects but different in most. Style based upon text from different region posters. + +UPDATE HISTORY: +3/7/11 - Adjusted the letter B (both lowercase and uppercase), capped off the ends of T, P and R, added a few more punctuation marks, as well as added the TR and TP ligature to allow for the solid bar connect as in the poster art. + +1/22/11 - Made minor corrections to all previous letters and punctuation. Corrected issue with number 8's top filling in. + +ABOUT THE AUTHOR: +Jeff Bell has produced fonts before, but this is the first one in over 10 years. His original 3 fonts were under the name DJ-JOHNNYRKA and include "CASPER", "BEVERLY HILLS COP", "THE GODFATHER" and "FIDDUMS FAMILY". + +For more information on Jeff Bell and his work can be found online: + +www.randombell.com +www.damovieman.deviantart.com +http://www.imdb.com/name/nm3983081/ +http://www.vimeo.com/user4004969/videos \ No newline at end of file diff --git a/electrum/gui/kivy/data/fonts/tron/Tr2n.ttf b/electrum/gui/kivy/data/fonts/tron/Tr2n.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8e8c0dec644e3c3e686b1b852dec51d625afc915 GIT binary patch literal 34476 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 SyF+x1xSxe@3DT-%?Ee9Om8ysU literal 0 HcmV?d00001 diff --git a/electrum/gui/kivy/data/glsl/default.fs b/electrum/gui/kivy/data/glsl/default.fs new file mode 100644 index 000000000..19145d653 --- /dev/null +++ b/electrum/gui/kivy/data/glsl/default.fs @@ -0,0 +1,4 @@ +$HEADER$ +void main (void){ + gl_FragColor = frag_color * texture2D(texture0, tex_coord0); +} diff --git a/electrum/gui/kivy/data/glsl/default.png b/electrum/gui/kivy/data/glsl/default.png new file mode 100644 index 0000000000000000000000000000000000000000..a14255e4de12573962e0f5700f4ea6161ac15469 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}oCO|{#S9GG z!XV7ZFl&wkP>{XE)7O>#7B@SygwV4|r#XQ_k|nMYCC>S|xv6<249-QVi6yBi3gww4 z84B*6z5(HleBwYwzMd|QAsP4Ho_FMBVBla;*joSGxRu{L!$E!J`DOEj1xNuqwim5p Vu8q5yJP&9vgQu&X%Q~loCID}3GN%9l literal 0 HcmV?d00001 diff --git a/electrum/gui/kivy/data/glsl/default.vs b/electrum/gui/kivy/data/glsl/default.vs new file mode 100644 index 000000000..ac9ac4d6d --- /dev/null +++ b/electrum/gui/kivy/data/glsl/default.vs @@ -0,0 +1,6 @@ +$HEADER$ +void main (void) { + frag_color = color * vec4(1.0, 1.0, 1.0, opacity); + tex_coord0 = vTexCoords0; + gl_Position = projection_mat * modelview_mat * vec4(vPosition.xy, 0.0, 1.0); +} diff --git a/electrum/gui/kivy/data/glsl/header.fs b/electrum/gui/kivy/data/glsl/header.fs new file mode 100644 index 000000000..e9f887ba6 --- /dev/null +++ b/electrum/gui/kivy/data/glsl/header.fs @@ -0,0 +1,10 @@ +#ifdef GL_ES + precision highp float; +#endif + +/* Outputs from the vertex shader */ +varying vec4 frag_color; +varying vec2 tex_coord0; + +/* uniform texture samplers */ +uniform sampler2D texture0; diff --git a/electrum/gui/kivy/data/glsl/header.vs b/electrum/gui/kivy/data/glsl/header.vs new file mode 100644 index 000000000..a2638bffc --- /dev/null +++ b/electrum/gui/kivy/data/glsl/header.vs @@ -0,0 +1,17 @@ +#ifdef GL_ES + precision highp float; +#endif + +/* Outputs to the fragment shader */ +varying vec4 frag_color; +varying vec2 tex_coord0; + +/* vertex attributes */ +attribute vec2 vPosition; +attribute vec2 vTexCoords0; + +/* uniform variables */ +uniform mat4 modelview_mat; +uniform mat4 projection_mat; +uniform vec4 color; +uniform float opacity; diff --git a/electrum/gui/kivy/data/images/defaulttheme-0.png b/electrum/gui/kivy/data/images/defaulttheme-0.png new file mode 100644 index 0000000000000000000000000000000000000000..8cfc82455124cf6387042dcab0fc4b6f4c66f32a GIT binary patch literal 72519 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 v9q0nOe1DRk8|!sv`)`K: + canvas: + Color: + rgba: self.disabled_color if self.disabled else (self.color if not self.markup else (1, 1, 1, 1)) + Rectangle: + texture: self.texture + size: self.texture_size + pos: int(self.center_x - self.texture_size[0] / 2.), int(self.center_y - self.texture_size[1] / 2.) + +<-Button,-ToggleButton>: + state_image: self.background_normal if self.state == 'normal' else self.background_down + disabled_image: self.background_disabled_normal if self.state == 'normal' else self.background_disabled_down + canvas: + Color: + rgba: self.background_color + BorderImage: + border: self.border + pos: self.pos + size: self.size + source: self.disabled_image if self.disabled else self.state_image + Color: + rgba: self.disabled_color if self.disabled else self.color + Rectangle: + texture: self.texture + size: self.texture_size + pos: int(self.center_x - self.texture_size[0] / 2.), int(self.center_y - self.texture_size[1] / 2.) + + + opacity: .7 if self.disabled else 1 + rows: 1 + canvas: + Color: + rgba: self.parent.background_color if self.parent else (1, 1, 1, 1) + BorderImage: + border: self.parent.border if self.parent else (16, 16, 16, 16) + texture: root.parent._bk_img.texture if root.parent else None + size: self.size + pos: self.pos + +: + background_normal: 'atlas://data/images/defaulttheme/bubble_btn' + background_down: 'atlas://data/images/defaulttheme/bubble_btn_pressed' + background_disabled_normal: 'atlas://data/images/defaulttheme/bubble_btn' + background_disabled_down: 'atlas://data/images/defaulttheme/bubble_btn_pressed' + border: (0, 0, 0, 0) + +: + canvas: + Color: + rgb: 1, 1, 1 + BorderImage: + border: (0, 18, 0, 18) if self.orientation == 'horizontal' else (18, 0, 18, 0) + pos: (self.x + self.padding, self.center_y - sp(18)) if self.orientation == 'horizontal' else (self.center_x - 18, self.y + self.padding) + size: (self.width - self.padding * 2, sp(36)) if self.orientation == 'horizontal' else (sp(36), self.height - self.padding * 2) + source: 'atlas://data/images/defaulttheme/slider{}_background{}'.format(self.orientation[0], '_disabled' if self.disabled else '') + Rectangle: + pos: (self.value_pos[0] - sp(16), self.center_y - sp(17)) if self.orientation == 'horizontal' else (self.center_x - (16), self.value_pos[1] - sp(16)) + size: (sp(32), sp(32)) + source: 'atlas://data/images/defaulttheme/slider_cursor{}'.format('_disabled' if self.disabled else '') + +: + canvas.before: + PushMatrix + Translate: + xy: self.pos + canvas.after: + PopMatrix + +: + canvas: + Color: + rgba: self.color + Rectangle: + texture: self.texture + size: self.norm_image_size + pos: self.center_x - self.norm_image_size[0] / 2., self.center_y - self.norm_image_size[1] / 2. + + + rows: 1 + padding: 3 + canvas: + Color: + rgba: self.parent.background_color if self.parent else (1, 1, 1, 1) + BorderImage: + border: self.parent.border if self.parent else (16, 16, 16, 16) + source: (root.parent.background_disabled_image if self.disabled else root.parent.background_image) if root.parent else None + size: self.size + pos: self.pos + + + rows: 1 + + + padding: '2dp', '2dp', '2dp', '2dp' + canvas.before: + BorderImage: + pos: self.pos + size: self.size + border: root.border + source: root.background_image + +: + halign: 'center' + valign: 'middle' + background_normal: 'atlas://data/images/defaulttheme/tab_btn' + background_disabled_normal: 'atlas://data/images/defaulttheme/tab_btn_disabled' + background_down: 'atlas://data/images/defaulttheme/tab_btn_pressed' + background_disabled_down: 'atlas://data/images/defaulttheme/tab_btn_pressed' + border: (8, 8, 8, 8) + font_size: '15sp' + + + allow_stretch: True + +: + canvas.before: + Color: + rgba: self.background_color + BorderImage: + border: self.border + pos: self.pos + size: self.size + source: (self.background_disabled_active if self.disabled else self.background_active) if self.focus else (self.background_disabled_normal if self.disabled else self.background_normal) + Color: + rgba: (self.cursor_color if self.focus and not self.cursor_blink else (0, 0, 0, 0)) + Rectangle: + pos: [int(x) for x in self.cursor_pos] + size: 1, -self.line_height + Color: + rgba: self.disabled_foreground_color if self.disabled else (self.hint_text_color if not self.text and not self.focus else self.foreground_color) + +: + but_cut: cut.__self__ + but_copy: copy.__self__ + but_paste: paste.__self__ + but_selectall: selectall.__self__ + + size_hint: None, None + size: '150sp', '50sp' + BubbleButton: + id: cut + text: 'Cut' + on_release: root.do('cut') + BubbleButton: + id: copy + text: 'Copy' + on_release: root.do('copy') + BubbleButton: + id: paste + text: 'Paste' + on_release: root.do('paste') + BubbleButton: + id: selectall + text: 'Select All' + on_release: root.do('selectall') + +: + font_name: 'data/fonts/RobotoMono-Regular.ttf' + + +: + canvas.before: + Color: + rgba: self.color_selected if self.is_selected else self.odd_color if self.odd else self.even_color + Rectangle: + pos: [self.parent.x, self.y] if self.parent else [0, 0] + size: [self.parent.width, self.height] if self.parent else [1, 1] + Color: + rgba: 1, 1, 1, int(not self.is_leaf) + Rectangle: + source: 'atlas://data/images/defaulttheme/tree_%s' % ('opened' if self.is_open else 'closed') + size: 16, 16 + pos: self.x - 20, self.center_y - 8 + canvas.after: + Color: + rgba: .5, .5, .5, .2 + Line: + points: [self.parent.x, self.y, self.parent.right, self.y] if self.parent else [] + + +: + width: self.texture_size[0] + height: max(self.texture_size[1] + dp(10), dp(24)) + text_size: self.width, None + + +: + canvas.before: + StencilPush + Rectangle: + pos: self.pos + size: self.size + StencilUse + + canvas.after: + StencilUnUse + Rectangle: + pos: self.pos + size: self.size + StencilPop + + +: + on_entry_added: treeview.add_node(args[1]) + on_entries_cleared: treeview.root.nodes = [] + on_subentry_to_entry: not args[2].locked and treeview.add_node(args[1], args[2]) + on_remove_subentry: args[2].nodes = [] + BoxLayout: + pos: root.pos + size: root.size + size_hint: None, None + orientation: 'vertical' + BoxLayout: + size_hint_y: None + height: 30 + orientation: 'horizontal' + Widget: + # Just for spacing + width: 10 + size_hint_x: None + Label: + text: 'Name' + text_size: self.size + halign: 'left' + bold: True + Label: + text: 'Size' + text_size: self.size + size_hint_x: None + halign: 'right' + bold: True + Widget: + # Just for spacing + width: 10 + size_hint_x: None + ScrollView: + id: scrollview + do_scroll_x: False + Scatter: + do_rotation: False + do_scale: False + do_translation: False + size: treeview.size + size_hint_y: None + TreeView: + id: treeview + hide_root: True + size_hint_y: None + width: scrollview.width + height: self.minimum_height + on_node_expand: root.controller.entry_subselect(args[1]) + on_node_collapse: root.controller.close_subselection(args[1]) + +: + layout: layout + FileChooserListLayout: + id: layout + controller: root + +[FileListEntry@FloatLayout+TreeViewNode]: + locked: False + entries: [] + path: ctx.path + # FIXME: is_selected is actually a read_only treeview property. In this + # case, however, we're doing this because treeview only has single-selection + # hardcoded in it. The fix to this would be to update treeview to allow + # multiple selection. + is_selected: self.path in ctx.controller().selection + + orientation: 'horizontal' + size_hint_y: None + height: '48dp' if dp(1) > 1 else '24dp' + # Don't allow expansion of the ../ node + is_leaf: not ctx.isdir or ctx.name.endswith('..' + ctx.sep) or self.locked + on_touch_down: self.collide_point(*args[1].pos) and ctx.controller().entry_touched(self, args[1]) + on_touch_up: self.collide_point(*args[1].pos) and ctx.controller().entry_released(self, args[1]) + BoxLayout: + pos: root.pos + Label: + id: filename + text_size: self.width, None + halign: 'left' + shorten: True + text: ctx.name + Label: + text_size: self.width, None + size_hint_x: None + halign: 'right' + text: '{}'.format(ctx.get_nice_size()) + + +: + on_entry_added: stacklayout.add_widget(args[1]) + on_entries_cleared: stacklayout.clear_widgets() + ScrollView: + id: scrollview + pos: root.pos + size: root.size + size_hint: None, None + do_scroll_x: False + Scatter: + do_rotation: False + do_scale: False + do_translation: False + size_hint_y: None + height: stacklayout.height + StackLayout: + id: stacklayout + width: scrollview.width + size_hint_y: None + height: self.minimum_height + spacing: '10dp' + padding: '10dp' + +: + layout: layout + FileChooserIconLayout: + id: layout + controller: root + +[FileIconEntry@Widget]: + locked: False + path: ctx.path + selected: self.path in ctx.controller().selection + size_hint: None, None + + on_touch_down: self.collide_point(*args[1].pos) and ctx.controller().entry_touched(self, args[1]) + on_touch_up: self.collide_point(*args[1].pos) and ctx.controller().entry_released(self, args[1]) + size: '100dp', '100dp' + + canvas: + Color: + rgba: 1, 1, 1, 1 if self.selected else 0 + BorderImage: + border: 8, 8, 8, 8 + pos: root.pos + size: root.size + source: 'atlas://data/images/defaulttheme/filechooser_selected' + + Image: + size: '48dp', '48dp' + source: 'atlas://data/images/defaulttheme/filechooser_%s' % ('folder' if ctx.isdir else 'file') + pos: root.x + dp(24), root.y + dp(40) + Label: + text: ctx.name + text_size: (root.width, self.height) + halign: 'center' + shorten: True + size: '100dp', '16dp' + pos: root.x, root.y + dp(16) + + Label: + text: '{}'.format(ctx.get_nice_size()) + font_size: '11sp' + color: .8, .8, .8, 1 + size: '100dp', '16sp' + pos: root.pos + halign: 'center' + +: + pos_hint: {'x': 0, 'y': 0} + canvas: + Color: + rgba: 0, 0, 0, .8 + Rectangle: + pos: self.pos + size: self.size + Label: + pos_hint: {'x': .2, 'y': .6} + size_hint: .6, .2 + text: 'Opening %s' % root.path + FloatLayout: + pos_hint: {'x': .2, 'y': .4} + size_hint: .6, .2 + ProgressBar: + id: pb + pos_hint: {'x': 0, 'center_y': .5} + max: root.total + value: root.index + Label: + pos_hint: {'x': 0} + text: '%d / %d' % (root.index, root.total) + size_hint_y: None + height: self.texture_size[1] + y: pb.center_y - self.height - 8 + font_size: '13sp' + color: (.8, .8, .8, .8) + + AnchorLayout: + pos_hint: {'x': .2, 'y': .2} + size_hint: .6, .2 + + Button: + text: 'Cancel' + size_hint: None, None + size: 150, 44 + on_release: root.cancel() + + + +# Switch widget +: + active_norm_pos: max(0., min(1., (int(self.active) + self.touch_distance / sp(41)))) + canvas: + Color: + rgb: 1, 1, 1 + Rectangle: + source: 'atlas://data/images/defaulttheme/switch-background{}'.format('_disabled' if self.disabled else '') + size: sp(83), sp(32) + pos: int(self.center_x - sp(41)), int(self.center_y - sp(16)) + Rectangle: + source: 'atlas://data/images/defaulttheme/switch-button{}'.format('_disabled' if self.disabled else '') + size: sp(43), sp(32) + pos: int(self.center_x - sp(41) + self.active_norm_pos * sp(41)), int(self.center_y - sp(16)) + + +# ModalView widget +: + canvas: + Color: + rgba: root.background_color[:3] + [root.background_color[-1] * self._anim_alpha] + Rectangle: + size: self._window.size if self._window else (0, 0) + + Color: + rgb: 1, 1, 1 + BorderImage: + source: root.background + border: root.border + pos: self.pos + size: self.size + + +# Popup widget +: + _container: container + GridLayout: + padding: '12dp' + cols: 1 + size_hint: None, None + pos: root.pos + size: root.size + + Label: + text: root.title + color: root.title_color + size_hint_y: None + height: self.texture_size[1] + dp(16) + text_size: self.width - dp(16), None + font_size: root.title_size + font_name: root.title_font + halign: root.title_align + + Widget: + size_hint_y: None + height: dp(4) + canvas: + Color: + rgba: root.separator_color + Rectangle: + pos: self.x, self.y + root.separator_height / 2. + size: self.width, root.separator_height + + BoxLayout: + id: container + +# ============================================================================= +# Spinner widget +# ============================================================================= + +: + size_hint_y: None + height: '48dp' + +: + background_normal: 'atlas://data/images/defaulttheme/spinner' + background_disabled_normal: 'atlas://data/images/defaulttheme/spinner_disabled' + background_down: 'atlas://data/images/defaulttheme/spinner_pressed' + +# ============================================================================= +# ActionBar widget +# ============================================================================= + +: + height: '48dp' + size_hint_y: None + spacing: '4dp' + canvas: + Color: + rgba: self.background_color + BorderImage: + border: root.border + pos: self.pos + size: self.size + source: self.background_image + +: + orientation: 'horizontal' + canvas: + Color: + rgba: self.background_color + BorderImage: + pos: self.pos + size: self.size + source: self.background_image + +: + size_hint_x: None + minimum_width: '2sp' + width: self.minimum_width + canvas: + Rectangle: + pos: self.x, self.y + sp(4) + size: self.width, self.height - sp(8) + source: self.background_image + +: + background_normal: 'atlas://data/images/defaulttheme/' + ('action_bar' if self.inside_group else 'action_item') + background_down: 'atlas://data/images/defaulttheme/action_item_down' + size_hint_x: None if not root.inside_group else 1 + width: [dp(48) if (root.icon and not root.inside_group) else max(dp(48), (self.texture_size[0] + dp(32))), self.size_hint_x][0] + color: self.color[:3] + [0 if (root.icon and not root.inside_group) else 1] + + Image: + allow_stretch: True + opacity: 1 if (root.icon and not root.inside_group) else 0 + source: root.icon + mipmap: root.mipmap + pos: root.x + dp(4), root.y + dp(4) + size: root.width - dp(8), root.height - sp(8) + +: + size_hint_x: None if not root.inside_group else 1 + width: self.texture_size[0] + dp(32) + +: + size_hint_x: None + width: self.texture_size[0] + dp(32) + +: + background_normal: 'atlas://data/images/defaulttheme/action_bar' if self.inside_group else 'atlas://data/images/defaulttheme/action_item' + +: + temp_width: 0 + temp_height: 0 + +: + background_normal: 'atlas://data/images/defaulttheme/action_item' + background_down: 'atlas://data/images/defaulttheme/action_item_down' + +: + size_hint_x: 1 + minimum_width: layout.minimum_width + min(sp(100), title.width) + important: True + GridLayout: + id: layout + rows: 1 + pos: root.pos + size_hint_x: None + width: self.minimum_width + ActionPreviousButton: + on_press: root.dispatch('on_press') + on_release: root.dispatch('on_release') + size_hint_x: None + width: prevlayout.width + GridLayout: + id: prevlayout + rows: 1 + width: self.minimum_width + height: self.parent.height + pos: self.parent.pos + ActionPreviousImage: + id: prev_icon_image + source: root.previous_image + opacity: 1 if root.with_previous else 0 + allow_stretch: True + size_hint_x: None + temp_width: root.previous_image_width or dp(prev_icon_image.texture_size[0]) + temp_height: root.previous_image_height or dp(prev_icon_image.texture_size[1]) + width: + (self.temp_width if self.temp_height <= self.height else \ + self.temp_width * (self.height / self.temp_height)) \ + if self.texture else dp(8) + mipmap: root.mipmap + ActionPreviousImage: + id: app_icon_image + source: root.app_icon + allow_stretch: True + size_hint_x: None + temp_width: root.app_icon_width or dp(app_icon_image.texture_size[0]) + temp_height: root.app_icon_height or dp(app_icon_image.texture_size[1]) + width: + (self.temp_width if self.temp_height <= self.height else \ + self.temp_width * (self.height / self.temp_height)) \ + if self.texture else dp(8) + mipmap: root.mipmap + Widget: + size_hint_x: None + width: '5sp' + Label: + id: title + text: root.title + text_size: self.size + color: root.color + shorten: True + shorten_from: 'right' + halign: 'left' + valign: 'middle' + +: + background_normal: 'atlas://data/images/defaulttheme/action_group' + background_down: 'atlas://data/images/defaulttheme/action_group_down' + background_disabled_normal: 'atlas://data/images/defaulttheme/action_group_disabled' + border: 30, 30, 3, 3 + ActionSeparator: + pos: root.pos + size: root.separator_width, root.height + opacity: 1 if root.use_separator else 0 + background_image: root.separator_image if root.use_separator else 'action_view' + +: + border: 3, 3, 3, 3 + background_normal: 'atlas://data/images/defaulttheme/action_item' + background_down: 'atlas://data/images/defaulttheme/action_item_down' + background_disabled_normal: 'atlas://data/images/defaulttheme/button_disabled' + size_hint_x: None + minimum_width: '48sp' + width: self.texture_size[0] if self.texture else self.minimum_width + canvas.after: + Color: + rgb: 1, 1, 1 + Rectangle: + pos: root.center_x - sp(16), root.center_y - sp(16) + size: sp(32), sp(32) + source: root.overflow_image + +: + auto_width: False + + +# ============================================================================= +# Accordion widget +# ============================================================================= + +[AccordionItemTitle@Label]: + text: ctx.title + normal_background: ctx.item.background_normal if ctx.item.collapse else ctx.item.background_selected + disabled_background: ctx.item.background_disabled_normal if ctx.item.collapse else ctx.item.background_disabled_selected + canvas.before: + Color: + rgba: self.disabled_color if self.disabled else self.color + BorderImage: + source: self.disabled_background if self.disabled else self.normal_background + pos: self.pos + size: self.size + PushMatrix + Translate: + xy: self.center_x, self.center_y + Rotate: + angle: 90 if ctx.item.orientation == 'horizontal' else 0 + axis: 0, 0, 1 + Translate: + xy: -self.center_x, -self.center_y + canvas.after: + PopMatrix + + +: + container: container + container_title: container_title + + BoxLayout: + orientation: root.orientation + pos: root.pos + BoxLayout: + size_hint_x: None if root.orientation == 'horizontal' else 1 + size_hint_y: None if root.orientation == 'vertical' else 1 + width: root.min_space if root.orientation == 'horizontal' else 100 + height: root.min_space if root.orientation == 'vertical' else 100 + id: container_title + + StencilView: + id: sv + + BoxLayout: + id: container + pos: sv.pos + size: root.content_size + + +: + _handle_y_pos: (self.right - self.bar_width - self.bar_margin) if self.bar_pos_y == 'right' else (self.x + self.bar_margin), self.y + self.height * self.vbar[0] + _handle_y_size: min(self.bar_width, self.width), self.height * self.vbar[1] + _handle_x_pos: self.x + self.width * self.hbar[0], (self.y + self.bar_margin) if self.bar_pos_x == 'bottom' else (self.top - self.bar_margin - self.bar_width) + _handle_x_size: self.width * self.hbar[1], min(self.bar_width, self.height) + canvas.after: + Color: + rgba: self._bar_color if (self.do_scroll_y and self.viewport_size[1] > self.height) else [0, 0, 0, 0] + Rectangle: + pos: root._handle_y_pos or (0, 0) + size: root._handle_y_size or (0, 0) + Color: + rgba: self._bar_color if (self.do_scroll_x and self.viewport_size[0] > self.width) else [0, 0, 0, 0] + Rectangle: + pos: root._handle_x_pos or (0, 0) + size: root._handle_x_size or (0, 0) + + +: + _checkbox_state_image: + self.background_checkbox_down \ + if self.active else self.background_checkbox_normal + _checkbox_disabled_image: + self.background_checkbox_disabled_down \ + if self.active else self.background_checkbox_disabled_normal + _radio_state_image: + self.background_radio_down \ + if self.active else self.background_radio_normal + _radio_disabled_image: + self.background_radio_disabled_down \ + if self.active else self.background_radio_disabled_normal + _checkbox_image: + self._checkbox_disabled_image \ + if self.disabled else self._checkbox_state_image + _radio_image: + self._radio_disabled_image \ + if self.disabled else self._radio_state_image + canvas: + Color: + rgb: 1, 1, 1 + Rectangle: + source: self._radio_image if self.group else self._checkbox_image + size: sp(32), sp(32) + pos: int(self.center_x - sp(16)), int(self.center_y - sp(16)) + +# ============================================================================= +# Screen Manager +# ============================================================================= + +: + canvas.before: + StencilPush + Rectangle: + pos: self.pos + size: self.size + StencilUse + canvas.after: + StencilUnUse + Rectangle: + pos: self.pos + size: self.size + StencilPop diff --git a/electrum/gui/kivy/i18n.py b/electrum/gui/kivy/i18n.py new file mode 100644 index 000000000..733249d3e --- /dev/null +++ b/electrum/gui/kivy/i18n.py @@ -0,0 +1,46 @@ +import gettext + + +class _(str): + + observers = set() + lang = None + + def __new__(cls, s): + if _.lang is None: + _.switch_lang('en') + t = _.translate(s) + o = super(_, cls).__new__(cls, t) + o.source_text = s + return o + + @staticmethod + def translate(s, *args, **kwargs): + return _.lang(s) + + @staticmethod + def bind(label): + try: + _.observers.add(label) + except: + pass + # garbage collection + new = set() + for label in _.observers: + try: + new.add(label) + except: + pass + _.observers = new + + @staticmethod + def switch_lang(lang): + # get the right locales directory, and instanciate a gettext + from electrum.i18n import LOCALE_DIR + locales = gettext.translation('electrum', LOCALE_DIR, languages=[lang], fallback=True) + _.lang = locales.gettext + for label in _.observers: + try: + label.text = _(label.text.source_text) + except: + pass diff --git a/electrum/gui/kivy/main.kv b/electrum/gui/kivy/main.kv new file mode 100644 index 000000000..b4f05188e --- /dev/null +++ b/electrum/gui/kivy/main.kv @@ -0,0 +1,464 @@ +#:import Clock kivy.clock.Clock +#:import Window kivy.core.window.Window +#:import Factory kivy.factory.Factory +#:import _ electrum.gui.kivy.i18n._ + + +########################### +# Global Defaults +########################### + +