Я следую следующему руководству по Corda: https://docs.corda.net/tutorial-test-dsl.html.
Может кто-нибудь объяснить строчку val inState = getPaper()
? Его нет перед этой страницей.
Это просто тестовый метод для возврата нового состояния коммерческой бумаги.
В настоящее время за пределами Hello, World! обучающие программы (https://docs.corda.net/hello-world-introduction.html и https://docs.corda.net/tut-two-party-introduction.html), обучающие программы не должны следовать друг за другом для создания полноценного CorDapp. Это просто примеры того, как работают различные функции.
Также может быть полезно взглянуть на различные примеры CorDapps, определенные здесь: https://www.corda.net/samples/.
Простой способ сделать это будет следующим:
private companion object {
val testIssuance = bigCorp.ref(111)
val testPounds: Cash.State = 1999.POUNDS.CASH issuedBy testIssuance
}
fun getPaper(): CommercialPaperState {
return CommercialPaperState(testIssuance, testIssuance.party, testPounds.amount , Instant.now()+10.days)
}
Или ниже представлен еще один более сложный способ сделать это без использования денежных средств, предоставленных как часть Finance CorDapp, поставляемого вместе с Corda 4.
import net.corda.finance.`issued by`
private companion object {
val bigCorp = TestIdentity((CordaX500Name("BigCorp", "New York", "GB")))
val testIssuance = bigCorp.ref((("JoinKey").toByte()))
val testAmount = Amount<Currency>(1000,Currency.getInstance(Locale.GERMANY))
}
fun getPaper(): CommercialPaperState {
return CommercialPaperState(testIssuance, testIssuance.party, testAmount `issued by` testIssuance, Instant.now()+10.days)
}
я нашел
override fun getPaper(): ICommercialPaperState = JavaCommercialPaper.State(
megaCorp.ref(123),
megaCorp.party,
1000.DOLLARS `issued by` megaCorp.ref(123),
TEST_TX_TIME + 7.days
)
полезный (от CommercialPaperTests.kt)
Я перевожу это на:
private OwnableState getPaper() {
PartyAndReference partyAndReference = new PartyAndReference((AbstractParty) this.megaCorp.getParty(), OpaqueBytes.of((byte) 0));
Amount<Issued<Currency>> issuedAmount = Amount.fromDecimal(new BigDecimal(1000), new Issued<Currency> (partyAndReference, Currency.getInstance(Locale.US)));
return (OwnableState) new CommercialPaper.State(this.megaCorp.ref((byte) 123), this.megaCorp.getParty(), issuedAmount, Instant.now().plus(7, ChronoUnit.DAYS));
}