mirror of
https://github.com/corda/corda.git
synced 2024-12-27 16:28:56 +00:00
f4f0e160d2
Split the verification and commands for the Cash contract into a new AbstractCashLike class, and make Cash a concrete implementation of that class, specialised for dealing with Currency as the underlying token.
105 lines
3.0 KiB
JSON
105 lines
3.0 KiB
JSON
{
|
|
"fixedLeg": {
|
|
"fixedRatePayer": "Bank A",
|
|
"notional": {
|
|
"quantity": 2500000000,
|
|
"currency": "USD"
|
|
},
|
|
"paymentFrequency": "SemiAnnual",
|
|
"effectiveDate": "2016-03-11",
|
|
"effectiveDateAdjustment": null,
|
|
"terminationDate": "2026-03-11",
|
|
"terminationDateAdjustment": null,
|
|
"fixedRate": {
|
|
"ratioUnit": {
|
|
"value": "0.01676"
|
|
}
|
|
},
|
|
"dayCountBasisDay": "D30",
|
|
"dayCountBasisYear": "Y360",
|
|
"rollConvention": "ModifiedFollowing",
|
|
"dayInMonth": 10,
|
|
"paymentRule": "InArrears",
|
|
"paymentDelay": 0,
|
|
"paymentCalendar": "London",
|
|
"interestPeriodAdjustment": "Adjusted"
|
|
},
|
|
"floatingLeg": {
|
|
"floatingRatePayer": "Bank B",
|
|
"notional": {
|
|
"quantity": 2500000000,
|
|
"currency": "USD"
|
|
},
|
|
"paymentFrequency": "Quarterly",
|
|
"effectiveDate": "2016-03-11",
|
|
"effectiveDateAdjustment": null,
|
|
"terminationDate": "2026-03-11",
|
|
"terminationDateAdjustment": null,
|
|
"dayCountBasisDay": "D30",
|
|
"dayCountBasisYear": "Y360",
|
|
"rollConvention": "ModifiedFollowing",
|
|
"fixingRollConvention": "ModifiedFollowing",
|
|
"dayInMonth": 10,
|
|
"resetDayInMonth": 10,
|
|
"paymentRule": "InArrears",
|
|
"paymentDelay": 0,
|
|
"paymentCalendar": [ "London" ],
|
|
"interestPeriodAdjustment": "Adjusted",
|
|
"fixingPeriod": "TWODAYS",
|
|
"resetRule": "InAdvance",
|
|
"fixingsPerPayment": "Quarterly",
|
|
"fixingCalendar": [ "NewYork" ],
|
|
"index": "ICE LIBOR",
|
|
"indexSource": "Rates Service Provider",
|
|
"indexTenor": {
|
|
"name": "3M"
|
|
}
|
|
},
|
|
"calculation": {
|
|
"expression": "( fixedLeg.notional.quantity * (fixedLeg.fixedRate.ratioUnit.value)) -(floatingLeg.notional.quantity * (calculation.fixingSchedule.get(context.getDate('currentDate')).rate.ratioUnit.value))",
|
|
"floatingLegPaymentSchedule": {
|
|
},
|
|
"fixedLegPaymentSchedule": {
|
|
}
|
|
},
|
|
"common": {
|
|
"baseCurrency": "EUR",
|
|
"eligibleCurrency": "EUR",
|
|
"eligibleCreditSupport": "Cash in an Eligible Currency",
|
|
"independentAmounts": {
|
|
"quantity": 0,
|
|
"currency": "EUR"
|
|
},
|
|
"threshold": {
|
|
"quantity": 0,
|
|
"currency": "EUR"
|
|
},
|
|
"minimumTransferAmount": {
|
|
"quantity": 25000000,
|
|
"currency": "EUR"
|
|
},
|
|
"rounding": {
|
|
"quantity": 1000000,
|
|
"currency": "EUR"
|
|
},
|
|
"valuationDate": "Every Local Business Day",
|
|
"notificationTime": "2:00pm London",
|
|
"resolutionTime": "2:00pm London time on the first LocalBusiness Day following the date on which the notice is given ",
|
|
"interestRate": {
|
|
"oracle": "Rates Service Provider",
|
|
"tenor": {
|
|
"name": "6M"
|
|
},
|
|
"ratioUnit": null,
|
|
"name": "EONIA"
|
|
},
|
|
"addressForTransfers": "",
|
|
"exposure": {},
|
|
"localBusinessDay": [ "London" , "NewYork" ],
|
|
"dailyInterestAmount": "(CashAmount * InterestRate ) / (fixedLeg.notional.currency.currencyCode.equals('GBP')) ? 365 : 360",
|
|
"tradeID": "tradeXXX",
|
|
"hashLegalDocs": "put hash here"
|
|
},
|
|
"notary": "Bank A"
|
|
}
|