在Corda中,如何在未完成的流程中查看待处理的交易?

时间:2018-05-02 17:36:22

标签: corda

在Corda中,假设我正在运行创建事务的流程。我已签署交易,但现在暂停流程等待对方签署。

有没有办法让我看到以这种方式挂起的交易清单?

1 个答案:

答案 0 :(得分:1)

从Corda 3开始,您无法看到这些交易的内容。

但是,您可以使用流程进度跟踪器步骤找出每个流在其生命周期中的位置。例如,您可以计算在某个用户定义的Transaction is pending.进度跟踪器步骤中暂停的流数,如下所示:

class Client {
    val proxy: CordaRPCOps

    init {
        val nodeAddress = NetworkHostAndPort.parse("localhost:10006")
        val client = CordaRPCClient(nodeAddress)
        proxy = client.start("user1", "test").proxy
    }

    fun currentNumberOfPendingTxs(): Int {
        val stateMachineInfos = proxy.stateMachinesSnapshot()
        val stateMachinesPendingTxs = stateMachineInfos.filter { info ->
            val progressTracker = info.progressTrackerStepAndUpdates
            if (progressTracker == null) {
                false
            } else {
                progressTracker.snapshot == "Transaction is pending."
            }
        }
        return stateMachinesPendingTxs.size
    }
}