diff --git a/ERCS/erc-6123.md b/ERCS/erc-6123.md
index e58ec6f2e1..eeedbc2bb2 100644
--- a/ERCS/erc-6123.md
+++ b/ERCS/erc-6123.md
@@ -264,9 +264,15 @@ The interface design and reference implementation are based on the following con
![image info](../assets/eip-6123/doc/sdc_trade_states.svg)
+The diagram shows the trade states of a single trade SDC as in `SDCSingleTrade.sol`.
+
### Sequence diagram of reference implementation 'SDCPledgedBalance.sol'
+
![image info](../assets/eip-6123/doc/sequence.svg)
+The sequence diagram show the function calls that create the trade and stellement state transitions
+and the emitted events.
+
## Test Cases
Life-cycle unit tests based on the sample implementation and usage of [ERC-20](./eip-20.md) token is provided. See file [test/SDCTests.js](../assets/eip-6123/test/SDCTests.js)
diff --git a/assets/erc-6123/doc/sdc_trade_states.svg b/assets/erc-6123/doc/sdc_trade_states.svg
index fb99c78fc4..31219ae7c5 100644
--- a/assets/erc-6123/doc/sdc_trade_states.svg
+++ b/assets/erc-6123/doc/sdc_trade_states.svg
@@ -1,9 +1,9 @@
-
+
diff --git a/assets/erc-6123/doc/sequence.puml b/assets/erc-6123/doc/sequence.puml
index ea04005b0e..a240a31445 100644
--- a/assets/erc-6123/doc/sequence.puml
+++ b/assets/erc-6123/doc/sequence.puml
@@ -9,12 +9,9 @@ title SmartDerivativeContract with Settlement-Token and off-chain Valuation Serv
participant SettlementToken
-
participant EventHandler
participant ValuationService
-
-
activate EventHandler
activate SettlementToken
activate ValuationService
@@ -31,17 +28,23 @@ CP1 ->SDC: tx 'inceptTrade'
SDC-->EventHandler: emit TradeIncepted
== TradeState 'Incepted' ==
-CP2->SDC: tx 'confirmTrade'
-SDC->SDC: validate tradedata
-SDC-->EventHandler: emit TradeConfirmed
+ CP2->SDC: tx 'confirmTrade'
+ SDC->SDC: validate tradedata
+
+ SDC-->EventHandler: emit TradeConfirmed
== TradeState 'Confirmed' ==
-SDC ->SettlementToken: tx 'transferFrom' margin buffers and termination fees\nto SDC address for CP1 and CP2
-SDC->SettlementToken: tx 'transferFrom' optional Upfront Fee from Paying to Receiving Party
+ SDC -> SettlementToken: tx 'transferFrom' margin buffers and termination fees\nto SDC address for CP1 and CP2
+ SDC -> SettlementToken: tx 'transferFrom' optional Upfront Fee from Paying to Receiving Party
+
== TradeState 'inTransfer' ==
-SettlementToken->SDC: callback tx 'afterSettlement'
+
+ SettlementToken->SDC: callback tx 'afterTransfer'
+
+ SDC-->EventHandler: emit TradeActivated
+
==ProcessState 'Settled' ==
end
@@ -52,25 +55,31 @@ loop Every Settlement
CP1->SDC: tx: 'initiateSettlement'
== TradeState 'Valuation' ==
-SDC-->EventHandler:emit ProcessSettlementRequest
+SDC-->EventHandler:emit SettlementRequested
EventHandler->ValuationService: request valuation data
ValuationService->EventHandler: return valuation data
EventHandler->SDC: callback: tx 'performSettlement'
SDC->SDC:Caps Settlement Amount at Margin Buffer Level
+
+SDC-->EventHandler: emit SettlementEvaluated
+
SDC->SettlementToken: tx 'transferFrom' settlement amount from Paying Party to Receiving Party Balance
== TradeState 'inTransfer' ==
-SDC-->EventHandler: emit AwaitingTransfer
alt Transfer Check
- SettlementToken->SDC: callback tx 'afterSettlement'
+ SettlementToken->SDC: callback tx 'afterTransfer'
else success
+ SDC-->EventHandler: emit SettlementTransferred
== TradeState 'Settled' ==
else fail
+ SDC-->EventHandler: emit SettlementFailed
+
SDC->SettlementToken: tx 'transfer' Settlement Amount from SDC Balance to Receiving Party
SDC->SettlementToken: tx 'transfer' Termination Fee from SDC Balance to Receiving Party
- SDC->SettlementToken: tx 'transfer' - Release remainigBalances to parties
+ SDC->SettlementToken: tx 'transfer' - Release remainigBalances to parties
+ SDC-->EventHandler: emit TradeTerminated
== TradeState 'Terminated' ==
end
diff --git a/assets/erc-6123/doc/sequence.svg b/assets/erc-6123/doc/sequence.svg
index f7e877a984..99362b5977 100644
--- a/assets/erc-6123/doc/sequence.svg
+++ b/assets/erc-6123/doc/sequence.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file