multiversx-sdk-cli 11.0.0__tar.gz → 11.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 (85) hide show
  1. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/PKG-INFO +2 -2
  2. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/args_validation.py +0 -1
  3. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_contracts.py +9 -6
  4. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_delegation.py +22 -52
  5. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_governance.py +18 -18
  6. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_multisig.py +81 -221
  7. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_shared.py +22 -0
  8. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_transactions.py +3 -3
  9. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_validators.py +15 -28
  10. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/config.py +7 -1
  11. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/contract_verification.py +1 -1
  12. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/contracts.py +11 -5
  13. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/delegation.py +29 -21
  14. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/dns.py +2 -1
  15. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/governance.py +15 -8
  16. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/genesis_smart_contracts_json.py +2 -2
  17. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_build_software.py +13 -1
  18. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/multisig.py +31 -25
  19. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/transactions.py +6 -4
  20. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/validators.py +6 -4
  21. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/pyproject.toml +2 -2
  22. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/.gitignore +0 -0
  23. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/LICENSE +0 -0
  24. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/README.md +0 -0
  25. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/__init__.py +0 -0
  26. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/base_transactions_controller.py +0 -0
  27. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli.py +0 -0
  28. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_config.py +0 -0
  29. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_config_env.py +0 -0
  30. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_config_wallet.py +0 -0
  31. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_data.py +0 -0
  32. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_deps.py +0 -0
  33. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_dns.py +0 -0
  34. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_faucet.py +0 -0
  35. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_get.py +0 -0
  36. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_ledger.py +0 -0
  37. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_localnet.py +0 -0
  38. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_output.py +0 -0
  39. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_password.py +0 -0
  40. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_validator_wallet.py +0 -0
  41. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cli_wallet.py +0 -0
  42. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/config_env.py +0 -0
  43. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/config_wallet.py +0 -0
  44. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/constants.py +0 -0
  45. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/cosign_transaction.py +0 -0
  46. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/dependencies/__init__.py +0 -0
  47. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/dependencies/install.py +0 -0
  48. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/dependencies/modules.py +0 -0
  49. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/dependencies/resolution.py +0 -0
  50. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/docker.py +0 -0
  51. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/downloader.py +0 -0
  52. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/errors.py +0 -0
  53. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/guardian_relayer_data.py +0 -0
  54. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/guards.py +0 -0
  55. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/interfaces.py +0 -0
  56. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/__init__.py +0 -0
  57. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_default.py +0 -0
  58. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_general.py +0 -0
  59. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_networking.py +0 -0
  60. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_part.py +0 -0
  61. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_root.py +0 -0
  62. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_sharding.py +0 -0
  63. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/config_software.py +0 -0
  64. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/constants.py +0 -0
  65. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/genesis.py +0 -0
  66. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/genesis_json.py +0 -0
  67. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/libraries.py +0 -0
  68. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/node.py +0 -0
  69. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/node_config_toml.py +0 -0
  70. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/nodes_setup_json.py +0 -0
  71. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/p2p_toml.py +0 -0
  72. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/seednode_p2pKey.pem +0 -0
  73. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_clean.py +0 -0
  74. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_config.py +0 -0
  75. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_new.py +0 -0
  76. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_prerequisites.py +0 -0
  77. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/step_start.py +0 -0
  78. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/localnet/wallets.py +0 -0
  79. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/myprocess.py +0 -0
  80. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/sign_verify.py +0 -0
  81. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/simulation.py +0 -0
  82. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/utils.py +0 -0
  83. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/ux.py +0 -0
  84. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.1.0}/multiversx_sdk_cli/version.py +0 -0
  85. {multiversx_sdk_cli-11.0.0 → multiversx_sdk_cli-11.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: 11.0.0
3
+ Version: 11.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
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Requires-Python: >=3.10
14
14
  Requires-Dist: argcomplete==3.2.2
15
15
  Requires-Dist: ledgercomm[hid]
16
- Requires-Dist: multiversx-sdk[ledger]==1.6.2
16
+ Requires-Dist: multiversx-sdk[ledger]==2.0.0
17
17
  Requires-Dist: requests<3.0.0,>=2.32.0
18
18
  Requires-Dist: rich==13.3.4
19
19
  Requires-Dist: toml>=0.10.2
@@ -6,7 +6,6 @@ from multiversx_sdk_cli.errors import InvalidArgumentsError
6
6
  def validate_transaction_args(args: Any):
7
7
  validate_nonce_args(args)
8
8
  validate_receiver_args(args)
9
- validate_gas_limit_args(args)
10
9
 
11
10
 
12
11
  def validate_nonce_args(args: Any):
@@ -332,7 +332,8 @@ def deploy(args: Any):
332
332
  config = TransactionsFactoryConfig(chain_id)
333
333
 
334
334
  abi = Abi.load(Path(args.abi)) if args.abi else None
335
- contract = SmartContract(config, abi)
335
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
336
+ contract = SmartContract(config, abi, gas_estimator)
336
337
 
337
338
  arguments, should_prepare_args = _get_contract_arguments(args)
338
339
 
@@ -345,7 +346,7 @@ def deploy(args: Any):
345
346
  readable=args.metadata_readable,
346
347
  payable=args.metadata_payable,
347
348
  payable_by_sc=args.metadata_payable_by_sc,
348
- gas_limit=int(args.gas_limit),
349
+ gas_limit=args.gas_limit,
349
350
  gas_price=int(args.gas_price),
350
351
  value=int(args.value),
351
352
  nonce=sender.nonce,
@@ -382,7 +383,8 @@ def call(args: Any):
382
383
  config = TransactionsFactoryConfig(chain_id)
383
384
 
384
385
  abi = Abi.load(Path(args.abi)) if args.abi else None
385
- contract = SmartContract(config, abi)
386
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
387
+ contract = SmartContract(config, abi, gas_estimator)
386
388
 
387
389
  arguments, should_prepare_args = _get_contract_arguments(args)
388
390
  contract_address = Address.new_from_bech32(args.contract)
@@ -397,7 +399,7 @@ def call(args: Any):
397
399
  function=args.function,
398
400
  arguments=arguments,
399
401
  should_prepare_args=should_prepare_args,
400
- gas_limit=int(args.gas_limit),
402
+ gas_limit=args.gas_limit,
401
403
  gas_price=int(args.gas_price),
402
404
  value=int(args.value),
403
405
  token_transfers=token_transfers,
@@ -427,7 +429,8 @@ def upgrade(args: Any):
427
429
  config = TransactionsFactoryConfig(chain_id)
428
430
 
429
431
  abi = Abi.load(Path(args.abi)) if args.abi else None
430
- contract = SmartContract(config, abi)
432
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
433
+ contract = SmartContract(config, abi, gas_estimator)
431
434
 
432
435
  arguments, should_prepare_args = _get_contract_arguments(args)
433
436
  contract_address = Address.new_from_bech32(args.contract)
@@ -442,7 +445,7 @@ def upgrade(args: Any):
442
445
  readable=args.metadata_readable,
443
446
  payable=args.metadata_payable,
444
447
  payable_by_sc=args.metadata_payable_by_sc,
445
- gas_limit=int(args.gas_limit),
448
+ gas_limit=args.gas_limit,
446
449
  gas_price=int(args.gas_price),
447
450
  value=int(args.value),
448
451
  nonce=sender.nonce,
@@ -395,7 +395,8 @@ def validate_arguments(args: Any):
395
395
  def _get_delegation_controller(args: Any):
396
396
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
397
397
  config = TransactionsFactoryConfig(chain_id)
398
- delegation = DelegationOperations(config)
398
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
399
+ delegation = DelegationOperations(config=config, gas_limit_estimator=gas_estimator)
399
400
  return delegation
400
401
 
401
402
 
@@ -408,7 +409,6 @@ def do_create_delegation_contract(args: Any):
408
409
  args=args,
409
410
  )
