Hyperledger Fabric NodeJS Chaincode - 检索调用者标识符
Hyperledger Fabric NodeJS Chaincode - Retrieve caller identifier
我正在尝试开发一个链代码,它必须创建和存储汽车对象并允许转移汽车的所有权。
调用"createCar"时,我想将车主设置为提交交易的identifier/certificate。
我也在开发一种允许转让汽车所有权的方法。在此方法中,我想插入一个条件,如果当前用户(调用交易的人)不是汽车的当前所有者,则会引发异常。
//arg[0]=identifier - arg[1]=model
async createCar(stub, args) {
console.info('============= START : Create Car ===========');
if (args.length != 2) {
throw new Error('Incorrect number of arguments. Expecting 2');
}
console.info("Creator",stub.getCreator());
var car = {
model: arg[1],
owner: //.... - Here store the id of who invoked the transaction
};
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
console.info('============= END : Create Car ===========');
return true;
}
//arg[0]=identfier - arg[1] = New owner
async transferCar(stub,args){
let carAsBytes = await stub.getState(arg[0]);
let car = JSON.parse(carAsBytes);
if (car.owner != /*... - new user that invoked the transaction*/) {
throw new Error('Invalid owner');
}
car.owner = arg[1];
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
return true;
}
有人知道我能做什么吗?
您可以使用 getCreator(),它将 return 链码调用提交者的身份对象。
我正在尝试开发一个链代码,它必须创建和存储汽车对象并允许转移汽车的所有权。
调用"createCar"时,我想将车主设置为提交交易的identifier/certificate。
我也在开发一种允许转让汽车所有权的方法。在此方法中,我想插入一个条件,如果当前用户(调用交易的人)不是汽车的当前所有者,则会引发异常。
//arg[0]=identifier - arg[1]=model
async createCar(stub, args) {
console.info('============= START : Create Car ===========');
if (args.length != 2) {
throw new Error('Incorrect number of arguments. Expecting 2');
}
console.info("Creator",stub.getCreator());
var car = {
model: arg[1],
owner: //.... - Here store the id of who invoked the transaction
};
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
console.info('============= END : Create Car ===========');
return true;
}
//arg[0]=identfier - arg[1] = New owner
async transferCar(stub,args){
let carAsBytes = await stub.getState(arg[0]);
let car = JSON.parse(carAsBytes);
if (car.owner != /*... - new user that invoked the transaction*/) {
throw new Error('Invalid owner');
}
car.owner = arg[1];
await stub.putState(args[0], Buffer.from(JSON.stringify(car)));
return true;
}
有人知道我能做什么吗?
您可以使用 getCreator(),它将 return 链码调用提交者的身份对象。