-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Primitive Script support. -- -- Representations for Script, including abstract syntax, -- ByteArray, and base16-encoded ByteString versions, as -- well as fast conversion utilities for working with them. @package ppad-script @version 0.1.0 -- | Representations for Script, including abstract syntax, -- ByteArray, and base16-encoded ByteString versions, -- as well as fast conversion utilities for working with them. module Bitcoin.Prim.Script -- | A Script program, represented as a ByteArray. newtype Script Script :: ByteArray -> Script -- | Terms of the Script language (either opcodes or bytes). data Term OPCODE :: {-# UNPACK #-} !Opcode -> Term BYTE :: {-# UNPACK #-} !Word8 -> Term -- | Primitive opcodes. data Opcode OP_PUSHBYTES_0 :: Opcode OP_PUSHBYTES_1 :: Opcode OP_PUSHBYTES_2 :: Opcode OP_PUSHBYTES_3 :: Opcode OP_PUSHBYTES_4 :: Opcode OP_PUSHBYTES_5 :: Opcode OP_PUSHBYTES_6 :: Opcode OP_PUSHBYTES_7 :: Opcode OP_PUSHBYTES_8 :: Opcode OP_PUSHBYTES_9 :: Opcode OP_PUSHBYTES_10 :: Opcode OP_PUSHBYTES_11 :: Opcode OP_PUSHBYTES_12 :: Opcode OP_PUSHBYTES_13 :: Opcode OP_PUSHBYTES_14 :: Opcode OP_PUSHBYTES_15 :: Opcode OP_PUSHBYTES_16 :: Opcode OP_PUSHBYTES_17 :: Opcode OP_PUSHBYTES_18 :: Opcode OP_PUSHBYTES_19 :: Opcode OP_PUSHBYTES_20 :: Opcode OP_PUSHBYTES_21 :: Opcode OP_PUSHBYTES_22 :: Opcode OP_PUSHBYTES_23 :: Opcode OP_PUSHBYTES_24 :: Opcode OP_PUSHBYTES_25 :: Opcode OP_PUSHBYTES_26 :: Opcode OP_PUSHBYTES_27 :: Opcode OP_PUSHBYTES_28 :: Opcode OP_PUSHBYTES_29 :: Opcode OP_PUSHBYTES_30 :: Opcode OP_PUSHBYTES_31 :: Opcode OP_PUSHBYTES_32 :: Opcode OP_PUSHBYTES_33 :: Opcode OP_PUSHBYTES_34 :: Opcode OP_PUSHBYTES_35 :: Opcode OP_PUSHBYTES_36 :: Opcode OP_PUSHBYTES_37 :: Opcode OP_PUSHBYTES_38 :: Opcode OP_PUSHBYTES_39 :: Opcode OP_PUSHBYTES_40 :: Opcode OP_PUSHBYTES_41 :: Opcode OP_PUSHBYTES_42 :: Opcode OP_PUSHBYTES_43 :: Opcode OP_PUSHBYTES_44 :: Opcode OP_PUSHBYTES_45 :: Opcode OP_PUSHBYTES_46 :: Opcode OP_PUSHBYTES_47 :: Opcode OP_PUSHBYTES_48 :: Opcode OP_PUSHBYTES_49 :: Opcode OP_PUSHBYTES_50 :: Opcode OP_PUSHBYTES_51 :: Opcode OP_PUSHBYTES_52 :: Opcode OP_PUSHBYTES_53 :: Opcode OP_PUSHBYTES_54 :: Opcode OP_PUSHBYTES_55 :: Opcode OP_PUSHBYTES_56 :: Opcode OP_PUSHBYTES_57 :: Opcode OP_PUSHBYTES_58 :: Opcode OP_PUSHBYTES_59 :: Opcode OP_PUSHBYTES_60 :: Opcode OP_PUSHBYTES_61 :: Opcode OP_PUSHBYTES_62 :: Opcode OP_PUSHBYTES_63 :: Opcode OP_PUSHBYTES_64 :: Opcode OP_PUSHBYTES_65 :: Opcode OP_PUSHBYTES_66 :: Opcode OP_PUSHBYTES_67 :: Opcode OP_PUSHBYTES_68 :: Opcode OP_PUSHBYTES_69 :: Opcode OP_PUSHBYTES_70 :: Opcode OP_PUSHBYTES_71 :: Opcode OP_PUSHBYTES_72 :: Opcode OP_PUSHBYTES_73 :: Opcode OP_PUSHBYTES_74 :: Opcode OP_PUSHBYTES_75 :: Opcode OP_PUSHDATA1 :: Opcode OP_PUSHDATA2 :: Opcode OP_PUSHDATA4 :: Opcode OP_PUSHNUM_NEG1 :: Opcode OP_RESERVED :: Opcode OP_PUSHNUM_1 :: Opcode OP_PUSHNUM_2 :: Opcode OP_PUSHNUM_3 :: Opcode OP_PUSHNUM_4 :: Opcode OP_PUSHNUM_5 :: Opcode OP_PUSHNUM_6 :: Opcode OP_PUSHNUM_7 :: Opcode OP_PUSHNUM_8 :: Opcode OP_PUSHNUM_9 :: Opcode OP_PUSHNUM_10 :: Opcode OP_PUSHNUM_11 :: Opcode OP_PUSHNUM_12 :: Opcode OP_PUSHNUM_13 :: Opcode OP_PUSHNUM_14 :: Opcode OP_PUSHNUM_15 :: Opcode OP_PUSHNUM_16 :: Opcode OP_NOP :: Opcode OP_VER :: Opcode OP_IF :: Opcode OP_NOTIF :: Opcode OP_VERIF :: Opcode OP_VERNOTIF :: Opcode OP_ELSE :: Opcode OP_ENDIF :: Opcode OP_VERIFY :: Opcode OP_RETURN :: Opcode OP_TOALTSTACK :: Opcode OP_FROMALTSTACK :: Opcode OP_2DROP :: Opcode OP_2DUP :: Opcode OP_3DUP :: Opcode OP_2OVER :: Opcode OP_2ROT :: Opcode OP_2SWAP :: Opcode OP_IFDUP :: Opcode OP_DEPTH :: Opcode OP_DROP :: Opcode OP_DUP :: Opcode OP_NIP :: Opcode OP_OVER :: Opcode OP_PICK :: Opcode OP_ROLL :: Opcode OP_ROT :: Opcode OP_SWAP :: Opcode OP_TUCK :: Opcode OP_CAT :: Opcode OP_SUBSTR :: Opcode OP_LEFT :: Opcode OP_RIGHT :: Opcode OP_SIZE :: Opcode OP_INVERT :: Opcode OP_AND :: Opcode OP_OR :: Opcode OP_XOR :: Opcode OP_EQUAL :: Opcode OP_EQUALVERIFY :: Opcode OP_RESERVED1 :: Opcode OP_RESERVED2 :: Opcode OP_1ADD :: Opcode OP_1SUB :: Opcode OP_2MUL :: Opcode OP_2DIV :: Opcode OP_NEGATE :: Opcode OP_ABS :: Opcode OP_NOT :: Opcode OP_0NOTEQUAL :: Opcode OP_ADD :: Opcode OP_SUB :: Opcode OP_MUL :: Opcode OP_DIV :: Opcode OP_MOD :: Opcode OP_LSHIFT :: Opcode OP_RSHIFT :: Opcode OP_BOOLAND :: Opcode OP_BOOLOR :: Opcode OP_NUMEQUAL :: Opcode OP_NUMEQUALVERIFY :: Opcode OP_NUMNOTEQUAL :: Opcode OP_LESSTHAN :: Opcode OP_GREATERTHAN :: Opcode OP_LESSTHANOREQUAL :: Opcode OP_GREATERTHANOREQUAL :: Opcode OP_MIN :: Opcode OP_MAX :: Opcode OP_WITHIN :: Opcode OP_RIPEMD160 :: Opcode OP_SHA1 :: Opcode OP_SHA256 :: Opcode OP_HASH160 :: Opcode OP_HASH256 :: Opcode OP_CODESEPARATOR :: Opcode OP_CHECKSIG :: Opcode OP_CHECKSIGVERIFY :: Opcode OP_CHECKMULTISIG :: Opcode OP_CHECKMULTISIGVERIFY :: Opcode OP_NOP1 :: Opcode OP_CLTV :: Opcode OP_CSV :: Opcode OP_NOP4 :: Opcode OP_NOP5 :: Opcode OP_NOP6 :: Opcode OP_NOP7 :: Opcode OP_NOP8 :: Opcode OP_NOP9 :: Opcode OP_NOP10 :: Opcode OP_CHECKSIGADD :: Opcode OP_RETURN_187 :: Opcode OP_RETURN_188 :: Opcode OP_RETURN_189 :: Opcode OP_RETURN_190 :: Opcode OP_RETURN_191 :: Opcode OP_RETURN_192 :: Opcode OP_RETURN_193 :: Opcode OP_RETURN_194 :: Opcode OP_RETURN_195 :: Opcode OP_RETURN_196 :: Opcode OP_RETURN_197 :: Opcode OP_RETURN_198 :: Opcode OP_RETURN_199 :: Opcode OP_RETURN_200 :: Opcode OP_RETURN_201 :: Opcode OP_RETURN_202 :: Opcode OP_RETURN_203 :: Opcode OP_RETURN_204 :: Opcode OP_RETURN_205 :: Opcode OP_RETURN_206 :: Opcode OP_RETURN_207 :: Opcode OP_RETURN_208 :: Opcode OP_RETURN_209 :: Opcode OP_RETURN_210 :: Opcode OP_RETURN_211 :: Opcode OP_RETURN_212 :: Opcode OP_RETURN_213 :: Opcode OP_RETURN_214 :: Opcode OP_RETURN_215 :: Opcode OP_RETURN_216 :: Opcode OP_RETURN_217 :: Opcode OP_RETURN_218 :: Opcode OP_RETURN_219 :: Opcode OP_RETURN_220 :: Opcode OP_RETURN_221 :: Opcode OP_RETURN_222 :: Opcode OP_RETURN_223 :: Opcode OP_RETURN_224 :: Opcode OP_RETURN_225 :: Opcode OP_RETURN_226 :: Opcode OP_RETURN_227 :: Opcode OP_RETURN_228 :: Opcode OP_RETURN_229 :: Opcode OP_RETURN_230 :: Opcode OP_RETURN_231 :: Opcode OP_RETURN_232 :: Opcode OP_RETURN_233 :: Opcode OP_RETURN_234 :: Opcode OP_RETURN_235 :: Opcode OP_RETURN_236 :: Opcode OP_RETURN_237 :: Opcode OP_RETURN_238 :: Opcode OP_RETURN_239 :: Opcode OP_RETURN_240 :: Opcode OP_RETURN_241 :: Opcode OP_RETURN_242 :: Opcode OP_RETURN_243 :: Opcode OP_RETURN_244 :: Opcode OP_RETURN_245 :: Opcode OP_RETURN_246 :: Opcode OP_RETURN_247 :: Opcode OP_RETURN_248 :: Opcode OP_RETURN_249 :: Opcode OP_RETURN_250 :: Opcode OP_RETURN_251 :: Opcode OP_RETURN_252 :: Opcode OP_RETURN_253 :: Opcode OP_RETURN_254 :: Opcode OP_INVALIDOPCODE :: Opcode -- | Convert a Script to a base16-encoded ByteString. to_base16 :: Script -> ByteString -- | Convert a base16-encoded ByteString to a Script. from_base16 :: ByteString -> Maybe Script -- | Pack a list of Script terms into a Script. to_script :: [Term] -> Script -- | Unpack a Script into a list of Script terms. from_script :: Script -> [Term] instance GHC.Show.Show Bitcoin.Prim.Script.Script instance GHC.Classes.Eq Bitcoin.Prim.Script.Script instance GHC.Enum.Enum Bitcoin.Prim.Script.Opcode instance GHC.Show.Show Bitcoin.Prim.Script.Opcode instance GHC.Classes.Eq Bitcoin.Prim.Script.Opcode instance GHC.Classes.Eq Bitcoin.Prim.Script.Term instance GHC.Show.Show Bitcoin.Prim.Script.Term