@rosen-bridge/address-codec 0.6.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/decoder.d.ts.map +1 -1
  3. package/dist/decoder.js +1 -1
  4. package/dist/encoder.d.ts.map +1 -1
  5. package/dist/encoder.js +1 -1
  6. package/dist/types.js +1 -1
  7. package/dist/validator.d.ts.map +1 -1
  8. package/dist/validator.js +3 -3
  9. package/package.json +22 -18
  10. package/.eslintignore +0 -1
  11. package/dist/lib/const.d.ts +0 -19
  12. package/dist/lib/const.d.ts.map +0 -1
  13. package/dist/lib/const.js +0 -20
  14. package/dist/lib/decoder.d.ts +0 -8
  15. package/dist/lib/decoder.d.ts.map +0 -1
  16. package/dist/lib/decoder.js +0 -35
  17. package/dist/lib/encoder.d.ts +0 -8
  18. package/dist/lib/encoder.d.ts.map +0 -1
  19. package/dist/lib/encoder.js +0 -44
  20. package/dist/lib/index.d.ts +0 -5
  21. package/dist/lib/index.d.ts.map +0 -1
  22. package/dist/lib/index.js +0 -8
  23. package/dist/lib/types.d.ts +0 -7
  24. package/dist/lib/types.d.ts.map +0 -1
  25. package/dist/lib/types.js +0 -11
  26. package/dist/lib/validator.d.ts +0 -7
  27. package/dist/lib/validator.d.ts.map +0 -1
  28. package/dist/lib/validator.js +0 -52
  29. package/dist/tests/decoder.spec.d.ts +0 -2
  30. package/dist/tests/decoder.spec.d.ts.map +0 -1
  31. package/dist/tests/decoder.spec.js +0 -110
  32. package/dist/tests/encoder.spec.d.ts +0 -2
  33. package/dist/tests/encoder.spec.d.ts.map +0 -1
  34. package/dist/tests/encoder.spec.js +0 -124
  35. package/dist/tests/testData.d.ts +0 -22
  36. package/dist/tests/testData.d.ts.map +0 -1
  37. package/dist/tests/testData.js +0 -22
  38. package/dist/tests/validator.spec.d.ts +0 -2
  39. package/dist/tests/validator.spec.d.ts.map +0 -1
  40. package/dist/tests/validator.spec.js +0 -208
  41. package/dist/tsconfig.tsbuildinfo +0 -1
  42. package/dist/vitest.config.d.ts +0 -3
  43. package/dist/vitest.config.d.ts.map +0 -1
  44. package/dist/vitest.config.js +0 -18
  45. package/lib/const.ts +0 -20
  46. package/lib/decoder.ts +0 -57
  47. package/lib/encoder.ts +0 -57
  48. package/lib/index.ts +0 -9
  49. package/lib/types.ts +0 -15
  50. package/lib/validator.ts +0 -59
  51. package/tests/decoder.spec.ts +0 -131
  52. package/tests/encoder.spec.ts +0 -143
  53. package/tests/testData.ts +0 -43
  54. package/tests/validator.spec.ts +0 -234
  55. package/tsconfig.build.json +0 -7
  56. package/tsconfig.build.tsbuildinfo +0 -1
  57. package/tsconfig.json +0 -7
  58. package/vitest.config.ts +0 -18
@@ -1,110 +0,0 @@
1
- import * as testData from './testData';
2
- import { UnsupportedAddressError, UnsupportedChainError, decodeAddress, } from '../lib';
3
- import { BITCOIN_CHAIN, CARDANO_CHAIN, DOGE_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, RUNES_CHAIN, } from '../lib/const';
4
- describe('decodeAddress', () => {
5
- /**
6
- * @target `decodeAddress` should decode Ergo address successfully
7
- * @dependencies
8
- * @scenario
9
- * - run test
10
- * - check returned value
11
- * @expected
12
- * - it should be address in base58 format
13
- */
14
- it('should decode Ergo address successfully', () => {
15
- const res = decodeAddress(ERGO_CHAIN, testData.encodedErgoAddress);
16
- expect(res).toEqual(testData.ergoAddress);
17
- });
18
- /**
19
- * @target `decodeAddress` should decode Cardano address successfully
20
- * @dependencies
21
- * @scenario
22
- * - run test
23
- * - check returned value
24
- * @expected
25
- * - it should be address in bech32 format
26
- */
27
- it('should decode Cardano address successfully', () => {
28
- const res = decodeAddress(CARDANO_CHAIN, testData.encodedCardanoAddress);
29
- expect(res).toEqual(testData.cardanoAddress);
30
- });
31
- /**
32
- * @target `decodeAddress` should decode Bitcoin address successfully
33
- * @dependencies
34
- * @scenario
35
- * - run test
36
- * - check returned value
37
- * @expected
38
- * - it should be address in bech32 format
39
- */
40
- it('should decode Bitcoin address successfully', () => {
41
- const res = decodeAddress(BITCOIN_CHAIN, testData.encodedBitcoinAddress);
42
- expect(res).toEqual(testData.bitcoinAddress);
43
- });
44
- /**
45
- * @target `decodeAddress` should decode Ethereum address successfully
46
- * @dependencies
47
- * @scenario
48
- * - run test
49
- * - check returned value
50
- * @expected
51
- * - it should be address in hex format
52
- */
53
- it('should decode Ethereum address successfully', () => {
54
- const res = decodeAddress(ETHEREUM_CHAIN, testData.encodedEthereumAddress);
55
- expect(res).toEqual(testData.ethereumAddress);
56
- });
57
- /**
58
- * @target `decodeAddress` should throw error when encoded address is more than 60 bytes
59
- * @dependencies
60
- * @scenario
61
- * - run test & check thrown exception
62
- * @expected
63
- * - it should throw UnsupportedAddress error
64
- */
65
- it('should throw error when encoded address is more than 60 bytes', () => {
66
- expect(() => {
67
- decodeAddress(ERGO_CHAIN, testData.longEncodedAddress);
68
- }).toThrow(UnsupportedAddressError);
69
- });
70
- /**
71
- * @target `decodeAddress` should throw error when chain is not supported
72
- * @dependencies
73
- * @scenario
74
- * - run test & check thrown exception
75
- * @expected
76
- * - it should throw UnsupportedChain error
77
- */
78
- it('should throw error when chain is not supported', () => {
79
- expect(() => {
80
- decodeAddress('unsupported-chain', '0011223344');
81
- }).toThrow(UnsupportedChainError);
82
- });
83
- /**
84
- * @target `decodeAddress` should decode Doge address successfully
85
- * @dependencies
86
- * @scenario
87
- * - run test
88
- * - check returned value
89
- * @expected
90
- * - it should be address in hex format
91
- */
92
- it('should decode Doge address successfully', () => {
93
- const res = decodeAddress(DOGE_CHAIN, testData.encodedDogeAddress);
94
- expect(res).toEqual(testData.dogeAddress);
95
- });
96
- /**
97
- * @target `decodeAddress` should decode Runes address successfully
98
- * @dependencies
99
- * @scenario
100
- * - run test
101
- * - check returned value
102
- * @expected
103
- * - it should be address in hex format
104
- */
105
- it('should decode Runes address successfully', () => {
106
- const res = decodeAddress(RUNES_CHAIN, testData.encodedTaprootBitcoinAddress);
107
- expect(res).toEqual(testData.taprootBitcoinAddress);
108
- });
109
- });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvZGVjb2Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxjQUFjLENBQUM7QUFFdEIsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0I7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1FBQ2pELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDM0UsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtRQUN2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixhQUFhLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQ3ZCLFdBQVcsRUFDWCxRQUFRLENBQUMsNEJBQTRCLENBQ3RDLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuL3Rlc3REYXRhJztcbmltcG9ydCB7XG4gIFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLFxuICBVbnN1cHBvcnRlZENoYWluRXJyb3IsXG4gIGRlY29kZUFkZHJlc3MsXG59IGZyb20gJy4uL2xpYic7XG5pbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBET0dFX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbiAgUlVORVNfQ0hBSU4sXG59IGZyb20gJy4uL2xpYi9jb25zdCc7XG5cbmRlc2NyaWJlKCdkZWNvZGVBZGRyZXNzJywgKCkgPT4ge1xuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIGRlY29kZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgYmUgYWRkcmVzcyBpbiBiYXNlNTggZm9ybWF0XG4gICAqL1xuICBpdCgnc2hvdWxkIGRlY29kZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGRlY29kZUFkZHJlc3MoRVJHT19DSEFJTiwgdGVzdERhdGEuZW5jb2RlZEVyZ29BZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRlc3REYXRhLmVyZ29BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGRlY29kZUFkZHJlc3NgIHNob3VsZCBkZWNvZGUgQ2FyZGFubyBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIGFkZHJlc3MgaW4gYmVjaDMyIGZvcm1hdFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBkZWNvZGUgQ2FyZGFubyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBkZWNvZGVBZGRyZXNzKENBUkRBTk9fQ0hBSU4sIHRlc3REYXRhLmVuY29kZWRDYXJkYW5vQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5jYXJkYW5vQWRkcmVzcyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgZGVjb2RlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBhZGRyZXNzIGluIGJlY2gzMiBmb3JtYXRcbiAgICovXG4gIGl0KCdzaG91bGQgZGVjb2RlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5lbmNvZGVkQml0Y29pbkFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuYml0Y29pbkFkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIGRlY29kZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIGFkZHJlc3MgaW4gaGV4IGZvcm1hdFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBkZWNvZGUgRXRoZXJldW0gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlQWRkcmVzcyhFVEhFUkVVTV9DSEFJTiwgdGVzdERhdGEuZW5jb2RlZEV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5ldGhlcmV1bUFkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRBZGRyZXNzIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZGVjb2RlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5sb25nRW5jb2RlZEFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRDaGFpbiBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNoYWluIGlzIG5vdCBzdXBwb3J0ZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGRlY29kZUFkZHJlc3MoJ3Vuc3VwcG9ydGVkLWNoYWluJywgJzAwMTEyMjMzNDQnKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQ2hhaW5FcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgZGVjb2RlIERvZ2UgYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBhZGRyZXNzIGluIGhleCBmb3JtYXRcbiAgICovXG4gIGl0KCdzaG91bGQgZGVjb2RlIERvZ2UgYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlQWRkcmVzcyhET0dFX0NIQUlOLCB0ZXN0RGF0YS5lbmNvZGVkRG9nZUFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZG9nZUFkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIGRlY29kZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIGFkZHJlc3MgaW4gaGV4IGZvcm1hdFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBkZWNvZGUgUnVuZXMgYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlQWRkcmVzcyhcbiAgICAgIFJVTkVTX0NIQUlOLFxuICAgICAgdGVzdERhdGEuZW5jb2RlZFRhcHJvb3RCaXRjb2luQWRkcmVzc1xuICAgICk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS50YXByb290Qml0Y29pbkFkZHJlc3MpO1xuICB9KTtcbn0pO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=encoder.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encoder.spec.d.ts","sourceRoot":"","sources":["../../tests/encoder.spec.ts"],"names":[],"mappings":""}
@@ -1,124 +0,0 @@
1
- import * as testData from './testData';
2
- import { UnsupportedAddressError, UnsupportedChainError, encodeAddress, } from '../lib';
3
- import { BITCOIN_CHAIN, CARDANO_CHAIN, DOGE_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, RUNES_CHAIN, } from '../lib/const';
4
- describe('encodeAddress', () => {
5
- /**
6
- * @target `encodeAddress` should encode Ergo address successfully
7
- * @dependencies
8
- * @scenario
9
- * - run test
10
- * - check returned value
11
- * @expected
12
- * - it should be public key of given address in hex
13
- */
14
- it('should encode Ergo address successfully', () => {
15
- const res = encodeAddress(ERGO_CHAIN, testData.ergoAddress);
16
- expect(res).toEqual(testData.encodedErgoAddress);
17
- });
18
- /**
19
- * @target `encodeAddress` should encode Cardano address successfully
20
- * @dependencies
21
- * @scenario
22
- * - run test
23
- * - check returned value
24
- * @expected
25
- * - it should be public key of given address in hex
26
- */
27
- it('should encode Cardano address successfully', () => {
28
- const res = encodeAddress(CARDANO_CHAIN, testData.cardanoAddress);
29
- expect(res).toEqual(testData.encodedCardanoAddress);
30
- });
31
- /**
32
- * @target `encodeAddress` should encode Bitcoin address successfully
33
- * @dependencies
34
- * @scenario
35
- * - run test
36
- * - check returned value
37
- * @expected
38
- * - it should be output script of given address in hex
39
- */
40
- it('should encode Bitcoin address successfully', () => {
41
- const res = encodeAddress(BITCOIN_CHAIN, testData.bitcoinAddress);
42
- expect(res).toEqual(testData.encodedBitcoinAddress);
43
- });
44
- /**
45
- * @target `encodeAddress` should encode Ethereum address successfully
46
- * @dependencies
47
- * @scenario
48
- * - run test
49
- * - check returned value
50
- * @expected
51
- * - it should be output script of given address in hex
52
- */
53
- it('should encode Ethereum address successfully', () => {
54
- const res = encodeAddress(ETHEREUM_CHAIN, testData.ethereumAddress);
55
- expect(res).toEqual(testData.encodedEthereumAddress);
56
- });
57
- /**
58
- * @target `encodeAddress` should throw error when address is not 40 bytes
59
- * @dependencies
60
- * @scenario
61
- * - run test
62
- * - run test & check thrown exception
63
- * @expected
64
- * - it should throw UnsupportedAddress error
65
- */
66
- it('should encode Ethereum address successfully', () => {
67
- expect(() => {
68
- encodeAddress(ETHEREUM_CHAIN, testData.invalidEthereumAddressLength);
69
- }).toThrow(UnsupportedAddressError);
70
- });
71
- /**
72
- * @target `encodeAddress` should throw error when encoded address is more than 60 bytes
73
- * @dependencies
74
- * @scenario
75
- * - run test & check thrown exception
76
- * @expected
77
- * - it should throw UnsupportedAddress error
78
- */
79
- it('should throw error when encoded address is more than 60 bytes', () => {
80
- expect(() => {
81
- encodeAddress(ERGO_CHAIN, testData.longErgoAddress);
82
- }).toThrow(UnsupportedAddressError);
83
- });
84
- /**
85
- * @target `encodeAddress` should throw error when chain is not supported
86
- * @dependencies
87
- * @scenario
88
- * - run test & check thrown exception
89
- * @expected
90
- * - it should throw UnsupportedChain error
91
- */
92
- it('should throw error when chain is not supported', () => {
93
- expect(() => {
94
- encodeAddress('unsupported-chain', 'address');
95
- }).toThrow(UnsupportedChainError);
96
- });
97
- /**
98
- * @target `encodeAddress` should encode Doge address successfully
99
- * @dependencies
100
- * @scenario
101
- * - run test
102
- * - check returned value
103
- * @expected
104
- * - it should be output script of given address in hex
105
- */
106
- it('should encode Doge address successfully', () => {
107
- const res = encodeAddress(DOGE_CHAIN, testData.dogeAddress);
108
- expect(res).toEqual(testData.encodedDogeAddress);
109
- });
110
- /**
111
- * @target `encodeAddress` should encode Runes address successfully
112
- * @dependencies
113
- * @scenario
114
- * - run test
115
- * - check returned value
116
- * @expected
117
- * - it should be output script of given address in hex
118
- */
119
- it('should encode Runes address successfully', () => {
120
- const res = encodeAddress(RUNES_CHAIN, testData.taprootBitcoinAddress);
121
- expect(res).toEqual(testData.encodedTaprootBitcoinAddress);
122
- });
123
- });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvZW5jb2Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxjQUFjLENBQUM7QUFFdEIsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0I7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1FBQ2pELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGFBQWEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLCtEQUErRCxFQUFFLEdBQUcsRUFBRTtRQUN2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUN4RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsYUFBYSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1FBQ2pELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7UUFDbEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuL3Rlc3REYXRhJztcbmltcG9ydCB7XG4gIFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLFxuICBVbnN1cHBvcnRlZENoYWluRXJyb3IsXG4gIGVuY29kZUFkZHJlc3MsXG59IGZyb20gJy4uL2xpYic7XG5pbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBET0dFX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbiAgUlVORVNfQ0hBSU4sXG59IGZyb20gJy4uL2xpYi9jb25zdCc7XG5cbmRlc2NyaWJlKCdlbmNvZGVBZGRyZXNzJywgKCkgPT4ge1xuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIGVuY29kZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgYmUgcHVibGljIGtleSBvZiBnaXZlbiBhZGRyZXNzIGluIGhleFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBlbmNvZGUgRXJnbyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBlbmNvZGVBZGRyZXNzKEVSR09fQ0hBSU4sIHRlc3REYXRhLmVyZ29BZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRlc3REYXRhLmVuY29kZWRFcmdvQWRkcmVzcyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBlbmNvZGVBZGRyZXNzYCBzaG91bGQgZW5jb2RlIENhcmRhbm8gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBwdWJsaWMga2V5IG9mIGdpdmVuIGFkZHJlc3MgaW4gaGV4XG4gICAqL1xuICBpdCgnc2hvdWxkIGVuY29kZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGVuY29kZUFkZHJlc3MoQ0FSREFOT19DSEFJTiwgdGVzdERhdGEuY2FyZGFub0FkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZW5jb2RlZENhcmRhbm9BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGVuY29kZUFkZHJlc3NgIHNob3VsZCBlbmNvZGUgQml0Y29pbiBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIG91dHB1dCBzY3JpcHQgb2YgZ2l2ZW4gYWRkcmVzcyBpbiBoZXhcbiAgICovXG4gIGl0KCdzaG91bGQgZW5jb2RlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZW5jb2RlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5lbmNvZGVkQml0Y29pbkFkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIGVuY29kZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIG91dHB1dCBzY3JpcHQgb2YgZ2l2ZW4gYWRkcmVzcyBpbiBoZXhcbiAgICovXG4gIGl0KCdzaG91bGQgZW5jb2RlIEV0aGVyZXVtIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGVuY29kZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5lbmNvZGVkRXRoZXJldW1BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGVuY29kZUFkZHJlc3NgIHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIGFkZHJlc3MgaXMgbm90IDQwIGJ5dGVzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBydW4gdGVzdCAmIGNoZWNrIHRocm93biBleGNlcHRpb25cbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIHRocm93IFVuc3VwcG9ydGVkQWRkcmVzcyBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCBlbmNvZGUgRXRoZXJldW0gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRFdGhlcmV1bUFkZHJlc3NMZW5ndGgpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRBZGRyZXNzIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZW5jb2RlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5sb25nRXJnb0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRDaGFpbiBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNoYWluIGlzIG5vdCBzdXBwb3J0ZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoJ3Vuc3VwcG9ydGVkLWNoYWluJywgJ2FkZHJlc3MnKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQ2hhaW5FcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBlbmNvZGVBZGRyZXNzYCBzaG91bGQgZW5jb2RlIERvZ2UgYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBvdXRwdXQgc2NyaXB0IG9mIGdpdmVuIGFkZHJlc3MgaW4gaGV4XG4gICAqL1xuICBpdCgnc2hvdWxkIGVuY29kZSBEb2dlIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGVuY29kZUFkZHJlc3MoRE9HRV9DSEFJTiwgdGVzdERhdGEuZG9nZUFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZW5jb2RlZERvZ2VBZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGVuY29kZUFkZHJlc3NgIHNob3VsZCBlbmNvZGUgUnVuZXMgYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBvdXRwdXQgc2NyaXB0IG9mIGdpdmVuIGFkZHJlc3MgaW4gaGV4XG4gICAqL1xuICBpdCgnc2hvdWxkIGVuY29kZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBlbmNvZGVBZGRyZXNzKFJVTkVTX0NIQUlOLCB0ZXN0RGF0YS50YXByb290Qml0Y29pbkFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZW5jb2RlZFRhcHJvb3RCaXRjb2luQWRkcmVzcyk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- export declare const ergoAddress = "9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVd";
2
- export declare const encodedErgoAddress = "03f999da8e6e42660e4464d17d29e63bc006734a6710a24eb489b466323d3a9339";
3
- export declare const invalidErgoAddress = "9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVD";
4
- export declare const cardanoAddress = "addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqet";
5
- export declare const encodedCardanoAddress = "018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1";
6
- export declare const invalidCardanoAddress = "addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqee";
7
- export declare const bitcoinAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h";
8
- export declare const invalidBitcoinAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6";
9
- export declare const taprootBitcoinAddress = "bc1px0ad45qrfwc20yfd9wljeytrvfa6tmrcxv6pgxze2svvx00tp7mstj5rpk";
10
- export declare const encodedTaprootBitcoinAddress = "512033fadad0034bb0a7912d2bbf2c9163627ba5ec7833341418595418c33deb0fb7";
11
- export declare const encodedBitcoinAddress = "0014b20272a6591937ba7d687dc889f3637ed40efa6a";
12
- export declare const longErgoAddress = "nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6";
13
- export declare const longEncodedAddress = "100304000e20a6ac381e6fa99929fd1477b3ba9499790a775e91d4c14c5aa86e9a118dfac8530400d801d601b2db6501fe730000ea02d1aedb63087201d901024d0e938c720201730198b2e4c672010510730200ade4c67201041ad901020ecdee7202";
14
- export declare const ethereumAddress = "0xb416c8a6d7ec94706a9ae2c26c11d320519482b1";
15
- export declare const encodedEthereumAddress = "b416c8a6d7ec94706a9ae2c26c11d320519482b1";
16
- export declare const invalidEthereumAddressLength = "0xb416c8a7ec94706a9ae2c26c11d320519482b1";
17
- export declare const invalidEthereumIcapAddress = "XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36";
18
- export declare const invalidEthereumChecksumAddress = "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97";
19
- export declare const dogeAddress = "A69cznKpaYVWjzU3sNFZnGhbpSmUVFzvHB";
20
- export declare const invalidDogeAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h";
21
- export declare const encodedDogeAddress = "a914966ba9f4755996c3d51025d53044b415121bc10287";
22
- //# sourceMappingURL=testData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testData.d.ts","sourceRoot":"","sources":["../../tests/testData.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,wDAC+B,CAAC;AACxD,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AACvE,eAAO,MAAM,kBAAkB,wDACwB,CAAC;AAExD,eAAO,MAAM,cAAc,4GACgF,CAAC;AAC5G,eAAO,MAAM,qBAAqB,uHACoF,CAAC;AACvH,eAAO,MAAM,qBAAqB,4GACyE,CAAC;AAE5G,eAAO,MAAM,cAAc,+CAA+C,CAAC;AAC3E,eAAO,MAAM,qBAAqB,8CACW,CAAC;AAC9C,eAAO,MAAM,qBAAqB,mEACgC,CAAC;AACnE,eAAO,MAAM,4BAA4B,yEAC+B,CAAC;AACzE,eAAO,MAAM,qBAAqB,iDACc,CAAC;AAEjD,eAAO,MAAM,eAAe,kJACqH,CAAC;AAClJ,eAAO,MAAM,kBAAkB,2MAC2K,CAAC;AAE3M,eAAO,MAAM,eAAe,+CAA+C,CAAC;AAC5E,eAAO,MAAM,sBAAsB,6CACS,CAAC;AAE7C,eAAO,MAAM,4BAA4B,6CACG,CAAC;AAC7C,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAChF,eAAO,MAAM,8BAA8B,+CACG,CAAC;AAE/C,eAAO,MAAM,WAAW,uCAAuC,CAAC;AAChE,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,kBAAkB,mDACmB,CAAC"}
@@ -1,22 +0,0 @@
1
- export const ergoAddress = '9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVd';
2
- export const encodedErgoAddress = '03f999da8e6e42660e4464d17d29e63bc006734a6710a24eb489b466323d3a9339';
3
- export const invalidErgoAddress = '9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVD';
4
- export const cardanoAddress = 'addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqet';
5
- export const encodedCardanoAddress = '018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1';
6
- export const invalidCardanoAddress = 'addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqee';
7
- export const bitcoinAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h';
8
- export const invalidBitcoinAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6';
9
- export const taprootBitcoinAddress = 'bc1px0ad45qrfwc20yfd9wljeytrvfa6tmrcxv6pgxze2svvx00tp7mstj5rpk';
10
- export const encodedTaprootBitcoinAddress = '512033fadad0034bb0a7912d2bbf2c9163627ba5ec7833341418595418c33deb0fb7';
11
- export const encodedBitcoinAddress = '0014b20272a6591937ba7d687dc889f3637ed40efa6a';
12
- export const longErgoAddress = 'nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6';
13
- export const longEncodedAddress = '100304000e20a6ac381e6fa99929fd1477b3ba9499790a775e91d4c14c5aa86e9a118dfac8530400d801d601b2db6501fe730000ea02d1aedb63087201d901024d0e938c720201730198b2e4c672010510730200ade4c67201041ad901020ecdee7202';
14
- export const ethereumAddress = '0xb416c8a6d7ec94706a9ae2c26c11d320519482b1';
15
- export const encodedEthereumAddress = 'b416c8a6d7ec94706a9ae2c26c11d320519482b1';
16
- export const invalidEthereumAddressLength = '0xb416c8a7ec94706a9ae2c26c11d320519482b1';
17
- export const invalidEthereumIcapAddress = 'XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36';
18
- export const invalidEthereumChecksumAddress = '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97';
19
- export const dogeAddress = 'A69cznKpaYVWjzU3sNFZnGhbpSmUVFzvHB';
20
- export const invalidDogeAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h';
21
- export const encodedDogeAddress = 'a914966ba9f4755996c3d51025d53044b415121bc10287';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy90ZXN0RGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQ3RCLHFEQUFxRCxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixvRUFBb0UsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0IscURBQXFELENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUN6Qix5R0FBeUcsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsb0hBQW9ILENBQUM7QUFDdkgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLHlHQUF5RyxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyw0Q0FBNEMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsMkNBQTJDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLGdFQUFnRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUN2QyxzRUFBc0UsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsOENBQThDLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUMxQiwrSUFBK0ksQ0FBQztBQUNsSixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0Isd01BQXdNLENBQUM7QUFFM00sTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLDRDQUE0QyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUNqQywwQ0FBMEMsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FDdkMsMENBQTBDLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcscUNBQXFDLENBQUM7QUFDaEYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3pDLDRDQUE0QyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw0Q0FBNEMsQ0FBQztBQUMvRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0IsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXJnb0FkZHJlc3MgPVxuICAnOWlNalF4OFB6d0JLWFJ2c0ZVSkZKQVBveTMxem5mRWVCVUd6OERSa2NuSlg0ckpZalZkJztcbmV4cG9ydCBjb25zdCBlbmNvZGVkRXJnb0FkZHJlc3MgPVxuICAnMDNmOTk5ZGE4ZTZlNDI2NjBlNDQ2NGQxN2QyOWU2M2JjMDA2NzM0YTY3MTBhMjRlYjQ4OWI0NjYzMjNkM2E5MzM5JztcbmV4cG9ydCBjb25zdCBpbnZhbGlkRXJnb0FkZHJlc3MgPVxuICAnOWlNalF4OFB6d0JLWFJ2c0ZVSkZKQVBveTMxem5mRWVCVUd6OERSa2NuSlg0ckpZalZEJztcblxuZXhwb3J0IGNvbnN0IGNhcmRhbm9BZGRyZXNzID1cbiAgJ2FkZHIxcXh4YTNrZm5uaDQweXF0ZXBhNWZydDB0a3c0YTByeXM3djMzNDIybHp0OGdseDQzc3F0ZDR2a2hqemF3YWplajhhdWpoMjdwNWE1NHp4NjJ4ZjN3dnVwbHlucXMzZnNxZXQnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRDYXJkYW5vQWRkcmVzcyA9XG4gICcwMThkZDhkOTMzOWRlYWYyMDE3OTBmNjg5MWFkZWJiM2FiZDc4YzkwZjMyMzFhYTk1ZjEyY2U4ZjlhYjE4MDE2ZGFiMmQ3OTBiYWVlY2IzMjNmNzkyYmFiYzFhNzY5NTExYjRhMzI2MmU2NzAzZjI0YzEnO1xuZXhwb3J0IGNvbnN0IGludmFsaWRDYXJkYW5vQWRkcmVzcyA9XG4gICdhZGRyMXF4eGEza2Zubmg0MHlxdGVwYTVmcnQwdGt3NGEwcnlzN3YzMzQyMmx6dDhnbHg0M3NxdGQ0dmtoanphd2FqZWo4YXVqaDI3cDVhNTR6eDYyeGYzd3Z1cGx5bnFzM2ZzcWVlJztcblxuZXhwb3J0IGNvbnN0IGJpdGNvaW5BZGRyZXNzID0gJ2JjMXFrZ3A4OWZqZXJ5bW01bHRnMGh5Z251bXIwbTJxYTduMjJneXc2aCc7XG5leHBvcnQgY29uc3QgaW52YWxpZEJpdGNvaW5BZGRyZXNzID1cbiAgJ2JjMXFrZ3A4OWZqZXJ5bW01bHRnMGh5Z251bXIwbTJxYTduMjJneXc2JztcbmV4cG9ydCBjb25zdCB0YXByb290Qml0Y29pbkFkZHJlc3MgPVxuICAnYmMxcHgwYWQ0NXFyZndjMjB5ZmQ5d2xqZXl0cnZmYTZ0bXJjeHY2cGd4emUyc3Z2eDAwdHA3bXN0ajVycGsnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRUYXByb290Qml0Y29pbkFkZHJlc3MgPVxuICAnNTEyMDMzZmFkYWQwMDM0YmIwYTc5MTJkMmJiZjJjOTE2MzYyN2JhNWVjNzgzMzM0MTQxODU5NTQxOGMzM2RlYjBmYjcnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRCaXRjb2luQWRkcmVzcyA9XG4gICcwMDE0YjIwMjcyYTY1OTE5MzdiYTdkNjg3ZGM4ODlmMzYzN2VkNDBlZmE2YSc7XG5cbmV4cG9ydCBjb25zdCBsb25nRXJnb0FkZHJlc3MgPVxuICAnbkIzTDJQRDNMQnRpTmhEWUs3WGhaOG5WdDZ1ZWtCWE43UmNQVUtnZEtMWEZjckppU1B4bVFzVUt1VWtUUlExaGJ2RHJ4RVFBS1l1ckdGYmFHRDFSUHhVN1hxUWltRDc4ajIzSEhNUUtMMWJvVUdzbk5oQ3hhVk5BWU1jRmJRTm8zNTVBZjhjV2toQU42JztcbmV4cG9ydCBjb25zdCBsb25nRW5jb2RlZEFkZHJlc3MgPVxuICAnMTAwMzA0MDAwZTIwYTZhYzM4MWU2ZmE5OTkyOWZkMTQ3N2IzYmE5NDk5NzkwYTc3NWU5MWQ0YzE0YzVhYTg2ZTlhMTE4ZGZhYzg1MzA0MDBkODAxZDYwMWIyZGI2NTAxZmU3MzAwMDBlYTAyZDFhZWRiNjMwODcyMDFkOTAxMDI0ZDBlOTM4YzcyMDIwMTczMDE5OGIyZTRjNjcyMDEwNTEwNzMwMjAwYWRlNGM2NzIwMTA0MWFkOTAxMDIwZWNkZWU3MjAyJztcblxuZXhwb3J0IGNvbnN0IGV0aGVyZXVtQWRkcmVzcyA9ICcweGI0MTZjOGE2ZDdlYzk0NzA2YTlhZTJjMjZjMTFkMzIwNTE5NDgyYjEnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRFdGhlcmV1bUFkZHJlc3MgPVxuICAnYjQxNmM4YTZkN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkRXRoZXJldW1BZGRyZXNzTGVuZ3RoID1cbiAgJzB4YjQxNmM4YTdlYzk0NzA2YTlhZTJjMjZjMTFkMzIwNTE5NDgyYjEnO1xuZXhwb3J0IGNvbnN0IGludmFsaWRFdGhlcmV1bUljYXBBZGRyZXNzID0gJ1hFNjVHQjZMRE5YWU9GVFgwTlNWM0ZVV0tPV0lYQU1KSzM2JztcbmV4cG9ydCBjb25zdCBpbnZhbGlkRXRoZXJldW1DaGVja3N1bUFkZHJlc3MgPVxuICAnMHg0ODM4QjEwNkZDZTk2NDdCZGYxRTc4NzdCRjczY0U4QjBCQUQ1Zjk3JztcblxuZXhwb3J0IGNvbnN0IGRvZ2VBZGRyZXNzID0gJ0E2OWN6bktwYVlWV2p6VTNzTkZabkdoYnBTbVVWRnp2SEInO1xuZXhwb3J0IGNvbnN0IGludmFsaWREb2dlQWRkcmVzcyA9ICdiYzFxa2dwODlmamVyeW1tNWx0ZzBoeWdudW1yMG0ycWE3bjIyZ3l3NmgnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWREb2dlQWRkcmVzcyA9XG4gICdhOTE0OTY2YmE5ZjQ3NTU5OTZjM2Q1MTAyNWQ1MzA0NGI0MTUxMjFiYzEwMjg3JztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validator.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.spec.d.ts","sourceRoot":"","sources":["../../tests/validator.spec.ts"],"names":[],"mappings":""}
@@ -1,208 +0,0 @@
1
- import * as testData from './testData';
2
- import { UnsupportedAddressError, UnsupportedChainError, validateAddress, } from '../lib';
3
- import { BITCOIN_CHAIN, CARDANO_CHAIN, DOGE_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, RUNES_CHAIN, } from '../lib/const';
4
- describe('validateAddress', () => {
5
- /**
6
- * @target `validateAddress` should validate Ergo address successfully
7
- * @dependencies
8
- * @scenario
9
- * - run test
10
- * @expected
11
- * - to validate correct Ergo address
12
- */
13
- it('should validate Ergo address successfully', () => {
14
- const res = validateAddress(ERGO_CHAIN, testData.ergoAddress);
15
- expect(res).toEqual(true);
16
- });
17
- /**
18
- * @target `validateAddress` should throw error for wrong Ergo address
19
- * @dependencies
20
- * @scenario
21
- * - run test
22
- * @expected
23
- * - to throw error for wrong Ergo address
24
- */
25
- it('should throw error for wrong Ergo address', () => {
26
- expect(() => {
27
- validateAddress(ERGO_CHAIN, testData.invalidErgoAddress);
28
- }).toThrow();
29
- });
30
- /**
31
- * @target `validateAddress` should validate Cardano address successfully
32
- * @dependencies
33
- * @scenario
34
- * - run test
35
- * @expected
36
- * - to validate correct Cardano address
37
- */
38
- it('should validate Cardano address successfully', () => {
39
- const res = validateAddress(CARDANO_CHAIN, testData.cardanoAddress);
40
- expect(res).toEqual(true);
41
- });
42
- /**
43
- * @target `validateAddress` should throw error for wrong Cardano address
44
- * @dependencies
45
- * @scenario
46
- * - run test
47
- * @expected
48
- * - to throw error for wrong Cardano address
49
- */
50
- it('should throw error for wrong Cardano address', () => {
51
- expect(() => {
52
- validateAddress(CARDANO_CHAIN, testData.invalidCardanoAddress);
53
- }).toThrow();
54
- });
55
- /**
56
- * @target `validateAddress` should validate Bitcoin address successfully
57
- * @dependencies
58
- * @scenario
59
- * - run test
60
- * @expected
61
- * - to validate correct Bitcoin address
62
- */
63
- it('should validate Bitcoin address successfully', () => {
64
- const res = validateAddress(BITCOIN_CHAIN, testData.bitcoinAddress);
65
- expect(res).toEqual(true);
66
- });
67
- /**
68
- * @target `validateAddress` should throw error for Bitcoin taproot address
69
- * @dependencies
70
- * @scenario
71
- * - run test
72
- * @expected
73
- * - to throw error for Bitcoin taproot address
74
- */
75
- it('should throw error for Bitcoin taproot address', () => {
76
- expect(() => {
77
- validateAddress(BITCOIN_CHAIN, testData.taprootBitcoinAddress);
78
- }).toThrow(UnsupportedAddressError);
79
- });
80
- /**
81
- * @target `validateAddress` should throw error for wrong Bitcoin address
82
- * @dependencies
83
- * @scenario
84
- * - run test
85
- * @expected
86
- * - to throw error for wrong Bitcoin address
87
- */
88
- it('should throw error for wrong Bitcoin address', () => {
89
- expect(() => {
90
- validateAddress(BITCOIN_CHAIN, testData.invalidBitcoinAddress);
91
- }).toThrowError();
92
- });
93
- /**
94
- * @target `validateAddress` should validate Ethereum address successfully
95
- * @dependencies
96
- * @scenario
97
- * - run test
98
- * @expected
99
- * - to validate correct Ethereum address
100
- */
101
- it('should validate Ethereum address successfully', () => {
102
- const res = validateAddress(ETHEREUM_CHAIN, testData.ethereumAddress);
103
- expect(res).toEqual(true);
104
- });
105
- /**
106
- * @target `validateAddress` should throw error for ICAP Ethereum address
107
- * @dependencies
108
- * @scenario
109
- * - run test
110
- * @expected
111
- * - to throw error for ICAP Ethereum address
112
- */
113
- it('should throw error for ICAP Ethereum address', () => {
114
- expect(() => {
115
- validateAddress(ETHEREUM_CHAIN, testData.invalidEthereumIcapAddress);
116
- }).toThrow(UnsupportedAddressError);
117
- });
118
- /**
119
- * @target `validateAddress` should throw error for Ethereum address with checksum
120
- * @dependencies
121
- * @scenario
122
- * - run test
123
- * @expected
124
- * - to throw error for Ethereum address with checksum
125
- */
126
- it('should throw error for Ethereum address with checksum', () => {
127
- expect(() => {
128
- validateAddress(ETHEREUM_CHAIN, testData.invalidEthereumChecksumAddress);
129
- }).toThrow(UnsupportedAddressError);
130
- });
131
- /**
132
- * @target `validateAddress` should throw error for wrong Ethereum address
133
- * @dependencies
134
- * @scenario
135
- * - run test
136
- * @expected
137
- * - to throw error for wrong Ethereum address
138
- */
139
- it('should throw error for wrong Ethereum address', () => {
140
- expect(() => {
141
- validateAddress(ETHEREUM_CHAIN, testData.invalidEthereumAddressLength);
142
- }).toThrow(UnsupportedAddressError);
143
- });
144
- /**
145
- * @target `validateAddress` should throw error when chain is not supported
146
- * @dependencies
147
- * @scenario
148
- * - run test
149
- * @expected
150
- * - it should throw UnsupportedChain error
151
- */
152
- it('should throw error when chain is not supported', () => {
153
- expect(() => {
154
- validateAddress('unsupported-chain', '0011223344');
155
- }).toThrow(UnsupportedChainError);
156
- });
157
- /**
158
- * @target `validateAddress` should validate Doge address successfully
159
- * @dependencies
160
- * @scenario
161
- * - run test
162
- * @expected
163
- * - to validate correct Doge address
164
- */
165
- it('should validate Doge address successfully', () => {
166
- const res = validateAddress(DOGE_CHAIN, testData.dogeAddress);
167
- expect(res).toEqual(true);
168
- });
169
- /**
170
- * @target `validateAddress` should throw error for wrong Doge address
171
- * @dependencies
172
- * @scenario
173
- * - run test
174
- * @expected
175
- * - to throw error for wrong Doge address
176
- */
177
- it('should throw error for wrong Doge address', () => {
178
- expect(() => {
179
- validateAddress(DOGE_CHAIN, testData.invalidDogeAddress);
180
- }).toThrow(UnsupportedAddressError);
181
- });
182
- /**
183
- * @target `validateAddress` should validate Runes address successfully
184
- * @dependencies
185
- * @scenario
186
- * - run test
187
- * @expected
188
- * - to validate correct Runes address
189
- */
190
- it('should validate Runes address successfully', () => {
191
- const res = validateAddress(RUNES_CHAIN, testData.taprootBitcoinAddress);
192
- expect(res).toEqual(true);
193
- });
194
- /**
195
- * @target `validateAddress` should throw error for wrong Runes address
196
- * @dependencies
197
- * @scenario
198
- * - run test
199
- * @expected
200
- * - to throw error for wrong Runes address
201
- */
202
- it('should throw error for wrong Runes address', () => {
203
- expect(() => {
204
- validateAddress(RUNES_CHAIN, testData.bitcoinAddress);
205
- }).toThrow(UnsupportedAddressError);
206
- });
207
- });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy92YWxpZGF0b3Iuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixlQUFlLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1YsY0FBYyxFQUNkLFdBQVcsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9COzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJ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Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuL3Rlc3REYXRhJztcbmltcG9ydCB7XG4gIFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLFxuICBVbnN1cHBvcnRlZENoYWluRXJyb3IsXG4gIHZhbGlkYXRlQWRkcmVzcyxcbn0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7XG4gIEJJVENPSU5fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIERPR0VfQ0hBSU4sXG4gIEVSR09fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxuICBSVU5FU19DSEFJTixcbn0gZnJvbSAnLi4vbGliL2NvbnN0JztcblxuZGVzY3JpYmUoJ3ZhbGlkYXRlQWRkcmVzcycsICgpID0+IHtcbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEVyZ28gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEVyZ28gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5lcmdvQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXJnbyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXJnb0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIENhcmRhbm8gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IENhcmRhbm8gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5jYXJkYW5vQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgQ2FyZGFubyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkQ2FyZGFub0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEJpdGNvaW4gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBCaXRjb2luIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgQml0Y29pbiB0YXByb290IGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS50YXByb290Qml0Y29pbkFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciB3cm9uZyBCaXRjb2luIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEJJVENPSU5fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRCaXRjb2luQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3IgSUNBUCBFdGhlcmV1bSBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFVEhFUkVVTV9DSEFJTiwgdGVzdERhdGEuaW52YWxpZEV0aGVyZXVtSWNhcEFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBFdGhlcmV1bSBhZGRyZXNzIHdpdGggY2hlY2tzdW1cbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bScsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1DaGVja3N1bUFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1BZGRyZXNzTGVuZ3RoKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZENoYWluIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKCd1bnN1cHBvcnRlZC1jaGFpbicsICcwMDExMjIzMzQ0Jyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZENoYWluRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdmFsaWRhdGUgRG9nZSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgRG9nZSBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHZhbGlkYXRlIERvZ2UgYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdmFsaWRhdGVBZGRyZXNzKERPR0VfQ0hBSU4sIHRlc3REYXRhLmRvZ2VBZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIERvZ2UgYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciB3cm9uZyBEb2dlIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIERvZ2UgYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKERPR0VfQ0hBSU4sIHRlc3REYXRhLmludmFsaWREb2dlQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgUnVuZXMgYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoUlVORVNfQ0hBSU4sIHRlc3REYXRhLnRhcHJvb3RCaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBSdW5lcyBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gdG8gdGhyb3cgZXJyb3IgZm9yIHdyb25nIFJ1bmVzIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIFJ1bmVzIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhSVU5FU19DSEFJTiwgdGVzdERhdGEuYml0Y29pbkFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcbn0pO1xuIl19