From 3b4cb1c39a917d6ec6ff48896ce63aeac439439a Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 21 May 2020 16:21:03 +0200 Subject: [PATCH 01/45] add indonesian language --- application.qrc | 1 + res/silentdragonlite_id.qm | Bin 0 -> 42472 bytes res/silentdragonlite_id.ts | 2002 ++++++++++++++++++++++++++++++++++++ silentdragon-lite.pro | 1 + 4 files changed, 2004 insertions(+) create mode 100644 res/silentdragonlite_id.qm create mode 100644 res/silentdragonlite_id.ts diff --git a/application.qrc b/application.qrc index d2fde2d..63d9c5d 100644 --- a/application.qrc +++ b/application.qrc @@ -21,6 +21,7 @@ res/silentdragonlite_it.qm res/silentdragonlite_hr.qm res/silentdragonlite_fa.qm + res/silentdragonlite_id.qm res/css/blue.css diff --git a/res/silentdragonlite_id.qm b/res/silentdragonlite_id.qm new file mode 100644 index 0000000000000000000000000000000000000000..a4a9338ae93d9212378b4a6c8aff5890536748d4 GIT binary patch literal 42472 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

d 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 Ncr$(OhNZBF{tup&v5o)$ literal 0 HcmV?d00001 diff --git a/res/silentdragonlite_id.ts b/res/silentdragonlite_id.ts new file mode 100644 index 0000000..54163a4 --- /dev/null +++ b/res/silentdragonlite_id.ts @@ -0,0 +1,2002 @@ + + + + + AddressBookModel + + + Label + Label + + + + Address + Alamat + + + + BalancesTableModel + + + Address + Alamat + + + + Amount + Jumlah + + + + ConnectionDialog + + + SilentDragonLite + SilentDragonLite + + + + Starting Up + Memulai + + + + Controller + + + Wallet Password + Password Alamat + + + + Your wallet is encrypted. +Please enter your wallet password + Wallet Anda terkunci. Mohon masukkan Password Alamat Anda + + + + + Wallet Decryption Failed + Gagal Mengdeskripsi Dompet + + + + Please enter a valid password + Mohon Masukkan Password yang benar + + + + Failed to unlock wallet + Gagal Membuka Dompet + + + + CreateWalletForm + + + Form + Form + + + + Restore wallet from seed + Mengembalikan Dompet menggunakan Seed + + + + Restore an existing wallet, using the 24-word seed. + Mengembalikan Dompet menggunakan 24 Kata Seed + + + + Create a new Wallet + Membuat Dompet Baru + + + + Create a new wallet with a randomly generated seed. + Membuat Dompet baru dengan Seed acak + + + + MainWindow + + + SilentDragonLite + SilentDragonLite + + + + Balance + Balance + + + + Summary + Ringkasan + + + + Shielded + Shielded + + + + Notarized + Notarized + + + + Transparent + Transparan + + + + Total + Total + + + + Your node is still syncing, balances may not be updated. + Node anda masih Menyinkronisasi, balance mungkin tidak di perbarui + + + + Some transactions are not yet confirmed. Balances may change. + Beberapa transaksi belum di konfirmasi. Balance bisa berubah + + + + Address Balances + Alamat balance + + + + + Send + Kirim + + + + Total notarized funds available: + Total Biaya yang tersedia + + + + Send To + Kirim ke + + + + Recipient + Penerima + + + + + + + + Address + Alamat + + + + + Address Book + Buku Alamat + + + + + + + Amount + Jumlah + + + + Max Available + Tersedia Maksimal + + + + + + + Memo + Memo + + + + Add Recipient + Tambah Penerima + + + + Recurring payment + Pembayaran Berulang + + + + Every month, starting 12-May-2012, for 6 payments + Setiap Bulan, Mulai 12-Mei-2012, untuk 6 Pembayaran + + + + Edit Schedule + Sunting Jadwal + + + + + Miner Fee + Bayaran Penambang + + + + 0 + 0 + + + + Cancel + Batalkan + + + + Receive + Terima + + + + Address Type + Jenis Alamat + + + + z-Addr + z-Addr + + + + t-Addr + t-Addr + + + + Next Address + Alamat Berikutnya + + + + Information about Hush + Informasi Tentang Hush + + + + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Blockchain Information</span></p></body></html> + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Blockchain Information</span></p></body></html> + + + + + + + + + + + + + + + <html><head/><body><p align="center">|</p></body></html> + <html><head/><body><p align="center">|</p></body></html> + + + + Next Halving + Halving Berikutnya + + + + Difficulty + Difficulty + + + + Last Notarized Block + Notarized Block Terakhir kali + + + + Total Supply + Total Suplai + + + + Longestchain + Longestchain + + + + BlockHeight + BlockHeight + + + + Supply zAddr + zAddr Suplai + + + + Supply tAddr + tAddr Suplai + + + + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Market Information</span></p></body></html> + + + + + Market Cap + Kapitalisasi Pasar + + + + Volume on Exchanges + Volume di Pasar + + + + <html><head/><body><p align="center">This is a Lightwallet, you cant mine with it!</p></body></html> + <html><head/><body><p align="center">This is a Lightwallet, you cant mine with it!</p></body></html> + + + + View All Addresses + Lihat semua Alamat + + + + Label + Label + + + + Update Label + Perbarui Label + + + + Address balance + Alamat balance + + + + Optional + Pilihan + + + + + Export Private Key + Mengekspor Private Key + + + + Your node is still syncing, balances may not be updated + Node anda masih Menyinkron, Balance mungkin tidak di perbarui + + + + Transactions + Transaksi + + + + + + + + + + + + + + + Loading... + Memuat... + + + + Version hushlightd + Version hushlightd + + + + Vendor + Vendor + + + + &File + &File + + + + &Help + &Help + + + + &Apps + &Apps + + + + &Edit + &Edit + + + + E&xit + E&xit + + + + &About + &About + + + + &Settings + &Settings + + + + Ctrl+P + Ctrl+P + + + + &Send DenioD Feedback + &Send DenioD Feedback + + + + &Hush Discord + &Hush Discord + + + + &Hush Website + &Hush Website + + + + Check github.com for &updates + Lihat github.com for &updates + + + + &Export all private keys + &Export semua Private Keys + + + + Address &book + Alamat &book + + + + Ctrl+B + Ctrl+B + + + + &Export seed phrase + &Export Kata Seed + + + + + Export transactions + Ekspor Transaksi + + + + Pay hush &URI... + Pay hush &URI... + + + + Connect mobile &app + Sambung ke Mobile &app + + + + Ctrl+M + Ctrl+M + + + + &Recurring Payments + &Recurring Payments + + + + Request hush... + Meminta Hush + + + + File a bug... + File-nya Bug + + + + Encrypt Wallet + Enkripsi Dompet + + + + Remove Wallet Encryption + Menghilangkan Enkripsi Dompet + + + + Rescan + Re-scan + + + + Wallet is already encrypted + Domper sudah di Enkripsi + + + + Your wallet is already encrypted with a password. +Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption. + Dompet anda sudah di Enkripsi menggunakan Password. +Mohon Gunakan 'Hapus Enkripsi Dompet' Jika anda ingin menghapus Enkripsi Dompet Anda + + + + Passwords don't match + Passwords don't match + + + + Error was: + + Error: + + + + Wallet Encrypted + Dompet ter-Enkripsi + + + + Your wallet was successfully encrypted! The password will be needed to send funds or export private keys. + Dompet berhasil di Enkripsi! Password akan dibutuhkan untuk mengirim dana atau mengeskpor Private Keys + + + + + Wallet Encryption Failed + Enkripsi Dompet Gagal + + + + Wallet is not encrypted + Dompet tidak di Enkripsi + + + + Your wallet is not encrypted with a password. + Dompet anda tidak di Enkripsi dengan Password + + + + Wallet Password + Password Dompet + + + + Please enter your wallet password + Mohon masukkan Password Dompet Anda + + + + + + Wallet Decryption Failed + Deskripsi Dompet Gagal + + + + Please enter a password to decrypt your wallet! + Mohon masukkan Password anda untuk mengdekripsi Dompet ! + + + + Wallet Encryption Removed + Enrkipsi Dompet di Hapus + + + + Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys. + Dompet anda berhasil di Dekripsi! Anda tidak perlu lagi Password untuk mengirim Dana atau Mengekspor Private Keys + + + + + Copy txid + Copy txid + + + + + Copy block explorer link + Copy Link block explorer + + + + View tx on block explorer + Lihat TX di Block Explorer + + + + Refresh + Segarkan + + + + Restart + Mengulang + + + + Please restart Silentdragonlite to have the theme apply + Mohon Restart Silentdragonlite untuk menampilkan Tema yang di pilih + + + + Currency Change + Ubah Mata Uang + + + + Some feedback about SilentDragonlite or Hush... + Beberapa feedback tentang SilentDragonlite atau Hush + + + + This change can take a few seconds. + Perubahan ini bisa membutuhkan beberapa detik + + + + or SilentDragonLite + atau SilentDragonLite + + + + Send DenioD some private and shielded feedback about + Kirim DenioD beberapa feedback tentang Privasi dan Shielded + + + + Paste HUSH URI + Paste HUSH URI + + + + Error paying HUSH URI + Error membayar HUSH URI + + + + URI should be of the form 'hush:<addr>?amt=x&memo=y + URI harus berada di Form 'hush:<addr>?amt=x&memo=y + + + + Error + Error + + + + Error exporting transactions, file was not saved + Error mengeskpor transaksi, File mungkin tidak disimpan + + + + This is your wallet seed. Please back it up carefully and safely. + Ini adalah Dompet seed anda. Mohon di back up dengan hati hati dan aman + + + + + Save File + Simpan file + + + + + Unable to open file + Tidak bisa membuka File + + + + Error getting private keys + Error mendapatkan Private Keys + + + + Error loading private keys: + Error memuat Private Keys + + + + These are all the private keys for all the addresses in your wallet + Ini adalah semua private keys untuk semua alamat di dompet Anda + + + + Private key for + Private key untuk + + + + + Copy address + Copy Alamat + + + + + + Copied to clipboard + Ter copy di Clipboard + + + + Get private key + Dapatkan Private Key + + + + + View on block explorer + Lihat di block explorer + + + + View Payment Request + Lihat Permintaan bayaran + + + + View Memo + Lihat memo + + + + Reply to + Balas ke + + + + Created new t-Addr + Membuat t-Addr baru + + + + Copy Address + Copy Alamat + + + + Address has been previously used + Alamat sebelumnya sudah digunakan + + + + Address is unused + Alamat belum digunakan + + + + Cannot support multiple addresses + Tidak mendukung Alamat Ganda + + + + Recurring payments doesn't currently support multiple addresses + Pembayaran Berulang doesn't Belum mendukung Alamat Ganda + + + + Recipient + Penerima + + + + Only z-addresses can have memos + Hanya z-Addresess yang mempunya memos + + + + Memos can only be used with z-addresses + Memo hanya bisa di gunakan untuk z-Addresses + + + + The memo field can only be used with a z-address. + + Memo hanya bisa digunakan untuk z-Address + + + + +doesn't look like a z-address + doesn't kelihatannya bukan z-Address + + + + Transaction Error + Transaksi Error + + + + Please wait... + Mohon tunggu... + + + + Computing your transaction + Mengkomputasi transaksi Anda + + + + Done! + Selesai! + + + + Recipient Address + Alamat Penerima + + + + is Invalid + Tidak valid + + + + Amount for address '%1' is invalid! + Jumlah untuk alamat '%1' Tidak valid! + + + + Not enough available funds to send this transaction + +Have: %1 +Need: %2 + +Note: Funds need 5 confirmations before they can be spent + Tidak memiliki dana yang cukup untuk melakukan transaksi ini +Memiliki: %1 +Membutuhkan: %2 + +Note: Dana membutuhkan 5 konfirmasi sebelum mereka bisa digunakan + + + + MemoDialog + + + + Memo + Memo + + + + Include Reply Address + Masukkan Alamat Balasan + + + + MemoEdit + + + Reply to + Balas ke + + + + MigrationDialog + + + Migration Turnstile + Migrasi Turnstile + + + + Migration History + Sejarah Migrasi + + + + Migrated Amount + Jumlah yang di migrasi + + + + Unmigrated Amount + Jumlah yang tidak di migrasi + + + + Sprout -> Sapling migration enabled + Sprout -> Sapling migration diaktifkan + + + + If enabled, hushd will slowly migrate your Sprout shielded funds to your Sapling address. + Jika di aktifkan, Hushd bisa perlahan memigrasikan dana Sprout yang terlindungi Anda ke Sapling Adress. + + + + MobileAppConnector + + + Connect Mobile App + Sambung ke Aplikasi Mobile + + + + Scan this QRCode from your silentdragon companion app to connect your phone + Scan QRCode dari Silentdragon kompani anda untuk menyambung ke Hp + + + + QR Code + Kode QR + + + + Connection String + String Koneksi + + + + Allow connections over the internet via silentdragon wormhole + Memperbolehkan Koneksi ke Internet menggunakan Silentdragon Wormhole + + + + silentdragon Companion App + Silentdragon Aplikasi Kompani + + + + Disconnect + Disconnect + + + + + TextLabel + Label Teks + + + + Last seen: + Terakhir Kali dilihat + + + + Connection type: + Tipe koneksi + + + + NewSeedForm + + + Form + Form + + + + This is your new wallet's seed phrase. PLEASE BACK IT UP SECURELY. + Ini adalah Dompet baru Anda's seed phrase. MOHON DI BACK UP SECARA AMAN + + + + The seed phrase is the only way to restore the wallet. If you forget the seed phrase, THERE IS NO WAY TO RESTORE YOUR WALLET AND THE FUNDS in it + Seed Phrase adalah salah satu jalan untuk mengembalikan dompet. Jika anda melupakan Seec phrase, TIDAK ADA CARA UNTUK MENGEMBALIKAN DOMPET DAN DANA di dalamnya + + + + NewSeedPage + + + Error creating a wallet + Error membuat dompet + + + + Failed to save wallet + Gagal menyimpan Dompet + + + + Couldn't save the wallet + Couldn't save the wallet + + + + PrivKey + + + Private Keys + Private Keys + + + + QObject + + + Pick + Pilih + + + + Address or Label Error + Alamat atau Label Error + + + + Address or Label cannot be empty + Alamat atau Label tidak bisa kosong + + + + Address Format Error + Format Alamat Error + + + + %1 doesn't seem to be a valid hush address. + %1 doesn't kelihatannya bukan Alamat HUSH yang valid + + + + Label Error + Label error + + + + The label '%1' already exists. Please remove the existing label. + Label nya '%1' sudah ada. Mohon hapus label yang sudah digunakan + + + + Import Address Book + Impor Buku Alamat + + + + Unable to open file + Tidak bisa membuka file + + + + Address Book Import Done + Buku Alamat selesai di Impor + + + + Imported %1 new Address book entries + Ter-Impor%1 Buku Alamat Baru + + + + Copy address + Copy Alamat + + + + Copied to clipboard + Ter-copy ke Clipboard + + + + Delete label + Delet Label + + + + Attempting to initialize library with + Mencoba untuk menginilisiasi Library dengan + + + + Using existing wallet. + Menggunakan Dompet yang sudah ada + + + + Create/restore wallet. + Buat/mengembalikan Dompet + + + + + Connection Error + Koneksi error + + + + + + Transaction Error + Transaksi Error + + + + There was an error sending the transaction. The error was: + Ada error dalam mengirim transaksi. Error nya: + + + + + No Connection + Tidak ada Koneksi + + + + There was an error connecting to hushd. The error was + Ada error dalam mengkoneksikan ke Hushd. Error nya: + + + + + + Tx + Tx + + + + + + failed + Gagal + + + + + The transaction with id + Transaksi dengan ID + + + + + failed. The error was + Gagal. Error nya: + + + + Update Available + Pembaruan tersedia + + + + A new release v%1 is available! You have v%2. + +Would you like to visit the releases page? + Rilis Pembaruan v%1 telah tersedia! Versi Anda Sekarang v%2. + +Maukah anda mengunjungi laman pembaruan ini + + + + No updates available + Tidak ada Pembaruan tersedia + + + + You already have the latest release v%1 + Anda sudah memiliki Versi terbaru dari v%1 + + + + Please wait for SilentDragonLite to exit + Mohon tunggu untuk SilentDragonLite untuk keluar + + + + Waiting for hushd to exit + Menunggu untuk hushd untuk keluar + + + + No hush price was available to convert from USD + Tidak ada harga hush yang tersedia untuk di konversikan ke USD + + + + View on block explorer + Lihat di block explorer + + + + View Error + Lihat error + + + + Reported Error + Error yang di laporkan + + + + + Are you sure you want to delete the recurring payment? + Apakah Anda yakin untuk menghapus Pembayaran berulang? + + + + All future payments will be cancelled. + Semua Pembayaran nantinya akan di batalkan + + + + Tx submitted (right click to copy) txid: + Tx di berikan (pencet kanan untuk copy) txid: + + + + Type + Tipe + + + + Address + Alamat + + + + Date/Time + Tanggal/Waktu + + + + Confirmations + Konfirmasi + + + + Amount + Jumlah + + + + Connected directly + Terkoneksi langsung + + + + Connected over the internet via silentdragon wormhole service + Terkoneksi langsung ke Internet via Silentdragon wormhole service + + + + + Node is still syncing. + Node masih menyinkron + + + + + No sapling or transparent addresses with enough balance to spend. + Tidak ada sapling atau transparan address dengan balance yang cukup untuk digunakan + + + + RecurringDialog + + + Dialog + Dialog + + + + View + Lihat + + + + Delete + Delet + + + + RecurringListViewModel + + + Amount + Jumlah + + + + Schedule + Jadwal + + + + Payments Left + Pembayaran tersisa + + + + Next Payment + Pembayaran Selanjutnya + + + + To + Kepada + + + + Every + Setiap + + + + None + None + + + + RecurringPayments + + + Payments + Pembayaran + + + + RecurringPaymentsListViewModel + + + Date + Tanggal + + + + Status + Status + + + + Txid + Txid + + + + Not due yet + Belum Jatuh Tempo + + + + Pending + Pending + + + + Skipped + Dilewati + + + + Paid + Ter-bayar + + + + Error + Error + + + + + Unknown + Tidak diketahui + + + + RecurringPending + + + Dialog + Dialog + + + + No payments will be processed. You can manually pay them from the Recurring Payments Dialog box + Tidak ada transaksi yang akan di proses. Anda bisa secara manual membayar mereka dari Pembayaran Berulang Kotak Dialog + + + + Schedule + Jadwal + + + + How should silentdragon proceed? + Bagaimana Silentdragon harus diproses? + + + + Pay All in 1 Tx + Bayar semua dengan 1 Tx + + + + Only the latest pending payment will be processed. All previous pending payments will be skipped + Hanya Pembayaran pending terakhir kali yang akan di proses. Semua Pembayaran pending yang dulu akan di lewati + + + + Pay Latest Only + Bayar terakhir kali saja + + + + Pay None + Tidak membayar + + + + All pending payments collected, added up and paid in a single transaction + Semua pembayaran pending di kumpulkan, Di tambahkan dan di Bayar dalam satu transaksi + + + + Description + Dekripsi + + + + To + Kepada + + + + The following recurring payment has multiple payments pending + Pembayaran Berulang yang ini mempunyai pembayaran ganda yang pending + + + + RequestDialog + + + Payment Request + Permintaan bayaran + + + + AddressBook + Buku Alamat + + + + Request From + Meminta dari + + + + My Address + Alamat saya + + + + Amount in + Dalam Jumlah + + + + z address + Alamat z + + + + Amount + Jumlah + + + + The recipient will see this address in the "to" field when they pay your request. + Penerima akan melihat alamat di "to" laha saat mereka membayar permintaan anda + + + + Amount USD + Jumlah USD + + + + Memo + Memo + + + + TextLabel + Label Teks + + + + Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. + Permintaan Pembayaran dari Alamat Sapling. Anda'akan mengirim sebuah 0.0001 hush untuk transaksi kepada alamat menggunakan hush payment URI. Memo nya akan di masukkan ke dalam transaksi apabila alamat tersebut membayar anda + + + + Error paying hush URI + Error membayar hush URI + + + + URI should be of the form 'hush:<addr>?amt=x&memo=y + URI seharusnya berdasarkan form 'hush:<addr>?amt=x&memo=y + + + + Pay To + Bayar Ke + + + + Pay + Bayar + + + + You are paying a payment request. Your address will not be visible to the person requesting this payment. + Anda membayar sebua permintaan pembayaran. Alamat anda tidak akan terlihat kepada orang yang melakukan permintaan ini + + + + Can only request from Sapling addresses + Hanya bisa di minta dari Alamat Sapling + + + + RestoreSeedForm + + + Form + Form + + + + Please enter your 24-word seed below + Mohon masukkan 24-word seed anda berikut + + + + Wallet Seed + Dompet seed + + + + Wallet Birthday + Ulang tahun Dompet + + + + 0 + 0 + + + + Wallet birthday is the block height at which the wallet had the first transaction. If you don't know this, you can leave it as "0" (It'll take longer to rescan) + Ulang Tahun Dompet adalah block height dimana dompet itu melakukan transaksi pertamanya. Jika anda don't tidak tahu ini, Anda bisa tinggalkan ini seperti "0" (It'ini akan memakan beberpa waktu untuk rescan) + + + + RestoreSeedPage + + + + Failed to restore wallet + Gagal untuk mengembalikan Dompet + + + + SilentDragonLite needs 24 words to restore wallet + SilentDragonLite membutuhkan 24 kata untuk mengembalikan dompet + + + + Failed to parse wallet birthday + Gagal menguraikan Ulang tahun dompet + + + + Couldn't understand wallet birthday. This should be a block height from where to rescan the wallet. You can leave it as '0' if you don't know what it should be. + Tidak'mengerti Ulang tahun Dompet. Ini seharusnya merupakan Block Height dimana dompet anda untuk rescan. Anda bisa tinggalkan sebagai '0'Jika anda'tidak tahu apa yang seharusnya terjadi. + + + + Couldn't restore the wallet + Tidak'bisa mengembalikan dompett + + + + Failed to save wallet + Gagal menyimpan dompet + + + + Couldn't save the wallet + Tidak'bisa menyimpan dompet + + + + Settings + + + Settings + Konfigurasi + + + + Connection + Koneksi + + + + Lightwallet Server + Server Lightwallet + + + + Options + Options + + + + default + default + + + + blue + biru + + + + light + terang + + + + dark + Gelap + + + + Fetch hush prices + Menangkap harga hush + + + + Check github for updates at startup + Periksa github untuk pembaruan dan permulaan + + + + Connect to github on startup to check for updates + Sambung ke github untuk permulaan untuk memeriksa pembaruan + + + + Theme + Tema + + + + Connect to the internet to fetch hush prices + Sambung ke internet untuk mengambil harga hush + + + + Currency + Mata uang + + + + AUD + AUD + + + + BTC + BTC + + + + CAD + CAD + + + + CHF + CHF + + + + CNY + CNY + + + + EUR + EUR + + + + GBP + GBP + + + + INR + INR + + + + RUB + RUB + + + + USD + USD + + + + ViewAddressesDialog + + + All Addresses + Semua Alamat + + + + Export All Keys + Mengekspor semua Keys + + + + ViewAllAddressesModel + + + Address + Alamat + + + + Balance (%1) + Balance (%1) + + + + about + + + About + Tentang + + + + addressBook + + + Address Book + Buku Alamat + + + + Add New Address + Tambah Alamat Baru + + + + Address (z-Addr or t-Addr) + Alamat (z-Addr or t-Addr) + + + + Label + Label + + + + Add to Address Book + Tambahkan ke Buku Alamat + + + + Import Address Book + Impor Buku Alamat + + + + confirm + + + Confirm Transaction + Konfirmasi Transaksi + + + + To + Kepada + + + + Recurring Payment + Pembayaran berulang + + + + TextLabel + Label Teks + + + + You are sending a transaction while your node is still syncing. This may not work. + Anda sedang mengirim transaksi saat node anda masih menyinkronisasi. Ini tidak akan bekerja + + + + createhushConf + + + Configure hush.conf + configure hush.conf + + + + Your hush node will be configured for you automatically + Node Hush Andan akan di konfigurasikan untuk Anda secara otomatis + + + + Show Advanced Configuration + Tampilkan Konfigurasi tambahan + + + + Allow connections to the internet to check for updates, get hush prices etc... + Perbolehkan koneksi ke internet untuk memerika pembaruan, mendapatkan harga hush dll + + + + Use custom datadir + Gunakan custom datadir + + + + Choose directory + Pilih direktori + + + + Please note that you'll need to already have a Tor service configured on port 9050 + Mohon ketahui bahwa Anda'akan membutuhkan Tor service di konfigurasikan di port 9050 + + + + Connect to the internet for updates and price feeds + Sambungkan ke Internet untuk pembaruan dan berita harga + + + + Please choose a directory to store your wallet.dat and blockchain + Mohon pilih direktori untuk menyimpan wallet.dat anda dan blockchain + + + + Connect over Tor + Sambung menggunakan Tor + + + + encryptionDialog + + + Encrypt Your Wallet + Enkripsi Dompet anda + + + + Encryption Password: + Enkripsi Password + + + + Confirm Password: + Konfirmasi Passowrd + + + + Passwords don't match + Passwords tidak'tepat + + + + WARNING: If you forget your password, the only way to recover the wallet is from the seed phrase. + PERINGATAN: Jika anda lupa password anda, salah satu cara untuk mengembalikan dompet adalah dari Seed phrase + + + + newRecurringDialog + + + Edit Schedule + Sunting Jadwal + + + + Payment Description + Deskripsi Pembayaran + + + + Schedule + Jadwal + + + + Next Payment + Pembayaran selanjutnya + + + + Amount + Jumlah + + + + Memo + Memo + + + + To + Kepada + + + + From + Dari + + + + Number of payments + Angka Pembayaran + + + \ No newline at end of file diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index cc9092d..6e9d880 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -129,6 +129,7 @@ TRANSLATIONS = res/silentdragonlite_es.ts \ res/silentdragonlite_hr.ts \ res/silentdragonlite_sr.ts \ res/silentdragonlite_fa.ts \ + res/silentdragonlite_id.ts \ res/silentdragonlite_tr.ts include(singleapplication/singleapplication.pri) From fe8a52b9c7ed2c8bc55050fe52fda77a81825d2d Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 11:30:27 +0200 Subject: [PATCH 02/45] add crypto_generichash for pw --- src/mainwindow.cpp | 68 ++++++++++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0e231f4..9af5c43 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -22,6 +22,8 @@ #include "chatmodel.h" #include "requestdialog.h" #include "websockets.h" +#include "sodium.h" +#include "sodium/crypto_generichash_blake2b.h" #include using json = nlohmann::json; @@ -251,17 +253,23 @@ void MainWindow::closeEvent(QCloseEvent* event) { QMainWindow::closeEvent(event); } +void dump_hex_buff(unsigned char buf[], unsigned int len) +{ + int i; + for (i=0; igetModel()->getEncryptionStatus(); + /* auto encStatus = rpc->getModel()->getEncryptionStatus(); if (encStatus.first) { QMessageBox::information(this, tr("Wallet is already encrypted"), tr("Your wallet is already encrypted with a password.\nPlease use 'Remove Wallet Encryption' if you want to remove the wallet encryption."), QMessageBox::Ok ); return; - } + }*/ QDialog d(this); Ui_encryptionDialog ed; @@ -278,12 +286,13 @@ void MainWindow::encryptWallet() { ed.lblPasswordMatch->setText(tr("Passwords don't match")); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } + }; QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); - ed.txtPassword->setText(""); + /* ed.txtPassword->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); auto fnShowError = [=](QString title, const json& res) { @@ -291,32 +300,43 @@ void MainWindow::encryptWallet() { tr("Error was:\n") + QString::fromStdString(res.dump()), QMessageBox::Ok ); - }; + };*/ if (d.exec() == QDialog::Accepted) { - rpc->encryptWallet(ed.txtPassword->text(), [=](json res) { - if (isJsonResultSuccess(res)) { - // Save the wallet - rpc->saveWallet([=] (json reply) { - if (isJsonResultSuccess(reply)) { - QMessageBox::information(this, tr("Wallet Encrypted"), - tr("Your wallet was successfully encrypted! The password will be needed to send funds or export private keys."), - QMessageBox::Ok - ); - } else { - fnShowError(tr("Wallet Encryption Failed"), reply); - } - }); + QString str = ed.txtPassword->text(); // data comes from a db in my case + int length = str.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, str.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + + + qDebug()<<"Generating cryptographic key from password: " <refresh(true); - } else { - fnShowError(tr("Wallet Encryption Failed"), res); - } - }); - } } +} +//The following snippet demonstrates how to calculate the hash of a very long message using the init/update/final interface: + + + void MainWindow::removeWalletEncryption() { // Check if wallet is already encrypted auto encStatus = rpc->getModel()->getEncryptionStatus(); From 52f7a64417d74264a2d7f9cae9cd49d12041f423 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 11:38:58 +0200 Subject: [PATCH 03/45] add qdebugs --- src/mainwindow.cpp | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9af5c43..128d4c8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -261,15 +261,6 @@ void dump_hex_buff(unsigned char buf[], unsigned int len) } void MainWindow::encryptWallet() { - // Check if wallet is already encrypted - /* auto encStatus = rpc->getModel()->getEncryptionStatus(); - if (encStatus.first) { - QMessageBox::information(this, tr("Wallet is already encrypted"), - tr("Your wallet is already encrypted with a password.\nPlease use 'Remove Wallet Encryption' if you want to remove the wallet encryption."), - QMessageBox::Ok - ); - return; - }*/ QDialog d(this); Ui_encryptionDialog ed; @@ -292,18 +283,9 @@ void MainWindow::encryptWallet() { QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); - /* ed.txtPassword->setText(""); - ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); - - auto fnShowError = [=](QString title, const json& res) { - QMessageBox::critical(this, title, - tr("Error was:\n") + QString::fromStdString(res.dump()), - QMessageBox::Ok - ); - };*/ - if (d.exec() == QDialog::Accepted) { - QString str = ed.txtPassword->text(); // data comes from a db in my case + + QString str = ed.txtPassword->text(); // data comes from user inputs int length = str.length(); char *sequence = NULL; @@ -313,8 +295,6 @@ void MainWindow::encryptWallet() { #define MESSAGE ((const unsigned char *) sequence) #define MESSAGE_LEN length - - qDebug()<<"Generating cryptographic key from password: " < Date: Sat, 23 May 2020 12:21:49 +0200 Subject: [PATCH 04/45] debug password --- src/mainwindow.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 128d4c8..42b511c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -295,10 +295,10 @@ void MainWindow::encryptWallet() { #define MESSAGE ((const unsigned char *) sequence) #define MESSAGE_LEN length - qDebug()<<"Generating cryptographic key from password: " < Date: Sat, 23 May 2020 12:44:13 +0200 Subject: [PATCH 05/45] encrypt addresslabels --- src/mainwindow.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 42b511c..9138c7c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -307,6 +307,11 @@ void MainWindow::encryptWallet() { qDebug()<<"secret key generated:\n"; dump_hex_buff(hash,crypto_secretstream_xchacha20poly1305_KEYBYTES); + + QString source_file = "/home/denio/.local/share/Hush/SilentDragonLite/addresslabel.dat"; + QString target_file = "/home/denio/.local/share/Hush/SilentDragonLite/addresslabel-encrypt.dat"; + + FileEncryption::encrypt(target_file, source_file, hash); d.exec(); From a72ba09ee3680741347fb9cd81efc7cdbbf9695a Mon Sep 17 00:00:00 2001 From: Strider <127.0.0.1@404.found> Date: Sat, 23 May 2020 15:23:07 +0200 Subject: [PATCH 06/45] update// added some stuff --- .gdb_history | 6 ++++ peda-session-SilentDragonLite.txt | 2 +- silentdragon-lite.pro | 3 +- src/Crypto/FileEncryption.cpp | 48 +++++++++++++++++++------------ src/Crypto/FileEncryption.h | 6 ++++ src/Crypto/passwd.cpp | 39 +++++++++++++++++++++++++ src/Crypto/passwd.h | 14 +++++++++ src/FileSystem/FileSystem.cpp | 8 ++++++ 8 files changed, 106 insertions(+), 20 deletions(-) create mode 100644 src/Crypto/passwd.cpp create mode 100644 src/Crypto/passwd.h diff --git a/.gdb_history b/.gdb_history index 4e303b8..06f6849 100644 --- a/.gdb_history +++ b/.gdb_history @@ -48,3 +48,9 @@ b FileSystem::writeContacts r n q +r +b FileEncryption::encrypt +r +s +n +q diff --git a/peda-session-SilentDragonLite.txt b/peda-session-SilentDragonLite.txt index f57fa7c..6f620bf 100644 --- a/peda-session-SilentDragonLite.txt +++ b/peda-session-SilentDragonLite.txt @@ -1,2 +1,2 @@ -break FileSystem::writeContacts +break FileEncryption::encrypt diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index 86f38b0..7d3a281 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -83,7 +83,8 @@ SOURCES += \ src/Chat/Helper/ChatIDGenerator.cpp \ src/Chat/Chat.cpp \ src/FileSystem/FileSystem.cpp \ - src/Crypto/FileEncryption.cpp + src/Crypto/FileEncryption.cpp \ + src/Crypto/passwd.cpp HEADERS += \ src/firsttimewizard.h \ diff --git a/src/Crypto/FileEncryption.cpp b/src/Crypto/FileEncryption.cpp index 0100585..fae9bbc 100644 --- a/src/Crypto/FileEncryption.cpp +++ b/src/Crypto/FileEncryption.cpp @@ -7,42 +7,48 @@ void FileEncryption::showConfig() int FileEncryption::encrypt(QString target_file, QString source_file, const unsigned char key[crypto_secretstream_xchacha20poly1305_KEYBYTES]) { - unsigned char buf_in[FILEENCRYPTION_CHUNK_SIZE]; - unsigned char buf_out[FILEENCRYPTION_CHUNK_SIZE + crypto_secretstream_xchacha20poly1305_ABYTES]; + unsigned char plain_data[FILEENCRYPTION_CHUNK_SIZE]; + unsigned char cipher_data[FILEENCRYPTION_CHUNK_SIZE + crypto_secretstream_xchacha20poly1305_ABYTES]; unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES]; - crypto_secretstream_xchacha20poly1305_state st; - FILE *fp_t, *fp_s; - unsigned long long out_len; + crypto_secretstream_xchacha20poly1305_state state; + FILE *target, *source; + unsigned long long cipher_len; size_t rlen; int eof; unsigned char tag; - fp_s = fopen(source_file.toStdString().c_str(), "rb"); - fp_t = fopen(target_file.toStdString().c_str(), "wb"); - crypto_secretstream_xchacha20poly1305_init_push(&st, header, key); - fwrite(header, 1, sizeof header, fp_t); + if(!FileEncryption::exists(source_file.toStdString())) + { + qDebug() << "File not exits" << source_file; + return -1; + } + + source = fopen(source_file.toStdString().c_str(), "rb"); + target = fopen(target_file.toStdString().c_str(), "wb"); + crypto_secretstream_xchacha20poly1305_init_push(&state, header, key); + fwrite(header, 1, sizeof header, target); do { - rlen = fread(buf_in, 1, sizeof buf_in, fp_s); - eof = feof(fp_s); + rlen = fread(plain_data, 1, sizeof plain_data, source); + eof = feof(source); tag = eof ? crypto_secretstream_xchacha20poly1305_TAG_FINAL : 0; crypto_secretstream_xchacha20poly1305_push( - &st, - buf_out, - &out_len, - buf_in, + &state, + cipher_data, + &cipher_len, + plain_data, rlen, NULL, 0, tag ); - fwrite(buf_out, 1, (size_t) out_len, fp_t); + fwrite(cipher_data, 1, (size_t) cipher_len, target); } while (! eof); - fclose(fp_t); - fclose(fp_s); + fclose(target); + fclose(source); return 0; } @@ -59,6 +65,12 @@ int FileEncryption::decrypt(QString target_file, QString source_file, const unsi int ret = -1; unsigned char tag; + if(!FileEncryption::exists(source_file.toStdString())) + { + qDebug() << "File not exits" << source_file; + return -1; + } + fp_s = fopen(source_file.toStdString().c_str(), "rb"); fp_t = fopen(target_file.toStdString().c_str(), "wb"); fread(header, 1, sizeof header, fp_s); diff --git a/src/Crypto/FileEncryption.h b/src/Crypto/FileEncryption.h index 6db8977..c7a09d5 100644 --- a/src/Crypto/FileEncryption.h +++ b/src/Crypto/FileEncryption.h @@ -3,11 +3,17 @@ #include #include #include +#include #define FILEENCRYPTION_CHUNK_SIZE 4096 class FileEncryption { + private: + inline static bool exists (const std::string& name) { + std::ifstream f(name.c_str()); + return f.good(); + } public: static void showConfig(); static int encrypt(QString target_file, QString source_file, const unsigned char key[crypto_secretstream_xchacha20poly1305_KEYBYTES]); diff --git a/src/Crypto/passwd.cpp b/src/Crypto/passwd.cpp new file mode 100644 index 0000000..83d5b27 --- /dev/null +++ b/src/Crypto/passwd.cpp @@ -0,0 +1,39 @@ +#include "passwd.h" + +void PASSWD::show_hex_buff(unsigned char buf[]) +{ + int i; + for (uint8_t i=0; i < crypto_secretstream_xchacha20poly1305_KEYBYTES; i++) + printf("%02X ", buf[i]); + printf("\n"); +} + +const unsigned char* PASSWD::hash(QString password) +{ + /*std::string data = password.toStdString(); + + unsigned char hash[crypto_generichash_BYTES]; + + crypto_generichash(hash, sizeof hash, + (const unsigned char*)data.c_str(), data.size(), + NULL, 0); + + //qDebug() << PASSWD::convertToHexString(hash); + return (const unsigned char*)hash;*/ + + int length = password.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, password.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + qDebug()<<"Generating cryptographic key from password: " < +#include +#include + +class PASSWD +{ + public: + static void show_hex_buff(unsigned char buf[]); + static const unsigned char* hash(QString); +}; + +#endif \ No newline at end of file diff --git a/src/FileSystem/FileSystem.cpp b/src/FileSystem/FileSystem.cpp index d560d98..74a0440 100644 --- a/src/FileSystem/FileSystem.cpp +++ b/src/FileSystem/FileSystem.cpp @@ -2,6 +2,7 @@ #include #include +#include "../Crypto/passwd.h" FileSystem::FileSystem() { @@ -85,6 +86,13 @@ void FileSystem::writeContactsOldFormat(QString file, QList contact QList FileSystem::readContactsOldFormat(QString file) { + const unsigned char* data=PASSWD::hash(QString("Hello world")); + PASSWD::show_hex_buff((unsigned char*) data); + QString source_file = "/tmp/addresslabels.dat"; + QString target_file = "/tmp/addresslabels.dat.enc"; + FileEncryption::encrypt(target_file, source_file, data); + FileEncryption::decrypt("/tmp/addresslabels.dat.dec", target_file, data); + QList contacts; QFile _file(file); if (_file.exists()) From 6c3065684798252946de771b340e9447ab55c293 Mon Sep 17 00:00:00 2001 From: Strider <127.0.0.1@404.found> Date: Sat, 23 May 2020 19:36:04 +0200 Subject: [PATCH 07/45] update// addedh better stuff --- src/Crypto/passwd.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Crypto/passwd.cpp b/src/Crypto/passwd.cpp index 83d5b27..160e631 100644 --- a/src/Crypto/passwd.cpp +++ b/src/Crypto/passwd.cpp @@ -31,8 +31,21 @@ const unsigned char* PASSWD::hash(QString password) #define MESSAGE_LEN length qDebug()<<"Generating cryptographic key from password: " < Date: Sat, 23 May 2020 19:50:36 +0200 Subject: [PATCH 08/45] update// added really goody stuff :D --- src/FileSystem/FileSystem.cpp | 7 ------ src/mainwindow.cpp | 46 ++++++++++++----------------------- 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/src/FileSystem/FileSystem.cpp b/src/FileSystem/FileSystem.cpp index 74a0440..2a60de1 100644 --- a/src/FileSystem/FileSystem.cpp +++ b/src/FileSystem/FileSystem.cpp @@ -86,13 +86,6 @@ void FileSystem::writeContactsOldFormat(QString file, QList contact QList FileSystem::readContactsOldFormat(QString file) { - const unsigned char* data=PASSWD::hash(QString("Hello world")); - PASSWD::show_hex_buff((unsigned char*) data); - QString source_file = "/tmp/addresslabels.dat"; - QString target_file = "/tmp/addresslabels.dat.enc"; - FileEncryption::encrypt(target_file, source_file, data); - FileEncryption::decrypt("/tmp/addresslabels.dat.dec", target_file, data); - QList contacts; QFile _file(file); if (_file.exists()) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9138c7c..a2566ad 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -25,6 +25,9 @@ #include "sodium.h" #include "sodium/crypto_generichash_blake2b.h" #include +#include "FileSystem/FileSystem.h" +#include "Crypto/passwd.h" +#include "Crypto/FileEncryption.h" using json = nlohmann::json; @@ -283,39 +286,20 @@ void MainWindow::encryptWallet() { QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); - if (d.exec() == QDialog::Accepted) { - - QString str = ed.txtPassword->text(); // data comes from user inputs - int length = str.length(); - - char *sequence = NULL; - sequence = new char[length+1]; - strncpy(sequence, str.toLocal8Bit(), length +1); - - #define MESSAGE ((const unsigned char *) sequence) - #define MESSAGE_LEN length - - qDebug()<<"Generating cryptographic key from password: " <text()); + PASSWD::show_hex_buff((unsigned char*) key); + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + QString source_file = dir.filePath("addresslabels.dat"); + QString target_enc_file = dir.filePath("addresslabels.dat.enc"); + QString target_dec_file = dir.filePath("addresslabels.dat.dec"); + FileEncryption::encrypt(target_enc_file, source_file, key); + FileEncryption::decrypt(target_dec_file, target_enc_file, key); -d.exec(); + d.exec(); -} + } } From 735a673da3adff867a46896044cc6e6dd0b25676 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 20:43:42 +0200 Subject: [PATCH 09/45] gui element to decrypt --- src/mainwindow.cpp | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a2566ad..3fae23e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -293,18 +293,51 @@ void MainWindow::encryptWallet() { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); QString source_file = dir.filePath("addresslabels.dat"); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); - QString target_dec_file = dir.filePath("addresslabels.dat.dec"); + //QString target_dec_file = dir.filePath("addresslabels.dat.dec"); FileEncryption::encrypt(target_enc_file, source_file, key); - FileEncryption::decrypt(target_dec_file, target_enc_file, key); + // FileEncryption::decrypt(target_dec_file, target_enc_file, key); - d.exec(); + d.exec(); } } void MainWindow::removeWalletEncryption() { - // Check if wallet is already encrypted + QDialog d(this); + Ui_encryptionDialog ed; + ed.setupUi(&d); + + // Handle edits on the password box + auto fnPasswordEdited = [=](const QString&) { + // Enable the OK button if the passwords match. + if (!ed.txtPassword->text().isEmpty() && + ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.lblPasswordMatch->setText(""); + ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + } else { + ed.lblPasswordMatch->setText(tr("Passwords don't match")); + ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + } + + }; + + QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); + QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); + + if (d.exec() == QDialog::Accepted) + { + const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); + PASSWD::show_hex_buff((unsigned char*) key); + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + QString target_enc_file = dir.filePath("addresslabels.dat.enc"); + QString target_dec_file = dir.filePath("addresslabels.dat"); + FileEncryption::decrypt(target_dec_file, target_enc_file, key); + + d.exec(); + + } + /*// Check if wallet is already encrypted auto encStatus = rpc->getModel()->getEncryptionStatus(); if (!encStatus.first) { QMessageBox::information(this, tr("Wallet is not encrypted"), @@ -317,6 +350,8 @@ void MainWindow::removeWalletEncryption() { bool ok; QString password = QInputDialog::getText(this, tr("Wallet Password"), tr("Please enter your wallet password"), QLineEdit::Password, "", &ok); + + qDebug() << password; // If cancel was pressed, just return if (!ok) { @@ -356,7 +391,7 @@ void MainWindow::removeWalletEncryption() { QMessageBox::Ok ); } - }); + }); */ } void MainWindow::setupStatusBar() { From 5bb1634311768889640a34c9a5e3d8262dcd1b74 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 21:27:46 +0200 Subject: [PATCH 10/45] check for fileencryption before sdl start --- src/mainwindow.cpp | 14 +++++++++++++- src/mainwindow.h | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3fae23e..08b0bf5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -56,7 +56,12 @@ MainWindow::MainWindow(QWidget *parent) : ui->memoTxtChat->setPlaceholderText("Send Message"); ui->memoTxtChat->setTextColor(Qt::white); - + + // Check for encryption + if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("addresslabels.dat.enc"))) + { + this->removeWalletEncryption(); + } // Status Bar setupStatusBar(); @@ -185,6 +190,12 @@ MainWindow::MainWindow(QWidget *parent) : createWebsocket(wormholecode); } } + +bool MainWindow::fileExists(QString path) +{ + QFileInfo check_file(path); + return (check_file.exists() && check_file.isFile()); +} void MainWindow::createWebsocket(QString wormholecode) { qDebug() << "Listening for app connections on port 8777"; @@ -332,6 +343,7 @@ void MainWindow::removeWalletEncryption() { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); QString target_dec_file = dir.filePath("addresslabels.dat"); + FileEncryption::decrypt(target_dec_file, target_enc_file, key); d.exec(); diff --git a/src/mainwindow.h b/src/mainwindow.h index 85f4feb..9a6f02f 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -100,6 +100,7 @@ private slots: private: + bool fileExists(QString path); void closeEvent(QCloseEvent* event); From e4dce6b06bc0b892422505777834c16b2fd5323e Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 22:50:50 +0200 Subject: [PATCH 11/45] encrypt wallet.dat also and check for it - work in progress --- src/mainwindow.cpp | 117 ++++++++++++++++++++++----------------------- src/mainwindow.h | 1 + 2 files changed, 57 insertions(+), 61 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 08b0bf5..88b33dd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -60,7 +60,7 @@ MainWindow::MainWindow(QWidget *parent) : // Check for encryption if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("addresslabels.dat.enc"))) { - this->removeWalletEncryption(); + this->removeWalletEncryptionStartUp(); } // Status Bar @@ -302,16 +302,16 @@ void MainWindow::encryptWallet() { const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); PASSWD::show_hex_buff((unsigned char*) key); auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString source_file = dir.filePath("addresslabels.dat"); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); - //QString target_dec_file = dir.filePath("addresslabels.dat.dec"); + QString sourceWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + QString target_encWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat.enc"); + FileEncryption::encrypt(target_enc_file, source_file, key); - // FileEncryption::decrypt(target_dec_file, target_enc_file, key); - - d.exec(); - + FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); } - + d.exec(); } void MainWindow::removeWalletEncryption() { @@ -341,69 +341,64 @@ void MainWindow::removeWalletEncryption() { const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); PASSWD::show_hex_buff((unsigned char*) key); auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); - QString target_enc_file = dir.filePath("addresslabels.dat.enc"); - QString target_dec_file = dir.filePath("addresslabels.dat"); + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); + QString target_decaddr_file = dir.filePath("addresslabels.dat"); + QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat.enc"); + QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); - FileEncryption::decrypt(target_dec_file, target_enc_file, key); + + FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); + FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - d.exec(); + } - /*// Check if wallet is already encrypted - auto encStatus = rpc->getModel()->getEncryptionStatus(); - if (!encStatus.first) { - QMessageBox::information(this, tr("Wallet is not encrypted"), - tr("Your wallet is not encrypted with a password."), - QMessageBox::Ok - ); - return; - } + d.exec(); +} - bool ok; - QString password = QInputDialog::getText(this, tr("Wallet Password"), - tr("Please enter your wallet password"), QLineEdit::Password, "", &ok); - - qDebug() << password; +void MainWindow::removeWalletEncryptionStartUp() { + QDialog d(this); + Ui_encryptionDialog ed; + ed.setupUi(&d); - // If cancel was pressed, just return - if (!ok) { - return; - } + // Handle edits on the password box + auto fnPasswordEdited = [=](const QString&) { + // Enable the OK button if the passwords match. + if (!ed.txtPassword->text().isEmpty() && + ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.lblPasswordMatch->setText(""); + ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + } else { + ed.lblPasswordMatch->setText(tr("Passwords don't match")); + ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + } - if (password.isEmpty()) { - QMessageBox::critical(this, tr("Wallet Decryption Failed"), - tr("Please enter a password to decrypt your wallet!"), - QMessageBox::Ok - ); - return; - } + }; - rpc->removeWalletEncryption(password, [=] (json res) { - if (isJsonResultSuccess(res)) { - // Save the wallet - rpc->saveWallet([=] (json reply) { - if(isJsonResultSuccess(reply)) { - QMessageBox::information(this, tr("Wallet Encryption Removed"), - tr("Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys."), - QMessageBox::Ok - ); - } else { - QMessageBox::critical(this, tr("Wallet Decryption Failed"), - QString::fromStdString(reply["error"].get()), - QMessageBox::Ok - ); - } - }); + QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); + QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); - // And then refresh the UI - rpc->refresh(true); - } else { - QMessageBox::critical(this, tr("Wallet Decryption Failed"), - QString::fromStdString(res["error"].get()), - QMessageBox::Ok - ); - } - }); */ + if (d.exec() == QDialog::Accepted) + { + const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); + PASSWD::show_hex_buff((unsigned char*) key); + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); + QString target_decaddr_file = dir.filePath("addresslabels.dat"); + QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat.enc"); + QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + + + FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); + QThread::sleep(1); + FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); + + + + } + } void MainWindow::setupStatusBar() { diff --git a/src/mainwindow.h b/src/mainwindow.h index 9a6f02f..7384fc2 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -130,6 +130,7 @@ private: void encryptWallet(); void removeWalletEncryption(); + void removeWalletEncryptionStartUp(); void cancelButton(); void sendButton(); From b03b926052cae5f9976e85b061b6dfce19b4b70f Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 23:13:58 +0200 Subject: [PATCH 12/45] new window for startup encryption process --- src/startupencryption.ui | 72 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/startupencryption.ui diff --git a/src/startupencryption.ui b/src/startupencryption.ui new file mode 100644 index 0000000..fb923db --- /dev/null +++ b/src/startupencryption.ui @@ -0,0 +1,72 @@ + + + + + Dialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + 30 + 240 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + + From 4ea9a5e493c3c598da152bf2a84cbd793675daf8 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sat, 23 May 2020 23:14:17 +0200 Subject: [PATCH 13/45] new window for startup encryption process --- silentdragon-lite.pro | 1 + src/encryption.ui | 114 ++++++++++++++-------------- src/mainwindow.cpp | 3 +- src/startupencryption.ui | 158 +++++++++++++++++++++++++++++++++------ 4 files changed, 195 insertions(+), 81 deletions(-) diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index 7d3a281..4fe9ad0 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -133,6 +133,7 @@ FORMS += \ src/confirm.ui \ src/privkey.ui \ src/memodialog.ui \ + src/startupencryption.ui \ src/viewalladdresses.ui \ src/connection.ui \ src/addressbook.ui \ diff --git a/src/encryption.ui b/src/encryption.ui index b4ab606..27c25a0 100644 --- a/src/encryption.ui +++ b/src/encryption.ui @@ -13,32 +13,50 @@ Encrypt Your Wallet - - - + + + - Qt::Horizontal + Qt::Vertical - + + + 20 + 40 + + + - - + + - Encryption Password: + <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you forget your password, the only way to recover the wallet is from the seed phrase. If you dont have Backup your seed phrase, please do it now!</p></body></html> + + + Qt::AlignCenter + + + true - - - - Confirm Password: + + + + Qt::Vertical - + + + 20 + 40 + + + - - - - QLineEdit::Password + + + + Qt::Horizontal @@ -55,6 +73,13 @@ + + + + Encryption Password: + + + @@ -62,27 +87,28 @@ - - - - Qt::Horizontal + + + + Confirm Password: - - - - WARNING: If you forget your password, the only way to recover the wallet is from the seed phrase. - - - Qt::AlignCenter + + + + QLineEdit::Password - - true + + + + + + Qt::Horizontal - + Qt::Horizontal @@ -95,32 +121,6 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 88b33dd..8985b3f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -21,6 +21,7 @@ #include "ui_requestContactDialog.h" #include "chatmodel.h" #include "requestdialog.h" +#include "ui_startupencryption.h" #include "websockets.h" #include "sodium.h" #include "sodium/crypto_generichash_blake2b.h" @@ -359,7 +360,7 @@ void MainWindow::removeWalletEncryption() { void MainWindow::removeWalletEncryptionStartUp() { QDialog d(this); - Ui_encryptionDialog ed; + Ui_startup ed; ed.setupUi(&d); // Handle edits on the password box diff --git a/src/startupencryption.ui b/src/startupencryption.ui index fb923db..6abdad1 100644 --- a/src/startupencryption.ui +++ b/src/startupencryption.ui @@ -1,10 +1,8 @@ - - - - - Dialog - - + + + startup + + 0 0 @@ -12,40 +10,155 @@ 300 - - Dialog + + SDL Startup Decryption - - + + - 30 - 240 + 50 + 260 341 32 - + Qt::Horizontal - + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + 10 + 229 + 127 + 25 + + + + Confirm Password: + + + + + + 10 + 166 + 382 + 3 + + + + Qt::Horizontal + + + + + + 162 + 229 + 230 + 25 + + + + QLineEdit::Password + + + + + + 10 + 58 + 382 + 56 + + + + <html><head/><body><p>If you have forgotten your password, restore your wallet with your seed!</p></body></html> + + + Qt::AlignCenter + + + true + + + + + + 10 + 260 + 382 + 3 + + + + Qt::Horizontal + + + + + + 10 + 198 + 146 + 25 + + + + Encryption Password: + + + + + + 10 + 175 + 382 + 17 + + + + color: red; + + + Passwords don't match + + + Qt::AlignCenter + + + + + + 162 + 198 + 230 + 25 + + + + QLineEdit::Password + + - buttonBox accepted() - Dialog + startup accept() - + 248 254 - + 157 274 @@ -54,14 +167,14 @@ buttonBox rejected() - Dialog + startup reject() - + 316 260 - + 286 274 @@ -69,4 +182,3 @@ - From e2d6cb01c6da3127aaf2964bf3d03bd01716c265 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 08:49:22 +0200 Subject: [PATCH 14/45] add startup check for encryption, encrypt if sdl close --- src/Crypto/passwd.cpp | 58 ++++++------ src/Crypto/passwd.h | 2 +- src/encryption.ui | 27 +++--- src/mainwindow.cpp | 205 +++++++++++++++++++++++++++++++++++------- 4 files changed, 226 insertions(+), 66 deletions(-) diff --git a/src/Crypto/passwd.cpp b/src/Crypto/passwd.cpp index 160e631..98996b0 100644 --- a/src/Crypto/passwd.cpp +++ b/src/Crypto/passwd.cpp @@ -8,19 +8,9 @@ void PASSWD::show_hex_buff(unsigned char buf[]) printf("\n"); } -const unsigned char* PASSWD::hash(QString password) +const unsigned char* PASSWD::key(QString password) { - /*std::string data = password.toStdString(); - - unsigned char hash[crypto_generichash_BYTES]; - - crypto_generichash(hash, sizeof hash, - (const unsigned char*)data.c_str(), data.size(), - NULL, 0); - - //qDebug() << PASSWD::convertToHexString(hash); - return (const unsigned char*)hash;*/ - + int length = password.length(); char *sequence = NULL; @@ -29,24 +19,42 @@ const unsigned char* PASSWD::hash(QString password) #define MESSAGE ((const unsigned char *) sequence) #define MESSAGE_LEN length + + unsigned char hash[crypto_secretstream_xchacha20poly1305_KEYBYTES]; + + crypto_hash_sha256(hash, MESSAGE, MESSAGE_LEN); + + qDebug()<<"Generating SaltHash from password: " < Encrypt Your Wallet - + @@ -27,7 +27,7 @@ - + <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you forget your password, the only way to recover the wallet is from the seed phrase. If you dont have Backup your seed phrase, please do it now!</p></body></html> @@ -53,14 +53,21 @@ - + Qt::Horizontal - + + + + <html><head/><body><p>10 letters minimum</p></body></html> + + + + color: red; @@ -73,42 +80,42 @@ - + Encryption Password: - + QLineEdit::Password - + Confirm Password: - + QLineEdit::Password - + Qt::Horizontal - + Qt::Horizontal diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8985b3f..e7d175b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -36,6 +36,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { + // Include css QString theme_name; try @@ -53,17 +54,16 @@ MainWindow::MainWindow(QWidget *parent) : ui->setupUi(this); logger = new Logger(this, QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite-wallet.log")); - ui->memoTxtChat->setAutoFillBackground(false); - ui->memoTxtChat->setPlaceholderText("Send Message"); - ui->memoTxtChat->setTextColor(Qt::white); - - - // Check for encryption - if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("addresslabels.dat.enc"))) + // Check for encryption + if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) { this->removeWalletEncryptionStartUp(); } + ui->memoTxtChat->setAutoFillBackground(false); + ui->memoTxtChat->setPlaceholderText("Send Message"); + ui->memoTxtChat->setTextColor(Qt::white); + // Status Bar setupStatusBar(); @@ -263,6 +263,69 @@ void MainWindow::closeEvent(QCloseEvent* event) { // Let the RPC know to shut down any running service. rpc->shutdownhushd(); + +// Check is encryption is ON for SDl + if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) + + { + + + // delete old file before + + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile file1(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + file1.remove(); + + // Encrypt our wallet.dat + QString str = "123";///just for testing. We set the user pw here + // QString str = ed.txtPassword->text(); // data comes from user inputs + int length = str.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, str.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + unsigned char hash[crypto_secretstream_xchacha20poly1305_KEYBYTES]; + + crypto_hash_sha256(hash,MESSAGE, MESSAGE_LEN); + + #define PASSWORD sequence + #define KEY_LEN crypto_box_SEEDBYTES + + + + /////////we use the Hash of the Password as Salt, not perfect but still a good solution. + + unsigned char key[KEY_LEN]; + + if (crypto_pwhash + (key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ +} + + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + // auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QString source_file = dir.filePath("addresslabels.dat"); + QString target_enc_file = dir.filePath("addresslabels.dat.enc"); + QString sourceWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + QString target_encWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); + + FileEncryption::encrypt(target_enc_file, source_file, key); + FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); + + } +///////////////// we rename the plaintext wallet.dat to Backup, for testing. + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile file1(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + file1.remove(); + QFile file(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + file.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + // Bubble up if (event) QMainWindow::closeEvent(event); @@ -282,14 +345,17 @@ void MainWindow::encryptWallet() { ed.setupUi(&d); // Handle edits on the password box + + auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. + QString password = ed.txtPassword->text(); if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 10) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { - ed.lblPasswordMatch->setText(tr("Passwords don't match")); + ed.lblPasswordMatch->setText(tr("Passwords don't match or You have entered too few letters (10 minimum)")); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } @@ -300,19 +366,49 @@ void MainWindow::encryptWallet() { if (d.exec() == QDialog::Accepted) { - const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); - PASSWD::show_hex_buff((unsigned char*) key); + + QString str = ed.txtPassword->text(); // data comes from user inputs + int length = str.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, str.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + unsigned char hash[crypto_secretstream_xchacha20poly1305_KEYBYTES]; + + crypto_hash_sha256(hash,MESSAGE, MESSAGE_LEN); + + #define PASSWORD sequence + #define KEY_LEN crypto_box_SEEDBYTES + + + + /////////we use the Hash of the Password as Salt, not perfect but still a good solution. + + unsigned char key[KEY_LEN]; + + if (crypto_pwhash + (key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ +} + + qDebug()<<"Generating cryptographic key from password: " <text()); - PASSWD::show_hex_buff((unsigned char*) key); + QString str = ed.txtPassword->text(); // data comes from user inputs + int length = str.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, str.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + unsigned char hash[crypto_secretstream_xchacha20poly1305_KEYBYTES]; + + crypto_hash_sha256(hash,MESSAGE, MESSAGE_LEN); + + #define PASSWORD sequence + #define KEY_LEN crypto_box_SEEDBYTES + + + + /////////we use the Hash of the Password as Salt, not perfect but still a good solution. + + unsigned char key[KEY_LEN]; + + if (crypto_pwhash + (key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ +} auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); - auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); QString target_decaddr_file = dir.filePath("addresslabels.dat"); - QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat.enc"); + QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); @@ -354,8 +477,7 @@ void MainWindow::removeWalletEncryption() { - } - d.exec(); + } } void MainWindow::removeWalletEncryptionStartUp() { @@ -367,11 +489,11 @@ void MainWindow::removeWalletEncryptionStartUp() { auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.txtPassword->text() == ed.txtConfirmPassword->text()) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { - ed.lblPasswordMatch->setText(tr("Passwords don't match")); + ed.lblPasswordMatch->setText(tr("Passwords don't match or under-lettered")); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } @@ -382,22 +504,45 @@ void MainWindow::removeWalletEncryptionStartUp() { if (d.exec() == QDialog::Accepted) { - const unsigned char* key=PASSWD::hash(ed.txtPassword->text()); - PASSWD::show_hex_buff((unsigned char*) key); + QString str = ed.txtPassword->text(); // data comes from user inputs + int length = str.length(); + + char *sequence = NULL; + sequence = new char[length+1]; + strncpy(sequence, str.toLocal8Bit(), length +1); + + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + + unsigned char hash[crypto_secretstream_xchacha20poly1305_KEYBYTES]; + + crypto_hash_sha256(hash,MESSAGE, MESSAGE_LEN); + + #define PASSWORD sequence + #define KEY_LEN crypto_box_SEEDBYTES + + + + /////////we use the Hash of the Password as Salt, not perfect but still a good solution. + + unsigned char key[KEY_LEN]; + + if (crypto_pwhash + (key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ + } auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); + QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); QString target_decaddr_file = dir.filePath("addresslabels.dat"); - QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat.enc"); - QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); - FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); - QThread::sleep(1); + // QThread::sleep(1); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - - - } } From 833ed7fc97cf91d779b4c11d813b57f1cf2e8d7b Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 09:10:39 +0200 Subject: [PATCH 15/45] new gui elements for encryption --- src/removeencryption.ui | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/removeencryption.ui diff --git a/src/removeencryption.ui b/src/removeencryption.ui new file mode 100644 index 0000000..fb923db --- /dev/null +++ b/src/removeencryption.ui @@ -0,0 +1,72 @@ + + + + + Dialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + 30 + 240 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + + From feb745457be289b60039095ba5e402ae18314a48 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 09:11:12 +0200 Subject: [PATCH 16/45] new gui elements for encryption --- silentdragon-lite.pro | 1 + src/encryption.ui | 10 +-- src/mainwindow.cpp | 39 +++++---- src/removeencryption.ui | 171 ++++++++++++++++++++++++++++++++++------ 4 files changed, 173 insertions(+), 48 deletions(-) diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index 4fe9ad0..89c9012 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -143,6 +143,7 @@ FORMS += \ src/requestContactDialog.ui \ src/newrecurring.ui \ src/requestdialog.ui \ + src/removeencryption.ui \ src/recurringmultiple.ui \ src/chatbubbleme.ui \ src/chatbubblepartner.ui diff --git a/src/encryption.ui b/src/encryption.ui index e0b3e2f..ae2643b 100644 --- a/src/encryption.ui +++ b/src/encryption.ui @@ -30,7 +30,7 @@ - <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you forget your password, the only way to recover the wallet is from the seed phrase. If you dont have Backup your seed phrase, please do it now!</p></body></html> + <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you forget your passphrase the only way to recover the wallet is from the seed phrase. If you dont have Backup your seed phrase, please do it now!</p></body></html> Qt::AlignCenter @@ -63,7 +63,7 @@ - <html><head/><body><p>10 letters minimum</p></body></html> + <html><head/><body><p>16 letters minimum</p></body></html> @@ -73,7 +73,7 @@ color: red; - Passwords don't match + Passphrase don't match Qt::AlignCenter @@ -83,7 +83,7 @@ - Encryption Password: + Encryption Passphrase: @@ -97,7 +97,7 @@ - Confirm Password: + Confirm Passphrase: diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e7d175b..fd5be39 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -21,7 +21,8 @@ #include "ui_requestContactDialog.h" #include "chatmodel.h" #include "requestdialog.h" -#include "ui_startupencryption.h" +#include "ui_startupencryption.h" +#include "ui_removeencryption.h" #include "websockets.h" #include "sodium.h" #include "sodium/crypto_generichash_blake2b.h" @@ -268,18 +269,16 @@ void MainWindow::closeEvent(QCloseEvent* event) { if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) { - - // delete old file before auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QFile file1(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); - file1.remove(); + QFile fileoldencryption(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + fileoldencryption.remove(); - // Encrypt our wallet.dat - QString str = "123";///just for testing. We set the user pw here - // QString str = ed.txtPassword->text(); // data comes from user inputs - int length = str.length(); + // Encrypt our wallet.dat + QString str = "123";///just for testing. We set the user pw here + // QString str = ed.txtPassword->text(); // data comes from user inputs + int length = str.length(); char *sequence = NULL; sequence = new char[length+1]; @@ -309,7 +308,7 @@ void MainWindow::closeEvent(QCloseEvent* event) { } auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); - // auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + // auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString source_file = dir.filePath("addresslabels.dat"); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); QString sourceWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); @@ -318,14 +317,16 @@ void MainWindow::closeEvent(QCloseEvent* event) { FileEncryption::encrypt(target_enc_file, source_file, key); FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); - } -///////////////// we rename the plaintext wallet.dat to Backup, for testing. - auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QFile file1(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); - file1.remove(); + ///////////////// we rename the plaintext wallet.dat to Backup, for testing. + + QFile fileoldbackup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + fileoldbackup.remove(); QFile file(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); file.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + } + + // Bubble up if (event) QMainWindow::closeEvent(event); @@ -351,11 +352,11 @@ void MainWindow::encryptWallet() { // Enable the OK button if the passwords match. QString password = ed.txtPassword->text(); if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 10) { + ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { - ed.lblPasswordMatch->setText(tr("Passwords don't match or You have entered too few letters (10 minimum)")); + ed.lblPasswordMatch->setText(tr("Passphrase don't match or You have entered too few letters (16 minimum)")); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } @@ -413,7 +414,7 @@ void MainWindow::encryptWallet() { void MainWindow::removeWalletEncryption() { QDialog d(this); - Ui_encryptionDialog ed; + Ui_removeencryption ed; ed.setupUi(&d); // Handle edits on the password box @@ -475,8 +476,6 @@ void MainWindow::removeWalletEncryption() { FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - - } } diff --git a/src/removeencryption.ui b/src/removeencryption.ui index fb923db..15f4f30 100644 --- a/src/removeencryption.ui +++ b/src/removeencryption.ui @@ -1,10 +1,8 @@ - - - - - Dialog - - + + + removeencryption + + 0 0 @@ -12,40 +10,168 @@ 300 - - Dialog + + Remove your Wallet encryption - - + + - 30 - 240 + 50 + 260 341 32 - + Qt::Horizontal - + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + 260 + 170 + 133 + 23 + + + + <html><head/><body><p>16 letters minimum</p></body></html> + + + + + + 10 + 229 + 157 + 25 + + + + Confirm Passphrase: + + + + + + 10 + 164 + 382 + 3 + + + + Qt::Horizontal + + + + + + 173 + 229 + 219 + 25 + + + + QLineEdit::Password + + + + + + 10 + 56 + 382 + 56 + + + + <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If yo remove your encryption, all your Data is Plaintext on your Disk!</p></body></html> + + + Qt::AlignCenter + + + true + + + + + + 10 + 260 + 382 + 3 + + + + Qt::Horizontal + + + + + + 10 + 198 + 157 + 25 + + + + Encryption Passphrase: + + + + + + 10 + 175 + 243 + 17 + + + + color: red; + + + Passphrase don't match + + + Qt::AlignCenter + + + + + + 173 + 198 + 219 + 25 + + + + QLineEdit::Password + + - buttonBox accepted() - Dialog + removeencryption accept() - + 248 254 - + 157 274 @@ -54,14 +180,14 @@ buttonBox rejected() - Dialog + removeencryption reject() - + 316 260 - + 286 274 @@ -69,4 +195,3 @@ - From c12a4ffe73ba0969d23b412403709cb33ec14459 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 09:39:50 +0200 Subject: [PATCH 17/45] use userpw for encryption at sdl close --- src/mainwindow.cpp | 15 ++++++++++++++- src/mainwindow.h | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index fd5be39..5bb0740 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -276,7 +276,7 @@ void MainWindow::closeEvent(QCloseEvent* event) { fileoldencryption.remove(); // Encrypt our wallet.dat - QString str = "123";///just for testing. We set the user pw here + QString str = this->getPassword(); // QString str = ed.txtPassword->text(); // data comes from user inputs int length = str.length(); @@ -351,6 +351,7 @@ void MainWindow::encryptWallet() { auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. QString password = ed.txtPassword->text(); + this->setPassword(password); if (!ed.txtPassword->text().isEmpty() && ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); @@ -546,6 +547,18 @@ void MainWindow::removeWalletEncryptionStartUp() { } +QString MainWindow::getPassword() +{ + + return _password; +} + +void MainWindow::setPassword(QString password) +{ + + _password = password; +} + void MainWindow::setupStatusBar() { // Status Bar loadingLabel = new QLabel(); diff --git a/src/mainwindow.h b/src/mainwindow.h index 7384fc2..e80af01 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -51,6 +51,8 @@ public: QString doSendChatTxValidations(Tx tx); QString doSendRequestTxValidations(Tx tx); QString getCid(); + QString getPassword(); + void setPassword(QString Password); void replaceWormholeClient(WormholeClient* newClient); bool isWebsocketListening(); @@ -120,6 +122,7 @@ private: void setupStatusBar(); void clearSendForm(); + QString _password; Tx createTxFromSendPage(); bool confirmTx(Tx tx, RecurringPaymentInfo* rpi); From 06b3f0370f9de519c5cc9e3cd9849eb098003a6d Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 09:55:01 +0200 Subject: [PATCH 18/45] use userpw for encryption at sdl close --- src/mainwindow.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5bb0740..49f4f72 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -477,6 +477,9 @@ void MainWindow::removeWalletEncryption() { FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + filencrypted.remove(); + } } @@ -486,6 +489,8 @@ void MainWindow::removeWalletEncryptionStartUp() { ed.setupUi(&d); // Handle edits on the password box + QString password = ed.txtPassword->text(); + auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. if (!ed.txtPassword->text().isEmpty() && @@ -506,7 +511,7 @@ void MainWindow::removeWalletEncryptionStartUp() { { QString str = ed.txtPassword->text(); // data comes from user inputs int length = str.length(); - + this->setPassword(str); char *sequence = NULL; sequence = new char[length+1]; strncpy(sequence, str.toLocal8Bit(), length +1); From 0071ee1f093ce4399c5fe6522485eeceb4356897 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 12:35:20 +0200 Subject: [PATCH 19/45] check for wrong password --- src/mainwindow.cpp | 67 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 49f4f72..ee93f6f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -466,21 +466,46 @@ void MainWindow::removeWalletEncryption() { crypto_pwhash_ALG_DEFAULT) != 0) { /* out of memory */ } + + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + filencrypted.remove(); + + { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); - QString target_decaddr_file = dir.filePath("addresslabels.dat"); QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); + QString target_decaddr_file = dir.filePath("addresslabels.dat"); - FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); - filencrypted.remove(); - } + + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + + if (filencrypted.size() > 0) + { + + QMessageBox::information(this, tr("Wallet Encryption Success"), + QString("SDL is ready to Rock"), + QMessageBox::Ok + ); + }else{ + + qDebug()<<"verschlüsselung gescheitert "; + + QMessageBox::critical(this, tr("Wallet Encryption Failed"), + QString("false password please try again"), + QMessageBox::Ok + ); + this->removeWalletEncryptionStartUp(); + } + + } + } void MainWindow::removeWalletEncryptionStartUp() { @@ -532,12 +557,15 @@ void MainWindow::removeWalletEncryptionStartUp() { unsigned char key[KEY_LEN]; - if (crypto_pwhash + if (crypto_pwhash (key, sizeof key, PASSWORD, strlen(PASSWORD), hash, crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, crypto_pwhash_ALG_DEFAULT) != 0) { /* out of memory */ } + + + { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); @@ -546,8 +574,31 @@ void MainWindow::removeWalletEncryptionStartUp() { QString target_decaddr_file = dir.filePath("addresslabels.dat"); FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); - // QThread::sleep(1); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); + + } + + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + + if (filencrypted.size() > 0) + { + + QMessageBox::information(this, tr("Wallet Encryption Success"), + QString("SDL is ready to Rock"), + QMessageBox::Ok + ); + }else{ + + qDebug()<<"verschlüsselung gescheitert "; + + QMessageBox::critical(this, tr("Wallet Encryption Failed"), + QString("false password please try again"), + QMessageBox::Ok + ); + this->removeWalletEncryptionStartUp(); + } + } } From d5138b8fa247a55635f67ca7ecabf86f01d42b4f Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 13:15:57 +0200 Subject: [PATCH 20/45] prevent to open sdl without pw --- src/mainwindow.cpp | 73 +++++++++++++++++++++++++---------------- src/mainwindow.h | 2 ++ src/removeencryption.ui | 2 +- 3 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ee93f6f..681391a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -252,6 +252,10 @@ void MainWindow::doClose() { closeEvent(nullptr); } +void MainWindow::doClosePw() { + closeEventpw(nullptr); +} + void MainWindow::closeEvent(QCloseEvent* event) { QSettings s; @@ -261,8 +265,7 @@ void MainWindow::closeEvent(QCloseEvent* event) { s.sync(); - // Let the RPC know to shut down any running service. - rpc->shutdownhushd(); + // Check is encryption is ON for SDl @@ -318,27 +321,30 @@ void MainWindow::closeEvent(QCloseEvent* event) { FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); ///////////////// we rename the plaintext wallet.dat to Backup, for testing. - - QFile fileoldbackup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); - fileoldbackup.remove(); + QFile file(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); file.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); } - + // Let the RPC know to shut down any running service. + rpc->shutdownhushd(); // Bubble up if (event) QMainWindow::closeEvent(event); } -void dump_hex_buff(unsigned char buf[], unsigned int len) -{ - int i; - for (i=0; ishutdownhushd(); + + // Bubble up + if (event) + QMainWindow::closeEvent(event); } + void MainWindow::encryptWallet() { QDialog d(this); @@ -351,7 +357,7 @@ void MainWindow::encryptWallet() { auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. QString password = ed.txtPassword->text(); - this->setPassword(password); + if (!ed.txtPassword->text().isEmpty() && ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); @@ -371,6 +377,7 @@ void MainWindow::encryptWallet() { QString str = ed.txtPassword->text(); // data comes from user inputs int length = str.length(); + this->setPassword(str); char *sequence = NULL; sequence = new char[length+1]; @@ -399,8 +406,6 @@ void MainWindow::encryptWallet() { /* out of memory */ } - qDebug()<<"Generating cryptographic key from password: " <text(); auto fnPasswordEdited = [=](const QString&) { // Enable the OK button if the passwords match. if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { @@ -466,11 +472,9 @@ void MainWindow::removeWalletEncryption() { crypto_pwhash_ALG_DEFAULT) != 0) { /* out of memory */ } + - QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); - filencrypted.remove(); - - { + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); @@ -481,29 +485,35 @@ void MainWindow::removeWalletEncryption() { FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - } + - auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); if (filencrypted.size() > 0) { - QMessageBox::information(this, tr("Wallet Encryption Success"), + QMessageBox::information(this, tr("Wallet decryption Success"), QString("SDL is ready to Rock"), QMessageBox::Ok - ); + ); + + filencrypted.remove(); + }else{ qDebug()<<"verschlüsselung gescheitert "; QMessageBox::critical(this, tr("Wallet Encryption Failed"), - QString("false password please try again"), + QString("false password, please try again"), QMessageBox::Ok ); this->removeWalletEncryptionStartUp(); } + }else{ + + this->doClosePw(); } } @@ -514,12 +524,12 @@ void MainWindow::removeWalletEncryptionStartUp() { ed.setupUi(&d); // Handle edits on the password box - QString password = ed.txtPassword->text(); auto fnPasswordEdited = [=](const QString&) { + QString password = ed.txtPassword->text(); // Enable the OK button if the passwords match. if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text()) { + ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { @@ -580,6 +590,8 @@ void MainWindow::removeWalletEncryptionStartUp() { auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile backup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + if (filencrypted.size() > 0) { @@ -587,7 +599,9 @@ void MainWindow::removeWalletEncryptionStartUp() { QMessageBox::information(this, tr("Wallet Encryption Success"), QString("SDL is ready to Rock"), QMessageBox::Ok - ); + ); + + backup.remove(); }else{ qDebug()<<"verschlüsselung gescheitert "; @@ -599,8 +613,11 @@ void MainWindow::removeWalletEncryptionStartUp() { this->removeWalletEncryptionStartUp(); } + }else{ + + this->doClosePw(); } - + } QString MainWindow::getPassword() diff --git a/src/mainwindow.h b/src/mainwindow.h index e80af01..7ec42ba 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -88,6 +88,7 @@ public: Logger* logger; void doClose(); + void doClosePw(); QString createHeaderMemo(QString type, QString cid, QString zaddr, int version, int headerNumber); public slots: @@ -104,6 +105,7 @@ private: bool fileExists(QString path); void closeEvent(QCloseEvent* event); + void closeEventpw(QCloseEvent* event); void setupSendTab(); diff --git a/src/removeencryption.ui b/src/removeencryption.ui index 15f4f30..77d7239 100644 --- a/src/removeencryption.ui +++ b/src/removeencryption.ui @@ -181,7 +181,7 @@ buttonBox rejected() removeencryption - reject() + close() 316 From 79aecae12ea603fc29e02b7723e23d5978627392 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 13:25:12 +0200 Subject: [PATCH 21/45] rename to .backup at sdl end --- src/mainwindow.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 681391a..cd2bd34 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -266,7 +266,8 @@ void MainWindow::closeEvent(QCloseEvent* event) { s.sync(); - + // Let the RPC know to shut down any running service. + rpc->shutdownhushd(); // Check is encryption is ON for SDl if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) @@ -324,10 +325,10 @@ void MainWindow::closeEvent(QCloseEvent* event) { QFile file(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); file.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + } - // Let the RPC know to shut down any running service. - rpc->shutdownhushd(); + // Bubble up if (event) @@ -591,6 +592,7 @@ void MainWindow::removeWalletEncryptionStartUp() { auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); QFile backup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + if (filencrypted.size() > 0) From 309c1acbcc5ac274b5893014f39a8e6f569d2694 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 15:24:06 +0200 Subject: [PATCH 22/45] some gui fixes --- src/mainwindow.cpp | 58 ++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cd2bd34..a8c5e03 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -323,10 +323,10 @@ void MainWindow::closeEvent(QCloseEvent* event) { ///////////////// we rename the plaintext wallet.dat to Backup, for testing. - QFile file(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); - file.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); - - + QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile address(dir.filePath("addresslabels.dat")); + wallet.remove(); + address.remove(); } @@ -416,6 +416,11 @@ void MainWindow::encryptWallet() { FileEncryption::encrypt(target_enc_file, source_file, key); FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); + + QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile address(dir.filePath("addresslabels.dat")); + wallet.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBackup")); + address.rename(dir.filePath("addresslabels.datBackup")); } } @@ -424,12 +429,11 @@ void MainWindow::removeWalletEncryption() { Ui_removeencryption ed; ed.setupUi(&d); - // Handle edits on the password box - QString password = ed.txtPassword->text(); - auto fnPasswordEdited = [=](const QString&) { + auto fnPasswordEdited = [=](const QString&) { + QString password = ed.txtPassword->text(); // Enable the OK button if the passwords match. if (!ed.txtPassword->text().isEmpty() && - ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { + ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); } else { @@ -485,17 +489,15 @@ void MainWindow::removeWalletEncryption() { FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - - - - QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); - if (filencrypted.size() > 0) + if (wallet.size() > 0) { QMessageBox::information(this, tr("Wallet decryption Success"), - QString("SDL is ready to Rock"), + QString("Successfully delete the encryption"), QMessageBox::Ok ); @@ -506,15 +508,12 @@ void MainWindow::removeWalletEncryption() { qDebug()<<"verschlüsselung gescheitert "; QMessageBox::critical(this, tr("Wallet Encryption Failed"), - QString("false password, please try again"), + QString("False password, please try again"), QMessageBox::Ok ); - this->removeWalletEncryptionStartUp(); + this->removeWalletEncryption(); } - }else{ - - this->doClosePw(); } } @@ -590,20 +589,29 @@ void MainWindow::removeWalletEncryptionStartUp() { } auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); - QFile backup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP")); + QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + //QFile backup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP"));*/ - - - if (filencrypted.size() > 0) + if (wallet.size() > 0) { + if (fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet.datBackup"))) + + { + + QMessageBox::warning(this, tr("You have still Plaintextdata on your disk!"), + QString("WARNING: Delete it only if you have a backup of your Wallet Seed."), + QMessageBox::Ok + ); + // backup.remove(); + + } QMessageBox::information(this, tr("Wallet Encryption Success"), QString("SDL is ready to Rock"), QMessageBox::Ok ); - backup.remove(); + }else{ qDebug()<<"verschlüsselung gescheitert "; From c79bf0046d8dd0e5e6b3bdb4b8f03519b1f76f36 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 16:51:55 +0200 Subject: [PATCH 23/45] fix for win --- src/mainwindow.cpp | 54 ++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a8c5e03..1f16a60 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -33,6 +33,19 @@ using json = nlohmann::json; + + +#ifdef Q_OS_WIN +auto dirwallet = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite/silentdragonlite-wallet.dat"); +auto dirwalletenc = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite/silentdragonlite-wallet-enc.dat"); +auto dirwalletbackup = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite/silentdragonlite-wallet.datBackup"); +#endif +#ifdef Q_OS_UNIX +auto dirwallet = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet.dat"); +auto dirwalletenc = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); +auto dirwalletbackup = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet.datBackup"); +#endif + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) @@ -56,7 +69,10 @@ MainWindow::MainWindow(QWidget *parent) : logger = new Logger(this, QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite-wallet.log")); // Check for encryption - if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) + + + + if(fileExists(dirwalletenc)) { this->removeWalletEncryptionStartUp(); } @@ -270,13 +286,13 @@ void MainWindow::closeEvent(QCloseEvent* event) { rpc->shutdownhushd(); // Check is encryption is ON for SDl - if(fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"))) + if(fileExists(dirwalletenc)) { // delete old file before - auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QFile fileoldencryption(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); + //auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile fileoldencryption(dirwalletenc); fileoldencryption.remove(); // Encrypt our wallet.dat @@ -315,15 +331,15 @@ void MainWindow::closeEvent(QCloseEvent* event) { // auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString source_file = dir.filePath("addresslabels.dat"); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); - QString sourceWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); - QString target_encWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); + QString sourceWallet_file = dirwallet; + QString target_encWallet_file = dirwalletenc; FileEncryption::encrypt(target_enc_file, source_file, key); FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); ///////////////// we rename the plaintext wallet.dat to Backup, for testing. - QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile wallet(dirwallet); QFile address(dir.filePath("addresslabels.dat")); wallet.remove(); address.remove(); @@ -411,15 +427,15 @@ void MainWindow::encryptWallet() { auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString source_file = dir.filePath("addresslabels.dat"); QString target_enc_file = dir.filePath("addresslabels.dat.enc"); - QString sourceWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); - QString target_encWallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); + QString sourceWallet_file = dirwallet; + QString target_encWallet_file = dirwalletenc; FileEncryption::encrypt(target_enc_file, source_file, key); FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); - QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile wallet(dirwallet); QFile address(dir.filePath("addresslabels.dat")); - wallet.rename(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBackup")); + wallet.rename(dirwalletbackup); address.rename(dir.filePath("addresslabels.datBackup")); } } @@ -482,16 +498,16 @@ void MainWindow::removeWalletEncryption() { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); - QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + QString target_encwallet_file = dirwalletenc; + QString target_decwallet_file = dirwallet; QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); QString target_decaddr_file = dir.filePath("addresslabels.dat"); FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decaddr_file, target_encaddr_file, key); - QFile filencrypted(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat")); - QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile filencrypted(dirwalletenc); + QFile wallet(dirwallet); if (wallet.size() > 0) { @@ -578,8 +594,8 @@ void MainWindow::removeWalletEncryptionStartUp() { { auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QString target_encwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet-enc.dat"); - QString target_decwallet_file = dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat"); + QString target_encwallet_file = dirwalletenc; + QString target_decwallet_file = dirwallet; QString target_encaddr_file = dir.filePath("addresslabels.dat.enc"); QString target_decaddr_file = dir.filePath("addresslabels.dat"); @@ -589,12 +605,12 @@ void MainWindow::removeWalletEncryptionStartUp() { } auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); - QFile wallet(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.dat")); + QFile wallet(dirwallet); //QFile backup(dirHome.filePath(".silentdragonlite/silentdragonlite-wallet.datBACKUP"));*/ if (wallet.size() > 0) { - if (fileExists(QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).filePath(".silentdragonlite/silentdragonlite-wallet.datBackup"))) + if (fileExists(dirwalletbackup)) { From f9d89197532053729c0cd237ca3cf8d0003ea26e Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 24 May 2020 20:55:56 +0200 Subject: [PATCH 24/45] rename of chatmemoedit --- src/Chat/Chat.cpp | 34 ++++++++++++++++++---------------- src/chatmodel.cpp | 1 - src/mainwindow.cpp | 2 +- src/mainwindow.h | 14 +++++++------- src/memodialog.ui | 2 +- 5 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/Chat/Chat.cpp b/src/Chat/Chat.cpp index 30a827d..f76222d 100644 --- a/src/Chat/Chat.cpp +++ b/src/Chat/Chat.cpp @@ -7,43 +7,43 @@ Chat::Chat() {} ChatMemoEdit::ChatMemoEdit(QWidget* parent) : QTextEdit(parent) { - QObject::connect(this, &QTextEdit::textChanged, this, &ChatMemoEdit::updateDisplay); + QObject::connect(this, &QTextEdit::textChanged, this, &ChatMemoEdit::updateDisplayChat); } -void ChatMemoEdit::updateDisplay() { +void ChatMemoEdit::updateDisplayChat() { QString txt = this->toPlainText(); - if (lenDisplayLabel) - lenDisplayLabel->setText(QString::number(txt.toUtf8().size()) + "/" + QString::number(maxlen)); + if (lenDisplayLabelchat) + lenDisplayLabelchat->setText(QString::number(txt.toUtf8().size()) + "/" + QString::number(maxlenchat)); - if (txt.toUtf8().size() <= maxlen) { + if (txt.toUtf8().size() <= maxlenchat) { // Everything is fine if (sendChatButton) sendChatButton->setEnabled(true); - if (lenDisplayLabel) - lenDisplayLabel->setStyleSheet(""); + if (lenDisplayLabelchat) + lenDisplayLabelchat->setStyleSheet(""); } else { // Overweight if (sendChatButton) sendChatButton->setEnabled(false); - if (lenDisplayLabel) - lenDisplayLabel->setStyleSheet("color: red;"); + if (lenDisplayLabelchat) + lenDisplayLabelchat->setStyleSheet("color: red;"); } } -void ChatMemoEdit::setMaxLen(int len) { - this->maxlen = len; - updateDisplay(); +void ChatMemoEdit::setMaxLenChat(int len) { + this->maxlenchat = len; + updateDisplayChat(); } void ChatMemoEdit::SetSendChatButton(QPushButton* button) { this->sendChatButton = button; } -void ChatMemoEdit::setLenDisplayLabel(QLabel* label) { - this->lenDisplayLabel = label; +void ChatMemoEdit::setLenDisplayLabelChat(QLabel* label) { + this->lenDisplayLabelchat = label; } void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view, QLabel *label) @@ -93,5 +93,7 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view, QLabel *label) ui->listChat->setModel(chat); } } - } -} \ No newline at end of file + } +} + + \ No newline at end of file diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 91e46d5..0e636b2 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -8,7 +8,6 @@ #include "ui_mainwindow.h" #include "ui_requestContactDialog.h" #include "addressbook.h" -#include "ui_memodialog.h" #include "ui_contactrequest.h" #include #include diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1f16a60..4f6c428 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1365,7 +1365,7 @@ void MainWindow::setupchatTab() { }); -ui->memoTxtChat->setLenDisplayLabel(ui->memoSizeChat); +ui->memoTxtChat->setLenDisplayLabelChat(ui->memoSizeChat); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 7ec42ba..fb08fdb 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -60,8 +60,8 @@ public: void stopWebsocket(); void saveContact(); void saveandsendContact(); - void setMaxLen(int len); - void updateDisplay(); + // void setmaxlenChat(int len); + // void updateDisplay(); void balancesReady(); @@ -199,14 +199,14 @@ class ChatMemoEdit : public QTextEdit public: ChatMemoEdit(QWidget* parent); - void setMaxLen(int len); - void setLenDisplayLabel(QLabel* label); + void setMaxLenChat(int len); + void setLenDisplayLabelChat(QLabel* label); void SetSendChatButton(QPushButton* button); - void updateDisplay(); + void updateDisplayChat(); private: - int maxlen = 512; - QLabel* lenDisplayLabel = nullptr; + int maxlenchat = 512; + QLabel* lenDisplayLabelchat = nullptr; QPushButton* sendChatButton = nullptr; }; diff --git a/src/memodialog.ui b/src/memodialog.ui index 1c144e0..d365221 100644 --- a/src/memodialog.ui +++ b/src/memodialog.ui @@ -74,7 +74,7 @@ MemoEdit QPlainTextEdit -

memoedit.h
+
memoedit.h
From 68b509f7a6ae91904d9b8f79cfd33890740b35c3 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Mon, 25 May 2020 10:13:49 +0200 Subject: [PATCH 25/45] update deps --- lib/Cargo.lock | 841 ++++++++++++++++++++++++------------------------- lib/Cargo.toml | 2 +- 2 files changed, 419 insertions(+), 424 deletions(-) diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 07f7981..3c95032 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -56,7 +56,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -66,31 +66,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "async-stream" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-stream-impl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "async-stream-impl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "async-stream-impl" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "async-trait" -version = "0.1.24" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -98,19 +98,14 @@ name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "autocfg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "backtrace" -version = "0.3.43" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -119,8 +114,8 @@ name = "backtrace-sys" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -143,7 +138,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bech32" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -152,14 +147,14 @@ version = "0.1.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "group 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -176,22 +171,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2b_simd" -version = "0.5.10" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "blake2s_simd" -version = "0.5.10" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -226,12 +221,12 @@ name = "bs58" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bumpalo" -version = "3.1.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -255,7 +250,7 @@ dependencies = [ [[package]] name = "bytes" -version = "0.5.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -268,7 +263,7 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.50" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -281,8 +276,8 @@ name = "chrono" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -296,21 +291,21 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "core-foundation" -version = "0.6.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -328,10 +323,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "crossbeam-utils" -version = "0.7.0" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -381,14 +375,14 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "dtoa" -version = "0.4.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -401,7 +395,7 @@ name = "failure" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -410,9 +404,9 @@ name = "failure_derive" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -436,9 +430,9 @@ name = "ff_derive" version = "0.3.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -450,7 +444,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -467,8 +461,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -483,9 +477,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -514,15 +508,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-channel" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-core" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -531,26 +525,26 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-sink" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-task" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-util" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -564,12 +558,12 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -578,26 +572,26 @@ version = "0.1.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.2.1" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -619,10 +613,10 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -644,9 +638,9 @@ name = "http" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -654,7 +648,7 @@ name = "http-body" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -668,38 +662,38 @@ name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hyper" -version = "0.13.2" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "indexmap" -version = "1.3.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -707,7 +701,7 @@ name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -720,20 +714,20 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "js-sys" -version = "0.3.35" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "json" -version = "0.12.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -752,7 +746,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.66" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -771,8 +765,8 @@ name = "libsodium-sys" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", @@ -817,13 +811,13 @@ dependencies = [ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "log-mdc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde-value 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)", "thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -837,12 +831,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.3.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "miniz_oxide" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -858,7 +852,7 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -883,7 +877,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -918,7 +912,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -927,44 +921,44 @@ name = "nom" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-bigint" -version = "0.2.6" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-integer" -version = "0.1.42" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-traits" -version = "0.2.11" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num_cpus" -version = "1.12.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -990,7 +984,7 @@ name = "ordered-float" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1018,7 +1012,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1036,7 +1030,7 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1045,30 +1039,30 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fixedbitset 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project" -version = "0.4.8" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-internal" -version = "0.4.8" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-lite" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1096,7 +1090,7 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1107,7 +1101,7 @@ name = "prost" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1116,7 +1110,7 @@ name = "prost-build" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1135,9 +1129,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1145,30 +1139,30 @@ name = "prost-types" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "protobuf" -version = "2.10.1" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "protobuf-codegen" -version = "2.10.1" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "protobuf-codegen-pure" -version = "2.10.1" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf-codegen 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1176,13 +1170,13 @@ name = "qtlib" version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30)", ] [[package]] name = "quick-error" -version = "1.2.3" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1198,7 +1192,7 @@ name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1207,7 +1201,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1221,11 +1215,11 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1268,7 +1262,7 @@ name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1300,7 +1294,7 @@ name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1312,7 +1306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1323,7 +1317,7 @@ name = "rand_os" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1375,12 +1369,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "redox_users" -version = "0.3.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1393,15 +1388,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.11" +version = "0.16.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", + "web-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1422,13 +1417,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "rust-argon2" -version = "0.7.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1438,7 +1432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1448,8 +1442,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1457,7 +1451,7 @@ name = "rust-embed-utils" version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1475,25 +1469,25 @@ dependencies = [ [[package]] name = "rustls" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustls-native-certs" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1503,10 +1497,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "same-file" -version = "1.0.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1528,7 +1522,7 @@ name = "sct" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1537,26 +1531,28 @@ name = "secp256k1" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework" -version = "0.3.4" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1591,17 +1587,17 @@ name = "serde_derive" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.46" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1611,7 +1607,7 @@ name = "serde_yaml" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1619,7 +1615,7 @@ dependencies = [ [[package]] name = "sha2" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1634,13 +1630,13 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592#fb07cae93c706cce929beef98690109e5f2d7592" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30#91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -1650,7 +1646,7 @@ dependencies = [ "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "json 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1658,20 +1654,20 @@ dependencies = [ "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "prost-types 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "sodiumoxide 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "webpki-roots 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_client_backend 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "zcash_primitives 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -1697,7 +1693,7 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1707,7 +1703,7 @@ name = "sodiumoxide" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "libsodium-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1744,10 +1740,10 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.14" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1757,9 +1753,9 @@ name = "synstructure" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1774,7 +1770,7 @@ version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1785,8 +1781,8 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1797,7 +1793,7 @@ name = "thread-id" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1807,7 +1803,7 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1823,95 +1819,95 @@ dependencies = [ "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.2.11" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-macros" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-rustls" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-util" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tonic" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-stream 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "async-stream 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tower 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-make 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-futures 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-futures 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1919,18 +1915,18 @@ name = "tonic-build" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "prost-build 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tower" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tower-buffer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1947,20 +1943,20 @@ name = "tower-balance" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-make 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-ready-cache 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1968,12 +1964,12 @@ name = "tower-buffer" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1981,8 +1977,8 @@ name = "tower-discover" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1996,9 +1992,9 @@ name = "tower-limit" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2008,10 +2004,10 @@ name = "tower-load" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2021,8 +2017,8 @@ name = "tower-load-shed" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2032,7 +2028,7 @@ name = "tower-make" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2041,11 +2037,11 @@ name = "tower-ready-cache" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2054,9 +2050,9 @@ name = "tower-retry" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2071,8 +2067,8 @@ name = "tower-timeout" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2082,21 +2078,21 @@ name = "tower-util" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tracing" -version = "0.1.12" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-core 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2105,12 +2101,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tracing-core" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2118,11 +2114,11 @@ dependencies = [ [[package]] name = "tracing-futures" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2188,12 +2184,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2207,91 +2203,91 @@ dependencies = [ [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasm-bindgen" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasm-bindgen-webidl" -version = "0.2.58" +version = "0.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", "weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "web-sys" -version = "0.3.35" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", "sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-webidl 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webpki" -version = "0.21.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2300,7 +2296,7 @@ name = "webpki-roots" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2316,7 +2312,7 @@ name = "which" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2345,7 +2341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi-util" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2370,7 +2366,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2386,13 +2382,13 @@ name = "zcash_client_backend" version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ - "bech32 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bech32 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf-codegen-pure 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf-codegen-pure 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_primitives 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", ] @@ -2403,8 +2399,8 @@ version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2412,12 +2408,12 @@ dependencies = [ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2426,7 +2422,7 @@ version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2443,51 +2439,50 @@ dependencies = [ "checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" "checksum arc-swap 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "bc4662175ead9cd84451d5c35070517777949a2ed84551764129cedb88384841" "checksum arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff" -"checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" -"checksum async-stream 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5" -"checksum async-stream-impl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" -"checksum async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "750b1c38a1dfadd108da0f01c08f4cdc7ff1bb39b325f9c82cc972361780a6e1" +"checksum async-stream 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "58982858be7540a465c790b95aaea6710e5139bf8956b1d1344d014fa40100b0" +"checksum async-stream-impl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393356ed99aa7bff0ac486dde592633b83ab02bd254d8c209d5b9f1d0f533480" +"checksum async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "c8df72488e87761e772f14ae0c2480396810e51b2c2ade912f97f0f7e5b95e3c" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" -"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -"checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f" +"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea" "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" -"checksum bech32 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdcf67bb7ba7797a081cd19009948ab533af7c355d5caf1d08c777582d351e9c" +"checksum bech32 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e0089c35ab7c6f2bc55ab23f769913f0ac65b1023e7e74638a1f43128dd5df2" "checksum bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = "" "checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -"checksum blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" +"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0" +"checksum blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "050efd7a5bdb220988d4c5204f84ab796e778612af94275f1d39479798b39cf9" "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" "checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" "checksum bs58 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c95ee6bba9d950218b6cc910cf62bc9e0a171d0f4537e3627b0f54d08549b188" -"checksum bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8038c1ddc0a5f73787b130f4cc75151e96ed33e417fde765eb5a81e3532f4" +"checksum bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708" "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" "checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" +"checksum bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10004c15deb332055f7a4a208190aed362cf9a7c2f6ab70a305fba50e1105f38" "checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" -"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" +"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" "checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" -"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" -"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" +"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120" +"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "24ce9782d4d5c53674646a6a4c1863a21a8fc0cb649b3c94dfc16e45071dea19" -"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" +"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" "checksum crypto_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2f855e87e75a4799e18b8529178adcde6fd4f97c1449ff4821e747ff728bb102" "checksum crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "95b2ad7cab08fd71addba81df5077c49df208effdfb3118a1519f9cdeac5aaf2" "checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" "checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" "checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" -"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" +"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" "checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" "checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" @@ -2503,35 +2498,35 @@ dependencies = [ "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" -"checksum futures-channel 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c92c2137e8e1ebf1ac99453550ab46eb4f35c5c53476d57d75eb782fb4d71e84" -"checksum futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ccfb301b0b09e940a67376cf40d1b0ac4db9366ee737f65c02edea225057e91e" +"checksum futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86" +"checksum futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0485279d763e8a3669358f500e805339138b7bbe90f5718c80eedfdcb2ea36a4" -"checksum futures-task 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cefffab2aacc73845afd3f202e09fc775a55e2e96f46c8b1a46c117ae1c126ca" -"checksum futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2c3f8c59707f898b8b6f0b54c2aef5408ae90a560b7bf0fbf1b95b3c652b0171" +"checksum futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "171be33efae63c2d59e6dbba34186fe0d6394fb378069a76dfd80fdcffd43c16" +"checksum futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9" +"checksum futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76" "checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407" "checksum group 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = "" -"checksum h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9433d71e471c1736fd5a61b671fc0b148d7a2992f666c958d03cd8feb3b88d1" +"checksum h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" "checksum hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" +"checksum hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f629dc602392d3ec14bfc8a09b5e644d7ffd725102b48b81e59f90f2633621d7" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" "checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b" "checksum http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" "checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -"checksum hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fa1c527bbc634be72aa7ba31e4e4def9bbb020f5416916279b7c705cd838893e" -"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc" +"checksum hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96816e1d921eca64d208a85aab4f7798455a8e34229ee5a88c935bdee1b78b14" +"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" -"checksum js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7889c7c36282151f6bf465be4700359318aef36baa951462382eae49e9577cf9" -"checksum json 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a38661a28126f8621fb246611288ae28935ddf180f5e21f2d0fbfe5e4131dbe" +"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" +"checksum js-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)" = "367647c532db6f1555d7151e619540ec5f713328235b8c062c6b4f63e84adfe3" +"checksum json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" +"checksum libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3baa92041a6fec78c687fa0cc2b3fae8884f743d672cf551bed1d6dac6988d0f" "checksum libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" "checksum libsodium-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1c344ff12b90ef8fa1f0fffacd348c1fd041db331841fec9eab23fdb991f5e73" "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" @@ -2540,8 +2535,8 @@ dependencies = [ "checksum log-mdc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" "checksum log4rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "100052474df98158c0738a7d3f4249c99978490178b5f9f68cd835ac57adbd1b" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" -"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" -"checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" +"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" +"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625" "checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" "checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" @@ -2550,10 +2545,10 @@ dependencies = [ "checksum multimap 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a97fbd5d00e0e37bfb10f433af8f5aaf631e739368dc9fc28286ca81ca4948dc" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" -"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" -"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" -"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" +"checksum num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a" +"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" +"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4" +"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72" "checksum once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37" "checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" @@ -2562,28 +2557,28 @@ dependencies = [ "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" -"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92" -"checksum pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" -"checksum pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" -"checksum pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" +"checksum pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "94b90146c7216e4cb534069fb91366de4ea0ea353105ee45ed297e2d1619e469" +"checksum pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "44ca92f893f0656d3cba8158dd0f2b99b94de256a4a54e870bd6922fcc6c8355" +"checksum pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" "checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" "checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" +"checksum proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" "checksum prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" "checksum prost-build 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" "checksum prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" "checksum prost-types 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa" -"checksum protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6686ddd96a8dbe2687b5f2a687b2cfb520854010ec480f2d74c32e7c9873d3c5" -"checksum protobuf-codegen 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6456421eecf7fc72905868cd760c3e35848ded3552e480cfe67726ed4dbd8d23" -"checksum protobuf-codegen-pure 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4a7cb42d5ab6073333be90208ab5ea6ab41c8f6803b35fd773a7572624cc15c9" -"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +"checksum protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40361836defdd5871ff7e84096c6f6444af7fc157f8ef1789f54f147687caa20" +"checksum protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12c6abd78435445fc86898ebbd0521a68438063d4a73e23527b7134e6bf58b4a" +"checksum protobuf-codegen-pure 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c1646acda5319f5b28b0bff4a484324df43ddae2c0f5a3f3e63c0b26095cd600" +"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" @@ -2601,37 +2596,37 @@ dependencies = [ "checksum rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" +"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -"checksum ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)" = "741ba1704ae21999c00942f9f5944f801e977f54302af346b596287599ad1862" +"checksum ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1ba5a8ec64ee89a76c98c549af81ff14813df09c3e6dc4766c3856da48597a0c" "checksum ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" "checksum rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" -"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" +"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf" "checksum rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b18893bdbdb0fa5bce588f5d7ab4afbd0678fc879d31535912bf39b7fbc062d6" "checksum rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50633968284cfc373661345fc6382e62b738079f045738023ebc5e445cf44357" "checksum rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105" "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" -"checksum rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51ffebdbb48c14f84eba0b715197d673aff1dd22cc1007ca647e28483bbcc307" +"checksum rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" +"checksum rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a75ffeb84a6bd9d014713119542ce415db3a3e4748f0bfce1e1416cd224a23a5" "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" -"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" "checksum secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e0344a794ff109f85547039536028e12f313178ac1545e49fdf16a530d900a7b" -"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" -"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" +"checksum security-framework 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" +"checksum security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" "checksum serde-value 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7a663f873dedc4eac1a559d4c6bc0d0b2c34dc5ac4702e105014b8281489e44f" "checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" -"checksum serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)" = "21b01d7f0288608a01dca632cf1df859df6fd6ffa885300fc275ce2ba6221953" +"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7" "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" -"checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" +"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" @@ -2641,7 +2636,7 @@ dependencies = [ "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" +"checksum syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238" "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" @@ -2649,13 +2644,13 @@ dependencies = [ "checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" "checksum tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c1c5676413eaeb1ea35300a0224416f57abc3bd251657e0fafc12c47ff98c060" -"checksum tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b" -"checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" -"checksum tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "141afec0978abae6573065a48882c6bae44c5cc61db9b511ac4abf6a09bfd9cc" -"checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" -"checksum tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08283643b1d483eb7f3fc77069e63b5cba3e4db93514b3d45470e67f123e4e48" +"checksum tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" +"checksum tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +"checksum tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4adb8b3e5f86b707f1b54e7c15b6de52617a823608ccda98a15d3a24222f265a" +"checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +"checksum tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4afef9ce97ea39593992cf3fa00ff33b1ad5eb07665b31355df63a690e38c736" "checksum tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0436413ba71545bcc6c2b9a0f9d78d72deb0123c6a75ccdfe7c056f9930f5e52" -"checksum tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd3169017c090b7a28fce80abaad0ab4f5566423677c9331bb320af7e49cfe62" +"checksum tower 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b299df54795e6f72bca45063b5803d1f9a1ba9b11a3c7c64d0b84519b451fdd" "checksum tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a792277613b7052448851efcf98a2c433e6f1d01460832dc60bef676bc275d4c" "checksum tower-buffer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4887dc2a65d464c8b9b66e0e4d51c2fd6cf5b3373afc72805b0a60bce00446a" "checksum tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f6b5000c3c54d269cc695dff28136bb33d08cbf1df2c48129e143ab65bf3c2a" @@ -2669,10 +2664,10 @@ dependencies = [ "checksum tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" "checksum tower-timeout 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "127b8924b357be938823eaaec0608c482d40add25609481027b96198b2e4b31e" "checksum tower-util 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5702d7890e35b2aae6ee420e8a762547505dbed30c075fbc84ec069a0aa18314" -"checksum tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e213bd24252abeb86a0b7060e02df677d367ce6cb772cef17e9214b8390a8d3" +"checksum tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6de6a8590a29d3f401eab60470c699efa0adf7b4f0352055bf24df2b69849b40" "checksum tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04cfd395def5a60236e187e1ff905cb55668a59f29928dec05e6e1b1fd2ac1f3" -"checksum tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "13a46f11e372b8bd4b4398ea54353412fdd7fd42a8370c7e543e218cf7661978" -"checksum tracing-futures 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "33848db47a7c848ab48b66aab3293cb9c61ea879a3586ecfcd17302fcea0baf1" +"checksum tracing-core 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "d7fb511ac6ca1d031c5cfc26d8c38da9d88e91d2bd5b38b60cf8dc1b8b5c211f" +"checksum tracing-futures 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "107ae59580d2a1d994b6b965b16fe94c969fe86d3f7fd2572a1ee243bcaf7f09" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6" @@ -2684,17 +2679,17 @@ dependencies = [ "checksum untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece" "checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" -"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" "checksum want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -"checksum wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "5205e9afdf42282b192e2310a5b463a6d1c1d774e30dc3c791ac37ab42d2616c" -"checksum wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "11cdb95816290b525b32587d76419facd99662a07e59d3cdb560488a819d9a45" -"checksum wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "574094772ce6921576fb6f2e3f7497b8a76273b6db092be18fc48a082de09dc3" -"checksum wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "e85031354f25eaebe78bb7db1c3d86140312a911a106b2e29f9cc440ce3e7668" -"checksum wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e7e61fc929f4c0dddb748b102ebf9f632e2b8d739f2016542b4de2965a9601" -"checksum wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "ef012a0d93fc0432df126a8eaf547b2dce25a8ce9212e1d3cbeef5c11157975d" -"checksum web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b" -"checksum webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" +"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d" +"checksum wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "99de4b68939a880d530aed51289a7c7baee154e3ea8ac234b542c49da7134aaf" +"checksum wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "b58e66a093a7b7571cb76409763c495b8741ac4319ac20acc2b798f6766d92ee" +"checksum wasm-bindgen-macro 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "a80f89daea7b0a67b11f6e9f911422ed039de9963dce00048a653b63d51194bf" +"checksum wasm-bindgen-macro-support 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "4f9dbc3734ad6cff6b76b75b7df98c06982becd0055f651465a08f769bca5c61" +"checksum wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "d907984f8506b3554eab48b8efff723e764ddbf76d4cd4a3fe4196bc00c49a70" +"checksum wasm-bindgen-webidl 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f85a3825a459cf6a929d03bacb54dca37a614d43032ad1343ef2d4822972947d" +"checksum web-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)" = "2fb60433d0dc12c803b9b017b3902d80c9451bab78d27bc3210bf2a7b96593f1" +"checksum webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7e664e770ac0110e2384769bcc59ed19e329d81f555916a6e072714957b81b4" "checksum webpki-roots 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" "checksum weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164" "checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8" @@ -2702,7 +2697,7 @@ dependencies = [ "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" +"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 1d49baf..8bcf505 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "fb07cae93c706cce929beef98690109e5f2d7592" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30" } From 385f864d9d6990d0a9fac01b720aef0d22a04439 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Mon, 25 May 2020 21:25:13 +0200 Subject: [PATCH 26/45] change orange color --- application.qrc | 1 + lib/Cargo.lock | 841 +++++++++++++++++++++-------------------- lib/Cargo.toml | 2 +- src/Model/ChatItem.cpp | 34 +- src/Model/ChatItem.h | 7 +- src/controller.cpp | 61 ++- src/controller.h | 5 +- src/mainwindow.ui | 3 + 8 files changed, 521 insertions(+), 433 deletions(-) diff --git a/application.qrc b/application.qrc index 2db3887..e2da53c 100644 --- a/application.qrc +++ b/application.qrc @@ -39,6 +39,7 @@ res/lock.svg res/lock.png res/lock_green.png + res/lock_orange.png res/unlocked.png res/getAddrWhite.png res/send-white.png diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 3c95032..07f7981 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -56,7 +56,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayref" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -66,31 +66,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "async-stream" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-stream-impl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "async-stream-impl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "async-stream-impl" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "async-trait" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -98,14 +98,19 @@ name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.40" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -114,8 +119,8 @@ name = "backtrace-sys" version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -138,7 +143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bech32" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -147,14 +152,14 @@ version = "0.1.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "group 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -171,22 +176,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2b_simd" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "blake2s_simd" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -221,12 +226,12 @@ name = "bs58" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bumpalo" -version = "2.6.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -250,7 +255,7 @@ dependencies = [ [[package]] name = "bytes" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -263,7 +268,7 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -276,8 +281,8 @@ name = "chrono" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -291,21 +296,21 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "core-foundation" -version = "0.7.0" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" -version = "0.7.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -323,9 +328,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "crossbeam-utils" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -375,14 +381,14 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "dtoa" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -395,7 +401,7 @@ name = "failure" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -404,9 +410,9 @@ name = "failure_derive" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -430,9 +436,9 @@ name = "ff_derive" version = "0.3.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ - "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -444,7 +450,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -461,8 +467,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -477,9 +483,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -508,15 +514,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-channel" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-core" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -525,26 +531,26 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-sink" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-task" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "futures-util" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-task 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -558,12 +564,12 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -572,26 +578,26 @@ version = "0.1.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.2.5" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -613,10 +619,10 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -638,9 +644,9 @@ name = "http" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -648,7 +654,7 @@ name = "http-body" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -662,38 +668,38 @@ name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "hyper" -version = "0.13.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "indexmap" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -701,7 +707,7 @@ name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -714,20 +720,20 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "js-sys" -version = "0.3.33" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "json" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -746,7 +752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.70" +version = "0.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -765,8 +771,8 @@ name = "libsodium-sys" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", @@ -811,13 +817,13 @@ dependencies = [ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "log-mdc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "serde-value 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)", "thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -831,12 +837,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "memchr" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "miniz_oxide" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -852,7 +858,7 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -877,7 +883,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -912,7 +918,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -921,44 +927,44 @@ name = "nom" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-bigint" -version = "0.2.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-integer" -version = "0.1.41" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-traits" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num_cpus" -version = "1.11.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -984,7 +990,7 @@ name = "ordered-float" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1012,7 +1018,7 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1030,7 +1036,7 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1039,30 +1045,30 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fixedbitset 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-internal" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "pin-project-lite" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1090,7 +1096,7 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.12" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1101,7 +1107,7 @@ name = "prost" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1110,7 +1116,7 @@ name = "prost-build" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1129,9 +1135,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1139,30 +1145,30 @@ name = "prost-types" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "protobuf" -version = "2.8.1" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "protobuf-codegen" -version = "2.8.1" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "protobuf-codegen-pure" -version = "2.8.1" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf-codegen 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1170,13 +1176,13 @@ name = "qtlib" version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)", ] [[package]] name = "quick-error" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1192,7 +1198,7 @@ name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1201,7 +1207,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1215,11 +1221,11 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1262,7 +1268,7 @@ name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1294,7 +1300,7 @@ name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1306,7 +1312,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1317,7 +1323,7 @@ name = "rand_os" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1369,13 +1375,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "redox_users" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1388,15 +1393,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.12" +version = "0.16.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "web-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", + "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1417,12 +1422,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "rust-argon2" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1432,7 +1438,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1442,8 +1448,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1451,7 +1457,7 @@ name = "rust-embed-utils" version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1469,25 +1475,25 @@ dependencies = [ [[package]] name = "rustls" -version = "0.17.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustls-native-certs" -version = "0.3.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1497,10 +1503,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "same-file" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1522,7 +1528,7 @@ name = "sct" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1531,28 +1537,26 @@ name = "secp256k1" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework" -version = "0.4.4" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.4.3" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1587,17 +1591,17 @@ name = "serde_derive" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.44" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1607,7 +1611,7 @@ name = "serde_yaml" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1615,7 +1619,7 @@ dependencies = [ [[package]] name = "sha2" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1630,13 +1634,13 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30#91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592#fb07cae93c706cce929beef98690109e5f2d7592" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -1646,7 +1650,7 @@ dependencies = [ "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "json 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1654,20 +1658,20 @@ dependencies = [ "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "prost-types 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "sodiumoxide 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", "webpki-roots 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_client_backend 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "zcash_primitives 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -1693,7 +1697,7 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1703,7 +1707,7 @@ name = "sodiumoxide" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "libsodium-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1740,10 +1744,10 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1753,9 +1757,9 @@ name = "synstructure" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1770,7 +1774,7 @@ version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1781,8 +1785,8 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1793,7 +1797,7 @@ name = "thread-id" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1803,7 +1807,7 @@ name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1819,95 +1823,95 @@ dependencies = [ "once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.2.21" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-macros" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-rustls" -version = "0.13.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-util" -version = "0.3.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tonic" -version = "0.2.1" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "async-stream 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "async-stream 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tower 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-make 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-futures 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-futures 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1915,18 +1919,18 @@ name = "tonic-build" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "prost-build 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tower" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "tower-buffer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1943,20 +1947,20 @@ name = "tower-balance" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-make 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-ready-cache 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1964,12 +1968,12 @@ name = "tower-buffer" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1977,8 +1981,8 @@ name = "tower-discover" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1992,9 +1996,9 @@ name = "tower-limit" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2004,10 +2008,10 @@ name = "tower-load" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2017,8 +2021,8 @@ name = "tower-load-shed" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2028,7 +2032,7 @@ name = "tower-make" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2037,11 +2041,11 @@ name = "tower-ready-cache" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2050,9 +2054,9 @@ name = "tower-retry" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2067,8 +2071,8 @@ name = "tower-timeout" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2078,21 +2082,21 @@ name = "tower-util" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tracing" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing-core 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2101,12 +2105,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tracing-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2114,11 +2118,11 @@ dependencies = [ [[package]] name = "tracing-futures" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2184,12 +2188,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "walkdir" -version = "2.2.9" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2203,91 +2207,91 @@ dependencies = [ [[package]] name = "wasi" -version = "0.7.0" +version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasm-bindgen" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-macro-support 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasm-bindgen-webidl" -version = "0.2.56" +version = "0.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "web-sys" -version = "0.3.33" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", - "js-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)", "sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", - "wasm-bindgen-webidl 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webpki" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2296,7 +2300,7 @@ name = "webpki-roots" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", + "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2312,7 +2316,7 @@ name = "which" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2341,7 +2345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2366,7 +2370,7 @@ name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2382,13 +2386,13 @@ name = "zcash_client_backend" version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ - "bech32 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bech32 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf-codegen-pure 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf-codegen-pure 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_primitives 0.0.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", ] @@ -2399,8 +2403,8 @@ version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", - "blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2408,12 +2412,12 @@ dependencies = [ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_os 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2422,7 +2426,7 @@ version = "0.0.0" source = "git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37#1a0204113d487cdaaf183c2967010e5214ff9e37" dependencies = [ "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", - "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff 0.4.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", "pairing 0.14.2 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2439,50 +2443,51 @@ dependencies = [ "checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" "checksum arc-swap 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "bc4662175ead9cd84451d5c35070517777949a2ed84551764129cedb88384841" "checksum arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff" -"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" +"checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" -"checksum async-stream 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "58982858be7540a465c790b95aaea6710e5139bf8956b1d1344d014fa40100b0" -"checksum async-stream-impl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393356ed99aa7bff0ac486dde592633b83ab02bd254d8c209d5b9f1d0f533480" -"checksum async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "c8df72488e87761e772f14ae0c2480396810e51b2c2ade912f97f0f7e5b95e3c" +"checksum async-stream 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5" +"checksum async-stream-impl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" +"checksum async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "750b1c38a1dfadd108da0f01c08f4cdc7ff1bb39b325f9c82cc972361780a6e1" "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" -"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea" +"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +"checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f" "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" -"checksum bech32 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e0089c35ab7c6f2bc55ab23f769913f0ac65b1023e7e74638a1f43128dd5df2" +"checksum bech32 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdcf67bb7ba7797a081cd19009948ab533af7c355d5caf1d08c777582d351e9c" "checksum bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = "" "checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0" -"checksum blake2s_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "050efd7a5bdb220988d4c5204f84ab796e778612af94275f1d39479798b39cf9" +"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" +"checksum blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" "checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" "checksum bs58 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c95ee6bba9d950218b6cc910cf62bc9e0a171d0f4537e3627b0f54d08549b188" -"checksum bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708" +"checksum bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8038c1ddc0a5f73787b130f4cc75151e96ed33e417fde765eb5a81e3532f4" "checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" "checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -"checksum bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10004c15deb332055f7a4a208190aed362cf9a7c2f6ab70a305fba50e1105f38" +"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" "checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" -"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76" +"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" "checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120" -"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" +"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "24ce9782d4d5c53674646a6a4c1863a21a8fc0cb649b3c94dfc16e45071dea19" -"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" "checksum crypto_api 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2f855e87e75a4799e18b8529178adcde6fd4f97c1449ff4821e747ff728bb102" "checksum crypto_api_chachapoly 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "95b2ad7cab08fd71addba81df5077c49df208effdfb3118a1519f9cdeac5aaf2" "checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" "checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" "checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" -"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" +"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" "checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" "checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" @@ -2498,35 +2503,35 @@ dependencies = [ "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" -"checksum futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86" -"checksum futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866" +"checksum futures-channel 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c92c2137e8e1ebf1ac99453550ab46eb4f35c5c53476d57d75eb782fb4d71e84" +"checksum futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ccfb301b0b09e940a67376cf40d1b0ac4db9366ee737f65c02edea225057e91e" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "171be33efae63c2d59e6dbba34186fe0d6394fb378069a76dfd80fdcffd43c16" -"checksum futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9" -"checksum futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76" +"checksum futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0485279d763e8a3669358f500e805339138b7bbe90f5718c80eedfdcb2ea36a4" +"checksum futures-task 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cefffab2aacc73845afd3f202e09fc775a55e2e96f46c8b1a46c117ae1c126ca" +"checksum futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2c3f8c59707f898b8b6f0b54c2aef5408ae90a560b7bf0fbf1b95b3c652b0171" "checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407" +"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum group 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = "" -"checksum h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" +"checksum h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9433d71e471c1736fd5a61b671fc0b148d7a2992f666c958d03cd8feb3b88d1" "checksum hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f629dc602392d3ec14bfc8a09b5e644d7ffd725102b48b81e59f90f2633621d7" +"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" "checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b" "checksum http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" "checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -"checksum hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96816e1d921eca64d208a85aab4f7798455a8e34229ee5a88c935bdee1b78b14" -"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2" +"checksum hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fa1c527bbc634be72aa7ba31e4e4def9bbb020f5416916279b7c705cd838893e" +"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" -"checksum js-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)" = "367647c532db6f1555d7151e619540ec5f713328235b8c062c6b4f63e84adfe3" -"checksum json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1" +"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" +"checksum js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7889c7c36282151f6bf465be4700359318aef36baa951462382eae49e9577cf9" +"checksum json 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a38661a28126f8621fb246611288ae28935ddf180f5e21f2d0fbfe5e4131dbe" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3baa92041a6fec78c687fa0cc2b3fae8884f743d672cf551bed1d6dac6988d0f" +"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" "checksum libflate 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" "checksum libsodium-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1c344ff12b90ef8fa1f0fffacd348c1fd041db331841fec9eab23fdb991f5e73" "checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" @@ -2535,8 +2540,8 @@ dependencies = [ "checksum log-mdc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" "checksum log4rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "100052474df98158c0738a7d3f4249c99978490178b5f9f68cd835ac57adbd1b" "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" -"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625" +"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223" +"checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" "checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" "checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" @@ -2545,10 +2550,10 @@ dependencies = [ "checksum multimap 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a97fbd5d00e0e37bfb10f433af8f5aaf631e739368dc9fc28286ca81ca4948dc" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" -"checksum num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a" -"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" -"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4" -"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72" +"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" +"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" "checksum once_cell 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "532c29a261168a45ce28948f9537ddd7a5dd272cc513b3017b1e82a88f962c37" "checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" @@ -2557,28 +2562,28 @@ dependencies = [ "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" -"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92" -"checksum pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "94b90146c7216e4cb534069fb91366de4ea0ea353105ee45ed297e2d1619e469" -"checksum pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "44ca92f893f0656d3cba8158dd0f2b99b94de256a4a54e870bd6922fcc6c8355" -"checksum pin-project-lite 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" +"checksum pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" +"checksum pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" +"checksum pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" "checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" "checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-macro2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" "checksum prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" "checksum prost-build 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" "checksum prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" "checksum prost-types 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa" -"checksum protobuf 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40361836defdd5871ff7e84096c6f6444af7fc157f8ef1789f54f147687caa20" -"checksum protobuf-codegen 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12c6abd78435445fc86898ebbd0521a68438063d4a73e23527b7134e6bf58b4a" -"checksum protobuf-codegen-pure 2.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c1646acda5319f5b28b0bff4a484324df43ddae2c0f5a3f3e63c0b26095cd600" -"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" +"checksum protobuf 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6686ddd96a8dbe2687b5f2a687b2cfb520854010ec480f2d74c32e7c9873d3c5" +"checksum protobuf-codegen 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6456421eecf7fc72905868cd760c3e35848ded3552e480cfe67726ed4dbd8d23" +"checksum protobuf-codegen-pure 2.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4a7cb42d5ab6073333be90208ab5ea6ab41c8f6803b35fd773a7572624cc15c9" +"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" "checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412" +"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" @@ -2596,37 +2601,37 @@ dependencies = [ "checksum rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d" +"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -"checksum ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1ba5a8ec64ee89a76c98c549af81ff14813df09c3e6dc4766c3856da48597a0c" +"checksum ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)" = "741ba1704ae21999c00942f9f5944f801e977f54302af346b596287599ad1862" "checksum ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a" "checksum rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" -"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf" +"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" "checksum rust-embed 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b18893bdbdb0fa5bce588f5d7ab4afbd0678fc879d31535912bf39b7fbc062d6" "checksum rust-embed-impl 5.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50633968284cfc373661345fc6382e62b738079f045738023ebc5e445cf44357" "checksum rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105" "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -"checksum rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a75ffeb84a6bd9d014713119542ce415db3a3e4748f0bfce1e1416cd224a23a5" +"checksum rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" +"checksum rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51ffebdbb48c14f84eba0b715197d673aff1dd22cc1007ca647e28483bbcc307" "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" -"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" +"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" "checksum secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e0344a794ff109f85547039536028e12f313178ac1545e49fdf16a530d900a7b" -"checksum security-framework 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" -"checksum security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" +"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" +"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" "checksum serde-value 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7a663f873dedc4eac1a559d4c6bc0d0b2c34dc5ac4702e105014b8281489e44f" "checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" -"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7" +"checksum serde_json 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)" = "21b01d7f0288608a01dca632cf1df859df6fd6ffa885300fc275ce2ba6221953" "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" -"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" +"checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" @@ -2636,7 +2641,7 @@ dependencies = [ "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum subtle 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238" +"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" @@ -2644,13 +2649,13 @@ dependencies = [ "checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" "checksum tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c1c5676413eaeb1ea35300a0224416f57abc3bd251657e0fafc12c47ff98c060" -"checksum tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" -"checksum tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" -"checksum tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4adb8b3e5f86b707f1b54e7c15b6de52617a823608ccda98a15d3a24222f265a" -"checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" -"checksum tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4afef9ce97ea39593992cf3fa00ff33b1ad5eb07665b31355df63a690e38c736" +"checksum tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b" +"checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" +"checksum tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "141afec0978abae6573065a48882c6bae44c5cc61db9b511ac4abf6a09bfd9cc" +"checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" +"checksum tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08283643b1d483eb7f3fc77069e63b5cba3e4db93514b3d45470e67f123e4e48" "checksum tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0436413ba71545bcc6c2b9a0f9d78d72deb0123c6a75ccdfe7c056f9930f5e52" -"checksum tower 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b299df54795e6f72bca45063b5803d1f9a1ba9b11a3c7c64d0b84519b451fdd" +"checksum tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd3169017c090b7a28fce80abaad0ab4f5566423677c9331bb320af7e49cfe62" "checksum tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a792277613b7052448851efcf98a2c433e6f1d01460832dc60bef676bc275d4c" "checksum tower-buffer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4887dc2a65d464c8b9b66e0e4d51c2fd6cf5b3373afc72805b0a60bce00446a" "checksum tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f6b5000c3c54d269cc695dff28136bb33d08cbf1df2c48129e143ab65bf3c2a" @@ -2664,10 +2669,10 @@ dependencies = [ "checksum tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" "checksum tower-timeout 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "127b8924b357be938823eaaec0608c482d40add25609481027b96198b2e4b31e" "checksum tower-util 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5702d7890e35b2aae6ee420e8a762547505dbed30c075fbc84ec069a0aa18314" -"checksum tracing 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6de6a8590a29d3f401eab60470c699efa0adf7b4f0352055bf24df2b69849b40" +"checksum tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e213bd24252abeb86a0b7060e02df677d367ce6cb772cef17e9214b8390a8d3" "checksum tracing-attributes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04cfd395def5a60236e187e1ff905cb55668a59f29928dec05e6e1b1fd2ac1f3" -"checksum tracing-core 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "d7fb511ac6ca1d031c5cfc26d8c38da9d88e91d2bd5b38b60cf8dc1b8b5c211f" -"checksum tracing-futures 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "107ae59580d2a1d994b6b965b16fe94c969fe86d3f7fd2572a1ee243bcaf7f09" +"checksum tracing-core 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "13a46f11e372b8bd4b4398ea54353412fdd7fd42a8370c7e543e218cf7661978" +"checksum tracing-futures 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "33848db47a7c848ab48b66aab3293cb9c61ea879a3586ecfcd17302fcea0baf1" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6" @@ -2679,17 +2684,17 @@ dependencies = [ "checksum untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece" "checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" -"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" +"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" "checksum want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d" -"checksum wasm-bindgen 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "99de4b68939a880d530aed51289a7c7baee154e3ea8ac234b542c49da7134aaf" -"checksum wasm-bindgen-backend 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "b58e66a093a7b7571cb76409763c495b8741ac4319ac20acc2b798f6766d92ee" -"checksum wasm-bindgen-macro 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "a80f89daea7b0a67b11f6e9f911422ed039de9963dce00048a653b63d51194bf" -"checksum wasm-bindgen-macro-support 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "4f9dbc3734ad6cff6b76b75b7df98c06982becd0055f651465a08f769bca5c61" -"checksum wasm-bindgen-shared 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "d907984f8506b3554eab48b8efff723e764ddbf76d4cd4a3fe4196bc00c49a70" -"checksum wasm-bindgen-webidl 0.2.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f85a3825a459cf6a929d03bacb54dca37a614d43032ad1343ef2d4822972947d" -"checksum web-sys 0.3.33 (registry+https://github.com/rust-lang/crates.io-index)" = "2fb60433d0dc12c803b9b017b3902d80c9451bab78d27bc3210bf2a7b96593f1" -"checksum webpki 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7e664e770ac0110e2384769bcc59ed19e329d81f555916a6e072714957b81b4" +"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +"checksum wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "5205e9afdf42282b192e2310a5b463a6d1c1d774e30dc3c791ac37ab42d2616c" +"checksum wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "11cdb95816290b525b32587d76419facd99662a07e59d3cdb560488a819d9a45" +"checksum wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "574094772ce6921576fb6f2e3f7497b8a76273b6db092be18fc48a082de09dc3" +"checksum wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "e85031354f25eaebe78bb7db1c3d86140312a911a106b2e29f9cc440ce3e7668" +"checksum wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e7e61fc929f4c0dddb748b102ebf9f632e2b8d739f2016542b4de2965a9601" +"checksum wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "ef012a0d93fc0432df126a8eaf547b2dce25a8ce9212e1d3cbeef5c11157975d" +"checksum web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b" +"checksum webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" "checksum webpki-roots 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" "checksum weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164" "checksum which 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5475d47078209a02e60614f7ba5e645ef3ed60f771920ac1906d7c1cc65024c8" @@ -2697,7 +2702,7 @@ dependencies = [ "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" +"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 8bcf505..1d49baf 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "91c8d18d17aa5b67dc5dc8a5f8cfe4e323fdda30" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "fb07cae93c706cce929beef98690109e5f2d7592" } diff --git a/src/Model/ChatItem.cpp b/src/Model/ChatItem.cpp index fff8f9a..31ff448 100644 --- a/src/Model/ChatItem.cpp +++ b/src/Model/ChatItem.cpp @@ -5,7 +5,7 @@ ChatItem::ChatItem() {} -ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations) +ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize) { _timestamp = timestamp; _address = address; @@ -17,9 +17,10 @@ ChatItem::ChatItem(long timestamp, QString address, QString contact, QString mem _txid = txid; _confirmations = confirmations; _outgoing = false; + _notarize = notarize; } -ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing) +ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize) { _timestamp = timestamp; _address = address; @@ -31,6 +32,7 @@ ChatItem::ChatItem(long timestamp, QString address, QString contact, QString mem _txid = txid; _confirmations = confirmations; _outgoing = outgoing; + _notarize = notarize; } long ChatItem::getTimestamp() @@ -81,6 +83,11 @@ bool ChatItem::isOutgoing() return _outgoing; } +bool ChatItem::isNotarized() +{ + return _notarize; +} + void ChatItem::setTimestamp(long timestamp) { _timestamp = timestamp; @@ -128,6 +135,10 @@ void ChatItem::toggleOutgo() { _outgoing = true; } +void ChatItem::notarized() +{ + _notarize = false; +} QString ChatItem::toChatLine() @@ -136,14 +147,25 @@ QString ChatItem::toChatLine() QString lock; myDateTime.setTime_t(_timestamp); - if (_confirmations == 0){ + if (_notarize == true) + + { + + lock = " "; + + }else{ + lock = " "; - }else{ + } + if ((_confirmations > 0) && (_notarize == false)) + + { lock = " "; + } + - } - +qDebug()<<_notarize; QString line = QString("") + myDateTime.toString("dd.MM.yyyy hh:mm"); line += QString(lock) + QString(""); line += QString("

