2017-08-22 110 views
0

我正在建立一个流动建模Corda IRS RatesFixFlow(我猜M15兼容。)但我的应用程序正在对M14构建。Corda WireTransaction类型不匹配 - TransactionSignature推断,但DigitalSignature.WithKey预计

这是源代码:

override fun call(): TransactionSignature { 
    val resp = sendAndReceive<TransactionSignature>(oracle, SignRequest(partialMerkleTx)) 
    return resp.unwrap { sig -> 
     check(oracle.owningKey.isFulfilledBy(listOf(sig.by))) 
     tx.toWireTransaction().checkSignature(sig) 
     sig 
    } 
} 

我的代码:

override fun call(): TransactionSignature { 
    val resp = sendAndReceive<TransactionSignature>(agency, SignRequest(partialMerkleTx)) 
    return resp.unwrap { sig -> 
     check(agency.owningKey.isFulfilledBy(listOf(sig.by))) 
     tx.toWireTransaction().checkSignature(sig) 
     sig 
    } 
} 

国税局checkSignature指向回使用TransactionSignature作为回报,而不是WireTransaction.kt执行(我假设)已弃用M14 WireTransaction.checkSignature()使用DigitalKey.WithKey

是否有任何快速解决方法或哈哈cks协调类型更新?

+0

这是造成问题吗? 'TransactionSignature'和'DigitalSignature.WithKey'都是'DigitalSignature'类型。 – joel

+0

是的,M14'.toWireTransation()。checkSignature()'调用'DigitalSignature.WithKey',需要两个参数,当前的corda build中的'.toWireTransaction()。checkSignature()'指向'TransactionSignature'需要一个 - 道歉我是Kotlin的新手,并试图快速设置演示。我正在扫描[文件的git历史](https://github.com/corda/corda/commits/chrisr3-demobench-tornadofx-upgrade/samples/irs-demo/src/main/kotlin/net/corda/ irs/flows/RatesFixFlow.kt)....但没有找到答案 – mleafer

回答

1

如果你在M14上,checkSignature应该采取DigitalSignature.WithKey

如果您使用的是IntelliJ,请尝试清除本地Maven存储库并清除缓存:https://www.jetbrains.com/help/idea/cleaning-system-cache.html

+0

可以理解,但是我很困惑,建模从IRS演示中跳过了使用'TransactionSignature'和'DigitalSignature.WithKey'之间的git提交。在git提交中,我无法找到RatesFixFlow.kt中的call()函数返回类型'DigitalSignature.WithKey'的阶段,我现在已经实现并工作了! :) – mleafer

相关问题