@ellipticltd/aml-utils 0.16.28 → 0.16.29

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.
@@ -3,15 +3,11 @@ const V = require('validator');
3
3
  const _ = require('lodash');
4
4
  // Importing directly from dist to make sure we import the browser-friendly version of the library
5
5
  const addressValidator = require('multicoin-address-validator/dist/wallet-address-validator');
6
- const eip55 = require('eip55');
7
6
  const stellarBase = require('@stellar/stellar-base');
8
7
  const E = require('../errors/errors');
9
8
  const cryptoValidators = {
10
- // Here we use our regex to validate the shape of the address, and eip55 to validate the checksum
11
- isAddress(str) {
12
- if (typeof str !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(str))
13
- return false;
14
- return eip55.verify(str, true);
9
+ isEvmAddress(str) {
10
+ return typeof str === 'string' && /^0x[0-9a-fA-F]{40}$/.test(str);
15
11
  },
16
12
  isHexStrict(str) {
17
13
  return typeof str === 'string' && /^0x[0-9a-fA-F]*$/.test(str);
@@ -161,7 +157,7 @@ const validations = {
161
157
  },
162
158
  ethereum: {
163
159
  isAddress(str) {
164
- return cryptoValidators.isAddress(str);
160
+ return cryptoValidators.isEvmAddress(str);
165
161
  },
166
162
  isBlockHash(str) {
167
163
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -321,7 +317,7 @@ const validations = {
321
317
  },
322
318
  binanceSmartChain: {
323
319
  isAddress(str) {
324
- return cryptoValidators.isAddress(str);
320
+ return cryptoValidators.isEvmAddress(str);
325
321
  },
326
322
  isTxHash(str) {
327
323
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -329,7 +325,7 @@ const validations = {
329
325
  },
330
326
  polygon: {
331
327
  isAddress(str) {
332
- return cryptoValidators.isAddress(str);
328
+ return cryptoValidators.isEvmAddress(str);
333
329
  },
334
330
  isTxHash(str) {
335
331
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -345,7 +341,7 @@ const validations = {
345
341
  },
346
342
  optimism: {
347
343
  isAddress(str) {
348
- return cryptoValidators.isAddress(str);
344
+ return cryptoValidators.isEvmAddress(str);
349
345
  },
350
346
  isTxHash(str) {
351
347
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -353,7 +349,7 @@ const validations = {
353
349
  },
354
350
  avalanche: {
355
351
  isAddress(str) {
356
- return cryptoValidators.isAddress(str);
352
+ return cryptoValidators.isEvmAddress(str);
357
353
  },
358
354
  isTxHash(str) {
359
355
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -361,7 +357,7 @@ const validations = {
361
357
  },
362
358
  arbitrum: {
363
359
  isAddress(str) {
364
- return cryptoValidators.isAddress(str);
360
+ return cryptoValidators.isEvmAddress(str);
365
361
  },
366
362
  isTxHash(str) {
367
363
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -377,7 +373,7 @@ const validations = {
377
373
  },
378
374
  fantom: {
379
375
  isAddress(str) {
380
- return cryptoValidators.isAddress(str);
376
+ return cryptoValidators.isEvmAddress(str);
381
377
  },
382
378
  isTxHash(str) {
383
379
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -385,7 +381,7 @@ const validations = {
385
381
  },
386
382
  celo: {
387
383
  isAddress(str) {
388
- return cryptoValidators.isAddress(str);
384
+ return cryptoValidators.isEvmAddress(str);
389
385
  },
390
386
  isTxHash(str) {
391
387
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -393,7 +389,7 @@ const validations = {
393
389
  },
394
390
  ethereumClassic: {
395
391
  isAddress(str) {
396
- return cryptoValidators.isAddress(str);
392
+ return cryptoValidators.isEvmAddress(str);
397
393
  },
398
394
  isTxHash(str) {
399
395
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -433,7 +429,7 @@ const validations = {
433
429
  },
434
430
  gnosis: {
435
431
  isAddress(str) {
436
- return cryptoValidators.isAddress(str);
432
+ return cryptoValidators.isEvmAddress(str);
437
433
  },
438
434
  isTxHash(str) {
439
435
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -465,7 +461,7 @@ const validations = {
465
461
  },
466
462
  zksync: {
467
463
  isAddress(str) {
468
- return cryptoValidators.isAddress(str);
464
+ return cryptoValidators.isEvmAddress(str);
469
465
  },
470
466
  isTxHash(str) {
471
467
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -473,7 +469,7 @@ const validations = {
473
469
  },
474
470
  haqq: {
475
471
  isAddress(str) {
476
- return cryptoValidators.isAddress(str);
472
+ return cryptoValidators.isEvmAddress(str);
477
473
  },
478
474
  isTxHash(str) {
479
475
  return str.length === 64 && cryptoValidators.isHex(str);
@@ -481,7 +477,7 @@ const validations = {
481
477
  },
482
478
  base: {
483
479
  isAddress(str) {
484
- return cryptoValidators.isAddress(str);
480
+ return cryptoValidators.isEvmAddress(str);
485
481
  },
486
482
  isTxHash(str) {
487
483
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -489,7 +485,7 @@ const validations = {
489
485
  },
490
486
  corechain: {
491
487
  isAddress(str) {
492
- return cryptoValidators.isAddress(str);
488
+ return cryptoValidators.isEvmAddress(str);
493
489
  },
494
490
  isTxHash(str) {
495
491
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -497,7 +493,7 @@ const validations = {
497
493
  },
498
494
  worldchain: {
499
495
  isAddress(str) {
500
- return cryptoValidators.isAddress(str);
496
+ return cryptoValidators.isEvmAddress(str);
501
497
  },
502
498
  isTxHash(str) {
503
499
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -513,7 +509,7 @@ const validations = {
513
509
  },
514
510
  linea: {
515
511
  isAddress(str) {
516
- return cryptoValidators.isAddress(str);
512
+ return cryptoValidators.isEvmAddress(str);
517
513
  },
518
514
  isTxHash(str) {
519
515
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -521,7 +517,7 @@ const validations = {
521
517
  },
522
518
  xdc: {
523
519
  isAddress(str) {
524
- return cryptoValidators.isAddress(str);
520
+ return cryptoValidators.isEvmAddress(str);
525
521
  },
526
522
  isTxHash(str) {
527
523
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -537,7 +533,7 @@ const validations = {
537
533
  },
538
534
  unichain: {
539
535
  isAddress(str) {
540
- return cryptoValidators.isAddress(str);
536
+ return cryptoValidators.isEvmAddress(str);
541
537
  },
542
538
  isTxHash(str) {
543
539
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -561,7 +557,7 @@ const validations = {
561
557
  },
562
558
  codex: {
563
559
  isAddress(str) {
564
- return cryptoValidators.isAddress(str);
560
+ return cryptoValidators.isEvmAddress(str);
565
561
  },
566
562
  isTxHash(str) {
567
563
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -617,7 +613,7 @@ const validations = {
617
613
  },
618
614
  plasma: {
619
615
  isAddress(str) {
620
- return cryptoValidators.isAddress(str);
616
+ return cryptoValidators.isEvmAddress(str);
621
617
  },
622
618
  isTxHash(str) {
623
619
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -625,7 +621,7 @@ const validations = {
625
621
  },
626
622
  ink: {
627
623
  isAddress(str) {
628
- return cryptoValidators.isAddress(str);
624
+ return cryptoValidators.isEvmAddress(str);
629
625
  },
630
626
  isTxHash(str) {
631
627
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -633,7 +629,7 @@ const validations = {
633
629
  },
634
630
  xlayer: {
635
631
  isAddress(str) {
636
- return cryptoValidators.isAddress(str);
632
+ return cryptoValidators.isEvmAddress(str);
637
633
  },
638
634
  isTxHash(str) {
639
635
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -641,7 +637,7 @@ const validations = {
641
637
  },
642
638
  monad: {
643
639
  isAddress(str) {
644
- return cryptoValidators.isAddress(str);
640
+ return cryptoValidators.isEvmAddress(str);
645
641
  },
646
642
  isTxHash(str) {
647
643
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -649,7 +645,7 @@ const validations = {
649
645
  },
650
646
  hyperevm: {
651
647
  isAddress(str) {
652
- return cryptoValidators.isAddress(str);
648
+ return cryptoValidators.isEvmAddress(str);
653
649
  },
654
650
  isTxHash(str) {
655
651
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -657,7 +653,7 @@ const validations = {
657
653
  },
658
654
  tempo: {
659
655
  isAddress(str) {
660
- return cryptoValidators.isAddress(str);
656
+ return cryptoValidators.isEvmAddress(str);
661
657
  },
662
658
  isTxHash(str) {
663
659
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -665,7 +661,7 @@ const validations = {
665
661
  },
666
662
  morph: {
667
663
  isAddress(str) {
668
- return cryptoValidators.isAddress(str);
664
+ return cryptoValidators.isEvmAddress(str);
669
665
  },
670
666
  isTxHash(str) {
671
667
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -673,7 +669,7 @@ const validations = {
673
669
  },
674
670
  etherlink: {
675
671
  isAddress(str) {
676
- return cryptoValidators.isAddress(str);
672
+ return cryptoValidators.isEvmAddress(str);
677
673
  },
678
674
  isTxHash(str) {
679
675
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -681,7 +677,7 @@ const validations = {
681
677
  },
682
678
  edgex: {
683
679
  isAddress(str) {
684
- return cryptoValidators.isAddress(str);
680
+ return cryptoValidators.isEvmAddress(str);
685
681
  },
686
682
  isTxHash(str) {
687
683
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -1 +1 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../libs/aml-utils/lib/validations/validations.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint no-underscore-dangle: 0 */\nconst V = require('validator');\nconst _ = require('lodash');\n\n// Importing directly from dist to make sure we import the browser-friendly version of the library\nconst addressValidator = require('multicoin-address-validator/dist/wallet-address-validator');\nconst eip55 = require('eip55');\nconst stellarBase = require('@stellar/stellar-base');\nconst E = require('../errors/errors');\n\nconst cryptoValidators = {\n // Here we use our regex to validate the shape of the address, and eip55 to validate the checksum\n isAddress(str) {\n if (typeof str !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(str)) return false;\n return eip55.verify(str, true);\n },\n isHexStrict(str) {\n return typeof str === 'string' && /^0x[0-9a-fA-F]*$/.test(str);\n },\n isHex(str) {\n return typeof str === 'string' && /^(0x)?[0-9a-fA-F]*$/.test(str);\n },\n isValidWeiAmount(str) {\n return typeof str === 'string' && /^[0-9]+$/.test(str);\n },\n};\n\nconst validations = {\n _validate(Err, pred, x, msg) {\n if (pred(x)) {\n return x;\n }\n throw new Err(msg);\n },\n _validateArg(pred, x, msg) {\n return this._validate(E.InvalidArguments, pred, x, msg);\n },\n _tryCheck(fn, arg) {\n try {\n fn(arg);\n return true;\n } catch (error) {\n return false;\n }\n },\n\n exists(x) {\n return x != null;\n },\n nonEmpty(x) {\n return (x != null ? x.length : undefined) > 0;\n },\n isNonEmptyString(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0;\n },\n isSafeString(str) {\n // eslint-disable-next-line no-useless-escape, prefer-regex-literals\n return RegExp(/^(\\p{L}|[0-9]|-|=|!|\\.|:|\\s|@|\\+|_|,|\\$|£|&)+$/, 'u').test(str);\n },\n isAssetSafeString(str) {\n // eslint-disable-next-line no-useless-escape, prefer-regex-literals\n return RegExp(/^(\\p{L}|[0-9]|-|=|!|\\.|:|\\s|@|\\+|_|,|\\$|£|&|\\/)+$/, 'u').test(str);\n },\n ensureShortEnough(limit, x) {\n const l = x != null ? x.length : undefined;\n if (l <= limit) {\n return true;\n }\n throw new E.BadRequest(`Max query size exceeded: ${l} / ${limit}`);\n },\n ensure(crit, msg) {\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n argExists(x, msg) {\n return this._validateArg(this.exists, x, msg);\n },\n\n check: {\n matches(required, given, msg) {\n const newGiven = _.uniq(given);\n const crit = _.intersection(newGiven, required).length === given.length;\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n wasFound(type) {\n return (item) => {\n if (item == null) {\n throw new E.NotFound(`Unknown ${type}`);\n } else {\n return item;\n }\n };\n },\n wasCreated(msg) {\n return (arr) => {\n if (!arr[1]) {\n throw new E.BadRequest(msg);\n } else {\n return arr;\n }\n };\n },\n isTrue(crit, msg) {\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n isFalse(crit, msg) {\n if (!crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n },\n\n isCustomerReference(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0 && (x != null ? x.length : undefined) <= 100;\n },\n isCustomerLabelName(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0 && (x != null ? x.length : undefined) <= 50;\n },\n binanceChain: {\n isAddress(str) {\n return /^(bnb)([a-z0-9]{39})$/.test(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n bitcoin: {\n isAddress(str, asset) {\n if (asset === 'lightning') {\n return validations.isNonEmptyString(str);\n }\n return typeof str === 'string' && addressValidator.validate(str.trim(), 'btc', 'prod');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n bitcoinCash: {\n isAddress(str) {\n return /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bitcoincash:)?[q|p][a-z0-9]{41}$|^(BITCOINCASH:)?[Q|P][A-Z0-9]{41}$/.test(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n ethereum: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isBlockHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n isAddressCode(str) {\n return cryptoValidators.isHexStrict(str);\n },\n isValidWeiAmount(str) {\n return cryptoValidators.isValidWeiAmount(str);\n },\n },\n horizen: {\n isAddress(str) {\n return addressValidator.validate(str, 'zen');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n litecoin: {\n isAddress(str) {\n return /^[3LM][a-km-zA-HJ-NP-Z1-9]{24,33}$|^ltc1[ac-hj-np-z02-9]{6,86}$|^LTC1[AC-HJ-NP-Z02-9]{6,86}$|^ltcmweb[a-zA-Z0-9]{114}$/.test(\n str\n );\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n ripple: {\n isAddress(str) {\n return addressValidator.validate(str, 'xrp');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n stellar: {\n isAddress(str) {\n return stellarBase.StrKey.isValidEd25519PublicKey(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n zcash: {\n isAddress(str) {\n return addressValidator.validate(str, 'zec');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n zilliqa: {\n isAddress(str) {\n // https://pub.dev/documentation/laksadart/latest/laksadart/isBech32.html\n return !!str.match(/^zil1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$/);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n algorand: {\n isAddress(str) {\n return addressValidator.validate(str, 'algo');\n },\n isTxHash(str) {\n return str.length === 52;\n },\n },\n tezos: {\n isAddress(str) {\n return str[0] !== 'o' && addressValidator.validate(str, 'xtz');\n },\n isTxHash(str) {\n return str.length === 51;\n },\n },\n polkadot: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n cardano: {\n isAddress(str) {\n return addressValidator.validate(str, 'ada');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n cryptocom: {\n isAddress(str) {\n return addressValidator.validate(str, 'cro');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n near: {\n isAddress(str) {\n // https://nomicon.io/DataStructures/Account\n return /^(([a-z\\d]+[-_])*[a-z\\d]+\\.)*([a-z\\d]+[-_])*[a-z\\d]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 44 || str.length === 43;\n },\n },\n doge: {\n isAddress(str) {\n return /^[a-zA-Z\\d]{34}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64;\n },\n },\n cosmos: {\n isAddress(str) {\n return /^cosmos{1}[a-zA-Z\\d]{39}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n solana: {\n isAddress(str) {\n return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(str);\n },\n isTxHash(str) {\n return /^[1-9A-HJ-NP-Za-km-z]{77,88}$/.test(str);\n },\n },\n binanceSmartChain: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n polygon: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n filecoin: {\n isAddress(str) {\n return /^(f0|f1|f2|f3)/.test(str);\n },\n isTxHash(str) {\n return str.length === 62 && /^bafy2bza/.test(str);\n },\n },\n optimism: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n avalanche: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n arbitrum: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n tron: {\n isAddress(str) {\n return addressValidator.validate(str, 'tron');\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n fantom: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n celo: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n ethereumClassic: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n mobilecoin: {\n isAddress(str) {\n return str.length === 24 && /^[A-Za-z0-9+/]+={0,2}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n sui: {\n isAddress(str) {\n return str.length === 66 && /^[A-Za-z0-9+/]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 44;\n },\n },\n flare: {\n isAddress(str) {\n return str.length === 42 && /^[A-Za-z0-9+/]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 66;\n },\n },\n ton: {\n isAddress(str) {\n return /^[A-Za-z0-9+/]{64}$/.test(str);\n },\n isTxHash(str) {\n return /^[A-Za-z0-9+/]{64}$/.test(str);\n },\n },\n gnosis: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n dydx: {\n isAddress(str) {\n return /^[a-z]+1[a-zA-Z0-9]{38}$/.test(str) || str === 'dydx_chain';\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n hederaHashgraph: {\n isAddress(str) {\n return /^\\d+\\.\\d+\\.\\d+$/.test(str);\n },\n isTxHash(str) {\n return /^[xa-f0-9+/]{98}$/.test(str);\n },\n },\n aptos: {\n isAddress(str) {\n return str.length <= 66 && cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n zksync: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n haqq: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n base: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n corechain: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n worldchain: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n injective: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n linea: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n xdc: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n internetcomputer: {\n isAddress(str) {\n return cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n unichain: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n sei: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return (str.length === 64 && cryptoValidators.isHex(str)) || (str.length === 66 && cryptoValidators.isHexStrict(str));\n },\n },\n bittensor: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n codex: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n mantra: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n nillion: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n canton: {\n isAddress(str) {\n return str.length > 1;\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str) && str.length === 68;\n },\n },\n starknet: {\n isAddress(str) {\n return cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n noble: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n assethub: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n plasma: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n ink: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n xlayer: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n monad: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n hyperevm: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n tempo: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n morph: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n etherlink: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n edgex: {\n isAddress(str) {\n return cryptoValidators.isAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n};\n\nObject.keys(V).forEach((k) => {\n const v = V[k];\n // don't trigger validation with null values (prevents swagger 500 error)\n validations[k] = (x) => (x === null ? false : v(x));\n});\n\nmodule.exports = validations;\n"]}
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../libs/aml-utils/lib/validations/validations.js"],"names":[],"mappings":"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","sourcesContent":["/* eslint no-underscore-dangle: 0 */\nconst V = require('validator');\nconst _ = require('lodash');\n\n// Importing directly from dist to make sure we import the browser-friendly version of the library\nconst addressValidator = require('multicoin-address-validator/dist/wallet-address-validator');\nconst stellarBase = require('@stellar/stellar-base');\nconst E = require('../errors/errors');\n\nconst cryptoValidators = {\n isEvmAddress(str) {\n return typeof str === 'string' && /^0x[0-9a-fA-F]{40}$/.test(str);\n },\n isHexStrict(str) {\n return typeof str === 'string' && /^0x[0-9a-fA-F]*$/.test(str);\n },\n isHex(str) {\n return typeof str === 'string' && /^(0x)?[0-9a-fA-F]*$/.test(str);\n },\n isValidWeiAmount(str) {\n return typeof str === 'string' && /^[0-9]+$/.test(str);\n },\n};\n\nconst validations = {\n _validate(Err, pred, x, msg) {\n if (pred(x)) {\n return x;\n }\n throw new Err(msg);\n },\n _validateArg(pred, x, msg) {\n return this._validate(E.InvalidArguments, pred, x, msg);\n },\n _tryCheck(fn, arg) {\n try {\n fn(arg);\n return true;\n } catch (error) {\n return false;\n }\n },\n\n exists(x) {\n return x != null;\n },\n nonEmpty(x) {\n return (x != null ? x.length : undefined) > 0;\n },\n isNonEmptyString(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0;\n },\n isSafeString(str) {\n // eslint-disable-next-line no-useless-escape, prefer-regex-literals\n return RegExp(/^(\\p{L}|[0-9]|-|=|!|\\.|:|\\s|@|\\+|_|,|\\$|£|&)+$/, 'u').test(str);\n },\n isAssetSafeString(str) {\n // eslint-disable-next-line no-useless-escape, prefer-regex-literals\n return RegExp(/^(\\p{L}|[0-9]|-|=|!|\\.|:|\\s|@|\\+|_|,|\\$|£|&|\\/)+$/, 'u').test(str);\n },\n ensureShortEnough(limit, x) {\n const l = x != null ? x.length : undefined;\n if (l <= limit) {\n return true;\n }\n throw new E.BadRequest(`Max query size exceeded: ${l} / ${limit}`);\n },\n ensure(crit, msg) {\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n argExists(x, msg) {\n return this._validateArg(this.exists, x, msg);\n },\n\n check: {\n matches(required, given, msg) {\n const newGiven = _.uniq(given);\n const crit = _.intersection(newGiven, required).length === given.length;\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n wasFound(type) {\n return (item) => {\n if (item == null) {\n throw new E.NotFound(`Unknown ${type}`);\n } else {\n return item;\n }\n };\n },\n wasCreated(msg) {\n return (arr) => {\n if (!arr[1]) {\n throw new E.BadRequest(msg);\n } else {\n return arr;\n }\n };\n },\n isTrue(crit, msg) {\n if (crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n isFalse(crit, msg) {\n if (!crit) {\n return true;\n }\n throw new E.BadRequest(msg);\n },\n },\n\n isCustomerReference(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0 && (x != null ? x.length : undefined) <= 100;\n },\n isCustomerLabelName(x) {\n return _.isString(x) && (x != null ? x.length : undefined) > 0 && (x != null ? x.length : undefined) <= 50;\n },\n binanceChain: {\n isAddress(str) {\n return /^(bnb)([a-z0-9]{39})$/.test(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n bitcoin: {\n isAddress(str, asset) {\n if (asset === 'lightning') {\n return validations.isNonEmptyString(str);\n }\n return typeof str === 'string' && addressValidator.validate(str.trim(), 'btc', 'prod');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n bitcoinCash: {\n isAddress(str) {\n return /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^(bitcoincash:)?[q|p][a-z0-9]{41}$|^(BITCOINCASH:)?[Q|P][A-Z0-9]{41}$/.test(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n ethereum: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isBlockHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n isAddressCode(str) {\n return cryptoValidators.isHexStrict(str);\n },\n isValidWeiAmount(str) {\n return cryptoValidators.isValidWeiAmount(str);\n },\n },\n horizen: {\n isAddress(str) {\n return addressValidator.validate(str, 'zen');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n litecoin: {\n isAddress(str) {\n return /^[3LM][a-km-zA-HJ-NP-Z1-9]{24,33}$|^ltc1[ac-hj-np-z02-9]{6,86}$|^LTC1[AC-HJ-NP-Z02-9]{6,86}$|^ltcmweb[a-zA-Z0-9]{114}$/.test(\n str\n );\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n ripple: {\n isAddress(str) {\n return addressValidator.validate(str, 'xrp');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n stellar: {\n isAddress(str) {\n return stellarBase.StrKey.isValidEd25519PublicKey(str);\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n zcash: {\n isAddress(str) {\n return addressValidator.validate(str, 'zec');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n zilliqa: {\n isAddress(str) {\n // https://pub.dev/documentation/laksadart/latest/laksadart/isBech32.html\n return !!str.match(/^zil1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$/);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n algorand: {\n isAddress(str) {\n return addressValidator.validate(str, 'algo');\n },\n isTxHash(str) {\n return str.length === 52;\n },\n },\n tezos: {\n isAddress(str) {\n return str[0] !== 'o' && addressValidator.validate(str, 'xtz');\n },\n isTxHash(str) {\n return str.length === 51;\n },\n },\n polkadot: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n cardano: {\n isAddress(str) {\n return addressValidator.validate(str, 'ada');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n cryptocom: {\n isAddress(str) {\n return addressValidator.validate(str, 'cro');\n },\n isTxHash(str) {\n if (!V.isHexadecimal(str)) {\n return false;\n }\n return str.length === 64;\n },\n },\n near: {\n isAddress(str) {\n // https://nomicon.io/DataStructures/Account\n return /^(([a-z\\d]+[-_])*[a-z\\d]+\\.)*([a-z\\d]+[-_])*[a-z\\d]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 44 || str.length === 43;\n },\n },\n doge: {\n isAddress(str) {\n return /^[a-zA-Z\\d]{34}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64;\n },\n },\n cosmos: {\n isAddress(str) {\n return /^cosmos{1}[a-zA-Z\\d]{39}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n solana: {\n isAddress(str) {\n return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(str);\n },\n isTxHash(str) {\n return /^[1-9A-HJ-NP-Za-km-z]{77,88}$/.test(str);\n },\n },\n binanceSmartChain: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n polygon: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n filecoin: {\n isAddress(str) {\n return /^(f0|f1|f2|f3)/.test(str);\n },\n isTxHash(str) {\n return str.length === 62 && /^bafy2bza/.test(str);\n },\n },\n optimism: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n avalanche: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n arbitrum: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n tron: {\n isAddress(str) {\n return addressValidator.validate(str, 'tron');\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n fantom: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n celo: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n ethereumClassic: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n mobilecoin: {\n isAddress(str) {\n return str.length === 24 && /^[A-Za-z0-9+/]+={0,2}$/.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n sui: {\n isAddress(str) {\n return str.length === 66 && /^[A-Za-z0-9+/]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 44;\n },\n },\n flare: {\n isAddress(str) {\n return str.length === 42 && /^[A-Za-z0-9+/]+$/.test(str);\n },\n isTxHash(str) {\n return str.length === 66;\n },\n },\n ton: {\n isAddress(str) {\n return /^[A-Za-z0-9+/]{64}$/.test(str);\n },\n isTxHash(str) {\n return /^[A-Za-z0-9+/]{64}$/.test(str);\n },\n },\n gnosis: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n dydx: {\n isAddress(str) {\n return /^[a-z]+1[a-zA-Z0-9]{38}$/.test(str) || str === 'dydx_chain';\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n hederaHashgraph: {\n isAddress(str) {\n return /^\\d+\\.\\d+\\.\\d+$/.test(str);\n },\n isTxHash(str) {\n return /^[xa-f0-9+/]{98}$/.test(str);\n },\n },\n aptos: {\n isAddress(str) {\n return str.length <= 66 && cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n zksync: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n haqq: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n base: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n corechain: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n worldchain: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n injective: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n linea: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n xdc: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n internetcomputer: {\n isAddress(str) {\n return cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n unichain: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n sei: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return (str.length === 64 && cryptoValidators.isHex(str)) || (str.length === 66 && cryptoValidators.isHexStrict(str));\n },\n },\n bittensor: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n codex: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n mantra: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n nillion: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n canton: {\n isAddress(str) {\n return str.length > 1;\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str) && str.length === 68;\n },\n },\n starknet: {\n isAddress(str) {\n return cryptoValidators.isHex(str);\n },\n isTxHash(str) {\n return cryptoValidators.isHex(str);\n },\n },\n noble: {\n isAddress(str) {\n return /^[a-z0-9]+$/i.test(str);\n },\n isTxHash(str) {\n return str.length === 64 && cryptoValidators.isHex(str);\n },\n },\n assethub: {\n isAddress(str) {\n return addressValidator.validate(str, 'dot');\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n plasma: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n ink: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n xlayer: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n monad: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n hyperevm: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n tempo: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n morph: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n etherlink: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n edgex: {\n isAddress(str) {\n return cryptoValidators.isEvmAddress(str);\n },\n isTxHash(str) {\n return str.length === 66 && cryptoValidators.isHexStrict(str);\n },\n },\n};\n\nObject.keys(V).forEach((k) => {\n const v = V[k];\n // don't trigger validation with null values (prevents swagger 500 error)\n validations[k] = (x) => (x === null ? false : v(x));\n});\n\nmodule.exports = validations;\n"]}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@ellipticltd/aml-utils",
3
- "version": "0.16.28",
3
+ "version": "0.16.29",
4
4
  "dependencies": {
5
5
  "@stellar/stellar-base": "^14.0.3",
6
6
  "create-error": "0.3.1",
7
- "eip55": "^2.1.1",
8
7
  "lodash": "^4.17.21",
9
8
  "multicoin-address-validator": "^0.5.2",
10
9
  "type-check": "0.3.2",