Как добавить две функции транзакции в файл скрипта? - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок в hyperledger. В моем файле model.cto есть две функции процессора транзакций, одна из которых предназначена для передачи автомобиля от производителя в автосалон, а другая - для передачи автомобиля из автосалона владельцу. model.cto файл указан ниже,

namespace org.manufacturer.network

asset Car identified by carID {
  o String carID
  o String name
  o String chasisNumber
  --> Showroom showroom
  --> Owner owner
}

participant Showroom identified by showroomID {
  o String showroomID
  o String name
}

participant Owner identified by ownerID {
  o String ownerID
  o String firstName
  o String lastName
}

transaction Allocate {
  --> Car  car
  --> Showroom newShowroom
}

transaction Purchase {
  --> Showroom showroom
  --> Owner newOwner
}

Итак, я хочу добавить две функции в мой файл script.js, чтобы я мог выполнять свои транзакции. Мой script.js файл указан ниже

/**
 * New script file
 * @param {org.manufacturer.network.Allocate} allocate - allocating the car from manufacturer to showroom
 * @param {org.manufacturer.network.Purchase} purchase - purchase the car by owner from showroom
 * @transaction
 */

async function transferCar(allocate){
  allocate.car.showroom = allocate.newShowroom;
  let assetRegistry = await getAssetRegistry('org.manufacturer.network.Car');
  await assetRegistry.update(allocate.car);
}

async function purchaseCar(purchase){
  purchase.car.owner = purchase.newOwner;
  let assetRegistry = await getAssetRegistry('org.manufacturer.network.Car');
  await assetRegistry.update(purchase.car);
}

Но файл сценария выдает ошибку как Transaction processing function transferCar must have 1 function argument of type transaction.

Как добавить несколько функций процессора транзакций в один файл script.js? Это возможно, или мне нужно создать два script.js файла для обработки транзакций?

1 Ответ

2 голосов
/ 03 апреля 2019

Это неправильный способ определения двух транзакций в файле script.js.

Ваш файл script.js должен выглядеть следующим образом:

/**
 * New script file
 * @param {org.manufacturer.network.Allocate} allocate - allocating the car from manufacturer to showroom
 * @transaction
 */

async function transferCar(allocate){
  allocate.car.showroom = allocate.newShowroom;
  let assetRegistry = await getAssetRegistry('org.manufacturer.network.Car');
  await assetRegistry.update(allocate.car);
}

/**
 * New script file
 * @param {org.manufacturer.network.Purchase} purchase - purchase the car by owner from showroom
 * @transaction
 */

async function purchaseCar(purchase){
  purchase.car.owner = purchase.newOwner;
  let assetRegistry = await getAssetRegistry('org.manufacturer.network.Car');
  await assetRegistry.update(purchase.car);
}

Вот как вы можете это сделатьдобавьте более одной транзакции в файл script.js.

Надеюсь, это вам поможет.

...