Skip to content

Commit

Permalink
TRANSFER_NotionalQuantyty_Price
Browse files Browse the repository at this point in the history
remove previous grossTransfer & netTransfer from original PR
  • Loading branch information
JBZ-Fragmos committed Nov 22, 2024
1 parent 59b8b37 commit 43cd882
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 19 deletions.
5 changes: 1 addition & 4 deletions rosetta-source/src/main/rosetta/event-common-func.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -653,10 +653,7 @@ func Create_Transfer: <"Defines how a transfer should be constructed, when repre
set transfer: tradeState

add transfer -> transferHistory: <"Assigns the transfer contained in the transfer instruction to the transferHistory attribute.">
instruction -> grossTransfer

add transfer -> transferHistory: <"Assigns the transfer contained in the transfer instruction to the transferHistory attribute.">
instruction -> netTransfer
instruction -> transferState

func Create_CashTransfer: <"Defines how Transfer that represents an exchange of cash, should be constructed.">
inputs:
Expand Down
14 changes: 2 additions & 12 deletions rosetta-source/src/main/rosetta/event-common-type.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -125,17 +125,7 @@ type CalculateTransferInstruction: <"Defines the tradeState or payout on which t
date date (0..1)

type TransferInstruction: <"Defines the payout on which to create a Transfer along with all necessary resets.">
grossTransfer TransferState (1..*) <"Specifies the terms and state of a transfers.">
netTransfer TransferState (0..1) <"Specifies the terms and state of a unique net transfer, resulting from the aggregation of several individual transfers. Multiple cardinality optionnaly permits to represent multiple netting per distinct criteria, depending business need and related implementation, main use case being multiple netTransfer per each currency, given multiple currency exist accross multiple transferState.">

condition MultipleIndividualTransferExistInNetTransfer: <"Assuming a minimim of two transfers is required per each net transfer (2 gross x 1 net). Besides, all gross transfer shall have same status being Netted.">
if netTransfer exists
then grossTransfer count > 1
and grossTransfer -> transferStatus all = TransferStatusEnum -> Netted

condition NetTransferIsNotNetted: <"Per se, the net transfer cannot be netted, that being the status of the multiple gross transfers of which net transfer is an aggregation.">
if netTransfer exists
then netTransfer -> transferStatus <> TransferStatusEnum -> Netted
transferState TransferState (0..*) <"Specifies the terms and state of a transfers.">

type QuantityChangeInstruction: <"Instructions required to create a Quantity Change Primitive Event, which can be either an increase, a decrease or a replacement. An increase adds a new trade lot to the original trade, whereas a decrease subtracts from an existing trade lot's quantity. A replacement updates the quantity of an existing trade lot to the new value.">
change PriceQuantity (1..*) <"Quantity by which the trade is being increased, decreased or replaced, and the price at which such quantity change is agreed. The quantity change should always be specified as a positive number, with the direction (increase/decrease/replacement) being specified by the direction enumeration. A fee can also be associated to the quantity change by specifying a Price component of type CashPrice, including the corresponding settlement date and direction.">
Expand Down Expand Up @@ -219,7 +209,7 @@ type TransferState: <"Defines the fundamental financial information associated w
[metadata key]
[rootType]
transfer Transfer (1..1) <"Represents the Transfer that has been effected by a business or life-cycle event.">
transferStatus TransferStatusEnum (0..1) <"Represents the State of the Transfer through its settlement life-cycle.">
transferStatus TransferStatusEnum (0..1) <"Represents the State of the Transfer through its life-cycle.">

type Transfer extends TransferBase: <"Defines the movement of an Asset (eg cash, securities or commodities) between two parties on a date.">
settlementOrigin Payout (0..1) <"Represents the origin to the transfer as a reference for lineage purposes, whether it originated from trade level settlement terms or from payment terms on an economic payout.">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ func Qualify_CashTransfer: <"The qualification of a cash transfer from the fact
set is_event:
businessEvent -> instruction -> primitiveInstruction -> transfer only exists
and beforeTransfers count + transferInstructions count = afterTransfers count
and (transferInstructions -> grossTransfer -> transfer -> deliverableQuantity -> unit -> currency exists
or transferInstructions -> netTransfer -> transfer -> deliverableQuantity -> unit -> currency exists)
and (transferInstructions -> transferState -> transfer -> deliverableQuantity -> unit -> currency exists)

func Qualify_CashAndSecurityTransfer: <"The qualification of a security settlement from the fact that (i) it is composed of a cashTransfer component and a securityTransfer component, and (ii) the cash and security move in the same direction.">
[qualification BusinessEvent]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ synonym source DTCC_9_0 extends DTCC_BASE
- transfer

TransferInstruction:
+ grossTransfer
+ transferState
[value "payment"]

TransferState:
Expand Down

0 comments on commit 43cd882

Please sign in to comment.