diff --git a/src/main/java/net/finmath/smartcontract/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/client/ValuationClient.java index d67e1b094..b171a07e8 100644 --- a/src/main/java/net/finmath/smartcontract/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/client/ValuationClient.java @@ -50,7 +50,7 @@ public static void main(String[] args) throws Exception { final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.client/md_testset2.json").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.client/smartderivativecontract-sample-swap.xml").readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); final LegacyMarginRequest marginRequest = new LegacyMarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); diff --git a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java index c387b40e0..c74bac050 100644 --- a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java +++ b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java @@ -16,6 +16,7 @@ */ public class SmartDerivativeContractDescriptor { + private final String uniqueTradeIdentifier; private final LocalDateTime tradeDate; private final List counterparties; private final Map marginAccountInitialByPartyID; @@ -68,7 +69,8 @@ public String toString() { } } - public SmartDerivativeContractDescriptor(LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems) { + public SmartDerivativeContractDescriptor(String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems) { + this.uniqueTradeIdentifier = uniqueTradeIdentifier; this.tradeDate = tradeDate; this.counterparties = counterparties; this.marginAccountInitialByPartyID = marginAccountInitialByPartyID; @@ -83,6 +85,10 @@ public SmartDerivativeContractDescriptor(LocalDateTime tradeDate, List co Validate.notNull(underlying, "Underlying must not be null."); } + public String getUniqueTradeIdentifier() { + return uniqueTradeIdentifier; + } + public LocalDateTime getTradeDate() { return tradeDate; } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index 592b8fb2f..d9319b679 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -132,6 +132,7 @@ public PlainSwapEditorHandler(final PlainSwapOperationRequest plainSwapOperation // create new SDCmL file as object smartDerivativeContract = new Smartderivativecontract(); + smartDerivativeContract.setUniqueTradeIdentifier("test123"); final Smartderivativecontract templateContract; try { ClassPathResource templateXmlResource = new ClassPathResource(templatePath); diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index cf4ae7522..01a64539e 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -30,6 +30,8 @@ private SDCXMLParser() { public static SmartDerivativeContractDescriptor parse(String sdcxml) throws ParserConfigurationException, IOException, SAXException { + + LocalDateTime settlementDateInitial; Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); @@ -38,6 +40,8 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars String tradeDateString = document.getElementsByTagName("settlementDateInitial").item(0).getTextContent(); settlementDateInitial = LocalDateTime.parse(tradeDateString.trim()); + String uniqueTradeIdentifier = document.getElementsByTagName("uniqueTradeIdentifier").item(0).getTextContent(); + /* Market Data */ @@ -87,7 +91,7 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars // TODO Support multiple underlyings Node underlying = document.getElementsByTagName("underlying").item(0).getFirstChild().getNextSibling(); - return new SmartDerivativeContractDescriptor(settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying,marketdataItems ); + return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier,settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying,marketdataItems ); } /* diff --git a/src/main/java/net/finmath/smartcontract/reactive/DemoLauncher.java b/src/main/java/net/finmath/smartcontract/reactive/DemoLauncher.java index b80847451..e6cbfeb9e 100644 --- a/src/main/java/net/finmath/smartcontract/reactive/DemoLauncher.java +++ b/src/main/java/net/finmath/smartcontract/reactive/DemoLauncher.java @@ -1,23 +1,23 @@ package net.finmath.smartcontract.reactive; -import com.neovisionaries.ws.client.WebSocket; -import io.reactivex.rxjava3.core.Observable; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.functions.Consumer; -import net.finmath.smartcontract.marketdata.adapters.LiveFeedAdapter; -import net.finmath.smartcontract.marketdata.adapters.MarketDataRandomFeedAdapter; -import net.finmath.smartcontract.marketdata.adapters.MarketDataWebSocketAdapter; -import net.finmath.smartcontract.marketdata.adapters.WebSocketConnector; +import net.finmath.smartcontract.marketdata.adapters.*; import net.finmath.smartcontract.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.marketdata.curvecalibration.CalibrationDataset; -import net.finmath.smartcontract.marketdata.curvecalibration.CalibrationParser; import net.finmath.smartcontract.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.model.ValueResult; +import net.finmath.smartcontract.model.MarketDataSet; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; -import net.finmath.smartcontract.valuation.MarginCalculator; +import java.io.File; import java.io.FileInputStream; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -25,10 +25,7 @@ import java.time.LocalDateTime; import java.time.Period; import java.time.format.DateTimeFormatter; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; -import java.util.Properties; +import java.util.*; import java.util.concurrent.TimeUnit; @@ -37,7 +34,7 @@ public class DemoLauncher { public static void main(String[] args) throws Exception { - String sdcXML = new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/sdc2.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List mdItemList = sdc.getMarketdataItemList(); @@ -45,16 +42,24 @@ public static void main(String[] args) throws Exception { String connectionPropertiesFile = "Q:\\refinitiv_connect.properties"; Properties properties = new Properties(); properties.load(new FileInputStream(connectionPropertiesFile)); + InputStream marketDataMessageStream = DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.client/nf_md_20230711-123529.json"); + final String marketDataMessageContents = new String(Objects.requireNonNull(marketDataMessageStream).readAllBytes(), StandardCharsets.UTF_8); + MarketDataSet marketData = new ObjectMapper().registerModule(new JavaTimeModule()) + .readValue(marketDataMessageContents, MarketDataSet.class); + /* Init Websockect Connection*/ - final WebSocketConnector connector = new WebSocketConnector(properties); - final WebSocket socket = connector.getWebSocket(); + //final WebSocketConnector connector = new WebSocketConnector(properties); + //final WebSocket socket = connector.getWebSocket(); + /* Market Data Adapter */ //final LiveFeedAdapter emitter = new MarketDataWebSocketAdapter(connector.getAuthJson(), connector.getPosition(), mdItemList); final LiveFeedAdapter emitter = new MarketDataRandomFeedAdapter(Period.ofDays(1),new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8)); - socket.addListener(emitter); - socket.connect(); + //final LiveFeedAdapter emitter2 = new MarketDataRandomFeedAdapter2(LocalDateTime.now(),1,marketData); + + //socket.addListener(emitter); + //socket.connect(); /* Write Market Data to File */ final Consumer marketDataWriter = new Consumer() { @@ -67,7 +72,27 @@ public void accept(CalibrationDataset s) throws Throwable { Files.write(path, json.getBytes()); } }; - emitter.asObservable().throttleLast(5,TimeUnit.SECONDS).subscribe(s->emitter.writeDataset("C:\\Temp\\marketdata\\",s,false)); + + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(SerializationFeature.INDENT_OUTPUT, true) + .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + final Consumer marketDataWriter2 = new Consumer() { + @Override + public void accept(MarketDataSet s) throws Throwable { + //s.values(s.getValues().stream().map(x -> this.overnightFixingPostProcessing(x, isOvernightFixing)).toList()); + File targetFile = new File("C:\\Temp\\marketdata\\x.json"); + mapper.writerFor(MarketDataSet.class).writeValue(targetFile, s); + + //Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); + //Files.write(path, json.getBytes()); + } + }; + + + Disposable d = emitter.asObservable().throttleLast(5,TimeUnit.SECONDS).subscribe(marketDataWriter);//.subscribe(s->emitter.writeDataset("C:\\Temp\\marketdata\\",s,false)); + d.dispose(); //emitter.writeDataset("C:\\Temp\\marketdata\\",emitter.asObservable().blockingFirst(),false); Path dir = Paths.get("C:\\Temp\\marketdata\\"); // specify your directory @@ -97,13 +122,13 @@ public void accept(CalibrationDataset calibrationDataSet) throws Throwable { //emitter.asObservable().throttleFirst(60,TimeUnit.MINUTES).subscribe(fixingHistoryCollector); /* Print Market Values */ - Consumer printValues = (ValueResult s) -> System.out.println("Consumer ValuationPrint: " + s.getValue().doubleValue()); + /*Consumer printValues = (ValueResult s) -> System.out.println("Consumer ValuationPrint: " + s.getValue().doubleValue()); final Observable observableValuation = emitter.asObservable().throttleLast(5, TimeUnit.SECONDS).map(marketData -> { MarginCalculator calculator = new MarginCalculator(); return calculator.getValue(marketData.serializeToJson(), sdcXML); }); - observableValuation.subscribe(printValues); + observableValuation.subscribe(printValues);*/ /* Conditional Settlements */ /*BigDecimal settlementTriggerValue = BigDecimal.valueOf(100.); diff --git a/src/main/java/net/finmath/smartcontract/service/websocket/client/DemoStarter.java b/src/main/java/net/finmath/smartcontract/service/websocket/client/DemoStarter.java index 7415bfca6..d3091109c 100644 --- a/src/main/java/net/finmath/smartcontract/service/websocket/client/DemoStarter.java +++ b/src/main/java/net/finmath/smartcontract/service/websocket/client/DemoStarter.java @@ -15,7 +15,7 @@ public class DemoStarter { public static void main(String[] args) throws Exception { - String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/sdc2.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); WebSocketClientEndpoint client = new WebSocketClientEndpoint(new URI("ws://localhost:443/valuationfeed"), "user1", "password1"); long timeout = client.getUserSession().getMaxIdleTimeout(); client.sendTextMessage(sdcXML); diff --git a/src/main/java/net/finmath/smartcontract/service/websocket/handler/ValuationHandler.java b/src/main/java/net/finmath/smartcontract/service/websocket/handler/ValuationHandler.java index 622721268..b13193f55 100644 --- a/src/main/java/net/finmath/smartcontract/service/websocket/handler/ValuationHandler.java +++ b/src/main/java/net/finmath/smartcontract/service/websocket/handler/ValuationHandler.java @@ -45,7 +45,7 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) else { throw new IllegalStateException("Unexpected WebSocket message type: " + message); } - String sdcXML = payload;//new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/sdc2.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = payload;//new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract2.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List mdItemList = sdc.getMarketdataItemList(); diff --git a/src/main/resources/generators/eur_euribor_y_s.xml b/src/main/resources/generators/eur_euribor_y_s.xml deleted file mode 100644 index b3c163d46..000000000 --- a/src/main/resources/generators/eur_euribor_y_s.xml +++ /dev/null @@ -1,652 +0,0 @@ - - - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Counterparty 1 - party1 - - constant - 30000.0 - - - constant - 10000.0 - -
0x627306090abab3a6e1400e9345bc60c78a8bef57
-
- - Counterparty 2 - party2 - - constant - 30000.0 - - - constant - 10000.0 - -
0xf17f52151ebef6c7334fad080c5704d77216b732
-
-
- - - 2011-12-03T10:15:30 - - - daily - 17:00 - - - refinitiv - - - EUROSTR= - ESTR - Deposit - 1D - - - EUR6MD= - Euribor6M - Deposit - 6M - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - - - EURESTSW= - ESTR - Swap-Rate - 7D - - - EUREST2W= - ESTR - Swap-Rate - 14D - - - EUREST3W= - ESTR - Swap-Rate - 21D - - - EUREST1M= - ESTR - Swap-Rate - 1M - - - EUREST2M= - ESTR - Swap-Rate - 2M - - - EUREST3M= - ESTR - Swap-Rate - 3M - - - EUREST4M= - ESTR - Swap-Rate - 4M - - - EUREST5M= - ESTR - Swap-Rate - 5M - - - EUREST6M= - ESTR - Swap-Rate - 6M - - - EUREST7M= - ESTR - Swap-Rate - 7M - - - EUREST8M= - ESTR - Swap-Rate - 8M - - - EUREST9M= - ESTR - Swap-Rate - 9M - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - - - EUREST15M= - ESTR - Swap-Rate - 15M - - - EUREST18M= - ESTR - Swap-Rate - 18M - - - EUREST21M= - ESTR - Swap-Rate - 21M - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - - - - - - party1 - - - - - - - - - CP1 - - - - CP2 - - 2022-09-05 - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - DEFR - - - - - 6 - M - - - FOLLOWING - - - - - - - - 1000000.00 - EUR - - - - - EUR-EURIBOR-Reuters - - 6 - M - - - ACT/360 - - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - FOLLOWING - - - - - FOLLOWING - - - - 1 - Y - EOM - - - - - - 1 - Y - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 1000000.00 - EUR - - - - - 0.0395 - - 30E/360 - - - - - - - PARTXXXX - - - P2RTXXXX - - - - - -
diff --git a/src/main/resources/generators/eur_euribor_y_s_with_fixings.xml b/src/main/resources/generators/eur_euribor_y_s_with_fixings.xml index 56c5a35dd..fb2687863 100644 --- a/src/main/resources/generators/eur_euribor_y_s_with_fixings.xml +++ b/src/main/resources/generators/eur_euribor_y_s_with_fixings.xml @@ -2,6 +2,7 @@ + UTI12345 net.finmath diff --git a/src/main/resources/net.finmath.smartcontract.client/vanilla-swap.xml b/src/main/resources/net.finmath.smartcontract.client/vanilla-swap.xml deleted file mode 100644 index d1de111c5..000000000 --- a/src/main/resources/net.finmath.smartcontract.client/vanilla-swap.xml +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - CP1 - - - - CP2 - - 2022-09-05 - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - 14 - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 10000000.00 - EUR - - - - - EUR-LIBOR-BBA - - 6 - M - - - ACT/360 - - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - FOLLOWING - - - - - FOLLOWING - - - - 1 - Y - 14 - - - - - - 1 - Y - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 10000000.00 - EUR - - - - - 0.0395 - - 30E/360 - - - - - - - party1 - DZ - 10000 - 50000 -
0x938ACd0AD9f423E5cDd97c7c880d59799Dc4fDA0
- b23a98e4b1bbd15dd65a2e1534096ca83280281f7a19c70eebfdd4d3119d05a7 -
- - party2 - UI - 10000 - 50000 -
0xCE7E5Abf9A42730345716e16c145592e679Ef15a
- 8c3695bd04dd1a6a7d322a0e4897d75c206bd93043a0c7099bcde49b7001dc22 -
-
- diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/MisterCharles.xml b/src/main/resources/net.finmath.smartcontract.product.xml/MisterCharles.xml deleted file mode 100644 index 70107ca03..000000000 --- a/src/main/resources/net.finmath.smartcontract.product.xml/MisterCharles.xml +++ /dev/null @@ -1,636 +0,0 @@ - - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Union-Investment - UI - - constant - 10000.0 - - - constant - 50000.0 - -
0xCE7E5Abf9A42730345716e16c145592e679Ef15a
-
- - DZ-Bank - DZ - - constant - 10000.0 - - - constant - 50000.0 - -
0x938ACd0AD9f423E5cDd97c7c880d59799Dc4fDA0
-
-
- - 2022-10-31T12:00:00 - - daily - 17:00 - - - refinitiv - - - EUROSTR= - ESTR - Deposit - 1D - - - EUR6MD= - Euribor6M - Deposit - 6M - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - - - EURESTSW= - ESTR - Swap-Rate - 7D - - - EUREST2W= - ESTR - Swap-Rate - 14D - - - EUREST3W= - ESTR - Swap-Rate - 21D - - - EUREST1M= - ESTR - Swap-Rate - 1M - - - EUREST2M= - ESTR - Swap-Rate - 2M - - - EUREST3M= - ESTR - Swap-Rate - 3M - - - EUREST4M= - ESTR - Swap-Rate - 4M - - - EUREST5M= - ESTR - Swap-Rate - 5M - - - EUREST6M= - ESTR - Swap-Rate - 6M - - - EUREST7M= - ESTR - Swap-Rate - 7M - - - EUREST8M= - ESTR - Swap-Rate - 8M - - - EUREST9M= - ESTR - Swap-Rate - 9M - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - - - EUREST15M= - ESTR - Swap-Rate - 15M - - - EUREST18M= - ESTR - Swap-Rate - 18M - - - EUREST21M= - ESTR - Swap-Rate - 21M - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - - - - - UI - - - - - - - - 1267717703 - - - - 1267717703 - - 2022-10-27 - - - - - - - - 2022-10-28 - - MODFOLLOWING - - - - 2027-10-28 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - 1 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 250000.00 - EUR - - - - EUR-EURIBOR-Reuters - - 6 - M - - - 30/360 - - - - - - - - - 2022-10-28 - - MODFOLLOWING - - - - 2027-10-28 - - FOLLOWING - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 250000.00 - EUR - - - - 0.021234 - - 30/360 - - - - - - - - -
diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/fpml.xml b/src/main/resources/net.finmath.smartcontract.product.xml/fpml.xml deleted file mode 100644 index 1ebacfdfe..000000000 --- a/src/main/resources/net.finmath.smartcontract.product.xml/fpml.xml +++ /dev/null @@ -1,214 +0,0 @@ - - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Union-Investment - CP1 - - constant - 50000.0 - - - constant - 10000.0 - -
0xCE7E5Abf9A42730345716e16c145592e679Ef15a
-
- - DZ-Bank - DZ - - constant - 50000.0 - - - constant - 10000.0 - -
0x938ACd0AD9f423E5cDd97c7c880d59799Dc4fDA0
-
-
- - 2022-11-14T12:00:00 - - daily - 17:00 - - - xyz - - IREUR1Y - IREUR2Y - IREUR3Y - IREUR4Y - - - - CP1 - - - - - - - - 1267801479 - - - - 1267801479 - - 2022-11-10 - - - - - - - - 2022-11-14 - - MODFOLLOWING - - - - 2032-11-15 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - 1 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 1000000.00 - EUR - - - - EUR-EURIBOR-Reuters - - 6 - M - - - ACT/360 - - - - - - - - - 2022-11-14 - - MODFOLLOWING - - - - 2032-11-15 - - FOLLOWING - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 1000000.00 - EUR - - - - 0.018323 - - 30E/360 - - - - - - - - -
diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/sdc2.xml b/src/main/resources/net.finmath.smartcontract.product.xml/sdc2.xml deleted file mode 100644 index 5ea8d1508..000000000 --- a/src/main/resources/net.finmath.smartcontract.product.xml/sdc2.xml +++ /dev/null @@ -1,643 +0,0 @@ - - - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Counterparty1 - CP1 - - constant - 20000.0 - - - constant - 5000.0 - -
0xCE7E5Abf9A42730345716e16c145592e679Ef15a
-
- - CP2-Bank - CP2 - - constant - 20000.0 - - - constant - 5000.0 - -
0x938ACd0AD9f423E5cDd97c7c880d59799Dc4fDA0
-
-
- - 2022-12-19T12:00:00 - - daily - 17:00 - - - refinitiv - - - EUROSTR= - ESTR - Fixing - 1D - - - EURIBOR6MD= - Euribor6M - Fixing - 6M - - - EUR6MD= - Euribor6M - Deposit - 6M - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - - - EURESTSW= - ESTR - Swap-Rate - 7D - - - EUREST2W= - ESTR - Swap-Rate - 14D - - - EUREST3W= - ESTR - Swap-Rate - 21D - - - EUREST1M= - ESTR - Swap-Rate - 1M - - - EUREST2M= - ESTR - Swap-Rate - 2M - - - EUREST3M= - ESTR - Swap-Rate - 3M - - - EUREST4M= - ESTR - Swap-Rate - 4M - - - EUREST5M= - ESTR - Swap-Rate - 5M - - - EUREST6M= - ESTR - Swap-Rate - 6M - - - EUREST7M= - ESTR - Swap-Rate - 7M - - - EUREST8M= - ESTR - Swap-Rate - 8M - - - EUREST9M= - ESTR - Swap-Rate - 9M - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - - - EUREST15M= - ESTR - Swap-Rate - 15M - - - EUREST18M= - ESTR - Swap-Rate - 18M - - - EUREST21M= - ESTR - Swap-Rate - 21M - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - - - - - CP1 - - - - - - - - 1267942087 - - - - 1267942087 - - 2022-12-15 - - - - - - - - 2022-12-19 - - MODFOLLOWING - - - - 2032-12-19 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 1000000.00 - EUR - - - - EUR-EURIBOR-Reuters - - 6 - M - - - ACT/360 - - - - - - - - - 2022-12-19 - - MODFOLLOWING - - - - 2032-12-19 - - FOLLOWING - - - - - MODFOLLOWING - - - - 6 - M - EOM - - - - - - 6 - M - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 1000000.00 - EUR - - - - 0.027 - - 30E/360 - - - - - - - - -
\ No newline at end of file diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml index 0a19c526f..b05f10a17 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml @@ -1,4 +1,7 @@ - + + UTI12345 net.finmath @@ -48,9 +51,15 @@ EUROSTR= ESTR - Deposit + Fixing 1D + + EURIBOR6MD= + Euribor6M + Fixing + 6M + EUR6MD= Euribor6M diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd index 72a7bc70b..fb72adb3f 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd @@ -2,15 +2,16 @@ + - - - + + + @@ -23,25 +24,25 @@ - - + + - - + + - - + + - + @@ -51,23 +52,32 @@ - + - - + + - - + + - + + + + + + + + + + @@ -77,7 +87,7 @@ - + @@ -108,7 +118,7 @@ - + @@ -124,11 +134,11 @@ - + - + @@ -138,15 +148,15 @@ - + - + - + @@ -160,16 +170,16 @@ - + - - - + + + @@ -183,16 +193,16 @@ - - + + - + - + @@ -202,18 +212,18 @@ - + - - - - + + + + - + @@ -223,15 +233,15 @@ - - + + - + @@ -251,7 +261,7 @@ - + @@ -270,23 +280,23 @@ - + - - + + - + - + diff --git a/src/main/resources/schemas/openapi-schemas/PlainSwapOperationRequest.yml b/src/main/resources/schemas/openapi-schemas/PlainSwapOperationRequest.yml index 6c7deb1eb..f5cbba4ac 100644 --- a/src/main/resources/schemas/openapi-schemas/PlainSwapOperationRequest.yml +++ b/src/main/resources/schemas/openapi-schemas/PlainSwapOperationRequest.yml @@ -39,6 +39,8 @@ properties: minimum: 0.0 currency: type: string + uniqueTradeIdentifier: + type: string tradeDate: type: string format: date-time diff --git a/src/main/resources/schemas/sdc-schemas/sdcml-contract.xsd b/src/main/resources/schemas/sdc-schemas/sdcml-contract.xsd index 7b8c29426..04b81bc55 100644 --- a/src/main/resources/schemas/sdc-schemas/sdcml-contract.xsd +++ b/src/main/resources/schemas/sdc-schemas/sdcml-contract.xsd @@ -1,6 +1,6 @@