diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1470b5361..4d886071d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ubuntu-22.04, windows-2019, macos-14] env: - CIBW_BEFORE_ALL_LINUX: yum install -y swig || apk add swig + CIBW_BEFORE_ALL_LINUX: ./tools/install_swig.sh CIBW_BEFORE_ALL_MACOS: brew install gnu-sed swig automake libtool CIBW_BEFORE_ALL_WINDOWS: choco install swig --version=3.0.12 --no-progress --allow-downgrade -y CIBW_BEFORE_BUILD_WINDOWS: .\tools\msvc\swig.bat diff --git a/CHANGES.md b/CHANGES.md index 408cedfb6..d5b180b45 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,11 @@ ## Unreleased +### Changed + +- PSBT: Do not serialize witness data for input non-witness UTXOs, in + order to match the current behaviour of Bitcoin core. + ### Fixed - wally_scriptpubkey_get_type: mark all scripts starting with OP_RETURN as WALLY_SCRIPT_TYPE_OP_RETURN. diff --git a/src/ctest/psbts.h b/src/ctest/psbts.h index a7b6cf7d9..a4d802a9c 100644 --- a/src/ctest/psbts.h +++ b/src/ctest/psbts.h @@ -527,13 +527,19 @@ static const struct psbt_test invalid_psbts[] = static const struct psbt_test valid_psbts[] = { /* PSBT v0 with one P2PKH input. Outputs are empty */ - {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA", false, true}, + {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA", false, false}, + + /* PSBT v0 with one P2PKH input. Outputs are empty (corrected serialization) */ + {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQDMAQAAAAKJo8ceq00g4Dcbu6TMaY+ilclGOvouOX+FM8y2L5Vn5QEAAAAXFgAUvhjRUqmwEgOdrz2n3k9TNJ7suYX/////hviqQ6cd/xRIiTpTCnI372tGCLuy3S0BceY67GpIkLQBAAAAFxYAFP4+nvGnRel02QLENVlDq8s0vVNT/////wIAwusLAAAAABl2qRSFz/EJf9ngCLs0r3CcYhl7OJeKSIiscv74TiwAAAAXqRQzlyW6Ie/WKsdTqbzQZ9bHpqOdBYcAAAAAAAAA", false, true}, /* PSBT v0 with one P2PKH input and one P2SH-P2WPKH input. First input is signed and finalized. Outputs are empty */ {"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEHakcwRAIgR1lmF5fAGwNrJZKJSGhiGDR9iYZLcZ4ff89X0eURZYcCIFMJ6r9Wqk2Ikf/REf3xM286KdqGbX+EhtdVRs7tr5MZASEDXNxh/HupccC1AaZGoqg7ECy0OIEhfKaC3Ibi1z+ogpIAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIAAAA", false, true}, /* PSBT v0 with one P2PKH input which has a non-final scriptSig and has a sighash type specified. Outputs are empty */ - {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQMEAQAAAAAAAA==", false, true}, + {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQMEAQAAAAAAAA==", false, false}, + + /* PSBT v0 with one P2PKH input which has a non-final scriptSig and has a sighash type specified. Outputs are empty (corrected serialization) */ + {"cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQDMAQAAAAKJo8ceq00g4Dcbu6TMaY+ilclGOvouOX+FM8y2L5Vn5QEAAAAXFgAUvhjRUqmwEgOdrz2n3k9TNJ7suYX/////hviqQ6cd/xRIiTpTCnI372tGCLuy3S0BceY67GpIkLQBAAAAFxYAFP4+nvGnRel02QLENVlDq8s0vVNT/////wIAwusLAAAAABl2qRSFz/EJf9ngCLs0r3CcYhl7OJeKSIiscv74TiwAAAAXqRQzlyW6Ie/WKsdTqbzQZ9bHpqOdBYcAAAAAAAAA", false, true}, /* PSBT v0 with one P2PKH input and one P2SH-P2WPKH input both with non-final scriptSigs. P2SH-P2WPKH input's redeemScript is available. Outputs filled. */ {"cHNidP8BAKACAAAAAqsJSaCMWvfEm4IS9Bfi8Vqz9cM9zxU4IagTn4d6W3vkAAAAAAD+////qwlJoIxa98SbghL0F+LxWrP1wz3PFTghqBOfh3pbe+QBAAAAAP7///8CYDvqCwAAAAAZdqkUdopAu9dAy+gdmI5x3ipNXHE5ax2IrI4kAAAAAAAAGXapFG9GILVT+glechue4O/p+gOcykWXiKwAAAAAAAEA3wIAAAABJoFxNx7f8oXpN63upLN7eAAMBWbLs61kZBcTykIXG/YAAAAAakcwRAIgcLIkUSPmv0dNYMW1DAQ9TGkaXSQ18Jo0p2YqncJReQoCIAEynKnazygL3zB0DsA5BCJCLIHLRYOUV663b8Eu3ZWzASECZX0RjTNXuOD0ws1G23s59tnDjZpwq8ubLeXcjb/kzjH+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQEgAOH1BQAAAAAXqRQ1RebjO4MsRwUPJNPuuTycA5SLx4cBBBYAFIXRNTfy4mVAWjTbr6nj3aAfuCMIACICAurVlmh8qAYEPtw94RbN8p1eklfBls0FXPaYyNAr8k6ZELSmumcAAACAAAAAgAIAAIAAIgIDlPYr6d8ZlSxVh3aK63aYBhrSxKJciU9H2MFitNchPQUQtKa6ZwAAAIABAACAAgAAgAA=", false, true}, diff --git a/src/data/psbt.json b/src/data/psbt.json index f9b50bdbf..72f5e918b 100644 --- a/src/data/psbt.json +++ b/src/data/psbt.json @@ -747,7 +747,12 @@ "valid": [ { "comment": "PSBT v0 with one P2PKH input. Outputs are empty", - "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA" + "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAAAA", + "can_round_trip": false + }, + { + "comment": "PSBT v0 with one P2PKH input. Outputs are empty (corrected serialization)", + "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQDMAQAAAAKJo8ceq00g4Dcbu6TMaY+ilclGOvouOX+FM8y2L5Vn5QEAAAAXFgAUvhjRUqmwEgOdrz2n3k9TNJ7suYX/////hviqQ6cd/xRIiTpTCnI372tGCLuy3S0BceY67GpIkLQBAAAAFxYAFP4+nvGnRel02QLENVlDq8s0vVNT/////wIAwusLAAAAABl2qRSFz/EJf9ngCLs0r3CcYhl7OJeKSIiscv74TiwAAAAXqRQzlyW6Ie/WKsdTqbzQZ9bHpqOdBYcAAAAAAAAA" }, { "comment": "PSBT v0 with one P2PKH input and one P2SH-P2WPKH input. First input is signed and finalized. Outputs are empty", @@ -755,7 +760,12 @@ }, { "comment": "PSBT v0 with one P2PKH input which has a non-final scriptSig and has a sighash type specified. Outputs are empty", - "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQMEAQAAAAAAAA==" + "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQD9pQEBAAAAAAECiaPHHqtNIOA3G7ukzGmPopXJRjr6Ljl/hTPMti+VZ+UBAAAAFxYAFL4Y0VKpsBIDna89p95PUzSe7LmF/////4b4qkOnHf8USIk6UwpyN+9rRgi7st0tAXHmOuxqSJC0AQAAABcWABT+Pp7xp0XpdNkCxDVZQ6vLNL1TU/////8CAMLrCwAAAAAZdqkUhc/xCX/Z4Ai7NK9wnGIZeziXikiIrHL++E4sAAAAF6kUM5cluiHv1irHU6m80GfWx6ajnQWHAkcwRAIgJxK+IuAnDzlPVoMR3HyppolwuAJf3TskAinwf4pfOiQCIAGLONfc0xTnNMkna9b7QPZzMlvEuqFEyADS8vAtsnZcASED0uFWdJQbrUqZY3LLh+GFbTZSYG2YVi/jnF6efkE/IQUCSDBFAiEA0SuFLYXc2WHS9fSrZgZU327tzHlMDDPOXMMJ/7X85Y0CIGczio4OFyXBl/saiK9Z9R5E5CVbIBZ8hoQDHAXR8lkqASECI7cr7vCWXRC+B3jv7NYfysb3mk6haTkzgHNEZPhPKrMAAAAAAQMEAQAAAAAAAA==", + "can_round_trip": false + }, + { + "comment": "PSBT v0 with one P2PKH input which has a non-final scriptSig and has a sighash type specified. Outputs are empty (corrected serialization)", + "psbt": "cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFNDFmQPFusKGh2DpD9UhpGZap2UgiKwA4fUFAAAAABepFDVF5uM7gyxHBQ8k0+65PJwDlIvHh7MuEwAAAQDMAQAAAAKJo8ceq00g4Dcbu6TMaY+ilclGOvouOX+FM8y2L5Vn5QEAAAAXFgAUvhjRUqmwEgOdrz2n3k9TNJ7suYX/////hviqQ6cd/xRIiTpTCnI372tGCLuy3S0BceY67GpIkLQBAAAAFxYAFP4+nvGnRel02QLENVlDq8s0vVNT/////wIAwusLAAAAABl2qRSFz/EJf9ngCLs0r3CcYhl7OJeKSIiscv74TiwAAAAXqRQzlyW6Ie/WKsdTqbzQZ9bHpqOdBYcAAAAAAAAA" }, { "comment": "PSBT v0 with one P2PKH input and one P2SH-P2WPKH input both with non-final scriptSigs. P2SH-P2WPKH input's redeemScript is available. Outputs filled.", @@ -1063,7 +1073,7 @@ "cTu1wcAMkf6FLqjd2sWM12xjz4bwobV6i1oWao61mPG4uvQPSg8J" ], "psbt": "cHNidP8BAH0CAAAAAZm8gI4B+QwhlZYFU8Bsxh/dt5y2hNyvgHE3Paqy38usAAAAAAD9////AqCGAQAAAAAAIlEgH4rIDI3It8R1lGsWS8Y/oJcgLGXWHP3esRcFTANbDkohR/QFAAAAABYAFLCINJ0ava7brRWRFXPb9gQPtXa8ZgAAAAABAPYCAAAAAAEBToRRljypw8i0XDdchLPfPCEu35IVDAQyJjE7+4BKY7wAAAAAAP3///8CAOH1BQAAAAAiUSCmhOhy2uqiFaiKEq1XHQ5GxEB0ZzKWUkQdDdvHekKkr1sQECQBAAAAIlEgBGBAMo//gsGI9gAqLi1eIQyQfI9OEKPTsHC70K9iFJICRzBEAiAdRYXGxB9GvJjW7wBs3MoIgEM9JLWr68YSY7DimIPiQgIgapXuVzcGsgW/2pALpgiUruJy1r/d7WzA33X2lVTTeKsBIQKv1oxXJ0mTvGCKH3aUGEMPzKG6eFsKZNMz7oK0e83kEWUAAAABASsA4fUFAAAAACJRIKaE6HLa6qIVqIoSrVcdDkbEQHRnMpZSRB0N28d6QqSvIRbkivPnCyb8Yoovvu2XYhO+SdnqbXkf3xdICTCTBzDQkAkAPcQ2kgAAAAAADPwJbGlnaHRuaW5nBAIAAQAiAgKvT3WyoYKdheBSaW4ey+TVgkhT0rRhx4m89r/o+gUyXQiwiDSdAwAAAAA=", - "result": "cHNidP8BAH0CAAAAAZm8gI4B+QwhlZYFU8Bsxh/dt5y2hNyvgHE3Paqy38usAAAAAAD9////AqCGAQAAAAAAIlEgH4rIDI3It8R1lGsWS8Y/oJcgLGXWHP3esRcFTANbDkohR/QFAAAAABYAFLCINJ0ava7brRWRFXPb9gQPtXa8ZgAAAAABAPYCAAAAAAEBToRRljypw8i0XDdchLPfPCEu35IVDAQyJjE7+4BKY7wAAAAAAP3///8CAOH1BQAAAAAiUSCmhOhy2uqiFaiKEq1XHQ5GxEB0ZzKWUkQdDdvHekKkr1sQECQBAAAAIlEgBGBAMo//gsGI9gAqLi1eIQyQfI9OEKPTsHC70K9iFJICRzBEAiAdRYXGxB9GvJjW7wBs3MoIgEM9JLWr68YSY7DimIPiQgIgapXuVzcGsgW/2pALpgiUruJy1r/d7WzA33X2lVTTeKsBIQKv1oxXJ0mTvGCKH3aUGEMPzKG6eFsKZNMz7oK0e83kEWUAAAABASsA4fUFAAAAACJRIKaE6HLa6qIVqIoSrVcdDkbEQHRnMpZSRB0N28d6QqSvARNAb6qU8xiqJKdn+lOZHuzM/JjOiII3rT+4m2sMFRsS0eKNF8zzEZo1UhUOl/D5mjJeNjSdlO3+eZR9fb/P8jWDByEW5Irz5wsm/GKKL77tl2ITvknZ6m15H98XSAkwkwcw0JAJAD3ENpIAAAAAAAz8CWxpZ2h0bmluZwQCAAEAIgICr091sqGCnYXgUmluHsvk1YJIU9K0YceJvPa/6PoFMl0IsIg0nQMAAAAA" + "result": "cHNidP8BAH0CAAAAAZm8gI4B+QwhlZYFU8Bsxh/dt5y2hNyvgHE3Paqy38usAAAAAAD9////AqCGAQAAAAAAIlEgH4rIDI3It8R1lGsWS8Y/oJcgLGXWHP3esRcFTANbDkohR/QFAAAAABYAFLCINJ0ava7brRWRFXPb9gQPtXa8ZgAAAAABAIkCAAAAAU6EUZY8qcPItFw3XISz3zwhLt+SFQwEMiYxO/uASmO8AAAAAAD9////AgDh9QUAAAAAIlEgpoToctrqohWoihKtVx0ORsRAdGcyllJEHQ3bx3pCpK9bEBAkAQAAACJRIARgQDKP/4LBiPYAKi4tXiEMkHyPThCj07Bwu9CvYhSSZQAAAAEBKwDh9QUAAAAAIlEgpoToctrqohWoihKtVx0ORsRAdGcyllJEHQ3bx3pCpK8BE0BvqpTzGKokp2f6U5ke7Mz8mM6IgjetP7ibawwVGxLR4o0XzPMRmjVSFQ6X8PmaMl42NJ2U7f55lH19v8/yNYMHIRbkivPnCyb8Yoovvu2XYhO+SdnqbXkf3xdICTCTBzDQkAkAPcQ2kgAAAAAADPwJbGlnaHRuaW5nBAIAAQAiAgKvT3WyoYKdheBSaW4ey+TVgkhT0rRhx4m89r/o+gUyXQiwiDSdAwAAAAA=" }, { "comment": "PSBTv2 taproot keyspend signature", @@ -1071,7 +1081,7 @@ "cUyfr12WV21eNED5Mk89ZZ9pqWxsd52BM4Cv8PgfAdx3jEAvPuwn" ], "psbt": "cHNidP8BAgQCAAAAAQMEZgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQD2AgAAAAABAdHR2JpIQRe2veo0llU7ci/9IG5DaeZUaGVTi+/pyHU4AAAAAAD9////AlsQECQBAAAAIlEgxsZa5WXXXxm68nU6uTaApup9Xg9IpVmtlc6VQckjSIUA4fUFAAAAACJRIFp/XvAYFGGG7PtiHthtpLNjSMbyVdoUVCzFxeRehDklAkcwRAIgb9KN1urrT/JXGhu9PqGektpQksoTQqbI8Dk4dk0+sw0CIAITi7J8kNKtaimjodLhB8J+SusFpO4HFKgavrHQzuIgASEDmQTOBGA3eVRjDOwqfrHc15WblP8w02yJKqFR57sugGNlAAAAAQErAOH1BQAAAAAiUSBaf17wGBRhhuz7Yh7YbaSzY0jG8lXaFFQsxcXkXoQ5JQEOIC5m1iLnRBAjV8hXxbwqlh+zKZbKn5IQwqBgj0n7C8jIAQ8EAQAAAAEQBP3///8hFnv81c9bwYL8u6z6StHClhM9qkRIdpa9VB+8sBje8Y69CQDfOmBVAAAAAAABAwighgEAAAAAAAEEIlEgI1j9CN7w241sYgkBDiZTj1TyID4mfFrj8FT4pVE2KP8M/AlsaWdodG5pbmcEAgABACICArL8jMClOwQDu2fC4mXavYTEm5nhdBNYJgJWbEWmRwaKCGLWEuADAAAAAQMIIUf0BQAAAAABBBYAFGLWEuCxEHXTDIVTFmQraKpdLvc+AA==", - "result": "cHNidP8BAgQCAAAAAQMEZgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQD2AgAAAAABAdHR2JpIQRe2veo0llU7ci/9IG5DaeZUaGVTi+/pyHU4AAAAAAD9////AlsQECQBAAAAIlEgxsZa5WXXXxm68nU6uTaApup9Xg9IpVmtlc6VQckjSIUA4fUFAAAAACJRIFp/XvAYFGGG7PtiHthtpLNjSMbyVdoUVCzFxeRehDklAkcwRAIgb9KN1urrT/JXGhu9PqGektpQksoTQqbI8Dk4dk0+sw0CIAITi7J8kNKtaimjodLhB8J+SusFpO4HFKgavrHQzuIgASEDmQTOBGA3eVRjDOwqfrHc15WblP8w02yJKqFR57sugGNlAAAAAQErAOH1BQAAAAAiUSBaf17wGBRhhuz7Yh7YbaSzY0jG8lXaFFQsxcXkXoQ5JQEOIC5m1iLnRBAjV8hXxbwqlh+zKZbKn5IQwqBgj0n7C8jIAQ8EAQAAAAEQBP3///8BE0ABp34A+oJT4EIBZCKhL1Vl9bwO801d9bbaofB9Bwcr+R+dNzROjrdc/AHQ7ig+B90ZPIUdwn0UoFhkklUOxyQEIRZ7/NXPW8GC/Lus+krRwpYTPapESHaWvVQfvLAY3vGOvQkA3zpgVQAAAAAAAQMIoIYBAAAAAAABBCJRICNY/Qje8NuNbGIJAQ4mU49U8iA+Jnxa4/BU+KVRNij/DPwJbGlnaHRuaW5nBAIAAQAiAgKy/IzApTsEA7tnwuJl2r2ExJuZ4XQTWCYCVmxFpkcGighi1hLgAwAAAAEDCCFH9AUAAAAAAQQWABRi1hLgsRB10wyFUxZkK2iqXS73PgA=" + "result": "cHNidP8BAgQCAAAAAQMEZgAAAAEEAQEBBQECAQYBAwH7BAIAAAAAAQCJAgAAAAHR0diaSEEXtr3qNJZVO3Iv/SBuQ2nmVGhlU4vv6ch1OAAAAAAA/f///wJbEBAkAQAAACJRIMbGWuVl118ZuvJ1Ork2gKbqfV4PSKVZrZXOlUHJI0iFAOH1BQAAAAAiUSBaf17wGBRhhuz7Yh7YbaSzY0jG8lXaFFQsxcXkXoQ5JWUAAAABASsA4fUFAAAAACJRIFp/XvAYFGGG7PtiHthtpLNjSMbyVdoUVCzFxeRehDklAQ4gLmbWIudEECNXyFfFvCqWH7MplsqfkhDCoGCPSfsLyMgBDwQBAAAAARAE/f///wETQAGnfgD6glPgQgFkIqEvVWX1vA7zTV31ttqh8H0HByv5H503NE6Ot1z8AdDuKD4H3Rk8hR3CfRSgWGSSVQ7HJAQhFnv81c9bwYL8u6z6StHClhM9qkRIdpa9VB+8sBje8Y69CQDfOmBVAAAAAAABAwighgEAAAAAAAEEIlEgI1j9CN7w241sYgkBDiZTj1TyID4mfFrj8FT4pVE2KP8M/AlsaWdodG5pbmcEAgABACICArL8jMClOwQDu2fC4mXavYTEm5nhdBNYJgJWbEWmRwaKCGLWEuADAAAAAQMIIUf0BQAAAAABBBYAFGLWEuCxEHXTDIVTFmQraKpdLvc+AA==" }, { "comment": "Taproot keyspend with SIGHASH_ALL", @@ -1079,7 +1089,7 @@ "cUTSK6U3GZc8JQfQJAr57QmASWtEXRUTaHkLSMxqu9u7DppPW51N" ], "psbt": "cHNidP8BAH0CAAAAAY+Mh9D0AbHD9Rl+XYcoLNDMMkn/2YVy4Vrkw5crqbmSAQAAAAD9////AqCGAQAAAAAAIlEgjkQX4Ln2Vq0OQuEsklHTppzgRLaRgVVHEwKRBsbP9QAhR/QFAAAAABYAFNDRjw/J0bZQj3vqRW7BeJSCcQkVZgAAAAABAPYCAAAAAAEBQ+4i2Sma1U/wC2jAMlMG4Q80vksIDyMuntcHyRfI/hgAAAAAAP3///8CWxAQJAEAAAAiUSCjieYzsMHTKZ4MkmActUBi4PVLF9kKZeBJ/ffmmj6uhQDh9QUAAAAAIlEgAyTUkRT9Qix3UHriIHu6hsOZnjW3dCaOdEfAntOICngCRzBEAiAY5hBUEvQWzRoPVROo1bROJiVI+jUtrQyoVb05S+uoAwIgbpE0CT4qrQNenLo3Wu/cVuH7aHCAU0wOhi51+3tyjRQBIQJkqeBrI44j3khED/LkM+fXXye8zcun5n7qdHjtPnb09mUAAAABASsA4fUFAAAAACJRIAMk1JEU/UIsd1B64iB7uobDmZ41t3QmjnRHwJ7TiAp4AQMEAQAAACEWbtzwwg+NlbzOoN/nPQk/BA7QvpyPqN2qPq1Dzki20sYJAAvjkmkAAAAAAAz8CWxpZ2h0bmluZwQCAAEAIgICEjpp2wUKPRWYKXpjbTV5XJra0KHLjpLvRxJl7mKcp9sI0NGPDwMAAAAA", - "result": "cHNidP8BAH0CAAAAAY+Mh9D0AbHD9Rl+XYcoLNDMMkn/2YVy4Vrkw5crqbmSAQAAAAD9////AqCGAQAAAAAAIlEgjkQX4Ln2Vq0OQuEsklHTppzgRLaRgVVHEwKRBsbP9QAhR/QFAAAAABYAFNDRjw/J0bZQj3vqRW7BeJSCcQkVZgAAAAABAPYCAAAAAAEBQ+4i2Sma1U/wC2jAMlMG4Q80vksIDyMuntcHyRfI/hgAAAAAAP3///8CWxAQJAEAAAAiUSCjieYzsMHTKZ4MkmActUBi4PVLF9kKZeBJ/ffmmj6uhQDh9QUAAAAAIlEgAyTUkRT9Qix3UHriIHu6hsOZnjW3dCaOdEfAntOICngCRzBEAiAY5hBUEvQWzRoPVROo1bROJiVI+jUtrQyoVb05S+uoAwIgbpE0CT4qrQNenLo3Wu/cVuH7aHCAU0wOhi51+3tyjRQBIQJkqeBrI44j3khED/LkM+fXXye8zcun5n7qdHjtPnb09mUAAAABASsA4fUFAAAAACJRIAMk1JEU/UIsd1B64iB7uobDmZ41t3QmjnRHwJ7TiAp4AQMEAQAAAAETQSoAXO5t8Sg9cUToGoa2+nut51CBn7ylz1e+vtFvhQTEx3o7BniXuGagky+DDeEJVIwGZRdodxgrocw7zWV2GFgBIRZu3PDCD42VvM6g3+c9CT8EDtC+nI+o3ao+rUPOSLbSxgkAC+OSaQAAAAAADPwJbGlnaHRuaW5nBAIAAQAiAgISOmnbBQo9FZgpemNtNXlcmtrQocuOku9HEmXuYpyn2wjQ0Y8PAwAAAAA=" + "result": "cHNidP8BAH0CAAAAAY+Mh9D0AbHD9Rl+XYcoLNDMMkn/2YVy4Vrkw5crqbmSAQAAAAD9////AqCGAQAAAAAAIlEgjkQX4Ln2Vq0OQuEsklHTppzgRLaRgVVHEwKRBsbP9QAhR/QFAAAAABYAFNDRjw/J0bZQj3vqRW7BeJSCcQkVZgAAAAABAIkCAAAAAUPuItkpmtVP8AtowDJTBuEPNL5LCA8jLp7XB8kXyP4YAAAAAAD9////AlsQECQBAAAAIlEgo4nmM7DB0ymeDJJgHLVAYuD1SxfZCmXgSf335po+roUA4fUFAAAAACJRIAMk1JEU/UIsd1B64iB7uobDmZ41t3QmjnRHwJ7TiAp4ZQAAAAEBKwDh9QUAAAAAIlEgAyTUkRT9Qix3UHriIHu6hsOZnjW3dCaOdEfAntOICngBAwQBAAAAARNBKgBc7m3xKD1xROgahrb6e63nUIGfvKXPV76+0W+FBMTHejsGeJe4ZqCTL4MN4QlUjAZlF2h3GCuhzDvNZXYYWAEhFm7c8MIPjZW8zqDf5z0JPwQO0L6cj6jdqj6tQ85IttLGCQAL45JpAAAAAAAM/AlsaWdodG5pbmcEAgABACICAhI6adsFCj0VmCl6Y201eVya2tChy46S70cSZe5inKfbCNDRjw8DAAAAAA==" }, { "comment": "Taproot keyspend with SIGHASH_SINGLE", @@ -1087,15 +1097,15 @@ "cRENyqUBi48mhnwdaHK1TmgqCZvB83njEM9SnfRrf5JsVzx1deFS" ], "psbt": "cHNidP8BAH0CAAAAAcxHwxyy9FpFa1AuYMltf+VRZ0Wb+xs7irBhENL3ZNDfAAAAAAD9////AqCGAQAAAAAAIlEg9bpXXraKrTowBOttg43mWTzNvrpNtwi247wAU/AVyx4hR/QFAAAAABYAFMtFjSqHFoz6HBMyvhQ92LQA8Ym8ZgAAAAABAPYCAAAAAAEBjGpkiGzXPIZHUwJRoFnJCri6D22zIPxPcNmGum2dxlAAAAAAAP3///8CAOH1BQAAAAAiUSDntWViRTSufeFdp4iMAPAbwrb04WRr6Uf1t9PQdAybfVsQECQBAAAAIlEgL4ouh0/SbIyGL2nJ1V6Dj43GG94FKkY1Hb2t80Yfcw8CRzBEAiBnLUTCocry1Q3AjlWD9SAmww/OFmYCpPuAP/Datq98mgIgZch0lct0DCe2tdR50JiwkCTg4CmCYxOLPxPJr3BBeGsBIQNvmHE6LKDAAnzhgIJd3fiqYwETAqv0vIFL8t8uOJAaZmUAAAABASsA4fUFAAAAACJRIOe1ZWJFNK594V2niIwA8BvCtvThZGvpR/W309B0DJt9AQMEAwAAACEWJWIryWf7ygfu3yX466mDJOUFUiC+sXCYiZ8QrbhWGEMJAJgFzn0AAAAAAAz8CWxpZ2h0bmluZwQCAAEAIgIDyq/Tn4f9vurbsAxTsyr1yt1XV5etBF3J35+2A5/9wXoIy0WNKgMAAAAA", - "result": "cHNidP8BAH0CAAAAAcxHwxyy9FpFa1AuYMltf+VRZ0Wb+xs7irBhENL3ZNDfAAAAAAD9////AqCGAQAAAAAAIlEg9bpXXraKrTowBOttg43mWTzNvrpNtwi247wAU/AVyx4hR/QFAAAAABYAFMtFjSqHFoz6HBMyvhQ92LQA8Ym8ZgAAAAABAPYCAAAAAAEBjGpkiGzXPIZHUwJRoFnJCri6D22zIPxPcNmGum2dxlAAAAAAAP3///8CAOH1BQAAAAAiUSDntWViRTSufeFdp4iMAPAbwrb04WRr6Uf1t9PQdAybfVsQECQBAAAAIlEgL4ouh0/SbIyGL2nJ1V6Dj43GG94FKkY1Hb2t80Yfcw8CRzBEAiBnLUTCocry1Q3AjlWD9SAmww/OFmYCpPuAP/Datq98mgIgZch0lct0DCe2tdR50JiwkCTg4CmCYxOLPxPJr3BBeGsBIQNvmHE6LKDAAnzhgIJd3fiqYwETAqv0vIFL8t8uOJAaZmUAAAABASsA4fUFAAAAACJRIOe1ZWJFNK594V2niIwA8BvCtvThZGvpR/W309B0DJt9AQMEAwAAAAETQWKqmWGvOp90ZLgN9qvD+STgs1I7In+n537FL4FGyrwyO/rWnP53x54IGNcya9B9JcidUYhDQpAhGgiQUKXoXjsDIRYlYivJZ/vKB+7fJfjrqYMk5QVSIL6xcJiJnxCtuFYYQwkAmAXOfQAAAAAADPwJbGlnaHRuaW5nBAIAAQAiAgPKr9Ofh/2+6tuwDFOzKvXK3VdXl60EXcnfn7YDn/3BegjLRY0qAwAAAAA=" + "result": "cHNidP8BAH0CAAAAAcxHwxyy9FpFa1AuYMltf+VRZ0Wb+xs7irBhENL3ZNDfAAAAAAD9////AqCGAQAAAAAAIlEg9bpXXraKrTowBOttg43mWTzNvrpNtwi247wAU/AVyx4hR/QFAAAAABYAFMtFjSqHFoz6HBMyvhQ92LQA8Ym8ZgAAAAABAIkCAAAAAYxqZIhs1zyGR1MCUaBZyQq4ug9tsyD8T3DZhrptncZQAAAAAAD9////AgDh9QUAAAAAIlEg57VlYkU0rn3hXaeIjADwG8K29OFka+lH9bfT0HQMm31bEBAkAQAAACJRIC+KLodP0myMhi9pydVeg4+NxhveBSpGNR29rfNGH3MPZQAAAAEBKwDh9QUAAAAAIlEg57VlYkU0rn3hXaeIjADwG8K29OFka+lH9bfT0HQMm30BAwQDAAAAARNBYqqZYa86n3RkuA32q8P5JOCzUjsif6fnfsUvgUbKvDI7+tac/nfHnggY1zJr0H0lyJ1RiENCkCEaCJBQpeheOwMhFiViK8ln+8oH7t8l+OupgyTlBVIgvrFwmImfEK24VhhDCQCYBc59AAAAAAAM/AlsaWdodG5pbmcEAgABACICA8qv05+H/b7q27AMU7Mq9crdV1eXrQRdyd+ftgOf/cF6CMtFjSoDAAAAAA==" }, { "comment": "Taproot keyspend with no associated pubkey", "privkeys": [ "cVd4tUYMjuWJS2te21dhjdBpTwvkxwdfjP9AC81PdM9BQwW7oaTo" ], - "psbt": "cHNidP8BAH0CAAAAAd0d8Rfl45hnbKrHUO9vcDujNeb6VPuwyxDEVOwATVHyAQAAAAD9////AqCGAQAAAAAAIlEgeBUu8Q1HKJXIb76zd36Sl+izmyC/+w4AOsb6XLhNXUohR/QFAAAAABYAFFQykddI6WJF1YsFfGREBm/XYEGAZgAAAAABAPYCAAAAAAEB8kLdM97i6CqFRBbkJ+i6WWSIR29OXwwoGhaNk0cAVBIAAAAAAP3///8CWxAQJAEAAAAiUSCw7vWjdFqVRHSeE/1LTI1Li6dxkeis1MUvYOYB0LK8dADh9QUAAAAAIlEgYCnMLzgrgDfrN6eSbdFJphf2yRHfyrePgbqp5nR996kCRzBEAiArmep0f1QFUFm2UBPPkkpAKdgD0qD4akdaj8GBvDTzRgIgcpdvdJgy1QC3VdzUJb3Z1e3/PKIYf/519IMFM6iEYBYBIQJ1M0Db+Nsywk/N2dfavvHnmHfEpqYfOYL9eomaeHR1RmUAAAABASsA4fUFAAAAACJRIGApzC84K4A36zenkm3RSaYX9skR38q3j4G6qeZ0ffepAAz8CWxpZ2h0bmluZwQCAAEAIgICptzvEIBCFHiftDZmp+OKaSowtQOLW6zAtWLpMk7UXYAIVDKR1wMAAAAA", - "result": "cHNidP8BAH0CAAAAAd0d8Rfl45hnbKrHUO9vcDujNeb6VPuwyxDEVOwATVHyAQAAAAD9////AqCGAQAAAAAAIlEgeBUu8Q1HKJXIb76zd36Sl+izmyC/+w4AOsb6XLhNXUohR/QFAAAAABYAFFQykddI6WJF1YsFfGREBm/XYEGAZgAAAAABAPYCAAAAAAEB8kLdM97i6CqFRBbkJ+i6WWSIR29OXwwoGhaNk0cAVBIAAAAAAP3///8CWxAQJAEAAAAiUSCw7vWjdFqVRHSeE/1LTI1Li6dxkeis1MUvYOYB0LK8dADh9QUAAAAAIlEgYCnMLzgrgDfrN6eSbdFJphf2yRHfyrePgbqp5nR996kCRzBEAiArmep0f1QFUFm2UBPPkkpAKdgD0qD4akdaj8GBvDTzRgIgcpdvdJgy1QC3VdzUJb3Z1e3/PKIYf/519IMFM6iEYBYBIQJ1M0Db+Nsywk/N2dfavvHnmHfEpqYfOYL9eomaeHR1RmUAAAABASsA4fUFAAAAACJRIGApzC84K4A36zenkm3RSaYX9skR38q3j4G6qeZ0ffepAAz8CWxpZ2h0bmluZwQCAAEAIgICptzvEIBCFHiftDZmp+OKaSowtQOLW6zAtWLpMk7UXYAIVDKR1wMAAAAA" + "psbt": "cHNidP8BAH0CAAAAAd0d8Rfl45hnbKrHUO9vcDujNeb6VPuwyxDEVOwATVHyAQAAAAD9////AqCGAQAAAAAAIlEgeBUu8Q1HKJXIb76zd36Sl+izmyC/+w4AOsb6XLhNXUohR/QFAAAAABYAFFQykddI6WJF1YsFfGREBm/XYEGAZgAAAAABAIkCAAAAAfJC3TPe4ugqhUQW5CfoullkiEdvTl8MKBoWjZNHAFQSAAAAAAD9////AlsQECQBAAAAIlEgsO71o3RalUR0nhP9S0yNS4uncZHorNTFL2DmAdCyvHQA4fUFAAAAACJRIGApzC84K4A36zenkm3RSaYX9skR38q3j4G6qeZ0ffepZQAAAAEBKwDh9QUAAAAAIlEgYCnMLzgrgDfrN6eSbdFJphf2yRHfyrePgbqp5nR996kADPwJbGlnaHRuaW5nBAIAAQAiAgKm3O8QgEIUeJ+0Nman44ppKjC1A4tbrMC1YukyTtRdgAhUMpHXAwAAAAA=", + "result": "cHNidP8BAH0CAAAAAd0d8Rfl45hnbKrHUO9vcDujNeb6VPuwyxDEVOwATVHyAQAAAAD9////AqCGAQAAAAAAIlEgeBUu8Q1HKJXIb76zd36Sl+izmyC/+w4AOsb6XLhNXUohR/QFAAAAABYAFFQykddI6WJF1YsFfGREBm/XYEGAZgAAAAABAIkCAAAAAfJC3TPe4ugqhUQW5CfoullkiEdvTl8MKBoWjZNHAFQSAAAAAAD9////AlsQECQBAAAAIlEgsO71o3RalUR0nhP9S0yNS4uncZHorNTFL2DmAdCyvHQA4fUFAAAAACJRIGApzC84K4A36zenkm3RSaYX9skR38q3j4G6qeZ0ffepZQAAAAEBKwDh9QUAAAAAIlEgYCnMLzgrgDfrN6eSbdFJphf2yRHfyrePgbqp5nR996kADPwJbGlnaHRuaW5nBAIAAQAiAgKm3O8QgEIUeJ+0Nman44ppKjC1A4tbrMC1YukyTtRdgAhUMpHXAwAAAAA=" } ], "invalid_signer": [ diff --git a/src/psbt.c b/src/psbt.c index 4acde0efc..1b716f924 100644 --- a/src/psbt.c +++ b/src/psbt.c @@ -3002,9 +3002,9 @@ static int push_psbt_input(const struct wally_psbt *psbt, /* Non witness utxo */ if (input->utxo) { push_psbt_key(cursor, max, PSBT_IN_NON_WITNESS_UTXO, NULL, 0); - if ((ret = push_length_and_tx(cursor, max, - input->utxo, - WALLY_TX_FLAG_USE_WITNESS)) != WALLY_OK) + /* Note we don't serialize witness data for input UTXOs */ + ret = push_length_and_tx(cursor, max, input->utxo, 0); + if (ret != WALLY_OK) return ret; } diff --git a/tools/install_swig.sh b/tools/install_swig.sh new file mode 100755 index 000000000..d03441806 --- /dev/null +++ b/tools/install_swig.sh @@ -0,0 +1,49 @@ +#! /usr/bin/env bash +set -e + +if [ $(command -v swig) ]; then + # Already installed + exit 0 +fi + +if [ $(command -v apt) ]; then + # Debian/Ubuntu + apt install swig + exit 0 +fi + +if [ -d /etc/yum.repos.d ]; then + # Redhat/Fedora + if grep -- mirror.centos.org /etc/yum.repos.d/*.repo >/dev/null 2>&1; then + # mirror.centos.org has been nuked. Attempt to update the repo spec + # for older manylinux docker builds + sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo + sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo + sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo + fi + yum install -y swig + exit 0 +fi + +if [ $(command -v brew) ]; then + # MacOS + brew install swig + exit 0 +fi + +if [ $(command -v apk) ]; then + # Alpine + apk add swig + exit 0 +fi + +# Unknown - install from source +SWIG_URL='https://downloads.sourceforge.net/project/swig/swig/swig-3.0.12/swig-3.0.12.tar.gz?use_mirror=autoselect' +curl -sSL ${SWIG_URL} | tar xz +pushd swig-3.0.12 >/dev/null +./configure +make -j4 +make install +popd >/dev/null +rm -rf swig-3.0.12 +exit 0