mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-22 09:35:10 +00:00
[FAB-14532] Remove LL FabCar sample
Remove the Fabric v2.0 version of the low-level FabCar sample. We should not be advertising how to use the low-level APIs at this point. The low-level samples are still available for Fabric v1.4 to show the difference between the low-level and high-level APIs. Signed-off-by: Simon Stone <sstone1@uk.ibm.com> Change-Id: I87b7edf477064b79f449f618f48902b9495e7d4a
This commit is contained in:
parent
583ff8f6d4
commit
597d1508e1
2 changed files with 0 additions and 210 deletions
|
|
@ -1,193 +0,0 @@
|
||||||
/*
|
|
||||||
# Copyright IBM Corp. All Rights Reserved.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
const shim = require('fabric-shim');
|
|
||||||
const util = require('util');
|
|
||||||
|
|
||||||
let Chaincode = class {
|
|
||||||
|
|
||||||
// The Init method is called when the Smart Contract 'fabcar' is instantiated by the blockchain network
|
|
||||||
// Best practice is to have any Ledger initialization in separate function -- see initLedger()
|
|
||||||
async Init(stub) {
|
|
||||||
console.info('=========== Instantiated fabcar chaincode ===========');
|
|
||||||
return shim.success();
|
|
||||||
}
|
|
||||||
|
|
||||||
// The Invoke method is called as a result of an application request to run the Smart Contract
|
|
||||||
// 'fabcar'. The calling application program has also specified the particular smart contract
|
|
||||||
// function to be called, with arguments
|
|
||||||
async Invoke(stub) {
|
|
||||||
let ret = stub.getFunctionAndParameters();
|
|
||||||
console.info(ret);
|
|
||||||
|
|
||||||
let method = this[ret.fcn];
|
|
||||||
if (!method) {
|
|
||||||
console.error('no function of name:' + ret.fcn + ' found');
|
|
||||||
throw new Error('Received unknown function ' + ret.fcn + ' invocation');
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
let payload = await method(stub, ret.params);
|
|
||||||
return shim.success(payload);
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
return shim.error(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async queryCar(stub, args) {
|
|
||||||
if (args.length != 1) {
|
|
||||||
throw new Error('Incorrect number of arguments. Expecting CarNumber ex: CAR01');
|
|
||||||
}
|
|
||||||
let carNumber = args[0];
|
|
||||||
|
|
||||||
let carAsBytes = await stub.getState(carNumber); //get the car from chaincode state
|
|
||||||
if (!carAsBytes || carAsBytes.toString().length <= 0) {
|
|
||||||
throw new Error(carNumber + ' does not exist: ');
|
|
||||||
}
|
|
||||||
console.log(carAsBytes.toString());
|
|
||||||
return carAsBytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
async initLedger(stub, args) {
|
|
||||||
console.info('============= START : Initialize Ledger ===========');
|
|
||||||
let cars = [];
|
|
||||||
cars.push({
|
|
||||||
make: 'Toyota',
|
|
||||||
model: 'Prius',
|
|
||||||
color: 'blue',
|
|
||||||
owner: 'Tomoko'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Ford',
|
|
||||||
model: 'Mustang',
|
|
||||||
color: 'red',
|
|
||||||
owner: 'Brad'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Hyundai',
|
|
||||||
model: 'Tucson',
|
|
||||||
color: 'green',
|
|
||||||
owner: 'Jin Soo'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Volkswagen',
|
|
||||||
model: 'Passat',
|
|
||||||
color: 'yellow',
|
|
||||||
owner: 'Max'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Tesla',
|
|
||||||
model: 'S',
|
|
||||||
color: 'black',
|
|
||||||
owner: 'Adriana'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Peugeot',
|
|
||||||
model: '205',
|
|
||||||
color: 'purple',
|
|
||||||
owner: 'Michel'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Chery',
|
|
||||||
model: 'S22L',
|
|
||||||
color: 'white',
|
|
||||||
owner: 'Aarav'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Fiat',
|
|
||||||
model: 'Punto',
|
|
||||||
color: 'violet',
|
|
||||||
owner: 'Pari'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Tata',
|
|
||||||
model: 'Nano',
|
|
||||||
color: 'indigo',
|
|
||||||
owner: 'Valeria'
|
|
||||||
});
|
|
||||||
cars.push({
|
|
||||||
make: 'Holden',
|
|
||||||
model: 'Barina',
|
|
||||||
color: 'brown',
|
|
||||||
owner: 'Shotaro'
|
|
||||||
});
|
|
||||||
|
|
||||||
for (let i = 0; i < cars.length; i++) {
|
|
||||||
cars[i].docType = 'car';
|
|
||||||
await stub.putState('CAR' + i, Buffer.from(JSON.stringify(cars[i])));
|
|
||||||
console.info('Added <--> ', cars[i]);
|
|
||||||
}
|
|
||||||
console.info('============= END : Initialize Ledger ===========');
|
|
||||||
}
|
|
||||||
|
|
||||||
async createCar(stub, args) {
|
|
||||||
console.info('============= START : Create Car ===========');
|
|
||||||
if (args.length != 5) {
|
|
||||||
throw new Error('Incorrect number of arguments. Expecting 5');
|
|
||||||
}
|
|
||||||
|
|
||||||
var car = {
|
|
||||||
docType: 'car',
|
|
||||||
make: args[1],
|
|
||||||
model: args[2],
|
|
||||||
color: args[3],
|
|
||||||
owner: args[4]
|
|
||||||
};
|
|
||||||
|
|
||||||
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
|
|
||||||
console.info('============= END : Create Car ===========');
|
|
||||||
}
|
|
||||||
|
|
||||||
async queryAllCars(stub, args) {
|
|
||||||
|
|
||||||
let startKey = 'CAR0';
|
|
||||||
let endKey = 'CAR999';
|
|
||||||
|
|
||||||
let iterator = await stub.getStateByRange(startKey, endKey);
|
|
||||||
|
|
||||||
let allResults = [];
|
|
||||||
while (true) {
|
|
||||||
let res = await iterator.next();
|
|
||||||
|
|
||||||
if (res.value && res.value.value.toString()) {
|
|
||||||
let jsonRes = {};
|
|
||||||
console.log(res.value.value.toString('utf8'));
|
|
||||||
|
|
||||||
jsonRes.Key = res.value.key;
|
|
||||||
try {
|
|
||||||
jsonRes.Record = JSON.parse(res.value.value.toString('utf8'));
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
jsonRes.Record = res.value.value.toString('utf8');
|
|
||||||
}
|
|
||||||
allResults.push(jsonRes);
|
|
||||||
}
|
|
||||||
if (res.done) {
|
|
||||||
console.log('end of data');
|
|
||||||
await iterator.close();
|
|
||||||
console.info(allResults);
|
|
||||||
return Buffer.from(JSON.stringify(allResults));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async changeCarOwner(stub, args) {
|
|
||||||
console.info('============= START : changeCarOwner ===========');
|
|
||||||
if (args.length != 2) {
|
|
||||||
throw new Error('Incorrect number of arguments. Expecting 2');
|
|
||||||
}
|
|
||||||
|
|
||||||
let carAsBytes = await stub.getState(args[0]);
|
|
||||||
let car = JSON.parse(carAsBytes);
|
|
||||||
car.owner = args[1];
|
|
||||||
|
|
||||||
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
|
|
||||||
console.info('============= END : changeCarOwner ===========');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
shim.start(new Chaincode());
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"name": "fabcar",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "fabcar chaincode implemented in node.js",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.4.0",
|
|
||||||
"npm": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"start": "node fabcar.js"
|
|
||||||
},
|
|
||||||
"engine-strict": true,
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"fabric-shim": "unstable"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue