Merge pull request #104 from aeternity/PT-166868668-decode-fate-revert

Properly decode revert strings for fate as well
This commit is contained in:
Tobias Lindahl 2019-07-09 16:52:35 +02:00 committed by GitHub
commit 19948c6aad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -290,11 +290,17 @@ to_sophia_value(ContractString, Fun, ResType, Data) ->
{ok, aeso_syntax:expr()} | {error, term()}. {ok, aeso_syntax:expr()} | {error, term()}.
to_sophia_value(_, _, error, Err, _Options) -> to_sophia_value(_, _, error, Err, _Options) ->
{ok, {app, [], {id, [], "error"}, [{string, [], Err}]}}; {ok, {app, [], {id, [], "error"}, [{string, [], Err}]}};
to_sophia_value(_, _, revert, Data, _Options) -> to_sophia_value(_, _, revert, Data, Options) ->
case proplists:get_value(backend, Options, aevm) of
aevm ->
case aeb_heap:from_binary(string, Data) of case aeb_heap:from_binary(string, Data) of
{ok, Err} -> {ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}}; {ok, Err} -> {ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}};
{error, _} = Err -> Err {error, _} = Err -> Err
end; end;
fate ->
Err = aeb_fate_encoding:deserialize(Data),
{ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}}
end;
to_sophia_value(ContractString, FunName, ok, Data, Options) -> to_sophia_value(ContractString, FunName, ok, Data, Options) ->
try try
Code = string_to_code(ContractString, Options), Code = string_to_code(ContractString, Options),