@bitgo-beta/sdk-coin-apt 1.0.1-beta.90 → 1.0.1-beta.901

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 (145) hide show
  1. package/dist/src/apt.d.ts +9 -2
  2. package/dist/src/apt.d.ts.map +1 -1
  3. package/dist/src/apt.js +37 -11
  4. package/dist/src/aptNFTCollection.d.ts +18 -0
  5. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  6. package/dist/src/aptNFTCollection.js +52 -0
  7. package/dist/src/aptToken.d.ts +19 -0
  8. package/dist/src/aptToken.d.ts.map +1 -0
  9. package/dist/src/aptToken.js +52 -0
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -1
  13. package/dist/src/lib/constants.d.ts +16 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -1
  15. package/dist/src/lib/constants.js +18 -2
  16. package/dist/src/lib/iface.d.ts +99 -2
  17. package/dist/src/lib/iface.d.ts.map +1 -1
  18. package/dist/src/lib/iface.js +1 -1
  19. package/dist/src/lib/index.d.ts +18 -4
  20. package/dist/src/lib/index.d.ts.map +1 -1
  21. package/dist/src/lib/index.js +35 -7
  22. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
  23. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
  25. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
  26. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
  28. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
  29. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
  32. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/customTransaction.js +278 -0
  34. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
  35. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
  37. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
  38. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
  40. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
  41. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
  43. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  44. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  45. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  46. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  47. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  49. package/dist/src/lib/transaction/transaction.d.ts +45 -7
  50. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  51. package/dist/src/lib/transaction/transaction.js +175 -61
  52. package/dist/src/lib/transaction/transferTransaction.d.ts +10 -8
  53. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
  54. package/dist/src/lib/transaction/transferTransaction.js +48 -40
  55. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  56. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  58. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
  59. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
  61. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
  62. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
  64. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
  65. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
  67. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  68. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  70. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  71. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  73. package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +25 -11
  74. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  76. package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -7
  77. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +26 -10
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +82 -18
  82. package/dist/src/lib/utils/validation.d.ts +32 -0
  83. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  84. package/dist/src/lib/utils/validation.js +99 -0
  85. package/dist/src/lib/utils.d.ts +29 -5
  86. package/dist/src/lib/utils.d.ts.map +1 -1
  87. package/dist/src/lib/utils.js +111 -28
  88. package/dist/src/register.d.ts.map +1 -1
  89. package/dist/src/register.js +9 -1
  90. package/dist/test/integration/index.d.ts +1 -0
  91. package/dist/test/integration/index.d.ts.map +1 -0
  92. package/dist/test/integration/index.js +1 -0
  93. package/dist/test/resources/apt.d.ts +56 -0
  94. package/dist/test/resources/apt.d.ts.map +1 -0
  95. package/dist/test/resources/apt.js +115 -0
  96. package/dist/test/unit/apt.d.ts +2 -0
  97. package/dist/test/unit/apt.d.ts.map +1 -0
  98. package/dist/test/unit/apt.js +375 -0
  99. package/dist/test/unit/aptToken.d.ts +2 -0
  100. package/dist/test/unit/aptToken.d.ts.map +1 -0
  101. package/dist/test/unit/aptToken.js +92 -0
  102. package/dist/test/unit/customTransaction.test.d.ts +2 -0
  103. package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
  104. package/dist/test/unit/customTransaction.test.js +264 -0
  105. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  106. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  107. package/dist/test/unit/getBuilderFactory.js +10 -0
  108. package/dist/test/unit/keyPair.d.ts +2 -0
  109. package/dist/test/unit/keyPair.d.ts.map +1 -0
  110. package/dist/test/unit/keyPair.js +71 -0
  111. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  112. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  113. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
  114. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
  115. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  116. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
  117. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
  118. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  119. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
  120. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
  121. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  122. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
  123. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
  124. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  125. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
  126. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
  127. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  128. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
  129. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  130. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  131. package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
  132. package/dist/test/unit/utils.d.ts +2 -0
  133. package/dist/test/unit/utils.d.ts.map +1 -0
  134. package/dist/test/unit/utils.js +108 -0
  135. package/dist/tsconfig.tsbuildinfo +1 -0
  136. package/package.json +14 -11
  137. package/.eslintignore +0 -4
  138. package/.gitignore +0 -3
  139. package/.mocharc.yml +0 -8
  140. package/.prettierignore +0 -2
  141. package/CHANGELOG.md +0 -72
  142. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  143. package/dist/src/lib/transactionBuilder.js +0 -118
  144. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  145. package/dist/src/lib/transferBuilder.js +0 -25
@@ -5,34 +5,106 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TransactionBuilderFactory = void 0;
7
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const transferBuilder_1 = require("./transferBuilder");
8
+ const transferBuilder_1 = require("./transactionBuilder/transferBuilder");
9
9
  const utils_1 = __importDefault(require("./utils"));
10
10
  const transaction_1 = require("./transaction/transaction");
11
11
  const transferTransaction_1 = require("./transaction/transferTransaction");
12
+ const fungibleAssetTransfer_1 = require("./transaction/fungibleAssetTransfer");
13
+ const fungibleAssetTransferBuilder_1 = require("./transactionBuilder/fungibleAssetTransferBuilder");
14
+ const digitalAssetTransfer_1 = require("./transaction/digitalAssetTransfer");
15
+ const digitalAssetTransferBuilder_1 = require("./transactionBuilder/digitalAssetTransferBuilder");
16
+ const customTransaction_1 = require("./transaction/customTransaction");
17
+ const customTransactionBuilder_1 = require("./transactionBuilder/customTransactionBuilder");
18
+ const delegationPoolAddStakeTransaction_1 = require("./transaction/delegationPoolAddStakeTransaction");
19
+ const delegationPoolAddStakeTransactionBuilder_1 = require("./transactionBuilder/delegationPoolAddStakeTransactionBuilder");
20
+ const delegationPoolUnlockTransaction_1 = require("./transaction/delegationPoolUnlockTransaction");
21
+ const delegationPoolWithdrawTransactionBuilder_1 = require("./transactionBuilder/delegationPoolWithdrawTransactionBuilder");
22
+ const delegationPoolUnlockTransactionBuilder_1 = require("./transactionBuilder/delegationPoolUnlockTransactionBuilder");
23
+ const delegationPoolWithdrawTransaction_1 = require("./transaction/delegationPoolWithdrawTransaction");
12
24
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
13
25
  constructor(_coinConfig) {
14
26
  super(_coinConfig);
15
27
  }
16
28
  /** @inheritdoc */
