Context reference
Common execution context for handler and hook callbacks.
- Parameters:
- config (DipDupConfig) – DipDup configuration
- package (DipDupPackage) – DipDup package
- datasources (dict[str, Datasource[Any]]) – Mapping of available datasources
- transactions (TransactionManager) – Transaction manager (don’t use it directly)
- logger – Context-aware logger instance
dipdup.context.DipDupContext
class dipdup.context.DipDupContext(config, package, datasources, transactions)
Execution context of handler callbacks.
- Parameters:
- config (DipDupConfig) – DipDup configuration
- package (DipDupPackage) – DipDup package
- datasources (dict[str, Datasource[Any]]) – Mapping of available datasources
- transactions (TransactionManager) – Transaction manager (don’t use it directly)
- logger (Logger) – Context-aware logger instance
- handler_config (HandlerConfig) – Configuration of the current handler
dipdup.context.HandlerContext
class dipdup.context.HandlerContext(config, package, datasources, transactions, logger, handler_config)
Execution context of hook callbacks.
- Parameters:
- config (DipDupConfig) – DipDup configuration
- package (DipDupPackage) – DipDup package
- datasources (dict[str, Datasource[Any]]) – Mapping of available datasources
- transactions (TransactionManager) – Transaction manager (don’t use it directly)
- logger (Logger) – Context-aware logger instance
- hook_config (HookConfig) – Configuration of the current hook
dipdup.context.HookContext
class dipdup.context.HookContext(config, package, datasources, transactions, logger, hook_config)
Adds contract to the inventory.
- Parameters:
- kind (Literal['tezos', 'evm', 'starknet']) – Either ‘tezos’ or ‘evm’ or ‘starknet’ allowed
- name (str) – Contract name
- address (str | None) – Contract address
- typename (str | None) – Alias for the contract script
- code_hash (str | int | None) – Contract code hash
- Return type:
None
dipdup.context.DipDupContext.add_contract
async DipDupContext.add_contract(kind, name, address=None, typename=None, code_hash=None)
Adds a new index from template.
- Parameters:
- name (str) – Index name
- template (str) – Index template to use
- values (dict[str, Any]) – Mapping of values to fill template with
- first_level (int) – First level to start indexing from
- last_level (int) – Last level to index
- state (Index | None) – Initial index state (dev only)
- Return type:
None
dipdup.context.DipDupContext.add_index
async DipDupContext.add_index(name, template, values, first_level=0, last_level=0, state=None)
Executes SQL script(s) with given name.
If the name path is a directory, all .sql scripts within it will be executed in alphabetical order.
- Parameters:
- name (str) – File or directory within project’s sql directory
- args (Any) – Positional arguments to pass to the script
- kwargs (Any) – Keyword arguments to pass to the script
- Return type:
None
dipdup.context.DipDupContext.execute_sql
async DipDupContext.execute_sql(name, *args, **kwargs)
Executes SQL query with given name included with the project
- Parameters:
- name (str) – SQL query name within sql directory
- values – Values to pass to the query
- args (Any)
- Return type:
Any
dipdup.context.DipDupContext.execute_sql_query
async DipDupContext.execute_sql_query(name, *args)
Fire hook with given name and arguments.
- Parameters:
- name (str) – Hook name
- wait (bool) – Wait for hook to finish or fire and forget
- kwargs (Any) – Hook arguments
- Return type:
None
dipdup.context.DipDupContext.fire_hook
async DipDupContext.fire_hook(name, wait=True, **kwargs)
Get abi.etherscan datasource by name
- Parameters:
name (str) – Name of the datasource
- Return type:
AbiEtherscanDatasource
dipdup.context.DipDupContext.get_abi_etherscan_datasource
DipDupContext.get_abi_etherscan_datasource(name)
Get coinbase datasource by name
- Parameters:
name (str) – Name of the datasource
- Return type:
CoinbaseDatasource
dipdup.context.DipDupContext.get_coinbase_datasource
DipDupContext.get_coinbase_datasource(name)
Get evm.node datasource by name
- Parameters:
name (str)
- Return type:
EvmNodeDatasource
dipdup.context.DipDupContext.get_evm_node_datasource
DipDupContext.get_evm_node_datasource(name)
Get evm.subsquid datasource by name
- Parameters:
name (str)
- Return type:
EvmSubsquidDatasource
dipdup.context.DipDupContext.get_evm_subsquid_datasource
DipDupContext.get_evm_subsquid_datasource(name)
Get http datasource by name
- Parameters:
name (str) – Name of the datasource
- Return type:
HttpDatasource
dipdup.context.DipDupContext.get_http_datasource
DipDupContext.get_http_datasource(name)
Get ipfs datasource by name
- Parameters:
name (str) – Name of the datasource
- Return type:
IpfsDatasource
dipdup.context.DipDupContext.get_ipfs_datasource
DipDupContext.get_ipfs_datasource(name)
Get metadata datasource by name
- Parameters:
name (str) – Name of the datasource
- Return type:
TzipMetadataDatasource
dipdup.context.DipDupContext.get_tzip_metadata_datasource
DipDupContext.get_tzip_metadata_datasource(name)
Get tezos.tzkt datasource by name
- Parameters:
name (str)
- Return type:
TezosTzktDatasource
dipdup.context.DipDupContext.get_tezos_tzkt_datasource
DipDupContext.get_tezos_tzkt_datasource(name)
Drops the entire database and starts the indexing process from scratch.
- Parameters:
- reason (str | ReindexingReason | None) – Reason for reindexing in free-form string
- context (Any) – Additional information to include in exception message
- Return type:
None
dipdup.context.DipDupContext.reindex
async DipDupContext.reindex(reason=None, **context)
Restart process and continue indexing.
- Return type:
None
dipdup.context.DipDupContext.restart
async DipDupContext.restart()
Rollback index to a given level reverting all changes made since that level.
- Parameters:
- index (str) – Index name
- from_level (int) – Level to rollback from
- to_level (int) – Level to rollback to
- Return type:
None
dipdup.context.DipDupContext.rollback
async DipDupContext.rollback(index, from_level, to_level)
Inserts or updates corresponding rows in the internal dipdup_contract_metadata table to provide a generic metadata interface (see docs).
- Parameters:
- network (str) – Network name (e.g. mainnet)
- address (str) – Contract address
- metadata (dict[str, Any] | None) – Contract metadata to insert/update
- Return type:
None
dipdup.context.DipDupContext.update_contract_metadata
async DipDupContext.update_contract_metadata(network, address, metadata)
Inserts or updates corresponding rows in the internal dipdup_token_metadata table to provide a generic metadata interface (see docs).
- Parameters:
- network (str) – Network name (e.g. mainnet)
- address (str) – Contract address
- token_id (str) – Token ID
- metadata (dict[str, Any] | None) – Token metadata to insert/update
- Return type:
None
dipdup.context.DipDupContext.update_token_metadata
async DipDupContext.update_token_metadata(network, address, token_id, metadata)