@rosen-bridge/address-codec 0.2.1-6770eb → 0.3.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @rosen-bridge/address-codec
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add address verifier with respect to chain
8
+
3
9
  ## 0.2.1
4
10
 
5
11
  ### Patch Changes
@@ -5,7 +5,7 @@ export declare const cardanoAddress = "addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33
5
5
  export declare const encodedCardanoAddress = "018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1";
6
6
  export declare const invalidCardanoAddress = "addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqee";
7
7
  export declare const bitcoinAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h";
8
- export declare const invalidBitcoinAddressLength = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6";
8
+ export declare const invalidBitcoinAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6";
9
9
  export declare const tapRootBitcoinAddress = "bc1pxhtmm7mjrafdkw46wc7lmjn3gyrmdm4q0dnmw8j225gxtwtq7mwqd7e24v";
10
10
  export declare const encodedBitcoinAddress = "0014b20272a6591937ba7d687dc889f3637ed40efa6a";
11
11
  export declare const longErgoAddress = "nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6";
@@ -14,4 +14,5 @@ export declare const ethereumAddress = "0xb416c8a6d7ec94706a9ae2c26c11d320519482
14
14
  export declare const encodedEthereumAddress = "b416c8a6d7ec94706a9ae2c26c11d320519482b1";
15
15
  export declare const invalidEthereumAddressLength = "0xb416c8a7ec94706a9ae2c26c11d320519482b1";
16
16
  export declare const invalidEthereumIcapAddress = "XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36";
17
+ export declare const invalidEthereumChecksumAddress = "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97";
17
18
  //# sourceMappingURL=testData.d.ts.map
@@ -1 +1 @@
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,2BAA2B,8CACK,CAAC;AAC9C,eAAO,MAAM,qBAAqB,mEACgC,CAAC;AACnE,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"}
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,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"}
@@ -5,7 +5,7 @@ export const cardanoAddress = 'addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8g
5
5
  export const encodedCardanoAddress = '018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1';
6
6
  export const invalidCardanoAddress = 'addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqee';
7
7
  export const bitcoinAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h';
8
- export const invalidBitcoinAddressLength = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6';
8
+ export const invalidBitcoinAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6';
9
9
  export const tapRootBitcoinAddress = 'bc1pxhtmm7mjrafdkw46wc7lmjn3gyrmdm4q0dnmw8j225gxtwtq7mwqd7e24v';
10
10
  export const encodedBitcoinAddress = '0014b20272a6591937ba7d687dc889f3637ed40efa6a';
11
11
  export const longErgoAddress = 'nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6';
@@ -14,4 +14,5 @@ export const ethereumAddress = '0xb416c8a6d7ec94706a9ae2c26c11d320519482b1';
14
14
  export const encodedEthereumAddress = 'b416c8a6d7ec94706a9ae2c26c11d320519482b1';
15
15
  export const invalidEthereumAddressLength = '0xb416c8a7ec94706a9ae2c26c11d320519482b1';
