33
44from multiversx_sdk import (
55 Address ,
6- Transaction ,
76 ValidatorPublicKey ,
87 ValidatorsController ,
98 ValidatorsSigners ,
1615 validate_nonce_args ,
1716 validate_receiver_args ,
1817)
19- from multiversx_sdk_cli .guardian_relayer_data import GuardianRelayerData
20- from multiversx_sdk_cli .interfaces import IAccount
21- from multiversx_sdk_cli .signing_wrapper import SigningWrapper
2218
2319
2420def setup_parser (args : list [str ], subparsers : Any ) -> Any :
@@ -159,15 +155,6 @@ def validate_args(args: Any) -> None:
159155 validate_chain_id_args (args )
160156
161157
162- def _sign_transaction (transaction : Transaction , sender : IAccount , guardian_and_relayer_data : GuardianRelayerData ):
163- signer = SigningWrapper ()
164- signer .sign_transaction (
165- transaction = transaction ,
166- sender = sender ,
167- guardian_and_relayer = guardian_and_relayer_data ,
168- )
169-
170-
171158def do_stake (args : Any ):
172159 validate_args (args )
173160
@@ -187,8 +174,8 @@ def do_stake(args: Any):
187174 sender = sender ,
188175 nonce = sender .nonce ,
189176 amount = native_amount ,
190- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
191- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
177+ guardian = guardian_and_relayer_data .guardian_address ,
178+ relayer = guardian_and_relayer_data .relayer_address ,
192179 gas_limit = args .gas_limit ,
193180 gas_price = args .gas_price ,
194181 )
@@ -200,13 +187,18 @@ def do_stake(args: Any):
200187 validators_file = validators_signers ,
201188 amount = native_amount ,
202189 rewards_address = rewards_address ,
203- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
204- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
190+ guardian = guardian_and_relayer_data .guardian_address ,
191+ relayer = guardian_and_relayer_data .relayer_address ,
205192 gas_limit = args .gas_limit ,
206193 gas_price = args .gas_price ,
207194 )
208195
209- _sign_transaction (tx , sender , guardian_and_relayer_data )
196+ cli_shared .alter_transaction_and_sign_again_if_needed (
197+ args = args ,
198+ tx = tx ,
199+ sender = sender ,
200+ guardian_and_relayer_data = guardian_and_relayer_data ,
201+ )
210202 cli_shared .send_or_simulate (tx , args )
211203
212204
@@ -247,13 +239,18 @@ def do_unstake(args: Any):
247239 sender = sender ,
248240 nonce = sender .nonce ,
249241 public_keys = keys ,
250- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
251- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
242+ guardian = guardian_and_relayer_data .guardian_address ,
243+ relayer = guardian_and_relayer_data .relayer_address ,
252244 gas_limit = args .gas_limit ,
253245 gas_price = args .gas_price ,
254246 )
255247
256- _sign_transaction (tx , sender , guardian_and_relayer_data )
248+ cli_shared .alter_transaction_and_sign_again_if_needed (
249+ args = args ,
250+ tx = tx ,
251+ sender = sender ,
252+ guardian_and_relayer_data = guardian_and_relayer_data ,
253+ )
257254 cli_shared .send_or_simulate (tx , args )
258255
259256
@@ -275,13 +272,18 @@ def do_unjail(args: Any):
275272 nonce = sender .nonce ,
276273 public_keys = keys ,
277274 amount = native_amount ,
278- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
279- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
275+ guardian = guardian_and_relayer_data .guardian_address ,
276+ relayer = guardian_and_relayer_data .relayer_address ,
280277 gas_limit = args .gas_limit ,
281278 gas_price = args .gas_price ,
282279 )
283280
284- _sign_transaction (tx , sender , guardian_and_relayer_data )
281+ cli_shared .alter_transaction_and_sign_again_if_needed (
282+ args = args ,
283+ tx = tx ,
284+ sender = sender ,
285+ guardian_and_relayer_data = guardian_and_relayer_data ,
286+ )
285287 cli_shared .send_or_simulate (tx , args )
286288
287289
@@ -301,13 +303,18 @@ def do_unbond(args: Any):
301303 sender = sender ,
302304 nonce = sender .nonce ,
303305 public_keys = keys ,
304- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
305- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
306+ guardian = guardian_and_relayer_data .guardian_address ,
307+ relayer = guardian_and_relayer_data .relayer_address ,
306308 gas_limit = args .gas_limit ,
307309 gas_price = args .gas_price ,
308310 )
309311
310- _sign_transaction (tx , sender , guardian_and_relayer_data )
312+ cli_shared .alter_transaction_and_sign_again_if_needed (
313+ args = args ,
314+ tx = tx ,
315+ sender = sender ,
316+ guardian_and_relayer_data = guardian_and_relayer_data ,
317+ )
311318 cli_shared .send_or_simulate (tx , args )
312319
313320
@@ -327,13 +334,18 @@ def change_reward_address(args: Any):
327334 sender = sender ,
328335 nonce = sender .nonce ,
329336 rewards_address = rewards_address ,
330- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
331- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
337+ guardian = guardian_and_relayer_data .guardian_address ,
338+ relayer = guardian_and_relayer_data .relayer_address ,
332339 gas_limit = args .gas_limit ,
333340 gas_price = args .gas_price ,
334341 )
335342
336- _sign_transaction (tx , sender , guardian_and_relayer_data )
343+ cli_shared .alter_transaction_and_sign_again_if_needed (
344+ args = args ,
345+ tx = tx ,
346+ sender = sender ,
347+ guardian_and_relayer_data = guardian_and_relayer_data ,
348+ )
337349 cli_shared .send_or_simulate (tx , args )
338350
339351
@@ -350,13 +362,18 @@ def do_claim(args: Any):
350362 tx = controller .create_transaction_for_claiming (
351363 sender = sender ,
352364 nonce = sender .nonce ,
353- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
354- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
365+ guardian = guardian_and_relayer_data .guardian_address ,
366+ relayer = guardian_and_relayer_data .relayer_address ,
355367 gas_limit = args .gas_limit ,
356368 gas_price = args .gas_price ,
357369 )
358370
359- _sign_transaction (tx , sender , guardian_and_relayer_data )
371+ cli_shared .alter_transaction_and_sign_again_if_needed (
372+ args = args ,
373+ tx = tx ,
374+ sender = sender ,
375+ guardian_and_relayer_data = guardian_and_relayer_data ,
376+ )
360377 cli_shared .send_or_simulate (tx , args )
361378
362379
@@ -376,13 +393,18 @@ def do_unstake_nodes(args: Any):
376393 sender = sender ,
377394 nonce = sender .nonce ,
378395 public_keys = keys ,
379- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
380- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
396+ guardian = guardian_and_relayer_data .guardian_address ,
397+ relayer = guardian_and_relayer_data .relayer_address ,
381398 gas_limit = args .gas_limit ,
382399 gas_price = args .gas_price ,
383400 )
384401
385- _sign_transaction (tx , sender , guardian_and_relayer_data )
402+ cli_shared .alter_transaction_and_sign_again_if_needed (
403+ args = args ,
404+ tx = tx ,
405+ sender = sender ,
406+ guardian_and_relayer_data = guardian_and_relayer_data ,
407+ )
386408 cli_shared .send_or_simulate (tx , args )
387409
388410
@@ -402,13 +424,18 @@ def do_unstake_tokens(args: Any):
402424 sender = sender ,
403425 nonce = sender .nonce ,
404426 amount = value ,
405- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
406- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
427+ guardian = guardian_and_relayer_data .guardian_address ,
428+ relayer = guardian_and_relayer_data .relayer_address ,
407429 gas_limit = args .gas_limit ,
408430 gas_price = args .gas_price ,
409431 )
410432
411- _sign_transaction (tx , sender , guardian_and_relayer_data )
433+ cli_shared .alter_transaction_and_sign_again_if_needed (
434+ args = args ,
435+ tx = tx ,
436+ sender = sender ,
437+ guardian_and_relayer_data = guardian_and_relayer_data ,
438+ )
412439 cli_shared .send_or_simulate (tx , args )
413440
414441
@@ -428,13 +455,18 @@ def do_unbond_nodes(args: Any):
428455 sender = sender ,
429456 nonce = sender .nonce ,
430457 public_keys = keys ,
431- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
432- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
458+ guardian = guardian_and_relayer_data .guardian_address ,
459+ relayer = guardian_and_relayer_data .relayer_address ,
433460 gas_limit = args .gas_limit ,
434461 gas_price = args .gas_price ,
435462 )
436463
437- _sign_transaction (tx , sender , guardian_and_relayer_data )
464+ cli_shared .alter_transaction_and_sign_again_if_needed (
465+ args = args ,
466+ tx = tx ,
467+ sender = sender ,
468+ guardian_and_relayer_data = guardian_and_relayer_data ,
469+ )
438470 cli_shared .send_or_simulate (tx , args )
439471
440472
@@ -454,13 +486,18 @@ def do_unbond_tokens(args: Any):
454486 sender = sender ,
455487 nonce = sender .nonce ,
456488 amount = value ,
457- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
458- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
489+ guardian = guardian_and_relayer_data .guardian_address ,
490+ relayer = guardian_and_relayer_data .relayer_address ,
459491 gas_limit = args .gas_limit ,
460492 gas_price = args .gas_price ,
461493 )
462494
463- _sign_transaction (tx , sender , guardian_and_relayer_data )
495+ cli_shared .alter_transaction_and_sign_again_if_needed (
496+ args = args ,
497+ tx = tx ,
498+ sender = sender ,
499+ guardian_and_relayer_data = guardian_and_relayer_data ,
500+ )
464501 cli_shared .send_or_simulate (tx , args )
465502
466503
@@ -477,13 +514,18 @@ def do_clean_registered_data(args: Any):
477514 tx = controller .create_transaction_for_cleaning_registered_data (
478515 sender = sender ,
479516 nonce = sender .nonce ,
480- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
481- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
517+ guardian = guardian_and_relayer_data .guardian_address ,
518+ relayer = guardian_and_relayer_data .relayer_address ,
482519 gas_limit = args .gas_limit ,
483520 gas_price = args .gas_price ,
484521 )
485522
486- _sign_transaction (tx , sender , guardian_and_relayer_data )
523+ cli_shared .alter_transaction_and_sign_again_if_needed (
524+ args = args ,
525+ tx = tx ,
526+ sender = sender ,
527+ guardian_and_relayer_data = guardian_and_relayer_data ,
528+ )
487529 cli_shared .send_or_simulate (tx , args )
488530
489531
@@ -503,11 +545,16 @@ def do_restake_unstaked_nodes(args: Any):
503545 sender = sender ,
504546 nonce = sender .nonce ,
505547 public_keys = keys ,
506- guardian = guardian_and_relayer_data .guardian_address if guardian_and_relayer_data . guardian_address else None ,
507- relayer = guardian_and_relayer_data .relayer_address if guardian_and_relayer_data . relayer_address else None ,
548+ guardian = guardian_and_relayer_data .guardian_address ,
549+ relayer = guardian_and_relayer_data .relayer_address ,
508550 gas_limit = args .gas_limit ,
509551 gas_price = args .gas_price ,
510552 )
511553
512- _sign_transaction (tx , sender , guardian_and_relayer_data )
554+ cli_shared .alter_transaction_and_sign_again_if_needed (
555+ args = args ,
556+ tx = tx ,
557+ sender = sender ,
558+ guardian_and_relayer_data = guardian_and_relayer_data ,
559+ )
513560 cli_shared .send_or_simulate (tx , args )
0 commit comments