410
411
 
411
- gas_limit = args.gas_limit if args.gas_limit else 0
412
412
  delegation = _get_delegation_controller(args)
413
413
 
414
414
  tx = delegation.prepare_transaction_for_new_delegation_contract(
@@ -416,7 +416,7 @@ def do_create_delegation_contract(args: Any):
416
416
  native_amount=int(args.value),
417
417
  total_delegation_cap=int(args.total_delegation_cap),
418
418
  service_fee=int(args.service_fee),
419
- gas_limit=gas_limit,
419
+ gas_limit=args.gas_limit,
420
420
  gas_price=int(args.gas_price),
421
421
  nonce=sender.nonce,
422
422
  version=int(args.version),
@@ -453,7 +453,6 @@ def add_new_nodes(args: Any):
453
453
  args=args,
454
454
  )
455
455
 
456
- gas_limit = args.gas_limit if args.gas_limit else 0
457
456
  public_keys, signed_messages = _get_public_keys_and_signed_messages(args)
458
457
 
459
458
  delegation = _get_delegation_controller(args)
@@ -462,7 +461,7 @@ def add_new_nodes(args: Any):
462
461
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
463
462
  public_keys=public_keys,
464
463
  signed_messages=signed_messages,
465
- gas_limit=gas_limit,
464
+ gas_limit=args.gas_limit,
466
465
  gas_price=int(args.gas_price),
