2
2
import logging
3
3
import os
4
4
from pathlib import Path
5
- from typing import Any, Union
5
+ from typing import Any
6
6
7
7
from multiversx_sdk import (
8
8
Address,
19
19
from multiversx_sdk_cli.constants import NUMBER_OF_SHARDS
20
20
from multiversx_sdk_cli.contract_verification import trigger_contract_verification
21
21
from multiversx_sdk_cli.contracts import SmartContract
22
- from multiversx_sdk_cli.cosign_transaction import cosign_transaction
23
22
from multiversx_sdk_cli.docker import is_docker_installed, run_docker
24
23
from multiversx_sdk_cli.errors import DockerMissingError
25
- from multiversx_sdk_cli.interfaces import IAccount
26
24
from multiversx_sdk_cli.ux import show_warning
27
25
28
26
logger = logging.getLogger("cli.contracts")
@@ -338,13 +336,13 @@ def build(args: Any):
338
336
339
337
def deploy(args: Any):
340
338
logger.debug("deploy")
341
- cli_shared.check_guardian_and_options_args (args)
339
+ cli_shared.check_guardian_args (args)
342
340
cli_shared.check_broadcast_args(args)
343
341
cli_shared.prepare_chain_id_in_args(args)
344
342
345
343
sender = cli_shared.prepare_account(args)
346
344
347
- if not args.nonce:
345
+ if args.nonce is None :
348
346
nonce = cli_shared.get_current_nonce_for_address(sender.address, args.proxy)
349
347
else:
350
348
nonce = int(args.nonce)
@@ -375,11 +373,13 @@ def deploy(args: Any):
375
373
nonce=nonce,
376
374
version=int(args.version),
377
375
options=int(args.options),
378
- guardian=guardian_address,
379
- relayer=relayer_address,
376
+ guardian_account=guardian,
377
+ guardian_address=guardian_address,
378
+ relayer_account=relayer,
379
+ relayer_address=relayer_address,
380
+ guardian_service_url=args.guardian_service_url,
381
+ guardian_2fa_code=args.guardian_2fa_code,
380
382
)
381
- tx = _sign_guarded_tx_if_guardian(guardian, args, tx)
382
- _sign_relayed_tx_if_relayer(relayer, tx)
383
383
384
384
address_computer = AddressComputer(NUMBER_OF_SHARDS)
385
385
contract_address = address_computer.compute_contract_address(deployer=sender.address, deployment_nonce=tx.nonce)
@@ -390,29 +390,15 @@ def deploy(args: Any):
390
390
_send_or_simulate(tx, contract_address, args)
391
391
392
392
393
- def _sign_guarded_tx_if_guardian(guardian: Union[IAccount, None], args: Any, tx: Transaction) -> Transaction:
394
- if guardian:
395
- tx.guardian_signature = guardian.sign_transaction(tx)
396
- elif tx.guardian and args.guardian_service_url and args.guardian_2fa_code:
397
- tx = cosign_transaction(tx, args.guardian_service_url, args.guardian_2fa_code)
398
-
399
- return tx
400
-
401
-
402
- def _sign_relayed_tx_if_relayer(relayer: Union[IAccount, None], tx: Transaction):
403
- if relayer and tx.relayer:
404
- tx.relayer_signature = relayer.sign_transaction(tx)
405
-
406
-
407
393
def call(args: Any):
408
394
logger.debug("call")
409
- cli_shared.check_guardian_and_options_args (args)
395
+ cli_shared.check_guardian_args (args)
410
396
cli_shared.check_broadcast_args(args)
411
397
cli_shared.prepare_chain_id_in_args(args)
412
398
413
399
sender = cli_shared.prepare_account(args)
414
400
415
- if not args.nonce:
401
+ if args.nonce is None :
416
402
nonce = cli_shared.get_current_nonce_for_address(sender.address, args.proxy)
417
403
else:
418
404
nonce = int(args.nonce)
@@ -442,24 +428,26 @@ def call(args: Any):
442
428
nonce=nonce,
443
429
version=int(args.version),
444
430
options=int(args.options),
445
- guardian=guardian_address,
446
- relayer=relayer_address,
431
+ guardian_account=guardian,
432
+ guardian_address=guardian_address,
433
+ relayer_account=relayer,
434
+ relayer_address=relayer_address,
435
+ guardian_service_url=args.guardian_service_url,
436
+ guardian_2fa_code=args.guardian_2fa_code,
447
437
)
448
- tx = _sign_guarded_tx_if_guardian(guardian, args, tx)
449
- _sign_relayed_tx_if_relayer(relayer, tx)
450
438
451
439
_send_or_simulate(tx, contract_address, args)
452
440
453
441
454
442
def upgrade(args: Any):
455
443
logger.debug("upgrade")
456
- cli_shared.check_guardian_and_options_args (args)
444
+ cli_shared.check_guardian_args (args)
457
445
cli_shared.check_broadcast_args(args)
458
446
cli_shared.prepare_chain_id_in_args(args)
459
447
460
448
sender = cli_shared.prepare_account(args)
461
449
462
- if not args.nonce:
450
+ if args.nonce is None :
463
451
nonce = cli_shared.get_current_nonce_for_address(sender.address, args.proxy)
464
452
else:
465
453
nonce = int(args.nonce)
@@ -492,11 +480,13 @@ def upgrade(args: Any):
492
480
nonce=nonce,
493
481
version=int(args.version),
494
482
options=int(args.options),
495
- guardian=guardian_address,
496
- relayer=relayer_address,
483
+ guardian_account=guardian,
484
+ guardian_address=guardian_address,
485
+ relayer_account=relayer,
486
+ relayer_address=relayer_address,
487
+ guardian_service_url=args.guardian_service_url,
488
+ guardian_2fa_code=args.guardian_2fa_code,
497
489
)
498
- tx = _sign_guarded_tx_if_guardian(guardian, args, tx)
499
- _sign_relayed_tx_if_relayer(relayer, tx)
500
490
501
491
_send_or_simulate(tx, contract_address, args)
502
492
0 commit comments