@ellipticltd/aml-utils 0.16.28 → 0.16.31

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.
@@ -5,7 +5,6 @@ export function exists(x: any): boolean;
5
5
  export function nonEmpty(x: any): boolean;
6
6
  export function isNonEmptyString(x: any): boolean;
7
7
  export function isSafeString(str: any): boolean;
8
- export function isAssetSafeString(str: any): boolean;
9
8
  export function ensureShortEnough(limit: any, x: any): boolean;
10
9
  export function ensure(crit: any, msg: any): boolean;
11
10
  export function argExists(x: any, msg: any): any;
@@ -50,7 +49,7 @@ export namespace ripple {
50
49
  function isTxHash(str: any): boolean;
51
50
  }
52
51
  export namespace stellar {
53
- function isAddress(str: any): boolean;
52
+ function isAddress(str: any): any;
54
53
  function isTxHash(str: any): boolean;
55
54
  }
56
55
  export namespace zcash {
@@ -281,3 +280,7 @@ export namespace edgex {
281
280
  function isAddress(str: any): boolean;
282
281
  function isTxHash(str: any): boolean;
283
282
  }
283
+ export namespace kaia {
284
+ function isAddress(str: any): boolean;
285
+ function isTxHash(str: any): boolean;
286
+ }
@@ -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);
@@ -52,10 +48,6 @@ const validations = {
52
48
  return _.isString(x) && (x != null ? x.length : undefined) > 0;
53
49
  },
54
50
  isSafeString(str) {
55
- // eslint-disable-next-line no-useless-escape, prefer-regex-literals
56
- return RegExp(/^(\p{L}|[0-9]|-|=|!|\.|:|\s|@|\+|_|,|\$|£|&)+$/, 'u').test(str);
57
- },
58
- isAssetSafeString(str) {
59
51
  // eslint-disable-next-line no-useless-escape, prefer-regex-literals
60
52
  return RegExp(/^(\p{L}|[0-9]|-|=|!|\.|:|\s|@|\+|_|,|\$|£|&|\/)+$/, 'u').test(str);
61
53
  },
@@ -161,7 +153,7 @@ const validations = {
161
153
  },
