@bitgo-beta/sdk-core 8.2.1-beta.919 → 8.2.1-beta.920
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @prettier
|
|
3
3
|
*/
|
|
4
|
-
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
4
|
+
import { CoinMap, BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
5
5
|
import { BaseCoin } from './baseCoin';
|
|
6
6
|
import { BitGoBase } from './bitgoBase';
|
|
7
7
|
export type CoinConstructor = (bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>) => BaseCoin;
|
|
@@ -11,7 +11,8 @@ export interface NamedCoinConstructor {
|
|
|
11
11
|
}
|
|
12
12
|
export declare class CoinFactory {
|
|
13
13
|
private coinConstructors;
|
|
14
|
-
|
|
14
|
+
private coinMap;
|
|
15
|
+
constructor(coinMap?: CoinMap);
|
|
15
16
|
/**
|
|
16
17
|
* @param name Name of coin or address
|
|
17
18
|
* @returns {(Object|undefined)}
|
|
@@ -23,6 +24,13 @@ export declare class CoinFactory {
|
|
|
23
24
|
* @throws Error
|
|
24
25
|
*/
|
|
25
26
|
register(name: string, coin: CoinConstructor): void;
|
|
27
|
+
/**
|
|
28
|
+
* Registers a token in the coin map and the constructor map.
|
|
29
|
+
* @param staticsCoin The static coin definition from BitGo Statics
|
|
30
|
+
* @param coinConstructor The constructor for the coin plugin
|
|
31
|
+
* @throws Error
|
|
32
|
+
*/
|
|
33
|
+
registerToken(staticsCoin: Readonly<StaticsBaseCoin>, coinConstructor: CoinConstructor): void;
|
|
26
34
|
/**
|
|
27
35
|
* @param bitgo Instance of BitGo
|
|
28
36
|
* @param name Name of coin or address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinFactory.d.ts","sourceRoot":"","sources":["../../../src/bitgo/coinFactory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAS,QAAQ,IAAI,eAAe,EAAuB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"coinFactory.d.ts","sourceRoot":"","sources":["../../../src/bitgo/coinFactory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAS,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC;AAEtG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,OAAe;IAKpC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAI1D;;;;;OAKG;IACI,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI;IAapG;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;CAmB7D;AAED,eAAO,MAAM,iBAAiB,EAAE,WAA+B,CAAC"}
|
|
@@ -7,8 +7,9 @@ exports.GlobalCoinFactory = exports.CoinFactory = void 0;
|
|
|
7
7
|
const statics_1 = require("@bitgo-beta/statics");
|
|
8
8
|
const errors_1 = require("./errors");
|
|
9
9
|
class CoinFactory {
|
|
10
|
-
constructor() {
|
|
10
|
+
constructor(coinMap = statics_1.coins) {
|
|
11
11
|
this.coinConstructors = new Map();
|
|
12
|
+
this.coinMap = coinMap;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* @param name Name of coin or address
|
|
@@ -28,6 +29,20 @@ class CoinFactory {
|
|
|
28
29
|
register(name, coin) {
|
|
29
30
|
this.coinConstructors.set(name, coin);
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Registers a token in the coin map and the constructor map.
|
|
34
|
+
* @param staticsCoin The static coin definition from BitGo Statics
|
|
35
|
+
* @param coinConstructor The constructor for the coin plugin
|
|
36
|
+
* @throws Error
|
|
37
|
+
*/
|
|
38
|
+
registerToken(staticsCoin, coinConstructor) {
|
|
39
|
+
if (!(this.coinMap.has(staticsCoin.name) ||
|
|
40
|
+
this.coinMap.has(staticsCoin.id) ||
|
|
41
|
+
(staticsCoin.alias && this.coinMap.has(staticsCoin.alias)))) {
|
|
42
|
+
this.coinMap.addCoin(staticsCoin);
|
|
43
|
+
}
|
|
44
|
+
this.register(staticsCoin.name, coinConstructor);
|
|
45
|
+
}
|
|
31
46
|
/**
|
|
32
47
|
* @param bitgo Instance of BitGo
|
|
33
48
|
* @param name Name of coin or address
|
|
@@ -37,7 +52,7 @@ class CoinFactory {
|
|
|
37
52
|
getInstance(bitgo, name) {
|
|
38
53
|
let staticsCoin;
|
|
39
54
|
try {
|
|
40
|
-
staticsCoin =
|
|
55
|
+
staticsCoin = this.coinMap.get(name);
|
|
41
56
|
}
|
|
42
57
|
catch (e) {
|
|
43
58
|
if (!(e instanceof statics_1.CoinNotDefinedError)) {
|
|
@@ -53,4 +68,4 @@ class CoinFactory {
|
|
|
53
68
|
}
|
|
54
69
|
exports.CoinFactory = CoinFactory;
|
|
55
70
|
exports.GlobalCoinFactory = new CoinFactory();
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbkZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vY29pbkZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxpREFBdUc7QUFHdkcscUNBQWdEO0FBU2hELE1BQWEsV0FBVztJQUl0QixZQUFZLFVBQW1CLGVBQUs7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtCQUFrQixDQUFDLElBQVk7UUFDckMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxJQUFZLEVBQUUsSUFBcUI7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksYUFBYSxDQUFDLFdBQXNDLEVBQUUsZUFBZ0M7UUFDM0YsSUFDRSxDQUFDLENBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hDLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDM0QsRUFDRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsS0FBZ0IsRUFBRSxJQUFZO1FBQy9DLElBQUksV0FBVyxDQUFDO1FBRWhCLElBQUksQ0FBQztZQUNILFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSw2QkFBbUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixPQUFPLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUF6RUQsa0NBeUVDO0FBRVksUUFBQSxpQkFBaUIsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNvaW5zLCBDb2luTWFwLCBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIENvaW5Ob3REZWZpbmVkRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZENvaW5FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuZXhwb3J0IHR5cGUgQ29pbkNvbnN0cnVjdG9yID0gKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikgPT4gQmFzZUNvaW47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRDb2luQ29uc3RydWN0b3Ige1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvaW5Db25zdHJ1Y3RvcjogQ29pbkNvbnN0cnVjdG9yO1xufVxuXG5leHBvcnQgY2xhc3MgQ29pbkZhY3Rvcnkge1xuICBwcml2YXRlIGNvaW5Db25zdHJ1Y3RvcnM6IE1hcDxzdHJpbmcsIENvaW5Db25zdHJ1Y3Rvcj47XG4gIHByaXZhdGUgY29pbk1hcDogQ29pbk1hcDtcblxuICBjb25zdHJ1Y3Rvcihjb2luTWFwOiBDb2luTWFwID0gY29pbnMpIHtcbiAgICB0aGlzLmNvaW5Db25zdHJ1Y3RvcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jb2luTWFwID0gY29pbk1hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIGNvaW4gb3IgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7KE9iamVjdHx1bmRlZmluZWQpfVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb2luQ29uc3RydWN0b3IobmFtZTogc3RyaW5nKTogQ29pbkNvbnN0cnVjdG9yIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jb2luQ29uc3RydWN0b3JzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29pbkNvbnN0cnVjdG9ycyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29pbkNvbnN0cnVjdG9ycy5nZXQobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiBjb2luIG9yIGFkZHJlc3NcbiAgICogQHBhcmFtIGNvaW4gQ29pbiBwbHVnaW4ncyBjb25zdHJ1Y3RvclxuICAgKiBAdGhyb3dzIEVycm9yXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCBjb2luOiBDb2luQ29uc3RydWN0b3IpOiB2b2lkIHtcbiAgICB0aGlzLmNvaW5Db25zdHJ1Y3RvcnMuc2V0KG5hbWUsIGNvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIHRva2VuIGluIHRoZSBjb2luIG1hcCBhbmQgdGhlIGNvbnN0cnVjdG9yIG1hcC5cbiAgICogQHBhcmFtIHN0YXRpY3NDb2luIFRoZSBzdGF0aWMgY29pbiBkZWZpbml0aW9uIGZyb20gQml0R28gU3RhdGljc1xuICAgKiBAcGFyYW0gY29pbkNvbnN0cnVjdG9yIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGNvaW4gcGx1Z2luXG4gICAqIEB0aHJvd3MgRXJyb3JcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclRva2VuKHN0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+LCBjb2luQ29uc3RydWN0b3I6IENvaW5Db25zdHJ1Y3Rvcik6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIHRoaXMuY29pbk1hcC5oYXMoc3RhdGljc0NvaW4ubmFtZSkgfHxcbiAgICAgICAgdGhpcy5jb2luTWFwLmhhcyhzdGF0aWNzQ29pbi5pZCkgfHxcbiAgICAgICAgKHN0YXRpY3NDb2luLmFsaWFzICYmIHRoaXMuY29pbk1hcC5oYXMoc3RhdGljc0NvaW4uYWxpYXMpKVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5jb2luTWFwLmFkZENvaW4oc3RhdGljc0NvaW4pO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyKHN0YXRpY3NDb2luLm5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGJpdGdvIEluc3RhbmNlIG9mIEJpdEdvXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgY29pbiBvciBhZGRyZXNzXG4gICAqIEB0aHJvd3MgQ29pbk5vdERlZmluZWRFcnJvclxuICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkQ29pbkVycm9yXG4gICAqL1xuICBwdWJsaWMgZ2V0SW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgbmFtZTogc3RyaW5nKTogQmFzZUNvaW4ge1xuICAgIGxldCBzdGF0aWNzQ29pbjtcblxuICAgIHRyeSB7XG4gICAgICBzdGF0aWNzQ29pbiA9IHRoaXMuY29pbk1hcC5nZXQobmFtZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIENvaW5Ob3REZWZpbmVkRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29uc3RydWN0b3IgPSB0aGlzLmdldENvaW5Db25zdHJ1Y3RvcihuYW1lKTtcblxuICAgIGlmIChjb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ29pbkVycm9yKG5hbWUpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb2luRmFjdG9yeTogQ29pbkZhY3RvcnkgPSBuZXcgQ29pbkZhY3RvcnkoKTtcbiJdfQ==
|