Version: next
This documentation is for an unreleased version of Taquito. Features and APIs may change before the final release. View the latest stable version.
Getting the Operation Hash without Injecting
Written by Davis Sawali
There might come a time when you would like to retrieve the operation hash without injecting it into the blockchain.
To accomplish this, we have a utility function called encodeOpHash() in the @taquito/utils package. This function takes in the signed operation bytes in the form of a string, and outputs the operation hash of said transaction without injecting it.
Usage example
Here is a simple example on getting the operation hash of a transaction (transfer) operation:
// import { TezosToolkit } from '@taquito/taquito';
// import { encodeOpHash } from '@taquito/utils';
// import { LocalForger } from '@taquito/local-forging';
// const Tezos = new TezosToolkit('RPC_ENDPOINT');
const preparedTransfer = await Tezos.prepare.transaction({
amount: 1,
to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'
});
// convert prepared operation into a forgeable object
const forgeParams = await Tezos.prepare.toForge(preparedTransfer);
// forge the transaction operation
const forger = new LocalForger();
const forgedBytes = await forger.forge(forgeParams);
// sign the transaction operation
const signedBytes = await Tezos.signer.sign(forgedBytes);
// get the operation hash using the encodeOpHash() function
const opHash = encodeOpHash(signedBytes.sbytes, new Uint8Array([3]));