Skip to content

Commit 23fad10

Browse files
committed
refat: prevent ingesting coinbase data in transactions, transfers and events tables
1 parent ec7fdbb commit 23fad10

File tree

6 files changed

+37
-13
lines changed

6 files changed

+37
-13
lines changed

backfill/process/process_events.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ func PrepareEvents(network string, payload fetch.ProcessedPayload, transactionsI
4040
}
4141
}
4242

43+
// TODO: This will be removed after TransactionDetails migration
44+
// if network == "mainnet01" {
45+
// return events, nil
46+
// }
47+
4348
coinbaseDecoded, err := decodeCoinbase(string(payload.Coinbase))
4449
if err != nil {
4550
return nil, fmt.Errorf("decoding Coinbase JSON of block: %w", err)

backfill/process/process_transactions.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ func PrepareTransactions(network string, blockId int64, payload fetch.ProcessedP
138138
transactionRecords = append(transactionRecords, transactionRecord)
139139
}
140140

141+
// TODO: This will be removed after TransactionDetails migration
142+
// if network == "mainnet01" {
143+
// return transactionRecords, nil
144+
// }
145+
141146
coinbaseTx, err := processCoinbaseTransaction(string(payload.Coinbase), blockId, block.CreationTime, int64(block.ChainId))
142147

143148
if err != nil {

backfill/process/process_transfers.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ func PrepareTransfers(network string, payload fetch.ProcessedPayload, transactio
2020
transfers = append(transfers, nftTransfers...)
2121
}
2222

23+
// TODO: This will be removed after TransactionDetails migration
24+
// if network == "mainnet01" {
25+
// return transfers, nil
26+
// }
27+
2328
coinbaseDecoded, err := decodeCoinbase(string(payload.Coinbase))
2429
if err != nil {
2530
return nil, fmt.Errorf("decoding Coinbase JSON of block: %w", err)

indexer/src/services/sync/coinbase.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,11 @@ export async function startBackfillCoinbaseTransactions() {
4646
process.exit(0);
4747
}
4848

49-
async function addCoinbaseTransactions(rows: Array<any>, tx: Transaction) {
50-
const fetchPromises = rows.map(async (row, index) => {
49+
export async function addCoinbaseTransactions(
50+
rows: Array<any>,
51+
tx: Transaction,
52+
): Promise<EventAttributes[]> {
53+
const fetchPromises = rows.map(async row => {
5154
const output = await processCoinbaseTransaction(row.coinbase, {
5255
id: row.id,
5356
chainId: row.chainId,
@@ -93,6 +96,8 @@ async function addCoinbaseTransactions(rows: Array<any>, tx: Transaction) {
9396
await Event.bulkCreate(eventsToAdd, {
9497
transaction: tx,
9598
});
99+
100+
return eventsToAdd;
96101
}
97102

98103
export async function processCoinbaseTransaction(

indexer/src/services/sync/payload.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import Signer from '../../models/signer';
88
import Guard from '../../models/guard';
99
import { handleSingleQuery } from '../../kadena-server/utils/raw-query';
1010
import { sequelize } from '../../config/database';
11-
import { processCoinbaseTransaction } from './coinbase';
11+
import { addCoinbaseTransactions } from './coinbase';
12+
import { getRequiredEnvString } from '../../utils/helpers';
1213

1314
const TRANSACTION_INDEX = 0;
1415
const RECEIPT_INDEX = 1;
@@ -20,24 +21,27 @@ interface BalanceInsertResult {
2021
module: string;
2122
}
2223

24+
const NETWORK_ID = getRequiredEnvString('SYNC_NETWORK');
25+
2326
export async function processPayloadKey(
2427
block: BlockAttributes,
2528
payloadData: any,
2629
tx?: Transaction,
2730
): Promise<EventAttributes[]> {
2831
const transactions = payloadData.transactions || [];
2932

30-
const transactionPromises = transactions.map((transactionArray: any) =>
31-
processTransaction(transactionArray, block, tx),
32-
);
33-
34-
await processCoinbaseTransaction(payloadData.coinbase, {
35-
id: block.id,
36-
chainId: block.chainId,
37-
creationTime: block.creationTime,
33+
const transactionPromises = transactions.map((transactionInfo: any) => {
34+
return processTransaction(transactionInfo, block, tx);
3835
});
36+
const normalTransactions = (await Promise.all(transactionPromises)).flat();
37+
38+
// TODO: This will be removed after TransactionDetails migration
39+
if (NETWORK_ID === 'mainnet01') return normalTransactions;
40+
41+
const coinbase = await addCoinbaseTransactions([block], tx!);
42+
const coinbaseTransactions = (await Promise.all(coinbase)).flat();
3943

40-
return (await Promise.all(transactionPromises)).flat();
44+
return [...normalTransactions, ...coinbaseTransactions];
4145
}
4246

4347
export async function processTransaction(

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"prettier": "^3.5.1"
3131
},
3232
"lint-staged": {
33-
"*.{yml,yaml,go,json,md,js,ts}": [
33+
"*.{yml,yaml,json,md,js,ts}": [
3434
"prettier --write"
3535
]
3636
}

0 commit comments

Comments
 (0)