Namespace Virtufin.Base
Namespaces
Classes
- AssetIdentifier
Identifier for an asset. Two flavours:
- AssetIdentifier.SimpleAssetIdentifier: any opaque string (e.g. ticker).
- AssetIdentifier.CurrencyAssetIdentifier: an ISO-like currency code.
- AssetIdentifier.CurrencyAssetIdentifier
Currency-backed asset identifier.
- AssetIdentifier.SimpleAssetIdentifier
Opaque string asset identifier (e.g. ticker symbol).
- ContractIdentifier
Identifier for a contract. Two flavours are supported:
- ContractIdentifier.SimpleContractIdentifier: any opaque string.
- ContractIdentifier.UTI: ISDA Universal Transaction Identifier (see UtiValidator for format rules).
- 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
ZZZsentinel. Each currency has a canonical identifier accessible asCurrencyIdentifier.XXX.
- DefaultVirtufinTypes
Default IVirtufinTypes implementation: returns the Type of every concrete type in
Virtufin.Basethat implements the correspondingVirtufin.Coreidentifier or contract interface.
- 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.
- 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.CreateContract: create a new contract with the given parameters.
- Transaction.CancelContract: terminate the named contract.
- Transaction.AtomicTransactions: an atomic group of transactions; not tied to a single contract.
- 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 / Divisorso 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.