@bitgo-beta/sdk-coin-sui 3.0.3-beta.202 → 3.0.3-beta.2021
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -2
- package/dist/src/lib/compareTransactionBlocks.js +2 -3
- package/dist/src/lib/constants.d.ts +9 -2
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +18 -2
- package/dist/src/lib/customTransaction.js +3 -3
- package/dist/src/lib/customTransactionBuilder.js +5 -5
- package/dist/src/lib/iface.d.ts +80 -12
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +34 -5
- package/dist/src/lib/index.d.ts +6 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +36 -10
- package/dist/src/lib/keyPair.js +24 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +64 -11
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Inputs.js +63 -19
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +88 -355
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +44 -25
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +152 -77
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +54 -44
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
- package/dist/src/lib/mystenlab/builder/index.js +6 -2
- package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
- package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/utils.js +4 -4
- package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
- package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/framework/framework.js +22 -25
- package/dist/src/lib/mystenlab/framework/index.js +6 -2
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
- package/dist/src/lib/mystenlab/types/coin.d.ts +17 -15
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/coin.js +20 -19
- package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/common.js +22 -22
- package/dist/src/lib/mystenlab/types/events.d.ts +15 -15
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/events.js +17 -17
- package/dist/src/lib/mystenlab/types/index.js +6 -2
- package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/normalized.js +41 -41
- package/dist/src/lib/mystenlab/types/objects.d.ts +51 -51
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/objects.js +96 -106
- package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/option.js +2 -3
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +55 -29
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/sui-bcs.js +29 -5
- package/dist/src/lib/mystenlab/types/transactions.d.ts +625 -625
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/transactions.js +178 -194
- package/dist/src/lib/mystenlab/types/validator.d.ts +13 -13
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/validator.js +124 -124
- package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
- package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
- package/dist/src/lib/resources/walrusConfig.js +37 -0
- package/dist/src/lib/rpcClient.d.ts +5 -0
- package/dist/src/lib/rpcClient.d.ts.map +1 -0
- package/dist/src/lib/rpcClient.js +74 -0
- package/dist/src/lib/stakingBuilder.d.ts +10 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +59 -7
- package/dist/src/lib/stakingTransaction.d.ts +0 -1
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +36 -18
- package/dist/src/lib/tokenTransferBuilder.d.ts +93 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +266 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts +59 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferTransaction.js +272 -0
- package/dist/src/lib/transaction.d.ts +21 -4
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +144 -17
- package/dist/src/lib/transactionBuilder.d.ts +13 -4
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +34 -4
- package/dist/src/lib/transactionBuilderFactory.d.ts +11 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +32 -1
- package/dist/src/lib/transferBuilder.d.ts +58 -1
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +310 -24
- package/dist/src/lib/transferTransaction.d.ts +6 -1
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +129 -12
- package/dist/src/lib/unstakingBuilder.js +6 -6
- package/dist/src/lib/unstakingTransaction.d.ts +0 -1
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/unstakingTransaction.js +31 -17
- package/dist/src/lib/utils.d.ts +24 -3
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +295 -22
- package/dist/src/lib/walrusStakingBuilder.d.ts +77 -0
- package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingBuilder.js +276 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingTransaction.js +289 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.js +177 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/sui.d.ts +58 -8
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +538 -37
- package/dist/src/suiToken.d.ts +22 -0
- package/dist/src/suiToken.d.ts.map +1 -0
- package/dist/src/suiToken.js +61 -0
- package/dist/src/tsui.js +1 -1
- package/dist/test/integration/index.d.ts +1 -0
- package/dist/test/integration/index.d.ts.map +1 -0
- package/dist/test/integration/index.js +1 -0
- package/dist/test/local_fullnode/RpcClient.d.ts +60 -0
- package/dist/test/local_fullnode/RpcClient.d.ts.map +1 -0
- package/dist/test/local_fullnode/RpcClient.js +111 -0
- package/dist/test/local_fullnode/faucet.d.ts +6 -0
- package/dist/test/local_fullnode/faucet.d.ts.map +1 -0
- package/dist/test/local_fullnode/faucet.js +17 -0
- package/dist/test/local_fullnode/transactions.d.ts +2 -0
- package/dist/test/local_fullnode/transactions.d.ts.map +1 -0
- package/dist/test/local_fullnode/transactions.js +190 -0
- package/dist/test/resources/sui.d.ts +458 -0
- package/dist/test/resources/sui.d.ts.map +1 -0
- package/dist/test/resources/sui.js +632 -0
- package/dist/test/unit/compareTransactionBlocks.d.ts +2 -0
- package/dist/test/unit/compareTransactionBlocks.d.ts.map +1 -0
- package/dist/test/unit/compareTransactionBlocks.js +64 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +72 -0
- package/dist/test/unit/sui.d.ts +2 -0
- package/dist/test/unit/sui.d.ts.map +1 -0
- package/dist/test/unit/sui.js +2747 -0
- package/dist/test/unit/suiToken.d.ts +2 -0
- package/dist/test/unit/suiToken.d.ts.map +1 -0
- package/dist/test/unit/suiToken.js +39 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +106 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingBuilder.js +294 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +431 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +639 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +1181 -0
- package/dist/test/unit/transactionBuilder/unstakingBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/unstakingBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/unstakingBuilder.js +115 -0
- package/dist/test/unit/transactionBuilder/walrusStakingBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/walrusStakingBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/walrusStakingBuilder.js +289 -0
- package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/walrusWithdrawBuilder.js +250 -0
- package/dist/test/unit/transferTransaction.d.ts +2 -0
- package/dist/test/unit/transferTransaction.d.ts.map +1 -0
- package/dist/test/unit/transferTransaction.js +94 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +186 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +16 -12
- package/.eslintignore +0 -6
- package/.mocharc.yml +0 -7
- package/CHANGELOG.md +0 -465
|
@@ -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];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
37
|
};
|
|
@@ -48,7 +62,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
48
62
|
/** @inheritDoc **/
|
|
49
63
|
get id() {
|
|
50
64
|
const dataBytes = this.getDataBytes();
|
|
51
|
-
const hash = hash_1.hashTypedData('TransactionData', dataBytes);
|
|
65
|
+
const hash = (0, hash_1.hashTypedData)('TransactionData', dataBytes);
|
|
52
66
|
this._id = bs58_1.default.encode(hash);
|
|
53
67
|
return this._id;
|
|
54
68
|
}
|
|
@@ -57,12 +71,20 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
57
71
|
this._signature = { publicKey, signature };
|
|
58
72
|
this.serialize();
|
|
59
73
|
}
|
|
74
|
+
addFeePayerSignature(publicKey, signature) {
|
|
75
|
+
this._signatures.push(signature.toString('hex'));
|
|
76
|
+
this._feePayerSignature = { publicKey, signature };
|
|
77
|
+
this.serialize();
|
|
78
|
+
}
|
|
60
79
|
get suiSignature() {
|
|
61
80
|
return this._signature;
|
|
62
81
|
}
|
|
63
82
|
get serializedSig() {
|
|
64
83
|
return this._serializedSig;
|
|
65
84
|
}
|
|
85
|
+
get serializedFeePayerSig() {
|
|
86
|
+
return this._serializedFeePayerSig;
|
|
87
|
+
}
|
|
66
88
|
setSerializedSig(publicKey, signature) {
|
|
67
89
|
const pubKey = buffer_1.Buffer.from(publicKey.pub, 'hex');
|
|
68
90
|
const serialized_sig = new Uint8Array(1 + signature.length + pubKey.length);
|
|
@@ -71,6 +93,14 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
71
93
|
serialized_sig.set(pubKey, 1 + signature.length);
|
|
72
94
|
this._serializedSig = serialized_sig;
|
|
73
95
|
}
|
|
96
|
+
setSerializedFeePayerSig(publicKey, signature) {
|
|
97
|
+
const pubKey = buffer_1.Buffer.from(publicKey.pub, 'hex');
|
|
98
|
+
const serialized_sig = new Uint8Array(1 + signature.length + pubKey.length);
|
|
99
|
+
serialized_sig.set(constants_1.SIGNATURE_SCHEME_BYTES);
|
|
100
|
+
serialized_sig.set(signature, 1);
|
|
101
|
+
serialized_sig.set(pubKey, 1 + signature.length);
|
|
102
|
+
this._serializedFeePayerSig = serialized_sig;
|
|
103
|
+
}
|
|
74
104
|
/** @inheritdoc */
|
|
75
105
|
canSign(key) {
|
|
76
106
|
return true;
|
|
@@ -89,6 +119,24 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
89
119
|
this.setSerializedSig({ pub: signer.getKeys().pub }, buffer_1.Buffer.from(signature));
|
|
90
120
|
this.addSignature({ pub: signer.getKeys().pub }, buffer_1.Buffer.from(signature));
|
|
91
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Sign transaction as the gas owner (fee payer).
|
|
124
|
+
*
|
|
125
|
+
* @param {KeyPair} ownerKey - Key for gas owner.
|
|
126
|
+
*/
|
|
127
|
+
signAsFeePayer(signer) {
|
|
128
|
+
if (!this._suiTransaction) {
|
|
129
|
+
throw new sdk_core_1.InvalidTransactionError('empty transaction to sign');
|
|
130
|
+
}
|
|
131
|
+
const intentMessage = this.signablePayload;
|
|
132
|
+
const signature = signer.signMessageinUint8Array(intentMessage);
|
|
133
|
+
this._feePayerSignature = {
|
|
134
|
+
publicKey: { pub: signer.getKeys().pub },
|
|
135
|
+
signature: buffer_1.Buffer.from(signature),
|
|
136
|
+
};
|
|
137
|
+
// Set serialized signature for fee payer
|
|
138
|
+
this.setSerializedFeePayerSig({ pub: signer.getKeys().pub }, buffer_1.Buffer.from(signature));
|
|
139
|
+
}
|
|
92
140
|
/** @inheritdoc */
|
|
93
141
|
toBroadcastFormat() {
|
|
94
142
|
if (!this._suiTransaction) {
|
|
@@ -113,7 +161,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
113
161
|
get signablePayload() {
|
|
114
162
|
const dataBytes = this.getDataBytes();
|
|
115
163
|
const intentMessage = this.messageWithIntent(utils_1.IntentScope.TransactionData, dataBytes);
|
|
116
|
-
return buffer_1.Buffer.from(blake2b_1.default(32).update(intentMessage).digest('binary'));
|
|
164
|
+
return buffer_1.Buffer.from((0, blake2b_1.default)(32).update(intentMessage).digest('binary'));
|
|
117
165
|
}
|
|
118
166
|
messageWithIntent(scope, message) {
|
|
119
167
|
const intent = this.intentWithScope(scope);
|
|
@@ -127,11 +175,11 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
127
175
|
}
|
|
128
176
|
serialize() {
|
|
129
177
|
const dataBytes = this.getDataBytes();
|
|
130
|
-
this._id = bs58_1.default.encode(hash_1.hashTypedData('TransactionData', dataBytes));
|
|
131
|
-
return bcs_1.toB64(dataBytes);
|
|
178
|
+
this._id = bs58_1.default.encode((0, hash_1.hashTypedData)('TransactionData', dataBytes));
|
|
179
|
+
return (0, bcs_1.toB64)(dataBytes);
|
|
132
180
|
}
|
|
133
181
|
static deserializeSuiTransaction(serializedTx) {
|
|
134
|
-
const data = bcs_1.fromB64(serializedTx);
|
|
182
|
+
const data = (0, bcs_1.fromB64)(serializedTx);
|
|
135
183
|
const transactionBlock = TransactionDataBlock_1.TransactionBlockDataBuilder.fromBytes(data);
|
|
136
184
|
const inputs = transactionBlock.inputs.map((txInput) => txInput.value);
|
|
137
185
|
const transactions = transactionBlock.transactions;
|
|
@@ -139,17 +187,22 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
139
187
|
return {
|
|
140
188
|
id: transactionBlock.getDigest(),
|
|
141
189
|
type: txType,
|
|
142
|
-
sender: types_1.normalizeSuiAddress(transactionBlock.sender),
|
|
190
|
+
sender: (0, types_1.normalizeSuiAddress)(transactionBlock.sender),
|
|
143
191
|
tx: {
|
|
144
192
|
inputs: inputs,
|
|
145
193
|
transactions: transactions,
|
|
146
194
|
},
|
|
147
195
|
gasData: {
|
|
148
196
|
payment: this.normalizeCoins(transactionBlock.gasConfig.payment),
|
|
149
|
-
owner: types_1.normalizeSuiAddress(transactionBlock.gasConfig.owner),
|
|
197
|
+
owner: (0, types_1.normalizeSuiAddress)(transactionBlock.gasConfig.owner),
|
|
150
198
|
price: Number(transactionBlock.gasConfig.price),
|
|
151
199
|
budget: Number(transactionBlock.gasConfig.budget),
|
|
152
200
|
},
|
|
201
|
+
// Normalize None expiration (the BCS default) to undefined so that pre-build
|
|
202
|
+
// and post-deserialization SuiTransaction objects compare equal.
|
|
203
|
+
expiration: transactionBlock.expiration && !('None' in transactionBlock.expiration)
|
|
204
|
+
? transactionBlock.expiration
|
|
205
|
+
: undefined,
|
|
153
206
|
};
|
|
154
207
|
}
|
|
155
208
|
static getSuiTransactionType(transactions) {
|
|
@@ -157,12 +210,56 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
157
210
|
if (transactions.length == 1) {
|
|
158
211
|
return utils_1.default.getSuiTransactionType(transactions[0]);
|
|
159
212
|
}
|
|
213
|
+
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.WalrusStakeWithPool)) {
|
|
214
|
+
return iface_1.SuiTransactionType.WalrusStakeWithPool;
|
|
215
|
+
}
|
|
216
|
+
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.WalrusRequestWithdrawStake)) {
|
|
217
|
+
return iface_1.SuiTransactionType.WalrusRequestWithdrawStake;
|
|
218
|
+
}
|
|
219
|
+
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.WalrusWithdrawStake)) {
|
|
220
|
+
return iface_1.SuiTransactionType.WalrusWithdrawStake;
|
|
221
|
+
}
|
|
160
222
|
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.AddStake)) {
|
|
161
223
|
return iface_1.SuiTransactionType.AddStake;
|
|
162
224
|
}
|
|
163
225
|
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.WithdrawStake)) {
|
|
164
226
|
return iface_1.SuiTransactionType.WithdrawStake;
|
|
165
227
|
}
|
|
228
|
+
// Sponsored Transfer with fundsInAddressBalance uses a redeem_funds MoveCall alongside
|
|
229
|
+
// MergeCoins/SplitCoins on non-GasCoin objects, which would otherwise be misclassified
|
|
230
|
+
// as TokenTransfer. Distinguish from TokenTransfer+fundsInAddressBalance by checking
|
|
231
|
+
// that the redeem_funds typeArgument is the native SUI coin type (0x2::sui::SUI).
|
|
232
|
+
const suiNativeAddress = (0, types_1.normalizeSuiAddress)('0x2');
|
|
233
|
+
if (transactions.some((tx) => {
|
|
234
|
+
if (tx.kind !== 'MoveCall')
|
|
235
|
+
return false;
|
|
236
|
+
const moveCall = tx;
|
|
237
|
+
if (!moveCall.target?.endsWith(iface_1.MethodNames.RedeemFunds))
|
|
238
|
+
return false;
|
|
239
|
+
const typeArg = moveCall.typeArguments?.[0] ?? '';
|
|
240
|
+
const [addr = '', mod = '', name = ''] = typeArg.split('::');
|
|
241
|
+
return (0, types_1.normalizeSuiAddress)(addr) === suiNativeAddress && mod === 'sui' && name === 'SUI';
|
|
242
|
+
})) {
|
|
243
|
+
return iface_1.SuiTransactionType.Transfer;
|
|
244
|
+
}
|
|
245
|
+
// Full-amount token addr-bal send: MoveCall(redeem_funds, TOKEN_TYPE) + TransferObjects
|
|
246
|
+
// with no SplitCoins. Both commands return Transfer from getSuiTransactionType, so the
|
|
247
|
+
// check below wouldn't fire. Detect by finding redeem_funds with a non-native type arg.
|
|
248
|
+
if (transactions.some((tx) => {
|
|
249
|
+
if (tx.kind !== 'MoveCall')
|
|
250
|
+
return false;
|
|
251
|
+
const moveCall = tx;
|
|
252
|
+
if (!moveCall.target?.endsWith(iface_1.MethodNames.RedeemFunds))
|
|
253
|
+
return false;
|
|
254
|
+
const typeArg = moveCall.typeArguments?.[0] ?? '';
|
|
255
|
+
const [addr = '', mod = '', name = ''] = typeArg.split('::');
|
|
256
|
+
return !((0, types_1.normalizeSuiAddress)(addr) === suiNativeAddress && mod === 'sui' && name === 'SUI');
|
|
257
|
+
})) {
|
|
258
|
+
return iface_1.SuiTransactionType.TokenTransfer;
|
|
259
|
+
}
|
|
260
|
+
if (transactions.some((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.TokenTransfer)) {
|
|
261
|
+
return iface_1.SuiTransactionType.TokenTransfer;
|
|
262
|
+
}
|
|
166
263
|
if (transactions.every((tx) => utils_1.default.getSuiTransactionType(tx) === iface_1.SuiTransactionType.Transfer)) {
|
|
167
264
|
return iface_1.SuiTransactionType.Transfer;
|
|
168
265
|
}
|
|
@@ -183,11 +280,41 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
183
280
|
}
|
|
184
281
|
static normalizeSuiObjectRef(obj) {
|
|
185
282
|
return {
|
|
186
|
-
objectId: types_1.normalizeSuiObjectId(obj.objectId),
|
|
283
|
+
objectId: (0, types_1.normalizeSuiObjectId)(obj.objectId),
|
|
187
284
|
version: Number(obj.version),
|
|
188
285
|
digest: obj.digest,
|
|
189
286
|
};
|
|
190
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* When building transactions with > 255 input gas payment objects, we first use MergeCoins Tranasactions to merge the
|
|
290
|
+
* additional inputs into the gas coin & slice them from the payment in gasData. When initializing the builder using
|
|
291
|
+
* decoded tx data, we need to get these inputs from MergeCoins & add them back to the gas payment to be able to
|
|
292
|
+
* rebuild from a raw transaction.
|
|
293
|
+
*/
|
|
294
|
+
getInputGasPaymentObjectsFromTx(tx) {
|
|
295
|
+
const txInputs = tx.inputs;
|
|
296
|
+
const transactions = tx.transactions;
|
|
297
|
+
const inputGasPaymentObjects = [];
|
|
298
|
+
transactions.forEach((transaction) => {
|
|
299
|
+
if (transaction.kind === 'MergeCoins') {
|
|
300
|
+
const { destination, sources } = transaction;
|
|
301
|
+
if (destination.kind === 'GasCoin') {
|
|
302
|
+
sources.forEach((source) => {
|
|
303
|
+
if (source.kind === 'Input') {
|
|
304
|
+
let input = txInputs[source.index];
|
|
305
|
+
if ('value' in input) {
|
|
306
|
+
input = input.value;
|
|
307
|
+
}
|
|
308
|
+
if ('Object' in input && (0, utils_1.isImmOrOwnedObj)(input.Object)) {
|
|
309
|
+
inputGasPaymentObjects.push(input.Object.ImmOrOwned);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
return inputGasPaymentObjects;
|
|
317
|
+
}
|
|
191
318
|
}
|
|
192
319
|
exports.Transaction = Transaction;
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFPOEI7QUFDOUIsbUNBTWlCO0FBRWpCLGlEQUEyRTtBQUMzRSw2Q0FBcUc7QUFDckcsMkNBQXFEO0FBQ3JELG1DQUFnQztBQUNoQyxxQ0FBNkM7QUFDN0MsZ0RBQXdCO0FBRXhCLG1GQUFrSDtBQUNsSCxpREFBK0Q7QUFDL0Qsa0VBQTBDO0FBQzFDLHdEQUE4RDtBQUU5RCxNQUFzQixXQUFlLFNBQVEsMEJBQWU7SUFLMUQsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFxQjtRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLElBQUksRUFBRTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxvQkFBYSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxHQUFHLEdBQUcsY0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFF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LENBQUMsUUFBUSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUM1QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07U0FDbkIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTVNRCxrQ0E0TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblR5cGUgYXMgQml0R29UcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbiAgU3VpVHJhbnNhY3Rpb24sXG4gIFN1aVRyYW5zYWN0aW9uVHlwZSxcbiAgVHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbiAgVHhEYXRhLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB1dGlscywgeyBBcHBJZCwgSW50ZW50LCBJbnRlbnRTY29wZSwgSW50ZW50VmVyc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgR2FzRGF0YSwgbm9ybWFsaXplU3VpQWRkcmVzcywgbm9ybWFsaXplU3VpT2JqZWN0SWQsIFN1aU9iamVjdFJlZiB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB7IFNJR05BVFVSRV9TQ0hFTUVfQllURVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgZnJvbUI2NCwgdG9CNjQgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQgYnM1OCBmcm9tICdiczU4JztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgVFJBTlNBQ1RJT05fREFUQV9NQVhfU0laRSwgVHJhbnNhY3Rpb25CbG9ja0RhdGFCdWlsZGVyIH0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlci9UcmFuc2FjdGlvbkRhdGFCbG9jayc7XG5pbXBvcnQgeyBidWlsZGVyLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyJztcbmltcG9ydCBibGFrZTJiIGZyb20gJ0BiaXRnby1iZXRhL2JsYWtlMmInO1xuaW1wb3J0IHsgaGFzaFR5cGVkRGF0YSB9IGZyb20gJy4vbXlzdGVubGFiL2NyeXB0b2dyYXBoeS9oYXNoJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uPFQ+IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9zdWlUcmFuc2FjdGlvbjogU3VpVHJhbnNhY3Rpb248VD47XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlOiBTaWduYXR1cmU7XG4gIHByaXZhdGUgX3NlcmlhbGl6ZWRTaWc6IFVpbnQ4QXJyYXk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBzdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0U3VpVHJhbnNhY3Rpb24odHg6IFN1aVRyYW5zYWN0aW9uPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YUJ5dGVzID0gdGhpcy5nZXREYXRhQnl0ZXMoKTtcbiAgICBjb25zdCBoYXNoID0gaGFzaFR5cGVkRGF0YSgnVHJhbnNhY3Rpb25EYXRhJywgZGF0YUJ5dGVzKTtcbiAgICB0aGlzLl9pZCA9IGJzNTguZW5jb2RlKGhhc2gpO1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZS50b1N0cmluZygnaGV4JykpO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHsgcHVibGljS2V5LCBzaWduYXR1cmUgfTtcbiAgICB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgZ2V0IHN1aVNpZ25hdHVyZSgpOiBTaWduYXR1cmUge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICBnZXQgc2VyaWFsaXplZFNpZygpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5fc2VyaWFsaXplZFNpZztcbiAgfVxuXG4gIHNldFNlcmlhbGl6ZWRTaWcocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIGNvbnN0IHB1YktleSA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleS5wdWIsICdoZXgnKTtcbiAgICBjb25zdCBzZXJpYWxpemVkX3NpZyA9IG5ldyBVaW50OEFycmF5KDEgKyBzaWduYXR1cmUubGVuZ3RoICsgcHViS2V5Lmxlbmd0aCk7XG4gICAgc2VyaWFsaXplZF9zaWcuc2V0KFNJR05BVFVSRV9TQ0hFTUVfQllURVMpO1xuICAgIHNlcmlhbGl6ZWRfc2lnLnNldChzaWduYXR1cmUsIDEpO1xuICAgIHNlcmlhbGl6ZWRfc2lnLnNldChwdWJLZXksIDEgKyBzaWduYXR1cmUubGVuZ3RoKTtcbiAgICB0aGlzLl9zZXJpYWxpemVkU2lnID0gc2VyaWFsaXplZF9zaWc7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRoaXMgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBzaWduZXIga2V5XG4gICAqL1xuXG4gIHNpZ24oc2lnbmVyOiBLZXlQYWlyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbiB0byBzaWduJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaW50ZW50TWVzc2FnZSA9IHRoaXMuc2lnbmFibGVQYXlsb2FkO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHNpZ25lci5zaWduTWVzc2FnZWluVWludDhBcnJheShpbnRlbnRNZXNzYWdlKTtcblxuICAgIHRoaXMuc2V0U2VyaWFsaXplZFNpZyh7IHB1Yjogc2lnbmVyLmdldEtleXMoKS5wdWIgfSwgQnVmZmVyLmZyb20oc2lnbmF0dXJlKSk7XG4gICAgdGhpcy5hZGRTaWduYXR1cmUoeyBwdWI6IHNpZ25lci5nZXRLZXlzKCkucHViIH0sIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhYnN0cmFjdCB0b0pzb24oKTogVHhEYXRhO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogQml0R29UcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqICBnZXQgdGhlIGNvcnJlY3QgdHhEYXRhIHdpdGggdHJhbnNhY3Rpb24gdHlwZVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhEYXRhKCk6IFR4RGF0YTtcblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBhYnN0cmFjdCBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGFic3RyYWN0IGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZDtcblxuICBnZXREYXRhQnl0ZXMoKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgdHhEYXRhID0gdGhpcy5nZXRUeERhdGEoKTtcbiAgICBjb25zdCB0eFNlciA9IGJ1aWxkZXIuc2VyKCdUcmFuc2FjdGlvbkRhdGEnLCB7IFYxOiB0eERhdGEgfSwgeyBtYXhTaXplOiBUUkFOU0FDVElPTl9EQVRBX01BWF9TSVpFIH0pO1xuICAgIHJldHVybiB0eFNlci50b0J5dGVzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIGNvbnN0IGRhdGFCeXRlcyA9IHRoaXMuZ2V0RGF0YUJ5dGVzKCk7XG4gICAgY29uc3QgaW50ZW50TWVzc2FnZSA9IHRoaXMubWVzc2FnZVdpdGhJbnRlbnQoSW50ZW50U2NvcGUuVHJhbnNhY3Rpb25EYXRhLCBkYXRhQnl0ZXMpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShibGFrZTJiKDMyKS51cGRhdGUoaW50ZW50TWVzc2FnZSkuZGlnZXN0KCdiaW5hcnknKSk7XG4gIH1cblxuICBwcml2YXRlIG1lc3NhZ2VXaXRoSW50ZW50KHNjb3BlOiBJbnRlbnRTY29wZSwgbWVzc2FnZTogVWludDhBcnJheSkge1xuICAgIGNvbnN0IGludGVudCA9IHRoaXMuaW50ZW50V2l0aFNjb3BlKHNjb3BlKTtcbiAgICBjb25zdCBpbnRlbnRNZXNzYWdlID0gbmV3IFVpbnQ4QXJyYXkoaW50ZW50Lmxlbmd0aCArIG1lc3NhZ2UubGVuZ3RoKTtcbiAgICBpbnRlbnRNZXNzYWdlLnNldChpbnRlbnQpO1xuICAgIGludGVudE1lc3NhZ2Uuc2V0KG1lc3NhZ2UsIGludGVudC5sZW5ndGgpO1xuICAgIHJldHVybiBpbnRlbnRNZXNzYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlbnRXaXRoU2NvcGUoc2NvcGU6IEludGVudFNjb3BlKTogSW50ZW50IHtcbiAgICByZXR1cm4gW3Njb3BlLCBJbnRlbnRWZXJzaW9uLlYwLCBBcHBJZC5TdWldO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YUJ5dGVzID0gdGhpcy5nZXREYXRhQnl0ZXMoKTtcbiAgICB0aGlzLl9pZCA9IGJzNTguZW5jb2RlKGhhc2hUeXBlZERhdGEoJ1RyYW5zYWN0aW9uRGF0YScsIGRhdGFCeXRlcykpO1xuICAgIHJldHVybiB0b0I2NChkYXRhQnl0ZXMpO1xuICB9XG5cbiAgc3RhdGljIGRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24oXG4gICAgc2VyaWFsaXplZFR4OiBzdHJpbmdcbiAgKTogU3VpVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGRhdGEgPSBmcm9tQjY0KHNlcmlhbGl6ZWRUeCk7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25CbG9jayA9IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlci5mcm9tQnl0ZXMoZGF0YSk7XG4gICAgY29uc3QgaW5wdXRzID0gdHJhbnNhY3Rpb25CbG9jay5pbnB1dHMubWFwKCh0eElucHV0KSA9PiB0eElucHV0LnZhbHVlKTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbkJsb2NrLnRyYW5zYWN0aW9ucztcbiAgICBjb25zdCB0eFR5cGUgPSB0aGlzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHJhbnNhY3Rpb25CbG9jay5nZXREaWdlc3QoKSxcbiAgICAgIHR5cGU6IHR4VHlwZSxcbiAgICAgIHNlbmRlcjogbm9ybWFsaXplU3VpQWRkcmVzcyh0cmFuc2FjdGlvbkJsb2NrLnNlbmRlciEpLFxuICAgICAgdHg6IHtcbiAgICAgICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgICAgIHRyYW5zYWN0aW9uczogdHJhbnNhY3Rpb25zLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHtcbiAgICAgICAgcGF5bWVudDogdGhpcy5ub3JtYWxpemVDb2lucyh0cmFuc2FjdGlvbkJsb2NrLmdhc0NvbmZpZy5wYXltZW50ISksXG4gICAgICAgIG93bmVyOiBub3JtYWxpemVTdWlBZGRyZXNzKHRyYW5zYWN0aW9uQmxvY2suZ2FzQ29uZmlnLm93bmVyISksXG4gICAgICAgIHByaWNlOiBOdW1iZXIodHJhbnNhY3Rpb25CbG9jay5nYXNDb25maWcucHJpY2UgYXMgc3RyaW5nKSxcbiAgICAgICAgYnVkZ2V0OiBOdW1iZXIodHJhbnNhY3Rpb25CbG9jay5nYXNDb25maWcuYnVkZ2V0IGFzIHN0cmluZyksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRTdWlUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblR5cGVbXSk6IFN1aVRyYW5zYWN0aW9uVHlwZSB7XG4gICAgLy8gdHJpY2t5IHRvIGRldGVybWluZSBjdXN0b20gdHggcHVyZWx5IGZyb20gYSBzZXJpYWxpemVkIHR4LCB3ZSBjYW4gcmVseSBvbiBmb2xsb3dpbmcgbG9naWNcbiAgICBpZiAodHJhbnNhY3Rpb25zLmxlbmd0aCA9PSAxKSB7XG4gICAgICByZXR1cm4gdXRpbHMuZ2V0U3VpVHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uc1swXSk7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbnMuc29tZSgodHgpID0+IHV0aWxzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0eCkgPT09IFN1aVRyYW5zYWN0aW9uVHlwZS5BZGRTdGFrZSkpIHtcbiAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbnMuc29tZSgodHgpID0+IHV0aWxzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0eCkgPT09IFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlKSkge1xuICAgICAgcmV0dXJuIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlO1xuICAgIH1cbiAgICBpZiAodHJhbnNhY3Rpb25zLmV2ZXJ5KCh0eCkgPT4gdXRpbHMuZ2V0U3VpVHJhbnNhY3Rpb25UeXBlKHR4KSA9PT0gU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyKSkge1xuICAgICAgcmV0dXJuIFN1aVRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xuICB9XG5cbiAgc3RhdGljIGdldFByb3Blckdhc0RhdGEoazogYW55KTogR2FzRGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBheW1lbnQ6IFt0aGlzLm5vcm1hbGl6ZVN1aU9iamVjdFJlZihrLmdhc0RhdGEucGF5bWVudCldLFxuICAgICAgb3duZXI6IHV0aWxzLm5vcm1hbGl6ZUhleElkKGsuZ2FzRGF0YS5vd25lciksXG4gICAgICBwcmljZTogTnVtYmVyKGsuZ2FzRGF0YS5wcmljZSksXG4gICAgICBidWRnZXQ6IE51bWJlcihrLmdhc0RhdGEuYnVkZ2V0KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm9ybWFsaXplQ29pbnMoY29pbnM6IGFueVtdKTogU3VpT2JqZWN0UmVmW10ge1xuICAgIHJldHVybiBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZVN1aU9iamVjdFJlZihjb2luKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5vcm1hbGl6ZVN1aU9iamVjdFJlZihvYmo6IFN1aU9iamVjdFJlZik6IFN1aU9iamVjdFJlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdElkOiBub3JtYWxpemVTdWlPYmplY3RJZChvYmoub2JqZWN0SWQpLFxuICAgICAgdmVyc2lvbjogTnVtYmVyKG9iai52ZXJzaW9uKSxcbiAgICAgIGRpZ2VzdDogb2JqLmRpZ2VzdCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQU84QjtBQUM5QixtQ0FBOEc7QUFFOUcsaURBQTRGO0FBQzVGLDZDQU0yQjtBQUMzQiwyQ0FBcUQ7QUFDckQsbUNBQWdDO0FBQ2hDLHFDQUE2QztBQUM3QyxnREFBd0I7QUFFeEIsbUZBQWtIO0FBQ2xILGlEQUFzRjtBQUN0RixrRUFBMEM7QUFDMUMsd0RBQThEO0FBRTlELE1BQXNCLFdBQWUsU0FBUSwwQkFBZTtJQU8xRCxZQUFzQixXQUFpQztRQUNyRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQXFCO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsSUFBSSxFQUFFO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQWEsRUFBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUs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biAgQmFzZVRyYW5zYWN0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbiAgVHJhbnNhY3Rpb25UeXBlIGFzIEJpdEdvVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgU3VpUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIFN1aVRyYW5zYWN0aW9uLCBTdWlUcmFuc2FjdGlvblR5cGUsIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHV0aWxzLCB7IEFwcElkLCBJbnRlbnQsIEludGVudFNjb3BlLCBJbnRlbnRWZXJzaW9uLCBpc0ltbU9yT3duZWRPYmogfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7XG4gIEdhc0RhdGEsXG4gIG5vcm1hbGl6ZVN1aUFkZHJlc3MsXG4gIG5vcm1hbGl6ZVN1aU9iamVjdElkLFxuICBTdWlPYmplY3RSZWYsXG4gIFRyYW5zYWN0aW9uRXhwaXJhdGlvbixcbn0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgU0lHTkFUVVJFX1NDSEVNRV9CWVRFUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBmcm9tQjY0LCB0b0I2NCB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBUUkFOU0FDVElPTl9EQVRBX01BWF9TSVpFLCBUcmFuc2FjdGlvbkJsb2NrRGF0YUJ1aWxkZXIgfSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyL1RyYW5zYWN0aW9uRGF0YUJsb2NrJztcbmltcG9ydCB7IGJ1aWxkZXIsIE1lcmdlQ29pbnNUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgYmxha2UyYiBmcm9tICdAYml0Z28tYmV0YS9ibGFrZTJiJztcbmltcG9ydCB7IGhhc2hUeXBlZERhdGEgfSBmcm9tICcuL215c3RlbmxhYi9jcnlwdG9ncmFwaHkvaGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbjxUPiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfc3VpVHJhbnNhY3Rpb246IFN1aVRyYW5zYWN0aW9uPFQ+O1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogU2lnbmF0dXJlO1xuICBwcml2YXRlIF9zZXJpYWxpemVkU2lnOiBVaW50OEFycmF5O1xuICBwcm90ZWN0ZWQgX2ZlZVBheWVyU2lnbmF0dXJlOiBTaWduYXR1cmU7XG4gIHByaXZhdGUgX3NlcmlhbGl6ZWRGZWVQYXllclNpZzogVWludDhBcnJheTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRhQnl0ZXMgPSB0aGlzLmdldERhdGFCeXRlcygpO1xuICAgIGNvbnN0IGhhc2ggPSBoYXNoVHlwZWREYXRhKCdUcmFuc2FjdGlvbkRhdGEnLCBkYXRhQnl0ZXMpO1xuICAgIHRoaXMuX2lkID0gYnM1OC5lbmNvZGUoaGFzaCk7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICAgIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBhZGRGZWVQYXllclNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZS50b1N0cmluZygnaGV4JykpO1xuICAgIHRoaXMuX2ZlZVBheWVyU2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICAgIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBnZXQgc3VpU2lnbmF0dXJlKCk6IFNpZ25hdHVyZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIGdldCBzZXJpYWxpemVkU2lnKCk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiB0aGlzLl9zZXJpYWxpemVkU2lnO1xuICB9XG5cbiAgZ2V0IHNlcmlhbGl6ZWRGZWVQYXllclNpZygpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5fc2VyaWFsaXplZEZlZVBheWVyU2lnO1xuICB9XG5cbiAgc2V0U2VyaWFsaXplZFNpZyhwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgY29uc3QgcHViS2V5ID0gQnVmZmVyLmZyb20ocHVibGljS2V5LnB1YiwgJ2hleCcpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRfc2lnID0gbmV3IFVpbnQ4QXJyYXkoMSArIHNpZ25hdHVyZS5sZW5ndGggKyBwdWJLZXkubGVuZ3RoKTtcbiAgICBzZXJpYWxpemVkX3NpZy5zZXQoU0lHTkFUVVJFX1NDSEVNRV9CWVRFUyk7XG4gICAgc2VyaWFsaXplZF9zaWcuc2V0KHNpZ25hdHVyZSwgMSk7XG4gICAgc2VyaWFsaXplZF9zaWcuc2V0KHB1YktleSwgMSArIHNpZ25hdHVyZS5sZW5ndGgpO1xuICAgIHRoaXMuX3NlcmlhbGl6ZWRTaWcgPSBzZXJpYWxpemVkX3NpZztcbiAgfVxuXG4gIHNldFNlcmlhbGl6ZWRGZWVQYXllclNpZyhwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgY29uc3QgcHViS2V5ID0gQnVmZmVyLmZyb20ocHVibGljS2V5LnB1YiwgJ2hleCcpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRfc2lnID0gbmV3IFVpbnQ4QXJyYXkoMSArIHNpZ25hdHVyZS5sZW5ndGggKyBwdWJLZXkubGVuZ3RoKTtcbiAgICBzZXJpYWxpemVkX3NpZy5zZXQoU0lHTkFUVVJFX1NDSEVNRV9CWVRFUyk7XG4gICAgc2VyaWFsaXplZF9zaWcuc2V0KHNpZ25hdHVyZSwgMSk7XG4gICAgc2VyaWFsaXplZF9zaWcuc2V0KHB1YktleSwgMSArIHNpZ25hdHVyZS5sZW5ndGgpO1xuICAgIHRoaXMuX3NlcmlhbGl6ZWRGZWVQYXllclNpZyA9IHNlcmlhbGl6ZWRfc2lnO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0gc2lnbmVyIGtleVxuICAgKi9cblxuICBzaWduKHNpZ25lcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZW1wdHkgdHJhbnNhY3Rpb24gdG8gc2lnbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGludGVudE1lc3NhZ2UgPSB0aGlzLnNpZ25hYmxlUGF5bG9hZDtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBzaWduZXIuc2lnbk1lc3NhZ2VpblVpbnQ4QXJyYXkoaW50ZW50TWVzc2FnZSk7XG5cbiAgICB0aGlzLnNldFNlcmlhbGl6ZWRTaWcoeyBwdWI6IHNpZ25lci5nZXRLZXlzKCkucHViIH0sIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSkpO1xuICAgIHRoaXMuYWRkU2lnbmF0dXJlKHsgcHViOiBzaWduZXIuZ2V0S2V5cygpLnB1YiB9LCBCdWZmZXIuZnJvbShzaWduYXR1cmUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRyYW5zYWN0aW9uIGFzIHRoZSBnYXMgb3duZXIgKGZlZSBwYXllcikuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0gb3duZXJLZXkgLSBLZXkgZm9yIGdhcyBvd25lci5cbiAgICovXG4gIHNpZ25Bc0ZlZVBheWVyKHNpZ25lcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZW1wdHkgdHJhbnNhY3Rpb24gdG8gc2lnbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGludGVudE1lc3NhZ2UgPSB0aGlzLnNpZ25hYmxlUGF5bG9hZDtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBzaWduZXIuc2lnbk1lc3NhZ2VpblVpbnQ4QXJyYXkoaW50ZW50TWVzc2FnZSk7XG5cbiAgICB0aGlzLl9mZWVQYXllclNpZ25hdHVyZSA9IHtcbiAgICAgIHB1YmxpY0tleTogeyBwdWI6IHNpZ25lci5nZXRLZXlzKCkucHViIH0sXG4gICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSksXG4gICAgfTtcblxuICAgIC8vIFNldCBzZXJpYWxpemVkIHNpZ25hdHVyZSBmb3IgZmVlIHBheWVyXG4gICAgdGhpcy5zZXRTZXJpYWxpemVkRmVlUGF5ZXJTaWcoeyBwdWI6IHNpZ25lci5nZXRLZXlzKCkucHViIH0sIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhYnN0cmFjdCB0b0pzb24oKTogVHhEYXRhO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogQml0R29UcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqICBnZXQgdGhlIGNvcnJlY3QgdHhEYXRhIHdpdGggdHJhbnNhY3Rpb24gdHlwZVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhEYXRhKCk6IFR4RGF0YTtcblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBhYnN0cmFjdCBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGFic3RyYWN0IGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZDtcblxuICBnZXREYXRhQnl0ZXMoKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgdHhEYXRhID0gdGhpcy5nZXRUeERhdGEoKTtcbiAgICBjb25zdCB0eFNlciA9IGJ1aWxkZXIuc2VyKCdUcmFuc2FjdGlvbkRhdGEnLCB7IFYxOiB0eERhdGEgfSwgeyBtYXhTaXplOiBUUkFOU0FDVElPTl9EQVRBX01BWF9TSVpFIH0pO1xuICAgIHJldHVybiB0eFNlci50b0J5dGVzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIGNvbnN0IGRhdGFCeXRlcyA9IHRoaXMuZ2V0RGF0YUJ5dGVzKCk7XG4gICAgY29uc3QgaW50ZW50TWVzc2FnZSA9IHRoaXMubWVzc2FnZVdpdGhJbnRlbnQoSW50ZW50U2NvcGUuVHJhbnNhY3Rpb25EYXRhLCBkYXRhQnl0ZXMpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShibGFrZTJiKDMyKS51cGRhdGUoaW50ZW50TWVzc2FnZSkuZGlnZXN0KCdiaW5hcnknKSk7XG4gIH1cblxuICBwcml2YXRlIG1lc3NhZ2VXaXRoSW50ZW50KHNjb3BlOiBJbnRlbnRTY29wZSwgbWVzc2FnZTogVWludDhBcnJheSkge1xuICAgIGNvbnN0IGludGVudCA9IHRoaXMuaW50ZW50V2l0aFNjb3BlKHNjb3BlKTtcbiAgICBjb25zdCBpbnRlbnRNZXNzYWdlID0gbmV3IFVpbnQ4QXJyYXkoaW50ZW50Lmxlbmd0aCArIG1lc3NhZ2UubGVuZ3RoKTtcbiAgICBpbnRlbnRNZXNzYWdlLnNldChpbnRlbnQpO1xuICAgIGludGVudE1lc3NhZ2Uuc2V0KG1lc3NhZ2UsIGludGVudC5sZW5ndGgpO1xuICAgIHJldHVybiBpbnRlbnRNZXNzYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlbnRXaXRoU2NvcGUoc2NvcGU6IEludGVudFNjb3BlKTogSW50ZW50IHtcbiAgICByZXR1cm4gW3Njb3BlLCBJbnRlbnRWZXJzaW9uLlYwLCBBcHBJZC5TdWldO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YUJ5dGVzID0gdGhpcy5nZXREYXRhQnl0ZXMoKTtcbiAgICB0aGlzLl9pZCA9IGJzNTguZW5jb2RlKGhhc2hUeXBlZERhdGEoJ1RyYW5zYWN0aW9uRGF0YScsIGRhdGFCeXRlcykpO1xuICAgIHJldHVybiB0b0I2NChkYXRhQnl0ZXMpO1xuICB9XG5cbiAgc3RhdGljIGRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24oc2VyaWFsaXplZFR4OiBzdHJpbmcpOiBTdWlUcmFuc2FjdGlvbjxTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGRhdGEgPSBmcm9tQjY0KHNlcmlhbGl6ZWRUeCk7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25CbG9jayA9IFRyYW5zYWN0aW9uQmxvY2tEYXRhQnVpbGRlci5mcm9tQnl0ZXMoZGF0YSk7XG4gICAgY29uc3QgaW5wdXRzID0gdHJhbnNhY3Rpb25CbG9jay5pbnB1dHMubWFwKCh0eElucHV0KSA9PiB0eElucHV0LnZhbHVlKTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbkJsb2NrLnRyYW5zYWN0aW9ucztcbiAgICBjb25zdCB0eFR5cGUgPSB0aGlzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHJhbnNhY3Rpb25CbG9jay5nZXREaWdlc3QoKSxcbiAgICAgIHR5cGU6IHR4VHlwZSxcbiAgICAgIHNlbmRlcjogbm9ybWFsaXplU3VpQWRkcmVzcyh0cmFuc2FjdGlvbkJsb2NrLnNlbmRlciEpLFxuICAgICAgdHg6IHtcbiAgICAgICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgICAgIHRyYW5zYWN0aW9uczogdHJhbnNhY3Rpb25zLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHtcbiAgICAgICAgcGF5bWVudDogdGhpcy5ub3JtYWxpemVDb2lucyh0cmFuc2FjdGlvbkJsb2NrLmdhc0NvbmZpZy5wYXltZW50ISksXG4gICAgICAgIG93bmVyOiBub3JtYWxpemVTdWlBZGRyZXNzKHRyYW5zYWN0aW9uQmxvY2suZ2FzQ29uZmlnLm93bmVyISksXG4gICAgICAgIHByaWNlOiBOdW1iZXIodHJhbnNhY3Rpb25CbG9jay5nYXNDb25maWcucHJpY2UgYXMgc3RyaW5nKSxcbiAgICAgICAgYnVkZ2V0OiBOdW1iZXIodHJhbnNhY3Rpb25CbG9jay5nYXNDb25maWcuYnVkZ2V0IGFzIHN0cmluZyksXG4gICAgICB9LFxuICAgICAgLy8gTm9ybWFsaXplIE5vbmUgZXhwaXJhdGlvbiAodGhlIEJDUyBkZWZhdWx0KSB0byB1bmRlZmluZWQgc28gdGhhdCBwcmUtYnVpbGRcbiAgICAgIC8vIGFuZCBwb3N0LWRlc2VyaWFsaXphdGlvbiBTdWlUcmFuc2FjdGlvbiBvYmplY3RzIGNvbXBhcmUgZXF1YWwuXG4gICAgICBleHBpcmF0aW9uOlxuICAgICAgICB0cmFuc2FjdGlvbkJsb2NrLmV4cGlyYXRpb24gJiYgISgnTm9uZScgaW4gdHJhbnNhY3Rpb25CbG9jay5leHBpcmF0aW9uKVxuICAgICAgICAgID8gKHRyYW5zYWN0aW9uQmxvY2suZXhwaXJhdGlvbiBhcyBUcmFuc2FjdGlvbkV4cGlyYXRpb24pXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFN1aVRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uVHlwZVtdKTogU3VpVHJhbnNhY3Rpb25UeXBlIHtcbiAgICAvLyB0cmlja3kgdG8gZGV0ZXJtaW5lIGN1c3RvbSB0eCBwdXJlbHkgZnJvbSBhIHNlcmlhbGl6ZWQgdHgsIHdlIGNhbiByZWx5IG9uIGZvbGxvd2luZyBsb2dpY1xuICAgIGlmICh0cmFuc2FjdGlvbnMubGVuZ3RoID09IDEpIHtcbiAgICAgIHJldHVybiB1dGlscy5nZXRTdWlUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25zWzBdKTtcbiAgICB9XG4gICAgaWYgKHRyYW5zYWN0aW9ucy5zb21lKCh0eCkgPT4gdXRpbHMuZ2V0U3VpVHJhbnNhY3Rpb25UeXBlKHR4KSA9PT0gU3VpVHJhbnNhY3Rpb25UeXBlLldhbHJ1c1N0YWtlV2l0aFBvb2wpKSB7XG4gICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLldhbHJ1c1N0YWtlV2l0aFBvb2w7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbnMuc29tZSgodHgpID0+IHV0aWxzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0eCkgPT09IFN1aVRyYW5zYWN0aW9uVHlwZS5XYWxydXNSZXF1ZXN0V2l0aGRyYXdTdGFrZSkpIHtcbiAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuV2FscnVzUmVxdWVzdFdpdGhkcmF3U3Rha2U7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbnMuc29tZSgodHgpID0+IHV0aWxzLmdldFN1aVRyYW5zYWN0aW9uVHlwZSh0eCkgPT09IFN1aVRyYW5zYWN0aW9uVHlwZS5XYWxydXNXaXRoZHJhd1N0YWtlKSkge1xuICAgICAgcmV0dXJuIFN1aVRyYW5zYWN0aW9uVHlwZS5XYWxydXNXaXRoZHJhd1N0YWtlO1xuICAgIH1cbiAgICBpZiAodHJhbnNhY3Rpb25zLnNvbWUoKHR4KSA9PiB1dGlscy5nZXRTdWlUcmFuc2FjdGlvblR5cGUodHgpID09PSBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2UpKSB7XG4gICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlO1xuICAgIH1cbiAgICBpZiAodHJhbnNhY3Rpb25zLnNvbWUoKHR4KSA9PiB1dGlscy5nZXRTdWlUcmFuc2FjdGlvblR5cGUodHgpID09PSBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZSkpIHtcbiAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTtcbiAgICB9XG4gICAgLy8gU3BvbnNvcmVkIFRyYW5zZmVyIHdpdGggZnVuZHNJbkFkZHJlc3NCYWxhbmNlIHVzZXMgYSByZWRlZW1fZnVuZHMgTW92ZUNhbGwgYWxvbmdzaWRlXG4gICAgLy8gTWVyZ2VDb2lucy9TcGxpdENvaW5zIG9uIG5vbi1HYXNDb2luIG9iamVjdHMsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBiZSBtaXNjbGFzc2lmaWVkXG4gICAgLy8gYXMgVG9rZW5UcmFuc2Zlci4gRGlzdGluZ3Vpc2ggZnJvbSBUb2tlblRyYW5zZmVyK2Z1bmRzSW5BZGRyZXNzQmFsYW5jZSBieSBjaGVja2luZ1xuICAgIC8vIHRoYXQgdGhlIHJlZGVlbV9mdW5kcyB0eXBlQXJndW1lbnQgaXMgdGhlIG5hdGl2ZSBTVUkgY29pbiB0eXBlICgweDI6OnN1aTo6U1VJKS5cbiAgICBjb25zdCBzdWlOYXRpdmVBZGRyZXNzID0gbm9ybWFsaXplU3VpQWRkcmVzcygnMHgyJyk7XG4gICAgaWYgKFxuICAgICAgdHJhbnNhY3Rpb25zLnNvbWUoKHR4KSA9PiB7XG4gICAgICAgIGlmICh0eC5raW5kICE9PSAnTW92ZUNhbGwnKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1vdmVDYWxsID0gdHggYXMgYW55O1xuICAgICAgICBpZiAoIW1vdmVDYWxsLnRhcmdldD8uZW5kc1dpdGgoTWV0aG9kTmFtZXMuUmVkZWVtRnVuZHMpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHR5cGVBcmc6IHN0cmluZyA9IG1vdmVDYWxsLnR5cGVBcmd1bWVudHM/LlswXSA/PyAnJztcbiAgICAgICAgY29uc3QgW2FkZHIgPSAnJywgbW9kID0gJycsIG5hbWUgPSAnJ10gPSB0eXBlQXJnLnNwbGl0KCc6OicpO1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplU3VpQWRkcmVzcyhhZGRyKSA9PT0gc3VpTmF0aXZlQWRkcmVzcyAmJiBtb2QgPT09ICdzdWknICYmIG5hbWUgPT09ICdTVUknO1xuICAgICAgfSlcbiAgICApIHtcbiAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXI7XG4gICAgfVxuICAgIC8vIEZ1bGwtYW1vdW50IHRva2VuIGFkZHItYmFsIHNlbmQ6IE1vdmVDYWxsKHJlZGVlbV9mdW5kcywgVE9LRU5fVFlQRSkgKyBUcmFuc2Zlck9iamVjdHNcbiAgICAvLyB3aXRoIG5vIFNwbGl0Q29pbnMuIEJvdGggY29tbWFuZHMgcmV0dXJuIFRyYW5zZmVyIGZyb20gZ2V0U3VpVHJhbnNhY3Rpb25UeXBlLCBzbyB0aGVcbiAgICAvLyBjaGVjayBiZWxvdyB3b3VsZG4ndCBmaXJlLiBEZXRlY3QgYnkgZmluZGluZyByZWRlZW1fZnVuZHMgd2l0aCBhIG5vbi1uYXRpdmUgdHlwZSBhcmcuXG4gICAgaWYgKFxuICAgICAgdHJhbnNhY3Rpb25zLnNvbWUoKHR4KSA9PiB7XG4gICAgICAgIGlmICh0eC5raW5kICE9PSAnTW92ZUNhbGwnKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG1vdmVDYWxsID0gdHggYXMgYW55O1xuICAgICAgICBpZiAoIW1vdmVDYWxsLnRhcmdldD8uZW5kc1dpdGgoTWV0aG9kTmFtZXMuUmVkZWVtRnVuZHMpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHR5cGVBcmc6IHN0cmluZyA9IG1vdmVDYWxsLnR5cGVBcmd1bWVudHM/LlswXSA/PyAnJztcbiAgICAgICAgY29uc3QgW2FkZHIgPSAnJywgbW9kID0gJycsIG5hbWUgPSAnJ10gPSB0eXBlQXJnLnNwbGl0KCc6OicpO1xuICAgICAgICByZXR1cm4gIShub3JtYWxpemVTdWlBZGRyZXNzKGFkZHIpID09PSBzdWlOYXRpdmVBZGRyZXNzICYmIG1vZCA9PT0gJ3N1aScgJiYgbmFtZSA9PT0gJ1NVSScpO1xuICAgICAgfSlcbiAgICApIHtcbiAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuVG9rZW5UcmFuc2ZlcjtcbiAgICB9XG4gICAgaWYgKHRyYW5zYWN0aW9ucy5zb21lKCh0eCkgPT4gdXRpbHMuZ2V0U3VpVHJhbnNhY3Rpb25UeXBlKHR4KSA9PT0gU3VpVHJhbnNhY3Rpb25UeXBlLlRva2VuVHJhbnNmZXIpKSB7XG4gICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLlRva2VuVHJhbnNmZXI7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbnMuZXZlcnkoKHR4KSA9PiB1dGlscy5nZXRTdWlUcmFuc2FjdGlvblR5cGUodHgpID09PSBTdWlUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXIpKSB7XG4gICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyO1xuICAgIH1cblxuICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuQ3VzdG9tVHg7XG4gIH1cblxuICBzdGF0aWMgZ2V0UHJvcGVyR2FzRGF0YShrOiBhbnkpOiBHYXNEYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF5bWVudDogW3RoaXMubm9ybWFsaXplU3VpT2JqZWN0UmVmKGsuZ2FzRGF0YS5wYXltZW50KV0sXG4gICAgICBvd25lcjogdXRpbHMubm9ybWFsaXplSGV4SWQoay5nYXNEYXRhLm93bmVyKSxcbiAgICAgIHByaWNlOiBOdW1iZXIoay5nYXNEYXRhLnByaWNlKSxcbiAgICAgIGJ1ZGdldDogTnVtYmVyKGsuZ2FzRGF0YS5idWRnZXQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3JtYWxpemVDb2lucyhjb2luczogYW55W10pOiBTdWlPYmplY3RSZWZbXSB7XG4gICAgcmV0dXJuIGNvaW5zLm1hcCgoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubm9ybWFsaXplU3VpT2JqZWN0UmVmKGNvaW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm9ybWFsaXplU3VpT2JqZWN0UmVmKG9iajogU3VpT2JqZWN0UmVmKTogU3VpT2JqZWN0UmVmIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2JqZWN0SWQ6IG5vcm1hbGl6ZVN1aU9iamVjdElkKG9iai5vYmplY3RJZCksXG4gICAgICB2ZXJzaW9uOiBOdW1iZXIob2JqLnZlcnNpb24pLFxuICAgICAgZGlnZXN0OiBvYmouZGlnZXN0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBidWlsZGluZyB0cmFuc2FjdGlvbnMgd2l0aCA+IDI1NSBpbnB1dCBnYXMgcGF5bWVudCBvYmplY3RzLCB3ZSBmaXJzdCB1c2UgTWVyZ2VDb2lucyBUcmFuYXNhY3Rpb25zIHRvIG1lcmdlIHRoZVxuICAgKiBhZGRpdGlvbmFsIGlucHV0cyBpbnRvIHRoZSBnYXMgY29pbiAmIHNsaWNlIHRoZW0gZnJvbSB0aGUgcGF5bWVudCBpbiBnYXNEYXRhLiBXaGVuIGluaXRpYWxpemluZyB0aGUgYnVpbGRlciB1c2luZ1xuICAgKiBkZWNvZGVkIHR4IGRhdGEsIHdlIG5lZWQgdG8gZ2V0IHRoZXNlIGlucHV0cyBmcm9tIE1lcmdlQ29pbnMgJiBhZGQgdGhlbSBiYWNrIHRvIHRoZSBnYXMgcGF5bWVudCB0byBiZSBhYmxlIHRvXG4gICAqIHJlYnVpbGQgZnJvbSBhIHJhdyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRJbnB1dEdhc1BheW1lbnRPYmplY3RzRnJvbVR4KHR4OiBTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbik6IFN1aU9iamVjdFJlZltdIHtcbiAgICBjb25zdCB0eElucHV0cyA9IHR4LmlucHV0cztcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0eC50cmFuc2FjdGlvbnM7XG4gICAgY29uc3QgaW5wdXRHYXNQYXltZW50T2JqZWN0czogU3VpT2JqZWN0UmVmW10gPSBbXTtcblxuICAgIHRyYW5zYWN0aW9ucy5mb3JFYWNoKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgaWYgKHRyYW5zYWN0aW9uLmtpbmQgPT09ICdNZXJnZUNvaW5zJykge1xuICAgICAgICBjb25zdCB7IGRlc3RpbmF0aW9uLCBzb3VyY2VzIH0gPSB0cmFuc2FjdGlvbiBhcyBNZXJnZUNvaW5zVHJhbnNhY3Rpb247XG4gICAgICAgIGlmIChkZXN0aW5hdGlvbi5raW5kID09PSAnR2FzQ29pbicpIHtcbiAgICAgICAgICBzb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNvdXJjZS5raW5kID09PSAnSW5wdXQnKSB7XG4gICAgICAgICAgICAgIGxldCBpbnB1dCA9IHR4SW5wdXRzW3NvdXJjZS5pbmRleF07XG4gICAgICAgICAgICAgIGlmICgndmFsdWUnIGluIGlucHV0KSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoJ09iamVjdCcgaW4gaW5wdXQgJiYgaXNJbW1Pck93bmVkT2JqKGlucHV0Lk9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICBpbnB1dEdhc1BheW1lbnRPYmplY3RzLnB1c2goaW5wdXQuT2JqZWN0LkltbU9yT3duZWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpbnB1dEdhc1BheW1lbnRPYmplY3RzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, Recipient, Signature, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
2
|
import { Transaction } from './transaction';
|
|
4
3
|
import BigNumber from 'bignumber.js';
|
|
5
4
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
6
|
-
import {
|
|
5
|
+
import { SuiProgrammableTransaction, SuiTransactionType } from './iface';
|
|
7
6
|
import { KeyPair } from './keyPair';
|
|
8
|
-
import { GasData, SuiObjectRef } from './mystenlab/types';
|
|
9
|
-
export declare abstract class TransactionBuilder<T =
|
|
7
|
+
import { GasData, SuiObjectRef, TransactionExpiration } from './mystenlab/types';
|
|
8
|
+
export declare abstract class TransactionBuilder<T = SuiProgrammableTransaction> extends BaseTransactionBuilder {
|
|
10
9
|
protected _transaction: Transaction<T>;
|
|
11
10
|
protected _signatures: Signature[];
|
|
12
11
|
protected _signer: KeyPair;
|
|
13
12
|
protected _type: SuiTransactionType;
|
|
14
13
|
protected _sender: string;
|
|
15
14
|
protected _gasData: GasData;
|
|
15
|
+
protected _inputObjects: SuiObjectRef[];
|
|
16
|
+
protected _expiration?: TransactionExpiration;
|
|
16
17
|
protected constructor(_coinConfig: Readonly<CoinConfig>);
|
|
17
18
|
/**
|
|
18
19
|
* The transaction type.
|
|
@@ -26,6 +27,7 @@ export declare abstract class TransactionBuilder<T = TransferProgrammableTransac
|
|
|
26
27
|
protected signImplementation(key: BaseKey): Transaction<T>;
|
|
27
28
|
/** @inheritDoc */
|
|
28
29
|
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
30
|
+
addFeePayerSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
29
31
|
/**
|
|
30
32
|
* Sets the sender of this transaction.
|
|
31
33
|
* This account will be responsible for paying transaction fees.
|
|
@@ -36,6 +38,12 @@ export declare abstract class TransactionBuilder<T = TransferProgrammableTransac
|
|
|
36
38
|
sender(senderAddress: string): this;
|
|
37
39
|
type(type: SuiTransactionType): this;
|
|
38
40
|
gasData(gasData: GasData): this;
|
|
41
|
+
inputObjects(inputObjects: SuiObjectRef[]): this;
|
|
42
|
+
/**
|
|
43
|
+
* Sets the transaction expiration. Use ValidDuring (with nonce) only for Case 2
|
|
44
|
+
* self-funded transactions where gasData.payment is empty.
|
|
45
|
+
*/
|
|
46
|
+
expiration(expiration: TransactionExpiration): this;
|
|
39
47
|
/**
|
|
40
48
|
* Initialize the transaction builder fields using the decoded transaction data
|
|
41
49
|
*
|
|
@@ -49,6 +57,7 @@ export declare abstract class TransactionBuilder<T = TransferProgrammableTransac
|
|
|
49
57
|
validateGasBudget(gasBudget: number): void;
|
|
50
58
|
validateGasPrice(gasPrice: number): void;
|
|
51
59
|
validateGasPayment(payments: SuiObjectRef[]): void;
|
|
60
|
+
protected validateInputObjectsBase(inputObjects: SuiObjectRef[]): void;
|
|
52
61
|
validateSuiObjectRef(suiObjectRef: SuiObjectRef, field: string): void;
|
|
53
62
|
/** @inheritdoc */
|
|
54
63
|
validateKey(key: BaseKey): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,11 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
35
35
|
this.transaction.addSignature(publicKey, signature);
|
|
36
36
|
this.transaction.setSerializedSig(publicKey, signature);
|
|
37
37
|
}
|
|
38
|
+
addFeePayerSignature(publicKey, signature) {
|
|
39
|
+
this._signatures.push({ publicKey, signature });
|
|
40
|
+
this.transaction.addFeePayerSignature(publicKey, signature);
|
|
41
|
+
this.transaction.setSerializedFeePayerSig(publicKey, signature);
|
|
42
|
+
}
|
|
38
43
|
/**
|
|
39
44
|
* Sets the sender of this transaction.
|
|
40
45
|
* This account will be responsible for paying transaction fees.
|
|
@@ -56,6 +61,19 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
56
61
|
this._gasData = gasData;
|
|
57
62
|
return this;
|
|
58
63
|
}
|
|
64
|
+
inputObjects(inputObjects) {
|
|
65
|
+
this.validateInputObjectsBase(inputObjects);
|
|
66
|
+
this._inputObjects = inputObjects;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the transaction expiration. Use ValidDuring (with nonce) only for Case 2
|
|
71
|
+
* self-funded transactions where gasData.payment is empty.
|
|
72
|
+
*/
|
|
73
|
+
expiration(expiration) {
|
|
74
|
+
this._expiration = expiration;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
59
77
|
// region Validators
|
|
60
78
|
/** @inheritdoc */
|
|
61
79
|
validateAddress(address, addressFormat) {
|
|
@@ -64,10 +82,10 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
64
82
|
}
|
|
65
83
|
}
|
|
66
84
|
validateRecipients(recipients) {
|
|
67
|
-
assert_1.default(recipients && recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
|
|
85
|
+
(0, assert_1.default)(recipients && recipients.length > 0, new sdk_core_1.BuildTransactionError('at least one recipient is required before building'));
|
|
68
86
|
recipients.forEach((recipient) => {
|
|
69
87
|
utils_1.default.validateAddress(recipient.address, 'address');
|
|
70
|
-
assert_1.default(utils_1.default.isValidAmount(recipient.amount), 'Invalid recipient amount');
|
|
88
|
+
(0, assert_1.default)(utils_1.default.isValidAmount(recipient.amount), 'Invalid recipient amount');
|
|
71
89
|
});
|
|
72
90
|
}
|
|
73
91
|
validateGasData(gasData) {
|
|
@@ -90,11 +108,23 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
90
108
|
}
|
|
91
109
|
}
|
|
92
110
|
validateGasPayment(payments) {
|
|
93
|
-
assert_1.default(payments && payments
|
|
111
|
+
(0, assert_1.default)(payments !== undefined && payments !== null, new sdk_core_1.BuildTransactionError('gas payment is required before building'));
|
|
112
|
+
// Empty array is valid: Sui allows setGasPayment([]) when gas is paid from
|
|
113
|
+
// address balance (sender or fee payer has sufficient fundsInAddressBalance).
|
|
114
|
+
if (payments.length === 0) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
94
117
|
payments.forEach((payment) => {
|
|
95
118
|
this.validateSuiObjectRef(payment, 'payment');
|
|
96
119
|
});
|
|
97
120
|
}
|
|
121
|
+
validateInputObjectsBase(inputObjects) {
|
|
122
|
+
if (inputObjects && inputObjects.length > 0) {
|
|
123
|
+
inputObjects.forEach((inputObject) => {
|
|
124
|
+
this.validateSuiObjectRef(inputObject, 'input object');
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
98
128
|
validateSuiObjectRef(suiObjectRef, field) {
|
|
99
129
|
if (!suiObjectRef.hasOwnProperty('objectId')) {
|
|
100
130
|
throw new sdk_core_1.BuildTransactionError(`Invalid ${field}, missing objectId`);
|
|
@@ -132,4 +162,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
132
162
|
}
|
|
133
163
|
}
|
|
134
164
|
exports.TransactionBuilder = TransactionBuilder;
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBVThCO0FBQzlCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFJNUIsMkNBQWtEO0FBQ2xELHVDQUFvQztBQUdwQyxNQUFzQixrQkFFcEIsU0FBUSxpQ0FBc0I7SUFTOUIsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO0lBU3hDLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQTJCO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FB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QUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0NBRUY7QUFuS0QsZ0RBbUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgUmVjaXBpZW50LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb25UeXBlLCBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBEVU1NWV9TVUlfR0FTX1BSSUNFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBHYXNEYXRhLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuL215c3RlbmxhYi90eXBlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXI8XG4gIFQgPSBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIHwgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uXG4+IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uPFQ+O1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG4gIHByb3RlY3RlZCBfc2lnbmVyOiBLZXlQYWlyO1xuXG4gIHByb3RlY3RlZCBfdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2dhc0RhdGE6IEdhc0RhdGE7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb248VD4ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjxUPikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbjxUPiB7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fc2lnbmVyID0gc2lnbmVyO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbihzaWduZXIpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U2VyaWFsaXplZFNpZyhwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VuZGVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFRoaXMgYWNjb3VudCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbmRlckFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kZXIoc2VuZGVyQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMudmFsaWRhdGVBZGRyZXNzKHNlbmRlckFkZHJlc3MsICdzZW5kZXInKTtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXJBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHlwZSh0eXBlOiBTdWlUcmFuc2FjdGlvblR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNEYXRhKGdhc0RhdGEpO1xuICAgIHRoaXMuX2dhc0RhdGEgPSBnYXNEYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGFic3RyYWN0IGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbjxUPik6IHZvaWQ7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlUmVjaXBpZW50cyhyZWNpcGllbnRzOiBSZWNpcGllbnRbXSk6IHZvaWQge1xuICAgIGFzc2VydChcbiAgICAgIHJlY2lwaWVudHMgJiYgcmVjaXBpZW50cy5sZW5ndGggPiAwLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYXQgbGVhc3Qgb25lIHJlY2lwaWVudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKVxuICAgICk7XG4gICAgcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcywgJ2FkZHJlc3MnKTtcbiAgICAgIGFzc2VydCh1dGlscy5pc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpLCAnSW52YWxpZCByZWNpcGllbnQgYW1vdW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoZ2FzRGF0YS5vd25lcikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIGFkZHJlc3MgJyArIGdhc0RhdGEub3duZXIpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlR2FzUGF5bWVudChnYXNEYXRhLnBheW1lbnQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzRGF0YS5idWRnZXQpO1xuICAgIHRoaXMudmFsaWRhdGVHYXNQcmljZShnYXNEYXRhLnByaWNlKTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBidWRnZXQgJyArIGdhc0J1ZGdldCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVHYXNQcmljZShnYXNQcmljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gVE9ETzogY2hlY2sgd2l0aCBTdWkgb24gdGhlIGdhcyBwcmljZVxuICAgIGlmIChnYXNQcmljZSAhPT0gRFVNTVlfU1VJX0dBU19QUklDRSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgcHJpY2UgJyArIGdhc1ByaWNlKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1BheW1lbnQocGF5bWVudHM6IFN1aU9iamVjdFJlZltdKTogdm9pZCB7XG4gICAgYXNzZXJ0KHBheW1lbnRzICYmIHBheW1lbnRzLmxlbmd0aCA+IDAsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhcyBwYXltZW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBwYXltZW50cy5mb3JFYWNoKChwYXltZW50KSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHBheW1lbnQsICdwYXltZW50Jyk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZVN1aU9iamVjdFJlZihzdWlPYmplY3RSZWY6IFN1aU9iamVjdFJlZiwgZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCdvYmplY3RJZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBtaXNzaW5nIG9iamVjdElkYCk7XG4gICAgfVxuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCd2ZXJzaW9uJykgfHwgIXV0aWxzLmlzVmFsaWRBbW91bnQoc3VpT2JqZWN0UmVmLnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBpbnZhbGlkIG9yIG1pc3NpbmcgdmVyc2lvbmApO1xuICAgIH1cbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgnZGlnZXN0JykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIG1pc3NpbmcgZGlnZXN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEtleSB2YWxpZGF0aW9uIGZhaWxlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBVThCO0FBQzlCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFJNUIsMkNBQWtEO0FBQ2xELHVDQUFvQztBQUdwQyxNQUFzQixrQkFBbUQsU0FBUSxpQ0FBc0I7SUFXckcsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBVlgsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO0lBV3hDLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQTJCO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FB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QWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0NBRUY7QUF4TUQsZ0RBd01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgUmVjaXBpZW50LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFN1aVByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBTdWlUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IERVTU1ZX1NVSV9HQVNfUFJJQ0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEdhc0RhdGEsIFN1aU9iamVjdFJlZiwgVHJhbnNhY3Rpb25FeHBpcmF0aW9uIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyPFQgPSBTdWlQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb248VD47XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTtcbiAgcHJvdGVjdGVkIF9zaWduZXI6IEtleVBhaXI7XG5cbiAgcHJvdGVjdGVkIF90eXBlOiBTdWlUcmFuc2FjdGlvblR5cGU7XG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZ2FzRGF0YTogR2FzRGF0YTtcbiAgcHJvdGVjdGVkIF9pbnB1dE9iamVjdHM6IFN1aU9iamVjdFJlZltdO1xuICBwcm90ZWN0ZWQgX2V4cGlyYXRpb24/OiBUcmFuc2FjdGlvbkV4cGlyYXRpb247XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb248VD4ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjxUPikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbjxUPiB7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgdGhpcy5fc2lnbmVyID0gc2lnbmVyO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbihzaWduZXIpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U2VyaWFsaXplZFNpZyhwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICBhZGRGZWVQYXllclNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRGZWVQYXllclNpZ25hdHVyZShwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTZXJpYWxpemVkRmVlUGF5ZXJTaWcocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZW5kZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZGVyKHNlbmRlckFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhzZW5kZXJBZGRyZXNzLCAnc2VuZGVyJyk7XG4gICAgdGhpcy5fc2VuZGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHR5cGUodHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnYXNEYXRhKGdhc0RhdGE6IEdhc0RhdGEpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlR2FzRGF0YShnYXNEYXRhKTtcbiAgICB0aGlzLl9nYXNEYXRhID0gZ2FzRGF0YTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlucHV0T2JqZWN0cyhpbnB1dE9iamVjdHM6IFN1aU9iamVjdFJlZltdKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUlucHV0T2JqZWN0c0Jhc2UoaW5wdXRPYmplY3RzKTtcbiAgICB0aGlzLl9pbnB1dE9iamVjdHMgPSBpbnB1dE9iamVjdHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdHJhbnNhY3Rpb24gZXhwaXJhdGlvbi4gVXNlIFZhbGlkRHVyaW5nICh3aXRoIG5vbmNlKSBvbmx5IGZvciBDYXNlIDJcbiAgICogc2VsZi1mdW5kZWQgdHJhbnNhY3Rpb25zIHdoZXJlIGdhc0RhdGEucGF5bWVudCBpcyBlbXB0eS5cbiAgICovXG4gIGV4cGlyYXRpb24oZXhwaXJhdGlvbjogVHJhbnNhY3Rpb25FeHBpcmF0aW9uKTogdGhpcyB7XG4gICAgdGhpcy5fZXhwaXJhdGlvbiA9IGV4cGlyYXRpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgYWJzdHJhY3QgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFQ+KTogdm9pZDtcblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVSZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdm9pZCB7XG4gICAgYXNzZXJ0KFxuICAgICAgcmVjaXBpZW50cyAmJiByZWNpcGllbnRzLmxlbmd0aCA+IDAsXG4gICAgICBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdhdCBsZWFzdCBvbmUgcmVjaXBpZW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpXG4gICAgKTtcbiAgICByZWNpcGllbnRzLmZvckVhY2goKHJlY2lwaWVudCkgPT4ge1xuICAgICAgdXRpbHMudmFsaWRhdGVBZGRyZXNzKHJlY2lwaWVudC5hZGRyZXNzLCAnYWRkcmVzcycpO1xuICAgICAgYXNzZXJ0KHV0aWxzLmlzVmFsaWRBbW91bnQocmVjaXBpZW50LmFtb3VudCksICdJbnZhbGlkIHJlY2lwaWVudCBhbW91bnQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzRGF0YShnYXNEYXRhOiBHYXNEYXRhKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhnYXNEYXRhLm93bmVyKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgYWRkcmVzcyAnICsgZ2FzRGF0YS5vd25lcik7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVHYXNQYXltZW50KGdhc0RhdGEucGF5bWVudCk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0J1ZGdldChnYXNEYXRhLmJ1ZGdldCk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc1ByaWNlKGdhc0RhdGEucHJpY2UpO1xuICB9XG5cbiAgdmFsaWRhdGVHYXNCdWRnZXQoZ2FzQnVkZ2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZ2FzQnVkZ2V0IDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIGJ1ZGdldCAnICsgZ2FzQnVkZ2V0KTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1ByaWNlKGdhc1ByaWNlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBjaGVjayB3aXRoIFN1aSBvbiB0aGUgZ2FzIHByaWNlXG4gICAgaWYgKGdhc1ByaWNlICE9PSBEVU1NWV9TVUlfR0FTX1BSSUNFKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBwcmljZSAnICsgZ2FzUHJpY2UpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlR2FzUGF5bWVudChwYXltZW50czogU3VpT2JqZWN0UmVmW10pOiB2b2lkIHtcbiAgICBhc3NlcnQoXG4gICAgICBwYXltZW50cyAhPT0gdW5kZWZpbmVkICYmIHBheW1lbnRzICE9PSBudWxsLFxuICAgICAgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzIHBheW1lbnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJylcbiAgICApO1xuICAgIC8vIEVtcHR5IGFycmF5IGlzIHZhbGlkOiBTdWkgYWxsb3dzIHNldEdhc1BheW1lbnQoW10pIHdoZW4gZ2FzIGlzIHBhaWQgZnJvbVxuICAgIC8vIGFkZHJlc3MgYmFsYW5jZSAoc2VuZGVyIG9yIGZlZSBwYXllciBoYXMgc3VmZmljaWVudCBmdW5kc0luQWRkcmVzc0JhbGFuY2UpLlxuICAgIGlmIChwYXltZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGF5bWVudHMuZm9yRWFjaCgocGF5bWVudCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZVN1aU9iamVjdFJlZihwYXltZW50LCAncGF5bWVudCcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlSW5wdXRPYmplY3RzQmFzZShpbnB1dE9iamVjdHM6IFN1aU9iamVjdFJlZltdKTogdm9pZCB7XG4gICAgaWYgKGlucHV0T2JqZWN0cyAmJiBpbnB1dE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgaW5wdXRPYmplY3RzLmZvckVhY2goKGlucHV0T2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVTdWlPYmplY3RSZWYoaW5wdXRPYmplY3QsICdpbnB1dCBvYmplY3QnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlU3VpT2JqZWN0UmVmKHN1aU9iamVjdFJlZjogU3VpT2JqZWN0UmVmLCBmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFzdWlPYmplY3RSZWYuaGFzT3duUHJvcGVydHkoJ29iamVjdElkJykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIG1pc3Npbmcgb2JqZWN0SWRgKTtcbiAgICB9XG4gICAgaWYgKCFzdWlPYmplY3RSZWYuaGFzT3duUHJvcGVydHkoJ3ZlcnNpb24nKSB8fCAhdXRpbHMuaXNWYWxpZEFtb3VudChzdWlPYmplY3RSZWYudmVyc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIGludmFsaWQgb3IgbWlzc2luZyB2ZXJzaW9uYCk7XG4gICAgfVxuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCdkaWdlc3QnKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCAke2ZpZWxkfSwgbWlzc2luZyBkaWdlc3RgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkua2V5IH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uOiBVbmRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
|
|
@@ -3,14 +3,17 @@ import { TransferBuilder } from './transferBuilder';
|
|
|
3
3
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
4
|
import { Transaction } from './transaction';
|
|
5
5
|
import { StakingBuilder } from './stakingBuilder';
|
|
6
|
-
import { CustomProgrammableTransaction, StakingProgrammableTransaction, TransferProgrammableTransaction, UnstakingProgrammableTransaction } from './iface';
|
|
6
|
+
import { CustomProgrammableTransaction, StakingProgrammableTransaction, TransferProgrammableTransaction, UnstakingProgrammableTransaction, SuiProgrammableTransaction, TokenTransferProgrammableTransaction, WalrusStakingProgrammableTransaction, WalrusWithdrawStakeProgrammableTransaction } from './iface';
|
|
7
7
|
import { TransactionBuilder } from './transactionBuilder';
|
|
8
8
|
import { UnstakingBuilder } from './unstakingBuilder';
|
|
9
9
|
import { CustomTransactionBuilder } from './customTransactionBuilder';
|
|
10
|
+
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
11
|
+
import { WalrusStakingBuilder } from './walrusStakingBuilder';
|
|
12
|
+
import { WalrusWithdrawStakeBuilder } from './walrusWithdrawStakeBuilder';
|
|
10
13
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
11
14
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
12
15
|
/** @inheritdoc */
|
|
13
|
-
from(raw: string): TransactionBuilder<
|
|
16
|
+
from(raw: string): TransactionBuilder<SuiProgrammableTransaction>;
|
|
14
17
|
/** @inheritdoc */
|
|
15
18
|
getTransferBuilder(tx?: Transaction<TransferProgrammableTransaction>): TransferBuilder;
|
|
16
19
|
/** @inheritdoc */
|
|
@@ -20,6 +23,12 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
20
23
|
/** @inheritdoc */
|
|
21
24
|
getCustomTransactionBuilder(tx?: Transaction<CustomProgrammableTransaction>): CustomTransactionBuilder;
|
|
22
25
|
/** @inheritdoc */
|
|
26
|
+
getTokenTransferBuilder(tx?: Transaction<TokenTransferProgrammableTransaction>): TokenTransferBuilder;
|
|
27
|
+
/** @inheritdoc */
|
|
28
|
+
getWalrusStakingBuilder(tx?: Transaction<WalrusStakingProgrammableTransaction>): WalrusStakingBuilder;
|
|
29
|
+
/** @inheritdoc */
|
|
30
|
+
getWalrusRequestWithdrawStakeBuilder(tx?: Transaction<WalrusWithdrawStakeProgrammableTransaction>): WalrusWithdrawStakeBuilder;
|
|
31
|
+
/** @inheritdoc */
|
|
23
32
|
getWalletInitializationBuilder(): void;
|
|
24
33
|
/**
|
|
25
34
|
* Initialize the builder with the given transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAG9B,+BAA+B,EAC/B,gCAAgC,
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAG9B,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,oCAAoC,EACpC,oCAAoC,EACpC,0CAA0C,EAC3C,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,0BAA0B,CAAC;IA0CjE,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,GAAG,eAAe;IAItF,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,8BAA8B,CAAC,GAAG,cAAc;IAInF,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC,GAAG,gBAAgB;IAIzF,kBAAkB;IAClB,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,6BAA6B,CAAC,GAAG,wBAAwB;IAItG,kBAAkB;IAClB,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,oCAAoC,CAAC,GAAG,oBAAoB;IAIrG,kBAAkB;IAClB,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,oCAAoC,CAAC,GAAG,oBAAoB;IAIrG,kBAAkB;IAClB,oCAAoC,CAClC,EAAE,CAAC,EAAE,WAAW,CAAC,0CAA0C,CAAC,GAC3D,0BAA0B;IAI7B,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAGzB"}
|