467
466
  value=int(args.value),
468
467
  nonce=sender.nonce,
@@ -502,7 +501,6 @@ def remove_nodes(args: Any):
502
501
  args=args,
503
502
  )
504
503
 
505
- gas_limit = args.gas_limit if args.gas_limit else 0
506
504
  public_keys = _load_validators_public_keys(args)
507
505
 
508
506
  delegation = _get_delegation_controller(args)
@@ -510,7 +508,7 @@ def remove_nodes(args: Any):
510
508
  owner=sender,
511
509
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
512
510
  public_keys=public_keys,
513
- gas_limit=gas_limit,
511
+ gas_limit=args.gas_limit,
514
512
  gas_price=int(args.gas_price),
515
513
  value=int(args.value),
516
514
  nonce=sender.nonce,
@@ -551,7 +549,6 @@ def stake_nodes(args: Any):
551
549
  args=args,
552
550
  )
553
551
 
554
- gas_limit = args.gas_limit if args.gas_limit else 0
555
552
  public_keys = _load_validators_public_keys(args)
556
553
 
557
554
  delegation = _get_delegation_controller(args)
@@ -559,7 +556,7 @@ def stake_nodes(args: Any):
559
556
  owner=sender,
560
557
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
561
558
  public_keys=public_keys,
562
- gas_limit=gas_limit,
559
+ gas_limit=args.gas_limit,
563
560
  gas_price=int(args.gas_price),
564
561
  value=int(args.value),
565
562
  nonce=sender.nonce,
@@ -589,7 +586,6 @@ def unbond_nodes(args: Any):
589
586
  args=args,
590
587
  )
591
588
 
592
- gas_limit = args.gas_limit if args.gas_limit else 0
593
589
  public_keys = _load_validators_public_keys(args)
594
590
 
595
591
  delegation = _get_delegation_controller(args)
@@ -597,7 +593,7 @@ def unbond_nodes(args: Any):
597
593
  owner=sender,
598
594
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
599
595
  public_keys=public_keys,
600
- gas_limit=gas_limit,
596
+ gas_limit=args.gas_limit,
601
597
  gas_price=int(args.gas_price),
602
598
  value=int(args.value),
603
599
  nonce=sender.nonce,
@@ -619,7 +615,6 @@ def unstake_nodes(args: Any):
619
615
  args=args,
620
616
  )
621
617
 
622
- gas_limit = args.gas_limit if args.gas_limit else 0
623
618
  public_keys = _load_validators_public_keys(args)
624
619
 
625
620
  delegation = _get_delegation_controller(args)
@@ -627,7 +622,7 @@ def unstake_nodes(args: Any):
627
622
  owner=sender,
628
623
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
629
624
  public_keys=public_keys,
630
- gas_limit=gas_limit,
625
+ gas_limit=args.gas_limit,
631
626
  gas_price=int(args.gas_price),
632
627
  value=int(args.value),
633
628
  nonce=sender.nonce,
@@ -649,7 +644,6 @@ def unjail_nodes(args: Any):
649
644
  args=args,
650
645
  )
651
646
 
