lib/bitcoin/psbt/output.rb in bitcoinrb-0.2.1 vs lib/bitcoin/psbt/output.rb in bitcoinrb-0.2.2
- old
+ new
@@ -25,12 +25,14 @@
key_type = buf.read(1).unpack('C').first
key = buf.read(key_len - 1)
value = buf.read(Bitcoin.unpack_var_int_from_io(buf))
case key_type
when PSBT_OUT_TYPES[:redeem_script]
+ raise ArgumentError, 'Invalid output redeemScript typed key.' unless key_len == 1
raise ArgumentError, 'Duplicate Key, output redeemScript already provided' if output.redeem_script
output.redeem_script = value
when PSBT_OUT_TYPES[:witness_script]
+ raise ArgumentError, 'Invalid output witnessScript typed key.' unless key_len == 1
raise ArgumentError, 'Duplicate Key, output witnessScript already provided' if output.witness_script
output.witness_script = value
when PSBT_OUT_TYPES[:bip32_derivation]
raise ArgumentError, 'Duplicate Key, pubkey derivation path already provided' if output.hd_key_paths[key.bth]
output.hd_key_paths[key.bth] = Bitcoin::PSBT::HDKeyPath.parse_from_payload(key, value)
\ No newline at end of file