From e6f7a58d3c0e59f5c878f8e0d1920b11b363c972 Mon Sep 17 00:00:00 2001 From: sc0Vu Date: Tue, 9 Jan 2018 17:36:03 +0800 Subject: [PATCH] HexFormatter --- src/Formatters/HexFormatter.php | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/Formatters/HexFormatter.php 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