@ellipticltd/aml-utils 0.14.2-SCR-638 → 0.14.2-SCR-638-2

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/.nyc_output/{50d7e15d-d00b-4574-b361-03b3e6cbc1b6.json → 27c9be00-3b59-4df0-8a91-22e34f5808f0.json} +1 -1
  2. package/.nyc_output/51823658-8f83-4dc0-a25d-91c954ec47ed.json +1 -0
  3. package/.nyc_output/processinfo/{50d7e15d-d00b-4574-b361-03b3e6cbc1b6.json → 27c9be00-3b59-4df0-8a91-22e34f5808f0.json} +1 -1
  4. package/.nyc_output/processinfo/{e9e3faad-ff55-4ff3-a7d2-e47e532d4515.json → 51823658-8f83-4dc0-a25d-91c954ec47ed.json} +1 -1
  5. package/.nyc_output/processinfo/6ee657ae-c713-4626-bbe0-815cb23bfcc9.json +1 -0
  6. package/.nyc_output/processinfo/b1e130ab-7239-44b4-93c4-fc6b996ad518.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -1
  8. package/coverage/errors/errors.js.html +1 -1
  9. package/coverage/errors/errors.spec.js.html +1 -1
  10. package/coverage/errors/index.html +1 -1
  11. package/coverage/file-parser/__tests/file-parser.spec.js.html +1 -1
  12. package/coverage/file-parser/__tests/index.html +1 -1
  13. package/coverage/file-parser/__tests/parse-row.spec.js.html +1 -1
  14. package/coverage/file-parser/__tests/sanitize-rows.spec.js.html +1 -1
  15. package/coverage/formatting/formatting.js.html +1 -1
  16. package/coverage/formatting/formatting.spec.js.html +1 -1
  17. package/coverage/formatting/index.html +1 -1
  18. package/coverage/index.html +18 -18
  19. package/coverage/middleware/index.html +1 -1
  20. package/coverage/middleware/middleware.js.html +1 -1
  21. package/coverage/orm-helpers/index.html +1 -1
  22. package/coverage/orm-helpers/ormHelpers.js.html +1 -1
  23. package/coverage/orm-helpers/ormHelpers.spec.js.html +1 -1
  24. package/coverage/types/index.html +1 -1
  25. package/coverage/types/types.js.html +1 -1
  26. package/coverage/validations/index.html +24 -24
  27. package/coverage/validations/validations.js.html +59 -11
  28. package/coverage/validations/validations.spec.js.html +109 -13
  29. package/dist/validations/validations.d.ts +13 -1
  30. package/dist/validations/validations.js +17 -1
  31. package/dist/validations/validations.spec.js +28 -6
  32. package/lib/validations/validations.js +17 -1
  33. package/lib/validations/validations.spec.js +38 -6
  34. package/package.json +1 -1
  35. package/.nyc_output/e9e3faad-ff55-4ff3-a7d2-e47e532d4515.json +0 -1
  36. package/.nyc_output/processinfo/98b3b25b-5caa-4b0f-8d28-d2b39efffe24.json +0 -1
  37. package/.nyc_output/processinfo/9a42d973-6534-4af1-b756-cce56e24650e.json +0 -1
  38. /package/.nyc_output/{98b3b25b-5caa-4b0f-8d28-d2b39efffe24.json → 6ee657ae-c713-4626-bbe0-815cb23bfcc9.json} +0 -0
  39. /package/.nyc_output/{9a42d973-6534-4af1-b756-cce56e24650e.json → b1e130ab-7239-44b4-93c4-fc6b996ad518.json} +0 -0
@@ -20,9 +20,9 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">99.09% </span>
23
+ <span class="strong">99.16% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>327/330</span>
25
+ <span class='fraction'>353/356</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
28
  <span class="strong">83.33% </span>
@@ -30,14 +30,14 @@
30
30
  <span class='fraction'>20/24</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">98.45% </span>
33
+ <span class="strong">98.57% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>191/194</span>
35
+ <span class='fraction'>207/210</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
38
  <span class="strong">100% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>220/220</span>
40
+ <span class='fraction'>236/236</span>
41
41
  </div>
42
42
  </div>
43
43
  <p class="quiet">
@@ -465,7 +465,39 @@
465
465
  <a name='L417'></a><a href='#L417'>417</a>
466
466
  <a name='L418'></a><a href='#L418'>418</a>
467
467
  <a name='L419'></a><a href='#L419'>419</a>
468
- <a name='L420'></a><a href='#L420'>420</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
468
+ <a name='L420'></a><a href='#L420'>420</a>
469
+ <a name='L421'></a><a href='#L421'>421</a>
470
+ <a name='L422'></a><a href='#L422'>422</a>
471
+ <a name='L423'></a><a href='#L423'>423</a>
472
+ <a name='L424'></a><a href='#L424'>424</a>
473
+ <a name='L425'></a><a href='#L425'>425</a>
474
+ <a name='L426'></a><a href='#L426'>426</a>
475
+ <a name='L427'></a><a href='#L427'>427</a>
476
+ <a name='L428'></a><a href='#L428'>428</a>
477
+ <a name='L429'></a><a href='#L429'>429</a>
478
+ <a name='L430'></a><a href='#L430'>430</a>
479
+ <a name='L431'></a><a href='#L431'>431</a>
480
+ <a name='L432'></a><a href='#L432'>432</a>
481
+ <a name='L433'></a><a href='#L433'>433</a>
482
+ <a name='L434'></a><a href='#L434'>434</a>
483
+ <a name='L435'></a><a href='#L435'>435</a>
484
+ <a name='L436'></a><a href='#L436'>436</a>
485
+ <a name='L437'></a><a href='#L437'>437</a>
486
+ <a name='L438'></a><a href='#L438'>438</a>
487
+ <a name='L439'></a><a href='#L439'>439</a>
488
+ <a name='L440'></a><a href='#L440'>440</a>
489
+ <a name='L441'></a><a href='#L441'>441</a>
490
+ <a name='L442'></a><a href='#L442'>442</a>
491
+ <a name='L443'></a><a href='#L443'>443</a>
492
+ <a name='L444'></a><a href='#L444'>444</a>
493
+ <a name='L445'></a><a href='#L445'>445</a>
494
+ <a name='L446'></a><a href='#L446'>446</a>
495
+ <a name='L447'></a><a href='#L447'>447</a>
496
+ <a name='L448'></a><a href='#L448'>448</a>
497
+ <a name='L449'></a><a href='#L449'>449</a>
498
+ <a name='L450'></a><a href='#L450'>450</a>
499
+ <a name='L451'></a><a href='#L451'>451</a>
500
+ <a name='L452'></a><a href='#L452'>452</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
469
501
  <span class="cline-any cline-neutral">&nbsp;</span>
470
502
  <span class="cline-any cline-yes">1x</span>
471
503
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -884,6 +916,38 @@
884
916
  <span class="cline-any cline-neutral">&nbsp;</span>
885
917
  <span class="cline-any cline-neutral">&nbsp;</span>
886
918
  <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-yes">1x</span>
920
+ <span class="cline-any cline-yes">1x</span>
921
+ <span class="cline-any cline-yes">1x</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-yes">1x</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-yes">1x</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-neutral">&nbsp;</span>
928
+ <span class="cline-any cline-yes">1x</span>
929
+ <span class="cline-any cline-yes">1x</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-yes">1x</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-neutral">&nbsp;</span>
935
+ <span class="cline-any cline-yes">1x</span>
936
+ <span class="cline-any cline-yes">1x</span>
937
+ <span class="cline-any cline-yes">1x</span>
938
+ <span class="cline-any cline-neutral">&nbsp;</span>
939
+ <span class="cline-any cline-yes">1x</span>
940
+ <span class="cline-any cline-neutral">&nbsp;</span>
941
+ <span class="cline-any cline-yes">1x</span>
942
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-yes">1x</span>
945
+ <span class="cline-any cline-yes">1x</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-yes">1x</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
951
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import validations from './validations';
888
952
  &nbsp;
889
953
  const chai = require('chai');
