@rosen-bridge/address-codec 0.1.0 → 0.2.1
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 +13 -0
- package/dist/const.d.ts +1 -0
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +2 -1
- package/dist/decoder.d.ts +5 -2
- package/dist/decoder.d.ts.map +1 -1
- package/dist/decoder.js +7 -2
- package/dist/encoder.d.ts +1 -1
- package/dist/encoder.d.ts.map +1 -1
- package/dist/encoder.js +8 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/const.d.ts +5 -0
- package/dist/lib/const.d.ts.map +1 -0
- package/dist/lib/const.js +5 -0
- package/dist/lib/decoder.d.ts +8 -0
- package/dist/lib/decoder.d.ts.map +1 -0
- package/dist/lib/decoder.js +31 -0
- package/dist/lib/encoder.d.ts +8 -0
- package/dist/lib/encoder.d.ts.map +1 -0
- package/dist/lib/encoder.js +37 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/types.d.ts +7 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +11 -0
- package/dist/tests/decoder.spec.d.ts +2 -0
- package/dist/tests/decoder.spec.d.ts.map +1 -0
- package/dist/tests/decoder.spec.js +84 -0
- package/dist/tests/encoder.spec.d.ts +2 -0
- package/dist/tests/encoder.spec.d.ts.map +1 -0
- package/dist/tests/encoder.spec.js +98 -0
- package/dist/tests/testData.d.ts +12 -0
- package/dist/tests/testData.d.ts.map +1 -0
- package/dist/tests/testData.js +12 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +3 -3
- package/dist/types.js +11 -7
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +18 -0
- package/lib/const.ts +1 -0
- package/lib/decoder.ts +11 -1
- package/lib/encoder.ts +12 -1
- package/package.json +2 -2
- package/tests/decoder.spec.ts +20 -1
- package/tests/encoder.spec.ts +35 -1
- package/tests/testData.ts +7 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md
ADDED
package/dist/const.d.ts
CHANGED
package/dist/const.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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: (
|
|
8
|
-
|
|
7
|
+
export declare const decodeAddress: (
|
|
8
|
+
chain: string,
|
|
9
|
+
encodedAddress: string,
|
|
10
|
+
) => string;
|
|
11
|
+
//# sourceMappingURL=decoder.d.ts.map
|
package/dist/decoder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../lib/decoder.ts"],"names":[],"mappings":"
|
|
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,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9kZWNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFhLEVBQ2IsY0FBc0IsRUFDZCxFQUFFO0lBQ1YsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0QsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssVUFBVTtZQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUNuQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLEtBQUssYUFBYTtZQUNoQixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixLQUFLLGFBQWE7WUFDaEIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FDbkMsQ0FBQztRQUNKLEtBQUssY0FBYztZQUNqQixJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELE9BQU8sSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMvQjtZQUNFLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQklUQ09JTl9DSEFJTixcbiAgQ0FSREFOT19DSEFJTixcbiAgRVJHT19DSEFJTixcbiAgRVRIRVJFVU1fQ0hBSU4sXG59IGZyb20gJy4vY29uc3QnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IsIFVuc3VwcG9ydGVkQ2hhaW5FcnJvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0ICogYXMgZXJnb0xpYiBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBjYXJkYW5vTGliIGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0ICogYXMgYml0Y29pbkxpYiBmcm9tICdiaXRjb2luanMtbGliJztcblxuLyoqXG4gKiBkZWNvZGVzIGFkZHJlc3Mgb2YgYSBjaGFpblxuICogIHRocm93cyBlcnJvciBpZiBlbmNvZGVkIGFkZHJlc3MgbGVuZ3RoIGlzIG1vcmUgdGhhbiA2MCBieXRlc1xuICogQHBhcmFtIGNoYWluXG4gKiBAcGFyYW0gZW5jb2RlZEFkZHJlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGRlY29kZUFkZHJlc3MgPSAoXG4gIGNoYWluOiBzdHJpbmcsXG4gIGVuY29kZWRBZGRyZXNzOiBzdHJpbmdcbik6IHN0cmluZyA9PiB7XG4gIGlmIChlbmNvZGVkQWRkcmVzcy5sZW5ndGggPiA2MCAqIDIpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBlbmNvZGVkQWRkcmVzcyk7XG4gIHN3aXRjaCAoY2hhaW4pIHtcbiAgICBjYXNlIEVSR09fQ0hBSU46XG4gICAgICByZXR1cm4gZXJnb0xpYi5BZGRyZXNzLmZyb21fcHVibGljX2tleShcbiAgICAgICAgQnVmZmVyLmZyb20oZW5jb2RlZEFkZHJlc3MsICdoZXgnKVxuICAgICAgKS50b19iYXNlNTgoZXJnb0xpYi5OZXR3b3JrUHJlZml4Lk1haW5uZXQpO1xuICAgIGNhc2UgQ0FSREFOT19DSEFJTjpcbiAgICAgIHJldHVybiBjYXJkYW5vTGliLkFkZHJlc3MuZnJvbV9ieXRlcyhcbiAgICAgICAgQnVmZmVyLmZyb20oZW5jb2RlZEFkZHJlc3MsICdoZXgnKVxuICAgICAgKS50b19iZWNoMzIoKTtcbiAgICBjYXNlIEJJVENPSU5fQ0hBSU46XG4gICAgICByZXR1cm4gYml0Y29pbkxpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoXG4gICAgICAgIEJ1ZmZlci5mcm9tKGVuY29kZWRBZGRyZXNzLCAnaGV4JylcbiAgICAgICk7XG4gICAgY2FzZSBFVEhFUkVVTV9DSEFJTjpcbiAgICAgIGlmIChlbmNvZGVkQWRkcmVzcy5sZW5ndGggIT0gNDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQWRkcmVzc0Vycm9yKGNoYWluLCBlbmNvZGVkQWRkcmVzcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gJzB4JyArIGVuY29kZWRBZGRyZXNzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDaGFpbkVycm9yKGNoYWluKTtcbiAgfVxufTtcbiJdfQ==
|
package/dist/encoder.d.ts
CHANGED
package/dist/encoder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../lib/encoder.ts"],"names":[],"mappings":"
|
|
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,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9lbmNvZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQVUsRUFBRTtJQUN0RSxJQUFJLE9BQWUsQ0FBQztJQUNwQixRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxVQUFVO1lBQ2IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25CLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUNyRCxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNuQixVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDbkQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsTUFBTTtRQUNSLEtBQUssYUFBYTtZQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQzNDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLGNBQWM7WUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTTtRQUNSO1lBQ0UsTUFBTSxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDekIsTUFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCSVRDT0lOX0NIQUlOLFxuICBDQVJEQU5PX0NIQUlOLFxuICBFUkdPX0NIQUlOLFxuICBFVEhFUkVVTV9DSEFJTixcbn0gZnJvbSAnLi9jb25zdCc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEFkZHJlc3NFcnJvciwgVW5zdXBwb3J0ZWRDaGFpbkVycm9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCAqIGFzIGNhcmRhbm9MaWIgZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luTGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG4vKipcbiAqIGVuY29kZXMgYWRkcmVzcyBvZiBhIGNoYWluIHRvIGhleCBzdHJpbmdcbiAqICB0aHJvd3MgZXJyb3IgaWYgZW5jb2RlZCBhZGRyZXNzIGxlbmd0aCBpcyBtb3JlIHRoYW4gNjAgYnl0ZXNcbiAqIEBwYXJhbSBjaGFpblxuICogQHBhcmFtIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGNvbnN0IGVuY29kZUFkZHJlc3MgPSAoY2hhaW46IHN0cmluZywgYWRkcmVzczogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IGVuY29kZWQ6IHN0cmluZztcbiAgc3dpdGNoIChjaGFpbikge1xuICAgIGNhc2UgRVJHT19DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgZXJnb0xpYi5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpLmNvbnRlbnRfYnl0ZXMoKVxuICAgICAgKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENBUkRBTk9fQ0hBSU46XG4gICAgICBlbmNvZGVkID0gQnVmZmVyLmZyb20oXG4gICAgICAgIGNhcmRhbm9MaWIuQWRkcmVzcy5mcm9tX2JlY2gzMihhZGRyZXNzKS50b19ieXRlcygpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQklUQ09JTl9DSEFJTjpcbiAgICAgIGVuY29kZWQgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgYml0Y29pbkxpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MpXG4gICAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRVRIRVJFVU1fQ0hBSU46XG4gICAgICBpZiAoYWRkcmVzcy5sZW5ndGggIT0gNDIgfHwgYWRkcmVzcy5zdWJzdHJpbmcoMCwgMikgIT0gJzB4Jykge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IoY2hhaW4sIGFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgZW5jb2RlZCA9IGFkZHJlc3Muc3Vic3RyaW5nKDIpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZENoYWluRXJyb3IoY2hhaW4pO1xuICB9XG4gIGlmIChlbmNvZGVkLmxlbmd0aCA+IDYwICogMilcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRBZGRyZXNzRXJyb3IoY2hhaW4sIGFkZHJlc3MpO1xuICByZXR1cm4gZW5jb2RlZDtcbn07XG4iXX0=
|
package/dist/index.d.ts
CHANGED
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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=
|