Skip to content

Commit

Permalink
add arbitrum indexer (#602)
Browse files Browse the repository at this point in the history
  • Loading branch information
larisa17 authored May 27, 2024
1 parent a9ca05b commit 8dba94a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
5 changes: 5 additions & 0 deletions indexer/.env.example
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
INDEXER_ETHEREUM_RPC_URL=your_wss_eth_mainnet_rpc_url
INDEXER_OPTIMISM_RPC_URL=your_wss_op_mainnet_rpc_url
INDEXER_ARBITRUM_RPC_URL=your_wss_arbitrum_mainnet_rpc_url

INDEXER_LEGACY_ENABLED=true
INDEXER_ETHEREUM_ENABLED=true
INDEXER_OPTIMISM_ENABLED=true
INDEXER_ARBITRUM_ENABLED=true

INDEXER_ETHEREUM_START_BLOCK=0
INDEXER_OPTIMISM_START_BLOCK=0
INDEXER_ARBITRUM_START_BLOCK=0

STAKING_CONTRACT_ADDRESS_ETH_MAINNET=0x0000000000000000000000000000000000000000
STAKING_CONTRACT_ADDRESS_OP_MAINNET=0x0000000000000000000000000000000000000000
STAKING_CONTRACT_ADDRESS_ARBITRUM_MAINNET=0x0000000000000000000000000000000000000000

DB_USER=user
DB_PASSWORD=pw
Expand Down
29 changes: 28 additions & 1 deletion indexer/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,15 @@ async fn main() -> Result<()> {
.parse::<Address>()
.unwrap();

let contract_address_op_mainnet = get_env("STAKING_CONTRACT_ADDRESS_ARBITRUM_MAINNET")
.parse::<Address>()
.unwrap();

match try_join!(
run_legacy_indexer(postgres_client.clone()),
run_ethereum_indexer(postgres_client.clone(), &contract_address_eth_mainnet),
run_optimism_indexer(postgres_client.clone(), &contract_address_op_mainnet)
run_optimism_indexer(postgres_client.clone(), &contract_address_op_mainnet),
run_arbitrum_indexer(postgres_client.clone(), &contract_address_arbitrum_mainnet)
) {
Ok(_) => {
eprintln!("Warning - top-level join ended without error");
Expand Down Expand Up @@ -98,3 +103,25 @@ async fn run_optimism_indexer(
.await?;
optimism_staking_indexer.listen_with_timeout_reset().await
}

async fn run_arbitrum_indexer(
postgres_client: PostgresClient,
contract_address: &Address,
) -> Result<()> {
if get_env("INDEXER_ARBITRUM_ENABLED") != "true" {
return Ok(());
}

let arbitrum_rpc_url = get_env("INDEXER_ARBITRUM_RPC_URL");
let arbitrum_start_block = get_env("INDEXER_ARBITRUM_START_BLOCK")
.parse::<u64>()
.unwrap();
let arbitrum_staking_indexer = StakingIndexer::new(
postgres_client,
&arbitrum_rpc_url,
arbitrum_start_block,
contract_address,
)
.await?;
arbitrum_staking_indexer.listen_with_timeout_reset().await
}
16 changes: 16 additions & 0 deletions infra/lib/scorer/new_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -801,6 +801,10 @@ export function createIndexerService(
name: "INDEXER_OPTIMISM_RPC_URL",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_OPTIMISM_RPC_URL::`,
},
{
name: "INDEXER_ARBITRUM_RPC_URL",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_ARBITRUM_RPC_URL::`,
},
{
name: "INDEXER_ETHEREUM_ENABLED",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_ETHEREUM_ENABLED::`,
Expand All @@ -809,6 +813,10 @@ export function createIndexerService(
name: "INDEXER_OPTIMISM_ENABLED",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_OPTIMISM_ENABLED::`,
},
{
name: "INDEXER_ARBITRUM_ENABLED",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_ARBITRUM_ENABLED::`,
},
{
name: "INDEXER_ETHEREUM_START_BLOCK",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_ETHEREUM_START_BLOCK::`,
Expand All @@ -817,6 +825,10 @@ export function createIndexerService(
name: "INDEXER_OPTIMISM_START_BLOCK",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_OPTIMISM_START_BLOCK::`,
},
{
name: "INDEXER_ARBITRUM_START_BLOCK",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_ARBITRUM_START_BLOCK::`,
},
{
name: "INDEXER_LEGACY_ENABLED",
valueFrom: `${SCORER_SERVER_SSM_ARN}:INDEXER_LEGACY_ENABLED::`,
Expand All @@ -829,6 +841,10 @@ export function createIndexerService(
name: "STAKING_CONTRACT_ADDRESS_OP_MAINNET",
valueFrom: `${SCORER_SERVER_SSM_ARN}:STAKING_CONTRACT_ADDRESS_OP_MAINNET::`,
},
{
name: "STAKING_CONTRACT_ADDRESS_ARBITRUM_MAINNET",
valueFrom: `${SCORER_SERVER_SSM_ARN}:STAKING_CONTRACT_ADDRESS_ARBITRUM_MAINNET::`,
},
]);

const indexerEnvironment: { name: string; value: Input<string> }[] = [
Expand Down

0 comments on commit 8dba94a

Please sign in to comment.