我正在Hyperledger Composer中设计一个供应链应用程序。我有一个毒品资产,看起来像这样:
asset Drug identified by DrugId {
o String DrugId
o String DrugName
o Integer qty
--> Trader presentOwner
}我有一个制造商对批发商的交易:
transaction M2W {
--> Drug drug
o Integer qtyreq
--> Wholesaler newOwner
}如何确保当我进行交易时,制造商的资产以减少的数量保留,并以所需数量为批发商创建新资产?
发布于 2020-05-24 21:42:21
将两个链码命名为制造商和批发商,并确保这两个链码在同一通道上。
制造商链码由以下命名的方法组成:
item(ctx, DrugName, current quantity, quantity_to_be_supplied_to_wholesaler){
current quantity= current quantity-quantity_to_be_supplied_to_wholesaler;
drug={
DrugName
current quantity,
quantity_to_be_supplied_to_wholesaler,
}使用以下命令将这些详细信息保存到账本中
ctx.stub.putstate(drugID, Buffer.from(JSON.stringify(drug)));查询链码上存储的药品列表,必须实现query_drug。
在批发商链码上,您可以使用以下命令检索药品记录的详细信息
const response = await ctx.stub.invokeChaincode('Manufacturer', ['queryDrugs', drugId ], 'channel_name');然后你可以用来检索药物记录
var r1=response.payload; //getting payload from response
var s1=r1.toString(); // converting payload buffer to string.
var s=JSON.parse(s1); //convert string to JSON object.
var qty=s['quantity_to_be_supplied_to_wholesaler'];然后,您可以通过以下方式将数量添加到批发商记录:
current quantity=current quantity+qty;然后,您可以使用以下命令将此数量添加到账本中
ctx.stub.putState(ID,qty);
看起来有点乱七八糟,但希望能有所帮助。
https://stackoverflow.com/questions/61832516
复制相似问题