The instructions BOOLAND and BOOLOR don't interpret the stack values the same way IF, VERIFY etc do. They decode the top stack values as integers and compare against zero, thus they have to fail when the top stack item size is greater than 4 bytes.
Edit: littleEndian.decode also doesn't seem to respect the size limits
Edit2: .. or signed integers for that matter. So while this is a very cool basic concept, it's not a complete implementation.
The instructions BOOLAND and BOOLOR don't interpret the stack values the same way IF, VERIFY etc do. They decode the top stack values as integers and compare against zero, thus they have to fail when the top stack item size is greater than 4 bytes.
Edit: littleEndian.decode also doesn't seem to respect the size limits
Edit2: .. or signed integers for that matter. So while this is a very cool basic concept, it's not a complete implementation.
The reference client provides test suites
https://github.com/bitcoin/bitcoin/blob/master/src/test/data...
https://github.com/bitcoin/bitcoin/blob/master/src/test/data...