Make fate-backend also return a Map

This commit is contained in:
Hans Svensson 2019-06-10 15:13:34 +02:00
parent 7b5db76c13
commit 3e2281a834
2 changed files with 13 additions and 5 deletions

View File

@ -111,10 +111,18 @@ from_string1(aevm, ContractString, Options) ->
type_info => TypeInfo type_info => TypeInfo
}}; }};
from_string1(fate, ContractString, Options) -> from_string1(fate, ContractString, Options) ->
Ast = parse(ContractString, Options), Ast = parse(ContractString, Options),
TypedAst = aeso_ast_infer_types:infer(Ast, Options), TypedAst = aeso_ast_infer_types:infer(Ast, Options),
FCode = aeso_ast_to_fcode:ast_to_fcode(TypedAst, Options), FCode = aeso_ast_to_fcode:ast_to_fcode(TypedAst, Options),
{ok, aeso_fcode_to_fate:compile(FCode, Options)}. FateCode = aeso_fcode_to_fate:compile(FCode, Options),
ByteCode = aeb_fate_code:serialize(FateCode, []),
{ok, Version} = version(),
{ok, #{byte_code => ByteCode,
compiler_version => Version,
contract_source => ContractString,
type_info => [],
fate_code => FateCode
}}.
-spec string_to_icode(string(), [option()]) -> map(). -spec string_to_icode(string(), [option()]) -> map().
string_to_icode(ContractString, Options) -> string_to_icode(ContractString, Options) ->

View File

@ -23,7 +23,7 @@ simple_compile_test_() ->
contract_source := _, contract_source := _,
type_info := _} when Backend == aevm -> type_info := _} when Backend == aevm ->
?assertMatch(Code when is_binary(Code), ByteCode); ?assertMatch(Code when is_binary(Code), ByteCode);
Code when Backend == fate, is_tuple(Code) -> #{fate_code := Code} when Backend == fate ->
Code1 = aeb_fate_code:deserialize(aeb_fate_code:serialize(Code)), Code1 = aeb_fate_code:deserialize(aeb_fate_code:serialize(Code)),
?assertMatch({X, X}, {Code1, Code}); ?assertMatch({X, X}, {Code1, Code});
ErrBin -> ErrBin ->