@bitgo-beta/sdk-coin-stx 1.4.3-alpha.24 → 1.4.3-alpha.240
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +487 -0
- package/dist/src/index.js +23 -9
- package/dist/src/lib/abstractContractBuilder.js +2 -2
- package/dist/src/lib/constants.d.ts +1 -1
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +2 -2
- package/dist/src/lib/contractBuilder.js +10 -10
- package/dist/src/lib/index.js +23 -9
- package/dist/src/lib/keyPair.js +11 -12
- package/dist/src/lib/sendmanyBuilder.js +11 -11
- package/dist/src/lib/transaction.js +13 -14
- package/dist/src/lib/transactionBuilder.js +12 -12
- package/dist/src/lib/transactionBuilderFactory.js +2 -2
- package/dist/src/lib/transferBuilder.js +4 -4
- package/dist/src/lib/utils.d.ts +0 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +69 -57
- package/dist/src/stx.d.ts +0 -1
- package/dist/src/stx.d.ts.map +1 -1
- package/dist/src/stx.js +7 -3
- package/dist/src/tstx.js +1 -1
- package/package.json +8 -8
|
@@ -27,7 +27,7 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
27
27
|
* @returns {ContractBuilder} the builder with the new parameter set
|
|
28
28
|
*/
|
|
29
29
|
contractAddress(address) {
|
|
30
|
-
if (!utils_1.isValidAddress(address)) {
|
|
30
|
+
if (!(0, utils_1.isValidAddress)(address)) {
|
|
31
31
|
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
32
32
|
}
|
|
33
33
|
if (!_1.Utils.isValidContractAddress(address, this._coinConfig.network)) {
|
|
@@ -47,7 +47,7 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
47
47
|
throw new sdk_core_1.InvalidParameterValueError('Invalid name');
|
|
48
48
|
}
|
|
49
49
|
if (name !== constants_1.CONTRACT_NAME_STAKING && name !== constants_1.CONTRACT_NAME_SENDMANY) {
|
|
50
|
-
throw new sdk_core_1.InvalidParameterValueError('Only pox and send-many-memo contracts supported');
|
|
50
|
+
throw new sdk_core_1.InvalidParameterValueError('Only pox-4 and send-many-memo contracts supported');
|
|
51
51
|
}
|
|
52
52
|
this._contractName = name;
|
|
53
53
|
return this;
|
|
@@ -84,10 +84,10 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
84
84
|
switch (arg.type) {
|
|
85
85
|
case 'optional':
|
|
86
86
|
if (arg.val === undefined) {
|
|
87
|
-
return transactions_1.noneCV();
|
|
87
|
+
return (0, transactions_1.noneCV)();
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
return transactions_1.someCV(this.parseCv(arg.val));
|
|
90
|
+
return (0, transactions_1.someCV)(this.parseCv(arg.val));
|
|
91
91
|
}
|
|
92
92
|
case 'tuple':
|
|
93
93
|
if (arg.val instanceof Array) {
|
|
@@ -95,22 +95,22 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
95
95
|
arg.val.forEach((a) => {
|
|
96
96
|
data[a.key] = this.parseCv({ type: a.type, val: a.val });
|
|
97
97
|
});
|
|
98
|
-
return transactions_1.tupleCV(data);
|
|
98
|
+
return (0, transactions_1.tupleCV)(data);
|
|
99
99
|
}
|
|
100
100
|
throw new sdk_core_1.InvalidParameterValueError('tuple require Array val');
|
|
101
101
|
case 'buffer':
|
|
102
102
|
if (arg.val instanceof Buffer) {
|
|
103
|
-
return transactions_1.bufferCV(arg.val);
|
|
103
|
+
return (0, transactions_1.bufferCV)(arg.val);
|
|
104
104
|
}
|
|
105
105
|
const nval = Number(arg.val);
|
|
106
106
|
if (nval) {
|
|
107
|
-
return transactions_1.bufferCV(Buffer.of(nval));
|
|
107
|
+
return (0, transactions_1.bufferCV)(Buffer.of(nval));
|
|
108
108
|
}
|
|
109
|
-
return transactions_1.bufferCVFromString(arg.val);
|
|
109
|
+
return (0, transactions_1.bufferCVFromString)(arg.val);
|
|
110
110
|
default:
|
|
111
|
-
return transactions_1.encodeClarityValue(arg.type, arg.val);
|
|
111
|
+
return (0, transactions_1.encodeClarityValue)(arg.type, arg.val);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
exports.ContractBuilder = ContractBuilder;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBVThCO0FBQzlCLG1EQUFrRTtBQUVsRSxtQ0FBeUM7QUFFekMsd0JBQTBCO0FBQzFCLDJDQUE0RTtBQUM1RSx1RUFBb0U7QUFFcEUsTUFBYSxlQUFnQixTQUFRLGlEQUF1QjtJQUMxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsUUFBSyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQTZCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENB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O2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsT0FBTyxJQUFBLHVCQUFRLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU8sSUFBQSxpQ0FBa0IsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckM7Z0JBQ0UsT0FBTyxJQUFBLGlDQUFrQixFQUFDLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNUdELDBDQTRHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBidWZmZXJDVixcbiAgYnVmZmVyQ1ZGcm9tU3RyaW5nLFxuICBDbGFyaXR5QWJpVHlwZSxcbiAgQ2xhcml0eVR5cGUsXG4gIENsYXJpdHlWYWx1ZSxcbiAgZW5jb2RlQ2xhcml0eVZhbHVlLFxuICBub25lQ1YsXG4gIHNvbWVDVixcbiAgdHVwbGVDVixcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IENsYXJpdHlWYWx1ZUpzb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZLCBDT05UUkFDVF9OQU1FX1NUQUtJTkcgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vYWJzdHJhY3RDb250cmFjdEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgQ29udHJhY3RCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgLy8gUmV0cm8gY29tcGF0aWJpbGl0eSwgY2hlY2tzIHBhcmFtZXRlcnMuXG4gICAgdGhpcy5jb250cmFjdEFkZHJlc3ModGhpcy5fY29udHJhY3RBZGRyZXNzKTtcbiAgICB0aGlzLmNvbnRyYWN0TmFtZSh0aGlzLl9jb250cmFjdE5hbWUpO1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKHRoaXMuX2Z1bmN0aW9uTmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3ModGhpcy5fZnVuY3Rpb25BcmdzKTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBDb250cmFjdCBmaWVsZHNcbiAgLyoqXG4gICAqIFNldCB0aGUgY29udHJhY3QgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyBkZXBsb3llZCB0aGUgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRDb250cmFjdEFkZHJlc3MoYWRkcmVzcywgdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBjb250cmFjdCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb250cmFjdCBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0TmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmIChuYW1lICE9PSBDT05UUkFDVF9OQU1FX1NUQUtJTkcgJiYgbmFtZSAhPT0gQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdPbmx5IHBveC00IGFuZCBzZW5kLW1hbnktbWVtbyBjb250cmFjdHMgc3VwcG9ydGVkJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0TmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdW5jdGlvbiBuYW1lIGluIGNvbnRyYWN0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgZnVuY3Rpb25cbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGZ1bmN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoYCR7bmFtZX0gaXMgbm90IHN1cHBvcnRlZCBjb250cmFjdCBmdW5jdGlvbiBuYW1lYCk7XG4gICAgfVxuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmdW5jdGlvbkFyZ3MoYXJnczogQ2xhcml0eVZhbHVlSnNvbltdIHwgQ2xhcml0eVZhbHVlW10pOiB0aGlzIHtcbiAgICB0aGlzLl9mdW5jdGlvbkFyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoIUNsYXJpdHlUeXBlW2FyZy50eXBlXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUN2KGFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBnb3QgZGlyZWN0IGNsYXJpdHkgdmFsdWUgYWZ0ZXIgZGVzZXJpYWxpemF0aW9uIGluIGZyb21JbXBsZW1lbnRhdGlvblxuICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUN2KGFyZzogQ2xhcml0eVZhbHVlSnNvbik6IENsYXJpdHlWYWx1ZSB7XG4gICAgc3dpdGNoIChhcmcudHlwZSkge1xuICAgICAgY2FzZSAnb3B0aW9uYWwnOlxuICAgICAgICBpZiAoYXJnLnZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG5vbmVDVigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBzb21lQ1YodGhpcy5wYXJzZUN2KGFyZy52YWwpKTtcbiAgICAgICAgfVxuICAgICAgY2FzZSAndHVwbGUnOlxuICAgICAgICBpZiAoYXJnLnZhbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHt9O1xuICAgICAgICAgIGFyZy52YWwuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgICAgICAgZGF0YVthLmtleV0gPSB0aGlzLnBhcnNlQ3YoeyB0eXBlOiBhLnR5cGUsIHZhbDogYS52YWwgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHR1cGxlQ1YoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCd0dXBsZSByZXF1aXJlIEFycmF5IHZhbCcpO1xuICAgICAgY2FzZSAnYnVmZmVyJzpcbiAgICAgICAgaWYgKGFyZy52YWwgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoYXJnLnZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnZhbCA9IE51bWJlcihhcmcudmFsKTtcbiAgICAgICAgaWYgKG52YWwpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoQnVmZmVyLm9mKG52YWwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVmZmVyQ1ZGcm9tU3RyaW5nKGFyZy52YWwpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGVuY29kZUNsYXJpdHlWYWx1ZShhcmcudHlwZSBhcyBDbGFyaXR5QWJpVHlwZSwgYXJnLnZhbCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/dist/src/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,13 +18,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
20
|
};
|
|
17
|
-
var __importStar = (this && this.__importStar) || function (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
24
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
39
|
exports.Utils = exports.AddressHashMode = exports.AddressVersion = void 0;
|
|
26
40
|
var transactions_1 = require("@stacks/transactions");
|
|
@@ -30,4 +44,4 @@ __exportStar(require("./keyPair"), exports);
|
|
|
30
44
|
__exportStar(require("./transaction"), exports);
|
|
31
45
|
__exportStar(require("./transactionBuilderFactory"), exports);
|
|
32
46
|
exports.Utils = __importStar(require("./utils"));
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1RTtBQUE5RCw4R0FBQSxjQUFjLE9BQUE7QUFBRSwrR0FBQSxlQUFlLE9BQUE7QUFDeEMsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5Qiw4REFBNEM7QUFDNUMsaURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWRkcmVzc1ZlcnNpb24sIEFkZHJlc3NIYXNoTW9kZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|
package/dist/src/lib/keyPair.js
CHANGED
|
@@ -16,16 +16,16 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
16
16
|
constructor(source) {
|
|
17
17
|
super(source);
|
|
18
18
|
if (!source) {
|
|
19
|
-
const seed = crypto_1.randomBytes(constants_1.DEFAULT_SEED_SIZE_BYTES);
|
|
19
|
+
const seed = (0, crypto_1.randomBytes)(constants_1.DEFAULT_SEED_SIZE_BYTES);
|
|
20
20
|
this.hdNode = utxo_lib_1.bip32.fromSeed(seed);
|
|
21
21
|
}
|
|
22
|
-
else if (sdk_core_1.isSeed(source)) {
|
|
22
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
23
23
|
this.hdNode = utxo_lib_1.bip32.fromSeed(source.seed);
|
|
24
24
|
}
|
|
25
|
-
else if (sdk_core_1.isPrivateKey(source)) {
|
|
25
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
26
26
|
this.recordKeysFromPrivateKey(source.prv);
|
|
27
27
|
}
|
|
28
|
-
else if (sdk_core_1.isPublicKey(source)) {
|
|
28
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
29
29
|
this.recordKeysFromPublicKey(source.pub);
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
@@ -46,10 +46,10 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
46
46
|
* @param {string} prv A raw private key
|
|
47
47
|
*/
|
|
48
48
|
recordKeysFromPrivateKey(prv) {
|
|
49
|
-
if (!utils_1.isValidPrivateKey(prv)) {
|
|
49
|
+
if (!(0, utils_1.isValidPrivateKey)(prv)) {
|
|
50
50
|
throw new Error('Unsupported private key');
|
|
51
51
|
}
|
|
52
|
-
if (sdk_core_1.isValidXprv(prv)) {
|
|
52
|
+
if ((0, sdk_core_1.isValidXprv)(prv)) {
|
|
53
53
|
this.hdNode = utxo_lib_1.bip32.fromBase58(prv);
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
@@ -67,10 +67,10 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
67
67
|
* @param {string} pub A raw public key
|
|
68
68
|
*/
|
|
69
69
|
recordKeysFromPublicKey(pub) {
|
|
70
|
-
if (!utils_1.isValidPublicKey(pub)) {
|
|
70
|
+
if (!(0, utils_1.isValidPublicKey)(pub)) {
|
|
71
71
|
throw new Error('Unsupported public key');
|
|
72
72
|
}
|
|
73
|
-
if (sdk_core_1.isValidXpub(pub)) {
|
|
73
|
+
if ((0, sdk_core_1.isValidXpub)(pub)) {
|
|
74
74
|
this.hdNode = utxo_lib_1.bip32.fromBase58(pub);
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
@@ -84,8 +84,7 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
84
84
|
* @returns {DefaultKeys} The keys in the protocol default key format
|
|
85
85
|
*/
|
|
86
86
|
getKeys(compressed = false) {
|
|
87
|
-
|
|
88
|
-
let prv = (_a = this.getPrivateKey()) === null || _a === void 0 ? void 0 : _a.toString('hex');
|
|
87
|
+
let prv = this.getPrivateKey()?.toString('hex');
|
|
89
88
|
if (prv && compressed) {
|
|
90
89
|
prv += '01';
|
|
91
90
|
}
|
|
@@ -113,8 +112,8 @@ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
|
113
112
|
* @returns {string} The public address
|
|
114
113
|
*/
|
|
115
114
|
getSTXAddress(compressed = false, network = transactions_1.TransactionVersion.Mainnet) {
|
|
116
|
-
return transactions_1.getAddressFromPublicKey(this.getKeys(compressed).pub, network);
|
|
115
|
+
return (0, transactions_1.getAddressFromPublicKey)(this.getKeys(compressed).pub, network);
|
|
117
116
|
}
|
|
118
117
|
}
|
|
119
118
|
exports.KeyPair = KeyPair;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBcUM7QUFDckMsbURBQXFEO0FBQ3JELHVEQUFtRjtBQUNuRixtREFTOEI7QUFDOUIsbUNBQThEO0FBQzlELDJDQUFzRDtBQUV0RCxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEdBQUcsSUFBQSxvQkFBVyxFQUFDLG1DQUF1QixDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxJQUFBLGlCQUFNLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHVCQUFZLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLElBQUEsc0JBQVcsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsbUNBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILHdCQUF3QixDQUFDLEdBQVc7UUFDbEMsSUFBSSxDQUFDLElBQUEseUJBQWlCLEVBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELElBQUksSUFBQSxzQkFBVyxFQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsdUJBQXVCLENBQUMsR0FBVztRQUNqQyxJQUFJLENBQUMsSUFBQSx3QkFBZ0IsRUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxJQUFBLHNCQUFXLEVBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUs7UUFDeEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN0QixHQUFHLElBQUksSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN0RCxHQUFHO1NBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLGlDQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxhQUFhLENBQUMsVUFBVSxHQUFHLEtBQUssRUFBRSxVQUE4QixpQ0FBa0IsQ0FBQyxPQUFPO1FBQ3hGLE9BQU8sSUFBQSxzQ0FBdUIsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUEvR0QsMEJBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgYmlwMzIsIEVDUGFpciB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGdldEFkZHJlc3NGcm9tUHVibGljS2V5LCBUcmFuc2FjdGlvblZlcnNpb24gfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBEZWZhdWx0S2V5cyxcbiAgaXNQcml2YXRlS2V5LFxuICBpc1B1YmxpY0tleSxcbiAgaXNTZWVkLFxuICBpc1ZhbGlkWHBydixcbiAgaXNWYWxpZFhwdWIsXG4gIEtleVBhaXJPcHRpb25zLFxuICBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGlzVmFsaWRQcml2YXRlS2V5LCBpc1ZhbGlkUHVibGljS2V5IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX1NFRURfU0laRV9CWVRFUyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBjb25zdCBzZWVkID0gcmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzU2VlZChzb3VyY2UpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNvdXJjZS5zZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGROb2RlKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIudG9LZXlQYWlyKHRoaXMuaGROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBrZXlwYWlyIGZyb20gYSBwcm90b2NvbCBwcml2YXRlIGtleSBvciBleHRlbmRlZCBwcml2YXRlIGtleS5cbiAgICpcbiAgICogVGhlIHByb3RvY29sIHByaXZhdGUga2V5IGlzIGVpdGhlciAzMiBvciAzMyBieXRlcyBsb25nICg2NCBvciA2NlxuICAgKiBjaGFyYWN0ZXJzIGhleCkuICBJZiBpdCBpcyAzMiBieXRlcyBsb25nLCBzZXQgdGhlIGtleXBhaXIncyBcImNvbXByZXNzZWRcIlxuICAgKiBmaWVsZCB0byBmYWxzZSB0byBsYXRlciBnZW5lcmF0ZSB1bmNvbXByZXNzZWQgcHVibGljIGtleXMgKHRoZSBkZWZhdWx0KS5cbiAgICogQSAzMyBieXRlIGtleSBoYXMgMHgwMSBhcyB0aGUgbGFzdCBieXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJ2IEEgcmF3IHByaXZhdGUga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWlzVmFsaWRQcml2YXRlS2V5KHBydikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG5cbiAgICBpZiAoaXNWYWxpZFhwcnYocHJ2KSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbShwcnYuc2xpY2UoMCwgNjQpLCAnaGV4JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBFQ1BhaXIgZnJvbSBhIHByb3RvY29sIHB1YmxpYyBrZXkgb3IgZXh0ZW5kZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogVGhlIHByb3RvY29sIHB1YmxpYyBrZXkgaXMgZWl0aGVyIDMyIGJ5dGVzIG9yIDY0IGJ5dGVzIGxvbmcsIHdpdGggYVxuICAgKiBvbmUtYnl0ZSBwcmVmaXggKGEgdG90YWwgb2YgNjYgb3IgMTMwIGNoYXJhY3RlcnMgaW4gaGV4KS4gIElmIHRoZVxuICAgKiBwcmVmaXggaXMgMHgwMiBvciAweDAzLCBpdCBpcyBhIGNvbXByZXNzZWQgcHVibGljIGtleS4gIEEgcHJlZml4IG9mIDB4MDRcbiAgICogZGVub3RlcyBhbiB1bmNvbXByZXNzZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YiBBIHJhdyBwdWJsaWMga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleShwdWI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZFB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHB1YmxpYyBrZXknKTtcbiAgICB9XG5cbiAgICBpZiAoaXNWYWxpZFhwdWIocHViKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhY2tzIGRlZmF1bHQga2V5cyBmb3JtYXQgaXMgcmF3IHByaXZhdGUgYW5kIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gY29tcHJlc3NlZCAtIENvbXByZXNzIHB1YmxpYyBrZXkgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICAgKiBAcmV0dXJucyB7RGVmYXVsdEtleXN9IFRoZSBrZXlzIGluIHRoZSBwcm90b2NvbCBkZWZhdWx0IGtleSBmb3JtYXRcbiAgICovXG4gIGdldEtleXMoY29tcHJlc3NlZCA9IGZhbHNlKTogRGVmYXVsdEtleXMge1xuICAgIGxldCBwcnYgPSB0aGlzLmdldFByaXZhdGVLZXkoKT8udG9TdHJpbmcoJ2hleCcpO1xuICAgIGlmIChwcnYgJiYgY29tcHJlc3NlZCkge1xuICAgICAgcHJ2ICs9ICcwMSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkIH0pLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydixcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q29tcHJlc3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rZXlQYWlyLmNvbXByZXNzZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgcHVibGljIGFkZHJlc3Mgb2YgYW4gdW5jb21wcmVzc2VkIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBwdWJsaWMgYWRkcmVzc1xuICAgKi9cbiAgZ2V0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFNUWEFkZHJlc3MoZmFsc2UsIFRyYW5zYWN0aW9uVmVyc2lvbi5NYWlubmV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBwdWJsaWMgYWRkcmVzcyBvZiBhbiB1bmNvbXByZXNzZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBjb21wcmVzc2VkIC0gQ29tcHJlc3MgcHVibGljIGtleSAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25WZXJzaW9ufSBuZXR3b3JrIC0gc2VsZWN0IE1haW5uZXQgb3IgVGVzdG5ldCBmb3IgdGhlIGFkZHJlc3NcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHB1YmxpYyBhZGRyZXNzXG4gICAqL1xuICBnZXRTVFhBZGRyZXNzKGNvbXByZXNzZWQgPSBmYWxzZSwgbmV0d29yazogVHJhbnNhY3Rpb25WZXJzaW9uID0gVHJhbnNhY3Rpb25WZXJzaW9uLk1haW5uZXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSh0aGlzLmdldEtleXMoY29tcHJlc3NlZCkucHViLCBuZXR3b3JrKTtcbiAgfVxufVxuIl19
|
|
@@ -16,30 +16,30 @@ class SendmanyBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
16
16
|
super(_coinConfig);
|
|
17
17
|
this._sendParams = [];
|
|
18
18
|
this.sendParamsToFunctionArgs = (sendParams) => [
|
|
19
|
-
transactions_1.listCV(sendParams.map((recipient) => transactions_1.tupleCV({
|
|
20
|
-
to: transactions_1.standardPrincipalCV(recipient.address),
|
|
21
|
-
ustx: transactions_1.uintCV(recipient.amount),
|
|
22
|
-
memo: transactions_1.bufferCVFromString(recipient.memo || ''),
|
|
19
|
+
(0, transactions_1.listCV)(sendParams.map((recipient) => (0, transactions_1.tupleCV)({
|
|
20
|
+
to: (0, transactions_1.standardPrincipalCV)(recipient.address),
|
|
21
|
+
ustx: (0, transactions_1.uintCV)(recipient.amount),
|
|
22
|
+
memo: (0, transactions_1.bufferCVFromString)(recipient.memo || ''),
|
|
23
23
|
}))),
|
|
24
24
|
];
|
|
25
25
|
}
|
|
26
26
|
static isValidContractCall(coinConfig, payload) {
|
|
27
27
|
return (coinConfig.network.sendmanymemoContractAddress ===
|
|
28
|
-
transactions_1.addressToString(payload.contractAddress) &&
|
|
28
|
+
(0, transactions_1.addressToString)(payload.contractAddress) &&
|
|
29
29
|
constants_1.CONTRACT_NAME_SENDMANY === payload.contractName.content &&
|
|
30
30
|
constants_1.FUNCTION_NAME_SENDMANY === payload.functionName.content);
|
|
31
31
|
}
|
|
32
32
|
sendParamsToPostcondition(sendParams) {
|
|
33
33
|
const sum = sendParams.reduce((current, next) => current.add(new bn_js_1.default(next.amount)), new bn_js_1.default(0));
|
|
34
34
|
return [
|
|
35
|
-
transactions_1.makeStandardSTXPostCondition(utils_1.getSTXAddressFromPubKeys(this._fromPubKeys, this._coinConfig.network.type === statics_1.NetworkType.MAINNET
|
|
35
|
+
(0, transactions_1.makeStandardSTXPostCondition)((0, utils_1.getSTXAddressFromPubKeys)(this._fromPubKeys, this._coinConfig.network.type === statics_1.NetworkType.MAINNET
|
|
36
36
|
? transactions_1.AddressVersion.MainnetMultiSig
|
|
37
37
|
: transactions_1.AddressVersion.TestnetMultiSig, this._fromPubKeys.length > 1 ? transactions_1.AddressHashMode.SerializeP2SH : transactions_1.AddressHashMode.SerializeP2PKH, this._numberSignatures).address, transactions_1.FungibleConditionCode.Equal, sum),
|
|
38
38
|
];
|
|
39
39
|
}
|
|
40
40
|
initBuilder(tx) {
|
|
41
41
|
super.initBuilder(tx);
|
|
42
|
-
this._sendParams = utils_1.functionArgsToSendParams(tx.stxTransaction.payload.functionArgs);
|
|
42
|
+
this._sendParams = (0, utils_1.functionArgsToSendParams)(tx.stxTransaction.payload.functionArgs);
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Set a transfer
|
|
@@ -48,13 +48,13 @@ class SendmanyBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
48
48
|
* @returns {TransactionBuilder} This transaction builder
|
|
49
49
|
*/
|
|
50
50
|
send({ address, amount, memo }) {
|
|
51
|
-
if (!address || !utils_1.isValidAddress(address)) {
|
|
51
|
+
if (!address || !(0, utils_1.isValidAddress)(address)) {
|
|
52
52
|
throw new sdk_core_1.BuildTransactionError('Invalid or missing address, got: ' + address);
|
|
53
53
|
}
|
|
54
|
-
if (!amount || !utils_1.isValidAmount(amount)) {
|
|
54
|
+
if (!amount || !(0, utils_1.isValidAmount)(amount)) {
|
|
55
55
|
throw new sdk_core_1.BuildTransactionError('Invalid or missing amount, got: ' + amount);
|
|
56
56
|
}
|
|
57
|
-
if (!!memo && !utils_1.isValidMemo(memo)) {
|
|
57
|
+
if (!!memo && !(0, utils_1.isValidMemo)(memo)) {
|
|
58
58
|
throw new sdk_core_1.BuildTransactionError('Invalid memo, got: ' + memo);
|
|
59
59
|
}
|
|
60
60
|
this._sendParams.push({ address, amount, memo });
|
|
@@ -72,4 +72,4 @@ class SendmanyBuilder extends abstractContractBuilder_1.AbstractContractBuilder
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
exports.SendmanyBuilder = SendmanyBuilder;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZG1hbnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zZW5kbWFueUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaURBQStHO0FBQy9HLGtEQUEyQjtBQUMzQix1REFjOEI7QUFDOUIsbURBQTZEO0FBRTdELG1DQU1pQjtBQUVqQiwyQ0FBNkU7QUFFN0UsdUVBQW9FO0FBRXBFLE1BQWEsZUFBZ0IsU0FBUSxpREFBdUI7SUFHMUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFlL0IsNkJBQXdCLEdBQUcsQ0FBQyxVQUF3QixFQUFrQixFQUFFLENBQUM7WUFDL0UsSUFBQSxxQkFBTSxFQUNKLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUMzQixJQUFBLHNCQUFPLEVBQUM7Z0JBQ04sRUFBRSxFQUFFLElBQUEsa0NBQW1CLEVBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDMUMsSUFBSSxFQUFFLElBQUEscUJBQU0sRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUM5QixJQUFJLEVBQUUsSUFBQSxpQ0FBa0IsRUFBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQzthQUMvQyxDQUFDLENBQ0gsQ0FDRjtTQUNGLENBQUM7SUFyQkYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQyxFQUFFLE9BQTRCO1FBQzlGLE9BQU8sQ0FDSixVQUFVLENBQUMsT0FBOEIsQ0FBQywyQkFBMkI7WUFDcEUsSUFBQSw4QkFBZSxFQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDMUMsa0NBQXNCLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPO1lBQ3ZELGtDQUFzQixLQUFLLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUN4RCxDQUFDO0lB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bnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgTmV0d29ya1R5cGUsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtIGZyb20gJ2JuLmpzJztcbmltcG9ydCB7XG4gIEFkZHJlc3NIYXNoTW9kZSxcbiAgYWRkcmVzc1RvU3RyaW5nLFxuICBBZGRyZXNzVmVyc2lvbixcbiAgYnVmZmVyQ1ZGcm9tU3RyaW5nLFxuICBDbGFyaXR5VmFsdWUsXG4gIEZ1bmdpYmxlQ29uZGl0aW9uQ29kZSxcbiAgbGlzdENWLFxuICBtYWtlU3RhbmRhcmRTVFhQb3N0Q29uZGl0aW9uLFxuICBQb3N0Q29uZGl0aW9uLFxuICBQb3N0Q29uZGl0aW9uTW9kZSxcbiAgc3RhbmRhcmRQcmluY2lwYWxDVixcbiAgdHVwbGVDVixcbiAgdWludENWLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgZnVuY3Rpb25BcmdzVG9TZW5kUGFyYW1zLFxuICBnZXRTVFhBZGRyZXNzRnJvbVB1YktleXMsXG4gIGlzVmFsaWRBZGRyZXNzLFxuICBpc1ZhbGlkQW1vdW50LFxuICBpc1ZhbGlkTWVtbyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBTZW5kUGFyYW1zIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZLCBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29udHJhY3RDYWxsUGF5bG9hZCB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zL2Rpc3QvcGF5bG9hZCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vYWJzdHJhY3RDb250cmFjdEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgU2VuZG1hbnlCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIge1xuICBwcml2YXRlIF9zZW5kUGFyYW1zOiBTZW5kUGFyYW1zW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRDb250cmFjdENhbGwoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHBheWxvYWQ6IENvbnRyYWN0Q2FsbFBheWxvYWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGNvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmspLnNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcyA9PT1cbiAgICAgICAgYWRkcmVzc1RvU3RyaW5nKHBheWxvYWQuY29udHJhY3RBZGRyZXNzKSAmJlxuICAgICAgQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSA9PT0gcGF5bG9hZC5jb250cmFjdE5hbWUuY29udGVudCAmJlxuICAgICAgRlVOQ1RJT05fTkFNRV9TRU5ETUFOWSA9PT0gcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNlbmRQYXJhbXNUb0Z1bmN0aW9uQXJncyA9IChzZW5kUGFyYW1zOiBTZW5kUGFyYW1zW10pOiBDbGFyaXR5VmFsdWVbXSA9PiBbXG4gICAgbGlzdENWKFxuICAgICAgc2VuZFBhcmFtcy5tYXAoKHJlY2lwaWVudCkgPT5cbiAgICAgICAgdHVwbGVDVih7XG4gICAgICAgICAgdG86IHN0YW5kYXJkUHJpbmNpcGFsQ1YocmVjaXBpZW50LmFkZHJlc3MpLFxuICAgICAgICAgIHVzdHg6IHVpbnRDVihyZWNpcGllbnQuYW1vdW50KSxcbiAgICAgICAgICBtZW1vOiBidWZmZXJDVkZyb21TdHJpbmcocmVjaXBpZW50Lm1lbW8gfHwgJycpLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICksXG4gIF07XG5cbiAgcHJpdmF0ZSBzZW5kUGFyYW1zVG9Qb3N0Y29uZGl0aW9uKHNlbmRQYXJhbXM6IFNlbmRQYXJhbXNbXSk6IFBvc3RDb25kaXRpb25bXSB7XG4gICAgY29uc3Qgc3VtOiBCaWdOdW0gPSBzZW5kUGFyYW1zLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5hZGQobmV3IEJpZ051bShuZXh0LmFtb3VudCkpLCBuZXcgQmlnTnVtKDApKTtcbiAgICByZXR1cm4gW1xuICAgICAgbWFrZVN0YW5kYXJkU1RYUG9zdENvbmRpdGlvbihcbiAgICAgICAgZ2V0U1RYQWRkcmVzc0Zyb21QdWJLZXlzKFxuICAgICAgICAgIHRoaXMuX2Zyb21QdWJLZXlzLFxuICAgICAgICAgIHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUXG4gICAgICAgICAgICA/IEFkZHJlc3NWZXJzaW9uLk1haW5uZXRNdWx0aVNpZ1xuICAgICAgICAgICAgOiBBZGRyZXNzVmVyc2lvbi5UZXN0bmV0TXVsdGlTaWcsXG4gICAgICAgICAgdGhpcy5fZnJvbVB1YktleXMubGVuZ3RoID4gMSA/IEFkZHJlc3NIYXNoTW9kZS5TZXJpYWxpemVQMlNIIDogQWRkcmVzc0hhc2hNb2RlLlNlcmlhbGl6ZVAyUEtILFxuICAgICAgICAgIHRoaXMuX251bWJlclNpZ25hdHVyZXNcbiAgICAgICAgKS5hZGRyZXNzLFxuICAgICAgICBGdW5naWJsZUNvbmRpdGlvbkNvZGUuRXF1YWwsXG4gICAgICAgIHN1bVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHRoaXMuX3NlbmRQYXJhbXMgPSBmdW5jdGlvbkFyZ3NUb1NlbmRQYXJhbXMoKHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQgYXMgQ29udHJhY3RDYWxsUGF5bG9hZCkuZnVuY3Rpb25BcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IGEgdHJhbnNmZXJcbiAgICpcbiAgICogQHBhcmFtIHtTZW5kUGFyYW1zfSBzZW5kUGFyYW1zIC0gdGhlIHNlbmRlciBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZCh7IGFkZHJlc3MsIGFtb3VudCwgbWVtbyB9OiBTZW5kUGFyYW1zKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzIHx8ICFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAoIWFtb3VudCB8fCAhaXNWYWxpZEFtb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYW1vdW50LCBnb3Q6ICcgKyBhbW91bnQpO1xuICAgIH1cbiAgICBpZiAoISFtZW1vICYmICFpc1ZhbGlkTWVtbyhtZW1vKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBtZW1vLCBnb3Q6ICcgKyBtZW1vKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZW5kUGFyYW1zLnB1c2goeyBhZGRyZXNzLCBhbW91bnQsIG1lbW8gfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9ICh0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrKS5zZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3M7XG4gICAgdGhpcy5fY29udHJhY3ROYW1lID0gQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWTtcbiAgICB0aGlzLl9mdW5jdGlvbk5hbWUgPSBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZO1xuICAgIHRoaXMuX2Z1bmN0aW9uQXJncyA9IHRoaXMuc2VuZFBhcmFtc1RvRnVuY3Rpb25BcmdzKHRoaXMuX3NlbmRQYXJhbXMpO1xuICAgIHRoaXMuX3Bvc3RDb25kaXRpb25Nb2RlID0gUG9zdENvbmRpdGlvbk1vZGUuRGVueTtcbiAgICB0aGlzLl9wb3N0Q29uZGl0aW9ucyA9IHRoaXMuc2VuZFBhcmFtc1RvUG9zdGNvbmRpdGlvbih0aGlzLl9zZW5kUGFyYW1zKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -17,17 +17,16 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
17
17
|
return true;
|
|
18
18
|
}
|
|
19
19
|
async sign(keyPair, sigHash) {
|
|
20
|
-
var _a;
|
|
21
20
|
const keyPairs = keyPair instanceof Array ? keyPair : [keyPair];
|
|
22
21
|
const signer = new transactions_1.TransactionSigner(this._stxTransaction);
|
|
23
22
|
signer.checkOversign = false;
|
|
24
|
-
signer.sigHash =
|
|
23
|
+
signer.sigHash = sigHash ?? this._sigHash ?? this._stxTransaction.verifyBegin();
|
|
25
24
|
for (const kp of keyPairs) {
|
|
26
25
|
const keys = kp.getKeys(kp.getCompressed());
|
|
27
26
|
if (!keys.prv) {
|
|
28
27
|
throw new sdk_core_1.SigningError('Missing private key');
|
|
29
28
|
}
|
|
30
|
-
const privKey = transactions_1.createStacksPrivateKey(keys.prv);
|
|
29
|
+
const privKey = (0, transactions_1.createStacksPrivateKey)(keys.prv);
|
|
31
30
|
signer.signOrigin(privKey);
|
|
32
31
|
this._sigHash = signer.sigHash;
|
|
33
32
|
}
|
|
@@ -36,7 +35,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
36
35
|
const pubKeyStrings = pubKeyString instanceof Array ? pubKeyString : [pubKeyString];
|
|
37
36
|
const signer = new transactions_1.TransactionSigner(this._stxTransaction);
|
|
38
37
|
pubKeyStrings.forEach((pubKey) => {
|
|
39
|
-
signer.appendOrigin(transactions_1.createStacksPublicKey(pubKey));
|
|
38
|
+
signer.appendOrigin((0, transactions_1.createStacksPublicKey)(pubKey));
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
41
|
async signWithSignatures(signature, isMultiSig) {
|
|
@@ -48,7 +47,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
48
47
|
this._stxTransaction = this._stxTransaction.createTxWithSignature(signatures[0].data);
|
|
49
48
|
}
|
|
50
49
|
else {
|
|
51
|
-
const authFields = signatures.map((sig) => transactions_1.createTransactionAuthField(transactions_1.PubKeyEncoding.Compressed, sig));
|
|
50
|
+
const authFields = signatures.map((sig) => (0, transactions_1.createTransactionAuthField)(transactions_1.PubKeyEncoding.Compressed, sig));
|
|
52
51
|
this._stxTransaction.auth.spendingCondition.fields = this._stxTransaction.auth.spendingCondition.fields.concat(authFields);
|
|
53
52
|
}
|
|
54
53
|
if (signatures.length > 0) {
|
|
@@ -57,7 +56,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
57
56
|
}
|
|
58
57
|
get signature() {
|
|
59
58
|
if (this._stxTransaction && this._stxTransaction.auth.spendingCondition) {
|
|
60
|
-
if (transactions_1.isSingleSig(this._stxTransaction.auth.spendingCondition)) {
|
|
59
|
+
if ((0, transactions_1.isSingleSig)(this._stxTransaction.auth.spendingCondition)) {
|
|
61
60
|
return [this._stxTransaction.auth.spendingCondition.signature.data];
|
|
62
61
|
}
|
|
63
62
|
else {
|
|
@@ -80,7 +79,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
80
79
|
const result = {
|
|
81
80
|
id: this._stxTransaction.txid(),
|
|
82
81
|
fee: this._stxTransaction.auth.getFee().toString(10),
|
|
83
|
-
from: utils_1.getTxSenderAddress(this._stxTransaction),
|
|
82
|
+
from: (0, utils_1.getTxSenderAddress)(this._stxTransaction),
|
|
84
83
|
nonce: this.getNonce(),
|
|
85
84
|
payload: this.getPayloadData(),
|
|
86
85
|
};
|
|
@@ -93,8 +92,8 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
93
92
|
payloadType: transactions_1.PayloadType.TokenTransfer,
|
|
94
93
|
// result.payload.memo will be padded with \u0000 up to
|
|
95
94
|
// MEMO_MAX_LENGTH_BYTES as defined in @stacks/transactions
|
|
96
|
-
memo: utils_1.unpadMemo(payload.memo.content),
|
|
97
|
-
to: transactions_1.addressToString({
|
|
95
|
+
memo: (0, utils_1.unpadMemo)(payload.memo.content),
|
|
96
|
+
to: (0, transactions_1.addressToString)({
|
|
98
97
|
type: transactions_1.StacksMessageType.Address,
|
|
99
98
|
version: payload.recipient.address.version,
|
|
100
99
|
hash160: payload.recipient.address.hash160.toString(),
|
|
@@ -107,7 +106,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
107
106
|
const payload = this._stxTransaction.payload;
|
|
108
107
|
const contractPayload = {
|
|
109
108
|
payloadType: transactions_1.PayloadType.ContractCall,
|
|
110
|
-
contractAddress: transactions_1.addressToString(payload.contractAddress),
|
|
109
|
+
contractAddress: (0, transactions_1.addressToString)(payload.contractAddress),
|
|
111
110
|
contractName: payload.contractName.content,
|
|
112
111
|
functionName: payload.functionName.content,
|
|
113
112
|
functionArgs: payload.functionArgs.map(utils_1.stringifyCv),
|
|
@@ -153,9 +152,9 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
153
152
|
* @param rawTransaction
|
|
154
153
|
*/
|
|
155
154
|
fromRawTransaction(rawTransaction) {
|
|
156
|
-
const raw = utils_1.removeHexPrefix(rawTransaction);
|
|
155
|
+
const raw = (0, utils_1.removeHexPrefix)(rawTransaction);
|
|
157
156
|
try {
|
|
158
|
-
this._stxTransaction = transactions_1.deserializeTransaction(transactions_1.BufferReader.fromBuffer(Buffer.from(raw, 'hex')));
|
|
157
|
+
this._stxTransaction = (0, transactions_1.deserializeTransaction)(transactions_1.BufferReader.fromBuffer(Buffer.from(raw, 'hex')));
|
|
159
158
|
}
|
|
160
159
|
catch (e) {
|
|
161
160
|
throw new sdk_core_1.ParseTransactionError('Error parsing the raw transaction');
|
|
@@ -196,7 +195,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
196
195
|
}
|
|
197
196
|
else if (txJson.payload.payloadType === transactions_1.PayloadType.ContractCall) {
|
|
198
197
|
if (txJson.payload.contractAddress === this._coinConfig.network.sendmanymemoContractAddress) {
|
|
199
|
-
const sendParams = utils_1.functionArgsToSendParams(this.stxTransaction.payload.functionArgs);
|
|
198
|
+
const sendParams = (0, utils_1.functionArgsToSendParams)(this.stxTransaction.payload.functionArgs);
|
|
200
199
|
const coin = this._coinConfig.name;
|
|
201
200
|
const sum = sendParams.reduce((current, next) => current.add(new bn_js_1.default(next.amount)), new bn_js_1.default(0));
|
|
202
201
|
this._outputs = sendParams.map((sendParam) => ({ address: sendParam.address, value: sendParam.amount, coin }));
|
|
@@ -222,4 +221,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
222
221
|
}
|
|
223
222
|
}
|
|
224
223
|
exports.Transaction = Transaction;
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQWM4QjtBQUU5QixtREFROEI7QUFFOUIsbUNBQWdIO0FBR2hILGtEQUEyQjtBQUUzQixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUs5QyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBNEIsRUFBRSxPQUFnQjs7UUFDdkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLElBQUksZ0NBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxJQUFJLENBQUMsUUFBUSxtQ0FBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hGLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUMvQztZQUNELE1BQU0sT0FBTyxHQUFHLHFDQUFzQixD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QUMsQ0FBQyxDQUFDO2dCQUMvRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDeEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRztvQkFDZDt3QkFDRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlO3dCQUN2QyxLQUFLLEVBQUUsR0FBRzt3QkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO3FCQUM1QjtpQkFDRixDQUFDO2dCQUVGLElBQUksQ0FBQyxPQUFPLEdBQUc7b0JBQ2I7d0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNwQixLQUFLLEVBQUUsR0FBRzt3QkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO3FCQUM1QjtpQkFDRixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7Q0FDRjtBQW5PRCxrQ0FtT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhZGRyZXNzVG9TdHJpbmcsXG4gIEJ1ZmZlclJlYWRlcixcbiAgY3JlYXRlU3RhY2tzUHJpdmF0ZUtleSxcbiAgY3JlYXRlU3RhY2tzUHVibGljS2V5LFxuICBjcmVhdGVUcmFuc2FjdGlvbkF1dGhGaWVsZCxcbiAgZGVzZXJpYWxpemVUcmFuc2FjdGlvbixcbiAgaXNTaW5nbGVTaWcsXG4gIE11bHRpU2lnU3BlbmRpbmdDb25kaXRpb24sXG4gIFBheWxvYWRUeXBlLFxuICBQdWJLZXlFbmNvZGluZyxcbiAgU3RhY2tzTWVzc2FnZVR5cGUsXG4gIFN0YWNrc1RyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblNpZ25lcixcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90U3VwcG9ydGVkLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBTaWduYXR1cmVEYXRhLCBTdGFja3NDb250cmFjdFBheWxvYWQsIFN0YWNrc1RyYW5zYWN0aW9uUGF5bG9hZCwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBmdW5jdGlvbkFyZ3NUb1NlbmRQYXJhbXMsIGdldFR4U2VuZGVyQWRkcmVzcywgcmVtb3ZlSGV4UHJlZml4LCBzdHJpbmdpZnlDdiwgdW5wYWRNZW1vIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IENvbnRyYWN0Q2FsbFBheWxvYWQgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucy9kaXN0L3BheWxvYWQnO1xuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3N0eFRyYW5zYWN0aW9uOiBTdGFja3NUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHByaXZhdGUgX3NpZ0hhc2g6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNpZ24oa2V5UGFpcjogS2V5UGFpcltdIHwgS2V5UGFpciwgc2lnSGFzaD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGtleVBhaXJzID0ga2V5UGFpciBpbnN0YW5jZW9mIEFycmF5ID8ga2V5UGFpciA6IFtrZXlQYWlyXTtcbiAgICBjb25zdCBzaWduZXIgPSBuZXcgVHJhbnNhY3Rpb25TaWduZXIodGhpcy5fc3R4VHJhbnNhY3Rpb24pO1xuICAgIHNpZ25lci5jaGVja092ZXJzaWduID0gZmFsc2U7XG4gICAgc2lnbmVyLnNpZ0hhc2ggPSBzaWdIYXNoID8/IHRoaXMuX3NpZ0hhc2ggPz8gdGhpcy5fc3R4VHJhbnNhY3Rpb24udmVyaWZ5QmVnaW4oKTtcbiAgICBmb3IgKGNvbnN0IGtwIG9mIGtleVBhaXJzKSB7XG4gICAgICBjb25zdCBrZXlzID0ga3AuZ2V0S2V5cyhrcC5nZXRDb21wcmVzc2VkKCkpO1xuICAgICAgaWYgKCFrZXlzLnBydikge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBwcml2S2V5ID0gY3JlYXRlU3RhY2tzUHJpdmF0ZUtleShrZXlzLnBydik7XG4gICAgICBzaWduZXIuc2lnbk9yaWdpbihwcml2S2V5KTtcbiAgICAgIHRoaXMuX3NpZ0hhc2ggPSBzaWduZXIuc2lnSGFzaDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBhcHBlbmRPcmlnaW4ocHViS2V5U3RyaW5nOiBzdHJpbmdbXSB8IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHB1YktleVN0cmluZ3MgPSBwdWJLZXlTdHJpbmcgaW5zdGFuY2VvZiBBcnJheSA/IHB1YktleVN0cmluZyA6IFtwdWJLZXlTdHJpbmddO1xuICAgIGNvbnN0IHNpZ25lcjogVHJhbnNhY3Rpb25TaWduZXIgPSBuZXcgVHJhbnNhY3Rpb25TaWduZXIodGhpcy5fc3R4VHJhbnNhY3Rpb24pO1xuICAgIHB1YktleVN0cmluZ3MuZm9yRWFjaCgocHViS2V5KSA9PiB7XG4gICAgICBzaWduZXIuYXBwZW5kT3JpZ2luKGNyZWF0ZVN0YWNrc1B1YmxpY0tleShwdWJLZXkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNpZ25XaXRoU2lnbmF0dXJlcyhzaWduYXR1cmU6IFNpZ25hdHVyZURhdGFbXSB8IFNpZ25hdHVyZURhdGEsIGlzTXVsdGlTaWc6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXNpZ25hdHVyZSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBzaWduYXR1cmVzJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBzaWduYXR1cmUgaW5zdGFuY2VvZiBBcnJheSA/IHNpZ25hdHVyZSA6IFtzaWduYXR1cmVdO1xuXG4gICAgaWYgKCFpc011bHRpU2lnKSB7XG4gICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbiA9IHRoaXMuX3N0eFRyYW5zYWN0aW9uLmNyZWF0ZVR4V2l0aFNpZ25hdHVyZShzaWduYXR1cmVzWzBdLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhdXRoRmllbGRzID0gc2lnbmF0dXJlcy5tYXAoKHNpZykgPT4gY3JlYXRlVHJhbnNhY3Rpb25BdXRoRmllbGQoUHViS2V5RW5jb2RpbmcuQ29tcHJlc3NlZCwgc2lnKSk7XG4gICAgICAodGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiBhcyBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uKS5maWVsZHMgPSAoXG4gICAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24gYXMgTXVsdGlTaWdTcGVuZGluZ0NvbmRpdGlvblxuICAgICAgKS5maWVsZHMuY29uY2F0KGF1dGhGaWVsZHMpO1xuICAgIH1cbiAgICBpZiAoc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zaWdIYXNoID0gc2lnbmF0dXJlc1tzaWduYXR1cmVzLmxlbmd0aCAtIDFdLnNpZ0hhc2g7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpZ25hdHVyZSgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uICYmIHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24pIHtcbiAgICAgIGlmIChpc1NpbmdsZVNpZyh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uKSkge1xuICAgICAgICByZXR1cm4gW3RoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24uc2lnbmF0dXJlLmRhdGFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2lnbmF0dXJlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICBpZiAoZmllbGQuY29udGVudHMudHlwZSA9PT0gU3RhY2tzTWVzc2FnZVR5cGUuTWVzc2FnZVNpZ25hdHVyZSkge1xuICAgICAgICAgICAgc2lnbmF0dXJlcy5wdXNoKGZpZWxkLmNvbnRlbnRzLmRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaWduYXR1cmVzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdHhUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5fc3R4VHJhbnNhY3Rpb24udHhpZCgpLFxuICAgICAgZmVlOiB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLmdldEZlZSgpLnRvU3RyaW5nKDEwKSxcbiAgICAgIGZyb206IGdldFR4U2VuZGVyQWRkcmVzcyh0aGlzLl9zdHhUcmFuc2FjdGlvbiksXG4gICAgICBub25jZTogdGhpcy5nZXROb25jZSgpLFxuICAgICAgcGF5bG9hZDogdGhpcy5nZXRQYXlsb2FkRGF0YSgpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF5bG9hZERhdGEoKTogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkIHwgU3RhY2tzQ29udHJhY3RQYXlsb2FkIHtcbiAgICBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZC5wYXlsb2FkVHlwZSA9PT0gUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2Zlcikge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCB0eFBheWxvYWQ6IFN0YWNrc1RyYW5zYWN0aW9uUGF5bG9hZCA9IHtcbiAgICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLlRva2VuVHJhbnNmZXIsXG4gICAgICAgIC8vIHJlc3VsdC5wYXlsb2FkLm1lbW8gd2lsbCBiZSBwYWRkZWQgd2l0aCBcXHUwMDAwIHVwIHRvXG4gICAgICAgIC8vIE1FTU9fTUFYX0xFTkdUSF9CWVRFUyBhcyBkZWZpbmVkIGluIEBzdGFja3MvdHJhbnNhY3Rpb25zXG4gICAgICAgIG1lbW86IHVucGFkTWVtbyhwYXlsb2FkLm1lbW8uY29udGVudCksXG4gICAgICAgIHRvOiBhZGRyZXNzVG9TdHJpbmcoe1xuICAgICAgICAgIHR5cGU6IFN0YWNrc01lc3NhZ2VUeXBlLkFkZHJlc3MsXG4gICAgICAgICAgdmVyc2lvbjogcGF5bG9hZC5yZWNpcGllbnQuYWRkcmVzcy52ZXJzaW9uLFxuICAgICAgICAgIGhhc2gxNjA6IHBheWxvYWQucmVjaXBpZW50LmFkZHJlc3MuaGFzaDE2MC50b1N0cmluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgYW1vdW50OiBwYXlsb2FkLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0eFBheWxvYWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgY29udHJhY3RQYXlsb2FkOiBTdGFja3NDb250cmFjdFBheWxvYWQgPSB7XG4gICAgICAgIHBheWxvYWRUeXBlOiBQYXlsb2FkVHlwZS5Db250cmFjdENhbGwsXG4gICAgICAgIGNvbnRyYWN0QWRkcmVzczogYWRkcmVzc1RvU3RyaW5nKHBheWxvYWQuY29udHJhY3RBZGRyZXNzKSxcbiAgICAgICAgY29udHJhY3ROYW1lOiBwYXlsb2FkLmNvbnRyYWN0TmFtZS5jb250ZW50LFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHBheWxvYWQuZnVuY3Rpb25OYW1lLmNvbnRlbnQsXG4gICAgICAgIGZ1bmN0aW9uQXJnczogcGF5bG9hZC5mdW5jdGlvbkFyZ3MubWFwKHN0cmluZ2lmeUN2KSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gY29udHJhY3RQYXlsb2FkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdwYXlsb2FkIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiBhIHRyYW5zYWN0aW9uLiAgVGhpcyBpcyBuZWVkZWQgdG8gY2FsY3VsYXRlXG4gICAqIHRoZSB0cmFuc2FjdGlvbiBmZWUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IHNpemUgaW4gYnl0ZXMgb2YgdGhlIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHRyYW5zYWN0aW9uU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdHhUcmFuc2FjdGlvbi5zZXJpYWxpemUoKS5sZW5ndGg7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fc3R4VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdHhUcmFuc2FjdGlvbi5zZXJpYWxpemUoKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICBnZXQgc3R4VHJhbnNhY3Rpb24oKTogU3RhY2tzVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9zdHhUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBzdHhUcmFuc2FjdGlvbih0OiBTdGFja3NUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uID0gdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9uY2UoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbikge1xuICAgICAgcmV0dXJuIE51bWJlcih0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uLm5vbmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdzcGVuZGluZyBjb25kaXRpb24gaXMgbnVsbCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcmF3ID0gcmVtb3ZlSGV4UHJlZml4KHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24gPSBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKEJ1ZmZlclJlYWRlci5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHJhdywgJ2hleCcpKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRXJyb3IgcGFyc2luZyB0aGUgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXRcbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIHRyYW5zYWN0aW9uIGpzb25cbiAgICogaWYgdGhlcmUgYXJlIG91dHB1dHMuXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBjb25zdCB0eEpzb24gPSB0aGlzLnRvSnNvbigpO1xuICAgIGlmICh0eEpzb24ucGF5bG9hZC5wYXlsb2FkVHlwZSA9PT0gUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2Zlcikge1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLnRvICYmIHR4SnNvbi5wYXlsb2FkLmFtb3VudCkge1xuICAgICAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5wYXlsb2FkLnRvLFxuICAgICAgICAgICAgdmFsdWU6IHR4SnNvbi5wYXlsb2FkLmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiB0eEpzb24uZnJvbSxcbiAgICAgICAgICAgIHZhbHVlOiB0eEpzb24ucGF5bG9hZC5hbW91bnQsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR4SnNvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIGlmICh0eEpzb24ucGF5bG9hZC5jb250cmFjdEFkZHJlc3MgPT09ICh0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsgYXMgU3RhY2tzTmV0d29yaykuc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzKSB7XG4gICAgICAgIGNvbnN0IHNlbmRQYXJhbXMgPSBmdW5jdGlvbkFyZ3NUb1NlbmRQYXJhbXMoKHRoaXMuc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCBhcyBDb250cmFjdENhbGxQYXlsb2FkKS5mdW5jdGlvbkFyZ3MpO1xuICAgICAgICBjb25zdCBjb2luID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuICAgICAgICBjb25zdCBzdW06IEJpZ051bSA9IHNlbmRQYXJhbXMucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmFkZChuZXcgQmlnTnVtKG5leHQuYW1vdW50KSksIG5ldyBCaWdOdW0oMCkpO1xuICAgICAgICB0aGlzLl9vdXRwdXRzID0gc2VuZFBhcmFtcy5tYXAoKHNlbmRQYXJhbSkgPT4gKHsgYWRkcmVzczogc2VuZFBhcmFtLmFkZHJlc3MsIHZhbHVlOiBzZW5kUGFyYW0uYW1vdW50LCBjb2luIH0pKTtcbiAgICAgICAgdGhpcy5faW5wdXRzID0gW3sgYWRkcmVzczogdHhKc29uLmZyb20sIHZhbHVlOiBzdW0udG9TdHJpbmcoKSwgY29pbiB9XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiB0eEpzb24uZnJvbSxcbiAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQWM4QjtBQUU5QixtREFROEI7QUFFOUIsbUNBQWdIO0FBR2hILGtEQUEyQjtBQUUzQixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUs5QyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBNEIsRUFBRSxPQUFnQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQ0FBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDN0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hGLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSx1QkFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQXNCLEVBQUMsSUFB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Q0FBQyxHQUFHLENBQUMsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxlQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMvRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLEdBQUc7b0JBQ2Q7d0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDdkMsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsT0FBTyxHQUFHO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDcEIsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbk9ELGtDQW1PQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQnVmZmVyUmVhZGVyLFxuICBjcmVhdGVTdGFja3NQcml2YXRlS2V5LFxuICBjcmVhdGVTdGFja3NQdWJsaWNLZXksXG4gIGNyZWF0ZVRyYW5zYWN0aW9uQXV0aEZpZWxkLFxuICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLFxuICBpc1NpbmdsZVNpZyxcbiAgTXVsdGlTaWdTcGVuZGluZ0NvbmRpdGlvbixcbiAgUGF5bG9hZFR5cGUsXG4gIFB1YktleUVuY29kaW5nLFxuICBTdGFja3NNZXNzYWdlVHlwZSxcbiAgU3RhY2tzVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uU2lnbmVyLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBTdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RTdXBwb3J0ZWQsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFNpZ25hdHVyZURhdGEsIFN0YWNrc0NvbnRyYWN0UGF5bG9hZCwgU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcywgZ2V0VHhTZW5kZXJBZGRyZXNzLCByZW1vdmVIZXhQcmVmaXgsIHN0cmluZ2lmeUN2LCB1bnBhZE1lbW8gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgQ29udHJhY3RDYWxsUGF5bG9hZCB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zL2Rpc3QvcGF5bG9hZCc7XG5pbXBvcnQgQmlnTnVtIGZyb20gJ2JuLmpzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfc3R4VHJhbnNhY3Rpb246IFN0YWNrc1RyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgcHJpdmF0ZSBfc2lnSGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyW10gfCBLZXlQYWlyLCBzaWdIYXNoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGNvbnN0IHNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgc2lnbmVyLmNoZWNrT3ZlcnNpZ24gPSBmYWxzZTtcbiAgICBzaWduZXIuc2lnSGFzaCA9IHNpZ0hhc2ggPz8gdGhpcy5fc2lnSGFzaCA/PyB0aGlzLl9zdHhUcmFuc2FjdGlvbi52ZXJpZnlCZWdpbigpO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBrcC5nZXRLZXlzKGtwLmdldENvbXByZXNzZWQoKSk7XG4gICAgICBpZiAoIWtleXMucHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByaXZLZXkgPSBjcmVhdGVTdGFja3NQcml2YXRlS2V5KGtleXMucHJ2KTtcbiAgICAgIHNpZ25lci5zaWduT3JpZ2luKHByaXZLZXkpO1xuICAgICAgdGhpcy5fc2lnSGFzaCA9IHNpZ25lci5zaWdIYXNoO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFwcGVuZE9yaWdpbihwdWJLZXlTdHJpbmc6IHN0cmluZ1tdIHwgc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHViS2V5U3RyaW5ncyA9IHB1YktleVN0cmluZyBpbnN0YW5jZW9mIEFycmF5ID8gcHViS2V5U3RyaW5nIDogW3B1YktleVN0cmluZ107XG4gICAgY29uc3Qgc2lnbmVyOiBUcmFuc2FjdGlvblNpZ25lciA9IG5ldyBUcmFuc2FjdGlvblNpZ25lcih0aGlzLl9zdHhUcmFuc2FjdGlvbik7XG4gICAgcHViS2V5U3RyaW5ncy5mb3JFYWNoKChwdWJLZXkpID0+IHtcbiAgICAgIHNpZ25lci5hcHBlbmRPcmlnaW4oY3JlYXRlU3RhY2tzUHVibGljS2V5KHB1YktleSkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2lnbldpdGhTaWduYXR1cmVzKHNpZ25hdHVyZTogU2lnbmF0dXJlRGF0YVtdIHwgU2lnbmF0dXJlRGF0YSwgaXNNdWx0aVNpZzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghc2lnbmF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHNpZ25hdHVyZXMnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IHNpZ25hdHVyZSBpbnN0YW5jZW9mIEFycmF5ID8gc2lnbmF0dXJlIDogW3NpZ25hdHVyZV07XG5cbiAgICBpZiAoIWlzTXVsdGlTaWcpIHtcbiAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24uY3JlYXRlVHhXaXRoU2lnbmF0dXJlKHNpZ25hdHVyZXNbMF0uZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGF1dGhGaWVsZHMgPSBzaWduYXR1cmVzLm1hcCgoc2lnKSA9PiBjcmVhdGVUcmFuc2FjdGlvbkF1dGhGaWVsZChQdWJLZXlFbmNvZGluZy5Db21wcmVzc2VkLCBzaWcpKTtcbiAgICAgICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uIGFzIE11bHRpU2lnU3BlbmRpbmdDb25kaXRpb24pLmZpZWxkcyA9IChcbiAgICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiBhcyBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uXG4gICAgICApLmZpZWxkcy5jb25jYXQoYXV0aEZpZWxkcyk7XG4gICAgfVxuICAgIGlmIChzaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ0hhc2ggPSBzaWduYXR1cmVzW3NpZ25hdHVyZXMubGVuZ3RoIC0gMV0uc2lnSGFzaDtcbiAgICB9XG4gIH1cblxuICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24gJiYgdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbikge1xuICAgICAgaWYgKGlzU2luZ2xlU2lnKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbi5zaWduYXR1cmUuZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaWduYXR1cmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgIGlmIChmaWVsZC5jb250ZW50cy50eXBlID09PSBTdGFja3NNZXNzYWdlVHlwZS5NZXNzYWdlU2lnbmF0dXJlKSB7XG4gICAgICAgICAgICBzaWduYXR1cmVzLnB1c2goZmllbGQuY29udGVudHMuZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNpZ25hdHVyZXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N0eFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLl9zdHhUcmFuc2FjdGlvbi50eGlkKCksXG4gICAgICBmZWU6IHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguZ2V0RmVlKCkudG9TdHJpbmcoMTApLFxuICAgICAgZnJvbTogZ2V0VHhTZW5kZXJBZGRyZXNzKHRoaXMuX3N0eFRyYW5zYWN0aW9uKSxcbiAgICAgIG5vbmNlOiB0aGlzLmdldE5vbmNlKCksXG4gICAgICBwYXlsb2FkOiB0aGlzLmdldFBheWxvYWREYXRhKCksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXlsb2FkRGF0YSgpOiBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQgfCBTdGFja3NDb250cmFjdFBheWxvYWQge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHR4UGF5bG9hZDogU3RhY2tzVHJhbnNhY3Rpb25QYXlsb2FkID0ge1xuICAgICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcixcbiAgICAgICAgLy8gcmVzdWx0LnBheWxvYWQubWVtbyB3aWxsIGJlIHBhZGRlZCB3aXRoIFxcdTAwMDAgdXAgdG9cbiAgICAgICAgLy8gTUVNT19NQVhfTEVOR1RIX0JZVEVTIGFzIGRlZmluZWQgaW4gQHN0YWNrcy90cmFuc2FjdGlvbnNcbiAgICAgICAgbWVtbzogdW5wYWRNZW1vKHBheWxvYWQubWVtby5jb250ZW50KSxcbiAgICAgICAgdG86IGFkZHJlc3NUb1N0cmluZyh7XG4gICAgICAgICAgdHlwZTogU3RhY2tzTWVzc2FnZVR5cGUuQWRkcmVzcyxcbiAgICAgICAgICB2ZXJzaW9uOiBwYXlsb2FkLnJlY2lwaWVudC5hZGRyZXNzLnZlcnNpb24sXG4gICAgICAgICAgaGFzaDE2MDogcGF5bG9hZC5yZWNpcGllbnQuYWRkcmVzcy5oYXNoMTYwLnRvU3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBhbW91bnQ6IHBheWxvYWQuYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHR4UGF5bG9hZDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBjb250cmFjdFBheWxvYWQ6IFN0YWNrc0NvbnRyYWN0UGF5bG9hZCA9IHtcbiAgICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCxcbiAgICAgICAgY29udHJhY3RBZGRyZXNzOiBhZGRyZXNzVG9TdHJpbmcocGF5bG9hZC5jb250cmFjdEFkZHJlc3MpLFxuICAgICAgICBjb250cmFjdE5hbWU6IHBheWxvYWQuY29udHJhY3ROYW1lLmNvbnRlbnQsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogcGF5bG9hZC5mdW5jdGlvbk5hbWUuY29udGVudCxcbiAgICAgICAgZnVuY3Rpb25BcmdzOiBwYXlsb2FkLmZ1bmN0aW9uQXJncy5tYXAoc3RyaW5naWZ5Q3YpLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBjb250cmFjdFBheWxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ3BheWxvYWQgdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIGEgdHJhbnNhY3Rpb24uICBUaGlzIGlzIG5lZWRlZCB0byBjYWxjdWxhdGVcbiAgICogdGhlIHRyYW5zYWN0aW9uIGZlZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgc2VyaWFsaXplZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdHJhbnNhY3Rpb25TaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLmxlbmd0aDtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdHhUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIGdldCBzdHhUcmFuc2FjdGlvbigpOiBTdGFja3NUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHN0eFRyYW5zYWN0aW9uKHQ6IFN0YWNrc1RyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24gPSB0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb25jZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24ubm9uY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3NwZW5kaW5nIGNvbmRpdGlvbiBpcyBudWxsJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByYXcgPSByZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oQnVmZmVyUmVhZGVyLmZyb21CdWZmZXIoQnVmZmVyLmZyb20ocmF3LCAnaGV4JykpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgdHJhbnNhY3Rpb24ganNvblxuICAgKiBpZiB0aGVyZSBhcmUgb3V0cHV0cy5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHR4SnNvbiA9IHRoaXMudG9Kc29uKCk7XG4gICAgaWYgKHR4SnNvbi5wYXlsb2FkLnBheWxvYWRUeXBlID09PSBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyKSB7XG4gICAgICBpZiAodHhKc29uLnBheWxvYWQudG8gJiYgdHhKc29uLnBheWxvYWQuYW1vdW50KSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLnBheWxvYWQudG8sXG4gICAgICAgICAgICB2YWx1ZTogdHhKc29uLnBheWxvYWQuYW1vdW50LFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgICAgdmFsdWU6IHR4SnNvbi5wYXlsb2FkLmFtb3VudCxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHhKc29uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbCkge1xuICAgICAgaWYgKHR4SnNvbi5wYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyA9PT0gKHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBTdGFja3NOZXR3b3JrKS5zZW5kbWFueW1lbW9Db250cmFjdEFkZHJlc3MpIHtcbiAgICAgICAgY29uc3Qgc2VuZFBhcmFtcyA9IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcygodGhpcy5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkIGFzIENvbnRyYWN0Q2FsbFBheWxvYWQpLmZ1bmN0aW9uQXJncyk7XG4gICAgICAgIGNvbnN0IGNvaW4gPSB0aGlzLl9jb2luQ29uZmlnLm5hbWU7XG4gICAgICAgIGNvbnN0IHN1bTogQmlnTnVtID0gc2VuZFBhcmFtcy5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuYWRkKG5ldyBCaWdOdW0obmV4dC5hbW91bnQpKSwgbmV3IEJpZ051bSgwKSk7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBzZW5kUGFyYW1zLm1hcCgoc2VuZFBhcmFtKSA9PiAoeyBhZGRyZXNzOiBzZW5kUGFyYW0uYWRkcmVzcywgdmFsdWU6IHNlbmRQYXJhbS5hbW91bnQsIGNvaW4gfSkpO1xuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbeyBhZGRyZXNzOiB0eEpzb24uZnJvbSwgdmFsdWU6IHN1bS50b1N0cmluZygpLCBjb2luIH1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiB0eEpzb24ucGF5bG9hZC5jb250cmFjdEFkZHJlc3MsXG4gICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHR4SnNvbi5mcm9tLFxuICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|