Make Contract Calls Great Again #35

Merged
zxq9 merged 37 commits from iface3 into master 2026-05-10 15:39:25 +09:00
Showing only changes of commit 6f9555a7c9 - Show all commits
+19 -18
View File
@@ -226,32 +226,32 @@ call_param_sizer(Frame, J) ->
GridSz = wxFlexGridSizer:new(2, 4, 4),
ok = wxFlexGridSizer:setFlexibleDirection(GridSz, ?wxHORIZONTAL),
ok = wxFlexGridSizer:addGrowableCol(GridSz, 1),
TTL_L = wxStaticText:new(ParamBox, ?wxID_ANY, "TTL"),
TTL_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(TTL_T, integer_to_list(DefTTL)),
Amount_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Amount")),
Amount_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(Amount_T, integer_to_list(DefAmount)),
Gas_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas")),
Gas_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(Gas_T, integer_to_list(DefGas)),
GasP_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas Price")),
GasP_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(GasP_T, integer_to_list(DefGasP)),
Amount_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("TX Amount")),
Amount_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(Amount_T, integer_to_list(DefAmount)),
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, TTL_T, zxw:flags({wide, 5})),
TTL_L = wxStaticText:new(ParamBox, ?wxID_ANY, "TTL"),
TTL_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
ok = wxTextCtrl:setValue(TTL_T, integer_to_list(DefTTL)),
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, Amount_T, zxw:flags({wide, 5})),
_ = wxFlexGridSizer:add(GridSz, Gas_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, Gas_T, zxw:flags({wide, 5})),
_ = wxFlexGridSizer:add(GridSz, GasP_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, GasP_T, zxw:flags({wide, 5})),
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, Amount_T, zxw:flags({wide, 5})),
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags({base, 5})),
_ = wxFlexGridSizer:add(GridSz, TTL_T, zxw:flags({wide, 5})),
_ = wxSizer:add(ParamSz, GridSz, zxw:flags(wide)),
Params =
[{ "TTL", fun gte_0/1, TTL_T},
[{J("TX Amount"), fun gte_0/1, Amount_T} ,
{J("Gas") , fun gt_0/1, Gas_T},
{J("Gas Price"), fun gt_0/1, GasP_T},
{J("TX Amount"), fun gte_0/1, Amount_T}],
{ "TTL", fun gte_0/1, TTL_T}],
{ParamSz, Params}.
@@ -349,13 +349,13 @@ prep_call3(State, ChainID, Params) ->
end.
prep_call4(State = #s{fundef = {"init", init}, build = Build}, ChainID, Params, Args) ->
{CallerID, Nonce, TTL, Gas, GP, Amount} = Params,
case hz:contract_create_built(CallerID, Nonce, Amount, TTL, Gas, GP, Build, Args) of
{CallerID, Nonce, Gas, GP, Amount, TTL} = Params,
case hz:contract_create_built(CallerID, Nonce, Gas, GP, Amount, TTL, Build, Args) of
{ok, CreateTX} -> deploy(State, ChainID, CallerID, CreateTX);
Error -> handle_troubling(State, Error)
end;
prep_call4(State = #s{fundef = {Name, Ilk}, con_id = ConID, build = Build}, ChainID, Params, Args) ->
{CallerID, Nonce, TTL, Gas, GP, Amount} = Params,
{CallerID, Nonce, Gas, GP, Amount, TTL} = Params,
AACI = maps:get(aaci, Build),
case hz:contract_call(CallerID, Nonce, Gas, GP, Amount, TTL, AACI, ConID, Name, Args) of
{ok, UnsignedTX} ->
@@ -377,7 +377,7 @@ params(State = #s{kp = #w{wx = KeyPicker}}) ->
params2(#s{params = Params}, PK, Nonce) ->
case lists:foldl(fun extract/2, {ok, []}, Params) of
{ok, [Amount, GP, Gas, TTL]} -> {ok, {PK, Nonce, TTL, Gas, GP, Amount}};
{ok, [TTL, GP, Gas, Amount]} -> {ok, {PK, Nonce, Gas, GP, Amount, TTL}};
Error -> Error
end.
@@ -426,8 +426,9 @@ do_call(State, ChainID, CallerID, UnsignedTX) ->
do_call2(State = #s{action = #w{wx = ActionB}}, SignedTX) ->
_ = wxButton:disable(ActionB),
case hz:post_tx(SignedTX) of
{ok, Data} -> check_tx(State#s{tx_data = Data, status = submitted});
Error -> handle_troubling(State, Error)
{ok, #{"reason" := Reason}} -> handle_troubling(State#s{status = rejected}, Reason);
{ok, Data} -> check_tx(State#s{tx_data = Data, status = submitted});
Error -> handle_troubling(State, Error)
end.