From c4660fe0cfeeee3141fb040f9c530e8a0590e565 Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Tue, 9 Jul 2019 16:24:56 +0200 Subject: [PATCH] Properly decode revert strings for fate as well --- src/aeso_compiler.erl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/aeso_compiler.erl b/src/aeso_compiler.erl index cd8a9d7..f2f1ef0 100644 --- a/src/aeso_compiler.erl +++ b/src/aeso_compiler.erl @@ -290,10 +290,16 @@ to_sophia_value(ContractString, Fun, ResType, Data) -> {ok, aeso_syntax:expr()} | {error, term()}. to_sophia_value(_, _, error, Err, _Options) -> {ok, {app, [], {id, [], "error"}, [{string, [], Err}]}}; -to_sophia_value(_, _, revert, Data, _Options) -> - case aeb_heap:from_binary(string, Data) of - {ok, Err} -> {ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}}; - {error, _} = Err -> Err +to_sophia_value(_, _, revert, Data, Options) -> + case proplists:get_value(backend, Options, aevm) of + aevm -> + case aeb_heap:from_binary(string, Data) of + {ok, Err} -> {ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}}; + {error, _} = Err -> Err + end; + fate -> + Err = aeb_fate_encoding:deserialize(Data), + {ok, {app, [], {id, [], "abort"}, [{string, [], Err}]}} end; to_sophia_value(ContractString, FunName, ok, Data, Options) -> try