如何在Corda中将非金钱资产从一方转移到另一方

时间:2019-04-30 16:40:44

标签: corda

基本上我的州有两个政党,我想将资产(例如房屋或汽车)从一个政党转让给另一政党,或者将同一资产发行给政党,那么我该如何管理呢?

我尝试搜索文档,但找不到任何重要内容

2 个答案:

答案 0 :(得分:0)

如果您建模或定义自己的状态,则可以决定。您所在州的某些属性设置为所有者。资产转移是一项更改此属性的当事方的交易,大概仅由所有者或授权该权力的当事方发起。

答案 1 :(得分:0)

让我们以您的House State

为例

您的房屋状态可能看起来像这样:

@BelongsToContract(HouseContract::class)
data class HouseState (
        val address: String,
        val appraisal: Amount<USD>,
        val owner: Party,
        val participants: List<Party>,
        override val linearId: UniqueIdentifier = UniqueIdentifier()
): ContractState, LinearState {

    fun withNewOwner(party: Party): HouseState {
      return this.copy(owner = party)
    } 

    override val participants: List<AbstractParty> get() = players
    }


}

在Corda中,状态是不可变的。您可以通过以下方式更改房屋的所有者:将输入状态标记为已消费,然后在拥有者字段已更新的情况下向分类帐上发布新的houseState。

某些州甚至具有便捷的方法(请参见上面的HouseState),该方法返回输入状态的副本,其中输入字段已更新(在本例中为所有者),以将其作为输出状态包含在事务中。