Skip to content

Commit f69d085

Browse files
committed
tests and fixes
1 parent 8969b91 commit f69d085

2 files changed

Lines changed: 715 additions & 39 deletions

File tree

multiversx_sdk_cli/cli_multisig.py

Lines changed: 65 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
AddressComputer,
99
MultisigController,
1010
ProxyNetworkProvider,
11-
SmartContractController,
1211
Token,
1312
TokenComputer,
1413
TokenTransfer,
@@ -26,6 +25,7 @@
2625
validate_transaction_args,
2726
)
2827
from multiversx_sdk_cli.cli_output import CLIOutputBuilder
28+
from multiversx_sdk_cli.config import get_config_for_network_providers
2929
from multiversx_sdk_cli.constants import NUMBER_OF_SHARDS
3030
from multiversx_sdk_cli.multisig import MultisigWrapper
3131

@@ -999,6 +999,8 @@ def setup_parser(args: list[str], subparsers: Any) -> Any:
999999
_add_action_id_arg(sub)
10001000
cli_shared.add_proxy_arg(sub)
10011001

1002+
sub.set_defaults(func=get_action_signers)
1003+
10021004
sub = cli_shared.add_command_subparser(
10031005
subparsers,
10041006
"multisig",
@@ -1449,6 +1451,9 @@ def transfer_and_execute_esdt(args: Any):
14491451
if int(args.value) != 0:
14501452
raise Exception("Native token transfer is not allowed for this command.")
14511453

1454+
if not args.token_transfers:
1455+
raise Exception("Token transfers not provided.")
1456+
14521457
sender = cli_shared.prepare_sender(args)
14531458
guardian_and_relayer_data = cli_shared.get_guardian_and_relayer_data(
14541459
sender=sender.address.to_bech32(),
@@ -1512,7 +1517,10 @@ def async_call(args: Any):
15121517
function = args.function if args.function else None
15131518
contract_abi = Abi.load(Path(args.contract_abi)) if args.contract_abi else None
15141519
arguments, should_prepare_args = _get_contract_arguments(args)
1515-
token_transfers = _prepare_token_transfers(args.token_transfers)
1520+
1521+
token_transfers = args.token_transfers or None
1522+
if token_transfers:
1523+
token_transfers = _prepare_token_transfers(args.token_transfers)
15161524

15171525
tx = multisig.prepare_async_call_transaction(
15181526
owner=sender,
@@ -1939,7 +1947,8 @@ def get_quorum(args: Any):
19391947
validate_proxy_argument(args)
19401948

19411949
abi = Abi.load(Path(args.abi))
1942-
proxy = ProxyNetworkProvider(args.proxy)
1950+
config = get_config_for_network_providers()
1951+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
19431952
chain_id = proxy.get_network_config().chain_id
19441953
multisig = MultisigController(chain_id, proxy, abi)
19451954

@@ -1951,7 +1960,8 @@ def get_num_board_members(args: Any):
19511960
validate_proxy_argument(args)
19521961

19531962
abi = Abi.load(Path(args.abi))
1954-
proxy = ProxyNetworkProvider(args.proxy)
1963+
config = get_config_for_network_providers()
1964+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
19551965
chain_id = proxy.get_network_config().chain_id
19561966
multisig = MultisigController(chain_id, proxy, abi)
19571967

@@ -1963,7 +1973,8 @@ def get_num_groups(args: Any):
19631973
validate_proxy_argument(args)
19641974

19651975
abi = Abi.load(Path(args.abi))
1966-
proxy = ProxyNetworkProvider(args.proxy)
1976+
config = get_config_for_network_providers()
1977+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
19671978
chain_id = proxy.get_network_config().chain_id
19681979
multisig = MultisigController(chain_id, proxy, abi)
19691980

@@ -1975,7 +1986,8 @@ def get_num_proposers(args: Any):
19751986
validate_proxy_argument(args)
19761987

19771988
abi = Abi.load(Path(args.abi))
1978-
proxy = ProxyNetworkProvider(args.proxy)
1989+
config = get_config_for_network_providers()
1990+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
19791991
chain_id = proxy.get_network_config().chain_id
19801992
multisig = MultisigController(chain_id, proxy, abi)
19811993

@@ -1987,7 +1999,8 @@ def get_action_group(args: Any):
19871999
validate_proxy_argument(args)
19882000

19892001
abi = Abi.load(Path(args.abi))
1990-
proxy = ProxyNetworkProvider(args.proxy)
2002+
config = get_config_for_network_providers()
2003+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
19912004
chain_id = proxy.get_network_config().chain_id
19922005
multisig = MultisigController(chain_id, proxy, abi)
19932006

@@ -1999,7 +2012,8 @@ def get_last_group_action_id(args: Any):
19992012
validate_proxy_argument(args)
20002013

20012014
abi = Abi.load(Path(args.abi))
2002-
proxy = ProxyNetworkProvider(args.proxy)
2015+
config = get_config_for_network_providers()
2016+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20032017
chain_id = proxy.get_network_config().chain_id
20042018
multisig = MultisigController(chain_id, proxy, abi)
20052019

@@ -2011,7 +2025,8 @@ def get_action_last_index(args: Any):
20112025
validate_proxy_argument(args)
20122026

20132027
abi = Abi.load(Path(args.abi))
2014-
proxy = ProxyNetworkProvider(args.proxy)
2028+
config = get_config_for_network_providers()
2029+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20152030
chain_id = proxy.get_network_config().chain_id
20162031
multisig = MultisigController(chain_id, proxy, abi)
20172032

@@ -2023,7 +2038,8 @@ def is_signed_by(args: Any):
20232038
validate_proxy_argument(args)
20242039

20252040
abi = Abi.load(Path(args.abi))
2026-
proxy = ProxyNetworkProvider(args.proxy)
2041+
config = get_config_for_network_providers()
2042+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20272043
chain_id = proxy.get_network_config().chain_id
20282044
multisig = MultisigController(chain_id, proxy, abi)
20292045

@@ -2039,7 +2055,8 @@ def is_quorum_reached(args: Any):
20392055
validate_proxy_argument(args)
20402056

20412057
abi = Abi.load(Path(args.abi))
2042-
proxy = ProxyNetworkProvider(args.proxy)
2058+
config = get_config_for_network_providers()
2059+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20432060
chain_id = proxy.get_network_config().chain_id
20442061
multisig = MultisigController(chain_id, proxy, abi)
20452062

@@ -2051,19 +2068,17 @@ def is_quorum_reached(args: Any):
20512068

20522069

20532070
def get_pending_actions_full_info(args: Any):
2071+
# TODO: needs fix
20542072
validate_proxy_argument(args)
20552073

20562074
abi = Abi.load(Path(args.abi))
2057-
proxy = ProxyNetworkProvider(args.proxy)
2075+
config = get_config_for_network_providers()
2076+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20582077
chain_id = proxy.get_network_config().chain_id
2059-
controller = SmartContractController(chain_id, proxy, abi)
2060-
20612078
contract = Address.new_from_bech32(args.contract)
2062-
[values] = controller.query(
2063-
contract=contract,
2064-
function="getPendingActionFullInfo",
2065-
arguments=[None],
2066-
)
2079+
2080+
controller = MultisigController(chain_id, proxy, abi)
2081+
values = controller.get_pending_actions_full_info(contract)
20672082

20682083
print(values)
20692084

@@ -2072,7 +2087,8 @@ def get_user_role(args: Any):
20722087
validate_proxy_argument(args)
20732088

20742089
abi = Abi.load(Path(args.abi))
2075-
proxy = ProxyNetworkProvider(args.proxy)
2090+
config = get_config_for_network_providers()
2091+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20762092
chain_id = proxy.get_network_config().chain_id
20772093
multisig = MultisigController(chain_id, proxy, abi)
20782094

@@ -2087,58 +2103,65 @@ def get_all_board_members(args: Any):
20872103
validate_proxy_argument(args)
20882104

20892105
abi = Abi.load(Path(args.abi))
2090-
proxy = ProxyNetworkProvider(args.proxy)
2106+
config = get_config_for_network_providers()
2107+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
20912108
chain_id = proxy.get_network_config().chain_id
20922109
multisig = MultisigController(chain_id, proxy, abi)
20932110

20942111
contract = Address.new_from_bech32(args.contract)
20952112

20962113
board_members = multisig.get_all_board_members(contract)
2097-
print("Board members:")
2098-
for member in board_members:
2099-
print(f" - {member.to_bech32()}")
2114+
if not board_members:
2115+
print(None)
2116+
else:
2117+
print("Board members:")
2118+
for member in board_members:
2119+
print(f" - {member.to_bech32()}")
21002120

21012121

21022122
def get_all_proposers(args: Any):
21032123
validate_proxy_argument(args)
21042124

21052125
abi = Abi.load(Path(args.abi))
2106-
proxy = ProxyNetworkProvider(args.proxy)
2126+
config = get_config_for_network_providers()
2127+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21072128
chain_id = proxy.get_network_config().chain_id
21082129
multisig = MultisigController(chain_id, proxy, abi)
21092130

21102131
contract = Address.new_from_bech32(args.contract)
21112132

21122133
proposers = multisig.get_all_proposers(contract)
2113-
print("Proposers:")
2114-
for proposer in proposers:
2115-
print(f" - {proposer.to_bech32()}")
2134+
if not proposers:
2135+
print(None)
2136+
else:
2137+
print("Proposers:")
2138+
for proposer in proposers:
2139+
print(f" - {proposer.to_bech32()}")
21162140

21172141

21182142
def get_action_data(args: Any):
2143+
# TODO: needs fix
21192144
validate_proxy_argument(args)
21202145

21212146
abi = Abi.load(Path(args.abi))
2122-
proxy = ProxyNetworkProvider(args.proxy)
2147+
config = get_config_for_network_providers()
2148+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21232149
chain_id = proxy.get_network_config().chain_id
2124-
controller = SmartContractController(chain_id, proxy, abi)
2150+
controller = MultisigController(chain_id, proxy, abi)
21252151

21262152
contract = Address.new_from_bech32(args.contract)
21272153
action = args.action
21282154

2129-
[value] = controller.query(
2130-
contract=contract,
2131-
function="getActionData",
2132-
arguments=[action],
2133-
)
2155+
value = controller.get_action_data(contract=contract, action_id=action)
21342156
print(value)
21352157

21362158

21372159
def get_action_signers(args: Any):
21382160
validate_proxy_argument(args)
21392161

21402162
abi = Abi.load(Path(args.abi))
2141-
proxy = ProxyNetworkProvider(args.proxy)
2163+
config = get_config_for_network_providers()
2164+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21422165
chain_id = proxy.get_network_config().chain_id
21432166
multisig = MultisigController(chain_id, proxy, abi)
21442167

@@ -2155,7 +2178,8 @@ def get_action_signer_count(args: Any):
21552178
validate_proxy_argument(args)
21562179

21572180
abi = Abi.load(Path(args.abi))
2158-
proxy = ProxyNetworkProvider(args.proxy)
2181+
config = get_config_for_network_providers()
2182+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21592183
chain_id = proxy.get_network_config().chain_id
21602184
multisig = MultisigController(chain_id, proxy, abi)
21612185

@@ -2170,7 +2194,8 @@ def get_action_valid_signer_count(args: Any):
21702194
validate_proxy_argument(args)
21712195

21722196
abi = Abi.load(Path(args.abi))
2173-
proxy = ProxyNetworkProvider(args.proxy)
2197+
config = get_config_for_network_providers()
2198+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21742199
chain_id = proxy.get_network_config().chain_id
21752200
multisig = MultisigController(chain_id, proxy, abi)
21762201

@@ -2185,7 +2210,8 @@ def parse_proposal(args: Any):
21852210
validate_proxy_argument(args)
21862211

21872212
abi = Abi.load(Path(args.abi))
2188-
proxy = ProxyNetworkProvider(args.proxy)
2213+
config = get_config_for_network_providers()
2214+
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
21892215
chain_id = proxy.get_network_config().chain_id
21902216
multisig = MultisigController(chain_id, proxy, abi)
21912217

0 commit comments

Comments
 (0)