IOUIssueFlow принимает параметр IOUState state
. Как описано в создании экземпляра класса , мы можем предоставить объект состояния потоку через оболочку cra sh, как (также пробовано без знака доллара):
flow start IOUIssueFlow$InitiatorFlow state: { amount: $10, lender: "O=ParticipantB, L=New York, C=GB", borrower: "O=ParticipantC, L=Paris, C=FR" }
Это утверждение работает с Kotlin версией шаблона corda-training-template, но выдает следующую ошибку в Java версии:
No matching constructor found:
- [net.corda.training.state.IOUState]: Could not parse as a command: Cannot construct instance of `net.corda.training.state.IOUState` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: UNKNOWN; line: -1, column: -1]
Хотя я не использую значение по умолчанию конструктор, конструктор по умолчанию должен вызываться this()
:
@ConstructorForDeserialization
public IOUState(Amount<Currency> amount, Party lender, Party borrower, UniqueIdentifier linearId){
this.amount = amount;
this.lender = lender;
this.borrower = borrower;
this.linearId = linearId;
}
public IOUState(Amount<Currency> amount, Party lender, Party borrower) {
this(amount, lender, borrower, new UniqueIdentifier());
}
Каков правильный синтаксис для выдачи состояния ввода-вывода в corda-training-template ?