17
- from(signedRawTxn) {
18
- utils_1.default.validateRawTransaction(signedRawTxn);
29
+ from(signedRawTxn, abi) {
19
30
  try {
20
- const signedTxn = this.parseTransaction(signedRawTxn);
21
- // Assumption: only a single transaction type exists
22
- // TODO: add txn type switch case
23
- const transferTx = new transferTransaction_1.TransferTransaction(this._coinConfig);
24
- transferTx.fromDeserializedSignedTransaction(signedTxn);
25
- return this.getTransferBuilder(transferTx);
31
+ const signedTxn = transaction_1.Transaction.deserializeSignedTransaction(signedRawTxn);
32
+ const txnType = this.getTransactionTypeFromSignedTxn(signedTxn);
33
+ switch (txnType) {
34
+ case sdk_core_1.TransactionType.Send:
35
+ const transferTx = new transferTransaction_1.TransferTransaction(this._coinConfig);
36
+ transferTx.fromDeserializedSignedTransaction(signedTxn);
37
+ return this.getTransferBuilder(transferTx);
38
+ case sdk_core_1.TransactionType.SendToken:
39
+ const fungibleTransferTokenTx = new fungibleAssetTransfer_1.FungibleAssetTransfer(this._coinConfig);
40
+ fungibleTransferTokenTx.fromDeserializedSignedTransaction(signedTxn);
41
+ return this.getFungibleAssetTransactionBuilder(fungibleTransferTokenTx);
42
+ case sdk_core_1.TransactionType.SendNFT:
43
+ const digitalAssetTransferTx = new digitalAssetTransfer_1.DigitalAssetTransfer(this._coinConfig);
44
+ digitalAssetTransferTx.fromDeserializedSignedTransaction(signedTxn);
45
+ return this.getDigitalAssetTransactionBuilder(digitalAssetTransferTx);
46
+ case sdk_core_1.TransactionType.StakingDelegate:
47
+ const delegateTx = new delegationPoolAddStakeTransaction_1.DelegationPoolAddStakeTransaction(this._coinConfig);
48
+ delegateTx.fromDeserializedSignedTransaction(signedTxn);
49
+ return this.getDelegationPoolAddStakeTransactionBuilder(delegateTx);
50
+ case sdk_core_1.TransactionType.StakingUnlock:
51
+ const unlockTx = new delegationPoolUnlockTransaction_1.DelegationPoolUnlockTransaction(this._coinConfig);
52
+ unlockTx.fromDeserializedSignedTransaction(signedTxn);
53
+ return this.getDelegationPoolUnlockTransactionBuilder(unlockTx);
54
+ case sdk_core_1.TransactionType.StakingWithdraw:
55
+ const withdrawTx = new delegationPoolWithdrawTransaction_1.DelegationPoolWithdrawTransaction(this._coinConfig);
56
+ withdrawTx.fromDeserializedSignedTransaction(signedTxn);
57
+ return this.getDelegationPoolWithdrawTransactionBuilder(withdrawTx);
58
+ case sdk_core_1.TransactionType.CustomTx:
59
+ const customTx = new customTransaction_1.CustomTransaction(this._coinConfig);
60
+ if (abi) {
61
+ customTx.setEntryFunctionAbi(abi);
62
+ }
63
+ customTx.fromDeserializedSignedTransaction(signedTxn);
64
+ return this.getCustomTransactionBuilder(customTx);
65
+ default:
66
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
67
+ }
26
68
  }
27
69
  catch (e) {
28
70
  throw e;
29
71
  }
30
72
  }
73
+ getTransactionTypeFromSignedTxn(signedTxn) {
74
+ const rawTxn = signedTxn.raw_txn;
75
+ return utils_1.default.getTransactionTypeFromTransactionPayload(rawTxn.payload);
76
+ }
31
77
  /** @inheritdoc */
32
78
  getTransferBuilder(tx) {
33
79
  return this.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
34
80
  }
35
81
  /** @inheritdoc */
82
+ getFungibleAssetTransactionBuilder(tx) {
83
+ return this.initializeBuilder(tx, new fungibleAssetTransferBuilder_1.FungibleAssetTransferBuilder(this._coinConfig));
84
+ }
85
+ /** @inheritdoc */
86
+ getDigitalAssetTransactionBuilder(tx) {
87
+ return this.initializeBuilder(tx, new digitalAssetTransferBuilder_1.DigitalAssetTransferBuilder(this._coinConfig));
88
+ }
89
+ getDelegationPoolAddStakeTransactionBuilder(tx) {
90
+ return this.initializeBuilder(tx, new delegationPoolAddStakeTransactionBuilder_1.DelegationPoolAddStakeTransactionBuilder(this._coinConfig));
91
+ }
92
+ getDelegationPoolUnlockTransactionBuilder(tx) {
93
+ return this.initializeBuilder(tx, new delegationPoolUnlockTransactionBuilder_1.DelegationPoolUnlockTransactionBuilder(this._coinConfig));
94
+ }
95
+ getDelegationPoolWithdrawTransactionBuilder(tx) {
96
+ return this.initializeBuilder(tx, new delegationPoolWithdrawTransactionBuilder_1.DelegationPoolWithdrawTransactionBuilder(this._coinConfig));
97
+ }
98
+ /**
99
+ * Get a custom transaction builder
100
+ *
101
+ * @param tx - Optional transaction to initialize the builder with
102
+ * @returns A custom transaction builder
103
+ */
104
+ getCustomTransactionBuilder(tx) {
105
+ return this.initializeBuilder(tx, new customTransactionBuilder_1.CustomTransactionBuilder(this._coinConfig));
106
+ }
107
+ /** @inheritdoc */
36
108
  getWalletInitializationBuilder() {
37
109
  throw new Error('Method not implemented.');
38
110
  }
@@ -49,14 +121,6 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
49
121
  }
50
122
  return builder;
51
123
  }
52
- /** Parse the transaction from a signed txn hex string
53
- *
54
- * @param {string} signedRawTransaction - the signed txn hex
55
- * @returns {SignedTransaction} parsedtransaction
56
- */
57
- parseTransaction(signedRawTransaction) {
58
- return transaction_1.Transaction.deserializeSignedTransaction(signedRawTransaction);
59
- }
60
124
  }
