在Composer中更新资产

时间:2018-07-27 11:13:49

标签: hyperledger-composer

namespace com.biz

participant User identified by name {

o String name
}

participant Bank identified by name {
o String name                                             
o Integer points

--> Document document optional

}

asset Document identified by docname {
 o String docname
 o String doctype
 o String hash
 o String from
 o String to

}

transaction UploadDoc {

--> Document document

 }

transaction ShareDoc {

--> Document document
--> Bank bank
}

 transaction SetupDemo {
 }
Script File :
/**
*
* @param {com.biz.UploadDoc} uploadDoc
* @transaction
*/

async function uploadDoc(uploadDoc) {
 uploadDoc.document.docname = 'BC1.jpg';
 uploadDoc.document.doctype = 'BC';
 uploadDoc.document.hash = '123456';
uploadDoc.document.from = 'Bank_1';
 uploadDoc.document.to = 'User_1';

 const ar = await getAssetRegistry('com.biz.Document');
 await ar.update(uploadDoc.document);


              }
  /**
  *
  * @param {com.biz.ShareDoc} shareDoc
  * @transaction
   */

async function shareDoc(shareDoc) {
shareDoc.document.docname = 'BC1.jpg';
shareDoc.document.doctype = 'BC';
 shareDoc.document.hash = '12346';
 shareDoc.document.from = 'User_1';
shareDoc.document.to = shareDoc.bank.name;



  const dr = await getAssetRegistry('com.biz.Document');
  await dr.update(shareDoc.document);

   }
   /**
  *
  * @param {com.biz.SetupDemo} setupDemo
  * @transaction
  */

  async function setupDemo(setupDemo) {
  const factory = getFactory();
  const NS = 'com.biz';

  const user = factory.newResource(NS,'User','User_1')
  user.name='User_1';

  const banks = [
  factory.newResource(NS,'Bank','Bank_1'),
  factory.newResource(NS,'Bank','Bank_2')
  ];

  banks[0].name = 'Bank_1';
  banks[1].name = 'Bank_2';
  banks[0].points = 100;
  banks[1].points = 100;


  const userRegistry = await getParticipantRegistry(NS + '.User');
  await userRegistry.addAll([user]);

   const bankRegistry = await getParticipantRegistry(NS + '.Bank');
   await bankRegistry.addAll(banks);
   const documents = [
   factory.newResource(NS, 'Document', 'Pa60.jpg'),
   factory.newResource(NS, 'Document', 'Pa80.jpg')
   ];

  documents[0].docname = 'Pa60.jpg';
  documents[0].doctype = 'DrivingLicense';
  documents[0].hash = '12345';
  documents[0].from ='Bank_1';
  documents[0].to = 'User_1';

  documents[1].docname = 'Pa80.jpg';
  documents[1].doctype = 'DrivingLicense';
  documents[1].hash = '123456';
  documents[1].from ='Bank_1';
  documents[1].to = 'User_1';


   const docRegistry = await getAssetRegistry(NS + '.Document')
   await docRegistry.addAll(documents);
    }

问题:首先,我运行事务SetupDemo。运行正常。

接下来,我运行事务UploadDoc。运行良好。 Pa60.jpg更新为BC1.jpg。在Plyground中提供的用于提交交易的ID:Pa60.jpg

接下来,我要运行ShareDoc事务。如果我在提交事务时将ID设为BC1.jpg,则出现“找不到ID为“ BC1.jpg”的对象”错误。

请帮助我解决问题。

0 个答案:

没有答案