首页 > 解决方案 > 我可以在 Corda oracle 服务中使用依赖注入吗?

问题描述

我想在我的 CorDapp 中交换货币,但我希望我的货币交换服务足够灵活,以便我将来可以轻松更改货币汇率提供者。

有没有办法将货币汇率提供者作为 Corda 预言机服务注入?或者有没有更好的方法来解决我在 Corda 中的问题?

标签: corda

解决方案


是的,您可以使用预言机来提供货币汇率。要“注入”要使用的货币提供者,您可以将预言机的名称作为参数传递给流程:

@InitiatingFlow
@StartableByRPC
class CurrencySwapFlow(val oracle: CordaX500Name) : FlowLogic<Unit>() {

    @Suspendable
    override fun call() {
        val oracle = serviceHub.networkMapCache.getNodeByLegalName(oracle)
                ?: throw FlowException("Unknown oracle service.")

        TODO("Use the oracle in your flow.")
    }
}

推荐阅读