-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Compilation, manipulation and decompilation of Bitcoin scripts -- @package bitcoin-script @version 0.10.0 module Network.Bitcoin.Script -- | Decodes a hex representation of a script into a Script object. decode :: ByteString -> Script -- | Encodes a Script object into a hex representation encode :: Script -> ByteString -- | Data type representing all of the operators allowed inside a -- Script. data ScriptOp OP_PUSHDATA :: !ByteString -> !PushDataType -> ScriptOp OP_0 :: ScriptOp OP_1NEGATE :: ScriptOp OP_RESERVED :: ScriptOp OP_1 :: ScriptOp OP_2 :: ScriptOp OP_3 :: ScriptOp OP_4 :: ScriptOp OP_5 :: ScriptOp OP_6 :: ScriptOp OP_7 :: ScriptOp OP_8 :: ScriptOp OP_9 :: ScriptOp OP_10 :: ScriptOp OP_11 :: ScriptOp OP_12 :: ScriptOp OP_13 :: ScriptOp OP_14 :: ScriptOp OP_15 :: ScriptOp OP_16 :: ScriptOp OP_NOP :: ScriptOp OP_VER :: ScriptOp OP_IF :: ScriptOp OP_NOTIF :: ScriptOp OP_VERIF :: ScriptOp OP_VERNOTIF :: ScriptOp OP_ELSE :: ScriptOp OP_ENDIF :: ScriptOp OP_VERIFY :: ScriptOp OP_RETURN :: ScriptOp OP_TOALTSTACK :: ScriptOp OP_FROMALTSTACK :: ScriptOp OP_IFDUP :: ScriptOp OP_DEPTH :: ScriptOp OP_DROP :: ScriptOp OP_DUP :: ScriptOp OP_NIP :: ScriptOp OP_OVER :: ScriptOp OP_PICK :: ScriptOp OP_ROLL :: ScriptOp OP_ROT :: ScriptOp OP_SWAP :: ScriptOp OP_TUCK :: ScriptOp OP_2DROP :: ScriptOp OP_2DUP :: ScriptOp OP_3DUP :: ScriptOp OP_2OVER :: ScriptOp OP_2ROT :: ScriptOp OP_2SWAP :: ScriptOp OP_CAT :: ScriptOp OP_SUBSTR :: ScriptOp OP_LEFT :: ScriptOp OP_RIGHT :: ScriptOp OP_SIZE :: ScriptOp OP_INVERT :: ScriptOp OP_AND :: ScriptOp OP_OR :: ScriptOp OP_XOR :: ScriptOp OP_EQUAL :: ScriptOp OP_EQUALVERIFY :: ScriptOp OP_RESERVED1 :: ScriptOp OP_RESERVED2 :: ScriptOp OP_1ADD :: ScriptOp OP_1SUB :: ScriptOp OP_2MUL :: ScriptOp OP_2DIV :: ScriptOp OP_NEGATE :: ScriptOp OP_ABS :: ScriptOp OP_NOT :: ScriptOp OP_0NOTEQUAL :: ScriptOp OP_ADD :: ScriptOp OP_SUB :: ScriptOp OP_MUL :: ScriptOp OP_DIV :: ScriptOp OP_MOD :: ScriptOp OP_LSHIFT :: ScriptOp OP_RSHIFT :: ScriptOp OP_BOOLAND :: ScriptOp OP_BOOLOR :: ScriptOp OP_NUMEQUAL :: ScriptOp OP_NUMEQUALVERIFY :: ScriptOp OP_NUMNOTEQUAL :: ScriptOp OP_LESSTHAN :: ScriptOp OP_GREATERTHAN :: ScriptOp OP_LESSTHANOREQUAL :: ScriptOp OP_GREATERTHANOREQUAL :: ScriptOp OP_MIN :: ScriptOp OP_MAX :: ScriptOp OP_WITHIN :: ScriptOp OP_RIPEMD160 :: ScriptOp OP_SHA1 :: ScriptOp OP_SHA256 :: ScriptOp OP_HASH160 :: ScriptOp OP_HASH256 :: ScriptOp OP_CODESEPARATOR :: ScriptOp OP_CHECKSIG :: ScriptOp OP_CHECKSIGVERIFY :: ScriptOp OP_CHECKMULTISIG :: ScriptOp OP_CHECKMULTISIGVERIFY :: ScriptOp OP_NOP1 :: ScriptOp OP_NOP2 :: ScriptOp OP_NOP3 :: ScriptOp OP_NOP4 :: ScriptOp OP_NOP5 :: ScriptOp OP_NOP6 :: ScriptOp OP_NOP7 :: ScriptOp OP_NOP8 :: ScriptOp OP_NOP9 :: ScriptOp OP_NOP10 :: ScriptOp OP_PUBKEYHASH :: ScriptOp OP_PUBKEY :: ScriptOp OP_INVALIDOPCODE :: !Word8 -> ScriptOp -- | Data type representing a transaction script. Scripts are defined as -- lists of script operators ScriptOp. Scripts are used to: -- -- data Script Script :: ![ScriptOp] -> Script -- | List of script operators defining this script scriptOps :: Script -> ![ScriptOp] -- | Data type representing the type of an OP_PUSHDATA opcode. data PushDataType -- | The next opcode bytes is data to be pushed onto the stack OPCODE :: PushDataType -- | The next byte contains the number of bytes to be pushed onto the stack OPDATA1 :: PushDataType -- | The next two bytes contains the number of bytes to be pushed onto the -- stack OPDATA2 :: PushDataType -- | The next four bytes contains the number of bytes to be pushed onto the -- stack OPDATA4 :: PushDataType