交易验证失败。同时使用不同类型的状态作为输入和输出
Transaction Verification failed. while using different types of states as input and output
我在创建 Cordapp 时遇到问题。
我有两种类型的状态 Policy State 和 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
问题是requireSingleCommand
。当您创建具有输入状态的交易时,输入状态包含在另一个交易中的命令也将在此处加载。要解决此问题,请使用 tx.commandsOfType<YourType>()
或任何语法。这不会抛出异常。
异常是由于 single
在 requireSingleCommand
中被调用。
我在创建 Cordapp 时遇到问题。 我有两种类型的状态 Policy State 和 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
问题是requireSingleCommand
。当您创建具有输入状态的交易时,输入状态包含在另一个交易中的命令也将在此处加载。要解决此问题,请使用 tx.commandsOfType<YourType>()
或任何语法。这不会抛出异常。
异常是由于 single
在 requireSingleCommand
中被调用。