Skip to content

Commit c6f7246

Browse files
committed
fix utxo witness_utxo
1 parent dcec305 commit c6f7246

File tree

3 files changed

+33
-19
lines changed

3 files changed

+33
-19
lines changed

electrum/gui/qt/main_window.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1733,7 +1733,7 @@ def broadcast_done(result):
17331733

17341734
def exchange_psbt_http(self, payjoin):
17351735
""" """
1736-
import requests, copy
1736+
import requests
17371737
assert payjoin.is_complete()
17381738

17391739
print(payjoin.to_json())
@@ -1742,23 +1742,34 @@ def exchange_psbt_http(self, payjoin):
17421742
for txin in payjoin.inputs():
17431743
print(txin)
17441744
print(txin.utxo)
1745-
print(txin.utxo.outputs())
1746-
print(txin.utxo.outputs()[txin.prevout.out_idx])
1747-
print('\n',txin.to_json())
1748-
print('\n',txin.to_json())
1749-
1745+
print('\n',txin.witness_utxo)
1746+
print('\n', txin.to_json())
1747+
1748+
if txin.utxo:
1749+
print(txin.utxo.outputs())
1750+
print(txin.prevout.out_idx)
1751+
print(txin.utxo.outputs()[txin.prevout.out_idx])
1752+
1753+
print()
1754+
1755+
1756+
print('\n',txin.utxo)
1757+
txin.convert_utxo_to_witness_utxo()
1758+
print('\n', txin.witness_utxo)
1759+
print('\n', txin.to_json())
1760+
print()
1761+
payjoin.convert_all_utxos_to_witness_utxos()
1762+
print(payjoin.serialize_as_base64())
1763+
print(payjoin.to_json())
17501764

1751-
17521765

17531766
url = 'https://testnet.demo.btcpayserver.org/BTC/pj'
17541767
payload = payjoin.serialize_as_base64()
17551768
headers = {'content-type': 'text/plain',
17561769
'content-length': str(len(payload))
17571770
}
1758-
#print(headers)
1771+
print(headers)
17591772

1760-
1761-
"""
17621773
try:
17631774
r = requests.post(url, data=payload, headers=headers)
17641775
except:
@@ -1768,7 +1779,7 @@ def exchange_psbt_http(self, payjoin):
17681779
print(r.status_code)
17691780
print(r.headers)
17701781
print(r.text)
1771-
"""
1782+
17721783

17731784

17741785
def mktx_for_open_channel(self, funding_sat):

