Skip to content

Commit bded200

Browse files
committed
fixup! fix(cardano-services): correct mapping of chain history redeemer purpose
1 parent 3ca4d27 commit bded200

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

packages/cardano-services/src/ChainHistory/DbSyncChainHistory/mappers.ts

+13-17
Original file line numberDiff line numberDiff line change
@@ -105,25 +105,21 @@ export const mapWithdrawal = (withdrawalModel: WithdrawalModel): Cardano.Withdra
105105
// Remove this and select the actual redeemer data from `redeemer_data` table.
106106
const stubRedeemerData = Buffer.from('not implemented');
107107

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
125115
};
126116

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+
127123
export const mapRedeemer = (redeemerModel: RedeemerModel): Cardano.Redeemer => ({
128124
data: stubRedeemerData,
129125
executionUnits: {

packages/cardano-services/src/ChainHistory/DbSyncChainHistory/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export interface WithdrawalModel {
9595

9696
export interface RedeemerModel {
9797
index: number;
98-
purpose: string;
98+
purpose: 'cert' | 'mint' | 'spend' | 'reward' | 'voting' | 'proposing';
9999
script_hash: Buffer;
100100
unit_mem: string;
101101
unit_steps: string;

0 commit comments

Comments
 (0)