moonstream/moonstreamdb/moonstreamdb/networks.py

97 wiersze
2.2 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 (
Base,
EthereumBlock,
EthereumLabel,
EthereumTransaction,
MumbaiBlock,
MumbaiLabel,
MumbaiTransaction,
PolygonBlock,
PolygonLabel,
PolygonTransaction,
WyrmBlock,
WyrmLabel,
WyrmTransaction,
XDaiBlock,
XDaiLabel,
XDaiTransaction,
2023-07-12 11:23:00 +00:00
ZkSyncEraTestnetBlock,
ZkSyncEraTestnetLabel,
ZkSyncEraTestnetTransaction,
2023-08-29 00:45:54 +00:00
ZkSyncEraBlock,
ZkSyncEraLabel,
ZkSyncEraTransaction,
2024-01-30 13:57:13 +00:00
ArbitrumNovaBlock,
ArbitrumNovaTransaction,
ArbitrumNovaLabel,
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"
2024-01-30 13:57:13 +00:00
arbitrum_nova = "arbitrum_nova"
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,
2024-01-30 13:57:13 +00:00
ArbitrumNovaTransaction,
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": ZkSyncEraBlock,
"labels": ZkSyncEraLabel,
"transactions": ZkSyncEraTransaction,
},
2024-01-30 13:57:13 +00:00
Network.arbitrum_nova: {
"blocks": ArbitrumNovaBlock,
"labels": ArbitrumNovaLabel,
"transactions": ArbitrumNovaTransaction,
},
2023-03-06 15:58:25 +00:00
}