@d8x/perpetuals-sdk 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/abi/central-park/IPerpetualManager.json +142 -12
  2. package/dist/cjs/abi/testnet/IPerpetualManager.json +130 -0
  3. package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +130 -0
  4. package/dist/cjs/config/defaultConfig.json +0 -11
  5. package/dist/cjs/d8XMath.d.ts +16 -0
  6. package/dist/cjs/d8XMath.js +46 -1
  7. package/dist/cjs/d8XMath.js.map +1 -1
  8. package/dist/cjs/marketData.d.ts +1 -1
  9. package/dist/cjs/marketData.js +25 -27
  10. package/dist/cjs/marketData.js.map +1 -1
  11. package/dist/cjs/nodeSDKTypes.d.ts +3 -1
  12. package/dist/cjs/nodeSDKTypes.js +1 -1
  13. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  14. package/dist/cjs/perpetualDataHandler.d.ts +22 -1
  15. package/dist/cjs/perpetualDataHandler.js +155 -156
  16. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  17. package/dist/cjs/version.d.ts +1 -1
  18. package/dist/cjs/version.js +1 -1
  19. package/dist/esm/abi/central-park/IPerpetualManager.json +142 -12
  20. package/dist/esm/abi/testnet/IPerpetualManager.json +130 -0
  21. package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +130 -0
  22. package/dist/esm/config/defaultConfig.json +0 -11
  23. package/dist/esm/d8XMath.d.ts +16 -0
  24. package/dist/esm/d8XMath.js +43 -0
  25. package/dist/esm/d8XMath.js.map +1 -1
  26. package/dist/esm/marketData.d.ts +1 -1
  27. package/dist/esm/marketData.js +25 -27
  28. package/dist/esm/marketData.js.map +1 -1
  29. package/dist/esm/nodeSDKTypes.d.ts +3 -1
  30. package/dist/esm/nodeSDKTypes.js +1 -1
  31. package/dist/esm/nodeSDKTypes.js.map +1 -1
  32. package/dist/esm/perpetualDataHandler.d.ts +22 -1
  33. package/dist/esm/perpetualDataHandler.js +155 -156
  34. package/dist/esm/perpetualDataHandler.js.map +1 -1
  35. package/dist/esm/version.d.ts +1 -1
  36. package/dist/esm/version.js +1 -1
  37. package/doc/d8x-perpetuals-sdk.md +163 -6
  38. package/doc/orderReferrerTool.md +13 -0
  39. package/package.json +1 -1
@@ -901,7 +901,7 @@
901
901
  },
902
902
  {
903
903
  "internalType": "uint64",
904
- "name": "submittedBlock",
904
+ "name": "submittedTimestamp",
905
905
  "type": "uint64"
906
906
  }
907
907
  ],
@@ -1837,7 +1837,7 @@
1837
1837
  },
1838
1838
  {
1839
1839
  "internalType": "uint64",
1840
- "name": "submittedBlock",
1840
+ "name": "submittedTimestamp",
1841
1841
  "type": "uint64"
1842
1842
  }
1843
1843
  ],
@@ -2079,7 +2079,7 @@
2079
2079
  },
2080
2080
  {
2081
2081
  "internalType": "uint64",
2082
- "name": "submittedBlock",
2082
+ "name": "submittedTimestamp",
2083
2083
  "type": "uint64"
2084
2084
  }
2085
2085
  ],
@@ -2188,7 +2188,7 @@
2188
2188
  },
2189
2189
  {
2190
2190
  "internalType": "uint64",
2191
- "name": "submittedBlock",
2191
+ "name": "submittedTimestamp",
2192
2192
  "type": "uint64"
2193
2193
  }
2194
2194
  ],
@@ -2279,7 +2279,7 @@
2279
2279
  },
2280
2280
  {
2281
2281
  "internalType": "uint64",
2282
- "name": "submittedBlock",
2282
+ "name": "submittedTimestamp",
2283
2283
  "type": "uint64"
2284
2284
  }
2285
2285
  ],
@@ -2965,7 +2965,7 @@
2965
2965
  },
2966
2966
  {
2967
2967
  "internalType": "uint64",
2968
- "name": "iLastOpenBlock",
2968
+ "name": "iLastOpenTimestamp",
2969
2969
  "type": "uint64"
2970
2970
  },