61
125
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBcUU7QUFFckUsdURBQW9EO0FBQ3BELG9EQUE0QjtBQUM1QiwyREFBd0Q7QUFFeEQsMkVBQXdFO0FBR3hFLE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLFlBQW9CO1FBQ3ZCLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsb0RBQW9EO1lBQ3BELGlDQUFpQztZQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RCxVQUFVLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxpQkFBaUIsQ0FBK0IsRUFBMkIsRUFBRSxPQUFVO1FBQzdGLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLG9CQUE0QjtRQUNuRCxPQUFPLHlCQUFXLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUFwREQsOERBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZnJvbShzaWduZWRSYXdUeG46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihzaWduZWRSYXdUeG4pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduZWRUeG4gPSB0aGlzLnBhcnNlVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHhuKTtcbiAgICAgIC8vIEFzc3VtcHRpb246IG9ubHkgYSBzaW5nbGUgdHJhbnNhY3Rpb24gdHlwZSBleGlzdHNcbiAgICAgIC8vIFRPRE86IGFkZCB0eG4gdHlwZSBzd2l0Y2ggY2FzZVxuICAgICAgY29uc3QgdHJhbnNmZXJUeCA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdHJhbnNmZXJUeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYnVpbGRlciB3aXRoIHRoZSBnaXZlbiB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uIHwgdW5kZWZpbmVkfSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IGJ1aWxkZXIgLSB0aGUgYnVpbGRlciB0byBiZSBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSB0aGUgYnVpbGRlciBpbml0aWFsaXplZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKiBQYXJzZSB0aGUgdHJhbnNhY3Rpb24gZnJvbSBhIHNpZ25lZCB0eG4gaGV4IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmVkUmF3VHJhbnNhY3Rpb24gLSB0aGUgc2lnbmVkIHR4biBoZXhcbiAgICogQHJldHVybnMge1NpZ25lZFRyYW5zYWN0aW9ufSBwYXJzZWR0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zYWN0aW9uKHNpZ25lZFJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBTaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHJhbnNhY3Rpb24pO1xuICB9XG59XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBK0c7QUFFL0csMEVBQXVFO0FBQ3ZFLG9EQUE0QjtBQUM1QiwyREFBd0Q7QUFFeEQsMkVBQXdFO0FBRXhFLCtFQUE0RTtBQUM1RSxvR0FBaUc7QUFDakcsNkVBQTBFO0FBQzFFLGtHQUErRjtBQUMvRix1RUFBb0U7QUFDcEUsNEZBQXlGO0FBQ3pGLHVHQUFvRztBQUNwRyw0SEFBeUg7QUFDekgsbUdBQWdHO0FBQ2hHLDRIQUF5SDtBQUN6SCx3SEFBcUg7QUFDckgsdUdBQW9HO0FBRXBHLE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLFlBQW9CLEVBQUUsR0FBUztRQUNsQyxJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyx5QkFBVyxDQUFDLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVoRSxRQUFRLE9BQU8sRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzdELFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLEtBQUssMEJBQWUsQ0FBQyxTQUFTO29CQUM1QixNQUFNLHVCQUF1QixH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Q0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCwyQ0FBMkMsQ0FBQyxFQUFnQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxtRkFBd0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQseUNBQXlDLENBQUMsRUFBZ0I7UUFDeEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksK0VBQXNDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELDJDQUEyQyxDQUFDLEVBQWdCO1FBQzFELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1GQUF3QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDJCQUEyQixDQUFDLEVBQWdCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLG1EQUF3QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBL0dELDhEQStHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBGdW5naWJsZUFzc2V0VHJhbnNmZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uL2Z1bmdpYmxlQXNzZXRUcmFuc2Zlcic7XG5pbXBvcnQgeyBGdW5naWJsZUFzc2V0VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvZnVuZ2libGVBc3NldFRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBEaWdpdGFsQXNzZXRUcmFuc2ZlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZGlnaXRhbEFzc2V0VHJhbnNmZXInO1xuaW1wb3J0IHsgRGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvZGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9jdXN0b21UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9jdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9kZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL2RlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXIvZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL2RlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHNpZ25lZFJhd1R4bjogc3RyaW5nLCBhYmk/OiBhbnkpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduZWRUeG4gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFJhd1R4bik7XG4gICAgICBjb25zdCB0eG5UeXBlID0gdGhpcy5nZXRUcmFuc2FjdGlvblR5cGVGcm9tU2lnbmVkVHhuKHNpZ25lZFR4bik7XG5cbiAgICAgIHN3aXRjaCAodHhuVHlwZSkge1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICAgIGNvbnN0IHRyYW5zZmVyVHggPSBuZXcgVHJhbnNmZXJUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICB0cmFuc2ZlclR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeG4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuOlxuICAgICAgICAgIGNvbnN0IGZ1bmdpYmxlVHJhbnNmZXJUb2tlblR4ID0gbmV3IEZ1bmdpYmxlQXNzZXRUcmFuc2Zlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBmdW5naWJsZVRyYW5zZmVyVG9rZW5UeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGdW5naWJsZUFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKGZ1bmdpYmxlVHJhbnNmZXJUb2tlblR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZE5GVDpcbiAgICAgICAgICBjb25zdCBkaWdpdGFsQXNzZXRUcmFuc2ZlclR4ID0gbmV3IERpZ2l0YWxBc3NldFRyYW5zZmVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGRpZ2l0YWxBc3NldFRyYW5zZmVyVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGlnaXRhbEFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKGRpZ2l0YWxBc3NldFRyYW5zZmVyVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVsZWdhdGU6XG4gICAgICAgICAgY29uc3QgZGVsZWdhdGVUeCA9IG5ldyBEZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgZGVsZWdhdGVUeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb25CdWlsZGVyKGRlbGVnYXRlVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgICAgIGNvbnN0IHVubG9ja1R4ID0gbmV3IERlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgdW5sb2NrVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbkJ1aWxkZXIodW5sb2NrVHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc6XG4gICAgICAgICAgY29uc3Qgd2l0aGRyYXdUeCA9IG5ldyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICAgICAgd2l0aGRyYXdUeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb25CdWlsZGVyKHdpdGhkcmF3VHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDpcbiAgICAgICAgICBjb25zdCBjdXN0b21UeCA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBpZiAoYWJpKSB7XG4gICAgICAgICAgICBjdXN0b21UeC5zZXRFbnRyeUZ1bmN0aW9uQWJpKGFiaSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGN1c3RvbVR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeG4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldEN1c3RvbVRyYW5zYWN0aW9uQnVpbGRlcihjdXN0b21UeCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvblR5cGVGcm9tU2lnbmVkVHhuKHNpZ25lZFR4bjogU2lnbmVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIGNvbnN0IHJhd1R4biA9IHNpZ25lZFR4bi5yYXdfdHhuO1xuICAgIHJldHVybiB1dGlscy5nZXRUcmFuc2FjdGlvblR5cGVGcm9tVHJhbnNhY3Rpb25QYXlsb2FkKHJhd1R4bi5wYXlsb2FkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEZ1bmdpYmxlQXNzZXRUcmFuc2FjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEZ1bmdpYmxlQXNzZXRUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRnVuZ2libGVBc3NldFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0RGlnaXRhbEFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBEaWdpdGFsQXNzZXRUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXREZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgZ2V0RGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogRGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBjdXN0b20gdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKlxuICAgKiBAcGFyYW0gdHggLSBPcHRpb25hbCB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGhcbiAgICogQHJldHVybnMgQSBjdXN0b20gdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZ2V0Q3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBDdXN0b21UcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ3VzdG9tVHJhbnNhY3Rpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUJ1aWxkZXI8VCBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcj4odHg6IFRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Validation utilities for Aptos transactions
3
+ */
4
+ /**
5
+ * Validate module name format (throwing version)
6
+ *
7
+ * @param {string} moduleName - Module name to validate
8
+ * @throws {Error} If module name format is invalid
9
+ */
10
+ export declare function validateModuleName(moduleName: string): void;
11
+ /**
12
+ * Validate function name format (throwing version)
13
+ *
14
+ * @param {string} functionName - Function name to validate
15
+ * @throws {Error} If function name format is invalid
16
+ */
17
+ export declare function validateFunctionName(functionName: string): void;
18
+ /**
19
+ * Check if a module name matches the expected pattern (non-throwing version)
20
+ *
21
+ * @param {string} moduleName - Module name to check
22
+ * @returns {boolean} True if valid, false otherwise
23
+ */
24
+ export declare function isValidModuleName(moduleName: string): boolean;
25
+ /**
26
+ * Check if a function name matches the expected pattern (non-throwing version)
27
+ *
28
+ * @param {string} functionName - Function name to check
29
+ * @returns {boolean} True if valid, false otherwise
30
+ */
31
+ export declare function isValidFunctionName(functionName: string): boolean;
32
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4DH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEjE"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * Validation utilities for Aptos transactions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateModuleName = validateModuleName;
7
+ exports.validateFunctionName = validateFunctionName;
8
+ exports.isValidModuleName = isValidModuleName;
9
+ exports.isValidFunctionName = isValidFunctionName;
10
+ /**
11
+ * Core validation logic for module names
12
+ *
13
+ * @param {string} moduleName - Module name to validate
14
+ * @returns {ValidationResult} Validation result with isValid flag and optional error message
15
+ */
16
+ function validateModuleNameCore(moduleName) {
17
+ if (!moduleName || typeof moduleName !== 'string') {
18
+ return {
19
+ isValid: false,
20
+ errorMessage: 'Module name is required and must be a non-empty string',
21
+ };
22
+ }
23
+ // Aptos module name format: address::module_name
24
+ // Supports both SHORT (0x1) and LONG (0x0000...0001) address formats
25
+ const moduleNamePattern = /^0x[a-fA-F0-9]{1,64}::[a-zA-Z_][a-zA-Z0-9_]*$/;
26
+ if (!moduleNamePattern.test(moduleName)) {
27
+ return {
28
+ isValid: false,
29
+ errorMessage: `Invalid module name format: "${moduleName}". Expected format: "0xaddress::module_name" (hex addresses only)`,
30
+ };
31
+ }
32
+ return { isValid: true };
33
+ }
34
+ /**
35
+ * Core validation logic for function names
36
+ *
37
+ * @param {string} functionName - Function name to validate
38
+ * @returns {ValidationResult} Validation result with isValid flag and optional error message
39
+ */
40
+ function validateFunctionNameCore(functionName) {
41
+ if (!functionName || typeof functionName !== 'string') {
42
+ return {
43
+ isValid: false,
44
+ errorMessage: 'Function name is required and must be a non-empty string',
45
+ };
46
+ }
47
+ // Aptos function name pattern: valid identifier (letters, numbers, underscores, starting with letter/underscore)
48
+ const functionNamePattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
49
+ if (!functionNamePattern.test(functionName)) {
50
+ return {
51
+ isValid: false,
52
+ errorMessage: `Invalid function name format: "${functionName}". Function names must be valid identifiers (letters, numbers, underscores, starting with letter or underscore)`,
53
+ };
54
+ }
55
+ return { isValid: true };
56
+ }
57
+ /**
58
+ * Validate module name format (throwing version)
59
+ *
60
+ * @param {string} moduleName - Module name to validate
61
+ * @throws {Error} If module name format is invalid
62
+ */
63
+ function validateModuleName(moduleName) {
64
+ const result = validateModuleNameCore(moduleName);
65
+ if (!result.isValid) {
66
+ throw new Error(result.errorMessage);
67
+ }
68
+ }
69
+ /**
70
+ * Validate function name format (throwing version)
71
+ *
72
+ * @param {string} functionName - Function name to validate
73
+ * @throws {Error} If function name format is invalid
74
+ */
75
+ function validateFunctionName(functionName) {
76
+ const result = validateFunctionNameCore(functionName);
77
+ if (!result.isValid) {
78
+ throw new Error(result.errorMessage);
79
+ }
80
+ }
81
+ /**
82
+ * Check if a module name matches the expected pattern (non-throwing version)
83
+ *
84
+ * @param {string} moduleName - Module name to check
85
+ * @returns {boolean} True if valid, false otherwise
86
+ */
87
+ function isValidModuleName(moduleName) {
88
+ return validateModuleNameCore(moduleName).isValid;
89
+ }
90
+ /**
91
+ * Check if a function name matches the expected pattern (non-throwing version)
92
+ *
93
+ * @param {string} functionName - Function name to check
94
+ * @returns {boolean} True if valid, false otherwise
95
+ */
96
+ function isValidFunctionName(functionName) {
97
+ return validateFunctionNameCore(functionName).isValid;
98
+ }
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBa0VILGdEQUtDO0FBUUQsb0RBS0M7QUFRRCw4Q0FFQztBQVFELGtEQUVDO0FBakdEOzs7OztHQUtHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxVQUFrQjtJQUNoRCxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xELE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSx3REFBd0Q7U0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCxpREFBaUQ7SUFDakQscUVBQXFFO0lBQ3JFLE1BQU0saUJBQWlCLEdBQUcsK0NBQStDLENBQUM7SUFDMUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxnQ0FBZ0MsVUFBVSxtRUFBbUU7U0FDNUgsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsd0JBQXdCLENBQUMsWUFBb0I7SUFDcEQsSUFBSSxDQUFDLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxZQUFZLEVBQUUsMERBQTBEO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUM7SUFDdkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxrQ0FBa0MsWUFBWSxpSEFBaUg7U0FDOUssQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLFVBQWtCO0lBQ25ELE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFlBQW9CO0lBQ3ZELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFVBQWtCO0lBQ2xELE9BQU8sc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLFlBQW9CO0lBQ3RELE9BQU8sd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbGlkYXRpb24gdXRpbGl0aWVzIGZvciBBcHRvcyB0cmFuc2FjdGlvbnNcbiAqL1xuXG5pbnRlcmZhY2UgVmFsaWRhdGlvblJlc3VsdCB7XG4gIGlzVmFsaWQ6IGJvb2xlYW47XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb3JlIHZhbGlkYXRpb24gbG9naWMgZm9yIG1vZHVsZSBuYW1lc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVOYW1lIC0gTW9kdWxlIG5hbWUgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtWYWxpZGF0aW9uUmVzdWx0fSBWYWxpZGF0aW9uIHJlc3VsdCB3aXRoIGlzVmFsaWQgZmxhZyBhbmQgb3B0aW9uYWwgZXJyb3IgbWVzc2FnZVxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZU1vZHVsZU5hbWVDb3JlKG1vZHVsZU5hbWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIW1vZHVsZU5hbWUgfHwgdHlwZW9mIG1vZHVsZU5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnTW9kdWxlIG5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gQXB0b3MgbW9kdWxlIG5hbWUgZm9ybWF0OiBhZGRyZXNzOjptb2R1bGVfbmFtZVxuICAvLyBTdXBwb3J0cyBib3RoIFNIT1JUICgweDEpIGFuZCBMT05HICgweDAwMDAuLi4wMDAxKSBhZGRyZXNzIGZvcm1hdHNcbiAgY29uc3QgbW9kdWxlTmFtZVBhdHRlcm4gPSAvXjB4W2EtZkEtRjAtOV17MSw2NH06OlthLXpBLVpfXVthLXpBLVowLTlfXSokLztcbiAgaWYgKCFtb2R1bGVOYW1lUGF0dGVybi50ZXN0KG1vZHVsZU5hbWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiBgSW52YWxpZCBtb2R1bGUgbmFtZSBmb3JtYXQ6IFwiJHttb2R1bGVOYW1lfVwiLiBFeHBlY3RlZCBmb3JtYXQ6IFwiMHhhZGRyZXNzOjptb2R1bGVfbmFtZVwiIChoZXggYWRkcmVzc2VzIG9ubHkpYCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIENvcmUgdmFsaWRhdGlvbiBsb2dpYyBmb3IgZnVuY3Rpb24gbmFtZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gRnVuY3Rpb24gbmFtZSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge1ZhbGlkYXRpb25SZXN1bHR9IFZhbGlkYXRpb24gcmVzdWx0IHdpdGggaXNWYWxpZCBmbGFnIGFuZCBvcHRpb25hbCBlcnJvciBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25OYW1lQ29yZShmdW5jdGlvbk5hbWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIWZ1bmN0aW9uTmFtZSB8fCB0eXBlb2YgZnVuY3Rpb25OYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yTWVzc2FnZTogJ0Z1bmN0aW9uIG5hbWUgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gQXB0b3MgZnVuY3Rpb24gbmFtZSBwYXR0ZXJuOiB2YWxpZCBpZGVudGlmaWVyIChsZXR0ZXJzLCBudW1iZXJzLCB1bmRlcnNjb3Jlcywgc3RhcnRpbmcgd2l0aCBsZXR0ZXIvdW5kZXJzY29yZSlcbiAgY29uc3QgZnVuY3Rpb25OYW1lUGF0dGVybiA9IC9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvO1xuICBpZiAoIWZ1bmN0aW9uTmFtZVBhdHRlcm4udGVzdChmdW5jdGlvbk5hbWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlOiBgSW52YWxpZCBmdW5jdGlvbiBuYW1lIGZvcm1hdDogXCIke2Z1bmN0aW9uTmFtZX1cIi4gRnVuY3Rpb24gbmFtZXMgbXVzdCBiZSB2YWxpZCBpZGVudGlmaWVycyAobGV0dGVycywgbnVtYmVycywgdW5kZXJzY29yZXMsIHN0YXJ0aW5nIHdpdGggbGV0dGVyIG9yIHVuZGVyc2NvcmUpYCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIG1vZHVsZSBuYW1lIGZvcm1hdCAodGhyb3dpbmcgdmVyc2lvbilcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlTmFtZSAtIE1vZHVsZSBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgbW9kdWxlIG5hbWUgZm9ybWF0IGlzIGludmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTW9kdWxlTmFtZShtb2R1bGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVNb2R1bGVOYW1lQ29yZShtb2R1bGVOYW1lKTtcbiAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIGZ1bmN0aW9uIG5hbWUgZm9ybWF0ICh0aHJvd2luZyB2ZXJzaW9uKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBGdW5jdGlvbiBuYW1lIHRvIHZhbGlkYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgZnVuY3Rpb24gbmFtZSBmb3JtYXQgaXMgaW52YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbk5hbWUoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVGdW5jdGlvbk5hbWVDb3JlKGZ1bmN0aW9uTmFtZSk7XG4gIGlmICghcmVzdWx0LmlzVmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0LmVycm9yTWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1vZHVsZSBuYW1lIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHBhdHRlcm4gKG5vbi10aHJvd2luZyB2ZXJzaW9uKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVOYW1lIC0gTW9kdWxlIG5hbWUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNb2R1bGVOYW1lKG1vZHVsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdGVNb2R1bGVOYW1lQ29yZShtb2R1bGVOYW1lKS5pc1ZhbGlkO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZnVuY3Rpb24gbmFtZSBtYXRjaGVzIHRoZSBleHBlY3RlZCBwYXR0ZXJuIChub24tdGhyb3dpbmcgdmVyc2lvbilcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gRnVuY3Rpb24gbmFtZSB0byBjaGVja1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEZ1bmN0aW9uTmFtZShmdW5jdGlvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsaWRhdGVGdW5jdGlvbk5hbWVDb3JlKGZ1bmN0aW9uTmFtZSkuaXNWYWxpZDtcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
- import { SignedTransaction, TransactionPayload } from '@aptos-labs/ts-sdk';
2
- import { BaseUtils, TransactionRecipient } from '@bitgo-beta/sdk-core';
1
+ import { AccountAddress, EntryFunctionArgument, FeePayerRawTransaction, SignedTransaction, TransactionPayload } from '@aptos-labs/ts-sdk';
2
+ import { BaseUtils, TransactionRecipient, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { RecipientsValidationResult } from './iface';
3
4
  export declare class Utils implements BaseUtils {
4
5
  /** @inheritdoc */
5
6
  isValidAddress(address: string): boolean;
@@ -15,12 +16,35 @@ export declare class Utils implements BaseUtils {
15
16
  isValidTransactionId(txId: string): boolean;
16
17
  isValidHex(value: string, length: number): boolean;
17
18
  getAddressFromPublicKey(publicKey: string): string;
18
- getRecipientFromTransactionPayload(payload: TransactionPayload): TransactionRecipient;
19
- isValidRawTransaction(rawTransaction: string): boolean;
20
- validateRawTransaction(rawTransaction: string): void;
19
+ getTransactionTypeFromTransactionPayload(payload: TransactionPayload): TransactionType;
20
+ fetchAndValidateRecipients(addressArg: EntryFunctionArgument, amountArg: EntryFunctionArgument): RecipientsValidationResult;
21
+ parseRecipients(addressArg: EntryFunctionArgument, amountArg: EntryFunctionArgument): TransactionRecipient[];
21
22
  deserializeSignedTransaction(rawTransaction: string): SignedTransaction;
23
+ deserializeFeePayerRawTransaction(rawTransaction: string): FeePayerRawTransaction;
24
+ deserializeAccountAddressVector(serializedBytes: Uint8Array): string[];
25
+ deserializeU64Vector(serializedBytes: Uint8Array): Uint8Array[];
22
26
  getBufferFromHexString(hexString: string): Buffer;
23
27
  castToNumber(value: bigint): number;
28
+ /**
29
+ * Strip hex prefix
30
+ * @param str
31
+ * @returns hex string without 0x prefix
32
+ */
33
+ stripHexPrefix(str: string): string;
34
+ getAmountFromPayloadArgs(amountArg: Uint8Array): string;
35
+ /**
36
+ * Returns the Aptos transaction expiration timestamp in seconds.
37
+ * It is set to 1 week from now.
38
+ */
39
+ getTxnExpirationTimestamp(): number;
40
+ /**
41
+ * Convert bytes array to hex string with 0x prefix
42
+ */
43
+ bytesToHex(bytes: number[]): string;
44
+ /**
45
+ * Try to convert hex string to AccountAddress, return original string if conversion fails
46
+ */
47
+ tryParseAccountAddress(hexStr: string): AccountAddress | string;
24
48
  }
25
49
  declare const utils: Utils;
26
50
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EAIT,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAI9B,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOlD,kCAAkC,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB;IAYrF,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAiBtD,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB;IAMvE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAGpC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAId,qBAAqB,EACrB,sBAAsB,EAEtB,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EAIT,oBAAoB,EACpB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAmB9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOlD,wCAAwC,CAAC,OAAO,EAAE,kBAAkB,GAAG,eAAe;IA8BtF,0BAA0B,CACxB,UAAU,EAAE,qBAAqB,EACjC,SAAS,EAAE,qBAAqB,GAC/B,0BAA0B;IA0B7B,eAAe,CAAC,UAAU,EAAE,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,GAAG,oBAAoB,EAAE;IAW5G,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB;IAMvE,iCAAiC,CAAC,cAAc,EAAE,MAAM,GAAG,sBAAsB;IAMjF,+BAA+B,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,EAAE;IAMtE,oBAAoB,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,EAAE;IAM/D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAInC,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;IAQvD;;;OAGG;IACH,yBAAyB,IAAI,MAAM;IAInC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAInC;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM;CAOhE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -43,53 +43,136 @@ class Utils {
43
43
  const accountAddress = authKey.derivedAddress();
44
44
  return accountAddress.toString();
45
45
  }
46
- getRecipientFromTransactionPayload(payload) {
47
- let address = 'INVALID';
48
- let amount = '0';
49
- if (payload instanceof ts_sdk_1.TransactionPayloadEntryFunction) {
50
- const entryFunction = payload.entryFunction;
51
- address = entryFunction.args[0].toString();
52
- const amountBuffer = Buffer.from(entryFunction.args[1].bcsToBytes());
53
- amount = amountBuffer.readBigUint64LE().toString();
46
+ getTransactionTypeFromTransactionPayload(payload) {
47
+ if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction)) {
48
+ throw new Error('Invalid Payload: Expected TransactionPayloadEntryFunction');
49
+ }
50
+ const entryFunction = payload.entryFunction;
51
+ const moduleAddress = entryFunction.module_name.address.toString();
52
+ const moduleIdentifier = entryFunction.module_name.name.identifier;
53
+ const functionIdentifier = entryFunction.function_name.identifier;
54
+ const uniqueIdentifier = `${moduleAddress}::${moduleIdentifier}::${functionIdentifier}`;
55
+ switch (uniqueIdentifier) {
56
+ case constants_1.COIN_TRANSFER_FUNCTION:
57
+ case constants_1.COIN_BATCH_TRANSFER_FUNCTION:
58
+ return sdk_core_1.TransactionType.Send;
59
+ case constants_1.FUNGIBLE_ASSET_TRANSFER_FUNCTION:
60
+ case constants_1.FUNGIBLE_ASSET_BATCH_TRANSFER_FUNCTION:
61
+ return sdk_core_1.TransactionType.SendToken;
62
+ case constants_1.DIGITAL_ASSET_TRANSFER_FUNCTION:
63
+ return sdk_core_1.TransactionType.SendNFT;
64
+ case constants_1.DELEGATION_POOL_ADD_STAKE_FUNCTION:
65
+ return sdk_core_1.TransactionType.StakingDelegate;
66
+ case constants_1.DELEGATION_POOL_UNLOCK_FUNCTION:
67
+ return sdk_core_1.TransactionType.StakingUnlock;
68
+ case constants_1.DELEGATION_POOL_WITHDRAW_FUNCTION:
69
+ return sdk_core_1.TransactionType.StakingWithdraw;
70
+ default:
71
+ // For any other function calls, treat as a custom transaction
72
+ return sdk_core_1.TransactionType.CustomTx;
54
73
  }
55
- return { address, amount };
56
74
  }
57
- isValidRawTransaction(rawTransaction) {
58
- try {
59
- const signedTxn = this.deserializeSignedTransaction(rawTransaction);
60
- const rawTxn = signedTxn.raw_txn;
61
- const senderAddress = rawTxn.sender.toString();
62
- const recipient = utils.getRecipientFromTransactionPayload(rawTxn.payload);
63
- const recipientAddress = recipient.address;
64
- const recipientAmount = new bignumber_js_1.default(recipient.amount);
65
- return (this.isValidAddress(senderAddress) && this.isValidAddress(recipientAddress) && !recipientAmount.isLessThan(0));
75
+ fetchAndValidateRecipients(addressArg, amountArg) {
76
+ const addressBytes = addressArg.bcsToBytes();
77
+ const amountBytes = amountArg.bcsToBytes();
78
+ let deserializedAddresses;
79
+ let deserializedAmounts;
80
+ if (addressBytes.length > constants_1.ADDRESS_BYTES_LENGTH || amountBytes.length > constants_1.AMOUNT_BYTES_LENGTH) {
81
+ deserializedAddresses = utils.deserializeAccountAddressVector(addressBytes);
82
+ deserializedAmounts = utils.deserializeU64Vector(amountBytes);
83
+ if (deserializedAddresses.length !== deserializedAmounts.length) {
84
+ console.error('invalid payload entry function arguments : addresses and amounts length mismatch');
85
+ return { recipients: { deserializedAddresses: [], deserializedAmounts: [] }, isValid: false };
86
+ }
66
87
  }
67
- catch (e) {
68
- console.error('invalid raw transaction', e);
69
- return false;
88
+ else {
89
+ deserializedAddresses = [addressArg.toString()];
90
+ deserializedAmounts = [amountBytes];
70
91
  }
92
+ const allAddressesValid = deserializedAddresses.every((address) => utils.isValidAddress(address.toString()));
93
+ const allAmountsValid = deserializedAmounts.every((amount) => new bignumber_js_1.default(utils.getAmountFromPayloadArgs(amount)).isGreaterThan(0));
94
+ return {
95
+ recipients: { deserializedAddresses, deserializedAmounts },
96
+ isValid: allAddressesValid && allAmountsValid,
97
+ };
71
98
  }
72
- validateRawTransaction(rawTransaction) {
73
- if (!rawTransaction) {
74
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
75
- }
76
- if (!this.isValidRawTransaction(rawTransaction)) {
77
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
99
+ parseRecipients(addressArg, amountArg) {
100
+ const { recipients, isValid } = utils.fetchAndValidateRecipients(addressArg, amountArg);
101
+ if (!isValid) {
102
+ throw new sdk_core_1.InvalidTransactionError('Invalid transaction recipients');
78
103
  }
104
+ return recipients.deserializedAddresses.map((address, index) => ({
105
+ address,
106
+ amount: utils.getAmountFromPayloadArgs(recipients.deserializedAmounts[index]),
107
+ }));
79
108
  }
80
109
  deserializeSignedTransaction(rawTransaction) {
81
110
  const txnBytes = ts_sdk_1.Hex.fromHexString(rawTransaction).toUint8Array();
82
111
  const deserializer = new ts_sdk_1.Deserializer(txnBytes);
83
112
  return deserializer.deserialize(ts_sdk_1.SignedTransaction);
84
113
  }
114
+ deserializeFeePayerRawTransaction(rawTransaction) {
115
+ const txnBytes = ts_sdk_1.Hex.fromHexString(rawTransaction).toUint8Array();
116
+ const deserializer = new ts_sdk_1.Deserializer(txnBytes);
117
+ return ts_sdk_1.FeePayerRawTransaction.load(deserializer);
118
+ }
119
+ deserializeAccountAddressVector(serializedBytes) {
120
+ const deserializer = new ts_sdk_1.Deserializer(serializedBytes);
121
+ const deserializedAddresses = deserializer.deserializeVector(ts_sdk_1.AccountAddress);
122
+ return deserializedAddresses.map((address) => address.toString());
123
+ }
124
+ deserializeU64Vector(serializedBytes) {
125
+ const deserializer = new ts_sdk_1.Deserializer(serializedBytes);
126
+ const deserializedAmounts = deserializer.deserializeVector(ts_sdk_1.U64);
127
+ return deserializedAmounts.map((amount) => amount.bcsToBytes());
128
+ }
85
129
  getBufferFromHexString(hexString) {
86
130
  return Buffer.from(ts_sdk_1.Hex.fromHexString(hexString).toUint8Array());
87
131
  }
88
132
  castToNumber(value) {
89
133
  return new bignumber_js_1.default(value.toString()).toNumber();
90
134
  }
135
+ /**
136
+ * Strip hex prefix
137
+ * @param str
138
+ * @returns hex string without 0x prefix
139
+ */
140
+ stripHexPrefix(str) {
141
+ return str.replace(/^0x/i, '');
142
+ }
143
+ getAmountFromPayloadArgs(amountArg) {
144
+ const amountBuffer = Buffer.from(amountArg);
145
+ const low = BigInt(amountBuffer.readUint32LE());
146
+ const high = BigInt(amountBuffer.readUint32LE(4));
147
+ const amount = (high << BigInt(32)) + low;
148
+ return amount.toString();
149
+ }
150
+ /**
151
+ * Returns the Aptos transaction expiration timestamp in seconds.
152
+ * It is set to 1 week from now.
153
+ */
154
+ getTxnExpirationTimestamp() {
155
+ return Math.floor(Date.now() / 1e3) + constants_1.SECONDS_PER_WEEK;
156
+ }
157
+ /**
158
+ * Convert bytes array to hex string with 0x prefix
159
+ */
160
+ bytesToHex(bytes) {
161
+ return '0x' + bytes.map((b) => b.toString(16).padStart(2, '0')).join('');
162
+ }
163
+ /**
164
+ * Try to convert hex string to AccountAddress, return original string if conversion fails
165
+ */
166
+ tryParseAccountAddress(hexStr) {
167
+ try {
168
+ return ts_sdk_1.AccountAddress.fromString(hexStr);
169
+ }
170
+ catch {
171
+ return hexStr;
172
+ }
173
+ }
91
174
  }
92
175
  exports.Utils = Utils;
93
176
  const utils = new Utils();
94
177
  exports.default = utils;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQVE0QjtBQUM1QixtREFNOEI7QUFDOUIsMkNBQXVIO0FBQ3ZILGdFQUFxQztBQUVyQyxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsOEJBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsK0JBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGdDQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUscUNBQXlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLHVCQUF1QixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxL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LENBQUM7SUFDckQsQ0FBQztJQUVELHNCQUFzQixDQUFDLFNBQWlCO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTlGRCxzQkE4RkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhlbnRpY2F0aW9uS2V5LFxuICBEZXNlcmlhbGl6ZXIsXG4gIEVkMjU1MTlQdWJsaWNLZXksXG4gIEhleCxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uUGF5bG9hZCxcbiAgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbixcbn0gZnJvbSAnQGFwdG9zLWxhYnMvdHMtc2RrJztcbmltcG9ydCB7XG4gIEJhc2VVdGlscyxcbiAgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXksXG4gIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5LFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBUFRfQUREUkVTU19MRU5HVEgsIEFQVF9CTE9DS19JRF9MRU5HVEgsIEFQVF9TSUdOQVRVUkVfTEVOR1RILCBBUFRfVFJBTlNBQ1RJT05fSURfTEVOR1RIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChhZGRyZXNzLCBBUFRfQUREUkVTU19MRU5HVEgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgoaGFzaCwgQVBUX0JMT0NLX0lEX0xFTkdUSCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgoc2lnbmF0dXJlLCBBUFRfU0lHTkFUVVJFX0xFTkdUSCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleCh0eElkLCBBUFRfVFJBTlNBQ1RJT05fSURfTEVOR1RIKTtcbiAgfVxuXG4gIGlzVmFsaWRIZXgodmFsdWU6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4oMHh8MFgpW2EtZkEtRjAtOV17JHtsZW5ndGh9fSRgKTtcbiAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XG4gIH1cblxuICBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYXB0b3NQdWJsaWNLZXkgPSBuZXcgRWQyNTUxOVB1YmxpY0tleShCdWZmZXIuZnJvbShwdWJsaWNLZXksICdoZXgnKSk7XG4gICAgY29uc3QgYXV0aEtleSA9IEF1dGhlbnRpY2F0aW9uS2V5LmZyb21QdWJsaWNLZXkoeyBwdWJsaWNLZXk6IGFwdG9zUHVibGljS2V5IH0pO1xuICAgIGNvbnN0IGFjY291bnRBZGRyZXNzID0gYXV0aEtleS5kZXJpdmVkQWRkcmVzcygpO1xuICAgIHJldHVybiBhY2NvdW50QWRkcmVzcy50b1N0cmluZygpO1xuICB9XG5cbiAgZ2V0UmVjaXBpZW50RnJvbVRyYW5zYWN0aW9uUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpOiBUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gICAgbGV0IGFkZHJlc3MgPSAnSU5WQUxJRCc7XG4gICAgbGV0IGFtb3VudCA9ICcwJztcbiAgICBpZiAocGF5bG9hZCBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24pIHtcbiAgICAgIGNvbnN0IGVudHJ5RnVuY3Rpb24gPSBwYXlsb2FkLmVudHJ5RnVuY3Rpb247XG4gICAgICBhZGRyZXNzID0gZW50cnlGdW5jdGlvbi5hcmdzWzBdLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBhbW91bnRCdWZmZXIgPSBCdWZmZXIuZnJvbShlbnRyeUZ1bmN0aW9uLmFyZ3NbMV0uYmNzVG9CeXRlcygpKTtcbiAgICAgIGFtb3VudCA9IGFtb3VudEJ1ZmZlci5yZWFkQmlnVWludDY0TEUoKS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4geyBhZGRyZXNzLCBhbW91bnQgfTtcbiAgfVxuXG4gIGlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNpZ25lZFR4biA9IHRoaXMuZGVzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICBjb25zdCByYXdUeG4gPSBzaWduZWRUeG4ucmF3X3R4bjtcbiAgICAgIGNvbnN0IHNlbmRlckFkZHJlc3MgPSByYXdUeG4uc2VuZGVyLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCByZWNpcGllbnQgPSB1dGlscy5nZXRSZWNpcGllbnRGcm9tVHJhbnNhY3Rpb25QYXlsb2FkKHJhd1R4bi5wYXlsb2FkKTtcbiAgICAgIGNvbnN0IHJlY2lwaWVudEFkZHJlc3MgPSByZWNpcGllbnQuYWRkcmVzcztcbiAgICAgIGNvbnN0IHJlY2lwaWVudEFtb3VudCA9IG5ldyBCaWdOdW1iZXIocmVjaXBpZW50LmFtb3VudCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmlzVmFsaWRBZGRyZXNzKHNlbmRlckFkZHJlc3MpICYmIHRoaXMuaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50QWRkcmVzcykgJiYgIXJlY2lwaWVudEFtb3VudC5pc0xlc3NUaGFuKDApXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJywgZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBkZXNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBTaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHhuQnl0ZXMgPSBIZXguZnJvbUhleFN0cmluZyhyYXdUcmFuc2FjdGlvbikudG9VaW50OEFycmF5KCk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IERlc2VyaWFsaXplcih0eG5CeXRlcyk7XG4gICAgcmV0dXJuIGRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZShTaWduZWRUcmFuc2FjdGlvbik7XG4gIH1cblxuICBnZXRCdWZmZXJGcm9tSGV4U3RyaW5nKGhleFN0cmluZzogc3RyaW5nKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSGV4LmZyb21IZXhTdHJpbmcoaGV4U3RyaW5nKS50b1VpbnQ4QXJyYXkoKSk7XG4gIH1cblxuICBjYXN0VG9OdW1iZXIodmFsdWU6IGJpZ2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBCaWdOdW1iZXIodmFsdWUudG9TdHJpbmcoKSkudG9OdW1iZXIoKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQVk0QjtBQUM1QixtREFPOEI7QUFDOUIsMkNBZ0JxQjtBQUNyQixnRUFBcUM7QUFHckMsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLDhCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLCtCQUFtQixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBQSxrQ0FBdUIsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxnQ0FBb0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLHFDQUF5QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyx1QkFBdUIsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMs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QUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUM7WUFDSCxPQUFPLHVCQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBM0xELHNCQTJMQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWNjb3VudEFkZHJlc3MsXG4gIEF1dGhlbnRpY2F0aW9uS2V5LFxuICBEZXNlcmlhbGl6ZXIsXG4gIEVkMjU1MTlQdWJsaWNLZXksXG4gIEVudHJ5RnVuY3Rpb25Bcmd1bWVudCxcbiAgRmVlUGF5ZXJSYXdUcmFuc2FjdGlvbixcbiAgSGV4LFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25QYXlsb2FkLFxuICBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uLFxuICBVNjQsXG59IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQge1xuICBCYXNlVXRpbHMsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSxcbiAgaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXksXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7XG4gIEFERFJFU1NfQllURVNfTEVOR1RILFxuICBBTU9VTlRfQllURVNfTEVOR1RILFxuICBBUFRfQUREUkVTU19MRU5HVEgsXG4gIEFQVF9CTE9DS19JRF9MRU5HVEgsXG4gIEFQVF9TSUdOQVRVUkVfTEVOR1RILFxuICBBUFRfVFJBTlNBQ1RJT05fSURfTEVOR1RILFxuICBDT0lOX0JBVENIX1RSQU5TRkVSX0ZVTkNUSU9OLFxuICBDT0lOX1RSQU5TRkVSX0ZVTkNUSU9OLFxuICBERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX0ZVTkNUSU9OLFxuICBERUxFR0FUSU9OX1BPT0xfVU5MT0NLX0ZVTkNUSU9OLFxuICBERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfRlVOQ1RJT04sXG4gIERJR0lUQUxfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT04sXG4gIEZVTkdJQkxFX0FTU0VUX0JBVENIX1RSQU5TRkVSX0ZVTkNUSU9OLFxuICBGVU5HSUJMRV9BU1NFVF9UUkFOU0ZFUl9GVU5DVElPTixcbiAgU0VDT05EU19QRVJfV0VFSyxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgUmVjaXBpZW50c1ZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgoYWRkcmVzcywgQVBUX0FERFJFU1NfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KGhhc2gsIEFQVF9CTE9DS19JRF9MRU5HVEgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KHNpZ25hdHVyZSwgQVBUX1NJR05BVFVSRV9MRU5HVEgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgodHhJZCwgQVBUX1RSQU5TQUNUSU9OX0lEX0xFTkdUSCk7XG4gIH1cblxuICBpc1ZhbGlkSGV4KHZhbHVlOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeKDB4fDBYKVthLWZBLUYwLTldeyR7bGVuZ3RofX0kYCk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xuICB9XG5cbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwdG9zUHVibGljS2V5ID0gbmV3IEVkMjU1MTlQdWJsaWNLZXkoQnVmZmVyLmZyb20ocHVibGljS2V5LCAnaGV4JykpO1xuICAgIGNvbnN0IGF1dGhLZXkgPSBBdXRoZW50aWNhdGlvbktleS5mcm9tUHVibGljS2V5KHsgcHVibGljS2V5OiBhcHRvc1B1YmxpY0tleSB9KTtcbiAgICBjb25zdCBhY2NvdW50QWRkcmVzcyA9IGF1dGhLZXkuZGVyaXZlZEFkZHJlc3MoKTtcbiAgICByZXR1cm4gYWNjb3VudEFkZHJlc3MudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uVHlwZUZyb21UcmFuc2FjdGlvblBheWxvYWQocGF5bG9hZDogVHJhbnNhY3Rpb25QYXlsb2FkKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICBpZiAoIShwYXlsb2FkIGluc3RhbmNlb2YgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQYXlsb2FkOiBFeHBlY3RlZCBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGVudHJ5RnVuY3Rpb24gPSBwYXlsb2FkLmVudHJ5RnVuY3Rpb247XG4gICAgY29uc3QgbW9kdWxlQWRkcmVzcyA9IGVudHJ5RnVuY3Rpb24ubW9kdWxlX25hbWUuYWRkcmVzcy50b1N0cmluZygpO1xuICAgIGNvbnN0IG1vZHVsZUlkZW50aWZpZXIgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLm5hbWUuaWRlbnRpZmllcjtcbiAgICBjb25zdCBmdW5jdGlvbklkZW50aWZpZXIgPSBlbnRyeUZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUuaWRlbnRpZmllcjtcbiAgICBjb25zdCB1bmlxdWVJZGVudGlmaWVyID0gYCR7bW9kdWxlQWRkcmVzc306OiR7bW9kdWxlSWRlbnRpZmllcn06OiR7ZnVuY3Rpb25JZGVudGlmaWVyfWA7XG4gICAgc3dpdGNoICh1bmlxdWVJZGVudGlmaWVyKSB7XG4gICAgICBjYXNlIENPSU5fVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICBjYXNlIENPSU5fQkFUQ0hfVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIGNhc2UgRlVOR0lCTEVfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICBjYXNlIEZVTkdJQkxFX0FTU0VUX0JBVENIX1RSQU5TRkVSX0ZVTkNUSU9OOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbjtcbiAgICAgIGNhc2UgRElHSVRBTF9BU1NFVF9UUkFOU0ZFUl9GVU5DVElPTjpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kTkZUO1xuICAgICAgY2FzZSBERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX0ZVTkNUSU9OOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWxlZ2F0ZTtcbiAgICAgIGNhc2UgREVMRUdBVElPTl9QT09MX1VOTE9DS19GVU5DVElPTjpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrO1xuICAgICAgY2FzZSBERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfRlVOQ1RJT046XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRm9yIGFueSBvdGhlciBmdW5jdGlvbiBjYWxscywgdHJlYXQgYXMgYSBjdXN0b20gdHJhbnNhY3Rpb25cbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDtcbiAgICB9XG4gIH1cblxuICBmZXRjaEFuZFZhbGlkYXRlUmVjaXBpZW50cyhcbiAgICBhZGRyZXNzQXJnOiBFbnRyeUZ1bmN0aW9uQXJndW1lbnQsXG4gICAgYW1vdW50QXJnOiBFbnRyeUZ1bmN0aW9uQXJndW1lbnRcbiAgKTogUmVjaXBpZW50c1ZhbGlkYXRpb25SZXN1bHQge1xuICAgIGNvbnN0IGFkZHJlc3NCeXRlcyA9IGFkZHJlc3NBcmcuYmNzVG9CeXRlcygpO1xuICAgIGNvbnN0IGFtb3VudEJ5dGVzID0gYW1vdW50QXJnLmJjc1RvQnl0ZXMoKTtcbiAgICBsZXQgZGVzZXJpYWxpemVkQWRkcmVzc2VzOiBzdHJpbmdbXTtcbiAgICBsZXQgZGVzZXJpYWxpemVkQW1vdW50czogVWludDhBcnJheTxBcnJheUJ1ZmZlcj5bXTtcbiAgICBpZiAoYWRkcmVzc0J5dGVzLmxlbmd0aCA+IEFERFJFU1NfQllURVNfTEVOR1RIIHx8IGFtb3VudEJ5dGVzLmxlbmd0aCA+IEFNT1VOVF9CWVRFU19MRU5HVEgpIHtcbiAgICAgIGRlc2VyaWFsaXplZEFkZHJlc3NlcyA9IHV0aWxzLmRlc2VyaWFsaXplQWNjb3VudEFkZHJlc3NWZWN0b3IoYWRkcmVzc0J5dGVzKTtcbiAgICAgIGRlc2VyaWFsaXplZEFtb3VudHMgPSB1dGlscy5kZXNlcmlhbGl6ZVU2NFZlY3RvcihhbW91bnRCeXRlcyk7XG4gICAgICBpZiAoZGVzZXJpYWxpemVkQWRkcmVzc2VzLmxlbmd0aCAhPT0gZGVzZXJpYWxpemVkQW1vdW50cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCBwYXlsb2FkIGVudHJ5IGZ1bmN0aW9uIGFyZ3VtZW50cyA6IGFkZHJlc3NlcyBhbmQgYW1vdW50cyBsZW5ndGggbWlzbWF0Y2gnKTtcbiAgICAgICAgcmV0dXJuIHsgcmVjaXBpZW50czogeyBkZXNlcmlhbGl6ZWRBZGRyZXNzZXM6IFtdLCBkZXNlcmlhbGl6ZWRBbW91bnRzOiBbXSB9LCBpc1ZhbGlkOiBmYWxzZSB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMgPSBbYWRkcmVzc0FyZy50b1N0cmluZygpXTtcbiAgICAgIGRlc2VyaWFsaXplZEFtb3VudHMgPSBbYW1vdW50Qnl0ZXNdO1xuICAgIH1cbiAgICBjb25zdCBhbGxBZGRyZXNzZXNWYWxpZCA9IGRlc2VyaWFsaXplZEFkZHJlc3Nlcy5ldmVyeSgoYWRkcmVzcykgPT4gdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy50b1N0cmluZygpKSk7XG4gICAgY29uc3QgYWxsQW1vdW50c1ZhbGlkID0gZGVzZXJpYWxpemVkQW1vdW50cy5ldmVyeSgoYW1vdW50KSA9PlxuICAgICAgbmV3IEJpZ051bWJlcih1dGlscy5nZXRBbW91bnRGcm9tUGF5bG9hZEFyZ3MoYW1vdW50KSkuaXNHcmVhdGVyVGhhbigwKVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlY2lwaWVudHM6IHsgZGVzZXJpYWxpemVkQWRkcmVzc2VzLCBkZXNlcmlhbGl6ZWRBbW91bnRzIH0sXG4gICAgICBpc1ZhbGlkOiBhbGxBZGRyZXNzZXNWYWxpZCAmJiBhbGxBbW91bnRzVmFsaWQsXG4gICAgfTtcbiAgfVxuXG4gIHBhcnNlUmVjaXBpZW50cyhhZGRyZXNzQXJnOiBFbnRyeUZ1bmN0aW9uQXJndW1lbnQsIGFtb3VudEFyZzogRW50cnlGdW5jdGlvbkFyZ3VtZW50KTogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSB7XG4gICAgY29uc3QgeyByZWNpcGllbnRzLCBpc1ZhbGlkIH0gPSB1dGlscy5mZXRjaEFuZFZhbGlkYXRlUmVjaXBpZW50cyhhZGRyZXNzQXJnLCBhbW91bnRBcmcpO1xuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHJlY2lwaWVudHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlY2lwaWVudHMuZGVzZXJpYWxpemVkQWRkcmVzc2VzLm1hcCgoYWRkcmVzcywgaW5kZXgpID0+ICh7XG4gICAgICBhZGRyZXNzLFxuICAgICAgYW1vdW50OiB1dGlscy5nZXRBbW91bnRGcm9tUGF5bG9hZEFyZ3MocmVjaXBpZW50cy5kZXNlcmlhbGl6ZWRBbW91bnRzW2luZGV4XSksXG4gICAgfSkpIGFzIFRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIH1cblxuICBkZXNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBTaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHhuQnl0ZXMgPSBIZXguZnJvbUhleFN0cmluZyhyYXdUcmFuc2FjdGlvbikudG9VaW50OEFycmF5KCk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IERlc2VyaWFsaXplcih0eG5CeXRlcyk7XG4gICAgcmV0dXJuIGRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZShTaWduZWRUcmFuc2FjdGlvbik7XG4gIH1cblxuICBkZXNlcmlhbGl6ZUZlZVBheWVyUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IEZlZVBheWVyUmF3VHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4bkJ5dGVzID0gSGV4LmZyb21IZXhTdHJpbmcocmF3VHJhbnNhY3Rpb24pLnRvVWludDhBcnJheSgpO1xuICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBEZXNlcmlhbGl6ZXIodHhuQnl0ZXMpO1xuICAgIHJldHVybiBGZWVQYXllclJhd1RyYW5zYWN0aW9uLmxvYWQoZGVzZXJpYWxpemVyKTtcbiAgfVxuXG4gIGRlc2VyaWFsaXplQWNjb3VudEFkZHJlc3NWZWN0b3Ioc2VyaWFsaXplZEJ5dGVzOiBVaW50OEFycmF5KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGRlc2VyaWFsaXplciA9IG5ldyBEZXNlcmlhbGl6ZXIoc2VyaWFsaXplZEJ5dGVzKTtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMgPSBkZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemVWZWN0b3IoQWNjb3VudEFkZHJlc3MpO1xuICAgIHJldHVybiBkZXNlcmlhbGl6ZWRBZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PiBhZGRyZXNzLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgZGVzZXJpYWxpemVVNjRWZWN0b3Ioc2VyaWFsaXplZEJ5dGVzOiBVaW50OEFycmF5KTogVWludDhBcnJheVtdIHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZXIgPSBuZXcgRGVzZXJpYWxpemVyKHNlcmlhbGl6ZWRCeXRlcyk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkQW1vdW50cyA9IGRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZVZlY3RvcihVNjQpO1xuICAgIHJldHVybiBkZXNlcmlhbGl6ZWRBbW91bnRzLm1hcCgoYW1vdW50KSA9PiBhbW91bnQuYmNzVG9CeXRlcygpKTtcbiAgfVxuXG4gIGdldEJ1ZmZlckZyb21IZXhTdHJpbmcoaGV4U3RyaW5nOiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShIZXguZnJvbUhleFN0cmluZyhoZXhTdHJpbmcpLnRvVWludDhBcnJheSgpKTtcbiAgfVxuXG4gIGNhc3RUb051bWJlcih2YWx1ZTogYmlnaW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcih2YWx1ZS50b1N0cmluZygpKS50b051bWJlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmlwIGhleCBwcmVmaXhcbiAgICogQHBhcmFtIHN0clxuICAgKiBAcmV0dXJucyBoZXggc3RyaW5nIHdpdGhvdXQgMHggcHJlZml4XG4gICAqL1xuICBzdHJpcEhleFByZWZpeChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eMHgvaSwgJycpO1xuICB9XG5cbiAgZ2V0QW1vdW50RnJvbVBheWxvYWRBcmdzKGFtb3VudEFyZzogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgY29uc3QgYW1vdW50QnVmZmVyID0gQnVmZmVyLmZyb20oYW1vdW50QXJnKTtcbiAgICBjb25zdCBsb3cgPSBCaWdJbnQoYW1vdW50QnVmZmVyLnJlYWRVaW50MzJMRSgpKTtcbiAgICBjb25zdCBoaWdoID0gQmlnSW50KGFtb3VudEJ1ZmZlci5yZWFkVWludDMyTEUoNCkpO1xuICAgIGNvbnN0IGFtb3VudCA9IChoaWdoIDw8IEJpZ0ludCgzMikpICsgbG93O1xuICAgIHJldHVybiBhbW91bnQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBBcHRvcyB0cmFuc2FjdGlvbiBleHBpcmF0aW9uIHRpbWVzdGFtcCBpbiBzZWNvbmRzLlxuICAgKiBJdCBpcyBzZXQgdG8gMSB3ZWVrIGZyb20gbm93LlxuICAgKi9cbiAgZ2V0VHhuRXhwaXJhdGlvblRpbWVzdGFtcCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxZTMpICsgU0VDT05EU19QRVJfV0VFSztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJ5dGVzIGFycmF5IHRvIGhleCBzdHJpbmcgd2l0aCAweCBwcmVmaXhcbiAgICovXG4gIGJ5dGVzVG9IZXgoYnl0ZXM6IG51bWJlcltdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJzB4JyArIGJ5dGVzLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGNvbnZlcnQgaGV4IHN0cmluZyB0byBBY2NvdW50QWRkcmVzcywgcmV0dXJuIG9yaWdpbmFsIHN0cmluZyBpZiBjb252ZXJzaW9uIGZhaWxzXG4gICAqL1xuICB0cnlQYXJzZUFjY291bnRBZGRyZXNzKGhleFN0cjogc3RyaW5nKTogQWNjb3VudEFkZHJlc3MgfCBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQWNjb3VudEFkZHJlc3MuZnJvbVN0cmluZyhoZXhTdHIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGhleFN0cjtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IASzC,CAAC"}
@@ -3,9 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.register = void 0;
4
4
  const apt_1 = require("./apt");
5
5
  const tapt_1 = require("./tapt");
6
+ const aptToken_1 = require("./aptToken");
7
+ const aptNFTCollection_1 = require("./aptNFTCollection");
6
8
  const register = (sdk) => {
7
9
  sdk.register('apt', apt_1.Apt.createInstance);
8
10
  sdk.register('tapt', tapt_1.Tapt.createInstance);
11
+ aptToken_1.AptToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
12
+ sdk.register(name, coinConstructor);
13
+ });
14
+ aptNFTCollection_1.AptNFTCollection.createNFTCollectionConstructors().forEach(({ name, coinConstructor }) => {
15
+ sdk.register(name, coinConstructor);
16
+ });
9
17
  };
10
18
  exports.register = register;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUV2QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXB0IH0gZnJvbSAnLi9hcHQnO1xuaW1wb3J0IHsgVGFwdCB9IGZyb20gJy4vdGFwdCc7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlciA9IChzZGs6IEJpdEdvQmFzZSk6IHZvaWQgPT4ge1xuICBzZGsucmVnaXN0ZXIoJ2FwdCcsIEFwdC5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndGFwdCcsIFRhcHQuY3JlYXRlSW5zdGFuY2UpO1xufTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5Qix5Q0FBc0M7QUFDdEMseURBQXNEO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBYyxFQUFRLEVBQUU7SUFDL0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQyxtQkFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtRQUN2RSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNILG1DQUFnQixDQUFDLCtCQUErQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtRQUN2RixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQVRXLFFBQUEsUUFBUSxZQVNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEFwdCB9IGZyb20gJy4vYXB0JztcbmltcG9ydCB7IFRhcHQgfSBmcm9tICcuL3RhcHQnO1xuaW1wb3J0IHsgQXB0VG9rZW4gfSBmcm9tICcuL2FwdFRva2VuJztcbmltcG9ydCB7IEFwdE5GVENvbGxlY3Rpb24gfSBmcm9tICcuL2FwdE5GVENvbGxlY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdhcHQnLCBBcHQuY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3RhcHQnLCBUYXB0LmNyZWF0ZUluc3RhbmNlKTtcbiAgQXB0VG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuICBBcHRORlRDb2xsZWN0aW9uLmNyZWF0ZU5GVENvbGxlY3Rpb25Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xufTtcbiJdfQ==