@ -1,12 +1,10 @@
@@ -1,12 +1,10 @@
[
[ "
F o r m a t i s : [ s c r i p t P u b K e y , s c r i p t S i g , f l a g s , . . . c o m m e n t s ]
I t i s e v a l u a t e d a s i f t h e r e w a s a c r e d i t i n g c o i n b a s e t r a n s a c t i o n w i t h t w o 0
p u s h e s a s s c r i p t S i g , a n d o n e o u t p u t o f 0 s a t o s h i a n d g i v e n s c r i p t P u b K e y ,
f o l l o w e d b y a s p e n d i n g t r a n s a c t i o n w h i c h s p e n d s t h i s o u t p u t a s o n l y i n p u t ( a n d
c o r r e c t p r e v o u t h a s h ) , u s i n g t h e g i v e n s c r i p t S i g . A l l n L o c k T i m e s a r e 0 , a l l
n S e q u e n c e s a r e m a x .
" ] ,
[ "Format is: [scriptPubKey, scriptSig, flags, ... comments]" ] ,
[ "It is evaluated as if there was a crediting coinbase transaction with two 0" ] ,
[ "pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey," ] ,
[ "followed by a spending transaction which spends this output as only input (and" ] ,
[ "correct prevout hash), using the given scriptSig. All nLockTimes are 0, all" ] ,
[ "nSequences are max." ] ,
[ "" , "DEPTH 0 EQUAL" , "P2SH,STRICTENC" , "Test the test: we should have an empty stack after scriptSig evaluation" ] ,
[ " " , "DEPTH 0 EQUAL" , "P2SH,STRICTENC" , "and multiple spaces should not change that." ] ,
@ -664,16 +662,14 @@ nSequences are max.
@@ -664,16 +662,14 @@ nSequences are max.
[ "0 0 0x02 0x0000" , "CHECKMULTISIGVERIFY 1" , "" ] ,
[ "0 0x02 0x0000 0" , "CHECKMULTISIGVERIFY 1" , "" ] ,
[ "
C H E C K M U L T I S I G e v a l u a t i o n o r d e r t e s t s . C H E C K M U L T I S I G e v a l u a t e s s i g n a t u r e s a n d
p u b k e y s i n a s p e c i f i c o r d e r , a n d w i l l e x i t e a r l y i f t h e n u m b e r o f s i g n a t u r e s
l e f t t o c h e c k i s g r e a t e r t h a n t h e n u m b e r o f k e y s l e f t . A s S T R I C T E N C f a i l s t h e
s c r i p t w h e n i t r e a c h e s a n i n v a l i d l y e n c o d e d s i g n a t u r e o r p u b k e y , w e c a n u s e i t
t o t e s t t h e e x a c t o r d e r i n w h i c h s i g n a t u r e s a n d p u b k e y s a r e e v a l u a t e d b y
d i s t i n g u i s h i n g C H E C K M U L T I S I G r e t u r n i n g false o n t h e s t a c k a n d t h e s c r i p t a s a
w h o l e f a i l i n g .
S e e a l s o t h e c o r r e s p o n d i n g i n v e r t e d v e r s i o n s o f t h e s e t e s t s i n s c r i p t _ i n v a l i d . j s o n
" ] ,
[ "CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and" ] ,
[ "pubkeys in a specific order, and will exit early if the number of signatures" ] ,
[ "left to check is greater than the number of keys left. As STRICTENC fails the" ] ,
[ "script when it reaches an invalidly encoded signature or pubkey, we can use it" ] ,
[ "to test the exact order in which signatures and pubkeys are evaluated by" ] ,
[ "distinguishing CHECKMULTISIG returning false on the stack and the script as a" ] ,
[ "whole failing." ] ,
[ "See also the corresponding inverted versions of these tests in script_invalid.json" ] ,
[
"0 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501 0x47 0x3044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501" ,
"2 0 0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 2 CHECKMULTISIG NOT" ,