Skip to content

Commit

Permalink
feat: control networks with ENABLED_NETWORKS env
Browse files Browse the repository at this point in the history
Now you can use ENABLED_NETWORKS to decide what networks should
be added.
  • Loading branch information
Sekhmet committed Feb 3, 2025
1 parent e2ca55e commit 2dad272
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 8 deletions.
8 changes: 8 additions & 0 deletions apps/api/src/config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
/**
* Array of enabled networks. Can be defined using ENABLED_NETWORKS environment variable
* with comma-separated list of network names.
*/
export const ENABLED_NETWORKS = process.env.ENABLED_NETWORKS
? process.env.ENABLED_NETWORKS.split(',')
: null;

/** Infura API key used by default for network nodes. */
export const DEFAULT_INFURA_API_KEY =
process.env.INFURA_API_KEY || '46a5dd9727bf48d4a132672d3f376146';
18 changes: 12 additions & 6 deletions apps/api/src/evm/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Checkpoint, { evm } from '@snapshot-labs/checkpoint';
import { createConfig } from './config';
import { createWriters } from './writers';
import { registerIndexer } from '../register';

const ethConfig = createConfig('eth');
const sepConfig = createConfig('sep');
Expand All @@ -17,10 +18,15 @@ const arb1Indexer = new evm.EvmIndexer(createWriters(arb1Config));
const baseIndexer = new evm.EvmIndexer(createWriters(baseConfig));

export function addEvmIndexers(checkpoint: Checkpoint) {
checkpoint.addIndexer(ethConfig.indexerName, ethConfig, ethIndexer);
checkpoint.addIndexer(sepConfig.indexerName, sepConfig, sepIndexer);
checkpoint.addIndexer(oethConfig.indexerName, oethConfig, oethIndexer);
checkpoint.addIndexer(maticConfig.indexerName, maticConfig, maticIndexer);
checkpoint.addIndexer(arb1Config.indexerName, arb1Config, arb1Indexer);
checkpoint.addIndexer(baseConfig.indexerName, baseConfig, baseIndexer);
registerIndexer(checkpoint, ethConfig.indexerName, ethConfig, ethIndexer);
registerIndexer(checkpoint, sepConfig.indexerName, sepConfig, sepIndexer);
registerIndexer(checkpoint, oethConfig.indexerName, oethConfig, oethIndexer);
registerIndexer(
checkpoint,
maticConfig.indexerName,
maticConfig,
maticIndexer
);
registerIndexer(checkpoint, arb1Config.indexerName, arb1Config, arb1Indexer);
registerIndexer(checkpoint, baseConfig.indexerName, baseConfig, baseIndexer);
}
16 changes: 16 additions & 0 deletions apps/api/src/register.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Checkpoint, {
BaseIndexer,
CheckpointConfig
} from '@snapshot-labs/checkpoint';
import { ENABLED_NETWORKS } from './config';

export function registerIndexer(
instance: Checkpoint,
indexerName: string,
config: CheckpointConfig,
indexer: BaseIndexer
) {
if (ENABLED_NETWORKS && !ENABLED_NETWORKS.includes(indexerName)) return;

instance.addIndexer(indexerName, config, indexer);
}
10 changes: 8 additions & 2 deletions apps/api/src/starknet/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Checkpoint, { starknet } from '@snapshot-labs/checkpoint';
import { createConfig } from './config';
import { createWriters } from './writers';
import { registerIndexer } from '../register';

const snConfig = createConfig('sn');
const snSepConfig = createConfig('sn-sep');
Expand All @@ -9,6 +10,11 @@ const snIndexer = new starknet.StarknetIndexer(createWriters(snConfig));
const snSepIndexer = new starknet.StarknetIndexer(createWriters(snSepConfig));

export function addStarknetIndexers(checkpoint: Checkpoint) {
checkpoint.addIndexer(snConfig.indexerName, snConfig, snIndexer);
checkpoint.addIndexer(snSepConfig.indexerName, snSepConfig, snSepIndexer);
registerIndexer(checkpoint, snConfig.indexerName, snConfig, snIndexer);
registerIndexer(
checkpoint,
snSepConfig.indexerName,
snSepConfig,
snSepIndexer
);
}

0 comments on commit 2dad272

Please sign in to comment.