Interface IContract
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
Methods
IsRelatedMessage(IMessage)
Returns true iff the message's transaction targets this
contract. Defaults to IsRelatedTransaction(ITransaction).
bool IsRelatedMessage(IMessage message)
Parameters
messageIMessageCandidate message.
Returns
IsRelatedTransaction(ITransaction)
Returns true iff the transaction targets this contract.
bool IsRelatedTransaction(ITransaction transaction)
Parameters
transactionITransactionCandidate transaction.
Returns
RelatedMessages(IEnumerable<IMessage>)
Filters messages to those related to this contract.
IEnumerable<IMessage> RelatedMessages(IEnumerable<IMessage> messages)
Parameters
messagesIEnumerable<IMessage>
Returns
RelatedTransactions(IEnumerable<ITransaction>)
Filters transactions to those related to this
contract.
IEnumerable<ITransaction> RelatedTransactions(IEnumerable<ITransaction> transactions)
Parameters
transactionsIEnumerable<ITransaction>
Returns
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
messagesIEnumerable<IMessage>Candidate messages arriving at this step.
scenarioHistoryIScenarioHistoryFull history of prior scenarios.