1 | // Copyright 2017-2022 @polkadot/util authors & contributors
|
2 | // SPDX-License-Identifier: Apache-2.0
|
3 | import { assert } from "../assert.js";
|
4 | import { BN } from "./bn.js";
|
5 | export 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 |
|
29 | export 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 |
|
46 | export function bnMin(...items) {
|
47 | return find(items, BN.min);
|
48 | } |
\ | No newline at end of file |