Corda 查询使用线性状态的事务的事务id

Corda 查询使用线性状态的事务的事务id,corda,Corda,我们有线性状态“A”。我们有两个流,一个用于创建状态“A”,另一个用于消费状态“A”。我们必须编写一个新的流,该流将状态“a”的线性id作为参数,并返回使用状态“a”的事务的SingledTransaction id。我们如何在Corda中实现这一点?应该是这样的,但我不确定您将获得的事务是创建状态的事务,还是消耗状态的事务;您需要测试以下代码: //通过其linearId获取已使用状态。 QueryCriteria consumedCriteria=新Vault QueryCriteria(V

我们有线性状态“A”。我们有两个流,一个用于创建状态“A”,另一个用于消费状态“A”。我们必须编写一个新的流,该流将状态“a”的线性id作为参数,并返回使用状态“a”的事务的SingledTransaction id。我们如何在Corda中实现这一点?

应该是这样的,但我不确定您将获得的事务是创建状态的事务,还是消耗状态的事务;您需要测试以下代码:

//通过其linearId获取已使用状态。
QueryCriteria consumedCriteria=新Vault QueryCriteria(Vault.StateStatus.CONSUMED);
LinearStateQueryCriteria linearCriteria=新的LinearStateQueryCriteria()
.withExternalId(Collections.singletonList(“linearId”);
页面结果=getServiceHub().getVaultService()
.queryBy(您的state.class、consumedCriteria.和(linearCriteria));
//通过其ID获取事务。
//这是一个简化的示例,假设只返回一个结果,
//如果您的状态已被使用(更新),则可能会得到多个结果
//多次。
SecureHash txId=results.getStates().get(0.getRef().getxhash();
SignedTransaction tx=getServiceHub().getValidatedTransactions().getTransaction(txId);

应该是这样的,但我不确定您将获得的事务是创建状态的事务还是使用状态的事务;您需要测试以下代码:

//通过其linearId获取已使用状态。
QueryCriteria consumedCriteria=新Vault QueryCriteria(Vault.StateStatus.CONSUMED);
LinearStateQueryCriteria linearCriteria=新的LinearStateQueryCriteria()
.withExternalId(Collections.singletonList(“linearId”);
页面结果=getServiceHub().getVaultService()
.queryBy(您的state.class、consumedCriteria.和(linearCriteria));
//通过其ID获取事务。
//这是一个简化的示例,假设只返回一个结果,
//如果您的状态已被使用(更新),则可能会得到多个结果
//多次。
SecureHash txId=results.getStates().get(0.getRef().getxhash();
SignedTransaction tx=getServiceHub().getValidatedTransactions().getTransaction(txId);

感谢阿德尔的回复。但是,上面的示例将在创建状态时给出事务。当状态被消耗时,我们需要交易。是的,我不知道你会如何做相反的方式。谢谢阿德尔的回复。但是,上面的示例将在创建状态时给出事务。当状态被消耗时,我们需要事务处理。是的,我不确定你会怎么做。