Compare commits

..

No commits in common. "a1fc5f19fa2c40fdec16d3e925e15e395c1674d6" and "60985130cb039eff53877c7e55415a7a9bce77c3" have entirely different histories.

View File

@ -892,10 +892,7 @@ result(Received) -> Received.
-spec contract_create(CreatorID, Path, InitArgs) -> Result -spec contract_create(CreatorID, Path, InitArgs) -> Result
when CreatorID :: unicode:chardata(), when CreatorID :: unicode:chardata(),
Path :: file:filename(), Path :: file:filename(),
InitArgs :: [string()] InitArgs :: [string()],
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CreateTX} | {error, Reason}, Result :: {ok, CreateTX} | {error, Reason},
CreateTX :: binary(), CreateTX :: binary(),
Reason :: file:posix() | term(). Reason :: file:posix() | term().
@ -930,10 +927,7 @@ contract_create(CreatorID, Path, InitArgs) ->
Gas :: pos_integer(), Gas :: pos_integer(),
GasPrice :: pos_integer(), GasPrice :: pos_integer(),
Path :: file:filename(), Path :: file:filename(),
InitArgs :: [string()] InitArgs :: [string()],
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CreateTX} | {error, Reason}, Result :: {ok, CreateTX} | {error, Reason},
CreateTX :: binary(), CreateTX :: binary(),
Reason :: term(). Reason :: term().
@ -1078,10 +1072,7 @@ contract_create2(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Source, Options,
-spec contract_create_built(CreatorID, Compiled, InitArgs) -> Result -spec contract_create_built(CreatorID, Compiled, InitArgs) -> Result
when CreatorID :: unicode:chardata(), when CreatorID :: unicode:chardata(),
Compiled :: map(), Compiled :: map(),
InitArgs :: [string()] InitArgs :: [string()],
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CreateTX} | {error, Reason}, Result :: {ok, CreateTX} | {error, Reason},
CreateTX :: binary(), CreateTX :: binary(),
Reason :: file:posix() | bad_fun_name | aaci_not_found | term(). Reason :: file:posix() | bad_fun_name | aaci_not_found | term().
@ -1106,31 +1097,12 @@ contract_create_built(CreatorID, Compiled, InitArgs) ->
end. end.
-spec contract_create_built(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Compiled, InitArgs) -> Result
when CreatorID :: unicode:chardata(),
Nonce :: pos_integer(),
Amount :: non_neg_integer(),
TTL :: non_neg_integer(),
Gas :: pos_integer(),
GasPrice :: pos_integer(),
Compiled :: map(),
InitArgs :: [string()]
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CreateTX} | {error, Reason},
CreateTX :: binary(),
Reason :: file:posix() | bad_fun_name | aaci_not_found | term().
%% @doc
%% See `contract_create/8' for detailed information on argument types.
%% The `Compiled' argument is the output of contract compilation and replaces the `File'
%% argument in `contract_create/8'.
contract_create_built(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Compiled, InitArgs) -> contract_create_built(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Compiled, InitArgs) ->
AACI = hz_aaci:prepare(maps:get(aci, Compiled)), AACI = hz_aaci:prepare(maps:get(aci, Compiled)),
case encode_call_data(AACI, "init", InitArgs) of case encode_call_data(AACI, "init", InitArgs) of
{ok, CallData} -> {ok, CallData} ->
assemble_calldata(CreatorID, Nonce, Amount, TTL, Gas, GasPrice, Compiled, CallData); assemble_calldata(CreatorID, Nonce, Amount, TTL, Gas, GasPrice,
Compiled, CallData);
Error -> Error ->
Error Error
end. end.
@ -1220,10 +1192,7 @@ read_aci(Path) ->
AACI :: aaci() | {aaci, Label :: term()}, AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(), ConID :: unicode:chardata(),
Fun :: string(), Fun :: string(),
Args :: [string()] Args :: [string()] | {erlang, [term()]},
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CallTX} | {error, Reason}, Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(), CallTX :: binary(),
Reason :: term(). Reason :: term().
@ -1258,10 +1227,7 @@ contract_call(CallerID, AACI, ConID, Fun, Args) ->
AACI :: aaci() | {aaci, Label :: term()}, AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(), ConID :: unicode:chardata(),
Fun :: string(), Fun :: string(),
Args :: [string()] Args :: [string()] | {erlang, [term()]},
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CallTX} | {error, Reason}, Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(), CallTX :: binary(),
Reason :: term(). Reason :: term().
@ -1299,10 +1265,7 @@ contract_call(CallerID, Gas, AACI, ConID, Fun, Args) ->
AACI :: aaci() | {aaci, Label :: term()}, AACI :: aaci() | {aaci, Label :: term()},
ConID :: unicode:chardata(), ConID :: unicode:chardata(),
Fun :: string(), Fun :: string(),
Args :: [string()] Args :: [string()] | {erlang, [term()]},
| {erlang, [term()]}
| {fate, [term()]}
| {sophia, [string()]},
Result :: {ok, CallTX} | {error, Reason}, Result :: {ok, CallTX} | {error, Reason},
CallTX :: binary(), CallTX :: binary(),
Reason :: term(). Reason :: term().
@ -1540,7 +1503,7 @@ min_gas_price() ->
%% This function always returns 200,000 in the current version. %% This function always returns 200,000 in the current version.
min_gas() -> min_gas() ->
200_000. 200000.
encode_call_data({aaci, _ContractName, FunDefs, _TypeDefs}, Fun, Args) -> encode_call_data({aaci, _ContractName, FunDefs, _TypeDefs}, Fun, Args) ->
@ -1554,22 +1517,16 @@ encode_call_data({aaci, Label}, Fun, Args) ->
error -> {error, aaci_not_found} error -> {error, aaci_not_found}
end. end.
encode_call_data2(ArgDef, Fun, {sophia, Args}) ->
case convert(ArgDef, Args) of
{ok, Converted} -> gmb_fate_abi:create_calldata(Fun, Converted);
Errors -> Errors
end;
encode_call_data2(ArgDef, Fun, {erlang, Args}) -> encode_call_data2(ArgDef, Fun, {erlang, Args}) ->
case hz_aaci:erlang_args_to_fate(ArgDef, Args) of case hz_aaci:erlang_args_to_fate(ArgDef, Args) of
{ok, Coerced} -> gmb_fate_abi:create_calldata(Fun, Coerced); {ok, Coerced} -> gmb_fate_abi:create_calldata(Fun, Coerced);
Errors -> Errors Errors -> Errors
end; end;
encode_call_data2(_, Fun, {fate, Args}) -> encode_call_data2(ArgDef, Fun, SophiaArgs) ->
% TODO: This should probably be moved back closer to the initiating call. case convert(ArgDef, SophiaArgs) of
% 2026-02-13: Craig {ok, Args} -> gmb_fate_abi:create_calldata(Fun, Args);
gmb_fate_abi:create_calldata(Fun, Args); Errors -> Errors
encode_call_data2(ArgDef, Fun, Args) -> end.
encode_call_data2(ArgDef, Fun, {sophia, Args}).
convert(Defs, Args) -> convert(Defs, Args, 1, [], []). convert(Defs, Args) -> convert(Defs, Args, 1, [], []).