Return 0 when number is empty string.

This commit is contained in:
sc0Vu 2018-03-05 16:52:03 +08:00
parent d9b2dc3c6f
commit 9aacaffff8
2 changed files with 8 additions and 2 deletions

View File

@ -470,7 +470,6 @@ class Utils
} else { } else {
$bn = new BigNumber($number); $bn = new BigNumber($number);
} }
if (isset($negative1)) { if (isset($negative1)) {
$bn = $bn->multiply($negative1); $bn = $bn->multiply($negative1);
} }
@ -485,12 +484,16 @@ class Utils
if (self::isZeroPrefixed($number) || preg_match('/[a-f]+/', $number) === 1) { if (self::isZeroPrefixed($number) || preg_match('/[a-f]+/', $number) === 1) {
$number = self::stripZero($number); $number = self::stripZero($number);
$bn = new BigNumber($number, 16); $bn = new BigNumber($number, 16);
} elseif (empty($number)) {
$bn = new BigNumber(0);
} else {
throw new InvalidArgumentException('toBn number must be valid hex string.');
} }
if (isset($negative1)) { if (isset($negative1)) {
$bn = $bn->multiply($negative1); $bn = $bn->multiply($negative1);
} }
} else { } else {
throw new InvalidArgumentException('toBn number must be BigNumber, numeric string or int.'); throw new InvalidArgumentException('toBn number must be BigNumber, string or int.');
} }
return $bn; return $bn;
} }

View File

@ -469,6 +469,9 @@ class UtilsTest extends TestCase
*/ */
public function testToBn() public function testToBn()
{ {
$bn = Utils::toBn('');
$this->assertEquals($bn->toString(), '0');
$bn = Utils::toBn(11); $bn = Utils::toBn(11);
$this->assertEquals($bn->toString(), '11'); $this->assertEquals($bn->toString(), '11');