@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.
- package/CHANGELOG.md +12 -0
- package/dist/decoder.d.ts.map +1 -1
- package/dist/decoder.js +1 -1
- package/dist/encoder.d.ts.map +1 -1
- package/dist/encoder.js +1 -1
- package/dist/types.js +1 -1
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +3 -3
- package/package.json +22 -18
- package/.eslintignore +0 -1
- package/dist/lib/const.d.ts +0 -19
- package/dist/lib/const.d.ts.map +0 -1
- package/dist/lib/const.js +0 -20
- package/dist/lib/decoder.d.ts +0 -8
- package/dist/lib/decoder.d.ts.map +0 -1
- package/dist/lib/decoder.js +0 -35
- package/dist/lib/encoder.d.ts +0 -8
- package/dist/lib/encoder.d.ts.map +0 -1
- package/dist/lib/encoder.js +0 -44
- package/dist/lib/index.d.ts +0 -5
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -8
- package/dist/lib/types.d.ts +0 -7
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -11
- package/dist/lib/validator.d.ts +0 -7
- package/dist/lib/validator.d.ts.map +0 -1
- package/dist/lib/validator.js +0 -52
- package/dist/tests/decoder.spec.d.ts +0 -2
- package/dist/tests/decoder.spec.d.ts.map +0 -1
- package/dist/tests/decoder.spec.js +0 -110
- package/dist/tests/encoder.spec.d.ts +0 -2
- package/dist/tests/encoder.spec.d.ts.map +0 -1
- package/dist/tests/encoder.spec.js +0 -124
- package/dist/tests/testData.d.ts +0 -22
- package/dist/tests/testData.d.ts.map +0 -1
- package/dist/tests/testData.js +0 -22
- package/dist/tests/validator.spec.d.ts +0 -2
- package/dist/tests/validator.spec.d.ts.map +0 -1
- package/dist/tests/validator.spec.js +0 -208
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -18
- package/lib/const.ts +0 -20
- package/lib/decoder.ts +0 -57
- package/lib/encoder.ts +0 -57
- package/lib/index.ts +0 -9
- package/lib/types.ts +0 -15
- package/lib/validator.ts +0 -59
- package/tests/decoder.spec.ts +0 -131
- package/tests/encoder.spec.ts +0 -143
- package/tests/testData.ts +0 -43
- package/tests/validator.spec.ts +0 -234
- package/tsconfig.build.json +0 -7
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.json +0 -7
- 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 +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=
|
package/dist/tests/testData.d.ts
DELETED
|
@@ -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"}
|
package/dist/tests/testData.js
DELETED
|
@@ -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 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy92YWxpZGF0b3Iuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixlQUFlLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1YsY0FBYyxFQUNkLFdBQVcsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9COzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ3RELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtRQUN0RCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtRQUN0RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtRQUN0RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsdURBQXVELEVBQUUsR0FBRyxFQUFFO1FBQy9ELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxHQUFHLEVBQUU7UUFDdkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUN4RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuL3Rlc3REYXRhJztcbmltcG9ydCB7XG4gIFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLFxuICBVbnN1cHBvcnRlZENoYWluRXJyb3IsXG4gIHZhbGlkYXRlQWRkcmVzcyxcbn0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7XG4gIEJJVENPSU5fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIERPR0VfQ0hBSU4sXG4gIEVSR09fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxuICBSVU5FU19DSEFJTixcbn0gZnJvbSAnLi4vbGliL2NvbnN0JztcblxuZGVzY3JpYmUoJ3ZhbGlkYXRlQWRkcmVzcycsICgpID0+IHtcbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEVyZ28gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEVyZ28gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5lcmdvQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXJnbyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXJnb0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIENhcmRhbm8gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IENhcmRhbm8gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5jYXJkYW5vQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgQ2FyZGFubyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkQ2FyZGFub0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEJpdGNvaW4gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBCaXRjb2luIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgQml0Y29pbiB0YXByb290IGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS50YXByb290Qml0Y29pbkFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciB3cm9uZyBCaXRjb2luIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEJJVENPSU5fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRCaXRjb2luQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3IgSUNBUCBFdGhlcmV1bSBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFVEhFUkVVTV9DSEFJTiwgdGVzdERhdGEuaW52YWxpZEV0aGVyZXVtSWNhcEFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBFdGhlcmV1bSBhZGRyZXNzIHdpdGggY2hlY2tzdW1cbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bScsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1DaGVja3N1bUFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1BZGRyZXNzTGVuZ3RoKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZENoYWluIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKCd1bnN1cHBvcnRlZC1jaGFpbicsICcwMDExMjIzMzQ0Jyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZENoYWluRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdmFsaWRhdGUgRG9nZSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgRG9nZSBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHZhbGlkYXRlIERvZ2UgYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdmFsaWRhdGVBZGRyZXNzKERPR0VfQ0hBSU4sIHRlc3REYXRhLmRvZ2VBZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIERvZ2UgYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciB3cm9uZyBEb2dlIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIERvZ2UgYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKERPR0VfQ0hBSU4sIHRlc3REYXRhLmludmFsaWREb2dlQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgUnVuZXMgYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBSdW5lcyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoUlVORVNfQ0hBSU4sIHRlc3REYXRhLnRhcHJvb3RCaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBSdW5lcyBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gdG8gdGhyb3cgZXJyb3IgZm9yIHdyb25nIFJ1bmVzIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIFJ1bmVzIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhSVU5FU19DSEFJTiwgdGVzdERhdGEuYml0Y29pbkFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcbn0pO1xuIl19
|