diff --git a/src/Formatters/HexFormatter.php b/src/Formatters/HexFormatter.php new file mode 100644 index 0000000..37a7468 --- /dev/null +++ b/src/Formatters/HexFormatter.php @@ -0,0 +1,41 @@ + + * + * @author Peter Lai + * @license MIT + */ + +namespace Web3\Formatters; + +use InvalidArgumentException; +use Web3\Utils; +use Web3\Formatters\IFormatter; +use Web3\Formatters\Integer as IntegerFormatter; + +class HexFormatter implements IFormatter +{ + /** + * format + * + * @param mixed $value + * @return string + */ + public static function format($value) + { + $value = Utils::toString($value); + $value = mb_strtolower($value); + + if (Utils::isZeroPrefixed($value)) { + return $value; + } elseif (Utils::isHex($value)) { + $value = '0x' . $value; + } else { + $value = Utils::toHex($value, true); + } + return $value; + } +} \ No newline at end of file