16
16
  export const invalidEthereumIcapAddress = 'XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy90ZXN0RGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQ3RCLHFEQUFxRCxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixvRUFBb0UsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0IscURBQXFELENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUN6Qix5R0FBeUcsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsb0hBQW9ILENBQUM7QUFDdkgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLHlHQUF5RyxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyw0Q0FBNEMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FDdEMsMkNBQTJDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLGdFQUFnRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUNoQyw4Q0FBOEMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQzFCLCtJQUErSSxDQUFDO0FBQ2xKLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3Qix3TUFBd00sQ0FBQztBQUUzTSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsNENBQTRDLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLDBDQUEwQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUN2QywwQ0FBMEMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlcmdvQWRkcmVzcyA9XG4gICc5aU1qUXg4UHp3QktYUnZzRlVKRkpBUG95MzF6bmZFZUJVR3o4RFJrY25KWDRySllqVmQnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRFcmdvQWRkcmVzcyA9XG4gICcwM2Y5OTlkYThlNmU0MjY2MGU0NDY0ZDE3ZDI5ZTYzYmMwMDY3MzRhNjcxMGEyNGViNDg5YjQ2NjMyM2QzYTkzMzknO1xuZXhwb3J0IGNvbnN0IGludmFsaWRFcmdvQWRkcmVzcyA9XG4gICc5aU1qUXg4UHp3QktYUnZzRlVKRkpBUG95MzF6bmZFZUJVR3o4RFJrY25KWDRySllqVkQnO1xuXG5leHBvcnQgY29uc3QgY2FyZGFub0FkZHJlc3MgPVxuICAnYWRkcjFxeHhhM2tmbm5oNDB5cXRlcGE1ZnJ0MHRrdzRhMHJ5czd2MzM0MjJsenQ4Z2x4NDNzcXRkNHZraGp6YXdhamVqOGF1amgyN3A1YTU0eng2MnhmM3d2dXBseW5xczNmc3FldCc7XG5leHBvcnQgY29uc3QgZW5jb2RlZENhcmRhbm9BZGRyZXNzID1cbiAgJzAxOGRkOGQ5MzM5ZGVhZjIwMTc5MGY2ODkxYWRlYmIzYWJkNzhjOTBmMzIzMWFhOTVmMTJjZThmOWFiMTgwMTZkYWIyZDc5MGJhZWVjYjMyM2Y3OTJiYWJjMWE3Njk1MTFiNGEzMjYyZTY3MDNmMjRjMSc7XG5leHBvcnQgY29uc3QgaW52YWxpZENhcmRhbm9BZGRyZXNzID1cbiAgJ2FkZHIxcXh4YTNrZm5uaDQweXF0ZXBhNWZydDB0a3c0YTByeXM3djMzNDIybHp0OGdseDQzc3F0ZDR2a2hqemF3YWplajhhdWpoMjdwNWE1NHp4NjJ4ZjN3dnVwbHlucXMzZnNxZWUnO1xuXG5leHBvcnQgY29uc3QgYml0Y29pbkFkZHJlc3MgPSAnYmMxcWtncDg5ZmplcnltbTVsdGcwaHlnbnVtcjBtMnFhN24yMmd5dzZoJztcbmV4cG9ydCBjb25zdCBpbnZhbGlkQml0Y29pbkFkZHJlc3NMZW5ndGggPVxuICAnYmMxcWtncDg5ZmplcnltbTVsdGcwaHlnbnVtcjBtMnFhN24yMmd5dzYnO1xuZXhwb3J0IGNvbnN0IHRhcFJvb3RCaXRjb2luQWRkcmVzcyA9XG4gICdiYzFweGh0bW03bWpyYWZka3c0NndjN2xtam4zZ3lybWRtNHEwZG5tdzhqMjI1Z3h0d3RxN213cWQ3ZTI0dic7XG5leHBvcnQgY29uc3QgZW5jb2RlZEJpdGNvaW5BZGRyZXNzID1cbiAgJzAwMTRiMjAyNzJhNjU5MTkzN2JhN2Q2ODdkYzg4OWYzNjM3ZWQ0MGVmYTZhJztcblxuZXhwb3J0IGNvbnN0IGxvbmdFcmdvQWRkcmVzcyA9XG4gICduQjNMMlBEM0xCdGlOaERZSzdYaFo4blZ0NnVla0JYTjdSY1BVS2dkS0xYRmNySmlTUHhtUXNVS3VVa1RSUTFoYnZEcnhFUUFLWXVyR0ZiYUdEMVJQeFU3WHFRaW1ENzhqMjNISE1RS0wxYm9VR3NuTmhDeGFWTkFZTWNGYlFObzM1NUFmOGNXa2hBTjYnO1xuZXhwb3J0IGNvbnN0IGxvbmdFbmNvZGVkQWRkcmVzcyA9XG4gICcxMDAzMDQwMDBlMjBhNmFjMzgxZTZmYTk5OTI5ZmQxNDc3YjNiYTk0OTk3OTBhNzc1ZTkxZDRjMTRjNWFhODZlOWExMThkZmFjODUzMDQwMGQ4MDFkNjAxYjJkYjY1MDFmZTczMDAwMGVhMDJkMWFlZGI2MzA4NzIwMWQ5MDEwMjRkMGU5MzhjNzIwMjAxNzMwMTk4YjJlNGM2NzIwMTA1MTA3MzAyMDBhZGU0YzY3MjAxMDQxYWQ5MDEwMjBlY2RlZTcyMDInO1xuXG5leHBvcnQgY29uc3QgZXRoZXJldW1BZGRyZXNzID0gJzB4YjQxNmM4YTZkN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG5leHBvcnQgY29uc3QgZW5jb2RlZEV0aGVyZXVtQWRkcmVzcyA9XG4gICdiNDE2YzhhNmQ3ZWM5NDcwNmE5YWUyYzI2YzExZDMyMDUxOTQ4MmIxJztcblxuZXhwb3J0IGNvbnN0IGludmFsaWRFdGhlcmV1bUFkZHJlc3NMZW5ndGggPVxuICAnMHhiNDE2YzhhN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG5leHBvcnQgY29uc3QgaW52YWxpZEV0aGVyZXVtSWNhcEFkZHJlc3MgPSAnWEU2NUdCNkxETlhZT0ZUWDBOU1YzRlVXS09XSVhBTUpLMzYnO1xuIl19
