@rosen-bridge/address-codec 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/const.d.ts +1 -0
  3. package/dist/const.d.ts.map +1 -1
  4. package/dist/const.js +2 -1
  5. package/dist/decoder.d.ts +5 -2
  6. package/dist/decoder.d.ts.map +1 -1
  7. package/dist/decoder.js +7 -2
  8. package/dist/encoder.d.ts +1 -1
  9. package/dist/encoder.d.ts.map +1 -1
  10. package/dist/encoder.js +8 -2
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/lib/const.d.ts +5 -0
  14. package/dist/lib/const.d.ts.map +1 -0
  15. package/dist/lib/const.js +5 -0
  16. package/dist/lib/decoder.d.ts +8 -0
  17. package/dist/lib/decoder.d.ts.map +1 -0
  18. package/dist/lib/decoder.js +31 -0
  19. package/dist/lib/encoder.d.ts +8 -0
  20. package/dist/lib/encoder.d.ts.map +1 -0
  21. package/dist/lib/encoder.js +37 -0
  22. package/dist/lib/index.d.ts +4 -0
  23. package/dist/lib/index.d.ts.map +1 -0
  24. package/dist/lib/index.js +4 -0
  25. package/dist/lib/types.d.ts +7 -0
  26. package/dist/lib/types.d.ts.map +1 -0
  27. package/dist/lib/types.js +11 -0
  28. package/dist/tests/decoder.spec.d.ts +2 -0
  29. package/dist/tests/decoder.spec.d.ts.map +1 -0
  30. package/dist/tests/decoder.spec.js +84 -0
  31. package/dist/tests/encoder.spec.d.ts +2 -0
  32. package/dist/tests/encoder.spec.d.ts.map +1 -0
  33. package/dist/tests/encoder.spec.js +98 -0
  34. package/dist/tests/testData.d.ts +12 -0
  35. package/dist/tests/testData.d.ts.map +1 -0
  36. package/dist/tests/testData.js +12 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -0
  38. package/dist/types.d.ts +3 -3
  39. package/dist/types.js +11 -7
  40. package/dist/vitest.config.d.ts +3 -0
  41. package/dist/vitest.config.d.ts.map +1 -0
  42. package/dist/vitest.config.js +18 -0
  43. package/lib/const.ts +1 -0
  44. package/lib/decoder.ts +11 -1
  45. package/lib/encoder.ts +12 -1
  46. package/package.json +1 -1
  47. package/tests/decoder.spec.ts +20 -1
  48. package/tests/encoder.spec.ts +35 -1
  49. package/tests/testData.ts +7 -0
  50. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @rosen-bridge/address-codec
2
+
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - support for Ethereum's address encoding and decoding were added.
package/dist/const.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export declare const BITCOIN_CHAIN = "bitcoin";
2
2
  export declare const CARDANO_CHAIN = "cardano";
3
3
  export declare const ERGO_CHAIN = "ergo";
4
+ export declare const ETHEREUM_CHAIN = "ethereum";
4
5
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../lib/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../lib/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,cAAc,aAAa,CAAC"}
package/dist/const.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export const BITCOIN_CHAIN = 'bitcoin';
2
2
  export const CARDANO_CHAIN = 'cardano';
3
3
  export const ERGO_CHAIN = 'ergo';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQklUQ09JTl9DSEFJTiA9ICdiaXRjb2luJztcbmV4cG9ydCBjb25zdCBDQVJEQU5PX0NIQUlOID0gJ2NhcmRhbm8nO1xuZXhwb3J0IGNvbnN0IEVSR09fQ0hBSU4gPSAnZXJnbyc7XG4iXX0=
4
+ export const ETHEREUM_CHAIN = 'ethereum';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCSVRDT0lOX0NIQUlOID0gJ2JpdGNvaW4nO1xuZXhwb3J0IGNvbnN0IENBUkRBTk9fQ0hBSU4gPSAnY2FyZGFubyc7XG5leHBvcnQgY29uc3QgRVJHT19DSEFJTiA9ICdlcmdvJztcbmV4cG9ydCBjb25zdCBFVEhFUkVVTV9DSEFJTiA9ICdldGhlcmV1bSc7XG4iXX0=
package/dist/decoder.d.ts CHANGED
@@ -4,5 +4,8 @@
4
4
  * @param chain
5
5
  * @param encodedAddress
6
6
  */
7
- export declare const decodeAddress: (chain: string, encodedAddress: string) => string;
8
- //# sourceMappingURL=decoder.d.ts.map
7
+ export declare const decodeAddress: (
8
+ chain: string,
9
+ encodedAddress: string,
10
+ ) => string;
11
+ //# sourceMappingURL=decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../lib/decoder.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UACjB,MAAM,kBACG,MAAM,KACrB,MAmBF,CAAC"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../lib/decoder.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UACjB,MAAM,kBACG,MAAM,KACrB,MAwBF,CAAC"}
package/dist/decoder.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN } from './const';
1
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, } from './const';
2
2
  import { UnsupportedAddressError, UnsupportedChainError } from './types';
3
3
  import * as ergoLib from 'ergo-lib-wasm-nodejs';
4
4
  import * as cardanoLib from '@emurgo/cardano-serialization-lib-nodejs';
@@ -19,8 +19,13 @@ export const decodeAddress = (chain, encodedAddress) => {
19
19
  return cardanoLib.Address.from_bytes(Buffer.from(encodedAddress, 'hex')).to_bech32();
20
20
  case BITCOIN_CHAIN:
21
21
  return bitcoinLib.address.fromOutputScript(Buffer.from(encodedAddress, 'hex'));
22
+ case ETHEREUM_CHAIN:
23
+ if (encodedAddress.length != 40) {
24
+ throw new UnsupportedAddressError(chain, encodedAddress);
25
+ }
26
+ return '0x' + encodedAddress;
22
27
  default:
23
28
  throw new UnsupportedChainError(chain);
24
29
  }
