From 68620422446878019caf4deed9c68308312b10ae Mon Sep 17 00:00:00 2001
From: Matthew Nesbit <matthew.nesbit@r3cev.com>
Date: Tue, 12 Jul 2016 16:10:07 +0100
Subject: [PATCH] Repair broken RateFixDemo code and script

---
 scripts/example.rates.txt                     | 227 ++++++++++++++++++
 scripts/get-rate-fix.sh                       |   4 +-
 .../kotlin/com/r3corda/demos/RateFixDemo.kt   |  20 +-
 3 files changed, 241 insertions(+), 10 deletions(-)
 create mode 100644 scripts/example.rates.txt

diff --git a/scripts/example.rates.txt b/scripts/example.rates.txt
new file mode 100644
index 0000000000..cb49751d27
--- /dev/null
+++ b/scripts/example.rates.txt
@@ -0,0 +1,227 @@
+# Some pretend noddy rate fixes, for the interest rate oracles.
+
+ICE LIBOR 2016-03-16 1M = 0.678
+ICE LIBOR 2016-03-16 2M = 0.655
+EURIBOR 2016-03-15 1M = 0.123
+EURIBOR 2016-03-15 2M = 0.111
+
+ICE LIBOR 2016-03-06 3M = 0.0063515
+ICE LIBOR 2016-03-07 3M = 0.0063516
+ICE LIBOR 2016-03-08 3M = 0.0063517
+ICE LIBOR 2016-03-09 3M = 0.0063518
+ICE LIBOR 2016-03-10 3M = 0.0063519
+ICE LIBOR 2016-06-06 3M = 0.0063520
+ICE LIBOR 2016-06-07 3M = 0.0063521
+ICE LIBOR 2016-06-08 3M = 0.0063522
+ICE LIBOR 2016-06-09 3M = 0.0063523
+ICE LIBOR 2016-06-10 3M = 0.0063524
+ICE LIBOR 2016-09-06 3M = 0.0063525
+ICE LIBOR 2016-09-07 3M = 0.0063526
+ICE LIBOR 2016-09-08 3M = 0.0063527
+ICE LIBOR 2016-09-09 3M = 0.0063528
+ICE LIBOR 2016-09-10 3M = 0.0063529
+ICE LIBOR 2016-12-06 3M = 0.0063530
+ICE LIBOR 2016-12-07 3M = 0.0063531
+ICE LIBOR 2016-12-08 3M = 0.0063532
+ICE LIBOR 2016-12-09 3M = 0.0063533
+ICE LIBOR 2016-12-10 3M = 0.0063534
+ICE LIBOR 2017-03-06 3M = 0.0063535
+ICE LIBOR 2017-03-07 3M = 0.0063536
+ICE LIBOR 2017-03-08 3M = 0.0063537
+ICE LIBOR 2017-03-09 3M = 0.0063538
+ICE LIBOR 2017-03-10 3M = 0.0063539
+ICE LIBOR 2017-06-06 3M = 0.0063540
+ICE LIBOR 2017-06-07 3M = 0.0063541
+ICE LIBOR 2017-06-08 3M = 0.0063542
+ICE LIBOR 2017-06-09 3M = 0.0063543
+ICE LIBOR 2017-06-10 3M = 0.0063544
+ICE LIBOR 2017-09-06 3M = 0.0063545
+ICE LIBOR 2017-09-07 3M = 0.0063546
+ICE LIBOR 2017-09-08 3M = 0.0063547
+ICE LIBOR 2017-09-09 3M = 0.0063548
+ICE LIBOR 2017-09-10 3M = 0.0063549
+ICE LIBOR 2017-12-06 3M = 0.0063550
+ICE LIBOR 2017-12-07 3M = 0.0063551
+ICE LIBOR 2017-12-08 3M = 0.0063552
+ICE LIBOR 2017-12-09 3M = 0.0063553
+ICE LIBOR 2017-12-10 3M = 0.0063554
+ICE LIBOR 2018-03-06 3M = 0.0063555
+ICE LIBOR 2018-03-07 3M = 0.0063556
+ICE LIBOR 2018-03-08 3M = 0.0063557
+ICE LIBOR 2018-03-09 3M = 0.0063558
+ICE LIBOR 2018-03-10 3M = 0.0063559
+ICE LIBOR 2018-06-06 3M = 0.0063560
+ICE LIBOR 2018-06-07 3M = 0.0063561
+ICE LIBOR 2018-06-08 3M = 0.0063562
+ICE LIBOR 2018-06-09 3M = 0.0063563
+ICE LIBOR 2018-06-10 3M = 0.0063564
+ICE LIBOR 2018-09-06 3M = 0.0063565
+ICE LIBOR 2018-09-07 3M = 0.0063566
+ICE LIBOR 2018-09-08 3M = 0.0063567
+ICE LIBOR 2018-09-09 3M = 0.0063568
+ICE LIBOR 2018-09-10 3M = 0.0063569
+ICE LIBOR 2018-12-06 3M = 0.0063570
+ICE LIBOR 2018-12-07 3M = 0.0063571
+ICE LIBOR 2018-12-08 3M = 0.0063572
+ICE LIBOR 2018-12-09 3M = 0.0063573
+ICE LIBOR 2018-12-10 3M = 0.0063574
+ICE LIBOR 2019-03-06 3M = 0.0063575
+ICE LIBOR 2019-03-07 3M = 0.0063576
+ICE LIBOR 2019-03-08 3M = 0.0063577
+ICE LIBOR 2019-03-09 3M = 0.0063578
+ICE LIBOR 2019-03-10 3M = 0.0063579
+ICE LIBOR 2019-06-06 3M = 0.0063580
+ICE LIBOR 2019-06-07 3M = 0.0063581
+ICE LIBOR 2019-06-08 3M = 0.0063582
+ICE LIBOR 2019-06-09 3M = 0.0063583
+ICE LIBOR 2019-06-10 3M = 0.0063584
+ICE LIBOR 2019-09-06 3M = 0.0063585
+ICE LIBOR 2019-09-07 3M = 0.0063586
+ICE LIBOR 2019-09-08 3M = 0.0063587
+ICE LIBOR 2019-09-09 3M = 0.0063588
+ICE LIBOR 2019-09-10 3M = 0.0063589
+ICE LIBOR 2019-12-06 3M = 0.0063590
+ICE LIBOR 2019-12-07 3M = 0.0063591
+ICE LIBOR 2019-12-08 3M = 0.0063592
+ICE LIBOR 2019-12-09 3M = 0.0063593
+ICE LIBOR 2019-12-10 3M = 0.0063594
+ICE LIBOR 2020-03-06 3M = 0.0063595
+ICE LIBOR 2020-03-07 3M = 0.0063596
+ICE LIBOR 2020-03-08 3M = 0.0063597
+ICE LIBOR 2020-03-09 3M = 0.0063598
+ICE LIBOR 2020-03-10 3M = 0.0063599
+ICE LIBOR 2020-06-06 3M = 0.0063600
+ICE LIBOR 2020-06-07 3M = 0.0063601
+ICE LIBOR 2020-06-08 3M = 0.0063602
+ICE LIBOR 2020-06-09 3M = 0.0063603
+ICE LIBOR 2020-06-10 3M = 0.0063604
+ICE LIBOR 2020-09-06 3M = 0.0063605
+ICE LIBOR 2020-09-07 3M = 0.0063606
+ICE LIBOR 2020-09-08 3M = 0.0063607
+ICE LIBOR 2020-09-09 3M = 0.0063608
+ICE LIBOR 2020-09-10 3M = 0.0063609
+ICE LIBOR 2020-12-06 3M = 0.0063610
+ICE LIBOR 2020-12-07 3M = 0.0063611
+ICE LIBOR 2020-12-08 3M = 0.0063612
+ICE LIBOR 2020-12-09 3M = 0.0063613
+ICE LIBOR 2020-12-10 3M = 0.0063614
+ICE LIBOR 2021-03-06 3M = 0.0063615
+ICE LIBOR 2021-03-07 3M = 0.0063616
+ICE LIBOR 2021-03-08 3M = 0.0063617
+ICE LIBOR 2021-03-09 3M = 0.0063618
+ICE LIBOR 2021-03-10 3M = 0.0063619
+ICE LIBOR 2021-06-06 3M = 0.0063620
+ICE LIBOR 2021-06-07 3M = 0.0063621
+ICE LIBOR 2021-06-08 3M = 0.0063622
+ICE LIBOR 2021-06-09 3M = 0.0063623
+ICE LIBOR 2021-06-10 3M = 0.0063624
+ICE LIBOR 2021-09-06 3M = 0.0063625
+ICE LIBOR 2021-09-07 3M = 0.0063626
+ICE LIBOR 2021-09-08 3M = 0.0063627
+ICE LIBOR 2021-09-09 3M = 0.0063628
+ICE LIBOR 2021-09-10 3M = 0.0063629
+ICE LIBOR 2021-12-06 3M = 0.0063630
+ICE LIBOR 2021-12-07 3M = 0.0063631
+ICE LIBOR 2021-12-08 3M = 0.0063632
+ICE LIBOR 2021-12-09 3M = 0.0063633
+ICE LIBOR 2021-12-10 3M = 0.0063634
+ICE LIBOR 2022-03-06 3M = 0.0063635
+ICE LIBOR 2022-03-07 3M = 0.0063636
+ICE LIBOR 2022-03-08 3M = 0.0063637
+ICE LIBOR 2022-03-09 3M = 0.0063638
+ICE LIBOR 2022-03-10 3M = 0.0063639
+ICE LIBOR 2022-06-06 3M = 0.0063640
+ICE LIBOR 2022-06-07 3M = 0.0063641
+ICE LIBOR 2022-06-08 3M = 0.0063642
+ICE LIBOR 2022-06-09 3M = 0.0063643
+ICE LIBOR 2022-06-10 3M = 0.0063644
+ICE LIBOR 2022-09-06 3M = 0.0063645
+ICE LIBOR 2022-09-07 3M = 0.0063646
+ICE LIBOR 2022-09-08 3M = 0.0063647
+ICE LIBOR 2022-09-09 3M = 0.0063648
+ICE LIBOR 2022-09-10 3M = 0.0063649
+ICE LIBOR 2022-12-06 3M = 0.0063650
+ICE LIBOR 2022-12-07 3M = 0.0063651
+ICE LIBOR 2022-12-08 3M = 0.0063652
+ICE LIBOR 2022-12-09 3M = 0.0063653
+ICE LIBOR 2022-12-10 3M = 0.0063654
+ICE LIBOR 2023-03-06 3M = 0.0063655
+ICE LIBOR 2023-03-07 3M = 0.0063656
+ICE LIBOR 2023-03-08 3M = 0.0063657
+ICE LIBOR 2023-03-09 3M = 0.0063658
+ICE LIBOR 2023-03-10 3M = 0.0063659
+ICE LIBOR 2023-06-06 3M = 0.0063660
+ICE LIBOR 2023-06-07 3M = 0.0063661
+ICE LIBOR 2023-06-08 3M = 0.0063662
+ICE LIBOR 2023-06-09 3M = 0.0063663
+ICE LIBOR 2023-06-10 3M = 0.0063664
+ICE LIBOR 2023-09-06 3M = 0.0063665
+ICE LIBOR 2023-09-07 3M = 0.0063666
+ICE LIBOR 2023-09-08 3M = 0.0063667
+ICE LIBOR 2023-09-09 3M = 0.0063668
+ICE LIBOR 2023-09-10 3M = 0.0063669
+ICE LIBOR 2023-12-06 3M = 0.0063670
+ICE LIBOR 2023-12-07 3M = 0.0063671
+ICE LIBOR 2023-12-08 3M = 0.0063672
+ICE LIBOR 2023-12-09 3M = 0.0063673
+ICE LIBOR 2023-12-10 3M = 0.0063674
+ICE LIBOR 2024-03-06 3M = 0.0063675
+ICE LIBOR 2024-03-07 3M = 0.0063676
+ICE LIBOR 2024-03-08 3M = 0.0063677
+ICE LIBOR 2024-03-09 3M = 0.0063678
+ICE LIBOR 2024-03-10 3M = 0.0063679
+ICE LIBOR 2024-06-06 3M = 0.0063680
+ICE LIBOR 2024-06-07 3M = 0.0063681
+ICE LIBOR 2024-06-08 3M = 0.0063682
+ICE LIBOR 2024-06-09 3M = 0.0063683
+ICE LIBOR 2024-06-10 3M = 0.0063684
+ICE LIBOR 2024-09-06 3M = 0.0063685
+ICE LIBOR 2024-09-07 3M = 0.0063686
+ICE LIBOR 2024-09-08 3M = 0.0063687
+ICE LIBOR 2024-09-09 3M = 0.0063688
+ICE LIBOR 2024-09-10 3M = 0.0063689
+ICE LIBOR 2024-12-06 3M = 0.0063690
+ICE LIBOR 2024-12-07 3M = 0.0063691
+ICE LIBOR 2024-12-08 3M = 0.0063692
+ICE LIBOR 2024-12-09 3M = 0.0063693
+ICE LIBOR 2024-12-10 3M = 0.0063694
+ICE LIBOR 2025-03-06 3M = 0.0063695
+ICE LIBOR 2025-03-07 3M = 0.0063696
+ICE LIBOR 2025-03-08 3M = 0.0063697
+ICE LIBOR 2025-03-09 3M = 0.0063698
+ICE LIBOR 2025-03-10 3M = 0.0063699
+ICE LIBOR 2025-06-06 3M = 0.0063700
+ICE LIBOR 2025-06-07 3M = 0.0063701
+ICE LIBOR 2025-06-08 3M = 0.0063702
+ICE LIBOR 2025-06-09 3M = 0.0063703
+ICE LIBOR 2025-06-10 3M = 0.0063704
+ICE LIBOR 2025-09-06 3M = 0.0063705
+ICE LIBOR 2025-09-07 3M = 0.0063706
+ICE LIBOR 2025-09-08 3M = 0.0063707
+ICE LIBOR 2025-09-09 3M = 0.0063708
+ICE LIBOR 2025-09-10 3M = 0.0063709
+ICE LIBOR 2025-12-06 3M = 0.0063710
+ICE LIBOR 2025-12-07 3M = 0.0063711
+ICE LIBOR 2025-12-08 3M = 0.0063712
+ICE LIBOR 2025-12-09 3M = 0.0063713
+ICE LIBOR 2025-12-10 3M = 0.0063714
+ICE LIBOR 2026-03-06 3M = 0.0063715
+ICE LIBOR 2026-03-07 3M = 0.0063716
+ICE LIBOR 2026-03-08 3M = 0.0063717
+ICE LIBOR 2026-03-09 3M = 0.0063718
+ICE LIBOR 2026-03-10 3M = 0.0063719
+ICE LIBOR 2026-06-06 3M = 0.0063720
+ICE LIBOR 2026-06-07 3M = 0.0063721
+ICE LIBOR 2026-06-08 3M = 0.0063722
+ICE LIBOR 2026-06-09 3M = 0.0063723
+ICE LIBOR 2026-06-10 3M = 0.0063724
+ICE LIBOR 2026-09-06 3M = 0.0063725
+ICE LIBOR 2026-09-07 3M = 0.0063726
+ICE LIBOR 2026-09-08 3M = 0.0063727
+ICE LIBOR 2026-09-09 3M = 0.0063728
+ICE LIBOR 2026-09-10 3M = 0.0063729
+ICE LIBOR 2026-12-06 3M = 0.0063730
+ICE LIBOR 2026-12-07 3M = 0.0063731
+ICE LIBOR 2026-12-08 3M = 0.0063732
+ICE LIBOR 2026-12-09 3M = 0.0063733
+ICE LIBOR 2026-12-10 3M = 0.0063734
\ No newline at end of file
diff --git a/scripts/get-rate-fix.sh b/scripts/get-rate-fix.sh
index 504649224c..53e30facd0 100755
--- a/scripts/get-rate-fix.sh
+++ b/scripts/get-rate-fix.sh
@@ -13,7 +13,7 @@ if [ ! -e $bin ]; then
     ./gradlew installDist
 fi
 
