调用操作成功后如何获取txid | 超级账本结构 2.x

Gur*_*ath 1 go hyperledger-fabric hyperledger-fabric-sdk-js hyperledger-chaincode

在 HLF 1.4 中,我可以在成功调用操作后获取事务 id。但在 HLF 2.x 中我没有得到 txid。我可以在状态数据库(couch db)中看到我提交给hlf的数据。那为什么我没有得到 txid。这是链码中的最后一行,

return shim.Success(nil)
Run Code Online (Sandbox Code Playgroud)

使用 Node sdk 提交交易。

result = await contract.submitTransaction(fcn, args);
console.log("Result:", result.toString())
Run Code Online (Sandbox Code Playgroud)

上面的行给出了空。帮我获取 tx id。

小智 7

函数submitTransaction只有1 行代码

return this.createTransaction(name).submit(...args);
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用此代码代替您的代码:

const transaction = contract.createTransaction(fcn);
const result = await transaction.submit(...args);
console.log("Result:", result.toString())
console.log("TxID:", transaction.getTransactionId());
Run Code Online (Sandbox Code Playgroud)