") + _memo.toHtmlEscaped() + QString("

"); diff --git a/src/Model/ChatItem.h b/src/Model/ChatItem.h index be8a807..edfa8a0 100644 --- a/src/Model/ChatItem.h +++ b/src/Model/ChatItem.h @@ -20,11 +20,12 @@ class ChatItem QString _txid; int _confirmations; bool _outgoing = false; + bool _notarize = false; public: ChatItem(); - ChatItem(long timestamp, QString address, QString contact, QString memo,QString requestZaddr, QString type, QString cid, QString txid, int confirmations); - ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing); + ChatItem(long timestamp, QString address, QString contact, QString memo,QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize); + ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize); long getTimestamp(); QString getAddress(); QString getContact(); @@ -35,6 +36,7 @@ class ChatItem QString getTxid(); int getConfirmations(); bool isOutgoing(); + bool isNotarized(); void setTimestamp(long timestamp); void setAddress(QString address); void setContact(QString contact); @@ -45,6 +47,7 @@ class ChatItem void setTxid(QString txid); void setConfirmations(int confirmations); void toggleOutgo(); + void notarized(); QString toChatLine(); json toJson(); ~ChatItem(); diff --git a/src/controller.cpp b/src/controller.cpp index 8007205..2b4c982 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -239,6 +239,12 @@ void Controller::getInfoThenRefresh(bool force) int curBlock = reply["latest_block_height"].get(); int longestchain = reply["longestchain"].get(); int notarized = reply["notarized"].get(); + int lag = longestchain - notarized ; + + + qDebug()<<"Lag :" << lag; + + int difficulty = reply["difficulty"].get(); int blocks_until_halving= 340000 - curBlock; int halving_days = (blocks_until_halving * 150) / (60*60*24) ; @@ -258,7 +264,11 @@ void Controller::getInfoThenRefresh(bool force) ); ui->longestchain->setText( "Block: " + QLocale(QLocale::German).toString(longestchain) + ); + + this->setLag(lag); + ui->difficulty->setText( QLocale(QLocale::German).toString(difficulty) ); @@ -285,6 +295,8 @@ void Controller::getInfoThenRefresh(bool force) (QLocale(QLocale::English).toString(blocks_until_halving)) + " Blocks or , " + (QLocale(QLocale::English).toString(halving_days) + " days" ) ); + + this->setLag(lag); } ui->Version->setText( @@ -293,6 +305,7 @@ void Controller::getInfoThenRefresh(bool force) ui->Vendor->setText( QString::fromStdString(reply["vendor"].get()) ); + this->setLag(lag); main->logger->write( QString("Refresh. curblock ") % QString::number(curBlock) % ", update=" % (doUpdate ? "true" : "false") ); @@ -562,6 +575,20 @@ void Controller::getInfoThenRefresh(bool force) }); } +int Controller::getLag() +{ + + return _lag; + +} + +void Controller::setLag(int lag) +{ + + _lag = lag; + +} + void Controller::refreshAddresses() { if (!zrpc->haveConnection()) @@ -877,6 +904,15 @@ void Controller::refreshTransactions() { memo = QString::fromStdString(o["memo"]); QString cid; + bool isNotarized; + + if (confirmations > getLag()) + { + isNotarized = true; + }else{ + + isNotarized = false; + } ChatItem item = ChatItem( datetime, @@ -888,10 +924,11 @@ void Controller::refreshTransactions() { cid, txid, confirmations, - true + true, + isNotarized ); // qDebug()<<"Memo : " <setData(ChatIDGenerator::getInstance()->generateID(item), item); @@ -973,8 +1010,20 @@ void Controller::refreshTransactions() { requestZaddr = chatModel->getrequestZaddrByTx(txid); }else{ requestZaddr = ""; - } + } + position = it["position"].get(); + + bool isNotarized; + + if (confirmations > getLag()) + { + isNotarized = true; + }else{ + + isNotarized = false; + } + ChatItem item = ChatItem( datetime, address, @@ -985,9 +1034,10 @@ void Controller::refreshTransactions() { cid, txid, confirmations, - false + false, + isNotarized ); - // qDebug()<< "Position : " << position; + qDebug()<< "Notarized : " << isNotarized; // qDebug()<<"Confirmation :" << confirmations; DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); @@ -995,6 +1045,7 @@ void Controller::refreshTransactions() { } } + qDebug()<< getLag(); // Calculate the total unspent amount that's pending. This will need to be // shown in the UI so the user can keep track of pending funds diff --git a/src/controller.h b/src/controller.h index b34aeb4..f35d636 100644 --- a/src/controller.h +++ b/src/controller.h @@ -37,7 +37,10 @@ public: Connection* getConnection() { return zrpc->getConnection(); } void setConnection(Connection* c); void refresh(bool force = false); - void refreshAddresses(); + void refreshAddresses(); + int getLag(); + void setLag(int lag); + int _lag; void checkForUpdate(bool silent = true); void refreshZECPrice(); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 2d85bd5..c7d5481 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -1505,6 +1505,9 @@ 521 + + The locks shows you the status of the message. Red lock = unconfirmed, green lock = min. 1 confirmations, orange lock = message is notarized + Qt::ScrollBarAsNeeded From 537d3828b060150a24e9cd1a6a81d2ee7b8cc753 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Mon, 25 May 2020 22:44:07 +0200 Subject: [PATCH 27/45] add contectmenu to contactitems --- src/contactmodel.cpp | 19 +++++++++++++++---- src/contactmodel.h | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 6f452fa..8700a32 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -6,10 +6,19 @@ #include "mainwindow.h" #include "chatmodel.h" + void ContactModel::renderContactList(QListView* view) { QStandardItemModel* contact = new QStandardItemModel(); - + QMenu* contextMenu; + QAction* requestAction; + QAction* editAction; + contextMenu = new QMenu(view); + requestAction = new QAction("Send a contact request",contextMenu); + editAction = new QAction("Edit this contact",contextMenu); + + // QObject::connect(requestAction,SIGNAL(customContextMenuRequested(const QModelIndex)),this, SLOT(&ContactModel::requestActionClickedSlot)); + for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) { @@ -18,14 +27,16 @@ void ContactModel::renderContactList(QListView* view) QStandardItem* Items1 = new QStandardItem(c.getName()); Items1->setData(QIcon(avatar),Qt::DecorationRole); + contact->appendRow(Items1); view->setModel(contact); view->setIconSize(QSize(60,70)); view->setUniformItemSizes(true); view->setDragDropMode(QAbstractItemView::DropOnly); view->show(); - + view->setContextMenuPolicy(Qt::ActionsContextMenu); + view->addAction(requestAction); + view->addAction(editAction); } - -} \ No newline at end of file +} diff --git a/src/contactmodel.h b/src/contactmodel.h index fcdf7a3..cfe57bc 100644 --- a/src/contactmodel.h +++ b/src/contactmodel.h @@ -8,6 +8,7 @@ class ContactModel + { public: ContactModel() {} From eb0bb65230540b2a89437ae01f5a76aae537b8bc Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Tue, 26 May 2020 19:40:42 +0200 Subject: [PATCH 28/45] add error message for messages over 512 chars --- src/chatmodel.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 0e636b2..63ce92c 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -349,6 +349,22 @@ void MainWindow::sendChat() { return; } + int max = 512; + QString chattext = ui->memoTxtChat->toPlainText(); + int size = chattext.size(); + + if (size > max){ + + // auto addr = ""; + // if (! Settings::isZAddress(AddressBook::addressFromAddressLabel(addr->text()))) { + QMessageBox msg(QMessageBox::Critical, tr("Your Message is too long"), + tr("You can only write messages with 512 character maximum \n") + tr("\n Please reduce your message to 512 character."), + QMessageBox::Ok, this); + + msg.exec(); + return; + } + Tx tx = createTxFromChatPage(); QString error = doSendChatTxValidations(tx); @@ -646,6 +662,22 @@ void MainWindow::ContactRequest() { return; } + int max = 512; + QString chattext = contactRequest.getMemo();; + int size = chattext.size(); + + if (size > max){ + + // auto addr = ""; + // if (! Settings::isZAddress(AddressBook::addressFromAddressLabel(addr->text()))) { + QMessageBox msg(QMessageBox::Critical, tr("Your Message is too long"), + tr("You can only write messages with 512 character maximum \n") + tr("\n Please reduce your message to 512 character."), + QMessageBox::Ok, this); + + msg.exec(); + return; + } + Tx tx = createTxForSafeContactRequest(); QString error = doSendRequestTxValidations(tx); From 963857fbdaa910342aff67e4a55eeaf05598101d Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Tue, 26 May 2020 20:09:38 +0200 Subject: [PATCH 29/45] undo dep upgrade,refresh tab after sending a message --- lib/Cargo.lock | 6 +++--- lib/Cargo.toml | 2 +- src/chatmodel.cpp | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 07f7981..c2021b0 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -1177,7 +1177,7 @@ version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93)", ] [[package]] @@ -1640,7 +1640,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592#fb07cae93c706cce929beef98690109e5f2d7592" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93#1daf5ce75fcbd51047360681652f173f93f54f93" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2631,7 +2631,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=fb07cae93c706cce929beef98690109e5f2d7592)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 1d49baf..15e0acd 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "fb07cae93c706cce929beef98690109e5f2d7592" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "1daf5ce75fcbd51047360681652f173f93f54f93" } diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 63ce92c..cb5621d 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -403,6 +403,7 @@ void MainWindow::sendChat() { d->show(); ui->memoTxtChat->clear(); + // And send the Tx rpc->executeTransaction(tx, @@ -411,6 +412,7 @@ void MainWindow::sendChat() { connD->status->setText(tr("Done!")); connD->statusDetail->setText(txid); + QTimer::singleShot(1000, [=]() { d->accept(); @@ -421,7 +423,7 @@ void MainWindow::sendChat() { }); // Force a UI update so we get the unconfirmed Tx - // rpc->refresh(true); + rpc->refresh(true); ui->memoTxtChat->clear(); }, @@ -440,6 +442,8 @@ void MainWindow::sendChat() { QMessageBox::critical(this, QObject::tr("Transaction Error"), errStr, QMessageBox::Ok); } ); + + // rpc->refresh(true); } QString MainWindow::doSendChatTxValidations(Tx tx) { @@ -465,7 +469,7 @@ QString MainWindow::doSendChatTxValidations(Tx tx) { auto available = rpc->getModel()->getAvailableBalance(); if (available < total) { - return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 3 confirmations before they can be spent") + return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 1 confirmations before they can be spent") .arg(available.toDecimalhushString(), total.toDecimalhushString()); } @@ -662,7 +666,7 @@ void MainWindow::ContactRequest() { return; } - int max = 512; + int max = 512; QString chattext = contactRequest.getMemo();; int size = chattext.size(); From 7d081f678cabc58898b4ab68d31a489eb76920a3 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Tue, 26 May 2020 20:21:59 +0200 Subject: [PATCH 30/45] fix some typos, delete -add only a contact- on chattab --- src/chatmodel.cpp | 6 +++--- src/contactrequest.ui | 33 ++++----------------------------- 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index cb5621d..97d46f9 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -399,7 +399,7 @@ void MainWindow::sendChat() { } connD->status->setText(tr("Please wait...")); - connD->statusDetail->setText(tr("Your Message will be send")); + connD->statusDetail->setText(tr("Your Message will be sent")); d->show(); ui->memoTxtChat->clear(); @@ -518,7 +518,7 @@ void::MainWindow::addContact() }); QObject::connect(request.sendRequestButton, &QPushButton::clicked, this, &MainWindow::saveandsendContact); - QObject::connect(request.onlyAdd, &QPushButton::clicked, this, &MainWindow::saveContact); + // QObject::connect(request.onlyAdd, &QPushButton::clicked, this, &MainWindow::saveContact); dialog.exec(); @@ -716,7 +716,7 @@ void MainWindow::ContactRequest() { } connD->status->setText(tr("Please wait...")); - connD->statusDetail->setText(tr("Your Contact will be send")); + connD->statusDetail->setText(tr("Your contact request will be sent")); d->show(); ui->memoTxtChat->clear(); diff --git a/src/contactrequest.ui b/src/contactrequest.ui index 8667057..1e37ee9 100644 --- a/src/contactrequest.ui +++ b/src/contactrequest.ui @@ -6,7 +6,7 @@ 0 0 - 777 + 780 427 @@ -233,7 +233,7 @@ - + <html><head/><body><p align="center"><span style=" font-weight:600; text-decoration: underline;">Insert a memo for your request</span></p></body></html> @@ -318,36 +318,11 @@ - - - - - 152 - 25 - - - - - 100 - 0 - - - - Only add this contact - - - false - - - false - - - - 188 + 300 25 @@ -358,7 +333,7 @@ - Add Contact & send request + Add Contact and send request false From 78ca3cf8caca719a43f8c3ac5df23ab019dc136d Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Tue, 26 May 2020 22:11:15 +0200 Subject: [PATCH 31/45] fix for double outgoing message --- src/Chat/Chat.cpp | 5 ++++- src/chatmodel.cpp | 9 ++++----- src/controller.cpp | 37 +++++++++++++++++++------------------ src/mainwindow.cpp | 1 + src/mainwindow.ui | 7 +++++-- 5 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/Chat/Chat.cpp b/src/Chat/Chat.cpp index f76222d..c0482b8 100644 --- a/src/Chat/Chat.cpp +++ b/src/Chat/Chat.cpp @@ -67,7 +67,8 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view, QLabel *label) Items->setData(OUTGOING, Qt::UserRole + 1); chat->appendRow(Items); - ui->listChat->setModel(chat); + ui->listChat->setModel(chat); + } else @@ -86,6 +87,8 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view, QLabel *label) Items1->setData(INCOMING, Qt::UserRole + 1); chat->appendRow(Items1); ui->listChat->setModel(chat); + + } else { diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 97d46f9..e5864f8 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -53,7 +53,6 @@ void ChatModel::clear() void ChatModel::addMessage(ChatItem item) { QString key = ChatIDGenerator::getInstance()->generateID(item); //this->generateChatItemID(item); - // qDebug() << "inserting chatitem with id: " << key; this->chatItems[key] = item; } @@ -72,9 +71,7 @@ void ChatModel::showMessages() } } - - - + void MainWindow::renderContactRequest(){ Ui_requestDialog requestContact; @@ -336,7 +333,9 @@ void MainWindow::sendChat() { // Memos can only be used with zAddrs. So check that first // for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) - + QString Name = ui->contactNameMemo->text(); + int sizename = Name.size(); + qDebug()<< sizename; if (ui->contactNameMemo->text().trimmed().isEmpty() || ui->memoTxtChat->toPlainText().trimmed().isEmpty()) { // auto addr = ""; diff --git a/src/controller.cpp b/src/controller.cpp index 2b4c982..cd6152b 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -237,18 +237,15 @@ void Controller::getInfoThenRefresh(bool force) zrpc->fetchInfo([=] (const json& reply) { prevCallSucceeded = true; int curBlock = reply["latest_block_height"].get(); + bool doUpdate = force || (model->getLatestBlock() != curBlock); + int difficulty = reply["difficulty"].get(); + int blocks_until_halving= 340000 - curBlock; + int halving_days = (blocks_until_halving * 150) / (60*60*24) ; int longestchain = reply["longestchain"].get(); int notarized = reply["notarized"].get(); - int lag = longestchain - notarized ; + - qDebug()<<"Lag :" << lag; - - - int difficulty = reply["difficulty"].get(); - int blocks_until_halving= 340000 - curBlock; - int halving_days = (blocks_until_halving * 150) / (60*60*24) ; - bool doUpdate = force || (model->getLatestBlock() != curBlock); model->setLatestBlock(curBlock); if ( Settings::getInstance()->get_currency_name() == "EUR" || @@ -267,7 +264,7 @@ void Controller::getInfoThenRefresh(bool force) ); - this->setLag(lag); + ui->difficulty->setText( QLocale(QLocale::German).toString(difficulty) @@ -295,8 +292,6 @@ void Controller::getInfoThenRefresh(bool force) (QLocale(QLocale::English).toString(blocks_until_halving)) + " Blocks or , " + (QLocale(QLocale::English).toString(halving_days) + " days" ) ); - - this->setLag(lag); } ui->Version->setText( @@ -305,7 +300,6 @@ void Controller::getInfoThenRefresh(bool force) ui->Vendor->setText( QString::fromStdString(reply["vendor"].get()) ); - this->setLag(lag); main->logger->write( QString("Refresh. curblock ") % QString::number(curBlock) % ", update=" % (doUpdate ? "true" : "false") ); @@ -553,8 +547,12 @@ void Controller::getInfoThenRefresh(bool force) refreshAddresses(); // This calls refreshZSentTransactions() and refreshReceivedZTrans() refreshTransactions(); } + + int lag = longestchain - notarized ; + this->setLag(lag); }, [=](QString err) { // hushd has probably disappeared. + this->noConnection(); // Prevent multiple dialog boxes, because these are called async @@ -914,6 +912,12 @@ void Controller::refreshTransactions() { isNotarized = false; } + if (confirmations == 1) { + DataStore::getChatDataStore()->clear(); + this->refresh(true); + } + qDebug()<<"Conf : " << confirmations; + ChatItem item = ChatItem( datetime, address, @@ -927,12 +931,10 @@ void Controller::refreshTransactions() { true, isNotarized ); - // qDebug()<<"Memo : " <setData(ChatIDGenerator::getInstance()->generateID(item), item); - - } + } + + items.push_back(TransactionItemDetail{address, amount, memo}); total_amount = total_amount + amount; @@ -1038,7 +1040,6 @@ void Controller::refreshTransactions() { isNotarized ); qDebug()<< "Notarized : " << isNotarized; - // qDebug()<<"Confirmation :" << confirmations; DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4f6c428..d71baad 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1208,6 +1208,7 @@ void MainWindow::setupTransactionsTab() { ui->listChat->setMinimumSize(200,350); ui->listChat->setItemDelegate(new ListViewDelegate()); ui->listChat->show(); + ui->transactionsTable->setContextMenuPolicy(Qt::CustomContextMenu); // Table right click QObject::connect(ui->transactionsTable, &QTableView::customContextMenuRequested, [=] (QPoint pos) { diff --git a/src/mainwindow.ui b/src/mainwindow.ui index c7d5481..a4a4e78 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -1378,7 +1378,10 @@ true - QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked + QAbstractItemView::NoEditTriggers + + + false false @@ -1518,7 +1521,7 @@ QAbstractScrollArea::AdjustToContents - QAbstractItemView::AllEditTriggers + QAbstractItemView::NoEditTriggers QListView::Adjust From aa46cc99ae4489ad818cc65f123e57476e6af2bc Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Tue, 26 May 2020 23:28:40 +0200 Subject: [PATCH 32/45] refresh if conf=1 --- src/chatmodel.cpp | 25 +++++++++++++++++++++++++ src/chatmodel.h | 4 ++++ src/controller.cpp | 19 ++++++++++++++----- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index e5864f8..b0acb38 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -216,6 +216,11 @@ void ChatModel::addrequestZaddr(QString tx, QString requestZaddr) this->requestZaddrMap[tx] = requestZaddr; } +void ChatModel::addconfirmations(QString tx, int confirmation) +{ + this->confirmationsMap[tx] = confirmation; +} + QString ChatModel::getCidByTx(QString tx) { for(auto& pair : this->cidMap) @@ -231,6 +236,21 @@ QString ChatModel::getCidByTx(QString tx) return QString("0xdeadbeef"); } +QString ChatModel::getConfirmationByTx(QString tx) +{ + for(auto& pair : this->confirmationsMap) + { + + } + + if(this->confirmationsMap.count(tx) > 0) + { + return this->confirmationsMap[tx]; + } + + return QString("0xdeadbeef"); +} + QString ChatModel::getrequestZaddrByTx(QString tx) { for(auto& pair : this->requestZaddrMap) @@ -256,6 +276,11 @@ void ChatModel::killrequestZaddrCache() this->requestZaddrMap.clear(); } +void ChatModel::killConfirmationCache() +{ + this->confirmationsMap.clear(); +} + QString MainWindow::createHeaderMemo(QString type, QString cid, QString zaddr, int version=0, int headerNumber=1) { diff --git a/src/chatmodel.h b/src/chatmodel.h index e8bc3e7..7ca5a0f 100644 --- a/src/chatmodel.h +++ b/src/chatmodel.h @@ -32,6 +32,7 @@ class ChatModel MainWindow* main; std::map cidMap; std::map requestZaddrMap; + std::map confirmationsMap; std::map> sendrequestMap; public: @@ -49,10 +50,13 @@ class ChatModel void addMessage(QString timestamp, ChatItem item); void addCid(QString tx, QString cid); void addrequestZaddr(QString tx, QString requestZaddr); + void addconfirmations(QString tx, int confirmation); void addSendRequest(int i, QString myAddr, QString cid, QString addr ); QString getCidByTx(QString tx); QString getrequestZaddrByTx(QString tx); + QString getConfirmationByTx(QString tx); void killCidCache(); + void killConfirmationCache(); void killrequestZaddrCache(); }; diff --git a/src/controller.cpp b/src/controller.cpp index cd6152b..541821c 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -896,6 +896,16 @@ void Controller::refreshTransactions() { CAmount amount = CAmount::fromqint64(-1* o["value"].get()); // Check for Memos + + if (confirmations == 0) { + chatModel->addconfirmations(txid, confirmations); + } + + if ((confirmations == 1) && (chatModel->getConfirmationByTx(txid) != QString("0xdeadbeef"))){ + DataStore::getChatDataStore()->clear(); + chatModel->killConfirmationCache(); + this->refresh(true); + } QString memo; if (!o["memo"].is_null()) { @@ -912,10 +922,6 @@ void Controller::refreshTransactions() { isNotarized = false; } - if (confirmations == 1) { - DataStore::getChatDataStore()->clear(); - this->refresh(true); - } qDebug()<<"Conf : " << confirmations; ChatItem item = ChatItem( @@ -932,10 +938,13 @@ void Controller::refreshTransactions() { isNotarized ); DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); + + + } - + // this->refresh(true); items.push_back(TransactionItemDetail{address, amount, memo}); total_amount = total_amount + amount; } From 56cc89a918b22bf217eadeb1e10a209b9b4e3980 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 07:41:11 +0200 Subject: [PATCH 33/45] dont delete unsent message when switching tab, add more contextmenu --- src/Model/ChatItem.h | 1 + src/contactmodel.cpp | 37 +++++++++++++++++++++++++------------ src/contactmodel.h | 3 +++ src/controller.cpp | 3 +-- src/mainwindow.cpp | 22 +++++++++++++++++++++- src/mainwindow.h | 1 + src/mainwindow.ui | 13 +++++++++++-- 7 files changed, 63 insertions(+), 17 deletions(-) diff --git a/src/Model/ChatItem.h b/src/Model/ChatItem.h index edfa8a0..11e3b65 100644 --- a/src/Model/ChatItem.h +++ b/src/Model/ChatItem.h @@ -36,6 +36,7 @@ class ChatItem QString getTxid(); int getConfirmations(); bool isOutgoing(); + bool isdouble(); bool isNotarized(); void setTimestamp(long timestamp); void setAddress(QString address); diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 8700a32..691c65e 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -5,20 +5,17 @@ #include "addressbook.h" #include "mainwindow.h" #include "chatmodel.h" +#include "requestdialog.h" +#include "ui_requestdialog.h" +#include "settings.h" +#include "controller.h" + void ContactModel::renderContactList(QListView* view) { QStandardItemModel* contact = new QStandardItemModel(); - QMenu* contextMenu; - QAction* requestAction; - QAction* editAction; - contextMenu = new QMenu(view); - requestAction = new QAction("Send a contact request",contextMenu); - editAction = new QAction("Edit this contact",contextMenu); - - // QObject::connect(requestAction,SIGNAL(customContextMenuRequested(const QModelIndex)),this, SLOT(&ContactModel::requestActionClickedSlot)); - + for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) { @@ -34,9 +31,25 @@ void ContactModel::renderContactList(QListView* view) view->setUniformItemSizes(true); view->setDragDropMode(QAbstractItemView::DropOnly); view->show(); - view->setContextMenuPolicy(Qt::ActionsContextMenu); - view->addAction(requestAction); - view->addAction(editAction); + + } } + +void MainWindow::showRequesthush() { + + Ui_RequestDialog req; + QDialog d(this); + req.setupUi(&d); + Settings::saveRestore(&d); + + // setupDialog(main, &d, &req); + + // Setup the Label completer for the Address + + + d.exec(); + +} + diff --git a/src/contactmodel.h b/src/contactmodel.h index cfe57bc..095fe99 100644 --- a/src/contactmodel.h +++ b/src/contactmodel.h @@ -5,14 +5,17 @@ #include "Model/ContactItem.h" #include +#include "mainwindow.h" class ContactModel { public: + ContactModel() {} void renderContactList(QListView* view); + }; #endif \ No newline at end of file diff --git a/src/controller.cpp b/src/controller.cpp index 541821c..10b41bb 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -943,8 +943,7 @@ void Controller::refreshTransactions() { } - - // this->refresh(true); + items.push_back(TransactionItemDetail{address, amount, memo}); total_amount = total_amount + amount; } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d71baad..24f9b7c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1358,13 +1358,33 @@ void MainWindow::setupchatTab() { // ui->ContactZaddr->setText(p.getPartnerAddress()); // ui->MyZaddr->setText(p.getMyAddress()); ui->contactNameMemo->setText(p.getName()); - ui->memoTxtChat->clear(); + // ui->memoTxtChat->clear(); rpc->refresh(true); // updateChat(); } }); + + QMenu* contextMenu; + QAction* requestAction; + QAction* editAction; + QAction* HushAction; + QAction* requestHushAction; + contextMenu = new QMenu(ui->listContactWidget); + requestAction = new QAction("Send a contact request",contextMenu); + editAction = new QAction("Delete this contact",contextMenu); + HushAction = new QAction("Send a friend some Hush",contextMenu); + requestHushAction = new QAction("Request some Hush",contextMenu); + ui->listContactWidget->setContextMenuPolicy(Qt::ActionsContextMenu); + ui->listContactWidget->addAction(requestAction); + ui->listContactWidget->addAction(editAction); + ui->listContactWidget->addAction(HushAction); + ui->listContactWidget->addAction(requestHushAction); + QObject::connect(requestHushAction, &QAction::triggered, [=]() { + MainWindow::showRequesthush(); + }); + ui->memoTxtChat->setLenDisplayLabelChat(ui->memoSizeChat); } diff --git a/src/mainwindow.h b/src/mainwindow.h index fb08fdb..56bfbc6 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -60,6 +60,7 @@ public: void stopWebsocket(); void saveContact(); void saveandsendContact(); + void showRequesthush(); // void setmaxlenChat(int len); // void updateDisplay(); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index a4a4e78..de58411 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -1389,6 +1389,9 @@ QAbstractItemView::SingleSelection + + QAbstractItemView::SelectItems + @@ -1422,10 +1425,16 @@ QTextEdit::AutoNone - QTextEdit::FixedColumnWidth + QTextEdit::FixedPixelWidth - 80 + 600 + + + false + + + Qt::TextEditorInteraction From 4d8e3ba4605fa7d86be7a554ac6436cf4cf3c475 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 13:46:51 +0200 Subject: [PATCH 34/45] add hushrequest and delete contact --- src/hushrequest.ui | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/hushrequest.ui diff --git a/src/hushrequest.ui b/src/hushrequest.ui new file mode 100644 index 0000000..fb923db --- /dev/null +++ b/src/hushrequest.ui @@ -0,0 +1,72 @@ + + + + + Dialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + 30 + 240 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + buttonBox + accepted() + Dialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Dialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + + From d0f406d37375eeb192336cc594bef5f2e1998a61 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 13:47:22 +0200 Subject: [PATCH 35/45] add hushrequest and delete contact --- silentdragon-lite.pro | 1 + src/contactmodel.cpp | 102 +++++++++++++++-- src/contactmodel.h | 1 + src/hushrequest.ui | 208 +++++++++++++++++++++++----------- src/mainwindow.cpp | 48 ++++++-- src/requestdialog.ui | 252 +++++++++++++++++++++--------------------- 6 files changed, 406 insertions(+), 206 deletions(-) diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index 4d07b4d..90b261b 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -122,6 +122,7 @@ HEADERS += \ FORMS += \ src/contactrequest.ui \ src/encryption.ui \ + src/hushrequest.ui \ src/mainwindow.ui \ src/migration.ui \ src/newseed.ui \ diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 691c65e..7f9d097 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -7,6 +7,7 @@ #include "chatmodel.h" #include "requestdialog.h" #include "ui_requestdialog.h" +#include "ui_hushrequest.h" #include "settings.h" #include "controller.h" @@ -39,17 +40,104 @@ void ContactModel::renderContactList(QListView* view) void MainWindow::showRequesthush() { - Ui_RequestDialog req; + Ui_hushrequest req; QDialog d(this); req.setupUi(&d); Settings::saveRestore(&d); - // setupDialog(main, &d, &req); + QString label = ui->contactNameMemo->text(); + for(auto &p : AddressBook::getInstance()->getAllAddressLabels()) + { + + if (p.getName() == label) + + { + + QString addr = p.getPartnerAddress(); + QString myzaddr = p.getMyAddress(); + + req.txtFrom->setText(addr); + req.lblAddressInfo->setText(myzaddr); + // Amount textbox + req.txtAmount->setValidator(this->getAmountValidator()); + QObject::connect(req.txtAmount, &QLineEdit::textChanged, [=] (auto text) { + CAmount amount = CAmount::fromDecimalString(text); + if (Settings::getInstance()->get_currency_name() == "USD") { + req.txtAmountUSD->setText(amount.toDecimalUSDString()); + } else if (Settings::getInstance()->get_currency_name() == "EUR") { + req.txtAmountUSD->setText(amount.toDecimalEURString()); + } else if (Settings::getInstance()->get_currency_name() == "BTC") { + req.txtAmountUSD->setText(amount.toDecimalBTCString()); + } else if (Settings::getInstance()->get_currency_name() == "CNY") { + req.txtAmountUSD->setText(amount.toDecimalCNYString()); + } else if (Settings::getInstance()->get_currency_name() == "RUB") { + req.txtAmountUSD->setText(amount.toDecimalRUBString()); + } else if (Settings::getInstance()->get_currency_name() == "CAD") { + req.txtAmountUSD->setText(amount.toDecimalCADString()); + } else if (Settings::getInstance()->get_currency_name() == "SGD") { + req.txtAmountUSD->setText(amount.toDecimalSGDString()); + } else if (Settings::getInstance()->get_currency_name() == "CHF") { + req.txtAmountUSD->setText(amount.toDecimalCHFString()); + } else if (Settings::getInstance()->get_currency_name() == "INR") { + req.txtAmountUSD->setText(amount.toDecimalINRString()); + } else if (Settings::getInstance()->get_currency_name() == "GBP") { + req.txtAmountUSD->setText(amount.toDecimalGBPString()); + } else if (Settings::getInstance()->get_currency_name() == "AUD") { + req.txtAmountUSD->setText(amount.toDecimalBTCString()); + } + }); + CAmount amount = CAmount::fromDecimalString(req.txtAmount->text()); + if (Settings::getInstance()->get_currency_name() == "USD") { + req.txtAmountUSD->setText(amount.toDecimalUSDString()); + } else if (Settings::getInstance()->get_currency_name() == "EUR") { + req.txtAmountUSD->setText(amount.toDecimalEURString()); + } else if (Settings::getInstance()->get_currency_name() == "BTC") { + req.txtAmountUSD->setText(amount.toDecimalBTCString()); + } else if (Settings::getInstance()->get_currency_name() == "CNY") { + req.txtAmountUSD->setText(amount.toDecimalCNYString()); + } else if (Settings::getInstance()->get_currency_name() == "RUB") { + req.txtAmountUSD->setText(amount.toDecimalRUBString()); + } else if (Settings::getInstance()->get_currency_name() == "CAD") { + req.txtAmountUSD->setText(amount.toDecimalCADString()); + } else if (Settings::getInstance()->get_currency_name() == "SGD") { + req.txtAmountUSD->setText(amount.toDecimalSGDString()); + } else if (Settings::getInstance()->get_currency_name() == "CHF") { + req.txtAmountUSD->setText(amount.toDecimalCHFString()); + } else if (Settings::getInstance()->get_currency_name() == "INR") { + req.txtAmountUSD->setText(amount.toDecimalINRString()); + } else if (Settings::getInstance()->get_currency_name() == "GBP") { + req.txtAmountUSD->setText(amount.toDecimalGBPString()); + } else if (Settings::getInstance()->get_currency_name() == "AUD") { + req.txtAmountUSD->setText(amount.toDecimalBTCString()); + } + req.txtMemo->setAcceptButton(req.buttonBox->button(QDialogButtonBox::Ok)); + req.txtMemo->setLenDisplayLabel(req.lblMemoLen); + req.txtMemo->setMaxLen(400); + + req.txtFrom->setFocus(); + + + } + } + if (d.exec() == QDialog::Accepted) { + // Construct a hush Payment URI with the data and pay it immediately. + CAmount amount = CAmount::fromDecimalString(req.txtAmount->text()); + QString memoURI = "hush:" + req.lblAddressInfo->text() + + "?amt=" + amount.toDecimalString() + + "&memo=" + QUrl::toPercentEncoding(req.txtMemo->toPlainText()); + + QString sendURI = "hush:" + AddressBook::addressFromAddressLabel(req.txtFrom->text()) + + "?amt=0.0001" + + "&memo=" + QUrl::toPercentEncoding(memoURI); + + // If the disclosed address in the memo doesn't have a balance, it will automatically fallback to the default + // sapling address + this->payhushURI(sendURI, req.lblAddressInfo->text()); + + + + } - // Setup the Label completer for the Address - - - d.exec(); - } + diff --git a/src/contactmodel.h b/src/contactmodel.h index 095fe99..f361ceb 100644 --- a/src/contactmodel.h +++ b/src/contactmodel.h @@ -16,6 +16,7 @@ class ContactModel ContactModel() {} void renderContactList(QListView* view); + }; #endif \ No newline at end of file diff --git a/src/hushrequest.ui b/src/hushrequest.ui index fb923db..d0b0ca7 100644 --- a/src/hushrequest.ui +++ b/src/hushrequest.ui @@ -1,72 +1,156 @@ - - - - - Dialog - - + + + hushrequest + + 0 0 - 400 - 300 + 663 + 529 - + Dialog - - - - 30 - 240 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - + + + + + TextLabel + + + Qt::AlignCenter + + + + + + + Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. + + + true + + + + + + + Request From + + + + + + + Qt::Horizontal + + + + 541 + 20 + + + + + + + + zaddr + + + + + + + Amount in + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Amount + + + + + + + Amount USD + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Memo + + + + + + + 0 / 512 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + + + + My Address + + + + + + + The recipient will see this address in the "to" field when they pay your request. + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + - + + + MemoEdit + QPlainTextEdit +
memoedit.h
+
+
- - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - +
- diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 24f9b7c..cad3ca9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1338,9 +1338,6 @@ void MainWindow::setupchatTab() { ui->memoTxtChat->setTextColor("Black"); } - - - QObject::connect(ui->sendChatButton, &QPushButton::clicked, this, &MainWindow::sendChat); QObject::connect(ui->safeContactRequest, &QPushButton::clicked, this, &MainWindow::addContact); QObject::connect(ui->pushContact, &QPushButton::clicked, this , &MainWindow::renderContactRequest); @@ -1355,17 +1352,13 @@ void MainWindow::setupchatTab() { for(auto &p : AddressBook::getInstance()->getAllAddressLabels()) if (label_contact == p.getName()) { - // ui->ContactZaddr->setText(p.getPartnerAddress()); - // ui->MyZaddr->setText(p.getMyAddress()); - ui->contactNameMemo->setText(p.getName()); - // ui->memoTxtChat->clear(); - - rpc->refresh(true); - // updateChat(); + ui->contactNameMemo->setText(p.getName()); + rpc->refresh(true); + } }); - + QMenu* contextMenu; QAction* requestAction; QAction* editAction; @@ -1382,9 +1375,42 @@ void MainWindow::setupchatTab() { ui->listContactWidget->addAction(HushAction); ui->listContactWidget->addAction(requestHushAction); QObject::connect(requestHushAction, &QAction::triggered, [=]() { + QModelIndex index = ui->listContactWidget->currentIndex(); + QString label_contact = index.data(Qt::DisplayRole).toString(); + + for(auto &p : AddressBook::getInstance()->getAllAddressLabels()) + if (label_contact == p.getName()) { + ui->contactNameMemo->setText(p.getName()); + rpc->refresh(true); + + } + MainWindow::showRequesthush(); }); + QObject::connect(editAction, &QAction::triggered, [=]() { + QModelIndex index = ui->listContactWidget->currentIndex(); + QString label_contact = index.data(Qt::DisplayRole).toString(); + + for(auto &p : AddressBook::getInstance()->getAllAddressLabels()) + if (label_contact == p.getName()) { + + + QString label1 = p.getName(); + QString addr = p.getPartnerAddress(); + QString myzaddr = p.getMyAddress(); + QString cid = p.getCid(); + QString avatar = p.getAvatar(); + + + AddressBook::getInstance()->removeAddressLabel(label1, addr, myzaddr, cid,avatar); + // QList labels = AddressBook::getInstance()->getAllAddressLabels(); + rpc->refreshContacts( + ui->listContactWidget); + rpc->refresh(true); + } + }); + ui->memoTxtChat->setLenDisplayLabelChat(ui->memoSizeChat); } diff --git a/src/requestdialog.ui b/src/requestdialog.ui index 952f780..e52c475 100644 --- a/src/requestdialog.ui +++ b/src/requestdialog.ui @@ -14,37 +14,10 @@ Payment Request
- - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - AddressBook - - - - - - - - - Qt::Horizontal + + + + @@ -55,171 +28,198 @@ - - + + - My Address + The recipient will see this address in the "to" field when they pay your request. + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - color: red; - - - + + + + + 0 + 0 + - - + + - Amount in + TextLabel + + + Qt::AlignCenter - - + + + + + - - - - Qt::Horizontal + + + + color: red; - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + - - + + - + Memo - - - - - 0 - 0 - + + + + Qt::Vertical - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 20 + 40 + - - z address + + + + + + 0 / 512 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + Qt::Horizontal - - - - - 0 - 0 - + + + + Amount USD - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - Amount - - - + + Qt::Horizontal - - + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + AddressBook + + + + + + + - The recipient will see this address in the "to" field when they pay your request. + Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + true - - - - 0 / 512 + + + + + 0 + 0 + - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + z address - - + + - Amount USD - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + My Address - - + + - Qt::Vertical - - - - 20 - 40 - + Qt::Horizontal - - - - - - Memo + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - TextLabel - + + - Qt::AlignCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + Amount - - + + - Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. + Amount in - - true + + + + + + Qt::Horizontal From 50ac16f115235a88579711c34061a5a3b275650c Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 15:38:24 +0200 Subject: [PATCH 36/45] dummy option for subatomic swaps in sdl --- src/mainwindow.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cad3ca9..de2583e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1364,16 +1364,19 @@ void MainWindow::setupchatTab() { QAction* editAction; QAction* HushAction; QAction* requestHushAction; + QAction* subatomicAction; contextMenu = new QMenu(ui->listContactWidget); - requestAction = new QAction("Send a contact request",contextMenu); + requestAction = new QAction("Send a contact request - coming soon",contextMenu); editAction = new QAction("Delete this contact",contextMenu); - HushAction = new QAction("Send a friend some Hush",contextMenu); - requestHushAction = new QAction("Request some Hush",contextMenu); + HushAction = new QAction("Send a friend some Hush - coming soon",contextMenu); + requestHushAction = new QAction("Request some Hush - coming soon",contextMenu); + subatomicAction = new QAction("Make a subatomic swap with a friend- coming soon",contextMenu); ui->listContactWidget->setContextMenuPolicy(Qt::ActionsContextMenu); ui->listContactWidget->addAction(requestAction); ui->listContactWidget->addAction(editAction); ui->listContactWidget->addAction(HushAction); ui->listContactWidget->addAction(requestHushAction); + ui->listContactWidget->addAction(subatomicAction); QObject::connect(requestHushAction, &QAction::triggered, [=]() { QModelIndex index = ui->listContactWidget->currentIndex(); QString label_contact = index.data(Qt::DisplayRole).toString(); From f57dc2c5ad36ab609ffcd7b399a0b3bc70278050 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 17:46:52 +0200 Subject: [PATCH 37/45] push lock.png --- res/lock_orange.png | Bin 0 -> 929 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res/lock_orange.png diff --git a/res/lock_orange.png b/res/lock_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..11a5c55fc5a65456a87766f9f43793e93f20a230 GIT binary patch literal 929 zcmV;S177@zP)EX>4Tx04R}tkv&MmKpe$iQ%j3f9GXGJAwzYtAS&XhRVYG*P%E_RU_SZ@4|zbb@Z5yBv1;1Q7&%a{|zGt~4AUmwAfDc| z4aWP#yi%4_;&b9LlP*a7$aLA`H^wEGIhM(r*~~mKPb`$WSngt_Y-+?)#Bo*ADWA)E ztTNtWtX1nu`=0ED(Sp9R%ygQ=NMR965FtQD9TikzBSEW9iiHgACw=@wu3sdVOs)zP zax9<*4U+2z`-9)zTE)o;FDaS?LNAW0S*p< z(Gq2^`@B2S-P^xs+Wq|iD(Z5Iz6|rv00006VoOIv0RI600RN!9r;`8x010qNS#tmY z4c7nw4c7reD4Tcy000McNliruIjYZgv7Ps2nAlN9_BmogY6YVULBI*4vEVWcL zVOPyqcz3zGNg$^=Q@r!e%4a-h>3X^$A#msNj+)7FGM9+u`Dxf3m)wB5@JU~A=M(6N9o+O7-tqv>)FToS^%s<}*`Oc|CbTo`shAm<|7#JQ!Df&l^`YhiOT*fZ7&zb!?@)1QP!M?tGsqn_I}<00000NkvXXu0mjf DpzWW* literal 0 HcmV?d00001 From cfbcc43b14eb1a21c02853d4fbf237efa9f06eff Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 21:42:39 +0200 Subject: [PATCH 38/45] render only new requests --- src/Chat/Chat.cpp | 1 - src/DataStore/ChatDataStore.cpp | 9 +++--- src/FileSystem/FileSystem.cpp | 6 ++-- src/FileSystem/FileSystem.h | 4 ++- src/Model/ChatItem.cpp | 17 +++++++++-- src/Model/ChatItem.h | 7 +++-- src/Model/ContactItem.cpp | 7 ++++- src/Model/ContactItem.h | 5 +++- src/addressbook.cpp | 3 ++ src/addressbook.h | 9 +++++- src/chatmodel.cpp | 35 +++++++++++++++++++---- src/chatmodel.h | 6 +++- src/contactmodel.h | 3 +- src/controller.cpp | 38 ++++++++++++++++++++----- src/controller.h | 3 ++ src/mainwindow.cpp | 7 +---- src/requestContactDialog.ui | 50 +++++++++++++++++++++------------ src/sendtab.cpp | 2 +- 18 files changed, 157 insertions(+), 55 deletions(-) diff --git a/src/Chat/Chat.cpp b/src/Chat/Chat.cpp index c0482b8..cdc3814 100644 --- a/src/Chat/Chat.cpp +++ b/src/Chat/Chat.cpp @@ -55,7 +55,6 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view, QLabel *label) { for (auto &c : DataStore::getChatDataStore()->getAllMemos()) { - //////Render only Memos for selected contacts. Do not render empty Memos //// Render only memos where cid=cid if ( (p.getName() == ui->contactNameMemo->text().trimmed()) && diff --git a/src/DataStore/ChatDataStore.cpp b/src/DataStore/ChatDataStore.cpp index 21ddef9..7bb3840 100644 --- a/src/DataStore/ChatDataStore.cpp +++ b/src/DataStore/ChatDataStore.cpp @@ -3,6 +3,8 @@ #include "ChatDataStore.h" #include "addressbook.h" +#include "chatmodel.h" + ChatDataStore* ChatDataStore::getInstance() { @@ -53,15 +55,14 @@ std::map ChatDataStore::getAllNewContactRequests() { std::map filteredItems; - for(auto &c: this->data) + for(auto &c: this->data) { if ( (c.second.isOutgoing() == false) && (c.second.getType() == "Cont") && - (c.second.getContact() == "") - - + (c.second.isContact() == false) ) + { filteredItems[c.first] = c.second; } diff --git a/src/FileSystem/FileSystem.cpp b/src/FileSystem/FileSystem.cpp index 2a60de1..208bfaa 100644 --- a/src/FileSystem/FileSystem.cpp +++ b/src/FileSystem/FileSystem.cpp @@ -1,8 +1,11 @@ -#include "FileSystem.h" +// Copyright 2019-2020 The Hush developers +// GPLv3 +#include "FileSystem.h" #include #include #include "../Crypto/passwd.h" +#include "addressbook.h" FileSystem::FileSystem() { @@ -99,7 +102,6 @@ QList FileSystem::readContactsOldFormat(QString file) qDebug() << "Detected old addressbook format"; QList> stuff; in >> stuff; - //qDebug() << "Stuff: " << stuff; for (int i=0; i < stuff.size(); i++) { ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); diff --git a/src/FileSystem/FileSystem.h b/src/FileSystem/FileSystem.h index 30dd5fc..34fc5fc 100644 --- a/src/FileSystem/FileSystem.h +++ b/src/FileSystem/FileSystem.h @@ -1,3 +1,5 @@ +// Copyright 2019-2020 The Hush developers +// GPLv3 #ifndef FILESYSTEM_H #define FILESYSTEM_H @@ -13,7 +15,7 @@ class FileSystem static bool instanced; static FileSystem* instance; FileSystem(); - + public: static FileSystem* getInstance(); QList readContacts(QString file); diff --git a/src/Model/ChatItem.cpp b/src/Model/ChatItem.cpp index 31ff448..6a30f56 100644 --- a/src/Model/ChatItem.cpp +++ b/src/Model/ChatItem.cpp @@ -5,7 +5,7 @@ ChatItem::ChatItem() {} -ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize) +ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize, bool iscontact) { _timestamp = timestamp; _address = address; @@ -18,9 +18,10 @@ ChatItem::ChatItem(long timestamp, QString address, QString contact, QString mem _confirmations = confirmations; _outgoing = false; _notarize = notarize; + _iscontact = iscontact; } -ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize) +ChatItem::ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize, bool iscontact) { _timestamp = timestamp; _address = address; @@ -33,6 +34,8 @@ ChatItem::ChatItem(long timestamp, QString address, QString contact, QString mem _confirmations = confirmations; _outgoing = outgoing; _notarize = notarize; + _iscontact = iscontact; + } long ChatItem::getTimestamp() @@ -88,6 +91,11 @@ bool ChatItem::isNotarized() return _notarize; } +bool ChatItem::isContact() +{ + return _iscontact; +} + void ChatItem::setTimestamp(long timestamp) { _timestamp = timestamp; @@ -140,6 +148,11 @@ void ChatItem::notarized() _notarize = false; } +void ChatItem::contact(bool iscontact) +{ + _iscontact = iscontact; +} + QString ChatItem::toChatLine() { diff --git a/src/Model/ChatItem.h b/src/Model/ChatItem.h index 11e3b65..900c994 100644 --- a/src/Model/ChatItem.h +++ b/src/Model/ChatItem.h @@ -21,11 +21,12 @@ class ChatItem int _confirmations; bool _outgoing = false; bool _notarize = false; + bool _iscontact = false; public: ChatItem(); - ChatItem(long timestamp, QString address, QString contact, QString memo,QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize); - ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize); + ChatItem(long timestamp, QString address, QString contact, QString memo,QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool notarize, bool iscontact); + ChatItem(long timestamp, QString address, QString contact, QString memo, QString requestZaddr, QString type, QString cid, QString txid, int confirmations, bool outgoing, bool notarize, bool iscontact); long getTimestamp(); QString getAddress(); QString getContact(); @@ -38,6 +39,7 @@ class ChatItem bool isOutgoing(); bool isdouble(); bool isNotarized(); + bool isContact(); void setTimestamp(long timestamp); void setAddress(QString address); void setContact(QString contact); @@ -49,6 +51,7 @@ class ChatItem void setConfirmations(int confirmations); void toggleOutgo(); void notarized(); + void contact(bool iscontact); QString toChatLine(); json toJson(); ~ChatItem(); diff --git a/src/Model/ContactItem.cpp b/src/Model/ContactItem.cpp index d38c1c5..d2321bd 100644 --- a/src/Model/ContactItem.cpp +++ b/src/Model/ContactItem.cpp @@ -1,4 +1,9 @@ +// Copyright 2019-2020 The Hush developers +// GPLv3 #include "ContactItem.h" +#include "chatmodel.h" +#include "Model/ChatItem.h" +#include "controller.h" ContactItem::ContactItem() {} @@ -8,7 +13,7 @@ ContactItem::ContactItem(QString name, QString partnerAddress, QString myAddress _myAddress = myAddress; _partnerAddress = partnerAddress; _cid = cid; - _avatar = avatar; + _avatar = avatar; } QString ContactItem::getName() const diff --git a/src/Model/ContactItem.h b/src/Model/ContactItem.h index f066740..7eda17d 100644 --- a/src/Model/ContactItem.h +++ b/src/Model/ContactItem.h @@ -1,8 +1,11 @@ +// Copyright 2019-2020 The Hush developers +// GPLv3 #ifndef CONTACTITEM_H #define CONTACTITEM_H #include #include +#include "mainwindow.h" using json = nlohmann::json; class ContactItem @@ -13,7 +16,7 @@ private: QString _name; QString _cid; QString _avatar; - + public: ContactItem(); ContactItem(QString name, QString partnerAddress, QString myAddress, QString cid, QString avatar); diff --git a/src/addressbook.cpp b/src/addressbook.cpp index f51e279..808ca40 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -40,7 +40,10 @@ void AddressBookModel::loadData() QSettings().value( "addresstablegeometry" ).toByteArray() + + ); + } void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr, QString cid, QString avatar) diff --git a/src/addressbook.h b/src/addressbook.h index 8e32fe8..fbd361b 100644 --- a/src/addressbook.h +++ b/src/addressbook.h @@ -23,6 +23,7 @@ public: int columnCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; + private: @@ -32,7 +33,8 @@ private: QTableView* parent; //QList> labels; QList labels; - QStringList headers; + QStringList headers; + }; class AddressBook { @@ -63,6 +65,10 @@ public: QString get_avatar_name(); void set_avatar_name(QString avatar_name); + + + + @@ -76,6 +82,7 @@ private: QString writeableFile(); QList allLabels; + static AddressBook* instance; }; diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index b0acb38..7bc1688 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -71,6 +71,26 @@ void ChatModel::showMessages() } } + +void ChatModel::addAddressbylabel(QString address, QString label) +{ + this->AddressbyLabelMap[address] = label; +} + +QString ChatModel::Addressbylabel(QString address) +{ + for(auto& pair : this->AddressbyLabelMap) + { + + } + + if(this->AddressbyLabelMap.count(address) > 0) + { + return this->AddressbyLabelMap[address]; + } + + return QString("0xdeadbeef"); +} void MainWindow::renderContactRequest(){ @@ -89,17 +109,22 @@ void MainWindow::renderContactRequest(){ contactRequest->appendRow(Items); requestContact.requestContact->setModel(contactRequest); requestContact.requestContact->show(); + requestContact.zaddrnew->setVisible(false); + requestContact.zaddrnew->setText(c.second.getAddress()); } QStandardItemModel* contactRequestOld = new QStandardItemModel(); + for (auto &p : AddressBook::getInstance()->getAllAddressLabels()) for (auto &c : DataStore::getChatDataStore()->getAllOldContactRequests()) { if (p.getPartnerAddress() == c.second.getRequestZaddr()) { - QStandardItem* Items = new QStandardItem(c.second.getAddress()); + QStandardItem* Items = new QStandardItem(p.getName()); contactRequestOld->appendRow(Items); requestContact.requestContactOld->setModel(contactRequestOld); + requestContact.zaddrold->setVisible(false); + requestContact.zaddrold->setText(c.second.getAddress()); requestContact.requestContactOld->show(); }else{} } @@ -135,11 +160,11 @@ void MainWindow::renderContactRequest(){ QObject::connect(requestContact.requestContactOld, &QTableView::clicked, [&] () { for (auto &c : DataStore::getChatDataStore()->getAllRawChatItems()){ - QModelIndex index = requestContact.requestContactOld->currentIndex(); - QString label_contactold = index.data(Qt::DisplayRole).toString(); + /* QModelIndex index = requestContact.requestContactOld->currentIndex(); + QString label_contactold = index.data(Qt::DisplayRole).toString();*/ QStandardItemModel* contactMemo = new QStandardItemModel(); - if ((c.second.isOutgoing() == false) && (label_contactold == c.second.getAddress()) && (c.second.getType() != "Cont")) + if ((c.second.isOutgoing() == false) && (requestContact.zaddrold->text() == c.second.getAddress()) && (c.second.getType() != "Cont")) { @@ -809,7 +834,7 @@ QString MainWindow::doSendRequestTxValidations(Tx tx) { auto available = rpc->getModel()->getAvailableBalance(); if (available < total) { - return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 5 confirmations before they can be spent") + return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 1 confirmations before they can be spent") .arg(available.toDecimalhushString(), total.toDecimalhushString()); } diff --git a/src/chatmodel.h b/src/chatmodel.h index 7ca5a0f..1768b9f 100644 --- a/src/chatmodel.h +++ b/src/chatmodel.h @@ -20,6 +20,7 @@ #include "Chat/Helper/ChatDelegator.h" #include "Chat/Helper/ChatIDGenerator.h" + namespace Ui { class MainWindow; } @@ -34,6 +35,7 @@ class ChatModel std::map requestZaddrMap; std::map confirmationsMap; std::map> sendrequestMap; + std::map AddressbyLabelMap; public: ChatModel() {}; @@ -46,6 +48,7 @@ class ChatModel void triggerRequest(); void showMessages(); void clear(); + void addAddressbylabel(QString addr, QString label); void addMessage(ChatItem item); void addMessage(QString timestamp, ChatItem item); void addCid(QString tx, QString cid); @@ -55,10 +58,11 @@ class ChatModel QString getCidByTx(QString tx); QString getrequestZaddrByTx(QString tx); QString getConfirmationByTx(QString tx); + QString Addressbylabel(QString addr); void killCidCache(); void killConfirmationCache(); void killrequestZaddrCache(); - + }; #endif \ No newline at end of file diff --git a/src/contactmodel.h b/src/contactmodel.h index f361ceb..5f79c47 100644 --- a/src/contactmodel.h +++ b/src/contactmodel.h @@ -15,8 +15,7 @@ class ContactModel ContactModel() {} void renderContactList(QListView* view); - - + }; #endif \ No newline at end of file diff --git a/src/controller.cpp b/src/controller.cpp index 10b41bb..83ee2e4 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -935,7 +935,8 @@ void Controller::refreshTransactions() { txid, confirmations, true, - isNotarized + isNotarized, + false ); DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); @@ -991,6 +992,28 @@ void Controller::refreshTransactions() { QString cid; int position; QString requestZaddr; + bool isContact; + + + for (auto &p : AddressBook::getInstance()->getAllAddressLabels()) + { + + if (p.getPartnerAddress() == requestZaddr) + { + + chatModel->addAddressbylabel(address, requestZaddr); + } else{} + + + if (chatModel->Addressbylabel(address) != QString("0xdeadbeef")){ + + isContact = true; + + }else{ + + isContact = false; + + } if (!it["memo"].is_null()) { @@ -1005,7 +1028,8 @@ void Controller::refreshTransactions() { chatModel->addCid(txid, cid); chatModel->addrequestZaddr(txid, requestZaddr); - } + } + if (chatModel->getCidByTx(txid) != QString("0xdeadbeef")){ @@ -1045,16 +1069,16 @@ void Controller::refreshTransactions() { txid, confirmations, false, - isNotarized + isNotarized, + isContact ); - qDebug()<< "Notarized : " << isNotarized; - + DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); } } - + } } - qDebug()<< getLag(); + qDebug()<<"get Lag" << getLag(); // Calculate the total unspent amount that's pending. This will need to be // shown in the UI so the user can keep track of pending funds diff --git a/src/controller.h b/src/controller.h index f35d636..9fd445b 100644 --- a/src/controller.h +++ b/src/controller.h @@ -1,3 +1,6 @@ +// Copyright 2019-2020 The Hush developers +// GPLv3 + #ifndef RPCCLIENT_H #define RPCCLIENT_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index de2583e..7db28cf 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1358,7 +1358,6 @@ void MainWindow::setupchatTab() { } }); - QMenu* contextMenu; QAction* requestAction; QAction* editAction; @@ -1397,7 +1396,6 @@ void MainWindow::setupchatTab() { for(auto &p : AddressBook::getInstance()->getAllAddressLabels()) if (label_contact == p.getName()) { - QString label1 = p.getName(); QString addr = p.getPartnerAddress(); @@ -1407,7 +1405,6 @@ void MainWindow::setupchatTab() { AddressBook::getInstance()->removeAddressLabel(label1, addr, myzaddr, cid,avatar); - // QList labels = AddressBook::getInstance()->getAllAddressLabels(); rpc->refreshContacts( ui->listContactWidget); rpc->refresh(true); @@ -1424,13 +1421,11 @@ void MainWindow::updateChat() { rpc->refreshChat(ui->listChat,ui->memoSizeChat); rpc->refresh(true); - - } void MainWindow::updateContacts() { - //rpc->refreshContacts(ui->listContactWidget); + } void MainWindow::addNewZaddr(bool sapling) { diff --git a/src/requestContactDialog.ui b/src/requestContactDialog.ui index 2eb4bc0..242e3ba 100644 --- a/src/requestContactDialog.ui +++ b/src/requestContactDialog.ui @@ -6,7 +6,7 @@ 0 0 - 812 + 850 495 @@ -27,7 +27,7 @@ - + <html><head/><body><p align="center"><span style=" font-weight:600; text-decoration: underline;">Memo of the request</span></p></body></html> @@ -97,12 +97,12 @@ - + 256 - 192 + 190 @@ -119,14 +119,21 @@ - + + + + <html><head/><body><p align="center"><span style=" font-weight:600; text-decoration: underline;">Details of the request</span></p></body></html> + + + + Request from : - + @@ -142,14 +149,14 @@ - + My Zaddr : - + @@ -165,24 +172,24 @@ - + Give a Nickname: - + - + <html><head/><body><p align="right">Choose a avatar for your contact :</p></body></html> - + @@ -328,7 +335,7 @@ - + @@ -353,7 +360,7 @@ - + @@ -369,17 +376,24 @@ - + - - + + - <html><head/><body><p align="center"><span style=" font-weight:600; text-decoration: underline;">Details of the request</span></p></body></html> + + + + + + + + diff --git a/src/sendtab.cpp b/src/sendtab.cpp index de61cf2..ce04a54 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -937,7 +937,7 @@ QString MainWindow::doSendTxValidations(Tx tx) { auto available = rpc->getModel()->getAvailableBalance(); if (available < total) { - return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 5 confirmations before they can be spent") + return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 1 confirmations before they can be spent") .arg(available.toDecimalhushString(), total.toDecimalhushString()); } From 8e59d777c2553bedb50bc75f173936f8e7ae7cfb Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Wed, 27 May 2020 22:53:41 +0200 Subject: [PATCH 39/45] dont save contact if contactrequest was not succesfull --- src/chatmodel.cpp | 142 ++++++++++++++-------------------------------- 1 file changed, 44 insertions(+), 98 deletions(-) diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 7bc1688..5bd28d0 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -114,7 +114,7 @@ void MainWindow::renderContactRequest(){ } QStandardItemModel* contactRequestOld = new QStandardItemModel(); - + for (auto &p : AddressBook::getInstance()->getAllAddressLabels()) for (auto &c : DataStore::getChatDataStore()->getAllOldContactRequests()) { @@ -380,16 +380,12 @@ void MainWindow::sendChat() { // Create a Tx from the values on the send tab. Note that this Tx object // might not be valid yet. - - // Memos can only be used with zAddrs. So check that first - // for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) + QString Name = ui->contactNameMemo->text(); int sizename = Name.size(); qDebug()<< sizename; if (ui->contactNameMemo->text().trimmed().isEmpty() || ui->memoTxtChat->toPlainText().trimmed().isEmpty()) { - // auto addr = ""; - // if (! Settings::isZAddress(AddressBook::addressFromAddressLabel(addr->text()))) { QMessageBox msg(QMessageBox::Critical, tr("You have to select a contact and insert a Memo"), tr("You have selected no Contact from Contactlist,\n") + tr("\nor your Memo is empty"), QMessageBox::Ok, this); @@ -404,8 +400,6 @@ void MainWindow::sendChat() { if (size > max){ - // auto addr = ""; - // if (! Settings::isZAddress(AddressBook::addressFromAddressLabel(addr->text()))) { QMessageBox msg(QMessageBox::Critical, tr("Your Message is too long"), tr("You can only write messages with 512 character maximum \n") + tr("\n Please reduce your message to 512 character."), QMessageBox::Ok, this); @@ -578,96 +572,7 @@ void::MainWindow::addContact() void MainWindow::saveandsendContact() { this->ContactRequest(); - QString addr = contactRequest.getReceiverAddress(); - QString newLabel = contactRequest.getLabel(); - QString myAddr = contactRequest.getSenderAddress(); - QString cid = contactRequest.getCid(); - QString avatar = contactRequest.getAvatar(); - contactRequest.clear(); - if (addr.isEmpty() || newLabel.isEmpty()) - { - QMessageBox::critical( - this, - QObject::tr("Address or Label Error"), - QObject::tr("Address or Label cannot be empty"), - QMessageBox::Ok - ); - return; - } - - // Test if address is valid. - if (!Settings::isValidAddress(addr)) - { - QMessageBox::critical( - this, - QObject::tr("Address Format Error"), - QObject::tr("%1 doesn't seem to be a valid hush address.").arg(addr), - QMessageBox::Ok - ); - return; - } - - ///////Todo: Test if label allready exist! - - ////// Success, so show it - AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar); - QMessageBox::information( - this, - QObject::tr("Added Contact"), - QObject::tr("successfully added your new contact").arg(newLabel), - QMessageBox::Ok - ); - return; - - - -} - -void MainWindow::saveContact() -{ - - QString addr = contactRequest.getReceiverAddress(); - QString newLabel = contactRequest.getLabel(); - QString myAddr = contactRequest.getSenderAddress(); - QString cid = contactRequest.getCid(); - QString avatar = contactRequest.getAvatar(); - - if (addr.isEmpty() || newLabel.isEmpty()) - { - QMessageBox::critical( - this, - QObject::tr("Address or Label Error"), - QObject::tr("Address or Label cannot be empty"), - QMessageBox::Ok - ); - return; - } - - // Test if address is valid. - if (!Settings::isValidAddress(addr)) - { - QMessageBox::critical( - this, - QObject::tr("Address Format Error"), - QObject::tr("%1 doesn't seem to be a valid hush address.").arg(addr), - QMessageBox::Ok - ); - return; - } - - ///////Todo: Test if label allready exist! - - ////// Success, so show it - AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar); - QMessageBox::information( - this, - QObject::tr("Added Contact"), - QObject::tr("successfully added your new contact").arg(newLabel), - QMessageBox::Ok - ); - return; - } // Create a Tx for a contact Request @@ -785,7 +690,46 @@ void MainWindow::ContactRequest() { delete d; }); - + QString addr = contactRequest.getReceiverAddress(); + QString newLabel = contactRequest.getLabel(); + QString myAddr = contactRequest.getSenderAddress(); + QString cid = contactRequest.getCid(); + QString avatar = contactRequest.getAvatar(); + + if (addr.isEmpty() || newLabel.isEmpty()) + { + QMessageBox::critical( + this, + QObject::tr("Address or Label Error"), + QObject::tr("Address or Label cannot be empty"), + QMessageBox::Ok + ); + return; + } + + // Test if address is valid. + if (!Settings::isValidAddress(addr)) + { + QMessageBox::critical( + this, + QObject::tr("Address Format Error"), + QObject::tr("%1 doesn't seem to be a valid hush address.").arg(addr), + QMessageBox::Ok + ); + return; + } + + ///////Todo: Test if label allready exist! + + ////// Success, so show it + AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar); + QMessageBox::information( + this, + QObject::tr("Added Contact"), + QObject::tr("successfully added your new contact").arg(newLabel), + QMessageBox::Ok + ); + return; // Force a UI update so we get the unconfirmed Tx // rpc->refresh(true); ui->memoTxtChat->clear(); @@ -840,3 +784,5 @@ QString MainWindow::doSendRequestTxValidations(Tx tx) { return ""; } + + From a2e68c9cc23bd1fdfd810a2efa4db438433aab2c Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 28 May 2020 00:23:48 +0200 Subject: [PATCH 40/45] add new logo for unknown sender --- application.qrc | 6 ++---- res/getAddrBlack.png | Bin 20966 -> 20691 bytes res/getAddrWhite.png | Bin 12887 -> 12615 bytes res/unknownBlack.png | Bin 0 -> 21025 bytes res/unknownWhite.png | Bin 0 -> 12617 bytes res/unlocked.svg | 7 ------- res/upload.png | Bin 1369 -> 0 bytes res/upload.svg | 8 -------- src/chatmodel.cpp | 25 +++++++++++++++++++++++-- 9 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 res/unknownBlack.png create mode 100644 res/unknownWhite.png delete mode 100644 res/unlocked.svg delete mode 100644 res/upload.png delete mode 100644 res/upload.svg diff --git a/application.qrc b/application.qrc index e2da53c..bb3c02c 100644 --- a/application.qrc +++ b/application.qrc @@ -33,11 +33,7 @@ res/add_contact.png res/notification.png res/rahmen-message.png - res/upload.png - res/upload.svg res/message-icon.svg - res/lock.svg - res/lock.png res/lock_green.png res/lock_orange.png res/unlocked.png @@ -49,6 +45,8 @@ res/sendBlack.png res/requestBlack.png res/addContactBlack.png + res/unknownBlack.png + res/unknownWhite.png
diff --git a/res/getAddrBlack.png b/res/getAddrBlack.png index 2ede956ed1f29f52bffb24c124c26dda23c479ab..d90c9a522937a6c0270e9078bfb6fba62846ceed 100644 GIT binary patch literal 20691 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%0Ag)8KZtd zO#8)8K{0wL5akCbq2;1*1gOPi;#9{-5t6ed&;levd+HhIOOg>wE~*->K5AL1x{n*> z9IvEJ5{=RCo@7+-_B~rW#g{@7s~<({-1?blZ^)zJUD}+QRAf1!`{5-&_l)j0{o-_)?HI^ESw~TItWy$^k1v^UhIHN_pL8K9;iH?B*_)^ zyIi>l$;`5>>dZHAbg$iJ9j12q#4C{=RF7`oji<6{V7*?+Zr%+ve6awoh&uVxJE`8f zd&)&kBxfuf*Q0+)zyA2}RP38W%#M-_xQvztk^XZvjnRJa#vfLl)WoWe@Jjn}GV~Yg z?zTt65zpx;qs+MZ8C*hHl|AM!aC~+{3uf#htrtt;&3CfCd5h&f*FKlk^HT@jOtWqn z@1|`Xnp(-t^c*!o~G~A(ya|X9PU;d zeVu?zW8|I5(!R6Y-xI)f_Oy$Cn!Uq_q9=jd$jcoBIaErA4(Ih4Y-O zPcPbAYz9AiV3G3lQy#hstGwH!b}4049O|n*@LUEiJ)H*~-uI?(=Mrfmev47vdHuJ% z+iSLPA#s@Je@^XtE4tagrob&SW!T@q6r*~JV(NH4VXe4o5BVlZ5=@96(ru(pB$Umt z|I}yOPk&*^ZwMCg)0Ty@RoL6C0{g8to57bpU9J4~I>ifeY#ppER@c-h;$Rd1H4; z$U(0Qn`q#oelaI2JO`zp!{i3@>rPvhElJJIAzW_N@1P(o2DXJ2gkICw23(lh2ZmrF z5!3uB&+6PV|Mq#UF*b^AHI?~EhtCI||PY~eAWJJ|WI zl}&fO<2WD$cQ~=qdY$IJ(Pq`mpi~ACpj5Qf%#F} zvYL=ib$6Y#`68yP_(av%buLGDT`}!nYEt3T*bLD>{sgxqNiri(QJMB8QUHey)DFui zjGcruZsaSq^7(9fIr2#Ja2Lq<9mG|sIRmE>1+WEM8$F147M;NOfpQ%=moqb=q=A2P z`BsbVL>u8RtKBnHs zg;g92qfKXSHnI2*jNhNyR;0n0^*KM;c|W()O5na#GMK7hW32j{Q{O^zigomf?uvV- zKV!o$-0U})#V6T1R)0vsQQW|8&zzW=pL9+ct7XS3#VInM1fNII@eL6B!W$I5C!Rz= z&HYvB%&*>B+*q%elA}uT?@Ffi72%_fgbQnZf^gGxe)VK1053ubdP+2+G0UBDAxl@g ziNUB(I;j*#l+Gyp3(Fp$gsOV3S1JcS^OAiuGvNwC=9 z`uju?T<~AwxBJmcN@G=MYE#v%-b1b8+IK2zMZK=o9tF3dN#?hV=-(XQ1WkL{p?`UQ zXDso7)_)m4yh#Qf&I}^?^B9+fzy`1yeRoZ7M9oF(r`KJB@&RW%-y`|PaJ?Q~;(I(^ zIt$oaAg(5_Pqxvs43$ciZ}TS#@nvZ;)tE01%%fOY`$uuT?>HG_r=Uh>7CEc)O?F=1 zjb+dpA5ziQQ#R`Wmt!0|Cw;j>8$?Szkmx;)--#|vsxjDD^N3w~1_M=aG$#)zpC5>R zt`N6LeT2n_u2n5|nxc+4Hp#j))vfvc=}PeTar#?LC~$Xu)+D@qY6}xHAdsM2(M&rD~O`*;SBoq`Fkr9(J!jM2~g; zJeIo?e4un1XT459v z5(u2%7;UJQe&`a_NEbfE0|J&>RDRyjR!n*FFP*j1;H?wPHNj`R#iZ~IUz3yG9S_W!zexn4vj_MvW#O(LP)`h0~#C|P;ahaTYSmYuS~hdb&e1__hK zzNzO;B|!gbRK|hA=_WXt#S5i@rd#!Yi3(?nZ$tCJXZ#u$FGLW8oM0u4vUAppN-E3_x zG%_P;lQ(X27hC^R6-um_Uo)-wb^3IC1LY-Li7%^zR>{h!X~0oPwdAH);ocFHjf+0x z>NV$2&cn-`rAyPNCl?!<)(A$$z#}IYhwoe|l?CfOQzWHZpGc=TH2NK%;7Wq>u^PE+ z%+Yl`&PvJE%~dYOfJHR#5fsUk1Ihu~^**?5;=^V1AjcetIjcE|fv;2V@oM8Jk3ZoE z`*36te_Kn0K<2%-$>P3KCg~7B18L|n$vtRX{LH};YKJM$#{gP+wi)hhhfdkh!>Qx` zyzSYji+&Ycs}5f2P;tDU<2?;2@Q%j-xGo4C)r>Z}P801+?K0&N<(rj1G<4rk|C8ff zpumnN$nZc8RsCkF#qQ-{IjQW6g#N(6cUsz4CXT`*& zzR$51gAO@1wk>@ObhR600zpePxeE35i=qso>G)B@uICSBo`o*Ax44U6=Iz%sx;qz$ z{F?*P153Vu=LO#F$HR8@i}vm%?@%;5wx=~#g;svJAojvHzZ*s><(c%mmm}GXm90YT zY3}?_SpLbjXa3joU29(3OLccXRapuPI#;ZtSS#EtP@ktl3AoIiz>T${b!-!OKwW1w zAp?FQ$%-E~wqtuv`{cfJ4Oaht?CB%x6-MjtZ6o==88%YC@Vi%fY6KxY9G$0$i~2r) z3iavQULNIfqmwZSDsZF*YroduL2j~#n@}_exx{r)PCf-U?HNo5=zDV%riK4(Tj7N| z6Cj-Ws~0vH8g((M4BRyI4nVQOEf`(5L;-XyrhxvYh+xLx&GgiO#(DC?)4_@53d+D=TbS?`#T%rB@Rmetg7!ye%HAV4{f z^|(Z5i$9CDMvr$kdE`b__-zR%U(o={zfUL$e!b7N1*GkG4WM5!u%c2q_}~aZshb$e zh8xwP=&rviI&20NNNK_mSD+U=+O}raKPR9 zfbe^=wL1}q*(z5Tc+lrPKlHu{1tTkMarn)OVb+8;RU2Fsf==_GAQN{EArv~i@KK@qkT)d6DqSUy$4L(7_z~PKNsi@> zm`kO{#-c;-`=Qs85PdA{3rZ+jfye4zFK60`~ZRyJ0UkieZAGr zOdopI2J7BscZO$4cy5j-D?-`rxfy{HZ!d~NstqfW6KVIH45#y@+NC@<^uh_6M+ne{ z*Cr(UruDQV$aUk^^lNQ4X)Dw)Nb3#Roro|}^6d(|G3f>QQV_{0)bZH^(RT7ou#`v~ z=qaE8Qq?BIPuW=EM^5&(1v6B!jz$)KIorBugz>}oW%v(+Vy5(r4r%xDf}3_7qd{1l zE@`Vhp;c&b8svjP7O=EnHmMBdTarX1I-t7?+HJ$`c}Z_vLfqevo%yoBjGipAQU@vK zB*zDURPQ}R?-%JQJ-9qR9d7YV9${2pcUU3RlI>*}J}tIm^x&gSKVbH^uQnUUW<%!! zf)dzzy7tQ|X!0zK?ExX|q{x@1_u23I!>10_f<(ab3>I{&pS!BPNR~Kl2AB#YCLQf`PPyd#qH!8@wKo9=5>v@n+e^2QCRsrHGlYUnQR<< z?>Lh|Wslc}qW7qzqaxupBs@W-a~ot3akQM%-NTW`TNL8yQnQHWN(k;G$ZpMpg4qyM zbn)>PH6FUR7QO$aU{S4&-!mBPjo+8pdSU9J*PS?Lbvo+2_@x8&FQ8b+=Xq;>d7(oi zEJM#MaUSXz^_sqEJ@Af_mZ$dS2?_@W;0>Z5hxV(AN8Em^c1_@Jp&CJ9MEiy~m5`&- zpRl1vs(`@g80q0DQs|KwWI@1%+FC%nS{m*njfZ*=uJ%a3cqm%xnORZf?lcHgDSoha zB$lh_o~W)7@^lWO z{RgX2wlaqhghxnnN^Ekk+(ZOjw&>pp1mB&kRd;n0G2;r>shQTcmR4IEdUK}V5d^?! z$z4V%wb5J)SH+t{d6+7h(zz~@l`CINq=BV`n{PuH<5|y~1e!BUd>`e!tG#5Oy}xke%}Km4l93@XRkuo_?f_7>5oi!i1#E+XIf`oYtuE22~f?q0HmomVSZnHR20b zlL8-qa&Bj-C4DrU--Z7Juw39$U(Lt}q_wX|mFsV9Y)+=T==tq!D;#%yg#GfP3nhgQ z@HO}VI{Gz%v<@Z8{yD(&+$) zIu=G#HYm{2S31YeXvb7~)7l2N(7Q%lnRQ1<&(6MMR8|35iD=AGZ_%^>4VuRc$w(k6#jSw7^TrG#0te%qa*JcBCDkiesf~~TT?{V& z9Jw%yc03?7dT1!Se1S5j1b$wwhqEw;eo_RU3aB-Z{7sI0Zgm=g6N|I8AxvLJpatZgY)24~H{r~=4Y>~AB*6H+qpiH%)x3QhwN!~*!dAXXw zp%#V7jAE?+*MuXXwb;(VdM>-v;_AgPIj$xn!aOP;hj=j(-1-6H>}qv*WC%*lYEl45 zMn_DqX&INAkX5iRo5yhMes( z)tP+`=YZg@UAXI%Y`$*`pP}XroOP60N~_v8pYL0PxWlg}6$QL39w+RdJp?@1qs(Gs zUN$zPBGfHo`$v54`ZTe5K!AnbL-cOz9F*#DHh@KXKDk>)TpBh+wr7IONZ=$U$j#6e ztCXoCVYo=PCkEK8=VoBdI_k=a4YVS||GW=A(V&ZWE zo-?PscL#-ZR)y;|-62=?U;Z^IgL(2ChwSmE==*6-4(^IM;w`bGKy{X=FtXzb|7i=Y*kN@ z)t3OE4gE5XFQsS=qGw}G)(;ej?6hvo`u^KD`tS^M%T4%$7^r1UZxfM|SCO(299cpZ zGP1<*6$Wv1To{`~B9as=D^$}Yz4(lz{Iv~f2vw2ZRV3D?Y|zq#$Zoh*R9~;dxQb%g z2wB-jHfY^Z=SQAP9lBiF$1>6@3>gN3uM^=Xj_<0dd#nU{K96@ z%}(U*j9(L6I=vZz4roDnOB)EESX((2paa?PAZ4T2NuJA{zeL0g^f3LD78*U#1{t4& zNs90pH?GDvhA&%zMAP>W|1_7)&{)!JqG{}MpcZ|k3AF=$`)VEEcbDx{&OCABi%fq1 zCv&)L^ONq^7ACTZl-yBeu~aCSVA~3sGha%A3`q|wBZ6!amcTJ|%;9O7El-e@h|Ub{ z^XBQ(*ybbms4XBc0C2mJ$!xQ>lv(urM!V7_oJb2TI&;Rh^)Wn^8k$!y^MRRxzIP8R z@OH0fY^Cg)WXz-K(>mW#PBCR6c93hY=&`xcX3=`a*|H_Sm4!cM?ifdt=51=Jy}?wx@W_JM__enw|+{`(E#V+e2@Oi*;kZN{1Rzd zN-5_cv&C9u=bK2#C3h$KBwd-!@w4lY@lsu?oIiVto$-vjB#TouzJ_`j!o(4&_Es4! zb!5$y&}(%z25V^-@w%*|Ul!bK>FPJ=FJ%l-;G_Bf?y(VjvbUM~ai?>veFs%;xl`C`FOOyD*bgF@sLCky`pUlksxJ3}Iov zmK#O-5&TolIT*q(BG~#{9d=+3fA-EOgg&3qhf^OeyXb{vzI*a(FbKMJZw3TGq#ubb zw~}+~P0Ca=(i^3zc&%=|rKX?2;(A?0iAArELy&72z25GF{`r*8lfPHqDSlyRUc-{~ zbN;#MHsO&O^$TZ7v`l(0f+*zH&NUP=r#60c(W&{f&5kw=WaJ9m8UOCrE>!dtre8xe z@I9noOJ(+TeP`z(KU!XJxA-hN2`opy0D}E9TH6?#kXZuT*{?as0Eu(3?q*A%VFU|= zA0oPcz!H&|`Tn*_O6PPIL6%bbKVK2pOL2nrxf4ZBvP*(RW>-^y+|tSza1H+)&K7%n zK1@=pV*k(8v`Jm!#+fDm_un7M3q}Tc*~zstJc#`-BG-YaYUpTrl_0<*cEpj2puABWf6l9WIfkoGRVN{B{m^SPUAP#@bXLeiOowF+q zXoa_DV!uE6mugkcG}ZGSjYV#-$5Mt{by)cD#~c1#(S_;XBocqEpT+00(-GDcV-Af8 zk|o(q7Hr-{?`ot)H^#B65Opgv~=ocH@OIKmJ6y=79w`Uw*^ZRG+`her>sGnEa79>i?n#{9$Ivn>; z^OhCe#U0G$OEL)0Tig6)a~jD+&&msLbV&R(sVg}PCy^;XO2~*{o<=`L_SVZ2!++( z4a-gEIh)3BV49sDl|zi#97Y?m6sy|jKVdC%)G*rXH?#)E0hha;l^zRhSl}TQZ)$yG zO^VgQ5!QXrE6mQf${}?CtOtkHF`|b4B}f>3Fu*m2d@*xF$O9i_l{l$U!C2fgqe_u| z-Ef4iE`#%? zWou$YNY!%f4gZ^=VaOEer%{>5dfy5ehQfeK6tYYT947S?YyGb1ZW*uxrx$0F+F1@- zjcr>}Gq;{@dUE}hG)PPy9O;G3Ooogo_B%B4i*?FblQ4}--4$%k7oiuYRCpth%{w{F zWex-&EP#q^F@>sz;23E zs5_=>5BdsE=l@CKhqJO1zvYjy;dwI6C=Oc=s|m&EoL{HW9EH0TTkDgqOs~3fj6Xn( zhDW}8W8#w;4AZjPu>=;%HI>9Q9xQ&!Y_(QaBjLdJ&i$TlvR-hRYJ7Wp#c2kCanH2; zS6>ZjLf^#vJDL6TCp%^1X=vF}>`|BO%tB0QtHPR#|2X z)h7m!s=aPUDwO{)wx#y29PzDq-7STrhWomeQAY^uqGAsEJZbq_PKsXK{&+BsPTFW? z=+~{~adfRM{SYT#jRt7U>VRe6ID(w)a&ti(X6P#ZVbvqwqrixSJ@GqjYl3C!s7SAD$UvQ7AvpKyhJ{*Vp)d_fQd85 z^JHt0O>oR6Eu%+jrrgP-RRv{}kN6W%<_+=m&PkKWh#ixD?RzbAcYznL?Mp2k57~UI)Szy4t9p-8Kk>SS=Y%&d7A8?$2wMi2L_= zx0IKzsRY3}jkVW__*!Q=utK`oOVhmXN*eKeV5_?8QQolCTWMTh<^?GO1Wa6+LC%n~ zsrz%m9(stiw~#f&cR`dD6EDlSlUW~ygqiu72Gf0Vcf;=gxZUiRRD8?tJpi@apux=R zmmh#ubjpHdKYml$k9pOV5$L3)M!nz&hG5wk%HyNoX^8_;+PtX-_$gDFh z@^2Fv22>A!EMwG#dBHAhLT=vwu??k-QL>S`H1fNCF{PbbI@%`3A_6NlP8~~gFw4CT z@o&zFW;=!>d~BkFb=WA#X6DXjBLWK5kzm+0;q3B7cHs&oVA4n#{sC8O zlZRoFAfo1b+b+DS_$tZ+`8mUu7KP+}5?v?&!khgppC#b6#l&-xJQq~b!i=_M zWqJ-C;}n z$w4F@bp;VDvpKV%A(LmOR5qi?*#*4&fg#wtITF#8^E}!UiIMPGq_*`L_}YFMU_MV=)eBa$Tk;a2g|66wb%SUf8j>?%kka|x9R#!94T=^xgCuL-q;(nnx> zEpzUO_~rdzbwcF;#0ig6(F$705KuR36e#0SC@^LJV?L7w?%*6?)jRy=17y>7WXS}x zi7{+uqn(GG0{cmPQ5W%jmd7LqAH zP<;w&Fyb*GNU>=%p!$T)F*+*8`l8rQav_7sp;(!^V&iYepk{#_Q0j5;=r$^+2#JUH zKPRyr&&$WZSNc>I2VAskYu(ja0n#JpX#M?3G(GVQVtzS;#x-ci#8{ zc`;ZOufN|h4Yv8cyahrk9_Ml^LwR{@-BcSdk{6_t7tbQ;6sKe7=kYL51yOVnL@m*h zkO;dxHACc$;I3uTlt;F6fc46aKLgEv++0~)``a<>z>lffw$1XsS%%nQOl3%7+`NUP zG8|aeQo!SU14rJj3EUWiFw{$e?DVeXD#Lz2v6a_ehT@ZW*Cx^rMv0ey;|oX8;Wn=vXL|lQY{2{o6KxXE zwjkAhi0{j3m&8EILeo%%WUb8TxX@;C@P2C|e@WlBeE|*_rJp19E4NyTA(TF5lW2wA z?6YNq_16rLl%##p-1Mbn4s5a5=I`d{*r1pw7tY4_jhYKa)+1={xUDr^;SlDzE}RvN z-D9MF@6nKzC@)a`Rs~^9(PI7ht)*0cBpd1<2Rx_gTMPVQ-$kIh0*GU5hQ*{$3;h-a z1|t4(p-P|ut8zr(L0u9;%q0|fg8XadsA&z)=mldL%Gow^C!UH=-<<$ruukChmBPMN zpACh8_BuJae-CD{kt&(VZqFc{U5R%7A$!(KQZ}VCgT>2V+J7oTO#F#dJdIL>Mstxf zdT$F_j92Th7KU=?j(i(%jCSu}gfe^dJ*x!8B*`(U(jb+YLGCb&B!Y?6bEaSHVf^vrbzU$#3Q%hJFKt=s;!Eg|hX zF$6N?!Ve8U##RFOGdeRLy(MOdox1<g#1%kCD!^6 zUR`jphTf_V9|hHEkZ?SOSbCN2O5F9iAJ@-G_s{87XXlfgU;TyS|FHT7CWd#mH9n*B zJc)ODFgI}(@2!RHNN{LhUHJ^y6UB8Zv*bawo3yT9GFI|y)tZl5;IkE`2(qdE6ec<2 zDmbc7+hDNJ8-P>9foHWff*sG0d#c`C?GDy%3wRA;(j4inSJFRE@syC1^zBGl_}eR0 zgWRKIh4-jCh{19K$dNodD>VAo7y$eBdY3;gxCEt>{<4LP8GzWL!SB1TU;3#-lc24RNMPL1PM2MaZOeW-tsZ;SCz5Fd= zt#?j#?_0evr`q!zNCX7sSXh0%ieHM(*-;C;($dbYcWHKjVY8_$Pte|t znigx&eSpW+-M_9F4-fJar{?#ZQ8JQG)c9{K=}n$3MwDCXO?IX@0rlOsSfr)x%8!x0 zFkco0nuku_`sgkHXLn&-;o4N!(>6tM`|X%e=0;#{F`2i;g6#mi!E0i!Sj~~QXyXo55_`_BTr-t$(IwyLaiYhK6+lDua*e$M5D;F@E?f2_+tG znB(qzbeJZsuf;wo`3-|HL*mgDDU$uwx=pq&3LZVdkhagCdRa_f1z z^$yJD3mX(i#7p#GcuQ;ic_qCL%1)bLn7mvcZ3Go^3g@8Ijc*H92iKmN>k=bQ1s`$| zsAPHpl>xN#Y85>ImC$YNZ7l6i?(v(0cbd=1^dKJ38t>pyZ@2b*yFk*c4FeSf6qkcW^y8I{=(C#IguyGfLtarc?Q5o7xU7xe2#!jUvvrmEf9%E&q6Xe~^CWw9Jj6DMOGZYWU%Kf>0`P}{O4{vn-H z>el)84C>P@+R%k4(9GcJP}N+Yn{JPT15f1RCw{UQsDd#{1?5AO%A-M#`lIWA9c_za zDP4t&d2ba=S->QOBPRPVa^d9*)}X$L0RmBGTXIXY<@oQwx-KBZ;%Xb2%!o{m*SpVK zI{pyxCxHu6MWGN~OM9fNV3-3tt|a`C3%MWUn-@s`*^shj$V?z6-H<#=@r4=oqp{_8 zy0MFuZtpB-rd`PoTntj#I3s01pNRs`@tzFhD6xj7{i}?dwT1yr~PGL=OD8A{E|=FVBFNN^F-^R}+p{f3)?ouUo5sj?hCN`?2|oZ62)#QYi?M^u zzoB#LtaNkb->i&gi=d-aa;v_|pZirBQ3?_iiqF_-7dMm#6W2nQerd~dp}`J#!RSY_ z4BsSh_fG1`L1D;JE+=(+?mtz2p{-F5Y$VSAn^I_spptkEtjfxjysG}zGP~|_of4b+ zs$aJF&N?S^VS4IVKUBCV$3@fTgX%V}_=1;8rQw2I<44zRgEg0J7n z1?@#M6ccR~oBqbtT2vwhi_!IF4T_#gK2RJ@BN2-!+UaL%JZ!4n8Wi8YdJOC3=i9UD za(k1E&)6slawhN1vCnmA%bColm2PEdj^`Naav_TDMQ*&UcW0@gcy}I}-VyQBbQOa* zRZizRHq4Pnu=8+$>!y1c8}fc=3>U5?caL?pw?P6A+pN@=4eC&~xxWdBMnIrC)ZaaP zgp5=Xgk{4LT9#Bx;@$Y9WtFHIt@`_^*?=H_)jNurCWm1 zE8k|Iv4JJy{#`N-Y))mh-Q(b{pnpiC_cT&bs_9S8S?6?-|P_R+Jf;ewaPjarSGVMd~CM&IypGExF*j#}xSokLs zDvK4D^~9}LwUPZZ1)TId#rRUy7ToH$0|DS-)28ljWfkWa2(VydM%`^&RSWqBv(72+ zvu0GL%0MF!FvIf}W<6^BJ;^Omc>`_XV4V|;jeQv_}bUjtWae>tHTp3U;;%I_e7B z??AOv=IpTJA|pTXULM{u2J%IwpsZPh3Efl#n%5?h z@YCI5x)uIfazK%vC)sBElYKSe4CQv1Vfr6ns+|1vPO$HgP>7`dXWM$R4DIp%nmk1| zec*H%e!L571bJ0Rf@R-dg_L;!Wc)ZNgE-}ugHu@8>G}Lqhas)AQ45{20;}g5%R`_u zcMMu;l{5bRg(9;-2aiGJ>EZtlxRNeDhT)EorAG2TcjzW9V(;oMoSr$~Y*j4iW4z{+ zk4UC#Ece^e2rn>)!`6~t-|wTnFgGj`3mAcD)b$|H4Q8trEemn5z!dD4Vu6pEE)EMT zX3t{@UzA-0xLxTUtHej4TUWa4>;>DuM98j0K9Dz}S=eQIc4y~n|(Fo>EGi(6ZoxC-m(qC>QO`#u9^ zGC2PA3W=j;3>mURa6l<@7Ww$9d>Hhbik1&h=z8~PvdmaT^G;IB6D1)6zHG{Q-$7jl ztK(e}-{E)eg%_ZcZVNMDEbO$R8UruYRE|^BG?Ta1FEX6X9Dm2-+hMj9+Q+uERH<4A z!_xbucdTp1!jKkra)GOmbPNxct!e~8-~?d4+kI-By>_2U%=s$}2`7gAp$BMn2M;05 zd#SRlj)|4tR=Pq)k=lyXM|I1kuIHIt!a)(m)UGb2D<{Sr**I+pkK;ioZ~CF?grZfM z>DP@F{r*D4kCH=Pv;t4wXx6 zb@UPL1clmMrvT;eGkhs=MC$sL+-NQQGfmuv8I4RkL%a-%g6Ql-TxAjRJut~c)Rp9M zB8d9QpjQrHp`0SixSQhz4uMQQoKlZbo~+7ZDXZK|3VpWWL(fNx1=|w*VC+zKWrmg` zgp~Ru^(N5J{K<%Quz!NC3zY9O)*#)`O2%ub6ahWGJxvY=w z?fI7!I&b%@YhB2EE5xsX*&;RcgTbFL6ZfFZ+F^M1RQ7>)lp^NQ5a&8PD*E|&*~m4n zlHdy)B7!x+*zaRnZa1FdZI19J)88p2E(@?|ybup%Ls6$RV~BLr0(m!|d+jzCS{psq zL+rHMOZwkJZ!lDT7(5eZcwwy&Pmi)Wcjk5Q+LwN4S3 zx4SoJHII`?Tx^57Z8elZX3vMBLe8B`aY$k5L7i944xdJOU+3dAG0eG6<-BD8l)MXQc&KJ^jRQ^m;@7v=mV;t%!>nwoSO_SyzkGaB5*VCikS z*I|v{^|+#$y=EqKsW%kY(vs(7a6mcx>XGxQ-F}GqOI3Kmp?lWG^#Ql&4&9a!Rj5<+ zvw9GS%u*BW+M-orK?fx-!Jc?|sN3T7%iO7+>F7)(TVdq317=iZ+C7`1AO#&px~TUK zmS<;A!ln+QEMYs18cWuRBxCBt@9!$1?6nj`8M%n$`=2?lUzukO$e9pu=Jj^Rimixf3jYdRC@{{`u#gb2w_FR(TKQH*^;(-^4GmIo{ zN*QpP!%lKB3K$ZMek+5q`$IFY&DwTFBy>-W9fFLt+USNT>WXovf5aaKv3f$i#wAj0 zF8faE`FCZCN=sXcwIre1Qwu09IyBM9kYDqibY|oRzvA#%gFNb}cSFkjfi{GkG08v@8CTCyp=t)hR{QK_4{WB?07V> zB;xUd5jk?s*I+8H+y^-E=_&0{bX>Uq5IMQbhp&S&frFt$T5xl&Q;0VkT~+pbsggDHYnSmpC`&a7Cz!~9Po#e}m7>Ug9Nam3jZya!j7gpi@;Eb9_3 z{WW#0gHz#)GSJF*wV8K{Z?t@)uFVRMWZ;G|h1v4*1@$pd#HFzf@)NT->9~kv)O^LPKqoz+*_#9jN)xu(1w{Tn~JQO~(>?%{!W;h0*s##N=uE>hF=Y zAx7w5H)TQ76{;6~lfZ5z69{>pD$#n?84YmM-Hg+_)gw=Uf6#@GDl7!gF+}GRQ?wf_ zP_j8Pql3-?ef8k<%=VXHH1mqx%d?i*?62tILfCgYI6gNh|BLDs`VG@%^n~0)_lhm| zT_Vdrlpdhhcz;JZMI_;hK$Nu=V&Y#L_zb#(pO{mbwMpSl&`stU8Dly@Z zQ0*SWOEz~;N$R;g+U6ETES55SHZrM_fzU!P41DK%VmuEmuS);Wg6RNXG-;GNo^$syXIF5`x^0G*-xcWoW<(C};GUL^j_tYBe3&X(h;J=~f^YdcXFtC05k8}V*0s!C zU6)CFE-Jg`VPFKVVLM39V$JW&GR7|5ICFW^+JzAz`e}~F?Jm;DDbb@4B-j^lSdz7!l|bsW=2t{La;zOix#L}(;O zdHN7)>ffrzj%dj(SvX)ayokq15pQ-j(w;9Z>)z4G?dxRFd|O%5yPP?J^L1F;w>`DG z3VL>lS6x7w_}U0>Mmm#a4IPJ6q2TGHJId9Sw4hJRx!|l4{%oDP^{-h3mo2>I(wh(S zp(jhr^b%ZfJj2CzrEs4VKlSOow`gd>jG5;ypb?lQE6CyGbKd69;M&ctrZH?0%Z1Op z5|HsOp`qy{@!fW(i@#@3J>d71TZ1uvh`zxoh~*L{4_V0Cqs&9aP-Q+=0+ToWWlVtj0;Ua6%;Sgk`$Pbg2mqYt* zbc;ON!6{wE8)jFG#d)p4o=J+S&&20FV|ZZAXWx)n#pzQS~bv0y#uBz7KZM?0a&iu z7?4~MUiPe!y>QAOKK#i|$ZxZWzhb1Q_?Ib2RE0HmWZqSAsWQ36*OBl}ZGXU<#qYIc z@*+dCF{}oxm3p@V?>$oaVy(;>n=Vt|Yn>{e>$I>-yV110E^c9H^d>Z`jD535z4t!= zz$A5Wp3JGP8fRY5oXpZxFN@hj+Z4lqK~`W1U~(X)7GXNwL@SEASZtAmJ(AuQB3b&m zvLT`V(E_(U)Xy+;RE*=E%&V{BIVewcq%Qy-tWYB<&ij1-I&P#{KMmV@_J(-tNyx|a zUnb?+#u=HjO|-_|JV-WH&+JeynB9^b=kPJ!c;M@681F}_2bCd+_2mDDD;Se2V z%G>r#zs1N*y#vyb5036yajS7@y%1eKHAZLRGZ&1F-XA?_#%1-~V~b0CipO(O$;X=7 z>F;x~sp~mZ#UTVXgD)vlD9|Xqq>a7=FtpOmndglgaY6^v)=FHxdWOLH!DQ)`cG0+J zVaog-wMFg^Awy8j5$TCpKt;Z)(!0HuHCz6Tcx$C*7^aJia^5k*)!dh4R5s|b7Gw0b ziQ`Td%f7Ahq=JY;af4U!^t7a+%Aw<2^xye&3-^(9^Ziz-6UfzEQNuaD@WY{O?e0AR z47jY*EN!oIgg&^Oq1T+alllUa=zN9dCs@l*@$_uV1LbEBXod0n0$*V;A-ZRrytLIi zuD+Hvm}LpbV4B$lJUNXui)uHlCFN# zI@R3BhN6ejiKl-!MaCm$&MJ~iydVIZ!*agI_-`8!XtO3Y023VAEZ%yQxuzmIuRd~K zpKI_}gfZ{i!2xCirjtj8Y5mT@l;D!G+%}&rFp)DUAvjNJB3xvbI`s_D3vO<`U-UA` zP`u!qW~&t?$-YMe!ZYnF@3?2bRn80iKE|IH@0=*D)l4C zNG`pDl23c^q7ZFF2&ks2wKi`aBLeCJlM*6L>Y^dkw4wAHTm9l37IlsZd9mRxqsG?$ zBf6S||D7`&t|PjLFx6)YP7;}&5V8>tnn@0T9nA=7}Hl%yY znu3Yh*dkr*XweOWUdrh+)udeCC9`v2Ju+W3&Z?S3l6ooX+Db z(jED?^go2~WO;Woo0Ka@vz1pDc%Pjn6eD0w!@`JDJuGU$S7Q}%ZE))W9Np*G4B;yO zhBxyZzCXpUDfVSFJZNAzvo?U0tygAfQ`VWella-+R2+bA%%`ELdcVD@TJcx0&ZCyd zT+9MSJ2T<2Fc|61W=-0>c!Rj;8^=+&RsXdyeRHurGt?8d`mBGX z!Bshh$giXn6;dyWe|e-|zof5d*#mm&$RhFVkPZWO^#FJvmt;8^{A9IDZnlG#-20WK zbQ?tq5W@W;)(%T`=!M(OL-)+v;SVk`3I>&n!#At2hU#ie_q~g`b*$r;CHrc} zPx+gE>dJdkHbM1%CX_Z-tl*_GX=P`ZS(}00fTTM&M{p0zV*09%jzTClrwXOw z4FZ8Pr!H{PbIC-1;RC$E?F-j(PjjtdP9&PY;E{vWzdw~Nv@xwRlu`4y&&|QIs0@tz zi_u)ipS?c{dRqF{50yP^<&UoCmw!);EM-x~vFtVs3~^)lKAXpAt&V79Yv$Zw~D01Tp9KxH)yYouuBJpTJV7Kd_(-kzMC_@6wKZyti5VSmw=WE|z}b=X$`V z6Mykb9&`PA(_CEytY0#BSfIo}GWFleSVg%$+-s0?^N&6ZLhYzfT~(V;+;7E^^@^&R zX)f2ULV0QwMXtv>GIkZ+@V_~9SJk^WpajA_6wxl zV*QJaZK*%$mVzU2aPC>=j*N=zY&j$N&W2kb7RTGcm9h2XUkh?)X=$_c`H|Z{RoUbu zdHrYB;w_dpiDIL?@zBOk5-x*35z-lg9I3Cbn=hl&pt+sr9z6odqHG2y!Se!m=!bb? zrL(cP*m9>c2|q=|ZaN<>d_`}k8}yQe}q z!}AO09sl`FhLV2z<`;EQy%EvuXm-^vSLlJ4pCR+|RhD1l<}ZeAKX)~zhQMLLNYglz%PbBG=(d8&KKR!I?1N}CgKb0tIpp0a|82!d2V`SrQgF!`xRLt zcUCO+L6xHOSf@C{bBNTmx~~p~xm>%jP3OI9I=r{&p>d^RBWEaa6bCgrL1j(9e(^D% zk?$1spWe{RT*T+3rK_8i>}Ko*^lnE}n>;poyG!agJehh~v#PoJG~K})mBclS7wZ?( zAq@F)bHna3~fQ+jyyB z9{=_HS)_pHEz9~MW9JzcJ@X@1_3j58FWDa_Y8`U)FQP)sxtA#UU6Ns5wMT|~fT^Uo zPH#(JrN-aM?6wB|uGkXt5gH?7c(2su&X~l#wt?AOzA#;T(8)x%O}9voxlZwE(xICN zw|{%$JE|*rQF`RXxRUGGh21Bd29XJA%Ud!4>$JH)Q( zaM$JY(5V9VN{TX+0Oz6mTh1!wBs?T)=u}$74uPkR3Q!FpWsi9aI?XA3ZZ~RK5O$Wi ze!fDzDmI}mKR;j6AxnRq19vVb44!#MknUxE-F)?>MeheAKQsqK%HG|>B0~6HUQ%7f zJC6GASt=G48qrMzNOCLhvb*qxv{Nd-X)5zgA)A`8q_f!aookz&+x*jjpQfel|eeey_7oX#K_ zNAk1F>t zLXJUG3N@==g1_|k2pm1xk3TAQfeT>bEqm69@<@6AHR01br+1c4sQwY%%G(nP;SRQD z*IKxPjW&t-=OFDZP1I5&PJ5dE)5xq6)hlRkplr`}eHSX)OYV%rivpq7y^>6&mflgi zR-9a@gi-R>)RuAbZVt4Bvq4Lxa~MbDZzrrR!Z)=S4= zKw}-6l|K**gd=l`T^WZ&d zWBKzpW?4fAK~Rv-QnjPisG5LTEErdq@8MX7!|5nrf3uAT~Cvay!9)(PJ4LMP-XM& zSo(rMcdLACL60e!J%*vAUdPe1U$-eF;b>G0UuGvG^Rz0o3O+s6@LaEur;cabJQxWP z@h%b8J9pX_oqp**KlZN{A zIeBqZ74if+_KVM~Zo{@vKDp0bg30G~z4y&0m@Us+0|bBQSJVGHxV!8yOj7TO%u|hv zK9e6y?_GY4M|=3gASx}!R%Q40P=A+?2XT^mRza==IWF8Vzy9iwLLy?a>{`*aXqMrV zR~r^P*)Mw2-gePo@F4ndbUC;f)XB@1y9V1Y7DG`Rlf%80h#;m{|Hrv<(qozP-3c|| zl~D&U1Db_3{%Yvbp=U(o8}ycCXs8{2!syh)5gH7A=T;$g)|*!A_f}i9aAgqS`Wc($ z0ncYJ*$!cxN6#PjZ=5Qp^{rmdqNJfO5xHUF;E1F8#xs1Yz$>n6zU}NA zxbgv&*LQkDExNe}dMfeuq?ub`xVZmWj1k!6H4c@PQ#oca3%K0h;KH#S8C9c zKQPohE0aZLfZT=l z*`)yHAiL>(!~sHMp&vo0F%p~%9?IxSzZK!Jh@t@bkB+6mkG8oq1GnujRos>L9o(RB zw4b{f-#PjtwwEmFBirX{Psun>B@jnrqq$qfZJ*;>Ed;9;n7&7^_&_mYuoxaYK_xBJ zBhJFE?JI2C6*SO2+^M6%6AUd zzH@ZoGz1Zd5j+yV*qvhL{j5f#S#X9cF2CfbK{r+~yJg`stXwTO`BETyV+PUun8Dg` zMr5#U0E4w%DLz&AtBZu-L2X>ac|K6n?+s-?vAa^ZmLlLgo0*z^QOPvYmFjMTG8G1` z?8bp2H!_*l8x?DXpY-p+A!jc-EtiO7c<8{AZA=-hK@}ht2oO^qGFuXb+p*|3^CXcn z{LsLn8!!TpmWDOIqPSWhhsGBhbuPyz7mgYjXfmRAi)r03d1p54X(Vx#<{9VUHt zCk?j0%VT?s1`UwNeuaj6I&OZGM2y)JG|p+SO*GBQRPw?O{>`z`?7IGkYIx@13h4y{ zT*s~%ibz=>A(ABl3X_o-*d_=e;8`R_Gz5r>-3Dg(tTzoXm>0(axM)SR&Z8Cvh2CLu zu?0=gL2%V+!Dda^ZpTT92Tw~>Aj=S&d7#J(|u^TTD z|ACG}XEuv8P0Dg@aR7&y=IhNDPV@DYso|>U^Z}Y}6L>i%>$H|Ta8)IB;iMdguUnwe z4J%j!D`r9MrnU5MWgz@v`&XZC5 z;e6pSfJH?xf1P>naeNPd(?)G!?!{Ywt1=H5_Q~;X@TY&~Vc7s(B~KP3!)6J7SSvT|Bl(oJO|#$$&bfiBAfI^=U3lCEelGTkfjh89vIpyc~+f%9jYC%Il4EaO^)&*sL%7 zNiRUvetWgr=JWvPBmK&Y3?EPfkq$j{Xn&OtZG-;$?>lJ72;2Ue{*N5leK%|c59N?J ab|vNW;h(G-u@8fPCX7!>JUC8X{Qm(Zf7iAE diff --git a/res/getAddrWhite.png b/res/getAddrWhite.png index 6caeeae319540c6c3bbc1b0b91af02aa7e042a72..28b30fbaeb67d543d56382775706b8fae81d3fba 100644 GIT binary patch literal 12615 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 diff --git a/res/unknownBlack.png b/res/unknownBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..faf65e0eeb0c6b8e08a7cfdd172801dea0812cc0 GIT binary patch literal 21025 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 - - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon - - diff --git a/res/upload.png b/res/upload.png deleted file mode 100644 index b6f3c1fc0fe0d3f6b4bef72ec66a3bcd4d3dc2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1369 zcmeAS@N?(olHy`uVBq!ia0vp^w;321WjNS?EI-MEKY*N;OlRi+PiJR^f};Gi%$!sP z291fe6Ky>XJIEZ356*Vg;wuv|5lX0FZ|9Y@G5m#q-=7-vfF7^GX*y9 z6gB+QC154!%A;(wxhK-o>tK1!UF8GUcUzqQWdHs7i@?uf%uGrjd5nE#SIn)*x@>0g zUf4a-GpzG`r@QYig^$YDMf>kth{uXmq+L0)03F=@2AtX zvGzaY|Gc}V<mW zgs+r-@IXL9FX-E>^SgK7s{Z}mXY+pfqN7F2cV#rC0HcL1$=lt9;Xep2*t>i(P=vF< zBeED6gV#Zr(Me-=1yGQ^#M9T6{Ru0Zh#KGI!)@XW49sDkE{-7;x8B~}$jfZV!{Rvi z_xs4cn5Oe}MQTA>T-;3aYxw$$-tV1XJZZ*>;)*rxZE6-919^N4k`_zMdT_+e(Bxoe zZ&F5+u=LRjEb3-m3pxFAM4W}^+|a#23w$Lv5^yGzEqPiL;$4K z8DgQD3DgN-t!)pWW^v?&Lrgz*>46ehiJ{gG4zQ^`TzX*5Qj43qF9-k~aBKyBC3hYH z)f@q-*=}IA(9jZOj&7H4Mh*waAa0<$W`j(+^8l#q7)Y5pP}xSXvQnVL0^yhzwz)v@ z7cAln9o2!ltq!_oT;SAmYW6D-lq#XF5?OuahD&9)s|uz6+S^Ip$Z5FY0LBVt4ml7k zAgy2q!5zE;(hz)vt%DbWlbDaNLGVV#BxW#fyuq*$f+0qMjHIz~z+{gDJfBkxOxed6 r?mzzzbOh8NXE|UlBE@s4HvF*8f8(*Ycx^~XAV|W~)z4*}Q$iB}e1!gF diff --git a/res/upload.svg b/res/upload.svg deleted file mode 100644 index 9f31b60..0000000 --- a/res/upload.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 5bd28d0..ee3fe6d 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -99,18 +99,39 @@ void MainWindow::renderContactRequest(){ requestContact.setupUi(&dialog); Settings::saveRestore(&dialog); + QString icon; + auto theme = Settings::getInstance()->get_theme_name(); + if (theme == "dark" || theme == "midnight") { + icon = ":/icons/res/unknownWhite.png"; + }else{ + icon = ":/icons/res/unknownBlack.png"; + } + + QPixmap unknownWhite(icon); + QIcon addnewAddrIcon(unknownWhite); + + + + QStandardItemModel* contactRequest = new QStandardItemModel(); for (auto &c : DataStore::getChatDataStore()->getAllNewContactRequests()) + + { - QStandardItem* Items = new QStandardItem(c.second.getAddress()); + QStandardItem* Items = new QStandardItem(QString("Unknown Sender")); contactRequest->appendRow(Items); requestContact.requestContact->setModel(contactRequest); + + Items->setData(QIcon(addnewAddrIcon),Qt::DecorationRole); + requestContact.requestContact->setIconSize(QSize(40,50)); + requestContact.requestContact->setUniformItemSizes(true); requestContact.requestContact->show(); requestContact.zaddrnew->setVisible(false); requestContact.zaddrnew->setText(c.second.getAddress()); + } QStandardItemModel* contactRequestOld = new QStandardItemModel(); @@ -137,7 +158,7 @@ void MainWindow::renderContactRequest(){ QString label_contact = index.data(Qt::DisplayRole).toString(); QStandardItemModel* contactMemo = new QStandardItemModel(); - if ((c.second.isOutgoing() == false) && (label_contact == c.second.getAddress()) && (c.second.getType() != "Cont")) + if ((c.second.isOutgoing() == false) && (requestContact.zaddrnew->text() == c.second.getAddress()) && (c.second.getType() != "Cont")) { From a02ee09241799febdb54e42fd35c464a95501a1e Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 28 May 2020 00:30:02 +0200 Subject: [PATCH 41/45] fix place of gui element --- src/requestContactDialog.ui | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/requestContactDialog.ui b/src/requestContactDialog.ui index 242e3ba..d4420ea 100644 --- a/src/requestContactDialog.ui +++ b/src/requestContactDialog.ui @@ -376,13 +376,6 @@ - - - - - - - @@ -397,6 +390,13 @@ + + + + + + + From 76a7776e7385b2cbd5c8ac8748fd63392c78a76a Mon Sep 17 00:00:00 2001 From: Denio <41270280+DenioD@users.noreply.github.com> Date: Thu, 28 May 2020 15:39:40 +0200 Subject: [PATCH 42/45] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a36f828..31d4041 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ SilentDragonLite does automatic note and utxo management, which means it doesn't ## Compiling from source * SilentDragonLite is written in C++ 14, and can be compiled with g++/clang++/visual c++. * It also depends on Qt5, which you can get from [here](https://www.qt.io/download). -* You'll need Rust v1.37 + +* You'll need Rust v1.41 + ## Building on Linux From 0333d502ed312a607f342566351f412db8fb5810 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 28 May 2020 16:24:55 +0200 Subject: [PATCH 43/45] fix deps --- lib/Cargo.lock | 6 +++--- lib/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Cargo.lock b/lib/Cargo.lock index c2021b0..01613d0 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -1177,7 +1177,7 @@ version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359)", ] [[package]] @@ -1640,7 +1640,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93#1daf5ce75fcbd51047360681652f173f93f54f93" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359#32ca60735b3529ff8589ab08fc16678f508a9359" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2631,7 +2631,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=1daf5ce75fcbd51047360681652f173f93f54f93)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 15e0acd..fba5265 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "1daf5ce75fcbd51047360681652f173f93f54f93" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "32ca60735b3529ff8589ab08fc16678f508a9359" } From 1efbfa342fb72fdc017f773fa5c70123d21789a6 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 28 May 2020 16:25:51 +0200 Subject: [PATCH 44/45] fix deps --- res/unkownBlack.png | Bin 0 -> 21025 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res/unkownBlack.png diff --git a/res/unkownBlack.png b/res/unkownBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..faf65e0eeb0c6b8e08a7cfdd172801dea0812cc0 GIT binary patch literal 21025 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 Date: Thu, 28 May 2020 16:44:12 +0200 Subject: [PATCH 45/45] switch back to sdl-cli 1.0 --- lib/Cargo.lock | 6 +++--- lib/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 01613d0..e0ea0c9 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -1177,7 +1177,7 @@ version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763)", ] [[package]] @@ -1640,7 +1640,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359#32ca60735b3529ff8589ab08fc16678f508a9359" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763#d196ad938a22810c0b6b4164e6bf8f1db0409763" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2631,7 +2631,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=32ca60735b3529ff8589ab08fc16678f508a9359)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index fba5265..dba0c30 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "32ca60735b3529ff8589ab08fc16678f508a9359" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "d196ad938a22810c0b6b4164e6bf8f1db0409763" }