BlockchainProviderTF

scalus.cardano.node.BlockchainProviderTF
trait BlockchainProviderTF[F[_]] extends BlockchainReaderTF[F]

Trait for blockchain providers with generic effect type. (TF is for "tagless final" style, often term used in FP literature).

Extends BlockchainReaderTF with transaction submission capability.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def pollForConfirmation(txHash: TransactionHash, maxAttempts: Int = ..., delayMs: Long = ...): F[TransactionStatus]

Poll for transaction confirmation, checking periodically until confirmed or max attempts reached.

Poll for transaction confirmation, checking periodically until confirmed or max attempts reached.

Value parameters

delayMs

delay between attempts in milliseconds (default 1000)

maxAttempts

maximum number of polling attempts (default 60)

txHash

the transaction hash to poll for

Attributes

Returns

the last observed transaction status

def submit(transaction: Transaction): F[Either[SubmitError, TransactionHash]]

Submits a transaction to the network.

Submits a transaction to the network.

Attributes

def submitAndPoll(transaction: Transaction, maxAttempts: Int = ..., delayMs: Long = ...): F[Either[SubmitError, TransactionHash]]

Submit a transaction and poll until confirmed.

Submit a transaction and poll until confirmed.

Composes submit and pollForConfirmation: submits the transaction, then polls until it is confirmed or the maximum number of attempts is reached.

Value parameters

delayMs

delay between attempts in milliseconds (default 1000)

maxAttempts

maximum number of polling attempts (default 60)

transaction

the transaction to submit

Attributes

Returns

Right(txHash) if confirmed, Left(error) if submission failed or not confirmed

Inherited methods

def findUtxo(input: TransactionInput): F[Either[UtxoQueryError, Utxo]]

Find a single UTxO by its transaction input.

Find a single UTxO by its transaction input.

Attributes

Returns

Right(utxo) if found, Left(NotFound) otherwise

Inherited from:
BlockchainReaderTF
def findUtxos(address: Address): F[Either[UtxoQueryError, Utxos]]

Find all UTxOs at the given address.

Find all UTxOs at the given address.

Attributes

Inherited from:
BlockchainReaderTF
def findUtxos(inputs: Set[TransactionInput]): F[Either[UtxoQueryError, Utxos]]

Find UTxOs by a set of transaction inputs (fails with NotFound if not all are found).

Find UTxOs by a set of transaction inputs (fails with NotFound if not all are found).

Attributes

Inherited from:
BlockchainReaderTF
inline def queryUtxos(inline f: Utxo => Boolean): UtxoQueryWithReaderTF[F]

Query UTxOs using a lambda DSL.

Query UTxOs using a lambda DSL.

Translates the lambda to a UtxoQuery at compile time and returns a builder that can be further configured before execution. Effect-polymorphic — the resulting .execute() returns the reader's own F[Either[UtxoQueryError, Utxos]], so the same call shape works on Future-typed providers (Blockfrost, JS) and direct-style providers (ox Id).

Example:

// Simple query — execute immediately
reader.queryUtxos { u =>
 u.output.address == myAddress
}.execute()

// With pagination and minimum total
reader.queryUtxos { u =>
 u.output.address == myAddress && u.output.value.hasAsset(policyId, assetName)
}.minTotal(Coin.ada(100)).limit(10).execute()

Supported expressions:

  • u.output.address == addr — query by address
  • u.input.transactionId == txId — query by transaction
  • u.output.value.hasAsset(policyId, assetName) — query/filter by asset
  • u.output.value.coin >= amount — filter by minimum lovelace
  • u.output.hasDatumHash(hash) — filter by datum hash
  • && — AND combination
  • || — OR combination

Value parameters

f

Lambda expression from Utxo to Boolean

Attributes

Returns

A UtxoQueryWithReaderTF builder over this reader's effect type

Inherited from:
BlockchainReaderTF

Inherited and Abstract methods

Returns CardanoInfo for this provider.

Returns CardanoInfo for this provider.

Attributes

Inherited from:
BlockchainReaderTF

Check the status of a transaction on the blockchain.

Check the status of a transaction on the blockchain.

Value parameters

txHash

the transaction hash to check

Attributes

Returns

the current status of the transaction

Inherited from:
BlockchainReaderTF

Returns the current slot number.

Returns the current slot number.

Attributes

Inherited from:
BlockchainReaderTF

Fetches the latest protocol parameters from the network.

Fetches the latest protocol parameters from the network.

Attributes

Inherited from:
BlockchainReaderTF
def findUtxos(query: UtxoQuery): F[Either[UtxoQueryError, Utxos]]

Find UTxOs using a type-safe query.

Find UTxOs using a type-safe query.

Attributes

Inherited from:
BlockchainReaderTF
def getDatum(datumHash: DataHash): F[Option[Data]]

Look up a datum by its hash. Returns None if unknown.

Look up a datum by its hash. Returns None if unknown.

Attributes

Inherited from:
BlockchainReaderTF
protected def mapF[A, B](fa: F[A])(f: A => B): F[B]

Map over this reader's effect F — the one primitive needed to give the convenience lookups above (findUtxo and the findUtxos overloads) a single effect-polymorphic default, without imposing an external Functor/Monad constraint on F. Future-based readers map via their captured ExecutionContext; monadic effects map via their monad.

Map over this reader's effect F — the one primitive needed to give the convenience lookups above (findUtxo and the findUtxos overloads) a single effect-polymorphic default, without imposing an external Functor/Monad constraint on F. Future-based readers map via their captured ExecutionContext; monadic effects map via their monad.

Attributes

Inherited from:
BlockchainReaderTF