multiversx-sdk-cli 10.0.0__tar.gz → 10.1.0__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.
Files changed (76) hide show
  1. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/PKG-INFO +1 -1
  2. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/args_validation.py +2 -4
  3. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli.py +3 -0
  4. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_faucet.py +20 -2
  5. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_shared.py +44 -5
  6. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/config.py +1 -1
  7. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/errors.py +0 -36
  8. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/version.py +4 -1
  9. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/pyproject.toml +1 -1
  10. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/.gitignore +0 -0
  11. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/LICENSE +0 -0
  12. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/README.md +0 -0
  13. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/__init__.py +0 -0
  14. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/base_transactions_controller.py +0 -0
  15. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_config.py +0 -0
  16. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_contracts.py +0 -0
  17. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_data.py +0 -0
  18. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_delegation.py +0 -0
  19. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_deps.py +0 -0
  20. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_dns.py +0 -0
  21. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_ledger.py +0 -0
  22. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_localnet.py +0 -0
  23. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_output.py +0 -0
  24. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_password.py +0 -0
  25. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_transactions.py +0 -0
  26. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_validator_wallet.py +0 -0
  27. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_validators.py +0 -0
  28. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cli_wallet.py +0 -0
  29. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/constants.py +0 -0
  30. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/contract_verification.py +0 -0
  31. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/contracts.py +0 -0
  32. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/cosign_transaction.py +0 -0
  33. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/delegation.py +0 -0
  34. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/dependencies/__init__.py +0 -0
  35. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/dependencies/install.py +0 -0
  36. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/dependencies/modules.py +0 -0
  37. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/dependencies/resolution.py +0 -0
  38. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/dns.py +0 -0
  39. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/docker.py +0 -0
  40. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/downloader.py +0 -0
  41. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/guardian_relayer_data.py +0 -0
  42. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/guards.py +0 -0
  43. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/interfaces.py +0 -0
  44. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/__init__.py +0 -0
  45. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_default.py +0 -0
  46. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_general.py +0 -0
  47. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_networking.py +0 -0
  48. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_part.py +0 -0
  49. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_root.py +0 -0
  50. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_sharding.py +0 -0
  51. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/config_software.py +0 -0
  52. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/constants.py +0 -0
  53. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/genesis.py +0 -0
  54. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/genesis_json.py +0 -0
  55. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/genesis_smart_contracts_json.py +0 -0
  56. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/libraries.py +0 -0
  57. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/node.py +0 -0
  58. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/node_config_toml.py +0 -0
  59. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/nodes_setup_json.py +0 -0
  60. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/p2p_toml.py +0 -0
  61. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/seednode_p2pKey.pem +0 -0
  62. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_build_software.py +0 -0
  63. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_clean.py +0 -0
  64. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_config.py +0 -0
  65. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_new.py +0 -0
  66. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_prerequisites.py +0 -0
  67. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/step_start.py +0 -0
  68. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/localnet/wallets.py +0 -0
  69. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/myprocess.py +0 -0
  70. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/sign_verify.py +0 -0
  71. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/simulation.py +0 -0
  72. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/transactions.py +0 -0
  73. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/utils.py +0 -0
  74. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/ux.py +0 -0
  75. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/validators.py +0 -0
  76. {multiversx_sdk_cli-10.0.0 → multiversx_sdk_cli-10.1.0}/multiversx_sdk_cli/workstation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multiversx-sdk-cli
3
- Version: 10.0.0
3
+ Version: 10.1.0
4
4
  Summary: MultiversX Smart Contracts Tools
5
5
  Project-URL: Homepage, https://github.com/multiversx/mx-sdk-py-cli
6
6
  Author: MultiversX
@@ -10,13 +10,11 @@ def validate_transaction_args(args: Any):
10
10
 
11
11
 
12
12
  def validate_nonce_args(args: Any):
13
- """If nonce is not provided, ensure that recall_nonce is provided. If recall_nonce is provided, ensure that proxy is provided."""
13
+ """If nonce is not provided, ensure that proxy is provided."""
14
14
  if hasattr(args, "nonce") and args.nonce is None:
