Version: 23.1.0

This documentation is for Taquito version 23.1.0 and is no longer being updated. Some information may be outdated. View the latest version.

Getting the Operation Hash without Injecting

Written by Davis Sawali

This section serves as a guide to get the operation hash without injecting it into the blockchain.

Getting the Operation Hash

There might come a time when you, the developer, would like to grab the operation hash without injecting it into the blockchain.

To accomplish that, 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]));