Что означает getPaper () в Corda в учебнике «Написание теста контракта»?

Я следую следующему руководству по Corda: https://docs.corda.net/tutorial-test-dsl.html.

Может кто-нибудь объяснить строчку val inState = getPaper()? Его нет перед этой страницей.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
109
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Это просто тестовый метод для возврата нового состояния коммерческой бумаги.

В настоящее время за пределами 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));
    }

Другие вопросы по теме