
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@waves/bignumber
Advanced tools
A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic.
The library is the single JavaScript file bignumber.umd.js (or minified, bignumber.umd.min.js).
Browser:
<script src='path/to/bignumber.js'></script>
$ npm install @waves/bignumber
const { BigNumber } = require('@waves/bignumber');
ES6 module:
import { BigNumber } from "@waves/bignumber"
AMD loader libraries such as requireJS:
require(['@waves/bignumber'], function(BigNumber) {
// Use BigNumber here in local scope. No global BigNumber.
});
let x = new BigNumber(123.4567);
let y = BigNumber('123456.7e-3');
let z = new BigNumber(x);
x.eq(y) && y.eq(z) && x.eq(z); // true
To get the string value of a BigNumber use toString()
or toFixed()
. Using toFixed()
prevents exponential notation being returned, no matter how large or small the value.
let x = new BigNumber('1111222233334444555566');
x.toString(); // "1111222233334444555566"
x.toFixed(); // "1111222233334444555566"
Клонирует объект
const some = new BigNumber(1);
const clone = some.clone();
Выполняет сложение
const bigNum = new BigNumber('100');
const result = bigNum.add('50'); // with method toFixed '150'
Вычитание
const bigNum = new BigNumber('100');
const result = bigNum.sub('50'); // with method toFixed '50'
Умножение
const bigNum = new BigNumber('100');
const result = bigNum.mul(2); // with method toFixed '200'
Деление
const bigNum = new BigNumber('100');
const result = bigNum.div(2); // with method toFixed '50'
Возведение в степень
const bigNum = new BigNumber('100');
const result = bigNum.pow(2); // with method toFixed '10000'
Квадратный корень
const bigNum = new BigNumber('100');
const result = bigNum.sqrt(); // with method toFixed '10'
Модуль
const bigNum = new BigNumber('-100');
const result = bigNum.abs(); // with method toFixed 100
Остаток от деления
const bigNum = new BigNumber('100');
const result = bigNum.mod(10); // with method toFixed '0'
Округляет. Принимает количество знаков после запятой после округлени и режим округления см тут: http://mikemcl.github.io/bignumber.js/#constructor-properties
const bigNum = new BigNumber('100');
const result = bigNum.roundTo(); //
Равенство
const bigNum = new BigNumber('100');
const result = bigNum.eq(100); // true
Меньше
const bigNum = new BigNumber('100');
const result = bigNum.lt(); //
Больше
const bigNum = new BigNumber('100');
const result = bigNum.gt(); //
Меньше или равно
const bigNum = new BigNumber('100');
const result = bigNum.lte(); //
Больше или равно
const bigNum = new BigNumber('100');
const result = bigNum.gte(); //
Проверяет на NaN
const bigNum = new BigNumber('100');
const result = bigNum.isNaN(); // false
Проверяет на Infinity (положительный и отрицательный)
const bigNum = new BigNumber('100');
const result = bigNum.isFinite(); //
Проверяет на равенство нулю
const bigNum = new BigNumber('100');
const result = bigNum.isZero(); // false
Больше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isPositive(); // true
Меньше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isNegative(); // false
Проверяет целое ли число
const bigNum = new BigNumber('100');
const result = bigNum.isInt(); //
Получаем количество занков после запятой у числа
const bigNum = new BigNumber('100');
const result = bigNum.getDecimalsCount(); // 0
Четное
const bigNum = new BigNumber('100');
const result = bigNum.isEven(); // true
Не чётное
const bigNum = new BigNumber('100');
const result = bigNum.isOdd(); // false
Переводим число в байты со знаком (8 байт). Работает только с целыми числами.
const bigNum = new BigNumber('100');
const result = bigNum.toBytes();
Выводим число в строковом эквиваленте c с учётом настроек форматирования. Опционально принимает количество знаков округления, режим округления (как в roundTo) и настройки формата вывода.
const bigNum = new BigNumber('1000000.12312');
bigNum.toFormat(); // 1,000,000.12312
bigNum.toFormat(2); // 1,000,000.12
bigNum.toFormat(2); // 1,000,000.12
bigNum.toFormat(2, 0); // 1,000,000.13
bigNum.toFormat(2, 0, { groupSeparator: ' ' }); // 1 000 000.13
Выводим число в строковом эквиваленте. Опционально принимает количество знаков округления и режим округления (как в roundTo)
const bigNum = new BigNumber('100');
const result = bigNum.toFixed(); //
Приводит к числу
const bigNum = new BigNumber('100');
const result = bigNum.toNumber(); //
Выводит знаковое число из байт. Работает только с 8 байтами.
const some = BigNumber.fromBytes(Uint8Array.from([1,2,3,4,5,6,7,8]));
Принимает любое количество аргументов, выбирает наибольшее число из аргументов
BigNumber.max(1, '2', new BigNumber(4)); // with method toFixed '4'
Принимает любое количество аргументов, выбирает наименьшее число из аргументов
BigNumber.min(1, '2', new BigNumber(4)); // with method toFixed '1'
Принимает любое количество аргументов, складывает числа
BigNumber.min(1, '2', new BigNumber(4)); //with method toFixed '7'
FAQs
Waves Library for work with Bignumber in javascript
The npm package @waves/bignumber receives a total of 1,796 weekly downloads. As such, @waves/bignumber popularity was classified as popular.
We found that @waves/bignumber demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 16 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.