652
- gas_limit = args.gas_limit if args.gas_limit else 0
653
647
  public_keys = _load_validators_public_keys(args)
654
648
 
655
649
  delegation = _get_delegation_controller(args)
@@ -657,7 +651,7 @@ def unjail_nodes(args: Any):
657
651
  owner=sender,
658
652
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
659
653
  public_keys=public_keys,
660
- gas_limit=gas_limit,
654
+ gas_limit=args.gas_limit,
661
655
  gas_price=int(args.gas_price),
662
656
  value=int(args.value),
663
657
  nonce=sender.nonce,
@@ -678,16 +672,13 @@ def delegate(args: Any):
678
672
  args=args,
679
673
  )
680
674
 
681
- gas_limit = args.gas_limit if args.gas_limit else 0
682
- value = int(args.value)
683
-
684
675
  delegation = _get_delegation_controller(args)
685
676
  tx = delegation.prepare_transaction_for_delegating(
686
677
  owner=sender,
687
678
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
688
- gas_limit=gas_limit,
679
+ gas_limit=args.gas_limit,
689
680
  gas_price=int(args.gas_price),
690
- value=value,
681
+ value=int(args.value),
691
682
  nonce=sender.nonce,
692
683
  version=int(args.version),
693
684
  options=int(args.options),
@@ -706,13 +697,11 @@ def claim_rewards(args: Any):
706
697
  args=args,
707
698
  )
708
699
 
709
- gas_limit = args.gas_limit if args.gas_limit else 0
710
-
711
700
  delegation = _get_delegation_controller(args)
712
701
  tx = delegation.prepare_transaction_for_claiming_rewards(
713
702
  owner=sender,
714
703
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
715
- gas_limit=gas_limit,
704
+ gas_limit=args.gas_limit,
716
705
  gas_price=int(args.gas_price),
717
706
  value=int(args.value),
718
707
  nonce=sender.nonce,
@@ -732,13 +721,11 @@ def redelegate_rewards(args: Any):
732
721
  args=args,
733
722
  )
734
723
 
735
- gas_limit = args.gas_limit if args.gas_limit else 0
736
-
737
724
  delegation = _get_delegation_controller(args)
738
725
  tx = delegation.prepare_transaction_for_redelegating_rewards(
739
726
  owner=sender,
740
727
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
741
- gas_limit=gas_limit,
728
+ gas_limit=args.gas_limit,
742
729
  gas_price=int(args.gas_price),
743
730
  value=int(args.value),
744
731
  nonce=sender.nonce,
@@ -758,16 +745,13 @@ def undelegate(args: Any):
758
745
  args=args,
759
746
  )
760
747
 
761
- gas_limit = args.gas_limit if args.gas_limit else 0
762
- value = int(args.value)
763
-
764
748
  delegation = _get_delegation_controller(args)
765
749
  tx = delegation.prepare_transaction_for_undelegating(
766
750
  owner=sender,
767
751
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
768
- gas_limit=gas_limit,
752
+ gas_limit=args.gas_limit,
769
753
  gas_price=int(args.gas_price),
770
- value=value,
754
+ value=int(args.value),
771
755
  nonce=sender.nonce,
772
756
  version=int(args.version),
773
757
  options=int(args.options),
@@ -786,13 +770,11 @@ def withdraw(args: Any):
786
770
  args=args,
787
771
  )
788
772
 
789
- gas_limit = args.gas_limit if args.gas_limit else 0
790
-
791
773
  delegation = _get_delegation_controller(args)
792
774
  tx = delegation.prepare_transaction_for_withdrawing(
793
775
  owner=sender,
794
776
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
795
- gas_limit=gas_limit,
777
+ gas_limit=args.gas_limit,
796
778
  gas_price=int(args.gas_price),
797
779
  value=int(args.value),
798
780
  nonce=sender.nonce,
@@ -813,14 +795,12 @@ def change_service_fee(args: Any):
813
795
  args=args,
814
796
  )
815
797
 
816
- gas_limit = args.gas_limit if args.gas_limit else 0
817
-
818
798
  delegation = _get_delegation_controller(args)
