Как вызвать транзакцию из другой транзакции в hyperledger composer? - PullRequest
0 голосов
/ 23 мая 2018

Я хочу вызвать / вызвать транзакцию из другой транзакции.как это будет возможно.

async function updateOrder(uo) {  // eslint-disable-line no-unused-vars
// Get the asset registry for the asset.
assetRegistry = await getAssetRegistry('org.example.basic.OrderList');

for(var i=0;i< uo.asset.orderDtls.length;i++)
{
  if(uo.asset.orderDtls[i].orderID==uo.orderID){
   uo.asset.orderDtls[i].orderStatus="Accepted";
  }
}
await assetRegistry.update(uo.asset);

Пожалуйста, предоставьте любой пример кода / примера для запуска другой транзакции всякий раз, когда эта транзакция произойдет.

1 Ответ

0 голосов
/ 11 сентября 2018

Пожалуйста, просмотрите github здесь:

https://github.com/hyperledger/composer/issues/4375

Это должно ответить на ваш вопрос.Цитата из номера:

/**
 * TransactionOne
 * @param {org.example.TransactionOne} The transaction one object
 * @transaction
 */
async function transactionOne(tx) {
  const factory = getFactory();

  tx.subTransactions.forEach(async (subTransactionData, idx) => {
    const subTx = factory.newResource(namespace, "TransactionTwo", tx.transactionId + ":" + idx);
    subTx.subTransactionData= subTransactiondata;

    await transactionTwo(subTx);
  });
}
...