【问题标题】:Extending Cash.State in CORDA在 CORDA 中扩展 Cash.State
【发布时间】:2017-10-23 13:54:24
【问题描述】:

我们使用FungibleAsstes 的现金状态,因为我们有类似的场景,但我们需要一些现有功能的扩展功能。

我们需要创建一个包含单个移动命令和多个状态的事务。每个状态将包含该节点的多个发行者的总金额的一部分(每个发行者的金额将由我们提供)。

有没有办法为此功能扩展 Cash.States 类。

issuerConstraint.forEach {
                pair = try {
                    Cash.generateSpend(serviceHub,
                            builder,
                            distributedAmount,
                            recipient,
                            setOf(it))

                } catch (e: InsufficientBalanceException) {
                    throw CashException("Insufficient cash for spend: ${e.message}", e)
                }
            }

【问题讨论】:

  • 您是否需要更改Cash.State 本身或Cash 合约的行为?当您尝试使用现有的Cash.State 实现上述场景时会发生什么?合同验证是否失败?
  • 是的..我在循环中调用“Cash.generateSpend”,因此它会创建多个移动命令并失败..我已经用一些代码更新了问题..
  • 啊..我认为应该更改 Cash Move 验证以允许多个移动命令...在此期间您可以做的是将多个命令中的所有公钥联合到一个命令中.
  • @RogerWillis 我该怎么做..我应该创建一个新的事务构建器吗?..你能提供一些代码 sn-p..

标签: kotlin corda


【解决方案1】:

尝试改用更通用的OnLedgerAsset.generateSpend 方法。它适用于任何FungibleAsset,包括Cash

OnLedgerAsset.generateSpend 允许您指定如何生成移动命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 2018-10-18
    • 2013-03-09
    • 2013-04-18
    • 1970-01-01
    相关资源
    最近更新 更多