【问题标题】:Corda: ContractCode for the final transaction having multiple input states getting consumed and one output cash state remainingCorda:最终交易的 ContractCode,有多个输入状态被消耗,一个输出现金状态剩余
【发布时间】:2017-08-04 18:45:56
【问题描述】:

我试图弄清楚现金转移交易的合同代码在这种交易将导致输入现金状态演变为输出现金状态,同时消耗之前交易的所有状态的情况下会是什么样子。例如,两方之间存在多项协议,这些协议在付款完成之前一直有效。一旦发生现金转移,就需要使用这些协议,以便它们不会用于进一步的交易。那么从逻辑上讲,合约代码(包括命令)会是什么样子?

【问题讨论】:

    标签: corda


    【解决方案1】:

    您将使用所有现有现金状态作为输入构建交易,并创建新的相应现金状态作为输出。

    你会包含某种movetransfer 命令。

    合同可能会施加以下约束:

    • 投入总价值 == 产出总价值
    • 所有输入和输出状态的货币相同
    • 存在移动命令
    • 移动命令有现金所有当前所有者的签名

    【讨论】:

    • 谢谢@joel!但我正在寻找具有一个 I/O 现金状态和其他 I/O 状态是双边协议的交易的合同代码,一旦付款完成,我需要关闭这些协议。协议是两方之间的,付款由各自的银行完成;所以本质上,交易需要 4 方的签名——两个协议制定方和他们的两家银行。这可能吗?在这种情况下应该有什么限制?希望是有道理的。
    • 这很好 - 一个交易可以有许多必需的签名者,以及多种输入和输出状态。在您的情况下,双边协议的合同可能会指定:[1]。有四个必需的签名者(同意者和银行); [2]。输入双边协议有一个“开放”标志,而输出双边协议有一个“关闭”标志; [3]。 I/O 现金的价值与正在关闭的双边协议的总价值相匹配。那么交易就需要同时满足原始现金合同和双边协议合同。
    • 谢谢@joel。这有帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多