Tools
The eth_abi.tools
module provides extra resources to users of eth-abi
that are not required for typical use. It can be installed with pip
as an
extra requirement:
python -m pip install "eth-abi[tools]"
ABI Type Strategies
The tools
module provides the get_abi_strategy()
function. This function returns a hypothesis strategy (value generator) for any
given ABI type specified by its canonical string representation:
>>> from eth_abi.tools import get_abi_strategy
>>> uint_st = get_abi_strategy('uint8')
>>> uint_st
integers(min_value=0, max_value=255)
>>> uint_list_st = get_abi_strategy('uint8[2]')
>>> uint_list_st
lists(integers(min_value=0, max_value=255), min_size=2, max_size=2)
>>> fixed_st = get_abi_strategy('fixed8x1')
>>> fixed_st
decimals(min_value=-128, max_value=127, places=0).map(scale_by_Eneg1)
>>> tuple_st = get_abi_strategy('(bool,string)')
>>> tuple_st
tuples(booleans(), text())
Hypothesis strategies can be used to conduct property testing on contract code. For more information on property testing, visit the Hypothesis homepage or the Hypothesis readthedocs site.