@bitgo/account-lib 2.20.0-rc.3 → 2.20.0-rc.32

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 (592) hide show
  1. package/.mocharc.js +1 -1
  2. package/CHANGELOG.md +311 -0
  3. package/dist/resources/README.md +8 -2
  4. package/dist/resources/trx/protobuf/tron.js +5 -1
  5. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +1 -2
  6. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -1
  7. package/dist/src/coin/dot/addressInitializationBuilder.js +60 -83
  8. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +1 -1
  9. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
  10. package/dist/src/coin/dot/batchTransactionBuilder.js +55 -78
  11. package/dist/src/coin/dot/claimBuilder.d.ts +1 -2
  12. package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -1
  13. package/dist/src/coin/dot/claimBuilder.js +49 -69
  14. package/dist/src/coin/dot/errors.d.ts +1 -1
  15. package/dist/src/coin/dot/errors.d.ts.map +1 -1
  16. package/dist/src/coin/dot/errors.js +12 -33
  17. package/dist/src/coin/dot/iface.d.ts +1 -2
  18. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  19. package/dist/src/coin/dot/iface.js +1 -1
  20. package/dist/src/coin/dot/index.js +3 -3
  21. package/dist/src/coin/dot/keyPair.d.ts +2 -3
  22. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  23. package/dist/src/coin/dot/keyPair.js +34 -56
  24. package/dist/src/coin/dot/singletonRegistry.js +6 -9
  25. package/dist/src/coin/dot/stakingBuilder.d.ts +1 -2
  26. package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -1
  27. package/dist/src/coin/dot/stakingBuilder.js +55 -73
  28. package/dist/src/coin/dot/transaction.d.ts +1 -2
  29. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  30. package/dist/src/coin/dot/transaction.js +154 -170
  31. package/dist/src/coin/dot/transactionBuilder.d.ts +2 -3
  32. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  33. package/dist/src/coin/dot/transactionBuilder.js +133 -205
  34. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +1 -1
  35. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  36. package/dist/src/coin/dot/transactionBuilderFactory.js +46 -65
  37. package/dist/src/coin/dot/transferBuilder.d.ts +1 -2
  38. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  39. package/dist/src/coin/dot/transferBuilder.js +71 -88
  40. package/dist/src/coin/dot/txnSchema.js +17 -15
  41. package/dist/src/coin/dot/unnominateBuilder.d.ts +1 -1
  42. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -1
  43. package/dist/src/coin/dot/unnominateBuilder.js +24 -46
  44. package/dist/src/coin/dot/unstakeBuilder.d.ts +1 -1
  45. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -1
  46. package/dist/src/coin/dot/unstakeBuilder.js +38 -60
  47. package/dist/src/coin/dot/utils.d.ts +9 -3
  48. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  49. package/dist/src/coin/dot/utils.js +112 -102
  50. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +1 -1
  51. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -1
  52. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +38 -60
  53. package/dist/src/coin/etc/index.d.ts +2 -4
  54. package/dist/src/coin/etc/index.d.ts.map +1 -1
  55. package/dist/src/coin/etc/index.js +7 -9
  56. package/dist/src/coin/etc/resources.js +3 -3
  57. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
  58. package/dist/src/coin/etc/transactionBuilder.js +22 -41
  59. package/dist/src/coin/etc/transferBuilder.d.ts +1 -1
  60. package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -1
  61. package/dist/src/coin/etc/transferBuilder.js +8 -28
  62. package/dist/src/coin/etc/utils.d.ts +1 -2
  63. package/dist/src/coin/etc/utils.d.ts.map +1 -1
  64. package/dist/src/coin/etc/utils.js +10 -50
  65. package/dist/src/coin/eth2/keyPair.d.ts +1 -2
  66. package/dist/src/coin/eth2/keyPair.d.ts.map +1 -1
  67. package/dist/src/coin/eth2/keyPair.js +19 -37
  68. package/dist/src/coin/hbar/coinTransferBuilder.d.ts +46 -0
  69. package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +1 -0
  70. package/dist/src/coin/hbar/coinTransferBuilder.js +143 -0
  71. package/dist/src/coin/hbar/constants.d.ts +8 -0
  72. package/dist/src/coin/hbar/constants.d.ts.map +1 -0
  73. package/dist/src/coin/hbar/constants.js +12 -0
  74. package/dist/src/coin/hbar/iface.d.ts +49 -0
  75. package/dist/src/coin/hbar/iface.d.ts.map +1 -0
  76. package/dist/src/coin/hbar/iface.js +3 -0
  77. package/dist/src/coin/hbar/index.d.ts +3 -0
  78. package/dist/src/coin/hbar/index.d.ts.map +1 -1
  79. package/dist/src/coin/hbar/index.js +9 -3
  80. package/dist/src/coin/hbar/keyPair.d.ts +2 -3
  81. package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
  82. package/dist/src/coin/hbar/keyPair.js +31 -50
  83. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +38 -0
  84. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
  85. package/dist/src/coin/hbar/tokenAssociateBuilder.js +126 -0
  86. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +25 -0
  87. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +1 -0
  88. package/dist/src/coin/hbar/tokenTransferBuilder.js +115 -0
  89. package/dist/src/coin/hbar/transaction.d.ts +30 -23
  90. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  91. package/dist/src/coin/hbar/transaction.js +197 -193
  92. package/dist/src/coin/hbar/transactionBuilder.d.ts +23 -25
  93. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
  94. package/dist/src/coin/hbar/transactionBuilder.js +146 -223
  95. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +14 -4
  96. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
  97. package/dist/src/coin/hbar/transactionBuilderFactory.js +50 -57
  98. package/dist/src/coin/hbar/transferBuilder.d.ts +9 -29
  99. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
  100. package/dist/src/coin/hbar/transferBuilder.js +37 -157
  101. package/dist/src/coin/hbar/utils.d.ts +99 -58
  102. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  103. package/dist/src/coin/hbar/utils.js +183 -105
  104. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +5 -5
  105. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
  106. package/dist/src/coin/hbar/walletInitializationBuilder.js +68 -113
  107. package/dist/src/coin/near/contractCallWrapper.js +46 -65
  108. package/dist/src/coin/near/errors.d.ts +1 -1
  109. package/dist/src/coin/near/errors.d.ts.map +1 -1
  110. package/dist/src/coin/near/errors.js +7 -25
  111. package/dist/src/coin/near/iface.d.ts +1 -2
  112. package/dist/src/coin/near/iface.d.ts.map +1 -1
  113. package/dist/src/coin/near/iface.js +1 -1
  114. package/dist/src/coin/near/index.js +2 -2
  115. package/dist/src/coin/near/keyPair.d.ts +1 -2
  116. package/dist/src/coin/near/keyPair.d.ts.map +1 -1
  117. package/dist/src/coin/near/keyPair.js +23 -40
  118. package/dist/src/coin/near/stakingActivateBuilder.d.ts +1 -1
  119. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -1
  120. package/dist/src/coin/near/stakingActivateBuilder.js +36 -105
  121. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +1 -1
  122. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -1
  123. package/dist/src/coin/near/stakingDeactivateBuilder.js +36 -105
  124. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +1 -1
  125. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -1
  126. package/dist/src/coin/near/stakingWithdrawBuilder.js +36 -105
  127. package/dist/src/coin/near/transaction.d.ts +1 -2
  128. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  129. package/dist/src/coin/near/transaction.js +125 -154
  130. package/dist/src/coin/near/transactionBuilder.d.ts +1 -2
  131. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  132. package/dist/src/coin/near/transactionBuilder.js +81 -144
  133. package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
  134. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  135. package/dist/src/coin/near/transactionBuilderFactory.js +33 -51
  136. package/dist/src/coin/near/transferBuilder.d.ts +1 -1
  137. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
  138. package/dist/src/coin/near/transferBuilder.js +27 -91
  139. package/dist/src/coin/near/utils.d.ts +1 -1
  140. package/dist/src/coin/near/utils.d.ts.map +1 -1
  141. package/dist/src/coin/near/utils.js +35 -45
  142. package/dist/src/coin/near/walletInitializationBuilder.d.ts +1 -1
  143. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
  144. package/dist/src/coin/near/walletInitializationBuilder.js +13 -70
  145. package/dist/src/coin/polygon/index.d.ts +6 -0
  146. package/dist/src/coin/polygon/index.d.ts.map +1 -0
  147. package/dist/src/coin/{celo → polygon}/index.js +7 -9
  148. package/dist/src/coin/polygon/resources.d.ts +10 -0
  149. package/dist/src/coin/polygon/resources.d.ts.map +1 -0
  150. package/dist/src/coin/polygon/resources.js +25 -0
  151. package/dist/src/coin/{avaxc → polygon}/transactionBuilder.d.ts +1 -1
  152. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
  153. package/dist/src/coin/polygon/transactionBuilder.js +44 -0
  154. package/dist/src/coin/{avaxc → polygon}/transferBuilder.d.ts +4 -2
  155. package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
  156. package/dist/src/coin/polygon/transferBuilder.js +27 -0
  157. package/dist/src/coin/polygon/utils.d.ts +17 -0
  158. package/dist/src/coin/polygon/utils.d.ts.map +1 -0
  159. package/dist/src/coin/polygon/utils.js +42 -0
  160. package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
  161. package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
  162. package/dist/src/coin/polygon/walletUtil.js +632 -0
  163. package/dist/src/coin/rbtc/index.d.ts +2 -4
  164. package/dist/src/coin/rbtc/index.d.ts.map +1 -1
  165. package/dist/src/coin/rbtc/index.js +7 -9
  166. package/dist/src/coin/rbtc/resources.js +3 -3
  167. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
  168. package/dist/src/coin/rbtc/transactionBuilder.js +21 -40
  169. package/dist/src/coin/rbtc/transferBuilder.d.ts +1 -1
  170. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -1
  171. package/dist/src/coin/rbtc/transferBuilder.js +8 -28
  172. package/dist/src/coin/rbtc/utils.d.ts +1 -2
  173. package/dist/src/coin/rbtc/utils.d.ts.map +1 -1
  174. package/dist/src/coin/rbtc/utils.js +10 -50
  175. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +12 -3
  176. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  177. package/dist/src/coin/sol/ataInitializationBuilder.js +74 -126
  178. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
  179. package/dist/src/coin/sol/ataInitializationTransaction.js +36 -59
  180. package/dist/src/coin/sol/iface.d.ts +2 -1
  181. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  182. package/dist/src/coin/sol/iface.js +1 -1
  183. package/dist/src/coin/sol/index.js +3 -3
  184. package/dist/src/coin/sol/instructionParamsFactory.d.ts +1 -1
  185. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -1
  186. package/dist/src/coin/sol/instructionParamsFactory.js +72 -70
  187. package/dist/src/coin/sol/keyPair.d.ts +1 -2
  188. package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
  189. package/dist/src/coin/sol/keyPair.js +24 -42
  190. package/dist/src/coin/sol/solInstructionFactory.js +33 -33
  191. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +1 -1
  192. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -1
  193. package/dist/src/coin/sol/stakingActivateBuilder.js +45 -113
  194. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +1 -1
  195. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -1
  196. package/dist/src/coin/sol/stakingDeactivateBuilder.js +36 -104
  197. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +1 -1
  198. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -1
  199. package/dist/src/coin/sol/stakingWithdrawBuilder.js +41 -109
  200. package/dist/src/coin/sol/tokenEncodeDecode.js +46 -75
  201. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
  202. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
  203. package/dist/src/coin/sol/tokenTransferBuilder.js +42 -115
  204. package/dist/src/coin/sol/transaction.d.ts +1 -2
  205. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  206. package/dist/src/coin/sol/transaction.js +130 -221
  207. package/dist/src/coin/sol/transactionBuilder.d.ts +1 -2
  208. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  209. package/dist/src/coin/sol/transactionBuilder.js +104 -171
  210. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +1 -1
  211. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  212. package/dist/src/coin/sol/transactionBuilderFactory.js +46 -64
  213. package/dist/src/coin/sol/transferBuilder.d.ts +1 -1
  214. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
  215. package/dist/src/coin/sol/transferBuilder.js +37 -108
  216. package/dist/src/coin/sol/utils.d.ts +1 -1
  217. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  218. package/dist/src/coin/sol/utils.js +49 -117
  219. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +1 -1
  220. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
  221. package/dist/src/coin/sol/walletInitializationBuilder.js +39 -107
  222. package/dist/src/coin/trx/address.d.ts +1 -1
  223. package/dist/src/coin/trx/address.d.ts.map +1 -1
  224. package/dist/src/coin/trx/address.js +3 -6
  225. package/dist/src/coin/trx/contractCallBuilder.d.ts +1 -1
  226. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -1
  227. package/dist/src/coin/trx/contractCallBuilder.js +100 -160
  228. package/dist/src/coin/trx/iface.d.ts +1 -1
  229. package/dist/src/coin/trx/iface.d.ts.map +1 -1
  230. package/dist/src/coin/trx/iface.js +1 -1
  231. package/dist/src/coin/trx/index.js +4 -4
  232. package/dist/src/coin/trx/keyPair.d.ts +1 -3
  233. package/dist/src/coin/trx/keyPair.d.ts.map +1 -1
  234. package/dist/src/coin/trx/keyPair.js +37 -57
  235. package/dist/src/coin/trx/transaction.d.ts +1 -3
  236. package/dist/src/coin/trx/transaction.d.ts.map +1 -1
  237. package/dist/src/coin/trx/transaction.js +84 -124
  238. package/dist/src/coin/trx/transactionBuilder.d.ts +1 -2
  239. package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -1
  240. package/dist/src/coin/trx/transactionBuilder.js +72 -134
  241. package/dist/src/coin/trx/utils.js +57 -59
  242. package/dist/src/coin/trx/wrappedBuilder.d.ts +1 -2
  243. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -1
  244. package/dist/src/coin/trx/wrappedBuilder.js +43 -101
  245. package/dist/src/coin/xrp/index.js +2 -2
  246. package/dist/src/coin/xrp/keyPair.d.ts +1 -2
  247. package/dist/src/coin/xrp/keyPair.d.ts.map +1 -1
  248. package/dist/src/coin/xrp/keyPair.js +6 -23
  249. package/dist/src/coin/xrp/transaction.d.ts +1 -2
  250. package/dist/src/coin/xrp/transaction.d.ts.map +1 -1
  251. package/dist/src/coin/xrp/transaction.js +13 -34
  252. package/dist/src/coin/xrp/transactionBuilder.d.ts +1 -2
  253. package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -1
  254. package/dist/src/coin/xrp/transactionBuilder.js +29 -51
  255. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +1 -1
  256. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -1
  257. package/dist/src/coin/xrp/transactionBuilderFactory.js +17 -35
  258. package/dist/src/coin/xrp/transferBuilder.d.ts +1 -1
  259. package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -1
  260. package/dist/src/coin/xrp/transferBuilder.js +16 -73
  261. package/dist/src/coin/xrp/utils.d.ts +1 -1
  262. package/dist/src/coin/xrp/utils.d.ts.map +1 -1
  263. package/dist/src/coin/xrp/utils.js +22 -25
  264. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +1 -1
  265. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -1
  266. package/dist/src/coin/xrp/walletInitializationBuilder.js +16 -73
  267. package/dist/src/index.d.ts +24 -16
  268. package/dist/src/index.d.ts.map +1 -1
  269. package/dist/src/index.js +58 -50
  270. package/dist/src/keyPair/index.d.ts +1 -2
  271. package/dist/src/keyPair/index.d.ts.map +1 -1
  272. package/dist/src/keyPair/index.js +9 -9
  273. package/dist/src/utils/index.d.ts +1 -1
  274. package/dist/src/utils/index.d.ts.map +1 -1
  275. package/dist/src/utils/index.js +9 -9
  276. package/dist/tsconfig.tsbuildinfo +29398 -22560
  277. package/package.json +25 -58
  278. package/resources/README.md +8 -2
  279. package/resources/trx/protobuf/tron.js +5 -1
  280. package/dist/browser/bitgo-account-lib.js +0 -2
  281. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
  282. package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
  283. package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  284. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  285. package/dist/resources/hbar/protobuf/Duration.proto +0 -28
  286. package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
  287. package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
  288. package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
  289. package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
  290. package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
  291. package/dist/resources/hbar/protobuf/hedera.js +0 -12192
  292. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -43
  293. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  294. package/dist/src/coin/algo/assetTransferBuilder.js +0 -127
  295. package/dist/src/coin/algo/errors.d.ts +0 -11
  296. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  297. package/dist/src/coin/algo/errors.js +0 -51
  298. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  299. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  300. package/dist/src/coin/algo/ifaces.js +0 -3
  301. package/dist/src/coin/algo/index.d.ts +0 -13
  302. package/dist/src/coin/algo/index.d.ts.map +0 -1
  303. package/dist/src/coin/algo/index.js +0 -47
  304. package/dist/src/coin/algo/keyPair.d.ts +0 -26
  305. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  306. package/dist/src/coin/algo/keyPair.js +0 -95
  307. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  308. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  309. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -262
  310. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  311. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  312. package/dist/src/coin/algo/seedEncoding.js +0 -100
  313. package/dist/src/coin/algo/transaction.d.ts +0 -76
  314. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  315. package/dist/src/coin/algo/transaction.js +0 -287
  316. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -205
  317. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  318. package/dist/src/coin/algo/transactionBuilder.js +0 -445
  319. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  320. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  321. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -70
  322. package/dist/src/coin/algo/transferBuilder.d.ts +0 -41
  323. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  324. package/dist/src/coin/algo/transferBuilder.js +0 -111
  325. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  326. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  327. package/dist/src/coin/algo/txnSchema.js +0 -68
  328. package/dist/src/coin/algo/utils.d.ts +0 -249
  329. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  330. package/dist/src/coin/algo/utils.js +0 -544
  331. package/dist/src/coin/avaxc/index.d.ts +0 -8
  332. package/dist/src/coin/avaxc/index.d.ts.map +0 -1
  333. package/dist/src/coin/avaxc/index.js +0 -35
  334. package/dist/src/coin/avaxc/keyPair.d.ts +0 -27
  335. package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
  336. package/dist/src/coin/avaxc/keyPair.js +0 -102
  337. package/dist/src/coin/avaxc/resources.d.ts +0 -12
  338. package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
  339. package/dist/src/coin/avaxc/resources.js +0 -27
  340. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
  341. package/dist/src/coin/avaxc/transactionBuilder.js +0 -64
  342. package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
  343. package/dist/src/coin/avaxc/transferBuilder.js +0 -45
  344. package/dist/src/coin/avaxc/utils.d.ts +0 -39
  345. package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
  346. package/dist/src/coin/avaxc/utils.js +0 -110
  347. package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
  348. package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
  349. package/dist/src/coin/avaxc/walletUtil.js +0 -62
  350. package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
  351. package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
  352. package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
  353. package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
  354. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
  355. package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
  356. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
  357. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
  358. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
  359. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
  360. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
  361. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
  362. package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
  363. package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
  364. package/dist/src/coin/baseCoin/baseUtils.js +0 -3
  365. package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
  366. package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
  367. package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
  368. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
  369. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
  370. package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
  371. package/dist/src/coin/baseCoin/enum.d.ts +0 -43
  372. package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
  373. package/dist/src/coin/baseCoin/enum.js +0 -70
  374. package/dist/src/coin/baseCoin/errors.d.ts +0 -65
  375. package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
  376. package/dist/src/coin/baseCoin/errors.js +0 -156
  377. package/dist/src/coin/baseCoin/iface.d.ts +0 -162
  378. package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
  379. package/dist/src/coin/baseCoin/iface.js +0 -38
  380. package/dist/src/coin/baseCoin/index.d.ts +0 -12
  381. package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
  382. package/dist/src/coin/baseCoin/index.js +0 -41
  383. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
  384. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
  385. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
  386. package/dist/src/coin/celo/index.d.ts +0 -8
  387. package/dist/src/coin/celo/index.d.ts.map +0 -1
  388. package/dist/src/coin/celo/resources.d.ts +0 -10
  389. package/dist/src/coin/celo/resources.d.ts.map +0 -1
  390. package/dist/src/coin/celo/resources.js +0 -26
  391. package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
  392. package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
  393. package/dist/src/coin/celo/stakingBuilder.js +0 -279
  394. package/dist/src/coin/celo/stakingCall.d.ts +0 -7
  395. package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
  396. package/dist/src/coin/celo/stakingCall.js +0 -31
  397. package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
  398. package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
  399. package/dist/src/coin/celo/stakingUtils.js +0 -99
  400. package/dist/src/coin/celo/transaction.d.ts +0 -10
  401. package/dist/src/coin/celo/transaction.d.ts.map +0 -1
  402. package/dist/src/coin/celo/transaction.js +0 -57
  403. package/dist/src/coin/celo/transactionBuilder.d.ts +0 -86
  404. package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
  405. package/dist/src/coin/celo/transactionBuilder.js +0 -247
  406. package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
  407. package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
  408. package/dist/src/coin/celo/transferBuilder.js +0 -47
  409. package/dist/src/coin/celo/types.d.ts +0 -52
  410. package/dist/src/coin/celo/types.d.ts.map +0 -1
  411. package/dist/src/coin/celo/types.js +0 -276
  412. package/dist/src/coin/celo/utils.d.ts +0 -18
  413. package/dist/src/coin/celo/utils.d.ts.map +0 -1
  414. package/dist/src/coin/celo/utils.js +0 -99
  415. package/dist/src/coin/cspr/constants.d.ts +0 -19
  416. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  417. package/dist/src/coin/cspr/constants.js +0 -28
  418. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  419. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  420. package/dist/src/coin/cspr/delegateBuilder.js +0 -175
  421. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  422. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  423. package/dist/src/coin/cspr/ifaces.js +0 -3
  424. package/dist/src/coin/cspr/index.d.ts +0 -5
  425. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  426. package/dist/src/coin/cspr/index.js +0 -29
  427. package/dist/src/coin/cspr/keyPair.d.ts +0 -19
  428. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  429. package/dist/src/coin/cspr/keyPair.js +0 -94
  430. package/dist/src/coin/cspr/transaction.d.ts +0 -56
  431. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  432. package/dist/src/coin/cspr/transaction.js +0 -251
  433. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -125
  434. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  435. package/dist/src/coin/cspr/transactionBuilder.js +0 -383
  436. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  437. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  438. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -116
  439. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  440. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  441. package/dist/src/coin/cspr/transferBuilder.js +0 -169
  442. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  443. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  444. package/dist/src/coin/cspr/undelegateBuilder.js +0 -175
  445. package/dist/src/coin/cspr/utils.d.ts +0 -189
  446. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  447. package/dist/src/coin/cspr/utils.js +0 -483
  448. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  449. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  450. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -160
  451. package/dist/src/coin/eth/contractCall.d.ts +0 -8
  452. package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
  453. package/dist/src/coin/eth/contractCall.js +0 -18
  454. package/dist/src/coin/eth/iface.d.ts +0 -122
  455. package/dist/src/coin/eth/iface.d.ts.map +0 -1
  456. package/dist/src/coin/eth/iface.js +0 -8
  457. package/dist/src/coin/eth/index.d.ts +0 -10
  458. package/dist/src/coin/eth/index.d.ts.map +0 -1
  459. package/dist/src/coin/eth/index.js +0 -39
  460. package/dist/src/coin/eth/keyPair.d.ts +0 -27
  461. package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
  462. package/dist/src/coin/eth/keyPair.js +0 -104
  463. package/dist/src/coin/eth/transaction.d.ts +0 -65
  464. package/dist/src/coin/eth/transaction.d.ts.map +0 -1
  465. package/dist/src/coin/eth/transaction.js +0 -203
  466. package/dist/src/coin/eth/transactionBuilder.d.ts +0 -195
  467. package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
  468. package/dist/src/coin/eth/transactionBuilder.js +0 -695
  469. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
  470. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
  471. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -114
  472. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
  473. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
  474. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -100
  475. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
  476. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
  477. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -85
  478. package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
  479. package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
  480. package/dist/src/coin/eth/transferBuilder.js +0 -198
  481. package/dist/src/coin/eth/types.d.ts +0 -39
  482. package/dist/src/coin/eth/types.d.ts.map +0 -1
  483. package/dist/src/coin/eth/types.js +0 -139
  484. package/dist/src/coin/eth/utils.d.ts +0 -201
  485. package/dist/src/coin/eth/utils.d.ts.map +0 -1
  486. package/dist/src/coin/eth/utils.js +0 -533
  487. package/dist/src/coin/eth/walletUtil.d.ts +0 -19
  488. package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
  489. package/dist/src/coin/eth/walletUtil.js +0 -29
  490. package/dist/src/coin/hbar/ifaces.d.ts +0 -26
  491. package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
  492. package/dist/src/coin/hbar/ifaces.js +0 -3
  493. package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
  494. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
  495. package/dist/src/coin/stx/abstractContractBuilder.js +0 -140
  496. package/dist/src/coin/stx/constants.d.ts +0 -8
  497. package/dist/src/coin/stx/constants.d.ts.map +0 -1
  498. package/dist/src/coin/stx/constants.js +0 -19
  499. package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
  500. package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
  501. package/dist/src/coin/stx/contractBuilder.js +0 -135
  502. package/dist/src/coin/stx/iface.d.ts +0 -48
  503. package/dist/src/coin/stx/iface.d.ts.map +0 -1
  504. package/dist/src/coin/stx/iface.js +0 -3
  505. package/dist/src/coin/stx/index.d.ts +0 -6
  506. package/dist/src/coin/stx/index.d.ts.map +0 -1
  507. package/dist/src/coin/stx/index.js +0 -32
  508. package/dist/src/coin/stx/keyPair.d.ts +0 -56
  509. package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
  510. package/dist/src/coin/stx/keyPair.js +0 -163
  511. package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
  512. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
  513. package/dist/src/coin/stx/sendmanyBuilder.js +0 -140
  514. package/dist/src/coin/stx/transaction.d.ts +0 -50
  515. package/dist/src/coin/stx/transaction.d.ts.map +0 -1
  516. package/dist/src/coin/stx/transaction.js +0 -306
  517. package/dist/src/coin/stx/transactionBuilder.d.ts +0 -87
  518. package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
  519. package/dist/src/coin/stx/transactionBuilder.js +0 -360
  520. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
  521. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
  522. package/dist/src/coin/stx/transactionBuilderFactory.js +0 -99
  523. package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
  524. package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
  525. package/dist/src/coin/stx/transferBuilder.js +0 -169
  526. package/dist/src/coin/stx/utils.d.ts +0 -207
  527. package/dist/src/coin/stx/utils.d.ts.map +0 -1
  528. package/dist/src/coin/stx/utils.js +0 -510
  529. package/dist/src/coin/xtz/address.d.ts +0 -8
  530. package/dist/src/coin/xtz/address.d.ts.map +0 -1
  531. package/dist/src/coin/xtz/address.js +0 -13
  532. package/dist/src/coin/xtz/iface.d.ts +0 -81
  533. package/dist/src/coin/xtz/iface.d.ts.map +0 -1
  534. package/dist/src/coin/xtz/iface.js +0 -3
  535. package/dist/src/coin/xtz/index.d.ts +0 -8
  536. package/dist/src/coin/xtz/index.d.ts.map +0 -1
  537. package/dist/src/coin/xtz/index.js +0 -37
  538. package/dist/src/coin/xtz/keyPair.d.ts +0 -41
  539. package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
  540. package/dist/src/coin/xtz/keyPair.js +0 -156
  541. package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
  542. package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
  543. package/dist/src/coin/xtz/multisigUtils.js +0 -1193
  544. package/dist/src/coin/xtz/transaction.d.ts +0 -120
  545. package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
  546. package/dist/src/coin/xtz/transaction.js +0 -485
  547. package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -172
  548. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
  549. package/dist/src/coin/xtz/transactionBuilder.js +0 -588
  550. package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
  551. package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
  552. package/dist/src/coin/xtz/transferBuilder.js +0 -67
  553. package/dist/src/coin/xtz/utils.d.ts +0 -265
  554. package/dist/src/coin/xtz/utils.d.ts.map +0 -1
  555. package/dist/src/coin/xtz/utils.js +0 -531
  556. package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
  557. package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
  558. package/dist/src/mpc/curves/baseCurve.js +0 -6
  559. package/dist/src/mpc/curves/ed25519.d.ts +0 -17
  560. package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
  561. package/dist/src/mpc/curves/ed25519.js +0 -96
  562. package/dist/src/mpc/curves/index.d.ts +0 -5
  563. package/dist/src/mpc/curves/index.d.ts.map +0 -1
  564. package/dist/src/mpc/curves/index.js +0 -6
  565. package/dist/src/mpc/hdTree.d.ts +0 -24
  566. package/dist/src/mpc/hdTree.d.ts.map +0 -1
  567. package/dist/src/mpc/hdTree.js +0 -143
  568. package/dist/src/mpc/shamir.d.ts +0 -26
  569. package/dist/src/mpc/shamir.d.ts.map +0 -1
  570. package/dist/src/mpc/shamir.js +0 -87
  571. package/dist/src/mpc/tss.d.ts +0 -98
  572. package/dist/src/mpc/tss.d.ts.map +0 -1
  573. package/dist/src/mpc/tss.js +0 -346
  574. package/dist/src/mpc/util.d.ts +0 -7
  575. package/dist/src/mpc/util.d.ts.map +0 -1
  576. package/dist/src/mpc/util.js +0 -38
  577. package/dist/src/utils/crypto.d.ts +0 -99
  578. package/dist/src/utils/crypto.d.ts.map +0 -1
  579. package/dist/src/utils/crypto.js +0 -260
  580. package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
  581. package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
  582. package/dist/src/utils/ed25519KeyDeriver.js +0 -92
  583. package/resources/hbar/protobuf/BasicTypes.proto +0 -424
  584. package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  585. package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  586. package/resources/hbar/protobuf/Duration.proto +0 -28
  587. package/resources/hbar/protobuf/Timestamp.proto +0 -34
  588. package/resources/hbar/protobuf/Transaction.proto +0 -35
  589. package/resources/hbar/protobuf/TransactionBody.proto +0 -24
  590. package/resources/hbar/protobuf/TransactionContents.proto +0 -33
  591. package/resources/hbar/protobuf/hedera.d.ts +0 -4612
  592. package/resources/hbar/protobuf/hedera.js +0 -12192
