Adjusting a few calls.

This commit is contained in:
2026-02-12 17:44:56 +09:00
parent 3838a7e3c5
commit 6c172c4783
3 changed files with 41 additions and 17 deletions
+24 -7
View File
@@ -1098,7 +1098,7 @@ contract_create_built(CreatorID, Compiled, InitArgs) ->
contract_create_built(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Compiled, InitArgs) ->
AACI = hz_aaci:prepare_aaci(maps:get(aci, Compiled)),
AACI = hz_aaci:prepare(maps:get(aci, Compiled)),
case encode_call_data(AACI, "init", InitArgs) of
{ok, CallData} ->
assemble_calldata(CreatorID, Nonce, Amount, TTL, Gas, GasPrice,
@@ -1192,7 +1192,7 @@ read_aci(Path) ->
AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(),
Fun :: string(),
Args :: [string()],
Args :: [string()] | {erlang, [term()]},
Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(),
Reason :: term().
@@ -1227,7 +1227,7 @@ contract_call(CallerID, AACI, ConID, Fun, Args) ->
AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(),
Fun :: string(),
Args :: [string()],
Args :: [string()] | {erlang, [term()]},
Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(),
Reason :: term().
@@ -1265,7 +1265,7 @@ contract_call(CallerID, Gas, AACI, ConID, Fun, Args) ->
AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(),
Fun :: string(),
Args :: [string()],
Args :: [string()] | {erlang, [term()]},
Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(),
Reason :: term().
@@ -1437,7 +1437,7 @@ contract_call4(PK, Nonce, Gas, GasPrice, Amount, TTL, CK, CallData) ->
prepare_contract(File) ->
case so_compiler:file(File, [{aci, json}]) of
{ok, #{aci := ACI}} -> {ok, hz_aaci:prepare_aaci(ACI)};
{ok, #{aci := ACI}} -> {ok, hz_aaci:prepare(ACI)};
Error -> Error
end.
@@ -1517,12 +1517,29 @@ encode_call_data({aaci, Label}, Fun, Args) ->
error -> {error, aaci_not_found}
end.
encode_call_data2(ArgDef, Fun, Args) ->
encode_call_data2(ArgDef, Fun, {erlang, Args}) ->
case hz_aaci:erlang_args_to_fate(ArgDef, Args) of
{ok, Coerced} -> gmb_fate_abi:create_calldata(Fun, Coerced);
Errors -> Errors
Errors -> Errors
end;
encode_call_data2(ArgDef, Fun, SophiaArgs) ->
case convert(ArgDef, SophiaArgs) of
{ok, Args} -> gmb_fate_abi:create_calldata(Fun, Args);
Errors -> Errors
end.
convert(Defs, Args) -> convert(Defs, Args, 1, [], []).
convert([{Name, Def} | Defs], [Arg | Args], Nth, Terms, Errors) ->
case hz_sophia:parse_literal(Def, Arg) of
{ok, Term} -> convert(Defs, Args, Nth + 1, [Term | Terms], Errors);
{error, Reason} -> convert(Defs, Args, Nth + 1, Terms, [{Nth, Name, Reason} | Errors])
end;
convert([], [], _, Terms, []) ->
{ok, lists:reverse(Terms)};
convert([], [], _, _, Errors) ->
{error, Errors}.
sign_tx(Unsigned, SecKey) ->
case network_id() of