2971
2971
  {
@@ -3129,7 +3129,7 @@
3129
3129
  },
3130
3130
  {
3131
3131
  "internalType": "uint64",
3132
- "name": "iLastSettlementPriceUpdateBlock",
3132
+ "name": "iLastSettlementPriceUpdateTimestamp",
3133
3133
  "type": "uint64"
3134
3134
  },
3135
3135
  {
@@ -3321,7 +3321,7 @@
3321
3321
  },
3322
3322
  {
3323
3323
  "internalType": "uint64",
3324
- "name": "iLastPriceJumpBlock",
3324
+ "name": "iLastPriceJumpTimestamp",
3325
3325
  "type": "uint64"
3326
3326
  },
3327
3327
  {
@@ -3411,6 +3411,97 @@
3411
3411
  "stateMutability": "view",
3412
3412
  "type": "function"
3413
3413
  },
3414
+ {
3415
+ "inputs": [
3416
+ {
3417
+ "internalType": "uint24[]",
3418
+ "name": "perpetualIds",
3419
+ "type": "uint24[]"
3420
+ }
3421
+ ],
3422
+ "name": "getPerpetualStaticInfo",
3423
+ "outputs": [
3424
+ {
3425
+ "components": [
3426
+ {
3427
+ "internalType": "uint24",
3428
+ "name": "id",
3429
+ "type": "uint24"
3430
+ },
3431
+ {
3432
+ "internalType": "address",
3433
+ "name": "limitOrderBookAddr",
3434
+ "type": "address"
3435
+ },
3436
+ {
3437
+ "internalType": "int128",
3438
+ "name": "fInitialMarginRate",
3439
+ "type": "int128"
3440
+ },
3441
+ {
3442
+ "internalType": "int128",
3443
+ "name": "fMaintenanceMarginRate",
3444
+ "type": "int128"
3445
+ },
3446
+ {
3447
+ "internalType": "uint8",
3448
+ "name": "perpetualState",
3449
+ "type": "uint8"
3450
+ },
3451
+ {
3452
+ "internalType": "enum AMMPerpLogic.CollateralCurrency",
3453
+ "name": "collCurrencyType",
3454
+ "type": "uint8"
3455
+ },
3456
+ {
3457
+ "internalType": "bytes4",
3458
+ "name": "S2BaseCCY",
3459
+ "type": "bytes4"
3460
+ },
3461
+ {
3462
+ "internalType": "bytes4",
3463
+ "name": "S2QuoteCCY",
3464
+ "type": "bytes4"
3465
+ },
3466
+ {
3467
+ "internalType": "bytes4",
3468
+ "name": "S3BaseCCY",
3469
+ "type": "bytes4"
3470
+ },
3471
+ {
3472
+ "internalType": "bytes4",
3473
+ "name": "S3QuoteCCY",
3474
+ "type": "bytes4"
3475
+ },
3476
+ {
3477
+ "internalType": "int128",
3478
+ "name": "fLotSizeBC",
3479
+ "type": "int128"
3480
+ },
3481
+ {
3482
+ "internalType": "int128",
3483
+ "name": "fReferralRebateCC",
3484
+ "type": "int128"
3485
+ },
3486
+ {
3487
+ "internalType": "bytes32[]",
3488
+ "name": "priceIds",
3489
+ "type": "bytes32[]"
3490
+ },
3491
+ {
3492
+ "internalType": "bool[]",
3493
+ "name": "isPyth",
3494
+ "type": "bool[]"
3495
+ }
3496
+ ],
3497
+ "internalType": "struct IPerpetualGetter.PerpetualStaticInfo[]",
3498
+ "name": "",
3499
+ "type": "tuple[]"
3500
+ }
3501
+ ],
3502
+ "stateMutability": "view",
3503
+ "type": "function"
3504
+ },
3414
3505
  {
3415
3506
  "inputs": [],
3416
3507
  "name": "getPoolCount",
@@ -3443,6 +3534,45 @@
3443
3534
  "stateMutability": "view",
3444
3535
  "type": "function"
3445
3536
  },
