«Ошибка: не удалось найти функции для выполнения транзакции» - PullRequest
1 голос
/ 25 апреля 2019

Я строю сеть, которая позволяет «больницам» добавлять свои собственные открытые ключи и хэш-данные в массив в «терпеливом» активе, но при тестировании он дал мне

Ошибка: не удалось найти функции для выполнения транзакции

Я пользуюсь онлайн-площадкой для композиторов, я впервые строю сеть. Я думаю, что в этой сети мне нужны участник, актив и транзакция, я назначаю пациента в качестве актива с массивом больниц, а PatientHospital - это участник, у которого есть хэш данных и открытый ключ, транзакция и функция, которая вызывается в этой транзакции я не знаю, где что-то не так, но когда я тестирую, она возвращает мне ошибку ниже:

"Ошибка типа: невозможно прочитать свойство 'состояние' из неопределенного"

И

"Ошибка: не удалось найти функции для выполнения для транзакции> org.acme.patientchain.AddHospitalToPatient # bdd6ca0b-d0d9-4003-b6c3-05b818b3fc96"

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

Как мне решить эту проблему?

Мой файл model.cto:

namespace org.acme.patientchain
 asset Patient identified by pubKeyPatient {
  o String pubKeyPatient
  o PatientHospital[] hospitals
}

participant PatientHospital identified by pubKeyHospital {
  o String pubKeyHospital
  o String dataHash
 // --> Hospital hospital
}

transaction AddHospitalToPatient {
  --> Patient patient
  o PatientHospital newHospital

 }

функция в моем файле js:

function addHospitalToPatient(AddHospitalToPatient){
 AddHospitalToPatient.patient.hospitals.push(AddHospitalToPatient.newHospital);
  return getAssetRegistry('org.acme.patientchain.Patient')
  .then(function (assetRegistry) {
    return assetRegistry.update(patient.hospitals);
  });

}

1 Ответ

0 голосов
/ 25 апреля 2019

Насколько я понимаю, вам нужно обновить a Patient актив с новым значением PatientHospital участник .

логика.js изменения:

async function addHospitalToPatient(AddHospitalToPatient){
 AddHospitalToPatient.patient.hospitals.push(AddHospitalToPatient.newHospital);
  return getAssetRegistry('org.acme.patientchain.Patient')
  .then(function (assetRegistry) {
    return assetRegistry.update(AddHospitalToPatient.patient);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...