org.sigilaris.core.application.transactions
Members list
Type members
Classlikes
Account signature containing both the signing account and the signature.
Account signature containing both the signing account and the signature.
This binds a cryptographic signature to the account that produced it, enabling verification that the signature was created by a key controlled by the specified account.
Value parameters
- account
-
the account that signed the transaction
- sig
-
the cryptographic signature
Attributes
- Example
-
val accountSig = AccountSignature( account = Account.Named(Utf8("alice")), sig = signature ) - Source
- Model.scala
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Module identifier carrying the module-relative path.
Module identifier carrying the module-relative path.
IMPORTANT: The path is always module-relative (MName *: SubPath), never prefixed with the mount path. This ensures transactions remain portable across different deployment paths.
The path tuple identifies which module a transaction belongs to. During blueprint composition, the path is used to route transactions to the correct reducer by matching the first segment (module name).
Value parameters
- path
-
the module-relative path tuple (e.g., ("accounts" *: EmptyTuple) or ("accounts" *: "v1" *: EmptyTuple))
Attributes
- Example
-
// A transaction for the "accounts" module val moduleId = ModuleId("accounts" *: EmptyTuple) // Even when the module is mounted at ("app"), the moduleId stays ("accounts") // The full path ("app", "accounts") is only constructed at system boundaries - Companion
- object
- Source
- Model.scala
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Companion object for ModuleId providing construction and pattern matching.
Companion object for ModuleId providing construction and pattern matching.
Attributes
- Companion
- class
- Source
- Model.scala
- Supertypes
-
trait Producttrait Mirrorclass Objecttrait Matchableclass Any
- Self type
-
ModuleId.type
Transaction trait with module routing information.
Transaction trait with module routing information.
Transactions that implement this trait carry their module path, enabling proper routing in composed blueprints. The module path is used to dispatch transactions to the correct reducer.
Attributes
- Example
-
case class AccountsTransfer(from: Address, to: Address, amount: BigInt) extends Tx with ModuleRoutedTx: val moduleId = ModuleId(("accounts" *: EmptyTuple)) type Reads = Entry["balances", Address, Account] *: EmptyTuple type Writes = Entry["balances", Address, Account] *: EmptyTuple type Result = Unit type Event = TransferEvent - Source
- Model.scala
- Supertypes
Companion for NetworkId providing constructors and an extension method for unwrapping.
Companion for NetworkId providing constructors and an extension method for unwrapping.
Attributes
- Source
- NetworkId.scala
- Supertypes
- Self type
-
NetworkId.type
Compile-time marker that a reducer stack handles the given transaction.
Compile-time marker that a reducer stack handles the given transaction.
Attributes
- Source
- Model.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
Show all
Signed transaction wrapper enforcing signature requirement at type level.
Signed transaction wrapper enforcing signature requirement at type level.
All blockchain transactions must be wrapped in Signed[A] to ensure they carry a valid signature. This is enforced at compile time - attempting to submit an unsigned transaction to a blueprint will result in a type error.
The covariant type parameter (+A <: Tx) allows Signed[CreateNamedAccount] to be used where Signed[Tx & ModuleRoutedTx] is expected, enabling flexible composition while maintaining type safety.
Type parameters
- A
-
the transaction type (covariant)
Value parameters
- sig
-
the account signature (account + cryptographic signature)
- value
-
the actual transaction payload
Attributes
- See also
-
AccountSignature for signature structure
ADR-0012 for design rationale
- Example
-
// Creating a signed transaction val tx = CreateNamedAccount(...) val keyPair = CryptoOps.generate() val account = Account.Named(Utf8("alice")) // Sign the transaction val signedTx: Either[SigilarisFailure, Signed[CreateNamedAccount]] = for sig <- keyPair.sign(tx) yield Signed(AccountSignature(account, sig), tx) // Use in blueprint (requires Signed wrapper) module.reducer.apply(signedTx) - Source
- Model.scala
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Transaction trait defining read/write requirements and result types.
Transaction trait defining read/write requirements and result types.
A transaction declares:
- Reads: tuple of table Entry types this transaction reads from
- Writes: tuple of table Entry types this transaction writes to
- Result: the type of result produced
- Event: the type of events emitted
The Reads and Writes types are used for compile-time verification that a reducer has access to all required tables.
Attributes
- Example
-
case class Transfer(from: Address, to: Address, amount: BigInt) extends Tx: type Reads = (Entry["accounts", Address, Account], Entry["balances", Address, BigInt]) type Writes = Entry["balances", Address, BigInt] *: EmptyTuple type Result = Unit type Event = TransferEvent - Source
- Model.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class AddKeyIdsclass CreateNamedAccountclass RemoveAccountclass RemoveKeyIdsclass UpdateAccountclass AddAccountsclass CreateGroupclass DisbandGroupclass RemoveAccountsclass ReplaceCoordinatortrait ModuleRoutedTxShow all
Common metadata attached to every transaction payload.
Common metadata attached to every transaction payload.
The envelope travels alongside the domain specific body so reducers can make consistent decisions about replay protection, auditing and cross-network routing without the individual transaction types having to duplicate those concerns.
Value parameters
- createdAt
-
client supplied timestamp indicating when the transaction was authored
- memo
-
optional free form note persisted for operational auditing
- networkId
-
blockchain/network identifier encoded as an opaque NetworkId
Attributes
- Companion
- object
- Source
- TxEnvelope.scala
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Companion for TxEnvelope providing typeclass instances.
Companion for TxEnvelope providing typeclass instances.
Attributes
- Companion
- class
- Source
- TxEnvelope.scala
- Supertypes
-
trait Producttrait Mirrorclass Objecttrait Matchableclass Any
- Self type
-
TxEnvelope.type
Transaction registry holding a tuple of transaction types.
Transaction registry holding a tuple of transaction types.
This is a compile-time marker used for type-level transaction set definitions.
Type parameters
- Txs
-
the transaction types tuple
Attributes
- Companion
- object
- Source
- Model.scala
- Supertypes
-
class Objecttrait Matchableclass Any
Companion providing factory methods for TxRegistry.
Companion providing factory methods for TxRegistry.
Attributes
- Companion
- class
- Source
- Model.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
TxRegistry.type
Companion providing compile-time verification that all transactions in a tuple have reducer coverage.
Companion providing compile-time verification that all transactions in a tuple have reducer coverage.
Attributes
- Source
- Model.scala
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
TxRegistryCoverage.type
Types
Opaque identifier for a blockchain network.
Opaque identifier for a blockchain network.
The value is represented as a non-negative arbitrary precision integer so it can be derived from configuration files or on-chain governance decisions without lossy conversions. By modelling the identifier as an opaque type we keep the implementation details private to the transactions package while still reusing the existing org.sigilaris.core.datatype.BigNat codecs.
Prefer constructing instances through the helpers in the companion object so future validation rules can be introduced without touching call sites.
Attributes
- Source
- NetworkId.scala