Проверка транзакции не удалась. при использовании различных типов состояний в качестве входа и выхода - PullRequest
0 голосов
/ 18 сентября 2018

У меня возникла проблема при создании Cordapp.У меня есть два типа состояний политики State and Claim State и их соответствующие контракты.Сейчас я пишу поток утверждений, в котором состояние политики будет приниматься в качестве входных данных, а состояние утверждения должно создаваться в качестве выходных данных.

Но при этом я сталкиваюсь с этой ошибкой -

java.util.concurrent.ExecutionException: net.corda.core.contracts.TransactionVerificationException$ContractRejection: Contract verification failed: Required com.example.contract.PolicyContract.Commands.Create command, contract: com.example.contract.PolicyContract, transaction: B6F0A0B895B477153530F060B264FE85BAA8F29BA922A546BEC6300A255667C7

Я прилагаю мой Политический контракт, ClaimContract и ClaimFlow-

PolicyContract- https://ideone.com/giz7uX

ClaimContract- https://ideone.com/3GM4UF

ClaimFlow- https://ideone.com/BobTsy

1 Ответ

0 голосов
/ 18 сентября 2018

Проблема в requireSingleCommand.Когда вы создаете транзакцию с состояниями ввода, здесь также будет загружаться команда о том, что состояние ввода было включено в другую транзакцию.Чтобы решить эту проблему, используйте tx.commandsOfType<YourType>() или любой другой синтаксис.Это не вызовет исключение.

Исключение связано с тем, что single вызывается в requireSingleCommand.

...