Closed awhooooo closed 2 weeks ago
What is the error code? You can serialize the code .message().
620b9d26bd24a598f3e27babaa46f12d932683b62dfaa56e9d80392a7c4f19f3 => bitcoin:65 (stack false) fd9d8d6156233ffc84c4c6c76b265ab1fd947bb4e99475a19d9d54da6d226556 => bitcoin:65 (stack false) c58b6a83c1b09a90011c4663380fea67977424df757f4459109583c56821308a => bitcoin:65 (stack false)
I checked the entire inputs and their corresponding error messages and they are all 65
Thanks. I don’t see where you are populating the previous outputs.
Isn't prev output already included in the input class? The standard transactions all return 0 (error::success).
The type is included, but of course the previous output cannot be inferred from the deserialized input tx.
Oh now I understand. No wonder the failing transactions all have non-standard inputs. Thanks for pointing it out!
I am testing transaction verification using libbitcoin-system v3.8.0 and while most of the data I am using passed, some are showing unexpected results. Here is the list of the transactions that failed their script verification tests. These are real bitcoin transactions that goes back like 12-13 years.
Also, here is the code I used.
Originally I thought that the script verification flags might be the reason for the failure so I tried lowering the level of strictness of the verification. So first I tried libbitcoin::machine::all_rules, and then adjusted the rules to Bitcoin Core's MANDATORY_SCRIPT_VERIFY_FLAGS (src/policy/policy.h) and then libbitcoin::machine::no_rules but those attempts didn't change the result. Judging by the looks of the failed ones, I presume this issue might be applied to all non-standard transactions. How do I resolve this problem? Thanks in advance.