@bitgo/account-lib 2.20.0-rc.29 → 2.20.0-rc.31
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 +35 -0
- package/dist/src/coin/avaxc/index.d.ts +2 -3
- package/dist/src/coin/avaxc/index.d.ts.map +1 -1
- package/dist/src/coin/avaxc/index.js +5 -6
- package/dist/src/coin/avaxc/transactionBuilder.js +3 -3
- package/dist/src/coin/avaxc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/avaxc/transferBuilder.js +3 -3
- package/dist/src/coin/avaxc/utils.d.ts +1 -2
- package/dist/src/coin/avaxc/utils.d.ts.map +1 -1
- package/dist/src/coin/avaxc/utils.js +3 -3
- package/dist/src/coin/celo/index.d.ts +2 -3
- package/dist/src/coin/celo/index.d.ts.map +1 -1
- package/dist/src/coin/celo/index.js +5 -6
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingBuilder.js +21 -22
- package/dist/src/coin/celo/stakingCall.d.ts +1 -1
- package/dist/src/coin/celo/stakingCall.js +3 -3
- package/dist/src/coin/celo/transaction.d.ts +2 -3
- package/dist/src/coin/celo/transaction.d.ts.map +1 -1
- package/dist/src/coin/celo/transaction.js +3 -3
- package/dist/src/coin/celo/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transactionBuilder.js +4 -24
- package/dist/src/coin/celo/transferBuilder.d.ts +1 -1
- package/dist/src/coin/celo/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transferBuilder.js +3 -3
- package/dist/src/coin/celo/types.d.ts +1 -2
- package/dist/src/coin/celo/types.d.ts.map +1 -1
- package/dist/src/coin/celo/types.js +5 -5
- package/dist/src/coin/celo/utils.d.ts +1 -1
- package/dist/src/coin/celo/utils.d.ts.map +1 -1
- package/dist/src/coin/celo/utils.js +3 -3
- package/dist/src/coin/etc/index.d.ts +2 -4
- package/dist/src/coin/etc/index.d.ts.map +1 -1
- package/dist/src/coin/etc/index.js +6 -8
- package/dist/src/coin/etc/transactionBuilder.js +3 -3
- package/dist/src/coin/etc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/etc/transferBuilder.js +3 -3
- package/dist/src/coin/etc/utils.d.ts +1 -2
- package/dist/src/coin/etc/utils.d.ts.map +1 -1
- package/dist/src/coin/etc/utils.js +3 -3
- package/dist/src/coin/hbar/coinTransferBuilder.d.ts +46 -0
- package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/coinTransferBuilder.js +143 -0
- package/dist/src/coin/hbar/constants.d.ts +8 -0
- package/dist/src/coin/hbar/constants.d.ts.map +1 -0
- package/dist/src/coin/hbar/constants.js +12 -0
- package/dist/src/coin/hbar/iface.d.ts +6 -0
- package/dist/src/coin/hbar/iface.d.ts.map +1 -1
- package/dist/src/coin/hbar/iface.js +1 -1
- package/dist/src/coin/hbar/keyPair.js +2 -2
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +35 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.js +118 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +25 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.js +115 -0
- package/dist/src/coin/hbar/transaction.d.ts +8 -1
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +46 -10
- package/dist/src/coin/hbar/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +7 -21
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +13 -3
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +28 -17
- package/dist/src/coin/hbar/transferBuilder.d.ts +6 -26
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +13 -72
- package/dist/src/coin/hbar/utils.d.ts +54 -3
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +101 -5
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +7 -7
- package/dist/src/coin/polygon/index.d.ts +2 -4
- package/dist/src/coin/polygon/index.d.ts.map +1 -1
- package/dist/src/coin/polygon/index.js +6 -8
- package/dist/src/coin/polygon/transferBuilder.d.ts +1 -1
- package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/polygon/transferBuilder.js +3 -3
- package/dist/src/coin/polygon/utils.d.ts +1 -2
- package/dist/src/coin/polygon/utils.d.ts.map +1 -1
- package/dist/src/coin/polygon/utils.js +3 -3
- package/dist/src/coin/rbtc/index.d.ts +2 -4
- package/dist/src/coin/rbtc/index.d.ts.map +1 -1
- package/dist/src/coin/rbtc/index.js +6 -8
- package/dist/src/coin/rbtc/transactionBuilder.js +3 -3
- package/dist/src/coin/rbtc/transferBuilder.d.ts +1 -1
- package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/rbtc/transferBuilder.js +3 -3
- package/dist/src/coin/rbtc/utils.d.ts +1 -2
- package/dist/src/coin/rbtc/utils.d.ts.map +1 -1
- package/dist/src/coin/rbtc/utils.js +3 -3
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +3 -2
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +9 -7
- package/dist/src/coin/sol/ataInitializationTransaction.js +3 -3
- package/dist/src/coin/sol/iface.d.ts +1 -0
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +1 -1
- package/dist/src/coin/sol/instructionParamsFactory.js +17 -10
- package/dist/src/index.d.ts +14 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -11
- package/dist/tsconfig.tsbuildinfo +2392 -1669
- package/package.json +10 -16
- package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
- package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingUtils.js +0 -98
- package/dist/src/coin/eth/contractCall.d.ts +0 -8
- package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
- package/dist/src/coin/eth/contractCall.js +0 -17
- package/dist/src/coin/eth/iface.d.ts +0 -122
- package/dist/src/coin/eth/iface.d.ts.map +0 -1
- package/dist/src/coin/eth/iface.js +0 -8
- package/dist/src/coin/eth/index.d.ts +0 -10
- package/dist/src/coin/eth/index.d.ts.map +0 -1
- package/dist/src/coin/eth/index.js +0 -39
- package/dist/src/coin/eth/keyPair.d.ts +0 -26
- package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth/keyPair.js +0 -85
- package/dist/src/coin/eth/transaction.d.ts +0 -64
- package/dist/src/coin/eth/transaction.d.ts.map +0 -1
- package/dist/src/coin/eth/transaction.js +0 -137
- package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transactionBuilder.js +0 -624
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
- package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
- package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder.js +0 -197
- package/dist/src/coin/eth/types.d.ts +0 -39
- package/dist/src/coin/eth/types.d.ts.map +0 -1
- package/dist/src/coin/eth/types.js +0 -135
- package/dist/src/coin/eth/utils.d.ts +0 -201
- package/dist/src/coin/eth/utils.d.ts.map +0 -1
- package/dist/src/coin/eth/utils.js +0 -486
- package/dist/src/coin/eth/walletUtil.d.ts +0 -21
- package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/eth/walletUtil.js +0 -31
- package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
- package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
- package/dist/src/coin/stx/constants.d.ts +0 -8
- package/dist/src/coin/stx/constants.d.ts.map +0 -1
- package/dist/src/coin/stx/constants.js +0 -19
- package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
- package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/contractBuilder.js +0 -116
- package/dist/src/coin/stx/iface.d.ts +0 -48
- package/dist/src/coin/stx/iface.d.ts.map +0 -1
- package/dist/src/coin/stx/iface.js +0 -3
- package/dist/src/coin/stx/index.d.ts +0 -6
- package/dist/src/coin/stx/index.d.ts.map +0 -1
- package/dist/src/coin/stx/index.js +0 -32
- package/dist/src/coin/stx/keyPair.d.ts +0 -55
- package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/stx/keyPair.js +0 -140
- package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
- package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
- package/dist/src/coin/stx/transaction.d.ts +0 -49
- package/dist/src/coin/stx/transaction.d.ts.map +0 -1
- package/dist/src/coin/stx/transaction.js +0 -225
- package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilder.js +0 -263
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
- package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
- package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transferBuilder.js +0 -99
- package/dist/src/coin/stx/utils.d.ts +0 -207
- package/dist/src/coin/stx/utils.d.ts.map +0 -1
- package/dist/src/coin/stx/utils.js +0 -503
- package/dist/src/coin/xtz/address.d.ts +0 -8
- package/dist/src/coin/xtz/address.d.ts.map +0 -1
- package/dist/src/coin/xtz/address.js +0 -10
- package/dist/src/coin/xtz/iface.d.ts +0 -81
- package/dist/src/coin/xtz/iface.d.ts.map +0 -1
- package/dist/src/coin/xtz/iface.js +0 -3
- package/dist/src/coin/xtz/index.d.ts +0 -8
- package/dist/src/coin/xtz/index.d.ts.map +0 -1
- package/dist/src/coin/xtz/index.js +0 -37
- package/dist/src/coin/xtz/keyPair.d.ts +0 -40
- package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xtz/keyPair.js +0 -136
- package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
- package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
- package/dist/src/coin/xtz/multisigUtils.js +0 -1180
- package/dist/src/coin/xtz/transaction.d.ts +0 -119
- package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
- package/dist/src/coin/xtz/transaction.js +0 -315
- package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transactionBuilder.js +0 -453
- package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
- package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transferBuilder.js +0 -64
- package/dist/src/coin/xtz/utils.d.ts +0 -265
- package/dist/src/coin/xtz/utils.d.ts.map +0 -1
- package/dist/src/coin/xtz/utils.js +0 -460
|
@@ -22,16 +22,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.TransactionBuilder =
|
|
25
|
+
exports.TransactionBuilder = void 0;
|
|
26
26
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
27
27
|
const Long = __importStar(require("long"));
|
|
28
|
-
const sdk_1 = require("@hashgraph/sdk");
|
|
29
28
|
const proto = __importStar(require("@hashgraph/proto"));
|
|
30
29
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
31
30
|
const transaction_1 = require("./transaction");
|
|
32
31
|
const utils_1 = require("./utils");
|
|
33
32
|
const keyPair_1 = require("./keyPair");
|
|
34
|
-
exports.DEFAULT_M = 3;
|
|
35
33
|
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
36
34
|
constructor(_coinConfig) {
|
|
37
35
|
super(_coinConfig);
|
|
@@ -46,15 +44,10 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
46
44
|
// region Base Builder
|
|
47
45
|
/** @inheritdoc */
|
|
48
46
|
async buildImplementation() {
|
|
47
|
+
this._txBody.nodeAccountID = utils_1.buildHederaAccountID(this._node.nodeId);
|
|
49
48
|
this._txBody.transactionFee = Long.fromString(this._fee.fee);
|
|
50
49
|
this._txBody.transactionID = this.buildTxId();
|
|
51
50
|
this._txBody.memo = this._memo;
|
|
52
|
-
const accountId = sdk_1.AccountId.fromString(this._node.nodeId);
|
|
53
|
-
this._txBody.nodeAccountID = new proto.AccountID({
|
|
54
|
-
shardNum: accountId.shard,
|
|
55
|
-
realmNum: accountId.realm,
|
|
56
|
-
accountNum: accountId.num,
|
|
57
|
-
});
|
|
58
51
|
const hTransaction = this.transaction.hederaTx || new proto.Transaction();
|
|
59
52
|
hTransaction.bodyBytes = proto.TransactionBody.encode(this._txBody).finish();
|
|
60
53
|
this.transaction.body(hTransaction);
|
|
@@ -69,14 +62,8 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
69
62
|
/** @inheritdoc */
|
|
70
63
|
fromImplementation(rawTransaction) {
|
|
71
64
|
const tx = new transaction_1.Transaction(this._coinConfig);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
buffer = utils_1.toUint8Array(rawTransaction);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
buffer = rawTransaction;
|
|
78
|
-
}
|
|
79
|
-
tx.bodyBytes(buffer);
|
|
65
|
+
this.validateRawTransaction(rawTransaction);
|
|
66
|
+
tx.fromRawTransaction(rawTransaction);
|
|
80
67
|
this.initBuilder(tx);
|
|
81
68
|
return this.transaction;
|
|
82
69
|
}
|
|
@@ -110,13 +97,12 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
110
97
|
/**
|
|
111
98
|
* Creates a Hedera TransactionID
|
|
112
99
|
*
|
|
113
|
-
* @returns {proto} - Created TransactionID
|
|
100
|
+
* @returns {proto.TransactionID} - Created TransactionID
|
|
114
101
|
*/
|
|
115
102
|
buildTxId() {
|
|
116
|
-
const accountId = sdk_1.AccountId.fromString(this._source.address);
|
|
117
103
|
return new proto.TransactionID({
|
|
118
104
|
transactionValidStart: this.validStart,
|
|
119
|
-
accountID:
|
|
105
|
+
accountID: utils_1.buildHederaAccountID(this._source.address),
|
|
120
106
|
});
|
|
121
107
|
}
|
|
122
108
|
// endregion
|
|
@@ -281,4 +267,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
281
267
|
}
|
|
282
268
|
}
|
|
283
269
|
exports.TransactionBuilder = TransactionBuilder;
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdFQUFxQztBQUNyQywyQ0FBNkI7QUFDN0Isd0NBQTJDO0FBQzNDLHdEQUEwQztBQUMxQyw4Q0FTeUI7QUFDekIsK0NBQTRDO0FBQzVDLG1DQUF1SDtBQUN2SCx1Q0FBb0M7QUFHdkIsUUFBQSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQVlyRSxZQUFzQixXQUFpQztRQUNyRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOWCxVQUFLLEdBQWUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEMsY0FBUyxHQUFtQixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFNMUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMs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cUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUM5QixNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CLENBQUMsR0FBWTtRQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSx1QkFBWSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGO0FBeFJELGdEQXdSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0IHsgQWNjb3VudElkIH0gZnJvbSAnQGhhc2hncmFwaC9zZGsnO1xuaW1wb3J0ICogYXMgcHJvdG8gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUZlZSxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBTaWduaW5nRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFRpbWUsIGlzVmFsaWRBZGRyZXNzLCBpc1ZhbGlkUmF3VHJhbnNhY3Rpb25Gb3JtYXQsIGlzVmFsaWRUaW1lU3RyaW5nLCB0b1VpbnQ4QXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgU2lnbmF0dXJlRGF0YSwgSGVkZXJhTm9kZSB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NID0gMztcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9mZWU6IEJhc2VGZWU7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9zb3VyY2U6IEJhc2VBZGRyZXNzO1xuICBwcm90ZWN0ZWQgX3N0YXJ0VGltZTogcHJvdG8uSVRpbWVzdGFtcDtcbiAgcHJvdGVjdGVkIF9tZW1vOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdHhCb2R5OiBwcm90by5UcmFuc2FjdGlvbkJvZHk7XG4gIHByb3RlY3RlZCBfbm9kZTogSGVkZXJhTm9kZSA9IHsgbm9kZUlkOiAnMC4wLjQnIH07XG4gIHByb3RlY3RlZCBfZHVyYXRpb246IHByb3RvLkR1cmF0aW9uID0gbmV3IHByb3RvLkR1cmF0aW9uKHsgc2Vjb25kczogTG9uZy5mcm9tTnVtYmVyKDEyMCkgfSk7XG4gIHByb3RlY3RlZCBfbXVsdGlTaWduZXJLZXlQYWlyczogS2V5UGFpcltdO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZURhdGFbXTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keSA9IG5ldyBwcm90by5UcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25WYWxpZER1cmF0aW9uID0gdGhpcy5fZHVyYXRpb247XG4gICAgdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycyA9IFtdO1xuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbXTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBCYXNlIEJ1aWxkZXJcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25GZWUgPSBMb25nLmZyb21TdHJpbmcodGhpcy5fZmVlLmZlZSk7XG4gICAgdGhpcy5fdHhCb2R5LnRyYW5zYWN0aW9uSUQgPSB0aGlzLmJ1aWxkVHhJZCgpO1xuICAgIHRoaXMuX3R4Qm9keS5tZW1vID0gdGhpcy5fbWVtbztcbiAgICBjb25zdCBhY2NvdW50SWQgPSBBY2NvdW50SWQuZnJvbVN0cmluZyh0aGlzLl9ub2RlLm5vZGVJZCk7XG4gICAgdGhpcy5fdHhCb2R5Lm5vZGVBY2NvdW50SUQgPSBuZXcgcHJvdG8uQWNjb3VudElEKHtcbiAgICAgIHNoYXJkTnVtOiBhY2NvdW50SWQuc2hhcmQsXG4gICAgICByZWFsbU51bTogYWNjb3VudElkLnJlYWxtLFxuICAgICAgYWNjb3VudE51bTogYWNjb3VudElkLm51bSxcbiAgICB9KTtcbiAgICBjb25zdCBoVHJhbnNhY3Rpb24gPSB0aGlzLnRyYW5zYWN0aW9uLmhlZGVyYVR4IHx8IG5ldyBwcm90by5UcmFuc2FjdGlvbigpO1xuICAgIGhUcmFuc2FjdGlvbi5ib2R5Qnl0ZXMgPSBwcm90by5UcmFuc2FjdGlvbkJvZHkuZW5jb2RlKHRoaXMuX3R4Qm9keSkuZmluaXNoKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5ib2R5KGhUcmFuc2FjdGlvbik7XG4gICAgZm9yIChjb25zdCBrcCBvZiB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzKSB7XG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLnNpZ24oa3ApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHsgc2lnbmF0dXJlLCBrZXlQYWlyIH0gb2YgdGhpcy5fc2lnbmF0dXJlcykge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlLCBrZXlQYWlyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICBsZXQgYnVmZmVyO1xuICAgIGlmICh0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWZmZXIgPSB0b1VpbnQ4QXJyYXkocmF3VHJhbnNhY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIgPSByYXdUcmFuc2FjdGlvbjtcbiAgICB9XG4gICAgdHguYm9keUJ5dGVzKGJ1ZmZlcik7XG4gICAgdGhpcy5pbml0QnVpbGRlcih0eCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy5jaGVja0R1cGxpY2F0ZWRLZXlzKGtleSk7XG4gICAgY29uc3Qgc2lnbmVyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG5cbiAgICAvLyBTaWduaW5nIHRoZSB0cmFuc2FjdGlvbiBpcyBhbiBvcGVyYXRpb24gdGhhdCByZWxpZXMgb24gYWxsIHRoZSBkYXRhIGJlaW5nIHNldCxcbiAgICAvLyBzbyB3ZSBzZXQgdGhlIHNvdXJjZSBoZXJlIGFuZCBsZWF2ZSB0aGUgYWN0dWFsIHNpZ25pbmcgZm9yIHRoZSBidWlsZCBzdGVwXG4gICAgdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5wdXNoKHNpZ25lcik7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkUHJldmlvdXNTaWduYXR1cmVzKCk7XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy5mZWUoeyBmZWU6IHR4RGF0YS5mZWUudG9TdHJpbmcoKSB9KTtcbiAgICB0aGlzLnNvdXJjZSh7IGFkZHJlc3M6IHR4RGF0YS5mcm9tIH0pO1xuICAgIHRoaXMuc3RhcnRUaW1lKHR4RGF0YS5zdGFydFRpbWUpO1xuICAgIHRoaXMubm9kZSh7IG5vZGVJZDogdHhEYXRhLm5vZGUgfSk7XG4gICAgdGhpcy52YWxpZER1cmF0aW9uKG5ldyBCaWdOdW1iZXIodHhEYXRhLnZhbGlkRHVyYXRpb24pLnRvTnVtYmVyKCkpO1xuICAgIGlmICh0eERhdGEubWVtbykge1xuICAgICAgdGhpcy5tZW1vKHR4RGF0YS5tZW1vKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEhlZGVyYSBUcmFuc2FjdGlvbklEXG4gICAqXG4gICAqIEByZXR1cm5zIHtwcm90b30gLSBDcmVhdGVkIFRyYW5zYWN0aW9uSURcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFR4SWQoKTogcHJvdG8uVHJhbnNhY3Rpb25JRCB7XG4gICAgY29uc3QgYWNjb3VudElkID0gQWNjb3VudElkLmZyb21TdHJpbmcodGhpcy5fc291cmNlLmFkZHJlc3MpO1xuICAgIHJldHVybiBuZXcgcHJvdG8uVHJhbnNhY3Rpb25JRCh7XG4gICAgICB0cmFuc2FjdGlvblZhbGlkU3RhcnQ6IHRoaXMudmFsaWRTdGFydCxcbiAgICAgIGFjY291bnRJRDogeyBzaGFyZE51bTogYWNjb3VudElkLnNoYXJkLCByZWFsbU51bTogYWNjb3VudElkLnJlYWxtLCBhY2NvdW50TnVtOiBhY2NvdW50SWQubnVtIH0sXG4gICAgfSk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIENvbW1vbiBidWlsZGVyIG1ldGhvZHNcbiAgLyoqXG4gICAqICBTZXQgdGhlIG1lbW9cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lbW8gLSBBIGhlZGVyYSBtZW1vLCBjYW4gYmUgYSBtYXhpbXVtIG9mIDEwMCBieXRlc1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSAtIFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoQnVmZmVyLmZyb20obWVtbykubGVuZ3RoID4gMTAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ01lbW8gbXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gMTAwIGJ5dGVzJyk7XG4gICAgfVxuICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqICBTZXQgdGhlIG5vZGUsIGl0IG1heSB0YWtlIHRoZSBmb3JtYXQgYCc8c2hhcmQ+LjxyZWFsbT4uPGFjY291bnQ+J2Agb3IgYCc8YWNjb3VudD4nYFxuICAgKlxuICAgKiBAcGFyYW0ge0hlZGVyYU5vZGV9IG5vZGUgLSBBIGhlZGVyYSBub2RlIGFkZHJlc3NcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG5vZGUobm9kZTogSGVkZXJhTm9kZSk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3Mobm9kZS5ub2RlSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgSGVkZXJhIG5vZGUgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9ub2RlID0gbm9kZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHZhbGlkIGR1cmF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWxpZER1cmF0aW9uIC0gVGhlIHRyYW5zYWN0aW9uIHZhbGlkIGR1cmF0aW9uIGluIHNlY29uZHNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHZhbGlkRHVyYXRpb24odmFsaWREdXJhdGlvbjogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIodmFsaWREdXJhdGlvbikpO1xuICAgIHRoaXMuX2R1cmF0aW9uID0gbmV3IHByb3RvLkR1cmF0aW9uKHsgc2Vjb25kczogTG9uZy5mcm9tTnVtYmVyKHZhbGlkRHVyYXRpb24pIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gZmVlc1xuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VGZWV9IGZlZSAtIFRoZSBtYXhpbXVtIGdhcyB0byBwYXlcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGZlZShmZWU6IEJhc2VGZWUpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihmZWUuZmVlKSk7XG4gICAgdGhpcy5fZmVlID0gZmVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gc291cmNlXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IGFkZHJlc3MgLSBUaGUgc291cmNlIGFjY291bnRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNvdXJjZShhZGRyZXNzOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIHRoaXMuX3NvdXJjZSA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFuIGV4dGVybmFsIHRyYW5zYWN0aW9uIHNpZ25hdHVyZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIC0gSGV4IGVuY29kZWQgc2lnbmF0dXJlIHN0cmluZ1xuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgLSBUaGUgcHVibGljIGtleSBrZXlwYWlyIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoZSBzaWduYXR1cmVcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUcmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcsIGtleVBhaXI6IEtleVBhaXIpOiB0aGlzIHtcbiAgICAvLyBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBzaWduYXR1cmUgZm9yIHRoaXMga2V5IHBhaXIsIGp1c3QgdXBkYXRlIGl0XG4gICAgZm9yIChjb25zdCBvbGRTaWduYXR1cmUgb2YgdGhpcy5fc2lnbmF0dXJlcykge1xuICAgICAgaWYgKG9sZFNpZ25hdHVyZS5rZXlQYWlyLmdldEtleXMoKS5wdWIgPT09IGtleVBhaXIuZ2V0S2V5cygpLnB1Yikge1xuICAgICAgICBvbGRTaWduYXR1cmUuc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2UgYWRkIHRoZSBuZXcgc2lnbmF0dXJlXG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgc2lnbmF0dXJlLCBrZXlQYWlyIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RhcnQgdGltZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGltZSAtIFN0cmluZyB2YWx1ZSBvZiB0aGUgdGltZSB0byBzZXQgd2l0aCBmb3JtYXQgPHNlY29uZHM+LjxuYW5vcz5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSB0aGlzXG4gICAqL1xuICBzdGFydFRpbWUodGltZTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkVGltZVN0cmluZyh0aW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciB0aW1lIHBhcmFtZXRlcicpO1xuICAgIH1cbiAgICBjb25zdCB0aW1lUGFydHMgPSB0aW1lLnNwbGl0KCcuJykubWFwKCh2KSA9PiBuZXcgQmlnTnVtYmVyKHYpLnRvTnVtYmVyKCkpO1xuICAgIHRoaXMuX3N0YXJ0VGltZSA9IHsgc2Vjb25kczogTG9uZy5mcm9tTnVtYmVyKHRpbWVQYXJ0c1swXSksIG5hbm9zOiB0aW1lUGFydHNbMV0gfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gR2V0dGVycyBhbmQgU2V0dGVyc1xuICBwcml2YXRlIGdldCB2YWxpZFN0YXJ0KCk6IHByb3RvLklUaW1lc3RhbXAge1xuICAgIGlmICghdGhpcy5fc3RhcnRUaW1lKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZShnZXRDdXJyZW50VGltZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0VGltZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzcyAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgaWYgKCFuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogYW55KTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkUmF3VHJhbnNhY3Rpb25Gb3JtYXQocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9mZWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBmZWUnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHNvdXJjZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhhdCB0aGUgZ2l2ZW4ga2V5IGlzIG5vdCBhbHJlYWR5IGluIHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnNcbiAgICpcbiAgICogQHBhcmFtIHtCYXNlS2V5fSBrZXkgLSBUaGUga2V5IHRvIGNoZWNrXG4gICAqL1xuICBwcml2YXRlIGNoZWNrRHVwbGljYXRlZEtleXMoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5mb3JFYWNoKChfc291cmNlS2V5UGFpcikgPT4ge1xuICAgICAgaWYgKF9zb3VyY2VLZXlQYWlyLmdldEtleXMoKS5wcnYgPT09IGtleS5rZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignUmVwZWF0ZWQgc2lnbjogJyArIGtleS5rZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdFQUFxQztBQUNyQywyQ0FBNkI7QUFDN0Isd0RBQTBDO0FBQzFDLDhDQVN5QjtBQUN6QiwrQ0FBNEM7QUFDNUMsbUNBTWlCO0FBQ2pCLHVDQUFvQztBQUdwQyxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFZckUsWUFBc0IsV0FBaUM7UUFDckQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTlgsVUFBSyxHQUFlLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBbUIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTTFGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLDRCQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxj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ImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgKiBhcyBMb25nIGZyb20gJ2xvbmcnO1xuaW1wb3J0ICogYXMgcHJvdG8gZnJvbSAnQGhhc2hncmFwaC9wcm90byc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUZlZSxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBTaWduaW5nRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgYnVpbGRIZWRlcmFBY2NvdW50SUQsXG4gIGdldEN1cnJlbnRUaW1lLFxuICBpc1ZhbGlkQWRkcmVzcyxcbiAgaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0LFxuICBpc1ZhbGlkVGltZVN0cmluZyxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEhlZGVyYU5vZGUsIFNpZ25hdHVyZURhdGEgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2ZlZTogQmFzZUZlZTtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NvdXJjZTogQmFzZUFkZHJlc3M7XG4gIHByb3RlY3RlZCBfc3RhcnRUaW1lOiBwcm90by5JVGltZXN0YW1wO1xuICBwcm90ZWN0ZWQgX21lbW86IHN0cmluZztcbiAgcHJvdGVjdGVkIF90eEJvZHk6IHByb3RvLlRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF9ub2RlOiBIZWRlcmFOb2RlID0geyBub2RlSWQ6ICcwLjAuNCcgfTtcbiAgcHJvdGVjdGVkIF9kdXJhdGlvbjogcHJvdG8uRHVyYXRpb24gPSBuZXcgcHJvdG8uRHVyYXRpb24oeyBzZWNvbmRzOiBMb25nLmZyb21OdW1iZXIoMTIwKSB9KTtcbiAgcHJvdGVjdGVkIF9tdWx0aVNpZ25lcktleVBhaXJzOiBLZXlQYWlyW107XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlczogU2lnbmF0dXJlRGF0YVtdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5ID0gbmV3IHByb3RvLlRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvblZhbGlkRHVyYXRpb24gPSB0aGlzLl9kdXJhdGlvbjtcbiAgICB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLy8gcmVnaW9uIEJhc2UgQnVpbGRlclxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3R4Qm9keS5ub2RlQWNjb3VudElEID0gYnVpbGRIZWRlcmFBY2NvdW50SUQodGhpcy5fbm9kZS5ub2RlSWQpO1xuICAgIHRoaXMuX3R4Qm9keS50cmFuc2FjdGlvbkZlZSA9IExvbmcuZnJvbVN0cmluZyh0aGlzLl9mZWUuZmVlKTtcbiAgICB0aGlzLl90eEJvZHkudHJhbnNhY3Rpb25JRCA9IHRoaXMuYnVpbGRUeElkKCk7XG4gICAgdGhpcy5fdHhCb2R5Lm1lbW8gPSB0aGlzLl9tZW1vO1xuICAgIGNvbnN0IGhUcmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb24uaGVkZXJhVHggfHwgbmV3IHByb3RvLlRyYW5zYWN0aW9uKCk7XG4gICAgaFRyYW5zYWN0aW9uLmJvZHlCeXRlcyA9IHByb3RvLlRyYW5zYWN0aW9uQm9keS5lbmNvZGUodGhpcy5fdHhCb2R5KS5maW5pc2goKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmJvZHkoaFRyYW5zYWN0aW9uKTtcbiAgICBmb3IgKGNvbnN0IGtwIG9mIHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMpIHtcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb24uc2lnbihrcCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgeyBzaWduYXR1cmUsIGtleVBhaXIgfSBvZiB0aGlzLl9zaWduYXR1cmVzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUsIGtleVBhaXIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBVaW50OEFycmF5IHwgc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlZEtleXMoa2V5KTtcbiAgICBjb25zdCBzaWduZXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcblxuICAgIC8vIFNpZ25pbmcgdGhlIHRyYW5zYWN0aW9uIGlzIGFuIG9wZXJhdGlvbiB0aGF0IHJlbGllcyBvbiBhbGwgdGhlIGRhdGEgYmVpbmcgc2V0LFxuICAgIC8vIHNvIHdlIHNldCB0aGUgc291cmNlIGhlcmUgYW5kIGxlYXZlIHRoZSBhY3R1YWwgc2lnbmluZyBmb3IgdGhlIGJ1aWxkIHN0ZXBcbiAgICB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLnB1c2goc2lnbmVyKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IC0gdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0eDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRQcmV2aW91c1NpZ25hdHVyZXMoKTtcbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLmZlZSh7IGZlZTogdHhEYXRhLmZlZS50b1N0cmluZygpIH0pO1xuICAgIHRoaXMuc291cmNlKHsgYWRkcmVzczogdHhEYXRhLmZyb20gfSk7XG4gICAgdGhpcy5zdGFydFRpbWUodHhEYXRhLnN0YXJ0VGltZSk7XG4gICAgdGhpcy5ub2RlKHsgbm9kZUlkOiB0eERhdGEubm9kZSB9KTtcbiAgICB0aGlzLnZhbGlkRHVyYXRpb24obmV3IEJpZ051bWJlcih0eERhdGEudmFsaWREdXJhdGlvbikudG9OdW1iZXIoKSk7XG4gICAgaWYgKHR4RGF0YS5tZW1vKSB7XG4gICAgICB0aGlzLm1lbW8odHhEYXRhLm1lbW8pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVkZXJhIFRyYW5zYWN0aW9uSURcbiAgICpcbiAgICogQHJldHVybnMge3Byb3RvLlRyYW5zYWN0aW9uSUR9IC0gQ3JlYXRlZCBUcmFuc2FjdGlvbklEXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUeElkKCk6IHByb3RvLlRyYW5zYWN0aW9uSUQge1xuICAgIHJldHVybiBuZXcgcHJvdG8uVHJhbnNhY3Rpb25JRCh7XG4gICAgICB0cmFuc2FjdGlvblZhbGlkU3RhcnQ6IHRoaXMudmFsaWRTdGFydCxcbiAgICAgIGFjY291bnRJRDogYnVpbGRIZWRlcmFBY2NvdW50SUQodGhpcy5fc291cmNlLmFkZHJlc3MpLFxuICAgIH0pO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBDb21tb24gYnVpbGRlciBtZXRob2RzXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBtZW1vXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gQSBoZWRlcmEgbWVtbywgY2FuIGJlIGEgbWF4aW11bSBvZiAxMDAgYnl0ZXNcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gLSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIG1lbW8obWVtbzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdNZW1vIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIDEwMCBieXRlcycpO1xuICAgIH1cbiAgICB0aGlzLl9tZW1vID0gbWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBub2RlLCBpdCBtYXkgdGFrZSB0aGUgZm9ybWF0IGAnPHNoYXJkPi48cmVhbG0+LjxhY2NvdW50PidgIG9yIGAnPGFjY291bnQ+J2BcbiAgICpcbiAgICogQHBhcmFtIHtIZWRlcmFOb2RlfSBub2RlIC0gQSBoZWRlcmEgbm9kZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBub2RlKG5vZGU6IEhlZGVyYU5vZGUpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKG5vZGUubm9kZUlkKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIEhlZGVyYSBub2RlIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fbm9kZSA9IG5vZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB2YWxpZCBkdXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmFsaWREdXJhdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB2YWxpZCBkdXJhdGlvbiBpbiBzZWNvbmRzXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICB2YWxpZER1cmF0aW9uKHZhbGlkRHVyYXRpb246IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHZhbGlkRHVyYXRpb24pKTtcbiAgICB0aGlzLl9kdXJhdGlvbiA9IG5ldyBwcm90by5EdXJhdGlvbih7IHNlY29uZHM6IExvbmcuZnJvbU51bWJlcih2YWxpZER1cmF0aW9uKSB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIGZlZXNcbiAgICpcbiAgICogQHBhcmFtIHtCYXNlRmVlfSBmZWUgLSBUaGUgbWF4aW11bSBnYXMgdG8gcGF5XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBmZWUoZmVlOiBCYXNlRmVlKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZmVlLmZlZSkpO1xuICAgIHRoaXMuX2ZlZSA9IGZlZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHNvdXJjZVxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIHNvdXJjZSBhY2NvdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzb3VyY2UoYWRkcmVzczogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICB0aGlzLl9zb3VyY2UgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBleHRlcm5hbCB0cmFuc2FjdGlvbiBzaWduYXR1cmVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSAtIEhleCBlbmNvZGVkIHNpZ25hdHVyZSBzdHJpbmdcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIC0gVGhlIHB1YmxpYyBrZXkga2V5cGFpciB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgc2lnbmF0dXJlXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gVHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBrZXlQYWlyOiBLZXlQYWlyKTogdGhpcyB7XG4gICAgLy8gaWYgd2UgYWxyZWFkeSBoYXZlIGEgc2lnbmF0dXJlIGZvciB0aGlzIGtleSBwYWlyLCBqdXN0IHVwZGF0ZSBpdFxuICAgIGZvciAoY29uc3Qgb2xkU2lnbmF0dXJlIG9mIHRoaXMuX3NpZ25hdHVyZXMpIHtcbiAgICAgIGlmIChvbGRTaWduYXR1cmUua2V5UGFpci5nZXRLZXlzKCkucHViID09PSBrZXlQYWlyLmdldEtleXMoKS5wdWIpIHtcbiAgICAgICAgb2xkU2lnbmF0dXJlLnNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlIGFkZCB0aGUgbmV3IHNpZ25hdHVyZVxuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHNpZ25hdHVyZSwga2V5UGFpciB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0YXJ0IHRpbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpbWUgLSBTdHJpbmcgdmFsdWUgb2YgdGhlIHRpbWUgdG8gc2V0IHdpdGggZm9ybWF0IDxzZWNvbmRzPi48bmFub3M+XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IC0gdGhpc1xuICAgKi9cbiAgc3RhcnRUaW1lKHRpbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZFRpbWVTdHJpbmcodGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgdGltZSBwYXJhbWV0ZXInKTtcbiAgICB9XG4gICAgY29uc3QgdGltZVBhcnRzID0gdGltZS5zcGxpdCgnLicpLm1hcCgodikgPT4gbmV3IEJpZ051bWJlcih2KS50b051bWJlcigpKTtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSB7IHNlY29uZHM6IExvbmcuZnJvbU51bWJlcih0aW1lUGFydHNbMF0pLCBuYW5vczogdGltZVBhcnRzWzFdIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIEdldHRlcnMgYW5kIFNldHRlcnNcbiAgcHJpdmF0ZSBnZXQgdmFsaWRTdGFydCgpOiBwcm90by5JVGltZXN0YW1wIHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0VGltZSkge1xuICAgICAgdGhpcy5zdGFydFRpbWUoZ2V0Q3VycmVudFRpbWUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdGFydFRpbWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGlmICghbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQga2V5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IGFueSk6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZmVlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzb3VyY2UnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgdGhlIGdpdmVuIGtleSBpcyBub3QgYWxyZWFkeSBpbiB0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUtleX0ga2V5IC0gVGhlIGtleSB0byBjaGVja1xuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0R1cGxpY2F0ZWRLZXlzKGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMuZm9yRWFjaCgoX3NvdXJjZUtleVBhaXIpID0+IHtcbiAgICAgIGlmIChfc291cmNlS2V5UGFpci5nZXRLZXlzKCkucHJ2ID09PSBrZXkua2V5KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1JlcGVhdGVkIHNpZ246ICcgKyBrZXkua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
2
|
import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
|
|
3
3
|
import { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
4
|
-
import {
|
|
4
|
+
import { CoinTransferBuilder } from './coinTransferBuilder';
|
|
5
5
|
import { TransactionBuilder } from './transactionBuilder';
|
|
6
6
|
import { Transaction } from './transaction';
|
|
7
|
+
import { TokenAssociateBuilder } from './tokenAssociateBuilder';
|
|
8
|
+
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
7
9
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
8
10
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
11
|
/** @inheritdoc */
|
|
10
12
|
getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder;
|
|
11
13
|
/** @inheritDoc */
|
|
12
|
-
getTransferBuilder(tx?: Transaction):
|
|
14
|
+
getTransferBuilder(tx?: Transaction): CoinTransferBuilder;
|
|
15
|
+
/**
|
|
16
|
+
* Returns a specific builder to create a funds token transfer transaction
|
|
17
|
+
*/
|
|
18
|
+
getTokenTransferBuilder(tx?: Transaction): TokenTransferBuilder;
|
|
19
|
+
/**
|
|
20
|
+
* Returns a builder to create a token association transaction
|
|
21
|
+
*/
|
|
22
|
+
getTokenAssociateBuilder(tx?: Transaction): TokenAssociateBuilder;
|
|
13
23
|
/** @inheritDoc */
|
|
14
24
|
from(raw: Uint8Array | string): TransactionBuilder;
|
|
15
25
|
/**
|
|
@@ -26,7 +36,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
26
36
|
* @param {Uint8Array | string} rawTransaction - encoded transaction
|
|
27
37
|
* @returns {Transaction} the parsed transaction instance
|
|
28
38
|
*/
|
|
29
|
-
private
|
|
39
|
+
private parseRawTransaction;
|
|
30
40
|
/**
|
|
31
41
|
* Check the raw transaction has a valid format in the blockchain context, throw otherwise.
|
|
32
42
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,6BAA6B,EAI9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,mBAAmB;IAIzD;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAI/D;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,qBAAqB;IAIjE,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,kBAAkB;IAiBlD;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TransactionBuilderFactory = void 0;
|
|
4
4
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
5
|
const walletInitializationBuilder_1 = require("./walletInitializationBuilder");
|
|
6
|
-
const
|
|
6
|
+
const coinTransferBuilder_1 = require("./coinTransferBuilder");
|
|
7
7
|
const transaction_1 = require("./transaction");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
+
const tokenAssociateBuilder_1 = require("./tokenAssociateBuilder");
|
|
10
|
+
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
9
11
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
10
12
|
constructor(_coinConfig) {
|
|
11
13
|
super(_coinConfig);
|
|
@@ -16,17 +18,33 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
16
18
|
}
|
|
17
19
|
/** @inheritDoc */
|
|
18
20
|
getTransferBuilder(tx) {
|
|
19
|
-
return this.initializeBuilder(tx, new
|
|
21
|
+
return this.initializeBuilder(tx, new coinTransferBuilder_1.CoinTransferBuilder(this._coinConfig));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns a specific builder to create a funds token transfer transaction
|
|
25
|
+
*/
|
|
26
|
+
getTokenTransferBuilder(tx) {
|
|
27
|
+
return this.initializeBuilder(tx, new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns a builder to create a token association transaction
|
|
31
|
+
*/
|
|
32
|
+
getTokenAssociateBuilder(tx) {
|
|
33
|
+
return this.initializeBuilder(tx, new tokenAssociateBuilder_1.TokenAssociateBuilder(this._coinConfig));
|
|
20
34
|
}
|
|
21
35
|
/** @inheritDoc */
|
|
22
36
|
from(raw) {
|
|
23
37
|
this.validateRawTransaction(raw);
|
|
24
|
-
const tx = this.
|
|
25
|
-
switch (tx.
|
|
26
|
-
case
|
|
27
|
-
return
|
|
28
|
-
|
|
38
|
+
const tx = this.parseRawTransaction(raw);
|
|
39
|
+
switch (tx.type) {
|
|
40
|
+
case sdk_core_1.TransactionType.Send:
|
|
41
|
+
return utils_1.isTokenTransfer(tx.txBody.cryptoTransfer)
|
|
42
|
+
? this.getTokenTransferBuilder(tx)
|
|
43
|
+
: this.getTransferBuilder(tx);
|
|
44
|
+
case sdk_core_1.TransactionType.WalletInitialization:
|
|
29
45
|
return this.getWalletInitializationBuilder(tx);
|
|
46
|
+
case sdk_core_1.TransactionType.AssociatedTokenAccountInitialization:
|
|
47
|
+
return this.getTokenAssociateBuilder(tx);
|
|
30
48
|
default:
|
|
31
49
|
throw new sdk_core_1.InvalidTransactionError('Invalid transaction ' + tx.txBody.data);
|
|
32
50
|
}
|
|
@@ -50,16 +68,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
50
68
|
* @param {Uint8Array | string} rawTransaction - encoded transaction
|
|
51
69
|
* @returns {Transaction} the parsed transaction instance
|
|
52
70
|
*/
|
|
53
|
-
|
|
71
|
+
parseRawTransaction(rawTransaction) {
|
|
54
72
|
const tx = new transaction_1.Transaction(this._coinConfig);
|
|
55
|
-
|
|
56
|
-
if (typeof rawTransaction === 'string') {
|
|
57
|
-
buffer = utils_1.toUint8Array(rawTransaction);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
buffer = rawTransaction;
|
|
61
|
-
}
|
|
62
|
-
tx.bodyBytes(buffer);
|
|
73
|
+
tx.fromRawTransaction(rawTransaction);
|
|
63
74
|
return tx;
|
|
64
75
|
}
|
|
65
76
|
/**
|
|
@@ -74,4 +85,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
74
85
|
}
|
|
75
86
|
}
|
|
76
87
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2hiYXIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4Q0FLeUI7QUFDekIsK0VBQTRFO0FBQzVFLCtEQUE0RDtBQUU1RCwrQ0FBNEM7QUFDNUMsbUNBQXVFO0FBQ3ZFLG1FQUFnRTtBQUNoRSxpRUFBOEQ7QUFFOUQsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEIsQ0FBQyxFQUFnQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx5REFBMkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QixDQUFDLEVBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUFDLEVBQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLDZDQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQXdCO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQ2YsS0FBSywwQkFBZSxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sdUJBQWUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWUsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsS0FBSywwQkFBZSxDQUFDLG9CQUFvQjtnQkFDdkMsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakQsS0FBSywwQkFBZSxDQUFDLG9DQUFvQztnQkFDdkQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0M7Z0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxtQkFBbUIsQ0FBQyxjQUFtQztRQUM3RCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssc0JBQXNCLENBQUMsY0FBbUM7UUFDaEUsSUFBSSxDQUFDLG1DQUEyQixDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztDQUNGO0FBbkZELDhEQW1GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIH0gZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQ29pblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vY29pblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNUb2tlblRyYW5zZmVyLCBpc1ZhbGlkUmF3VHJhbnNhY3Rpb25Gb3JtYXQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRva2VuQXNzb2NpYXRlQnVpbGRlciB9IGZyb20gJy4vdG9rZW5Bc3NvY2lhdGVCdWlsZGVyJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IENvaW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ29pblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIGJ1aWxkZXIgdG8gY3JlYXRlIGEgZnVuZHMgdG9rZW4gdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJ1aWxkZXIgdG8gY3JlYXRlIGEgdG9rZW4gYXNzb2NpYXRpb24gdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRva2VuQXNzb2NpYXRlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVG9rZW5Bc3NvY2lhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRva2VuQXNzb2NpYXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZnJvbShyYXc6IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIGNvbnN0IHR4ID0gdGhpcy5wYXJzZVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gaXNUb2tlblRyYW5zZmVyKHR4LnR4Qm9keS5jcnlwdG9UcmFuc2ZlciEpXG4gICAgICAgICAgPyB0aGlzLmdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHR4KVxuICAgICAgICAgIDogdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb246XG4gICAgICAgIHJldHVybiB0aGlzLmdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb246XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRva2VuQXNzb2NpYXRlQnVpbGRlcih0eCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gJyArIHR4LnR4Qm9keS5kYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdHJhbnNhY3Rpb24gaW5zdGFuY2UgZnJvbSB0aGUgZW5jb2RlZCB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXkgfCBzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIC0gZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb259IHRoZSBwYXJzZWQgdHJhbnNhY3Rpb24gaW5zdGFuY2VcbiAgICovXG4gIHByaXZhdGUgcGFyc2VSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgcmF3IHRyYW5zYWN0aW9uIGhhcyBhIHZhbGlkIGZvcm1hdCBpbiB0aGUgYmxvY2tjaGFpbiBjb250ZXh0LCB0aHJvdyBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSByYXdUcmFuc2FjdGlvbiAtIFRyYW5zYWN0aW9uIGluIGFueSBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZykge1xuICAgIGlmICghaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
2
|
import * as proto from '@hashgraph/proto';
|
|
3
3
|
import { BaseKey } from '@bitgo/sdk-core';
|
|
4
|
+
import { Recipient } from './iface';
|
|
4
5
|
import { TransactionBuilder } from './transactionBuilder';
|
|
5
6
|
import { Transaction } from './transaction';
|
|
6
7
|
export declare class TransferBuilder extends TransactionBuilder {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private _amount;
|
|
8
|
+
protected readonly _txBodyData: proto.CryptoTransferTransactionBody;
|
|
9
|
+
protected _recipients: Recipient[];
|
|
10
10
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
11
|
/** @inheritdoc */
|
|
12
12
|
protected buildImplementation(): Promise<Transaction>;
|
|
13
|
-
private buildTransferData;
|
|
14
|
-
static buildAccountData(address: string): proto.AccountID;
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
initBuilder(tx: Transaction): void;
|
|
17
|
-
/**
|
|
18
|
-
* Initialize the transfer specific data, getting the recipient account
|
|
19
|
-
* represented by the element with a positive amount on the transfer element.
|
|
20
|
-
* The negative amount represents the source account, so it's ignored.
|
|
21
|
-
*
|
|
22
|
-
* @param {proto} transfers - Array of objects which contains accountID and transferred amount
|
|
23
|
-
*/
|
|
24
|
-
protected initTransfers(transfers: proto.IAccountAmount[]): void;
|
|
25
13
|
/** @inheritdoc */
|
|
26
14
|
protected signImplementation(key: BaseKey): Transaction;
|
|
27
15
|
/**
|
|
28
|
-
* Set the
|
|
29
|
-
* it may take the format `'<shard>.<realm>.<account>'` or `'<account>'`
|
|
30
|
-
*
|
|
31
|
-
* @param {string} address - The address to transfer funds to
|
|
32
|
-
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
33
|
-
*/
|
|
34
|
-
to(address: string): this;
|
|
35
|
-
/**
|
|
36
|
-
* Set the amount to be transferred
|
|
16
|
+
* Set the recipient to be transferred
|
|
37
17
|
*
|
|
38
|
-
* @param {
|
|
18
|
+
* @param {Recipient} recipient - recipient to transfer consisting destination address and amount
|
|
39
19
|
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
40
20
|
*/
|
|
41
|
-
|
|
21
|
+
send(recipient: Recipient): this;
|
|
42
22
|
validateMandatoryFields(): void;
|
|
43
23
|
}
|
|
44
24
|
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,OAAO,EAKR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,6BAA6B,CAAC;IACpE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;gBAEvB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAQvD;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAahC,uBAAuB,IAAI,IAAI;CAOhC"}
|
|
@@ -20,114 +20,55 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.TransferBuilder = void 0;
|
|
23
|
-
const Long = __importStar(require("long"));
|
|
24
|
-
const sdk_1 = require("@hashgraph/sdk");
|
|
25
23
|
const proto = __importStar(require("@hashgraph/proto"));
|
|
26
24
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
27
25
|
const transactionBuilder_1 = require("./transactionBuilder");
|
|
28
26
|
const utils_1 = require("./utils");
|
|
27
|
+
const constants_1 = require("./constants");
|
|
29
28
|
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
30
29
|
constructor(_coinConfig) {
|
|
31
30
|
super(_coinConfig);
|
|
32
31
|
this._txBodyData = new proto.CryptoTransferTransactionBody();
|
|
33
32
|
this._txBody.cryptoTransfer = this._txBodyData;
|
|
33
|
+
this._recipients = [];
|
|
34
34
|
}
|
|
35
35
|
/** @inheritdoc */
|
|
36
36
|
async buildImplementation() {
|
|
37
|
-
this._txBodyData.transfers = this.buildTransferData();
|
|
38
37
|
this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
39
38
|
return await super.buildImplementation();
|
|
40
39
|
}
|
|
41
|
-
buildTransferData() {
|
|
42
|
-
return {
|
|
43
|
-
accountAmounts: [
|
|
44
|
-
{
|
|
45
|
-
accountID: TransferBuilder.buildAccountData(this._source.address),
|
|
46
|
-
amount: Long.fromString(this._amount).negate(),
|
|
47
|
-
},
|
|
48
|
-
{ accountID: TransferBuilder.buildAccountData(this._toAddress), amount: Long.fromString(this._amount) }, // recipient
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
static buildAccountData(address) {
|
|
53
|
-
const accountData = sdk_1.AccountId.fromString(address);
|
|
54
|
-
return new proto.AccountID({
|
|
55
|
-
accountNum: accountData.num,
|
|
56
|
-
realmNum: accountData.realm,
|
|
57
|
-
shardNum: accountData.shard,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/** @inheritdoc */
|
|
61
|
-
initBuilder(tx) {
|
|
62
|
-
super.initBuilder(tx);
|
|
63
|
-
this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
64
|
-
const transferData = tx.txBody.cryptoTransfer;
|
|
65
|
-
if (transferData && transferData.transfers && transferData.transfers.accountAmounts) {
|
|
66
|
-
this.initTransfers(transferData.transfers.accountAmounts);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Initialize the transfer specific data, getting the recipient account
|
|
71
|
-
* represented by the element with a positive amount on the transfer element.
|
|
72
|
-
* The negative amount represents the source account, so it's ignored.
|
|
73
|
-
*
|
|
74
|
-
* @param {proto} transfers - Array of objects which contains accountID and transferred amount
|
|
75
|
-
*/
|
|
76
|
-
initTransfers(transfers) {
|
|
77
|
-
transfers.forEach((transferData) => {
|
|
78
|
-
const amount = Long.fromValue(transferData.amount);
|
|
79
|
-
if (amount.isPositive()) {
|
|
80
|
-
this.to(utils_1.stringifyAccountId(transferData.accountID));
|
|
81
|
-
this.amount(amount.toString());
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
40
|
/** @inheritdoc */
|
|
86
41
|
signImplementation(key) {
|
|
87
|
-
if (this._multiSignerKeyPairs.length >=
|
|
88
|
-
throw new sdk_core_1.SigningError('A maximum of ' +
|
|
42
|
+
if (this._multiSignerKeyPairs.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
|
|
43
|
+
throw new sdk_core_1.SigningError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' can sign the transaction.');
|
|
89
44
|
}
|
|
90
45
|
return super.signImplementation(key);
|
|
91
46
|
}
|
|
92
47
|
// region Transfer fields
|
|
93
48
|
/**
|
|
94
|
-
* Set the
|
|
95
|
-
* it may take the format `'<shard>.<realm>.<account>'` or `'<account>'`
|
|
49
|
+
* Set the recipient to be transferred
|
|
96
50
|
*
|
|
97
|
-
* @param {
|
|
51
|
+
* @param {Recipient} recipient - recipient to transfer consisting destination address and amount
|
|
98
52
|
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
99
53
|
*/
|
|
100
|
-
|
|
101
|
-
if (!utils_1.isValidAddress(address)) {
|
|
54
|
+
send(recipient) {
|
|
55
|
+
if (!utils_1.isValidAddress(recipient.address)) {
|
|
102
56
|
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
103
57
|
}
|
|
104
|
-
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Set the amount to be transferred
|
|
109
|
-
*
|
|
110
|
-
* @param {string} amount - Amount to transfer in tinyBars (there are 100,000,000 tinyBars in one Hbar)
|
|
111
|
-
* @returns {TransferBuilder} - The builder with the new parameter set
|
|
112
|
-
*/
|
|
113
|
-
amount(amount) {
|
|
114
|
-
if (!utils_1.isValidAmount(amount)) {
|
|
58
|
+
if (!utils_1.isValidAmount(recipient.amount)) {
|
|
115
59
|
throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
|
|
116
60
|
}
|
|
117
|
-
this.
|
|
61
|
+
this._recipients.push(recipient);
|
|
118
62
|
return this;
|
|
119
63
|
}
|
|
120
64
|
// endregion
|
|
121
65
|
// region Validators
|
|
122
66
|
validateMandatoryFields() {
|
|
123
|
-
if (this.
|
|
124
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing
|
|
125
|
-
}
|
|
126
|
-
if (this._amount === undefined) {
|
|
127
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing amount');
|
|
67
|
+
if (this._recipients.length === 0) {
|
|
68
|
+
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing recipients');
|
|
128
69
|
}
|
|
129
70
|
super.validateMandatoryFields();
|
|
130
71
|
}
|
|
131
72
|
}
|
|
132
73
|
exports.TransferBuilder = TransferBuilder;
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyw4Q0FNeUI7QUFFekIsNkRBQTBEO0FBRTFELG1DQUF3RDtBQUN4RCwyQ0FBb0Q7QUFFcEQsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUlyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxpQ0FBcUIsRUFBRTtZQUM3RCxNQUFNLElBQUksdUJBQVksQ0FBQyxlQUFlLEdBQUcsaUNBQXFCLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztTQUNoRztRQUNELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCx5QkFBeUI7SUFDekI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLHNCQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxDQUFDLHFCQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG9CQUFvQjtJQUNwQix1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUU7UUFDRCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBRUY7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHByb3RvIGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBpc1ZhbGlkQWRkcmVzcywgaXNWYWxpZEFtb3VudCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9TSUdORVJfTlVNQkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90eEJvZHlEYXRhOiBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keTtcbiAgcHJvdGVjdGVkIF9yZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHhCb2R5RGF0YSA9IG5ldyBwcm90by5DcnlwdG9UcmFuc2ZlclRyYW5zYWN0aW9uQm9keSgpO1xuICAgIHRoaXMuX3R4Qm9keS5jcnlwdG9UcmFuc2ZlciA9IHRoaXMuX3R4Qm9keURhdGE7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fbXVsdGlTaWduZXJLZXlQYWlycy5sZW5ndGggPj0gREVGQVVMVF9TSUdORVJfTlVNQkVSKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdBIG1heGltdW0gb2YgJyArIERFRkFVTFRfU0lHTkVSX05VTUJFUiArICcgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbkltcGxlbWVudGF0aW9uKGtleSk7XG4gIH1cblxuICAvLyByZWdpb24gVHJhbnNmZXIgZmllbGRzXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlY2lwaWVudCB0byBiZSB0cmFuc2ZlcnJlZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlY2lwaWVudH0gcmVjaXBpZW50IC0gcmVjaXBpZW50IHRvIHRyYW5zZmVyIGNvbnNpc3RpbmcgZGVzdGluYXRpb24gYWRkcmVzcyBhbmQgYW1vdW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IC0gVGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKHJlY2lwaWVudC5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KHJlY2lwaWVudC5hbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2lwaWVudHMucHVzaChyZWNpcGllbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8vIGVuZHJlZ2lvblxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWNpcGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyByZWNpcGllbnRzJyk7XG4gICAgfVxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { PrivateKey } from '@hashgraph/sdk';
|
|
|
2
2
|
import * as proto from '@hashgraph/proto';
|
|
3
3
|
import { AddressDetails } from './iface';
|
|
4
4
|
import { toHex, toUint8Array } from '@bitgo/sdk-core';
|
|
5
|
+
import { BaseCoin } from '@bitgo/statics';
|
|
5
6
|
export { toHex, toUint8Array };
|
|
6
7
|
/**
|
|
7
8
|
* Returns whether the string is a valid Hedera account address
|
|
@@ -20,7 +21,7 @@ export declare function isValidAddress(address: string): boolean;
|
|
|
20
21
|
*/
|
|
21
22
|
export declare function isValidTransactionId(txId: string): boolean;
|
|
22
23
|
/**
|
|
23
|
-
|
|
24
|
+
Returns whether the string is a valid Hedera public key
|
|
24
25
|
*
|
|
25
26
|
* @param {string} key - The public key to be validated
|
|
26
27
|
* @returns {boolean} - The validation result
|
|
@@ -64,14 +65,21 @@ export declare function isValidRawTransactionFormat(rawTransaction: any): boolea
|
|
|
64
65
|
/**
|
|
65
66
|
* Returns a string representation of an {proto.IAccountID} object
|
|
66
67
|
*
|
|
67
|
-
* @param {proto} accountId - Account id to be cast to string
|
|
68
|
+
* @param {proto.IAccountID} accountId - Account id to be cast to string
|
|
68
69
|
* @returns {string} - The string representation of the {proto.IAccountID}
|
|
69
70
|
*/
|
|
70
71
|
export declare function stringifyAccountId({ shardNum, realmNum, accountNum }: proto.IAccountID): string;
|
|
72
|
+
/**
|
|
73
|
+
* Returns a string representation of an {proto.ITokenID} object
|
|
74
|
+
*
|
|
75
|
+
* @param {proto.ITokenID} - token id to be cast to string
|
|
76
|
+
* @returns {string} - the string representation of the {proto.ITokenID}
|
|
77
|
+
*/
|
|
78
|
+
export declare function stringifyTokenId({ shardNum, realmNum, tokenNum }: proto.ITokenID): string;
|
|
71
79
|
/**
|
|
72
80
|
* Returns a string representation of an {proto.ITimestamp} object
|
|
73
81
|
*
|
|
74
|
-
* @param {proto} timestamp - Timestamp to be cast to string
|
|
82
|
+
* @param {proto.ITimestamp} timestamp - Timestamp to be cast to string
|
|
75
83
|
* @returns {string} - The string representation of the {proto.ITimestamp}
|
|
76
84
|
*/
|
|
77
85
|
export declare function stringifyTxTime({ seconds, nanos }: proto.ITimestamp): string;
|
|
@@ -140,4 +148,47 @@ export declare function normalizeAddress({ address, memoId }: AddressDetails): s
|
|
|
140
148
|
* @returns {boolean} - True if input is a valid address
|
|
141
149
|
*/
|
|
142
150
|
export declare function isValidAddressWithPaymentId(address: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
<<<<<<< HEAD
|
|
153
|
+
* Build hedera {proto.TokenID} object from token ID string
|
|
154
|
+
*
|
|
155
|
+
* @param {string} tokenID - The token ID to build
|
|
156
|
+
* @returns {proto.TokenID} - The resulting proto TokenID object
|
|
157
|
+
*/
|
|
158
|
+
export declare function buildHederaTokenID(tokenID: string): proto.TokenID;
|
|
159
|
+
/**
|
|
160
|
+
* Build hedera {proto.AccountID} object from account ID string
|
|
161
|
+
*
|
|
162
|
+
* @param {string} accountID - The account ID to build
|
|
163
|
+
* @returns {proto} - The resulting proto AccountID object
|
|
164
|
+
*/
|
|
165
|
+
export declare function buildHederaAccountID(accountID: string): proto.AccountID;
|
|
166
|
+
/**
|
|
167
|
+
* Check if Hedera token ID is valid and supported
|
|
168
|
+
*
|
|
169
|
+
* @param {string} tokenId - The token ID to validate
|
|
170
|
+
* @returns {boolean} - True if tokenId is valid and supported
|
|
171
|
+
*/
|
|
172
|
+
export declare function isValidHederaTokenID(tokenId: string): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Get the associated hedera token ID from token name, if supported
|
|
175
|
+
*
|
|
176
|
+
* @param {string} tokenName - The hedera token name
|
|
177
|
+
* @returns {boolean} - The associated token ID or undefined if not supported
|
|
178
|
+
*/
|
|
179
|
+
export declare function getHederaTokenIdFromName(tokenName: string): string | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* Get the associated hedera token from token ID, if supported
|
|
182
|
+
*
|
|
183
|
+
* @param tokenId - The token address
|
|
184
|
+
* @returns {BaseCoin} - BaseCoin object for the matching token
|
|
185
|
+
*/
|
|
186
|
+
export declare function getHederaTokenNameFromId(tokenId: string): Readonly<BaseCoin> | undefined;
|
|
187
|
+
/**
|
|
188
|
+
* Return boolean indicating whether input is a valid token transfer transaction
|
|
189
|
+
*
|
|
190
|
+
* @param {proto.ICryptoTransferTransactionBody | null} transferTxBody is a transfer transaction body
|
|
191
|
+
* @returns {boolean} true is input is a valid token transfer transaction
|
|
192
|
+
*/
|
|
193
|
+
export declare function isTokenTransfer(transferTxBody: proto.ICryptoTransferTransactionBody | null): boolean;
|
|
143
194
|
//# sourceMappingURL=utils.d.ts.map
|