From 7c1755cc9c2b5a676c23e150a8a506d451c2da41 Mon Sep 17 00:00:00 2001 From: sc0Vu Date: Mon, 25 Dec 2017 09:54:58 +0800 Subject: [PATCH] Change toWei. --- src/Utils.php | 4 +++- test/unit/UtilsTest.php | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Utils.php b/src/Utils.php index 387656f..2627fcc 100644 --- a/src/Utils.php +++ b/src/Utils.php @@ -172,8 +172,10 @@ class Utils } elseif (is_string($number)) { if (self::isZeroPrefixed($number)) { $number = self::stripZero($number); + $bn = new BigNumber($number, 16); + } else { + $bn = new BigNumber($number); } - $bn = new BigNumber($number, 16); } elseif (!$number instanceof BigNumber){ throw new InvalidArgumentException('toWei number must be BigNumber, string or int.'); } diff --git a/test/unit/UtilsTest.php b/test/unit/UtilsTest.php index 3b49dde..7e1ea6c 100644 --- a/test/unit/UtilsTest.php +++ b/test/unit/UtilsTest.php @@ -122,14 +122,18 @@ class UtilsTest extends TestCase $this->assertEquals($bn->toString(), '1'); - $bn = Utils::toWei('1', 'wei'); + $bn = Utils::toWei('18', 'wei'); - $this->assertEquals($bn->toString(), '1'); + $this->assertEquals($bn->toString(), '18'); $bn = Utils::toWei(1, 'wei'); $this->assertEquals($bn->toString(), '1'); + $bn = Utils::toWei(0x11, 'wei'); + + $this->assertEquals($bn->toString(), '17'); + $bn = Utils::toWei('1', 'ether'); $this->assertEquals($bn->toString(), '1000000000000000000'); @@ -151,16 +155,21 @@ class UtilsTest extends TestCase $this->assertEquals($bnq->toString(), '0'); $this->assertEquals($bnr->toString(), '1'); - list($bnq, $bnr) = Utils::toEther('1', 'wei'); + list($bnq, $bnr) = Utils::toEther('18', 'wei'); $this->assertEquals($bnq->toString(), '0'); - $this->assertEquals($bnr->toString(), '1'); + $this->assertEquals($bnr->toString(), '18'); list($bnq, $bnr) = Utils::toEther(1, 'wei'); $this->assertEquals($bnq->toString(), '0'); $this->assertEquals($bnr->toString(), '1'); + list($bnq, $bnr) = Utils::toEther(0x11, 'wei'); + + $this->assertEquals($bnq->toString(), '0'); + $this->assertEquals($bnr->toString(), '17'); + list($bnq, $bnr) = Utils::toEther('1', 'kether'); $this->assertEquals($bnq->toString(), '1000');