17
+ export const invalidEthereumChecksumAddress = '0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy90ZXN0RGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQ3RCLHFEQUFxRCxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixvRUFBb0UsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0IscURBQXFELENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUN6Qix5R0FBeUcsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsb0hBQW9ILENBQUM7QUFDdkgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLHlHQUF5RyxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyw0Q0FBNEMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FDaEMsMkNBQTJDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLGdFQUFnRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUNoQyw4Q0FBOEMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQzFCLCtJQUErSSxDQUFDO0FBQ2xKLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3Qix3TUFBd00sQ0FBQztBQUUzTSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsNENBQTRDLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLDBDQUEwQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUN2QywwQ0FBMEMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxxQ0FBcUMsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FDekMsNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXJnb0FkZHJlc3MgPVxuICAnOWlNalF4OFB6d0JLWFJ2c0ZVSkZKQVBveTMxem5mRWVCVUd6OERSa2NuSlg0ckpZalZkJztcbmV4cG9ydCBjb25zdCBlbmNvZGVkRXJnb0FkZHJlc3MgPVxuICAnMDNmOTk5ZGE4ZTZlNDI2NjBlNDQ2NGQxN2QyOWU2M2JjMDA2NzM0YTY3MTBhMjRlYjQ4OWI0NjYzMjNkM2E5MzM5JztcbmV4cG9ydCBjb25zdCBpbnZhbGlkRXJnb0FkZHJlc3MgPVxuICAnOWlNalF4OFB6d0JLWFJ2c0ZVSkZKQVBveTMxem5mRWVCVUd6OERSa2NuSlg0ckpZalZEJztcblxuZXhwb3J0IGNvbnN0IGNhcmRhbm9BZGRyZXNzID1cbiAgJ2FkZHIxcXh4YTNrZm5uaDQweXF0ZXBhNWZydDB0a3c0YTByeXM3djMzNDIybHp0OGdseDQzc3F0ZDR2a2hqemF3YWplajhhdWpoMjdwNWE1NHp4NjJ4ZjN3dnVwbHlucXMzZnNxZXQnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRDYXJkYW5vQWRkcmVzcyA9XG4gICcwMThkZDhkOTMzOWRlYWYyMDE3OTBmNjg5MWFkZWJiM2FiZDc4YzkwZjMyMzFhYTk1ZjEyY2U4ZjlhYjE4MDE2ZGFiMmQ3OTBiYWVlY2IzMjNmNzkyYmFiYzFhNzY5NTExYjRhMzI2MmU2NzAzZjI0YzEnO1xuZXhwb3J0IGNvbnN0IGludmFsaWRDYXJkYW5vQWRkcmVzcyA9XG4gICdhZGRyMXF4eGEza2Zubmg0MHlxdGVwYTVmcnQwdGt3NGEwcnlzN3YzMzQyMmx6dDhnbHg0M3NxdGQ0dmtoanphd2FqZWo4YXVqaDI3cDVhNTR6eDYyeGYzd3Z1cGx5bnFzM2ZzcWVlJztcblxuZXhwb3J0IGNvbnN0IGJpdGNvaW5BZGRyZXNzID0gJ2JjMXFrZ3A4OWZqZXJ5bW01bHRnMGh5Z251bXIwbTJxYTduMjJneXc2aCc7XG5leHBvcnQgY29uc3QgaW52YWxpZEJpdGNvaW5BZGRyZXNzID1cbiAgJ2JjMXFrZ3A4OWZqZXJ5bW01bHRnMGh5Z251bXIwbTJxYTduMjJneXc2JztcbmV4cG9ydCBjb25zdCB0YXBSb290Qml0Y29pbkFkZHJlc3MgPVxuICAnYmMxcHhodG1tN21qcmFmZGt3NDZ3YzdsbWpuM2d5cm1kbTRxMGRubXc4ajIyNWd4dHd0cTdtd3FkN2UyNHYnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRCaXRjb2luQWRkcmVzcyA9XG4gICcwMDE0YjIwMjcyYTY1OTE5MzdiYTdkNjg3ZGM4ODlmMzYzN2VkNDBlZmE2YSc7XG5cbmV4cG9ydCBjb25zdCBsb25nRXJnb0FkZHJlc3MgPVxuICAnbkIzTDJQRDNMQnRpTmhEWUs3WGhaOG5WdDZ1ZWtCWE43UmNQVUtnZEtMWEZjckppU1B4bVFzVUt1VWtUUlExaGJ2RHJ4RVFBS1l1ckdGYmFHRDFSUHhVN1hxUWltRDc4ajIzSEhNUUtMMWJvVUdzbk5oQ3hhVk5BWU1jRmJRTm8zNTVBZjhjV2toQU42JztcbmV4cG9ydCBjb25zdCBsb25nRW5jb2RlZEFkZHJlc3MgPVxuICAnMTAwMzA0MDAwZTIwYTZhYzM4MWU2ZmE5OTkyOWZkMTQ3N2IzYmE5NDk5NzkwYTc3NWU5MWQ0YzE0YzVhYTg2ZTlhMTE4ZGZhYzg1MzA0MDBkODAxZDYwMWIyZGI2NTAxZmU3MzAwMDBlYTAyZDFhZWRiNjMwODcyMDFkOTAxMDI0ZDBlOTM4YzcyMDIwMTczMDE5OGIyZTRjNjcyMDEwNTEwNzMwMjAwYWRlNGM2NzIwMTA0MWFkOTAxMDIwZWNkZWU3MjAyJztcblxuZXhwb3J0IGNvbnN0IGV0aGVyZXVtQWRkcmVzcyA9ICcweGI0MTZjOGE2ZDdlYzk0NzA2YTlhZTJjMjZjMTFkMzIwNTE5NDgyYjEnO1xuZXhwb3J0IGNvbnN0IGVuY29kZWRFdGhlcmV1bUFkZHJlc3MgPVxuICAnYjQxNmM4YTZkN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkRXRoZXJldW1BZGRyZXNzTGVuZ3RoID1cbiAgJzB4YjQxNmM4YTdlYzk0NzA2YTlhZTJjMjZjMTFkMzIwNTE5NDgyYjEnO1xuZXhwb3J0IGNvbnN0IGludmFsaWRFdGhlcmV1bUljYXBBZGRyZXNzID0gJ1hFNjVHQjZMRE5YWU9GVFgwTlNWM0ZVV0tPV0lYQU1KSzM2JztcbmV4cG9ydCBjb25zdCBpbnZhbGlkRXRoZXJldW1DaGVja3N1bUFkZHJlc3MgPVxuICAnMHg0ODM4QjEwNkZDZTk2NDdCZGYxRTc4NzdCRjczY0U4QjBCQUQ1Zjk3JztcbiJdfQ==
@@ -15,14 +15,14 @@ describe('validateAddress', () => {
15
15
  expect(res).toEqual(true);
16
16
  });
