Я хочу изменить свойство участника, которое представляет собой массив отношений во время транзакции.
Давайте предположим, что у меня есть пользователь, который содержит массив ключей, например:
participant User identified by userId {
o String userId
--> Key[] keys
}
asset Key identified by keyId {
o String keyId
}
transaction modifyUserKeys {
--> User user
}
Затем в функции процессора транзакций я изменяю массив (как при добавлении и удалении элементов в нем)и обновите участника:
function modifyUserKeys(tx) {
let user = tx.user;
// create a new key via factory
var newKey = ...
user.keys.push(newKey);
return getParticipantRegistry('com.sample.User')
.then(function (participantRegistry) {
return participantRegistry.update(user);
});
}
В документации я увидел метод с именем addArrayValue()
, который добавляет элемент в массив.Теперь я не уверен, собираюсь ли я использовать это вместо обычных манипуляций с массивами, как в моем примере.
Какую цель имеет этот метод addArrayValue()
, и я могу, например, удалить элементы из keys
через keys.pop()
или он ограничен только добавлением новых элементов, как предполагает документация?