@@ -1,19 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
3
  if (k2 === undefined) k2 = k;
19
4
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -33,69 +18,29 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
18
  __setModuleDefault(result, mod);
34
19
  return result;
35
20
  };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (_) try {
52
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
73
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
74
23
  };
75
24
  Object.defineProperty(exports, "__esModule", { value: true });
76
25
  exports.TransactionBuilder = void 0;
77
- var txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
78
- var _ = __importStar(require("lodash"));
79
- var bignumber_js_1 = __importDefault(require("bignumber.js"));
80
- var crypto_1 = require("../../utils/crypto");
81
- var baseCoin_1 = require("../baseCoin");
82
- var errors_1 = require("../baseCoin/errors");
83
- var errors_2 = require("./errors");
84
- var keyPair_1 = require("./keyPair");
85
- var transaction_1 = require("./transaction");
86
- var txnSchema_1 = require("./txnSchema");
87
- var singletonRegistry_1 = require("./singletonRegistry");
88
- var utils_1 = __importDefault(require("./utils"));
89
- var TransactionBuilder = /** @class */ (function (_super) {
90
- __extends(TransactionBuilder, _super);
91
- function TransactionBuilder(_coinConfig) {
92
- var _this = _super.call(this, _coinConfig) || this;
26
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
27
+ const _ = __importStar(require("lodash"));
28
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
29
+ const sdk_core_1 = require("@bitgo/sdk-core");
30
+ const errors_1 = require("./errors");
31
+ const keyPair_1 = require("./keyPair");
32
+ const transaction_1 = require("./transaction");
33
+ const txnSchema_1 = require("./txnSchema");
34
+ const singletonRegistry_1 = require("./singletonRegistry");
35
+ const utils_1 = __importDefault(require("./utils"));
36
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
37
+ constructor(_coinConfig) {
38
+ super(_coinConfig);
93
39
  // signatures that will be used to sign a transaction when building
94
40
  // not the same as the _signatures in transaction which is the signature in
95
41
  // string hex format used for validation after we call .build()
96
- _this._signatures = []; // only support single sig for now
97
- _this._transaction = new transaction_1.Transaction(_coinConfig);
98
- return _this;
42
+ this._signatures = []; // only support single sig for now
43
+ this._transaction = new transaction_1.Transaction(_coinConfig);
99
44
  }
100
45
  /**
101
46
  * Sets the address of sending account.
@@ -105,13 +50,12 @@ var TransactionBuilder = /** @class */ (function (_super) {
105
50
  *
106
51
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
107
52
  */
108
- TransactionBuilder.prototype.sender = function (_a) {
109
- var address = _a.address;
110
- this.validateAddress({ address: address });
53
+ sender({ address }) {
54
+ this.validateAddress({ address });
111
55
  this._sender = address;
112
56
  this._transaction.sender(address);
113
57
  return this;
114
- };
58
+ }
115
59
  /**
116
60
  * The nonce for this transaction.
117
61
  *
@@ -120,12 +64,12 @@ var TransactionBuilder = /** @class */ (function (_super) {
120
64
  *
121
65
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
122
66
  */
123
- TransactionBuilder.prototype.sequenceId = function (nonce) {
124
- var value = new bignumber_js_1.default(nonce.value);
67
+ sequenceId(nonce) {
68
+ const value = new bignumber_js_1.default(nonce.value);
125
69
  this.validateValue(value);
126
70
  this._nonce = value.toNumber();
127
71
  return this;
128
- };
72
+ }
129
73
  /**
130
74
  * The tip to increase transaction priority.
131
75
  *
@@ -134,15 +78,15 @@ var TransactionBuilder = /** @class */ (function (_super) {
134
78
  *
135
79
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
136
80
  */
137
- TransactionBuilder.prototype.fee = function (fee) {
81
+ fee(fee) {
138
82
  if (fee.type !== 'tip') {
139
- throw new errors_2.InvalidFeeError(fee.type, 'tip');
83
+ throw new errors_1.InvalidFeeError(fee.type, 'tip');
140
84
  }
141
- var tipBN = new bignumber_js_1.default(fee.amount);
85
+ const tipBN = new bignumber_js_1.default(fee.amount);
142
86
  this.validateValue(tipBN);
143
87
  this._tip = tipBN.toNumber();
144
88
  return this;
145
- };
89
+ }
146
90
  /**
147
91
  * The number of the checkpoint block after which the transaction is valid
148
92
  *
@@ -152,8 +96,7 @@ var TransactionBuilder = /** @class */ (function (_super) {
152
96
  *
153
97
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
154
98
  */
155
- TransactionBuilder.prototype.validity = function (_a) {
156
- var firstValid = _a.firstValid, maxDuration = _a.maxDuration;
99
+ validity({ firstValid, maxDuration }) {
157
100
  if (!_.isUndefined(firstValid)) {
158
101
  this.validateValue(new bignumber_js_1.default(firstValid));
159
102
  this._blockNumber = firstValid;
@@ -163,7 +106,7 @@ var TransactionBuilder = /** @class */ (function (_super) {
163
106
  this._eraPeriod = maxDuration;
164
107
  }
165
108
  return this;
166
- };
109
+ }
167
110
  /**
168
111
  * The hash of the checkpoint block.
169
112
  *
@@ -173,10 +116,10 @@ var TransactionBuilder = /** @class */ (function (_super) {
173
116
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
174
117
  * @see https://wiki.polkadot.network/docs/build-protocol-info#transaction-mortality
175
118
  */
176
- TransactionBuilder.prototype.referenceBlock = function (referenceBlock) {
119
+ referenceBlock(referenceBlock) {
177
120
  this._referenceBlock = referenceBlock;
178
121
  return this;
179
- };
122
+ }
180
123
  /**
181
124
  * The current version for transaction format.
182
125
  *
@@ -186,14 +129,14 @@ var TransactionBuilder = /** @class */ (function (_super) {
186
129
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
187
130
  * @deprecated This field was added in material data.
188
131
  */
189
- TransactionBuilder.prototype.version = function (transactionVersion) {
132
+ version(transactionVersion) {
190
133
  // this._transactionVersion = transactionVersion;
191
134
  return this;
192
- };
193
- TransactionBuilder.prototype.method = function (method) {
135
+ }
136
+ method(method) {
194
137
  this._method = method;
195
138
  return this;
196
- };
139
+ }
197
140
  /**
198
141
  * The material data for the block.
199
142
  *
@@ -202,38 +145,30 @@ var TransactionBuilder = /** @class */ (function (_super) {
202
145
  *
203
146
  * @see https://wiki.polkadot.network/docs/build-transaction-construction
204
147
  */
205
- TransactionBuilder.prototype.material = function (material) {
148
+ material(material) {
206
149
  this.__material = material;
207
150
  this._registry = singletonRegistry_1.SingletonRegistry.getInstance(material);
208
151
  return this;
209
- };
210
- Object.defineProperty(TransactionBuilder.prototype, "_material", {
211
- get: function () {
212
- if (!this.__material) {
213
- var m = utils_1.default.getMaterial(this._coinConfig);
214
- this.material(m);
215
- return m;
216
- }
217
- return this.__material;
218
- },
219
- enumerable: false,
220
- configurable: true
221
- });
222
- Object.defineProperty(TransactionBuilder.prototype, "transaction", {
223
- /** @inheritdoc */
224
- get: function () {
225
- return this._transaction;
226
- },
227
- /** @inheritdoc */
228
- set: function (transaction) {
229
- this._transaction = transaction;
230
- },
231
- enumerable: false,
232
- configurable: true
233
- });
152
+ }
153
+ get _material() {
154
+ if (!this.__material) {
155
+ const m = utils_1.default.getMaterial(this._coinConfig);
156
+ this.material(m);
157
+ return m;
158
+ }
159
+ return this.__material;
160
+ }
161
+ /** @inheritdoc */
162
+ get transaction() {
163
+ return this._transaction;
164
+ }
234
165
  /** @inheritdoc */
235
- TransactionBuilder.prototype.fromImplementation = function (rawTransaction) {
236
- var decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
166
+ set transaction(transaction) {
167
+ this._transaction = transaction;
168
+ }
169
+ /** @inheritdoc */
170
+ fromImplementation(rawTransaction) {
171
+ const decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
237
172
  metadataRpc: this._material.metadata,
238
173
  registry: this._registry,
239
174
  });
@@ -241,9 +176,9 @@ var TransactionBuilder = /** @class */ (function (_super) {
241
176
  this.referenceBlock(decodedTxn.blockHash);
242
177
  }
243
178
  else {
244
- var keypair = utils_1.default.decodeDotAddressToKeyPair(decodedTxn.address);
245
- this.sender({ address: keypair.getAddress() });
246
- var edSignature = utils_1.default.recoverSignatureFromRawTx(rawTransaction, { registry: this._registry });
179
+ const keypair = utils_1.default.decodeDotAddressToKeyPair(decodedTxn.address);
180
+ this.sender({ address: keypair.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name)) });
181
+ const edSignature = utils_1.default.recoverSignatureFromRawTx(rawTransaction, { registry: this._registry });
247
182
  this.addSignature(keypair.getKeys(), Buffer.from(edSignature, 'hex'));
248
183
  }
249
184
  this.validity({ maxDuration: decodedTxn.eraPeriod });
@@ -253,33 +188,29 @@ var TransactionBuilder = /** @class */ (function (_super) {
253
188
  value: decodedTxn.nonce,
254
189
  });
255
190
  if (decodedTxn.tip) {
256
- this.fee({ amount: "" + decodedTxn.tip, type: 'tip' });
191
+ this.fee({ amount: `${decodedTxn.tip}`, type: 'tip' });
257
192
  }
258
193
  this.method(decodedTxn.method);
259
194
  return this._transaction;
260
- };
195
+ }
261
196
  /** @inheritdoc */
262
- TransactionBuilder.prototype.buildImplementation = function () {
197
+ async buildImplementation() {
263
198
  var _a;
264
- return __awaiter(this, void 0, void 0, function () {
265
- return __generator(this, function (_b) {
266
- this.transaction.setTransaction(this.buildTransaction());
267
- this.transaction.transactionType(this.transactionType);
268
- this.transaction.registry(this._registry);
269
- this.transaction.chainName(this._material.chainName);
270
- if (this._keyPair) {
271
- this.transaction.sign(this._keyPair);
272
- }
273
- if (((_a = this._signatures) === null || _a === void 0 ? void 0 : _a.length) > 0) {
274
- // if we have a signature, apply that and update this._signedTransaction
275
- this.transaction.constructSignedPayload(this._signatures[0].signature);
276
- }
277
- this._transaction.loadInputsAndOutputs();
278
- return [2 /*return*/, this._transaction];
279
- });
280
- });
281
- };
282
- TransactionBuilder.prototype.createBaseTxInfo = function () {
199
+ this.transaction.setTransaction(this.buildTransaction());
200
+ this.transaction.transactionType(this.transactionType);
201
+ this.transaction.registry(this._registry);
202
+ this.transaction.chainName(this._material.chainName);
203
+ if (this._keyPair) {
204
+ this.transaction.sign(this._keyPair);
205
+ }
206
+ if (((_a = this._signatures) === null || _a === void 0 ? void 0 : _a.length) > 0) {
207
+ // if we have a signature, apply that and update this._signedTransaction
208
+ this.transaction.constructSignedPayload(this._signatures[0].signature);
209
+ }
210
+ this._transaction.loadInputsAndOutputs();
211
+ return this._transaction;
212
+ }
213
+ createBaseTxInfo() {
283
214
  return {
284
215
  baseTxInfo: {
285
216
  address: this._sender,
@@ -299,106 +230,103 @@ var TransactionBuilder = /** @class */ (function (_super) {
299
230
  isImmortalEra: this._eraPeriod === 0,
300
231
  },
301
232
  };
302
- };
233
+ }
303
234
  // region Validators
304
235
  /** @inheritdoc */
305
- TransactionBuilder.prototype.validateAddress = function (address, addressFormat) {
236
+ validateAddress(address, addressFormat) {
306
237
  if (!utils_1.default.isValidAddress(address.address)) {
307
- throw new errors_2.AddressValidationError(address.address);
238
+ throw new errors_1.AddressValidationError(address.address);
308
239
  }
309
- };
240
+ }
310
241
  /** @inheritdoc */
311
- TransactionBuilder.prototype.validateKey = function (_a) {
312
- var key = _a.key;
313
- var isValidPrivateKeyFromBytes;
314
- var isValidPrivateKeyFromHex = crypto_1.isValidEd25519Seed(key);
315
- var isValidPrivateKeyFromBase64 = crypto_1.isValidEd25519Seed(Buffer.from(key, 'base64').toString('hex'));
242
+ validateKey({ key }) {
243
+ let isValidPrivateKeyFromBytes;
244
+ const isValidPrivateKeyFromHex = sdk_core_1.isValidEd25519Seed(key);
245
+ const isValidPrivateKeyFromBase64 = sdk_core_1.isValidEd25519Seed(Buffer.from(key, 'base64').toString('hex'));
316
246
  try {
317
- var decodedSeed = utils_1.default.decodeSeed(key);
318
- isValidPrivateKeyFromBytes = crypto_1.isValidEd25519Seed(Buffer.from(decodedSeed.seed).toString('hex'));
247
+ const decodedSeed = utils_1.default.decodeSeed(key);
248
+ isValidPrivateKeyFromBytes = sdk_core_1.isValidEd25519Seed(Buffer.from(decodedSeed.seed).toString('hex'));
319
249
  }
320
250
  catch (err) {
321
251
  isValidPrivateKeyFromBytes = false;
322
252
  }
323
253
  if (!isValidPrivateKeyFromBytes && !isValidPrivateKeyFromHex && !isValidPrivateKeyFromBase64) {
324
- throw new errors_1.BuildTransactionError("Key validation failed");
254
+ throw new sdk_core_1.BuildTransactionError(`Key validation failed`);
325
255
  }
326
- };
256
+ }
327
257
  /** @inheritdoc */
328
- TransactionBuilder.prototype.validateRawTransaction = function (rawTransaction) {
329
- var decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
258
+ validateRawTransaction(rawTransaction) {
259
+ const decodedTxn = txwrapper_polkadot_1.decode(rawTransaction, {
330
260
  metadataRpc: this._material.metadata,
331
261
  registry: this._registry,
332
262
  });
333
- var eraPeriod = decodedTxn.eraPeriod;
334
- var nonce = decodedTxn.nonce;
335
- var tip = decodedTxn.tip;
263
+ const eraPeriod = decodedTxn.eraPeriod;
264
+ const nonce = decodedTxn.nonce;
265
+ const tip = decodedTxn.tip;
336
266
  if (utils_1.default.isSigningPayload(decodedTxn)) {
337
- var blockHash = decodedTxn.blockHash;
338
- var validationResult = txnSchema_1.SigningPayloadTransactionSchema.validate({
339
- eraPeriod: eraPeriod,
340
- blockHash: blockHash,
341
- nonce: nonce,
342
- tip: tip,
267
+ const blockHash = decodedTxn.blockHash;
268
+ const validationResult = txnSchema_1.SigningPayloadTransactionSchema.validate({
269
+ eraPeriod,
270
+ blockHash,
271
+ nonce,
272
+ tip,
343
273
  });
344
274
  if (validationResult.error) {
345
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
275
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
346
276
  }
347
277
  }
348
278
  else {
349
- var sender = decodedTxn.address;
350
- var validationResult = txnSchema_1.SignedTransactionSchema.validate({
351
- sender: sender,
352
- nonce: nonce,
353
- eraPeriod: eraPeriod,
354
- tip: tip,
279
+ const sender = decodedTxn.address;
280
+ const validationResult = txnSchema_1.SignedTransactionSchema.validate({
281
+ sender,
282
+ nonce,
283
+ eraPeriod,
284
+ tip,
355
285
  });
356
286
  if (validationResult.error) {
357
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
287
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
358
288
  }
359
289
  }
360
290
  this.validateDecodedTransaction(decodedTxn, rawTransaction);
361
- };
291
+ }
362
292
  /** @inheritdoc */
363
- TransactionBuilder.prototype.validateTransaction = function (_) {
293
+ validateTransaction(_) {
364
294
  this.validateBaseFields(this._sender, this._blockNumber, this._referenceBlock, this._material.genesisHash, this._material.chainName, this._nonce, this._material.specVersion, this._material.specName, this._material.txVersion, this._eraPeriod, this._tip);
365
- };
366
- TransactionBuilder.prototype.validateBaseFields = function (sender, blockNumber, blockHash, genesisHash, chainName, nonce, specVersion, specName, transactionVersion, eraPeriod, tip) {
367
- var validationResult = txnSchema_1.BaseTransactionSchema.validate({
368
- sender: sender,
369
- blockNumber: blockNumber,
370
- blockHash: blockHash,
371
- genesisHash: genesisHash,
372
- chainName: chainName,
373
- nonce: nonce,
374
- specVersion: specVersion,
375
- specName: specName,
376
- transactionVersion: transactionVersion,
377
- eraPeriod: eraPeriod,
378
- tip: tip,
295
+ }
296
+ validateBaseFields(sender, blockNumber, blockHash, genesisHash, chainName, nonce, specVersion, specName, transactionVersion, eraPeriod, tip) {
297
+ const validationResult = txnSchema_1.BaseTransactionSchema.validate({
298
+ sender,
299
+ blockNumber,
300
+ blockHash,
301
+ genesisHash,
302
+ chainName,
303
+ nonce,
304
+ specVersion,
305
+ specName,
306
+ transactionVersion,
307
+ eraPeriod,
308
+ tip,
379
309
  });
380
310
  if (validationResult.error) {
381
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
311
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
382
312
  }
383
- };
313
+ }
384
314
  /** @inheritdoc */
385
- TransactionBuilder.prototype.validateValue = function (value) {
315
+ validateValue(value) {
386
316
  if (value.isLessThan(0)) {
387
- throw new errors_1.BuildTransactionError('Value cannot be less than zero');
317
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
388
318
  }
389
- };
319
+ }
390
320
  // endregion
391
321
  /** @inheritdoc */
392
- TransactionBuilder.prototype.addSignature = function (publicKey, signature) {
393
- this._signatures.push({ publicKey: publicKey, signature: signature });
394
- };
322
+ addSignature(publicKey, signature) {
323
+ this._signatures.push({ publicKey, signature });
324
+ }
395
325
  /** @inheritdoc */
396
- TransactionBuilder.prototype.signImplementation = function (_a) {
397
- var key = _a.key;
326
+ signImplementation({ key }) {
398
327
  this._keyPair = new keyPair_1.KeyPair({ prv: key });
399
328
  return this._transaction;
400
- };
401
- return TransactionBuilder;
402
- }(baseCoin_1.BaseTransactionBuilder));
329
+ }
330
+ }
403
331
  exports.TransactionBuilder = TransactionBuilder;
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0Esb0VBQXVEO0FBQ3ZELHdDQUE0QjtBQUM1Qiw4REFBcUM7QUFDckMsNkNBQXdEO0FBQ3hELHdDQUFpRjtBQUNqRiw2Q0FBb0Y7QUFTcEYsbUNBQW1FO0FBRW5FLHFDQUFvQztBQUNwQyw2Q0FBNEM7QUFDNUMseUNBQThHO0FBQzlHLHlEQUF3RDtBQUN4RCxrREFBNEI7QUFFNUI7SUFBaUQsc0NBQXNCO0lBbUJyRSw0QkFBWSxXQUFpQztRQUE3QyxZQUNFLGtCQUFNLFdBQVcsQ0FBQyxTQUVuQjtRQVJELG1FQUFtRTtRQUNuRSwyRUFBMkU7UUFDM0UsK0RBQStEO1FBQ3JELGlCQUFXLEdBQTBCLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztRQUluRixLQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxtQ0FBTSxHQUFOLFVBQU8sRUFBd0I7WUFBdEIsT0FBTyxhQUFBO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsdUNBQVUsR0FBVixVQUFXLEtBQWlCO1FBQzFCLElBQU0sS0FBSyxHQUFHLElBQUksc0JBQVMs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QUQsQ0FBQyxBQXRYRCxDQUFpRCxpQ0FBc0IsR0FzWHRFO0FBdFhxQixnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBQb2xrYWRvdFNwZWNOYW1lVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBpc1ZhbGlkRWQyNTUxOVNlZWQgfSBmcm9tICcuLi8uLi91dGlscy9jcnlwdG8nO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciwgVHJhbnNhY3Rpb25UeXBlLCBJbnRlcmZhY2UgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBGZWVPcHRpb25zLFxuICBTZXF1ZW5jZUlkLFxuICBWYWxpZGl0eVdpbmRvdyxcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG59IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IsIEludmFsaWRGZWVFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IENyZWF0ZUJhc2VUeEluZm8sIE1hdGVyaWFsLCBUeE1ldGhvZCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uU2NoZW1hLCBTaWduZWRUcmFuc2FjdGlvblNjaGVtYSwgU2lnbmluZ1BheWxvYWRUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB7IFNpbmdsZXRvblJlZ2lzdHJ5IH0gZnJvbSAnLi9zaW5nbGV0b25SZWdpc3RyeSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfa2V5UGFpcjogS2V5UGFpcjtcbiAgcHJvdGVjdGVkIF9zaWduYXR1cmU/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF9ibG9ja051bWJlcjogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZmVyZW5jZUJsb2NrOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbm9uY2U6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF90aXA/OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZXJhUGVyaW9kPzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gIHByb3RlY3RlZCBfbWV0aG9kPzogVHhNZXRob2Q7XG4gIHByb3RlY3RlZCBfX21hdGVyaWFsPzogTWF0ZXJpYWw7XG4gIC8vIHNpZ25hdHVyZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2lnbiBhIHRyYW5zYWN0aW9uIHdoZW4gYnVpbGRpbmdcbiAgLy8gbm90IHRoZSBzYW1lIGFzIHRoZSBfc2lnbmF0dXJlcyBpbiB0cmFuc2FjdGlvbiB3aGljaCBpcyB0aGUgc2lnbmF0dXJlIGluXG4gIC8vIHN0cmluZyBoZXggZm9ybWF0IHVzZWQgZm9yIHZhbGlkYXRpb24gYWZ0ZXIgd2UgY2FsbCAuYnVpbGQoKVxuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEludGVyZmFjZS5TaWduYXR1cmVbXSA9IFtdOyAvLyBvbmx5IHN1cHBvcnQgc2luZ2xlIHNpZyBmb3Igbm93XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhZGRyZXNzIG9mIHNlbmRpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gYWRkcmVzcyBUaGUgU1M1OC1lbmNvZGVkIGFkZHJlc3MuXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgc2VuZGVyKHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNlbmRlcihhZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbm9uY2UgZm9yIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBub25jZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIHNlcXVlbmNlSWQobm9uY2U6IFNlcXVlbmNlSWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBCaWdOdW1iZXIobm9uY2UudmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbm9uY2UgPSB2YWx1ZS50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aXAgdG8gaW5jcmVhc2UgdHJhbnNhY3Rpb24gcHJpb3JpdHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbZmVlLnR5cGVdIG9wdGlvbnMgZm9yIGJ1aWxkaW5nIGZlZSB0eFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIGZlZShmZWU6IEZlZU9wdGlvbnMpOiB0aGlzIHtcbiAgICBpZiAoZmVlLnR5cGUgIT09ICd0aXAnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEZlZUVycm9yKGZlZS50eXBlLCAndGlwJyk7XG4gICAgfVxuICAgIGNvbnN0IHRpcEJOID0gbmV3IEJpZ051bWJlcihmZWUuYW1vdW50KTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUodGlwQk4pO1xuICAgIHRoaXMuX3RpcCA9IHRpcEJOLnRvTnVtYmVyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aGUgY2hlY2twb2ludCBibG9jayBhZnRlciB3aGljaCB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICpcbiAgICogQHBhcmFtIHtWYWxpZGl0eVdpbmRvd30gZmlyc3RWYWxpZCBibG9jayBjaGVja3BvaW50IHdoZXJlIHRyYW5zYWN0aW9uIGlzIGZpcnN0IHZhbGlkXG4gICAqIEBwYXJhbSB7VmFsaWRpdHlXaW5kb3d9IG1heER1cmF0aW9uIG51bWJlciBvZiBibG9ja3MgYWZ0ZXIgY2hlY2twb2ludCBmb3Igd2hpY2ggdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICB2YWxpZGl0eSh7IGZpcnN0VmFsaWQsIG1heER1cmF0aW9uIH06IFZhbGlkaXR5V2luZG93KTogdGhpcyB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKGZpcnN0VmFsaWQpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihmaXJzdFZhbGlkKSk7XG4gICAgICB0aGlzLl9ibG9ja051bWJlciA9IGZpcnN0VmFsaWQ7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChtYXhEdXJhdGlvbikpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKG1heER1cmF0aW9uKSk7XG4gICAgICB0aGlzLl9lcmFQZXJpb2QgPSBtYXhEdXJhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhhc2ggb2YgdGhlIGNoZWNrcG9pbnQgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VCbG9jayBibG9jayBoYXNoIGNoZWNrcG9pbnQgZnJvbSB3aGVyZSB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvI3RyYW5zYWN0aW9uLW1vcnRhbGl0eVxuICAgKi9cbiAgcmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2s6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrID0gcmVmZXJlbmNlQmxvY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdHJhbnNhY3Rpb25WZXJzaW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIHdhcyBhZGRlZCBpbiBtYXRlcmlhbCBkYXRhLlxuICAgKi9cbiAgdmVyc2lvbih0cmFuc2FjdGlvblZlcnNpb246IG51bWJlcik6IHRoaXMge1xuICAgIC8vIHRoaXMuX3RyYW5zYWN0aW9uVmVyc2lvbiA9IHRyYW5zYWN0aW9uVmVyc2lvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgbWV0aG9kKG1ldGhvZDogVHhNZXRob2QpOiB0aGlzIHtcbiAgICB0aGlzLl9tZXRob2QgPSBtZXRob2Q7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1hdGVyaWFsIGRhdGEgZm9yIHRoZSBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIHtNYXRlcmlhbH0gbWF0ZXJpYWxcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBtYXRlcmlhbChtYXRlcmlhbDogTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9fbWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLl9yZWdpc3RyeSA9IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKG1hdGVyaWFsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgX21hdGVyaWFsKCk6IE1hdGVyaWFsIHtcbiAgICBpZiAoIXRoaXMuX19tYXRlcmlhbCkge1xuICAgICAgY29uc3QgbSA9IHV0aWxzLmdldE1hdGVyaWFsKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgdGhpcy5tYXRlcmlhbChtKTtcbiAgICAgIHJldHVybiBtO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fX21hdGVyaWFsO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KSBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHg7XG4gICAgaWYgKHV0aWxzLmlzU2lnbmluZ1BheWxvYWQoZGVjb2RlZFR4bikpIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlQmxvY2soZGVjb2RlZFR4bi5ibG9ja0hhc2gpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBrZXlwYWlyID0gdXRpbHMuZGVjb2RlRG90QWRkcmVzc1RvS2V5UGFpcihkZWNvZGVkVHhuLmFkZHJlc3MpO1xuICAgICAgdGhpcy5zZW5kZXIoeyBhZGRyZXNzOiBrZXlwYWlyLmdldEFkZHJlc3MoKSB9KTtcbiAgICAgIGNvbnN0IGVkU2lnbmF0dXJlID0gdXRpbHMucmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeChyYXdUcmFuc2FjdGlvbiwgeyByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnkgfSk7XG4gICAgICB0aGlzLmFkZFNpZ25hdHVyZShrZXlwYWlyLmdldEtleXMoKSwgQnVmZmVyLmZyb20oZWRTaWduYXR1cmUsICdoZXgnKSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRpdHkoeyBtYXhEdXJhdGlvbjogZGVjb2RlZFR4bi5lcmFQZXJpb2QgfSk7XG4gICAgdGhpcy5zZXF1ZW5jZUlkKHtcbiAgICAgIG5hbWU6ICdOb25jZScsXG4gICAgICBrZXl3b3JkOiAnbm9uY2UnLFxuICAgICAgdmFsdWU6IGRlY29kZWRUeG4ubm9uY2UsXG4gICAgfSk7XG4gICAgaWYgKGRlY29kZWRUeG4udGlwKSB7XG4gICAgICB0aGlzLmZlZSh7IGFtb3VudDogYCR7ZGVjb2RlZFR4bi50aXB9YCwgdHlwZTogJ3RpcCcgfSk7XG4gICAgfVxuICAgIHRoaXMubWV0aG9kKGRlY29kZWRUeG4ubWV0aG9kIGFzIHVua25vd24gYXMgVHhNZXRob2QpO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odGhpcy5idWlsZFRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlZ2lzdHJ5KHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmNoYWluTmFtZSh0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUpO1xuICAgIGlmICh0aGlzLl9rZXlQYWlyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fa2V5UGFpcik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBpZiB3ZSBoYXZlIGEgc2lnbmF0dXJlLCBhcHBseSB0aGF0IGFuZCB1cGRhdGUgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb25cbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uY29uc3RydWN0U2lnbmVkUGF5bG9hZCh0aGlzLl9zaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgfVxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQmFzZVR4SW5mbygpOiBDcmVhdGVCYXNlVHhJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFzZVR4SW5mbzoge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIGJsb2NrSGFzaDogdGhpcy5fcmVmZXJlbmNlQmxvY2ssXG4gICAgICAgIGJsb2NrTnVtYmVyOiB0aGlzLl9yZWdpc3RyeS5jcmVhdGVUeXBlKCdCbG9ja051bWJlcicsIHRoaXMuX2Jsb2NrTnVtYmVyKS50b051bWJlcigpLFxuICAgICAgICBlcmFQZXJpb2Q6IHRoaXMuX2VyYVBlcmlvZCxcbiAgICAgICAgZ2VuZXNpc0hhc2g6IHRoaXMuX21hdGVyaWFsLmdlbmVzaXNIYXNoLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHNwZWNWZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC5zcGVjVmVyc2lvbixcbiAgICAgICAgdHJhbnNhY3Rpb25WZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICAgIG5vbmNlOiB0aGlzLl9ub25jZSxcbiAgICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgICAgaXNJbW1vcnRhbEVyYTogdGhpcy5fZXJhUGVyaW9kID09PSAwLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqIHVzaW5nIHRoZSBAc3Vic3RyYXRlL3R4d3JhcHBlciBidWlsZGVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IoYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoeyBrZXkgfTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcztcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggPSBpc1ZhbGlkRWQyNTUxOVNlZWQoa2V5KTtcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CYXNlNjQgPSBpc1ZhbGlkRWQyNTUxOVNlZWQoQnVmZmVyLmZyb20oa2V5LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFNlZWQgPSB1dGlscy5kZWNvZGVTZWVkKGtleSk7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShkZWNvZGVkU2VlZC5zZWVkKS50b1N0cmluZygnaGV4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzICYmICFpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oXG4gICAgZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LFxuICAgIHJhd1RyYW5zYWN0aW9uPzogc3RyaW5nLFxuICApOiB2b2lkO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSkgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4O1xuXG4gICAgY29uc3QgZXJhUGVyaW9kID0gZGVjb2RlZFR4bi5lcmFQZXJpb2Q7XG4gICAgY29uc3Qgbm9uY2UgPSBkZWNvZGVkVHhuLm5vbmNlO1xuICAgIGNvbnN0IHRpcCA9IGRlY29kZWRUeG4udGlwO1xuXG4gICAgaWYgKHV0aWxzLmlzU2lnbmluZ1BheWxvYWQoZGVjb2RlZFR4bikpIHtcbiAgICAgIGNvbnN0IGJsb2NrSGFzaCA9IGRlY29kZWRUeG4uYmxvY2tIYXNoO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNpZ25pbmdQYXlsb2FkVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgICBlcmFQZXJpb2QsXG4gICAgICAgIGJsb2NrSGFzaCxcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIHRpcCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeG4uYWRkcmVzcztcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTaWduZWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIHNlbmRlcixcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIGVyYVBlcmlvZCxcbiAgICAgICAgdGlwLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG4sIHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICB0aGlzLl9ibG9ja051bWJlcixcbiAgICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuZ2VuZXNpc0hhc2gsXG4gICAgICB0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUsXG4gICAgICB0aGlzLl9ub25jZSxcbiAgICAgIHRoaXMuX21hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuc3BlY05hbWUsXG4gICAgICB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICB0aGlzLl9lcmFQZXJpb2QsXG4gICAgICB0aGlzLl90aXAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXNlRmllbGRzKFxuICAgIHNlbmRlcjogc3RyaW5nLFxuICAgIGJsb2NrTnVtYmVyOiBudW1iZXIsXG4gICAgYmxvY2tIYXNoOiBzdHJpbmcsXG4gICAgZ2VuZXNpc0hhc2g6IHN0cmluZyxcbiAgICBjaGFpbk5hbWU6IHN0cmluZyxcbiAgICBub25jZTogbnVtYmVyLFxuICAgIHNwZWNWZXJzaW9uOiBudW1iZXIsXG4gICAgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlLFxuICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogbnVtYmVyLFxuICAgIGVyYVBlcmlvZDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHRpcDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gQmFzZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHNlbmRlcixcbiAgICAgIGJsb2NrTnVtYmVyLFxuICAgICAgYmxvY2tIYXNoLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgICBjaGFpbk5hbWUsXG4gICAgICBub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uLFxuICAgICAgc3BlY05hbWUsXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2QsXG4gICAgICB0aXAsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbih7IGtleSB9OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX2tleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0Esc0VBQXVEO0FBQ3ZELDBDQUE0QjtBQUM1QixnRUFBcUM7QUFDckMsOENBY3lCO0FBQ3pCLHFDQUFtRTtBQUVuRSx1Q0FBb0M7QUFDcEMsK0NBQTRDO0FBQzVDLDJDQUE4RztBQUM5RywyREFBd0Q7QUFDeEQsb0RBQTRCO0FBRTVCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQW1CckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOckIsbUVBQW1FO1FBQ25FLDJFQUEyRTtRQUMzRSwrREFBK0Q7UUFDckQsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBSXpFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFlO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFN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O1lBQ1Isa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxHQUFHO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGtDQUFrQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN2RztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxFQUFXO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXRYRCxnREFzWEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBQb2xrYWRvdFNwZWNOYW1lVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBEb3RBc3NldFR5cGVzLFxuICBGZWVPcHRpb25zLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgaXNWYWxpZEVkMjU1MTlTZWVkLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2VxdWVuY2VJZCxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFZhbGlkaXR5V2luZG93LFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciwgSW52YWxpZEZlZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ3JlYXRlQmFzZVR4SW5mbywgTWF0ZXJpYWwsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25TY2hlbWEsIFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLCBTaWduaW5nUGF5bG9hZFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHsgU2luZ2xldG9uUmVnaXN0cnkgfSBmcm9tICcuL3NpbmdsZXRvblJlZ2lzdHJ5JztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9rZXlQYWlyOiBLZXlQYWlyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZT86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZW5kZXI6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX2Jsb2NrTnVtYmVyOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfcmVmZXJlbmNlQmxvY2s6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9ub25jZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3RpcD86IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9lcmFQZXJpb2Q/OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfcmVnaXN0cnk6IFR5cGVSZWdpc3RyeTtcbiAgcHJvdGVjdGVkIF9tZXRob2Q/OiBUeE1ldGhvZDtcbiAgcHJvdGVjdGVkIF9fbWF0ZXJpYWw/OiBNYXRlcmlhbDtcbiAgLy8gc2lnbmF0dXJlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBzaWduIGEgdHJhbnNhY3Rpb24gd2hlbiBidWlsZGluZ1xuICAvLyBub3QgdGhlIHNhbWUgYXMgdGhlIF9zaWduYXR1cmVzIGluIHRyYW5zYWN0aW9uIHdoaWNoIGlzIHRoZSBzaWduYXR1cmUgaW5cbiAgLy8gc3RyaW5nIGhleCBmb3JtYXQgdXNlZCBmb3IgdmFsaWRhdGlvbiBhZnRlciB3ZSBjYWxsIC5idWlsZCgpXG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXTsgLy8gb25seSBzdXBwb3J0IHNpbmdsZSBzaWcgZm9yIG5vd1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWRkcmVzcyBvZiBzZW5kaW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7QmFzZUFkZHJlc3N9IGFkZHJlc3MgVGhlIFNTNTgtZW5jb2RlZCBhZGRyZXNzLlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIHNlbmRlcih7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZW5kZXIoYWRkcmVzcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5vbmNlIGZvciB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbm9uY2VcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBzZXF1ZW5jZUlkKG5vbmNlOiBTZXF1ZW5jZUlkKTogdGhpcyB7XG4gICAgY29uc3QgdmFsdWUgPSBuZXcgQmlnTnVtYmVyKG5vbmNlLnZhbHVlKTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuX25vbmNlID0gdmFsdWUudG9OdW1iZXIoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGlwIHRvIGluY3JlYXNlIHRyYW5zYWN0aW9uIHByaW9yaXR5LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2ZlZS50eXBlXSBvcHRpb25zIGZvciBidWlsZGluZyBmZWUgdHhcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBmZWUoZmVlOiBGZWVPcHRpb25zKTogdGhpcyB7XG4gICAgaWYgKGZlZS50eXBlICE9PSAndGlwJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRGZWVFcnJvcihmZWUudHlwZSwgJ3RpcCcpO1xuICAgIH1cbiAgICBjb25zdCB0aXBCTiA9IG5ldyBCaWdOdW1iZXIoZmVlLmFtb3VudCk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKHRpcEJOKTtcbiAgICB0aGlzLl90aXAgPSB0aXBCTi50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGhlIGNoZWNrcG9pbnQgYmxvY2sgYWZ0ZXIgd2hpY2ggdGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSB7VmFsaWRpdHlXaW5kb3d9IGZpcnN0VmFsaWQgYmxvY2sgY2hlY2twb2ludCB3aGVyZSB0cmFuc2FjdGlvbiBpcyBmaXJzdCB2YWxpZFxuICAgKiBAcGFyYW0ge1ZhbGlkaXR5V2luZG93fSBtYXhEdXJhdGlvbiBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIGNoZWNrcG9pbnQgZm9yIHdoaWNoIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgdmFsaWRpdHkoeyBmaXJzdFZhbGlkLCBtYXhEdXJhdGlvbiB9OiBWYWxpZGl0eVdpbmRvdyk6IHRoaXMge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZChmaXJzdFZhbGlkKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZmlyc3RWYWxpZCkpO1xuICAgICAgdGhpcy5fYmxvY2tOdW1iZXIgPSBmaXJzdFZhbGlkO1xuICAgIH1cbiAgICBpZiAoIV8uaXNVbmRlZmluZWQobWF4RHVyYXRpb24pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihtYXhEdXJhdGlvbikpO1xuICAgICAgdGhpcy5fZXJhUGVyaW9kID0gbWF4RHVyYXRpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoYXNoIG9mIHRoZSBjaGVja3BvaW50IGJsb2NrLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gcmVmZXJlbmNlQmxvY2sgYmxvY2sgaGFzaCBjaGVja3BvaW50IGZyb20gd2hlcmUgdGhlIHRyYW5zYWN0aW9uIGlzIHZhbGlkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mbyN0cmFuc2FjdGlvbi1tb3J0YWxpdHlcbiAgICovXG4gIHJlZmVyZW5jZUJsb2NrKHJlZmVyZW5jZUJsb2NrOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9yZWZlcmVuY2VCbG9jayA9IHJlZmVyZW5jZUJsb2NrO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHZlcnNpb24gZm9yIHRyYW5zYWN0aW9uIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRyYW5zYWN0aW9uVmVyc2lvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBmaWVsZCB3YXMgYWRkZWQgaW4gbWF0ZXJpYWwgZGF0YS5cbiAgICovXG4gIHZlcnNpb24odHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXIpOiB0aGlzIHtcbiAgICAvLyB0aGlzLl90cmFuc2FjdGlvblZlcnNpb24gPSB0cmFuc2FjdGlvblZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZChtZXRob2Q6IFR4TWV0aG9kKTogdGhpcyB7XG4gICAgdGhpcy5fbWV0aG9kID0gbWV0aG9kO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtYXRlcmlhbCBkYXRhIGZvciB0aGUgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSB7TWF0ZXJpYWx9IG1hdGVyaWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgbWF0ZXJpYWwobWF0ZXJpYWw6IE1hdGVyaWFsKTogdGhpcyB7XG4gICAgdGhpcy5fX21hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgdGhpcy5fcmVnaXN0cnkgPSBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZShtYXRlcmlhbCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IF9tYXRlcmlhbCgpOiBNYXRlcmlhbCB7XG4gICAgaWYgKCF0aGlzLl9fbWF0ZXJpYWwpIHtcbiAgICAgIGNvbnN0IG0gPSB1dGlscy5nZXRNYXRlcmlhbCh0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgIHRoaXMubWF0ZXJpYWwobSk7XG4gICAgICByZXR1cm4gbTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX19tYXRlcmlhbDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSkgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4O1xuICAgIGlmICh1dGlscy5pc1NpZ25pbmdQYXlsb2FkKGRlY29kZWRUeG4pKSB7XG4gICAgICB0aGlzLnJlZmVyZW5jZUJsb2NrKGRlY29kZWRUeG4uYmxvY2tIYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qga2V5cGFpciA9IHV0aWxzLmRlY29kZURvdEFkZHJlc3NUb0tleVBhaXIoZGVjb2RlZFR4bi5hZGRyZXNzKTtcbiAgICAgIHRoaXMuc2VuZGVyKHsgYWRkcmVzczoga2V5cGFpci5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKSB9KTtcbiAgICAgIGNvbnN0IGVkU2lnbmF0dXJlID0gdXRpbHMucmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeChyYXdUcmFuc2FjdGlvbiwgeyByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnkgfSk7XG4gICAgICB0aGlzLmFkZFNpZ25hdHVyZShrZXlwYWlyLmdldEtleXMoKSwgQnVmZmVyLmZyb20oZWRTaWduYXR1cmUsICdoZXgnKSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRpdHkoeyBtYXhEdXJhdGlvbjogZGVjb2RlZFR4bi5lcmFQZXJpb2QgfSk7XG4gICAgdGhpcy5zZXF1ZW5jZUlkKHtcbiAgICAgIG5hbWU6ICdOb25jZScsXG4gICAgICBrZXl3b3JkOiAnbm9uY2UnLFxuICAgICAgdmFsdWU6IGRlY29kZWRUeG4ubm9uY2UsXG4gICAgfSk7XG4gICAgaWYgKGRlY29kZWRUeG4udGlwKSB7XG4gICAgICB0aGlzLmZlZSh7IGFtb3VudDogYCR7ZGVjb2RlZFR4bi50aXB9YCwgdHlwZTogJ3RpcCcgfSk7XG4gICAgfVxuICAgIHRoaXMubWV0aG9kKGRlY29kZWRUeG4ubWV0aG9kIGFzIHVua25vd24gYXMgVHhNZXRob2QpO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odGhpcy5idWlsZFRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlZ2lzdHJ5KHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmNoYWluTmFtZSh0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUpO1xuICAgIGlmICh0aGlzLl9rZXlQYWlyKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnNpZ24odGhpcy5fa2V5UGFpcik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBpZiB3ZSBoYXZlIGEgc2lnbmF0dXJlLCBhcHBseSB0aGF0IGFuZCB1cGRhdGUgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb25cbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uY29uc3RydWN0U2lnbmVkUGF5bG9hZCh0aGlzLl9zaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgfVxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQmFzZVR4SW5mbygpOiBDcmVhdGVCYXNlVHhJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFzZVR4SW5mbzoge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIGJsb2NrSGFzaDogdGhpcy5fcmVmZXJlbmNlQmxvY2ssXG4gICAgICAgIGJsb2NrTnVtYmVyOiB0aGlzLl9yZWdpc3RyeS5jcmVhdGVUeXBlKCdCbG9ja051bWJlcicsIHRoaXMuX2Jsb2NrTnVtYmVyKS50b051bWJlcigpLFxuICAgICAgICBlcmFQZXJpb2Q6IHRoaXMuX2VyYVBlcmlvZCxcbiAgICAgICAgZ2VuZXNpc0hhc2g6IHRoaXMuX21hdGVyaWFsLmdlbmVzaXNIYXNoLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHNwZWNWZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC5zcGVjVmVyc2lvbixcbiAgICAgICAgdHJhbnNhY3Rpb25WZXJzaW9uOiB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICAgIG5vbmNlOiB0aGlzLl9ub25jZSxcbiAgICAgICAgdGlwOiB0aGlzLl90aXAsXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgICAgaXNJbW1vcnRhbEVyYTogdGhpcy5fZXJhUGVyaW9kID09PSAwLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqIHVzaW5nIHRoZSBAc3Vic3RyYXRlL3R4d3JhcHBlciBidWlsZGVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IoYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoeyBrZXkgfTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcztcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggPSBpc1ZhbGlkRWQyNTUxOVNlZWQoa2V5KTtcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CYXNlNjQgPSBpc1ZhbGlkRWQyNTUxOVNlZWQoQnVmZmVyLmZyb20oa2V5LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFNlZWQgPSB1dGlscy5kZWNvZGVTZWVkKGtleSk7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShkZWNvZGVkU2VlZC5zZWVkKS50b1N0cmluZygnaGV4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzICYmICFpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRlciBpbnRlcm5hbGx5XG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oXG4gICAgZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4LFxuICAgIHJhd1RyYW5zYWN0aW9uPzogc3RyaW5nLFxuICApOiB2b2lkO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gZGVjb2RlKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgfSkgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4O1xuXG4gICAgY29uc3QgZXJhUGVyaW9kID0gZGVjb2RlZFR4bi5lcmFQZXJpb2Q7XG4gICAgY29uc3Qgbm9uY2UgPSBkZWNvZGVkVHhuLm5vbmNlO1xuICAgIGNvbnN0IHRpcCA9IGRlY29kZWRUeG4udGlwO1xuXG4gICAgaWYgKHV0aWxzLmlzU2lnbmluZ1BheWxvYWQoZGVjb2RlZFR4bikpIHtcbiAgICAgIGNvbnN0IGJsb2NrSGFzaCA9IGRlY29kZWRUeG4uYmxvY2tIYXNoO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNpZ25pbmdQYXlsb2FkVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgICBlcmFQZXJpb2QsXG4gICAgICAgIGJsb2NrSGFzaCxcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIHRpcCxcbiAgICAgIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlbmRlciA9IGRlY29kZWRUeG4uYWRkcmVzcztcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTaWduZWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIHNlbmRlcixcbiAgICAgICAgbm9uY2UsXG4gICAgICAgIGVyYVBlcmlvZCxcbiAgICAgICAgdGlwLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG4sIHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICB0aGlzLl9ibG9ja051bWJlcixcbiAgICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuZ2VuZXNpc0hhc2gsXG4gICAgICB0aGlzLl9tYXRlcmlhbC5jaGFpbk5hbWUsXG4gICAgICB0aGlzLl9ub25jZSxcbiAgICAgIHRoaXMuX21hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuc3BlY05hbWUsXG4gICAgICB0aGlzLl9tYXRlcmlhbC50eFZlcnNpb24sXG4gICAgICB0aGlzLl9lcmFQZXJpb2QsXG4gICAgICB0aGlzLl90aXAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXNlRmllbGRzKFxuICAgIHNlbmRlcjogc3RyaW5nLFxuICAgIGJsb2NrTnVtYmVyOiBudW1iZXIsXG4gICAgYmxvY2tIYXNoOiBzdHJpbmcsXG4gICAgZ2VuZXNpc0hhc2g6IHN0cmluZyxcbiAgICBjaGFpbk5hbWU6IHN0cmluZyxcbiAgICBub25jZTogbnVtYmVyLFxuICAgIHNwZWNWZXJzaW9uOiBudW1iZXIsXG4gICAgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlLFxuICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogbnVtYmVyLFxuICAgIGVyYVBlcmlvZDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHRpcDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gQmFzZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHNlbmRlcixcbiAgICAgIGJsb2NrTnVtYmVyLFxuICAgICAgYmxvY2tIYXNoLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgICBjaGFpbk5hbWUsXG4gICAgICBub25jZSxcbiAgICAgIHNwZWNWZXJzaW9uLFxuICAgICAgc3BlY05hbWUsXG4gICAgICB0cmFuc2FjdGlvblZlcnNpb24sXG4gICAgICBlcmFQZXJpb2QsXG4gICAgICB0aXAsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbih7IGtleSB9OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMuX2tleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5IH0pO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseTransactionBuilderFactory } from '../baseCoin';
2
+ import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
3
3
  import { TransactionBuilder } from './transactionBuilder';
4
4
  import { TransferBuilder } from './transferBuilder';
5
5
  import { AddressInitializationBuilder } from './addressInitializationBuilder';
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAInC,+BAA+B,IAAI,4BAA4B;IAI/D,0BAA0B,IAAI,uBAAuB;IAIrD,8BAA8B,IAAI,IAAI;IAItC,iBAAiB,IAAI,cAAc;IAInC,0BAA0B,IAAI,uBAAuB;IAIrD,eAAe,IAAI,YAAY;IAI/B,oBAAoB,IAAI,iBAAiB;IAIzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAMxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKlC,OAAO,CAAC,UAAU;CA0BnB"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAqC,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,yBAA0B,SAAQ,6BAA6B;IAC1E,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,cAAc;IAInC,+BAA+B,IAAI,4BAA4B;IAI/D,0BAA0B,IAAI,uBAAuB;IAIrD,8BAA8B,IAAI,IAAI;IAItC,iBAAiB,IAAI,cAAc;IAInC,0BAA0B,IAAI,uBAAuB;IAIrD,eAAe,IAAI,YAAY;IAI/B,oBAAoB,IAAI,iBAAiB;IAIzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAMxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKlC,OAAO,CAAC,UAAU;CA0BnB"}