-- 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