Hyperledger Composer中的交易功能返回类型

时间:2018-09-19 08:11:26

标签: hyperledger-composer

我在事务功能定义(即cto文件)中使用@return(MyConcept)。

基于事务功能中的某些条件,我希望返回类型是动态的,即有时它可能返回MyConcept1,有时返回MyConcept2,有时甚至返回null。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

使用“主”概念保存其他可选概念

示例:

participant Publisher identified by id {
  o String id
}

asset myAsset identified by id {
  o String id
  o String value
}
concept MyConcept1 {
    o String value
}

concept MyConcept2 {
    o String value optional
}

concept MyConcept {
    o MyConcept1 myc1 optional
    o MyConcept2 myc2 optional
}

@returns(MyConcept)
transaction myTransaction {
  --> myAsset
  etc
}

我的交易可以返回您设置的概念中的任何内容

例如

/**
 * Handle a transaction that returns a concept.
 * @param {org.sample.MyTransaction} transaction The transaction.
 * @returns {org.sample.MyConcept} The concept.
 * @transaction
 */
async function myTransaction(transaction) {
    // other stuff
    const factory = getFactory();
    // assign values
    var conceptData1 = factory.newConcept('org.sample', 'MyConcept1');

    conceptData1.value = transaction.myAsset.value; // etc
    //

    // return master (you define myConceptdata) based on what was set .. some of which could be blank
    return myConceptdata;
}