1 | import Decimal from 'decimal.js';
|
2 | import { factory } from '../../utils/factory.js';
|
3 | var name = 'BigNumber';
|
4 | var dependencies = ['?on', 'config'];
|
5 | export var createBigNumberClass = factory(name, dependencies, (_ref) => {
|
6 | var {
|
7 | on,
|
8 | config
|
9 | } = _ref;
|
10 | var EUCLID = 9;
|
11 |
|
12 | var BigNumber = Decimal.clone({
|
13 | precision: config.precision,
|
14 | modulo: EUCLID
|
15 | });
|
16 | |
17 |
|
18 |
|
19 |
|
20 | BigNumber.prototype.type = 'BigNumber';
|
21 | BigNumber.prototype.isBigNumber = true;
|
22 | |
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | BigNumber.prototype.toJSON = function () {
|
30 | return {
|
31 | mathjs: 'BigNumber',
|
32 | value: this.toString()
|
33 | };
|
34 | };
|
35 | |
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 | BigNumber.fromJSON = function (json) {
|
44 | return new BigNumber(json.value);
|
45 | };
|
46 |
|
47 | if (on) {
|
48 |
|
49 | on('config', function (curr, prev) {
|
50 | if (curr.precision !== prev.precision) {
|
51 | BigNumber.config({
|
52 | precision: curr.precision
|
53 | });
|
54 | }
|
55 | });
|
56 | }
|
57 |
|
58 | return BigNumber;
|
59 | }, {
|
60 | isClass: true
|
61 | }); |
\ | No newline at end of file |