819
799
  tx = delegation.prepare_transaction_for_changing_service_fee(
820
800
  owner=sender,
821
801
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
822
802
  service_fee=int(args.service_fee),
823
- gas_limit=gas_limit,
803
+ gas_limit=args.gas_limit,
824
804
  gas_price=int(args.gas_price),
825
805
  value=int(args.value),
826
806
  nonce=sender.nonce,
@@ -841,14 +821,12 @@ def modify_delegation_cap(args: Any):
841
821
  args=args,
842
822
  )
843
823
 
844
- gas_limit = args.gas_limit if args.gas_limit else 0
845
-
846
824
  delegation = _get_delegation_controller(args)
847
825
  tx = delegation.prepare_transaction_for_modifying_delegation_cap(
848
826
  owner=sender,
849
827
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
850
828
  delegation_cap=int(args.delegation_cap),
851
- gas_limit=gas_limit,
829
+ gas_limit=args.gas_limit,
852
830
  gas_price=int(args.gas_price),
853
831
  value=int(args.value),
854
832
  nonce=sender.nonce,
@@ -869,15 +847,13 @@ def automatic_activation(args: Any):
869
847
  args=args,
870
848
  )
871
849
 
872
- gas_limit = args.gas_limit if args.gas_limit else 0
873
-
874
850
  delegation = _get_delegation_controller(args)
875
851
  tx = delegation.prepare_transaction_for_automatic_activation(
876
852
  owner=sender,
877
853
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
878
854
  set=args.set,
879
855
  unset=args.unset,
880
- gas_limit=gas_limit,
856
+ gas_limit=args.gas_limit,
881
857
  gas_price=int(args.gas_price),
882
858
  value=int(args.value),
883
859
  nonce=sender.nonce,
@@ -898,15 +874,13 @@ def redelegate_cap(args: Any):
898
874
  args=args,
899
875
  )
900
876
 
901
- gas_limit = args.gas_limit if args.gas_limit else 0
902
-
903
877
  delegation = _get_delegation_controller(args)
904
878
  tx = delegation.prepare_transaction_for_redelegate_cap(
905
879
  owner=sender,
906
880
  delegation_contract=Address.new_from_bech32(args.delegation_contract),
907
881
  set=args.set,
908
882
  unset=args.unset,
909
- gas_limit=gas_limit,
883
+ gas_limit=args.gas_limit,
910
884
  gas_price=int(args.gas_price),
911
885
  value=int(args.value),
912
886
  nonce=sender.nonce,
@@ -927,8 +901,6 @@ def set_metadata(args: Any):
927
901
  args=args,
928
902
  )
929
903
 
930
- gas_limit = args.gas_limit if args.gas_limit else 0
931
-
932
904
  delegation = _get_delegation_controller(args)
933
905
  tx = delegation.prepare_transaction_for_setting_metadata(
934
906
  owner=sender,
@@ -936,7 +908,7 @@ def set_metadata(args: Any):
936
908
  name=args.name,
937
909
  website=args.website,
938
910
  identifier=args.identifier,
939
- gas_limit=gas_limit,
911
+ gas_limit=args.gas_limit,
940
912
  gas_price=int(args.gas_price),
941
913
  value=int(args.value),
942
914
  nonce=sender.nonce,
@@ -957,14 +929,12 @@ def make_new_contract_from_validator_data(args: Any):
957
929
  args=args,
958
930
  )
959
931
 
960
- gas_limit = args.gas_limit if args.gas_limit else 0
961
-
962
932
  delegation = _get_delegation_controller(args)
963
933
  tx = delegation.prepare_transaction_for_creating_delegation_contract_from_validator(
964
934
  owner=sender,
965
935
  max_cap=args.max_cap,
966
936
  service_fee=args.fee,
967
- gas_limit=gas_limit,
937
+ gas_limit=args.gas_limit,
968
938
  gas_price=int(args.gas_price),
969
939
  value=int(args.value),
970
940
  nonce=sender.nonce,
@@ -205,9 +205,9 @@ def create_proposal(args: Any):
205
205
  args=args,
206
206
  )
207
207
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
208
- gas_limit = args.gas_limit if args.gas_limit else 0
208
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
209
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
209
210
 
