Table of Contents

Namespace Virtufin.Base

Namespaces

Virtufin.Base.Behaviour
Virtufin.Base.Clock
Virtufin.Base.Events
Virtufin.Base.Execution
Virtufin.Base.Messaging
Virtufin.Base.Scenarios

Classes

AssetIdentifier

Identifier for an asset. Two flavours:

AssetIdentifier.CurrencyAssetIdentifier

Currency-backed asset identifier.

AssetIdentifier.SimpleAssetIdentifier

Opaque string asset identifier (e.g. ticker symbol).

Attribute
ContractIdentifier

Identifier for a contract. Two flavours are supported:

ContractIdentifier.SimpleContractIdentifier

An opaque string identifier for a contract.

ContractIdentifier.UTI

ISDA Universal Transaction Identifier.

Currency

ISO 4217 currency codes. Includes all active national currencies and "X-" fund codes (precious metals, supranationals, testing). Historical / withdrawn codes (ADP, DEM, FRF, etc.) are intentionally omitted.

CurrencyIdentifier

Static factory for currency-backed AssetIdentifiers for all ISO 4217 active currencies plus the ZZZ sentinel. Each currency has a canonical identifier accessible as CurrencyIdentifier.XXX.

DefaultVirtufinTypes

Default IVirtufinTypes implementation: returns the Type of every concrete type in Virtufin.Base that implements the corresponding Virtufin.Core identifier or contract interface.

EntityIdentifier
EntityIdentifier.CUSIP
EntityIdentifier.ISIN
EntityIdentifier.UUID
PositionTransferContract

A contract that transfers a Position from one Signatory to another at a fixed TimeStamp (its maturity).

PositionTransferContractMessageGenerator

Emits a single Transaction.Transfer wrapped in a Message at the contract's maturity. Before or after the maturity nothing is emitted.

Scenario

Concrete IScenario: a TimeStamp paired with a State. Financial-contract snapshot used by Virtufin.Core's simulation model.

ScenarioHistory

Concrete IScenarioHistory backed by an in-memory list of scenarios. New scenarios are emitted through a hot System.Reactive.Subjects.Subject<T> with no replay buffer — late subscribers see only future emissions.

State

Concrete IState: a set of transactions observed at a single time-point.

Stock

A tradeable equity instrument identified by an opaque string (typically an exchange ticker or an ISIN).

Transaction

Concrete ITransaction for the financial contract model. Three cases are supported:

Transaction.AtomicTransactions

An atomic group of transactions.

Transaction.CancelContract

Cancel an existing contract.

Transaction.CreateContract

Create a new contract.

Transaction.Transfer

Transfer a position between two parties, authorised by a contract.

UtiValidator

Validates ISDA Universal Transaction Identifier (UTI) payloads.

Structs

Cash

Currency-tagged fixed-point quantity. Amount carries its own precision (N) so two Cash values representing the same monetary amount at different precisions are not equal.

ContractParameters

Concrete IContractParameters backed by a raw byte payload. Callers serialise their domain-specific parameters (e.g. via FlatBuffers, MessagePack, JSON) into the byte array and reconstruct them at the contract.

Message

Concrete IMessage: a Transaction plus the Signatory that signed it.

Position

A holding: a PositionSize in some AssetIdentifier.

PositionSize

A position size expressed as a rational Quote × Multiplier / Divisor so positions in different units (e.g. lots vs. shares) can be combined without losing precision.

Signatory

Identifier for a party to a contract or transaction. Backed by a Guid.

TimeStamp

Calendar-date-backed ITimeStamp. Time-of-day is intentionally discarded; financial contracts settle on calendar dates.

Enums

Currency.CurrencySymbol

ISO 4217 alpha codes plus a ZZZ sentinel for testing.