code: func opcodeHash256(op *parsedOpcode, vm *Engine) error {
  	buf, err := vm.dstack.PopByteArray()
  	if err != nil {
  		return err
  	}
  
  	vm.dstack.PushByteArray(chainhash.DoubleHashB(buf))
  	return nil
  }
docs: // opcodeHash256 treats the top item of the data stack as raw bytes and replaces
  // it with sha256(sha256(data)).
  //
  // Stack transformation: [... x1] -> [... sha256(sha256(x1))]