@bitgo/sdk-coin-stx 3.8.13 → 3.8.15
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 +8 -0
- package/package.json +6 -6
- package/LICENSE +0 -191
- package/dist/src/index.d.ts +0 -7
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -46
- package/dist/src/lib/abstractContractBuilder.d.ts +0 -19
- package/dist/src/lib/abstractContractBuilder.d.ts.map +0 -1
- package/dist/src/lib/abstractContractBuilder.js +0 -70
- package/dist/src/lib/constants.d.ts +0 -9
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -21
- package/dist/src/lib/contractBuilder.d.ts +0 -33
- package/dist/src/lib/contractBuilder.d.ts.map +0 -1
- package/dist/src/lib/contractBuilder.js +0 -116
- package/dist/src/lib/fungibleTokenTransferBuilder.d.ts +0 -62
- package/dist/src/lib/fungibleTokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/fungibleTokenTransferBuilder.js +0 -131
- package/dist/src/lib/iface.d.ts +0 -104
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -3
- package/dist/src/lib/index.d.ts +0 -6
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -47
- package/dist/src/lib/keyPair.d.ts +0 -55
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -119
- package/dist/src/lib/sendmanyBuilder.d.ts +0 -23
- package/dist/src/lib/sendmanyBuilder.d.ts.map +0 -1
- package/dist/src/lib/sendmanyBuilder.js +0 -75
- package/dist/src/lib/transaction.d.ts +0 -49
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -241
- package/dist/src/lib/transactionBuilder.d.ts +0 -86
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -263
- package/dist/src/lib/transactionBuilderFactory.d.ts +0 -32
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -88
- package/dist/src/lib/transferBuilder.d.ts +0 -30
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -99
- package/dist/src/lib/utils.d.ts +0 -230
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -582
- package/dist/src/register.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -15
- package/dist/src/sip10Token.d.ts +0 -22
- package/dist/src/sip10Token.d.ts.map +0 -1
- package/dist/src/sip10Token.js +0 -128
- package/dist/src/stx.d.ts +0 -200
- package/dist/src/stx.d.ts.map +0 -1
- package/dist/src/stx.js +0 -605
- package/dist/src/tstx.d.ts +0 -16
- package/dist/src/tstx.d.ts.map +0 -1
- package/dist/src/tstx.js +0 -24
- package/dist/src/types.d.ts +0 -34
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -3
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SendmanyBuilder = void 0;
|
|
7
|
-
const statics_1 = require("@bitgo/statics");
|
|
8
|
-
const bn_js_1 = __importDefault(require("bn.js"));
|
|
9
|
-
const transactions_1 = require("@stacks/transactions");
|
|
10
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
11
|
-
const utils_1 = require("./utils");
|
|
12
|
-
const constants_1 = require("./constants");
|
|
13
|
-
const abstractContractBuilder_1 = require("./abstractContractBuilder");
|
|
14
|
-
class SendmanyBuilder extends abstractContractBuilder_1.AbstractContractBuilder {
|
|
15
|
-
constructor(_coinConfig) {
|
|
16
|
-
super(_coinConfig);
|
|
17
|
-
this._sendParams = [];
|
|
18
|
-
this.sendParamsToFunctionArgs = (sendParams) => [
|
|
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
|
-
}))),
|
|
24
|
-
];
|
|
25
|
-
}
|
|
26
|
-
static isValidContractCall(coinConfig, payload) {
|
|
27
|
-
return (coinConfig.network.sendmanymemoContractAddress ===
|
|
28
|
-
(0, transactions_1.addressToString)(payload.contractAddress) &&
|
|
29
|
-
constants_1.CONTRACT_NAME_SENDMANY === payload.contractName.content &&
|
|
30
|
-
constants_1.FUNCTION_NAME_SENDMANY === payload.functionName.content);
|
|
31
|
-
}
|
|
32
|
-
sendParamsToPostcondition(sendParams) {
|
|
33
|
-
const sum = sendParams.reduce((current, next) => current.add(new bn_js_1.default(next.amount)), new bn_js_1.default(0));
|
|
34
|
-
return [
|
|
35
|
-
(0, transactions_1.makeStandardSTXPostCondition)((0, utils_1.getSTXAddressFromPubKeys)(this._fromPubKeys, this._coinConfig.network.type === statics_1.NetworkType.MAINNET
|
|
36
|
-
? transactions_1.AddressVersion.MainnetMultiSig
|
|
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
|
-
];
|
|
39
|
-
}
|
|
40
|
-
initBuilder(tx) {
|
|
41
|
-
super.initBuilder(tx);
|
|
42
|
-
this._sendParams = (0, utils_1.functionArgsToSendParams)(tx.stxTransaction.payload.functionArgs);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Set a transfer
|
|
46
|
-
*
|
|
47
|
-
* @param {SendParams} sendParams - the sender address
|
|
48
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
49
|
-
*/
|
|
50
|
-
send({ address, amount, memo }) {
|
|
51
|
-
if (!address || !(0, utils_1.isValidAddress)(address)) {
|
|
52
|
-
throw new sdk_core_1.BuildTransactionError('Invalid or missing address, got: ' + address);
|
|
53
|
-
}
|
|
54
|
-
if (!amount || !(0, utils_1.isValidAmount)(amount)) {
|
|
55
|
-
throw new sdk_core_1.BuildTransactionError('Invalid or missing amount, got: ' + amount);
|
|
56
|
-
}
|
|
57
|
-
if (!!memo && !(0, utils_1.isValidMemo)(memo)) {
|
|
58
|
-
throw new sdk_core_1.BuildTransactionError('Invalid memo, got: ' + memo);
|
|
59
|
-
}
|
|
60
|
-
this._sendParams.push({ address, amount, memo });
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
/** @inheritdoc */
|
|
64
|
-
async buildImplementation() {
|
|
65
|
-
this._contractAddress = this._coinConfig.network.sendmanymemoContractAddress;
|
|
66
|
-
this._contractName = constants_1.CONTRACT_NAME_SENDMANY;
|
|
67
|
-
this._functionName = constants_1.FUNCTION_NAME_SENDMANY;
|
|
68
|
-
this._functionArgs = this.sendParamsToFunctionArgs(this._sendParams);
|
|
69
|
-
this._postConditionMode = transactions_1.PostConditionMode.Deny;
|
|
70
|
-
this._postConditions = this.sendParamsToPostcondition(this._sendParams);
|
|
71
|
-
return await super.buildImplementation();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.SendmanyBuilder = SendmanyBuilder;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZG1hbnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zZW5kbWFueUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQTBHO0FBQzFHLGtEQUEyQjtBQUMzQix1REFjOEI7QUFDOUIsOENBQXdEO0FBRXhELG1DQU1pQjtBQUVqQiwyQ0FBNkU7QUFFN0UsdUVBQW9FO0FBRXBFLE1BQWEsZUFBZ0IsU0FBUSxpREFBdUI7SUFHMUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFlL0IsNkJBQXdCLEdBQUcsQ0FBQyxVQUF3QixFQUFrQixFQUFFLENBQUM7WUFDL0UsSUFBQSxxQkFBTSxFQUNKLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUMzQixJQUFBLHNCQUFPLEVBQUM7Z0JBQ04sRUFBRSxFQUFFLElBQUEsa0NBQW1CLEVBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDMUMsSUFBSSxFQUFFLElBQUEscUJBQU0sRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUM5QixJQUFJLEVBQUUsSUFBQSxpQ0FBa0IsRUFBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQzthQUMvQyxDQUFDLENBQ0gsQ0FDRjtTQUNGLENBQUM7SUFyQkYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQyxFQUFFLE9BQTRCO1FBQzlGLE9BQU8sQ0FDSixVQUFVLENBQUMsT0FBOEIsQ0FBQywyQkFBMkI7WUFDcEUsSUFBQSw4QkFBZSxFQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDMUMsa0NBQXNCLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPO1lBQ3ZELGtDQUFzQixLQUFLLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUN4RCxDQUFDO0lB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bnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgTmV0d29ya1R5cGUsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bSBmcm9tICdibi5qcyc7XG5pbXBvcnQge1xuICBBZGRyZXNzSGFzaE1vZGUsXG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQWRkcmVzc1ZlcnNpb24sXG4gIGJ1ZmZlckNWRnJvbVN0cmluZyxcbiAgQ2xhcml0eVZhbHVlLFxuICBGdW5naWJsZUNvbmRpdGlvbkNvZGUsXG4gIGxpc3RDVixcbiAgbWFrZVN0YW5kYXJkU1RYUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbixcbiAgUG9zdENvbmRpdGlvbk1vZGUsXG4gIHN0YW5kYXJkUHJpbmNpcGFsQ1YsXG4gIHR1cGxlQ1YsXG4gIHVpbnRDVixcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBmdW5jdGlvbkFyZ3NUb1NlbmRQYXJhbXMsXG4gIGdldFNUWEFkZHJlc3NGcm9tUHViS2V5cyxcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRBbW91bnQsXG4gIGlzVmFsaWRNZW1vLFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFNlbmRQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IENPTlRSQUNUX05BTUVfU0VORE1BTlksIEZVTkNUSU9OX05BTUVfU0VORE1BTlkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb250cmFjdENhbGxQYXlsb2FkIH0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMvZGlzdC9wYXlsb2FkJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJhY3RCdWlsZGVyIH0gZnJvbSAnLi9hYnN0cmFjdENvbnRyYWN0QnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBTZW5kbWFueUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB7XG4gIHByaXZhdGUgX3NlbmRQYXJhbXM6IFNlbmRQYXJhbXNbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZENvbnRyYWN0Q2FsbChjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcGF5bG9hZDogQ29udHJhY3RDYWxsUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAoY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaykuc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzID09PVxuICAgICAgICBhZGRyZXNzVG9TdHJpbmcocGF5bG9hZC5jb250cmFjdEFkZHJlc3MpICYmXG4gICAgICBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZID09PSBwYXlsb2FkLmNvbnRyYWN0TmFtZS5jb250ZW50ICYmXG4gICAgICBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZID09PSBwYXlsb2FkLmZ1bmN0aW9uTmFtZS5jb250ZW50XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZFBhcmFtc1RvRnVuY3Rpb25BcmdzID0gKHNlbmRQYXJhbXM6IFNlbmRQYXJhbXNbXSk6IENsYXJpdHlWYWx1ZVtdID0+IFtcbiAgICBsaXN0Q1YoXG4gICAgICBzZW5kUGFyYW1zLm1hcCgocmVjaXBpZW50KSA9PlxuICAgICAgICB0dXBsZUNWKHtcbiAgICAgICAgICB0bzogc3RhbmRhcmRQcmluY2lwYWxDVihyZWNpcGllbnQuYWRkcmVzcyksXG4gICAgICAgICAgdXN0eDogdWludENWKHJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICAgIG1lbW86IGJ1ZmZlckNWRnJvbVN0cmluZyhyZWNpcGllbnQubWVtbyB8fCAnJyksXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgXTtcblxuICBwcml2YXRlIHNlbmRQYXJhbXNUb1Bvc3Rjb25kaXRpb24oc2VuZFBhcmFtczogU2VuZFBhcmFtc1tdKTogUG9zdENvbmRpdGlvbltdIHtcbiAgICBjb25zdCBzdW06IEJpZ051bSA9IHNlbmRQYXJhbXMucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmFkZChuZXcgQmlnTnVtKG5leHQuYW1vdW50KSksIG5ldyBCaWdOdW0oMCkpO1xuICAgIHJldHVybiBbXG4gICAgICBtYWtlU3RhbmRhcmRTVFhQb3N0Q29uZGl0aW9uKFxuICAgICAgICBnZXRTVFhBZGRyZXNzRnJvbVB1YktleXMoXG4gICAgICAgICAgdGhpcy5fZnJvbVB1YktleXMsXG4gICAgICAgICAgdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVRcbiAgICAgICAgICAgID8gQWRkcmVzc1ZlcnNpb24uTWFpbm5ldE11bHRpU2lnXG4gICAgICAgICAgICA6IEFkZHJlc3NWZXJzaW9uLlRlc3RuZXRNdWx0aVNpZyxcbiAgICAgICAgICB0aGlzLl9mcm9tUHViS2V5cy5sZW5ndGggPiAxID8gQWRkcmVzc0hhc2hNb2RlLlNlcmlhbGl6ZVAyU0ggOiBBZGRyZXNzSGFzaE1vZGUuU2VyaWFsaXplUDJQS0gsXG4gICAgICAgICAgdGhpcy5fbnVtYmVyU2lnbmF0dXJlc1xuICAgICAgICApLmFkZHJlc3MsXG4gICAgICAgIEZ1bmdpYmxlQ29uZGl0aW9uQ29kZS5FcXVhbCxcbiAgICAgICAgc3VtXG4gICAgICApLFxuICAgIF07XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdGhpcy5fc2VuZFBhcmFtcyA9IGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcygodHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCBhcyBDb250cmFjdENhbGxQYXlsb2FkKS5mdW5jdGlvbkFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqICBTZXQgYSB0cmFuc2ZlclxuICAgKlxuICAgKiBAcGFyYW0ge1NlbmRQYXJhbXN9IHNlbmRQYXJhbXMgLSB0aGUgc2VuZGVyIGFkZHJlc3NcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kKHsgYWRkcmVzcywgYW1vdW50LCBtZW1vIH06IFNlbmRQYXJhbXMpOiB0aGlzIHtcbiAgICBpZiAoIWFkZHJlc3MgfHwgIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYWRkcmVzcywgZ290OiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIGlmICghYW1vdW50IHx8ICFpc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBhbW91bnQsIGdvdDogJyArIGFtb3VudCk7XG4gICAgfVxuICAgIGlmICghIW1lbW8gJiYgIWlzVmFsaWRNZW1vKG1lbW8pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG1lbW8sIGdvdDogJyArIG1lbW8pO1xuICAgIH1cblxuICAgIHRoaXMuX3NlbmRQYXJhbXMucHVzaCh7IGFkZHJlc3MsIGFtb3VudCwgbWVtbyB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5fY29udHJhY3RBZGRyZXNzID0gKHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmspLnNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcztcbiAgICB0aGlzLl9jb250cmFjdE5hbWUgPSBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZO1xuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IEZVTkNUSU9OX05BTUVfU0VORE1BTlk7XG4gICAgdGhpcy5fZnVuY3Rpb25BcmdzID0gdGhpcy5zZW5kUGFyYW1zVG9GdW5jdGlvbkFyZ3ModGhpcy5fc2VuZFBhcmFtcyk7XG4gICAgdGhpcy5fcG9zdENvbmRpdGlvbk1vZGUgPSBQb3N0Q29uZGl0aW9uTW9kZS5EZW55O1xuICAgIHRoaXMuX3Bvc3RDb25kaXRpb25zID0gdGhpcy5zZW5kUGFyYW1zVG9Qb3N0Y29uZGl0aW9uKHRoaXMuX3NlbmRQYXJhbXMpO1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { StacksTransaction } from '@stacks/transactions';
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
|
-
import { BaseKey, BaseTransaction, TransactionType } from '@bitgo/sdk-core';
|
|
4
|
-
import { SignatureData, TxData } from './iface';
|
|
5
|
-
import { KeyPair } from './keyPair';
|
|
6
|
-
export declare class Transaction extends BaseTransaction {
|
|
7
|
-
private _stxTransaction;
|
|
8
|
-
protected _type: TransactionType;
|
|
9
|
-
private _sigHash;
|
|
10
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
|
-
/** @inheritdoc */
|
|
12
|
-
canSign(key: BaseKey): boolean;
|
|
13
|
-
sign(keyPair: KeyPair[] | KeyPair, sigHash?: string): Promise<void>;
|
|
14
|
-
appendOrigin(pubKeyString: string[] | string): Promise<void>;
|
|
15
|
-
signWithSignatures(signature: SignatureData[] | SignatureData, isMultiSig: boolean): Promise<void>;
|
|
16
|
-
get signature(): string[];
|
|
17
|
-
/** @inheritdoc */
|
|
18
|
-
toJson(): TxData;
|
|
19
|
-
private getPayloadData;
|
|
20
|
-
/**
|
|
21
|
-
* Return the length of a transaction. This is needed to calculate
|
|
22
|
-
* the transaction fee.
|
|
23
|
-
*
|
|
24
|
-
* @returns {number} size in bytes of the serialized transaction
|
|
25
|
-
*/
|
|
26
|
-
transactionSize(): number;
|
|
27
|
-
toBroadcastFormat(): string;
|
|
28
|
-
get stxTransaction(): StacksTransaction;
|
|
29
|
-
set stxTransaction(t: StacksTransaction);
|
|
30
|
-
private getNonce;
|
|
31
|
-
/**
|
|
32
|
-
* Sets this transaction payload
|
|
33
|
-
*
|
|
34
|
-
* @param rawTransaction
|
|
35
|
-
*/
|
|
36
|
-
fromRawTransaction(rawTransaction: string): void;
|
|
37
|
-
/**
|
|
38
|
-
* Set the transaction type
|
|
39
|
-
*
|
|
40
|
-
* @param {TransactionType} transactionType The transaction type to be set
|
|
41
|
-
*/
|
|
42
|
-
setTransactionType(transactionType: TransactionType): void;
|
|
43
|
-
/**
|
|
44
|
-
* Load the input and output data on this transaction using the transaction json
|
|
45
|
-
* if there are outputs.
|
|
46
|
-
*/
|
|
47
|
-
loadInputsAndOutputs(): void;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAeL,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EACL,OAAO,EACP,eAAe,EAKf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,aAAa,EAAmD,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAAoB;IAC3C,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIxB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxG,IAAI,SAAS,IAAI,MAAM,EAAE,CAexB;IAED,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAchB,OAAO,CAAC,cAAc;IA+BtB;;;;;OAKG;IACH,eAAe,IAAI,MAAM;IAIzB,iBAAiB,IAAI,MAAM;IAO3B,IAAI,cAAc,IAAI,iBAAiB,CAEtC;IAED,IAAI,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAEtC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAUhD;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;OAGG;IACH,oBAAoB,IAAI,IAAI;CA6D7B"}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Transaction = void 0;
|
|
7
|
-
const transactions_1 = require("@stacks/transactions");
|
|
8
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
-
const bn_js_1 = __importDefault(require("bn.js"));
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
const constants_1 = require("./constants");
|
|
12
|
-
class Transaction extends sdk_core_1.BaseTransaction {
|
|
13
|
-
constructor(_coinConfig) {
|
|
14
|
-
super(_coinConfig);
|
|
15
|
-
}
|
|
16
|
-
/** @inheritdoc */
|
|
17
|
-
canSign(key) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
async sign(keyPair, sigHash) {
|
|
21
|
-
const keyPairs = keyPair instanceof Array ? keyPair : [keyPair];
|
|
22
|
-
const signer = new transactions_1.TransactionSigner(this._stxTransaction);
|
|
23
|
-
signer.checkOversign = false;
|
|
24
|
-
signer.sigHash = sigHash ?? this._sigHash ?? this._stxTransaction.verifyBegin();
|
|
25
|
-
for (const kp of keyPairs) {
|
|
26
|
-
const keys = kp.getKeys(kp.getCompressed());
|
|
27
|
-
if (!keys.prv) {
|
|
28
|
-
throw new sdk_core_1.SigningError('Missing private key');
|
|
29
|
-
}
|
|
30
|
-
const privKey = (0, transactions_1.createStacksPrivateKey)(keys.prv);
|
|
31
|
-
signer.signOrigin(privKey);
|
|
32
|
-
this._sigHash = signer.sigHash;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async appendOrigin(pubKeyString) {
|
|
36
|
-
const pubKeyStrings = pubKeyString instanceof Array ? pubKeyString : [pubKeyString];
|
|
37
|
-
const signer = new transactions_1.TransactionSigner(this._stxTransaction);
|
|
38
|
-
pubKeyStrings.forEach((pubKey) => {
|
|
39
|
-
signer.appendOrigin((0, transactions_1.createStacksPublicKey)(pubKey));
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
async signWithSignatures(signature, isMultiSig) {
|
|
43
|
-
if (!signature) {
|
|
44
|
-
throw new sdk_core_1.SigningError('Missing signatures');
|
|
45
|
-
}
|
|
46
|
-
const signatures = signature instanceof Array ? signature : [signature];
|
|
47
|
-
if (!isMultiSig) {
|
|
48
|
-
this._stxTransaction = this._stxTransaction.createTxWithSignature(signatures[0].data);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
const authFields = signatures.map((sig) => (0, transactions_1.createTransactionAuthField)(transactions_1.PubKeyEncoding.Compressed, sig));
|
|
52
|
-
this._stxTransaction.auth.spendingCondition.fields = this._stxTransaction.auth.spendingCondition.fields.concat(authFields);
|
|
53
|
-
}
|
|
54
|
-
if (signatures.length > 0) {
|
|
55
|
-
this._sigHash = signatures[signatures.length - 1].sigHash;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
get signature() {
|
|
59
|
-
if (this._stxTransaction && this._stxTransaction.auth.spendingCondition) {
|
|
60
|
-
if ((0, transactions_1.isSingleSig)(this._stxTransaction.auth.spendingCondition)) {
|
|
61
|
-
return [this._stxTransaction.auth.spendingCondition.signature.data];
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const signatures = [];
|
|
65
|
-
this._stxTransaction.auth.spendingCondition.fields.forEach((field) => {
|
|
66
|
-
if (field.contents.type === transactions_1.StacksMessageType.MessageSignature) {
|
|
67
|
-
signatures.push(field.contents.data);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
return signatures;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return [];
|
|
74
|
-
}
|
|
75
|
-
/** @inheritdoc */
|
|
76
|
-
toJson() {
|
|
77
|
-
if (!this._stxTransaction) {
|
|
78
|
-
throw new sdk_core_1.ParseTransactionError('Empty transaction');
|
|
79
|
-
}
|
|
80
|
-
const result = {
|
|
81
|
-
id: this._stxTransaction.txid(),
|
|
82
|
-
fee: this._stxTransaction.auth.getFee().toString(10),
|
|
83
|
-
from: (0, utils_1.getTxSenderAddress)(this._stxTransaction),
|
|
84
|
-
nonce: this.getNonce(),
|
|
85
|
-
payload: this.getPayloadData(),
|
|
86
|
-
};
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
getPayloadData() {
|
|
90
|
-
if (this._stxTransaction.payload.payloadType === transactions_1.PayloadType.TokenTransfer) {
|
|
91
|
-
const payload = this._stxTransaction.payload;
|
|
92
|
-
const txPayload = {
|
|
93
|
-
payloadType: transactions_1.PayloadType.TokenTransfer,
|
|
94
|
-
// result.payload.memo will be padded with \u0000 up to
|
|
95
|
-
// MEMO_MAX_LENGTH_BYTES as defined in @stacks/transactions
|
|
96
|
-
memo: (0, utils_1.unpadMemo)(payload.memo.content),
|
|
97
|
-
to: (0, transactions_1.addressToString)({
|
|
98
|
-
type: transactions_1.StacksMessageType.Address,
|
|
99
|
-
version: payload.recipient.address.version,
|
|
100
|
-
hash160: payload.recipient.address.hash160.toString(),
|
|
101
|
-
}),
|
|
102
|
-
amount: payload.amount.toString(),
|
|
103
|
-
};
|
|
104
|
-
return txPayload;
|
|
105
|
-
}
|
|
106
|
-
else if (this._stxTransaction.payload.payloadType === transactions_1.PayloadType.ContractCall) {
|
|
107
|
-
const payload = this._stxTransaction.payload;
|
|
108
|
-
const contractPayload = {
|
|
109
|
-
payloadType: transactions_1.PayloadType.ContractCall,
|
|
110
|
-
contractAddress: (0, transactions_1.addressToString)(payload.contractAddress),
|
|
111
|
-
contractName: payload.contractName.content,
|
|
112
|
-
functionName: payload.functionName.content,
|
|
113
|
-
functionArgs: payload.functionArgs.map(utils_1.stringifyCv),
|
|
114
|
-
};
|
|
115
|
-
return contractPayload;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
throw new sdk_core_1.NotSupported('payload type not supported');
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Return the length of a transaction. This is needed to calculate
|
|
123
|
-
* the transaction fee.
|
|
124
|
-
*
|
|
125
|
-
* @returns {number} size in bytes of the serialized transaction
|
|
126
|
-
*/
|
|
127
|
-
transactionSize() {
|
|
128
|
-
return this._stxTransaction.serialize().length;
|
|
129
|
-
}
|
|
130
|
-
toBroadcastFormat() {
|
|
131
|
-
if (!this._stxTransaction) {
|
|
132
|
-
throw new sdk_core_1.ParseTransactionError('Empty transaction');
|
|
133
|
-
}
|
|
134
|
-
return this._stxTransaction.serialize().toString('hex');
|
|
135
|
-
}
|
|
136
|
-
get stxTransaction() {
|
|
137
|
-
return this._stxTransaction;
|
|
138
|
-
}
|
|
139
|
-
set stxTransaction(t) {
|
|
140
|
-
this._stxTransaction = t;
|
|
141
|
-
}
|
|
142
|
-
getNonce() {
|
|
143
|
-
if (this._stxTransaction.auth.spendingCondition) {
|
|
144
|
-
return Number(this._stxTransaction.auth.spendingCondition.nonce);
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
throw new sdk_core_1.InvalidTransactionError('spending condition is null');
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Sets this transaction payload
|
|
152
|
-
*
|
|
153
|
-
* @param rawTransaction
|
|
154
|
-
*/
|
|
155
|
-
fromRawTransaction(rawTransaction) {
|
|
156
|
-
const raw = (0, utils_1.removeHexPrefix)(rawTransaction);
|
|
157
|
-
try {
|
|
158
|
-
this._stxTransaction = (0, transactions_1.deserializeTransaction)(transactions_1.BufferReader.fromBuffer(Buffer.from(raw, 'hex')));
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
throw new sdk_core_1.ParseTransactionError('Error parsing the raw transaction');
|
|
162
|
-
}
|
|
163
|
-
this.loadInputsAndOutputs();
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Set the transaction type
|
|
167
|
-
*
|
|
168
|
-
* @param {TransactionType} transactionType The transaction type to be set
|
|
169
|
-
*/
|
|
170
|
-
setTransactionType(transactionType) {
|
|
171
|
-
this._type = transactionType;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Load the input and output data on this transaction using the transaction json
|
|
175
|
-
* if there are outputs.
|
|
176
|
-
*/
|
|
177
|
-
loadInputsAndOutputs() {
|
|
178
|
-
const txJson = this.toJson();
|
|
179
|
-
if (txJson.payload.payloadType === transactions_1.PayloadType.TokenTransfer) {
|
|
180
|
-
if (txJson.payload.to && txJson.payload.amount) {
|
|
181
|
-
this._outputs = [
|
|
182
|
-
{
|
|
183
|
-
address: txJson.payload.to,
|
|
184
|
-
value: txJson.payload.amount,
|
|
185
|
-
coin: this._coinConfig.name,
|
|
186
|
-
},
|
|
187
|
-
];
|
|
188
|
-
this._inputs = [
|
|
189
|
-
{
|
|
190
|
-
address: txJson.from,
|
|
191
|
-
value: txJson.payload.amount,
|
|
192
|
-
coin: this._coinConfig.name,
|
|
193
|
-
},
|
|
194
|
-
];
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
else if (txJson.payload.payloadType === transactions_1.PayloadType.ContractCall) {
|
|
198
|
-
if (txJson.payload.contractAddress === this._coinConfig.network.sendmanymemoContractAddress) {
|
|
199
|
-
const sendParams = (0, utils_1.functionArgsToSendParams)(this.stxTransaction.payload.functionArgs);
|
|
200
|
-
const coin = this._coinConfig.name;
|
|
201
|
-
const sum = sendParams.reduce((current, next) => current.add(new bn_js_1.default(next.amount)), new bn_js_1.default(0));
|
|
202
|
-
this._outputs = sendParams.map((sendParam) => ({ address: sendParam.address, value: sendParam.amount, coin }));
|
|
203
|
-
this._inputs = [{ address: txJson.from, value: sum.toString(), coin }];
|
|
204
|
-
}
|
|
205
|
-
else if (txJson.payload.functionName === constants_1.FUNCTION_NAME_TRANSFER && txJson.payload.functionArgs.length >= 3) {
|
|
206
|
-
this._outputs = [
|
|
207
|
-
{
|
|
208
|
-
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[2]),
|
|
209
|
-
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[0]).toString(),
|
|
210
|
-
coin: this._coinConfig.name,
|
|
211
|
-
},
|
|
212
|
-
];
|
|
213
|
-
this._inputs = [
|
|
214
|
-
{
|
|
215
|
-
address: (0, transactions_1.cvToString)(txJson.payload.functionArgs[1]),
|
|
216
|
-
value: (0, transactions_1.cvToValue)(txJson.payload.functionArgs[0]).toString(),
|
|
217
|
-
coin: this._coinConfig.name,
|
|
218
|
-
},
|
|
219
|
-
];
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
this._outputs = [
|
|
223
|
-
{
|
|
224
|
-
address: txJson.payload.contractAddress,
|
|
225
|
-
value: '0',
|
|
226
|
-
coin: this._coinConfig.name,
|
|
227
|
-
},
|
|
228
|
-
];
|
|
229
|
-
this._inputs = [
|
|
230
|
-
{
|
|
231
|
-
address: txJson.from,
|
|
232
|
-
value: '0',
|
|
233
|
-
coin: this._coinConfig.name,
|
|
234
|
-
},
|
|
235
|
-
];
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
exports.Transaction = Transaction;
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQWlCOEI7QUFJOUIsOENBUXlCO0FBRXpCLGtEQUEyQjtBQUczQixtQ0FBZ0g7QUFFaEgsMkNBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUE0QixFQUFFLE9BQWdCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM3QixNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEYsS0FBSyxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBQSxx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LEVBQUUsSUFBQSx3QkFBUyxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUMzRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO3FCQUM1QjtpQkFDRixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLEdBQUc7b0JBQ2Q7d0JBQ0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDdkMsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsT0FBTyxHQUFHO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDcEIsS0FBSyxFQUFFLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtxQkFDNUI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbFBELGtDQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFkZHJlc3NUb1N0cmluZyxcbiAgQnVmZmVyUmVhZGVyLFxuICBDb250cmFjdENhbGxQYXlsb2FkLFxuICBjcmVhdGVTdGFja3NQcml2YXRlS2V5LFxuICBjcmVhdGVTdGFja3NQdWJsaWNLZXksXG4gIGNyZWF0ZVRyYW5zYWN0aW9uQXV0aEZpZWxkLFxuICBjdlRvU3RyaW5nLFxuICBjdlRvVmFsdWUsXG4gIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24sXG4gIGlzU2luZ2xlU2lnLFxuICBNdWx0aVNpZ1NwZW5kaW5nQ29uZGl0aW9uLFxuICBQYXlsb2FkVHlwZSxcbiAgUHViS2V5RW5jb2RpbmcsXG4gIFN0YWNrc01lc3NhZ2VUeXBlLFxuICBTdGFja3NUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TaWduZXIsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcblxuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90U3VwcG9ydGVkLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgQmlnTnVtIGZyb20gJ2JuLmpzJztcblxuaW1wb3J0IHsgU2lnbmF0dXJlRGF0YSwgU3RhY2tzQ29udHJhY3RQYXlsb2FkLCBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQsIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgZnVuY3Rpb25BcmdzVG9TZW5kUGFyYW1zLCBnZXRUeFNlbmRlckFkZHJlc3MsIHJlbW92ZUhleFByZWZpeCwgc3RyaW5naWZ5Q3YsIHVucGFkTWVtbyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBGVU5DVElPTl9OQU1FX1RSQU5TRkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9zdHhUcmFuc2FjdGlvbjogU3RhY2tzVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBwcml2YXRlIF9zaWdIYXNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzaWduKGtleVBhaXI6IEtleVBhaXJbXSB8IEtleVBhaXIsIHNpZ0hhc2g/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXlQYWlycyA9IGtleVBhaXIgaW5zdGFuY2VvZiBBcnJheSA/IGtleVBhaXIgOiBba2V5UGFpcl07XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IFRyYW5zYWN0aW9uU2lnbmVyKHRoaXMuX3N0eFRyYW5zYWN0aW9uKTtcbiAgICBzaWduZXIuY2hlY2tPdmVyc2lnbiA9IGZhbHNlO1xuICAgIHNpZ25lci5zaWdIYXNoID0gc2lnSGFzaCA/PyB0aGlzLl9zaWdIYXNoID8/IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnZlcmlmeUJlZ2luKCk7XG4gICAgZm9yIChjb25zdCBrcCBvZiBrZXlQYWlycykge1xuICAgICAgY29uc3Qga2V5cyA9IGtwLmdldEtleXMoa3AuZ2V0Q29tcHJlc3NlZCgpKTtcbiAgICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJpdktleSA9IGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXkoa2V5cy5wcnYpO1xuICAgICAgc2lnbmVyLnNpZ25PcmlnaW4ocHJpdktleSk7XG4gICAgICB0aGlzLl9zaWdIYXNoID0gc2lnbmVyLnNpZ0hhc2g7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYXBwZW5kT3JpZ2luKHB1YktleVN0cmluZzogc3RyaW5nW10gfCBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwdWJLZXlTdHJpbmdzID0gcHViS2V5U3RyaW5nIGluc3RhbmNlb2YgQXJyYXkgPyBwdWJLZXlTdHJpbmcgOiBbcHViS2V5U3RyaW5nXTtcbiAgICBjb25zdCBzaWduZXI6IFRyYW5zYWN0aW9uU2lnbmVyID0gbmV3IFRyYW5zYWN0aW9uU2lnbmVyKHRoaXMuX3N0eFRyYW5zYWN0aW9uKTtcbiAgICBwdWJLZXlTdHJpbmdzLmZvckVhY2goKHB1YktleSkgPT4ge1xuICAgICAgc2lnbmVyLmFwcGVuZE9yaWdpbihjcmVhdGVTdGFja3NQdWJsaWNLZXkocHViS2V5KSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaWduV2l0aFNpZ25hdHVyZXMoc2lnbmF0dXJlOiBTaWduYXR1cmVEYXRhW10gfCBTaWduYXR1cmVEYXRhLCBpc011bHRpU2lnOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFzaWduYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3Npbmcgc2lnbmF0dXJlcycpO1xuICAgIH1cbiAgICBjb25zdCBzaWduYXR1cmVzID0gc2lnbmF0dXJlIGluc3RhbmNlb2YgQXJyYXkgPyBzaWduYXR1cmUgOiBbc2lnbmF0dXJlXTtcblxuICAgIGlmICghaXNNdWx0aVNpZykge1xuICAgICAgdGhpcy5fc3R4VHJhbnNhY3Rpb24gPSB0aGlzLl9zdHhUcmFuc2FjdGlvbi5jcmVhdGVUeFdpdGhTaWduYXR1cmUoc2lnbmF0dXJlc1swXS5kYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXV0aEZpZWxkcyA9IHNpZ25hdHVyZXMubWFwKChzaWcpID0+IGNyZWF0ZVRyYW5zYWN0aW9uQXV0aEZpZWxkKFB1YktleUVuY29kaW5nLkNvbXByZXNzZWQsIHNpZykpO1xuICAgICAgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24gYXMgTXVsdGlTaWdTcGVuZGluZ0NvbmRpdGlvbikuZmllbGRzID0gKFxuICAgICAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uIGFzIE11bHRpU2lnU3BlbmRpbmdDb25kaXRpb25cbiAgICAgICkuZmllbGRzLmNvbmNhdChhdXRoRmllbGRzKTtcbiAgICB9XG4gICAgaWYgKHNpZ25hdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2lnSGFzaCA9IHNpZ25hdHVyZXNbc2lnbmF0dXJlcy5sZW5ndGggLSAxXS5zaWdIYXNoO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaWduYXR1cmUoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLl9zdHhUcmFuc2FjdGlvbiAmJiB0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uKSB7XG4gICAgICBpZiAoaXNTaW5nbGVTaWcodGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLl9zdHhUcmFuc2FjdGlvbi5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uLnNpZ25hdHVyZS5kYXRhXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgaWYgKGZpZWxkLmNvbnRlbnRzLnR5cGUgPT09IFN0YWNrc01lc3NhZ2VUeXBlLk1lc3NhZ2VTaWduYXR1cmUpIHtcbiAgICAgICAgICAgIHNpZ25hdHVyZXMucHVzaChmaWVsZC5jb250ZW50cy5kYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc2lnbmF0dXJlcztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3R4VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdDogVHhEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuX3N0eFRyYW5zYWN0aW9uLnR4aWQoKSxcbiAgICAgIGZlZTogdGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5nZXRGZWUoKS50b1N0cmluZygxMCksXG4gICAgICBmcm9tOiBnZXRUeFNlbmRlckFkZHJlc3ModGhpcy5fc3R4VHJhbnNhY3Rpb24pLFxuICAgICAgbm9uY2U6IHRoaXMuZ2V0Tm9uY2UoKSxcbiAgICAgIHBheWxvYWQ6IHRoaXMuZ2V0UGF5bG9hZERhdGEoKSxcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFBheWxvYWREYXRhKCk6IFN0YWNrc1RyYW5zYWN0aW9uUGF5bG9hZCB8IFN0YWNrc0NvbnRyYWN0UGF5bG9hZCB7XG4gICAgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLlRva2VuVHJhbnNmZXIpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLl9zdHhUcmFuc2FjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgdHhQYXlsb2FkOiBTdGFja3NUcmFuc2FjdGlvblBheWxvYWQgPSB7XG4gICAgICAgIHBheWxvYWRUeXBlOiBQYXlsb2FkVHlwZS5Ub2tlblRyYW5zZmVyLFxuICAgICAgICAvLyByZXN1bHQucGF5bG9hZC5tZW1vIHdpbGwgYmUgcGFkZGVkIHdpdGggXFx1MDAwMCB1cCB0b1xuICAgICAgICAvLyBNRU1PX01BWF9MRU5HVEhfQllURVMgYXMgZGVmaW5lZCBpbiBAc3RhY2tzL3RyYW5zYWN0aW9uc1xuICAgICAgICBtZW1vOiB1bnBhZE1lbW8ocGF5bG9hZC5tZW1vLmNvbnRlbnQpLFxuICAgICAgICB0bzogYWRkcmVzc1RvU3RyaW5nKHtcbiAgICAgICAgICB0eXBlOiBTdGFja3NNZXNzYWdlVHlwZS5BZGRyZXNzLFxuICAgICAgICAgIHZlcnNpb246IHBheWxvYWQucmVjaXBpZW50LmFkZHJlc3MudmVyc2lvbixcbiAgICAgICAgICBoYXNoMTYwOiBwYXlsb2FkLnJlY2lwaWVudC5hZGRyZXNzLmhhc2gxNjAudG9TdHJpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGFtb3VudDogcGF5bG9hZC5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdHhQYXlsb2FkO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZC5wYXlsb2FkVHlwZSA9PT0gUGF5bG9hZFR5cGUuQ29udHJhY3RDYWxsKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fc3R4VHJhbnNhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IGNvbnRyYWN0UGF5bG9hZDogU3RhY2tzQ29udHJhY3RQYXlsb2FkID0ge1xuICAgICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuQ29udHJhY3RDYWxsLFxuICAgICAgICBjb250cmFjdEFkZHJlc3M6IGFkZHJlc3NUb1N0cmluZyhwYXlsb2FkLmNvbnRyYWN0QWRkcmVzcyksXG4gICAgICAgIGNvbnRyYWN0TmFtZTogcGF5bG9hZC5jb250cmFjdE5hbWUuY29udGVudCxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBwYXlsb2FkLmZ1bmN0aW9uTmFtZS5jb250ZW50LFxuICAgICAgICBmdW5jdGlvbkFyZ3M6IHBheWxvYWQuZnVuY3Rpb25BcmdzLm1hcChzdHJpbmdpZnlDdiksXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNvbnRyYWN0UGF5bG9hZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgncGF5bG9hZCB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgYSB0cmFuc2FjdGlvbi4gIFRoaXMgaXMgbmVlZGVkIHRvIGNhbGN1bGF0ZVxuICAgKiB0aGUgdHJhbnNhY3Rpb24gZmVlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBzaXplIGluIGJ5dGVzIG9mIHRoZSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICB0cmFuc2FjdGlvblNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3R4VHJhbnNhY3Rpb24uc2VyaWFsaXplKCkubGVuZ3RoO1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N0eFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3R4VHJhbnNhY3Rpb24uc2VyaWFsaXplKCkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgZ2V0IHN0eFRyYW5zYWN0aW9uKCk6IFN0YWNrc1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc3R4VHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgc3R4VHJhbnNhY3Rpb24odDogU3RhY2tzVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl9zdHhUcmFuc2FjdGlvbiA9IHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE5vbmNlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuX3N0eFRyYW5zYWN0aW9uLmF1dGguc3BlbmRpbmdDb25kaXRpb24pIHtcbiAgICAgIHJldHVybiBOdW1iZXIodGhpcy5fc3R4VHJhbnNhY3Rpb24uYXV0aC5zcGVuZGluZ0NvbmRpdGlvbi5ub25jZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignc3BlbmRpbmcgY29uZGl0aW9uIGlzIG51bGwnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJhdyA9IHJlbW92ZUhleFByZWZpeChyYXdUcmFuc2FjdGlvbik7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX3N0eFRyYW5zYWN0aW9uID0gZGVzZXJpYWxpemVUcmFuc2FjdGlvbihCdWZmZXJSZWFkZXIuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShyYXcsICdoZXgnKSkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0Vycm9yIHBhcnNpbmcgdGhlIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSB0cmFuc2FjdGlvbiBqc29uXG4gICAqIGlmIHRoZXJlIGFyZSBvdXRwdXRzLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgY29uc3QgdHhKc29uID0gdGhpcy50b0pzb24oKTtcbiAgICBpZiAodHhKc29uLnBheWxvYWQucGF5bG9hZFR5cGUgPT09IFBheWxvYWRUeXBlLlRva2VuVHJhbnNmZXIpIHtcbiAgICAgIGlmICh0eEpzb24ucGF5bG9hZC50byAmJiB0eEpzb24ucGF5bG9hZC5hbW91bnQpIHtcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiB0eEpzb24ucGF5bG9hZC50byxcbiAgICAgICAgICAgIHZhbHVlOiB0eEpzb24ucGF5bG9hZC5hbW91bnQsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLmZyb20sXG4gICAgICAgICAgICB2YWx1ZTogdHhKc29uLnBheWxvYWQuYW1vdW50LFxuICAgICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eEpzb24ucGF5bG9hZC5wYXlsb2FkVHlwZSA9PT0gUGF5bG9hZFR5cGUuQ29udHJhY3RDYWxsKSB7XG4gICAgICBpZiAodHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzID09PSAodGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrIGFzIFN0YWNrc05ldHdvcmspLnNlbmRtYW55bWVtb0NvbnRyYWN0QWRkcmVzcykge1xuICAgICAgICBjb25zdCBzZW5kUGFyYW1zID0gZnVuY3Rpb25BcmdzVG9TZW5kUGFyYW1zKCh0aGlzLnN0eFRyYW5zYWN0aW9uLnBheWxvYWQgYXMgQ29udHJhY3RDYWxsUGF5bG9hZCkuZnVuY3Rpb25BcmdzKTtcbiAgICAgICAgY29uc3QgY29pbiA9IHRoaXMuX2NvaW5Db25maWcubmFtZTtcbiAgICAgICAgY29uc3Qgc3VtOiBCaWdOdW0gPSBzZW5kUGFyYW1zLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5hZGQobmV3IEJpZ051bShuZXh0LmFtb3VudCkpLCBuZXcgQmlnTnVtKDApKTtcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IHNlbmRQYXJhbXMubWFwKChzZW5kUGFyYW0pID0+ICh7IGFkZHJlc3M6IHNlbmRQYXJhbS5hZGRyZXNzLCB2YWx1ZTogc2VuZFBhcmFtLmFtb3VudCwgY29pbiB9KSk7XG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFt7IGFkZHJlc3M6IHR4SnNvbi5mcm9tLCB2YWx1ZTogc3VtLnRvU3RyaW5nKCksIGNvaW4gfV07XG4gICAgICB9IGVsc2UgaWYgKHR4SnNvbi5wYXlsb2FkLmZ1bmN0aW9uTmFtZSA9PT0gRlVOQ1RJT05fTkFNRV9UUkFOU0ZFUiAmJiB0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3MubGVuZ3RoID49IDMpIHtcbiAgICAgICAgdGhpcy5fb3V0cHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiBjdlRvU3RyaW5nKHR4SnNvbi5wYXlsb2FkLmZ1bmN0aW9uQXJnc1syXSksXG4gICAgICAgICAgICB2YWx1ZTogY3ZUb1ZhbHVlKHR4SnNvbi5wYXlsb2FkLmZ1bmN0aW9uQXJnc1swXSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogY3ZUb1N0cmluZyh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMV0pLFxuICAgICAgICAgICAgdmFsdWU6IGN2VG9WYWx1ZSh0eEpzb24ucGF5bG9hZC5mdW5jdGlvbkFyZ3NbMF0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogdHhKc29uLnBheWxvYWQuY29udHJhY3RBZGRyZXNzLFxuICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiB0eEpzb24uZnJvbSxcbiAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
|
-
import { StacksNetwork } from '@stacks/network';
|
|
4
|
-
import { BaseAddress, BaseFee, BaseKey, BaseTransactionBuilder } from '@bitgo/sdk-core';
|
|
5
|
-
import { Transaction } from './transaction';
|
|
6
|
-
import { KeyPair } from './keyPair';
|
|
7
|
-
import { SignatureData } from './iface';
|
|
8
|
-
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
9
|
-
private _transaction;
|
|
10
|
-
protected _anchorMode: number;
|
|
11
|
-
protected _fee: BaseFee;
|
|
12
|
-
protected _nonce: number;
|
|
13
|
-
protected _memo: string;
|
|
14
|
-
protected _numberSignatures: number;
|
|
15
|
-
protected _multiSignerKeyPairs: KeyPair[];
|
|
16
|
-
protected _signatures: SignatureData[];
|
|
17
|
-
protected _network: StacksNetwork;
|
|
18
|
-
protected _fromPubKeys: string[];
|
|
19
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
20
|
-
/**
|
|
21
|
-
* Initialize the transaction builder fields using the decoded transaction data
|
|
22
|
-
*
|
|
23
|
-
* @param {Transaction} tx the transaction data
|
|
24
|
-
*/
|
|
25
|
-
initBuilder(tx: Transaction): void;
|
|
26
|
-
/** @inheritdoc */
|
|
27
|
-
protected fromImplementation(rawTransaction: string): Transaction;
|
|
28
|
-
/** @inheritdoc */
|
|
29
|
-
protected buildImplementation(): Promise<Transaction>;
|
|
30
|
-
private getSignature;
|
|
31
|
-
private getPrivateKey;
|
|
32
|
-
/** @inheritdoc */
|
|
33
|
-
protected signImplementation(key: BaseKey): Transaction;
|
|
34
|
-
/** @inheritdoc */
|
|
35
|
-
protected get transaction(): Transaction;
|
|
36
|
-
/** @inheritdoc */
|
|
37
|
-
protected set transaction(transaction: Transaction);
|
|
38
|
-
/**
|
|
39
|
-
* Validates that the given key is not already in this._multiSignerKeyPairs
|
|
40
|
-
*
|
|
41
|
-
* @param {BaseKey} key - The key to check
|
|
42
|
-
*/
|
|
43
|
-
private checkDuplicatedKeys;
|
|
44
|
-
/**
|
|
45
|
-
* Set the transaction fees
|
|
46
|
-
*
|
|
47
|
-
* @param {BaseFee} fee The maximum gas to pay
|
|
48
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
49
|
-
*/
|
|
50
|
-
fee(fee: BaseFee): this;
|
|
51
|
-
nonce(n: number): this;
|
|
52
|
-
fromPubKey(senderPubKey: string | string[]): this;
|
|
53
|
-
/**
|
|
54
|
-
* Set the memo
|
|
55
|
-
*
|
|
56
|
-
* @param {string} memo
|
|
57
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
58
|
-
*/
|
|
59
|
-
memo(memo: string): this;
|
|
60
|
-
/**
|
|
61
|
-
* Set the number of signatures for multi-sig
|
|
62
|
-
*
|
|
63
|
-
* @param {number} numSigns
|
|
64
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
65
|
-
*/
|
|
66
|
-
numberSignatures(numSigns: number): this;
|
|
67
|
-
/** @inheritdoc */
|
|
68
|
-
validateAddress(address: BaseAddress, addressFormat?: string): void;
|
|
69
|
-
/** @inheritdoc */
|
|
70
|
-
validateKey(key: BaseKey): void;
|
|
71
|
-
/** @inheritdoc */
|
|
72
|
-
validateRawTransaction(rawTransaction: string): void;
|
|
73
|
-
/** @inheritdoc */
|
|
74
|
-
validateTransaction(transaction?: Transaction): void;
|
|
75
|
-
/** @inheritdoc */
|
|
76
|
-
validateValue(value: BigNumber): void;
|
|
77
|
-
/**
|
|
78
|
-
* Validates that the fee field is defined
|
|
79
|
-
*/
|
|
80
|
-
private validateFee;
|
|
81
|
-
/**
|
|
82
|
-
* Validates that nonce is defined
|
|
83
|
-
*/
|
|
84
|
-
private validateNonce;
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,gBAAgB,CAAC;AAarE,OAAO,EAAE,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,sBAAsB,EAOvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIxC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,OAAO,CAAC,YAAY,CAAc;IAClC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;IAC1C,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAW7C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA2ClC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAYjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAwB3D,OAAO,CAAC,YAAY,CAC8B;IAClD,OAAO,CAAC,aAAa,CACoF;IAEzG,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAmBvD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMvB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAajD;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxB;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAO/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAWpD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IAKpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,aAAa;CAUtB"}
|