IR Caplet Placeholder for future LIBOR fixing arrange { actions { (acmeCorp or highStreetBank).may { "exercise".anytime { val floating = interest(notional, "act/365", fix("LIBOR", "2016-04-01", Tenor("6M")), "2016-04-01", "2016-10-01") val fixed = interest(notional, "act/365", 0.5, "2016-04-01", "2016-10-01") Calculation of interest on notional highStreetBank.owes(acmeCorp, floating - fixed, GBP) } } } } Note that debt obligation must be of positive amount. Hence exercise is only valid if floating leg is larger than fixed leg. UNRESTRICTED 94

2nd R3 Smart Contract Templates  Summit (All Slides) - Page 95 2nd R3 Smart Contract Templates Summit (All Slides) Page 94 Page 96