15
- if not args.recall_nonce:
16
- raise InvalidArgumentsError("Either --nonce or --recall-nonce must be provided")
17
15
 
18
16
  if hasattr(args, "proxy") and not args.proxy:
19
- raise InvalidArgumentsError("--proxy must be provided if --recall-nonce is used")
17
+ raise InvalidArgumentsError("--proxy must be provided if --nonce is not provided")
20
18
 
21
19
 
22
20
  def validate_receiver_args(args: Any):
@@ -66,6 +66,9 @@ def _do_main(cli_args: list[str]):
66
66
  default_hrp = config.get_address_hrp()
67
67
  LibraryConfig.default_address_hrp = default_hrp
68
68
 
69
+ if hasattr(args, "recall_nonce") and args.recall_nonce:
70
+ logger.warning("The --recall-nonce flag is DEPRECATED. The nonce is fetched from the network by default.")
71
+
69
72
  if not hasattr(args, "func"):
70
73
  parser.print_help()
71
74
  else:
@@ -6,7 +6,7 @@ from typing import Any
6
6
  from multiversx_sdk import Message, NativeAuthClient, NativeAuthClientConfig
7
7
 
8
8
  from multiversx_sdk_cli import cli_shared
9
- from multiversx_sdk_cli.errors import BadUserInput
9
+ from multiversx_sdk_cli.errors import ArgumentsNotProvidedError, BadUserInput
10
10
 
11
11
  logger = logging.getLogger("cli.faucet")
12
12
 
@@ -27,7 +27,9 @@ def setup_parser(args: list[str], subparsers: Any) -> Any:
27
27
 
28
28
  sub = cli_shared.add_command_subparser(subparsers, "faucet", "request", "Request xEGLD.")
29
29
  cli_shared.add_wallet_args(args, sub)
30
- sub.add_argument("--chain", required=True, choices=["D", "T"], help="the chain identifier")
30
+ sub.add_argument("--chain", choices=["D", "T"], help="the chain identifier")
31
+ sub.add_argument("--api", type=str, help="custom api url for the native auth client")
32
+ sub.add_argument("--wallet-url", type=str, help="custom wallet url to call the faucet from")
31
33
  sub.set_defaults(func=faucet)
32
34
 
33
35
  parser.epilog = cli_shared.build_group_epilog(subparsers)
@@ -59,6 +61,9 @@ def call_web_wallet_faucet(wallet_url: str, access_token: str):
59
61
  def get_wallet_and_api_urls(args: Any) -> tuple[str, str]:
60
62
  chain: str = args.chain
61
63
 
64
+ if not chain:
65
+ return get_custom_wallet_and_api_urls(args)
66
+
62
67
  if chain.upper() == "D":
63
68
  return WebWalletUrls.DEVNET.value, ApiUrls.DEVNET.value
64
69
 
@@ -66,3 +71,16 @@ def get_wallet_and_api_urls(args: Any) -> tuple[str, str]:
66
71
  return WebWalletUrls.TESTNET.value, ApiUrls.TESTNET.value
67
72
 
68
73
  raise BadUserInput("Invalid chain id. Choose between 'D' for devnet and 'T' for testnet.")
