如何对过滤后的交易进行合同验证?

时间:2018-10-24 10:04:38

标签: corda

假定为节点提供了包含一些状态的已过滤事务,而某些状态已被排除在外。节点如何在事务中包含的状态上运行智能合约验证功能?我正在尝试实现类似于ledgerTransaction.verify()

的功能

1 个答案:

答案 0 :(得分:0)

从Corda 3开始,您无法运行其余州的verify方法,因为verify方法需要一个LedgerTransaction

相反,您将不得不从FilteredTransaction中检索状态,并提供自己的检查逻辑。例如:

val inputStateRefs = filteredTransaction.inputs

val inputStateAndRefs = inputStateRefs.map { inputStateRef -> 
    serviceHub.toStateAndRef<TemplateState>(inputStateRef) 
}

inputStateAndRefs.forEach { inputStateAndRef ->
    val state = inputStateAndRef.state
    // TODO: Checking...
}