@bitgo/account-lib 2.20.0-rc.30 → 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.
Files changed (210) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/coin/hbar/utils.js +1 -1
  3. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +3 -2
  4. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  5. package/dist/src/coin/sol/ataInitializationBuilder.js +9 -7
  6. package/dist/src/coin/sol/ataInitializationTransaction.js +3 -3
  7. package/dist/src/coin/sol/iface.d.ts +1 -0
  8. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  9. package/dist/src/coin/sol/iface.js +1 -1
  10. package/dist/src/coin/sol/instructionParamsFactory.js +17 -10
  11. package/dist/src/index.d.ts +13 -3
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +20 -10
  14. package/dist/tsconfig.tsbuildinfo +2380 -3994
  15. package/package.json +10 -16
  16. package/dist/browser/bitgo-account-lib.js +0 -2
  17. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -337
  18. package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
  19. package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  20. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  21. package/dist/resources/hbar/protobuf/Duration.proto +0 -28
  22. package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
  23. package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
  24. package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
  25. package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
  26. package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
  27. package/dist/resources/hbar/protobuf/hedera.js +0 -12192
  28. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -42
  29. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  30. package/dist/src/coin/algo/assetTransferBuilder.js +0 -105
  31. package/dist/src/coin/algo/errors.d.ts +0 -11
  32. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  33. package/dist/src/coin/algo/errors.js +0 -27
  34. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  35. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  36. package/dist/src/coin/algo/ifaces.js +0 -3
  37. package/dist/src/coin/algo/index.d.ts +0 -13
  38. package/dist/src/coin/algo/index.d.ts.map +0 -1
  39. package/dist/src/coin/algo/index.js +0 -47
  40. package/dist/src/coin/algo/keyPair.d.ts +0 -25
  41. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  42. package/dist/src/coin/algo/keyPair.js +0 -77
  43. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  44. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  45. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -239
  46. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  47. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  48. package/dist/src/coin/algo/seedEncoding.js +0 -97
  49. package/dist/src/coin/algo/transaction.d.ts +0 -75
  50. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  51. package/dist/src/coin/algo/transaction.js +0 -251
  52. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -204
  53. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  54. package/dist/src/coin/algo/transactionBuilder.js +0 -373
  55. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  56. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  57. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -52
  58. package/dist/src/coin/algo/transferBuilder.d.ts +0 -40
  59. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  60. package/dist/src/coin/algo/transferBuilder.js +0 -89
  61. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  62. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  63. package/dist/src/coin/algo/txnSchema.js +0 -68
  64. package/dist/src/coin/algo/utils.d.ts +0 -249
  65. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  66. package/dist/src/coin/algo/utils.js +0 -539
  67. package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
  68. package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
  69. package/dist/src/coin/celo/stakingUtils.js +0 -98
  70. package/dist/src/coin/cspr/constants.d.ts +0 -19
  71. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  72. package/dist/src/coin/cspr/constants.js +0 -28
  73. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  74. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  75. package/dist/src/coin/cspr/delegateBuilder.js +0 -111
  76. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  77. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  78. package/dist/src/coin/cspr/ifaces.js +0 -3
  79. package/dist/src/coin/cspr/index.d.ts +0 -6
  80. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  81. package/dist/src/coin/cspr/index.js +0 -31
  82. package/dist/src/coin/cspr/keyPair.d.ts +0 -18
  83. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  84. package/dist/src/coin/cspr/keyPair.js +0 -75
  85. package/dist/src/coin/cspr/transaction.d.ts +0 -55
  86. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  87. package/dist/src/coin/cspr/transaction.js +0 -227
  88. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -124
  89. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  90. package/dist/src/coin/cspr/transactionBuilder.js +0 -312
  91. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  92. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  93. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -98
  94. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  95. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  96. package/dist/src/coin/cspr/transferBuilder.js +0 -106
  97. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  98. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  99. package/dist/src/coin/cspr/undelegateBuilder.js +0 -111
  100. package/dist/src/coin/cspr/utils.d.ts +0 -188
  101. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  102. package/dist/src/coin/cspr/utils.js +0 -477
  103. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  104. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  105. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -95
  106. package/dist/src/coin/eth/contractCall.d.ts +0 -8
  107. package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
  108. package/dist/src/coin/eth/contractCall.js +0 -17
  109. package/dist/src/coin/eth/iface.d.ts +0 -122
  110. package/dist/src/coin/eth/iface.d.ts.map +0 -1
  111. package/dist/src/coin/eth/iface.js +0 -8
  112. package/dist/src/coin/eth/index.d.ts +0 -10
  113. package/dist/src/coin/eth/index.d.ts.map +0 -1
  114. package/dist/src/coin/eth/index.js +0 -39
  115. package/dist/src/coin/eth/keyPair.d.ts +0 -26
  116. package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
  117. package/dist/src/coin/eth/keyPair.js +0 -85
  118. package/dist/src/coin/eth/transaction.d.ts +0 -64
  119. package/dist/src/coin/eth/transaction.d.ts.map +0 -1
  120. package/dist/src/coin/eth/transaction.js +0 -137
  121. package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
  122. package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
  123. package/dist/src/coin/eth/transactionBuilder.js +0 -624
  124. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
  125. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
  126. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
  127. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
  128. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
  129. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
  130. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
  131. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
  132. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
  133. package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
  134. package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
  135. package/dist/src/coin/eth/transferBuilder.js +0 -197
  136. package/dist/src/coin/eth/types.d.ts +0 -39
  137. package/dist/src/coin/eth/types.d.ts.map +0 -1
  138. package/dist/src/coin/eth/types.js +0 -135
  139. package/dist/src/coin/eth/utils.d.ts +0 -201
  140. package/dist/src/coin/eth/utils.d.ts.map +0 -1
  141. package/dist/src/coin/eth/utils.js +0 -486
  142. package/dist/src/coin/eth/walletUtil.d.ts +0 -21
  143. package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
  144. package/dist/src/coin/eth/walletUtil.js +0 -31
  145. package/dist/src/coin/hbar/ifaces.d.ts +0 -26
  146. package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
  147. package/dist/src/coin/hbar/ifaces.js +0 -3
  148. package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
  149. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
  150. package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
  151. package/dist/src/coin/stx/constants.d.ts +0 -8
  152. package/dist/src/coin/stx/constants.d.ts.map +0 -1
  153. package/dist/src/coin/stx/constants.js +0 -19
  154. package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
  155. package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
  156. package/dist/src/coin/stx/contractBuilder.js +0 -116
  157. package/dist/src/coin/stx/iface.d.ts +0 -48
  158. package/dist/src/coin/stx/iface.d.ts.map +0 -1
  159. package/dist/src/coin/stx/iface.js +0 -3
  160. package/dist/src/coin/stx/index.d.ts +0 -6
  161. package/dist/src/coin/stx/index.d.ts.map +0 -1
  162. package/dist/src/coin/stx/index.js +0 -32
  163. package/dist/src/coin/stx/keyPair.d.ts +0 -55
  164. package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
  165. package/dist/src/coin/stx/keyPair.js +0 -140
  166. package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
  167. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
  168. package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
  169. package/dist/src/coin/stx/transaction.d.ts +0 -49
  170. package/dist/src/coin/stx/transaction.d.ts.map +0 -1
  171. package/dist/src/coin/stx/transaction.js +0 -225
  172. package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
  173. package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
  174. package/dist/src/coin/stx/transactionBuilder.js +0 -263
  175. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
  176. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
  177. package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
  178. package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
  179. package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
  180. package/dist/src/coin/stx/transferBuilder.js +0 -99
  181. package/dist/src/coin/stx/utils.d.ts +0 -207
  182. package/dist/src/coin/stx/utils.d.ts.map +0 -1
  183. package/dist/src/coin/stx/utils.js +0 -503
  184. package/dist/src/coin/xtz/address.d.ts +0 -8
  185. package/dist/src/coin/xtz/address.d.ts.map +0 -1
  186. package/dist/src/coin/xtz/address.js +0 -10
  187. package/dist/src/coin/xtz/iface.d.ts +0 -81
  188. package/dist/src/coin/xtz/iface.d.ts.map +0 -1
  189. package/dist/src/coin/xtz/iface.js +0 -3
  190. package/dist/src/coin/xtz/index.d.ts +0 -8
  191. package/dist/src/coin/xtz/index.d.ts.map +0 -1
  192. package/dist/src/coin/xtz/index.js +0 -37
  193. package/dist/src/coin/xtz/keyPair.d.ts +0 -40
  194. package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
  195. package/dist/src/coin/xtz/keyPair.js +0 -136
  196. package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
  197. package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
  198. package/dist/src/coin/xtz/multisigUtils.js +0 -1180
  199. package/dist/src/coin/xtz/transaction.d.ts +0 -119
  200. package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
  201. package/dist/src/coin/xtz/transaction.js +0 -315
  202. package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
  203. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
  204. package/dist/src/coin/xtz/transactionBuilder.js +0 -453
  205. package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
  206. package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
  207. package/dist/src/coin/xtz/transferBuilder.js +0 -64
  208. package/dist/src/coin/xtz/utils.d.ts +0 -265
  209. package/dist/src/coin/xtz/utils.d.ts.map +0 -1
  210. package/dist/src/coin/xtz/utils.js +0 -460
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransferBuilder = void 0;
4
- const casper_js_sdk_1 = require("casper-js-sdk");
5
- const sdk_core_1 = require("@bitgo/sdk-core");
6
- const transactionBuilder_1 = require("./transactionBuilder");
7
- const constants_1 = require("./constants");
8
- const utils_1 = require("./utils");
9
- class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
10
- constructor(_coinConfig) {
11
- super(_coinConfig);
12
- }
13
- /** @inheritdoc */
14
- async buildImplementation() {
15
- const extraArguments = new Map();
16
- if (this._toAddress) {
17
- extraArguments.set(constants_1.TRANSACTION_TYPE, casper_js_sdk_1.CLValueBuilder.string(sdk_core_1.TransactionType[sdk_core_1.TransactionType.Send]));
18
- extraArguments.set(constants_1.TRANSFER_TO_ADDRESS, casper_js_sdk_1.CLValueBuilder.string(this._toAddress));
19
- }
20
- this._session = {
21
- amount: this._amount,
22
- target: casper_js_sdk_1.CLPublicKey.fromHex(this._toAddress),
23
- id: this._transferId,
24
- extraArguments: extraArguments,
25
- };
26
- this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
27
- return await super.buildImplementation();
28
- }
29
- /** @inheritdoc */
30
- initBuilder(tx) {
31
- super.initBuilder(tx);
32
- this.transaction.setTransactionType(sdk_core_1.TransactionType.Send);
33
- this.to(utils_1.getTransferDestinationAddress(tx.casperTx.session));
34
- this.amount(utils_1.getTransferAmount(tx.casperTx.session));
35
- const transferId = utils_1.getTransferId(tx.casperTx.session);
36
- if (transferId !== undefined) {
37
- this.transferId(transferId);
38
- }
39
- }
40
- /** @inheritdoc */
41
- signImplementation(key) {
42
- if (this._multiSignerKeyPairs.length >= transactionBuilder_1.DEFAULT_M) {
43
- throw new sdk_core_1.SigningError('A maximum of ' + transactionBuilder_1.DEFAULT_M + ' can sign the transaction.');
44
- }
45
- return super.signImplementation(key);
46
- }
47
- // region Transfer fields
48
- /**
49
- * Set the destination address where the funds will be sent,
50
- *
51
- * @param {string} address the address to transfer funds to
52
- * @returns {TransferBuilder} the builder with the new parameter set
53
- */
54
- to(address) {
55
- if (!utils_1.isValidAddress(address)) {
56
- throw new sdk_core_1.InvalidParameterValueError('Invalid address');
57
- }
58
- this._toAddress = address;
59
- return this;
60
- }
61
- /**
62
- * Set the amount to be transferred
63
- *
64
- * @param {string} amount amount to transfer in motes (1 Cspr equals 1,000,000,000 motes)
65
- * @returns {TransferBuilder} the builder with the new parameter set
66
- */
67
- amount(amount) {
68
- if (!utils_1.isValidTransferAmount(amount)) {
69
- throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
70
- }
71
- this._amount = amount;
72
- return this;
73
- }
74
- /**
75
- * Set transfer id that acts as a transaction identifier (similar to memo id for Stellar)
76
- *
77
- * @param {number} id transfer id
78
- * @returns {TransferBuilder} the builder with the new parameter set
79
- */
80
- transferId(id) {
81
- if (!utils_1.isValidTransferId(id)) {
82
- throw new sdk_core_1.InvalidParameterValueError('Invalid transfer id');
83
- }
84
- this._transferId = id.toString();
85
- return this;
86
- }
87
- // endregion
88
- // region Validators
89
- validateMandatoryFields() {
90
- if (!this._toAddress) {
91
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing to');
92
- }
93
- if (!utils_1.isValidAddress(this._toAddress)) {
94
- throw new sdk_core_1.InvalidParameterValueError('Invalid to address');
95
- }
96
- if (!this._amount) {
97
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing amount');
98
- }
99
- if (!utils_1.isValidTransferAmount(this._amount)) {
100
- throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
101
- }
102
- super.validateMandatoryFields();
103
- }
104
- }
105
- exports.TransferBuilder = TransferBuilder;
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vY3Nwci90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWtGO0FBQ2xGLDhDQU15QjtBQUN6Qiw2REFBcUU7QUFFckUsMkNBQW9FO0FBQ3BFLG1DQU9pQjtBQUVqQixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBS3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixjQUFjLENBQUMsR0FBRyxDQUFDLDRCQUFnQixFQUFFLDhCQUFjLENBQUMsTUFBTSxDQUFDLDBCQUFlLENBQUMsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkcsY0FBYyxDQUFDLEdBQUcsQ0FBQywrQkFBbUIsRUFBRSw4QkFBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsTUFBTSxFQUFFLDJCQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDMUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFxQjtZQUM5QixjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQs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cm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBDTFZhbHVlLCBDTFB1YmxpY0tleSBhcyBQdWJsaWNLZXksIENMVmFsdWVCdWlsZGVyIH0gZnJvbSAnY2FzcGVyLWpzLXNkayc7XG5pbXBvcnQge1xuICBCYXNlS2V5LFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciwgREVGQVVMVF9NIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRSQU5TQUNUSU9OX1RZUEUsIFRSQU5TRkVSX1RPX0FERFJFU1MgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBpc1ZhbGlkVHJhbnNmZXJBbW91bnQsXG4gIGlzVmFsaWRUcmFuc2ZlcklkLFxuICBnZXRUcmFuc2ZlckRlc3RpbmF0aW9uQWRkcmVzcyxcbiAgZ2V0VHJhbnNmZXJBbW91bnQsXG4gIGdldFRyYW5zZmVySWQsXG4gIGlzVmFsaWRBZGRyZXNzLFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3RvQWRkcmVzczogc3RyaW5nO1xuICBwcml2YXRlIF9hbW91bnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfdHJhbnNmZXJJZDogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgZXh0cmFBcmd1bWVudHMgPSBuZXcgTWFwPHN0cmluZywgQ0xWYWx1ZT4oKTtcbiAgICBpZiAodGhpcy5fdG9BZGRyZXNzKSB7XG4gICAgICBleHRyYUFyZ3VtZW50cy5zZXQoVFJBTlNBQ1RJT05fVFlQRSwgQ0xWYWx1ZUJ1aWxkZXIuc3RyaW5nKFRyYW5zYWN0aW9uVHlwZVtUcmFuc2FjdGlvblR5cGUuU2VuZF0pKTtcbiAgICAgIGV4dHJhQXJndW1lbnRzLnNldChUUkFOU0ZFUl9UT19BRERSRVNTLCBDTFZhbHVlQnVpbGRlci5zdHJpbmcodGhpcy5fdG9BZGRyZXNzKSk7XG4gICAgfVxuICAgIHRoaXMuX3Nlc3Npb24gPSB7XG4gICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgIHRhcmdldDogUHVibGljS2V5LmZyb21IZXgodGhpcy5fdG9BZGRyZXNzKSxcbiAgICAgIGlkOiB0aGlzLl90cmFuc2ZlcklkIGFzIHN0cmluZyxcbiAgICAgIGV4dHJhQXJndW1lbnRzOiBleHRyYUFyZ3VtZW50cyxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgdGhpcy50byhnZXRUcmFuc2ZlckRlc3RpbmF0aW9uQWRkcmVzcyh0eC5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgdGhpcy5hbW91bnQoZ2V0VHJhbnNmZXJBbW91bnQodHguY2FzcGVyVHguc2Vzc2lvbikpO1xuICAgIGNvbnN0IHRyYW5zZmVySWQgPSBnZXRUcmFuc2ZlcklkKHR4LmNhc3BlclR4LnNlc3Npb24pO1xuICAgIGlmICh0cmFuc2ZlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudHJhbnNmZXJJZCh0cmFuc2ZlcklkKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMubGVuZ3RoID49IERFRkFVTFRfTSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignQSBtYXhpbXVtIG9mICcgKyBERUZBVUxUX00gKyAnIGNhbiBzaWduIHRoZSB0cmFuc2FjdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG5cbiAgLy8gcmVnaW9uIFRyYW5zZmVyIGZpZWxkc1xuICAvKipcbiAgICogU2V0IHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIHdoZXJlIHRoZSBmdW5kcyB3aWxsIGJlIHNlbnQsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIHRvIHRyYW5zZmVyIGZ1bmRzIHRvXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICB0byhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl90b0FkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgYW1vdW50IHRvIHRyYW5zZmVyIGluIG1vdGVzICgxIENzcHIgZXF1YWxzIDEsMDAwLDAwMCwwMDAgbW90ZXMpXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRUcmFuc2ZlckFtb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdHJhbnNmZXIgaWQgdGhhdCBhY3RzIGFzIGEgdHJhbnNhY3Rpb24gaWRlbnRpZmllciAoc2ltaWxhciB0byBtZW1vIGlkIGZvciBTdGVsbGFyKVxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgdHJhbnNmZXIgaWRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHRyYW5zZmVySWQoaWQ6IG51bWJlciB8IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZFRyYW5zZmVySWQoaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgdHJhbnNmZXIgaWQnKTtcbiAgICB9XG4gICAgdGhpcy5fdHJhbnNmZXJJZCA9IGlkLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RvQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB0bycpO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKHRoaXMuX3RvQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCB0byBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fYW1vdW50KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGFtb3VudCcpO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRUcmFuc2ZlckFtb3VudCh0aGlzLl9hbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHN1cGVyLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseKey } from '@bitgo/sdk-core';
3
- import { TransactionBuilder } from './transactionBuilder';
4
- import { Transaction } from './transaction';
5
- export declare class UndelegateBuilder extends TransactionBuilder {
6
- private _validator;
7
- private _action;
8
- private _amount;
9
- private _contract;
10
- /**
11
- * Public constructor.
12
- *
13
- * @param {CoinConfig} _coinConfig Coin configuration object
14
- */
15
- constructor(_coinConfig: Readonly<CoinConfig>);
16
- /** @inheritdoc */
17
- protected buildImplementation(): Promise<Transaction>;
18
- /** @inheritdoc */
19
- initBuilder(tx: Transaction): void;
20
- /** @inheritdoc */
21
- protected signImplementation(key: BaseKey): Transaction;
22
- /**
23
- * Build args needed to create a session, then we can send this session with the contract
24
- *
25
- * @returns {DelegateUndelegateContractArgs} contracts args to create a session
26
- */
27
- private buildUndelegateParameters;
28
- /**
29
- * Set the destination address where the funds will be sent,
30
- *
31
- * @param {string} address the 68 bits address to transfer funds to
32
- * @returns {UndelegateBuilder} the builder with the new parameter set
33
- */
34
- validator(address: string): this;
35
- /**
36
- * Set the amount to be transferred
37
- *
38
- * @param {string} amount amount to transfer
39
- * @returns {UndelegateBuilder} the builder with the new parameter set
40
- */
41
- amount(amount: string): this;
42
- /**
43
- * Validate mandatory fields in the class
44
- *
45
- * @throws {Error} In case of missing or invalid fields
46
- */
47
- validateMandatoryFields(): void;
48
- }
49
- //# sourceMappingURL=undelegateBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"undelegateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/cspr/undelegateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,OAAO,EAMR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAa,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB5C,qBAAa,iBAAkB,SAAQ,kBAAkB;IACvD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAa;IAE9B;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAmB3D,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAOlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAOvD;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAajC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY5B;;;;OAIG;IACH,uBAAuB,IAAI,IAAI;CAUhC"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UndelegateBuilder = void 0;
4
- const casper_js_sdk_1 = require("casper-js-sdk");
5
- const sdk_core_1 = require("@bitgo/sdk-core");
6
- const transactionBuilder_1 = require("./transactionBuilder");
7
- const constants_1 = require("./constants");
8
- const utils_1 = require("./utils");
9
- class UndelegateBuilder extends transactionBuilder_1.TransactionBuilder {
10
- /**
11
- * Public constructor.
12
- *
13
- * @param {CoinConfig} _coinConfig Coin configuration object
14
- */
15
- constructor(_coinConfig) {
16
- super(_coinConfig);
17
- this._action = constants_1.UNDELEGATE_CONTRACT_ACTION;
18
- this._contract = Uint8Array.from(Buffer.from(utils_1.casperContractHexCode, 'hex'));
19
- }
20
- /** @inheritdoc */
21
- async buildImplementation() {
22
- this._validator = this._validator || constants_1.DELEGATE_VALIDATOR_ACCOUNT;
23
- const args = this.buildUndelegateParameters();
24
- const extraArguments = new Map();
25
- extraArguments.set(constants_1.TRANSACTION_TYPE, casper_js_sdk_1.CLValueBuilder.string(sdk_core_1.TransactionType[sdk_core_1.TransactionType.StakingUnlock]));
26
- extraArguments.set(constants_1.STAKING_TYPE, casper_js_sdk_1.CLValueBuilder.string(sdk_core_1.StakingOperationTypes[sdk_core_1.StakingOperationTypes.UNLOCK]));
27
- extraArguments.set(constants_1.DELEGATE_FROM_ADDRESS, casper_js_sdk_1.CLValueBuilder.string(this._source.address));
28
- extraArguments.set(constants_1.DELEGATE_VALIDATOR, casper_js_sdk_1.CLValueBuilder.string(this._validator));
29
- this._session = {
30
- moduleBytes: this._contract,
31
- args: casper_js_sdk_1.RuntimeArgs.fromMap(args),
32
- extraArguments: extraArguments,
33
- };
34
- this.transaction.setTransactionType(sdk_core_1.TransactionType.StakingUnlock);
35
- return await super.buildImplementation();
36
- }
37
- /** @inheritdoc */
38
- initBuilder(tx) {
39
- super.initBuilder(tx);
40
- this.transaction.setTransactionType(sdk_core_1.TransactionType.StakingUnlock);
41
- this.validator(utils_1.getValidatorAddress(tx.casperTx.session));
42
- this.amount(utils_1.getTransferAmount(tx.casperTx.session));
43
- }
44
- /** @inheritdoc */
45
- signImplementation(key) {
46
- if (this._multiSignerKeyPairs.length >= transactionBuilder_1.DEFAULT_M) {
47
- throw new sdk_core_1.SigningError('A maximum of ' + transactionBuilder_1.DEFAULT_M + ' can sign the transaction.');
48
- }
49
- return super.signImplementation(key);
50
- }
51
- /**
52
- * Build args needed to create a session, then we can send this session with the contract
53
- *
54
- * @returns {DelegateUndelegateContractArgs} contracts args to create a session
55
- */
56
- buildUndelegateParameters() {
57
- const delegator = casper_js_sdk_1.CLPublicKey.fromHex(this._source.address);
58
- const validator = casper_js_sdk_1.CLPublicKey.fromHex(this._validator);
59
- return {
60
- action: casper_js_sdk_1.CLValueBuilder.string(this._action),
61
- delegator: casper_js_sdk_1.CLValueBuilder.publicKey(delegator.value(), delegator.tag),
62
- validator: casper_js_sdk_1.CLValueBuilder.publicKey(validator.value(), validator.tag),
63
- amount: casper_js_sdk_1.CLValueBuilder.u512(this._amount),
64
- };
65
- }
66
- // region Transfer fields
67
- /**
68
- * Set the destination address where the funds will be sent,
69
- *
70
- * @param {string} address the 68 bits address to transfer funds to
71
- * @returns {UndelegateBuilder} the builder with the new parameter set
72
- */
73
- validator(address) {
74
- if (!utils_1.isValidAddress(address)) {
75
- throw new sdk_core_1.InvalidParameterValueError('Invalid address');
76
- }
77
- this._validator = address;
78
- return this;
79
- }
80
- /**
81
- * Set the amount to be transferred
82
- *
83
- * @param {string} amount amount to transfer
84
- * @returns {UndelegateBuilder} the builder with the new parameter set
85
- */
86
- amount(amount) {
87
- if (!utils_1.isValidDelegateAmount(amount)) {
88
- throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
89
- }
90
- this._amount = amount;
91
- return this;
92
- }
93
- // endregion
94
- // region Validators
95
- /**
96
- * Validate mandatory fields in the class
97
- *
98
- * @throws {Error} In case of missing or invalid fields
99
- */
100
- validateMandatoryFields() {
101
- if (!this._amount) {
102
- throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing amount');
103
- }
104
- if (!utils_1.isValidDelegateAmount(this._amount)) {
105
- throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
106
- }
107
- super.validateMandatoryFields();
108
- }
109
- }
110
- exports.UndelegateBuilder = UndelegateBuilder;
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kZWxlZ2F0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jc3ByL3VuZGVsZWdhdGVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlEQUErRjtBQUMvRiw4Q0FPeUI7QUFDekIsNkRBQXFFO0FBRXJFLDJDQU9xQjtBQUNyQixtQ0FNaUI7QUFHakIsTUFBYSxpQkFBa0IsU0FBUSx1Q0FBa0I7SUFNdkQ7Ozs7T0FJRztJQUNILFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsc0NBQTBCLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksc0NBQTBCLENBQUM7UUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7UUFFbEQsY0FBYyxDQUFDLEdBQUcsQ0FBQyw0QkFBZ0IsRUFBRSw4QkFBYyxDQUFDLE1BQU0sQ0FBQywwQkFBZSxDQUFDLDBCQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVHLGNBQWMsQ0FBQyxHQUFHLENBQUMsd0JBQVksRUFBRSw4QkFBYyxDQUFDLE1BQU0sQ0FBQyxnQ0FBcUIsQ0FBQyxnQ0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csY0FBYyxDQUFDLEdBQUcsQ0FBQyxpQ0FBcUIsRUFBRSw4QkFBYyxDQUFDLE1BQU0sQ0FB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QUFvQjtJQUVwQjs7OztPQUlHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLDZCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUkscUNBQTBCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN4RDtRQUNELEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQXRIRCw4Q0FzSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ0xWYWx1ZSwgQ0xQdWJsaWNLZXkgYXMgUHVibGljS2V5LCBSdW50aW1lQXJncywgQ0xWYWx1ZUJ1aWxkZXIgfSBmcm9tICdjYXNwZXItanMtc2RrJztcbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBTdGFraW5nT3BlcmF0aW9uVHlwZXMsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBTaWduaW5nRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIsIERFRkFVTFRfTSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBUUkFOU0FDVElPTl9UWVBFLFxuICBERUxFR0FURV9WQUxJREFUT1IsXG4gIERFTEVHQVRFX0ZST01fQUREUkVTUyxcbiAgU1RBS0lOR19UWVBFLFxuICBVTkRFTEVHQVRFX0NPTlRSQUNUX0FDVElPTixcbiAgREVMRUdBVEVfVkFMSURBVE9SX0FDQ09VTlQsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGlzVmFsaWREZWxlZ2F0ZUFtb3VudCxcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGdldFRyYW5zZmVyQW1vdW50LFxuICBnZXRWYWxpZGF0b3JBZGRyZXNzLFxuICBjYXNwZXJDb250cmFjdEhleENvZGUsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVsZWdhdGVVbmRlbGVnYXRlQ29udHJhY3RBcmdzIH0gZnJvbSAnLi9pZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgVW5kZWxlZ2F0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF92YWxpZGF0b3I6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWN0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgX2Ftb3VudDogc3RyaW5nO1xuICBwcml2YXRlIF9jb250cmFjdDogVWludDhBcnJheTtcblxuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvaW5Db25maWd9IF9jb2luQ29uZmlnIENvaW4gY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICovXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl9hY3Rpb24gPSBVTkRFTEVHQVRFX0NPTlRSQUNUX0FDVElPTjtcbiAgICB0aGlzLl9jb250cmFjdCA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShjYXNwZXJDb250cmFjdEhleENvZGUsICdoZXgnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3ZhbGlkYXRvciA9IHRoaXMuX3ZhbGlkYXRvciB8fCBERUxFR0FURV9WQUxJREFUT1JfQUNDT1VOVDtcbiAgICBjb25zdCBhcmdzID0gdGhpcy5idWlsZFVuZGVsZWdhdGVQYXJhbWV0ZXJzKCk7XG4gICAgY29uc3QgZXh0cmFBcmd1bWVudHMgPSBuZXcgTWFwPHN0cmluZywgQ0xWYWx1ZT4oKTtcblxuICAgIGV4dHJhQXJndW1lbnRzLnNldChUUkFOU0FDVElPTl9UWVBFLCBDTFZhbHVlQnVpbGRlci5zdHJpbmcoVHJhbnNhY3Rpb25UeXBlW1RyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrXSkpO1xuICAgIGV4dHJhQXJndW1lbnRzLnNldChTVEFLSU5HX1RZUEUsIENMVmFsdWVCdWlsZGVyLnN0cmluZyhTdGFraW5nT3BlcmF0aW9uVHlwZXNbU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOTE9DS10pKTtcbiAgICBleHRyYUFyZ3VtZW50cy5zZXQoREVMRUdBVEVfRlJPTV9BRERSRVNTLCBDTFZhbHVlQnVpbGRlci5zdHJpbmcodGhpcy5fc291cmNlLmFkZHJlc3MpKTtcbiAgICBleHRyYUFyZ3VtZW50cy5zZXQoREVMRUdBVEVfVkFMSURBVE9SLCBDTFZhbHVlQnVpbGRlci5zdHJpbmcodGhpcy5fdmFsaWRhdG9yKSk7XG5cbiAgICB0aGlzLl9zZXNzaW9uID0ge1xuICAgICAgbW9kdWxlQnl0ZXM6IHRoaXMuX2NvbnRyYWN0LFxuICAgICAgYXJnczogUnVudGltZUFyZ3MuZnJvbU1hcChhcmdzKSxcbiAgICAgIGV4dHJhQXJndW1lbnRzOiBleHRyYUFyZ3VtZW50cyxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgdGhpcy52YWxpZGF0b3IoZ2V0VmFsaWRhdG9yQWRkcmVzcyh0eC5jYXNwZXJUeC5zZXNzaW9uKSk7XG4gICAgdGhpcy5hbW91bnQoZ2V0VHJhbnNmZXJBbW91bnQodHguY2FzcGVyVHguc2Vzc2lvbikpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9tdWx0aVNpZ25lcktleVBhaXJzLmxlbmd0aCA+PSBERUZBVUxUX00pIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0EgbWF4aW11bSBvZiAnICsgREVGQVVMVF9NICsgJyBjYW4gc2lnbiB0aGUgdHJhbnNhY3Rpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaWduSW1wbGVtZW50YXRpb24oa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIG5lZWRlZCB0byBjcmVhdGUgYSBzZXNzaW9uLCB0aGVuIHdlIGNhbiBzZW5kIHRoaXMgc2Vzc2lvbiB3aXRoIHRoZSBjb250cmFjdFxuICAgKlxuICAgKiBAcmV0dXJucyB7RGVsZWdhdGVVbmRlbGVnYXRlQ29udHJhY3RBcmdzfSBjb250cmFjdHMgYXJncyB0byBjcmVhdGUgYSBzZXNzaW9uXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkVW5kZWxlZ2F0ZVBhcmFtZXRlcnMoKTogRGVsZWdhdGVVbmRlbGVnYXRlQ29udHJhY3RBcmdzIHtcbiAgICBjb25zdCBkZWxlZ2F0b3IgPSBQdWJsaWNLZXkuZnJvbUhleCh0aGlzLl9zb3VyY2UuYWRkcmVzcyk7XG4gICAgY29uc3QgdmFsaWRhdG9yID0gUHVibGljS2V5LmZyb21IZXgodGhpcy5fdmFsaWRhdG9yKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IENMVmFsdWVCdWlsZGVyLnN0cmluZyh0aGlzLl9hY3Rpb24pLFxuICAgICAgZGVsZWdhdG9yOiBDTFZhbHVlQnVpbGRlci5wdWJsaWNLZXkoZGVsZWdhdG9yLnZhbHVlKCksIGRlbGVnYXRvci50YWcpLFxuICAgICAgdmFsaWRhdG9yOiBDTFZhbHVlQnVpbGRlci5wdWJsaWNLZXkodmFsaWRhdG9yLnZhbHVlKCksIHZhbGlkYXRvci50YWcpLFxuICAgICAgYW1vdW50OiBDTFZhbHVlQnVpbGRlci51NTEyKHRoaXMuX2Ftb3VudCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBUcmFuc2ZlciBmaWVsZHNcbiAgLyoqXG4gICAqIFNldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyB3aGVyZSB0aGUgZnVuZHMgd2lsbCBiZSBzZW50LFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgNjggYml0cyBhZGRyZXNzIHRvIHRyYW5zZmVyIGZ1bmRzIHRvXG4gICAqIEByZXR1cm5zIHtVbmRlbGVnYXRlQnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHZhbGlkYXRvcihhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl92YWxpZGF0b3IgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgYW1vdW50IHRvIHRyYW5zZmVyXG4gICAqIEByZXR1cm5zIHtVbmRlbGVnYXRlQnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZERlbGVnYXRlQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcblxuICAvKipcbiAgICogVmFsaWRhdGUgbWFuZGF0b3J5IGZpZWxkcyBpbiB0aGUgY2xhc3NcbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IEluIGNhc2Ugb2YgbWlzc2luZyBvciBpbnZhbGlkIGZpZWxkc1xuICAgKi9cbiAgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgYW1vdW50Jyk7XG4gICAgfVxuICAgIGlmICghaXNWYWxpZERlbGVnYXRlQW1vdW50KHRoaXMuX2Ftb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==