在我的流程中,我想调用一个预定义的子流程
fun generateSpend(services: ServiceHub,
tx: TransactionBuilder,
amount: Amount<Currency>,
ourIdentity: PartyAndCertificate,
to: AbstractParty,
onlyFromParties: Set<AbstractParty> = emptySet()): Pair<TransactionBuilder, List<PublicKey>> {
return generateSpend(services, tx, listOf(PartyAndAmount(to, amount)), ourIdentity, onlyFromParties)
}
我的问题是如何获得流中特定节点参与者的“PartyAndCertificate”,其中我们的身份要求?
有几种方式:
您可以PartyAndCertificate
使用该FlowLogic.ourIdentityAndCert
方法获取自己的节点
您可以使用以下方法获取PartyAndCertificate
网络上所有节点的s:
serviceHub.networkMapCache.allNodes.flatMap { it.legalIdentitiesAndCerts }
您可以使用以下方法获取PartyAndCertificate
网络上特定节点的s:
serviceHub.networkMapCache.getNodeByLegalName(CordaX500Name("ANodeOrg", "", "GB"))
?.legalIdentitiesAndCerts
?: throw FlowException("Party not found on network.")
请注意,从 Corda 3.1 开始,网络上的每个节点只有一个合法身份(即legalIdentitiesAndCerts
列表中的每个节点将包含一个项目)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句