diff --git a/lnbits/extensions/watchonly/static/js/index.js b/lnbits/extensions/watchonly/static/js/index.js index d6b21f31..5448159e 100644 --- a/lnbits/extensions/watchonly/static/js/index.js +++ b/lnbits/extensions/watchonly/static/js/index.js @@ -626,15 +626,16 @@ new Vue({ psbtChunks.push(data[0]) if (data.length > 1) { console.log('### psbtChunks', psbtChunks) + this.payment.psbtBase64Signed = psbtChunks.join('') this.$q.notify({ type: 'positive', message: 'PSBT received from serial port device!', timeout: 10000 }) - const transaction = await this.etractTxFromPsbt( - psbtChunks.join('') + const data = await this.etractTxFromPsbt( + this.payment.psbtBase64Signed ) - console.log('### transaction', transaction) + this.payment.signedTx = JSON.parse(data.tx_json) } } else { psbtChunks = [] @@ -672,19 +673,8 @@ new Vue({ psbtBase64 } ) - console.log('### data', data) - if (data.error) { - this.$q.notify({ - type: 'warning', - message: 'Cannot process received PSBT!', - caption: data.error, - timeout: 10000 - }) - } - return data } catch (error) { - console.log('### error', error, JSON.stringify(error)) LNbits.utils.notifyApiError(error) } }, diff --git a/lnbits/extensions/watchonly/static/js/tables.js b/lnbits/extensions/watchonly/static/js/tables.js index 49597bd2..ffb095b3 100644 --- a/lnbits/extensions/watchonly/static/js/tables.js +++ b/lnbits/extensions/watchonly/static/js/tables.js @@ -261,6 +261,7 @@ const tableData = { txSize: 0, psbtBase64: '', psbtBase64Signed: '', + signedTx: null, utxoSelectionModes: [ 'Manual', 'Random', diff --git a/lnbits/extensions/watchonly/templates/watchonly/index.html b/lnbits/extensions/watchonly/templates/watchonly/index.html index c5993d2a..ef9fb131 100644 --- a/lnbits/extensions/watchonly/templates/watchonly/index.html +++ b/lnbits/extensions/watchonly/templates/watchonly/index.html @@ -1043,13 +1043,14 @@ v-if="payment.psbtBase64 && payment.signMode === 'serial-port'" class="row items-center no-wrap q-mb-md q-mt-lg" > -
-
+ +
Connect Disconnect
-
+
@@ -1074,21 +1075,54 @@ @click="sendPsbtToSerialPort()" unelevated color="secondary float-right" - >Send to DeviceSend PSBT to Device
-
-
-
+
+
PSBT from device
+
+
+
+
+
+
Version
+
{{payment.signedTx.version}}
+
+
+
Locktime
+
{{payment.signedTx.locktime}}
+
+
+
Fee
+
+ {{satBtc(payment.signedTx.fee)}}
+
+
+
Send
+
+
+
{{satBtc(out.amount)}}
+
to
+
{{out.address}}
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/views_api.py b/lnbits/extensions/watchonly/views_api.py index 2c097022..b5dd2c3c 100644 --- a/lnbits/extensions/watchonly/views_api.py +++ b/lnbits/extensions/watchonly/views_api.py @@ -32,7 +32,14 @@ from .crud import ( get_config, update_config, ) -from .models import SignedTransaction, CreateWallet, CreatePsbt, Config, WalletAccount, ExtractPsbt +from .models import ( + SignedTransaction, + CreateWallet, + CreatePsbt, + Config, + WalletAccount, + ExtractPsbt, +) from .helpers import parse_key @@ -289,7 +296,7 @@ async def api_psbt_extract_tx( for out in transaction.vout: tx["outputs"].append( - {"value": out.value, "address": out.script_pubkey.address()} + {"amount": out.value, "address": out.script_pubkey.address()} ) res.tx_json = json.dumps(tx) except Exception as e: