aries_cloudagent.ledger.multiple_ledger package

Submodules

aries_cloudagent.ledger.multiple_ledger.base_manager module

Manager for multiple ledger.

class aries_cloudagent.ledger.multiple_ledger.base_manager.BaseMultipleLedgerManager(profile: aries_cloudagent.core.profile.Profile)[source]

Bases: abc.ABC

Base class for handling multiple ledger support.

extract_did_from_identifier(identifier: str) str[source]

Return did from record identifier (REV_REG_ID, CRED_DEF_ID, SCHEMA_ID).

abstract async get_nonprod_ledgers() Mapping[source]

Return configured non production ledgers.

abstract async get_prod_ledgers() Mapping[source]

Return configured production ledgers.

abstract async get_write_ledger() Tuple[str, aries_cloudagent.ledger.base.BaseLedger][source]

Return write ledger.

abstract async lookup_did_in_configured_ledgers(did: str, cache_did: bool) Tuple[str, aries_cloudagent.ledger.base.BaseLedger][source]

Lookup given DID in configured ledgers in parallel.

exception aries_cloudagent.ledger.multiple_ledger.base_manager.MultipleLedgerManagerError(*args, error_code: Optional[str] = None, **kwargs)[source]

Bases: aries_cloudagent.core.error.BaseError

Generic multiledger error.

aries_cloudagent.ledger.multiple_ledger.indy_manager module

Multiple IndySdkLedger Manager.

class aries_cloudagent.ledger.multiple_ledger.indy_manager.MultiIndyLedgerManager(profile: aries_cloudagent.core.profile.Profile, production_ledgers: collections.OrderedDict = {}, non_production_ledgers: collections.OrderedDict = {}, write_ledger_info: Optional[Tuple[str, aries_cloudagent.ledger.indy.IndySdkLedger]] = None, cache_ttl: Optional[int] = None)[source]

Bases: aries_cloudagent.ledger.multiple_ledger.base_manager.BaseMultipleLedgerManager

Multiple Indy SDK Ledger Manager.

async get_nonprod_ledgers() Mapping[source]

Return non_production ledgers mapping.

async get_prod_ledgers() Mapping[source]

Return production ledgers mapping.

async get_write_ledger() Optional[Tuple[str, aries_cloudagent.ledger.indy.IndySdkLedger]][source]

Return the write IndySdkLedger instance.

async lookup_did_in_configured_ledgers(did: str, cache_did: bool = True) Tuple[str, aries_cloudagent.ledger.indy.IndySdkLedger][source]

Lookup given DID in configured ledgers in parallel.

aries_cloudagent.ledger.multiple_ledger.indy_vdr_manager module

Multiple IndyVdrLedger Manager.

class aries_cloudagent.ledger.multiple_ledger.indy_vdr_manager.MultiIndyVDRLedgerManager(profile: aries_cloudagent.core.profile.Profile, production_ledgers: collections.OrderedDict = {}, non_production_ledgers: collections.OrderedDict = {}, write_ledger_info: Optional[Tuple[str, aries_cloudagent.ledger.indy_vdr.IndyVdrLedger]] = None, cache_ttl: Optional[int] = None)[source]

Bases: aries_cloudagent.ledger.multiple_ledger.base_manager.BaseMultipleLedgerManager

Multiple Indy VDR Ledger Manager.

async get_nonprod_ledgers() Mapping[source]

Return non_production ledgers mapping.

async get_prod_ledgers() Mapping[source]

Return production ledgers mapping.

async get_write_ledger() Optional[Tuple[str, aries_cloudagent.ledger.indy_vdr.IndyVdrLedger]][source]

Return the write IndyVdrLedger instance.

async lookup_did_in_configured_ledgers(did: str, cache_did: bool = True) Tuple[str, aries_cloudagent.ledger.indy_vdr.IndyVdrLedger][source]

Lookup given DID in configured ledgers in parallel.

aries_cloudagent.ledger.multiple_ledger.ledger_config_schema module

Schema for configuring multiple ledgers.

class aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.LedgerConfigInstance(*, id: Optional[str] = None, is_production: str = True, genesis_transactions: Optional[str] = None, genesis_file: Optional[str] = None, genesis_url: Optional[str] = None)[source]

Bases: aries_cloudagent.messaging.models.base.BaseModel

describes each LedgerConfigInstance for multiple ledger support.

class Meta[source]

Bases: object

LedgerConfigInstance metadata.

schema_class = 'LedgerConfigInstanceSchema'
class aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.LedgerConfigInstanceSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Single LedgerConfigInstance Schema.

class Meta[source]

Bases: object

LedgerConfigInstanceSchema metadata.

model_class

alias of aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.LedgerConfigInstance

genesis_file
genesis_transactions
genesis_url
id
is_production
validate_id(data, **kwargs)

Check if id is present, if not then set to UUID4.

class aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.LedgerConfigListSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Schema for Ledger Config List.

ledger_config_list
class aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.MultipleLedgerModuleResultSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Schema for the multiple ledger modules endpoint.

class aries_cloudagent.ledger.multiple_ledger.ledger_config_schema.WriteLedgerRequestSchema(*args: Any, **kwargs: Any)[source]

Bases: marshmallow.

Schema for setting/getting ledger_id for the write ledger.

ledger_id

aries_cloudagent.ledger.multiple_ledger.ledger_requests_executor module

Ledger Request Executor.

class aries_cloudagent.ledger.multiple_ledger.ledger_requests_executor.IndyLedgerRequestsExecutor(profile: aries_cloudagent.core.profile.Profile)[source]

Bases: object

Executes Ledger Requests based on multiple ledger config, if set.

async get_ledger_for_identifier(identifier: str, txn_record_type: int) Tuple[Optional[str], Optional[aries_cloudagent.ledger.base.BaseLedger]][source]

Return ledger info given the record identifier.

aries_cloudagent.ledger.multiple_ledger.manager_provider module

Profile manager for multiple Indy ledger support.

class aries_cloudagent.ledger.multiple_ledger.manager_provider.MultiIndyLedgerManagerProvider(root_profile)[source]

Bases: aries_cloudagent.config.base.BaseProvider

Multiple Indy ledger support manager provider.

LEDGER_TYPES = {'askar-profile': {'ledger': <aries_cloudagent.utils.classloader.DeferLoad object>, 'pool': <aries_cloudagent.utils.classloader.DeferLoad object>}, 'basic': {'ledger': <aries_cloudagent.utils.classloader.DeferLoad object>, 'pool': <aries_cloudagent.utils.classloader.DeferLoad object>}}
MANAGER_TYPES = {'askar-profile': <aries_cloudagent.utils.classloader.DeferLoad object>, 'basic': <aries_cloudagent.utils.classloader.DeferLoad object>}
provide(settings: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]

Create the multiple Indy ledger manager instance.