Pieter Wuille
                                            Pieter Wuille
                                        
                                    Right, but the only reason you'd ever create a raw transaction with no inputs is because you plan to call fundrawtransaction. Given that fundrawtransaction is very new, I really prefer...
I really do not want to introduce guessing (creates unclear expectations) or extra flags (a terrible technical debt that we'd very much regret in a post-segwit world). But I think...
Nicolas: sure, it can have inputs, but they won't carry signatures.
@NicolasDorier if fundrawtransaction has any effect at all (add outputs, or change inputs) it will normally invalidate all existing signatures.
AnyOneCanPay AND (SigHashNone OR no-change-output added). Agree that we need to support that though, but parsing by default with old-style deserialization, and trying with new-style if it fails will cover...
Updated in commit dbe63919221d043cd5dd796a055c3fe4fc44f387. Decoderawtransaction and fundrawtransaction now first try deserializing without witness, and if that fails, or does not consume the entire string that is passed in, try deserializing...
The tests did pick it. The change was intentional, so I modified them.
I think you need to wipe cached old results (make clean, git clean -dfx if you're certain there is nothing of value in the repository, ccache -C to wipe ccache...)
I have not included this in segwit4, but we should keep thinking about this.
Looks good.