Skip to content

Can't serialize or deserialize PSBT with no inputs #2293

@andrewtoth

Description

@andrewtoth
const { Psbt } = require("bitcoinjs-lib");

const psbt = new Psbt();
psbt.addOutput({
  address: "1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc",
  value: 100000n,
});
const base64 = psbt.toBase64();

console.log(base64); // cHNidP8BACwCAAAAAAGghgEAAAAAABl2qRRxekyQdFd6Ba+UJxwysknSmKItmIisAAAAAAAAAA==
Psbt.fromBase64(base64); // Throws
bitcoin-cli decodepsbt cHNidP8BACwCAAAAAAGghgEAAAAAABl2qRRxekyQdFd6Ba+UJxwysknSmKItmIisAAAAAAAAAA==
error code: -22
error message:
TX decode failed extra data after PSBT

bitcoin-cli createpsbt '[]' '[{"1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc": 1000000}]'
cHNidP8BACwCAAAAAAEAoHJOGAkAABl2qRRxekyQdFd6Ba+UJxwysknSmKItmIisAAAAAAAA

bitcoin-cli decodepsbt cHNidP8BACwCAAAAAAEAoHJOGAkAABl2qRRxekyQdFd6Ba+UJxwysknSmKItmIisAAAAAAAA
{
  "tx": {
    "txid": "3b029267c47308599062841be4d19b8894c5521792091399a972516439f89f21",
    "hash": "3b029267c47308599062841be4d19b8894c5521792091399a972516439f89f21",
    "version": 2,
    "size": 44,
    "vsize": 44,
    "weight": 176,
    "locktime": 0,
    "vin": [
    ],
    "vout": [
      {
        "value": 100000.00000000,
        "n": 0,
        "scriptPubKey": {
          "asm": "OP_DUP OP_HASH160 717a4c9074577a05af94271c32b249d298a22d98 OP_EQUALVERIFY OP_CHECKSIG",
          "desc": "addr(1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc)#ed77rxnh",
          "hex": "76a914717a4c9074577a05af94271c32b249d298a22d9888ac",
          "address": "1BM1sAcrfV6d4zPKytzziu4McLQDsFC2Qc",
          "type": "pubkeyhash"
        }
      }
    ]
  },
  "global_xpubs": [
  ],
  "psbt_version": 0,
  "proprietary": [
  ],
  "unknown": {
  },
  "inputs": [
  ],
  "outputs": [
    {
    }
  ],
  "fee": -100000.00000000
}
Psbt.fromBase64(
  "cHNidP8BACwCAAAAAAEAoHJOGAkAABl2qRRxekyQdFd6Ba+UJxwysknSmKItmIisAAAAAAAA"
); // Throws

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