-if [ ! -e buyer/identity-public ]; then
+if [ ! -e build/trader-demo/buyer/identity-public ]; then
     echo "You must run scripts/trade-demo.sh buyer before running this script (and keep it running)"
     exit 1
 fi
@@ -21,4 +21,4 @@ fi
 # Upload the rates to the buyer node
 curl -F rates=@scripts/example.rates.txt http://localhost:31338/upload/interest-rates
 
-$bin --network-address=localhost:31300 --oracle=localhost --oracle-identity-file=buyer/identity-public
\ No newline at end of file
+$bin --network-address=localhost:31300 --directory=build/trader-demo/rates-fix --network-map=localhost:31337 --network-map-identity-file=build/trader-demo/buyer/identity-public --oracle=localhost --oracle-identity-file=build/trader-demo/buyer/identity-public
\ No newline at end of file
diff --git a/src/main/kotlin/com/r3corda/demos/RateFixDemo.kt b/src/main/kotlin/com/r3corda/demos/RateFixDemo.kt
index 1374c58dd4..08960dbfa2 100644
--- a/src/main/kotlin/com/r3corda/demos/RateFixDemo.kt
+++ b/src/main/kotlin/com/r3corda/demos/RateFixDemo.kt
@@ -11,18 +11,23 @@ import com.r3corda.core.node.services.ServiceType
 import com.r3corda.core.serialization.deserialize
 import com.r3corda.core.utilities.BriefLogFormatter
 import com.r3corda.core.utilities.Emoji
