@bitgo-beta/sdk-coin-stx 1.4.3-alpha.283 → 1.4.3-alpha.284
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/fungibleTokenTransferBuilder.d.ts.map +1 -1
- package/dist/src/lib/fungibleTokenTransferBuilder.js +10 -3
- package/dist/src/lib/transaction.js +5 -5
- package/dist/src/lib/utils.d.ts +16 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +39 -6
- package/dist/src/sip10Token.d.ts +5 -2
- package/dist/src/sip10Token.d.ts.map +1 -1
- package/dist/src/sip10Token.js +63 -1
- package/dist/src/stx.d.ts +7 -1
- package/dist/src/stx.d.ts.map +1 -1
- package/dist/src/stx.js +17 -3
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fungibleTokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/fungibleTokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAGL,YAAY,EACZ,mBAAmB,EAKpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"fungibleTokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/fungibleTokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAGL,YAAY,EACZ,mBAAmB,EAKpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,qBAAa,4BAA6B,SAAQ,uBAAuB;IACvE,OAAO,CAAC,4BAA4B,CAAsB;IAC1D,OAAO,CAAC,UAAU,CAAS;gBACf,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D;;;;;OAKG;WACW,mCAAmC,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAIxF;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKlC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IASxC;;;;;OAKG;IACH,OAAO,CAAC,kCAAkC;CAwB3C"}
|
|
@@ -22,11 +22,11 @@ class FungibleTokenTransferBuilder extends abstractContractBuilder_1.AbstractCon
|
|
|
22
22
|
this.contractName(this._contractName);
|
|
23
23
|
this.functionName(this._functionName);
|
|
24
24
|
this.functionArgs(this._functionArgs);
|
|
25
|
-
this._postConditionMode = transactions_1.PostConditionMode.Deny;
|
|
26
|
-
this._postConditions = this.tokenTransferParamsToPostCondition(this._fungibleTokenTransferParams);
|
|
27
25
|
}
|
|
28
26
|
/** @inheritdoc */
|
|
29
27
|
async buildImplementation() {
|
|
28
|
+
this._postConditionMode = transactions_1.PostConditionMode.Deny;
|
|
29
|
+
this._postConditions = this.tokenTransferParamsToPostCondition(this._fungibleTokenTransferParams);
|
|
30
30
|
await super.buildImplementation();
|
|
31
31
|
this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
32
32
|
return this.transaction;
|
|
@@ -103,6 +103,7 @@ class FungibleTokenTransferBuilder extends abstractContractBuilder_1.AbstractCon
|
|
|
103
103
|
throw new sdk_core_1.InvalidParameterValueError('Invalid number of arguments');
|
|
104
104
|
}
|
|
105
105
|
this._functionArgs = args;
|
|
106
|
+
this._fungibleTokenTransferParams = (0, utils_1.functionArgsToTokenTransferParams)(this._functionArgs);
|
|
106
107
|
return this;
|
|
107
108
|
}
|
|
108
109
|
/**
|
|
@@ -112,6 +113,12 @@ class FungibleTokenTransferBuilder extends abstractContractBuilder_1.AbstractCon
|
|
|
112
113
|
* @returns {PostCondition[]} returns stx fungible post condition
|
|
113
114
|
*/
|
|
114
115
|
tokenTransferParamsToPostCondition(tokenTransferParams) {
|
|
116
|
+
if (!this._tokenName) {
|
|
117
|
+
const contractTokenName = (0, utils_1.findContractTokenNameUsingContract)(this._contractAddress, this._contractName);
|
|
118
|
+
if (contractTokenName) {
|
|
119
|
+
this.tokenName(contractTokenName);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
115
122
|
const amount = new bn_js_1.default(tokenTransferParams.amount);
|
|
116
123
|
return [
|
|
117
124
|
(0, transactions_1.makeStandardFungiblePostCondition)((0, utils_1.getSTXAddressFromPubKeys)(this._fromPubKeys, this._coinConfig.network.type === statics_1.NetworkType.MAINNET
|
|
@@ -121,4 +128,4 @@ class FungibleTokenTransferBuilder extends abstractContractBuilder_1.AbstractCon
|
|
|
121
128
|
}
|
|
122
129
|
}
|
|
123
130
|
exports.FungibleTokenTransferBuilder = FungibleTokenTransferBuilder;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpREFBMEU7QUFDMUUsbURBQW1GO0FBQ25GLHVEQVM4QjtBQUM5QixrREFBMkI7QUFFM0IsdUVBQW9FO0FBRXBFLG1DQUtpQjtBQUVqQiwyQ0FBcUQ7QUFFckQsTUFBYSw0QkFBNkIsU0FBUSxpREFBdUI7SUFHdkUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUEseUNBQWlDLEVBQ2xFLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBK0IsQ0FBQyxZQUFZLENBQ2hFLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQ0FBaUIsQ0FBQyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVB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LENBQ3JFO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5JRCxvRUFtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEFkZHJlc3NIYXNoTW9kZSxcbiAgQWRkcmVzc1ZlcnNpb24sXG4gIENsYXJpdHlWYWx1ZSxcbiAgQ29udHJhY3RDYWxsUGF5bG9hZCxcbiAgRnVuZ2libGVDb25kaXRpb25Db2RlLFxuICBtYWtlU3RhbmRhcmRGdW5naWJsZVBvc3RDb25kaXRpb24sXG4gIFBvc3RDb25kaXRpb24sXG4gIFBvc3RDb25kaXRpb25Nb2RlLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgQmlnTnVtIGZyb20gJ2JuLmpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIgfSBmcm9tICcuL2Fic3RyYWN0Q29udHJhY3RCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBmdW5jdGlvbkFyZ3NUb1Rva2VuVHJhbnNmZXJQYXJhbXMsXG4gIGdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyxcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRDb250cmFjdEZ1bmN0aW9uTmFtZSxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyUGFyYW1zIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBGVU5DVElPTl9OQU1FX1RSQU5TRkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlciBleHRlbmRzIEFic3RyYWN0Q29udHJhY3RCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfZnVuZ2libGVUb2tlblRyYW5zZmVyUGFyYW1zOiBUb2tlblRyYW5zZmVyUGFyYW1zO1xuICBwcml2YXRlIF90b2tlbk5hbWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHRoaXMuX2Z1bmdpYmxlVG9rZW5UcmFuc2ZlclBhcmFtcyA9IGZ1bmN0aW9uQXJnc1RvVG9rZW5UcmFuc2ZlclBhcmFtcyhcbiAgICAgICh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkIGFzIENvbnRyYWN0Q2FsbFBheWxvYWQpLmZ1bmN0aW9uQXJnc1xuICAgICk7XG4gICAgdGhpcy5jb250cmFjdEFkZHJlc3ModGhpcy5fY29udHJhY3RBZGRyZXNzKTtcbiAgICB0aGlzLmNvbnRyYWN0TmFtZSh0aGlzLl9jb250cmFjdE5hbWUpO1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKHRoaXMuX2Z1bmN0aW9uTmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3ModGhpcy5fZnVuY3Rpb25BcmdzKTtcbiAgICB0aGlzLl9wb3N0Q29uZGl0aW9uTW9kZSA9IFBvc3RDb25kaXRpb25Nb2RlLkRlbnk7XG4gICAgdGhpcy5fcG9zdENvbmRpdGlvbnMgPSB0aGlzLnRva2VuVHJhbnNmZXJQYXJhbXNUb1Bvc3RDb25kaXRpb24odGhpcy5fZnVuZ2libGVUb2tlblRyYW5zZmVyUGFyYW1zKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBjaGVjayBpZiBhIHRyYW5zYWN0aW9uIGlzIGEgZnVuZ2libGUgdG9rZW4gY29udHJhY3QgY2FsbFxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRyYWN0Q2FsbFBheWxvYWR9IHBheWxvYWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzRnVuZ2libGVUb2tlblRyYW5zZmVyQ29udHJhY3RDYWxsKHBheWxvYWQ6IENvbnRyYWN0Q2FsbFBheWxvYWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRlVOQ1RJT05fTkFNRV9UUkFOU0ZFUiA9PT0gcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRva2VuIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRva2VuTmFtZSBuYW1lIG9mIHRoZSB0b2tlbiAoQGRlZmluZS1mdW5naWJsZS10b2tlbiB2YWx1ZSlcbiAgICogQHJldHVybnMge0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdG9rZW4gdHJhbnNmZXIgYnVpbGRlclxuICAgKi9cbiAgdG9rZW5OYW1lKHRva2VuTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fdG9rZW5OYW1lID0gdG9rZW5OYW1lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGNvbnRyYWN0IGFkZHJlc3NcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3MgY29udHJhY3QgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyB0b2tlbiB0cmFuc2ZlciBidWlsZGVyXG4gICAqL1xuICBjb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fY29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBjb250cmFjdCBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIGNvbnRyYWN0IG5hbWVcbiAgICogQHJldHVybnMge0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdG9rZW4gdHJhbnNmZXIgYnVpbGRlclxuICAgKi9cbiAgY29udHJhY3ROYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIG5hbWUnKTtcbiAgICB9XG4gICAgdGhpcy5fY29udHJhY3ROYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBmdW5jdGlvbiBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIGZ1bmN0aW9uIG5hbWVcbiAgICogQHJldHVybnMge0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdG9rZW4gdHJhbnNmZXIgYnVpbGRlclxuICAgKi9cbiAgZnVuY3Rpb25OYW1lKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChuYW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIG5hbWUnKTtcbiAgICB9XG4gICAgaWYgKCFpc1ZhbGlkQ29udHJhY3RGdW5jdGlvbk5hbWUobmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgJHtuYW1lfSBpcyBub3Qgc3VwcG9ydGVkIGNvbnRyYWN0IGZ1bmN0aW9uIG5hbWVgKTtcbiAgICB9XG4gICAgdGhpcy5fZnVuY3Rpb25OYW1lID0gbmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBmdW5jdGlvbiBhcmd1bWVudHNcbiAgICpcbiAgICogQHBhcmFtIHtDbGFyaXR5VmFsdWVbXX0gYXJncyBhcnJheSBvZiBjbGFyaXR5IHZhbHVlIGFzIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJucyB7RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyB0b2tlbiB0cmFuc2ZlciBidWlsZGVyXG4gICAqL1xuICBmdW5jdGlvbkFyZ3MoYXJnczogQ2xhcml0eVZhbHVlW10pOiB0aGlzIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cycpO1xuICAgIH1cbiAgICB0aGlzLl9mdW5jdGlvbkFyZ3MgPSBhcmdzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbnZlcnQgdG9rZW4gdHJhbnNmZXIgcGFyYW1zIHRvIHBvc3QgY29uZGl0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VG9rZW5UcmFuc2ZlclBhcmFtc30gdG9rZW5UcmFuc2ZlclBhcmFtc1xuICAgKiBAcmV0dXJucyB7UG9zdENvbmRpdGlvbltdfSByZXR1cm5zIHN0eCBmdW5naWJsZSBwb3N0IGNvbmRpdGlvblxuICAgKi9cbiAgcHJpdmF0ZSB0b2tlblRyYW5zZmVyUGFyYW1zVG9Qb3N0Q29uZGl0aW9uKHRva2VuVHJhbnNmZXJQYXJhbXM6IFRva2VuVHJhbnNmZXJQYXJhbXMpOiBQb3N0Q29uZGl0aW9uW10ge1xuICAgIGNvbnN0IGFtb3VudDogQmlnTnVtID0gbmV3IEJpZ051bSh0b2tlblRyYW5zZmVyUGFyYW1zLmFtb3VudCk7XG4gICAgcmV0dXJuIFtcbiAgICAgIG1ha2VTdGFuZGFyZEZ1bmdpYmxlUG9zdENvbmRpdGlvbihcbiAgICAgICAgZ2V0U1RYQWRkcmVzc0Zyb21QdWJLZXlzKFxuICAgICAgICAgIHRoaXMuX2Zyb21QdWJLZXlzLFxuICAgICAgICAgIHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUXG4gICAgICAgICAgICA/IEFkZHJlc3NWZXJzaW9uLk1haW5uZXRNdWx0aVNpZ1xuICAgICAgICAgICAgOiBBZGRyZXNzVmVyc2lvbi5UZXN0bmV0TXVsdGlTaWcsXG4gICAgICAgICAgdGhpcy5fZnJvbVB1YktleXMubGVuZ3RoID4gMSA/IEFkZHJlc3NIYXNoTW9kZS5TZXJpYWxpemVQMlNIIDogQWRkcmVzc0hhc2hNb2RlLlNlcmlhbGl6ZVAyUEtILFxuICAgICAgICAgIHRoaXMuX251bWJlclNpZ25hdHVyZXNcbiAgICAgICAgKS5hZGRyZXNzLFxuICAgICAgICBGdW5naWJsZUNvbmRpdGlvbkNvZGUuRXF1YWwsXG4gICAgICAgIGFtb3VudCxcbiAgICAgICAgYCR7dGhpcy5fY29udHJhY3RBZGRyZXNzfS4ke3RoaXMuX2NvbnRyYWN0TmFtZX06OiR7dGhpcy5fdG9rZW5OYW1lfWBcbiAgICAgICksXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpREFBMEU7QUFDMUUsbURBQW1GO0FBQ25GLHVEQVM4QjtBQUM5QixrREFBMkI7QUFFM0IsdUVBQW9FO0FBRXBFLG1DQU1pQjtBQUVqQiwyQ0FBcUQ7QUFFckQsTUFBYSw0QkFBNkIsU0FBUSxpREFBdUI7SUFHdkUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUEseUNBQWlDLEVBQ2xFLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBK0IsQ0FBQyxZQUFZLENBQ2hFLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQ0FBaUIsQ0FBQyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEcsTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVB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LENBQUMsZUFBZTtnQkFDaEMsQ0FBQyxDQUFDLDZCQUFjLENBQUMsZUFBZSxFQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyw4QkFBZSxDQUFDLGNBQWMsRUFDN0YsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDLE9BQU8sRUFDVCxvQ0FBcUIsQ0FBQyxLQUFLLEVBQzNCLE1BQU0sRUFDTixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDckU7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUlELG9FQTBJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQWRkcmVzc0hhc2hNb2RlLFxuICBBZGRyZXNzVmVyc2lvbixcbiAgQ2xhcml0eVZhbHVlLFxuICBDb250cmFjdENhbGxQYXlsb2FkLFxuICBGdW5naWJsZUNvbmRpdGlvbkNvZGUsXG4gIG1ha2VTdGFuZGFyZEZ1bmdpYmxlUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbk1vZGUsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCBCaWdOdW0gZnJvbSAnYm4uanMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vYWJzdHJhY3RDb250cmFjdEJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGZpbmRDb250cmFjdFRva2VuTmFtZVVzaW5nQ29udHJhY3QsXG4gIGZ1bmN0aW9uQXJnc1RvVG9rZW5UcmFuc2ZlclBhcmFtcyxcbiAgZ2V0U1RYQWRkcmVzc0Zyb21QdWJLZXlzLFxuICBpc1ZhbGlkQWRkcmVzcyxcbiAgaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIge1xuICBwcml2YXRlIF9mdW5naWJsZVRva2VuVHJhbnNmZXJQYXJhbXM6IFRva2VuVHJhbnNmZXJQYXJhbXM7XG4gIHByaXZhdGUgX3Rva2VuTmFtZTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdGhpcy5fZnVuZ2libGVUb2tlblRyYW5zZmVyUGFyYW1zID0gZnVuY3Rpb25BcmdzVG9Ub2tlblRyYW5zZmVyUGFyYW1zKFxuICAgICAgKHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQgYXMgQ29udHJhY3RDYWxsUGF5bG9hZCkuZnVuY3Rpb25BcmdzXG4gICAgKTtcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyh0aGlzLl9jb250cmFjdEFkZHJlc3MpO1xuICAgIHRoaXMuY29udHJhY3ROYW1lKHRoaXMuX2NvbnRyYWN0TmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUodGhpcy5fZnVuY3Rpb25OYW1lKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyh0aGlzLl9mdW5jdGlvbkFyZ3MpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLl9wb3N0Q29uZGl0aW9uTW9kZSA9IFBvc3RDb25kaXRpb25Nb2RlLkRlbnk7XG4gICAgdGhpcy5fcG9zdENvbmRpdGlvbnMgPSB0aGlzLnRva2VuVHJhbnNmZXJQYXJhbXNUb1Bvc3RDb25kaXRpb24odGhpcy5fZnVuZ2libGVUb2tlblRyYW5zZmVyUGFyYW1zKTtcbiAgICBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgdHJhbnNhY3Rpb24gaXMgYSBmdW5naWJsZSB0b2tlbiBjb250cmFjdCBjYWxsXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udHJhY3RDYWxsUGF5bG9hZH0gcGF5bG9hZFxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNGdW5naWJsZVRva2VuVHJhbnNmZXJDb250cmFjdENhbGwocGF5bG9hZDogQ29udHJhY3RDYWxsUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGVU5DVElPTl9OQU1FX1RSQU5TRkVSID09PSBwYXlsb2FkLmZ1bmN0aW9uTmFtZS5jb250ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdG9rZW4gbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdG9rZW5OYW1lIG5hbWUgb2YgdGhlIHRva2VuIChAZGVmaW5lLWZ1bmdpYmxlLXRva2VuIHZhbHVlKVxuICAgKiBAcmV0dXJucyB7RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyB0b2tlbiB0cmFuc2ZlciBidWlsZGVyXG4gICAqL1xuICB0b2tlbk5hbWUodG9rZW5OYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl90b2tlbk5hbWUgPSB0b2tlbk5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgY29udHJhY3QgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyBjb250cmFjdCBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRva2VuIHRyYW5zZmVyIGJ1aWxkZXJcbiAgICovXG4gIGNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9jb250cmFjdEFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGNvbnRyYWN0IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgY29udHJhY3QgbmFtZVxuICAgKiBAcmV0dXJucyB7RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyB0b2tlbiB0cmFuc2ZlciBidWlsZGVyXG4gICAqL1xuICBjb250cmFjdE5hbWUobmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgbmFtZScpO1xuICAgIH1cbiAgICB0aGlzLl9jb250cmFjdE5hbWUgPSBuYW1lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGZ1bmN0aW9uIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgZnVuY3Rpb24gbmFtZVxuICAgKiBAcmV0dXJucyB7RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcn0gVGhpcyB0b2tlbiB0cmFuc2ZlciBidWlsZGVyXG4gICAqL1xuICBmdW5jdGlvbk5hbWUobmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgbmFtZScpO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRDb250cmFjdEZ1bmN0aW9uTmFtZShuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGAke25hbWV9IGlzIG5vdCBzdXBwb3J0ZWQgY29udHJhY3QgZnVuY3Rpb24gbmFtZWApO1xuICAgIH1cbiAgICB0aGlzLl9mdW5jdGlvbk5hbWUgPSBuYW1lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGZ1bmN0aW9uIGFyZ3VtZW50c1xuICAgKlxuICAgKiBAcGFyYW0ge0NsYXJpdHlWYWx1ZVtdfSBhcmdzIGFycmF5IG9mIGNsYXJpdHkgdmFsdWUgYXMgYXJndW1lbnRzXG4gICAqIEByZXR1cm5zIHtGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRva2VuIHRyYW5zZmVyIGJ1aWxkZXJcbiAgICovXG4gIGZ1bmN0aW9uQXJncyhhcmdzOiBDbGFyaXR5VmFsdWVbXSk6IHRoaXMge1xuICAgIGlmIChhcmdzLmxlbmd0aCA8IDMpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzJyk7XG4gICAgfVxuICAgIHRoaXMuX2Z1bmN0aW9uQXJncyA9IGFyZ3M7XG4gICAgdGhpcy5fZnVuZ2libGVUb2tlblRyYW5zZmVyUGFyYW1zID0gZnVuY3Rpb25BcmdzVG9Ub2tlblRyYW5zZmVyUGFyYW1zKHRoaXMuX2Z1bmN0aW9uQXJncyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gY29udmVydCB0b2tlbiB0cmFuc2ZlciBwYXJhbXMgdG8gcG9zdCBjb25kaXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtUb2tlblRyYW5zZmVyUGFyYW1zfSB0b2tlblRyYW5zZmVyUGFyYW1zXG4gICAqIEByZXR1cm5zIHtQb3N0Q29uZGl0aW9uW119IHJldHVybnMgc3R4IGZ1bmdpYmxlIHBvc3QgY29uZGl0aW9uXG4gICAqL1xuICBwcml2YXRlIHRva2VuVHJhbnNmZXJQYXJhbXNUb1Bvc3RDb25kaXRpb24odG9rZW5UcmFuc2ZlclBhcmFtczogVG9rZW5UcmFuc2ZlclBhcmFtcyk6IFBvc3RDb25kaXRpb25bXSB7XG4gICAgaWYgKCF0aGlzLl90b2tlbk5hbWUpIHtcbiAgICAgIGNvbnN0IGNvbnRyYWN0VG9rZW5OYW1lID0gZmluZENvbnRyYWN0VG9rZW5OYW1lVXNpbmdDb250cmFjdCh0aGlzLl9jb250cmFjdEFkZHJlc3MsIHRoaXMuX2NvbnRyYWN0TmFtZSk7XG4gICAgICBpZiAoY29udHJhY3RUb2tlbk5hbWUpIHtcbiAgICAgICAgdGhpcy50b2tlbk5hbWUoY29udHJhY3RUb2tlbk5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhbW91bnQ6IEJpZ051bSA9IG5ldyBCaWdOdW0odG9rZW5UcmFuc2ZlclBhcmFtcy5hbW91bnQpO1xuICAgIHJldHVybiBbXG4gICAgICBtYWtlU3RhbmRhcmRGdW5naWJsZVBvc3RDb25kaXRpb24oXG4gICAgICAgIGdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyhcbiAgICAgICAgICB0aGlzLl9mcm9tUHViS2V5cyxcbiAgICAgICAgICB0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVFxuICAgICAgICAgICAgPyBBZGRyZXNzVmVyc2lvbi5NYWlubmV0TXVsdGlTaWdcbiAgICAgICAgICAgIDogQWRkcmVzc1ZlcnNpb24uVGVzdG5ldE11bHRpU2lnLFxuICAgICAgICAgIHRoaXMuX2Zyb21QdWJLZXlzLmxlbmd0aCA+IDEgPyBBZGRyZXNzSGFzaE1vZGUuU2VyaWFsaXplUDJTSCA6IEFkZHJlc3NIYXNoTW9kZS5TZXJpYWxpemVQMlBLSCxcbiAgICAgICAgICB0aGlzLl9udW1iZXJTaWduYXR1cmVzXG4gICAgICAgICkuYWRkcmVzcyxcbiAgICAgICAgRnVuZ2libGVDb25kaXRpb25Db2RlLkVxdWFsLFxuICAgICAgICBhbW91bnQsXG4gICAgICAgIGAke3RoaXMuX2NvbnRyYWN0QWRkcmVzc30uJHt0aGlzLl9jb250cmFjdE5hbWV9Ojoke3RoaXMuX3Rva2VuTmFtZX1gXG4gICAgICApLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -205,15 +205,15 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
205
205
|
else if (txJson.payload.functionName === constants_1.FUNCTION_NAME_TRANSFER && txJson.payload.functionArgs.length >= 3) {
|
|
206
206
|
this._outputs = [
|
|
207
207
|
{
|
|
208
|
-
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[
|
|
209
|
-
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[
|
|
208
|
+
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[2]),
|
|
209
|
+
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[0]).toString(),
|
|
210
210
|
coin: this._coinConfig.name,
|
|
211
211
|
},
|
|
212
212
|
];
|
|
213
213
|
this._inputs = [
|
|
214
214
|
{
|
|
215
|
-
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[
|
|
216
|
-
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[
|
|
215
|
+
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[1]),
|
|
216
|
+
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[0]).toString(),
|
|
217
217
|
coin: this._coinConfig.name,
|
|
218
218
|
},
|
|
219
219
|
];
|
|
@@ -238,4 +238,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
exports.Transaction = Transaction;
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQWlCOEI7QUFJOUIsbURBUThCO0FBRTlCLGtEQUEyQjtBQUczQixtQ0FBZ0g7QUFFaEgsMkNBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUE0QixFQUFFLE9BQWdCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEYsS0FBSyxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxx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LEVBQUUsSUFBQSx3QkFBUyxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUMzRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO3FCQUM1QjtpQkFDRixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLEdBQUc7b0JBQ2Q7d0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDdkMsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsT0FBTyxHQUFHO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDcEIsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFBELGtDQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQnVmZmVyUmVhZGVyLFxuICBDb250cmFjdENhbGxQYXlsb2FkLFxuICBjcmVhdGVTdGFja3NQcml2YXRlS2V5LFxuICBjcmVhdGVTdGFja3NQdWJsaWNLZXksXG4gIGNyZWF0ZVRyYW5zYWN0aW9uQXV0aEZpZWxkLFxuICBjdlRvU3RyaW5nLFxuICBjdlRvVmFsdWUsXG4gIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24sXG4gIGlzU2luZ2xlU2lnLFxuICBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uLFxuICBQYXlsb2FkVHlwZSxcbiAgUHViS2V5RW5jb2RpbmcsXG4gIFN0YWNrc01lc3NhZ2VUeXBlLFxuICBTdGFja3NUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TaWduZXIsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcblxuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RTdXBwb3J0ZWQsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5cbmltcG9ydCB7IFNpZ25hdHVyZURhdGEsIFN0YWNrc0NvbnRyYWN0UGF5bG9hZCwgU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcywgZ2V0VHhTZW5kZXJBZGRyZXNzLCByZW1vdmVIZXhQcmVmaXgsIHN0cmluZ2lmeUN2LCB1bnBhZE1lbW8gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgRlVOQ1RJT05fTkFNRV9UUkFOU0ZFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfc3R4VHJhbnNhY3Rpb246IFN0YWNrc1RyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgcHJpdmF0ZSBfc2lnSGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyW10gfCBLZXlQYWlyLCBzaWdIYXNoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGNvbnN0IHNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgc2lnbmVyLmNoZWNrT3ZlcnNpZ24gPSBmYWxzZTtcbiAgICBzaWduZXIuc2lnSGFzaCA9IHNpZ0hhc2ggPz8gdGhpcy5fc2lnSGFzaCA/PyB0aGlzLl9zdHhUcmFuc2FjdGlvbi52ZXJpZnlCZWdpbigpO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBrcC5nZXRLZXlzKGtwLmdldENvbXByZXNzZWQoKSk7XG4gICAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByaXZLZXkgPSBjcmVhdGVTdGFja3NQcml2YXRlS2V5KGtleXMucHJ2KTtcbiAgICAgIHNpZ25lci5zaWduT3JpZ2luKHByaXZLZXkpO1xuICAgICAgdGhpcy5fc2lnSGFzaCA9IHNpZ25lci5zaWdIYXNoO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFwcGVuZE9yaWdpbihwdWJLZXlTdHJpbmc6IHN0cmluZ1tdIHwgc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHViS2V5U3RyaW5ncyA9IHB1YktleVN0cmluZyBpbnN0YW5jZW9mIEFycmF5ID8gcHViS2V5U3RyaW5nIDogW3B1YktleVN0cmluZ107XG4gICAgY29uc3Qgc2lnbmVyOiBUcmFuc2FjdGlvblNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgcHViS2V5U3RyaW5ncy5mb3JFYWNoKChwdWJLZXkpID0+IHtcbiAgICAgIHNpZ25lci5hcHBlbmRPcmlnaW4oY3JlYXRlU3RhY2tzUHVibGljS2V5KHB1YktleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2lnbldpdGhTaWduYXR1cmVzKHNpZ25hdHVyZTogU2lnbmF0dXJlRGF0YVtdIHwgU2lnbmF0dXJlRGF0YSwgaXNNdWx0aVNpZzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghc2lnbmF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHNpZ25hdHVyZXMnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IHNpZ25hdHVyZSBpbnN0YW5jZW9mIEFycmF5ID8gc2lnbmF0dXJlIDogW3NpZ25hdHVyZV07XG5cbiAgICBpZiAoIWlzTXVsdGlTaWcpIHtcbiAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24uY3JlYXRlVHhXaXRoU2lnbmF0dXJlKHNpZ25hdHVyZXNbMF0uZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGF1dGhGaWVsZHMgPSBzaWduYXR1cmVzLm1hcCgoc2lnKSA9PiBjcmVhdGVUcmFuc2FjdGlvbkF1dGhGaWVsZChQdWJLZXlFbmNvZGluZy5Db21wcmVzc2VkLCBzaWcpKTtcbiAgICAgICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uIGFzIE11bHRpU2lnU3BlbmRpbmdDb25kaXRpb24pLmZpZWxkcyA9IChcbiAgICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiBhcyBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uXG4gICAgICApLmZpZWxkcy5jb25jYXQoYXV0aEZpZWxkcyk7XG4gICAgfVxuICAgIGlmIChzaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ0hhc2ggPSBzaWduYXR1cmVzW3NpZ25hdHVyZXMubGVuZ3RoIC0gMV0uc2lnSGFzaDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24gJiYgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbikge1xuICAgICAgaWYgKGlzU2luZ2xlU2lnKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbi5zaWduYXR1cmUuZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaWduYXR1cmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZC5jb250ZW50cy50eXBlID09PSBTdGFja3NNZXNzYWdlVHlwZS5NZXNzYWdlU2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBzaWduYXR1cmVzLnB1c2goZmllbGQuY29udGVudHMuZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25hdHVyZXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N0eFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLl9zdHhUcmFuc2FjdGlvbi50eGlkKCksXG4gICAgICBmZWU6IHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguZ2V0RmVlKCkudG9TdHJpbmcoMTApLFxuICAgICAgZnJvbTogZ2V0VHhTZW5kZXJBZGRyZXNzKHRoaXMuX3N0eFRyYW5zYWN0aW9uKSxcbiAgICAgIG5vbmNlOiB0aGlzLmdldE5vbmNlKCksXG4gICAgICBwYXlsb2FkOiB0aGlzLmdldFBheWxvYWREYXRhKCksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXlsb2FkRGF0YSgpOiBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQgfCBTdGFja3NDb250cmFjdFBheWxvYWQge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHR4UGF5bG9hZDogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkID0ge1xuICAgICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcixcbiAgICAgICAgLy8gcmVzdWx0LnBheWxvYWQubWVtbyB3aWxsIGJlIHBhZGRlZCB3aXRoIFxcdTAwMDAgdXAgdG9cbiAgICAgICAgLy8gTUVNT19NQVhfTEVOR1RIX0JZVEVTIGFzIGRlZmluZWQgaW4gQHN0YWNrcy90cmFuc2FjdGlvbnNcbiAgICAgICAgbWVtbzogdW5wYWRNZW1vKHBheWxvYWQubWVtby5jb250ZW50KSxcbiAgICAgICAgdG86IGFkZHJlc3NUb1N0cmluZyh7XG4gICAgICAgICAgdHlwZTogU3RhY2tzTWVzc2FnZVR5cGUuQWRkcmVzcyxcbiAgICAgICAgICB2ZXJzaW9uOiBwYXlsb2FkLnJlY2lwaWVudC5hZGRyZXNzLnZlcnNpb24sXG4gICAgICAgICAgaGFzaDE2MDogcGF5bG9hZC5yZWNpcGllbnQuYWRkcmVzcy5oYXNoMTYwLnRvU3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBhbW91bnQ6IHBheWxvYWQuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHR4UGF5bG9hZDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBjb250cmFjdFBheWxvYWQ6IFN0YWNrc0NvbnRyYWN0UGF5bG9hZCA9IHtcbiAgICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCxcbiAgICAgICAgY29udHJhY3RBZGRyZXNzOiBhZGRyZXNzVG9TdHJpbmcocGF5bG9hZC5jb250cmFjdEFkZHJlc3MpLFxuICAgICAgICBjb250cmFjdE5hbWU6IHBheWxvYWQuY29udHJhY3ROYW1lLmNvbnRlbnQsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudCxcbiAgICAgICAgZnVuY3Rpb25BcmdzOiBwYXlsb2FkLmZ1bmN0aW9uQXJncy5tYXAoc3RyaW5naWZ5Q3YpLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBjb250cmFjdFBheWxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ3BheWxvYWQgdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIGEgdHJhbnNhY3Rpb24uICBUaGlzIGlzIG5lZWRlZCB0byBjYWxjdWxhdGVcbiAgICogdGhlIHRyYW5zYWN0aW9uIGZlZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgc2VyaWFsaXplZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdHJhbnNhY3Rpb25TaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLmxlbmd0aDtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdHhUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIGdldCBzdHhUcmFuc2FjdGlvbigpOiBTdGFja3NUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHN0eFRyYW5zYWN0aW9uKHQ6IFN0YWNrc1RyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24gPSB0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb25jZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24ubm9uY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3NwZW5kaW5nIGNvbmRpdGlvbiBpcyBudWxsJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByYXcgPSByZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oQnVmZmVyUmVhZGVyLmZyb21CdWZmZXIoQnVmZmVyLmZyb20ocmF3LCAnaGV4JykpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgdHJhbnNhY3Rpb24ganNvblxuICAgKiBpZiB0aGVyZSBhcmUgb3V0cHV0cy5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgaWYgKHR4SnNvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBpZiAodHhKc29uLnBheWxvYWQudG8gJiYgdHhKc29uLnBheWxvYWQuYW1vdW50KSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLnBheWxvYWQudG8sXG4gICAgICAgICAgICB2YWx1ZTogdHhKc29uLnBheWxvYWQuYW1vdW50LFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgICAgdmFsdWU6IHR4SnNvbi5wYXlsb2FkLmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHhKc29uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyA9PT0gKHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBTdGFja3NOZXR3b3JrKS5zZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MpIHtcbiAgICAgICAgY29uc3Qgc2VuZFBhcmFtcyA9IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcygodGhpcy5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkIGFzIENvbnRyYWN0Q2FsbFBheWxvYWQpLmZ1bmN0aW9uQXJncyk7XG4gICAgICAgIGNvbnN0IGNvaW4gPSB0aGlzLl9jb2luQ29uZmlnLm5hbWU7XG4gICAgICAgIGNvbnN0IHN1bTogQmlnTnVtID0gc2VuZFBhcmFtcy5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuYWRkKG5ldyBCaWdOdW0obmV4dC5hbW91bnQpKSwgbmV3IEJpZ051bSgwKSk7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBzZW5kUGFyYW1zLm1hcCgoc2VuZFBhcmFtKSA9PiAoeyBhZGRyZXNzOiBzZW5kUGFyYW0uYWRkcmVzcywgdmFsdWU6IHNlbmRQYXJhbS5hbW91bnQsIGNvaW4gfSkpO1xuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbeyBhZGRyZXNzOiB0eEpzb24uZnJvbSwgdmFsdWU6IHN1bS50b1N0cmluZygpLCBjb2luIH1dO1xuICAgICAgfSBlbHNlIGlmICh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbk5hbWUgPT09IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgJiYgdHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLmxlbmd0aCA+PSAzKSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogY3ZUb1N0cmluZyh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMV0pLFxuICAgICAgICAgICAgdmFsdWU6IGN2VG9WYWx1ZSh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMl0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IGN2VG9TdHJpbmcodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzWzBdKSxcbiAgICAgICAgICAgIHZhbHVlOiBjdlRvVmFsdWUodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzWzJdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLmZyb20sXG4gICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQWlCOEI7QUFJOUIsbURBUThCO0FBRTlCLGtEQUEyQjtBQUczQixtQ0FBZ0g7QUFFaEgsMkNBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUE0QixFQUFFLE9BQWdCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEYsS0FBSyxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxx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LEVBQUUsSUFBQSx3QkFBUyxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUMzRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO3FCQUM1QjtpQkFDRixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLEdBQUc7b0JBQ2Q7d0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDdkMsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsT0FBTyxHQUFHO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDcEIsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFBELGtDQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQnVmZmVyUmVhZGVyLFxuICBDb250cmFjdENhbGxQYXlsb2FkLFxuICBjcmVhdGVTdGFja3NQcml2YXRlS2V5LFxuICBjcmVhdGVTdGFja3NQdWJsaWNLZXksXG4gIGNyZWF0ZVRyYW5zYWN0aW9uQXV0aEZpZWxkLFxuICBjdlRvU3RyaW5nLFxuICBjdlRvVmFsdWUsXG4gIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24sXG4gIGlzU2luZ2xlU2lnLFxuICBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uLFxuICBQYXlsb2FkVHlwZSxcbiAgUHViS2V5RW5jb2RpbmcsXG4gIFN0YWNrc01lc3NhZ2VUeXBlLFxuICBTdGFja3NUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TaWduZXIsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcblxuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RTdXBwb3J0ZWQsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5cbmltcG9ydCB7IFNpZ25hdHVyZURhdGEsIFN0YWNrc0NvbnRyYWN0UGF5bG9hZCwgU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcywgZ2V0VHhTZW5kZXJBZGRyZXNzLCByZW1vdmVIZXhQcmVmaXgsIHN0cmluZ2lmeUN2LCB1bnBhZE1lbW8gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgRlVOQ1RJT05fTkFNRV9UUkFOU0ZFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfc3R4VHJhbnNhY3Rpb246IFN0YWNrc1RyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgcHJpdmF0ZSBfc2lnSGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyW10gfCBLZXlQYWlyLCBzaWdIYXNoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGNvbnN0IHNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgc2lnbmVyLmNoZWNrT3ZlcnNpZ24gPSBmYWxzZTtcbiAgICBzaWduZXIuc2lnSGFzaCA9IHNpZ0hhc2ggPz8gdGhpcy5fc2lnSGFzaCA/PyB0aGlzLl9zdHhUcmFuc2FjdGlvbi52ZXJpZnlCZWdpbigpO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBrcC5nZXRLZXlzKGtwLmdldENvbXByZXNzZWQoKSk7XG4gICAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByaXZLZXkgPSBjcmVhdGVTdGFja3NQcml2YXRlS2V5KGtleXMucHJ2KTtcbiAgICAgIHNpZ25lci5zaWduT3JpZ2luKHByaXZLZXkpO1xuICAgICAgdGhpcy5fc2lnSGFzaCA9IHNpZ25lci5zaWdIYXNoO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFwcGVuZE9yaWdpbihwdWJLZXlTdHJpbmc6IHN0cmluZ1tdIHwgc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHViS2V5U3RyaW5ncyA9IHB1YktleVN0cmluZyBpbnN0YW5jZW9mIEFycmF5ID8gcHViS2V5U3RyaW5nIDogW3B1YktleVN0cmluZ107XG4gICAgY29uc3Qgc2lnbmVyOiBUcmFuc2FjdGlvblNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgcHViS2V5U3RyaW5ncy5mb3JFYWNoKChwdWJLZXkpID0+IHtcbiAgICAgIHNpZ25lci5hcHBlbmRPcmlnaW4oY3JlYXRlU3RhY2tzUHVibGljS2V5KHB1YktleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2lnbldpdGhTaWduYXR1cmVzKHNpZ25hdHVyZTogU2lnbmF0dXJlRGF0YVtdIHwgU2lnbmF0dXJlRGF0YSwgaXNNdWx0aVNpZzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghc2lnbmF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHNpZ25hdHVyZXMnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IHNpZ25hdHVyZSBpbnN0YW5jZW9mIEFycmF5ID8gc2lnbmF0dXJlIDogW3NpZ25hdHVyZV07XG5cbiAgICBpZiAoIWlzTXVsdGlTaWcpIHtcbiAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24uY3JlYXRlVHhXaXRoU2lnbmF0dXJlKHNpZ25hdHVyZXNbMF0uZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGF1dGhGaWVsZHMgPSBzaWduYXR1cmVzLm1hcCgoc2lnKSA9PiBjcmVhdGVUcmFuc2FjdGlvbkF1dGhGaWVsZChQdWJLZXlFbmNvZGluZy5Db21wcmVzc2VkLCBzaWcpKTtcbiAgICAgICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uIGFzIE11bHRpU2lnU3BlbmRpbmdDb25kaXRpb24pLmZpZWxkcyA9IChcbiAgICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiBhcyBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uXG4gICAgICApLmZpZWxkcy5jb25jYXQoYXV0aEZpZWxkcyk7XG4gICAgfVxuICAgIGlmIChzaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ0hhc2ggPSBzaWduYXR1cmVzW3NpZ25hdHVyZXMubGVuZ3RoIC0gMV0uc2lnSGFzaDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24gJiYgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbikge1xuICAgICAgaWYgKGlzU2luZ2xlU2lnKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbi5zaWduYXR1cmUuZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaWduYXR1cmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZC5jb250ZW50cy50eXBlID09PSBTdGFja3NNZXNzYWdlVHlwZS5NZXNzYWdlU2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBzaWduYXR1cmVzLnB1c2goZmllbGQuY29udGVudHMuZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25hdHVyZXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N0eFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLl9zdHhUcmFuc2FjdGlvbi50eGlkKCksXG4gICAgICBmZWU6IHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguZ2V0RmVlKCkudG9TdHJpbmcoMTApLFxuICAgICAgZnJvbTogZ2V0VHhTZW5kZXJBZGRyZXNzKHRoaXMuX3N0eFRyYW5zYWN0aW9uKSxcbiAgICAgIG5vbmNlOiB0aGlzLmdldE5vbmNlKCksXG4gICAgICBwYXlsb2FkOiB0aGlzLmdldFBheWxvYWREYXRhKCksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXlsb2FkRGF0YSgpOiBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQgfCBTdGFja3NDb250cmFjdFBheWxvYWQge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHR4UGF5bG9hZDogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkID0ge1xuICAgICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcixcbiAgICAgICAgLy8gcmVzdWx0LnBheWxvYWQubWVtbyB3aWxsIGJlIHBhZGRlZCB3aXRoIFxcdTAwMDAgdXAgdG9cbiAgICAgICAgLy8gTUVNT19NQVhfTEVOR1RIX0JZVEVTIGFzIGRlZmluZWQgaW4gQHN0YWNrcy90cmFuc2FjdGlvbnNcbiAgICAgICAgbWVtbzogdW5wYWRNZW1vKHBheWxvYWQubWVtby5jb250ZW50KSxcbiAgICAgICAgdG86IGFkZHJlc3NUb1N0cmluZyh7XG4gICAgICAgICAgdHlwZTogU3RhY2tzTWVzc2FnZVR5cGUuQWRkcmVzcyxcbiAgICAgICAgICB2ZXJzaW9uOiBwYXlsb2FkLnJlY2lwaWVudC5hZGRyZXNzLnZlcnNpb24sXG4gICAgICAgICAgaGFzaDE2MDogcGF5bG9hZC5yZWNpcGllbnQuYWRkcmVzcy5oYXNoMTYwLnRvU3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBhbW91bnQ6IHBheWxvYWQuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHR4UGF5bG9hZDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBjb250cmFjdFBheWxvYWQ6IFN0YWNrc0NvbnRyYWN0UGF5bG9hZCA9IHtcbiAgICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCxcbiAgICAgICAgY29udHJhY3RBZGRyZXNzOiBhZGRyZXNzVG9TdHJpbmcocGF5bG9hZC5jb250cmFjdEFkZHJlc3MpLFxuICAgICAgICBjb250cmFjdE5hbWU6IHBheWxvYWQuY29udHJhY3ROYW1lLmNvbnRlbnQsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudCxcbiAgICAgICAgZnVuY3Rpb25BcmdzOiBwYXlsb2FkLmZ1bmN0aW9uQXJncy5tYXAoc3RyaW5naWZ5Q3YpLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBjb250cmFjdFBheWxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ3BheWxvYWQgdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIGEgdHJhbnNhY3Rpb24uICBUaGlzIGlzIG5lZWRlZCB0byBjYWxjdWxhdGVcbiAgICogdGhlIHRyYW5zYWN0aW9uIGZlZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgc2VyaWFsaXplZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdHJhbnNhY3Rpb25TaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLmxlbmd0aDtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdHhUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIGdldCBzdHhUcmFuc2FjdGlvbigpOiBTdGFja3NUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHN0eFRyYW5zYWN0aW9uKHQ6IFN0YWNrc1RyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24gPSB0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb25jZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24ubm9uY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3NwZW5kaW5nIGNvbmRpdGlvbiBpcyBudWxsJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByYXcgPSByZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oQnVmZmVyUmVhZGVyLmZyb21CdWZmZXIoQnVmZmVyLmZyb20ocmF3LCAnaGV4JykpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgdHJhbnNhY3Rpb24ganNvblxuICAgKiBpZiB0aGVyZSBhcmUgb3V0cHV0cy5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgaWYgKHR4SnNvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBpZiAodHhKc29uLnBheWxvYWQudG8gJiYgdHhKc29uLnBheWxvYWQuYW1vdW50KSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLnBheWxvYWQudG8sXG4gICAgICAgICAgICB2YWx1ZTogdHhKc29uLnBheWxvYWQuYW1vdW50LFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgICAgdmFsdWU6IHR4SnNvbi5wYXlsb2FkLmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHhKc29uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyA9PT0gKHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBTdGFja3NOZXR3b3JrKS5zZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MpIHtcbiAgICAgICAgY29uc3Qgc2VuZFBhcmFtcyA9IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcygodGhpcy5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkIGFzIENvbnRyYWN0Q2FsbFBheWxvYWQpLmZ1bmN0aW9uQXJncyk7XG4gICAgICAgIGNvbnN0IGNvaW4gPSB0aGlzLl9jb2luQ29uZmlnLm5hbWU7XG4gICAgICAgIGNvbnN0IHN1bTogQmlnTnVtID0gc2VuZFBhcmFtcy5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuYWRkKG5ldyBCaWdOdW0obmV4dC5hbW91bnQpKSwgbmV3IEJpZ051bSgwKSk7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBzZW5kUGFyYW1zLm1hcCgoc2VuZFBhcmFtKSA9PiAoeyBhZGRyZXNzOiBzZW5kUGFyYW0uYWRkcmVzcywgdmFsdWU6IHNlbmRQYXJhbS5hbW91bnQsIGNvaW4gfSkpO1xuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbeyBhZGRyZXNzOiB0eEpzb24uZnJvbSwgdmFsdWU6IHN1bS50b1N0cmluZygpLCBjb2luIH1dO1xuICAgICAgfSBlbHNlIGlmICh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbk5hbWUgPT09IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgJiYgdHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLmxlbmd0aCA+PSAzKSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogY3ZUb1N0cmluZyh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMl0pLFxuICAgICAgICAgICAgdmFsdWU6IGN2VG9WYWx1ZSh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IGN2VG9TdHJpbmcodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzWzFdKSxcbiAgICAgICAgICAgIHZhbHVlOiBjdlRvVmFsdWUodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzWzBdKS50b1N0cmluZygpLFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLmZyb20sXG4gICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -204,4 +204,20 @@ export declare function getBaseAddress(address: string): string;
|
|
|
204
204
|
* @returns {boolean}
|
|
205
205
|
*/
|
|
206
206
|
export declare function isSameBaseAddress(address: string, baseAddress: string): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Function to get tokenName from list of sip10 tokens using contract details
|
|
209
|
+
*
|
|
210
|
+
* @param {String} contractAddress
|
|
211
|
+
* @param {String} contractName
|
|
212
|
+
* @returns {String|Undefined}
|
|
213
|
+
*/
|
|
214
|
+
export declare function findTokenNameByContract(contractAddress: string, contractName: string): string | undefined;
|
|
215
|
+
/**
|
|
216
|
+
* Function to get contractTokenName from list of sip10 tokens using contract details
|
|
217
|
+
*
|
|
218
|
+
* @param {String} contractAddress
|
|
219
|
+
* @param {String} contractName
|
|
220
|
+
* @returns {String|Undefined}
|
|
221
|
+
*/
|
|
222
|
+
export declare function findContractTokenNameUsingContract(contractAddress: string, contractName: string): string | undefined;
|
|
207
223
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,eAAe,EAGf,cAAc,EAGd,YAAY,EAYZ,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -62,6 +62,8 @@ exports.getAddressVersion = getAddressVersion;
|
|
|
62
62
|
exports.xpubToSTXPubkey = xpubToSTXPubkey;
|
|
63
63
|
exports.getBaseAddress = getBaseAddress;
|
|
64
64
|
exports.isSameBaseAddress = isSameBaseAddress;
|
|
65
|
+
exports.findTokenNameByContract = findTokenNameByContract;
|
|
66
|
+
exports.findContractTokenNameUsingContract = findContractTokenNameUsingContract;
|
|
65
67
|
const url = __importStar(require("url"));
|
|
66
68
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
67
69
|
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
@@ -70,6 +72,7 @@ const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
|
70
72
|
const _ = __importStar(require("lodash"));
|
|
71
73
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
72
74
|
const _1 = require(".");
|
|
75
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
73
76
|
const constants_1 = require("./constants");
|
|
74
77
|
/**
|
|
75
78
|
* Encodes a buffer as a "0x" prefixed lower-case hex string.
|
|
@@ -473,15 +476,15 @@ function functionArgsToTokenTransferParams(args) {
|
|
|
473
476
|
if (args.length < 3) {
|
|
474
477
|
throw new sdk_core_1.InvalidTransactionError("function args don't match token transfer declaration");
|
|
475
478
|
}
|
|
476
|
-
if (args[0].type !== transactions_1.ClarityType.
|
|
479
|
+
if (args[0].type !== transactions_1.ClarityType.UInt ||
|
|
477
480
|
args[1].type !== transactions_1.ClarityType.PrincipalStandard ||
|
|
478
|
-
args[2].type !== transactions_1.ClarityType.
|
|
481
|
+
args[2].type !== transactions_1.ClarityType.PrincipalStandard) {
|
|
479
482
|
throw new sdk_core_1.InvalidTransactionError("function args don't match token transfer declaration");
|
|
480
483
|
}
|
|
481
484
|
const tokenTransferParams = {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
+
amount: (0, transactions_1.cvToValue)(args[0], true),
|
|
486
|
+
sender: (0, transactions_1.cvToString)(args[1]),
|
|
487
|
+
recipient: (0, transactions_1.cvToString)(args[2]),
|
|
485
488
|
};
|
|
486
489
|
if (args.length === 4 && args[3].type === transactions_1.ClarityType.Buffer) {
|
|
487
490
|
tokenTransferParams['memo'] = args[3].buffer.toString('ascii');
|
|
@@ -530,4 +533,34 @@ function isSameBaseAddress(address, baseAddress) {
|
|
|
530
533
|
}
|
|
531
534
|
return getBaseAddress(address) === getBaseAddress(baseAddress);
|
|
532
535
|
}
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMENBLDBEQUVDO0FBUUQsMENBRUM7QUE0QkQsZ0RBVUM7QUFRRCxzQ0FHQztBQVFELHdDQUVDO0FBWUQsb0RBTUM7QUFZRCw0Q0FzQkM7QUFhRCw4Q0FRQztBQWtCRCxzREFZQztBQVFELGtDQVFDO0FBU0Qsd0RBRUM7QUFRRCxrRUFFQztBQVVELDhCQUlDO0FBV0QsNERBb0JDO0FBU0Qsa0NBT0M7QUFhRCwwQ0FjQztBQVFELDhDQTZCQztBQVFELDRDQVlDO0FBUUQsa0VBT0M7QUFRRCxrQ0FvQkM7QUFRRCw0REFtQkM7QUFFRCw4RUFvQkM7QUFRRCw4Q0FHQztBQVFELDBDQUVDO0FBUUQsd0NBR0M7QUFTRCw4Q0FLQztBQXhoQkQseUNBQTJCO0FBQzNCLGdFQUFxQztBQUNyQyxxREFBOEQ7QUFDOUQsdURBd0I4QjtBQUM5Qix1REFBb0Q7QUFDcEQsMENBQTRCO0FBQzVCLG1EQUFtSDtBQUVuSCx3QkFBNEI7QUFFNUIsMkNBQTREO0FBRTVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsSUFBWTtJQUNsRCxPQUFPLElBQUEsNkJBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBVztJQUN6QyxPQUFPLElBQUEsZ0NBQWMsRUFBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLGFBQXFCLEVBQ3JCLFFBQXlCLEVBQ3pCLGtCQUFzQztJQUV0QyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIs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RCxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELE9BQU8sSUFBQSw0QkFBYSxFQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBWSxFQUFFLFVBQVUsR0FBRyxJQUFJO0lBQzdELE9BQU8sSUFBSSxVQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQztBQUNoQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZSxFQUFFLFdBQW1CO0lBQ3BFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxxQkFBVSxDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgYnVmZmVyVG9IZXgsIHN0cmlwSGV4UHJlZml4IH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCB7XG4gIGFkZHJlc3NGcm9tUHVibGljS2V5cyxcbiAgYWRkcmVzc0Zyb21WZXJzaW9uSGFzaCxcbiAgQWRkcmVzc0hhc2hNb2RlLFxuICBhZGRyZXNzSGFzaE1vZGVUb1ZlcnNpb24sXG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQWRkcmVzc1ZlcnNpb24sXG4gIEJ1ZmZlclJlYWRlcixcbiAgQ2xhcml0eVR5cGUsXG4gIENsYXJpdHlWYWx1ZSxcbiAgY3JlYXRlQWRkcmVzcyxcbiAgY3JlYXRlTWVtb1N0cmluZyxcbiAgY3JlYXRlTWVzc2FnZVNpZ25hdHVyZSxcbiAgY3JlYXRlU3RhY2tzUHJpdmF0ZUtleSxcbiAgY3JlYXRlU3RhY2tzUHVibGljS2V5LFxuICBjdlRvU3RyaW5nLFxuICBjdlRvVmFsdWUsXG4gIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24sXG4gIFB1YktleUVuY29kaW5nLFxuICBwdWJsaWNLZXlGcm9tU2lnbmF0dXJlLFxuICBzaWduV2l0aEtleSxcbiAgU3RhY2tzVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uVmVyc2lvbixcbiAgdmFsaWRhdGVTdGFja3NBZGRyZXNzLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBzZWNwMjU2azEgfSBmcm9tICdAbm9ibGUvY3VydmVzL3NlY3AyNTZrMSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgaXNWYWxpZFhwcnYsIGlzVmFsaWRYcHViLCBTaWduaW5nRXJyb3IsIFV0aWxzRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBZGRyZXNzRGV0YWlscywgU2VuZFBhcmFtcywgVG9rZW5UcmFuc2ZlclBhcmFtcyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4nO1xuaW1wb3J0IHsgU3RhY2tzTmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFZBTElEX0NPTlRSQUNUX0ZVTkNUSU9OX05BTUVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIEVuY29kZXMgYSBidWZmZXIgYXMgYSBcIjB4XCIgcHJlZml4ZWQgbG93ZXItY2FzZSBoZXggc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmIC0gYSBidWZmZXIgd2l0aCBhIGhleGFkZWNpbWFsIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nIHByZWZpeGVkIHdpdGggXCIweFwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWZmZXJUb0hleFByZWZpeFN0cmluZyhidWZmOiBCdWZmZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYnVmZmVyVG9IZXgoYnVmZik7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBcIjB4XCIgcHJlZml4IGZyb20gdGhlIGdpdmVuIHN0cmluZywgaWYgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4IC0gYSBoZXhhZGVjaW1hbCBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIGhleGFkZWNpbWFsIHN0cmluZyB3aXRob3V0IGEgbGVhZGluZyBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUhleFByZWZpeChoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHJpcEhleFByZWZpeChoZXgpO1xufVxuXG4vKipcbiAqIEdldCBzdGFja3MgYWRkcmVzcyBmcm9tIHB1YmxpYyBrZXkgaGFzaFxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBwdWJsaWNLZXlIYXNoIC0gaGFzaCBvZiBwdWJsaWMga2V5XG4gKiBAcGFyYW0ge0FkZHJlc3NIYXNoTW9kZX0gaGFzaE1vZGUgLSBoYXNoIG1vZGVcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25WZXJzaW9ufSB0cmFuc2FjdGlvblZlcnNpb24gLSB0eCB2ZXJzaW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBzdGFja3MgYWRkcmVzc1xuICovXG5mdW5jdGlvbiBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleUhhc2goXG4gIHB1YmxpY0tleUhhc2g6IEJ1ZmZlcixcbiAgaGFzaE1vZGU6IEFkZHJlc3NIYXNoTW9kZSxcbiAgdHJhbnNhY3Rpb25WZXJzaW9uOiBUcmFuc2FjdGlvblZlcnNpb25cbik6IHN0cmluZyB7XG4gIGlmIChwdWJsaWNLZXlIYXNoLmxlbmd0aCAhPT0gMjApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIDIwLWJ5dGUgcHVia2V5aGFzaCcpO1xuICB9XG5cbiAgY29uc3QgYWRkclZlciA9IGFkZHJlc3NIYXNoTW9kZVRvVmVyc2lvbihoYXNoTW9kZSwgdHJhbnNhY3Rpb25WZXJzaW9uKTtcbiAgY29uc3QgYWRkciA9IGFkZHJlc3NGcm9tVmVyc2lvbkhhc2goYWRkclZlciwgcHVibGljS2V5SGFzaC50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBhZGRyU3RyaW5nID0gYWRkcmVzc1RvU3RyaW5nKGFkZHIpO1xuICByZXR1cm4gYWRkclN0cmluZztcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR4U2VuZGVyQWRkcmVzcyh0eDogU3RhY2tzVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICBpZiAodHguYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiAhPT0gbnVsbCAmJiB0eC5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBzcGVuZGluZ0NvbmRpdGlvbiA9IHR4LmF1dGguc3BlbmRpbmdDb25kaXRpb247XG4gICAgY29uc3QgdHhTZW5kZXIgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleUhhc2goXG4gICAgICBCdWZmZXIuZnJvbShzcGVuZGluZ0NvbmRpdGlvbi5zaWduZXIsICdoZXgnKSxcbiAgICAgIHNwZW5kaW5nQ29uZGl0aW9uLmhhc2hNb2RlIGFzIG51bWJlcixcbiAgICAgIHR4LnZlcnNpb25cbiAgICApO1xuICAgIHJldHVybiB0eFNlbmRlcjtcbiAgfSBlbHNlIHRocm93IG5ldyBFcnJvcignc3BlbmRpbmdDb25kaXRpb24gc2hvdWxkIG5vdCBiZSBudWxsJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSB0aGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpICYmIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIHRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbGlkYXRlU3RhY2tzQWRkcmVzcyhhZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCB0cmFuc2FjdGlvbiBpZCBvciBub3QuXG4gKlxuICogQSB2YWxpZCB0cmFuc2FjdGlvbiBpZCBpcyBhIFNIQS01MTIvMjU2IGhhc2ggb2YgYSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uOyBzZWVcbiAqIHRoZSB0eGlkRnJvbURhdGEgZnVuY3Rpb24gaW4gQHN0YWNrcy90cmFuc2FjdGlvbjpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibG9ja3N0YWNrL3N0YWNrcy5qcy9ibG9iL21hc3Rlci9wYWNrYWdlcy90cmFuc2FjdGlvbnMvc3JjL3V0aWxzLnRzI0w5N1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eElkIC0gdGhlIHRyYW5zYWN0aW9uIGlkIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR4SWQubGVuZ3RoICE9PSA2NCAmJiB0eElkLmxlbmd0aCAhPT0gNjYpIHJldHVybiBmYWxzZTtcbiAgY29uc3Qgbm9QcmVmaXggPSByZW1vdmVIZXhQcmVmaXgodHhJZCk7XG4gIGlmIChub1ByZWZpeC5sZW5ndGggIT09IDY0KSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGFsbEhleENoYXJzKG5vUHJlZml4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCBwdWJsaWMga2V5IG9yXG4gKiBleHRlbmRlZCBwdWJsaWMga2V5LlxuICpcbiAqIFRoZSBrZXkgZm9ybWF0IGlzIGRvY3VtZW50ZWQgYXRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tYXV0aG9yaXphdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgLSB0aGUgIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzVmFsaWRYcHViKHB1YikpIHJldHVybiB0cnVlO1xuXG4gIGlmIChwdWIubGVuZ3RoICE9PSA2NiAmJiBwdWIubGVuZ3RoICE9PSAxMzApIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBmaXJzdEJ5dGUgPSBwdWIuc2xpY2UoMCwgMik7XG5cbiAgLy8gdW5jb21wcmVzc2VkIHB1YmxpYyBrZXlcbiAgaWYgKHB1Yi5sZW5ndGggPT09IDEzMCAmJiBmaXJzdEJ5dGUgIT09ICcwNCcpIHJldHVybiBmYWxzZTtcblxuICAvLyBjb21wcmVzc2VkIHB1YmxpYyBrZXlcbiAgaWYgKHB1Yi5sZW5ndGggPT09IDY2ICYmIGZpcnN0Qnl0ZSAhPT0gJzAyJyAmJiBmaXJzdEJ5dGUgIT09ICcwMycpIHJldHVybiBmYWxzZTtcblxuICBpZiAoIWFsbEhleENoYXJzKHB1YikpIHJldHVybiBmYWxzZTtcblxuICAvLyB2YWxpZGF0ZSB0aGUgcHVibGljIGtleVxuICB0cnkge1xuICAgIHNlY3AyNTZrMS5Qcm9qZWN0aXZlUG9pbnQuZnJvbUhleChwdWIpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgcHJpdmF0ZSBrZXksIG9yIGV4dGVuZGVkXG4gKiBwcml2YXRlIGtleS5cbiAqXG4gKiBUaGUgcHJvdG9jb2wga2V5IGZvcm1hdCBpcyBkZXNjcmliZWQgaW4gdGhlIEBzdGFja3MvdHJhbnNhY3Rpb25zIG5wbSBwYWNrYWdlLCBpbiB0aGVcbiAqIGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXkgZnVuY3Rpb246XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmxvY2tzdGFjay9zdGFja3MuanMvYmxvYi9tYXN0ZXIvcGFja2FnZXMvdHJhbnNhY3Rpb25zL3NyYy9rZXlzLnRzI0wxMjVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gdGhlIHByaXZhdGUga2V5IChvciBleHRlbmRlZCBwcml2YXRlIGtleSkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQcml2YXRlS2V5KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpc1ZhbGlkWHBydihwcnYpKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAocHJ2Lmxlbmd0aCAhPT0gNjQgJiYgcHJ2Lmxlbmd0aCAhPT0gNjYpIHJldHVybiBmYWxzZTtcblxuICBpZiAocHJ2Lmxlbmd0aCA9PT0gNjYgJiYgcHJ2LnNsaWNlKDY0KSAhPT0gJzAxJykgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBhbGxIZXhDaGFycyhwcnYpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIGNvbXBvc2VkIG9mIGhleCBjaGFycyBvbmx5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1heWJlIC0gdGhlICBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYWxsSGV4Q2hhcnMobWF5YmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL14oWzAtOWEtZl0pKyQvaS50ZXN0KG1heWJlKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgcmF3IHRyYW5zYWN0aW9uIGNhbiBiZSBkZXNlcmlhbGl6ZWRcbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHJhd1RyYW5zYWN0aW9uIC0gdHJhbnNhY3Rpb24gaW4gcmF3IGhleCBmb3JtYXRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHR5cGVvZiByYXdUcmFuc2FjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oQnVmZmVyUmVhZGVyLmZyb21CdWZmZXIoQnVmZmVyLmZyb20ocmVtb3ZlSGV4UHJlZml4KHJhd1RyYW5zYWN0aW9uKSwgJ2hleCcpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBtZW1vIHN0cmluZyBpcyB2YWxpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZE1lbW8obWVtbzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY3JlYXRlTWVtb1N0cmluZyhtZW1vKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyBmb3IgdmFsaWQgY29udHJhY3QgYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyIC0gY29udHJhY3QgZGVwbG95ZXIgYWRkcmVzc1xuICogQHBhcmFtIHtCaXRnb1N0YWNrc05ldHdvcmt9IG5ldHdvcmsgLSBuZXR3b3JrIG9iamVjdFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQ29udHJhY3RBZGRyZXNzKGFkZHI6IHN0cmluZywgbmV0d29yazogQml0Z29TdGFja3NOZXR3b3JrKTogYm9vbGVhbiB7XG4gIHJldHVybiBhZGRyID09PSBuZXR3b3JrLnN0YWtpbmdDb250cmFjdEFkZHJlc3MgfHwgYWRkciA9PT0gbmV0d29yay5zZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3M7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIG5hbWUgaXMgb25lIG9mIHZhbGlkIGNvbnRyYWN0IG5hbWVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBmdW5jdGlvbiBuYW1lXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gVkFMSURfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMuaW5jbHVkZXMobmFtZSk7XG59XG5cbi8qKlxuICogVW5wYWRzIGEgbWVtbyBzdHJpbmcsIHNvIGl0IHJlbW92ZXMgbnVsbHMuXG4gKlxuICogVXNlZnVsIHdoZW4gbWVtbyBpcyBmaWxsIHVwIHRoZSBsZW5ndGguIFJlc3VsdCBpcyBiZWNvbWVzIHJlYWRhYmxlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5wYWRNZW1vKG1lbW86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGVuZCA9IG1lbW8uaW5kZXhPZignXFx1MDAwMCcpO1xuICBpZiAoZW5kIDwgMCkgcmV0dXJuIG1lbW87XG4gIHJldHVybiBtZW1vLnNsaWNlKDAsIGVuZCk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBtdWx0aXNpZyBhZGRyZXNzIGZyb20gbXVsdGlwbGUgU1RYIHB1YmxpYyBrZXlzXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gcHViS2V5cyAtIGxpc3Qgb2YgcHVibGljIGtleXMgYXMgc3RyaW5nc1xuICogQHBhcmFtIHtBZGRyZXNzVmVyc2lvbn0gYWRkcmVzc1ZlcnNpb24gLSBNYWlubmV0TXVsdGlTaWcsIFRlc3RuZXRNdWx0aVNpZ1xuICogQHBhcmFtIHtBZGRyZXNzSGFzaE1vZGV9IGFkZHJlc3NIYXNoTW9kZSAtIFNlcmlhbGl6ZVAyU0hcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2lnbmF0dXJlc1JlcXVpcmVkXSAtIG51bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkLCBkZWZhdWx0IHZhbHVlIGl0cyAyXG4gKiBAcmV0dXJucyB7YWRkcmVzczogc3RyaW5nLCBoYXNoMTYwOiBzdHJpbmd9IC0gYSBtdWx0aXNpZyBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTVFhBZGRyZXNzRnJvbVB1YktleXMoXG4gIHB1YktleXM6IHN0cmluZ1tdLFxuICBhZGRyZXNzVmVyc2lvbjogQWRkcmVzc1ZlcnNpb24gPSBBZGRyZXNzVmVyc2lvbi5NYWlubmV0TXVsdGlTaWcsXG4gIGFkZHJlc3NIYXNoTW9kZTogQWRkcmVzc0hhc2hNb2RlID0gQWRkcmVzc0hhc2hNb2RlLlNlcmlhbGl6ZVAyU0gsXG4gIHNpZ25hdHVyZXNSZXF1aXJlZCA9IDJcbik6IHsgYWRkcmVzczogc3RyaW5nOyBoYXNoMTYwOiBzdHJpbmcgfSB7XG4gIGlmIChwdWJLZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBudW1iZXIgb2YgcHVibGljIGtleXMnKTtcbiAgfVxuICBpZiAoIXB1YktleXMuZXZlcnkoaXNWYWxpZFB1YmxpY0tleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcHVibGljIGtleXMnKTtcbiAgfVxuICBpZiAoc2lnbmF0dXJlc1JlcXVpcmVkID4gcHViS2V5cy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ051bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkIG11c3QgYmUgbG93ZXIgb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBQdWJsaWMgS2V5cycpO1xuICB9XG5cbiAgY29uc3Qgc3R4UHViS2V5cyA9IHB1YktleXMubWFwKGNyZWF0ZVN0YWNrc1B1YmxpY0tleSk7XG4gIGNvbnN0IGFkZHJlc3MgPSBhZGRyZXNzRnJvbVB1YmxpY0tleXMoYWRkcmVzc1ZlcnNpb24sIGFkZHJlc3NIYXNoTW9kZSwgc2lnbmF0dXJlc1JlcXVpcmVkLCBzdHhQdWJLZXlzKTtcblxuICByZXR1cm4geyBhZGRyZXNzOiBhZGRyZXNzVG9TdHJpbmcoYWRkcmVzcyksIGhhc2gxNjA6IGFkZHJlc3MuaGFzaDE2MCB9O1xufVxuXG4vKipcbiAqIHNpZ25zIGEgc3RyaW5nIG1lc3NhZ2VcbiAqXG4gKiBAcGFyYW0ga2V5UGFpclxuICogQHBhcmFtIGRhdGEgIC0gbWVzc2FnZSB0byBiZSBzaWduZWRcbiAqIEByZXR1cm5zIHNpZ25lZCBtZXNzYWdlIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbk1lc3NhZ2Uoa2V5UGFpcjogS2V5UGFpciwgZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcHJ2ID0ga2V5UGFpci5nZXRLZXlzKCkucHJ2O1xuICBpZiAocHJ2KSB7XG4gICAgcmV0dXJuIHNpZ25XaXRoS2V5KGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXkocHJ2KSwgZGF0YSkuZGF0YTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyBhIHNpZ25lZCBtZXNzYWdlXG4gKlxuICogVGhlIHNpZ25hdHVyZSBtdXN0IGJlIDEzMCBieXRlcyBsb25nIC0tIHNlZSBSRUNPVkVSQUJMRV9FQ0RTQV9TSUdfTEVOR1RIX0JZVEVTXG4gKiBpbiBAc3RhY2tzL3RyYW5zYWN0aW9ucy9zcmMvY29uc3RhbnRzLnRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBtZXNzYWdlIHRvIHZlcmlmeSB0aGUgc2lnbmF0dXJlXG4gKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIC0gc2lnbmF0dXJlIHRvIHZlcmlmeVxuICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleSAtIHB1YmxpYyBrZXkgYXMgaGV4IHN0cmluZyB1c2VkIHRvIHZlcmlmeSB0aGUgc2lnbmF0dXJlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB2ZXJpZmljYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmUobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZywgcHVibGljS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFpc1ZhbGlkUHVibGljS2V5KHB1YmxpY0tleSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDEzMCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWFsbEhleENoYXJzKHNpZ25hdHVyZSkpIHRocm93IG5ldyBVdGlsc0Vycm9yKCdJbnZhbGlkIHNpZ25hdHVyZSBpbnB1dCB0byB2ZXJpZnlTaWduYXR1cmUnKTtcbiAgaWYgKF8uaXNFbXB0eShtZXNzYWdlKSkgdGhyb3cgbmV3IFV0aWxzRXJyb3IoJ0Nhbm5vdCB2ZXJpZnkgZW1wdHkgbWVzc2FnZXMnKTtcblxuICAvLyBwcm92aWRlZCBwdWJsaWNLZXkgY2FuIGJlIGNvbXByZXNzZWQgb3IgdW5jb21wcmVzc2VkXG4gIGNvbnN0IGtleUVuY29kaW5nID0gcHVibGljS2V5Lmxlbmd0aCA9PT0gNjYgPyBQdWJLZXlFbmNvZGluZy5Db21wcmVzc2VkIDogUHViS2V5RW5jb2RpbmcuVW5jb21wcmVzc2VkO1xuXG4gIGNvbnN0IG1lc3NhZ2VTaWcgPSBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlKHNpZ25hdHVyZSk7XG5cbiAgY29uc3QgZm91bmRLZXkgPSBwdWJsaWNLZXlGcm9tU2lnbmF0dXJlKG1lc3NhZ2UsIG1lc3NhZ2VTaWcsIGtleUVuY29kaW5nKTtcblxuICByZXR1cm4gZm91bmRLZXkgPT09IHB1YmxpY0tleTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzIGFkZHJlc3MgaW50byBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFkZHJlc3MgdG8gcHJvY2Vzc1xuICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcyBhbmQgbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzczogc3RyaW5nKTogQWRkcmVzc0RldGFpbHMge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IHVybC5wYXJzZShhZGRyZXNzKTtcbiAgY29uc3QgcXVlcnlEZXRhaWxzID0gYWRkcmVzc0RldGFpbHMucXVlcnkgPyBuZXcgVVJMU2VhcmNoUGFyYW1zKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBhZGRyZXNzRGV0YWlscy5wYXRobmFtZSBhcyBzdHJpbmc7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIC8vIGFkZHJlc3MgZG9lc24ndCBoYXZlIGEgbWVtbyBpZFxuICBpZiAoYmFzZUFkZHJlc3MgPT09IGFkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoIXF1ZXJ5RGV0YWlscyB8fCBfLmlzTmlsKHF1ZXJ5RGV0YWlscy5nZXQoJ21lbW9JZCcpKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gcXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykgYXMgc3RyaW5nO1xuICBjb25zdCBpbnRNZW1vSWQgPSBwYXJzZUludChtZW1vSWQsIDEwKTtcbiAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBtZW1vIGlkOiAke21lbW9JZH1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlsc1xuICogQHJldHVybnMge3N0cmluZ30gYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIGlmICghXy5pc1VuZGVmaW5lZChtZW1vSWQpKSB7XG4gICAgY29uc3QgaW50TWVtb0lkID0gcGFyc2VJbnQobWVtb0lkLCAxMCk7XG4gICAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG1lbW8gaWQ6ICR7bWVtb0lkfWApO1xuICAgIH1cbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBhZGRyZXNzIGluIHRoZSBmb3JtIDxhZGRyZXNzPj9tZW1vSWQ9PG1lbW9JZD5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlzIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gICAgcmV0dXJuIGFkZHJlc3MgPT09IG5vcm1hbGl6ZUFkZHJlc3MoYWRkcmVzc0RldGFpbHMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjbGFyaXR5IHZhbHVlIGlucHV0XG4gKlxuICogQHBhcmFtIHtDbGFyaXR5VmFsdWV9IGN2IGNsYXJpdHkgdmFsdWUgZnVuY3Rpb24gYXJndW1lbnRcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZ2lmaWVkIGNsYXJpdHkgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUN2KGN2OiBDbGFyaXR5VmFsdWUpOiBhbnkge1xuICBzd2l0Y2ggKGN2LnR5cGUpIHtcbiAgICBjYXNlIENsYXJpdHlUeXBlLkludDpcbiAgICBjYXNlIENsYXJpdHlUeXBlLlVJbnQ6XG4gICAgICByZXR1cm4geyB0eXBlOiBjdi50eXBlLCB2YWx1ZTogY3YudmFsdWUudG9TdHJpbmcoKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuT3B0aW9uYWxTb21lOlxuICAgICAgcmV0dXJuIHsgdHlwZTogY3YudHlwZSwgdmFsdWU6IHN0cmluZ2lmeUN2KGN2LnZhbHVlKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuVHVwbGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBjdi50eXBlLFxuICAgICAgICBkYXRhOiBfLm1hcFZhbHVlcyhjdi5kYXRhLCAodmFsdWUpID0+IHN0cmluZ2lmeUN2KHZhbHVlKSksXG4gICAgICB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuTGlzdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IGN2LnR5cGUsXG4gICAgICAgIGxpc3Q6IGN2Lmxpc3QubWFwKHN0cmluZ2lmeUN2KSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdjtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGZ1bmN0aW9uQXJncyBpbnRvIHNlbmQgcGFyYW1zIGZvciBzZW5kLW1hbnktbWVtbyBjb250cmFjdCBjYWxsc1xuICpcbiAqIEBwYXJhbSB7Q2xhcml0eVZhbHVlW119IGFyZ3MgZnVuY3Rpb25BcmdzIGZyb20gYSBjb250cmFjdCBjYWxsIHBheWxvYWRcbiAqIEByZXR1cm5zIHtTZW5kUGFyYW1zW119IEFuIGFycmF5IG9mIHNlbmRQYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcyhhcmdzOiBDbGFyaXR5VmFsdWVbXSk6IFNlbmRQYXJhbXNbXSB7XG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdLnR5cGUgIT09IENsYXJpdHlUeXBlLkxpc3QpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIGFyZ3NbMF0ubGlzdC5tYXAoKHR1cGxlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdHVwbGUudHlwZSAhPT0gQ2xhcml0eVR5cGUuVHVwbGUgfHxcbiAgICAgIHR1cGxlLmRhdGEudG8/LnR5cGUgIT09IENsYXJpdHlUeXBlLlByaW5jaXBhbFN0YW5kYXJkIHx8XG4gICAgICB0dXBsZS5kYXRhLnVzdHg/LnR5cGUgIT09IENsYXJpdHlUeXBlLlVJbnQgfHxcbiAgICAgIHR1cGxlLmRhdGEubWVtbz8udHlwZSAhPT0gQ2xhcml0eVR5cGUuQnVmZmVyXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBjdlRvU3RyaW5nKHR1cGxlLmRhdGEudG8pLFxuICAgICAgYW1vdW50OiBjdlRvVmFsdWUodHVwbGUuZGF0YS51c3R4LCB0cnVlKSxcbiAgICAgIG1lbW86IHR1cGxlLmRhdGEubWVtby5idWZmZXIudG9TdHJpbmcoJ2FzY2lpJyksXG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdW5jdGlvbkFyZ3NUb1Rva2VuVHJhbnNmZXJQYXJhbXMoYXJnczogQ2xhcml0eVZhbHVlW10pOiBUb2tlblRyYW5zZmVyUGFyYW1zIHtcbiAgaWYgKGFyZ3MubGVuZ3RoIDwgMykge1xuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcImZ1bmN0aW9uIGFyZ3MgZG9uJ3QgbWF0Y2ggdG9rZW4gdHJhbnNmZXIgZGVjbGFyYXRpb25cIik7XG4gIH1cbiAgaWYgKFxuICAgIGFyZ3NbMF0udHlwZSAhPT0gQ2xhcml0eVR5cGUuUHJpbmNpcGFsU3RhbmRhcmQgfHxcbiAgICBhcmdzWzFdLnR5cGUgIT09IENsYXJpdHlUeXBlLlByaW5jaXBhbFN0YW5kYXJkIHx8XG4gICAgYXJnc1syXS50eXBlICE9PSBDbGFyaXR5VHlwZS5VSW50XG4gICkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcImZ1bmN0aW9uIGFyZ3MgZG9uJ3QgbWF0Y2ggdG9rZW4gdHJhbnNmZXIgZGVjbGFyYXRpb25cIik7XG4gIH1cbiAgY29uc3QgdG9rZW5UcmFuc2ZlclBhcmFtcyA9IHtcbiAgICBzZW5kZXI6IGN2VG9TdHJpbmcoYXJnc1swXSksXG4gICAgcmVjaXBpZW50OiBjdlRvU3RyaW5nKGFyZ3NbMV0pLFxuICAgIGFtb3VudDogY3ZUb1ZhbHVlKGFyZ3NbMl0sIHRydWUpLFxuICB9O1xuICBpZiAoYXJncy5sZW5ndGggPT09IDQgJiYgYXJnc1szXS50eXBlID09PSBDbGFyaXR5VHlwZS5CdWZmZXIpIHtcbiAgICB0b2tlblRyYW5zZmVyUGFyYW1zWydtZW1vJ10gPSBhcmdzWzNdLmJ1ZmZlci50b1N0cmluZygnYXNjaWknKTtcbiAgfVxuICByZXR1cm4gdG9rZW5UcmFuc2ZlclBhcmFtcztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB2ZXJzaW9uIG9mIGFuIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB3aXRoIG9yIHdpdGhvdXQgdGhlIG1lbW9JZFxuICogQHJldHVybnMge0FkZHJlc3NWZXJzaW9ufSBBIG51bWJlciB0aGF0IHJlcHJlc2VudCB0aGUgQWRkcmVzcyBWZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzVmVyc2lvbihhZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzVmVyc2lvbiB7XG4gIGNvbnN0IGJhc2VBZGRyZXNzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcykuYWRkcmVzcztcbiAgcmV0dXJuIGNyZWF0ZUFkZHJlc3MoYmFzZUFkZHJlc3MpLnZlcnNpb247XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFNUWCBwdWIga2V5IGZyb20gYW4geHB1YlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB4cHViIGFuIHhwdWJcbiAqIEByZXR1cm5zIHtTdHJpbmd9IGEgY29tcHJlc3NlZCBTVFggcHViIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24geHB1YlRvU1RYUHVia2V5KHhwdWI6IHN0cmluZywgY29tcHJlc3NlZCA9IHRydWUpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IEtleVBhaXIoeyBwdWI6IHhwdWIgfSkuZ2V0S2V5cyhjb21wcmVzc2VkKS5wdWI7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYmFzZSBhZGRyZXNzIHBvcnRpb24gb2YgYW4gYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhZGRyZXNzIC0gYW4gYWRkcmVzc1xuICogQHJldHVybnMge1N0cmluZ30gLSB0aGUgYmFzZSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhZGRyZXNzRGV0YWlscyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICByZXR1cm4gYWRkcmVzc0RldGFpbHMuYWRkcmVzcztcbn1cblxuLyoqXG4gKiBDb21wYXJlcyBhbiBhZGRyZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3MgdG8gY2hlY2sgaWYgbWF0Y2hzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhZGRyZXNzIC0gYW4gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzIC0gYSBiYXNlIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lQmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBiYXNlQWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIHJldHVybiBnZXRCYXNlQWRkcmVzcyhhZGRyZXNzKSA9PT0gZ2V0QmFzZUFkZHJlc3MoYmFzZUFkZHJlc3MpO1xufVxuIl19
|
|
536
|
+
/**
|
|
537
|
+
* Function to get tokenName from list of sip10 tokens using contract details
|
|
538
|
+
*
|
|
539
|
+
* @param {String} contractAddress
|
|
540
|
+
* @param {String} contractName
|
|
541
|
+
* @returns {String|Undefined}
|
|
542
|
+
*/
|
|
543
|
+
function findTokenNameByContract(contractAddress, contractName) {
|
|
544
|
+
{
|
|
545
|
+
const tokenName = statics_1.coins
|
|
546
|
+
.filter((coin) => coin instanceof statics_1.Sip10Token && coin.assetId.includes(`${contractAddress}.${contractName}`))
|
|
547
|
+
.map((coin) => coin.name);
|
|
548
|
+
return tokenName ? tokenName[0] : undefined;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Function to get contractTokenName from list of sip10 tokens using contract details
|
|
553
|
+
*
|
|
554
|
+
* @param {String} contractAddress
|
|
555
|
+
* @param {String} contractName
|
|
556
|
+
* @returns {String|Undefined}
|
|
557
|
+
*/
|
|
558
|
+
function findContractTokenNameUsingContract(contractAddress, contractName) {
|
|
559
|
+
{
|
|
560
|
+
const sip10Token = statics_1.coins
|
|
561
|
+
.filter((coin) => coin instanceof statics_1.Sip10Token && coin.assetId.includes(`${contractAddress}.${contractName}`))
|
|
562
|
+
.map((coin) => coin);
|
|
563
|
+
return sip10Token ? sip10Token[0].assetId.split('::')[1] : undefined;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMENBLDBEQUVDO0FBUUQsMENBRUM7QUE0QkQsZ0RBVUM7QUFRRCxzQ0FHQztBQVFELHdDQUVDO0FBWUQsb0RBTUM7QUFZRCw0Q0FzQkM7QUFhRCw4Q0FRQztBQWtCRCxzREFZQztBQVFELGtDQVFDO0FBU0Qsd0RBRUM7QUFRRCxrRUFFQztBQVVELDhCQUlDO0FBV0QsNERBb0JDO0FBU0Qsa0NBT0M7QUFhRCwwQ0FjQztBQVFELDhDQTZCQztBQVFELDRDQVlDO0FBUUQsa0VBT0M7QUFRRCxrQ0FvQkM7QUFRRCw0REFtQkM7QUFFRCw4RUFvQkM7QUFRRCw4Q0FHQztBQVFELDBDQUVDO0FBUUQsd0NBR0M7QUFTRCw4Q0FLQztBQVNELDBEQU9DO0FBU0QsZ0ZBT0M7QUF4akJELHlDQUEyQjtBQUMzQixnRUFBcUM7QUFDckMscURBQThEO0FBQzlELHVEQXdCOEI7QUFDOUIsdURBQW9EO0FBQ3BELDBDQUE0QjtBQUM1QixtREFBbUg7QUFFbkgsd0JBQTRCO0FBQzVCLGlEQUE2RjtBQUM3RiwyQ0FBNEQ7QUFFNUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFZO0lBQ2xELE9BQU8sSUFBQSw2QkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sSUFBQSxnQ0FBYyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUywyQkFBMkIsQ0FDbEMsYUFBcUIsRUFDckIsUUFBeUIsRUFDekIsa0JBQXNDO0lBRXRDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FB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WUFBWSxvQkFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsZUFBZSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDM0csR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQUMsZUFBdUIsRUFBRSxZQUFvQjtJQUM5RixDQUFDO1FBQ0MsTUFBTSxVQUFVLEdBQUcsZUFBSzthQUNyQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxvQkFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsZUFBZSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDM0csR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFrQixDQUFDLENBQUM7UUFDckMsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1cmwgZnJvbSAndXJsJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGJ1ZmZlclRvSGV4LCBzdHJpcEhleFByZWZpeCB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQge1xuICBhZGRyZXNzRnJvbVB1YmxpY0tleXMsXG4gIGFkZHJlc3NGcm9tVmVyc2lvbkhhc2gsXG4gIEFkZHJlc3NIYXNoTW9kZSxcbiAgYWRkcmVzc0hhc2hNb2RlVG9WZXJzaW9uLFxuICBhZGRyZXNzVG9TdHJpbmcsXG4gIEFkZHJlc3NWZXJzaW9uLFxuICBCdWZmZXJSZWFkZXIsXG4gIENsYXJpdHlUeXBlLFxuICBDbGFyaXR5VmFsdWUsXG4gIGNyZWF0ZUFkZHJlc3MsXG4gIGNyZWF0ZU1lbW9TdHJpbmcsXG4gIGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsXG4gIGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXksXG4gIGNyZWF0ZVN0YWNrc1B1YmxpY0tleSxcbiAgY3ZUb1N0cmluZyxcbiAgY3ZUb1ZhbHVlLFxuICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLFxuICBQdWJLZXlFbmNvZGluZyxcbiAgcHVibGljS2V5RnJvbVNpZ25hdHVyZSxcbiAgc2lnbldpdGhLZXksXG4gIFN0YWNrc1RyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblZlcnNpb24sXG4gIHZhbGlkYXRlU3RhY2tzQWRkcmVzcyxcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VjcDI1NmsxIH0gZnJvbSAnQG5vYmxlL2N1cnZlcy9zZWNwMjU2azEnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIGlzVmFsaWRYcHJ2LCBpc1ZhbGlkWHB1YiwgU2lnbmluZ0Vycm9yLCBVdGlsc0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWRkcmVzc0RldGFpbHMsIFNlbmRQYXJhbXMsIFRva2VuVHJhbnNmZXJQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcbmltcG9ydCB7IGNvaW5zLCBTaXAxMFRva2VuLCBTdGFja3NOZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVkFMSURfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogRW5jb2RlcyBhIGJ1ZmZlciBhcyBhIFwiMHhcIiBwcmVmaXhlZCBsb3dlci1jYXNlIGhleCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmYgLSBhIGJ1ZmZlciB3aXRoIGEgaGV4YWRlY2ltYWwgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcHJlZml4ZWQgd2l0aCBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRvSGV4UHJlZml4U3RyaW5nKGJ1ZmY6IEJ1ZmZlcik6IHN0cmluZyB7XG4gIHJldHVybiBidWZmZXJUb0hleChidWZmKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIFwiMHhcIiBwcmVmaXggZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLCBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoZXggLSBhIGhleGFkZWNpbWFsIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nIHdpdGhvdXQgYSBsZWFkaW5nIFwiMHhcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSGV4UHJlZml4KGhleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cmlwSGV4UHJlZml4KGhleCk7XG59XG5cbi8qKlxuICogR2V0IHN0YWNrcyBhZGRyZXNzIGZyb20gcHVibGljIGtleSBoYXNoXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IHB1YmxpY0tleUhhc2ggLSBoYXNoIG9mIHB1YmxpYyBrZXlcbiAqIEBwYXJhbSB7QWRkcmVzc0hhc2hNb2RlfSBoYXNoTW9kZSAtIGhhc2ggbW9kZVxuICogQHBhcmFtIHtUcmFuc2FjdGlvblZlcnNpb259IHRyYW5zYWN0aW9uVmVyc2lvbiAtIHR4IHZlcnNpb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9IHN0YWNrcyBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGdldEFkZHJlc3NGcm9tUHVibGljS2V5SGFzaChcbiAgcHVibGljS2V5SGFzaDogQnVmZmVyLFxuICBoYXNoTW9kZTogQWRkcmVzc0hhc2hNb2RlLFxuICB0cmFuc2FjdGlvblZlcnNpb246IFRyYW5zYWN0aW9uVmVyc2lvblxuKTogc3RyaW5nIHtcbiAgaWYgKHB1YmxpY0tleUhhc2gubGVuZ3RoICE9PSAyMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgMjAtYnl0ZSBwdWJrZXloYXNoJyk7XG4gIH1cblxuICBjb25zdCBhZGRyVmVyID0gYWRkcmVzc0hhc2hNb2RlVG9WZXJzaW9uKGhhc2hNb2RlLCB0cmFuc2FjdGlvblZlcnNpb24pO1xuICBjb25zdCBhZGRyID0gYWRkcmVzc0Zyb21WZXJzaW9uSGFzaChhZGRyVmVyLCBwdWJsaWNLZXlIYXNoLnRvU3RyaW5nKCdoZXgnKSk7XG4gIGNvbnN0IGFkZHJTdHJpbmcgPSBhZGRyZXNzVG9TdHJpbmcoYWRkcik7XG4gIHJldHVybiBhZGRyU3RyaW5nO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0eFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhTZW5kZXJBZGRyZXNzKHR4OiBTdGFja3NUcmFuc2FjdGlvbik6IHN0cmluZyB7XG4gIGlmICh0eC5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uICE9PSBudWxsICYmIHR4LmF1dGguc3BlbmRpbmdDb25kaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHNwZW5kaW5nQ29uZGl0aW9uID0gdHguYXV0aC5zcGVuZGluZ0NvbmRpdGlvbjtcbiAgICBjb25zdCB0eFNlbmRlciA9IGdldEFkZHJlc3NGcm9tUHVibGljS2V5SGFzaChcbiAgICAgIEJ1ZmZlci5mcm9tKHNwZW5kaW5nQ29uZGl0aW9uLnNpZ25lciwgJ2hleCcpLFxuICAgICAgc3BlbmRpbmdDb25kaXRpb24uaGFzaE1vZGUgYXMgbnVtYmVyLFxuICAgICAgdHgudmVyc2lvblxuICAgICk7XG4gICAgcmV0dXJuIHR4U2VuZGVyO1xuICB9IGVsc2UgdGhyb3cgbmV3IEVycm9yKCdzcGVuZGluZ0NvbmRpdGlvbiBzaG91bGQgbm90IGJlIG51bGwnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnQgbnVtYmVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCAtIHRoZSBzdHJpbmcgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFtb3VudChhbW91bnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBiaWdOdW1iZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKGFtb3VudCk7XG4gIHJldHVybiBiaWdOdW1iZXJBbW91bnQuaXNJbnRlZ2VyKCkgJiYgYmlnTnVtYmVyQW1vdW50LmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gdGhlIGFkZHJlc3MgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdGVTdGFja3NBZGRyZXNzKGFkZHJlc3MpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIHRyYW5zYWN0aW9uIGlkIG9yIG5vdC5cbiAqXG4gKiBBIHZhbGlkIHRyYW5zYWN0aW9uIGlkIGlzIGEgU0hBLTUxMi8yNTYgaGFzaCBvZiBhIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb247IHNlZVxuICogdGhlIHR4aWRGcm9tRGF0YSBmdW5jdGlvbiBpbiBAc3RhY2tzL3RyYW5zYWN0aW9uOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2Jsb2Nrc3RhY2svc3RhY2tzLmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3RyYW5zYWN0aW9ucy9zcmMvdXRpbHMudHMjTDk3XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR4SWQgLSB0aGUgdHJhbnNhY3Rpb24gaWQgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHhJZC5sZW5ndGggIT09IDY0ICYmIHR4SWQubGVuZ3RoICE9PSA2NikgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBub1ByZWZpeCA9IHJlbW92ZUhleFByZWZpeCh0eElkKTtcbiAgaWYgKG5vUHJlZml4Lmxlbmd0aCAhPT0gNjQpIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gYWxsSGV4Q2hhcnMobm9QcmVmaXgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIHB1YmxpYyBrZXkgb3JcbiAqIGV4dGVuZGVkIHB1YmxpYyBrZXkuXG4gKlxuICogVGhlIGtleSBmb3JtYXQgaXMgZG9jdW1lbnRlZCBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrc2dvdi9zaXBzL2Jsb2IvbWFpbi9zaXBzL3NpcC0wMDUvc2lwLTAwNS1ibG9ja3MtYW5kLXRyYW5zYWN0aW9ucy5tZCN0cmFuc2FjdGlvbi1hdXRob3JpemF0aW9uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YiAtIHRoZSAgcHVibGljIGtleSB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoaXNWYWxpZFhwdWIocHViKSkgcmV0dXJuIHRydWU7XG5cbiAgaWYgKHB1Yi5sZW5ndGggIT09IDY2ICYmIHB1Yi5sZW5ndGggIT09IDEzMCkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGZpcnN0Qnl0ZSA9IHB1Yi5zbGljZSgwLCAyKTtcblxuICAvLyB1bmNvbXByZXNzZWQgcHVibGljIGtleVxuICBpZiAocHViLmxlbmd0aCA9PT0gMTMwICYmIGZpcnN0Qnl0ZSAhPT0gJzA0JykgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIGNvbXByZXNzZWQgcHVibGljIGtleVxuICBpZiAocHViLmxlbmd0aCA9PT0gNjYgJiYgZmlyc3RCeXRlICE9PSAnMDInICYmIGZpcnN0Qnl0ZSAhPT0gJzAzJykgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICghYWxsSGV4Q2hhcnMocHViKSkgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIHZhbGlkYXRlIHRoZSBwdWJsaWMga2V5XG4gIHRyeSB7XG4gICAgc2VjcDI1NmsxLlByb2plY3RpdmVQb2ludC5mcm9tSGV4KHB1Yik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCBwcml2YXRlIGtleSwgb3IgZXh0ZW5kZWRcbiAqIHByaXZhdGUga2V5LlxuICpcbiAqIFRoZSBwcm90b2NvbCBrZXkgZm9ybWF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgQHN0YWNrcy90cmFuc2FjdGlvbnMgbnBtIHBhY2thZ2UsIGluIHRoZVxuICogY3JlYXRlU3RhY2tzUHJpdmF0ZUtleSBmdW5jdGlvbjpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibG9ja3N0YWNrL3N0YWNrcy5qcy9ibG9iL21hc3Rlci9wYWNrYWdlcy90cmFuc2FjdGlvbnMvc3JjL2tleXMudHMjTDEyNVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgLSB0aGUgcHJpdmF0ZSBrZXkgKG9yIGV4dGVuZGVkIHByaXZhdGUga2V5KSB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzVmFsaWRYcHJ2KHBydikpIHJldHVybiB0cnVlO1xuXG4gIGlmIChwcnYubGVuZ3RoICE9PSA2NCAmJiBwcnYubGVuZ3RoICE9PSA2NikgcmV0dXJuIGZhbHNlO1xuXG4gIGlmIChwcnYubGVuZ3RoID09PSA2NiAmJiBwcnYuc2xpY2UoNjQpICE9PSAnMDEnKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGFsbEhleENoYXJzKHBydik7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgY29tcG9zZWQgb2YgaGV4IGNoYXJzIG9ubHlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWF5YmUgLSB0aGUgIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5mdW5jdGlvbiBhbGxIZXhDaGFycyhtYXliZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXihbMC05YS1mXSkrJC9pLnRlc3QobWF5YmUpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiByYXcgdHJhbnNhY3Rpb24gY2FuIGJlIGRlc2VyaWFsaXplZFxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gcmF3VHJhbnNhY3Rpb24gLSB0cmFuc2FjdGlvbiBpbiByYXcgaGV4IGZvcm1hdFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHVua25vd24pOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBpZiAodHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgZGVzZXJpYWxpemVUcmFuc2FjdGlvbihCdWZmZXJSZWFkZXIuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShyZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pLCAnaGV4JykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIG1lbW8gc3RyaW5nIGlzIHZhbGlkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lbW8gLSB0aGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjcmVhdGVNZW1vU3RyaW5nKG1lbW8pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGZvciB2YWxpZCBjb250cmFjdCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHIgLSBjb250cmFjdCBkZXBsb3llciBhZGRyZXNzXG4gKiBAcGFyYW0ge0JpdGdvU3RhY2tzTmV0d29ya30gbmV0d29yayAtIG5ldHdvcmsgb2JqZWN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRDb250cmFjdEFkZHJlc3MoYWRkcjogc3RyaW5nLCBuZXR3b3JrOiBCaXRnb1N0YWNrc05ldHdvcmspOiBib29sZWFuIHtcbiAgcmV0dXJuIGFkZHIgPT09IG5ldHdvcmsuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyB8fCBhZGRyID09PSBuZXR3b3JrLnNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgbmFtZSBpcyBvbmUgb2YgdmFsaWQgY29udHJhY3QgbmFtZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIGZ1bmN0aW9uIG5hbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQ29udHJhY3RGdW5jdGlvbk5hbWUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUy5pbmNsdWRlcyhuYW1lKTtcbn1cblxuLyoqXG4gKiBVbnBhZHMgYSBtZW1vIHN0cmluZywgc28gaXQgcmVtb3ZlcyBudWxscy5cbiAqXG4gKiBVc2VmdWwgd2hlbiBtZW1vIGlzIGZpbGwgdXAgdGhlIGxlbmd0aC4gUmVzdWx0IGlzIGJlY29tZXMgcmVhZGFibGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lbW8gLSB0aGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bnBhZE1lbW8obWVtbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZW5kID0gbWVtby5pbmRleE9mKCdcXHUwMDAwJyk7XG4gIGlmIChlbmQgPCAwKSByZXR1cm4gbWVtbztcbiAgcmV0dXJuIG1lbW8uc2xpY2UoMCwgZW5kKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIG11bHRpc2lnIGFkZHJlc3MgZnJvbSBtdWx0aXBsZSBTVFggcHVibGljIGtleXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwdWJLZXlzIC0gbGlzdCBvZiBwdWJsaWMga2V5cyBhcyBzdHJpbmdzXG4gKiBAcGFyYW0ge0FkZHJlc3NWZXJzaW9ufSBhZGRyZXNzVmVyc2lvbiAtIE1haW5uZXRNdWx0aVNpZywgVGVzdG5ldE11bHRpU2lnXG4gKiBAcGFyYW0ge0FkZHJlc3NIYXNoTW9kZX0gYWRkcmVzc0hhc2hNb2RlIC0gU2VyaWFsaXplUDJTSFxuICogQHBhcmFtIHtudW1iZXJ9IFtzaWduYXR1cmVzUmVxdWlyZWRdIC0gbnVtYmVyIG9mIHNpZ25hdHVyZXMgcmVxdWlyZWQsIGRlZmF1bHQgdmFsdWUgaXRzIDJcbiAqIEByZXR1cm5zIHthZGRyZXNzOiBzdHJpbmcsIGhhc2gxNjA6IHN0cmluZ30gLSBhIG11bHRpc2lnIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyhcbiAgcHViS2V5czogc3RyaW5nW10sXG4gIGFkZHJlc3NWZXJzaW9uOiBBZGRyZXNzVmVyc2lvbiA9IEFkZHJlc3NWZXJzaW9uLk1haW5uZXRNdWx0aVNpZyxcbiAgYWRkcmVzc0hhc2hNb2RlOiBBZGRyZXNzSGFzaE1vZGUgPSBBZGRyZXNzSGFzaE1vZGUuU2VyaWFsaXplUDJTSCxcbiAgc2lnbmF0dXJlc1JlcXVpcmVkID0gMlxuKTogeyBhZGRyZXNzOiBzdHJpbmc7IGhhc2gxNjA6IHN0cmluZyB9IHtcbiAgaWYgKHB1YktleXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG51bWJlciBvZiBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmICghcHViS2V5cy5ldmVyeShpc1ZhbGlkUHVibGljS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmIChzaWduYXR1cmVzUmVxdWlyZWQgPiBwdWJLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTnVtYmVyIG9mIHNpZ25hdHVyZXMgcmVxdWlyZWQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIFB1YmxpYyBLZXlzJyk7XG4gIH1cblxuICBjb25zdCBzdHhQdWJLZXlzID0gcHViS2V5cy5tYXAoY3JlYXRlU3RhY2tzUHVibGljS2V5KTtcbiAgY29uc3QgYWRkcmVzcyA9IGFkZHJlc3NGcm9tUHVibGljS2V5cyhhZGRyZXNzVmVyc2lvbiwgYWRkcmVzc0hhc2hNb2RlLCBzaWduYXR1cmVzUmVxdWlyZWQsIHN0eFB1YktleXMpO1xuXG4gIHJldHVybiB7IGFkZHJlc3M6IGFkZHJlc3NUb1N0cmluZyhhZGRyZXNzKSwgaGFzaDE2MDogYWRkcmVzcy5oYXNoMTYwIH07XG59XG5cbi8qKlxuICogc2lnbnMgYSBzdHJpbmcgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBrZXlQYWlyXG4gKiBAcGFyYW0gZGF0YSAgLSBtZXNzYWdlIHRvIGJlIHNpZ25lZFxuICogQHJldHVybnMgc2lnbmVkIG1lc3NhZ2Ugc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduTWVzc2FnZShrZXlQYWlyOiBLZXlQYWlyLCBkYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwcnYgPSBrZXlQYWlyLmdldEtleXMoKS5wcnY7XG4gIGlmIChwcnYpIHtcbiAgICByZXR1cm4gc2lnbldpdGhLZXkoY3JlYXRlU3RhY2tzUHJpdmF0ZUtleShwcnYpLCBkYXRhKS5kYXRhO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWVzIGEgc2lnbmVkIG1lc3NhZ2VcbiAqXG4gKiBUaGUgc2lnbmF0dXJlIG11c3QgYmUgMTMwIGJ5dGVzIGxvbmcgLS0gc2VlIFJFQ09WRVJBQkxFX0VDRFNBX1NJR19MRU5HVEhfQllURVNcbiAqIGluIEBzdGFja3MvdHJhbnNhY3Rpb25zL3NyYy9jb25zdGFudHMudHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIG1lc3NhZ2UgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgLSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gKiBAcGFyYW0ge3N0cmluZ30gcHVibGljS2V5IC0gcHVibGljIGtleSBhcyBoZXggc3RyaW5nIHVzZWQgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHZlcmlmaWNhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkocHVibGljS2V5KSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoc2lnbmF0dXJlLmxlbmd0aCAhPT0gMTMwKSByZXR1cm4gZmFsc2U7XG4gIGlmICghYWxsSGV4Q2hhcnMoc2lnbmF0dXJlKSkgdGhyb3cgbmV3IFV0aWxzRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlIGlucHV0IHRvIHZlcmlmeVNpZ25hdHVyZScpO1xuICBpZiAoXy5pc0VtcHR5KG1lc3NhZ2UpKSB0aHJvdyBuZXcgVXRpbHNFcnJvcignQ2Fubm90IHZlcmlmeSBlbXB0eSBtZXNzYWdlcycpO1xuXG4gIC8vIHByb3ZpZGVkIHB1YmxpY0tleSBjYW4gYmUgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWRcbiAgY29uc3Qga2V5RW5jb2RpbmcgPSBwdWJsaWNLZXkubGVuZ3RoID09PSA2NiA/IFB1YktleUVuY29kaW5nLkNvbXByZXNzZWQgOiBQdWJLZXlFbmNvZGluZy5VbmNvbXByZXNzZWQ7XG5cbiAgY29uc3QgbWVzc2FnZVNpZyA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoc2lnbmF0dXJlKTtcblxuICBjb25zdCBmb3VuZEtleSA9IHB1YmxpY0tleUZyb21TaWduYXR1cmUobWVzc2FnZSwgbWVzc2FnZVNpZywga2V5RW5jb2RpbmcpO1xuXG4gIHJldHVybiBmb3VuZEtleSA9PT0gcHVibGljS2V5O1xufVxuXG4vKipcbiAqIFByb2Nlc3MgYWRkcmVzcyBpbnRvIGFkZHJlc3MgYW5kIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB0byBwcm9jZXNzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBvYmplY3QgY29udGFpbmluZyBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzRGV0YWlscyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gdXJsLnBhcnNlKGFkZHJlc3MpO1xuICBjb25zdCBxdWVyeURldGFpbHMgPSBhZGRyZXNzRGV0YWlscy5xdWVyeSA/IG5ldyBVUkxTZWFyY2hQYXJhbXMoYWRkcmVzc0RldGFpbHMucXVlcnkpIDogdW5kZWZpbmVkO1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IGFkZHJlc3NEZXRhaWxzLnBhdGhuYW1lIGFzIHN0cmluZztcbiAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhiYXNlQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkXG4gIGlmIChiYXNlQWRkcmVzcyA9PT0gYWRkcmVzcykge1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgbWVtb0lkOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGlmICghcXVlcnlEZXRhaWxzIHx8IF8uaXNOaWwocXVlcnlEZXRhaWxzLmdldCgnbWVtb0lkJykpKSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG1vcmUgcHJvcGVydGllcywgdGhlIHF1ZXJ5IGRldGFpbHMgbmVlZCB0byBjb250YWluIHRoZSBtZW1vIGlkIHByb3BlcnR5XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWQ6ICR7YWRkcmVzc31gKTtcbiAgfVxuICBjb25zdCBtZW1vSWQgPSBxdWVyeURldGFpbHMuZ2V0KCdtZW1vSWQnKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGludE1lbW9JZCA9IHBhcnNlSW50KG1lbW9JZCwgMTApO1xuICBpZiAoaXNOYU4oaW50TWVtb0lkKSB8fCBpbnRNZW1vSWQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG1lbW8gaWQ6ICR7bWVtb0lkfWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiBiYXNlQWRkcmVzcyxcbiAgICBtZW1vSWQsXG4gIH07XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHJldHVybiBhZGRyZXNzIHdpdGggYXBwZW5kZWQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7QWRkcmVzc0RldGFpbHN9IGFkZHJlc3NEZXRhaWxzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBhZGRyZXNzIHdpdGggbWVtbyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3MsIG1lbW9JZCB9OiBBZGRyZXNzRGV0YWlscyk6IHN0cmluZyB7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKG1lbW9JZCkpIHtcbiAgICBjb25zdCBpbnRNZW1vSWQgPSBwYXJzZUludChtZW1vSWQsIDEwKTtcbiAgICBpZiAoaXNOYU4oaW50TWVtb0lkKSB8fCBpbnRNZW1vSWQgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbWVtbyBpZDogJHttZW1vSWR9YCk7XG4gICAgfVxuICAgIHJldHVybiBgJHthZGRyZXNzfT9tZW1vSWQ9JHttZW1vSWR9YDtcbiAgfVxuICByZXR1cm4gYWRkcmVzcztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCBhZGRyZXNzIHdpdGggbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIGFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaXMgaW5wdXQgaXMgYSB2YWxpZCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzc1dpdGhQYXltZW50SWQoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgICByZXR1cm4gYWRkcmVzcyA9PT0gbm9ybWFsaXplQWRkcmVzcyhhZGRyZXNzRGV0YWlscyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGNsYXJpdHkgdmFsdWUgaW5wdXRcbiAqXG4gKiBAcGFyYW0ge0NsYXJpdHlWYWx1ZX0gY3YgY2xhcml0eSB2YWx1ZSBmdW5jdGlvbiBhcmd1bWVudFxuICogQHJldHVybnMge1N0cmluZ30gc3RyaW5naWZpZWQgY2xhcml0eSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5Q3YoY3Y6IENsYXJpdHlWYWx1ZSk6IGFueSB7XG4gIHN3aXRjaCAoY3YudHlwZSkge1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuSW50OlxuICAgIGNhc2UgQ2xhcml0eVR5cGUuVUludDpcbiAgICAgIHJldHVybiB7IHR5cGU6IGN2LnR5cGUsIHZhbHVlOiBjdi52YWx1ZS50b1N0cmluZygpIH07XG4gICAgY2FzZSBDbGFyaXR5VHlwZS5PcHRpb25hbFNvbWU6XG4gICAgICByZXR1cm4geyB0eXBlOiBjdi50eXBlLCB2YWx1ZTogc3RyaW5naWZ5Q3YoY3YudmFsdWUpIH07XG4gICAgY2FzZSBDbGFyaXR5VHlwZS5UdXBsZTpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IGN2LnR5cGUsXG4gICAgICAgIGRhdGE6IF8ubWFwVmFsdWVzKGN2LmRhdGEsICh2YWx1ZSkgPT4gc3RyaW5naWZ5Q3YodmFsdWUpKSxcbiAgICAgIH07XG4gICAgY2FzZSBDbGFyaXR5VHlwZS5MaXN0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogY3YudHlwZSxcbiAgICAgICAgbGlzdDogY3YubGlzdC5tYXAoc3RyaW5naWZ5Q3YpLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGN2O1xuICB9XG59XG5cbi8qKlxuICogUGFyc2UgZnVuY3Rpb25BcmdzIGludG8gc2VuZCBwYXJhbXMgZm9yIHNlbmQtbWFueS1tZW1vIGNvbnRyYWN0IGNhbGxzXG4gKlxuICogQHBhcmFtIHtDbGFyaXR5VmFsdWVbXX0gYXJncyBmdW5jdGlvbkFyZ3MgZnJvbSBhIGNvbnRyYWN0IGNhbGwgcGF5bG9hZFxuICogQHJldHVybnMge1NlbmRQYXJhbXNbXX0gQW4gYXJyYXkgb2Ygc2VuZFBhcmFtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnVuY3Rpb25BcmdzVG9TZW5kUGFyYW1zKGFyZ3M6IENsYXJpdHlWYWx1ZVtdKTogU2VuZFBhcmFtc1tdIHtcbiAgaWYgKGFyZ3MubGVuZ3RoICE9PSAxIHx8IGFyZ3NbMF0udHlwZSAhPT0gQ2xhcml0eVR5cGUuTGlzdCkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcImZ1bmN0aW9uIGFyZ3MgZG9uJ3QgbWF0Y2ggc2VuZC1tYW55LW1lbW8gdHlwZSBkZWNsYXJhdGlvblwiKTtcbiAgfVxuICByZXR1cm4gYXJnc1swXS5saXN0Lm1hcCgodHVwbGUpID0+IHtcbiAgICBpZiAoXG4gICAgICB0dXBsZS50eXBlICE9PSBDbGFyaXR5VHlwZS5UdXBsZSB8fFxuICAgICAgdHVwbGUuZGF0YS50bz8udHlwZSAhPT0gQ2xhcml0eVR5cGUuUHJpbmNpcGFsU3RhbmRhcmQgfHxcbiAgICAgIHR1cGxlLmRhdGEudXN0eD8udHlwZSAhPT0gQ2xhcml0eVR5cGUuVUludCB8fFxuICAgICAgdHVwbGUuZGF0YS5tZW1vPy50eXBlICE9PSBDbGFyaXR5VHlwZS5CdWZmZXJcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcImZ1bmN0aW9uIGFyZ3MgZG9uJ3QgbWF0Y2ggc2VuZC1tYW55LW1lbW8gdHlwZSBkZWNsYXJhdGlvblwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IGN2VG9TdHJpbmcodHVwbGUuZGF0YS50byksXG4gICAgICBhbW91bnQ6IGN2VG9WYWx1ZSh0dXBsZS5kYXRhLnVzdHgsIHRydWUpLFxuICAgICAgbWVtbzogdHVwbGUuZGF0YS5tZW1vLmJ1ZmZlci50b1N0cmluZygnYXNjaWknKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZ1bmN0aW9uQXJnc1RvVG9rZW5UcmFuc2ZlclBhcmFtcyhhcmdzOiBDbGFyaXR5VmFsdWVbXSk6IFRva2VuVHJhbnNmZXJQYXJhbXMge1xuICBpZiAoYXJncy5sZW5ndGggPCAzKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFwiZnVuY3Rpb24gYXJncyBkb24ndCBtYXRjaCB0b2tlbiB0cmFuc2ZlciBkZWNsYXJhdGlvblwiKTtcbiAgfVxuICBpZiAoXG4gICAgYXJnc1swXS50eXBlICE9PSBDbGFyaXR5VHlwZS5VSW50IHx8XG4gICAgYXJnc1sxXS50eXBlICE9PSBDbGFyaXR5VHlwZS5QcmluY2lwYWxTdGFuZGFyZCB8fFxuICAgIGFyZ3NbMl0udHlwZSAhPT0gQ2xhcml0eVR5cGUuUHJpbmNpcGFsU3RhbmRhcmRcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFwiZnVuY3Rpb24gYXJncyBkb24ndCBtYXRjaCB0b2tlbiB0cmFuc2ZlciBkZWNsYXJhdGlvblwiKTtcbiAgfVxuICBjb25zdCB0b2tlblRyYW5zZmVyUGFyYW1zID0ge1xuICAgIGFtb3VudDogY3ZUb1ZhbHVlKGFyZ3NbMF0sIHRydWUpLFxuICAgIHNlbmRlcjogY3ZUb1N0cmluZyhhcmdzWzFdKSxcbiAgICByZWNpcGllbnQ6IGN2VG9TdHJpbmcoYXJnc1syXSksXG4gIH07XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gNCAmJiBhcmdzWzNdLnR5cGUgPT09IENsYXJpdHlUeXBlLkJ1ZmZlcikge1xuICAgIHRva2VuVHJhbnNmZXJQYXJhbXNbJ21lbW8nXSA9IGFyZ3NbM10uYnVmZmVyLnRvU3RyaW5nKCdhc2NpaScpO1xuICB9XG4gIHJldHVybiB0b2tlblRyYW5zZmVyUGFyYW1zO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHZlcnNpb24gb2YgYW4gYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIHdpdGggb3Igd2l0aG91dCB0aGUgbWVtb0lkXG4gKiBAcmV0dXJucyB7QWRkcmVzc1ZlcnNpb259IEEgbnVtYmVyIHRoYXQgcmVwcmVzZW50IHRoZSBBZGRyZXNzIFZlcnNpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NWZXJzaW9uKGFkZHJlc3M6IHN0cmluZyk6IEFkZHJlc3NWZXJzaW9uIHtcbiAgY29uc3QgYmFzZUFkZHJlc3MgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKS5hZGRyZXNzO1xuICByZXR1cm4gY3JlYXRlQWRkcmVzcyhiYXNlQWRkcmVzcykudmVyc2lvbjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgU1RYIHB1YiBrZXkgZnJvbSBhbiB4cHViXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHhwdWIgYW4geHB1YlxuICogQHJldHVybnMge1N0cmluZ30gYSBjb21wcmVzc2VkIFNUWCBwdWIga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB4cHViVG9TVFhQdWJrZXkoeHB1Yjogc3RyaW5nLCBjb21wcmVzc2VkID0gdHJ1ZSk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgS2V5UGFpcih7IHB1YjogeHB1YiB9KS5nZXRLZXlzKGNvbXByZXNzZWQpLnB1Yjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3MgcG9ydGlvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3MgLSBhbiBhZGRyZXNzXG4gKiBAcmV0dXJucyB7U3RyaW5nfSAtIHRoZSBiYXNlIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gIHJldHVybiBhZGRyZXNzRGV0YWlscy5hZGRyZXNzO1xufVxuXG4vKipcbiAqIENvbXBhcmVzIGFuIGFkZHJlc3MgdG8gdGhlIGJhc2UgYWRkcmVzcyB0byBjaGVjayBpZiBtYXRjaHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3MgLSBhbiBhZGRyZXNzXG4gKiBAcGFyYW0ge1N0cmluZ30gYmFzZUFkZHJlc3MgLSBhIGJhc2UgYWRkcmVzc1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVCYXNlQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGJhc2VBZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFpc1ZhbGlkQWRkcmVzc1dpdGhQYXltZW50SWQoYWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgcmV0dXJuIGdldEJhc2VBZGRyZXNzKGFkZHJlc3MpID09PSBnZXRCYXNlQWRkcmVzcyhiYXNlQWRkcmVzcyk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZ2V0IHRva2VuTmFtZSBmcm9tIGxpc3Qgb2Ygc2lwMTAgdG9rZW5zIHVzaW5nIGNvbnRyYWN0IGRldGFpbHNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gY29udHJhY3RBZGRyZXNzXG4gKiBAcGFyYW0ge1N0cmluZ30gY29udHJhY3ROYW1lXG4gKiBAcmV0dXJucyB7U3RyaW5nfFVuZGVmaW5lZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUb2tlbk5hbWVCeUNvbnRyYWN0KGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLCBjb250cmFjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHtcbiAgICBjb25zdCB0b2tlbk5hbWUgPSBjb2luc1xuICAgICAgLmZpbHRlcigoY29pbikgPT4gY29pbiBpbnN0YW5jZW9mIFNpcDEwVG9rZW4gJiYgY29pbi5hc3NldElkLmluY2x1ZGVzKGAke2NvbnRyYWN0QWRkcmVzc30uJHtjb250cmFjdE5hbWV9YCkpXG4gICAgICAubWFwKChjb2luKSA9PiBjb2luLm5hbWUpO1xuICAgIHJldHVybiB0b2tlbk5hbWUgPyB0b2tlbk5hbWVbMF0gOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB0byBnZXQgY29udHJhY3RUb2tlbk5hbWUgZnJvbSBsaXN0IG9mIHNpcDEwIHRva2VucyB1c2luZyBjb250cmFjdCBkZXRhaWxzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGNvbnRyYWN0QWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGNvbnRyYWN0TmFtZVxuICogQHJldHVybnMge1N0cmluZ3xVbmRlZmluZWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29udHJhY3RUb2tlbk5hbWVVc2luZ0NvbnRyYWN0KGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLCBjb250cmFjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHtcbiAgICBjb25zdCBzaXAxMFRva2VuID0gY29pbnNcbiAgICAgIC5maWx0ZXIoKGNvaW4pID0+IGNvaW4gaW5zdGFuY2VvZiBTaXAxMFRva2VuICYmIGNvaW4uYXNzZXRJZC5pbmNsdWRlcyhgJHtjb250cmFjdEFkZHJlc3N9LiR7Y29udHJhY3ROYW1lfWApKVxuICAgICAgLm1hcCgoY29pbikgPT4gY29pbiBhcyBTaXAxMFRva2VuKTtcbiAgICByZXR1cm4gc2lwMTBUb2tlbiA/IHNpcDEwVG9rZW5bMF0uYXNzZXRJZC5zcGxpdCgnOjonKVsxXSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
package/dist/src/sip10Token.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BitGoBase, CoinConstructor, NamedCoinConstructor } from '@bitgo-beta/sdk-core';
|
|
2
|
-
import { Sip10TokenConfig } from '@bitgo-beta/statics';
|
|
1
|
+
import { BitGoBase, CoinConstructor, NamedCoinConstructor, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as StaticsBaseCoin, Sip10TokenConfig } from '@bitgo-beta/statics';
|
|
3
3
|
import { Stx } from './stx';
|
|
4
|
+
import { TransactionBuilder } from './lib/transactionBuilder';
|
|
4
5
|
export declare class Sip10Token extends Stx {
|
|
5
6
|
readonly tokenConfig: Sip10TokenConfig;
|
|
6
7
|
constructor(bitgo: BitGoBase, tokenConfig: Sip10TokenConfig);
|
|
@@ -15,5 +16,7 @@ export declare class Sip10Token extends Stx {
|
|
|
15
16
|
getBaseChain(): string;
|
|
16
17
|
getFullName(): string;
|
|
17
18
|
getBaseFactor(): number;
|
|
19
|
+
getTransaction(coinConfig: Readonly<StaticsBaseCoin>): TransactionBuilder;
|
|
20
|
+
verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
|
|
18
21
|
}
|
|
19
22
|
//# sourceMappingURL=sip10Token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sip10Token.d.ts","sourceRoot":"","sources":["../../src/sip10Token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sip10Token.d.ts","sourceRoot":"","sources":["../../src/sip10Token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAsB,gBAAgB,EAAU,MAAM,qBAAqB,CAAC;AAEhH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,qBAAa,UAAW,SAAQ,GAAG;IACjC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;gBAElC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAM3D,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE,MAAM,CAAC,uBAAuB,IAAI,oBAAoB,EAAE;IASxD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAIvB,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,kBAAkB;IAInE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;CAuD5E"}
|
package/dist/src/sip10Token.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Sip10Token = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
4
9
|
const statics_1 = require("@bitgo-beta/statics");
|
|
5
10
|
const stx_1 = require("./stx");
|
|
11
|
+
const lib_1 = require("./lib");
|
|
6
12
|
class Sip10Token extends stx_1.Stx {
|
|
7
13
|
constructor(bitgo, tokenConfig) {
|
|
8
14
|
const staticsCoin = tokenConfig.network === statics_1.NetworkType.MAINNET ? statics_1.coins.get('stx') : statics_1.coins.get('tstx');
|
|
@@ -47,6 +53,62 @@ class Sip10Token extends stx_1.Stx {
|
|
|
47
53
|
getBaseFactor() {
|
|
48
54
|
return Math.pow(10, this.tokenConfig.decimalPlaces);
|
|
49
55
|
}
|
|
56
|
+
getTransaction(coinConfig) {
|
|
57
|
+
return new lib_1.TransactionBuilderFactory(coinConfig).getFungibleTokenTransferBuilder();
|
|
58
|
+
}
|
|
59
|
+
async verifyTransaction(params) {
|
|
60
|
+
const { txPrebuild: txPrebuild, txParams: txParams } = params;
|
|
61
|
+
if (Array.isArray(txParams.recipients) && txParams.recipients.length > 1) {
|
|
62
|
+
throw new Error(`${this.getChain()} doesn't support sending to more than 1 destination address within a single transaction. Try again, using only a single recipient.`);
|
|
63
|
+
}
|
|
64
|
+
const rawTx = txPrebuild.txHex;
|
|
65
|
+
if (!rawTx) {
|
|
66
|
+
throw new Error('missing required tx prebuild property txHex');
|
|
67
|
+
}
|
|
68
|
+
const coinConfig = statics_1.coins.get(this.getChain());
|
|
69
|
+
const transaction = this.getTransaction(coinConfig);
|
|
70
|
+
transaction.from(rawTx);
|
|
71
|
+
const explainedTx = await this.explainTransaction({ txHex: rawTx, feeInfo: { fee: '' } });
|
|
72
|
+
if (txParams.recipients !== undefined && explainedTx) {
|
|
73
|
+
const filteredRecipients = txParams.recipients?.map((recipient) => {
|
|
74
|
+
const recipientData = {
|
|
75
|
+
address: recipient.address,
|
|
76
|
+
amount: BigInt(recipient.amount),
|
|
77
|
+
};
|
|
78
|
+
if (recipient.memo) {
|
|
79
|
+
recipientData['memo'] = recipient.memo;
|
|
80
|
+
}
|
|
81
|
+
if (recipient.tokenName) {
|
|
82
|
+
recipientData['tokenName'] = recipient.tokenName;
|
|
83
|
+
}
|
|
84
|
+
return recipientData;
|
|
85
|
+
});
|
|
86
|
+
const filteredOutputs = explainedTx.outputs.map((output) => {
|
|
87
|
+
const recipientData = {
|
|
88
|
+
address: output.address,
|
|
89
|
+
amount: BigInt(output.amount),
|
|
90
|
+
};
|
|
91
|
+
if (output.memo) {
|
|
92
|
+
recipientData['memo'] = output.memo;
|
|
93
|
+
}
|
|
94
|
+
if (output.tokenName) {
|
|
95
|
+
recipientData['tokenName'] = output.tokenName;
|
|
96
|
+
}
|
|
97
|
+
return recipientData;
|
|
98
|
+
});
|
|
99
|
+
if (!lodash_1.default.isEqual(filteredOutputs, filteredRecipients)) {
|
|
100
|
+
throw new Error('Tx outputs does not match with expected txParams recipients');
|
|
101
|
+
}
|
|
102
|
+
let totalAmount = new bignumber_js_1.default(0);
|
|
103
|
+
for (const recipients of txParams.recipients) {
|
|
104
|
+
totalAmount = totalAmount.plus(recipients.amount);
|
|
105
|
+
}
|
|
106
|
+
if (!totalAmount.isEqualTo(explainedTx.outputAmount)) {
|
|
107
|
+
throw new Error('Tx total amount does not match with expected total amount field');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
50
112
|
}
|
|
51
113
|
exports.Sip10Token = Sip10Token;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwMTBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaXAxMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlEQUFtRjtBQUNuRiwrQkFBNEI7QUFFNUIsTUFBYSxVQUFXLFNBQVEsU0FBRztJQUdqQyxZQUFZLEtBQWdCLEVBQUUsV0FBNkI7UUFDekQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sS0FBSyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RyxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBd0I7UUFDcEQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QjtRQUM1QixNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqRixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBekRELGdDQXlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBOZXR3b3JrVHlwZSwgU2lwMTBUb2tlbkNvbmZpZywgdG9rZW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBTdHggfSBmcm9tICcuL3N0eCc7XG5cbmV4cG9ydCBjbGFzcyBTaXAxMFRva2VuIGV4dGVuZHMgU3R4IHtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuQ29uZmlnOiBTaXAxMFRva2VuQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHRva2VuQ29uZmlnOiBTaXAxMFRva2VuQ29uZmlnKSB7XG4gICAgY29uc3Qgc3RhdGljc0NvaW4gPSB0b2tlbkNvbmZpZy5uZXR3b3JrID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gY29pbnMuZ2V0KCdzdHgnKSA6IGNvaW5zLmdldCgndHN0eCcpO1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gICAgdGhpcy50b2tlbkNvbmZpZyA9IHRva2VuQ29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBTaXAxMFRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gKGJpdGdvOiBCaXRHb0Jhc2UpID0+IG5ldyBTaXAxMFRva2VuKGJpdGdvLCBjb25maWcpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCk6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10ge1xuICAgIGNvbnN0IHRva2Vuc0N0b3JzOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdID0gW107XG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBbLi4udG9rZW5zLmJpdGNvaW4uc3R4LnRva2VucywgLi4udG9rZW5zLnRlc3RuZXQuc3R4LnRva2Vuc10pIHtcbiAgICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBTaXAxMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3IodG9rZW4pO1xuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnR5cGUsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2Vuc0N0b3JzO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uYW1lO1xuICB9XG5cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgZ2V0IG5ldHdvcmsoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uZXR3b3JrO1xuICB9XG5cbiAgZ2V0IGFzc2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5hc3NldElkO1xuICB9XG5cbiAgZ2V0IGRlY2ltYWxQbGFjZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5kZWNpbWFsUGxhY2VzO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgZ2V0QmFzZUNoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29pbjtcbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdTaXAxMCBUb2tlbic7XG4gIH1cblxuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG59XG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwMTBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaXAxMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QixnRUFBcUM7QUFHckMsaURBQWdIO0FBRWhILCtCQUE0QjtBQUM1QiwrQkFBa0Q7QUFHbEQsTUFBYSxVQUFXLFNBQVEsU0FBRztJQUdqQyxZQUFZLEtBQWdCLEVBQUUsV0FBNkI7UUFDekQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sS0FBSyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RyxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBd0I7UUFDcEQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QjtRQUM1QixNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQyxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNqRixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJ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LFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztZQUNyRixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBckhELGdDQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBOYW1lZENvaW5Db25zdHJ1Y3RvciwgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luLCBjb2lucywgTmV0d29ya1R5cGUsIFNpcDEwVG9rZW5Db25maWcsIHRva2VucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBTdHggfSBmcm9tICcuL3N0eCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9saWInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9saWIvdHJhbnNhY3Rpb25CdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFNpcDEwVG9rZW4gZXh0ZW5kcyBTdHgge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFNpcDEwVG9rZW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IFNpcDEwVG9rZW5Db25maWcpIHtcbiAgICBjb25zdCBzdGF0aWNzQ29pbiA9IHRva2VuQ29uZmlnLm5ldHdvcmsgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyBjb2lucy5nZXQoJ3N0eCcpIDogY29pbnMuZ2V0KCd0c3R4Jyk7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWc6IFNpcDEwVG9rZW5Db25maWcpOiBDb2luQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiAoYml0Z286IEJpdEdvQmFzZSkgPT4gbmV3IFNpcDEwVG9rZW4oYml0Z28sIGNvbmZpZyk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgdG9rZW5zQ3RvcnM6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIFsuLi50b2tlbnMuYml0Y29pbi5zdHgudG9rZW5zLCAuLi50b2tlbnMudGVzdG5ldC5zdHgudG9rZW5zXSkge1xuICAgICAgY29uc3QgdG9rZW5Db25zdHJ1Y3RvciA9IFNpcDEwVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcih0b2tlbik7XG4gICAgICB0b2tlbnNDdG9ycy5wdXNoKHsgbmFtZTogdG9rZW4udHlwZSwgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW5zQ3RvcnM7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmNvaW47XG4gIH1cblxuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICBnZXQgYXNzZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmFzc2V0SWQ7XG4gIH1cblxuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICBnZXRCYXNlQ2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2luO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1NpcDEwIFRva2VuJztcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbihjb2luQ29uZmlnOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZykuZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcigpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UHJlYnVpbGQ6IHR4UHJlYnVpbGQsIHR4UGFyYW1zOiB0eFBhcmFtcyB9ID0gcGFyYW1zO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHR4UGFyYW1zLnJlY2lwaWVudHMpICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHt0aGlzLmdldENoYWluKCl9IGRvZXNuJ3Qgc3VwcG9ydCBzZW5kaW5nIHRvIG1vcmUgdGhhbiAxIGRlc3RpbmF0aW9uIGFkZHJlc3Mgd2l0aGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLiBUcnkgYWdhaW4sIHVzaW5nIG9ubHkgYSBzaW5nbGUgcmVjaXBpZW50LmBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHJhd1R4ID0gdHhQcmVidWlsZC50eEhleDtcbiAgICBpZiAoIXJhd1R4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgdHggcHJlYnVpbGQgcHJvcGVydHkgdHhIZXgnKTtcbiAgICB9XG4gICAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCh0aGlzLmdldENoYWluKCkpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5nZXRUcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgICB0cmFuc2FjdGlvbi5mcm9tKHJhd1R4KTtcbiAgICBjb25zdCBleHBsYWluZWRUeCA9IGF3YWl0IHRoaXMuZXhwbGFpblRyYW5zYWN0aW9uKHsgdHhIZXg6IHJhd1R4LCBmZWVJbmZvOiB7IGZlZTogJycgfSB9KTtcbiAgICBpZiAodHhQYXJhbXMucmVjaXBpZW50cyAhPT0gdW5kZWZpbmVkICYmIGV4cGxhaW5lZFR4KSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZFJlY2lwaWVudHMgPSB0eFBhcmFtcy5yZWNpcGllbnRzPy5tYXAoKHJlY2lwaWVudCkgPT4ge1xuICAgICAgICBjb25zdCByZWNpcGllbnREYXRhID0ge1xuICAgICAgICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAocmVjaXBpZW50Lm1lbW8pIHtcbiAgICAgICAgICByZWNpcGllbnREYXRhWydtZW1vJ10gPSByZWNpcGllbnQubWVtbztcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVjaXBpZW50LnRva2VuTmFtZSkge1xuICAgICAgICAgIHJlY2lwaWVudERhdGFbJ3Rva2VuTmFtZSddID0gcmVjaXBpZW50LnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjaXBpZW50RGF0YTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmlsdGVyZWRPdXRwdXRzID0gZXhwbGFpbmVkVHgub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4ge1xuICAgICAgICBjb25zdCByZWNpcGllbnREYXRhID0ge1xuICAgICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogQmlnSW50KG91dHB1dC5hbW91bnQpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAob3V0cHV0Lm1lbW8pIHtcbiAgICAgICAgICByZWNpcGllbnREYXRhWydtZW1vJ10gPSBvdXRwdXQubWVtbztcbiAgICAgICAgfVxuICAgICAgICBpZiAob3V0cHV0LnRva2VuTmFtZSkge1xuICAgICAgICAgIHJlY2lwaWVudERhdGFbJ3Rva2VuTmFtZSddID0gb3V0cHV0LnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjaXBpZW50RGF0YTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfLmlzRXF1YWwoZmlsdGVyZWRPdXRwdXRzLCBmaWx0ZXJlZFJlY2lwaWVudHMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICAgIH1cbiAgICAgIGxldCB0b3RhbEFtb3VudCA9IG5ldyBCaWdOdW1iZXIoMCk7XG4gICAgICBmb3IgKGNvbnN0IHJlY2lwaWVudHMgb2YgdHhQYXJhbXMucmVjaXBpZW50cykge1xuICAgICAgICB0b3RhbEFtb3VudCA9IHRvdGFsQW1vdW50LnBsdXMocmVjaXBpZW50cy5hbW91bnQpO1xuICAgICAgfVxuICAgICAgaWYgKCF0b3RhbEFtb3VudC5pc0VxdWFsVG8oZXhwbGFpbmVkVHgub3V0cHV0QW1vdW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R4IHRvdGFsIGFtb3VudCBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHRvdGFsIGFtb3VudCBmaWVsZCcpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
package/dist/src/stx.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BaseCoin, BitGoBase, KeyPair, SignedTransaction, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
1
|
+
import { BaseCoin, BitGoBase, KeyPair, MultisigType, SignedTransaction, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
|
|
3
3
|
import { ExplainTransactionOptions, StxSignTransactionOptions, StxTransactionExplanation } from './types';
|
|
4
|
+
import { TransactionBuilder } from './lib/transactionBuilder';
|
|
4
5
|
export declare class Stx extends BaseCoin {
|
|
5
6
|
protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
|
|
6
7
|
constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
@@ -9,6 +10,11 @@ export declare class Stx extends BaseCoin {
|
|
|
9
10
|
getFamily(): CoinFamily;
|
|
10
11
|
getFullName(): string;
|
|
11
12
|
getBaseFactor(): string | number;
|
|
13
|
+
getTransaction(coinConfig: Readonly<StaticsBaseCoin>): TransactionBuilder;
|
|
14
|
+
/** {@inheritDoc } **/
|
|
15
|
+
supportsMultisig(): boolean;
|
|
16
|
+
/** inherited doc */
|
|
17
|
+
getDefaultMultisigType(): MultisigType;
|
|
12
18
|
verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
|
|
13
19
|
/**
|
|
14
20
|
* Check if address is valid, then make sure it matches the base address.
|
package/dist/src/stx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stx.d.ts","sourceRoot":"","sources":["../../src/stx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,iBAAiB,EAGjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"stx.d.ts","sourceRoot":"","sources":["../../src/stx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EAEZ,iBAAiB,EAGjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AAGrF,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAG1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,qBAAa,GAAI,SAAQ,QAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAE/C,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAUrE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,UAAU;IAIvB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,kBAAkB;IAIzE,sBAAsB;IACtB,gBAAgB,IAAI,OAAO;IAI3B,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAIhC,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3E;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAcvC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQxC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoB9E,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;CAuF5G"}
|
package/dist/src/stx.js
CHANGED
|
@@ -5,6 +5,8 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
|
5
5
|
const statics_1 = require("@bitgo-beta/statics");
|
|
6
6
|
const transactions_1 = require("@stacks/transactions");
|
|
7
7
|
const _1 = require(".");
|
|
8
|
+
const lib_1 = require("./lib");
|
|
9
|
+
const utils_1 = require("./lib/utils");
|
|
8
10
|
class Stx extends sdk_core_1.BaseCoin {
|
|
9
11
|
constructor(bitgo, staticsCoin) {
|
|
10
12
|
super(bitgo);
|
|
@@ -28,6 +30,17 @@ class Stx extends sdk_core_1.BaseCoin {
|
|
|
28
30
|
getBaseFactor() {
|
|
29
31
|
return Math.pow(10, this._staticsCoin.decimalPlaces);
|
|
30
32
|
}
|
|
33
|
+
getTransaction(coinConfig) {
|
|
34
|
+
return new lib_1.TransactionBuilderFactory(coinConfig).getTransferBuilder();
|
|
35
|
+
}
|
|
36
|
+
/** {@inheritDoc } **/
|
|
37
|
+
supportsMultisig() {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
/** inherited doc */
|
|
41
|
+
getDefaultMultisigType() {
|
|
42
|
+
return sdk_core_1.multisigTypes.onchain;
|
|
43
|
+
}
|
|
31
44
|
async verifyTransaction(params) {
|
|
32
45
|
const { txParams } = params;
|
|
33
46
|
if (Array.isArray(txParams.recipients) && txParams.recipients.length > 1) {
|
|
@@ -155,10 +168,11 @@ class Stx extends sdk_core_1.BaseCoin {
|
|
|
155
168
|
let outputAmount;
|
|
156
169
|
let memo;
|
|
157
170
|
if (txJson.payload.contractAddress && txJson.payload.functionArgs.length >= 3) {
|
|
158
|
-
outputAmount = (0, transactions_1.cvToValue)(txJson.payload.functionArgs[
|
|
171
|
+
outputAmount = (0, transactions_1.cvToValue)(txJson.payload.functionArgs[0]).toString();
|
|
159
172
|
transactionRecipient = {
|
|
160
|
-
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[
|
|
173
|
+
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[2]),
|
|
161
174
|
amount: outputAmount,
|
|
175
|
+
tokenName: (0, utils_1.findTokenNameByContract)(txJson.payload.contractAddress, txJson.payload.contractName),
|
|
162
176
|
};
|
|
163
177
|
if (txJson.payload.functionArgs.length === 4) {
|
|
164
178
|
memo = txJson.payload.functionArgs[3].buffer.toString('ascii');
|
|
@@ -216,4 +230,4 @@ class Stx extends sdk_core_1.BaseCoin {
|
|
|
216
230
|
}
|
|
217
231
|
}
|
|
218
232
|
exports.Stx = Stx;
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFTOEI7QUFDOUIsaURBQXFGO0FBQ3JGLHVEQUE2RDtBQUU3RCx3QkFBMkI7QUFFM0IsTUFBYSxHQUFJLFNBQVEsbUJBQVE7SUFHL0IsWUFBWSxLQUFnQixFQUFFLFdBQXVDO1FBQ25FLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUViLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFnQztRQUN0RCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FB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Q2pCLE9BQU87Z0JBQ1AsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksRUFBRSxDQUFDLElBQUksS0FBSywwQkFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUFHO2dCQUNuQixJQUFJO2dCQUNKLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixpQkFBaUI7Z0JBQ2pCLGNBQWM7Z0JBQ2Qsa0JBQWtCO2dCQUNsQixzQkFBc0I7YUFDdkIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsWUFBWTtnQkFDWixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsWUFBWSxFQUFFLEdBQUc7Z0JBQ2pCLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUUsRUFBRTtnQkFDWCxhQUFhLEVBQUUsRUFBRTtnQkFDakIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNmLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSTtnQkFDYixlQUFlLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlO2dCQUMvQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2dCQUN6QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVk7Z0JBQzdDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTthQUNsRCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNPRCxrQkEyT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQ29pbixcbiAgQml0R29CYXNlLFxuICBLZXlQYWlyLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luLCBDb2luRmFtaWx5LCBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgY3ZUb1N0cmluZywgY3ZUb1ZhbHVlIH0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucywgU3R4U2lnblRyYW5zYWN0aW9uT3B0aW9ucywgU3R4VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU3R4TGliIH0gZnJvbSAnLic7XG5cbmV4cG9ydCBjbGFzcyBTdHggZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28pO1xuXG4gICAgaWYgKCFzdGF0aWNzQ29pbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBzdGF0aWNzQ29pbicpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRpY3NDb2luID0gc3RhdGljc0NvaW47XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgU3R4KGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5uYW1lO1xuICB9XG5cbiAgZ2V0RmFtaWx5KCk6IENvaW5GYW1pbHkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5mYW1pbHk7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5mdWxsTmFtZTtcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMuX3N0YXRpY3NDb2luLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zIH0gPSBwYXJhbXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHhQYXJhbXMucmVjaXBpZW50cykgJiYgdHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke3RoaXMuZ2V0Q2hhaW4oKX0gZG9lc24ndCBzdXBwb3J0IHNlbmRpbmcgdG8gbW9yZSB0aGFuIDEgZGVzdGluYXRpb24gYWRkcmVzcyB3aXRoaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uIFRyeSBhZ2FpbiwgdXNpbmcgb25seSBhIHNpbmdsZSByZWNpcGllbnQuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYWRkcmVzcyBpcyB2YWxpZCwgdGhlbiBtYWtlIHN1cmUgaXQgbWF0Y2hlcyB0aGUgYmFzZSBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlcmlmeUFkZHJlc3NPcHRpb25zfSBwYXJhbXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IHBhcmFtcy5hZGRyZXNzIC0gdGhlIGFkZHJlc3MgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuYmFzZUFkZHJlc3MgLSB0aGUgYmFzZSBhZGRyZXNzIGZyb20gdGhlIHdhbGxldFxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGFkZHJlc3MsIGtleWNoYWlucyB9ID0gcGFyYW1zO1xuICAgIGlmICgha2V5Y2hhaW5zIHx8IGtleWNoYWlucy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXljaGFpbnMnKTtcbiAgICB9XG4gICAgY29uc3QgcHVicyA9IGtleWNoYWlucy5tYXAoKGtleWNoYWluKSA9PiBTdHhMaWIuVXRpbHMueHB1YlRvU1RYUHVia2V5KGtleWNoYWluLnB1YikpO1xuICAgIGNvbnN0IGFkZHJlc3NWZXJzaW9uID0gU3R4TGliLlV0aWxzLmdldEFkZHJlc3NWZXJzaW9uKGFkZHJlc3MpO1xuICAgIGNvbnN0IGJhc2VBZGRyZXNzID0gU3R4TGliLlV0aWxzLmdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyhwdWJzLCBhZGRyZXNzVmVyc2lvbikuYWRkcmVzcztcbiAgICByZXR1cm4gU3R4TGliLlV0aWxzLmlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3MsIGJhc2VBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBTdGFja3Mga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IHNlZWQgLSBTZWVkIGZyb20gd2hpY2ggdGhlIG5ldyBrZXlwYWlyIHNob3VsZCBiZSBnZW5lcmF0ZWQsIG90aGVyd2lzZSBhIHJhbmRvbSBzZWVkIGlzIHVzZWRcbiAgICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IHdpdGggZ2VuZXJhdGVkIHB1YiBhbmQgcHJ2XG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IFN0eExpYi5LZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBTdHhMaWIuS2V5UGFpcigpO1xuICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpO1xuXG4gICAgaWYgKCFrZXlzLnhwcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB4cHJ2IGluIGtleSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMueHB1YixcbiAgICAgIHBydjoga2V5cy54cHJ2LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIHZhbGlkIHB1YmxpYyBrZXkgZm9yIHRoZSBjb2luXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgdGhlIHBydiB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIGlzIGl0IHZhbGlkP1xuICAgKi9cbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gU3R4TGliLlV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwcml2YXRlIGtleSBmb3IgdGhlIGNvaW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiB0aGUgcHJ2IHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMgaXMgaXQgdmFsaWQ/XG4gICAqL1xuICBpc1ZhbGlkUHJ2KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBTdHhMaWIuVXRpbHMuaXNWYWxpZFByaXZhdGVLZXkocHJ2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBTdHhMaWIuVXRpbHMuaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgc3RhY2tzIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFN0eFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBTdHhMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHBhcmFtcy50eFByZWJ1aWxkLnR4SGV4KTtcbiAgICBjb25zdCBwcnZLZXlzID0gcGFyYW1zLnBydiBpbnN0YW5jZW9mIEFycmF5ID8gcGFyYW1zLnBydiA6IFtwYXJhbXMucHJ2XTtcbiAgICBwcnZLZXlzLmZvckVhY2goKHBydikgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHBydiB9KSk7XG4gICAgaWYgKHBhcmFtcy5wdWJLZXlzKSB0eEJ1aWxkZXIuZnJvbVB1YktleShwYXJhbXMucHViS2V5cyk7XG4gICAgLy8gaWYgKHBhcmFtcy5udW1iZXJTaWduYXR1cmUpIHR4QnVpbGRlci5udW1iZXJTaWduYXR1cmVzKHBhcmFtcy5udW1iZXJTaWduYXR1cmUpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbWVzc2FnZSBwYXNzZWQgdG8gc2lnbk1lc3NhZ2UnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eEhleCA9IHtcbiAgICAgIHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpLFxuICAgIH07XG5cbiAgICByZXR1cm4gdHJhbnNhY3Rpb24uc2lnbmF0dXJlLmxlbmd0aCA+PSAyID8gdHhIZXggOiB7IGhhbGZTaWduZWQ6IHR4SGV4IH07XG4gIH1cblxuICBhc3luYyBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbiBhIFN0YWNrcyB0cmFuc2FjdGlvbiBmcm9tIHR4SGV4XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbihwYXJhbXM6IEV4cGxhaW5UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFN0eFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB0eEhleCA9IHBhcmFtcy50eEhleCB8fCAocGFyYW1zLmhhbGZTaWduZWQgJiYgcGFyYW1zLmhhbGZTaWduZWQudHhIZXgpO1xuICAgIGlmICghdHhIZXggfHwgIXBhcmFtcy5mZWVJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgZXhwbGFpbiB0eCBwYXJhbWV0ZXJzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBTdHhMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHR4SGV4KTtcblxuICAgIGlmIChwYXJhbXMucHVibGljS2V5cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0eEJ1aWxkZXIuZnJvbVB1YktleShwYXJhbXMucHVibGljS2V5cyk7XG4gICAgICBpZiAocGFyYW1zLnB1YmxpY0tleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIC8vIGRlZmluaXRlbHkgYSBzaW5nbGUgc2lnIHR4XG4gICAgICAgIHR4QnVpbGRlci5udW1iZXJTaWduYXR1cmVzKDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG5cbiAgICBpZiAodHgudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGl0IGlzIGEgdG9rZW4gdHJhbnNhY3Rpb24gb3IgbmF0aXZlIGNvaW4gdHJhbnNhY3Rpb25cbiAgICAgIGxldCB0cmFuc2FjdGlvblJlY2lwaWVudDogVHJhbnNhY3Rpb25SZWNpcGllbnQ7XG4gICAgICBsZXQgb3V0cHV0QW1vdW50OiBzdHJpbmc7XG4gICAgICBsZXQgbWVtbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyAmJiB0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3MubGVuZ3RoID49IDMpIHtcbiAgICAgICAgb3V0cHV0QW1vdW50ID0gY3ZUb1ZhbHVlKHR4SnNvbi5wYXlsb2FkLmZ1bmN0aW9uQXJnc1syXSkudG9TdHJpbmcoKTtcbiAgICAgICAgdHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogY3ZUb1N0cmluZyh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMV0pLFxuICAgICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgICB9O1xuICAgICAgICBpZiAodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgIG1lbW8gPSB0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbM10uYnVmZmVyLnRvU3RyaW5nKCdhc2NpaScpO1xuICAgICAgICAgIHRyYW5zYWN0aW9uUmVjaXBpZW50WydtZW1vJ10gPSBtZW1vO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXRBbW91bnQgPSB0eEpzb24ucGF5bG9hZC5hbW91bnQ7XG4gICAgICAgIG1lbW8gPSB0eEpzb24ucGF5bG9hZC5tZW1vO1xuICAgICAgICB0cmFuc2FjdGlvblJlY2lwaWVudCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiB0eEpzb24ucGF5bG9hZC50byxcbiAgICAgICAgICBhbW91bnQ6IG91dHB1dEFtb3VudCxcbiAgICAgICAgICBtZW1vOiBtZW1vLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFt0cmFuc2FjdGlvblJlY2lwaWVudF07XG5cbiAgICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ21lbW8nLCAndHlwZSddO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICBpZDogdHhKc29uLmlkLFxuICAgICAgICBvdXRwdXRBbW91bnQ6IG91dHB1dEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICAgIGZlZTogdHhKc29uLmZlZSxcbiAgICAgICAgbWVtbzogbWVtbyxcbiAgICAgICAgdHlwZTogdHgudHlwZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR4LnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFtcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgJ2ZlZScsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ2NvbnRyYWN0QWRkcmVzcycsXG4gICAgICAgICdjb250cmFjdE5hbWUnLFxuICAgICAgICAnY29udHJhY3RGdW5jdGlvbicsXG4gICAgICAgICdjb250cmFjdEZ1bmN0aW9uQXJncycsXG4gICAgICBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICBpZDogdHhKc29uLmlkLFxuICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgb3V0cHV0QW1vdW50OiAnJyxcbiAgICAgICAgb3V0cHV0czogW10sXG4gICAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgICBmZWU6IHR4SnNvbi5mZWUsXG4gICAgICAgIHR5cGU6IHR4LnR5cGUsXG4gICAgICAgIGNvbnRyYWN0QWRkcmVzczogdHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICBjb250cmFjdE5hbWU6IHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0TmFtZSxcbiAgICAgICAgY29udHJhY3RGdW5jdGlvbjogdHhKc29uLnBheWxvYWQuZnVuY3Rpb25OYW1lLFxuICAgICAgICBjb250cmFjdEZ1bmN0aW9uQXJnczogdHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFXOEI7QUFDOUIsaURBQXFGO0FBQ3JGLHVEQUE2RDtBQUc3RCx3QkFBMkI7QUFDM0IsK0JBQWtEO0FBRWxELHVDQUFzRDtBQUV0RCxNQUFhLEdBQUksU0FBUSxtQkFBUTtJQUcvQixZQUFZLEtBQWdCLEVBQUUsV0FBdUM7UUFDbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQXFDO1FBQ2xELE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsZ0JBQWdCO1FBQ2Qs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RSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVk7Z0JBQ3pDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTtnQkFDN0Msb0JBQW9CLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ2xELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBMVBELGtCQTBQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEtleVBhaXIsXG4gIE11bHRpc2lnVHlwZSxcbiAgbXVsdGlzaWdUeXBlcyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZhbWlseSwgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGN2VG9TdHJpbmcsIGN2VG9WYWx1ZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcblxuaW1wb3J0IHsgRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucywgU3R4U2lnblRyYW5zYWN0aW9uT3B0aW9ucywgU3R4VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU3R4TGliIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9saWInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9saWIvdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IGZpbmRUb2tlbk5hbWVCeUNvbnRyYWN0IH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3R4IGV4dGVuZHMgQmFzZUNvaW4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFN0eChiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4ubmFtZTtcbiAgfVxuXG4gIGdldEZhbWlseSgpOiBDb2luRmFtaWx5IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZmFtaWx5O1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZnVsbE5hbWU7XG4gIH1cblxuICBnZXRCYXNlRmFjdG9yKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLl9zdGF0aWNzQ29pbi5kZWNpbWFsUGxhY2VzKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uKGNvaW5Db25maWc6IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgfVxuXG4gIC8qKiB7QGluaGVyaXREb2MgfSAqKi9cbiAgc3VwcG9ydHNNdWx0aXNpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBpbmhlcml0ZWQgZG9jICovXG4gIGdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKTogTXVsdGlzaWdUeXBlIHtcbiAgICByZXR1cm4gbXVsdGlzaWdUeXBlcy5vbmNoYWluO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zIH0gPSBwYXJhbXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHhQYXJhbXMucmVjaXBpZW50cykgJiYgdHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke3RoaXMuZ2V0Q2hhaW4oKX0gZG9lc24ndCBzdXBwb3J0IHNlbmRpbmcgdG8gbW9yZSB0aGFuIDEgZGVzdGluYXRpb24gYWRkcmVzcyB3aXRoaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uIFRyeSBhZ2FpbiwgdXNpbmcgb25seSBhIHNpbmdsZSByZWNpcGllbnQuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYWRkcmVzcyBpcyB2YWxpZCwgdGhlbiBtYWtlIHN1cmUgaXQgbWF0Y2hlcyB0aGUgYmFzZSBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlcmlmeUFkZHJlc3NPcHRpb25zfSBwYXJhbXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IHBhcmFtcy5hZGRyZXNzIC0gdGhlIGFkZHJlc3MgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuYmFzZUFkZHJlc3MgLSB0aGUgYmFzZSBhZGRyZXNzIGZyb20gdGhlIHdhbGxldFxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGFkZHJlc3MsIGtleWNoYWlucyB9ID0gcGFyYW1zO1xuICAgIGlmICgha2V5Y2hhaW5zIHx8IGtleWNoYWlucy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXljaGFpbnMnKTtcbiAgICB9XG4gICAgY29uc3QgcHVicyA9IGtleWNoYWlucy5tYXAoKGtleWNoYWluKSA9PiBTdHhMaWIuVXRpbHMueHB1YlRvU1RYUHVia2V5KGtleWNoYWluLnB1YikpO1xuICAgIGNvbnN0IGFkZHJlc3NWZXJzaW9uID0gU3R4TGliLlV0aWxzLmdldEFkZHJlc3NWZXJzaW9uKGFkZHJlc3MpO1xuICAgIGNvbnN0IGJhc2VBZGRyZXNzID0gU3R4TGliLlV0aWxzLmdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyhwdWJzLCBhZGRyZXNzVmVyc2lvbikuYWRkcmVzcztcbiAgICByZXR1cm4gU3R4TGliLlV0aWxzLmlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3MsIGJhc2VBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBTdGFja3Mga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IHNlZWQgLSBTZWVkIGZyb20gd2hpY2ggdGhlIG5ldyBrZXlwYWlyIHNob3VsZCBiZSBnZW5lcmF0ZWQsIG90aGVyd2lzZSBhIHJhbmRvbSBzZWVkIGlzIHVzZWRcbiAgICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IHdpdGggZ2VuZXJhdGVkIHB1YiBhbmQgcHJ2XG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IFN0eExpYi5LZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBTdHhMaWIuS2V5UGFpcigpO1xuICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpO1xuXG4gICAgaWYgKCFrZXlzLnhwcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB4cHJ2IGluIGtleSBnZW5lcmF0aW9uLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMueHB1YixcbiAgICAgIHBydjoga2V5cy54cHJ2LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIHZhbGlkIHB1YmxpYyBrZXkgZm9yIHRoZSBjb2luXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgdGhlIHBydiB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIGlzIGl0IHZhbGlkP1xuICAgKi9cbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gU3R4TGliLlV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwcml2YXRlIGtleSBmb3IgdGhlIGNvaW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBydiB0aGUgcHJ2IHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMgaXMgaXQgdmFsaWQ/XG4gICAqL1xuICBpc1ZhbGlkUHJ2KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBTdHhMaWIuVXRpbHMuaXNWYWxpZFByaXZhdGVLZXkocHJ2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBTdHhMaWIuVXRpbHMuaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgc3RhY2tzIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFN0eFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBTdHhMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHBhcmFtcy50eFByZWJ1aWxkLnR4SGV4KTtcbiAgICBjb25zdCBwcnZLZXlzID0gcGFyYW1zLnBydiBpbnN0YW5jZW9mIEFycmF5ID8gcGFyYW1zLnBydiA6IFtwYXJhbXMucHJ2XTtcbiAgICBwcnZLZXlzLmZvckVhY2goKHBydikgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHBydiB9KSk7XG4gICAgaWYgKHBhcmFtcy5wdWJLZXlzKSB0eEJ1aWxkZXIuZnJvbVB1YktleShwYXJhbXMucHViS2V5cyk7XG4gICAgLy8gaWYgKHBhcmFtcy5udW1iZXJTaWduYXR1cmUpIHR4QnVpbGRlci5udW1iZXJTaWduYXR1cmVzKHBhcmFtcy5udW1iZXJTaWduYXR1cmUpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBpZiAoIXRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbWVzc2FnZSBwYXNzZWQgdG8gc2lnbk1lc3NhZ2UnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eEhleCA9IHtcbiAgICAgIHR4SGV4OiB0cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpLFxuICAgIH07XG5cbiAgICByZXR1cm4gdHJhbnNhY3Rpb24uc2lnbmF0dXJlLmxlbmd0aCA+PSAyID8gdHhIZXggOiB7IGhhbGZTaWduZWQ6IHR4SGV4IH07XG4gIH1cblxuICBhc3luYyBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogRXhwbGFpbiBhIFN0YWNrcyB0cmFuc2FjdGlvbiBmcm9tIHR4SGV4XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbihwYXJhbXM6IEV4cGxhaW5UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFN0eFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB0eEhleCA9IHBhcmFtcy50eEhleCB8fCAocGFyYW1zLmhhbGZTaWduZWQgJiYgcGFyYW1zLmhhbGZTaWduZWQudHhIZXgpO1xuICAgIGlmICghdHhIZXggfHwgIXBhcmFtcy5mZWVJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgZXhwbGFpbiB0eCBwYXJhbWV0ZXJzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBTdHhMaWIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKSk7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHR4SGV4KTtcblxuICAgIGlmIChwYXJhbXMucHVibGljS2V5cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0eEJ1aWxkZXIuZnJvbVB1YktleShwYXJhbXMucHVibGljS2V5cyk7XG4gICAgICBpZiAocGFyYW1zLnB1YmxpY0tleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIC8vIGRlZmluaXRlbHkgYSBzaW5nbGUgc2lnIHR4XG4gICAgICAgIHR4QnVpbGRlci5udW1iZXJTaWduYXR1cmVzKDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG5cbiAgICBpZiAodHgudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGl0IGlzIGEgdG9rZW4gdHJhbnNhY3Rpb24gb3IgbmF0aXZlIGNvaW4gdHJhbnNhY3Rpb25cbiAgICAgIGxldCB0cmFuc2FjdGlvblJlY2lwaWVudDogVHJhbnNhY3Rpb25SZWNpcGllbnQ7XG4gICAgICBsZXQgb3V0cHV0QW1vdW50OiBzdHJpbmc7XG4gICAgICBsZXQgbWVtbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyAmJiB0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3MubGVuZ3RoID49IDMpIHtcbiAgICAgICAgb3V0cHV0QW1vdW50ID0gY3ZUb1ZhbHVlKHR4SnNvbi5wYXlsb2FkLmZ1bmN0aW9uQXJnc1swXSkudG9TdHJpbmcoKTtcbiAgICAgICAgdHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogY3ZUb1N0cmluZyh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMl0pLFxuICAgICAgICAgIGFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgICAgICAgIHRva2VuTmFtZTogZmluZFRva2VuTmFtZUJ5Q29udHJhY3QodHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzLCB0eEpzb24ucGF5bG9hZC5jb250cmFjdE5hbWUpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAodHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgIG1lbW8gPSB0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbM10uYnVmZmVyLnRvU3RyaW5nKCdhc2NpaScpO1xuICAgICAgICAgIHRyYW5zYWN0aW9uUmVjaXBpZW50WydtZW1vJ10gPSBtZW1vO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXRBbW91bnQgPSB0eEpzb24ucGF5bG9hZC5hbW91bnQ7XG4gICAgICAgIG1lbW8gPSB0eEpzb24ucGF5bG9hZC5tZW1vO1xuICAgICAgICB0cmFuc2FjdGlvblJlY2lwaWVudCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiB0eEpzb24ucGF5bG9hZC50byxcbiAgICAgICAgICBhbW91bnQ6IG91dHB1dEFtb3VudCxcbiAgICAgICAgICBtZW1vOiBtZW1vLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFt0cmFuc2FjdGlvblJlY2lwaWVudF07XG5cbiAgICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ21lbW8nLCAndHlwZSddO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICBpZDogdHhKc29uLmlkLFxuICAgICAgICBvdXRwdXRBbW91bnQ6IG91dHB1dEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICAgIGZlZTogdHhKc29uLmZlZSxcbiAgICAgICAgbWVtbzogbWVtbyxcbiAgICAgICAgdHlwZTogdHgudHlwZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR4LnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFtcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgJ2ZlZScsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ2NvbnRyYWN0QWRkcmVzcycsXG4gICAgICAgICdjb250cmFjdE5hbWUnLFxuICAgICAgICAnY29udHJhY3RGdW5jdGlvbicsXG4gICAgICAgICdjb250cmFjdEZ1bmN0aW9uQXJncycsXG4gICAgICBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgICBpZDogdHhKc29uLmlkLFxuICAgICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgICAgb3V0cHV0QW1vdW50OiAnJyxcbiAgICAgICAgb3V0cHV0czogW10sXG4gICAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgICBmZWU6IHR4SnNvbi5mZWUsXG4gICAgICAgIHR5cGU6IHR4LnR5cGUsXG4gICAgICAgIGNvbnRyYWN0QWRkcmVzczogdHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICBjb250cmFjdE5hbWU6IHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0TmFtZSxcbiAgICAgICAgY29udHJhY3RGdW5jdGlvbjogdHhKc29uLnBheWxvYWQuZnVuY3Rpb25OYW1lLFxuICAgICAgICBjb250cmFjdEZ1bmN0aW9uQXJnczogdHhKc29uLnBheWxvYWQuZnVuY3Rpb25BcmdzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-stx",
|
|
3
|
-
"version": "1.4.3-alpha.
|
|
3
|
+
"version": "1.4.3-alpha.284",
|
|
4
4
|
"description": "BitGo SDK coin library for Stacks",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
44
|
-
"@bitgo-beta/secp256k1": "1.0.1-alpha.
|
|
45
|
-
"@bitgo-beta/statics": "10.0.1-alpha.
|
|
43
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.287",
|
|
44
|
+
"@bitgo-beta/secp256k1": "1.0.1-alpha.245",
|
|
45
|
+
"@bitgo-beta/statics": "10.0.1-alpha.287",
|
|
46
46
|
"@noble/curves": "1.8.1",
|
|
47
47
|
"@stacks/network": "^4.3.0",
|
|
48
48
|
"@stacks/transactions": "2.0.1",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"lodash": "^4.17.15"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
55
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.287",
|
|
56
56
|
"@bitgo-beta/sdk-test": "^8.0.75"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "4dbf36a41aa1424bf7f763fcbc77ee3ba9551d4e"
|
|
59
59
|
}
|