public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/electron-cash] rawhide: Updated to version 4.4.6
@ 2026-08-12 11:05 Jonny Heggheim
0 siblings, 0 replies; only message in thread
From: Jonny Heggheim @ 2026-08-12 11:05 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/electron-cash
Branch : rawhide
Commit : ba7382ee9bfb873cb2766eaac1a6e14b5d6b1652
Author : Jonny Heggheim <hegjon@gmail.com>
Date : 2026-08-12T13:05:17+02:00
Stats : +9/-337 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/electron-cash/c/ba7382ee9bfb873cb2766eaac1a6e14b5d6b1652?branch=rawhide
Log:
Updated to version 4.4.6
---
diff --git a/.gitignore b/.gitignore
index bfd235a..09a5d74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -101,3 +101,5 @@
/electron_cash-4.4.4.tar.gz.asc
/electron_cash-4.4.5.tar.gz
/electron_cash-4.4.5.tar.gz.asc
+/electron_cash-4.4.6.tar.gz
+/electron_cash-4.4.6.tar.gz.asc
diff --git a/electron-cash.spec b/electron-cash.spec
index 067873d..1f2baf3 100644
--- a/electron-cash.spec
+++ b/electron-cash.spec
@@ -1,6 +1,6 @@
Name: electron-cash
-Version: 4.4.5
-Release: 4%{?dist}
+Version: 4.4.6
+Release: 1%{?dist}
Summary: A lightweight Bitcoin Cash client
License: MIT
@@ -8,9 +8,6 @@ URL: https://electroncash.org/
Source0: https://github.com/Electron-Cash/Electron-Cash/releases/download/%{version}/electron_cash-%{version}.tar.gz
Source1: https://github.com/Electron-Cash/keys-n-hashes/raw/master/sigs-and-sums/%{version}/win-linux/electron_cash-%{version}.tar.gz.asc
-Source3: https://raw.githubusercontent.com/Electron-Cash/Electron-Cash/refs/tags/4.4.2/electroncash/paymentrequest.proto
-Source4: https://raw.githubusercontent.com/Electron-Cash/Electron-Cash/refs/tags/4.4.2/electroncash_plugins/fusion/protobuf/fusion.proto
-
#Sun 15 Dec 2019, exported the upstream gpg key using the command:
#gpg2 --armor --export --export-options export-minimal D56C110F4555F371AEEFCB254FD06489EFF1DDE1 D465135F97D0047E18E99DC321810A542031C02C > gpgkey-electron-cash.gpg
Source2: gpgkey-electron-cash.gpg
@@ -78,8 +75,6 @@ rm -rfv ./packages/
pyrcc5 icons.qrc -o electroncash_gui/qt/icons_rc.py
#Re-compile the protobuf description files
-install -D %{SOURCE3} electroncash/paymentrequest.proto
-install -D %{SOURCE4} electroncash_plugins/fusion/protobuf/fusion.proto
protoc --proto_path=electroncash/ --python_out=electroncash/ electroncash/paymentrequest.proto
protoc --proto_path=electroncash_plugins/fusion/protobuf/ --python_out=electroncash_plugins/fusion/ electroncash_plugins/fusion/protobuf/fusion.proto
@@ -130,6 +125,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.elect
%{_datadir}/metainfo/org.electroncash.ElectronCash.appdata.xml
%changelog
+* Wed Aug 12 2026 Jonny Heggheim <hegjon@gmail.com> - 4.4.6-1
+- Updated to version 4.4.6
+
* Wed Jul 15 2026 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
diff --git a/fusion.proto b/fusion.proto
deleted file mode 100644
index f2273f7..0000000
--- a/fusion.proto
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Electron Cash - a lightweight Bitcoin Cash client
- * CashFusion - an advanced coin anonymizer
- *
- * Copyright (C) 2020 Mark B. Lundeberg
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation files
- * (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-syntax = "proto2";
-
-package fusion;
-
-// Some primitives
-
-message InputComponent {
- required bytes prev_txid = 1; // in 'reverse' order, just like in tx
- required uint32 prev_index = 2;
- required bytes pubkey = 3;
- required uint64 amount = 4;
- }
-
-message OutputComponent {
- required bytes scriptpubkey = 1;
- required uint64 amount = 2;
- }
-
-message BlankComponent {
- }
-
-message Component {
- required bytes salt_commitment = 1; // 32 bytes
- oneof component {
- InputComponent input = 2;
- OutputComponent output = 3;
- BlankComponent blank = 4;
- }
- }
-
-message InitialCommitment {
- required bytes salted_component_hash = 1; // 32 byte hash
- required bytes amount_commitment = 2; // uncompressed point
- required bytes communication_key = 3; // compressed point
- }
-
-message Proof {
- // During blame phase, messages of this form are encrypted and sent
- // to a different player. It is already known which commitment this
- // should apply to, so we only need to point at the component.
- required fixed32 component_idx = 1;
- required bytes salt = 2; // 32 bytes
- required bytes pedersen_nonce = 3; // 32 bytes
-}
-
-
-
-// Primary communication message types (and flow)
-
-// Setup phase
-
-message ClientHello { // from client
- required bytes version = 1;
- optional bytes genesis_hash = 2; // 32 byte hash (bitcoind little-endian memory order)
-}
-
-message ServerHello { // from server
- repeated uint64 tiers = 1;
- required uint32 num_components = 2;
- required uint64 component_feerate = 4; // sats/kB
- required uint64 min_excess_fee = 5; // sats
- required uint64 max_excess_fee = 6; // sats
-
- optional string donation_address = 15; // BCH Address "bitcoincash:qpx..."
-}
-
-message JoinPools { // from client
- message PoolTag {
- // These tags can be used to client to stop the server from including
- // the client too many times in the same fusion. Thus, the client can
- // connect many times without fear of fusing with themselves.
- required bytes id = 1; // allowed up to 20 bytes
- required uint32 limit = 2; // between 1 and 5 inclusive
- optional bool no_ip = 3; // whether to do an IP-less tag -- this will collide with all other users, make sure it's random so you can't get DoSed.
- }
- repeated uint64 tiers = 1;
- repeated PoolTag tags = 2; // at most five tags.
-}
-
-message TierStatusUpdate { // from server
- message TierStatus {
- // in future, we will want server to indicate 'remaining time' and mask number of players.
- // note: if player is in queue then a status will be ommitted.
- optional uint32 players = 1;
- optional uint32 min_players = 2; // minimum required to start (may have delay to allow extra)
- optional uint32 max_players = 3; // maximum allowed (immediate start)
- optional uint32 time_remaining = 4;
- }
- map<uint64, TierStatus> statuses = 1;
-}
-
-message FusionBegin { // from server
- required uint64 tier = 1;
- required bytes covert_domain = 2;
- required uint32 covert_port = 3;
- optional bool covert_ssl = 4;
- required fixed64 server_time = 5; // server unix time when sending this message; can't be too far off from recipient's clock.
-}
-
-
-// Fusion round (repeatable multiple times per connection)
-
-message StartRound { // from server
- required bytes round_pubkey = 1;
- repeated bytes blind_nonce_points = 2;
- required fixed64 server_time = 5; // server unix time when sending this message; can't be too far off from recipient's clock.
- }
-
-// Phase 3
-message PlayerCommit { // from client
- repeated bytes initial_commitments = 1; // serialized InitialCommitment messages; server will repeat them later, verbatim.
- required uint64 excess_fee = 2;
- required bytes pedersen_total_nonce = 3; // 32 bytes
- required bytes random_number_commitment = 4; // 32 bytes
- repeated bytes blind_sig_requests = 5; // 32 byte scalars
- }
-
-// Phase 4
-message BlindSigResponses { // from server
- repeated bytes scalars = 1; // 32 byte scalars
-}
-
-message AllCommitments {
- // All the commitments from all players. At ~140 bytes per commitment and hundreds of commitments, this can be quite large, so it gets sent in its own message during the covert phase.
- repeated bytes initial_commitments = 1;
- }
-
-//Phase 5
-message CovertComponent { // from covert client
- // The round key is used to identify the pool if needed
- optional bytes round_pubkey = 1;
- required bytes signature = 2;
- required bytes component = 3; // bytes so that it can be signed and hashed verbatim
- }
-
-//Phase 6
-message ShareCovertComponents { // from server
- // This is a large message! 168 bytes per initial commitment, ~112 bytes per input component.
- // Can easily reach 100 kB or more.
- repeated bytes components = 4;
- optional bool skip_signatures = 5; // if the server already sees a problem in submitted components
- optional bytes session_hash = 6; // the server's calculation of session hash, so clients can crosscheck.
-}
-
-// Phase 7A
-message CovertTransactionSignature { // from covert client
- // The round key is used to identify the pool if needed
- optional bytes round_pubkey = 1;
- required uint32 which_input = 2;
- required bytes txsignature = 3;
- }
-
-// Phase 8
-message FusionResult { // from server
- required bool ok = 1;
- repeated bytes txsignatures = 2; // if ok
- repeated uint32 bad_components = 3; // if not ok
- }
-
-// Phase 9
-message MyProofsList { // from client
- repeated bytes encrypted_proofs = 1;
- required bytes random_number = 2; // the number we committed to, back in phase 3
- }
-
-message TheirProofsList { // from server
- message RelayedProof {
- required bytes encrypted_proof = 1;
- required uint32 src_commitment_idx = 2; // which of the commitments is being proven (index in full list)
- required uint32 dst_key_idx = 3; // which of the recipient's keys will unlock the encryption (index in player list)
- }
- repeated RelayedProof proofs = 1;
- }
-
-// Phase 10
-message Blames { // from client
- message BlameProof {
- required uint32 which_proof = 1;
- oneof decrypter {
- bytes session_key = 2; // 32 byte, preferred if the proof decryption works at all
- bytes privkey = 3; // 32 byte scalar
- }
-
- // Some errors can only be discovered by checking the blockchain,
- // Namely, if an input UTXO is missing/spent/unconfirmed/different
- // scriptpubkey/different amount, than indicated.
- optional bool need_lookup_blockchain = 4;
-
- // The client can indicate why it thinks the blame is deserved. In
- // case the server finds no issue, this string might help for debugging.
- optional string blame_reason = 5;
- }
- repeated BlameProof blames = 1;
- }
-
-// Final message of the round
-message RestartRound {
-}
-
-// Fatal error from server, likely we did something wrong (it will disconnect us, but the message may help debugging).
-message Error {
- optional string message = 1;
-}
-
-// Simple ping, as a keepalive.
-message Ping {
-}
-
-// Simple acknowledgement, nothing more to say.
-message OK {
-}
-
-// Primary communication channel types
-
-message ClientMessage {
- oneof msg {
- ClientHello clienthello = 1;
- JoinPools joinpools = 2;
- PlayerCommit playercommit = 3;
- MyProofsList myproofslist = 5;
- Blames blames = 6;
- }
- }
-
-message ServerMessage {
- oneof msg {
- ServerHello serverhello = 1;
- TierStatusUpdate tierstatusupdate = 2;
- FusionBegin fusionbegin = 3;
- StartRound startround = 4;
- BlindSigResponses blindsigresponses = 5;
- AllCommitments allcommitments = 6;
- ShareCovertComponents sharecovertcomponents = 7;
- FusionResult fusionresult = 8;
- TheirProofsList theirproofslist = 9;
-
- RestartRound restartround = 14;
- Error error = 15;
- }
- }
-
-message CovertMessage { // client -> server, covertly
- oneof msg {
- CovertComponent component = 1;
- CovertTransactionSignature signature = 2;
- Ping ping = 3;
- }
- }
-
-message CovertResponse { // server -> a covert client
- oneof msg {
- OK ok = 1;
- Error error = 15;
- }
-}
diff --git a/paymentrequest.proto b/paymentrequest.proto
deleted file mode 100644
index 32f9b56..0000000
--- a/paymentrequest.proto
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// Simple Bitcoin Payment Protocol messages
-//
-// Use fields 1000+ for extensions;
-// to avoid conflicts, register extensions via pull-req at
-// https://github.com/bitcoin/bips/bip-0070/extensions.mediawiki
-//
-
-syntax = "proto2";
-package payments;
-option java_package = "org.bitcoin.protocols.payments";
-option java_outer_classname = "Protos";
-
-// Generalized form of "send payment to this/these bitcoin addresses"
-message Output {
- optional uint64 amount = 1 [default = 0]; // amount is integer-number-of-satoshis
- required bytes script = 2; // usually one of the standard Script forms
-}
-message PaymentDetails {
- optional string network = 1 [default = "main"]; // "main" or "test"
- repeated Output outputs = 2; // Where payment should be sent
- required uint64 time = 3; // Timestamp; when payment request created
- optional uint64 expires = 4; // Timestamp; when this request should be considered invalid
- optional string memo = 5; // Human-readable description of request for the customer
- optional string payment_url = 6; // URL to send Payment and get PaymentACK
- optional bytes merchant_data = 7; // Arbitrary data to include in the Payment message
-}
-message PaymentRequest {
- optional uint32 payment_details_version = 1 [default = 1];
- optional string pki_type = 2 [default = "none"]; // none / x509+sha256 / x509+sha1
- optional bytes pki_data = 3; // depends on pki_type
- required bytes serialized_payment_details = 4; // PaymentDetails
- optional bytes signature = 5; // pki-dependent signature
-}
-message X509Certificates {
- repeated bytes certificate = 1; // DER-encoded X.509 certificate chain
-}
-message Payment {
- optional bytes merchant_data = 1; // From PaymentDetails.merchant_data
- repeated bytes transactions = 2; // Signed transactions that satisfy PaymentDetails.outputs
- repeated Output refund_to = 3; // Where to send refunds, if a refund is necessary
- optional string memo = 4; // Human-readable message for the merchant
-}
-message PaymentACK {
- required Payment payment = 1; // Payment message that triggered this ACK
- optional string memo = 2; // human-readable message for customer
-}
diff --git a/sources b/sources
index 947d9ad..7fd5251 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (electron_cash-4.4.5.tar.gz) = ca9c786046887501a1908b7845ffd1cb2f62b19a031f3bc2f55b2efd0bb38905dfe6a799e3e525240f2544323297c5b797c568fc7930fd42861be87377d03cbf
-SHA512 (electron_cash-4.4.5.tar.gz.asc) = 54a38e952509980656f67ecef171900e8be0bcf62c4f1497b3d0143c391d0f3779d9894e852bed5cba731b4d9c5b2a62a21651017bcbaf466799d114e907ff06
+SHA512 (electron_cash-4.4.6.tar.gz) = 8c3687d82c324caab82815a7417736c264729052063ef8300d91d879784de31cc8b41c8c51655e8daca0182b6df8693ccab6048d19021c137a3012d824e57e63
+SHA512 (electron_cash-4.4.6.tar.gz.asc) = a998513c13c966e3869c1c316ade0c9aadd56284889623827fbf48ff5b7c4ed4cbe06dd2d666325ee17c20af1da99cc26aa0415db458ffbfe7c6d361f4c2f696
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-12 11:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-12 11:05 [rpms/electron-cash] rawhide: Updated to version 4.4.6 Jonny Heggheim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox