Hyperledger Composer 中的交易函数 return 类型

Transaction function return type in Hyperledger Composer

我在事务函数定义中使用@return(MyConcept),即在 cto 文件中。

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

我怎样才能做到这一点?

使用一个'master'概念来容纳其他可选概念

示例:

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
}

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

例如

/**
 * 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;
}