@@ -105,25 +105,21 @@ export const mapWithdrawal = (withdrawalModel: WithdrawalModel): Cardano.Withdra
105
105
// Remove this and select the actual redeemer data from `redeemer_data` table.
106
106
const stubRedeemerData = Buffer . from ( 'not implemented' ) ;
107
107
108
- const mapRedeemerPurpose = ( purpose : string ) : Cardano . RedeemerPurpose => {
109
- switch ( purpose ) {
110
- case 'cert' :
111
- return Cardano . RedeemerPurpose . certificate ;
112
- case 'mint' :
113
- return Cardano . RedeemerPurpose . mint ;
114
- case 'spend' :
115
- return Cardano . RedeemerPurpose . spend ;
116
- case 'reward' :
117
- return Cardano . RedeemerPurpose . withdrawal ;
118
- case 'voting' :
119
- return Cardano . RedeemerPurpose . vote ;
120
- case 'proposing' :
121
- return Cardano . RedeemerPurpose . propose ;
122
- default :
123
- throw new NotImplementedError ( `Failed to map redeemer "purpose": ${ purpose } ` ) ;
124
- }
108
+ const redeemerPurposeMap : Record < RedeemerModel [ 'purpose' ] , Cardano . RedeemerPurpose > = {
109
+ cert : Cardano . RedeemerPurpose . certificate ,
110
+ mint : Cardano . RedeemerPurpose . mint ,
111
+ proposing : Cardano . RedeemerPurpose . propose ,
112
+ reward : Cardano . RedeemerPurpose . withdrawal ,
113
+ spend : Cardano . RedeemerPurpose . spend ,
114
+ voting : Cardano . RedeemerPurpose . vote
125
115
} ;
126
116
117
+ const mapRedeemerPurpose = ( purpose : string ) : Cardano . RedeemerPurpose =>
118
+ redeemerPurposeMap [ purpose as RedeemerModel [ 'purpose' ] ] ||
119
+ ( ( ) => {
120
+ throw new NotImplementedError ( `Failed to map redeemer "purpose": ${ purpose } ` ) ;
121
+ } ) ( ) ;
122
+
127
123
export const mapRedeemer = ( redeemerModel : RedeemerModel ) : Cardano . Redeemer => ( {
128
124
data : stubRedeemerData ,
129
125
executionUnits : {
0 commit comments