ChainCode::GetHex

The hex representation used by GetHex(), ToString(), and FromHex() is unusual, since it shows bytes of the base_blob in reverse order. For example, a 4-byte blob {0x12, 0x34, 0x56, 0x78} is represented as "78563412" instead of the more typical "12345678" representation that would be shown in a hex editor or used by typical byte-array / hex conversion functions like python's bytes.hex() and bytes.fromhex().

Synopsis

Declared in <uint256.h>

std::string
GetHex() const;

Description

The nice thing about the reverse-byte representation, even though it is unusual, is that if a blob contains an arithmetic number in little endian format (with least significant bytes first, and most significant bytes last), the GetHex() output will match the way the number would normally be written in base-16 (with most significant digits first and least significant digits last).

This means, for example, that ArithToUint256(num).GetHex() can be used to display an arith_uint256 num value as a number, because ArithToUint256() converts the number to a blob in little-endian format, so the arith_uint256 class doesn't need to have its own number parsing and formatting functions.

@{

Returns the blob as a hex string in reverse byte order.

Return Value

The hex representation of the blob.