OBI Module
Oracle Binary Encoding (OBI) is the standard way to serialized and deserialize binary data in the BandChain ecosystem. This module provides the functionality to serialize data. More details
Constructor
- schema
<str>
: Input and output schema.
Example
from pyband import PyObi
obi = PyObi("{symbol: string,px: u64,in: {a: u8,b: u8}, tb:bool} / string")
encode_input(value)
This function encodes the input value by using input schema.
Parameter
- value
<Any>
: Value to be encoded.
Return
<bytes>
: An encoded value
Example
from pyband.obi import PyObi
obi = PyObi("{symbol: string,px: u64,in: {a: u8,b: u8}, tb:bool} / string")
test_input = {"symbol": "BTC", "px": 9000, "in": {"a": 1, "b": 2}, "tb": False}
print(obi.encode_input(test_input).hex())
Result
000000034254430000000000002328010200
encode_output(value)
This function encodes the output value by using output schema.
Parameter
- value
<Any>
: Value to be encoded.
Return
<bytes>
: An encoded value
Example
from pyband.obi import PyObi
obi = PyObi("{symbol: string,px: u64,in: {a: u8,b: u8}, tb:bool} / string")
test_output = "test"
print(obi.encode_output(test_output).hex())
Result
0000000474657374
decode_input(value)
This function decode the input value by using input schema
Parameter
- value
<bytes>
: Value to be decoded.
Return
<Any>
: A decoded value
Example
from pyband.obi import PyObi
obi =PyObi("{symbol: string,px: u64,in: {a: u8,b: u8}, tb:bool} / string")
print(obi.decode_input(bytearray.fromhex("000000034254430000000000002328010200")))
Result
{"symbol": "BTC", "px": 9000, "in": {"a": 1, "b": 2}, "tb": False}
decode_output(value)
This function decode the output value by using output schema
Parameter
- value
<bytes>
: Value to be decoded.
Return
<Any>
: A decoded value
Example
from pyband.obi import PyObi
obi = PyObi("{symbol: string,px: u64,in: {a: u8,b: u8}, tb:bool} / string")
print(obi.decode_output(bytearray.fromhex("0000000474657374")))
Result
test