Add deployment parameters; update deps
This commit is contained in:
parent
7b95987fe2
commit
6e05f3df41
@ -3,7 +3,7 @@
|
|||||||
{registered,[]},
|
{registered,[]},
|
||||||
{included_applications,[]},
|
{included_applications,[]},
|
||||||
{applications,[stdlib,kernel,sasl,ssl]},
|
{applications,[stdlib,kernel,sasl,ssl]},
|
||||||
{vsn,"0.4.1"},
|
{vsn,"0.5.0"},
|
||||||
{modules,[clutch,gmc_con,gmc_grids,gmc_gui,gmc_jt,
|
{modules,[clutch,gmc_con,gmc_grids,gmc_gui,gmc_jt,
|
||||||
gmc_key_master,gmc_sup,gmc_v,gmc_v_devman,
|
gmc_key_master,gmc_sup,gmc_v,gmc_v_devman,
|
||||||
gmc_v_netman,gmc_v_wallman]},
|
gmc_v_netman,gmc_v_wallman]},
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(clutch).
|
-module(clutch).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-behavior(application).
|
-behavior(application).
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(gmc_con).
|
-module(gmc_con).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
@ -187,16 +187,21 @@ dry_run(ConID, TX) ->
|
|||||||
gen_server:cast(?MODULE, {dry_run, ConID, TX}).
|
gen_server:cast(?MODULE, {dry_run, ConID, TX}).
|
||||||
|
|
||||||
|
|
||||||
-spec deploy(CreatorID, Build, InitArgs) -> Result
|
-spec deploy(Build, Params, InitArgs) -> Result
|
||||||
when CreatorID :: clutch:id(),
|
when Build :: map(),
|
||||||
Build :: map(),
|
Params :: {PK :: clutch:id(),
|
||||||
|
Nonce :: non_neg_integer(),
|
||||||
|
TTL :: pos_integer(),
|
||||||
|
GasP :: pos_integer(),
|
||||||
|
Gas :: pos_integer(),
|
||||||
|
Amount :: pos_integer()},
|
||||||
InitArgs :: [Arg :: string()],
|
InitArgs :: [Arg :: string()],
|
||||||
Result :: {ok, TX_Hash :: clutch:id()}
|
Result :: {ok, TX_Hash :: clutch:id()}
|
||||||
| {error, Reason},
|
| {error, Reason},
|
||||||
Reason :: term(). % FIXME
|
Reason :: term(). % FIXME
|
||||||
|
|
||||||
deploy(CreatorID, Build, InitArgs) ->
|
deploy(Build, Params, InitArgs) ->
|
||||||
gen_server:cast(?MODULE, {deploy, CreatorID, Build, InitArgs}).
|
gen_server:cast(?MODULE, {deploy, Build, Params, InitArgs}).
|
||||||
|
|
||||||
|
|
||||||
-spec make_key(Type, Size, Name, Seed, Encoding, Transform) -> ok
|
-spec make_key(Type, Size, Name, Seed, Encoding, Transform) -> ok
|
||||||
@ -416,8 +421,8 @@ handle_cast({sign_call, ConID, PubKey, TX}, State) ->
|
|||||||
handle_cast({dry_run, ConID, TX}, State) ->
|
handle_cast({dry_run, ConID, TX}, State) ->
|
||||||
ok = do_dry_run(ConID, TX),
|
ok = do_dry_run(ConID, TX),
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
handle_cast({deploy, CreatorID, Build, InitArgs}, State) ->
|
handle_cast({deploy, Build, Params, InitArgs}, State) ->
|
||||||
ok = do_deploy(CreatorID, Build, InitArgs, State),
|
ok = do_deploy(Build, Params, InitArgs, State),
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
handle_cast({make_key, Name, Seed, Encoding, Transform}, State) ->
|
handle_cast({make_key, Name, Seed, Encoding, Transform}, State) ->
|
||||||
NewState = do_make_key(Name, Seed, Encoding, Transform, State),
|
NewState = do_make_key(Name, Seed, Encoding, Transform, State),
|
||||||
@ -783,7 +788,7 @@ do_dry_run(ConID, TX) ->
|
|||||||
case hz:dry_run(TX) of
|
case hz:dry_run(TX) of
|
||||||
{ok, Result} -> gmc_v_devman:dryrun_result(ConID, Result);
|
{ok, Result} -> gmc_v_devman:dryrun_result(ConID, Result);
|
||||||
Other -> gmc_v_devmam:trouble({error, ConID, Other})
|
Other -> gmc_v_devmam:trouble({error, ConID, Other})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
do_spend(KeyID, TX, State = #s{wallet = #wallet{keys = Keys}}) ->
|
do_spend(KeyID, TX, State = #s{wallet = #wallet{keys = Keys}}) ->
|
||||||
@ -978,12 +983,14 @@ do_mnemonic(ID, #s{wallet = #wallet{keys = Keys}}) ->
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
do_deploy(CreatorID,
|
do_deploy(Build,
|
||||||
Build,
|
{PubKey, Nonce, TTL, GasPrice, Gas, Amount},
|
||||||
InitArgs,
|
InitArgs,
|
||||||
#s{wallet = #wallet{keys = Keys, chain_id = ChainID}}) ->
|
#s{wallet = #wallet{keys = Keys, chain_id = ChainID}}) ->
|
||||||
#key{pair = #{secret := SecKey}} = lists:keyfind(CreatorID, #key.id, Keys),
|
#key{pair = #{secret := SecKey}} = lists:keyfind(PubKey, #key.id, Keys),
|
||||||
case hz:contract_create_built(CreatorID, Build, InitArgs) of
|
case hz:contract_create_built(PubKey,
|
||||||
|
Nonce, Amount, TTL, Gas, GasPrice,
|
||||||
|
Build, InitArgs) of
|
||||||
{ok, CreateTX} -> do_deploy2(SecKey, CreateTX, ChainID);
|
{ok, CreateTX} -> do_deploy2(SecKey, CreateTX, ChainID);
|
||||||
Error -> gmc_v_devman:trouble(Error)
|
Error -> gmc_v_devman:trouble(Error)
|
||||||
end.
|
end.
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(gmc_grids).
|
-module(gmc_grids).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(gmc_gui).
|
-module(gmc_gui).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
%%% translation library is retained).
|
%%% translation library is retained).
|
||||||
|
|
||||||
-module(gmc_jt).
|
-module(gmc_jt).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-export([read_translations/1, j/2, oneshot_j/2]).
|
-export([read_translations/1, j/2, oneshot_j/2]).
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(gmc_key_master).
|
-module(gmc_key_master).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
|
|
||||||
|
|
||||||
-export([make_key/2, encode/1, decode/1]).
|
-export([make_key/2, encode/1, decode/1]).
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(gmc_sup).
|
-module(gmc_sup).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-behaviour(supervisor).
|
-behaviour(supervisor).
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-module(gmc_v).
|
-module(gmc_v).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-module(gmc_v_devman).
|
-module(gmc_v_devman).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
@ -312,11 +312,6 @@ clicked2(State, Contract, Name) ->
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
clicked3(State = #s{frame = Frame, j = J}, Contract, Name, Selected, Keys) ->
|
clicked3(State = #s{frame = Frame, j = J}, Contract, Name, Selected, Keys) ->
|
||||||
{ok, Height} = hz:top_height(),
|
|
||||||
DefTTL = Height + 10000,
|
|
||||||
DefGasP = hz:min_gas_price(),
|
|
||||||
DefGas = 5000000,
|
|
||||||
DefAmount = 0,
|
|
||||||
Label =
|
Label =
|
||||||
case element(2, Name) of
|
case element(2, Name) of
|
||||||
call -> "Contract Call";
|
call -> "Contract Call";
|
||||||
@ -328,31 +323,7 @@ clicked3(State = #s{frame = Frame, j = J}, Contract, Name, Selected, Keys) ->
|
|||||||
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),
|
||||||
ParamSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("TX Parameters")}]),
|
{ParamSz, TTL_Tx, GasP_Tx, Gas_Tx, Amount_Tx} = call_param_sizer(Dialog, J),
|
||||||
GridSz = wxFlexGridSizer:new(2, 4, 4),
|
|
||||||
ok = wxFlexGridSizer:setFlexibleDirection(GridSz, ?wxHORIZONTAL),
|
|
||||||
ok = wxFlexGridSizer:addGrowableCol(GridSz, 1),
|
|
||||||
TTL_L = wxStaticText:new(Dialog, ?wxID_ANY, "TTL"),
|
|
||||||
TTL_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
|
||||||
ok = wxTextCtrl:setValue(TTL_Tx, integer_to_list(DefTTL)),
|
|
||||||
GasP_L = wxStaticText:new(Dialog, ?wxID_ANY, J("Gas Price")),
|
|
||||||
GasP_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
|
||||||
ok = wxTextCtrl:setValue(GasP_Tx, integer_to_list(DefGasP)),
|
|
||||||
Gas_L = wxStaticText:new(Dialog, ?wxID_ANY, J("Gas")),
|
|
||||||
Gas_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
|
||||||
ok = wxTextCtrl:setValue(Gas_Tx, integer_to_list(DefGas)),
|
|
||||||
Amount_L = wxStaticText:new(Dialog, ?wxID_ANY, J("TX Amount")),
|
|
||||||
Amount_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
|
||||||
ok = wxTextCtrl:setValue(Amount_Tx, integer_to_list(DefAmount)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags(base)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, TTL_Tx, zxw:flags(wide)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, GasP_L, zxw:flags(base)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, GasP_Tx, zxw:flags(wide)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, Gas_L, zxw:flags(base)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, Gas_Tx, zxw:flags(wide)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags(base)),
|
|
||||||
_ = wxFlexGridSizer:add(GridSz, Amount_Tx, zxw:flags(wide)),
|
|
||||||
_ = wxSizer:add(ParamSz, GridSz, zxw:flags(wide)),
|
|
||||||
ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
|
ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
|
||||||
Affirm = wxButton:new(Dialog, ?wxID_OK),
|
Affirm = wxButton:new(Dialog, ?wxID_OK),
|
||||||
Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
|
Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
|
||||||
@ -392,6 +363,39 @@ clicked3(State = #s{frame = Frame, j = J}, Contract, Name, Selected, Keys) ->
|
|||||||
Error -> handle_troubling(State, Error)
|
Error -> handle_troubling(State, Error)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
call_param_sizer(Dialog, J) ->
|
||||||
|
{ok, Height} = hz:top_height(),
|
||||||
|
DefTTL = Height + 10000,
|
||||||
|
DefGasP = hz:min_gas_price(),
|
||||||
|
DefGas = 5000000,
|
||||||
|
DefAmount = 0,
|
||||||
|
ParamSz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("TX Parameters")}]),
|
||||||
|
GridSz = wxFlexGridSizer:new(2, 4, 4),
|
||||||
|
ok = wxFlexGridSizer:setFlexibleDirection(GridSz, ?wxHORIZONTAL),
|
||||||
|
ok = wxFlexGridSizer:addGrowableCol(GridSz, 1),
|
||||||
|
TTL_L = wxStaticText:new(Dialog, ?wxID_ANY, "TTL"),
|
||||||
|
TTL_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
||||||
|
ok = wxTextCtrl:setValue(TTL_Tx, integer_to_list(DefTTL)),
|
||||||
|
GasP_L = wxStaticText:new(Dialog, ?wxID_ANY, J("Gas Price")),
|
||||||
|
GasP_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
||||||
|
ok = wxTextCtrl:setValue(GasP_Tx, integer_to_list(DefGasP)),
|
||||||
|
Gas_L = wxStaticText:new(Dialog, ?wxID_ANY, J("Gas")),
|
||||||
|
Gas_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
||||||
|
ok = wxTextCtrl:setValue(Gas_Tx, integer_to_list(DefGas)),
|
||||||
|
Amount_L = wxStaticText:new(Dialog, ?wxID_ANY, J("TX Amount")),
|
||||||
|
Amount_Tx = wxTextCtrl:new(Dialog, ?wxID_ANY),
|
||||||
|
ok = wxTextCtrl:setValue(Amount_Tx, integer_to_list(DefAmount)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, TTL_L, zxw:flags(base)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, TTL_Tx, zxw:flags(wide)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, GasP_L, zxw:flags(base)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, GasP_Tx, zxw:flags(wide)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, Gas_L, zxw:flags(base)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, Gas_Tx, zxw:flags(wide)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, Amount_L, zxw:flags(base)),
|
||||||
|
_ = wxFlexGridSizer:add(GridSz, Amount_Tx, zxw:flags(wide)),
|
||||||
|
_ = wxSizer:add(ParamSz, GridSz, zxw:flags(wide)),
|
||||||
|
{ParamSz, TTL_Tx, GasP_Tx, Gas_Tx, Amount_Tx}.
|
||||||
|
|
||||||
call_params(Controls) ->
|
call_params(Controls) ->
|
||||||
call_params(Controls, []).
|
call_params(Controls, []).
|
||||||
|
|
||||||
@ -613,14 +617,16 @@ deploy4(State = #s{frame = Frame, j = J}, Build = #{aci := ACI}, Selected, Keys)
|
|||||||
Dialog = wxDialog:new(Frame, ?wxID_ANY, J("Deploy Contract")),
|
Dialog = wxDialog:new(Frame, ?wxID_ANY, J("Deploy Contract")),
|
||||||
Sizer = wxBoxSizer:new(?wxVERTICAL),
|
Sizer = wxBoxSizer:new(?wxVERTICAL),
|
||||||
ScrollWin = wxScrolledWindow:new(Dialog),
|
ScrollWin = wxScrolledWindow:new(Dialog),
|
||||||
FunName = unicode:characters_to_list(["init/", integer_to_list(length(As))]),
|
ScrollSz = wxBoxSizer:new(?wxVERTICAL),
|
||||||
FunSizer = wxStaticBoxSizer:new(?wxVERTICAL, ScrollWin, [{label, FunName}]),
|
ok = wxScrolledWindow:setSizerAndFit(ScrollWin, ScrollSz),
|
||||||
ok = wxScrolledWindow:setSizerAndFit(ScrollWin, FunSizer),
|
|
||||||
ok = wxScrolledWindow:setScrollRate(ScrollWin, 5, 5),
|
ok = wxScrolledWindow:setScrollRate(ScrollWin, 5, 5),
|
||||||
KeySz = wxStaticBoxSizer:new(?wxVERTICAL, Dialog, [{label, J("Signature Key")}]),
|
FunName = unicode:characters_to_list(["init/", integer_to_list(length(As))]),
|
||||||
KeyPicker = wxChoice:new(Dialog, ?wxID_ANY, [{choices, Keys}]),
|
FunSz = wxStaticBoxSizer:new(?wxVERTICAL, ScrollWin, [{label, FunName}]),
|
||||||
|
KeySz = wxStaticBoxSizer:new(?wxVERTICAL, ScrollWin, [{label, J("Signature Key")}]),
|
||||||
|
KeyPicker = wxChoice:new(ScrollWin, ?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),
|
||||||
|
{ParamSz, TTL_Tx, GasP_Tx, Gas_Tx, Amount_Tx} = call_param_sizer(ScrollWin, J),
|
||||||
ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
|
ButtSz = wxBoxSizer:new(?wxHORIZONTAL),
|
||||||
Affirm = wxButton:new(Dialog, ?wxID_OK),
|
Affirm = wxButton:new(Dialog, ?wxID_OK),
|
||||||
Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
|
Cancel = wxButton:new(Dialog, ?wxID_CANCEL),
|
||||||
@ -647,33 +653,48 @@ deploy4(State = #s{frame = Frame, j = J}, Build = #{aci := ACI}, Selected, Keys)
|
|||||||
{ANT, TCT, Type}
|
{ANT, TCT, Type}
|
||||||
end,
|
end,
|
||||||
ArgFields = lists:map(MakeArgField, As),
|
ArgFields = lists:map(MakeArgField, As),
|
||||||
_ = wxStaticBoxSizer:add(FunSizer, GridSz, zxw:flags(wide)),
|
_ = wxStaticBoxSizer:add(FunSz, GridSz, zxw:flags(wide)),
|
||||||
|
_ = wxStaticBoxSizer:add(ScrollSz, FunSz, [{proportion, 1}, {flag, ?wxEXPAND}]),
|
||||||
|
_ = wxStaticBoxSizer:add(ScrollSz, KeySz, [{proportion, 0}, {flag, ?wxEXPAND}]),
|
||||||
|
_ = wxStaticBoxSizer:add(ScrollSz, ParamSz, [{proportion, 0}, {flag, ?wxEXPAND}]),
|
||||||
_ = wxSizer:add(Sizer, ScrollWin, [{proportion, 5}, {flag, ?wxEXPAND}]),
|
_ = wxSizer:add(Sizer, ScrollWin, [{proportion, 5}, {flag, ?wxEXPAND}]),
|
||||||
_ = wxSizer:add(Sizer, KeySz, [{proportion, 0}, {flag, ?wxEXPAND}]),
|
|
||||||
_ = wxSizer:add(Sizer, ButtSz, [{proportion, 1}, {flag, ?wxEXPAND}]),
|
_ = wxSizer:add(Sizer, ButtSz, [{proportion, 1}, {flag, ?wxEXPAND}]),
|
||||||
ok = wxDialog:setSizer(Dialog, Sizer),
|
ok = wxDialog:setSizer(Dialog, Sizer),
|
||||||
ok = wxBoxSizer:layout(Sizer),
|
ok = wxBoxSizer:layout(Sizer),
|
||||||
ok = wxDialog:setSize(Dialog, {500, 300}),
|
ok = wxDialog:setSize(Dialog, {500, 500}),
|
||||||
ok = wxDialog:center(Dialog),
|
ok = wxDialog:center(Dialog),
|
||||||
Outcome =
|
Outcome =
|
||||||
case wxDialog:showModal(Dialog) of
|
case wxDialog:showModal(Dialog) of
|
||||||
?wxID_OK ->
|
?wxID_OK ->
|
||||||
ID = wxChoice:getString(KeyPicker, wxChoice:getSelection(KeyPicker)),
|
ID = wxChoice:getString(KeyPicker, wxChoice:getSelection(KeyPicker)),
|
||||||
BinID = unicode:characters_to_binary(ID),
|
PK = unicode:characters_to_binary(ID),
|
||||||
Inputs = lists:map(fun get_arg/1, ArgFields),
|
InitArgs = lists:map(fun get_arg/1, ArgFields),
|
||||||
{ok, BinID, Inputs};
|
Controls =
|
||||||
|
[{"TTL", TTL_Tx},
|
||||||
|
{"Gas Price", GasP_Tx},
|
||||||
|
{"Gas", Gas_Tx},
|
||||||
|
{"Amount", Amount_Tx}],
|
||||||
|
case call_params(Controls) of
|
||||||
|
{ok, [TTL, GasP, Gas, Amount]} ->
|
||||||
|
{ok, Nonce} = hz:next_nonce(PK),
|
||||||
|
DeployParams = {PK, Nonce, TTL, GasP, Gas, Amount},
|
||||||
|
{ok, DeployParams, InitArgs};
|
||||||
|
E ->
|
||||||
|
E
|
||||||
|
end;
|
||||||
?wxID_CANCEL ->
|
?wxID_CANCEL ->
|
||||||
cancel
|
cancel
|
||||||
end,
|
end,
|
||||||
ok = wxDialog:destroy(Dialog),
|
ok = wxDialog:destroy(Dialog),
|
||||||
case Outcome of
|
case Outcome of
|
||||||
{ok, SigID, Args} -> deploy5(State, SigID, Build, Args);
|
{ok, Params, Args} -> deploy5(State, Build, Params, Args);
|
||||||
cancel -> State
|
cancel -> State;
|
||||||
|
Error -> handle_troubling(State, Error)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
deploy5(State, SigID, Build, Args) ->
|
deploy5(State, Build, Params, Args) ->
|
||||||
tell(info, "Build: ~p", [Build]),
|
tell(info, "Build: ~p", [Build]),
|
||||||
ok = gmc_con:deploy(SigID, Build, Args),
|
ok = gmc_con:deploy(Build, Params, Args),
|
||||||
State.
|
State.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-module(gmc_v_netman).
|
-module(gmc_v_netman).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-module(gmc_v_wallman).
|
-module(gmc_v_wallman).
|
||||||
-vsn("0.4.1").
|
-vsn("0.5.0").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("QPQ AG <info@qpq.swiss>").
|
-copyright("QPQ AG <info@qpq.swiss>").
|
||||||
-license("GPL-3.0-or-later").
|
-license("GPL-3.0-or-later").
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
{type,gui}.
|
{type,gui}.
|
||||||
{modules,[]}.
|
{modules,[]}.
|
||||||
{prefix,"gmc"}.
|
{prefix,"gmc"}.
|
||||||
{desc,"A desktop client for the Gajumaru network of blockchain networks"}.
|
|
||||||
{author,"Craig Everett"}.
|
{author,"Craig Everett"}.
|
||||||
{package_id,{"otpr","clutch",{0,4,1}}}.
|
{desc,"A desktop client for the Gajumaru network of blockchain networks"}.
|
||||||
{deps,[{"otpr","gmserialization",{0,1,3}},
|
{package_id,{"otpr","clutch",{0,5,0}}}.
|
||||||
|
{deps,[{"otpr","hakuzaru",{0,4,0}},
|
||||||
|
{"otpr","gmserialization",{0,1,3}},
|
||||||
{"otpr","sophia",{9,0,0}},
|
{"otpr","sophia",{9,0,0}},
|
||||||
{"otpr","hakuzaru",{0,3,0}},
|
|
||||||
{"otpr","gmbytecode",{3,4,1}},
|
{"otpr","gmbytecode",{3,4,1}},
|
||||||
{"otpr","lom",{1,0,0}},
|
{"otpr","lom",{1,0,0}},
|
||||||
{"otpr","zj",{1,1,0}},
|
{"otpr","zj",{1,1,0}},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user