com.r3corda.contracts

Package com.r3corda.contracts

Types

CommercialPaper class CommercialPaper : Contract
CommercialPaperLegacy class CommercialPaperLegacy : Contract
Event open class Event

Event superclass - everything happens on a date.

FixedRate class FixedRate : Rate

A very basic subclass to represent a fixed rate.

FixedRatePaymentEvent class FixedRatePaymentEvent : RatePaymentEvent

Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent. Assumes that the rate is valid.

FloatingRate open class FloatingRate : Rate

The parent class of the Floating rate classes.

FloatingRatePaymentEvent class FloatingRatePaymentEvent : RatePaymentEvent

Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent. If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?

InterestRateSwap class InterestRateSwap : Contract

The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement). This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg". It also has 4 commands, "Agree", "Fix", "Pay" and "Mature". Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though). This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.

PaymentEvent abstract class PaymentEvent : Event

Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.

PercentageRatioUnit open class PercentageRatioUnit : RatioUnit

A class to reprecent a percentage in an unambiguous way.

Rate open class Rate

Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc.

RatePaymentEvent abstract class RatePaymentEvent : PaymentEvent

A RatePaymentEvent represents a dated obligation of payment. It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance functions for interest rate swap legs of the fixed and floating nature. For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined. For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.

RatioUnit open class RatioUnit

A utility class to prevent the various mixups between percentages, decimals, bips etc.

ReferenceRate class ReferenceRate : FloatingRate

So a reference rate is a rate that takes its value from a source at a given date e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.

UnknownType open class UnknownType

Extensions for External Classes

kotlin.Int
kotlin.String

Properties

CP_LEGACY_PROGRAM_ID val CP_LEGACY_PROGRAM_ID: CommercialPaperLegacy

Legacy version of CommercialPaper that includes the full verification logic itself, rather than breaking it into clauses. This is here just as an example for the contract tutorial.

CP_PROGRAM_ID val CP_PROGRAM_ID: CommercialPaper

This is an ultra-trivial implementation of commercial paper, which is essentially a simpler version of a corporate bond. It can be seen as a company-specific currency. A company issues CP with a particular face value, say $100, but sells it for less, say $90. The paper can be redeemed for cash at a given date in the future. Thus this example would have a 10% interest rate with a single repayment. Commercial paper is often rolled over (the maturity date is adjusted as if the paper was redeemed and immediately repurchased, but without having to front the cash).

IRS_PROGRAM_ID val IRS_PROGRAM_ID: InterestRateSwap

Functions

exportIRSToCSV fun State.exportIRSToCSV(): String
owned by infix fun State.owned by(owner: PublicKey): State
infix fun <ERROR CLASS>.owned by(newOwner: PublicKey): <ERROR CLASS>
times operator fun Amount<Currency>.times(other: RatioUnit): Amount<Currency>
with notary infix fun State.with notary(notary: Party): TransactionState<State>