This commit is contained in:
Craig Everett 2026-01-05 21:06:04 +09:00
parent d2d9ae613e
commit 66f5795c49
2 changed files with 12 additions and 4 deletions

View File

@ -1349,11 +1349,14 @@ do_tic(MS, State = #s{timer = {T, _}}) ->
T = erlang:send_after(MS, self(), tic), T = erlang:send_after(MS, self(), tic),
State#s{timer = {T, MS}}. State#s{timer = {T, MS}}.
handle_tic(State = #s{wallet = #wallet{poas = []}, timer = {T, MS}}) ->
ok = cancel_timer(T),
NewT = erlang:send_after(MS, self(), tic),
State#s{timer = {NewT, MS}};
handle_tic(State = #s{wallet = This = #wallet{poas = POAs, endpoint = Node}, handle_tic(State = #s{wallet = This = #wallet{poas = POAs, endpoint = Node},
timer = {T, MS}, timer = {T, MS},
selected = Selected}) selected = Selected})
when Selected > 0 -> when Selected > 0 ->
NewState = NewState =
case ensure_hz_set(Node) of case ensure_hz_set(Node) of
{ok, ChainID} -> {ok, ChainID} ->

View File

@ -344,6 +344,7 @@ clicked3(State = #s{frame = Frame, j = J}, Contract, Name = {FunName, FunType},
KeyPicker = wxChoice:new(Dialog, ?wxID_ANY, [{choices, Keys}]), KeyPicker = wxChoice:new(Dialog, ?wxID_ANY, [{choices, Keys}]),
_ = wxStaticBoxSizer:add(KeySz, KeyPicker, zxw:flags(wide)), _ = wxStaticBoxSizer:add(KeySz, KeyPicker, zxw:flags(wide)),
ok = wxChoice:setSelection(KeyPicker, Selected - 1), ok = wxChoice:setSelection(KeyPicker, Selected - 1),
ArgSz = call_arg_sizer(Dialog, J, FunSpec),
{ParamSz, TTL_Tx, GasP_Tx, Gas_Tx, Amount_Tx} = call_param_sizer(Dialog, J), {ParamSz, TTL_Tx, GasP_Tx, Gas_Tx, Amount_Tx} = call_param_sizer(Dialog, J),
ButtSz = wxBoxSizer:new(?wxHORIZONTAL), ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
Affirm = wxButton:new(Dialog, ?wxID_OK), Affirm = wxButton:new(Dialog, ?wxID_OK),
@ -351,6 +352,7 @@ clicked3(State = #s{frame = Frame, j = J}, Contract, Name = {FunName, FunType},
_ = wxBoxSizer:add(ButtSz, Affirm, zxw:flags(wide)), _ = wxBoxSizer:add(ButtSz, Affirm, zxw:flags(wide)),
_ = wxBoxSizer:add(ButtSz, Cancel, zxw:flags(wide)), _ = wxBoxSizer:add(ButtSz, Cancel, zxw:flags(wide)),
_ = wxSizer:add(Sizer, KeySz, zxw:flags(wide)), _ = wxSizer:add(Sizer, KeySz, zxw:flags(wide)),
_ = wxSizer:add(Sizer, ArgSz, zxw:flags(wide)),
_ = wxSizer:add(Sizer, ParamSz, zxw:flags(wide)), _ = wxSizer:add(Sizer, ParamSz, zxw:flags(wide)),
_ = wxSizer:add(Sizer, ButtSz, zxw:flags(wide)), _ = wxSizer:add(Sizer, ButtSz, zxw:flags(wide)),
ok = wxDialog:setSizer(Dialog, Sizer), ok = wxDialog:setSizer(Dialog, Sizer),
@ -384,6 +386,8 @@ clicked3(State = #s{frame = Frame, j = J}, Contract, Name = {FunName, FunType},
Error -> handle_troubling(State, Error) Error -> handle_troubling(State, Error)
end. end.
call_arg_sizer(Dialog, J, FunSpec) ->
call_param_sizer(Dialog, J) -> call_param_sizer(Dialog, J) ->
{ok, Height} = hz:top_height(), {ok, Height} = hz:top_height(),
DefTTL = Height + 10000, DefTTL = Height + 10000,
@ -423,14 +427,15 @@ call_params(Controls) ->
call_params([], A) -> call_params([], A) ->
{ok, lists:reverse(A)}; {ok, lists:reverse(A)};
call_params([{L, C} | T], A) -> call_params([{L, C} | T], A) ->
O = R =
try try
{ok, list_to_integer(wxTextCtrl:getValue(C))} {ok, list_to_integer(wxTextCtrl:getValue(C))}
catch catch
error:badarg -> {error, {L, not_an_integer}} error:badarg -> {error, {L, not_an_integer}}
end, end,
case O of case R of
{ok, N} -> call_params(T, [N | A]); {ok, N} when N >= 0 -> call_params(T, [N | A]);
{ok, N} when N < 0 -> {error, {L, neg_integer}};
Error -> Error Error -> Error
end. end.