25
30
  };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekUsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssVUFBVSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLEtBQWEsRUFDYixjQUFzQixFQUNkLEVBQUU7SUFDVixJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDaEMsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMzRCxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ2IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQ25DLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUNuQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLEtBQUssYUFBYTtZQUNoQixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUNuQyxDQUFDO1FBQ0o7WUFDRSxNQUFNLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJVENPSU5fQ0hBSU4sIENBUkRBTk9fQ0hBSU4sIEVSR09fQ0hBSU4gfSBmcm9tICcuL2NvbnN0JztcbmltcG9ydCB7IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLCBVbnN1cHBvcnRlZENoYWluRXJyb3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIGVyZ29MaWIgZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0ICogYXMgY2FyZGFub0xpYiBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5MaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbi8qKlxuICogZGVjb2RlcyBhZGRyZXNzIG9mIGEgY2hhaW5cbiAqICB0aHJvd3MgZXJyb3IgaWYgZW5jb2RlZCBhZGRyZXNzIGxlbmd0aCBpcyBtb3JlIHRoYW4gNjAgYnl0ZXNcbiAqIEBwYXJhbSBjaGFpblxuICogQHBhcmFtIGVuY29kZWRBZGRyZXNzXG4gKi9cbmV4cG9ydCBjb25zdCBkZWNvZGVBZGRyZXNzID0gKFxuICBjaGFpbjogc3RyaW5nLFxuICBlbmNvZGVkQWRkcmVzczogc3RyaW5nXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoZW5jb2RlZEFkZHJlc3MubGVuZ3RoID4gNjAgKiAyKVxuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcihjaGFpbiwgZW5jb2RlZEFkZHJlc3MpO1xuICBzd2l0Y2ggKGNoYWluKSB7XG4gICAgY2FzZSBFUkdPX0NIQUlOOlxuICAgICAgcmV0dXJuIGVyZ29MaWIuQWRkcmVzcy5mcm9tX3B1YmxpY19rZXkoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICkudG9fYmFzZTU4KGVyZ29MaWIuTmV0d29ya1ByZWZpeC5NYWlubmV0KTtcbiAgICBjYXNlIENBUkRBTk9fQ0hBSU46XG4gICAgICByZXR1cm4gY2FyZGFub0xpYi5BZGRyZXNzLmZyb21fYnl0ZXMoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICkudG9fYmVjaDMyKCk7XG4gICAgY2FzZSBCSVRDT0lOX0NIQUlOOlxuICAgICAgcmV0dXJuIGJpdGNvaW5MaWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KFxuICAgICAgICBCdWZmZXIuZnJvbShlbmNvZGVkQWRkcmVzcywgJ2hleCcpXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDaGFpbkVycm9yKGNoYWluKTtcbiAgfVxufTtcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFhLEVBQ2IsY0FBc0IsRUFDZCxFQUFFO0lBQ1YsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0QsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssVUFBVTtZQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUNuQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLEtBQUssYUFBYTtZQUNoQixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixLQUFLLGFBQWE7WUFDaEIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQztRQUNKLEtBQUssY0FBYztZQUNqQixJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELE9BQU8sSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMvQjtZQUNFLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQklUQ09JTl9DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgRVJHT19DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG59IGZyb20gJy4vY29uc3QnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IsIFVuc3VwcG9ydGVkQ2hhaW5FcnJvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBjYXJkYW5vTGliIGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0ICogYXMgYml0Y29pbkxpYiBmcm9tICdiaXRjb2luanMtbGliJztcblxuLyoqXG4gKiBkZWNvZGVzIGFkZHJlc3Mgb2YgYSBjaGFpblxuICogIHRocm93cyBlcnJvciBpZiBlbmNvZGVkIGFkZHJlc3MgbGVuZ3RoIGlzIG1vcmUgdGhhbiA2MCBieXRlc1xuICogQHBhcmFtIGNoYWluXG4gKiBAcGFyYW0gZW5jb2RlZEFkZHJlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGRlY29kZUFkZHJlc3MgPSAoXG4gIGNoYWluOiBzdHJpbmcsXG4gIGVuY29kZWRBZGRyZXNzOiBzdHJpbmdcbik6IHN0cmluZyA9PiB7XG4gIGlmIChlbmNvZGVkQWRkcmVzcy5sZW5ndGggPiA2MCAqIDIpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBlbmNvZGVkQWRkcmVzcyk7XG4gIHN3aXRjaCAoY2hhaW4pIHtcbiAgICBjYXNlIEVSR09fQ0hBSU46XG4gICAgICByZXR1cm4gZXJnb0xpYi5BZGRyZXNzLmZyb21fcHVibGljX2tleShcbiAgICAgICAgQnVmZmVyLmZyb20oZW5jb2RlZEFkZHJlc3MsICdoZXgnKVxuICAgICAgKS50b19iYXNlNTgoZXJnb0xpYi5OZXR3b3JrUHJlZml4Lk1haW5uZXQpO1xuICAgIGNhc2UgQ0FSREFOT19DSEFJTjpcbiAgICAgIHJldHVybiBjYXJkYW5vTGliLkFkZHJlc3MuZnJvbV9ieXRlcyhcbiAgICAgICAgQnVmZmVyLmZyb20oZW5jb2RlZEFkZHJlc3MsICdoZXgnKVxuICAgICAgKS50b19iZWNoMzIoKTtcbiAgICBjYXNlIEJJVENPSU5fQ0hBSU46XG4gICAgICByZXR1cm4gYml0Y29pbkxpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICk7XG4gICAgY2FzZSBFVEhFUkVVTV9DSEFJTjpcbiAgICAgIGlmIChlbmNvZGVkQWRkcmVzcy5sZW5ndGggIT0gNDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBlbmNvZGVkQWRkcmVzcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gJzB4JyArIGVuY29kZWRBZGRyZXNzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDaGFpbkVycm9yKGNoYWluKTtcbiAgfVxufTtcbiJdfQ==
package/dist/encoder.d.ts CHANGED
@@ -5,4 +5,4 @@
5
5
  * @param address
6
6
  */
7
7
  export declare const encodeAddress: (chain: string, address: string) => string;
8
- //# sourceMappingURL=encoder.d.ts.map
8
+ //# sourceMappingURL=encoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../lib/encoder.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,WAAW,MAAM,KAAG,MAwB9D,CAAC"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../lib/encoder.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,WAAW,MAAM,KAAG,MA8B9D,CAAC"}
package/dist/encoder.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN } from './const';
1
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, } from './const';
2
2
  import { UnsupportedAddressError, UnsupportedChainError } from './types';
3
3
  import * as ergoLib from 'ergo-lib-wasm-nodejs';
