UNPKG

1.09 kBJavaScriptView Raw
1// Copyright 2017-2022 @polkadot/util authors & contributors
2// SPDX-License-Identifier: Apache-2.0
3import { assert } from "../assert.js";
4import { BN } from "./bn.js";
5export function find(items, cmp) {
6 assert(items.length >= 1, 'Must provide one or more BN arguments');
7 let result = items[0];
8
9 for (let i = 1; i < items.length; i++) {
10 result = cmp(result, items[i]);
11 }
12
13 return result;
14}
15/**
16 * @name bnMax
17 * @summary Finds and returns the highest value in an array of BNs.
18 * @example
19 * <BR>
20 *
21 * ```javascript
22 * import BN from 'bn.js';
23 * import { bnMax } from '@polkadot/util';
24 *
25 * bnMax([new BN(1), new BN(3), new BN(2)]).toString(); // => '3'
26 * ```
27 */
28
29export function bnMax(...items) {
30 return find(items, BN.max);
31}
32/**
33 * @name bnMin
34 * @summary Finds and returns the smallest value in an array of BNs.
35 * @example
36 * <BR>
37 *
38 * ```javascript
39 * import BN from 'bn.js';
40 * import { bnMin } from '@polkadot/util';
41 *
42 * bnMin([new BN(1), new BN(3), new BN(2)]).toString(); // => '1'
43 * ```
44 */
45
46export function bnMin(...items) {
47 return find(items, BN.min);
48}
\No newline at end of file