-import com.r3corda.demos.api.InterestRateSwapAPI
 import com.r3corda.node.internal.Node
 import com.r3corda.node.services.clientapi.NodeInterestRates
 import com.r3corda.node.services.config.NodeConfiguration
 import com.r3corda.node.services.messaging.ArtemisMessagingService
+import com.r3corda.node.services.network.NetworkMapService
+import com.r3corda.node.services.transactions.NotaryService
 import com.r3corda.protocols.RatesFixProtocol
 import joptsimple.OptionParser
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
 import java.math.BigDecimal
 import java.nio.file.Files
 import java.nio.file.Paths
 import kotlin.system.exitProcess
 
+private val log: Logger = LoggerFactory.getLogger("RatesFixDemo")
+
 /**
  * Creates a dummy transaction that requires a rate fix within a certain range, and gets it signed by an oracle
  * service.
@@ -36,14 +41,14 @@ fun main(args: Array<String>) {
     val oracleAddrArg = parser.accepts("oracle").withRequiredArg().required()
     val oracleIdentityArg = parser.accepts("oracle-identity-file").withRequiredArg().required()
 
-    val fixOfArg = parser.accepts("fix-of").withRequiredArg().defaultsTo("LIBOR 2016-03-16 1M")
+    val fixOfArg = parser.accepts("fix-of").withRequiredArg().defaultsTo("ICE LIBOR 2016-03-16 1M")
     val expectedRateArg = parser.accepts("expected-rate").withRequiredArg().defaultsTo("0.67")
     val rateToleranceArg = parser.accepts("rate-tolerance").withRequiredArg().defaultsTo("0.1")
 
     val options = try {
         parser.parse(*args)
     } catch (e: Exception) {
-        println(e.message)
+        log.error(e.message)
         exitProcess(1)
     }
 
@@ -53,7 +58,7 @@ fun main(args: Array<String>) {
     val dir = Paths.get(options.valueOf(dirArg))
     val networkMapAddr = ArtemisMessagingService.makeRecipient(options.valueOf(networkMapAddrArg))
     val networkMapIdentity = Files.readAllBytes(Paths.get(options.valueOf(networkMapIdentityArg))).deserialize<Party>()
-    val networkMapAddress = NodeInfo(networkMapAddr, networkMapIdentity)
+    val networkMapAddress = NodeInfo(networkMapAddr, networkMapIdentity, setOf(NetworkMapService.Type, NotaryService.Type))
 
     // Load oracle stuff (in lieu of having a network map service)
     val oracleAddr = ArtemisMessagingService.makeRecipient(options.valueOf(oracleAddrArg))
@@ -77,7 +82,7 @@ fun main(args: Array<String>) {
 
     val node = logElapsedTime("Node startup") { Node(dir, myNetAddr, apiAddr, config, networkMapAddress,
             advertisedServices, DemoClock()).setup().start() }
-
+    node.networkMapRegistrationFuture.get()
     val notary = node.services.networkMapCache.notaryNodes[0]
 
     // Make a garbage transaction that includes a rate fix.
@@ -88,8 +93,7 @@ fun main(args: Array<String>) {
     node.stop()
 
     // Show the user the output.
-    println("Got rate fix")
-    println()
+    log.info("Got rate fix\n")
     print(Emoji.renderIfSupported(tx.toWireTransaction()))
-    println(tx.toSignedTransaction().sigs)
+    println(tx.toSignedTransaction().sigs.toString())
 }