code: func (w *ledgerDriver) ledgerVersion() ([3]byte, error) {
  	// Send the request and wait for the response
  	reply, err := w.ledgerExchange(ledgerOpGetConfiguration, 0, 0, nil)
  	if err != nil {
  		return [3]byte{}, err
  	}
  	if len(reply) != 4 {
  		return [3]byte{}, errLedgerInvalidVersionReply
  	}
  	// Cache the version for future reference
  	var version [3]byte
  	copy(version[:], reply[1:])
  	return version, nil
  }
docs: // ledgerVersion retrieves the current version of the Ethereum wallet app running
  // on the Ledger wallet.
  //
  // The version retrieval protocol is defined as follows:
  //
  //   CLA | INS | P1 | P2 | Lc | Le
  //   ----+-----+----+----+----+---
  //    E0 | 06  | 00 | 00 | 00 | 04
  //
  // With no input data, and the output data being:
  //
  //   Description                                        | Length
  //   ---------------------------------------------------+--------
  //   Flags 01: arbitrary data signature enabled by user | 1 byte
  //   Application major version                          | 1 byte
  //   Application minor version                          | 1 byte
  //   Application patch version                          | 1 byte