parent
4eaebd48aa
commit
4fd5d1ab67
@ -284,9 +284,7 @@ class Utils
|
|||||||
|
|
||||||
if (is_array($bn)) {
|
if (is_array($bn)) {
|
||||||
// fraction number
|
// fraction number
|
||||||
list($whole, $fraction, $negative1) = $bn;
|
list($whole, $fraction, $fractionLength, $negative1) = $bn;
|
||||||
|
|
||||||
$fractionLength = strlen($fraction->toString());
|
|
||||||
|
|
||||||
if ($fractionLength > strlen(self::UNITS[$unit])) {
|
if ($fractionLength > strlen(self::UNITS[$unit])) {
|
||||||
throw new InvalidArgumentException('toWei fraction part is out of limit.');
|
throw new InvalidArgumentException('toWei fraction part is out of limit.');
|
||||||
@ -504,6 +502,7 @@ class Utils
|
|||||||
return [
|
return [
|
||||||
new BigNumber($whole),
|
new BigNumber($whole),
|
||||||
new BigNumber($fraction),
|
new BigNumber($fraction),
|
||||||
|
strlen($comps[1]),
|
||||||
isset($negative1) ? $negative1 : false
|
isset($negative1) ? $negative1 : false
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
|
@ -275,12 +275,24 @@ class UtilsTest extends TestCase
|
|||||||
$bn = Utils::toWei('1.69', 'ether');
|
$bn = Utils::toWei('1.69', 'ether');
|
||||||
$this->assertEquals($bn->toString(), '1690000000000000000');
|
$this->assertEquals($bn->toString(), '1690000000000000000');
|
||||||
|
|
||||||
|
$bn = Utils::toWei('0.01', 'ether');
|
||||||
|
$this->assertEquals($bn->toString(), '10000000000000000');
|
||||||
|
|
||||||
|
$bn = Utils::toWei('0.002', 'ether');
|
||||||
|
$this->assertEquals($bn->toString(), '2000000000000000');
|
||||||
|
|
||||||
$bn = Utils::toWei(0.1, 'ether');
|
$bn = Utils::toWei(0.1, 'ether');
|
||||||
$this->assertEquals($bn->toString(), '100000000000000000');
|
$this->assertEquals($bn->toString(), '100000000000000000');
|
||||||
|
|
||||||
$bn = Utils::toWei(1.69, 'ether');
|
$bn = Utils::toWei(1.69, 'ether');
|
||||||
$this->assertEquals($bn->toString(), '1690000000000000000');
|
$this->assertEquals($bn->toString(), '1690000000000000000');
|
||||||
|
|
||||||
|
$bn = Utils::toWei(0.01, 'ether');
|
||||||
|
$this->assertEquals($bn->toString(), '10000000000000000');
|
||||||
|
|
||||||
|
$bn = Utils::toWei(0.002, 'ether');
|
||||||
|
$this->assertEquals($bn->toString(), '2000000000000000');
|
||||||
|
|
||||||
$bn = Utils::toWei('-0.1', 'ether');
|
$bn = Utils::toWei('-0.1', 'ether');
|
||||||
$this->assertEquals($bn->toString(), '-100000000000000000');
|
$this->assertEquals($bn->toString(), '-100000000000000000');
|
||||||
|
|
||||||
@ -541,39 +553,45 @@ class UtilsTest extends TestCase
|
|||||||
$this->assertEquals($bn->toString(), '-1');
|
$this->assertEquals($bn->toString(), '-1');
|
||||||
|
|
||||||
$bn = Utils::toBn('-0.1');
|
$bn = Utils::toBn('-0.1');
|
||||||
$this->assertEquals(count($bn), 3);
|
$this->assertEquals(count($bn), 4);
|
||||||
$this->assertEquals($bn[0]->toString(), '0');
|
$this->assertEquals($bn[0]->toString(), '0');
|
||||||
$this->assertEquals($bn[1]->toString(), '1');
|
$this->assertEquals($bn[1]->toString(), '1');
|
||||||
$this->assertEquals($bn[2]->toString(), '-1');
|
$this->assertEquals($bn[2], 1);
|
||||||
|
$this->assertEquals($bn[3]->toString(), '-1');
|
||||||
|
|
||||||
$bn = Utils::toBn(-0.1);
|
$bn = Utils::toBn(-0.1);
|
||||||
$this->assertEquals(count($bn), 3);
|
$this->assertEquals(count($bn), 4);
|
||||||
$this->assertEquals($bn[0]->toString(), '0');
|
$this->assertEquals($bn[0]->toString(), '0');
|
||||||
$this->assertEquals($bn[1]->toString(), '1');
|
$this->assertEquals($bn[1]->toString(), '1');
|
||||||
$this->assertEquals($bn[2]->toString(), '-1');
|
$this->assertEquals($bn[2], 1);
|
||||||
|
$this->assertEquals($bn[3]->toString(), '-1');
|
||||||
|
|
||||||
$bn = Utils::toBn('0.1');
|
$bn = Utils::toBn('0.1');
|
||||||
$this->assertEquals(count($bn), 3);
|
$this->assertEquals(count($bn), 4);
|
||||||
$this->assertEquals($bn[0]->toString(), '0');
|
$this->assertEquals($bn[0]->toString(), '0');
|
||||||
$this->assertEquals($bn[1]->toString(), '1');
|
$this->assertEquals($bn[1]->toString(), '1');
|
||||||
$this->assertEquals($bn[2], false);
|
$this->assertEquals($bn[2], 1);
|
||||||
|
$this->assertEquals($bn[3], false);
|
||||||
|
|
||||||
$bn = Utils::toBn('-1.69');
|
$bn = Utils::toBn('-1.69');
|
||||||
$this->assertEquals(count($bn), 3);
|
$this->assertEquals(count($bn), 4);
|
||||||
$this->assertEquals($bn[0]->toString(), '1');
|
$this->assertEquals($bn[0]->toString(), '1');
|
||||||
$this->assertEquals($bn[1]->toString(), '69');
|
$this->assertEquals($bn[1]->toString(), '69');
|
||||||
$this->assertEquals($bn[2]->toString(), '-1');
|
$this->assertEquals($bn[2], 2);
|
||||||
|
$this->assertEquals($bn[3]->toString(), '-1');
|
||||||
|
|
||||||
$bn = Utils::toBn(-1.69);
|
$bn = Utils::toBn(-1.69);
|
||||||
$this->assertEquals($bn[0]->toString(), '1');
|
$this->assertEquals($bn[0]->toString(), '1');
|
||||||
$this->assertEquals($bn[1]->toString(), '69');
|
$this->assertEquals($bn[1]->toString(), '69');
|
||||||
$this->assertEquals($bn[2]->toString(), '-1');
|
$this->assertEquals($bn[2], 2);
|
||||||
|
$this->assertEquals($bn[3]->toString(), '-1');
|
||||||
|
|
||||||
$bn = Utils::toBn('1.69');
|
$bn = Utils::toBn('1.69');
|
||||||
$this->assertEquals(count($bn), 3);
|
$this->assertEquals(count($bn), 4);
|
||||||
$this->assertEquals($bn[0]->toString(), '1');
|
$this->assertEquals($bn[0]->toString(), '1');
|
||||||
$this->assertEquals($bn[1]->toString(), '69');
|
$this->assertEquals($bn[1]->toString(), '69');
|
||||||
$this->assertEquals($bn[2], false);
|
$this->assertEquals($bn[2], 2);
|
||||||
|
$this->assertEquals($bn[3], false);
|
||||||
|
|
||||||
$bn = Utils::toBn(new BigNumber(1));
|
$bn = Utils::toBn(new BigNumber(1));
|
||||||
$this->assertEquals($bn->toString(), '1');
|
$this->assertEquals($bn->toString(), '1');
|
||||||
|
Loading…
Reference in New Issue
Block a user