electrum/tests/test_payjoin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ def main():
1212
psbt_test02 = 'cHNidP8BAHMCAAAAAY8nutGgJdyYGXWiBEb45Hoe9lWGbkxh/6bNiOJdCDuDAAAAAAD+////AtyVuAUAAAAAF6kUHehJ8GnSdBUOOv6ujXLrWmsJRDCHgIQeAAAAAAAXqRR3QJbbz0hnQ8IvQ0fptGn+votneofTAAAAAAEBIKgb1wUAAAAAF6kU3k4ekGHKWRNbA1rV5tR5kEVDVNCHAQcXFgAUx4pFclNVgo1WWAdN1SYNX8tphTABCGsCRzBEAiB8Q+A6dep+Rz92vhy26lT0AjZn4PRLi8Bf9qoB/CMk0wIgP/Rj2PWZ3gEjUkTlhDRNAQ0gXwTO7t9n+V14pZ6oljUBIQMVmsAaoNWHVMS02LfTSe0e388LNitPa1UQZyOihY+FFgABABYAFEb2Giu6c4KO5YW0pfw3lGp9jMUUAAA='
1313
psbt_test03 = 'cHNidP8BAJwCAAAAAo8nutGgJdyYGXWiBEb45Hoe9lWGbkxh/6bNiOJdCDuDAAAAAAD+////jye60aAl3JgZdaIERvjkeh72VYZuTGH/ps2I4l0IO4MBAAAAAP7///8CJpW4BQAAAAAXqRQd6EnwadJ0FQ46/q6NcutaawlEMIcACT0AAAAAABepFHdAltvPSGdDwi9DR+m0af6+i2d6h9MAAAAAAAEBIICEHgAAAAAAF6kUyPLL+cphRyyI5GTUazV0hF2R2NWHAQcXFgAUX4BmVeWSTJIEwtUb5TlPS/ntohABCGsCRzBEAiBnu3tA3yWlT0WBClsXXS9j69Bt+waCs9JcjWtNjtv7VgIge2VYAaBeLPDB6HGFlpqOENXMldsJezF9Gs5amvDQRDQBIQJl1jz1tBt8hNx2owTm+4Du4isx0pmdKNMNIjjaMHFfrQAAAA=='
1414
psbt_test04 = 'cHNidP8BAJwCAAAAAo8nutGgJdyYGXWiBEb45Hoe9lWGbkxh/6bNiOJdCDuDAAAAAAD+////jye60aAl3JgZdaIERvjkeh72VYZuTGH/ps2I4l0IO4MBAAAAAP7///8CJpW4BQAAAAAXqRQd6EnwadJ0FQ46/q6NcutaawlEMIcACT0AAAAAABepFHdAltvPSGdDwi9DR+m0af6+i2d6h9MAAAAAAQEgqBvXBQAAAAAXqRTeTh6QYcpZE1sDWtXm1HmQRUNU0IcBBBYAFMeKRXJTVYKNVlgHTdUmDV/LaYUwIgYDFZrAGqDVh1TEtNi300ntHt/PCzYrT2tVEGcjooWPhRYYSFzWUDEAAIABAACAAAAAgAEAAAAAAAAAAAEBIICEHgAAAAAAF6kUyPLL+cphRyyI5GTUazV0hF2R2NWHAQcXFgAUX4BmVeWSTJIEwtUb5TlPS/ntohABCGsCRzBEAiBnu3tA3yWlT0WBClsXXS9j69Bt+waCs9JcjWtNjtv7VgIge2VYAaBeLPDB6HGFlpqOENXMldsJezF9Gs5amvDQRDQBIQJl1jz1tBt8hNx2owTm+4Du4isx0pmdKNMNIjjaMHFfrQABABYAFEb2Giu6c4KO5YW0pfw3lGp9jMUUIgICygvBWB5prpfx61y1HDAwo37kYP3YRJBvAjtunBAur3wYSFzWUDEAAIABAACAAAAAgAEAAAABAAAAAAA='
15-
psbt_test05 = 'cHNidP8BAJoCAAAAApmUy3Oa6MdcM+j5cM1w7BIxlGz2D8GN2nK9tsbHmESKAQAAAAD+////BMkXzO/XlgaOAExsQbP9mumAyAslUiwThX1+gqF3Z6MBAAAAAP7///8CrUsAAAAAAAAWABSy6G0APFIK1Mygn/X1It3Sp7sjBpBfAQAAAAAAFgAU2nAe+KqvbhU63rT052pJUslTN3Ml/hsAAAEBH35MAAAAAAAAFgAU5vIbmekoqCDiLHT+jNPVowJ7t3giAgL2ZUi4zj2sIpPU0rQQvA98/9dUOMFyP/y2qhVwbj1zlUcwRAIgDF00uFWZ2c3F1IBiCaKxphKIlSv+ht1Lch8F++B3CAICIA0k1vhC6J6bkHC6jvhl4pYBYQ7TfoClydnLmeTG8Qs8ASIGAvZlSLjOPawik9TStBC8D3z/11Q4wXI//LaqFXBuPXOVGPdYxlpUAACAAQAAgAAAAIABAAAAAQAAAAABAR+QXwEAAAAAABYAFLdBo8LVBUf5Rg1DFUz1o6QjzUv6IgIDgKPoOPCNL7i4H37KFgY6750XHdQps/yQKbpkEO5dCalHMEQCIDdUvZLe4G+sZDPaY02Smner6TrpjWVofMcKCQfeTpHpAiBHAwHEgBGXEYq8O3rDoSFpJgE7B6nWhQGRCixOzxpJHQEiBgOAo+g48I0vuLgffsoWBjrvnRcd1Cmz/JApumQQ7l0JqRj3WMZaVAAAgAEAAIAAAACAAAAAAAgAAAAAIgIDhgLfaU5ScNGBBRX33y/qp7PgZFHQZSGO1qHmIfNtNlAY91jGWlQAAIABAACAAAAAgAEAAAACAAAAACICA5XOZXvPEUSTRt2Nf1qlYDp9Iq1Shm0sxKO7QD39ZWw/GPdYxlpUAACAAQAAgAAAAIAAAAAACQAAAAA='
16-
15+
psbt_test05 = 'cHNidP8BAHECAAAAAVwGnoRUshzXZF7tNBNS1fKIelmiyTKwAsJBh+XIWpw+AAAAAAD+////AnARAQAAAAAAFgAUzvW2236QIPmn3lWUMnuBS1sBlJCTTQAAAAAAABYAFLLobQA8UgrUzKCf9fUi3dKnuyMGaP8bAAABAR+QXwEAAAAAABYAFI1G8mbEyNem7WV7SWRGunhPzzcMIgICfWZ87vV+i25qubq9AqHcaEXNKTMCtYhGdKiYayd4a/JHMEQCIDpRqqM7uIWEXrLcv9f/L/WEHuZarYRgSo2M3eXA0IpzAiAKn1nbiXSVFbdPna7rKENT6PHmvn7HFPE3Wd7lM+NdYgEiBgJ9Znzu9X6Lbmq5ur0CodxoRc0pMwK1iEZ0qJhrJ3hr8hj3WMZaVAAAgAEAAIAAAACAAAAAAAwAAAAAIgIDqpXL2t/kOlPve86KzKVRHKM1ZqhugNaHZ6U3uHBIAtAY91jGWlQAAIABAACAAAAAgAAAAAAPAAAAACICA4YC32lOUnDRgQUV998v6qez4GRR0GUhjtah5iHzbTZQGPdYxlpUAACAAQAAgAAAAIABAAAAAgAAAAA='
1716

1817
tx = tx_from_any(psbt_test05)
1918
print('TX')

electrum/transaction.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,19 +1151,23 @@ def utxo(self):
11511151

11521152
@utxo.setter
11531153
def utxo(self, value: Optional[Transaction]):
1154-
self._utxo = value
1155-
self.validate_data()
1156-
self.ensure_there_is_only_one_utxo()
1154+
if value:
1155+
self._utxo = value
1156+
self.validate_data()
1157+
self._witness_utxo = None
1158+
self.ensure_there_is_only_one_utxo()
11571159

11581160
@property
11591161
def witness_utxo(self):
11601162
return self._witness_utxo
11611163

11621164
@witness_utxo.setter
11631165
def witness_utxo(self, value: Optional[TxOutput]):
1164-
self._witness_utxo = value
1165-
self.validate_data()
1166-
self.ensure_there_is_only_one_utxo()
1166+
if value:
1167+
self._witness_utxo = value
1168+
self.validate_data()
1169+
self._utxo = None
1170+
self.ensure_there_is_only_one_utxo()
11671171

11681172
def to_json(self):
11691173
d = super().to_json()

0 commit comments

Comments
 (0)