3537
+ {
3538
+ "inputs": [
3539
+ {
3540
+ "internalType": "uint8",
3541
+ "name": "_poolFromIdx",
3542
+ "type": "uint8"
3543
+ },
3544
+ {
3545
+ "internalType": "uint8",
3546
+ "name": "_poolToIdx",
3547
+ "type": "uint8"
3548
+ }
3549
+ ],
3550
+ "name": "getPoolStaticInfo",
3551
+ "outputs": [
3552
+ {
3553
+ "internalType": "uint24[][]",
3554
+ "name": "",
3555
+ "type": "uint24[][]"
3556
+ },
3557
+ {
3558
+ "internalType": "address[]",
3559
+ "name": "",
3560
+ "type": "address[]"
3561
+ },
3562
+ {
3563
+ "internalType": "address[]",
3564
+ "name": "",
3565
+ "type": "address[]"
3566
+ },
3567
+ {
3568
+ "internalType": "address",
3569
+ "name": "_oracleFactoryAddress",
3570
+ "type": "address"
3571
+ }
3572
+ ],
3573
+ "stateMutability": "view",
3574
+ "type": "function"
3575
+ },
3446
3576
  {
3447
3577
  "inputs": [
3448
3578
  {
@@ -4015,7 +4145,7 @@
4015
4145
  },
4016
4146
  {
4017
4147
  "internalType": "uint64",
4018
- "name": "submittedBlock",
4148
+ "name": "submittedTimestamp",
4019
4149
  "type": "uint64"
4020
4150
  }
4021
4151
  ],
@@ -4182,7 +4312,7 @@
4182
4312
  },
4183
4313
  {
4184
4314
  "internalType": "uint64",
4185
- "name": "submittedBlock",
4315
+ "name": "submittedTimestamp",
4186
4316
  "type": "uint64"
4187
4317
  }
4188
4318
  ],
@@ -4817,7 +4947,7 @@
4817
4947
  },
4818
4948
  {
4819
4949
  "internalType": "uint64",
4820
- "name": "submittedBlock",
4950
+ "name": "submittedTimestamp",
4821
4951
  "type": "uint64"
4822
4952
  }
4823
4953
  ],
@@ -5008,7 +5138,7 @@
5008
5138
  },
5009
5139
  {
5010
5140
  "internalType": "uint256",
5011
- "name": "_blockAge",
5141
+ "name": "_maxAcceptableFeedAge",
5012
5142
  "type": "uint256"
5013
5143
  }
5014
5144
  ],
@@ -3411,6 +3411,97 @@
3411
3411
  "stateMutability": "view",
3412
3412
  "type": "function"
3413
3413
  },
3414
+ {
3415
+ "inputs": [
3416
+ {
3417
+ "internalType": "uint24[]",
3418
+ "name": "perpetualIds",
3419
+ "type": "uint24[]"
3420
+ }
3421
+ ],
3422
+ "name": "getPerpetualStaticInfo",
3423
+ "outputs": [
3424
+ {
3425
+ "components": [
3426
+ {
3427
+ "internalType": "uint24",
3428
+ "name": "id",
3429
+ "type": "uint24"
3430
+ },
3431
+ {
3432
+ "internalType": "address",
3433
+ "name": "limitOrderBookAddr",
3434
+ "type": "address"
3435
+ },
3436
+ {
3437
+ "internalType": "int128",
3438
+ "name": "fInitialMarginRate",
3439
+ "type": "int128"
3440
+ },
3441
+ {
3442
+ "internalType": "int128",
3443
+ "name": "fMaintenanceMarginRate",
3444
+ "type": "int128"
3445
+ },
3446
+ {
3447
+ "internalType": "uint8",
3448
+ "name": "perpetualState",
3449
+ "type": "uint8"
3450
+ },
3451
+ {
3452
+ "internalType": "enum AMMPerpLogic.CollateralCurrency",
3453
+ "name": "collCurrencyType",
3454
+ "type": "uint8"
3455
+ },
3456
+ {
3457
+ "internalType": "bytes4",
3458
+ "name": "S2BaseCCY",
3459
+ "type": "bytes4"
3460
+ },
3461
+ {
3462
+ "internalType": "bytes4",
3463
+ "name": "S2QuoteCCY",
3464
+ "type": "bytes4"
3465
+ },
3466
+ {
3467
+ "internalType": "bytes4",
3468
+ "name": "S3BaseCCY",
3469
+ "type": "bytes4"
3470
+ },
3471
+ {
3472
+ "internalType": "bytes4",
3473
+ "name": "S3QuoteCCY",
3474
+ "type": "bytes4"
3475
+ },
3476
+ {
3477
+ "internalType": "int128",
3478
+ "name": "fLotSizeBC",
3479
+ "type": "int128"
3480
+ },
3481
+ {
3482
+ "internalType": "int128",
3483
+ "name": "fReferralRebateCC",
3484
+ "type": "int128"
3485
+ },
3486
+ {
3487
+ "internalType": "bytes32[]",
3488
+ "name": "priceIds",
3489
+ "type": "bytes32[]"
3490
+ },
3491
+ {
3492
+ "internalType": "bool[]",
3493
+ "name": "isPyth",
3494
+ "type": "bool[]"
3495
+ }
3496
+ ],
3497
+ "internalType": "struct IPerpetualGetter.PerpetualStaticInfo[]",
3498
+ "name": "",
3499
+ "type": "tuple[]"
3500
+ }
3501
+ ],
3502
+ "stateMutability": "view",
3503
+ "type": "function"
3504
+ },
3414
3505
  {
3415
3506
  "inputs": [],
3416
3507
  "name": "getPoolCount",
@@ -3443,6 +3534,45 @@
3443
3534
  "stateMutability": "view",
3444
3535
  "type": "function"
3445
3536
  },
