moonstream/moonstreamdb/moonstreamdb/networks.py

157 wiersze
3.9 KiB
Python
Czysty Zwykły widok Historia

2023-03-06 15:58:25 +00:00
from enum import Enum
from typing import Dict, Union
from .models import (
ArbitrumNovaBlock,
ArbitrumNovaLabel,
ArbitrumNovaTransaction,
ArbitrumSepoliaBlock,
ArbitrumSepoliaLabel,
ArbitrumSepoliaTransaction,
AvalancheBlock,
AvalancheFujiBlock,
AvalancheFujiLabel,
AvalancheFujiTransaction,
AvalancheLabel,
AvalancheTransaction,
2023-03-06 15:58:25 +00:00
Base,
EthereumBlock,
EthereumLabel,
EthereumTransaction,
MumbaiBlock,
MumbaiLabel,
MumbaiTransaction,
PolygonBlock,
PolygonLabel,
PolygonTransaction,
WyrmBlock,
WyrmLabel,
WyrmTransaction,
XaiBlock,
XaiLabel,
2024-03-28 15:59:39 +00:00
XaiSepoliaBlock,
XaiSepoliaLabel,
XaiSepoliaTransaction,
XaiTransaction,
2023-03-06 15:58:25 +00:00
XDaiBlock,
XDaiLabel,
XDaiTransaction,
ZkSyncEraBlock,
ZkSyncEraLabel,
ZkSyncEraSepoliaBlock,
ZkSyncEraSepoliaLabel,
ZkSyncEraSepoliaTransaction,
2023-07-12 11:23:00 +00:00
ZkSyncEraTestnetBlock,
ZkSyncEraTestnetLabel,
ZkSyncEraTestnetTransaction,
2023-08-29 00:45:54 +00:00
ZkSyncEraTransaction,
2023-03-06 15:58:25 +00:00
)
class Network(Enum):
ethereum = "ethereum"
polygon = "polygon"
mumbai = "mumbai"
xdai = "xdai"
wyrm = "wyrm"
2023-07-12 11:23:00 +00:00
zksync_era_testnet = "zksync_era_testnet"
2023-08-29 00:45:54 +00:00
zksync_era = "zksync_era"
zksync_era_sepolia = "zksync_era_sepolia"
2024-01-30 13:57:13 +00:00
arbitrum_nova = "arbitrum_nova"
2024-02-20 12:57:29 +00:00
arbitrum_sepolia = "arbitrum_sepolia"
2024-02-21 01:27:06 +00:00
xai = "xai"
2024-03-13 22:43:38 +00:00
xai_sepolia = "xai_sepolia"
avalanche = "avalanche"
avalanche_fuji = "avalanche_fuji"
2023-03-06 15:58:25 +00:00
2023-03-07 15:19:01 +00:00
2023-03-06 15:58:25 +00:00
tx_raw_types = Union[
EthereumTransaction,
MumbaiTransaction,
PolygonTransaction,
WyrmTransaction,
2023-03-07 15:19:01 +00:00
XDaiTransaction,
2023-07-12 11:23:00 +00:00
ZkSyncEraTestnetTransaction,
2023-08-29 00:45:54 +00:00
ZkSyncEraTransaction,
ZkSyncEraSepoliaTransaction,
2024-01-30 13:57:13 +00:00
ArbitrumNovaTransaction,
2024-02-20 12:57:29 +00:00
ArbitrumSepoliaTransaction,
2024-02-21 01:27:06 +00:00
XaiTransaction,
2024-03-13 22:43:38 +00:00
XaiSepoliaTransaction,
AvalancheTransaction,
AvalancheFujiTransaction,
2023-03-07 15:19:01 +00:00
]
2023-03-06 15:58:25 +00:00
MODELS: Dict[Network, Dict[str, Base]] = {
Network.ethereum: {
"blocks": EthereumBlock,
"labels": EthereumLabel,
"transactions": EthereumTransaction,
},
Network.mumbai: {
"blocks": MumbaiBlock,
"labels": MumbaiLabel,
"transactions": MumbaiTransaction,
},
Network.polygon: {
"blocks": PolygonBlock,
"labels": PolygonLabel,
"transactions": PolygonTransaction,
},
Network.xdai: {
"blocks": XDaiBlock,
"labels": XDaiLabel,
"transactions": XDaiTransaction,
},
Network.wyrm: {
"blocks": WyrmBlock,
"labels": WyrmLabel,
"transactions": WyrmTransaction,
},
2023-07-12 11:23:00 +00:00
Network.zksync_era_testnet: {
"blocks": ZkSyncEraTestnetBlock,
"labels": ZkSyncEraTestnetLabel,
"transactions": ZkSyncEraTestnetTransaction,
},
2023-08-29 00:45:54 +00:00
Network.zksync_era: {
"blocks": ZkSyncEraSepoliaBlock,
"labels": ZkSyncEraSepoliaLabel,
"transactions": ZkSyncEraSepoliaTransaction,
},
Network.zksync_era_sepolia: {
2023-08-29 00:45:54 +00:00
"blocks": ZkSyncEraBlock,
"labels": ZkSyncEraLabel,
"transactions": ZkSyncEraTransaction,
},
2024-01-30 13:57:13 +00:00
Network.arbitrum_nova: {
"blocks": ArbitrumNovaBlock,
"labels": ArbitrumNovaLabel,
"transactions": ArbitrumNovaTransaction,
},
2024-02-20 12:57:29 +00:00
Network.arbitrum_sepolia: {
"blocks": ArbitrumSepoliaBlock,
"labels": ArbitrumSepoliaLabel,
"transactions": ArbitrumSepoliaTransaction,
},
2024-02-21 01:27:06 +00:00
Network.xai: {
"blocks": XaiBlock,
"labels": XaiLabel,
"transactions": XaiTransaction,
},
2024-03-13 22:43:38 +00:00
Network.xai_sepolia: {
"blocks": XaiSepoliaBlock,
"labels": XaiSepoliaLabel,
"transactions": XaiSepoliaTransaction,
2024-03-13 22:09:54 +00:00
},
Network.avalanche: {
"blocks": AvalancheBlock,
"labels": AvalancheLabel,
"transactions": AvalancheTransaction,
},
Network.avalanche_fuji: {
"blocks": AvalancheFujiBlock,
"labels": AvalancheFujiLabel,
"transactions": AvalancheFujiTransaction,
},
2023-03-06 15:58:25 +00:00
}