Client: makes contracts non-spendable by default

This commit is contained in:
Milo Davis 2017-10-25 13:58:14 +02:00 committed by Benjamin Canou
parent 2fa77489bc
commit a63ab3b77b
3 changed files with 12 additions and 13 deletions

View File

@ -85,10 +85,10 @@ let source_arg =
Must be a known identity." Must be a known identity."
string_parameter string_parameter
let non_spendable_switch = let spendable_switch =
switch switch
~parameter:"-non-spendable" ~parameter:"-spendable"
~doc:"Set the created contract to be non spendable" ~doc:"Set the created contract to be spendable"
let force_switch = let force_switch =
switch switch

View File

@ -17,7 +17,7 @@ val source_arg: (string option, Client_commands.context) arg
val delegate_arg: (string option, Client_commands.context) arg val delegate_arg: (string option, Client_commands.context) arg
val delegatable_switch: (bool, Client_commands.context) arg val delegatable_switch: (bool, Client_commands.context) arg
val non_spendable_switch: (bool, Client_commands.context) arg val spendable_switch: (bool, Client_commands.context) arg
val max_priority_arg: (int option, Client_commands.context) arg val max_priority_arg: (int option, Client_commands.context) arg
val free_baking_switch: (bool, Client_commands.context) arg val free_baking_switch: (bool, Client_commands.context) arg
val force_switch: (bool, Client_commands.context) arg val force_switch: (bool, Client_commands.context) arg

View File

@ -332,8 +332,7 @@ let commands () =
end ; end ;
command ~group ~desc: "open a new account" command ~group ~desc: "open a new account"
(args5 fee_arg delegate_arg delegatable_switch (args4 fee_arg delegate_arg delegatable_switch force_switch)
force_switch non_spendable_switch)
(prefixes [ "originate" ; "account" ] (prefixes [ "originate" ; "account" ]
@@ RawContractAlias.fresh_alias_param @@ RawContractAlias.fresh_alias_param
~name: "new" ~desc: "name of the new contract" ~name: "new" ~desc: "name of the new contract"
@ -347,14 +346,14 @@ let commands () =
@@ ContractAlias.alias_param @@ ContractAlias.alias_param
~name:"src" ~desc: "name of the source contract" ~name:"src" ~desc: "name of the source contract"
@@ stop) @@ stop)
begin fun (fee, delegate, delegatable, force, non_spendable) begin fun (fee, delegate, delegatable, force)
neu (_, manager) balance (_, source) cctxt -> neu (_, manager) balance (_, source) cctxt ->
check_contract cctxt neu >>=? fun () -> check_contract cctxt neu >>=? fun () ->
get_delegate_pkh cctxt delegate >>=? fun delegate -> get_delegate_pkh cctxt delegate >>=? fun delegate ->
get_manager cctxt source >>=? fun (_src_name, _src_pkh, src_pk, src_sk) -> get_manager cctxt source >>=? fun (_src_name, _src_pkh, src_pk, src_sk) ->
originate_account cctxt.rpc_config cctxt.config.block ~force:force originate_account cctxt.rpc_config cctxt.config.block ~force:force
~source ~src_pk ~src_sk ~manager_pkh:manager ~balance ~fee ~source ~src_pk ~src_sk ~manager_pkh:manager ~balance ~fee
~delegatable:delegatable ~spendable:(not non_spendable) ?delegate:delegate ~delegatable:delegatable ~spendable:true ?delegate:delegate
() >>=? fun (oph, contract) -> () >>=? fun (oph, contract) ->
message_injection cctxt message_injection cctxt
~force:force ~contracts:[contract] oph >>= fun () -> ~force:force ~contracts:[contract] oph >>= fun () ->
@ -363,10 +362,10 @@ let commands () =
return () return ()
end ; end ;
command ~group ~desc: "open a new scripted account" command ~group ~desc: "Launch a smart contract on the blockchain"
(args6 (args6
fee_arg delegate_arg force_switch fee_arg delegate_arg force_switch
delegatable_switch non_spendable_switch init_arg) delegatable_switch spendable_switch init_arg)
(prefixes [ "originate" ; "contract" ] (prefixes [ "originate" ; "contract" ]
@@ RawContractAlias.fresh_alias_param @@ RawContractAlias.fresh_alias_param
~name: "new" ~desc: "name of the new contract" ~name: "new" ~desc: "name of the new contract"
@ -384,7 +383,7 @@ let commands () =
~name:"prg" ~desc: "script of the account\n\ ~name:"prg" ~desc: "script of the account\n\
combine with -init if the storage type is not unit" combine with -init if the storage type is not unit"
@@ stop) @@ stop)
begin fun (fee, delegate, force, delegatable, non_spendable, init) begin fun (fee, delegate, force, delegatable, spendable, init)
neu (_, manager) balance (_, source) { ast = code } cctxt -> neu (_, manager) balance (_, source) { ast = code } cctxt ->
check_contract cctxt neu >>=? fun () -> check_contract cctxt neu >>=? fun () ->
get_delegate_pkh cctxt delegate >>=? fun delegate -> get_delegate_pkh cctxt delegate >>=? fun delegate ->
@ -393,7 +392,7 @@ let commands () =
~source ~src_pk ~src_sk ~manager_pkh:manager ~balance ~fee ~source ~src_pk ~src_sk ~manager_pkh:manager ~balance ~fee
~delegatable:delegatable ?delegatePubKey:delegate ~code ~delegatable:delegatable ?delegatePubKey:delegate ~code
~init ~init
~spendable:(not non_spendable) ~spendable:spendable
() >>=function () >>=function
| Error errs -> | Error errs ->
Client_proto_programs.report_errors cctxt errs >>= fun () -> Client_proto_programs.report_errors cctxt errs >>= fun () ->