@bitgo/sdk-coin-tempo 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/constants.d.ts +2 -1
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +3 -3
- package/dist/src/lib/keyPair.d.ts +2 -12
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +4 -26
- package/dist/src/tempo.d.ts +21 -4
- package/dist/src/tempo.d.ts.map +1 -1
- package/dist/src/tempo.js +112 -6
- package/dist/src/tip20Token.d.ts +6 -12
- package/dist/src/tip20Token.d.ts.map +1 -1
- package/dist/src/tip20Token.js +7 -3
- package/dist/test/unit/index.js +117 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAG,MAAe,CAAC"}
|
|
@@ -12,8 +12,8 @@ exports.VALID_PUBLIC_KEY_REGEX = /^[A-Fa-f0-9]{64}$/;
|
|
|
12
12
|
* Tempo Chain IDs
|
|
13
13
|
*/
|
|
14
14
|
exports.TEMPO_CHAIN_IDS = {
|
|
15
|
-
|
|
16
|
-
//
|
|
15
|
+
MAINNET: 4217,
|
|
16
|
+
TESTNET: 42431, // Moderato testnet
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* TIP-20 Token Standard
|
|
@@ -25,4 +25,4 @@ exports.TIP20_DECIMALS = 6;
|
|
|
25
25
|
* Tempo uses EIP-7702 Account Abstraction with transaction type 0x76
|
|
26
26
|
*/
|
|
27
27
|
exports.AA_TRANSACTION_TYPE = '0x76';
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFVSxRQUFBLFlBQVksR0FBRyxPQUFPLENBQUM7QUFDdkIsUUFBQSxZQUFZLEdBQUcsUUFBUSxDQUFDO0FBRXhCLFFBQUEsbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFDNUMsUUFBQSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztBQUUxRDs7R0FFRztBQUNVLFFBQUEsZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUI7Q0FDM0IsQ0FBQztBQUVYOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUVoQzs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLE1BQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uc3RhbnRzIGZvciBUZW1wbyBibG9ja2NoYWluIChFVk0tY29tcGF0aWJsZSlcbiAqL1xuXG5leHBvcnQgY29uc3QgTUFJTk5FVF9DT0lOID0gJ3RlbXBvJztcbmV4cG9ydCBjb25zdCBURVNUTkVUX0NPSU4gPSAndHRlbXBvJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX0FERFJFU1NfUkVHRVggPSAvXjB4W2EtZkEtRjAtOV17NDB9JC87XG5leHBvcnQgY29uc3QgVkFMSURfUFVCTElDX0tFWV9SRUdFWCA9IC9eW0EtRmEtZjAtOV17NjR9JC87XG5cbi8qKlxuICogVGVtcG8gQ2hhaW4gSURzXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QT19DSEFJTl9JRFMgPSB7XG4gIE1BSU5ORVQ6IDQyMTcsXG4gIFRFU1RORVQ6IDQyNDMxLCAvLyBNb2RlcmF0byB0ZXN0bmV0XG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFRJUC0yMCBUb2tlbiBTdGFuZGFyZFxuICogVElQLTIwIHVzZXMgNiBkZWNpbWFscyAodW5saWtlIEVSQy0yMCdzIHN0YW5kYXJkIDE4IGRlY2ltYWxzKVxuICovXG5leHBvcnQgY29uc3QgVElQMjBfREVDSU1BTFMgPSA2O1xuXG4vKipcbiAqIEFBIFRyYW5zYWN0aW9uIFR5cGVcbiAqIFRlbXBvIHVzZXMgRUlQLTc3MDIgQWNjb3VudCBBYnN0cmFjdGlvbiB3aXRoIHRyYW5zYWN0aW9uIHR5cGUgMHg3NlxuICovXG5leHBvcnQgY29uc3QgQUFfVFJBTlNBQ1RJT05fVFlQRSA9ICcweDc2JyBhcyBjb25zdDtcbiJdfQ==
|
|
@@ -2,17 +2,7 @@
|
|
|
2
2
|
* Tempo KeyPair - Reuses Ethereum KeyPair Implementation
|
|
3
3
|
*
|
|
4
4
|
* Since Tempo is EVM-compatible and uses the same cryptography (ECDSA/secp256k1)
|
|
5
|
-
* as Ethereum, we
|
|
5
|
+
* as Ethereum, we directly reuse the Ethereum KeyPair implementation from abstract-eth.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Tempo KeyPair class
|
|
10
|
-
* Uses same key derivation as Ethereum (BIP32 + secp256k1)
|
|
11
|
-
*/
|
|
12
|
-
export declare class KeyPair {
|
|
13
|
-
private keyPair;
|
|
14
|
-
constructor(source?: KeyPairOptions);
|
|
15
|
-
getKeys(): DefaultKeys;
|
|
16
|
-
getAddress(): string;
|
|
17
|
-
}
|
|
7
|
+
export { KeyPair } from '@bitgo/abstract-eth';
|
|
18
8
|
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/src/lib/keyPair.js
CHANGED
|
@@ -3,32 +3,10 @@
|
|
|
3
3
|
* Tempo KeyPair - Reuses Ethereum KeyPair Implementation
|
|
4
4
|
*
|
|
5
5
|
* Since Tempo is EVM-compatible and uses the same cryptography (ECDSA/secp256k1)
|
|
6
|
-
* as Ethereum, we
|
|
6
|
+
* as Ethereum, we directly reuse the Ethereum KeyPair implementation from abstract-eth.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.KeyPair = void 0;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* Uses same key derivation as Ethereum (BIP32 + secp256k1)
|
|
14
|
-
*/
|
|
15
|
-
class KeyPair {
|
|
16
|
-
constructor(source) {
|
|
17
|
-
// TODO: Implement proper key generation when needed
|
|
18
|
-
const seed = Buffer.alloc(64);
|
|
19
|
-
const hdNode = secp256k1_1.bip32.fromSeed(seed);
|
|
20
|
-
this.keyPair = {
|
|
21
|
-
prv: hdNode.toBase58(),
|
|
22
|
-
pub: hdNode.neutered().toBase58(),
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
getKeys() {
|
|
26
|
-
return this.keyPair;
|
|
27
|
-
}
|
|
28
|
-
getAddress() {
|
|
29
|
-
// TODO: Implement Ethereum-style address derivation
|
|
30
|
-
return '0x0000000000000000000000000000000000000000';
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.KeyPair = KeyPair;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUVILGdEQUF5QztBQUd6Qzs7O0dBR0c7QUFDSCxNQUFhLE9BQU87SUFHbEIsWUFBWSxNQUF1QjtRQUNqQyxvREFBb0Q7UUFDcEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1Isb0RBQW9EO1FBQ3BELE9BQU8sNENBQTRDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBdEJELDBCQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVtcG8gS2V5UGFpciAtIFJldXNlcyBFdGhlcmV1bSBLZXlQYWlyIEltcGxlbWVudGF0aW9uXG4gKlxuICogU2luY2UgVGVtcG8gaXMgRVZNLWNvbXBhdGlibGUgYW5kIHVzZXMgdGhlIHNhbWUgY3J5cHRvZ3JhcGh5IChFQ0RTQS9zZWNwMjU2azEpXG4gKiBhcyBFdGhlcmV1bSwgd2UgY2FuIGRpcmVjdGx5IHJldXNlIHRoZSBFdGhlcmV1bSBLZXlQYWlyIGltcGxlbWVudGF0aW9uLlxuICovXG5cbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBEZWZhdWx0S2V5cywgS2V5UGFpck9wdGlvbnMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG4vKipcbiAqIFRlbXBvIEtleVBhaXIgY2xhc3NcbiAqIFVzZXMgc2FtZSBrZXkgZGVyaXZhdGlvbiBhcyBFdGhlcmV1bSAoQklQMzIgKyBzZWNwMjU2azEpXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIHtcbiAgcHJpdmF0ZSBrZXlQYWlyOiBEZWZhdWx0S2V5cztcblxuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBwcm9wZXIga2V5IGdlbmVyYXRpb24gd2hlbiBuZWVkZWRcbiAgICBjb25zdCBzZWVkID0gQnVmZmVyLmFsbG9jKDY0KTtcbiAgICBjb25zdCBoZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcblxuICAgIHRoaXMua2V5UGFpciA9IHtcbiAgICAgIHBydjogaGROb2RlLnRvQmFzZTU4KCksXG4gICAgICBwdWI6IGhkTm9kZS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCksXG4gICAgfTtcbiAgfVxuXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIHJldHVybiB0aGlzLmtleVBhaXI7XG4gIH1cblxuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IEV0aGVyZXVtLXN0eWxlIGFkZHJlc3MgZGVyaXZhdGlvblxuICAgIHJldHVybiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbiAgfVxufVxuIl19
|
|
10
|
+
var abstract_eth_1 = require("@bitgo/abstract-eth");
|
|
11
|
+
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return abstract_eth_1.KeyPair; } });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUVILG9EQUE4QztBQUFyQyx1R0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlbXBvIEtleVBhaXIgLSBSZXVzZXMgRXRoZXJldW0gS2V5UGFpciBJbXBsZW1lbnRhdGlvblxuICpcbiAqIFNpbmNlIFRlbXBvIGlzIEVWTS1jb21wYXRpYmxlIGFuZCB1c2VzIHRoZSBzYW1lIGNyeXB0b2dyYXBoeSAoRUNEU0Evc2VjcDI1NmsxKVxuICogYXMgRXRoZXJldW0sIHdlIGRpcmVjdGx5IHJldXNlIHRoZSBFdGhlcmV1bSBLZXlQYWlyIGltcGxlbWVudGF0aW9uIGZyb20gYWJzdHJhY3QtZXRoLlxuICovXG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICdAYml0Z28vYWJzdHJhY3QtZXRoJztcbiJdfQ==
|
package/dist/src/tempo.d.ts
CHANGED
|
@@ -37,13 +37,30 @@ export declare class Tempo extends AbstractEthLikeNewCoins {
|
|
|
37
37
|
*/
|
|
38
38
|
getMPCAlgorithm(): MPCAlgorithm;
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Evaluates whether an address string is valid for Tempo
|
|
41
|
+
* Supports addresses with optional memoId query parameter (e.g., 0x...?memoId=123)
|
|
42
|
+
* @param address - The address to validate
|
|
43
|
+
* @returns true if address is valid
|
|
41
44
|
*/
|
|
42
|
-
|
|
45
|
+
isValidAddress(address: string): boolean;
|
|
43
46
|
/**
|
|
44
|
-
*
|
|
47
|
+
* Parse address into base address and optional memoId
|
|
48
|
+
* Throws InvalidAddressError for invalid address formats
|
|
49
|
+
* @param address - Address string, potentially with ?memoId=X suffix
|
|
50
|
+
* @returns Object containing address, baseAddress, and memoId (null if not present)
|
|
51
|
+
* @throws InvalidAddressError if address format is invalid
|
|
45
52
|
*/
|
|
46
|
-
|
|
53
|
+
getAddressDetails(address: string): {
|
|
54
|
+
address: string;
|
|
55
|
+
baseAddress: string;
|
|
56
|
+
memoId: string | null;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Validate that a memoId is a valid non-negative integer string
|
|
60
|
+
* @param memoId - The memoId to validate
|
|
61
|
+
* @returns true if valid
|
|
62
|
+
*/
|
|
63
|
+
isValidMemoId(memoId: string): boolean;
|
|
47
64
|
/**
|
|
48
65
|
* Build unsigned sweep transaction for TSS
|
|
49
66
|
* TODO: Implement sweep transaction logic
|
package/dist/src/tempo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAA2C,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAKpE,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAaxC;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAsDnG;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAWtC;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,kBAAkB;CAGpF"}
|
package/dist/src/tempo.js
CHANGED
|
@@ -1,12 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.Tempo = void 0;
|
|
4
37
|
/**
|
|
5
38
|
* @prettier
|
|
6
39
|
*/
|
|
7
40
|
const abstract_eth_1 = require("@bitgo/abstract-eth");
|
|
41
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
42
|
const statics_1 = require("@bitgo/statics");
|
|
9
43
|
const lib_1 = require("./lib");
|
|
44
|
+
const url = __importStar(require("url"));
|
|
45
|
+
const querystring = __importStar(require("querystring"));
|
|
10
46
|
class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
11
47
|
constructor(bitgo, staticsCoin) {
|
|
12
48
|
super(bitgo, staticsCoin);
|
|
@@ -55,15 +91,85 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
55
91
|
return 'ecdsa';
|
|
56
92
|
}
|
|
57
93
|
/**
|
|
58
|
-
*
|
|
94
|
+
* Evaluates whether an address string is valid for Tempo
|
|
95
|
+
* Supports addresses with optional memoId query parameter (e.g., 0x...?memoId=123)
|
|
96
|
+
* @param address - The address to validate
|
|
97
|
+
* @returns true if address is valid
|
|
59
98
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
99
|
+
isValidAddress(address) {
|
|
100
|
+
if (typeof address !== 'string') {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const { baseAddress } = this.getAddressDetails(address);
|
|
105
|
+
return abstract_eth_1.optionalDeps.ethUtil.isValidAddress(abstract_eth_1.optionalDeps.ethUtil.addHexPrefix(baseAddress));
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Parse address into base address and optional memoId
|
|
113
|
+
* Throws InvalidAddressError for invalid address formats
|
|
114
|
+
* @param address - Address string, potentially with ?memoId=X suffix
|
|
115
|
+
* @returns Object containing address, baseAddress, and memoId (null if not present)
|
|
116
|
+
* @throws InvalidAddressError if address format is invalid
|
|
117
|
+
*/
|
|
118
|
+
getAddressDetails(address) {
|
|
119
|
+
if (typeof address !== 'string') {
|
|
120
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}`);
|
|
121
|
+
}
|
|
122
|
+
const destinationDetails = url.parse(address);
|
|
123
|
+
const baseAddress = destinationDetails.pathname || '';
|
|
124
|
+
// No query string - just a plain address
|
|
125
|
+
if (destinationDetails.pathname === address) {
|
|
126
|
+
return {
|
|
127
|
+
address,
|
|
128
|
+
baseAddress: address,
|
|
129
|
+
memoId: null,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
// Has query string - must contain memoId
|
|
133
|
+
if (!destinationDetails.query) {
|
|
134
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}`);
|
|
135
|
+
}
|
|
136
|
+
const queryDetails = querystring.parse(destinationDetails.query);
|
|
137
|
+
// Query string must contain memoId
|
|
138
|
+
if (!queryDetails.memoId) {
|
|
139
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}, unknown query parameters`);
|
|
140
|
+
}
|
|
141
|
+
// Only one memoId allowed
|
|
142
|
+
if (Array.isArray(queryDetails.memoId)) {
|
|
143
|
+
throw new sdk_core_1.InvalidAddressError(`memoId may only be given at most once, but found ${queryDetails.memoId.length} instances in address ${address}`);
|
|
144
|
+
}
|
|
145
|
+
// Reject if there are other query parameters besides memoId
|
|
146
|
+
const queryKeys = Object.keys(queryDetails);
|
|
147
|
+
if (queryKeys.length !== 1) {
|
|
148
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}, only memoId query parameter is allowed`);
|
|
149
|
+
}
|
|
150
|
+
// Validate memoId format
|
|
151
|
+
if (!this.isValidMemoId(queryDetails.memoId)) {
|
|
152
|
+
throw new sdk_core_1.InvalidMemoIdError(`invalid address: '${address}', memoId is not valid`);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
address,
|
|
156
|
+
baseAddress,
|
|
157
|
+
memoId: queryDetails.memoId,
|
|
158
|
+
};
|
|
62
159
|
}
|
|
63
160
|
/**
|
|
64
|
-
*
|
|
161
|
+
* Validate that a memoId is a valid non-negative integer string
|
|
162
|
+
* @param memoId - The memoId to validate
|
|
163
|
+
* @returns true if valid
|
|
65
164
|
*/
|
|
66
|
-
|
|
165
|
+
isValidMemoId(memoId) {
|
|
166
|
+
if (typeof memoId !== 'string' || memoId === '') {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
// Must be a non-negative integer (no decimals, no negative, no leading zeros except for "0")
|
|
170
|
+
if (!/^(0|[1-9]\d*)$/.test(memoId)) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
67
173
|
return true;
|
|
68
174
|
}
|
|
69
175
|
/**
|
|
@@ -95,4 +201,4 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
95
201
|
}
|
|
96
202
|
}
|
|
97
203
|
exports.Tempo = Tempo;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxzREFNNkI7QUFHN0IsNENBQW9FO0FBQ3BFLCtCQUFnRDtBQUVoRCxNQUFhLEtBQU0sU0FBUSxzQ0FBdUI7SUFDaEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFzQjtRQUM3RCxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLE9BQU8sRUFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxLQUE2QixFQUM3QixNQUFlO1FBRWYsZ0RBQWdEO1FBQ2hELG1FQUFtRTtRQUNuRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHFCQUFxQixDQUFDLE1BQThCO1FBQzVELE9BQU8sSUFBSSw2QkFBdUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFrQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRjtBQXJHRCxzQkFxR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgUmVjb3Zlck9wdGlvbnMsXG4gIE9mZmxpbmVWYXVsdFR4SW5mbyxcbiAgVW5zaWduZWRTd2VlcFR4TVBDdjIsXG4gIFRyYW5zYWN0aW9uQnVpbGRlcixcbn0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIEV0aExpa2VDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UsIE1QQ0FsZ29yaXRobSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbyBleHRlbmRzIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIFRlbXBvIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgVGVtcG8oYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNoYWluIGlkZW50aWZpZXJcbiAgICovXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luPy5uYW1lIHx8ICd0ZW1wbyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIGNoYWluIG5hbWVcbiAgICovXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdUZW1wbyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiYXNlIGZhY3RvciAoMSBURU1QTyA9IDFlMTggd2VpLCBsaWtlIEV0aGVyZXVtKVxuICAgKi9cbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIge1xuICAgIHJldHVybiAxZTE4O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIG1lc3NhZ2Ugc2lnbmluZyBpcyBzdXBwb3J0ZWRcbiAgICovXG4gIHN1cHBvcnRzTWVzc2FnZVNpZ25pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHlwZWQgZGF0YSBzaWduaW5nIGlzIHN1cHBvcnRlZCAoRUlQLTcxMilcbiAgICovXG4gIHN1cHBvcnRzU2lnbmluZ1R5cGVkRGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB1bnNpZ25lZCBzd2VlcCB0cmFuc2FjdGlvbiBmb3IgVFNTXG4gICAqIFRPRE86IEltcGxlbWVudCBzd2VlcCB0cmFuc2FjdGlvbiBsb2dpY1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXM6IFJlY292ZXJPcHRpb25zKTogUHJvbWlzZTxPZmZsaW5lVmF1bHRUeEluZm8gfCBVbnNpZ25lZFN3ZWVwVHhNUEN2Mj4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB3aGVuIHJlY292ZXJ5IGxvZ2ljIGlzIG5lZWRlZFxuICAgIC8vIFJldHVybiBkdW1teSB2YWx1ZSB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiB7fSBhcyBPZmZsaW5lVmF1bHRUeEluZm87XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgYmxvY2sgZXhwbG9yZXIgZm9yIHJlY292ZXJ5IGluZm9ybWF0aW9uXG4gICAqIFRPRE86IEltcGxlbWVudCB3aGVuIFRlbXBvIGJsb2NrIGV4cGxvcmVyIGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBhcGlLZXk/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB3aXRoIFRlbXBvIGJsb2NrIGV4cGxvcmVyIEFQSVxuICAgIC8vIFJldHVybiBlbXB0eSBvYmplY3QgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIFRlbXBvXG4gICAqIFJldHVybnMgYSBUSVAtMjAgdHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgVGVtcG8tc3BlY2lmaWMgb3BlcmF0aW9uc1xuICAgKiBAcGFyYW0gY29tbW9uIC0gT3B0aW9uYWwgY29tbW9uIGNoYWluIGNvbmZpZ3VyYXRpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcihjb21tb24/OiBFdGhMaWtlQ29tbW9uLmRlZmF1bHQpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KHRoaXMuZ2V0QmFzZUNoYWluKCkpKSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgfVxufVxuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxzREFPNkI7QUFFN0IsOENBQTZHO0FBQzdHLDRDQUFvRTtBQUNwRSwrQkFBZ0Q7QUFDaEQseUNBQTJCO0FBQzNCLHlEQUEyQztBQUUzQyxNQUFhLEtBQU0sU0FBUSxzQ0FBdUI7SUFDaEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELE9BQU8sMkJBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLDJCQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQixDQUFDLE9BQWU7UUFDL0IsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksOEJBQW1CLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXRELHlDQUF5QztRQUN6QyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxPQUFPO2dCQUNMLE9BQU87Z0JBQ1AsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFFRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSw4QkFBbUIsQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRSxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksOEJBQW1CLENBQUMsb0JBQW9CLE9BQU8sNEJBQTRCLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksOEJBQW1CLENBQzNCLG9EQUFvRCxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLE9BQU8sRUFBRSxDQUNqSCxDQUFDO1FBQ0osQ0FBQztRQUVELDREQUE0RDtRQUM1RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksOEJBQW1CLENBQUMsb0JBQW9CLE9BQU8sMENBQTBDLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSw2QkFBa0IsQ0FBQyxxQkFBcUIsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxPQUFPO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2hELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELDZGQUE2RjtRQUM3RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQXNCO1FBQzdELGdEQUFnRDtRQUNoRCxrRUFBa0U7UUFDbEUsT0FBTyxFQUF3QixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsK0JBQStCLENBQ25DLEtBQTZCLEVBQzdCLE1BQWU7UUFFZixnREFBZ0Q7UUFDaEQsbUVBQW1FO1FBQ25FLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08scUJBQXFCLENBQUMsTUFBOEI7UUFDNUQsT0FBTyxJQUFJLDZCQUF1QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQWtDLENBQUM7SUFDdEcsQ0FBQztDQUNGO0FBdkxELHNCQXVMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7XG4gIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBVbnNpZ25lZFN3ZWVwVHhNUEN2MixcbiAgVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBvcHRpb25hbERlcHMsXG59IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHR5cGUgKiBhcyBFdGhMaWtlQ29tbW9uIGZyb20gJ0BldGhlcmV1bWpzL2NvbW1vbic7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlLCBJbnZhbGlkQWRkcmVzc0Vycm9yLCBJbnZhbGlkTWVtb0lkRXJyb3IsIE1QQ0FsZ29yaXRobSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgKiBhcyB1cmwgZnJvbSAndXJsJztcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJ3F1ZXJ5c3RyaW5nJztcblxuZXhwb3J0IGNsYXNzIFRlbXBvIGV4dGVuZHMgQWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgVGVtcG8gaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbyhiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2hhaW4gaWRlbnRpZmllclxuICAgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4/Lm5hbWUgfHwgJ3RlbXBvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgY2hhaW4gbmFtZVxuICAgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RlbXBvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2UgZmFjdG9yICgxIFRFTVBPID0gMWUxOCB3ZWksIGxpa2UgRXRoZXJldW0pXG4gICAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDFlMTg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdmFsdWUtbGVzcyB0cmFuc2ZlcnMgYXJlIGFsbG93ZWRcbiAgICogVE9ETzogVXBkYXRlIGJhc2VkIG9uIFRlbXBvIHJlcXVpcmVtZW50c1xuICAgKi9cbiAgdmFsdWVsZXNzVHJhbnNmZXJBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBUU1MgaXMgc3VwcG9ydGVkXG4gICAqL1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIE1QQyBhbGdvcml0aG0gKEVDRFNBIGZvciBFVk0gY2hhaW5zKVxuICAgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgYW4gYWRkcmVzcyBzdHJpbmcgaXMgdmFsaWQgZm9yIFRlbXBvXG4gICAqIFN1cHBvcnRzIGFkZHJlc3NlcyB3aXRoIG9wdGlvbmFsIG1lbW9JZCBxdWVyeSBwYXJhbWV0ZXIgKGUuZy4sIDB4Li4uP21lbW9JZD0xMjMpXG4gICAqIEBwYXJhbSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhZGRyZXNzIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIGFkZHJlc3MgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgYmFzZUFkZHJlc3MgfSA9IHRoaXMuZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gICAgICByZXR1cm4gb3B0aW9uYWxEZXBzLmV0aFV0aWwuaXNWYWxpZEFkZHJlc3Mob3B0aW9uYWxEZXBzLmV0aFV0aWwuYWRkSGV4UHJlZml4KGJhc2VBZGRyZXNzKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhZGRyZXNzIGludG8gYmFzZSBhZGRyZXNzIGFuZCBvcHRpb25hbCBtZW1vSWRcbiAgICogVGhyb3dzIEludmFsaWRBZGRyZXNzRXJyb3IgZm9yIGludmFsaWQgYWRkcmVzcyBmb3JtYXRzXG4gICAqIEBwYXJhbSBhZGRyZXNzIC0gQWRkcmVzcyBzdHJpbmcsIHBvdGVudGlhbGx5IHdpdGggP21lbW9JZD1YIHN1ZmZpeFxuICAgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBhZGRyZXNzLCBiYXNlQWRkcmVzcywgYW5kIG1lbW9JZCAobnVsbCBpZiBub3QgcHJlc2VudClcbiAgICogQHRocm93cyBJbnZhbGlkQWRkcmVzc0Vycm9yIGlmIGFkZHJlc3MgZm9ybWF0IGlzIGludmFsaWRcbiAgICovXG4gIGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3M6IHN0cmluZyk6IHsgYWRkcmVzczogc3RyaW5nOyBiYXNlQWRkcmVzczogc3RyaW5nOyBtZW1vSWQ6IHN0cmluZyB8IG51bGwgfSB7XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uRGV0YWlscyA9IHVybC5wYXJzZShhZGRyZXNzKTtcbiAgICBjb25zdCBiYXNlQWRkcmVzcyA9IGRlc3RpbmF0aW9uRGV0YWlscy5wYXRobmFtZSB8fCAnJztcblxuICAgIC8vIE5vIHF1ZXJ5IHN0cmluZyAtIGp1c3QgYSBwbGFpbiBhZGRyZXNzXG4gICAgaWYgKGRlc3RpbmF0aW9uRGV0YWlscy5wYXRobmFtZSA9PT0gYWRkcmVzcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgYmFzZUFkZHJlc3M6IGFkZHJlc3MsXG4gICAgICAgIG1lbW9JZDogbnVsbCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSGFzIHF1ZXJ5IHN0cmluZyAtIG11c3QgY29udGFpbiBtZW1vSWRcbiAgICBpZiAoIWRlc3RpbmF0aW9uRGV0YWlscy5xdWVyeSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5RGV0YWlscyA9IHF1ZXJ5c3RyaW5nLnBhcnNlKGRlc3RpbmF0aW9uRGV0YWlscy5xdWVyeSk7XG5cbiAgICAvLyBRdWVyeSBzdHJpbmcgbXVzdCBjb250YWluIG1lbW9JZFxuICAgIGlmICghcXVlcnlEZXRhaWxzLm1lbW9JZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfSwgdW5rbm93biBxdWVyeSBwYXJhbWV0ZXJzYCk7XG4gICAgfVxuXG4gICAgLy8gT25seSBvbmUgbWVtb0lkIGFsbG93ZWRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShxdWVyeURldGFpbHMubWVtb0lkKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoXG4gICAgICAgIGBtZW1vSWQgbWF5IG9ubHkgYmUgZ2l2ZW4gYXQgbW9zdCBvbmNlLCBidXQgZm91bmQgJHtxdWVyeURldGFpbHMubWVtb0lkLmxlbmd0aH0gaW5zdGFuY2VzIGluIGFkZHJlc3MgJHthZGRyZXNzfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUmVqZWN0IGlmIHRoZXJlIGFyZSBvdGhlciBxdWVyeSBwYXJhbWV0ZXJzIGJlc2lkZXMgbWVtb0lkXG4gICAgY29uc3QgcXVlcnlLZXlzID0gT2JqZWN0LmtleXMocXVlcnlEZXRhaWxzKTtcbiAgICBpZiAocXVlcnlLZXlzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfSwgb25seSBtZW1vSWQgcXVlcnkgcGFyYW1ldGVyIGlzIGFsbG93ZWRgKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBtZW1vSWQgZm9ybWF0XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRNZW1vSWQocXVlcnlEZXRhaWxzLm1lbW9JZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkTWVtb0lkRXJyb3IoYGludmFsaWQgYWRkcmVzczogJyR7YWRkcmVzc30nLCBtZW1vSWQgaXMgbm90IHZhbGlkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3MsXG4gICAgICBiYXNlQWRkcmVzcyxcbiAgICAgIG1lbW9JZDogcXVlcnlEZXRhaWxzLm1lbW9JZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgYSBtZW1vSWQgaXMgYSB2YWxpZCBub24tbmVnYXRpdmUgaW50ZWdlciBzdHJpbmdcbiAgICogQHBhcmFtIG1lbW9JZCAtIFRoZSBtZW1vSWQgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZE1lbW9JZChtZW1vSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgbWVtb0lkICE9PSAnc3RyaW5nJyB8fCBtZW1vSWQgPT09ICcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIE11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciAobm8gZGVjaW1hbHMsIG5vIG5lZ2F0aXZlLCBubyBsZWFkaW5nIHplcm9zIGV4Y2VwdCBmb3IgXCIwXCIpXG4gICAgaWYgKCEvXigwfFsxLTldXFxkKikkLy50ZXN0KG1lbW9JZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdW5zaWduZWQgc3dlZXAgdHJhbnNhY3Rpb24gZm9yIFRTU1xuICAgKiBUT0RPOiBJbXBsZW1lbnQgc3dlZXAgdHJhbnNhY3Rpb24gbG9naWNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZFVuc2lnbmVkU3dlZXBUeG5UU1MocGFyYW1zOiBSZWNvdmVyT3B0aW9ucyk6IFByb21pc2U8T2ZmbGluZVZhdWx0VHhJbmZvIHwgVW5zaWduZWRTd2VlcFR4TVBDdjI+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2hlbiByZWNvdmVyeSBsb2dpYyBpcyBuZWVkZWRcbiAgICAvLyBSZXR1cm4gZHVtbXkgdmFsdWUgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4ge30gYXMgT2ZmbGluZVZhdWx0VHhJbmZvO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGJsb2NrIGV4cGxvcmVyIGZvciByZWNvdmVyeSBpbmZvcm1hdGlvblxuICAgKiBUT0RPOiBJbXBsZW1lbnQgd2hlbiBUZW1wbyBibG9jayBleHBsb3JlciBpcyBhdmFpbGFibGVcbiAgICovXG4gIGFzeW5jIHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgYXBpS2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2l0aCBUZW1wbyBibG9jayBleHBsb3JlciBBUElcbiAgICAvLyBSZXR1cm4gZW1wdHkgb2JqZWN0IHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBUZW1wb1xuICAgKiBSZXR1cm5zIGEgVElQLTIwIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIFRlbXBvLXNwZWNpZmljIG9wZXJhdGlvbnNcbiAgICogQHBhcmFtIGNvbW1vbiAtIE9wdGlvbmFsIGNvbW1vbiBjaGFpbiBjb25maWd1cmF0aW9uXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvbkJ1aWxkZXIoY29tbW9uPzogRXRoTGlrZUNvbW1vbi5kZWZhdWx0KTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSkgYXMgdW5rbm93biBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/tip20Token.d.ts
CHANGED
|
@@ -2,19 +2,10 @@
|
|
|
2
2
|
* @prettier
|
|
3
3
|
*/
|
|
4
4
|
import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo/sdk-core';
|
|
5
|
+
import { Tip20TokenConfig } from '@bitgo/statics';
|
|
5
6
|
import { GetSendMethodArgsOptions, SendMethodArgs } from '@bitgo/abstract-eth';
|
|
6
7
|
import { Tempo } from './tempo';
|
|
7
|
-
|
|
8
|
-
* TIP20 Token Configuration Interface
|
|
9
|
-
*/
|
|
10
|
-
export interface Tip20TokenConfig {
|
|
11
|
-
type: string;
|
|
12
|
-
coin: string;
|
|
13
|
-
network: 'Mainnet' | 'Testnet';
|
|
14
|
-
name: string;
|
|
15
|
-
tokenContractAddress: string;
|
|
16
|
-
decimalPlaces: number;
|
|
17
|
-
}
|
|
8
|
+
export { Tip20TokenConfig };
|
|
18
9
|
/**
|
|
19
10
|
* TIP20 Token Implementation (Skeleton)
|
|
20
11
|
*
|
|
@@ -24,6 +15,7 @@ export interface Tip20TokenConfig {
|
|
|
24
15
|
*/
|
|
25
16
|
export declare class Tip20Token extends Tempo {
|
|
26
17
|
readonly tokenConfig: Tip20TokenConfig;
|
|
18
|
+
readonly contractAddress: string;
|
|
27
19
|
constructor(bitgo: BitGoBase, tokenConfig: Tip20TokenConfig);
|
|
28
20
|
/**
|
|
29
21
|
* Create a coin constructor for a specific token
|
|
@@ -41,7 +33,7 @@ export declare class Tip20Token extends Tempo {
|
|
|
41
33
|
/** Get the base coin */
|
|
42
34
|
get coin(): string;
|
|
43
35
|
/** Get the network */
|
|
44
|
-
get network():
|
|
36
|
+
get network(): string;
|
|
45
37
|
/** Get the token contract address */
|
|
46
38
|
get tokenContractAddress(): string;
|
|
47
39
|
/** Get token decimal places */
|
|
@@ -49,6 +41,8 @@ export declare class Tip20Token extends Tempo {
|
|
|
49
41
|
/** @inheritDoc */
|
|
50
42
|
getChain(): string;
|
|
51
43
|
/** @inheritDoc */
|
|
44
|
+
getBaseChain(): string;
|
|
45
|
+
/** @inheritDoc */
|
|
52
46
|
getFullName(): string;
|
|
53
47
|
/** @inheritDoc */
|
|
54
48
|
getBaseFactor(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAS,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;IAC9C,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAO3D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,EAAE;IAezF,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,+BAA+B;IAC/B,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,kBAAkB;IAClB,QAAQ,IAAI,MAAM;IAIlB,kBAAkB;IAClB,YAAY,IAAI,MAAM;IAItB,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB,kBAAkB;IAClB,wBAAwB,IAAI,OAAO;IAInC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAelE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,EAAE;IA+DrE;;;;;;OAMG;IACH,YAAY,CACV,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;CA0BzB"}
|
package/dist/src/tip20Token.js
CHANGED
|
@@ -13,10 +13,10 @@ const utils_1 = require("./lib/utils");
|
|
|
13
13
|
*/
|
|
14
14
|
class Tip20Token extends tempo_1.Tempo {
|
|
15
15
|
constructor(bitgo, tokenConfig) {
|
|
16
|
-
const
|
|
17
|
-
const staticsCoin = statics_1.coins.get(coinName);
|
|
16
|
+
const staticsCoin = tokenConfig.network === 'Mainnet' ? statics_1.coins.get('tempo') : statics_1.coins.get('ttempo');
|
|
18
17
|
super(bitgo, staticsCoin);
|
|
19
18
|
this.tokenConfig = tokenConfig;
|
|
19
|
+
this.contractAddress = tokenConfig.tokenContractAddress;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Create a coin constructor for a specific token
|
|
@@ -69,6 +69,10 @@ class Tip20Token extends tempo_1.Tempo {
|
|
|
69
69
|
return this.tokenConfig.type;
|
|
70
70
|
}
|
|
71
71
|
/** @inheritDoc */
|
|
72
|
+
getBaseChain() {
|
|
73
|
+
return this.coin;
|
|
74
|
+
}
|
|
75
|
+
/** @inheritDoc */
|
|
72
76
|
getFullName() {
|
|
73
77
|
return 'TIP20 Token';
|
|
74
78
|
}
|
|
@@ -195,4 +199,4 @@ class Tip20Token extends tempo_1.Tempo {
|
|
|
195
199
|
}
|
|
196
200
|
}
|
|
197
201
|
exports.Tip20Token = Tip20Token;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUF1QztBQUd2QyxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBY2xIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFHbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxZQUFpQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSx5QkFBeUI7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0Is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QUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLElBQUEsbUNBQTJCLEVBQUMsU0FBUyxDQUFDLE9BQWtCLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0Ryw4REFBOEQ7UUFDOUQsT0FBTztZQUNMLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztZQUNwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3TkQsZ0NBNk5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQml0R29CYXNlLCBDb2luQ29uc3RydWN0b3IsIE1QQ0FsZ29yaXRobSwgTmFtZWRDb2luQ29uc3RydWN0b3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMsIFNlbmRNZXRob2RBcmdzIH0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi9saWIvdHlwZXMnO1xuaW1wb3J0IHsgVGVtcG8gfSBmcm9tICcuL3RlbXBvJztcbmltcG9ydCB7IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbywgYW1vdW50VG9UaXAyMFVuaXRzLCBpc1ZhbGlkQWRkcmVzcywgaXNWYWxpZFRpcDIwQW1vdW50IH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIENvbmZpZ3VyYXRpb24gSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlwMjBUb2tlbkNvbmZpZyB7XG4gIHR5cGU6IHN0cmluZzsgLy8gVG9rZW4gaWRlbnRpZmllciAoZS5nLiwgJ3RlbXBvOnVzZGMnKVxuICBjb2luOiBzdHJpbmc7IC8vIEJhc2UgY29pbiAoZS5nLiwgJ3RlbXBvJyBvciAndHRlbXBvJylcbiAgbmV0d29yazogJ01haW5uZXQnIHwgJ1Rlc3RuZXQnO1xuICBuYW1lOiBzdHJpbmc7IC8vIFRva2VuIGZ1bGwgbmFtZVxuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nOyAvLyBTbWFydCBjb250cmFjdCBhZGRyZXNzICgweC4uLilcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyOyAvLyBUb2tlbiBkZWNpbWFsIHBsYWNlc1xufVxuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWcpIHtcbiAgICBjb25zdCBjb2luTmFtZSA9IHRva2VuQ29uZmlnLm5ldHdvcmsgPT09ICdNYWlubmV0JyA/ICd0ZW1wbycgOiAndHRlbXBvJztcbiAgICBjb25zdCBzdGF0aWNzQ29pbiA9IGNvaW5zLmdldChjb2luTmFtZSk7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29pbiBjb25zdHJ1Y3RvciBmb3IgYSBzcGVjaWZpYyB0b2tlblxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBUaXAyMFRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gKGJpdGdvOiBCaXRHb0Jhc2UpID0+IG5ldyBUaXAyMFRva2VuKGJpdGdvLCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2tlbiBjb25zdHJ1Y3RvcnMgZm9yIGFsbCBUSVAyMCB0b2tlbnNcbiAgICogQHBhcmFtIHRva2VuQ29uZmlncyAtIEFycmF5IG9mIHRva2VuIGNvbmZpZ3VyYXRpb25zIChvcHRpb25hbClcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyh0b2tlbkNvbmZpZ3M/OiBUaXAyMFRva2VuQ29uZmlnW10pOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdIHtcbiAgICBjb25zdCBjb25maWdzID0gdG9rZW5Db25maWdzIHx8IFtdO1xuICAgIGNvbnN0IHRva2Vuc0N0b3JzOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIGNvbmZpZ3MpIHtcbiAgICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBUaXAyMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3IodG9rZW4pO1xuICAgICAgLy8gUmVnaXN0ZXIgYnkgdG9rZW4gdHlwZVxuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnR5cGUsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICAgIC8vIEFsc28gcmVnaXN0ZXIgYnkgY29udHJhY3QgYWRkcmVzcyBmb3IgbG9va3Vwc1xuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnRva2VuQ29udHJhY3RBZGRyZXNzLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2Vuc0N0b3JzO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gdHlwZSAqL1xuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBuYW1lICovXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmFtZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGJhc2UgY29pbiAqL1xuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmNvaW47XG4gIH1cblxuICAvKiogR2V0IHRoZSBuZXR3b3JrICovXG4gIGdldCBuZXR3b3JrKCk6ICdNYWlubmV0JyB8ICdUZXN0bmV0JyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmV0d29yaztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MgKi9cbiAgZ2V0IHRva2VuQ29udHJhY3RBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gIH1cblxuICAvKiogR2V0IHRva2VuIGRlY2ltYWwgcGxhY2VzICovXG4gIGdldCBkZWNpbWFsUGxhY2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUF5RDtBQUd6RCxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBSWxIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFJbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxZQUFpQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSx5QkFBeUI7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUks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SSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixjQUFjLDJCQUEyQixDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFrQixFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFBLG1DQUEyQixFQUFDLFNBQVMsQ0FBQyxPQUFrQixFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEcsOERBQThEO1FBQzlELE9BQU87WUFDTCxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbk9ELGdDQW1PQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBNUENBbGdvcml0aG0sIE5hbWVkQ29pbkNvbnN0cnVjdG9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBUaXAyMFRva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vbGliL3R5cGVzJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHsgVGlwMjBUb2tlbkNvbmZpZyB9O1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0ZW1wbycpIDogY29pbnMuZ2V0KCd0dGVtcG8nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyA9IHRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvaW4gY29uc3RydWN0b3IgZm9yIGEgc3BlY2lmaWMgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVGlwMjBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdG9rZW4gY29uc3RydWN0b3JzIGZvciBhbGwgVElQMjAgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbkNvbmZpZ3MgLSBBcnJheSBvZiB0b2tlbiBjb25maWd1cmF0aW9ucyAob3B0aW9uYWwpXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnModG9rZW5Db25maWdzPzogVGlwMjBUb2tlbkNvbmZpZ1tdKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY29uZmlncyA9IHRva2VuQ29uZmlncyB8fCBbXTtcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBjb25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIC8vIFJlZ2lzdGVyIGJ5IHRva2VuIHR5cGVcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgICAvLyBBbHNvIHJlZ2lzdGVyIGJ5IGNvbnRyYWN0IGFkZHJlc3MgZm9yIGxvb2t1cHNcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcywgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIHR5cGUgKi9cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gbmFtZSAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICAvKiogR2V0IHRoZSBiYXNlIGNvaW4gKi9cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbmV0d29yayAqL1xuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzICovXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEdldCB0b2tlbiBkZWNpbWFsIHBsYWNlcyAqL1xuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
|