Skip to content

Sparrow won't sign a PSBT input by OutPoint if TXO details are missing #1428

@DanGould

Description

@DanGould

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions