DecodingΒΆ
These functions are intended for decoding return values from the EVM.
eth_alarm.decode_single(type, data)
This function tries to decode data
into the python type that corresponds
to the provided type
. This function accepts both byte strings as well as
their hexidecimal representation with or without the 0x
prefix.
>>> decode_single('uint256', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009')
12345
>>> decode_single('uint256', '0000000000000000000000000000000000000000000000000000000000003039')
12345
>>> decode_single('uint256', '0x0000000000000000000000000000000000000000000000000000000000003039')
12345
The value parameter is expected to be one of the recognized EVM types.
Note
This function cannot be used to decode dynamic or array types such as bytes32[]
.
eth_alarm.decode_abi(types, data)
This function decodes data
into the python type corresponding to the
provided types
. This function accepts both byte arrays as well as their
hexidecimal representation with or without the 0x
prefix.
>>> decode_abi(['uint256'], '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009')
[12345]
>>> decode_abi(['bytes32', 'bytes32'], 'a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
['a', 'b']
The values parameter is expected to be an iterable whose values are all one of the recognized EVM types.