交易验证失败. 同时使用不同类型的状态作为输入和输出



我在创建 Cordapp 时遇到问题。 我有两种类型的状态 政策状态 和 索赔状态 及其各自的合同。 现在,我正在编写一个声明流,其中策略状态将作为输入,声明状态应作为输出生成。

但是我在这样做时遇到了这个错误——

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

我附上我的保单合约、理赔合约及理赔流程-

保单合同- https://ideone.com/giz7uX

索赔合同-https://ideone.com/3GM4UF

索赔流-https://ideone.com/BobTsy

问题是requireSingleCommand.创建具有输入状态的事务时,输入状态包含在另一个事务中的命令也将在此处加载。要解决此问题,请使用tx.commandsOfType<YourType>()或任何语法。这不会引发异常。

异常是由于在requireSingleCommand中调用single

最新更新