Skip to content

Commit fe10fa9

Browse files
committed
Merge branch 'multisig-refactoring' into remove-validators-wrapper
2 parents e8f0f46 + 7d081d6 commit fe10fa9

17 files changed

Lines changed: 4251 additions & 321 deletions

.github/workflows/test-localnet-tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
nohup python3 -m multiversx_sdk_cli.cli localnet start --configfile=./multiversx_sdk_cli/tests/testdata/localnet_with_resolution_remote.toml > localnet.log 2>&1 & echo $! > localnet.pid
5353
sleep 120
5454
55-
# - name: Test localnet dependent tests
56-
# run: |
57-
# pytest -m require_localnet .
58-
# python3 -m multiversx_sdk_cli.cli localnet clean --configfile=./multiversx_sdk_cli/tests/testdata/localnet_with_resolution_remote.toml
55+
- name: Test localnet dependent tests
56+
run: |
57+
pytest -m require_localnet .
58+
python3 -m multiversx_sdk_cli.cli localnet clean --configfile=./multiversx_sdk_cli/tests/testdata/localnet_with_resolution_remote.toml

.github/workflows/test-localnet.yml

Lines changed: 0 additions & 84 deletions
This file was deleted.

multiversx_sdk_cli/cli.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import multiversx_sdk_cli.cli_ledger
2424
import multiversx_sdk_cli.cli_localnet
2525
import multiversx_sdk_cli.cli_multisig
26+
import multiversx_sdk_cli.cli_tokens
2627
import multiversx_sdk_cli.cli_transactions
2728
import multiversx_sdk_cli.cli_validator_wallet
2829
import multiversx_sdk_cli.cli_validators
@@ -142,6 +143,7 @@ def setup_parser(args: list[str]):
142143
commands.append(multiversx_sdk_cli.cli_governance.setup_parser(args, subparsers))
143144
commands.append(multiversx_sdk_cli.cli_config_env.setup_parser(subparsers))
144145
commands.append(multiversx_sdk_cli.cli_get.setup_parser(subparsers))
146+
commands.append(multiversx_sdk_cli.cli_tokens.setup_parser(args, subparsers))
145147

