Handle invalid calls slightly better
This commit is contained in:
+17
-16
@@ -226,32 +226,32 @@ call_param_sizer(Frame, J) ->
|
|||||||
GridSz = wxFlexGridSizer:new(2, 4, 4),
|
GridSz = wxFlexGridSizer:new(2, 4, 4),
|
||||||
ok = wxFlexGridSizer:setFlexibleDirection(GridSz, ?wxHORIZONTAL),
|
ok = wxFlexGridSizer:setFlexibleDirection(GridSz, ?wxHORIZONTAL),
|
||||||
ok = wxFlexGridSizer:addGrowableCol(GridSz, 1),
|
ok = wxFlexGridSizer:addGrowableCol(GridSz, 1),
|
||||||
TTL_L = wxStaticText:new(ParamBox, ?wxID_ANY, "TTL"),
|
Amount_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Amount")),
|
||||||
TTL_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
Amount_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
||||||
ok = wxTextCtrl:setValue(TTL_T, integer_to_list(DefTTL)),
|
ok = wxTextCtrl:setValue(Amount_T, integer_to_list(DefAmount)),
|
||||||
Gas_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas")),
|
Gas_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas")),
|
||||||
Gas_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
Gas_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
||||||
ok = wxTextCtrl:setValue(Gas_T, integer_to_list(DefGas)),
|
ok = wxTextCtrl:setValue(Gas_T, integer_to_list(DefGas)),
|
||||||
GasP_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas Price")),
|
GasP_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("Gas Price")),
|
||||||
GasP_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
GasP_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
||||||
ok = wxTextCtrl:setValue(GasP_T, integer_to_list(DefGasP)),
|
ok = wxTextCtrl:setValue(GasP_T, integer_to_list(DefGasP)),
|
||||||
Amount_L = wxStaticText:new(ParamBox, ?wxID_ANY, J("TX Amount")),
|
TTL_L = wxStaticText:new(ParamBox, ?wxID_ANY, "TTL"),
|
||||||
Amount_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
TTL_T = wxTextCtrl:new(ParamBox, ?wxID_ANY),
|
||||||
ok = wxTextCtrl:setValue(Amount_T, integer_to_list(DefAmount)),
|
ok = wxTextCtrl:setValue(TTL_T, integer_to_list(DefTTL)),
|
||||||
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags({base, 5})),
|
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags({base, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, TTL_T, zxw:flags({wide, 5})),
|
_ = wxFlexGridSizer:add(GridSz, Amount_T, zxw:flags({wide, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, Gas_L, zxw:flags({base, 5})),
|
_ = wxFlexGridSizer:add(GridSz, Gas_L, zxw:flags({base, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, Gas_T, zxw:flags({wide, 5})),
|
_ = wxFlexGridSizer:add(GridSz, Gas_T, zxw:flags({wide, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, GasP_L, zxw:flags({base, 5})),
|
_ = wxFlexGridSizer:add(GridSz, GasP_L, zxw:flags({base, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, GasP_T, zxw:flags({wide, 5})),
|
_ = wxFlexGridSizer:add(GridSz, GasP_T, zxw:flags({wide, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags({base, 5})),
|
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags({base, 5})),
|
||||||
_ = wxFlexGridSizer:add(GridSz, Amount_T, zxw:flags({wide, 5})),
|
_ = wxFlexGridSizer:add(GridSz, TTL_T, zxw:flags({wide, 5})),
|
||||||
_ = wxSizer:add(ParamSz, GridSz, zxw:flags(wide)),
|
_ = wxSizer:add(ParamSz, GridSz, zxw:flags(wide)),
|
||||||
Params =
|
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") , fun gt_0/1, Gas_T},
|
||||||
{J("Gas Price"), fun gt_0/1, GasP_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}.
|
{ParamSz, Params}.
|
||||||
|
|
||||||
|
|
||||||
@@ -349,13 +349,13 @@ prep_call3(State, ChainID, Params) ->
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
prep_call4(State = #s{fundef = {"init", init}, build = Build}, ChainID, Params, Args) ->
|
prep_call4(State = #s{fundef = {"init", init}, build = Build}, ChainID, Params, Args) ->
|
||||||
{CallerID, Nonce, TTL, Gas, GP, Amount} = Params,
|
{CallerID, Nonce, Gas, GP, Amount, TTL} = Params,
|
||||||
case hz:contract_create_built(CallerID, Nonce, Amount, TTL, Gas, GP, Build, Args) of
|
case hz:contract_create_built(CallerID, Nonce, Gas, GP, Amount, TTL, Build, Args) of
|
||||||
{ok, CreateTX} -> deploy(State, ChainID, CallerID, CreateTX);
|
{ok, CreateTX} -> deploy(State, ChainID, CallerID, CreateTX);
|
||||||
Error -> handle_troubling(State, Error)
|
Error -> handle_troubling(State, Error)
|
||||||
end;
|
end;
|
||||||
prep_call4(State = #s{fundef = {Name, Ilk}, con_id = ConID, build = Build}, ChainID, Params, Args) ->
|
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),
|
AACI = maps:get(aaci, Build),
|
||||||
case hz:contract_call(CallerID, Nonce, Gas, GP, Amount, TTL, AACI, ConID, Name, Args) of
|
case hz:contract_call(CallerID, Nonce, Gas, GP, Amount, TTL, AACI, ConID, Name, Args) of
|
||||||
{ok, UnsignedTX} ->
|
{ok, UnsignedTX} ->
|
||||||
@@ -377,7 +377,7 @@ params(State = #s{kp = #w{wx = KeyPicker}}) ->
|
|||||||
|
|
||||||
params2(#s{params = Params}, PK, Nonce) ->
|
params2(#s{params = Params}, PK, Nonce) ->
|
||||||
case lists:foldl(fun extract/2, {ok, []}, Params) of
|
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
|
Error -> Error
|
||||||
end.
|
end.
|
||||||
|
|
||||||
@@ -426,6 +426,7 @@ do_call(State, ChainID, CallerID, UnsignedTX) ->
|
|||||||
do_call2(State = #s{action = #w{wx = ActionB}}, SignedTX) ->
|
do_call2(State = #s{action = #w{wx = ActionB}}, SignedTX) ->
|
||||||
_ = wxButton:disable(ActionB),
|
_ = wxButton:disable(ActionB),
|
||||||
case hz:post_tx(SignedTX) of
|
case hz:post_tx(SignedTX) of
|
||||||
|
{ok, #{"reason" := Reason}} -> handle_troubling(State#s{status = rejected}, Reason);
|
||||||
{ok, Data} -> check_tx(State#s{tx_data = Data, status = submitted});
|
{ok, Data} -> check_tx(State#s{tx_data = Data, status = submitted});
|
||||||
Error -> handle_troubling(State, Error)
|
Error -> handle_troubling(State, Error)
|
||||||
end.
|
end.
|
||||||
|
|||||||
Reference in New Issue
Block a user