4
4
  import * as cardanoLib from '@emurgo/cardano-serialization-lib-nodejs';
@@ -21,6 +21,12 @@ export const encodeAddress = (chain, address) => {
21
21
  case BITCOIN_CHAIN:
22
22
  encoded = Buffer.from(bitcoinLib.address.toOutputScript(address)).toString('hex');
23
23
  break;
24
+ case ETHEREUM_CHAIN:
25
+ if (address.length != 42 || address.substring(0, 2) != '0x') {
26
+ throw new UnsupportedAddressError(chain, address);
27
+ }
28
+ encoded = address.substring(2);
29
+ break;
24
30
  default:
25
31
  throw new UnsupportedChainError(chain);
26
32
  }
@@ -28,4 +34,4 @@ export const encodeAddress = (chain, address) => {
28
34
  throw new UnsupportedAddressError(chain, address);
29
35
  return encoded;
30
36
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekUsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssVUFBVSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVDOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBVSxFQUFFO0lBQ3RFLElBQUksT0FBZSxDQUFDO0lBQ3BCLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLFVBQVU7WUFDYixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQ3JELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLGFBQWE7WUFDaEIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25CLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUNuRCxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNuQixVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDM0MsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsTUFBTTtRQUNSO1lBQ0UsTUFBTSxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDekIsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVRDT0lOX0NIQUlOLCBDQVJEQU5PX0NIQUlOLCBFUkdPX0NIQUlOIH0gZnJvbSAnLi9jb25zdCc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvciwgVW5zdXBwb3J0ZWRDaGFpbkVycm9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCAqIGFzIGNhcmRhbm9MaWIgZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luTGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG4vKipcbiAqIGVuY29kZXMgYWRkcmVzcyBvZiBhIGNoYWluIHRvIGhleCBzdHJpbmdcbiAqICB0aHJvd3MgZXJyb3IgaWYgZW5jb2RlZCBhZGRyZXNzIGxlbmd0aCBpcyBtb3JlIHRoYW4gNjAgYnl0ZXNcbiAqIEBwYXJhbSBjaGFpblxuICogQHBhcmFtIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGVuY29kZUFkZHJlc3MgPSAoY2hhaW46IHN0cmluZywgYWRkcmVzczogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IGVuY29kZWQ6IHN0cmluZztcbiAgc3dpdGNoIChjaGFpbikge1xuICAgIGNhc2UgRVJHT19DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLmNvbnRlbnRfYnl0ZXMoKVxuICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENBUkRBTk9fQ0hBSU46XG4gICAgICBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGNhcmRhbm9MaWIuQWRkcmVzcy5mcm9tX2JlY2gzMihhZGRyZXNzKS50b19ieXRlcygpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQklUQ09JTl9DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgYml0Y29pbkxpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDaGFpbkVycm9yKGNoYWluKTtcbiAgfVxuICBpZiAoZW5jb2RlZC5sZW5ndGggPiA2MCAqIDIpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBhZGRyZXNzKTtcbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQVUsRUFBRTtJQUN0RSxJQUFJLE9BQWUsQ0FBQztJQUNwQixRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ2IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25CLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUNyRCxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNuQixVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDbkQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsTUFBTTtRQUNSLEtBQUssYUFBYTtZQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQzNDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLGNBQWM7WUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTTtRQUNSO1lBQ0UsTUFBTSxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDekIsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbn0gZnJvbSAnLi9jb25zdCc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvciwgVW5zdXBwb3J0ZWRDaGFpbkVycm9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCAqIGFzIGNhcmRhbm9MaWIgZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luTGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG4vKipcbiAqIGVuY29kZXMgYWRkcmVzcyBvZiBhIGNoYWluIHRvIGhleCBzdHJpbmdcbiAqICB0aHJvd3MgZXJyb3IgaWYgZW5jb2RlZCBhZGRyZXNzIGxlbmd0aCBpcyBtb3JlIHRoYW4gNjAgYnl0ZXNcbiAqIEBwYXJhbSBjaGFpblxuICogQHBhcmFtIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGVuY29kZUFkZHJlc3MgPSAoY2hhaW46IHN0cmluZywgYWRkcmVzczogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IGVuY29kZWQ6IHN0cmluZztcbiAgc3dpdGNoIChjaGFpbikge1xuICAgIGNhc2UgRVJHT19DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLmNvbnRlbnRfYnl0ZXMoKVxuICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENBUkRBTk9fQ0hBSU46XG4gICAgICBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGNhcmRhbm9MaWIuQWRkcmVzcy5mcm9tX2JlY2gzMihhZGRyZXNzKS50b19ieXRlcygpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQklUQ09JTl9DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgYml0Y29pbkxpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRVRIRVJFVU1fQ0hBSU46XG4gICAgICBpZiAoYWRkcmVzcy5sZW5ndGggIT0gNDIgfHwgYWRkcmVzcy5zdWJzdHJpbmcoMCwgMikgIT0gJzB4Jykge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IoY2hhaW4sIGFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgZW5jb2RlZCA9IGFkZHJlc3Muc3Vic3RyaW5nKDIpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZENoYWluRXJyb3IoY2hhaW4pO1xuICB9XG4gIGlmIChlbmNvZGVkLmxlbmd0aCA+IDYwICogMilcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IoY2hhaW4sIGFkZHJlc3MpO1xuICByZXR1cm4gZW5jb2RlZDtcbn07XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './encoder';
2
2
  export * from './decoder';
3
3
  export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './encoder';
2
2
  export * from './decoder';
3
3
  export * from './types';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VuY29kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VuY29kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,5 @@
1
+ export declare const BITCOIN_CHAIN = "bitcoin";
2
+ export declare const CARDANO_CHAIN = "cardano";
3
+ export declare const ERGO_CHAIN = "ergo";
4
+ export declare const ETHEREUM_CHAIN = "ethereum";
5
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../lib/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,eAAO,MAAM,cAAc,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const BITCOIN_CHAIN = 'bitcoin';
2
+ export const CARDANO_CHAIN = 'cardano';
3
+ export const ERGO_CHAIN = 'ergo';
4
+ export const ETHEREUM_CHAIN = 'ethereum';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCSVRDT0lOX0NIQUlOID0gJ2JpdGNvaW4nO1xuZXhwb3J0IGNvbnN0IENBUkRBTk9fQ0hBSU4gPSAnY2FyZGFubyc7XG5leHBvcnQgY29uc3QgRVJHT19DSEFJTiA9ICdlcmdvJztcbmV4cG9ydCBjb25zdCBFVEhFUkVVTV9DSEFJTiA9ICdldGhlcmV1bSc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * decodes address of a chain
3
+ * throws error if encoded address length is more than 60 bytes
4
+ * @param chain
5
+ * @param encodedAddress
6
+ */
7
+ export declare const decodeAddress: (chain: string, encodedAddress: string) => string;
8
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../lib/decoder.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UACjB,MAAM,kBACG,MAAM,KACrB,MAwBF,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, } from './const';
2
+ import { UnsupportedAddressError, UnsupportedChainError } from './types';
3
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
4
+ import * as cardanoLib from '@emurgo/cardano-serialization-lib-nodejs';
5
+ import * as bitcoinLib from 'bitcoinjs-lib';
6
+ /**
7
+ * decodes address of a chain
8
+ * throws error if encoded address length is more than 60 bytes
9
+ * @param chain
10
+ * @param encodedAddress
11
+ */
12
+ export const decodeAddress = (chain, encodedAddress) => {
13
+ if (encodedAddress.length > 60 * 2)
14
+ throw new UnsupportedAddressError(chain, encodedAddress);
15
+ switch (chain) {
16
+ case ERGO_CHAIN:
17
+ return ergoLib.Address.from_public_key(Buffer.from(encodedAddress, 'hex')).to_base58(ergoLib.NetworkPrefix.Mainnet);
18
+ case CARDANO_CHAIN:
19
+ return cardanoLib.Address.from_bytes(Buffer.from(encodedAddress, 'hex')).to_bech32();
20
+ case BITCOIN_CHAIN:
21
+ return bitcoinLib.address.fromOutputScript(Buffer.from(encodedAddress, 'hex'));
22
+ case ETHEREUM_CHAIN:
23
+ if (encodedAddress.length != 40) {
24
+ throw new UnsupportedAddressError(chain, encodedAddress);
25
+ }
26
+ return '0x' + encodedAddress;
27
+ default:
28
+ throw new UnsupportedChainError(chain);
29
+ }
30
+ };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFhLEVBQ2IsY0FBc0IsRUFDZCxFQUFFO0lBQ1YsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0QsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLFVBQVU7WUFDYixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxLQUFLLGFBQWE7WUFDaEIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQ25DLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEIsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQ25DLENBQUM7UUFDSixLQUFLLGNBQWM7WUFDakIsSUFBSSxjQUFjLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQzthQUMxRDtZQUNELE9BQU8sSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMvQjtZQUNFLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJJVENPSU5fQ0hBSU4sXG4gIENBUkRBTk9fQ0hBSU4sXG4gIEVSR09fQ0hBSU4sXG4gIEVUSEVSRVVNX0NIQUlOLFxufSBmcm9tICcuL2NvbnN0JztcbmltcG9ydCB7IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLCBVbnN1cHBvcnRlZENoYWluRXJyb3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIGVyZ29MaWIgZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0ICogYXMgY2FyZGFub0xpYiBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCAqIGFzIGJpdGNvaW5MaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbi8qKlxuICogZGVjb2RlcyBhZGRyZXNzIG9mIGEgY2hhaW5cbiAqICB0aHJvd3MgZXJyb3IgaWYgZW5jb2RlZCBhZGRyZXNzIGxlbmd0aCBpcyBtb3JlIHRoYW4gNjAgYnl0ZXNcbiAqIEBwYXJhbSBjaGFpblxuICogQHBhcmFtIGVuY29kZWRBZGRyZXNzXG4gKi9cbmV4cG9ydCBjb25zdCBkZWNvZGVBZGRyZXNzID0gKFxuICBjaGFpbjogc3RyaW5nLFxuICBlbmNvZGVkQWRkcmVzczogc3RyaW5nXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoZW5jb2RlZEFkZHJlc3MubGVuZ3RoID4gNjAgKiAyKVxuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcihjaGFpbiwgZW5jb2RlZEFkZHJlc3MpO1xuICBzd2l0Y2ggKGNoYWluKSB7XG4gICAgY2FzZSBFUkdPX0NIQUlOOlxuICAgICAgcmV0dXJuIGVyZ29MaWIuQWRkcmVzcy5mcm9tX3B1YmxpY19rZXkoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICkudG9fYmFzZTU4KGVyZ29MaWIuTmV0d29ya1ByZWZpeC5NYWlubmV0KTtcbiAgICBjYXNlIENBUkRBTk9fQ0hBSU46XG4gICAgICByZXR1cm4gY2FyZGFub0xpYi5BZGRyZXNzLmZyb21fYnl0ZXMoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICkudG9fYmVjaDMyKCk7XG4gICAgY2FzZSBCSVRDT0lOX0NIQUlOOlxuICAgICAgcmV0dXJuIGJpdGNvaW5MaWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KFxuICAgICAgICBCdWZmZXIuZnJvbShlbmNvZGVkQWRkcmVzcywgJ2hleCcpXG4gICAgICApO1xuICAgIGNhc2UgRVRIRVJFVU1fQ0hBSU46XG4gICAgICBpZiAoZW5jb2RlZEFkZHJlc3MubGVuZ3RoICE9IDQwKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcihjaGFpbiwgZW5jb2RlZEFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcweCcgKyBlbmNvZGVkQWRkcmVzcztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2hhaW5FcnJvcihjaGFpbik7XG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * encodes address of a chain to hex string
3
+ * throws error if encoded address length is more than 60 bytes
4
+ * @param chain
5
+ * @param address
6
+ */
7
+ export declare const encodeAddress: (chain: string, address: string) => string;
8
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../lib/encoder.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,WAAW,MAAM,KAAG,MA8B9D,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_CHAIN, } from './const';
2
+ import { UnsupportedAddressError, UnsupportedChainError } from './types';
3
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
4
+ import * as cardanoLib from '@emurgo/cardano-serialization-lib-nodejs';
5
+ import * as bitcoinLib from 'bitcoinjs-lib';
6
+ /**
7
+ * encodes address of a chain to hex string
8
+ * throws error if encoded address length is more than 60 bytes
9
+ * @param chain
10
+ * @param address
11
+ */
12
+ export const encodeAddress = (chain, address) => {
13
+ let encoded;
14
+ switch (chain) {
15
+ case ERGO_CHAIN:
16
+ encoded = Buffer.from(ergoLib.Address.from_base58(address).content_bytes()).toString('hex');
17
+ break;
18
+ case CARDANO_CHAIN:
19
+ encoded = Buffer.from(cardanoLib.Address.from_bech32(address).to_bytes()).toString('hex');
20
+ break;
21
+ case BITCOIN_CHAIN:
22
+ encoded = Buffer.from(bitcoinLib.address.toOutputScript(address)).toString('hex');
23
+ break;
24
+ case ETHEREUM_CHAIN:
25
+ if (address.length != 42 || address.substring(0, 2) != '0x') {
26
+ throw new UnsupportedAddressError(chain, address);
27
+ }
28
+ encoded = address.substring(2);
29
+ break;
30
+ default:
31
+ throw new UnsupportedChainError(chain);
32
+ }
33
+ if (encoded.length > 60 * 2)
34
+ throw new UnsupportedAddressError(chain, address);
35
+ return encoded;
36
+ };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQVUsRUFBRTtJQUN0RSxJQUFJLE9BQWUsQ0FBQztJQUNwQixRQUFRLEtBQUssRUFBRTtRQUNiLEtBQUssVUFBVTtZQUNiLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FDckQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsTUFBTTtRQUNSLEtBQUssYUFBYTtZQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQ25ELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLGFBQWE7WUFDaEIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25CLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUMzQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxjQUFjO1lBQ2pCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUMzRCxNQUFNLElBQUksdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTTtRQUNSO1lBQ0UsTUFBTSxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ3pCLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQklUQ09JTl9DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgRVJHT19DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG59IGZyb20gJy4vY29uc3QnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IsIFVuc3VwcG9ydGVkQ2hhaW5FcnJvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBjYXJkYW5vTGliIGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0ICogYXMgYml0Y29pbkxpYiBmcm9tICdiaXRjb2luanMtbGliJztcblxuLyoqXG4gKiBlbmNvZGVzIGFkZHJlc3Mgb2YgYSBjaGFpbiB0byBoZXggc3RyaW5nXG4gKiAgdGhyb3dzIGVycm9yIGlmIGVuY29kZWQgYWRkcmVzcyBsZW5ndGggaXMgbW9yZSB0aGFuIDYwIGJ5dGVzXG4gKiBAcGFyYW0gY2hhaW5cbiAqIEBwYXJhbSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBjb25zdCBlbmNvZGVBZGRyZXNzID0gKGNoYWluOiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBlbmNvZGVkOiBzdHJpbmc7XG4gIHN3aXRjaCAoY2hhaW4pIHtcbiAgICBjYXNlIEVSR09fQ0hBSU46XG4gICAgICBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGVyZ29MaWIuQWRkcmVzcy5mcm9tX2Jhc2U1OChhZGRyZXNzKS5jb250ZW50X2J5dGVzKClcbiAgICAgICkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDQVJEQU5PX0NIQUlOOlxuICAgICAgZW5jb2RlZCA9IEJ1ZmZlci5mcm9tKFxuICAgICAgICBjYXJkYW5vTGliLkFkZHJlc3MuZnJvbV9iZWNoMzIoYWRkcmVzcykudG9fYnl0ZXMoKVxuICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEJJVENPSU5fQ0hBSU46XG4gICAgICBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGJpdGNvaW5MaWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzKVxuICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVUSEVSRVVNX0NIQUlOOlxuICAgICAgaWYgKGFkZHJlc3MubGVuZ3RoICE9IDQyIHx8IGFkZHJlc3Muc3Vic3RyaW5nKDAsIDIpICE9ICcweCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBhZGRyZXNzKTtcbiAgICAgIH1cbiAgICAgIGVuY29kZWQgPSBhZGRyZXNzLnN1YnN0cmluZygyKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDaGFpbkVycm9yKGNoYWluKTtcbiAgfVxuICBpZiAoZW5jb2RlZC5sZW5ndGggPiA2MCAqIDIpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBhZGRyZXNzKTtcbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './encoder';
2
+ export * from './decoder';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './encoder';
2
+ export * from './decoder';
3
+ export * from './types';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VuY29kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,7 @@
1
+ export declare class UnsupportedAddressError extends Error {
2
+ constructor(chain: string, address: string);
3
+ }
4
+ export declare class UnsupportedChainError extends Error {
5
+ constructor(chain: string);
6
+ }
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK3C;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,KAAK,EAAE,MAAM;CAK1B"}
@@ -0,0 +1,11 @@
1
+ export class UnsupportedAddressError extends Error {
2
+ constructor(chain, address) {
3
+ super(`UnsupportedAddressError: Address [${address}] is not supported in current implementation of [${chain}] chain`);
4
+ }
5
+ }
6
+ export class UnsupportedChainError extends Error {
7
+ constructor(chain) {
8
+ super(`UnsupportedChainError: Address encoding does not support [${chain}] chain currently`);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsWUFBWSxLQUFhLEVBQUUsT0FBZTtRQUN4QyxLQUFLLENBQ0gscUNBQXFDLE9BQU8sb0RBQW9ELEtBQUssU0FBUyxDQUMvRyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLEtBQUs7SUFDOUMsWUFBWSxLQUFhO1FBQ3ZCLEtBQUssQ0FDSCw2REFBNkQsS0FBSyxtQkFBbUIsQ0FDdEYsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoY2hhaW46IHN0cmluZywgYWRkcmVzczogc3RyaW5nKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3I6IEFkZHJlc3MgWyR7YWRkcmVzc31dIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBbJHtjaGFpbn1dIGNoYWluYFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkQ2hhaW5FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoY2hhaW46IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYFVuc3VwcG9ydGVkQ2hhaW5FcnJvcjogQWRkcmVzcyBlbmNvZGluZyBkb2VzIG5vdCBzdXBwb3J0IFske2NoYWlufV0gY2hhaW4gY3VycmVudGx5YFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=decoder.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.spec.d.ts","sourceRoot":"","sources":["../../tests/decoder.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import * as testData from './testData';
2
+ import { UnsupportedAddressError, UnsupportedChainError, decodeAddress, } from '../lib';
3
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvZGVjb2Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywrREFBK0QsRUFBRSxHQUFHLEVBQUU7UUFDdkUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7OztPQU9HO0lBQ0gsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUN4RCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsYUFBYSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuL3Rlc3REYXRhJztcbmltcG9ydCB7XG4gIFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yLFxuICBVbnN1cHBvcnRlZENoYWluRXJyb3IsXG4gIGRlY29kZUFkZHJlc3MsXG59IGZyb20gJy4uL2xpYic7XG5pbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbn0gZnJvbSAnLi4vbGliL2NvbnN0JztcblxuZGVzY3JpYmUoJ2RlY29kZUFkZHJlc3MnLCAoKSA9PiB7XG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgZGVjb2RlIEVyZ28gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBhZGRyZXNzIGluIGJhc2U1OCBmb3JtYXRcbiAgICovXG4gIGl0KCdzaG91bGQgZGVjb2RlIEVyZ28gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5lbmNvZGVkRXJnb0FkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZXJnb0FkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZGVjb2RlQWRkcmVzc2Agc2hvdWxkIGRlY29kZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgYmUgYWRkcmVzcyBpbiBiZWNoMzIgZm9ybWF0XG4gICAqL1xuICBpdCgnc2hvdWxkIGRlY29kZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGRlY29kZUFkZHJlc3MoQ0FSREFOT19DSEFJTiwgdGVzdERhdGEuZW5jb2RlZENhcmRhbm9BZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRlc3REYXRhLmNhcmRhbm9BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGRlY29kZUFkZHJlc3NgIHNob3VsZCBkZWNvZGUgQml0Y29pbiBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIGFkZHJlc3MgaW4gYmVjaDMyIGZvcm1hdFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBkZWNvZGUgQml0Y29pbiBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBkZWNvZGVBZGRyZXNzKEJJVENPSU5fQ0hBSU4sIHRlc3REYXRhLmVuY29kZWRCaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgZGVjb2RlIEV0aGVyZXVtIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgYmUgYWRkcmVzcyBpbiBoZXggZm9ybWF0XG4gICAqL1xuICBpdCgnc2hvdWxkIGRlY29kZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBkZWNvZGVBZGRyZXNzKEVUSEVSRVVNX0NIQUlOLCB0ZXN0RGF0YS5lbmNvZGVkRXRoZXJldW1BZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBlbmNvZGVkIGFkZHJlc3MgaXMgbW9yZSB0aGFuIDYwIGJ5dGVzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZEFkZHJlc3MgZXJyb3JcbiAgICovXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBlbmNvZGVkIGFkZHJlc3MgaXMgbW9yZSB0aGFuIDYwIGJ5dGVzJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBkZWNvZGVBZGRyZXNzKEVSR09fQ0hBSU4sIHRlc3REYXRhLmxvbmdFbmNvZGVkQWRkcmVzcyk7XG4gICAgfSkudG9UaHJvdyhVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcik7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBkZWNvZGVBZGRyZXNzYCBzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBjaGFpbiBpcyBub3Qgc3VwcG9ydGVkXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3QgJiBjaGVjayB0aHJvd24gZXhjZXB0aW9uXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZENoYWluIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZGVjb2RlQWRkcmVzcygndW5zdXBwb3J0ZWQtY2hhaW4nLCAnMDAxMTIyMzM0NCcpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRDaGFpbkVycm9yKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=encoder.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.spec.d.ts","sourceRoot":"","sources":["../../tests/encoder.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,98 @@
1
+ import * as testData from './testData';
2
+ import { UnsupportedAddressError, UnsupportedChainError, encodeAddress, } from '../lib';
3
+ import { BITCOIN_CHAIN, CARDANO_CHAIN, ERGO_CHAIN, ETHEREUM_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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvZW5jb2Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFFSDs7Ozs7Ozs7T0FRRztJQUNILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVIOzs7Ozs7OztPQVFHO0lBQ0gsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7O09BUUc7SUFDSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixhQUFhLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQywrREFBK0QsRUFBRSxHQUFHLEVBQUU7UUFDdkUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNILEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi90ZXN0RGF0YSc7XG5pbXBvcnQge1xuICBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvcixcbiAgVW5zdXBwb3J0ZWRDaGFpbkVycm9yLFxuICBlbmNvZGVBZGRyZXNzLFxufSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHtcbiAgQklUQ09JTl9DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgRVJHT19DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG59IGZyb20gJy4uL2xpYi9jb25zdCc7XG5cbmRlc2NyaWJlKCdlbmNvZGVBZGRyZXNzJywgKCkgPT4ge1xuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIGVuY29kZSBFcmdvIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5XG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBjaGVjayByZXR1cm5lZCB2YWx1ZVxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgYmUgcHVibGljIGtleSBvZiBnaXZlbiBhZGRyZXNzIGluIGhleFxuICAgKi9cbiAgaXQoJ3Nob3VsZCBlbmNvZGUgRXJnbyBhZGRyZXNzIHN1Y2Nlc3NmdWxseScsICgpID0+IHtcbiAgICBjb25zdCByZXMgPSBlbmNvZGVBZGRyZXNzKEVSR09fQ0hBSU4sIHRlc3REYXRhLmVyZ29BZGRyZXNzKTtcbiAgICBleHBlY3QocmVzKS50b0VxdWFsKHRlc3REYXRhLmVuY29kZWRFcmdvQWRkcmVzcyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAdGFyZ2V0IGBlbmNvZGVBZGRyZXNzYCBzaG91bGQgZW5jb2RlIENhcmRhbm8gYWRkcmVzcyBzdWNjZXNzZnVsbHlcbiAgICogQGRlcGVuZGVuY2llc1xuICAgKiBAc2NlbmFyaW9cbiAgICogLSBydW4gdGVzdFxuICAgKiAtIGNoZWNrIHJldHVybmVkIHZhbHVlXG4gICAqIEBleHBlY3RlZFxuICAgKiAtIGl0IHNob3VsZCBiZSBwdWJsaWMga2V5IG9mIGdpdmVuIGFkZHJlc3MgaW4gaGV4XG4gICAqL1xuICBpdCgnc2hvdWxkIGVuY29kZSBDYXJkYW5vIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGVuY29kZUFkZHJlc3MoQ0FSREFOT19DSEFJTiwgdGVzdERhdGEuY2FyZGFub0FkZHJlc3MpO1xuICAgIGV4cGVjdChyZXMpLnRvRXF1YWwodGVzdERhdGEuZW5jb2RlZENhcmRhbm9BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGVuY29kZUFkZHJlc3NgIHNob3VsZCBlbmNvZGUgQml0Y29pbiBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIG91dHB1dCBzY3JpcHQgb2YgZ2l2ZW4gYWRkcmVzcyBpbiBoZXhcbiAgICovXG4gIGl0KCdzaG91bGQgZW5jb2RlIEJpdGNvaW4gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZW5jb2RlQWRkcmVzcyhCSVRDT0lOX0NIQUlOLCB0ZXN0RGF0YS5iaXRjb2luQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5lbmNvZGVkQml0Y29pbkFkZHJlc3MpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIGVuY29kZSBFdGhlcmV1bSBhZGRyZXNzIHN1Y2Nlc3NmdWxseVxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0XG4gICAqIC0gY2hlY2sgcmV0dXJuZWQgdmFsdWVcbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIGJlIG91dHB1dCBzY3JpcHQgb2YgZ2l2ZW4gYWRkcmVzcyBpbiBoZXhcbiAgICovXG4gIGl0KCdzaG91bGQgZW5jb2RlIEV0aGVyZXVtIGFkZHJlc3Mgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IGVuY29kZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmV0aGVyZXVtQWRkcmVzcyk7XG4gICAgZXhwZWN0KHJlcykudG9FcXVhbCh0ZXN0RGF0YS5lbmNvZGVkRXRoZXJldW1BZGRyZXNzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEB0YXJnZXQgYGVuY29kZUFkZHJlc3NgIHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIGFkZHJlc3MgaXMgbm90IDQwIGJ5dGVzXG4gICAqIEBkZXBlbmRlbmNpZXNcbiAgICogQHNjZW5hcmlvXG4gICAqIC0gcnVuIHRlc3RcbiAgICogLSBydW4gdGVzdCAmIGNoZWNrIHRocm93biBleGNlcHRpb25cbiAgICogQGV4cGVjdGVkXG4gICAqIC0gaXQgc2hvdWxkIHRocm93IFVuc3VwcG9ydGVkQWRkcmVzcyBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCBlbmNvZGUgRXRoZXJldW0gYWRkcmVzcyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoRVRIRVJFVU1fQ0hBSU4sIHRlc3REYXRhLmludmFsaWRFdGhlcmV1bUFkZHJlc3NMZW5ndGgpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlc1xuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRBZGRyZXNzIGVycm9yXG4gICAqL1xuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gZW5jb2RlZCBhZGRyZXNzIGlzIG1vcmUgdGhhbiA2MCBieXRlcycsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZW5jb2RlQWRkcmVzcyhFUkdPX0NIQUlOLCB0ZXN0RGF0YS5sb25nRXJnb0FkZHJlc3MpO1xuICAgIH0pLnRvVGhyb3coVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IpO1xuICB9KTtcblxuICAvKipcbiAgICogQHRhcmdldCBgZW5jb2RlQWRkcmVzc2Agc2hvdWxkIHRocm93IGVycm9yIHdoZW4gY2hhaW4gaXMgbm90IHN1cHBvcnRlZFxuICAgKiBAZGVwZW5kZW5jaWVzXG4gICAqIEBzY2VuYXJpb1xuICAgKiAtIHJ1biB0ZXN0ICYgY2hlY2sgdGhyb3duIGV4Y2VwdGlvblxuICAgKiBAZXhwZWN0ZWRcbiAgICogLSBpdCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRDaGFpbiBlcnJvclxuICAgKi9cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNoYWluIGlzIG5vdCBzdXBwb3J0ZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoJ3Vuc3VwcG9ydGVkLWNoYWluJywgJ2FkZHJlc3MnKTtcbiAgICB9KS50b1Rocm93KFVuc3VwcG9ydGVkQ2hhaW5FcnJvcik7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export declare const ergoAddress = "9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVd";
2
+ export declare const encodedErgoAddress = "03f999da8e6e42660e4464d17d29e63bc006734a6710a24eb489b466323d3a9339";
3
+ export declare const cardanoAddress = "addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqet";
4
+ export declare const encodedCardanoAddress = "018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1";
5
+ export declare const bitcoinAddress = "bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h";
6
+ export declare const encodedBitcoinAddress = "0014b20272a6591937ba7d687dc889f3637ed40efa6a";
7
+ export declare const longErgoAddress = "nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6";
8
+ export declare const longEncodedAddress = "100304000e20a6ac381e6fa99929fd1477b3ba9499790a775e91d4c14c5aa86e9a118dfac8530400d801d601b2db6501fe730000ea02d1aedb63087201d901024d0e938c720201730198b2e4c672010510730200ade4c67201041ad901020ecdee7202";
9
+ export declare const ethereumAddress = "0xb416c8a6d7ec94706a9ae2c26c11d320519482b1";
10
+ export declare const encodedEthereumAddress = "b416c8a6d7ec94706a9ae2c26c11d320519482b1";
11
+ export declare const invalidEthereumAddressLength = "0xb416c8a7ec94706a9ae2c26c11d320519482b1";
12
+ //# sourceMappingURL=testData.d.ts.map
@@ -0,0 +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;AAEvE,eAAO,MAAM,cAAc,4GACgF,CAAC;AAC5G,eAAO,MAAM,qBAAqB,uHACoF,CAAC;AAEvH,eAAO,MAAM,cAAc,+CAA+C,CAAC;AAC3E,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"}
@@ -0,0 +1,12 @@
1
+ export const ergoAddress = '9iMjQx8PzwBKXRvsFUJFJAPoy31znfEeBUGz8DRkcnJX4rJYjVd';
2
+ export const encodedErgoAddress = '03f999da8e6e42660e4464d17d29e63bc006734a6710a24eb489b466323d3a9339';
3
+ export const cardanoAddress = 'addr1qxxa3kfnnh40yqtepa5frt0tkw4a0rys7v33422lzt8glx43sqtd4vkhjzawajej8aujh27p5a54zx62xf3wvuplynqs3fsqet';
4
+ export const encodedCardanoAddress = '018dd8d9339deaf201790f6891adebb3abd78c90f3231aa95f12ce8f9ab18016dab2d790baeecb323f792babc1a769511b4a3262e6703f24c1';
5
+ export const bitcoinAddress = 'bc1qkgp89fjerymm5ltg0hygnumr0m2qa7n22gyw6h';
6
+ export const encodedBitcoinAddress = '0014b20272a6591937ba7d687dc889f3637ed40efa6a';
7
+ export const longErgoAddress = 'nB3L2PD3LBtiNhDYK7XhZ8nVt6uekBXN7RcPUKgdKLXFcrJiSPxmQsUKuUkTRQ1hbvDrxEQAKYurGFbaGD1RPxU7XqQimD78j23HHMQKL1boUGsnNhCxaVNAYMcFbQNo355Af8cWkhAN6';
8
+ export const longEncodedAddress = '100304000e20a6ac381e6fa99929fd1477b3ba9499790a775e91d4c14c5aa86e9a118dfac8530400d801d601b2db6501fe730000ea02d1aedb63087201d901024d0e938c720201730198b2e4c672010510730200ade4c67201041ad901020ecdee7202';
9
+ export const ethereumAddress = '0xb416c8a6d7ec94706a9ae2c26c11d320519482b1';
10
+ export const encodedEthereumAddress = 'b416c8a6d7ec94706a9ae2c26c11d320519482b1';
11
+ export const invalidEthereumAddressLength = '0xb416c8a7ec94706a9ae2c26c11d320519482b1';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy90ZXN0RGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQ3RCLHFEQUFxRCxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUM3QixvRUFBb0UsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQ3pCLHlHQUF5RyxDQUFDO0FBQzVHLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUNoQyxvSEFBb0gsQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQ2hDLDhDQUE4QyxDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FDMUIsK0lBQStJLENBQUM7QUFDbEosTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzdCLHdNQUF3TSxDQUFDO0FBRTNNLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FDakMsMENBQTBDLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQ3ZDLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVyZ29BZGRyZXNzID1cbiAgJzlpTWpReDhQendCS1hSdnNGVUpGSkFQb3kzMXpuZkVlQlVHejhEUmtjbkpYNHJKWWpWZCc7XG5leHBvcnQgY29uc3QgZW5jb2RlZEVyZ29BZGRyZXNzID1cbiAgJzAzZjk5OWRhOGU2ZTQyNjYwZTQ0NjRkMTdkMjllNjNiYzAwNjczNGE2NzEwYTI0ZWI0ODliNDY2MzIzZDNhOTMzOSc7XG5cbmV4cG9ydCBjb25zdCBjYXJkYW5vQWRkcmVzcyA9XG4gICdhZGRyMXF4eGEza2Zubmg0MHlxdGVwYTVmcnQwdGt3NGEwcnlzN3YzMzQyMmx6dDhnbHg0M3NxdGQ0dmtoanphd2FqZWo4YXVqaDI3cDVhNTR6eDYyeGYzd3Z1cGx5bnFzM2ZzcWV0JztcbmV4cG9ydCBjb25zdCBlbmNvZGVkQ2FyZGFub0FkZHJlc3MgPVxuICAnMDE4ZGQ4ZDkzMzlkZWFmMjAxNzkwZjY4OTFhZGViYjNhYmQ3OGM5MGYzMjMxYWE5NWYxMmNlOGY5YWIxODAxNmRhYjJkNzkwYmFlZWNiMzIzZjc5MmJhYmMxYTc2OTUxMWI0YTMyNjJlNjcwM2YyNGMxJztcblxuZXhwb3J0IGNvbnN0IGJpdGNvaW5BZGRyZXNzID0gJ2JjMXFrZ3A4OWZqZXJ5bW01bHRnMGh5Z251bXIwbTJxYTduMjJneXc2aCc7XG5leHBvcnQgY29uc3QgZW5jb2RlZEJpdGNvaW5BZGRyZXNzID1cbiAgJzAwMTRiMjAyNzJhNjU5MTkzN2JhN2Q2ODdkYzg4OWYzNjM3ZWQ0MGVmYTZhJztcblxuZXhwb3J0IGNvbnN0IGxvbmdFcmdvQWRkcmVzcyA9XG4gICduQjNMMlBEM0xCdGlOaERZSzdYaFo4blZ0NnVla0JYTjdSY1BVS2dkS0xYRmNySmlTUHhtUXNVS3VVa1RSUTFoYnZEcnhFUUFLWXVyR0ZiYUdEMVJQeFU3WHFRaW1ENzhqMjNISE1RS0wxYm9VR3NuTmhDeGFWTkFZTWNGYlFObzM1NUFmOGNXa2hBTjYnO1xuZXhwb3J0IGNvbnN0IGxvbmdFbmNvZGVkQWRkcmVzcyA9XG4gICcxMDAzMDQwMDBlMjBhNmFjMzgxZTZmYTk5OTI5ZmQxNDc3YjNiYTk0OTk3OTBhNzc1ZTkxZDRjMTRjNWFhODZlOWExMThkZmFjODUzMDQwMGQ4MDFkNjAxYjJkYjY1MDFmZTczMDAwMGVhMDJkMWFlZGI2MzA4NzIwMWQ5MDEwMjRkMGU5MzhjNzIwMjAxNzMwMTk4YjJlNGM2NzIwMTA1MTA3MzAyMDBhZGU0YzY3MjAxMDQxYWQ5MDEwMjBlY2RlZTcyMDInO1xuXG5leHBvcnQgY29uc3QgZXRoZXJldW1BZGRyZXNzID0gJzB4YjQxNmM4YTZkN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG5leHBvcnQgY29uc3QgZW5jb2RlZEV0aGVyZXVtQWRkcmVzcyA9XG4gICdiNDE2YzhhNmQ3ZWM5NDcwNmE5YWUyYzI2YzExZDMyMDUxOTQ4MmIxJztcblxuZXhwb3J0IGNvbnN0IGludmFsaWRFdGhlcmV1bUFkZHJlc3NMZW5ndGggPVxuICAnMHhiNDE2YzhhN2VjOTQ3MDZhOWFlMmMyNmMxMWQzMjA1MTk0ODJiMSc7XG4iXX0=