2017-08-22 67 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

相關問題