def get_function_info( fn_name: str, abi_codec: ABICodec, contract_abi: Optional[ABI] = None, fn_abi: Optional[ABIFunction] = None, args: Optional[Sequence[Any]] = None, kwargs: Optional[Any] = None, ) -> Tuple[ABIFunction, HexStr, Tuple[Any, ...]]: if args is None: args = tuple() if kwargs is None: kwargs = {} if fn_abi is None: fn_abi = find_matching_fn_abi(contract_abi, abi_codec, fn_name, args, kwargs) # typed dict cannot be used w/ a normal Dict # https://github.com/python/mypy/issues/4976 fn_selector = encode_hex( function_abi_to_4byte_selector(fn_abi)) # type: ignore fn_arguments = merge_args_and_kwargs(fn_abi, args, kwargs) _, aligned_fn_arguments = get_aligned_abi_inputs(fn_abi, fn_arguments) return fn_abi, fn_selector, aligned_fn_arguments
def get_function_info(fn_name, contract_abi=None, fn_abi=None, args=None, kwargs=None): if args is None: args = tuple() if kwargs is None: kwargs = {} if fn_abi is None: fn_abi = find_matching_fn_abi(contract_abi, fn_name, args, kwargs) fn_selector = encode_hex(function_abi_to_4byte_selector(fn_abi)) fn_arguments = merge_args_and_kwargs(fn_abi, args, kwargs) _, aligned_fn_arguments = get_aligned_abi_inputs(fn_abi, fn_arguments) return fn_abi, fn_selector, aligned_fn_arguments
def get_function_info( fn_name: str, abi_codec: ABICodec, contract_abi: ABI = None, fn_abi: ABIFunction = None, args: Sequence[Any] = None, kwargs: Any = None, ) -> Tuple[ABIFunction, HexStr, Sequence[Any]]: if args is None: args = tuple() if kwargs is None: kwargs = {} if fn_abi is None: fn_abi = find_matching_fn_abi(contract_abi, abi_codec, fn_name, args, kwargs) fn_selector = encode_hex(function_abi_to_4byte_selector(fn_abi)) fn_arguments = merge_args_and_kwargs(fn_abi, args, kwargs) _, aligned_fn_arguments = get_aligned_abi_inputs(fn_abi, fn_arguments) return fn_abi, fn_selector, aligned_fn_arguments
def test_get_aligned_abi_inputs_raises_type_error(abi, args): with pytest.raises(TypeError): get_aligned_abi_inputs(abi, args)
def test_get_aligned_abi_inputs(abi, args, expected): assert get_aligned_abi_inputs(abi, args) == expected