Table of Contents

Class Transaction.Transfer<A>

Namespace
Virtufin.Base
Assembly
Virtufin.Base.dll

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

public sealed record Transaction.Transfer<A> : Transaction, ITransaction, IEquatable<ITransaction>, IEquatable<Transaction>, IEquatable<Transaction.Transfer<A>> where A : IFixedPointAmount<A>

Type Parameters

A

The fixed-point amount type measuring the position.

Inheritance
Transaction.Transfer<A>
Implements
Inherited Members

Remarks

Only this leaf record carries the amount type. Transaction itself stays non-generic, so State, Message and IScenarioHistory keep holding plain Transaction and are unaffected.

Constructors

Transfer(Signatory, Signatory, Position<A>, ContractIdentifier)

Construct a transfer transaction.

public Transfer(Signatory from, Signatory to, Position<A> position, ContractIdentifier id)

Parameters

from Signatory
to Signatory
position Position<A>
id ContractIdentifier

Properties

From

The transferring party.

public Signatory From { get; }

Property Value

Signatory

Id

The contract that authorises this transfer.

public ContractIdentifier Id { get; }

Property Value

ContractIdentifier

Position

The position being transferred.

public Position<A> Position { get; }

Property Value

Position<A>

RelatedContract

The contract this transaction targets, or null for transactions that do not target a single contract (e.g. atomic groups).

public override IContractIdentifier? RelatedContract { get; }

Property Value

IContractIdentifier

To

The receiving party.

public Signatory To { get; }

Property Value

Signatory