3537
+ {
3538
+ "inputs": [
3539
+ {
3540
+ "internalType": "uint8",
3541
+ "name": "_poolFromIdx",
3542
+ "type": "uint8"
3543
+ },
3544
+ {
3545
+ "internalType": "uint8",
3546
+ "name": "_poolToIdx",
3547
+ "type": "uint8"
3548
+ }
3549
+ ],
3550
+ "name": "getPoolStaticInfo",
3551
+ "outputs": [
3552
+ {
3553
+ "internalType": "uint24[][]",
3554
+ "name": "",
3555
+ "type": "uint24[][]"
3556
+ },
3557
+ {
3558
+ "internalType": "address[]",
3559
+ "name": "",
3560
+ "type": "address[]"
3561
+ },
3562
+ {
3563
+ "internalType": "address[]",
3564
+ "name": "",
3565
+ "type": "address[]"
3566
+ },
3567
+ {
3568
+ "internalType": "address",
3569
+ "name": "_oracleFactoryAddress",
3570
+ "type": "address"
3571
+ }
3572
+ ],
3573
+ "stateMutability": "view",
3574
+ "type": "function"
3575
+ },
3446
3576
  {
3447
3577
  "inputs": [
3448
3578
  {
@@ -3411,6 +3411,97 @@
3411
3411
  "stateMutability": "view",
3412
3412
  "type": "function"
3413
3413
  },
3414
+ {
3415
+ "inputs": [
3416
+ {
3417
+ "internalType": "uint24[]",
3418
+ "name": "perpetualIds",
3419
+ "type": "uint24[]"
3420
+ }
3421
+ ],
3422
+ "name": "getPerpetualStaticInfo",
3423
+ "outputs": [
3424
+ {
3425
+ "components": [
3426
+ {
3427
+ "internalType": "uint24",
3428
+ "name": "id",
3429
+ "type": "uint24"
3430
+ },
3431
+ {
3432
+ "internalType": "address",
3433
+ "name": "limitOrderBookAddr",
3434
+ "type": "address"
3435
+ },
3436
+ {
3437
+ "internalType": "int128",
3438
+ "name": "fInitialMarginRate",
3439
+ "type": "int128"
3440
+ },
3441
+ {
3442
+ "internalType": "int128",
3443
+ "name": "fMaintenanceMarginRate",
3444
+ "type": "int128"
3445
+ },
3446
+ {
3447
+ "internalType": "uint8",
3448
+ "name": "perpetualState",
3449
+ "type": "uint8"
3450
+ },
3451
+ {
3452
+ "internalType": "enum AMMPerpLogic.CollateralCurrency",
3453
+ "name": "collCurrencyType",
3454
+ "type": "uint8"
3455
+ },
3456
+ {
3457
+ "internalType": "bytes4",
3458
+ "name": "S2BaseCCY",
3459
+ "type": "bytes4"
3460
+ },
3461
+ {
3462
+ "internalType": "bytes4",
3463
+ "name": "S2QuoteCCY",
3464
+ "type": "bytes4"
3465
+ },
3466
+ {
3467
+ "internalType": "bytes4",
3468
+ "name": "S3BaseCCY",
3469
+ "type": "bytes4"
3470
+ },
3471
+ {
3472
+ "internalType": "bytes4",
3473
+ "name": "S3QuoteCCY",
3474
+ "type": "bytes4"
3475
+ },
3476
+ {
3477
+ "internalType": "int128",
3478
+ "name": "fLotSizeBC",
3479
+ "type": "int128"
3480
+ },
3481
+ {
3482
+ "internalType": "int128",
3483
+ "name": "fReferralRebateCC",
3484
+ "type": "int128"
3485
+ },
3486
+ {
3487
+ "internalType": "bytes32[]",
3488
+ "name": "priceIds",
3489
+ "type": "bytes32[]"
3490
+ },
3491
+ {
3492
+ "internalType": "bool[]",
3493
+ "name": "isPyth",
3494
+ "type": "bool[]"
3495
+ }
3496
+ ],
3497
+ "internalType": "struct IPerpetualGetter.PerpetualStaticInfo[]",
3498
+ "name": "",
3499
+ "type": "tuple[]"
3500
+ }
3501
+ ],
3502
+ "stateMutability": "view",
3503
+ "type": "function"
3504
+ },
3414
3505
  {
3415
3506
  "inputs": [],
3416
3507
  "name": "getPoolCount",
@@ -3443,6 +3534,45 @@
3443
3534
  "stateMutability": "view",
3444
3535
  "type": "function"
3445
3536
  },
3537
+ {
3538
+ "inputs": [
3539
+ {
3540
+ "internalType": "uint8",
3541
+ "name": "_poolFromIdx",
3542
+ "type": "uint8"
3543
+ },
3544
+ {
3545
+ "internalType": "uint8",
3546
+ "name": "_poolToIdx",
3547
+ "type": "uint8"
3548
+ }
3549
+ ],
3550
+ "name": "getPoolStaticInfo",
3551
+ "outputs": [
3552
+ {
3553
+ "internalType": "uint24[][]",
3554
+ "name": "",
3555
+ "type": "uint24[][]"
3556
+ },
3557
+ {
3558
+ "internalType": "address[]",
3559
+ "name": "",
3560
+ "type": "address[]"
3561
+ },
3562
+ {
3563
+ "internalType": "address[]",
3564
+ "name": "",
3565
+ "type": "address[]"
3566
+ },
3567
+ {
3568
+ "internalType": "address",
3569
+ "name": "_oracleFactoryAddress",
3570
+ "type": "address"
3571
+ }
3572
+ ],
3573
+ "stateMutability": "view",
3574
+ "type": "function"
3575
+ },
3446
3576
  {
3447
3577
  "inputs": [
3448
3578
  {
@@ -22,17 +22,6 @@
22
22
  "limitOrderBookFactoryABILocation": "",
23
23
  "limitOrderBookABILocation": ""
24
24
  },
25
- {
26
- "name": "central-park",
27
- "chainId": 80001,
28
- "version": 5.1,
29
- "proxyAddr": "0x4F1C7EE9E881Cc735f39Ca36c649ba9E930B4E4e",
30
- "nodeURL": "https://polygon-mumbai.blockpi.network/v1/rpc/public",
31
- "priceFeedConfigNetwork": "testnet",
32
- "proxyABILocation": "central-park/IPerpetualManager.json",
33
- "limitOrderBookFactoryABILocation": "central-park/LimitOrderBookFactory.json",
34
- "limitOrderBookABILocation": "central-park/LimitOrderBook.json"
35
- },
36
25
  {
37
26
  "name": "zkevmTestnet",
38
27
  "chainId": 1442,
@@ -33,6 +33,22 @@ export declare function floatToABK64x64(x: number): BigNumber;
33
33
  * @returns {BigNumber} x as a BigNumber in Dec18 format
34
34
  */
35
35
  export declare function floatToDec18(x: number): BigNumber;
36
+ /**
37
+ * 9 are rounded up regardless of precision, e.g, 0.1899000 at precision 6 results in 3
38
+ * @param x
39
+ * @param precision
40
+ * @returns number of decimals
41
+ */
42
+ export declare function countDecimalsOf(x: number, precision: number): number;
43
+ /**
44
+ * Round a number to a given lot size and return a string formated
45
+ * to for this lot-size
46
+ * @param x number to round
47
+ * @param lot lot size (could be 'uneven' such as 0.019999999 instead of 0.02)
48
+ * @param precision optional lot size precision (e.g. if 0.01999 should be 0.02 then precision could be 5)
49
+ * @returns formated number string
50
+ */
51
+ export declare function roundToLotString(x: number, lot: number, precision?: number): string;
36
52
  /**
37
53
  *
38
54
  * @param {BigNumber} x
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDepositAmountForLvgTrade = exports.getNewPositionLeverage = exports.getMaxSignedPositionSize = exports.getMarginRequiredForLeveragedTrade = exports.calculateLiquidationPriceCollateralQuote = exports.calculateLiquidationPriceCollateralQuanto = exports.calculateLiquidationPriceCollateralBase = exports.div64x64 = exports.mul64x64 = exports.floatToDec18 = exports.floatToABK64x64 = exports.dec18ToFloat = exports.decNToFloat = exports.ABK64x64ToFloat = void 0;
3
+ exports.getDepositAmountForLvgTrade = exports.getNewPositionLeverage = exports.getMaxSignedPositionSize = exports.getMarginRequiredForLeveragedTrade = exports.calculateLiquidationPriceCollateralQuote = exports.calculateLiquidationPriceCollateralQuanto = exports.calculateLiquidationPriceCollateralBase = exports.div64x64 = exports.mul64x64 = exports.roundToLotString = exports.countDecimalsOf = exports.floatToDec18 = exports.floatToABK64x64 = exports.dec18ToFloat = exports.decNToFloat = exports.ABK64x64ToFloat = void 0;
4
4
  var ethers_1 = require("ethers");
5
5
  var nodeSDKTypes_1 = require("./nodeSDKTypes");
6
6
  /**
@@ -107,6 +107,51 @@ function floatToDec18(x) {
107
107
  return xIntBig.add(xDec).mul(sg);
108
108
  }
109
109
  exports.floatToDec18 = floatToDec18;
110
+ /**
111
+ * 9 are rounded up regardless of precision, e.g, 0.1899000 at precision 6 results in 3
112
+ * @param x
113
+ * @param precision
114
+ * @returns number of decimals
115
+ */
116
+ function countDecimalsOf(x, precision) {
117
+ var decimalPart = x - Math.floor(x);
118
+ if (decimalPart == 0) {
119
+ return 0;
120
+ }
121
+ var decimalPartStr = decimalPart.toFixed(precision);
122
+ // remove trailing zeros
123
+ var c = decimalPartStr.charAt(decimalPartStr.length - 1);
124
+ while (c == "0") {
125
+ decimalPartStr = decimalPartStr.substring(0, decimalPartStr.length - 1);
126
+ c = decimalPartStr.charAt(decimalPartStr.length - 1);
127
+ }
128
+ // remove trailing 9
129
+ c = decimalPartStr.charAt(decimalPartStr.length - 1);
130
+ while (c == "9") {
131
+ decimalPartStr = decimalPartStr.substring(0, decimalPartStr.length - 1);
132
+ c = decimalPartStr.charAt(decimalPartStr.length - 1);
133
+ }
134
+ return decimalPartStr.length > 2 ? decimalPartStr.length - 2 : 0;
135
+ }
136
+ exports.countDecimalsOf = countDecimalsOf;
137
+ /**
138
+ * Round a number to a given lot size and return a string formated
139
+ * to for this lot-size
140
+ * @param x number to round
141
+ * @param lot lot size (could be 'uneven' such as 0.019999999 instead of 0.02)
142
+ * @param precision optional lot size precision (e.g. if 0.01999 should be 0.02 then precision could be 5)
143
+ * @returns formated number string
144
+ */
145
+ function roundToLotString(x, lot, precision) {
146
+ if (precision === void 0) { precision = 7; }
147
+ // round lot to precision
148
+ var lotRounded = Math.round(lot / Math.pow(10, -precision)) * Math.pow(10, -precision);
149
+ var v = Math.round(x / lotRounded) * lotRounded;
150
+ // number of digits of rounded lot
151
+ var numDig = countDecimalsOf(lotRounded, precision);
152
+ return v.toFixed(numDig);
153
+ }
154
+ exports.roundToLotString = roundToLotString;
110
155
  /**
111
156
  *
112
157
  * @param {BigNumber} x
@@ -1 +1 @@
1
- {"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}