BSV.Script.ScriptNum (bsv_sdk v1.1.0)

Copy Markdown View Source

Bitcoin script number encoding/decoding.

Numbers are encoded as little-endian byte arrays with the sign bit in the MSB of the last byte.

Summary

Functions

Decode a binary script number to an integer.

Encode an integer as a binary script number.

Check if a binary is minimally encoded as a script number.

Functions

decode_num(bin)

@spec decode_num(binary()) :: integer()

Decode a binary script number to an integer.

Examples

iex> BSV.Script.ScriptNum.decode_num(<<>>)
0

iex> BSV.Script.ScriptNum.decode_num(<<0x81>>)
-1

encode_num(val)

@spec encode_num(integer()) :: binary()

Encode an integer as a binary script number.

Examples

iex> BSV.Script.ScriptNum.encode_num(0)
<<>>

iex> BSV.Script.ScriptNum.encode_num(-1)
<<0x81>>

minimally_encoded?(bin)

@spec minimally_encoded?(binary()) :: boolean()

Check if a binary is minimally encoded as a script number.