Skip to content

Commit 340674a

Browse files
committed
remove governance wrapper
1 parent ccb1102 commit 340674a

2 files changed

Lines changed: 63 additions & 325 deletions

File tree

multiversx_sdk_cli/cli_governance.py

Lines changed: 63 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
GovernanceController,
88
ProposalInfo,
99
ProxyNetworkProvider,
10-
TransactionsFactoryConfig,
10+
Transaction,
11+
VoteType,
1112
)
1213

1314
from multiversx_sdk_cli import cli_shared, utils
@@ -18,7 +19,10 @@
1819
)
1920
from multiversx_sdk_cli.cli_output import CLIOutputBuilder
2021
from multiversx_sdk_cli.config import get_config_for_network_providers
21-
from multiversx_sdk_cli.governance import GovernanceWrapper
22+
from multiversx_sdk_cli.config_env import get_address_hrp
23+
from multiversx_sdk_cli.guardian_relayer_data import GuardianRelayerData
24+
from multiversx_sdk_cli.interfaces import IAccount
25+
from multiversx_sdk_cli.signing_wrapper import SigningWrapper
2226

2327

2428
def setup_parser(args: list[str], subparsers: Any) -> Any:
@@ -196,6 +200,31 @@ def _ensure_args(args: Any):
196200
validate_chain_id_args(args)
197201

198202

203+
def _initialize_controller(args: Any) -> GovernanceController:
204+
chain = args.chain if hasattr(args, "chain") else None
205+
chain_id = cli_shared.get_chain_id(args.proxy, chain)
206+
config = get_config_for_network_providers()
207+
proxy_url = args.proxy if args.proxy else ""
208+
proxy = ProxyNetworkProvider(url=proxy_url, config=config)
209+
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
210+
211+
return GovernanceController(
212+
chain_id=chain_id,
213+
network_provider=proxy,
214+
address_hrp=get_address_hrp(),
215+
gas_limit_estimator=gas_estimator,
216+
)
217+
218+
219+
def _sign_transaction(transaction: Transaction, sender: IAccount, guardian_and_relayer_data: GuardianRelayerData):
220+
signer = SigningWrapper()
221+
signer.sign_transaction(
222+
transaction=transaction,
223+
sender=sender,
224+
guardian_and_relayer=guardian_and_relayer_data,
225+
)
226+
227+
199228
def create_proposal(args: Any):
200229
_ensure_args(args)
201230

@@ -204,24 +233,22 @@ def create_proposal(args: Any):
204233
sender=sender.address.to_bech32(),
205234
args=args,
206235
)
207-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
208-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
209-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
210236

237+
controller = _initialize_controller(args)
211238
transaction = controller.create_transaction_for_new_proposal(
212239
sender=sender,
213240
nonce=sender.nonce,
214241
commit_hash=args.commit_hash,
215242
start_vote_epoch=args.start_vote_epoch,
216243
end_vote_epoch=args.end_vote_epoch,
217244
native_token_amount=args.value,
245+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
246+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
218247
gas_limit=args.gas_limit,
219248
gas_price=args.gas_price,
220-
version=args.version,
221-
options=args.options,
222-
guardian_and_relayer_data=guardian_and_relayer_data,
223249
)
224250

251+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
225252
cli_shared.send_or_simulate(transaction, args)
226253

227254

@@ -233,22 +260,22 @@ def vote(args: Any):
233260
sender=sender.address.to_bech32(),
234261
args=args,
235262
)
236-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
237-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
238-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
263+
264+
[vote_value] = [v for v in VoteType if v.value == args.vote]
265+
controller = _initialize_controller(args)
239266

240267
transaction = controller.create_transaction_for_voting(
241268
sender=sender,
242269
nonce=sender.nonce,
243270
proposal_nonce=args.proposal_nonce,
244-
vote=args.vote,
271+
vote=vote_value,
272+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
273+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
245274
gas_limit=args.gas_limit,
246275
gas_price=args.gas_price,
247-
version=args.version,
248-
options=args.options,
249-
guardian_and_relayer_data=guardian_and_relayer_data,
250276
)
251277

278+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
252279
cli_shared.send_or_simulate(transaction, args)
253280

254281

@@ -260,21 +287,19 @@ def close_proposal(args: Any):
260287
sender=sender.address.to_bech32(),
261288
args=args,
262289
)
263-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
264-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
265-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
266290

291+
controller = _initialize_controller(args)
267292
transaction = controller.create_transaction_for_closing_proposal(
268293
sender=sender,
269294
nonce=sender.nonce,
270295
proposal_nonce=args.proposal_nonce,
296+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
297+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
271298
gas_limit=args.gas_limit,
272299
gas_price=args.gas_price,
273-
version=args.version,
274-
options=args.options,
275-
guardian_and_relayer_data=guardian_and_relayer_data,
276300
)
277301

302+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
278303
cli_shared.send_or_simulate(transaction, args)
279304

280305

