From ea24748b46da59f8f0a05179469b1508534628a5 Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Thu, 1 Aug 2024 09:08:01 +0200 Subject: [PATCH 1/2] refactor(cardano-services): optimize get gov_action_proposals query The 'tag' attribute in the 'description' field is a duplication of the field 'type'; reduce one field from the query to use the attribute in the JSON. --- .../DbSyncChainHistory/ChainHistoryBuilder.ts | 12 +++++++----- .../src/ChainHistory/DbSyncChainHistory/queries.ts | 1 - .../src/ChainHistory/DbSyncChainHistory/types.ts | 1 - 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts index 6ee1374b801..b90c6b799af 100644 --- a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts +++ b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts @@ -93,14 +93,16 @@ const mapWithdrawals: (source: [{ credential: DbSyncCredential; network: string const getGovernanceAction = ({ denominator, description, - numerator, - type + numerator }: ProposalProcedureModel): Cardano.GovernanceAction => { - const { contents } = description; + const { contents, tag } = description; const governanceActionId = contents && contents[0] ? { actionIndex: contents[0].govActionIx, id: contents[0].txId } : null; - switch (type) { + if (!tag) throw new Error('Missing "tag" in governance action proposal description'); + if (typeof tag !== 'string') throw new Error('Wrong "tag" type in governance action proposal description'); + + switch (tag) { case 'HardForkInitiation': return { __typename: GovernanceActionType.hard_fork_initiation_action, @@ -159,7 +161,7 @@ const getGovernanceAction = ({ }; } - throw new Error(`Unknown GovernanceActionType '${type}' with description "${JSON.stringify(description)}"`); + throw new Error(`Unknown GovernanceActionType '${tag}' with description "${JSON.stringify(description)}"`); }; const getVoter = ( diff --git a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts index a791d84cac4..415dbb72960 100644 --- a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts +++ b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts @@ -222,7 +222,6 @@ export const findProposalProceduresByTxIds = ` tx.hash AS tx_id, ga.deposit, ga.description, - ga.type, va.url, va.data_hash, sa.view, diff --git a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/types.ts b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/types.ts index 2fc0456e899..1790a03f792 100644 --- a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/types.ts +++ b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/types.ts @@ -137,7 +137,6 @@ export interface ProposalProcedureModel { // eslint-disable-next-line @typescript-eslint/no-explicit-any description: any; tx_id: Buffer; - type: string; url: string; view: string; // LW-9675 From 867ee64cee7aad18bb1cc7a7386aa3f6219edb78 Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Thu, 1 Aug 2024 09:12:42 +0200 Subject: [PATCH 2/2] refactor(cardano-services): optimize get stake certificates query The two JOINs was removed in some previous commit, but some merges seems to have revived them. --- .../src/ChainHistory/DbSyncChainHistory/queries.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts index 415dbb72960..129b0210d75 100644 --- a/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts +++ b/packages/cardano-services/src/ChainHistory/DbSyncChainHistory/queries.ts @@ -297,8 +297,6 @@ export const findStakeCertsByTxIds = ` FROM tx JOIN stake_registration AS cert ON cert.tx_id = tx.id JOIN stake_address AS addr ON addr.id = cert.addr_id - JOIN block ON block_id = block.id - JOIN epoch_param ON block.epoch_no = epoch_param.epoch_no WHERE tx.id = ANY($1) ORDER BY tx.id ASC) UNION