Corda generateSpend支付硬币添加备忘录

时间:2017-12-07 14:38:48

标签: corda

嗨有没有办法使用Cash.generateSpend并与之分配消息备忘录?

我的用例很简单,当我花费案例时,我想将现金标记为一些通用类别,例如,手动转移或自动转移到特定方。 我一直在经历https://docs.corda.net/api/kotlin/corda/net.corda.finance.contracts.asset/-cash/index.html但是没有方法可以为资产转移目的添加标记。

主要目的是当我查询我的历史交易时,我可以看到我的资金流动。

2 个答案:

答案 0 :(得分:0)

您可以在流中为任何事务添加注释,如下所示:

val dfMainOutputFinal = dfMainOutput.withColumn("ThirdPartySourcePriority", $"ThirdPartySourcePriority".cast(StringType)).withColumn("ThirdPartySourceCodeId", $"ThirdPartySourceCodeId".cast(StringType)).na.fill("").select($"DataPartition",concat_ws("|^|", dfMainOutput.schema.fieldNames.filter(_ != "DataPartition").map(c => col(c)): _*).as("concatenated"))

如果需要,可以在同一笔交易中添加多个笔记。

然后,您可以在流中查看与给定交易相关的注释:

serviceHub.vaultService.addNoteToTransaction(
    theTransactionToAddANoteTo.id, 
    "The note to add to the transaction."
)

您还可以直接登录节点的数据库并检查serviceHub.vaultService.getTransactionNotes( theTransactionToGetNotesFor.id ) 表的内容。

答案 1 :(得分:0)

您需要编写一个自定义SQL查询来连接两个表(使用事务ID作为连接键) - vault_states / vault_fungible_states和vault_transaction_notes - 使用serviceHub.jdbcSession()。

如果您希望我们扩展Vault Query API以提供查询条件方法来自动执行此功能,请免费添加功能请求。请在这里添加: https://github.com/corda/corda/issues