@@ -1287,19 +1351,51 @@ describe('Validations', () =&gt; {
1287
1351
  &nbsp;
1288
1352
  describe('ATOM', () =&gt; {
1289
1353
  describe('isAddress', () =&gt; {
1290
- it('should correctly validate valid ATOM addresses', () =&gt; validations.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
1354
+ it('should correctly validate valid ATOM addresses', () =&gt; validations.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
1355
+ &nbsp;
1356
+ it('should correctly validate an incorrect ATOM address', () =&gt; validations.cosmos.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
1357
+ &nbsp;
1358
+ it('should correctly validate an incorrect (too long) ATOM address', () =&gt; validations.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
1359
+ });
1360
+ &nbsp;
1361
+ describe('isTxHash', () =&gt; {
1362
+ it('should correctly validate a valid ATOM hash', () =&gt; validations.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
1363
+ &nbsp;
1364
+ it('should correctly validate an incorrect ATOM hash', () =&gt; validations.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
1365
+ &nbsp;
1366
+ it('should return false when passed a non-hex string', () =&gt; validations.cosmos.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
1367
+ });
1368
+ });
1369
+ &nbsp;
1370
+ describe('SOL', () =&gt; {
1371
+ describe('isAddress', () =&gt; {
1372
+ it('should correctly validate valid SOL addresses', () =&gt; validations.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.true);
1291
1373
  &nbsp;
1292
- it('should correctly validate an incorrect ATOM address', () =&gt; validations.atom.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
1374
+ it('should correctly validate an incorrect SOL address', () =&gt; validations.solana.isAddress('L0JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.false);
1293
1375
  &nbsp;
1294
- it('should correctly validate an incorrect (too long) ATOM address', () =&gt; validations.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
1376
+ it('should correctly validate an incorrect (too long) SOL address', () =&gt; validations.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24TAAAAAAAAAAAAAAA').should.be.false);
1295
1377
  });
1296
1378
  &nbsp;
1297
1379
  describe('isTxHash', () =&gt; {
1298
- it('should correctly validate a valid ATOM hash', () =&gt; validations.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
1380
+ it('should correctly validate a valid SOL hash', () =&gt; validations.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzETPHfTRi4E8fmVedFT4bPYc1BiELG3Ldway6oPTSXpVJZRM4mqEdz2Uuh5n9VQp8x').should.be.true);
1381
+ &nbsp;
1382
+ it('should correctly validate an incorrect SOL hash', () =&gt; validations.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzET').should.be.false);
1383
+ });
1384
+ });
1299
1385
  &nbsp;
1300
- it('should correctly validate an incorrect ATOM hash', () =&gt; validations.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
1386
+ describe('BSC', () =&gt; {
1387
+ describe('isAddress', () =&gt; {
1388
+ it('should correctly validate valid BSC addresses', () =&gt; validations.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.true);
1389
+ &nbsp;
1390
+ it('should correctly validate an incorrect BSC address', () =&gt; validations.binanceSmartChain.isAddress('0xz616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.false);
1391
+ &nbsp;
1392
+ it('should correctly validate an incorrect (too long) BSC address', () =&gt; validations.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7caaaaa').should.be.false);
1393
+ });
1394
+ &nbsp;
1395
+ describe('isTxHash', () =&gt; {
1396
+ it('should correctly validate a valid BSC hash', () =&gt; validations.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17a7f8abfdda020cb1f39abe269').should.be.true);
1301
1397
  &nbsp;
1302
- it('should return false when passed a non-hex string', () =&gt; validations.atom.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
1398
+ it('should correctly validate an incorrect BSC hash', () =&gt; validations.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17').should.be.false);
1303
1399
  });
1304
1400
  });
1305
1401
  });
@@ -1309,7 +1405,7 @@ describe('Validations', () =&gt; {
1309
1405
  </div><!-- /wrapper -->
1310
1406
  <div class='footer quiet pad2 space-top1 center small'>
1311
1407
  Code coverage
1312
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Jul 26 2022 14:44:47 GMT+0200 (CEST)
1408
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Thu Jul 28 2022 15:10:36 GMT+0200 (CEST)
1313
1409
  </div>
1314
1410
  </div>
1315
1411
  <script src="../prettify.js"></script>
@@ -158,9 +158,21 @@ export namespace doge {
158
158
  function isTxHash(str: any): boolean;
159
159
  function isTxHash(str: any): boolean;
160
160
  }
161
- export namespace atom {
161
+ export namespace cosmos {
162
162
  function isAddress(str: any): boolean;
163
163
  function isAddress(str: any): boolean;
164
164
  function isTxHash(str: any): any;
165
165
  function isTxHash(str: any): any;
166
166
  }
167
+ export namespace solana {
168
+ function isAddress(str: any): boolean;
169
+ function isAddress(str: any): boolean;
170
+ function isTxHash(str: any): boolean;
171
+ function isTxHash(str: any): boolean;
172
+ }
173
+ export namespace binanceSmartChain {
174
+ function isAddress(str: any): any;
175
+ function isAddress(str: any): any;
176
+ function isTxHash(str: any): any;
177
+ function isTxHash(str: any): any;
178
+ }
@@ -354,7 +354,7 @@ const validations = {
354
354
  return str.length === 64;
355
355
  },
356
356
  },
357
- atom: {
357
+ cosmos: {
358
358
  isAddress(str) {
359
359
  return /^cosmos{1}[a-zA-Z\d]{39}$/.test(str);
360
360
  },
@@ -362,6 +362,22 @@ const validations = {
362
362
  return str.length === 64 && web3.isHex(str);
363
363
  },
364
364
  },
365
+ solana: {
366
+ isAddress(str) {
367
+ return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(str);
368
+ },
369
+ isTxHash(str) {
370
+ return /^[1-9A-HJ-NP-Za-km-z]{88}$/.test(str);
371
+ },
372
+ },
373
+ binanceSmartChain: {
374
+ isAddress(str) {
375
+ return web3.isAddress(str);
376
+ },
377
+ isTxHash(str) {
378
+ return str.length === 66 && web3.isHexStrict(str);
379
+ },
380
+ },
365
381
  };
366
382
  Object.keys(V).forEach((k) => {
367
383
  const v = V[k];
@@ -310,14 +310,36 @@ describe('Validations', () => {
310
310
  });
311
311
  describe('ATOM', () => {
312
312
  describe('isAddress', () => {
313
- it('should correctly validate valid ATOM addresses', () => validations_1.default.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
314
- it('should correctly validate an incorrect ATOM address', () => validations_1.default.atom.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
315
- it('should correctly validate an incorrect (too long) ATOM address', () => validations_1.default.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
313
+ it('should correctly validate valid ATOM addresses', () => validations_1.default.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
314
+ it('should correctly validate an incorrect ATOM address', () => validations_1.default.cosmos.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
315
+ it('should correctly validate an incorrect (too long) ATOM address', () => validations_1.default.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
316
316
  });
317
317
  describe('isTxHash', () => {
318
- it('should correctly validate a valid ATOM hash', () => validations_1.default.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
319
- it('should correctly validate an incorrect ATOM hash', () => validations_1.default.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
320
- it('should return false when passed a non-hex string', () => validations_1.default.atom.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
318
+ it('should correctly validate a valid ATOM hash', () => validations_1.default.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
319
+ it('should correctly validate an incorrect ATOM hash', () => validations_1.default.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
320
+ it('should return false when passed a non-hex string', () => validations_1.default.cosmos.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
321
+ });
322
+ });
323
+ describe('SOL', () => {
324
+ describe('isAddress', () => {
325
+ it('should correctly validate valid SOL addresses', () => validations_1.default.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.true);
326
+ it('should correctly validate an incorrect SOL address', () => validations_1.default.solana.isAddress('L0JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.false);
327
+ it('should correctly validate an incorrect (too long) SOL address', () => validations_1.default.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24TAAAAAAAAAAAAAAA').should.be.false);
328
+ });
329
+ describe('isTxHash', () => {
330
+ it('should correctly validate a valid SOL hash', () => validations_1.default.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzETPHfTRi4E8fmVedFT4bPYc1BiELG3Ldway6oPTSXpVJZRM4mqEdz2Uuh5n9VQp8x').should.be.true);
331
+ it('should correctly validate an incorrect SOL hash', () => validations_1.default.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzET').should.be.false);
332
+ });
333
+ });
334
+ describe('BSC', () => {
335
+ describe('isAddress', () => {
336
+ it('should correctly validate valid BSC addresses', () => validations_1.default.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.true);
337
+ it('should correctly validate an incorrect BSC address', () => validations_1.default.binanceSmartChain.isAddress('0xz616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.false);
338
+ it('should correctly validate an incorrect (too long) BSC address', () => validations_1.default.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7caaaaa').should.be.false);
339
+ });
340
+ describe('isTxHash', () => {
341
+ it('should correctly validate a valid BSC hash', () => validations_1.default.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17a7f8abfdda020cb1f39abe269').should.be.true);
342
+ it('should correctly validate an incorrect BSC hash', () => validations_1.default.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17').should.be.false);
321
343
  });
322
344
  });
323
345
  });
@@ -359,7 +359,7 @@ const validations = {
359
359
  return str.length === 64;
360
360
  },
361
361
  },
362
- atom: {
362
+ cosmos: {
363
363
  isAddress(str) {
364
364
  return /^cosmos{1}[a-zA-Z\d]{39}$/.test(str);
365
365
  },
@@ -367,6 +367,22 @@ const validations = {
367
367
  return str.length === 64 && web3.isHex(str);
368
368
  },
369
369
  },
370
+ solana: {
371
+ isAddress(str) {
372
+ return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(str);
373
+ },
374
+ isTxHash(str) {
375
+ return /^[1-9A-HJ-NP-Za-km-z]{88}$/.test(str);
376
+ },
377
+ },
378
+ binanceSmartChain: {
379
+ isAddress(str) {
380
+ return web3.isAddress(str);
381
+ },
382
+ isTxHash(str) {
383
+ return str.length === 66 && web3.isHexStrict(str);
384
+ },
385
+ },
370
386
  };
371
387
 
372
388
  Object.keys(V).forEach((k) => {
@@ -401,19 +401,51 @@ describe('Validations', () => {
401
401
 
402
402
  describe('ATOM', () => {
403
403
  describe('isAddress', () => {
404
- it('should correctly validate valid ATOM addresses', () => validations.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
404
+ it('should correctly validate valid ATOM addresses', () => validations.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.true);
405
405
 
406
- it('should correctly validate an incorrect ATOM address', () => validations.atom.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
406
+ it('should correctly validate an incorrect ATOM address', () => validations.cosmos.isAddress('kosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5').should.be.false);
407
407
 
408
- it('should correctly validate an incorrect (too long) ATOM address', () => validations.atom.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
408
+ it('should correctly validate an incorrect (too long) ATOM address', () => validations.cosmos.isAddress('cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x50').should.be.false);
409
409
  });
410
410
 
411
411
  describe('isTxHash', () => {
412
- it('should correctly validate a valid ATOM hash', () => validations.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
412
+ it('should correctly validate a valid ATOM hash', () => validations.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.true);
413
413
 
414
- it('should correctly validate an incorrect ATOM hash', () => validations.atom.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
414
+ it('should correctly validate an incorrect ATOM hash', () => validations.cosmos.isTxHash('BFA0252193CCAA0592AF2A27541473E7').should.be.false);
415
415
 
416
- it('should return false when passed a non-hex string', () => validations.atom.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
416
+ it('should return false when passed a non-hex string', () => validations.cosmos.isTxHash('ZZA0252193CCAA0592AF2A27541473E7F6422A9AD85CFC9525CF67FA2AA2CD6F').should.be.false);
417
+ });
418
+ });
419
+
420
+ describe('SOL', () => {
421
+ describe('isAddress', () => {
422
+ it('should correctly validate valid SOL addresses', () => validations.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.true);
423
+
424
+ it('should correctly validate an incorrect SOL address', () => validations.solana.isAddress('L0JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24T').should.be.false);
425
+
426
+ it('should correctly validate an incorrect (too long) SOL address', () => validations.solana.isAddress('A4JXQF7p9sHR5apRy2hVgKFAHHs7jdpQv9kFGLDit24TAAAAAAAAAAAAAAA').should.be.false);
427
+ });
428
+
429
+ describe('isTxHash', () => {
430
+ it('should correctly validate a valid SOL hash', () => validations.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzETPHfTRi4E8fmVedFT4bPYc1BiELG3Ldway6oPTSXpVJZRM4mqEdz2Uuh5n9VQp8x').should.be.true);
431
+
432
+ it('should correctly validate an incorrect SOL hash', () => validations.solana.isTxHash('2WcPszZnXBLpu9WzLbGRfwzET').should.be.false);
433
+ });
434
+ });
435
+
436
+ describe('BSC', () => {
437
+ describe('isAddress', () => {
438
+ it('should correctly validate valid BSC addresses', () => validations.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.true);
439
+
440
+ it('should correctly validate an incorrect BSC address', () => validations.binanceSmartChain.isAddress('0xz616e2b8acff064bf902b8a93cbd5da2ca1edc7c').should.be.false);
441
+
442
+ it('should correctly validate an incorrect (too long) BSC address', () => validations.binanceSmartChain.isAddress('0x5616e2b8acff064bf902b8a93cbd5da2ca1edc7caaaaa').should.be.false);
443
+ });
444
+
445
+ describe('isTxHash', () => {
446
+ it('should correctly validate a valid BSC hash', () => validations.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17a7f8abfdda020cb1f39abe269').should.be.true);
447
+
448
+ it('should correctly validate an incorrect BSC hash', () => validations.binanceSmartChain.isTxHash('0x1a17145af3bec32f653d8ebd4c2c1b800214b17').should.be.false);
417
449
  });
418
450
  });
419
451
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ellipticltd/aml-utils",
3
- "version": "0.14.2-SCR-638",
3
+ "version": "0.14.2-SCR-638-2",
4
4
  "description": "Utilities, helpers, validations, type-checking, etc",
5
5
  "engines": {
6
6
  "node": "10.1.0",