LedgerModule

@Module
object LedgerModule

Hilt module for Ledger component dependencies.

Provided Dependencies:

  • NodeRpcClient: HTTP client for Midnight node JSON-RPC API

  • ProofServerClient: HTTP client for Midnight proof server

  • TransactionSerializer: SCALE serialization using Rust FFI

  • TransactionSubmitter: Transaction submission orchestrator

  • FeeCalculator: Calculates transaction fees

  • DustSpendCreator: Creates dust spend actions

Note: DustActionsBuilder is auto-provided by Hilt via @Inject constructor

Functions

Link copied to clipboard
@Provides
@Singleton
fun provideDustSpendCreator(): DustSpendCreator

Provide DustSpendCreator object.

Link copied to clipboard
@Provides
@Singleton
fun provideFeeCalculator(): FeeCalculator

Provide FeeCalculator object.

Link copied to clipboard
@Provides
@Singleton
fun provideNodeRpcClient(networkConfig: NetworkConfig): NodeRpcClient

Provide NodeRpcClient singleton.

Link copied to clipboard
@Provides
@Singleton
fun provideProofServerClient(networkConfig: NetworkConfig): ProofServerClient

Provide ProofServerClient singleton.

Link copied to clipboard
@Provides
@Singleton
fun provideProvingKeyManager(context: Context): <Error class: unknown class>

Provide ProvingKeyManager for local ZK proving.

Link copied to clipboard
@Provides
@Singleton
fun provideTransactionSerializer(networkConfig: NetworkConfig): TransactionSerializer

Provide TransactionSerializer singleton.

Link copied to clipboard
@Provides
@Singleton
fun provideTransactionSubmitter(nodeRpcClient: NodeRpcClient, proofServerClient: ProofServerClient, indexerClient: IndexerClient, serializer: TransactionSerializer, utxoManager: UtxoManager, dustActionsBuilder: DustActionsBuilder, dustRepository: DustRepository, provingKeyManager: <Error class: unknown class>, networkRepository: NetworkRepository): TransactionSubmitter

Provide TransactionSubmitter singleton with network-aware client resolution. The NetworkClientProvider creates fresh clients for the currently-selected network on each transaction, so network switches in Settings take effect without app restart.