210
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
211
211
  transaction = controller.create_transaction_for_new_proposal(
212
212
  sender=sender,
213
213
  nonce=sender.nonce,
@@ -215,7 +215,7 @@ def create_proposal(args: Any):
215
215
  start_vote_epoch=args.start_vote_epoch,
216
216
  end_vote_epoch=args.end_vote_epoch,
217
217
  native_token_amount=args.value,
218
- gas_limit=gas_limit,
218
+ gas_limit=args.gas_limit,
219
219
  gas_price=args.gas_price,
220
220
  version=args.version,
221
221
  options=args.options,
@@ -234,15 +234,15 @@ def vote(args: Any):
234
234
  args=args,
235
235
  )
236
236
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
237
- gas_limit = args.gas_limit if args.gas_limit else 0
237
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
238
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
238
239
 
239
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
240
240
  transaction = controller.create_transaction_for_voting(
241
241
  sender=sender,
242
242
  nonce=sender.nonce,
243
243
  proposal_nonce=args.proposal_nonce,
244
244
  vote=args.vote,
245
- gas_limit=gas_limit,
245
+ gas_limit=args.gas_limit,
246
246
  gas_price=args.gas_price,
247
247
  version=args.version,
248
248
  options=args.options,
@@ -261,14 +261,14 @@ def close_proposal(args: Any):
261
261
  args=args,
262
262
  )
263
263
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
264
- gas_limit = args.gas_limit if args.gas_limit else 0
264
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
265
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
265
266
 
266
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
267
267
  transaction = controller.create_transaction_for_closing_proposal(
268
268
  sender=sender,
269
269
  nonce=sender.nonce,
270
270
  proposal_nonce=args.proposal_nonce,
271
- gas_limit=gas_limit,
271
+ gas_limit=args.gas_limit,
272
272
  gas_price=args.gas_price,
273
273
  version=args.version,
274
274
  options=args.options,
@@ -287,15 +287,15 @@ def clear_ended_proposals(args: Any):
287
287
  args=args,
288
288
  )
289
289
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
290
- gas_limit = args.gas_limit if args.gas_limit else 0
291
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
290
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
291
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
292
292
 
293
293
  proposers = [Address.new_from_bech32(proposer) for proposer in args.proposers]
294
294
  transaction = controller.create_transaction_for_clearing_ended_proposals(
295
295
  sender=sender,
296
296
  nonce=sender.nonce,
297
297
  proposers=proposers,
298
- gas_limit=gas_limit,
298
+ gas_limit=args.gas_limit,
299
299
  gas_price=args.gas_price,
300
300
  version=args.version,
301
301
  options=args.options,
@@ -314,13 +314,13 @@ def claim_accumulated_fees(args: Any):
314
314
  args=args,
315
315
  )
316
316
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
317
- gas_limit = args.gas_limit if args.gas_limit else 0
317
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
318
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
318
319
 
319
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
320
320
  transaction = controller.create_transaction_for_claiming_accumulated_fees(
321
321
  sender=sender,
322
322
  nonce=sender.nonce,
323
- gas_limit=gas_limit,
323
+ gas_limit=args.gas_limit,
324
324
  gas_price=args.gas_price,
325
325
  version=args.version,
326
326
  options=args.options,
@@ -339,9 +339,9 @@ def change_config(args: Any):
339
339
  args=args,
340
340
  )
341
341
  chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
342
- gas_limit = args.gas_limit if args.gas_limit else 0
342
+ gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
343
+ controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
343
344
 
344
- controller = GovernanceWrapper(TransactionsFactoryConfig(chain_id))
345
345
  transaction = controller.create_transaction_for_changing_config(
346
346
  sender=sender,
347
347
  nonce=sender.nonce,
@@ -350,7 +350,7 @@ def change_config(args: Any):
350
350
  min_quorum=args.min_quorum,
351
351
  min_veto_threshold=args.min_veto_threshold,
352
352
  min_pass_threshold=args.min_pass_threshold,
353
- gas_limit=gas_limit,
353
+ gas_limit=args.gas_limit,
354
354
  gas_price=args.gas_price,
355
355
  version=args.version,
356
356
  options=args.options,