@@ -408,7 +408,27 @@ def register_drep(self, wallet: Wallet, drep: Key):
408408 else :
409409 print (f"DRep registration transaction submitted successfully!\n Tx ID: { submit_result .txid } " )
410410
411-
411+ def deregister_drep (self , wallet :Wallet , drep : Key ):
412+ drep_cert = os .path .join (TEMP_DIR , "drep_retire.cert" )
413+ # Generate DRep retirement certificate
414+ self .load_gov_state ()
415+ self .cardano_cli_conway ("governance" , "drep" ,
416+ [ "retirement-certificate" ,"--drep-verification-key-file" , drep .public , "--deposit-amt" ,
417+ str (self .gov_state ["currentPParams" ]["dRepDeposit" ])
418+ ,"--out-file" , drep_cert ])
419+ submit_result :SubmitResult = self .build_and_submit (wallet ,'drep_reg' ,
420+ ["--witness-override" ,"2" ,
421+ "--certificate-file" , drep_cert ]
422+
423+ ,raise_error = False ,extra_keys = [drep .private ])
424+ if submit_result .process .returncode != 0 :
425+ if "ConwayDRepNotRegistered" in submit_result .process .stderr :
426+ print ("DRep key is not registered ..." )
427+ print ("Nothing was done on-chain." )
428+ else :
429+ raise Exception (f"Process failed \n { submit_result .process .stdout } \n { submit_result .process .stderr } " )
430+ else :
431+ print (f"DRep retirement transaction submitted successfully!\n Tx ID: { submit_result .txid } " )
412432
413433 def sign_and_submit (self ,wallet :Wallet ,tx_raw_file ,signed_tx_file ,raise_error = True ,extra_keys = [])-> Optional [SubmitResult ]:
414434 # Sign the transaction
@@ -640,6 +660,15 @@ def vote(store:WalletStore,role):
640660 print ("Registering stake key" )
641661 # Register stake key
642662 cli .register_stake (wallet )
663+ elif command == "deregister" :
664+ store = WalletStore (KEYS_DIR )
665+ wallet = store .load_wallet ()
666+
667+ if len (sys .argv )> 2 :
668+ if sys .argv [2 ] == "drep" :
669+ drep = store .load_drep_key ()
670+ cli .deregister_drep (wallet ,drep )
671+
643672 elif command == 'delegate' :
644673 store = WalletStore (KEYS_DIR )
645674 wallet = store .load_wallet ()
0 commit comments