【问题标题】:Use Corda `vaultQueryBy` stateRef's `txhash` to return all states for the transaction使用 Corda `vaultQueryBy` stateRef 的 `txhash` 返回交易的所有状态
【发布时间】:2019-12-17 23:26:12
【问题描述】:

我正在使用 braid 通过vaultQueryBy 查询corda 节点。我想返回特定txhash所有 状态,但是在查询条件中省略 stateRef 的index 会导致它默认索引值为0

有没有办法使用vaultQueryBy返回特定交易哈希的所有交易状态?

【问题讨论】:

    标签: corda


    【解决方案1】:

    除了vaultQueryBy,您可以使用以下内容:

    SignedTransaction tx = getServiceHub().getValidatedTransactions().getTransaction(tx-hash);
    List<StateAndRef<your-state-type> outputs = tx.getCoreTransaction().outRefsOfType(your-state-type);
    

    【讨论】:

    • 这是来自电子应用程序的查询问题。我们正在使用 braid 来构建我们自己的与节点的代理连接。辫子似乎没有暴露getValidatedTransactions
    • Braid 服务器公开您的流程和服务。
    • 如果您使用的是内存中的编织服务器,那么您可以按照示例 repo (github.com/corda/samples/tree/release-V4/pigtail) 中的 pigtail 项目的方法。
    • BraidService.kt(github.com/corda/samples/blob/release-V4/pigtail/cordapp/src/…)里面,可以添加这段代码:
    • 抱歉 cmets 不允许正确格式化: fun getAllStatesAndRefsByTxHash(txHash: SecureHash): List> { val tx = serviceHub.validatedTransactions.getTransaction(txHash) return tx?.coreTransaction? .outRefsOfType(YourState::class.java) }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多