@@ -286,22 +311,21 @@ def clear_ended_proposals(args: Any):
286311
sender=sender.address.to_bech32(),
287312
args=args,
288313
)
289-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
290-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
291-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
292314

293315
proposers = [Address.new_from_bech32(proposer) for proposer in args.proposers]
316+
controller = _initialize_controller(args)
317+
294318
transaction = controller.create_transaction_for_clearing_ended_proposals(
295319
sender=sender,
296320
nonce=sender.nonce,
297321
proposers=proposers,
322+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
323+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
298324
gas_limit=args.gas_limit,
299325
gas_price=args.gas_price,
300-
version=args.version,
301-
options=args.options,
302-
guardian_and_relayer_data=guardian_and_relayer_data,
303326
)
304327

328+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
305329
cli_shared.send_or_simulate(transaction, args)
306330

307331

@@ -313,20 +337,18 @@ def claim_accumulated_fees(args: Any):
313337
sender=sender.address.to_bech32(),
314338
args=args,
315339
)
316-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
317-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
318-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
319340

341+
controller = _initialize_controller(args)
320342
transaction = controller.create_transaction_for_claiming_accumulated_fees(
321343
sender=sender,
322344
nonce=sender.nonce,
345+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
346+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
323347
gas_limit=args.gas_limit,
324348
gas_price=args.gas_price,
325-
version=args.version,
326-
options=args.options,
327-
guardian_and_relayer_data=guardian_and_relayer_data,
328349
)
329350

351+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
330352
cli_shared.send_or_simulate(transaction, args)
331353

332354

@@ -338,10 +360,8 @@ def change_config(args: Any):
338360
sender=sender.address.to_bech32(),
339361
args=args,
340362
)
341-
chain_id = cli_shared.get_chain_id(args.proxy, args.chain)
342-
gas_estimator = cli_shared.initialize_gas_limit_estimator(args)
343-
controller = GovernanceWrapper(config=TransactionsFactoryConfig(chain_id), gas_limit_estimator=gas_estimator)
344363

364+
controller = _initialize_controller(args)
345365
transaction = controller.create_transaction_for_changing_config(
346366
sender=sender,
347367
nonce=sender.nonce,
@@ -350,24 +370,20 @@ def change_config(args: Any):
350370
min_quorum=args.min_quorum,
351371
min_veto_threshold=args.min_veto_threshold,
352372
min_pass_threshold=args.min_pass_threshold,
373+
guardian=guardian_and_relayer_data.guardian.address if guardian_and_relayer_data.guardian else None,
374+
relayer=guardian_and_relayer_data.relayer.address if guardian_and_relayer_data.relayer else None,
353375
gas_limit=args.gas_limit,
354376
gas_price=args.gas_price,
355-
version=args.version,
356-
options=args.options,
357-
guardian_and_relayer_data=guardian_and_relayer_data,
358377
)
359378

379+
_sign_transaction(transaction, sender, guardian_and_relayer_data)
360380
cli_shared.send_or_simulate(transaction, args)
361381

362382

363383
def get_voting_power(args: Any):
364384
validate_proxy_argument(args)
365385

366-
config = get_config_for_network_providers()
367-
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
368-
chain_id = proxy.get_network_config().chain_id
369-
controller = GovernanceController(chain_id, proxy)
370-
386+
controller = _initialize_controller(args)
371387
user = Address.new_from_bech32(args.user)
372388

373389
voting_power = controller.get_voting_power(user)
@@ -377,10 +393,7 @@ def get_voting_power(args: Any):
377393
def get_config(args: Any):
378394
validate_proxy_argument(args)
379395

380-
config = get_config_for_network_providers()
381-
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
382-
chain_id = proxy.get_network_config().chain_id
383-
controller = GovernanceController(chain_id, proxy)
396+
controller = _initialize_controller(args)
384397

385398
contract_config = controller.get_config()
386399
utils.dump_out_json(_config_to_dict(contract_config))
@@ -389,10 +402,7 @@ def get_config(args: Any):
389402
def get_proposal(args: Any):
390403
validate_proxy_argument(args)
391404

392-
config = get_config_for_network_providers()
393-
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
394-
chain_id = proxy.get_network_config().chain_id
395-
controller = GovernanceController(chain_id, proxy)
405+
controller = _initialize_controller(args)
396406

397407
info = controller.get_proposal(args.proposal_nonce)
398408
utils.dump_out_json(_proposal_to_dict(info))
@@ -401,10 +411,7 @@ def get_proposal(args: Any):
401411
def get_delegated_vote_info(args: Any):
402412
validate_proxy_argument(args)
403413

404-
config = get_config_for_network_providers()
405-
proxy = ProxyNetworkProvider(url=args.proxy, config=config)
406-
chain_id = proxy.get_network_config().chain_id
407-
controller = GovernanceController(chain_id, proxy)
414+
controller = _initialize_controller(args)
408415

409416
contract = Address.new_from_bech32(args.contract)
410417
user = Address.new_from_bech32(args.user)

0 commit comments

Comments
 (0)