@Override
  public OperationResult execute(final MessageFrame frame, final EVM evm) {
    Bytes versionedHashIndexParam = frame.popStackItem();
    if (frame.getVersionedHashes().isPresent()) {
      List<VersionedHash> versionedHashes = frame.getVersionedHashes().get();
      Bytes trimmedIndex = versionedHashIndexParam.trimLeadingZeros();
      if (trimmedIndex.size() > 4) {
        // won't fit in an int
        frame.pushStackItem(Bytes.EMPTY);
        return new OperationResult(3, null);
      }
      int versionedHashIndex = trimmedIndex.toInt();
      if (versionedHashIndex < versionedHashes.size() && versionedHashIndex >= 0) {
        VersionedHash requested = versionedHashes.get(versionedHashIndex);
        frame.pushStackItem(requested.toBytes());
      } else {
        frame.pushStackItem(Bytes.EMPTY);
      }
    } else {
      frame.pushStackItem(Bytes.EMPTY);
    }
    return new OperationResult(3, null);
  }
Instantiates a new BlobHash operation.

@param gasCalculator the gas calculator
evm/src/main/java/org/hyperledger/besu/evm/operation/BlobHashOperation.java