hyperledger composer добавление участников в массив участников процесса транзакции - PullRequest
0 голосов
/ 28 августа 2018

Я определил Участник и актив , как показано ниже, и я хочу добавить конкретного участника в массив доступа [тип Участник] в транзакции. Может кто-нибудь сказать мне, как это можно сделать.

Как добавить личность участника в массив. Как мне нужно передать личность через параметры и затем добавить ее в массив участников. Я создал разрешения в соответствии с вопросом, который я задал ранее. Ссылка на вопрос для разрешения

ДЕКЛАРАЦИЯ АКТИВОВ

asset Details identified by detailsId {
     o String detailsId
     o String description optional
     --> Bank owner
     o Bank[] access optional
     o String document 
}

ДЕКЛАРАЦИЯ УЧАСТНИКА

participant Bank identified by bankId {
   o String bankId
   o String Name
}

1 Ответ

0 голосов
/ 28 августа 2018

Вы внесли небольшое изменение в модель между примером ACL и этим примером - изменили массив доступа, который ранее был взаимосвязью.

--> Bank[] access optional    original
  vs
o Bank[] access optional      here  

Исходя из исходной модели , сначала добавьте эту транзакцию в модель:

transaction AddAccess {
  --> Details details
  --> Bank additionalAccess
}

Тогда эта транзакция на основе сценария должна работать для вас:

/**
 * Adding a Bank to an access list
 * @param {org.example.test.AddAccess} addA 
 * @transaction
 */
async function addAccess(addA) { 

  // Add the new access to the array, checking if empty first as it is optional field at creation
  if (typeof addA.details.access == 'undefined') {
    addA.details.access = new Array();
    addA.details.access[0] = addA.additionalAccess;
  } 
  else {
    addA.details.access.push(addA.additionalAccess);
  }

  // get the Registry
  const assetRegistry = await getAssetRegistry('org.example.test.Details');

  // Update the Registry with the new details
  await assetRegistry.update(addA.details);
}

Тест с JSON, подобный этому:

{
  "$class": "org.example.test.AddAccess",
  "details": "resource:org.example.test.Details#D11",
  "additionalAccess": "resource:org.example.test.Bank#9241"
}
...