我正在建立一个网络,允许“医院”将其公用密钥和数据哈希添加到“患者”资产中的阵列中,但是当我测试时,它给了我
错误:找不到任何要执行的交易功能
我正在使用在线作曲家游乐场,这是我第一次建立网络。我认为在这个网络中,我需要参与者,资产和交易,我将患者设置为拥有多家医院的资产,而PatientHospital
是一个参与者,具有数据哈希和公钥,一个交易以及一个可以通过该事务调用,我不知道哪里出了错,但是当我测试时,它在错误以下返回了我:
“ TypeError:无法读取未定义的属性'状态'”
和
“错误:找不到用于交易> 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);
});
}
答案 0 :(得分:0)
据我了解,您需要更新一个Patient
资产,其新值为PatientHospital
参与者。
logic.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);
});
}