У меня есть контракт, который использует входные данные типа A для создания выходных данных типа B, и мой контракт выглядит примерно так, как показано
override fun verify(tx: LedgerTransaction) {
val commandCreate = tx.commands.requireSingleCommand<Commands.Create>()
requireThat {
"One input state should be there for TypeB" using (tx.inputStates.size==1)
"One output states should be there for TypeB" using (tx.outputStates.size==1)
"Input State should be a TypeA" using (tx.getInput(0) is TypeAState)
"Output State should be a TypeB" using(tx.getOutput(0) is TypeBState)
"TypeA id Number should not be empty" using((tx.getInput(0) as TypeAState).idNumber.isNotEmpty())
}
, и я получаю следующую ошибку при вызовеflow
java.util.concurrent.ExecutionException: net.corda.core.contracts.TransactionVerificationException $ ContractRejection: сбой проверки контракта: требуется команда com.example.contract.PolicyContract.Commands.Create, контракт:com.example.contract.PolicyContract, транзакция: B2AE49DEDFE882C9DDBA9ECB35740A689CFDC4F8ED78DD43D912FDC9DC5DC2C4
Мой поток выглядит примерно так
val txCommand = Command(TypeBContract.Commands.Create(), listOf(me.owningKey))
val txBuilder = TransactionBuilder(notary)
.addInputState(typeARef)
.addOutputState(outputState, TYPEB_CREATION_CONTRACT_ID)
.addCommand(txCommand)
Куда я