Script

Riemann provides support for (de)serializing Bitcoin Script. However, it does not support execution of Script.

In Riemann’s Script serialization, opcodes are represented as strings and data pushes are represented as unprefixed hex strings. E.g. “0011aabb OP_HASH160”. This can be serialized to bytes via serialization.serialize or to hex via serialization.hex_serialize.

Some examples are available in riemann/script/examples.py and riemann/examples.

Serialization

riemann.script.serialization.deserialize(serialized_script: bytes) → str

Deserialize a human-readable script from bytes

Example

deserialize(b’v©ˆ¬’)

Parameters

serialized_script – The Script serialized as a bytestring

Returns

A human-readable Script string

riemann.script.serialization.hex_deserialize(script_hex: str) → str

Deserialize a human-readable script from hex

Example

hex_deserialize(‘1976a988ac’)

Parameters

serialized_script – The Script serialized as a hex string

Returns

A human-readable Script string

riemann.script.serialization.hex_serialize(script_string: str) → str

Serialize a human-readable script to hex

Example

hex_serialize(‘OP_DUP OP_CAT OP_HASH160 0011deadbeef’)

Parameters

script_string – A human-readable Bitcoin Script string

Returns

The Script serialized as a hex string

riemann.script.serialization.serialize(script_string: str) → bytes

Serialize a human-readable script to bytes

Example

serialize(‘OP_DUP OP_CAT OP_HASH160 0011deadbeef’)

Parameters

script_string – A human-readable Bitcoin Script string

Returns

The Script serialized as a bytestring