Как я могу изменить значение атрибута актива с помощью транзакции? - PullRequest
0 голосов
/ 04 января 2019

Я работаю на площадке Hyperledger Composer. У меня есть актив, в котором есть данные о клиенте:

{
    "$class": "org.example.empty.userData",
    "id": "3890",
    "Name": "Ramesh",
    "Data": [
        "disease",
        "some more disease"
    ],
    "category": "Health",
    "Mobile": "8698617174",
    "timestamp": "2019-01-03T11:26:50.915Z",
    "AllowRead": false,
    "Ecosystem": "resource:org.example.empty.Ecosystem#7758",
    "Addsup": "resource:org.example.empty.Addsup#2534"
}

Теперь я хочу изменить значение атрибута AllowRead через функцию транзакции.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Сначала вам нужно получить реестр для актива:

const registry = await getAssetRegistry('org.example.empty.userData');

Теперь получить актив по идентификатору:

const asset = await registry.get('3890');

Измените атрибуты и сохраните актив:

asset.AllowRead = true;
await registry.update(asset);

Помните, что и get, и update являются асинхронными функциями, поэтому либо используйте await в функции async, либо используйте Promise.then синтаксис, например

getAssetRegistry('org.example.empty.userData')
    .then(registry => registry.get('3890'))
    .then(asset => {
        asset.AllowRead = true;
        return asset;
    })
    .then(asset => registry.update(asset));

Если вы изменяете атрибуты внутри тестов, используйте фабрику реестра для доступа к реестрам:

const factory = businessNetworkConnection.getBusinessNetwork().getFactory();
const registry = await factory.getAssetRegistry('org.example.empty.userData'); // etc
0 голосов
/ 04 января 2019

Есть несколько простых примеров транзакций, которые обновляют одно поле в примерах Composer.

Транзакция «Торговля» в образце торговой сети и транзакция «Отклонить» в сети аккредитивов.

Вы можете найти образцы из GitHub или с помощью онлайн-площадки Composer .

Если вы новичок в Composer, я бы предложил поработать с учебником Playground,и учебник для разработчиков со страницы Composer Tutorials .

...