-
Notifications
You must be signed in to change notification settings - Fork 284
Sparrow won't sign a PSBT input by OutPoint if TXO details are missing #1428
Description
I’m trying to see if a widget can let Sparrow test async payjoin v2 before a full integration is available. This is done through an interface that accepts a constructed PSBT and returns a Payjoin PSBT for signing and broadcast but otherwise handles PSBT checks that don't require wallet input and handles cryptographically secured application transport over Oblivious HTTP. Craig gave me instructions to extract an original PSBT manually.
However, once that original PSBT Is subsequently modified by a receiver to become a payjoin PSBT, it seems sparrow won’t sign it. It says “No open wallets to sign” even though the first input is indeed from the loaded wallet. Perhaps that’s because the payjoin PSBT is missing sender UTXO details (as spec requires) and sparrow does not check an unsigned PSBT’s input OutPoints to see if it can sign, it checks the UTXO scripts. Does that sound right? I shall open an issue
v2 URI
bitcoin:tb1qqupnc8q082m0uqer634n5skjk69we7cs60c4am?amount=0.001&pj=https://payjo.in/AzzKI8EZJ3WF14dwBZLGyRX5FJ-s84oNwmviJE-T3vj-&pjos=0&ohttp=AQAgbLIT3-hgHP5dAGB574b
dCyTeJvJR4n7hLJ4B8dxgYDMABAABAAM
original exported from manually constructed payjoin tx:
cHNidP8BAHECAAAAAQtzVUCDTGPS2iZ+aKDguo3QANm232MOzae86EnqYuybAQAAAAD9////AlnXIwAAAAAAFgAUk8HqJYVUtU9Jawl5Xzv5oNKWtB2ghgEAAAAAABYAFAcDPBwPOrb+AyPUazpC0raK7PsQ1gQDAE8BBDWHzwNZXM9jgAAAAKc92f6RjxQdoGoZrSANKGMjtCpi0RFRUzCsTIhDazgwAvaIBuDUI1e5Y2/CGKpFvawO0N4XgoYaZsIjLZfCaDhsEPZthiRUAACAAQAAgAAAAIAAAQBxAQAAAAEDme3nq63kwpiGl86kAEW635PRRQ7stXk0JcyKS4rCNgEAAAAA/////wJh5SYAAAAAABYAFPWJreIBnV5Oxvf0viS8DTMDLgviUGIlAAAAAAAWABRFt9LrgEXn+3DGn2O0TdkTX4mdtAAAAAABAR9QYiUAAAAAABYAFEW30uuARef7cMafY7RN2RNfiZ20IgYDlOzJDaAsGQb0nS+Y93BG4XBX13Ru9tKzzZZK2tRAhwYY9m2GJFQAAIABAACAAAAAgAAAAAAAAAAAAQcAAQhrAkcwRAIgKypDi1YHetc/EZQ1g2PFNtoJGt1ExmnbdRVHSwHtUI0CIFUhDpNNPN27cdXtJ6cOzPmCMWRrzTMEBSF8uXNe33x7ASEDlOzJDaAsGQb0nS+Y93BG4XBX13Ru9tKzzZZK2tRAhwYAIgIDIfz4DXHhOFEubJ96fKDVxA4niX57PrcelQW2sBhMgIIY9m2GJFQAAIABAACAAAAAgAEAAAAAAAAAAAA=
Payjoin PSBT:
cHNidP8BAJoCAAAAAgtzVUCDTGPS2iZ+aKDguo3QANm232MOzae86EnqYuybAQAAAAD9////A5nt56ut5MKYhpfOpABFut+T0UUO7LV5NCXMikuKwjYAAAAAAP3///8CFdcjAAAAAAAWABSTweolhVS1T0lrCXlfO/mg0pa0HTDHFgEAAAAAFgAUNKNtPzjgEs4Kj6IojRA87hOkgp/WBAMAAAABAJoCAAAAAjmqirVSBUjKC3nu3hu156qdSydARc6IaaGb1AUkTv5WAQAAAAD9////YNYT/FsUAz7vAAD4We/FuenKuLQIkP0ojUbPLrMBtCEAAAAAAP3///8CkEAVAQAAAAAWABTn2SmRvvff9t3OAaetUJoKVxMxc29KTAAAAAAAFgAUVK9TwbmqGlBJmd1R70WDefZoHb0AAAAAAQEfkEAVAQAAAAAWABTn2SmRvvff9t3OAaetUJoKVxMxcwEIawJHMEQCIFuxVUKAyFAIZnXhre6cR7JlsB1sjoZnX8Z1iJOItFKXAiAqnvfTC8OJk8VSWnW4FjWRt5sQKSSfY46aZRMbIsAm/AEhAiCHLs88VJ9qBVih6ui2778bHJRbBRW1CIbOM/qRoJEpAAAA
Sparrow won't sign the Payjoin PSBT even though it controls 9bec62ea49e8bca7cd0e63dfb6d900d08dbae0a0687e26dad2634c834055730b:1
It seems that the Sparrow payjoin sender implementation fills in these details for signing. It would be nice if there were a way for Sparrow to fill in these details for any PSBT even if outside the typical Payjoin PSBT flow.