146148
parser.epilog = """
147149
----------------------

multiversx_sdk_cli/cli_contracts.py

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
from multiversx_sdk_cli.constants import NUMBER_OF_SHARDS
3131
from multiversx_sdk_cli.contract_verification import trigger_contract_verification
3232
from multiversx_sdk_cli.docker import is_docker_installed, run_docker
33-
from multiversx_sdk_cli.errors import DockerMissingError, QueryContractError
34-
from multiversx_sdk_cli.guardian_relayer_data import GuardianRelayerData
35-
from multiversx_sdk_cli.signing_wrapper import SigningWrapper
33+
from multiversx_sdk_cli.errors import BadUsage, DockerMissingError, QueryContractError
3634
from multiversx_sdk_cli.ux import show_warning
3735

3836
logger = logging.getLogger("cli.contracts")
@@ -334,13 +332,9 @@ def _initialize_controller(args: Any) -> SmartContractController:
334332
)
335333

336334

337-
def _sign_transaction(transaction: Transaction, sender: Any, guardian_and_relayer_data: GuardianRelayerData):
338-
signer = SigningWrapper()
339-
signer.sign_transaction(
340-
transaction=transaction,
341-
sender=sender,
342-
guardian_and_relayer=guardian_and_relayer_data,
343-
)
335+
def _ensure_args_for_gas_estimation(args: Any):
336+
if not args.proxy and not args.gas_limit:
337+
raise BadUsage("To estimate the gas limit, you need to provide `--proxy` or set a value using `--gas-limit`")
344338

345339

346340
def deploy(args: Any):
@@ -350,6 +344,8 @@ def deploy(args: Any):
350344
validate_broadcast_args(args)
351345
validate_chain_id_args(args)
352346

347+
_ensure_args_for_gas_estimation(args)
348+
353349
sender = cli_shared.prepare_sender(args)
354350
guardian_and_relayer_data = cli_shared.get_guardian_and_relayer_data(
355351
sender=sender.address.to_bech32(),
@@ -371,8 +367,8 @@ def deploy(args: Any):
371367
is_readable=args.metadata_readable,
372368
is_payable=args.metadata_payable,
373369
is_payable_by_sc=args.metadata_payable_by_sc,
374-
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
375-
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
370+
guardian=guardian_and_relayer_data.guardian_address,
371+
relayer=guardian_and_relayer_data.relayer_address,
376372
gas_limit=args.gas_limit,
377373
gas_price=args.gas_price,
378374
)
@@ -384,12 +380,17 @@ def deploy(args: Any):
384380

385381
cli_config = MxpyEnv.from_active_env()
386382
utils.log_explorer_contract_address(
387-
chain=controller.factory.config.chain_id,
383+
chain=cli_shared.get_chain_id(args.proxy, args.chain),
388384
address=contract_address.to_bech32(),
389385
explorer_url=cli_config.explorer_url,
390386
)
391387

392-
_sign_transaction(tx, sender, guardian_and_relayer_data)
388+
cli_shared.alter_transaction_and_sign_again_if_needed(
389+
args=args,
390+
tx=tx,
391+
sender=sender,
392+
guardian_and_relayer_data=guardian_and_relayer_data,
393+
)
393394
_send_or_simulate(tx, contract_address, args)
394395

395396

@@ -400,6 +401,8 @@ def call(args: Any):
400401
validate_broadcast_args(args)
401402
validate_chain_id_args(args)
402403

404+
_ensure_args_for_gas_estimation(args)
405+
403406
sender = cli_shared.prepare_sender(args)
404407
guardian_and_relayer_data = cli_shared.get_guardian_and_relayer_data(
405408
sender=sender.address.to_bech32(),
@@ -425,13 +428,18 @@ def call(args: Any):
425428
arguments=arguments,
426429
native_transfer_amount=int(args.value),
427430
token_transfers=token_transfers,
428-
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
429-
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
431+
guardian=guardian_and_relayer_data.guardian_address,
432+
relayer=guardian_and_relayer_data.relayer_address,
430433
gas_limit=args.gas_limit,
431434
gas_price=args.gas_price,
432435
)
433436

434-
_sign_transaction(tx, sender, guardian_and_relayer_data)
437+
cli_shared.alter_transaction_and_sign_again_if_needed(
438+
args=args,
439+
tx=tx,
440+
sender=sender,
441+
guardian_and_relayer_data=guardian_and_relayer_data,
442+
)
435443
_send_or_simulate(tx, contract_address, args)
436444

437445

@@ -442,6 +450,8 @@ def upgrade(args: Any):
442450
validate_broadcast_args(args)
443451
validate_chain_id_args(args)
444452

453+
_ensure_args_for_gas_estimation(args)
454+
445455
sender = cli_shared.prepare_sender(args)
446456
guardian_and_relayer_data = cli_shared.get_guardian_and_relayer_data(
447457
sender=sender.address.to_bech32(),
@@ -466,13 +476,18 @@ def upgrade(args: Any):
466476
is_readable=args.metadata_readable,
467477
is_payable=args.metadata_payable,
468478
is_payable_by_sc=args.metadata_payable_by_sc,
469-
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
470-
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
479+
guardian=guardian_and_relayer_data.guardian_address,
480+
relayer=guardian_and_relayer_data.relayer_address,
471481
gas_limit=args.gas_limit,
472482
gas_price=args.gas_price,
473483
)
474484

475-
_sign_transaction(tx, sender, guardian_and_relayer_data)
485+
cli_shared.alter_transaction_and_sign_again_if_needed(
486+
args=args,
487+
tx=tx,
488+
sender=sender,
489+
guardian_and_relayer_data=guardian_and_relayer_data,
490+
)
476491
_send_or_simulate(tx, contract_address, args)
477492

478493

0 commit comments

Comments
 (0)