2021-07-26 22:15:50 +00:00
|
|
|
import os
|
2023-03-09 07:28:34 +00:00
|
|
|
from typing import Dict, Optional
|
2022-03-17 20:07:28 +00:00
|
|
|
from uuid import UUID
|
2021-07-26 22:15:50 +00:00
|
|
|
|
2021-11-13 15:21:41 +00:00
|
|
|
from bugout.app import Bugout
|
2022-09-08 09:51:41 +00:00
|
|
|
from moonstreamdb.blockchain import AvailableBlockchainType
|
|
|
|
|
2021-09-01 13:41:31 +00:00
|
|
|
# Bugout
|
2021-11-13 15:21:41 +00:00
|
|
|
BUGOUT_BROOD_URL = os.environ.get("BUGOUT_BROOD_URL", "https://auth.bugout.dev")
|
|
|
|
BUGOUT_SPIRE_URL = os.environ.get("BUGOUT_SPIRE_URL", "https://spire.bugout.dev")
|
2023-04-25 13:49:01 +00:00
|
|
|
|
2023-04-26 14:38:32 +00:00
|
|
|
bugout_client = Bugout(brood_api_url=BUGOUT_BROOD_URL, spire_api_url=BUGOUT_SPIRE_URL)
|
|
|
|
|
|
|
|
|
2023-07-27 03:59:01 +00:00
|
|
|
MOONSTREAM_API_URL = os.environ.get("MOONSTREAM_API_URL", "https://api.moonstream.to")
|
|
|
|
MOONSTREAM_ENGINE_URL = os.environ.get(
|
|
|
|
"MOONSTREAM_ENGINE_URL", "https://engineapi.moonstream.to"
|
|
|
|
)
|
|
|
|
|
2023-04-25 13:49:01 +00:00
|
|
|
|
2022-08-17 14:50:47 +00:00
|
|
|
BUGOUT_REQUEST_TIMEOUT_SECONDS_RAW = os.environ.get(
|
|
|
|
"MOONSTREAM_BUGOUT_TIMEOUT_SECONDS", 30
|
2022-08-17 14:42:37 +00:00
|
|
|
)
|
2022-08-17 14:50:47 +00:00
|
|
|
try:
|
2022-08-17 14:56:35 +00:00
|
|
|
BUGOUT_REQUEST_TIMEOUT_SECONDS = int(BUGOUT_REQUEST_TIMEOUT_SECONDS_RAW)
|
2022-08-17 14:50:47 +00:00
|
|
|
except:
|
|
|
|
raise Exception(
|
|
|
|
f"Could not parse MOONSTREAM_BUGOUT_TIMEOUT_SECONDS_RAW as int: {BUGOUT_REQUEST_TIMEOUT_SECONDS_RAW}"
|
|
|
|
)
|
2022-08-17 14:25:00 +00:00
|
|
|
|
|
|
|
|
2021-09-01 13:41:31 +00:00
|
|
|
HUMBUG_REPORTER_CRAWLERS_TOKEN = os.environ.get("HUMBUG_REPORTER_CRAWLERS_TOKEN")
|
|
|
|
|
2021-11-13 15:51:32 +00:00
|
|
|
# Origin
|
|
|
|
RAW_ORIGINS = os.environ.get("MOONSTREAM_CORS_ALLOWED_ORIGINS")
|
|
|
|
if RAW_ORIGINS is None:
|
|
|
|
raise ValueError(
|
|
|
|
"MOONSTREAM_CORS_ALLOWED_ORIGINS environment variable must be set (comma-separated list of CORS allowed origins)"
|
|
|
|
)
|
|
|
|
ORIGINS = RAW_ORIGINS.split(",")
|
|
|
|
|
|
|
|
# OpenAPI
|
|
|
|
DOCS_TARGET_PATH = "docs"
|
|
|
|
|
2022-01-24 17:35:46 +00:00
|
|
|
|
2021-11-14 14:15:07 +00:00
|
|
|
# Crawler label
|
2021-12-16 19:43:32 +00:00
|
|
|
CRAWLER_LABEL = "moonworm-alpha"
|
2022-08-31 13:50:36 +00:00
|
|
|
VIEW_STATE_CRAWLER_LABEL = "view-state-alpha"
|
|
|
|
METADATA_CRAWLER_LABEL = "metadata-crawler"
|
|
|
|
|
|
|
|
MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS = 30000
|
|
|
|
MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS_RAW = os.environ.get(
|
|
|
|
"MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS"
|
|
|
|
)
|
|
|
|
try:
|
|
|
|
if MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS_RAW is not None:
|
|
|
|
MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS = int(
|
|
|
|
MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS_RAW
|
|
|
|
)
|
|
|
|
except:
|
|
|
|
raise Exception(
|
|
|
|
f"Could not parse MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS as int: {MOONSTREAM_STATE_CRAWLER_DB_STATEMENT_TIMEOUT_MILLIS_RAW}"
|
|
|
|
)
|
2021-11-14 14:15:07 +00:00
|
|
|
|
2023-02-14 17:49:37 +00:00
|
|
|
|
2023-03-09 07:28:34 +00:00
|
|
|
MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS = 100000
|
2023-02-14 17:49:37 +00:00
|
|
|
MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS_RAW = os.environ.get(
|
|
|
|
"MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS"
|
|
|
|
)
|
|
|
|
try:
|
|
|
|
if MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS_RAW is not None:
|
|
|
|
MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS = int(
|
|
|
|
MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS_RAW
|
|
|
|
)
|
|
|
|
except:
|
|
|
|
raise Exception(
|
|
|
|
f"Could not parse MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS as int: {MOONSTREAM_CRAWLERS_DB_STATEMENT_TIMEOUT_MILLIS_RAW}"
|
|
|
|
)
|
|
|
|
|
2021-11-04 12:50:36 +00:00
|
|
|
# Geth connection address
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_ETHEREUM_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_ETHEREUM_A_EXTERNAL_URI", ""
|
2021-11-04 12:50:36 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_ETHEREUM_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_ETHEREUM_A_EXTERNAL_URI env variable is not set")
|
2022-05-24 08:21:53 +00:00
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_POLYGON_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_POLYGON_A_EXTERNAL_URI", ""
|
2021-11-08 15:08:57 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_POLYGON_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_POLYGON_A_EXTERNAL_URI env variable is not set")
|
2021-07-26 22:15:50 +00:00
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_MUMBAI_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_MUMBAI_A_EXTERNAL_URI", ""
|
2022-08-10 16:55:49 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_MUMBAI_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_MUMBAI_A_EXTERNAL_URI env variable is not set")
|
2022-08-10 16:55:49 +00:00
|
|
|
|
2024-04-15 08:05:26 +00:00
|
|
|
MOONSTREAM_NODE_AMOY_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_AMOY_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_AMOY_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_AMOY_A_EXTERNAL_URI env variable is not set")
|
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_XDAI_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_XDAI_A_EXTERNAL_URI", ""
|
2022-05-24 08:21:53 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_XDAI_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_XDAI_A_EXTERNAL_URI env variable is not set")
|
2022-05-24 08:21:53 +00:00
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_ZKSYNC_ERA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_ZKSYNC_ERA_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_ZKSYNC_ERA_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_ZKSYNC_ERA_A_EXTERNAL_URI env variable is not set")
|
|
|
|
|
|
|
|
MOONSTREAM_NODE_ZKSYNC_ERA_SEPOLIA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_ZKSYNC_ERA_SEPOLIA_A_EXTERNAL_URI", ""
|
2023-08-29 03:41:47 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_ZKSYNC_ERA_SEPOLIA_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception(
|
|
|
|
"MOONSTREAM_NODE_ZKSYNC_ERA_SEPOLIA_A_EXTERNAL_URI env variable is not set"
|
|
|
|
)
|
2023-08-29 03:41:47 +00:00
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_ARBITRUM_NOVA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_ARBITRUM_NOVA_A_EXTERNAL_URI", ""
|
2024-01-31 10:09:04 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_ARBITRUM_NOVA_A_EXTERNAL_URI == "":
|
2024-01-31 10:09:04 +00:00
|
|
|
raise Exception(
|
2024-03-28 13:37:45 +00:00
|
|
|
"MOONSTREAM_NODE_ARBITRUM_NOVA_A_EXTERNAL_URI env variable is not set"
|
2024-01-31 10:09:04 +00:00
|
|
|
)
|
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_ARBITRUM_SEPOLIA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_ARBITRUM_SEPOLIA_A_EXTERNAL_URI", ""
|
2024-02-20 12:57:29 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_ARBITRUM_SEPOLIA_A_EXTERNAL_URI == "":
|
2024-02-20 12:57:29 +00:00
|
|
|
raise Exception(
|
2024-03-28 13:37:45 +00:00
|
|
|
"MOONSTREAM_NODE_ARBITRUM_SEPOLIA_A_EXTERNAL_URI env variable is not set"
|
2024-02-20 12:57:29 +00:00
|
|
|
)
|
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_XAI_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_XAI_A_EXTERNAL_URI", ""
|
2024-02-21 01:27:06 +00:00
|
|
|
)
|
2024-03-28 13:37:45 +00:00
|
|
|
if MOONSTREAM_NODE_XAI_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_XAI_A_EXTERNAL_URI env variable is not set")
|
2024-02-21 01:27:06 +00:00
|
|
|
|
2024-03-28 15:59:39 +00:00
|
|
|
MOONSTREAM_NODE_XAI_SEPOLIA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_XAI_SEPOLIA_A_EXTERNAL_URI", ""
|
2024-03-13 22:09:54 +00:00
|
|
|
)
|
2024-03-28 15:59:39 +00:00
|
|
|
if MOONSTREAM_NODE_XAI_SEPOLIA_A_EXTERNAL_URI == "":
|
2024-03-28 16:10:40 +00:00
|
|
|
raise Exception(
|
|
|
|
"MOONSTREAM_NODE_XAI_SEPOLIA_A_EXTERNAL_URI env variable is not set"
|
|
|
|
)
|
2024-03-28 15:59:39 +00:00
|
|
|
|
2024-03-28 13:37:45 +00:00
|
|
|
MOONSTREAM_NODE_AVALANCHE_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_AVALANCHE_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_AVALANCHE_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_AVALANCHE_A_EXTERNAL_URI env variable is not set")
|
|
|
|
|
|
|
|
MOONSTREAM_NODE_AVALANCHE_FUJI_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_AVALANCHE_FUJI_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_AVALANCHE_FUJI_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception(
|
|
|
|
"MOONSTREAM_NODE_AVALANCHE_FUJI_A_EXTERNAL_URI env variable is not set"
|
|
|
|
)
|
2024-02-21 01:27:06 +00:00
|
|
|
|
2024-04-10 11:22:25 +00:00
|
|
|
MOONSTREAM_NODE_BLAST_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_BLAST_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_BLAST_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception("MOONSTREAM_NODE_BLAST_A_EXTERNAL_URI env variable is not set")
|
|
|
|
|
|
|
|
MOONSTREAM_NODE_BLAST_SEPOLIA_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_BLAST_SEPOLIA_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_BLAST_SEPOLIA_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception(
|
|
|
|
"MOONSTREAM_NODE_BLAST_SEPOLIA_A_EXTERNAL_URI env variable is not set"
|
|
|
|
)
|
|
|
|
|
2024-04-17 00:08:54 +00:00
|
|
|
MOONSTREAM_NODE_PROOFOFPLAY_APEX_A_EXTERNAL_URI = os.environ.get(
|
|
|
|
"MOONSTREAM_NODE_PROOFOFPLAY_APEX_A_EXTERNAL_URI", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_NODE_PROOFOFPLAY_APEX_A_EXTERNAL_URI == "":
|
|
|
|
raise Exception(
|
|
|
|
"MOONSTREAM_NODE_PROOFOFPLAY_APEX_A_EXTERNAL_URI env variable is not set"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2021-07-26 22:15:50 +00:00
|
|
|
MOONSTREAM_CRAWL_WORKERS = 4
|
|
|
|
MOONSTREAM_CRAWL_WORKERS_RAW = os.environ.get("MOONSTREAM_CRAWL_WORKERS")
|
|
|
|
try:
|
|
|
|
if MOONSTREAM_CRAWL_WORKERS_RAW is not None:
|
|
|
|
MOONSTREAM_CRAWL_WORKERS = int(MOONSTREAM_CRAWL_WORKERS_RAW)
|
|
|
|
except:
|
|
|
|
raise Exception(
|
|
|
|
f"Could not parse MOONSTREAM_CRAWL_WORKERS as int: {MOONSTREAM_CRAWL_WORKERS_RAW}"
|
|
|
|
)
|
2021-08-18 14:24:09 +00:00
|
|
|
|
2021-09-01 13:41:31 +00:00
|
|
|
# Etherscan
|
2021-08-18 14:24:09 +00:00
|
|
|
MOONSTREAM_ETHERSCAN_TOKEN = os.environ.get("MOONSTREAM_ETHERSCAN_TOKEN")
|
2021-09-22 08:37:07 +00:00
|
|
|
|
|
|
|
# NFT crawler
|
2021-09-23 10:13:06 +00:00
|
|
|
NFT_HUMBUG_TOKEN = os.environ.get("NFT_HUMBUG_TOKEN", "")
|
|
|
|
if NFT_HUMBUG_TOKEN == "":
|
|
|
|
raise ValueError("NFT_HUMBUG_TOKEN env variable is not set")
|
2021-09-22 08:37:07 +00:00
|
|
|
|
2021-09-22 13:53:11 +00:00
|
|
|
MOONSTREAM_ADMIN_ACCESS_TOKEN = os.environ.get("MOONSTREAM_ADMIN_ACCESS_TOKEN", "")
|
|
|
|
if MOONSTREAM_ADMIN_ACCESS_TOKEN == "":
|
2021-09-22 08:37:07 +00:00
|
|
|
raise ValueError("MOONSTREAM_ADMIN_ACCESS_TOKEN env variable is not set")
|
|
|
|
|
2021-09-22 13:53:11 +00:00
|
|
|
MOONSTREAM_DATA_JOURNAL_ID = os.environ.get("MOONSTREAM_DATA_JOURNAL_ID", "")
|
|
|
|
if MOONSTREAM_DATA_JOURNAL_ID == "":
|
2021-09-22 08:37:07 +00:00
|
|
|
raise ValueError("MOONSTREAM_DATA_JOURNAL_ID env variable is not set")
|
2021-11-14 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX = os.environ.get(
|
|
|
|
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX"
|
|
|
|
)
|
|
|
|
if MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX is None:
|
|
|
|
raise ValueError(
|
|
|
|
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX environment variable must be set"
|
|
|
|
)
|
2021-12-09 12:56:38 +00:00
|
|
|
|
2023-04-27 16:04:07 +00:00
|
|
|
MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET = os.environ.get(
|
|
|
|
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET"
|
2023-04-25 13:49:01 +00:00
|
|
|
)
|
2023-04-27 16:04:07 +00:00
|
|
|
if MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET is None:
|
2023-04-25 13:49:01 +00:00
|
|
|
raise ValueError(
|
2023-04-27 16:04:07 +00:00
|
|
|
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET environment variable must be set"
|
2023-04-25 13:49:01 +00:00
|
|
|
)
|
|
|
|
|
2021-12-09 12:56:38 +00:00
|
|
|
MOONSTREAM_MOONWORM_TASKS_JOURNAL = os.environ.get(
|
|
|
|
"MOONSTREAM_MOONWORM_TASKS_JOURNAL", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_MOONWORM_TASKS_JOURNAL == "":
|
|
|
|
raise ValueError(
|
|
|
|
"MOONSTREAM_MOONWORM_TASKS_JOURNAL environment variable must be set"
|
|
|
|
)
|
2022-02-16 16:12:42 +00:00
|
|
|
|
2022-08-25 12:22:01 +00:00
|
|
|
# queries
|
2022-08-25 12:13:46 +00:00
|
|
|
|
2022-11-24 13:40:26 +00:00
|
|
|
|
2022-11-28 15:16:53 +00:00
|
|
|
LINKS_EXPIRATION_TIME = 60 * 60 * 12 # 12 hours
|
2022-11-24 13:40:26 +00:00
|
|
|
|
2022-08-25 12:13:46 +00:00
|
|
|
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS = 30000
|
2022-08-25 12:22:01 +00:00
|
|
|
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS_RAW = os.environ.get(
|
|
|
|
"MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS"
|
|
|
|
)
|
2022-08-25 12:13:46 +00:00
|
|
|
try:
|
|
|
|
if MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS_RAW is not None:
|
2022-08-25 12:22:01 +00:00
|
|
|
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS = int(
|
|
|
|
MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS_RAW
|
|
|
|
)
|
2022-08-25 12:13:46 +00:00
|
|
|
except:
|
|
|
|
raise Exception(
|
2022-10-05 15:18:12 +00:00
|
|
|
f"Could not parse MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS as int: {MOONSTREAM_QUERY_API_DB_STATEMENT_TIMEOUT_MILLIS_RAW}"
|
2022-08-25 12:13:46 +00:00
|
|
|
)
|
|
|
|
|
2022-02-16 16:12:42 +00:00
|
|
|
|
2022-03-09 12:44:54 +00:00
|
|
|
MOONSTREAM_S3_QUERIES_BUCKET = os.environ.get("MOONSTREAM_S3_QUERIES_BUCKET", "")
|
|
|
|
if MOONSTREAM_S3_QUERIES_BUCKET == "":
|
|
|
|
raise ValueError("MOONSTREAM_S3_QUERIES_BUCKET environment variable must be set")
|
2022-03-08 13:18:27 +00:00
|
|
|
|
|
|
|
|
2022-03-09 12:44:54 +00:00
|
|
|
MOONSTREAM_S3_QUERIES_BUCKET_PREFIX = os.environ.get(
|
|
|
|
"MOONSTREAM_S3_QUERIES_BUCKET_PREFIX", ""
|
2022-03-08 13:18:27 +00:00
|
|
|
)
|
2022-03-09 12:44:54 +00:00
|
|
|
if MOONSTREAM_S3_QUERIES_BUCKET_PREFIX == "":
|
2022-03-08 13:18:27 +00:00
|
|
|
raise ValueError(
|
2022-03-09 12:44:54 +00:00
|
|
|
"MOONSTREAM_S3_QUERIES_BUCKET_PREFIX environment variable must be set"
|
2022-03-08 13:18:27 +00:00
|
|
|
)
|
2022-03-17 19:19:48 +00:00
|
|
|
|
|
|
|
# Node balancer
|
|
|
|
NB_ACCESS_ID_HEADER = os.environ.get("NB_ACCESS_ID_HEADER", "x-node-balancer-access-id")
|
|
|
|
NB_DATA_SOURCE_HEADER = os.environ.get(
|
|
|
|
"NB_DATA_SOURCE_HEADER", "x-node-balancer-data-source"
|
|
|
|
)
|
2022-03-17 20:07:28 +00:00
|
|
|
|
2022-10-05 15:18:12 +00:00
|
|
|
# HTTPProvider for web3 client
|
|
|
|
|
|
|
|
WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS = 600
|
|
|
|
WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS_RAW = os.environ.get(
|
|
|
|
"WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS"
|
|
|
|
)
|
|
|
|
try:
|
|
|
|
if WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS_RAW is not None:
|
|
|
|
WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS = int(
|
|
|
|
WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS_RAW
|
|
|
|
)
|
|
|
|
except:
|
|
|
|
raise Exception(
|
|
|
|
f"Could not parse WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS as int: {WEB3_CLIENT_REQUEST_TIMEOUT_SECONDS_RAW}"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2022-09-08 09:51:41 +00:00
|
|
|
multicall_contracts: Dict[AvailableBlockchainType, str] = {
|
|
|
|
AvailableBlockchainType.POLYGON: "0xc8E51042792d7405184DfCa245F2d27B94D013b6",
|
|
|
|
AvailableBlockchainType.MUMBAI: "0xe9939e7Ea7D7fb619Ac57f648Da7B1D425832631",
|
|
|
|
AvailableBlockchainType.ETHEREUM: "0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696",
|
2023-12-09 03:24:59 +00:00
|
|
|
AvailableBlockchainType.ZKSYNC_ERA: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
|
2022-09-08 09:51:41 +00:00
|
|
|
}
|
2022-11-03 14:42:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Custom Crawler
|
|
|
|
|
2022-11-16 12:05:01 +00:00
|
|
|
MOONSTREAM_S3_PUBLIC_DATA_BUCKET = os.environ.get(
|
|
|
|
"MOONSTREAM_S3_PUBLIC_DATA_BUCKET", ""
|
2022-11-09 20:09:17 +00:00
|
|
|
) # S3 bucket for storing custom crawler data
|
2022-11-15 16:57:35 +00:00
|
|
|
|
2022-11-16 12:05:01 +00:00
|
|
|
if MOONSTREAM_S3_PUBLIC_DATA_BUCKET == "":
|
2022-11-15 16:57:35 +00:00
|
|
|
raise ValueError(
|
2022-11-16 12:05:01 +00:00
|
|
|
"MOONSTREAM_S3_PUBLIC_DATA_BUCKET environment variable must be set"
|
2022-11-15 16:57:35 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2022-11-16 12:05:01 +00:00
|
|
|
MOONSTREAM_S3_PUBLIC_DATA_BUCKET_PREFIX = os.environ.get(
|
|
|
|
"MOONSTREAM_S3_PUBLIC_DATA_BUCKET_PREFIX", "dev"
|
|
|
|
)
|
2022-12-15 15:27:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
# infura config
|
|
|
|
|
|
|
|
|
|
|
|
INFURA_PROJECT_ID = os.environ.get("INFURA_PROJECT_ID")
|
|
|
|
|
|
|
|
infura_networks = {
|
|
|
|
AvailableBlockchainType.ETHEREUM: {
|
|
|
|
"name": "mainnet",
|
|
|
|
"url": f"https://mainnet.infura.io/v3/{INFURA_PROJECT_ID}",
|
|
|
|
},
|
|
|
|
AvailableBlockchainType.POLYGON: {
|
|
|
|
"name": "polygon",
|
|
|
|
"url": f"https://polygon-mainnet.infura.io/v3/{INFURA_PROJECT_ID}",
|
|
|
|
},
|
|
|
|
AvailableBlockchainType.MUMBAI: {
|
|
|
|
"name": "mumbai",
|
|
|
|
"url": f"https://polygon-mumbai.infura.io/v3/{INFURA_PROJECT_ID}",
|
|
|
|
},
|
|
|
|
}
|
2023-04-25 13:49:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
## Moonstream resources types
|
|
|
|
|
|
|
|
BUGOUT_RESOURCE_TYPE_SUBSCRIPTION = "subscription"
|
|
|
|
BUGOUT_RESOURCE_TYPE_ENTITY_SUBSCRIPTION = "entity_subscription"
|
|
|
|
BUGOUT_RESOURCE_TYPE_DASHBOARD = "dashboards"
|
2023-05-23 10:56:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Historical crawler status config
|
|
|
|
|
|
|
|
HISTORICAL_CRAWLER_STATUSES = {
|
|
|
|
"pending": "pending",
|
|
|
|
"running": "running",
|
|
|
|
"finished": "finished",
|
|
|
|
}
|
|
|
|
|
|
|
|
# Historical crawler moonworm status config
|
|
|
|
|
|
|
|
HISTORICAL_CRAWLER_MOONWORM_STATUSES = {
|
|
|
|
"pickedup": True,
|
|
|
|
}
|
|
|
|
|
|
|
|
# Statuses tags prefixes
|
|
|
|
|
|
|
|
HISTORICAL_CRAWLER_STATUS_TAG_PREFIXES = {
|
|
|
|
"moonworm_status": "moonworm_task_pickedup",
|
|
|
|
"historical_crawl_status": "historical_crawl_status",
|
|
|
|
"progress_status": "progress",
|
|
|
|
}
|
2023-07-26 13:21:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Leaderboard generator
|
|
|
|
|
|
|
|
MOONSTREAM_LEADERBOARD_GENERATOR_JOURNAL_ID = os.environ.get(
|
|
|
|
"MOONSTREAM_LEADERBOARD_GENERATOR_JOURNAL_ID", ""
|
|
|
|
)
|
|
|
|
if MOONSTREAM_LEADERBOARD_GENERATOR_JOURNAL_ID == "":
|
|
|
|
raise ValueError(
|
|
|
|
"MOONSTREAM_LEADERBOARD_GENERATOR_JOURNAL_ID environment variable must be set"
|
|
|
|
)
|
2023-12-09 04:42:36 +00:00
|
|
|
|
|
|
|
|
2023-12-13 19:39:52 +00:00
|
|
|
MOONSTREAM_LEADERBOARD_GENERATOR_BATCH_SIZE = 12000
|
2023-12-09 04:42:36 +00:00
|
|
|
MOONSTREAM_LEADERBOARD_GENERATOR_PUSH_TIMEOUT_SECONDS = 60
|