2121 validate_receiver_args ,
2222)
2323from multiversx_sdk_cli .config import get_config_for_network_providers
24+ from multiversx_sdk_cli .constants import DEFAULT_TX_VERSION
2425from multiversx_sdk_cli .guardian_relayer_data import GuardianRelayerData
2526from multiversx_sdk_cli .interfaces import IAccount
2627from multiversx_sdk_cli .signing_wrapper import SigningWrapper
@@ -440,6 +441,13 @@ def do_create_delegation_contract(args: Any):
440441 gas_limit = args .gas_limit ,
441442 gas_price = args .gas_price ,
442443 )
444+ _alter_version_and_options_if_provided (args , tx )
445+ cli_shared .set_options_for_hash_signing_if_needed (
446+ transaction = tx ,
447+ sender = sender ,
448+ guardian = guardian_and_relayer_data .guardian ,
449+ relayer = guardian_and_relayer_data .relayer ,
450+ )
443451
444452 _sign_transaction (tx , sender , guardian_and_relayer_data )
445453 cli_shared .send_or_simulate (tx , args )
@@ -485,6 +493,13 @@ def add_new_nodes(args: Any):
485493 gas_limit = args .gas_limit ,
486494 gas_price = args .gas_price ,
487495 )
496+ _alter_version_and_options_if_provided (args , tx )
497+ cli_shared .set_options_for_hash_signing_if_needed (
498+ transaction = tx ,
499+ sender = sender ,
500+ guardian = guardian_and_relayer_data .guardian ,
501+ relayer = guardian_and_relayer_data .relayer ,
502+ )
488503
489504 _sign_transaction (tx , sender , guardian_and_relayer_data )
490505 cli_shared .send_or_simulate (tx , args )
@@ -531,6 +546,13 @@ def remove_nodes(args: Any):
531546 gas_limit = args .gas_limit ,
532547 gas_price = args .gas_price ,
533548 )
549+ _alter_version_and_options_if_provided (args , tx )
550+ cli_shared .set_options_for_hash_signing_if_needed (
551+ transaction = tx ,
552+ sender = sender ,
553+ guardian = guardian_and_relayer_data .guardian ,
554+ relayer = guardian_and_relayer_data .relayer ,
555+ )
534556
535557 _sign_transaction (tx , sender , guardian_and_relayer_data )
536558 cli_shared .send_or_simulate (tx , args )
@@ -578,6 +600,13 @@ def stake_nodes(args: Any):
578600 gas_limit = args .gas_limit ,
579601 gas_price = args .gas_price ,
580602 )
603+ _alter_version_and_options_if_provided (args , tx )
604+ cli_shared .set_options_for_hash_signing_if_needed (
605+ transaction = tx ,
606+ sender = sender ,
607+ guardian = guardian_and_relayer_data .guardian ,
608+ relayer = guardian_and_relayer_data .relayer ,
609+ )
581610
582611 _sign_transaction (tx , sender , guardian_and_relayer_data )
583612 cli_shared .send_or_simulate (tx , args )
@@ -614,6 +643,13 @@ def unbond_nodes(args: Any):
614643 gas_limit = args .gas_limit ,
615644 gas_price = args .gas_price ,
616645 )
646+ _alter_version_and_options_if_provided (args , tx )
647+ cli_shared .set_options_for_hash_signing_if_needed (
648+ transaction = tx ,
649+ sender = sender ,
650+ guardian = guardian_and_relayer_data .guardian ,
651+ relayer = guardian_and_relayer_data .relayer ,
652+ )
617653
618654 _sign_transaction (tx , sender , guardian_and_relayer_data )
619655 cli_shared .send_or_simulate (tx , args )
@@ -642,6 +678,13 @@ def unstake_nodes(args: Any):
642678 gas_limit = args .gas_limit ,
643679 gas_price = args .gas_price ,
644680 )
681+ _alter_version_and_options_if_provided (args , tx )
682+ cli_shared .set_options_for_hash_signing_if_needed (
683+ transaction = tx ,
684+ sender = sender ,
685+ guardian = guardian_and_relayer_data .guardian ,
686+ relayer = guardian_and_relayer_data .relayer ,
687+ )
645688
646689 _sign_transaction (tx , sender , guardian_and_relayer_data )
647690 cli_shared .send_or_simulate (tx , args )
@@ -650,6 +693,8 @@ def unstake_nodes(args: Any):
650693def unjail_nodes (args : Any ):
651694 _check_if_either_bls_keys_or_validators_file_are_provided (args )
652695 validate_arguments (args )
696+ if not args .value or int (args .value ) <= 0 :
697+ raise errors .BadUsage ("Value must be provided for unjailing nodes" )
653698
654699 sender = cli_shared .prepare_sender (args )
655700 guardian_and_relayer_data = cli_shared .get_guardian_and_relayer_data (
@@ -671,13 +716,22 @@ def unjail_nodes(args: Any):
671716 gas_limit = args .gas_limit ,
672717 gas_price = args .gas_price ,
673718 )
719+ _alter_version_and_options_if_provided (args , tx )
720+ cli_shared .set_options_for_hash_signing_if_needed (
721+ transaction = tx ,
722+ sender = sender ,
723+ guardian = guardian_and_relayer_data .guardian ,
724+ relayer = guardian_and_relayer_data .relayer ,
725+ )
674726
675727 _sign_transaction (tx , sender , guardian_and_relayer_data )
676728 cli_shared .send_or_simulate (tx , args )
677729
678730
679731def delegate (args : Any ):
680732 validate_arguments (args )
733+ if not args .value or int (args .value ) <= 0 :
734+ raise errors .BadUsage ("Value must be provided for delegating" )
681735
682736 sender = cli_shared .prepare_sender (args )
683737 guardian_and_relayer_data = cli_shared .get_guardian_and_relayer_data (
@@ -696,6 +750,13 @@ def delegate(args: Any):
696750 gas_limit = args .gas_limit ,
697751 gas_price = args .gas_price ,
698752 )
753+ _alter_version_and_options_if_provided (args , tx )
754+ cli_shared .set_options_for_hash_signing_if_needed (
755+ transaction = tx ,
756+ sender = sender ,
757+ guardian = guardian_and_relayer_data .guardian ,
758+ relayer = guardian_and_relayer_data .relayer ,
759+ )
699760
700761 _sign_transaction (tx , sender , guardian_and_relayer_data )
701762 cli_shared .send_or_simulate (tx , args )
@@ -720,6 +781,13 @@ def claim_rewards(args: Any):
720781 gas_limit = args .gas_limit ,
721782 gas_price = args .gas_price ,
722783 )
784+ _alter_version_and_options_if_provided (args , tx )
785+ cli_shared .set_options_for_hash_signing_if_needed (
786+ transaction = tx ,
787+ sender = sender ,
788+ guardian = guardian_and_relayer_data .guardian ,
789+ relayer = guardian_and_relayer_data .relayer ,
790+ )
723791
724792 _sign_transaction (tx , sender , guardian_and_relayer_data )
725793 cli_shared .send_or_simulate (tx , args )
@@ -744,13 +812,22 @@ def redelegate_rewards(args: Any):
744812 gas_limit = args .gas_limit ,
745813 gas_price = args .gas_price ,
746814 )
815+ _alter_version_and_options_if_provided (args , tx )
816+ cli_shared .set_options_for_hash_signing_if_needed (
817+ transaction = tx ,
818+ sender = sender ,
819+ guardian = guardian_and_relayer_data .guardian ,
820+ relayer = guardian_and_relayer_data .relayer ,
821+ )
747822
748823 _sign_transaction (tx , sender , guardian_and_relayer_data )
749824 cli_shared .send_or_simulate (tx , args )
750825
751826
752827def undelegate (args : Any ):
753828 validate_arguments (args )
829+ if not args .value or int (args .value ) <= 0 :
830+ raise errors .BadUsage ("Value must be provided for undelegating" )
754831
755832 sender = cli_shared .prepare_sender (args )
756833 guardian_and_relayer_data = cli_shared .get_guardian_and_relayer_data (
@@ -769,6 +846,13 @@ def undelegate(args: Any):
769846 gas_limit = args .gas_limit ,
770847 gas_price = args .gas_price ,
771848 )
849+ _alter_version_and_options_if_provided (args , tx )
850+ cli_shared .set_options_for_hash_signing_if_needed (
851+ transaction = tx ,
852+ sender = sender ,
853+ guardian = guardian_and_relayer_data .guardian ,
854+ relayer = guardian_and_relayer_data .relayer ,
855+ )
772856
773857 _sign_transaction (tx , sender , guardian_and_relayer_data )
774858 cli_shared .send_or_simulate (tx , args )
@@ -793,6 +877,13 @@ def withdraw(args: Any):
793877 gas_limit = args .gas_limit ,
794878 gas_price = args .gas_price ,
795879 )
880+ _alter_version_and_options_if_provided (args , tx )
881+ cli_shared .set_options_for_hash_signing_if_needed (
882+ transaction = tx ,
883+ sender = sender ,
884+ guardian = guardian_and_relayer_data .guardian ,
885+ relayer = guardian_and_relayer_data .relayer ,
886+ )
796887
797888 _sign_transaction (tx , sender , guardian_and_relayer_data )
798889 cli_shared .send_or_simulate (tx , args )
@@ -818,6 +909,13 @@ def change_service_fee(args: Any):
818909 gas_limit = args .gas_limit ,
819910 gas_price = args .gas_price ,
820911 )
912+ _alter_version_and_options_if_provided (args , tx )
913+ cli_shared .set_options_for_hash_signing_if_needed (
914+ transaction = tx ,
915+ sender = sender ,
916+ guardian = guardian_and_relayer_data .guardian ,
917+ relayer = guardian_and_relayer_data .relayer ,
918+ )
821919
822920 _sign_transaction (tx , sender , guardian_and_relayer_data )
823921 cli_shared .send_or_simulate (tx , args )
@@ -843,6 +941,13 @@ def modify_delegation_cap(args: Any):
843941 gas_limit = args .gas_limit ,
844942 gas_price = args .gas_price ,
845943 )
944+ _alter_version_and_options_if_provided (args , tx )
945+ cli_shared .set_options_for_hash_signing_if_needed (
946+ transaction = tx ,
947+ sender = sender ,
948+ guardian = guardian_and_relayer_data .guardian ,
949+ relayer = guardian_and_relayer_data .relayer ,
950+ )
846951
847952 _sign_transaction (tx , sender , guardian_and_relayer_data )
848953 cli_shared .send_or_simulate (tx , args )
@@ -885,6 +990,13 @@ def automatic_activation(args: Any):
885990 else :
886991 raise errors .BadUsage ("Both set and unset automatic activation are False" )
887992
993+ _alter_version_and_options_if_provided (args , tx )
994+ cli_shared .set_options_for_hash_signing_if_needed (
995+ transaction = tx ,
996+ sender = sender ,
997+ guardian = guardian_and_relayer_data .guardian ,
998+ relayer = guardian_and_relayer_data .relayer ,
999+ )
8881000 _sign_transaction (tx , sender , guardian_and_relayer_data )
8891001 cli_shared .send_or_simulate (tx , args )
8901002
@@ -925,6 +1037,13 @@ def redelegate_cap(args: Any):
9251037 else :
9261038 raise errors .BadUsage ("Either set or unset should be True" )
9271039
1040+ _alter_version_and_options_if_provided (args , tx )
1041+ cli_shared .set_options_for_hash_signing_if_needed (
1042+ transaction = tx ,
1043+ sender = sender ,
1044+ guardian = guardian_and_relayer_data .guardian ,
1045+ relayer = guardian_and_relayer_data .relayer ,
1046+ )
9281047 _sign_transaction (tx , sender , guardian_and_relayer_data )
9291048 cli_shared .send_or_simulate (tx , args )
9301049
@@ -951,6 +1070,13 @@ def set_metadata(args: Any):
9511070 gas_limit = args .gas_limit ,
9521071 gas_price = args .gas_price ,
9531072 )
1073+ _alter_version_and_options_if_provided (args , tx )
1074+ cli_shared .set_options_for_hash_signing_if_needed (
1075+ transaction = tx ,
1076+ sender = sender ,
1077+ guardian = guardian_and_relayer_data .guardian ,
1078+ relayer = guardian_and_relayer_data .relayer ,
1079+ )
9541080
9551081 _sign_transaction (tx , sender , guardian_and_relayer_data )
9561082 cli_shared .send_or_simulate (tx , args )
@@ -979,6 +1105,21 @@ def make_new_contract_from_validator_data(args: Any):
9791105 gas_limit = args .gas_limit ,
9801106 gas_price = args .gas_price ,
9811107 )
1108+ _alter_version_and_options_if_provided (args , tx )
1109+ cli_shared .set_options_for_hash_signing_if_needed (
1110+ transaction = tx ,
1111+ sender = sender ,
1112+ guardian = guardian_and_relayer_data .guardian ,
1113+ relayer = guardian_and_relayer_data .relayer ,
1114+ )
9821115
9831116 _sign_transaction (tx , sender , guardian_and_relayer_data )
9841117 cli_shared .send_or_simulate (tx , args )
1118+
1119+
1120+ def _alter_version_and_options_if_provided (args : Any , transaction : Transaction ):
1121+ if args .options :
1122+ transaction .options = args .options
1123+
1124+ if args .version != DEFAULT_TX_VERSION :
1125+ transaction .version = args .version
0 commit comments