multiversx-sdk-cli 9.4.1__tar.gz → 9.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/PKG-INFO +1 -1
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_delegation.py +23 -5
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_shared.py +2 -1
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_transactions.py +3 -5
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_wallet.py +1 -0
- multiversx_sdk_cli-9.5.1/multiversx_sdk_cli/custom_network_provider.py +36 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/delegation/staking_provider.py +18 -5
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/errors.py +10 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/transactions.py +1 -4
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/validators/validators_file.py +19 -7
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/pyproject.toml +1 -1
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/.gitignore +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/LICENSE +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/README.md +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/.vscode/settings.json +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/accounts.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_accounts.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_config.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_contracts.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_data.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_deps.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_dns.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_ledger.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_localnet.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_output.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_password.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_validators.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/config.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/constants.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/contract_verification.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/contracts.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cosign_transaction.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/delegation/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/install.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/modules.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/resolution.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependency_checker.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dns.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/docker.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/downloader.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/guards.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/interfaces.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ledger/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ledger/config.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ledger/ledger_app_handler.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ledger/ledger_functions.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_default.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_general.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_networking.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_part.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_root.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_sharding.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_software.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/constants.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/genesis.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/genesis_json.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/genesis_smart_contracts_json.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/libraries.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/node.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/node_config_toml.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/nodes_setup_json.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/p2p_toml.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/seednode_p2pKey.pem +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_build_software.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_clean.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_config.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_new.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_prerequisites.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_start.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/wallets.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/myprocess.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/constants.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/core.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/interfaces.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/migrations.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/project_base.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/project_rust.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/common.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/extracted_feature.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/folder_report.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/project_report.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/report.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/data/wasm_report.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/do_report.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/features/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/features/features.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/features/report_option.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/features/size.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/features/twiggy_paths_check.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/format/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/format/change_type.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/format/format_options.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/report_creator.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/shared.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/templates.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/sign_verify.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/simulation.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/utils.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ux.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/validators/__init__.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/validators/core.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/version.py +0 -0
- {multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/workstation.py +0 -0
|
@@ -41,7 +41,8 @@ def setup_parser(args: List[str], subparsers: Any) -> Any:
|
|
|
41
41
|
# remove nodes
|
|
42
42
|
sub = cli_shared.add_command_subparser(subparsers, "staking-provider", "remove-nodes",
|
|
43
43
|
"Remove nodes must be called by the contract owner")
|
|
44
|
-
sub.add_argument("--bls-keys",
|
|
44
|
+
sub.add_argument("--bls-keys", help="a list with the bls keys of the nodes")
|
|
45
|
+
sub.add_argument("--validators-file", help="a JSON file describing the Nodes")
|
|
45
46
|
sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract")
|
|
46
47
|
_add_common_arguments(args, sub)
|
|
47
48
|
sub.set_defaults(func=remove_nodes)
|
|
@@ -49,7 +50,8 @@ def setup_parser(args: List[str], subparsers: Any) -> Any:
|
|
|
49
50
|
# stake nodes
|
|
50
51
|
sub = cli_shared.add_command_subparser(subparsers, "staking-provider", "stake-nodes",
|
|
51
52
|
"Stake nodes must be called by the contract owner")
|
|
52
|
-
sub.add_argument("--bls-keys",
|
|
53
|
+
sub.add_argument("--bls-keys", help="a list with the bls keys of the nodes")
|
|
54
|
+
sub.add_argument("--validators-file", help="a JSON file describing the Nodes")
|
|
53
55
|
sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract")
|
|
54
56
|
_add_common_arguments(args, sub)
|
|
55
57
|
sub.set_defaults(func=stake_nodes)
|
|
@@ -57,7 +59,8 @@ def setup_parser(args: List[str], subparsers: Any) -> Any:
|
|
|
57
59
|
# unbond nodes
|
|
58
60
|
sub = cli_shared.add_command_subparser(subparsers, "staking-provider", "unbond-nodes",
|
|
59
61
|
"Unbond nodes must be called by the contract owner")
|
|
60
|
-
sub.add_argument("--bls-keys",
|
|
62
|
+
sub.add_argument("--bls-keys", help="a list with the bls keys of the nodes")
|
|
63
|
+
sub.add_argument("--validators-file", help="a JSON file describing the Nodes")
|
|
61
64
|
sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract")
|
|
62
65
|
_add_common_arguments(args, sub)
|
|
63
66
|
sub.set_defaults(func=unbond_nodes)
|
|
@@ -65,7 +68,8 @@ def setup_parser(args: List[str], subparsers: Any) -> Any:
|
|
|
65
68
|
# unstake nodes
|
|
66
69
|
sub = cli_shared.add_command_subparser(subparsers, "staking-provider", "unstake-nodes",
|
|
67
70
|
"Unstake nodes must be called by the contract owner")
|
|
68
|
-
sub.add_argument("--bls-keys",
|
|
71
|
+
sub.add_argument("--bls-keys", help="a list with the bls keys of the nodes")
|
|
72
|
+
sub.add_argument("--validators-file", help="a JSON file describing the Nodes")
|
|
69
73
|
sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract")
|
|
70
74
|
_add_common_arguments(args, sub)
|
|
71
75
|
sub.set_defaults(func=unstake_nodes)
|
|
@@ -73,7 +77,8 @@ def setup_parser(args: List[str], subparsers: Any) -> Any:
|
|
|
73
77
|
# unjail nodes
|
|
74
78
|
sub = cli_shared.add_command_subparser(subparsers, "staking-provider", "unjail-nodes",
|
|
75
79
|
"Unjail nodes must be called by the contract owner")
|
|
76
|
-
sub.add_argument("--bls-keys",
|
|
80
|
+
sub.add_argument("--bls-keys", help="a list with the bls keys of the nodes")
|
|
81
|
+
sub.add_argument("--validators-file", help="a JSON file describing the Nodes")
|
|
77
82
|
sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract")
|
|
78
83
|
_add_common_arguments(args, sub)
|
|
79
84
|
sub.set_defaults(func=unjail_nodes)
|
|
@@ -182,6 +187,7 @@ def add_new_nodes(args: Any):
|
|
|
182
187
|
|
|
183
188
|
|
|
184
189
|
def remove_nodes(args: Any):
|
|
190
|
+
_check_if_either_bls_keys_or_validators_file_are_provided(args)
|
|
185
191
|
cli_shared.check_guardian_and_options_args(args)
|
|
186
192
|
cli_shared.check_broadcast_args(args)
|
|
187
193
|
cli_shared.prepare_chain_id_in_args(args)
|
|
@@ -196,6 +202,7 @@ def remove_nodes(args: Any):
|
|
|
196
202
|
|
|
197
203
|
|
|
198
204
|
def stake_nodes(args: Any):
|
|
205
|
+
_check_if_either_bls_keys_or_validators_file_are_provided(args)
|
|
199
206
|
cli_shared.check_guardian_and_options_args(args)
|
|
200
207
|
cli_shared.check_broadcast_args(args)
|
|
201
208
|
cli_shared.prepare_chain_id_in_args(args)
|
|
@@ -209,7 +216,16 @@ def stake_nodes(args: Any):
|
|
|
209
216
|
cli_shared.send_or_simulate(tx, args)
|
|
210
217
|
|
|
211
218
|
|
|
219
|
+
def _check_if_either_bls_keys_or_validators_file_are_provided(args: Any):
|
|
220
|
+
bls_keys = args.bls_keys
|
|
221
|
+
validators_file = args.validators_file
|
|
222
|
+
|
|
223
|
+
if not bls_keys and not validators_file:
|
|
224
|
+
raise errors.BadUsage("No bls keys or validators file provided. Use either `--bls-keys` or `--validators-file`")
|
|
225
|
+
|
|
226
|
+
|
|
212
227
|
def unbond_nodes(args: Any):
|
|
228
|
+
_check_if_either_bls_keys_or_validators_file_are_provided(args)
|
|
213
229
|
cli_shared.check_guardian_and_options_args(args)
|
|
214
230
|
cli_shared.check_broadcast_args(args)
|
|
215
231
|
cli_shared.prepare_chain_id_in_args(args)
|
|
@@ -224,6 +240,7 @@ def unbond_nodes(args: Any):
|
|
|
224
240
|
|
|
225
241
|
|
|
226
242
|
def unstake_nodes(args: Any):
|
|
243
|
+
_check_if_either_bls_keys_or_validators_file_are_provided(args)
|
|
227
244
|
cli_shared.check_guardian_and_options_args(args)
|
|
228
245
|
cli_shared.check_broadcast_args(args)
|
|
229
246
|
cli_shared.prepare_chain_id_in_args(args)
|
|
@@ -238,6 +255,7 @@ def unstake_nodes(args: Any):
|
|
|
238
255
|
|
|
239
256
|
|
|
240
257
|
def unjail_nodes(args: Any):
|
|
258
|
+
_check_if_either_bls_keys_or_validators_file_are_provided(args)
|
|
241
259
|
cli_shared.check_guardian_and_options_args(args)
|
|
242
260
|
cli_shared.check_broadcast_args(args)
|
|
243
261
|
cli_shared.prepare_chain_id_in_args(args)
|
|
@@ -16,6 +16,7 @@ from multiversx_sdk_cli.cli_password import (load_guardian_password,
|
|
|
16
16
|
load_password)
|
|
17
17
|
from multiversx_sdk_cli.constants import (DEFAULT_TX_VERSION,
|
|
18
18
|
TRANSACTION_OPTIONS_TX_GUARDED)
|
|
19
|
+
from multiversx_sdk_cli.custom_network_provider import CustomNetworkProvider
|
|
19
20
|
from multiversx_sdk_cli.errors import ArgumentsNotProvidedError
|
|
20
21
|
from multiversx_sdk_cli.interfaces import ITransaction
|
|
21
22
|
from multiversx_sdk_cli.ledger.ledger_functions import do_get_ledger_address
|
|
@@ -249,7 +250,7 @@ def check_options_for_guarded_tx(options: int):
|
|
|
249
250
|
|
|
250
251
|
|
|
251
252
|
def send_or_simulate(tx: ITransaction, args: Any, dump_output: bool = True) -> CLIOutputBuilder:
|
|
252
|
-
proxy =
|
|
253
|
+
proxy = CustomNetworkProvider(args.proxy)
|
|
253
254
|
|
|
254
255
|
is_set_wait_result = hasattr(args, "wait_result") and args.wait_result
|
|
255
256
|
is_set_send = hasattr(args, "send") and args.send
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cli_transactions.py
RENAMED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
from typing import Any, List
|
|
3
3
|
|
|
4
|
-
from multiversx_sdk_network_providers.proxy_network_provider import \
|
|
5
|
-
ProxyNetworkProvider
|
|
6
|
-
|
|
7
4
|
from multiversx_sdk_cli import cli_shared, utils
|
|
8
5
|
from multiversx_sdk_cli.cli_output import CLIOutputBuilder
|
|
9
6
|
from multiversx_sdk_cli.cosign_transaction import cosign_transaction
|
|
7
|
+
from multiversx_sdk_cli.custom_network_provider import CustomNetworkProvider
|
|
10
8
|
from multiversx_sdk_cli.errors import NoWalletProvided
|
|
11
9
|
from multiversx_sdk_cli.transactions import (compute_relayed_v1_data,
|
|
12
10
|
do_prepare_transaction,
|
|
@@ -88,9 +86,9 @@ def send_transaction(args: Any):
|
|
|
88
86
|
|
|
89
87
|
tx = load_transaction_from_file(args.infile)
|
|
90
88
|
output = CLIOutputBuilder()
|
|
89
|
+
proxy = CustomNetworkProvider(args.proxy)
|
|
91
90
|
|
|
92
91
|
try:
|
|
93
|
-
proxy = ProxyNetworkProvider(args.proxy)
|
|
94
92
|
tx_hash = proxy.send_transaction(tx)
|
|
95
93
|
output.set_emitted_transaction_hash(tx_hash)
|
|
96
94
|
finally:
|
|
@@ -101,7 +99,7 @@ def send_transaction(args: Any):
|
|
|
101
99
|
def get_transaction(args: Any):
|
|
102
100
|
args = utils.as_object(args)
|
|
103
101
|
omit_fields = cli_shared.parse_omit_fields_arg(args)
|
|
104
|
-
proxy =
|
|
102
|
+
proxy = CustomNetworkProvider(args.proxy)
|
|
105
103
|
|
|
106
104
|
transaction = proxy.get_transaction(args.hash, True)
|
|
107
105
|
output = CLIOutputBuilder().set_transaction_on_network(transaction, omit_fields).build()
|
|
@@ -112,6 +112,7 @@ def wallet_new(args: Any):
|
|
|
112
112
|
|
|
113
113
|
mnemonic = Mnemonic.generate()
|
|
114
114
|
print(f"Mnemonic: {mnemonic.get_text()}")
|
|
115
|
+
print(f"Wallet address: {mnemonic.derive_key().generate_public_key().to_address(address_hrp).to_bech32()}")
|
|
115
116
|
|
|
116
117
|
if format is None:
|
|
117
118
|
return
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional, Protocol
|
|
2
|
+
|
|
3
|
+
from multiversx_sdk_network_providers import GenericError, ProxyNetworkProvider
|
|
4
|
+
|
|
5
|
+
from multiversx_sdk_cli.errors import ProxyError
|
|
6
|
+
from multiversx_sdk_cli.interfaces import ISimulateResponse, ITransaction
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ITransactionOnNetwork(Protocol):
|
|
10
|
+
hash: str
|
|
11
|
+
is_completed: Optional[bool]
|
|
12
|
+
|
|
13
|
+
def to_dictionary(self) -> Dict[str, Any]:
|
|
14
|
+
...
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CustomNetworkProvider:
|
|
18
|
+
def __init__(self, url: str) -> None:
|
|
19
|
+
self._provider = ProxyNetworkProvider(url)
|
|
20
|
+
|
|
21
|
+
def send_transaction(self, transaction: ITransaction) -> str:
|
|
22
|
+
try:
|
|
23
|
+
hash = self._provider.send_transaction(transaction)
|
|
24
|
+
return hash
|
|
25
|
+
except GenericError as ge:
|
|
26
|
+
url = ge.url
|
|
27
|
+
message = ge.data.get("error", "")
|
|
28
|
+
data = ge.data.get("data", "")
|
|
29
|
+
code = ge.data.get("code", "")
|
|
30
|
+
raise ProxyError(message, url, data, code)
|
|
31
|
+
|
|
32
|
+
def get_transaction(self, tx_hash: str, with_process_status: Optional[bool] = False) -> ITransactionOnNetwork:
|
|
33
|
+
return self._provider.get_transaction(tx_hash, with_process_status)
|
|
34
|
+
|
|
35
|
+
def simulate_transaction(self, transaction: ITransaction) -> ISimulateResponse:
|
|
36
|
+
return self._provider.simulate_transaction(transaction)
|
|
@@ -82,7 +82,8 @@ class DelegationOperations:
|
|
|
82
82
|
|
|
83
83
|
def prepare_transaction_for_removing_nodes(self, owner: IAccount, args: Any) -> ITransaction:
|
|
84
84
|
delegation_contract = Address.new_from_bech32(args.delegation_contract)
|
|
85
|
-
|
|
85
|
+
|
|
86
|
+
public_keys = self._load_validators_public_keys(args)
|
|
86
87
|
|
|
87
88
|
tx = self._factory.create_transaction_for_removing_nodes(
|
|
88
89
|
sender=owner.address,
|
|
@@ -102,7 +103,8 @@ class DelegationOperations:
|
|
|
102
103
|
|
|
103
104
|
def prepare_transaction_for_staking_nodes(self, owner: IAccount, args: Any) -> ITransaction:
|
|
104
105
|
delegation_contract = Address.new_from_bech32(args.delegation_contract)
|
|
105
|
-
|
|
106
|
+
|
|
107
|
+
public_keys = self._load_validators_public_keys(args)
|
|
106
108
|
|
|
107
109
|
tx = self._factory.create_transaction_for_staking_nodes(
|
|
108
110
|
sender=owner.address,
|
|
@@ -122,7 +124,8 @@ class DelegationOperations:
|
|
|
122
124
|
|
|
123
125
|
def prepare_transaction_for_unbonding_nodes(self, owner: IAccount, args: Any) -> ITransaction:
|
|
124
126
|
delegation_contract = Address.new_from_bech32(args.delegation_contract)
|
|
125
|
-
|
|
127
|
+
|
|
128
|
+
public_keys = self._load_validators_public_keys(args)
|
|
126
129
|
|
|
127
130
|
tx = self._factory.create_transaction_for_unbonding_nodes(
|
|
128
131
|
sender=owner.address,
|
|
@@ -142,7 +145,8 @@ class DelegationOperations:
|
|
|
142
145
|
|
|
143
146
|
def prepare_transaction_for_unstaking_nodes(self, owner: IAccount, args: Any) -> ITransaction:
|
|
144
147
|
delegation_contract = Address.new_from_bech32(args.delegation_contract)
|
|
145
|
-
|
|
148
|
+
|
|
149
|
+
public_keys = self._load_validators_public_keys(args)
|
|
146
150
|
|
|
147
151
|
tx = self._factory.create_transaction_for_unstaking_nodes(
|
|
148
152
|
sender=owner.address,
|
|
@@ -162,7 +166,8 @@ class DelegationOperations:
|
|
|
162
166
|
|
|
163
167
|
def prepare_transaction_for_unjailing_nodes(self, owner: IAccount, args: Any) -> ITransaction:
|
|
164
168
|
delegation_contract = Address.new_from_bech32(args.delegation_contract)
|
|
165
|
-
|
|
169
|
+
|
|
170
|
+
public_keys = self._load_validators_public_keys(args)
|
|
166
171
|
|
|
167
172
|
tx = self._factory.create_transaction_for_unjailing_nodes(
|
|
168
173
|
sender=owner.address,
|
|
@@ -293,6 +298,14 @@ class DelegationOperations:
|
|
|
293
298
|
|
|
294
299
|
return tx
|
|
295
300
|
|
|
301
|
+
def _load_validators_public_keys(self, args: Any) -> List[ValidatorPublicKey]:
|
|
302
|
+
if args.bls_keys:
|
|
303
|
+
return self._parse_public_bls_keys(args.bls_keys)
|
|
304
|
+
|
|
305
|
+
validators_file_path = Path(args.validators_file).expanduser()
|
|
306
|
+
validators_file = ValidatorsFile(validators_file_path)
|
|
307
|
+
return validators_file.load_public_keys()
|
|
308
|
+
|
|
296
309
|
def _parse_public_bls_keys(self, public_bls_keys: str) -> List[ValidatorPublicKey]:
|
|
297
310
|
keys = public_bls_keys.split(",")
|
|
298
311
|
validator_public_keys: List[ValidatorPublicKey] = []
|
|
@@ -198,3 +198,13 @@ class GuardianServiceError(KnownError):
|
|
|
198
198
|
class ArgumentsNotProvidedError(KnownError):
|
|
199
199
|
def __init__(self, message: str):
|
|
200
200
|
super().__init__(message)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class ProxyError(KnownError):
|
|
204
|
+
def __init__(self, message: str, url: str, data: str, code: str):
|
|
205
|
+
inner = {
|
|
206
|
+
"url": url,
|
|
207
|
+
"data": data,
|
|
208
|
+
"code": code
|
|
209
|
+
}
|
|
210
|
+
super().__init__(message, inner)
|
|
@@ -2,7 +2,7 @@ import base64
|
|
|
2
2
|
import json
|
|
3
3
|
import logging
|
|
4
4
|
import time
|
|
5
|
-
from typing import Any, Dict, Optional, Protocol,
|
|
5
|
+
from typing import Any, Dict, Optional, Protocol, TextIO
|
|
6
6
|
|
|
7
7
|
from multiversx_sdk_core import Address, Transaction, TransactionPayload
|
|
8
8
|
|
|
@@ -30,9 +30,6 @@ class INetworkProvider(Protocol):
|
|
|
30
30
|
def send_transaction(self, transaction: ITransaction) -> str:
|
|
31
31
|
...
|
|
32
32
|
|
|
33
|
-
def send_transactions(self, transactions: Sequence[ITransaction]) -> Tuple[int, str]:
|
|
34
|
-
...
|
|
35
|
-
|
|
36
33
|
def get_transaction(self, tx_hash: str, with_process_status: Optional[bool] = False) -> ITransactionOnNetwork:
|
|
37
34
|
...
|
|
38
35
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import List
|
|
3
|
+
from typing import Dict, List
|
|
4
4
|
|
|
5
5
|
from multiversx_sdk_wallet import ValidatorSigner
|
|
6
|
+
from multiversx_sdk_wallet.validator_keys import ValidatorPublicKey
|
|
6
7
|
from multiversx_sdk_wallet.validator_pem import ValidatorPEM
|
|
7
8
|
|
|
8
9
|
from multiversx_sdk_cli import guards
|
|
@@ -23,17 +24,28 @@ class ValidatorsFile:
|
|
|
23
24
|
def load_signers(self) -> List[ValidatorSigner]:
|
|
24
25
|
signers: List[ValidatorSigner] = []
|
|
25
26
|
for validator in self.get_validators_list():
|
|
26
|
-
|
|
27
|
-
validator_pem = Path(validator.get("pemFile")).expanduser()
|
|
28
|
-
validator_pem = validator_pem if validator_pem.is_absolute() else self.validators_file_path.parent / validator_pem
|
|
29
|
-
|
|
30
|
-
pem_file = ValidatorPEM.from_file(validator_pem)
|
|
31
|
-
|
|
27
|
+
pem_file = self._load_validator_pem(validator)
|
|
32
28
|
validator_signer = ValidatorSigner(pem_file.secret_key)
|
|
33
29
|
signers.append(validator_signer)
|
|
34
30
|
|
|
35
31
|
return signers
|
|
36
32
|
|
|
33
|
+
def load_public_keys(self) -> List[ValidatorPublicKey]:
|
|
34
|
+
public_keys: List[ValidatorPublicKey] = []
|
|
35
|
+
|
|
36
|
+
for validator in self.get_validators_list():
|
|
37
|
+
pem_file = self._load_validator_pem(validator)
|
|
38
|
+
public_keys.append(pem_file.secret_key.generate_public_key())
|
|
39
|
+
|
|
40
|
+
return public_keys
|
|
41
|
+
|
|
42
|
+
def _load_validator_pem(self, validator: Dict[str, str]) -> ValidatorPEM:
|
|
43
|
+
# Get path of "pemFile", make it absolute
|
|
44
|
+
validator_pem = Path(validator.get("pemFile", "")).expanduser()
|
|
45
|
+
validator_pem = validator_pem if validator_pem.is_absolute() else self.validators_file_path.parent / validator_pem
|
|
46
|
+
|
|
47
|
+
return ValidatorPEM.from_file(validator_pem)
|
|
48
|
+
|
|
37
49
|
def _read_json_file_validators(self):
|
|
38
50
|
val_file = self.validators_file_path.expanduser()
|
|
39
51
|
guards.is_file(val_file)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/.vscode/settings.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/contract_verification.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/cosign_transaction.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/delegation/__init__.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/__init__.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/install.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/modules.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependencies/resolution.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/dependency_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/ledger/ledger_functions.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/__init__.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_default.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_general.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_part.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_root.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_sharding.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/config_software.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/constants.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/genesis.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/genesis_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/libraries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/p2p_toml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_clean.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_config.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_new.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/step_start.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/localnet/wallets.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/__init__.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/interfaces.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/migrations.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/project_base.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/project_rust.py
RENAMED
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/report/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/projects/templates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{multiversx_sdk_cli-9.4.1 → multiversx_sdk_cli-9.5.1}/multiversx_sdk_cli/validators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|