From 6f9555a7c9f09d4655f2bb07c51daaeae6299b0c Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Thu, 7 May 2026 19:53:10 +0900 Subject: [PATCH] Handle invalid calls slightly better --- src/gd_v_call.erl | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/gd_v_call.erl b/src/gd_v_call.erl index 11d19a2..5b2a306 100644 --- a/src/gd_v_call.erl +++ b/src/gd_v_call.erl @@ -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.