162
154
  ethereum: {
163
155
  isAddress(str) {
164
- return cryptoValidators.isAddress(str);
156
+ return cryptoValidators.isEvmAddress(str);
165
157
  },
166
158
  isBlockHash(str) {
167
159
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -321,7 +313,7 @@ const validations = {
321
313
  },
322
314
  binanceSmartChain: {
323
315
  isAddress(str) {
324
- return cryptoValidators.isAddress(str);
316
+ return cryptoValidators.isEvmAddress(str);
325
317
  },
326
318
  isTxHash(str) {
327
319
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -329,7 +321,7 @@ const validations = {
329
321
  },
330
322
  polygon: {
331
323
  isAddress(str) {
332
- return cryptoValidators.isAddress(str);
324
+ return cryptoValidators.isEvmAddress(str);
333
325
  },
334
326
  isTxHash(str) {
335
327
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -345,7 +337,7 @@ const validations = {
345
337
  },
346
338
  optimism: {
347
339
  isAddress(str) {
348
- return cryptoValidators.isAddress(str);
340
+ return cryptoValidators.isEvmAddress(str);
349
341
  },
350
342
  isTxHash(str) {
351
343
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -353,7 +345,7 @@ const validations = {
353
345
  },
354
346
  avalanche: {
355
347
  isAddress(str) {
356
- return cryptoValidators.isAddress(str);
348
+ return cryptoValidators.isEvmAddress(str);
357
349
  },
358
350
  isTxHash(str) {
359
351
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -361,7 +353,7 @@ const validations = {
361
353
  },
362
354
  arbitrum: {
363
355
  isAddress(str) {
364
- return cryptoValidators.isAddress(str);
356
+ return cryptoValidators.isEvmAddress(str);
365
357
  },
366
358
  isTxHash(str) {
367
359
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -377,7 +369,7 @@ const validations = {
377
369
  },
378
370
  fantom: {
379
371
  isAddress(str) {
380
- return cryptoValidators.isAddress(str);
372
+ return cryptoValidators.isEvmAddress(str);
381
373
  },
382
374
  isTxHash(str) {
383
375
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -385,7 +377,7 @@ const validations = {
385
377
  },
386
378
  celo: {
387
379
  isAddress(str) {
388
- return cryptoValidators.isAddress(str);
380
+ return cryptoValidators.isEvmAddress(str);
389
381
  },
390
382
  isTxHash(str) {
391
383
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -393,7 +385,7 @@ const validations = {
393
385
  },
394
386
  ethereumClassic: {
395
387
  isAddress(str) {
396
- return cryptoValidators.isAddress(str);
388
+ return cryptoValidators.isEvmAddress(str);
397
389
  },
398
390
  isTxHash(str) {
399
391
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -433,7 +425,7 @@ const validations = {
433
425
  },
434
426
  gnosis: {
435
427
  isAddress(str) {
436
- return cryptoValidators.isAddress(str);
428
+ return cryptoValidators.isEvmAddress(str);
437
429
  },
438
430
  isTxHash(str) {
439
431
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -465,7 +457,7 @@ const validations = {
465
457
  },
466
458
  zksync: {
467
459
  isAddress(str) {
468
- return cryptoValidators.isAddress(str);
460
+ return cryptoValidators.isEvmAddress(str);
469
461
  },
470
462
  isTxHash(str) {
471
463
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -473,7 +465,7 @@ const validations = {
473
465
  },
474
466
  haqq: {
475
467
  isAddress(str) {
476
- return cryptoValidators.isAddress(str);
468
+ return cryptoValidators.isEvmAddress(str);
477
469
  },
478
470
  isTxHash(str) {
479
471
  return str.length === 64 && cryptoValidators.isHex(str);
@@ -481,7 +473,7 @@ const validations = {
481
473
  },
482
474
  base: {
483
475
  isAddress(str) {
484
- return cryptoValidators.isAddress(str);
476
+ return cryptoValidators.isEvmAddress(str);
485
477
  },
486
478
  isTxHash(str) {
487
479
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -489,7 +481,7 @@ const validations = {
489
481
  },
490
482
  corechain: {
491
483
  isAddress(str) {
492
- return cryptoValidators.isAddress(str);
484
+ return cryptoValidators.isEvmAddress(str);
493
485
  },
494
486
  isTxHash(str) {
495
487
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -497,7 +489,7 @@ const validations = {
497
489
  },
498
490
  worldchain: {
499
491
  isAddress(str) {
500
- return cryptoValidators.isAddress(str);
492
+ return cryptoValidators.isEvmAddress(str);
501
493
  },
502
494
  isTxHash(str) {
503
495
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -513,7 +505,7 @@ const validations = {
513
505
  },
514
506
  linea: {
515
507
  isAddress(str) {
516
- return cryptoValidators.isAddress(str);
508
+ return cryptoValidators.isEvmAddress(str);
517
509
  },
518
510
  isTxHash(str) {
519
511
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -521,7 +513,7 @@ const validations = {
521
513
  },
522
514
  xdc: {
523
515
  isAddress(str) {
524
- return cryptoValidators.isAddress(str);
516
+ return cryptoValidators.isEvmAddress(str);
525
517
  },
526
518
  isTxHash(str) {
527
519
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -537,7 +529,7 @@ const validations = {
537
529
  },
538
530
  unichain: {
539
531
  isAddress(str) {
540
- return cryptoValidators.isAddress(str);
532
+ return cryptoValidators.isEvmAddress(str);
541
533
  },
542
534
  isTxHash(str) {
543
535
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -561,7 +553,7 @@ const validations = {
561
553
  },
562
554
  codex: {
563
555
  isAddress(str) {
564
- return cryptoValidators.isAddress(str);
556
+ return cryptoValidators.isEvmAddress(str);
565
557
  },
566
558
  isTxHash(str) {
567
559
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -617,7 +609,7 @@ const validations = {
617
609
  },
618
610
  plasma: {
619
611
  isAddress(str) {
620
- return cryptoValidators.isAddress(str);
612
+ return cryptoValidators.isEvmAddress(str);
621
613
  },
622
614
  isTxHash(str) {
623
615
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -625,7 +617,7 @@ const validations = {
625
617
  },
626
618
  ink: {
627
619
  isAddress(str) {
628
- return cryptoValidators.isAddress(str);
620
+ return cryptoValidators.isEvmAddress(str);
629
621
  },
630
622
  isTxHash(str) {
631
623
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -633,7 +625,7 @@ const validations = {
633
625
  },
634
626
  xlayer: {
635
627
  isAddress(str) {
636
- return cryptoValidators.isAddress(str);
628
+ return cryptoValidators.isEvmAddress(str);
637
629
  },
638
630
  isTxHash(str) {
639
631
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -641,7 +633,7 @@ const validations = {
641
633
  },
642
634
  monad: {
643
635
  isAddress(str) {
644
- return cryptoValidators.isAddress(str);
636
+ return cryptoValidators.isEvmAddress(str);
645
637
  },
646
638
  isTxHash(str) {
647
639
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -649,7 +641,7 @@ const validations = {
649
641
  },
650
642
  hyperevm: {
651
643
  isAddress(str) {
652
- return cryptoValidators.isAddress(str);
644
+ return cryptoValidators.isEvmAddress(str);
653
645
  },
654
646
  isTxHash(str) {
655
647
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -657,7 +649,7 @@ const validations = {
657
649
  },
658
650
  tempo: {
659
651
  isAddress(str) {
660
- return cryptoValidators.isAddress(str);
652
+ return cryptoValidators.isEvmAddress(str);
661
653
  },
662
654
  isTxHash(str) {
663
655
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -665,7 +657,7 @@ const validations = {
665
657
  },
666
658
  morph: {
667
659
  isAddress(str) {
668
- return cryptoValidators.isAddress(str);
660
+ return cryptoValidators.isEvmAddress(str);
669
661
  },
670
662
  isTxHash(str) {
671
663
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -673,7 +665,7 @@ const validations = {
673
665
  },
674
666
  etherlink: {
675
667
  isAddress(str) {
676
- return cryptoValidators.isAddress(str);
668
+ return cryptoValidators.isEvmAddress(str);
677
669
  },
678
670
  isTxHash(str) {
679
671
  return str.length === 66 && cryptoValidators.isHexStrict(str);
@@ -681,7 +673,15 @@ const validations = {
681
673
  },
682
674
  edgex: {
683
675
  isAddress(str) {
684
- return cryptoValidators.isAddress(str);
676
+ return cryptoValidators.isEvmAddress(str);
677
+ },
678
+ isTxHash(str) {
679
+ return str.length === 66 && cryptoValidators.isHexStrict(str);
680
+ },
681
+ },
682
+ kaia: {
683
+ isAddress(str) {
684
+ return cryptoValidators.isEvmAddress(str);
685
685
  },
686
686
  isTxHash(str) {
687
687
  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 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 kaia: {\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.31",
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",