mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-23 17:47:31 +00:00
Add multiple change output preference
Limit to 3 if enabled.
This commit is contained in:
parent
f271f65842
commit
641f23229d
2 changed files with 19 additions and 2 deletions
|
@ -2744,9 +2744,23 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
if self.wallet.use_change != usechange_result:
|
if self.wallet.use_change != usechange_result:
|
||||||
self.wallet.use_change = usechange_result
|
self.wallet.use_change = usechange_result
|
||||||
self.wallet.storage.put('use_change', self.wallet.use_change)
|
self.wallet.storage.put('use_change', self.wallet.use_change)
|
||||||
|
multiple_cb.setEnabled(self.wallet.use_change)
|
||||||
usechange_cb.stateChanged.connect(on_usechange)
|
usechange_cb.stateChanged.connect(on_usechange)
|
||||||
usechange_cb.setToolTip(_('Using change addresses makes it more difficult for other people to track your transactions.'))
|
usechange_cb.setToolTip(_('Using change addresses makes it more difficult for other people to track your transactions.'))
|
||||||
tx_widgets.append((usechange_cb, None))
|
|
||||||
|
def on_multiple(x):
|
||||||
|
multiple = x == Qt.Checked
|
||||||
|
if self.wallet.multiple_change != multiple:
|
||||||
|
self.wallet.multiple_change = multiple
|
||||||
|
self.wallet.storage.put('multiple_change', multiple)
|
||||||
|
multiple_change = self.wallet.multiple_change
|
||||||
|
multiple_cb = QCheckBox(_('Multiple'))
|
||||||
|
multiple_cb.setEnabled(self.wallet.use_change)
|
||||||
|
multiple_cb.setToolTip(_('If appropriate, and the "privacy" coin chooser is selected, use up to 3 change addresses.'))
|
||||||
|
multiple_cb.setChecked(multiple_change)
|
||||||
|
multiple_cb.stateChanged.connect(on_multiple)
|
||||||
|
tx_widgets.append((usechange_cb, multiple_cb))
|
||||||
|
|
||||||
|
|
||||||
showtx_cb = QCheckBox(_('View transaction before signing'))
|
showtx_cb = QCheckBox(_('View transaction before signing'))
|
||||||
showtx_cb.setChecked(self.show_before_broadcast())
|
showtx_cb.setChecked(self.show_before_broadcast())
|
||||||
|
|
|
@ -159,6 +159,8 @@ class Abstract_Wallet(PrintError):
|
||||||
# saved fields
|
# saved fields
|
||||||
self.seed_version = storage.get('seed_version', NEW_SEED_VERSION)
|
self.seed_version = storage.get('seed_version', NEW_SEED_VERSION)
|
||||||
self.use_change = storage.get('use_change',True)
|
self.use_change = storage.get('use_change',True)
|
||||||
|
self.multiple_change = storage.get('multiple_change', False)
|
||||||
|
|
||||||
self.use_encryption = storage.get('use_encryption', False)
|
self.use_encryption = storage.get('use_encryption', False)
|
||||||
self.seed = storage.get('seed', '') # encrypted
|
self.seed = storage.get('seed', '') # encrypted
|
||||||
self.labels = storage.get('labels', {})
|
self.labels = storage.get('labels', {})
|
||||||
|
@ -973,8 +975,9 @@ class Abstract_Wallet(PrintError):
|
||||||
return tx
|
return tx
|
||||||
|
|
||||||
# Let the coin chooser select the coins to spend
|
# Let the coin chooser select the coins to spend
|
||||||
|
max_change = 3 if self.multiple_change else 1
|
||||||
coin_chooser = self.coin_chooser(config)
|
coin_chooser = self.coin_chooser(config)
|
||||||
tx = coin_chooser.make_tx(coins, outputs, change_addrs,
|
tx = coin_chooser.make_tx(coins, outputs, change_addrs[:max_change],
|
||||||
fee_estimator, dust_threshold)
|
fee_estimator, dust_threshold)
|
||||||
|
|
||||||
# Sort the inputs and outputs deterministically
|
# Sort the inputs and outputs deterministically
|
||||||
|
|
Loading…
Add table
Reference in a new issue