Table of Contents

Interface IContract

Namespace
Virtufin.Core.Contracts
Assembly
Virtufin.Core.dll

A financial contract: an agreement that, given a sequence of messages arriving at particular time-points, produces a sequence of valid transactions. Implementations decide which messages they accept via VerifyMessages(IEnumerable<IMessage>, IScenarioHistory).

public interface IContract : IEquatable<IContract>
Inherited Members

Remarks

The default IsRelatedMessage(IMessage) simply delegates to IsRelatedTransaction(ITransaction); override only if a richer match is needed.

Properties

Identifier

Unique identifier for this contract.

IContractIdentifier Identifier { get; }

Property Value

IContractIdentifier

Methods

IsRelatedMessage(IMessage)

Returns true iff the message's transaction targets this contract. Defaults to IsRelatedTransaction(ITransaction).

bool IsRelatedMessage(IMessage message)

Parameters

message IMessage

Candidate message.

Returns

bool

IsRelatedTransaction(ITransaction)

Returns true iff the transaction targets this contract.

bool IsRelatedTransaction(ITransaction transaction)

Parameters

transaction ITransaction

Candidate transaction.

Returns

bool

RelatedMessages(IEnumerable<IMessage>)

Filters messages to those related to this contract.

IEnumerable<IMessage> RelatedMessages(IEnumerable<IMessage> messages)

Parameters

messages IEnumerable<IMessage>

Returns

IEnumerable<IMessage>

RelatedTransactions(IEnumerable<ITransaction>)

Filters transactions to those related to this contract.

IEnumerable<ITransaction> RelatedTransactions(IEnumerable<ITransaction> transactions)

Parameters

transactions IEnumerable<ITransaction>

Returns

IEnumerable<ITransaction>

VerifyMessages(IEnumerable<IMessage>, IScenarioHistory)

Validates the supplied messages against the contract and the prior scenario history, returning the subset of transactions deemed valid. Returns null when the input is invalid for this contract at the current time.

IEnumerable<ITransaction>? VerifyMessages(IEnumerable<IMessage> messages, IScenarioHistory scenarioHistory)

Parameters

messages IEnumerable<IMessage>

Candidate messages arriving at this step.

scenarioHistory IScenarioHistory

Full history of prior scenarios.

Returns

IEnumerable<ITransaction>

See Also