27
27
from dipdup .config .evm import EvmIndexConfig
28
28
from dipdup .config .evm_events import EvmEventsIndexConfig
29
29
from dipdup .config .evm_transactions import EvmTransactionsIndexConfig
30
- from dipdup .config .starknet import StarknetIndexConfig
30
+ from dipdup .config .starknet import StarknetIndexConfig , StarknetContractConfig
31
31
from dipdup .config .starknet_events import StarknetEventsIndexConfig
32
32
from dipdup .config .tezos import TezosContractConfig
33
33
from dipdup .config .tezos import TezosIndexConfig
@@ -239,15 +239,15 @@ async def reindex(
239
239
240
240
async def add_contract (
241
241
self ,
242
- kind : Literal ['tezos' ] | Literal ['evm' ],
242
+ kind : Literal ['tezos' ] | Literal ['evm' ] | Literal [ 'starknet' ] ,
243
243
name : str ,
244
244
address : str | None = None ,
245
245
typename : str | None = None ,
246
246
code_hash : str | int | None = None ,
247
247
) -> None :
248
248
"""Adds contract to the inventory.
249
249
250
- :param kind: Either 'tezos' or 'evm' allowed
250
+ :param kind: Either 'tezos' or 'evm' or 'starknet' allowed
251
251
:param name: Contract name
252
252
:param address: Contract address
253
253
:param typename: Alias for the contract script
@@ -274,6 +274,14 @@ async def add_contract(
274
274
address = address ,
275
275
typename = typename ,
276
276
)
277
+ elif kind == 'starknet' :
278
+ if address is None :
279
+ raise ConfigurationError ('Starknet contract address is required' )
280
+ contract_config = StarknetContractConfig (
281
+ kind = kind ,
282
+ address = address ,
283
+ typename = typename ,
284
+ )
277
285
else :
278
286
raise NotImplementedError ('Unknown contract kind' , kind )
279
287
0 commit comments