74
+
75
+
76
+ def get_custom_wallet_and_api_urls(args: Any) -> tuple[str, str]:
77
+ wallet = args.wallet_url
78
+ api = args.api
79
+
80
+ if not wallet:
81
+ raise ArgumentsNotProvidedError("--wallet-url not provided")
82
+
83
+ if not api:
84
+ raise ArgumentsNotProvidedError("--api not provided")
85
+
86
+ return wallet, api
@@ -8,6 +8,7 @@ from typing import Any, Text, Union, cast
8
8
  from multiversx_sdk import (
9
9
  Account,
10
10
  Address,
11
+ ApiNetworkProvider,
11
12
  LedgerAccount,
12
13
  ProxyNetworkProvider,
13
14
  Transaction,
@@ -103,13 +104,13 @@ def add_tx_args(
103
104
  type=int,
104
105
  required=False,
105
106
  default=None,
106
- help="# the nonce for the transaction",
107
+ help="# the nonce for the transaction. If not provided, is fetched from the network.",
107
108
  )
108
109
  sub.add_argument(
109
110
  "--recall-nonce",
110
111
  action="store_true",
111
112
  default=False,
112
- help="⭮ whether to recall the nonce when creating the transaction (default: %(default)s)",
113
+ help="⭮ whether to recall the nonce when creating the transaction (default: %(default)s). This argument is OBSOLETE.",
113
114
  )
114
115
 
115
116
  if with_receiver:
@@ -175,6 +176,9 @@ def add_wallet_args(args: list[str], sub: Any):
175
176
  help="🔑 the address index; can be used for PEM files, keyfiles of type mnemonic or Ledger devices (default: %(default)s)",
176
177
  )
177
178
  sub.add_argument("--sender-username", required=False, help="🖄 the username of the sender")
179
+ sub.add_argument(
180
+ "--hrp", required=False, type=str, help="The hrp used to convert the address to its bech32 representation"
181
+ )
178
182
 
179
183
 
180
184
  def add_guardian_wallet_args(args: list[str], sub: Any):
@@ -282,7 +286,7 @@ def parse_omit_fields_arg(args: Any) -> list[str]:
282
286
 
283
287
 
284
288
  def prepare_account(args: Any):
285
- hrp = config.get_address_hrp()
289
+ hrp = _get_address_hrp(args)
286
290
 
287
291
  if args.pem:
288
292
  return Account.new_from_pem(file_path=Path(args.pem), index=args.sender_wallet_index, hrp=hrp)
@@ -302,8 +306,43 @@ def prepare_account(args: Any):
302
306
  raise errors.NoWalletProvided()
303
307
 
304
308
 
309
+ def _get_address_hrp(args: Any) -> str:
310
+ """Use hrp provided by the user. If not provided, fetch from network. If proxy not provided, get hrp from config."""
311
+ hrp: str = ""
312
+
313
+ if hasattr(args, "hrp") and args.hrp:
314
+ hrp = args.hrp
315
+ return hrp
316
+
317
+ if hasattr(args, "proxy") and args.proxy:
318
+ hrp = _get_hrp_from_proxy(args)
319
+ elif hasattr(args, "api") and args.api:
320
+ hrp = _get_hrp_from_api(args)
321
+
322
+ if hrp:
323
+ return hrp
324
+
325
+ return config.get_address_hrp()
326
+
327
+
328
+ def _get_hrp_from_proxy(args: Any) -> str:
329
+ network_provider_config = config.get_config_for_network_providers()
330
+ proxy = ProxyNetworkProvider(url=args.proxy, config=network_provider_config)
331
+ network_config = proxy.get_network_config()
332
+ hrp: str = network_config.raw.get("erd_address_hrp", "")
333
+ return hrp
334
+
335
+
336
+ def _get_hrp_from_api(args: Any) -> str:
337
+ network_provider_config = config.get_config_for_network_providers()
338
+ proxy = ApiNetworkProvider(url=args.api, config=network_provider_config)
339
+ network_config = proxy.get_network_config()
340
+ hrp: str = network_config.raw.get("erd_address_hrp", "")
341
+ return hrp
342
+
343
+
305
344
  def load_guardian_account(args: Any) -> Union[IAccount, None]:
306
- hrp = config.get_address_hrp()
345
+ hrp = _get_address_hrp(args)
307
346
 
308
347
  if args.guardian_pem:
309
348
  return Account.new_from_pem(file_path=Path(args.guardian_pem), index=args.guardian_wallet_index, hrp=hrp)
