From c9e4411bb32f27787030cd3058d8449518ce1f4e Mon Sep 17 00:00:00 2001 From: Jerry Fan Date: Wed, 28 Aug 2024 11:07:07 -0400 Subject: [PATCH] change db default to number type --- .../__tests__/stores/wallet-table.test.ts | 8 ++++---- ...ets_total_volume_and_affiliates_whitelist.ts | 7 ++----- .../postgres/src/models/wallet-model.ts | 17 ++++++++++++++++- .../api/v4/transfers-controller.test.ts | 2 +- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/indexer/packages/postgres/__tests__/stores/wallet-table.test.ts b/indexer/packages/postgres/__tests__/stores/wallet-table.test.ts index c74bd3eb26..d5c01982ce 100644 --- a/indexer/packages/postgres/__tests__/stores/wallet-table.test.ts +++ b/indexer/packages/postgres/__tests__/stores/wallet-table.test.ts @@ -30,14 +30,14 @@ describe('Wallet store', () => { await WalletTable.upsert({ ...defaultWallet2, isWhitelistAffiliate: true, - totalVolume: '100', + totalVolume: '100.1', }); wallet = await WalletTable.findById(defaultWallet2.address); expect(wallet).toEqual(expect.objectContaining({ ...defaultWallet2, isWhitelistAffiliate: true, - totalVolume: '100', + totalVolume: '100.1', })); }); @@ -78,8 +78,8 @@ describe('Wallet store', () => { it('Successfully finds wallets by whitelist flag', async () => { await Promise.all([ WalletTable.create(defaultWallet3), - WalletTable.create(defaultWallet2) - ]) + WalletTable.create(defaultWallet2), + ]); const wallets: WalletFromDatabase[] = await WalletTable.findAll( { diff --git a/indexer/packages/postgres/src/db/migrations/migration_files/20240827162119_add_wallets_total_volume_and_affiliates_whitelist.ts b/indexer/packages/postgres/src/db/migrations/migration_files/20240827162119_add_wallets_total_volume_and_affiliates_whitelist.ts index ba58a82a77..59c026b2a0 100644 --- a/indexer/packages/postgres/src/db/migrations/migration_files/20240827162119_add_wallets_total_volume_and_affiliates_whitelist.ts +++ b/indexer/packages/postgres/src/db/migrations/migration_files/20240827162119_add_wallets_total_volume_and_affiliates_whitelist.ts @@ -1,11 +1,10 @@ -import * as Knex from "knex"; - +import * as Knex from 'knex'; export async function up(knex: Knex): Promise { return knex .schema .alterTable('wallets', (table) => { - table.decimal('totalVolume', null).defaultTo('0').notNullable(); + table.decimal('totalVolume', null).defaultTo(0).notNullable(); table.boolean('isWhitelistAffiliate').defaultTo(false).notNullable(); }); } @@ -18,5 +17,3 @@ export async function down(knex: Knex): Promise { table.dropColumn('isWhitelistAffiliate'); }); } - - diff --git a/indexer/packages/postgres/src/models/wallet-model.ts b/indexer/packages/postgres/src/models/wallet-model.ts index 848651d246..dfa771ce94 100644 --- a/indexer/packages/postgres/src/models/wallet-model.ts +++ b/indexer/packages/postgres/src/models/wallet-model.ts @@ -47,11 +47,26 @@ export default class WalletModel extends BaseModel { address: { type: 'string' }, totalTradingRewards: { type: 'string', pattern: NonNegativeNumericPattern }, totalVolume: { type: 'string', pattern: NonNegativeNumericPattern }, - isWhitelistAffiliate: { type: 'boolean'}, + isWhitelistAffiliate: { type: 'boolean' }, }, }; } + /** + * A mapping from column name to JSON conversion expected. + * See getSqlConversionForDydxModelTypes for valid conversions. + * + * TODO(IND-239): Ensure that jsonSchema() / sqlToJsonConversions() / model fields match. + */ + static get sqlToJsonConversions() { + return { + address: 'string', + totalTradingRewards: 'string', + totalVolume: 'string', + isWhitelistAffiliate: 'boolean', + }; + } + QueryBuilderType!: UpsertQueryBuilder; address!: string; diff --git a/indexer/services/comlink/__tests__/controllers/api/v4/transfers-controller.test.ts b/indexer/services/comlink/__tests__/controllers/api/v4/transfers-controller.test.ts index 45fc385737..102bab7fa5 100644 --- a/indexer/services/comlink/__tests__/controllers/api/v4/transfers-controller.test.ts +++ b/indexer/services/comlink/__tests__/controllers/api/v4/transfers-controller.test.ts @@ -1173,4 +1173,4 @@ describe('transfers-controller#V4', () => { ); }); }); -}); \ No newline at end of file +});