IR Cancelable Swap arrange { rollOut("2016-09-01", "2017-09-01", Frequency.SemiAnnual) { val floating = interest(notional, "act/365", fix("LIBOR", start, Tenor("6M")), start, end) val fixed = interest(notional, "act/365", 0.5, start, end) actions { (acmeCorp or highSteetBank).may { "exercise floating".anytime { highStreetBank.owes(acmeCorp, floating - fixed, GBP) next() } "exercise fixed".anytime { acmeCorp.owes(highStreetBank, fixed - floating, GBP) next() } } acmeCorp.may { “cancel”.anytime { acmeCorp.owes(highStreetBank, 10.K, GBP) } } ACME Corp can cancel the swap, paying a fee. } } Note absence of “Next”. Contract ends here. } UNRESTRICTED 100

2nd R3 Smart Contract Templates  Summit (All Slides) - Page 101 2nd R3 Smart Contract Templates Summit (All Slides) Page 100 Page 102