17
17
  /**
18
- * @target `validateAddress` should not validate wrong Ergo address
18
+ * @target `validateAddress` should throw error for wrong Ergo address
19
19
  * @dependencies
20
20
  * @scenario
21
21
  * - run test
22
22
  * @expected
23
- * - not to validate wrong Ergo address
23
+ * - to throw error for wrong Ergo address
24
24
  */
25
- it('should not validate wrong Ergo address', () => {
25
+ it('should throw error for wrong Ergo address', () => {
26
26
  expect(() => {
27
27
  validateAddress(ERGO_CHAIN, testData.invalidErgoAddress);
28
28
  }).toThrow();
@@ -40,14 +40,14 @@ describe('validateAddress', () => {
40
40
  expect(res).toEqual(true);
41
41
  });
42
42
  /**
43
- * @target `validateAddress` should not validate wrong Cardano address
43
+ * @target `validateAddress` should throw error for wrong Cardano address
44
44
  * @dependencies
45
45
  * @scenario
46
46
  * - run test
47
47
  * @expected
48
- * - not to validate wrong Cardano address
48
+ * - to throw error for wrong Cardano address
49
49
  */
50
- it('should not validate wrong Cardano address', () => {
50
+ it('should throw error for wrong Cardano address', () => {
51
51
  expect(() => {
52
52
  validateAddress(CARDANO_CHAIN, testData.invalidCardanoAddress);
53
53
  }).toThrow();
@@ -65,29 +65,29 @@ describe('validateAddress', () => {
65
65
  expect(res).toEqual(true);
66
66
  });
67
67
  /**
68
- * @target `validateAddress` should not validate Bitcoin taproot address
68
+ * @target `validateAddress` should throw error for Bitcoin taproot address
69
69
  * @dependencies
70
70
  * @scenario
71
71
  * - run test
72
72
  * @expected
73
- * - not to validate Bitcoin taproot address
73
+ * - to throw error for Bitcoin taproot address
74
74
  */
75
- it('should not validate Bitcoin taproot address', () => {
75
+ it('should throw error for Bitcoin taproot address', () => {
76
76
  expect(() => {
77
77
  validateAddress(BITCOIN_CHAIN, testData.tapRootBitcoinAddress);
78
78
  }).toThrow(UnsupportedAddressError);
79
79
  });
80
80
  /**
81
- * @target `validateAddress` should not validate wrong Bitcoin address
81
+ * @target `validateAddress` should throw error for wrong Bitcoin address
82
82
  * @dependencies
83
83
  * @scenario
84
84
  * - run test
85
85
  * @expected
86
- * - not to validate wrong Bitcoin address
86
+ * - to throw error for wrong Bitcoin address
87
87
  */
88
- it('should not validate wrong Bitcoin address', () => {
88
+ it('should throw error for wrong Bitcoin address', () => {
89
89
  expect(() => {
90
- validateAddress(BITCOIN_CHAIN, testData.invalidBitcoinAddressLength);
90
+ validateAddress(BITCOIN_CHAIN, testData.invalidBitcoinAddress);
91
91
  }).toThrowError();
92
92
  });
93
93
  /**
@@ -103,27 +103,40 @@ describe('validateAddress', () => {
103
103
  expect(res).toEqual(true);
104
104
  });
105
105
  /**
106
- * @target `validateAddress` should not validate ICAP Ethereum address
106
+ * @target `validateAddress` should throw error for ICAP Ethereum address
107
107
  * @dependencies
108
108
  * @scenario
109
109
  * - run test
110
110
  * @expected
111
- * - not to validate ICAP Ethereum address
111
+ * - to throw error for ICAP Ethereum address
112
112
  */
113
- it('should not validate ICAP Ethereum address', () => {
113
+ it('should throw error for ICAP Ethereum address', () => {
114
114
  expect(() => {
115
115
  validateAddress(ETHEREUM_CHAIN, testData.invalidEthereumIcapAddress);
116
116
  }).toThrow(UnsupportedAddressError);
117
117
  });
118
118
  /**
119
- * @target `validateAddress` should not validate wrong Ethereum address
119
+ * @target `validateAddress` should throw error for Ethereum address with checksum
120
120
  * @dependencies
121
121
  * @scenario
122
122
  * - run test
123
123
  * @expected
124
- * - not to validate wrong Ethereum address
124
+ * - to throw error for Ethereum address with checksum
125
125
  */
126
- it('should not validate wrong Ethereum address', () => {
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', () => {
127
140
  expect(() => {
128
141
  validateAddress(ETHEREUM_CHAIN, testData.invalidEthereumAddressLength);
129
142
  }).toThrow(UnsupportedAddressError);
@@ -142,4 +155,4 @@ describe('validateAddress', () => {
142
155
  }).toThrow(UnsupportedChainError);
143
156
  });
144
157
  });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy92YWxpZGF0b3Iuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixlQUFlLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxjQUFjLENBQUM7QUFFdEIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQjs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ3RELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLCtDQUErQyxFQUFFLEdBQUcsRUFBRTtRQUN2RCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZUFBZSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixlQUFlLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4vdGVzdERhdGEnO1xuaW1wb3J0IHtcbiAgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IsXG4gIFVuc3VwcG9ydGVkQ2hhaW5FcnJvcixcbiAgdmFsaWRhdGVBZGRyZXNzLFxufSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHtcbiAgQklUQ09JTl9DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgRVJHT19DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG59IGZyb20gJy4uL2xpYi9jb25zdCc7XG5cbmRlc2NyaWJlKCd2YWxpZGF0ZUFkZHJlc3MnLCAoKSA9PiB7XG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gdG8gdmFsaWRhdGUgY29ycmVjdCBFcmdvIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgRXJnbyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoRVJHT19DSEFJTiwgdGVzdERhdGEuZXJnb0FkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCBub3QgdmFsaWRhdGUgd3JvbmcgRXJnbyBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gbm90IHRvIHZhbGlkYXRlIHdyb25nIEVyZ28gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgd3JvbmcgRXJnbyBhZGRyZXNzJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3MoRVJHT19DSEFJTiwgdGVzdERhdGEuaW52YWxpZEVyZ29BZGRyZXNzKTtcbiAgICB9KS50b1Rocm93KCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gdG8gdmFsaWRhdGUgY29ycmVjdCBDYXJkYW5vIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgQ2FyZGFubyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoQ0FSREFOT19DSEFJTiwgdGVzdERhdGEuY2FyZGFub0FkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCBub3QgdmFsaWRhdGUgd3JvbmcgQ2FyZGFubyBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gbm90IHRvIHZhbGlkYXRlIHdyb25nIENhcmRhbm8gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgd3JvbmcgQ2FyZGFubyBhZGRyZXNzJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3MoQ0FSREFOT19DSEFJTiwgdGVzdERhdGEuaW52YWxpZENhcmRhbm9BZGRyZXNzKTtcbiAgICB9KS50b1Rocm93KCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBCaXRjb2luIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gdG8gdmFsaWRhdGUgY29ycmVjdCBCaXRjb2luIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgQml0Y29pbiBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoQklUQ09JTl9DSEFJTiwgdGVzdERhdGEuYml0Y29pbkFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCBub3QgdmFsaWRhdGUgQml0Y29pbiB0YXByb290IGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBub3QgdG8gdmFsaWRhdGUgQml0Y29pbiB0YXByb290IGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgbm90IHZhbGlkYXRlIEJpdGNvaW4gdGFwcm9vdCBhZGRyZXNzJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3MoQklUQ09JTl9DSEFJTiwgdGVzdERhdGEudGFwUm9vdEJpdGNvaW5BZGRyZXNzKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIG5vdCB2YWxpZGF0ZSB3cm9uZyBCaXRjb2luIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBub3QgdG8gdmFsaWRhdGUgd3JvbmcgQml0Y29pbiBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIG5vdCB2YWxpZGF0ZSB3cm9uZyBCaXRjb2luIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkQml0Y29pbkFkZHJlc3NMZW5ndGgpO1xuICAgIH0pLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdmFsaWRhdGUgRXRoZXJldW0gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEV0aGVyZXVtIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgRXRoZXJldW0gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5ldGhlcmV1bUFkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCBub3QgdmFsaWRhdGUgSUNBUCBFdGhlcmV1bSBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gbm90IHRvIHZhbGlkYXRlIElDQVAgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgSUNBUCBFdGhlcmV1bSBhZGRyZXNzJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRFdGhlcmV1bUljYXBBZGRyZXNzKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIG5vdCB2YWxpZGF0ZSB3cm9uZyBFdGhlcmV1bSBhZGRyZXNzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gbm90IHRvIHZhbGlkYXRlIHdyb25nIEV0aGVyZXVtIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgbm90IHZhbGlkYXRlIHdyb25nIEV0aGVyZXVtIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFVEhFUkVVTV9DSEFJTiwgdGVzdERhdGEuaW52YWxpZEV0aGVyZXVtQWRkcmVzc0xlbmd0aCk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNoYWluIGlzIG5vdCBzdXBwb3J0ZWRcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRDaGFpbiBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNoYWluIGlzIG5vdCBzdXBwb3J0ZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcygndW5zdXBwb3J0ZWQtY2hhaW4nLCAnMDAxMTIyMzM0NCcpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRDaGFpbkVycm9yKTtcbiAgfSk7XG59KTtcbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy92YWxpZGF0b3Iuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssUUFBUSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixlQUFlLEdBQ2hCLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxjQUFjLENBQUM7QUFFdEIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQjs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGVBQWUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDSCxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ3RELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIs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c0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi90ZXN0RGF0YSc7XG5pbXBvcnQge1xuICBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcixcbiAgVW5zdXBwb3J0ZWRDaGFpbkVycm9yLFxuICB2YWxpZGF0ZUFkZHJlc3MsXG59IGZyb20gJy4uL2xpYic7XG5pbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbn0gZnJvbSAnLi4vbGliL2NvbnN0JztcblxuZGVzY3JpYmUoJ3ZhbGlkYXRlQWRkcmVzcycsICgpID0+IHtcbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEVyZ28gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEVyZ28gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5lcmdvQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXJnbyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBFcmdvIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXJnb0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIENhcmRhbm8gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IENhcmRhbm8gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5jYXJkYW5vQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgQ2FyZGFubyBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciB3cm9uZyBDYXJkYW5vIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhDQVJEQU5PX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkQ2FyZGFub0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHZhbGlkYXRlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB2YWxpZGF0ZSBjb3JyZWN0IEJpdGNvaW4gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBCaXRjb2luIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBCaXRjb2luIHRhcHJvb3QgYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgQml0Y29pbiB0YXByb290IGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS50YXBSb290Qml0Y29pbkFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciB3cm9uZyBCaXRjb2luIGFkZHJlc3NcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEJpdGNvaW4gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEJJVENPSU5fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRCaXRjb2luQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGB2YWxpZGF0ZUFkZHJlc3NgIHNob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHZhbGlkYXRlIGNvcnJlY3QgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWxpZGF0ZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3IgSUNBUCBFdGhlcmV1bSBhZGRyZXNzXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciBJQ0FQIEV0aGVyZXVtIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhFVEhFUkVVTV9DSEFJTiwgdGVzdERhdGEuaW52YWxpZEV0aGVyZXVtSWNhcEFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIHRvIHRocm93IGVycm9yIGZvciBFdGhlcmV1bSBhZGRyZXNzIHdpdGggY2hlY2tzdW1cbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIEV0aGVyZXVtIGFkZHJlc3Mgd2l0aCBjaGVja3N1bScsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1DaGVja3N1bUFkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgdmFsaWRhdGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHdyb25nIEV0aGVyZXVtIGFkZHJlc3NcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSB0byB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzc1xuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3Igd3JvbmcgRXRoZXJldW0gYWRkcmVzcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5pbnZhbGlkRXRoZXJldW1BZGRyZXNzTGVuZ3RoKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYHZhbGlkYXRlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZENoYWluIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKCd1bnN1cHBvcnRlZC1jaGFpbicsICcwMDExMjIzMzQ0Jyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZENoYWluRXJyb3IpO1xuICB9KTtcbn0pO1xuIl19