Compare commits

...

3 Commits

Author SHA1 Message Date
23b6256aae verup 2025-03-01 12:47:41 +09:00
4efc38d319 Make dryrun operate on the top block. 2025-03-01 12:42:23 +09:00
SpiveeWorks
ede98b9e96 Fix function spec AACI preparation 2025-02-28 23:59:00 +11:00
7 changed files with 23 additions and 12 deletions

View File

@ -3,6 +3,6 @@
{included_applications,[]},
{applications,[stdlib,kernel]},
{description,"Gajumaru interoperation library"},
{vsn,"0.3.1"},
{vsn,"0.3.2"},
{modules,[hakuzaru,hz,hz_fetcher,hz_man,hz_sup]},
{mod,{hakuzaru,[]}}]}.

View File

@ -6,7 +6,7 @@
%%% @end
-module(hakuzaru).
-vsn("0.3.1").
-vsn("0.3.2").
-author("Craig Everett <ceverett@tsuriai.jp>").
-copyright("Craig Everett <ceverett@tsuriai.jp>").
-license("GPL-3.0-or-later").

View File

@ -23,7 +23,7 @@
%%% @end
-module(hz).
-vsn("0.3.1").
-vsn("0.3.2").
-author("Craig Everett <ceverett@tsuriai.jp>").
-copyright("Craig Everett <ceverett@tsuriai.jp>").
-license("GPL-3.0-or-later").
@ -619,9 +619,9 @@ dry_run(TX) ->
%% supplied accounts.
dry_run(TX, Accounts) ->
case kb_current_hash() of
{ok, Hash} -> dry_run(TX, Accounts, Hash);
Error -> Error
case top_block() of
{ok, #{"hash" := Hash}} -> dry_run(TX, Accounts, Hash);
Error -> Error
end.
@ -1453,7 +1453,7 @@ convert_function_spec(#{name := NameBin, arguments := Args, returns := Result})
convert_arg(#{name := NameBin, type := TypeDef}) ->
Name = binary_to_list(NameBin),
{ok, Type} = opaque_type([], TypeDef),
Type = opaque_type([], TypeDef),
{Name, Type}.
convert_namespace_typedefs(#{namespace := NS}) ->
@ -1561,7 +1561,7 @@ opaque_type_name(Name) -> binary_to_list(Name).
annotate_function_specs([], _Types, Specs) ->
Specs;
annotate_function_specs([{Name, ArgsOpaque, ResultOpaque} | Rest], Types, Specs) ->
{ok, Args} = annotate_types(ArgsOpaque, Types, []),
{ok, Args} = annotate_bindings(ArgsOpaque, Types, []),
{ok, Result} = annotate_type(ResultOpaque, Types),
NewSpecs = maps:put(Name, {Args, Result}, Specs),
annotate_function_specs(Rest, Types, NewSpecs).
@ -2358,3 +2358,14 @@ state_coerce_test() ->
{ok, {[], Output}} = aaci_lookup_spec(AACI, "init"),
try_coerce(Output, 0, 0).
param_test() ->
Contract = "
contract C =
type state = int
entrypoint init(x): state = x
",
{ok, AACI} = aaci_from_string(Contract),
{ok, {[{"x", Input}], Output}} = aaci_lookup_spec(AACI, "init"),
try_coerce(Input, 0, 0),
try_coerce(Output, 0, 0).

View File

@ -1,5 +1,5 @@
-module(hz_fetcher).
-vsn("0.3.1").
-vsn("0.3.2").
-author("Craig Everett <ceverett@tsuriai.jp>").
-copyright("Craig Everett <ceverett@tsuriai.jp>").
-license("MIT").

View File

@ -9,7 +9,7 @@
%%% @end
-module(hz_man).
-vsn("0.3.1").
-vsn("0.3.2").
-behavior(gen_server).
-author("Craig Everett <ceverett@tsuriai.jp>").
-copyright("Craig Everett <ceverett@tsuriai.jp>").

View File

@ -9,7 +9,7 @@
%%% @end
-module(hz_sup).
-vsn("0.3.1").
-vsn("0.3.2").
-behaviour(supervisor).
-author("Craig Everett <zxq9@zxq9.com>").
-copyright("Craig Everett <zxq9@zxq9.com>").

View File

@ -4,7 +4,7 @@
{prefix,"hz"}.
{author,"Craig Everett"}.
{desc,"Gajumaru interoperation library"}.
{package_id,{"otpr","hakuzaru",{0,3,1}}}.
{package_id,{"otpr","hakuzaru",{0,3,2}}}.
{deps,[{"otpr","sophia",{8,0,1}},
{"otpr","gmbytecode",{3,4,1}},
{"otpr","gmserialization",{0,1,2}},