У меня есть сценарий, в котором мне нужно вызвать какую-то другую (скажем, запрос) функцию из функции цепного кода (скажем, обновление).Имеет ли Hyperledger Fabric какой-либо интерфейс для этогоНапример:
...
async query(stub, args) {
}
async update(stub, args) {
if(condition) {
call query();
}
}
...
Я попытался ответить на следующий пост, но он не сработал. как вызвать функцию цепного кода из себя, чтобы записать под транзакции .Хотя с помощью invokeChaincode () я могу вызывать функцию из другого цепного кода.
Заранее спасибо.
Код цепочки:
let Chaincode = class {
async Init(stub) {
return shim.success();
}
async Invoke(stub) {
let ret = stub.getFunctionAndParameters();
console.info(ret);
let method = this[ret.fcn];
if (!method) {
throw new Error('Received unknown function ' + ret.fcn + ' invocation');
}
try {
let payload = await method(stub, ret.params);
return shim.success(payload);
} catch (err) {
return shim.error(err);
}
}
async init(stub, args) {
if (args.length != 1) {
throw new Error('Invalid args. Expects no args');
}
}
async query(stub, args) {
...
}
async dummy(stub, args) {
return Buffer.from('Hello');
}
async update(stub, args) {
...
let resp = await dummy(); // gives error
//let resp = await stub.invokeChaincode('cc2', ['dummy'] ); // working
console.log(resp)
...
}
};
shim.start(new Chaincode());