From 06146b03437fb6aa5129fd1dc50bf929b3bce66a Mon Sep 17 00:00:00 2001 From: Christopher-Li Date: Fri, 5 Jan 2024 11:25:20 -0500 Subject: [PATCH] [IND-553]: Add support for trading reward tables in Athena (#930) --- .../trading_reward_aggregations.ts | 43 +++++++++++++++++++ .../lib/athena-ddl-tables/trading_rewards.ts | 37 ++++++++++++++++ .../src/tasks/update-research-environment.ts | 4 ++ 3 files changed, 84 insertions(+) create mode 100644 indexer/services/roundtable/src/lib/athena-ddl-tables/trading_reward_aggregations.ts create mode 100644 indexer/services/roundtable/src/lib/athena-ddl-tables/trading_rewards.ts diff --git a/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_reward_aggregations.ts b/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_reward_aggregations.ts new file mode 100644 index 0000000000..7f393aa851 --- /dev/null +++ b/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_reward_aggregations.ts @@ -0,0 +1,43 @@ +import { + getAthenaTableCreationStatement, + getExternalAthenaTableCreationStatement, +} from '../../helpers/sql'; + +const TABLE_NAME: string = 'trading_reward_aggregations'; +const RAW_TABLE_COLUMNS: string = ` + \`id\` binary, + \`address\` string, + \`startedAt\` string, + \`startedAtHeight\` bigint, + \`endedAt\` string, + \`endedAtHeight\` bigint, + \`period\` string, + \`amount\` string +`; +const TABLE_COLUMNS: string = ` + "id", + "address", + "startedAt", + "startedAtHeight", + "endedAt", + "endedAtHeight", + "period", + "amount" +`; + +export function generateRawTable(tablePrefix: string, rdsExportIdentifier: string): string { + return getExternalAthenaTableCreationStatement( + tablePrefix, + rdsExportIdentifier, + TABLE_NAME, + RAW_TABLE_COLUMNS, + ); +} + +export function generateTable(tablePrefix: string): string { + return getAthenaTableCreationStatement( + tablePrefix, + TABLE_NAME, + TABLE_COLUMNS, + ); +} diff --git a/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_rewards.ts b/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_rewards.ts new file mode 100644 index 0000000000..be3f2cd390 --- /dev/null +++ b/indexer/services/roundtable/src/lib/athena-ddl-tables/trading_rewards.ts @@ -0,0 +1,37 @@ +import { + getAthenaTableCreationStatement, + getExternalAthenaTableCreationStatement, +} from '../../helpers/sql'; + +const TABLE_NAME: string = 'trading_rewards'; +const RAW_TABLE_COLUMNS: string = ` + \`id\` binary, + \`address\` string, + \`blockTime\` string, + \`blockHeight\` bigint, + \`amount\` string +`; +const TABLE_COLUMNS: string = ` + "id", + "address", + "blockTime", + "blockHeight", + "amount" +`; + +export function generateRawTable(tablePrefix: string, rdsExportIdentifier: string): string { + return getExternalAthenaTableCreationStatement( + tablePrefix, + rdsExportIdentifier, + TABLE_NAME, + RAW_TABLE_COLUMNS, + ); +} + +export function generateTable(tablePrefix: string): string { + return getAthenaTableCreationStatement( + tablePrefix, + TABLE_NAME, + TABLE_COLUMNS, + ); +} diff --git a/indexer/services/roundtable/src/tasks/update-research-environment.ts b/indexer/services/roundtable/src/tasks/update-research-environment.ts index a0a85d6f89..181c09d141 100644 --- a/indexer/services/roundtable/src/tasks/update-research-environment.ts +++ b/indexer/services/roundtable/src/tasks/update-research-environment.ts @@ -33,6 +33,8 @@ import * as athenaPerpetualPositions from '../lib/athena-ddl-tables/perpetual_po import * as athenaPnlTicks from '../lib/athena-ddl-tables/pnl_ticks'; import * as athenaSubaccounts from '../lib/athena-ddl-tables/subaccounts'; import * as athenaTendermintEvents from '../lib/athena-ddl-tables/tendermint_events'; +import * as athenaTradingRewardAggregations from '../lib/athena-ddl-tables/trading_reward_aggregations'; +import * as athenaTradingRewards from '../lib/athena-ddl-tables/trading_rewards'; import * as athenaTransfers from '../lib/athena-ddl-tables/transfers'; import * as athenaWallets from '../lib/athena-ddl-tables/wallets'; @@ -51,6 +53,8 @@ export const tablesToAddToAthena: { [table: string]: AthenaTableDDLQueries } = { pnl_ticks: athenaPnlTicks, subaccounts: athenaSubaccounts, tendermint_events: athenaTendermintEvents, + trading_rewards: athenaTradingRewards, + trading_reward_aggregation: athenaTradingRewardAggregations, transfers: athenaTransfers, liquidity_tiers: athenaLiquidityTiers, wallets: athenaWallets,