Add decoding function
This commit is contained in:
parent
e3f843fd91
commit
9840b22546
@ -10,6 +10,7 @@
|
|||||||
-module(aeb_fate_abi).
|
-module(aeb_fate_abi).
|
||||||
|
|
||||||
-export([ create_calldata/2
|
-export([ create_calldata/2
|
||||||
|
, decode_calldata/2
|
||||||
, get_function_hash_from_calldata/1
|
, get_function_hash_from_calldata/1
|
||||||
, get_function_name_from_function_hash/2
|
, get_function_name_from_function_hash/2
|
||||||
, get_function_type_from_function_hash/2 ]).
|
, get_function_type_from_function_hash/2 ]).
|
||||||
@ -27,6 +28,14 @@ create_calldata(FunName, Args) ->
|
|||||||
aeb_fate_data:make_tuple({FunctionId,
|
aeb_fate_data:make_tuple({FunctionId,
|
||||||
aeb_fate_data:make_tuple(list_to_tuple(Args))}))}.
|
aeb_fate_data:make_tuple(list_to_tuple(Args))}))}.
|
||||||
|
|
||||||
|
-spec decode_calldata(list(), binary()) -> {ok, term()} | {error, term()}.
|
||||||
|
decode_calldata(FunName, Calldata) ->
|
||||||
|
FunctionId = aeb_fate_code:symbol_identifier(list_to_binary(FunName)),
|
||||||
|
case ?FATE_TUPLE_ELEMENTS(aeb_fate_encoding:deserialize(Calldata)) of
|
||||||
|
[FunctionId, FateArgs] -> {ok, ?FATE_TUPLE_ELEMENTS(FateArgs)};
|
||||||
|
_ -> {error, decode_error}
|
||||||
|
end.
|
||||||
|
|
||||||
-spec get_function_name_from_function_hash(binary(), aeb_fate_code:fcode()) ->
|
-spec get_function_name_from_function_hash(binary(), aeb_fate_code:fcode()) ->
|
||||||
{ok, term()} | {error, term()}.
|
{ok, term()} | {error, term()}.
|
||||||
get_function_name_from_function_hash(<<SymbolHash:4/binary, _:28/binary>>, FateCode) ->
|
get_function_name_from_function_hash(<<SymbolHash:4/binary, _:28/binary>>, FateCode) ->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user