@@ -434,7 +473,7 @@ def _is_matching_address(account_address: Union[Address, None], args_address: Un
434
473
 
435
474
 
436
475
  def load_relayer_account(args: Any) -> Union[IAccount, None]:
437
- hrp = config.get_address_hrp()
476
+ hrp = _get_address_hrp(args)
438
477
 
439
478
  if args.relayer_pem:
440
479
  return Account.new_from_pem(file_path=Path(args.relayer_pem), index=args.relayer_wallet_index, hrp=hrp)
@@ -57,7 +57,7 @@ def get_value(name: str) -> str:
57
57
  return value
58
58
 
59
59
 
60
- def get_address_hrp():
60
+ def get_address_hrp() -> str:
61
61
  return get_value("default_address_hrp")
62
62
 
63
63
 
@@ -62,31 +62,11 @@ class BadDirectory(KnownError):
62
62
  super().__init__(f"Bad directory: {directory}")
63
63
 
64
64
 
65
- class BadFile(KnownError):
66
- def __init__(self, filename: str, inner: Any = None):
67
- super().__init__(f"Bad file: {filename}.", inner)
68
-
69
-
70
- class NotSupportedProject(KnownError):
71
- def __init__(self, directory: str):
72
- super().__init__(f"Directory is not a supported project: {directory}")
73
-
74
-
75
65
  class PlatformNotSupported(KnownError):
76
66
  def __init__(self, action_or_item: str, platform: str):
77
67
  super().__init__(f"[{action_or_item}] is not supported on platform [{platform}].")
78
68
 
79
69
 
80
- class BuildError(KnownError):
81
- def __init__(self, message: str):
82
- super().__init__(f"Build error: {message}.")
83
-
84
-
85
- class UnknownArgumentFormat(KnownError):
86
- def __init__(self, argument: Any):
87
- super().__init__(f"Cannot handle non-hex, non-number arguments yet: {argument}.")
88
-
89
-
90
70
  class BadInputError(KnownError):
91
71
  def __init__(self, input: str, message: str):
92
72
  super().__init__(f"Bad input [{input}]: {message}")
@@ -126,11 +106,6 @@ class BadUsage(KnownError):
126
106
  super().__init__(f"Bad usage: {message}.")
127
107
 
128
108
 
129
- class CannotReadValidatorsData(KnownError):
130
- def __init__(self):
131
- super(CannotReadValidatorsData, self).__init__("cannot read validators data")
132
-
133
-
134
109
  class TransactionIsNotSigned(KnownError):
135
110
  def __init__(self):
136
111
  super().__init__("Transaction is not signed.")
@@ -141,11 +116,6 @@ class NoWalletProvided(KnownError):
141
116
  super().__init__("No wallet provided.")
142
117
 
143
118
 
144
- class LedgerError(KnownError):
145
- def __init__(self, message: str):
146
- super().__init__("Ledger error: " + message)
147
-
148
-
149
119
  class DockerMissingError(KnownError):
150
120
  def __init__(self):
151
121
  super().__init__("Docker is not installed! Please visit https://docs.docker.com/get-docker/ to install docker.")
@@ -161,12 +131,6 @@ class ArgumentsNotProvidedError(KnownError):
161
131
  super().__init__(message)
162
132
 
163
133
 
164
- class ProxyError(KnownError):
165
- def __init__(self, message: str, url: str, data: str, code: str):
166
- inner = {"url": url, "data": data, "code": code}
167
- super().__init__(message, inner)
168
-
169
-
170
134
  class WalletGenerationError(KnownError):
171
135
  def __init__(self, message: str):
172
136
  super().__init__(message)
@@ -25,4 +25,7 @@ def _get_version_from_pyproject() -> str:
25
25
 
26
26
 
27
27
  def _get_version_from_metadata() -> str:
28
- return importlib.metadata.version("multiversx_sdk_cli")
28
+ try:
29
+ return importlib.metadata.version("multiversx_sdk_cli")
30
+ except:
31
+ return importlib.metadata.version("mxpy")
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "multiversx-sdk-cli"
7
- version = "10.0.0"
7
+ version = "10.1.0"
8
8
  authors = [
9
9
  { name="MultiversX" },
10
10
  ]