toBn.
This commit is contained in:
parent
ab90423aab
commit
10a9a66987
@ -397,4 +397,30 @@ class Utils
|
|||||||
}
|
}
|
||||||
return $json;
|
return $json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* toBn
|
||||||
|
* Change number or number string to bignumber.
|
||||||
|
*
|
||||||
|
* @param BigNumber|string|int $number
|
||||||
|
* @return \phpseclib\Math\BigInteger
|
||||||
|
*/
|
||||||
|
public static function toBn($number)
|
||||||
|
{
|
||||||
|
if (is_int($number)) {
|
||||||
|
$bn = new BigNumber($number);
|
||||||
|
} elseif (is_string($number)) {
|
||||||
|
$number = mb_strtolower($number);
|
||||||
|
|
||||||
|
if (self::isZeroPrefixed($number)) {
|
||||||
|
$number = self::stripZero($number);
|
||||||
|
$bn = new BigNumber($number, 16);
|
||||||
|
} else {
|
||||||
|
$bn = new BigNumber($number);
|
||||||
|
}
|
||||||
|
} elseif (!$number instanceof BigNumber){
|
||||||
|
throw new InvalidArgumentException('toBn number must be BigNumber, string or int.');
|
||||||
|
}
|
||||||
|
return $bn;
|
||||||
|
}
|
||||||
}
|
}
|
@ -4,6 +4,7 @@ namespace Test\Unit;
|
|||||||
|
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
use Test\TestCase;
|
use Test\TestCase;
|
||||||
|
use phpseclib\Math\BigInteger;
|
||||||
use Web3\Utils;
|
use Web3\Utils;
|
||||||
|
|
||||||
class UtilsTest extends TestCase
|
class UtilsTest extends TestCase
|
||||||
@ -386,4 +387,24 @@ class UtilsTest extends TestCase
|
|||||||
|
|
||||||
$this->assertFalse($isHex);
|
$this->assertFalse($isHex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testToBn
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testToBn()
|
||||||
|
{
|
||||||
|
$bn = Utils::toBn(11);
|
||||||
|
|
||||||
|
$this->assertEquals($bn->toString(), '11');
|
||||||
|
|
||||||
|
$bn = Utils::toBn('0x12');
|
||||||
|
|
||||||
|
$this->assertEquals($bn->toString(), '18');
|
||||||
|
|
||||||
|
$bn = Utils::toBn(0x12);
|
||||||
|
|
||||||
|
$this->assertEquals($bn->toString(), '18');
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user