@@ -778,26 +778,31 @@ def _set_redeemer_index(self):
778778 sorted_mint_policies = sorted (self .mint .keys (), key = lambda x : x .to_cbor ())
779779 else :
780780 sorted_mint_policies = []
781+ if self .withdrawals :
782+ sorted_withdrawals = sorted (self .withdrawals .keys ())
783+ else :
784+ sorted_withdrawals = []
781785
782786 for i , utxo in enumerate (self .inputs ):
783787 if (
784788 utxo in self ._inputs_to_redeemers
785789 and self ._inputs_to_redeemers [utxo ].tag == RedeemerTag .SPEND
786790 ):
787791 self ._inputs_to_redeemers [utxo ].index = i
788- elif (
789- utxo in self ._inputs_to_redeemers
790- and self ._inputs_to_redeemers [utxo ].tag == RedeemerTag .MINT
791- ):
792- redeemer = self ._inputs_to_redeemers [utxo ]
793- redeemer .index = sorted_mint_policies .index (
794- script_hash (self ._inputs_to_scripts [utxo ])
795- )
796792
797793 for script , redeemer in self ._minting_script_to_redeemers :
798794 if redeemer is not None :
799795 redeemer .index = sorted_mint_policies .index (script_hash (script ))
800796
797+ for script , redeemer in self ._withdrawal_script_to_redeemers :
798+ if redeemer is not None :
799+ script_staking_credential = Address (
800+ staking_part = script_hash (script ), network = self .context .network
801+ )
802+ redeemer .index = sorted_withdrawals .index (
803+ script_staking_credential .to_primitive ()
804+ )
805+
801806 self .redeemers .sort (key = lambda r : r .index )
802807
803808 def _build_tx_body (self ) -> TransactionBody :
0 commit comments