@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
@@ -4,15 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.instructionParamsFactory = void 0;
7
- var web3_js_1 = require("@solana/web3.js");
8
- var baseCoin_1 = require("../baseCoin");
9
- var errors_1 = require("../baseCoin/errors");
10
- var constants_1 = require("./constants");
11
- var utils_1 = require("./utils");
12
- var tokenEncodeDecode_1 = require("./tokenEncodeDecode");
13
- var spl_token_1 = require("@solana/spl-token");
14
- var assert_1 = __importDefault(require("assert"));
15
- var statics_1 = require("@bitgo/statics");
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const sdk_core_1 = require("@bitgo/sdk-core");
9
+ const constants_1 = require("./constants");
10
+ const utils_1 = require("./utils");
11
+ const tokenEncodeDecode_1 = require("./tokenEncodeDecode");
12
+ const spl_token_1 = require("@solana/spl-token");
13
+ const assert_1 = __importDefault(require("assert"));
14
+ const statics_1 = require("@bitgo/statics");
16
15
  /**
17
16
  * Construct instructions params from Solana instructions
18
17
  *
@@ -22,20 +21,20 @@ var statics_1 = require("@bitgo/statics");
22
21
  */
23
22
  function instructionParamsFactory(type, instructions) {
24
23
  switch (type) {
25
- case baseCoin_1.TransactionType.WalletInitialization:
24
+ case sdk_core_1.TransactionType.WalletInitialization:
26
25
  return parseWalletInitInstructions(instructions);
27
- case baseCoin_1.TransactionType.Send:
26
+ case sdk_core_1.TransactionType.Send:
28
27
  return parseSendInstructions(instructions);
29
- case baseCoin_1.TransactionType.StakingActivate:
28
+ case sdk_core_1.TransactionType.StakingActivate:
30
29
  return parseStakingActivateInstructions(instructions);
31
- case baseCoin_1.TransactionType.StakingDeactivate:
30
+ case sdk_core_1.TransactionType.StakingDeactivate:
32
31
  return parseStakingDeactivateInstructions(instructions);
33
- case baseCoin_1.TransactionType.StakingWithdraw:
32
+ case sdk_core_1.TransactionType.StakingWithdraw:
34
33
  return parseStakingWithdrawInstructions(instructions);
35
- case baseCoin_1.TransactionType.AssociatedTokenAccountInitialization:
34
+ case sdk_core_1.TransactionType.AssociatedTokenAccountInitialization:
36
35
  return parseAtaInitInstructions(instructions);
37
36
  default:
38
- throw new errors_1.NotSupported('Invalid transaction, transaction type not supported: ' + type);
37
+ throw new sdk_core_1.NotSupported('Invalid transaction, transaction type not supported: ' + type);
39
38
  }
40
39
  }
41
40
  exports.instructionParamsFactory = instructionParamsFactory;
@@ -46,10 +45,10 @@ exports.instructionParamsFactory = instructionParamsFactory;
46
45
  * @returns {InstructionParams[]} An array containing instruction params for Wallet initialization tx
47
46
  */
48
47
  function parseWalletInitInstructions(instructions) {
49
- var instructionData = [];
50
- var createInstruction = web3_js_1.SystemInstruction.decodeCreateAccount(instructions[constants_1.walletInitInstructionIndexes.Create]);
51
- var nonceInitInstruction = web3_js_1.SystemInstruction.decodeNonceInitialize(instructions[constants_1.walletInitInstructionIndexes.InitializeNonceAccount]);
52
- var walletInit = {
48
+ const instructionData = [];
49
+ const createInstruction = web3_js_1.SystemInstruction.decodeCreateAccount(instructions[constants_1.walletInitInstructionIndexes.Create]);
50
+ const nonceInitInstruction = web3_js_1.SystemInstruction.decodeNonceInitialize(instructions[constants_1.walletInitInstructionIndexes.InitializeNonceAccount]);
51
+ const walletInit = {
53
52
  type: constants_1.InstructionBuilderTypes.CreateNonceAccount,
54
53
  params: {
55
54
  fromAddress: createInstruction.fromPubkey.toString(),
@@ -59,7 +58,7 @@ function parseWalletInitInstructions(instructions) {
59
58
  },
60
59
  };
61
60
  instructionData.push(walletInit);
62
- var memo = getMemo(instructions, constants_1.walletInitInstructionIndexes);
61
+ const memo = getMemo(instructions, constants_1.walletInitInstructionIndexes);
63
62
  if (memo) {
64
63
  instructionData.push(memo);
65
64
  }
@@ -73,17 +72,17 @@ function parseWalletInitInstructions(instructions) {
73
72
  * @returns {InstructionParams[]} An array containing instruction params for Send tx
74
73
  */
75
74
  function parseSendInstructions(instructions) {
76
- var instructionData = [];
77
- var _loop_1 = function (instruction) {
78
- var type = utils_1.getInstructionType(instruction);
75
+ const instructionData = [];
76
+ for (const instruction of instructions) {
77
+ const type = utils_1.getInstructionType(instruction);
79
78
  switch (type) {
80
79
  case constants_1.ValidInstructionTypesEnum.Memo:
81
- var memo = { type: constants_1.InstructionBuilderTypes.Memo, params: { memo: instruction.data.toString() } };
80
+ const memo = { type: constants_1.InstructionBuilderTypes.Memo, params: { memo: instruction.data.toString() } };
82
81
  instructionData.push(memo);
83
82
  break;
84
83
  case constants_1.ValidInstructionTypesEnum.AdvanceNonceAccount:
85
- var advanceNonceInstruction = web3_js_1.SystemInstruction.decodeNonceAdvance(instruction);
86
- var nonce = {
84
+ const advanceNonceInstruction = web3_js_1.SystemInstruction.decodeNonceAdvance(instruction);
85
+ const nonce = {
87
86
  type: constants_1.InstructionBuilderTypes.NonceAdvance,
88
87
  params: {
89
88
  walletNonceAddress: advanceNonceInstruction.noncePubkey.toString(),
@@ -93,8 +92,8 @@ function parseSendInstructions(instructions) {
93
92
  instructionData.push(nonce);
94
93
  break;
95
94
  case constants_1.ValidInstructionTypesEnum.Transfer:
96
- var transferInstruction = web3_js_1.SystemInstruction.decodeTransfer(instruction);
97
- var transfer = {
95
+ const transferInstruction = web3_js_1.SystemInstruction.decodeTransfer(instruction);
96
+ const transfer = {
98
97
  type: constants_1.InstructionBuilderTypes.Transfer,
99
98
  params: {
100
99
  fromAddress: transferInstruction.fromPubkey.toString(),
@@ -105,33 +104,23 @@ function parseSendInstructions(instructions) {
105
104
  instructionData.push(transfer);
106
105
  break;
107
106
  case constants_1.ValidInstructionTypesEnum.TokenTransfer:
108
- var tokenTransferInstruction_1 = tokenEncodeDecode_1.decodeTransferCheckedInstruction(instruction, spl_token_1.TOKEN_PROGRAM_ID);
109
- var token_1;
110
- statics_1.coins.forEach(function (value, key) {
111
- if (value instanceof statics_1.SolCoin && value.tokenAddress === tokenTransferInstruction_1.keys.mint.pubkey.toString()) {
112
- token_1 = value;
113
- }
114
- });
115
- assert_1.default(token_1);
116
- var tokenTransfer = {
107
+ const tokenTransferInstruction = tokenEncodeDecode_1.decodeTransferCheckedInstruction(instruction, spl_token_1.TOKEN_PROGRAM_ID);
108
+ const tokenName = findTokenName(tokenTransferInstruction.keys.mint.pubkey.toString());
109
+ const tokenTransfer = {
117
110
  type: constants_1.InstructionBuilderTypes.TokenTransfer,
118
111
  params: {
119
- fromAddress: tokenTransferInstruction_1.keys.owner.pubkey.toString(),
120
- toAddress: tokenTransferInstruction_1.keys.destination.pubkey.toString(),
121
- amount: tokenTransferInstruction_1.data.amount.toString(),
122
- tokenName: token_1.name,
123
- sourceAddress: tokenTransferInstruction_1.keys.source.pubkey.toString(),
112
+ fromAddress: tokenTransferInstruction.keys.owner.pubkey.toString(),
113
+ toAddress: tokenTransferInstruction.keys.destination.pubkey.toString(),
114
+ amount: tokenTransferInstruction.data.amount.toString(),
115
+ tokenName,
116
+ sourceAddress: tokenTransferInstruction.keys.source.pubkey.toString(),
124
117
  },
125
118
  };
126
119
  instructionData.push(tokenTransfer);
127
120
  break;
128
121
  default:
129
- throw new errors_1.NotSupported('Invalid transaction, instruction type not supported: ' + utils_1.getInstructionType(instruction));
122
+ throw new sdk_core_1.NotSupported('Invalid transaction, instruction type not supported: ' + utils_1.getInstructionType(instruction));
130
123
  }
131
- };
132
- for (var _i = 0, instructions_1 = instructions; _i < instructions_1.length; _i++) {
133
- var instruction = instructions_1[_i];
134
- _loop_1(instruction);
135
124
  }
136
125
  return instructionData;
137
126
  }
@@ -143,11 +132,11 @@ function parseSendInstructions(instructions) {
143
132
  * @returns {InstructionParams[]} An array containing instruction params for staking activate tx
144
133
  */
145
134
  function parseStakingActivateInstructions(instructions) {
146
- var instructionData = [];
147
- var createInstruction = web3_js_1.SystemInstruction.decodeCreateAccount(instructions[constants_1.stakingActivateInstructionsIndexes.Create]);
148
- var initializeInstruction = web3_js_1.StakeInstruction.decodeInitialize(instructions[constants_1.stakingActivateInstructionsIndexes.Initialize]);
149
- var delegateInstruction = web3_js_1.StakeInstruction.decodeDelegate(instructions[constants_1.stakingActivateInstructionsIndexes.Delegate]);
150
- var stakingActivate = {
135
+ const instructionData = [];
136
+ const createInstruction = web3_js_1.SystemInstruction.decodeCreateAccount(instructions[constants_1.stakingActivateInstructionsIndexes.Create]);
137
+ const initializeInstruction = web3_js_1.StakeInstruction.decodeInitialize(instructions[constants_1.stakingActivateInstructionsIndexes.Initialize]);
138
+ const delegateInstruction = web3_js_1.StakeInstruction.decodeDelegate(instructions[constants_1.stakingActivateInstructionsIndexes.Delegate]);
139
+ const stakingActivate = {
151
140
  type: constants_1.InstructionBuilderTypes.StakingActivate,
152
141
  params: {
153
142
  fromAddress: createInstruction.fromPubkey.toString(),
@@ -157,7 +146,7 @@ function parseStakingActivateInstructions(instructions) {
157
146
  },
158
147
  };
159
148
  instructionData.push(stakingActivate);
160
- var memo = getMemo(instructions, constants_1.stakingActivateInstructionsIndexes);
149
+ const memo = getMemo(instructions, constants_1.stakingActivateInstructionsIndexes);
161
150
  if (memo) {
162
151
  instructionData.push(memo);
163
152
  }
@@ -171,9 +160,9 @@ function parseStakingActivateInstructions(instructions) {
171
160
  * @returns {InstructionParams[]} An array containing instruction params for staking deactivate tx
172
161
  */
173
162
  function parseStakingDeactivateInstructions(instructions) {
174
- var instructionData = [];
175
- var deactivateInstruction = web3_js_1.StakeInstruction.decodeDeactivate(instructions[constants_1.stakingDeactivateInstructionsIndexes.Deactivate]);
176
- var stakingDeactivate = {
163
+ const instructionData = [];
164
+ const deactivateInstruction = web3_js_1.StakeInstruction.decodeDeactivate(instructions[constants_1.stakingDeactivateInstructionsIndexes.Deactivate]);
165
+ const stakingDeactivate = {
177
166
  type: constants_1.InstructionBuilderTypes.StakingDeactivate,
178
167
  params: {
179
168
  fromAddress: deactivateInstruction.authorizedPubkey.toString(),
@@ -181,7 +170,7 @@ function parseStakingDeactivateInstructions(instructions) {
181
170
  },
182
171
  };
183
172
  instructionData.push(stakingDeactivate);
184
- var memo = getMemo(instructions, constants_1.stakingDeactivateInstructionsIndexes);
173
+ const memo = getMemo(instructions, constants_1.stakingDeactivateInstructionsIndexes);
185
174
  if (memo) {
186
175
  instructionData.push(memo);
187
176
  }
@@ -195,9 +184,9 @@ function parseStakingDeactivateInstructions(instructions) {
195
184
  * @returns {InstructionParams[]} An array containing instruction params for staking withdraw tx
196
185
  */
197
186
  function parseStakingWithdrawInstructions(instructions) {
198
- var instructionData = [];
199
- var withdrawInstruction = web3_js_1.StakeInstruction.decodeWithdraw(instructions[constants_1.stakingWithdrawInstructionsIndexes.Withdraw]);
200
- var stakingWithdraw = {
187
+ const instructionData = [];
188
+ const withdrawInstruction = web3_js_1.StakeInstruction.decodeWithdraw(instructions[constants_1.stakingWithdrawInstructionsIndexes.Withdraw]);
189
+ const stakingWithdraw = {
201
190
  type: constants_1.InstructionBuilderTypes.StakingWithdraw,
202
191
  params: {
203
192
  fromAddress: withdrawInstruction.authorizedPubkey.toString(),
@@ -206,7 +195,7 @@ function parseStakingWithdrawInstructions(instructions) {
206
195
  },
207
196
  };
208
197
  instructionData.push(stakingWithdraw);
209
- var memo = getMemo(instructions, constants_1.stakingWithdrawInstructionsIndexes);
198
+ const memo = getMemo(instructions, constants_1.stakingWithdrawInstructionsIndexes);
210
199
  if (memo) {
211
200
  instructionData.push(memo);
212
201
  }
@@ -220,7 +209,7 @@ function parseStakingWithdrawInstructions(instructions) {
220
209
  * @returns {Memo | undefined} - memo object or undefined
221
210
  */
222
211
  function getMemo(instructions, instructionIndexes) {
223
- var instructionsLength = Object.keys(instructionIndexes).length;
212
+ const instructionsLength = Object.keys(instructionIndexes).length;
224
213
  if (instructions.length === instructionsLength && instructions[instructionIndexes.Memo]) {
225
214
  return {
226
215
  type: constants_1.InstructionBuilderTypes.Memo,
@@ -228,7 +217,7 @@ function getMemo(instructions, instructionIndexes) {
228
217
  };
229
218
  }
230
219
  }
231
- var ataInitInstructionKeysIndexes = {
220
+ const ataInitInstructionKeysIndexes = {
232
221
  PayerAddress: 0,
233
222
  ATAAddress: 1,
234
223
  OwnerAddress: 2,
@@ -241,20 +230,23 @@ var ataInitInstructionKeysIndexes = {
241
230
  * @returns {InstructionParams[]} An array containing instruction params for Send tx
242
231
  */
243
232
  function parseAtaInitInstructions(instructions) {
244
- var instructionData = [];
245
- var ataInitInstruction = instructions[constants_1.ataInitInstructionIndexes.InitializeAssociatedTokenAccount];
246
- var ataInit = {
233
+ const instructionData = [];
234
+ const ataInitInstruction = instructions[constants_1.ataInitInstructionIndexes.InitializeAssociatedTokenAccount];
235
+ const mintAddress = ataInitInstruction.keys[ataInitInstructionKeysIndexes.MintAddress].pubkey.toString();
236
+ const tokenName = findTokenName(mintAddress);
237
+ const ataInit = {
247
238
  type: constants_1.InstructionBuilderTypes.CreateAssociatedTokenAccount,
248
239
  params: {
249
- mintAddress: ataInitInstruction.keys[ataInitInstructionKeysIndexes.MintAddress].pubkey.toString(),
240
+ mintAddress,
250
241
  ataAddress: ataInitInstruction.keys[ataInitInstructionKeysIndexes.ATAAddress].pubkey.toString(),
251
242
  ownerAddress: ataInitInstruction.keys[ataInitInstructionKeysIndexes.OwnerAddress].pubkey.toString(),
252
243
  payerAddress: ataInitInstruction.keys[ataInitInstructionKeysIndexes.PayerAddress].pubkey.toString(),
244
+ tokenName,
253
245
  },
254
246
  };
255
247
  instructionData.push(ataInit);
256
248
  if (instructions.length === 2 && instructions[constants_1.ataInitInstructionIndexes.Memo]) {
257
- var memo = {
249
+ const memo = {
258
250
  type: constants_1.InstructionBuilderTypes.Memo,
259
251
  params: { memo: instructions[constants_1.ataInitInstructionIndexes.Memo].data.toString() },
260
252
  };
@@ -262,4 +254,14 @@ function parseAtaInitInstructions(instructions) {
262
254
  }
263
255
  return instructionData;
264
256
  }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25QYXJhbXNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL2luc3RydWN0aW9uUGFyYW1zRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBOEY7QUFFOUYsd0NBQThDO0FBQzlDLDZDQUFrRDtBQUNsRCx5Q0FRcUI7QUFhckIsaUNBQTZDO0FBQzdDLHlEQUF1RTtBQUN2RSwrQ0FBcUQ7QUFDckQsa0RBQTRCO0FBQzVCLDBDQUFnRDtBQUVoRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsSUFBcUIsRUFDckIsWUFBc0M7SUFFdEMsUUFBUSxJQUFJLEVBQUU7UUFDWixLQUFLLDBCQUFlLENBQUMsb0JBQW9CO1lBQ3ZDLE9BQU8sMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsS0FBSywwQkFBZSxDQUFDLElBQUk7WUFDdkIsT0FBTyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxLQUFLLDBCQUFlLENBQUMsZUFBZTtZQUNsQyxPQUFPLGdDQUFnQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELEtBQUssMEJBQWUsQ0FBQyxpQkFBaUI7WUFDcEMsT0FBTyxrQ0FBa0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxLQUFLLDBCQUFlLENBQUMsZUFBZTtZQUNsQyxPQUFPLGdDQUFnQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELEtBQUssMEJBQWUsQ0FBQyxvQ0FBb0M7WUFDdkQsT0FBTyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRDtZQUNFLE1BQU0sSUFBSSxxQkFBWSxDQUFDLHVEQUF1RCxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQzFGO0FBQ0gsQ0FBQztBQXBCRCw0REFvQkM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsMkJBQTJCLENBQUMsWUFBc0M7SUFDekUsSUFBTSxlQUFlLEdB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QUNOLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNqRyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDL0YsWUFBWSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25HLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtTQUNwRztLQUNGLENBQUM7SUFDRixlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTlCLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLHFDQUF5QixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdFLElBQU0sSUFBSSxHQUFTO1lBQ2pCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxJQUFJO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1NBQy9FLENBQUM7UUFDRixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzVCO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWtlSW5zdHJ1Y3Rpb24sIFN5c3RlbUluc3RydWN0aW9uLCBUcmFuc2FjdGlvbkluc3RydWN0aW9uIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgTm90U3VwcG9ydGVkIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7XG4gIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLFxuICBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLFxuICB3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLFxuICBzdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzLFxuICBzdGFraW5nRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMsXG4gIHN0YWtpbmdXaXRoZHJhd0luc3RydWN0aW9uc0luZGV4ZXMsXG4gIGF0YUluaXRJbnN0cnVjdGlvbkluZGV4ZXMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIEF0YUluaXQsXG4gIEluc3RydWN0aW9uUGFyYW1zLFxuICBXYWxsZXRJbml0LFxuICBUcmFuc2ZlcixcbiAgTm9uY2UsXG4gIE1lbW8sXG4gIFN0YWtpbmdBY3RpdmF0ZSxcbiAgU3Rha2luZ0RlYWN0aXZhdGUsXG4gIFN0YWtpbmdXaXRoZHJhdyxcbiAgVG9rZW5UcmFuc2Zlcixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXRJbnN0cnVjdGlvblR5cGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGRlY29kZVRyYW5zZmVyQ2hlY2tlZEluc3RydWN0aW9uIH0gZnJvbSAnLi90b2tlbkVuY29kZURlY29kZSc7XG5pbXBvcnQgeyBUT0tFTl9QUk9HUkFNX0lEIH0gZnJvbSAnQHNvbGFuYS9zcGwtdG9rZW4nO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgY29pbnMsIFNvbENvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbi8qKlxuICogQ29uc3RydWN0IGluc3RydWN0aW9ucyBwYXJhbXMgZnJvbSBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHR5cGUgLSB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIHNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zdHJ1Y3Rpb25QYXJhbXNGYWN0b3J5KFxuICB0eXBlOiBUcmFuc2FjdGlvblR5cGUsXG4gIGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdLFxuKTogSW5zdHJ1Y3Rpb25QYXJhbXNbXSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uOlxuICAgICAgcmV0dXJuIHBhcnNlV2FsbGV0SW5pdEluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICByZXR1cm4gcGFyc2VTZW5kSW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9ucyk7XG4gICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlOlxuICAgICAgcmV0dXJuIHBhcnNlU3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9ucyk7XG4gICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU6XG4gICAgICByZXR1cm4gcGFyc2VTdGFraW5nRGVhY3RpdmF0ZUluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgIHJldHVybiBwYXJzZVN0YWtpbmdXaXRoZHJhd0luc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbjpcbiAgICAgIHJldHVybiBwYXJzZUF0YUluaXRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnSW52YWxpZCB0cmFuc2FjdGlvbiwgdHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkOiAnICsgdHlwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZXMgU29sYW5hIGluc3RydWN0aW9ucyB0byBXYWxsZXQgaW5pdGlhbGl6YXRpb24gdHggaW5zdHJ1Y3Rpb25zIHBhcmFtc1xuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBpbnN0cnVjdGlvbnMgLSBjb250YWluaW5nIGNyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBub25jZSBzb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIFdhbGxldCBpbml0aWFsaXphdGlvbiB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVdhbGxldEluaXRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxXYWxsZXRJbml0IHwgTWVtbz4ge1xuICBjb25zdCBpbnN0cnVjdGlvbkRhdGE6IEFycmF5PFdhbGxldEluaXQgfCBNZW1vPiA9IFtdO1xuICBjb25zdCBjcmVhdGVJbnN0cnVjdGlvbiA9IFN5c3RlbUluc3RydWN0aW9uLmRlY29kZUNyZWF0ZUFjY291bnQoaW5zdHJ1Y3Rpb25zW3dhbGxldEluaXRJbnN0cnVjdGlvbkluZGV4ZXMuQ3JlYXRlXSk7XG4gIGNvbnN0IG5vbmNlSW5pdEluc3RydWN0aW9uID0gU3lzdGVtSW5zdHJ1Y3Rpb24uZGVjb2RlTm9uY2VJbml0aWFsaXplKFxuICAgIGluc3RydWN0aW9uc1t3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLkluaXRpYWxpemVOb25jZUFjY291bnRdLFxuICApO1xuXG4gIGNvbnN0IHdhbGxldEluaXQ6IFdhbGxldEluaXQgPSB7XG4gICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlTm9uY2VBY2NvdW50LFxuICAgIHBhcmFtczoge1xuICAgICAgZnJvbUFkZHJlc3M6IGNyZWF0ZUluc3RydWN0aW9uLmZyb21QdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIG5vbmNlQWRkcmVzczogbm9uY2VJbml0SW5zdHJ1Y3Rpb24ubm9uY2VQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIGF1dGhBZGRyZXNzOiBub25jZUluaXRJbnN0cnVjdGlvbi5hdXRob3JpemVkUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhbW91bnQ6IGNyZWF0ZUluc3RydWN0aW9uLmxhbXBvcnRzLnRvU3RyaW5nKCksXG4gICAgfSxcbiAgfTtcbiAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2god2FsbGV0SW5pdCk7XG5cbiAgY29uc3QgbWVtbyA9IGdldE1lbW8oaW5zdHJ1Y3Rpb25zLCB3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzKTtcbiAgaWYgKG1lbW8pIHtcbiAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgfVxuXG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gU2VuZCB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKiBPbmx5IHN1cHBvcnRzIE1lbW8sIFRyYW5zZmVyIGFuZCBBZHZhbmNlIE5vbmNlIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3IgU2VuZCB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVNlbmRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxOb25jZSB8IE1lbW8gfCBUcmFuc2ZlciB8IFRva2VuVHJhbnNmZXI+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxOb25jZSB8IE1lbW8gfCBUcmFuc2ZlciB8IFRva2VuVHJhbnNmZXI+ID0gW107XG4gIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgaW5zdHJ1Y3Rpb25zKSB7XG4gICAgY29uc3QgdHlwZSA9IGdldEluc3RydWN0aW9uVHlwZShpbnN0cnVjdGlvbik7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uTWVtbzpcbiAgICAgICAgY29uc3QgbWVtbzogTWVtbyA9IHsgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTWVtbywgcGFyYW1zOiB7IG1lbW86IGluc3RydWN0aW9uLmRhdGEudG9TdHJpbmcoKSB9IH07XG4gICAgICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKG1lbW8pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5BZHZhbmNlTm9uY2VBY2NvdW50OlxuICAgICAgICBjb25zdCBhZHZhbmNlTm9uY2VJbnN0cnVjdGlvbiA9IFN5c3RlbUluc3RydWN0aW9uLmRlY29kZU5vbmNlQWR2YW5jZShpbnN0cnVjdGlvbik7XG4gICAgICAgIGNvbnN0IG5vbmNlOiBOb25jZSA9IHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Ob25jZUFkdmFuY2UsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICB3YWxsZXROb25jZUFkZHJlc3M6IGFkdmFuY2VOb25jZUluc3RydWN0aW9uLm5vbmNlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICBhdXRoV2FsbGV0QWRkcmVzczogYWR2YW5jZU5vbmNlSW5zdHJ1Y3Rpb24uYXV0aG9yaXplZFB1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKG5vbmNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uVHJhbnNmZXI6XG4gICAgICAgIGNvbnN0IHRyYW5zZmVySW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVUcmFuc2ZlcihpbnN0cnVjdGlvbik7XG4gICAgICAgIGNvbnN0IHRyYW5zZmVyOiBUcmFuc2ZlciA9IHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5UcmFuc2ZlcixcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIGZyb21BZGRyZXNzOiB0cmFuc2Zlckluc3RydWN0aW9uLmZyb21QdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogdHJhbnNmZXJJbnN0cnVjdGlvbi50b1B1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgICAgYW1vdW50OiB0cmFuc2Zlckluc3RydWN0aW9uLmxhbXBvcnRzLnRvU3RyaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2godHJhbnNmZXIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5Ub2tlblRyYW5zZmVyOlxuICAgICAgICBjb25zdCB0b2tlblRyYW5zZmVySW5zdHJ1Y3Rpb24gPSBkZWNvZGVUcmFuc2ZlckNoZWNrZWRJbnN0cnVjdGlvbihpbnN0cnVjdGlvbiwgVE9LRU5fUFJPR1JBTV9JRCk7XG4gICAgICAgIGxldCB0b2tlbjtcbiAgICAgICAgY29pbnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNvbENvaW4gJiYgdmFsdWUudG9rZW5BZGRyZXNzID09PSB0b2tlblRyYW5zZmVySW5zdHJ1Y3Rpb24ua2V5cy5taW50LnB1YmtleS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGFzc2VydCh0b2tlbik7XG4gICAgICAgIGNvbnN0IHRva2VuVHJhbnNmZXI6IFRva2VuVHJhbnNmZXIgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVG9rZW5UcmFuc2ZlcixcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIGZyb21BZGRyZXNzOiB0b2tlblRyYW5zZmVySW5zdHJ1Y3Rpb24ua2V5cy5vd25lci5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogdG9rZW5UcmFuc2Zlckluc3RydWN0aW9uLmtleXMuZGVzdGluYXRpb24ucHVia2V5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICBhbW91bnQ6IHRva2VuVHJhbnNmZXJJbnN0cnVjdGlvbi5kYXRhLmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgdG9rZW5OYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgICAgICAgc291cmNlQWRkcmVzczogdG9rZW5UcmFuc2Zlckluc3RydWN0aW9uLmtleXMuc291cmNlLnB1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKHRva2VuVHJhbnNmZXIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoXG4gICAgICAgICAgJ0ludmFsaWQgdHJhbnNhY3Rpb24sIGluc3RydWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZDogJyArIGdldEluc3RydWN0aW9uVHlwZShpbnN0cnVjdGlvbiksXG4gICAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gY3JlYXRlIHN0YWtpbmcgdHggYW5kIGRlbGVnYXRlIHR4IGluc3RydWN0aW9ucyBwYXJhbXNcbiAqIE9ubHkgc3VwcG9ydHMgU3Rha2luZ0FjdGl2YXRlIGFuZCBNZW1vIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3Igc3Rha2luZyBhY3RpdmF0ZSB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVN0YWtpbmdBY3RpdmF0ZUluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSk6IEFycmF5PFN0YWtpbmdBY3RpdmF0ZSB8IE1lbW8+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxTdGFraW5nQWN0aXZhdGUgfCBNZW1vPiA9IFtdO1xuICBjb25zdCBjcmVhdGVJbnN0cnVjdGlvbiA9IFN5c3RlbUluc3RydWN0aW9uLmRlY29kZUNyZWF0ZUFjY291bnQoXG4gICAgaW5zdHJ1Y3Rpb25zW3N0YWtpbmdBY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMuQ3JlYXRlXSxcbiAgKTtcbiAgY29uc3QgaW5pdGlhbGl6ZUluc3RydWN0aW9uID0gU3Rha2VJbnN0cnVjdGlvbi5kZWNvZGVJbml0aWFsaXplKFxuICAgIGluc3RydWN0aW9uc1tzdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzLkluaXRpYWxpemVdLFxuICApO1xuICBjb25zdCBkZWxlZ2F0ZUluc3RydWN0aW9uID0gU3Rha2VJbnN0cnVjdGlvbi5kZWNvZGVEZWxlZ2F0ZShcbiAgICBpbnN0cnVjdGlvbnNbc3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcy5EZWxlZ2F0ZV0sXG4gICk7XG5cbiAgY29uc3Qgc3Rha2luZ0FjdGl2YXRlOiBTdGFraW5nQWN0aXZhdGUgPSB7XG4gICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0FjdGl2YXRlLFxuICAgIHBhcmFtczoge1xuICAgICAgZnJvbUFkZHJlc3M6IGNyZWF0ZUluc3RydWN0aW9uLmZyb21QdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHN0YWtpbmdBZGRyZXNzOiBpbml0aWFsaXplSW5zdHJ1Y3Rpb24uc3Rha2VQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIGFtb3VudDogY3JlYXRlSW5zdHJ1Y3Rpb24ubGFtcG9ydHMudG9TdHJpbmcoKSxcbiAgICAgIHZhbGlkYXRvcjogZGVsZWdhdGVJbnN0cnVjdGlvbi52b3RlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgfSxcbiAgfTtcbiAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2goc3Rha2luZ0FjdGl2YXRlKTtcblxuICBjb25zdCBtZW1vID0gZ2V0TWVtbyhpbnN0cnVjdGlvbnMsIHN0YWtpbmdBY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMpO1xuICBpZiAobWVtbykge1xuICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKG1lbW8pO1xuICB9XG5cbiAgcmV0dXJuIGluc3RydWN0aW9uRGF0YTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgU29sYW5hIGluc3RydWN0aW9ucyB0byBjcmVhdGUgZGVhY3RpdmF0ZSB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKiBPbmx5IHN1cHBvcnRzIFN0YWtpbmdEZWFjdGl2YXRlIGFuZCBNZW1vIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3Igc3Rha2luZyBkZWFjdGl2YXRlIHR4XG4gKi9cbmZ1bmN0aW9uIHBhcnNlU3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxTdGFraW5nRGVhY3RpdmF0ZSB8IE1lbW8+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxTdGFraW5nRGVhY3RpdmF0ZSB8IE1lbW8+ID0gW107XG4gIGNvbnN0IGRlYWN0aXZhdGVJbnN0cnVjdGlvbiA9IFN0YWtlSW5zdHJ1Y3Rpb24uZGVjb2RlRGVhY3RpdmF0ZShcbiAgICBpbnN0cnVjdGlvbnNbc3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzLkRlYWN0aXZhdGVdLFxuICApO1xuICBjb25zdCBzdGFraW5nRGVhY3RpdmF0ZTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBmcm9tQWRkcmVzczogZGVhY3RpdmF0ZUluc3RydWN0aW9uLmF1dGhvcml6ZWRQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHN0YWtpbmdBZGRyZXNzOiBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24uc3Rha2VQdWJrZXkudG9TdHJpbmcoKSxcbiAgICB9LFxuICB9O1xuICBpbnN0cnVjdGlvbkRhdGEucHVzaChzdGFraW5nRGVhY3RpdmF0ZSk7XG5cbiAgY29uc3QgbWVtbyA9IGdldE1lbW8oaW5zdHJ1Y3Rpb25zLCBzdGFraW5nRGVhY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMpO1xuICBpZiAobWVtbykge1xuICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKG1lbW8pO1xuICB9XG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gY3JlYXRlIHN0YWtpbmcgIHdpdGhkcmF3IHR4IGluc3RydWN0aW9ucyBwYXJhbXNcbiAqIE9ubHkgc3VwcG9ydHMgU3Rha2luZ1dpdGhkcmF3IGFuZCBNZW1vIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqIEByZXR1cm5zIHtJbnN0cnVjdGlvblBhcmFtc1tdfSBBbiBhcnJheSBjb250YWluaW5nIGluc3RydWN0aW9uIHBhcmFtcyBmb3Igc3Rha2luZyB3aXRoZHJhdyB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVN0YWtpbmdXaXRoZHJhd0luc3RydWN0aW9ucyhpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSk6IEFycmF5PFN0YWtpbmdXaXRoZHJhdyB8IE1lbW8+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxTdGFraW5nV2l0aGRyYXcgfCBNZW1vPiA9IFtdO1xuICBjb25zdCB3aXRoZHJhd0luc3RydWN0aW9uID0gU3Rha2VJbnN0cnVjdGlvbi5kZWNvZGVXaXRoZHJhdyhcbiAgICBpbnN0cnVjdGlvbnNbc3Rha2luZ1dpdGhkcmF3SW5zdHJ1Y3Rpb25zSW5kZXhlcy5XaXRoZHJhd10sXG4gICk7XG5cbiAgY29uc3Qgc3Rha2luZ1dpdGhkcmF3OiBTdGFraW5nV2l0aGRyYXcgPSB7XG4gICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ1dpdGhkcmF3LFxuICAgIHBhcmFtczoge1xuICAgICAgZnJvbUFkZHJlc3M6IHdpdGhkcmF3SW5zdHJ1Y3Rpb24uYXV0aG9yaXplZFB1YmtleS50b1N0cmluZygpLFxuICAgICAgc3Rha2luZ0FkZHJlc3M6IHdpdGhkcmF3SW5zdHJ1Y3Rpb24uc3Rha2VQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIGFtb3VudDogd2l0aGRyYXdJbnN0cnVjdGlvbi5sYW1wb3J0cy50b1N0cmluZygpLFxuICAgIH0sXG4gIH07XG4gIGluc3RydWN0aW9uRGF0YS5wdXNoKHN0YWtpbmdXaXRoZHJhdyk7XG5cbiAgY29uc3QgbWVtbyA9IGdldE1lbW8oaW5zdHJ1Y3Rpb25zLCBzdGFraW5nV2l0aGRyYXdJbnN0cnVjdGlvbnNJbmRleGVzKTtcbiAgaWYgKG1lbW8pIHtcbiAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgfVxuXG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogR2V0IHRoZSBtZW1vIG9iamVjdCBmcm9tIGluc3RydWN0aW9ucyBpZiBpdCBleGlzdHNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gdGhlIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zIHRvIGJlIHBhcnNlZFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSBpbnN0cnVjdGlvbkluZGV4ZXMgLSB0aGUgaW5zdHJ1Y3Rpb25zIGluZGV4ZXMgb2YgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb25cbiAqIEByZXR1cm5zIHtNZW1vIHwgdW5kZWZpbmVkfSAtIG1lbW8gb2JqZWN0IG9yIHVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBnZXRNZW1vKGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdLCBpbnN0cnVjdGlvbkluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4pOiBNZW1vIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zTGVuZ3RoID0gT2JqZWN0LmtleXMoaW5zdHJ1Y3Rpb25JbmRleGVzKS5sZW5ndGg7XG4gIGlmIChpbnN0cnVjdGlvbnMubGVuZ3RoID09PSBpbnN0cnVjdGlvbnNMZW5ndGggJiYgaW5zdHJ1Y3Rpb25zW2luc3RydWN0aW9uSW5kZXhlcy5NZW1vXSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5NZW1vLFxuICAgICAgcGFyYW1zOiB7IG1lbW86IGluc3RydWN0aW9uc1tpbnN0cnVjdGlvbkluZGV4ZXMuTWVtb10uZGF0YS50b1N0cmluZygpIH0sXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBhdGFJbml0SW5zdHJ1Y3Rpb25LZXlzSW5kZXhlcyA9IHtcbiAgUGF5ZXJBZGRyZXNzOiAwLFxuICBBVEFBZGRyZXNzOiAxLFxuICBPd25lckFkZHJlc3M6IDIsXG4gIE1pbnRBZGRyZXNzOiAzLFxufTtcblxuLyoqXG4gKiBQYXJzZXMgU29sYW5hIGluc3RydWN0aW9ucyB0byBpbml0aWFsaXplIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIFNlbmQgdHhcbiAqL1xuZnVuY3Rpb24gcGFyc2VBdGFJbml0SW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdKTogQXJyYXk8QXRhSW5pdCB8IE1lbW8+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxBdGFJbml0IHwgTWVtbz4gPSBbXTtcbiAgY29uc3QgYXRhSW5pdEluc3RydWN0aW9uID0gaW5zdHJ1Y3Rpb25zW2F0YUluaXRJbnN0cnVjdGlvbkluZGV4ZXMuSW5pdGlhbGl6ZUFzc29jaWF0ZWRUb2tlbkFjY291bnRdO1xuXG4gIGNvbnN0IGF0YUluaXQ6IEF0YUluaXQgPSB7XG4gICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1pbnRBZGRyZXNzOiBhdGFJbml0SW5zdHJ1Y3Rpb24ua2V5c1thdGFJbml0SW5zdHJ1Y3Rpb25LZXlzSW5kZXhlcy5NaW50QWRkcmVzc10ucHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhdGFBZGRyZXNzOiBhdGFJbml0SW5zdHJ1Y3Rpb24ua2V5c1thdGFJbml0SW5zdHJ1Y3Rpb25LZXlzSW5kZXhlcy5BVEFBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIG93bmVyQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLmtleXNbYXRhSW5pdEluc3RydWN0aW9uS2V5c0luZGV4ZXMuT3duZXJBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHBheWVyQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLmtleXNbYXRhSW5pdEluc3RydWN0aW9uS2V5c0luZGV4ZXMuUGF5ZXJBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICB9LFxuICB9O1xuICBpbnN0cnVjdGlvbkRhdGEucHVzaChhdGFJbml0KTtcblxuICBpZiAoaW5zdHJ1Y3Rpb25zLmxlbmd0aCA9PT0gMiAmJiBpbnN0cnVjdGlvbnNbYXRhSW5pdEluc3RydWN0aW9uSW5kZXhlcy5NZW1vXSkge1xuICAgIGNvbnN0IG1lbW86IE1lbW8gPSB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5NZW1vLFxuICAgICAgcGFyYW1zOiB7IG1lbW86IGluc3RydWN0aW9uc1thdGFJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLk1lbW9dLmRhdGEudG9TdHJpbmcoKSB9LFxuICAgIH07XG4gICAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2gobWVtbyk7XG4gIH1cbiAgcmV0dXJuIGluc3RydWN0aW9uRGF0YTtcbn1cbiJdfQ==
257
+ function findTokenName(mintAddress) {
258
+ let token;
259
+ statics_1.coins.forEach((value, key) => {
260
+ if (value instanceof statics_1.SolCoin && value.tokenAddress === mintAddress) {
261
+ token = value.name;
262
+ }
263
+ });
264
+ assert_1.default(token);
265
+ return token;
266
+ }
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb25QYXJhbXNGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL2luc3RydWN0aW9uUGFyYW1zRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2Q0FBOEY7QUFFOUYsOENBQWdFO0FBQ2hFLDJDQVFxQjtBQWFyQixtQ0FBNkM7QUFDN0MsMkRBQXVFO0FBQ3ZFLGlEQUFxRDtBQUNyRCxvREFBNEI7QUFDNUIsNENBQWdEO0FBRWhEOzs7Ozs7R0FNRztBQUNILFNBQWdCLHdCQUF3QixDQUN0QyxJQUFxQixFQUNyQixZQUFzQztJQUV0QyxRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssMEJBQWUsQ0FBQyxvQkFBb0I7WUFDdkMsT0FBTywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxLQUFLLDBCQUFlLENBQUMsSUFBSTtZQUN2QixPQUFPLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO1lBQ2xDLE9BQU8sZ0NBQWdDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsS0FBSywwQkFBZSxDQUFDLGlCQUFpQjtZQUNwQyxPQUFPLGtDQUFrQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFELEtBQUssMEJBQWUsQ0FBQyxlQUFlO1lBQ2xDLE9BQU8sZ0NBQWdDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsS0FBSywwQkFBZSxDQUFDLG9DQUFvQztZQUN2RCxPQUFPLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hEO1lBQ0UsTUFBTSxJQUFJLHVCQUFZLENBQUMsdURBQXVELEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDMUY7QUFDSCxDQUFDO0FBcEJELDREQW9CQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUywyQkFBMkIsQ0FBQyxZQUFzQztJQUN6RSxNQUFNLGVBQWUsR0FBNkIsRUFBRSxDQUFD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QUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25HLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNuRyxTQUFTO1NBQ1Y7S0FDRixDQUFDO0lBQ0YsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU5QixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3RSxNQUFNLElBQUksR0FBUztZQUNqQixJQUFJLEVBQUUsbUNBQXVCLENBQUMsSUFBSTtZQUNsQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLHFDQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtTQUMvRSxDQUFDO1FBQ0YsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM1QjtJQUNELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxXQUFtQjtJQUN4QyxJQUFJLEtBQXlCLENBQUM7SUFFOUIsZUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzQixJQUFJLEtBQUssWUFBWSxpQkFBTyxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO1lBQ2xFLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Rha2VJbnN0cnVjdGlvbiwgU3lzdGVtSW5zdHJ1Y3Rpb24sIFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24gfSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIE5vdFN1cHBvcnRlZCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQge1xuICBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bSxcbiAgd2FsbGV0SW5pdEluc3RydWN0aW9uSW5kZXhlcyxcbiAgc3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcyxcbiAgc3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzLFxuICBzdGFraW5nV2l0aGRyYXdJbnN0cnVjdGlvbnNJbmRleGVzLFxuICBhdGFJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBdGFJbml0LFxuICBJbnN0cnVjdGlvblBhcmFtcyxcbiAgV2FsbGV0SW5pdCxcbiAgVHJhbnNmZXIsXG4gIE5vbmNlLFxuICBNZW1vLFxuICBTdGFraW5nQWN0aXZhdGUsXG4gIFN0YWtpbmdEZWFjdGl2YXRlLFxuICBTdGFraW5nV2l0aGRyYXcsXG4gIFRva2VuVHJhbnNmZXIsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgZ2V0SW5zdHJ1Y3Rpb25UeXBlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2ZlckNoZWNrZWRJbnN0cnVjdGlvbiB9IGZyb20gJy4vdG9rZW5FbmNvZGVEZWNvZGUnO1xuaW1wb3J0IHsgVE9LRU5fUFJPR1JBTV9JRCB9IGZyb20gJ0Bzb2xhbmEvc3BsLXRva2VuJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGNvaW5zLCBTb2xDb2luIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG4vKipcbiAqIENvbnN0cnVjdCBpbnN0cnVjdGlvbnMgcGFyYW1zIGZyb20gU29sYW5hIGluc3RydWN0aW9uc1xuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0eXBlIC0gdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBpbnN0cnVjdGlvbnMgLSBzb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RydWN0aW9uUGFyYW1zRmFjdG9yeShcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLFxuICBpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSxcbik6IEluc3RydWN0aW9uUGFyYW1zW10ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjpcbiAgICAgIHJldHVybiBwYXJzZVdhbGxldEluaXRJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zKTtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgcmV0dXJuIHBhcnNlU2VuZEluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZTpcbiAgICAgIHJldHVybiBwYXJzZVN0YWtpbmdBY3RpdmF0ZUluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnMpO1xuICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgcmV0dXJuIHBhcnNlU3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zKTtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc6XG4gICAgICByZXR1cm4gcGFyc2VTdGFraW5nV2l0aGRyYXdJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zKTtcbiAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Bc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb246XG4gICAgICByZXR1cm4gcGFyc2VBdGFJbml0SW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9ucyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ0ludmFsaWQgdHJhbnNhY3Rpb24sIHRyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZDogJyArIHR5cGUpO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gV2FsbGV0IGluaXRpYWxpemF0aW9uIHR4IGluc3RydWN0aW9ucyBwYXJhbXNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIC0gY29udGFpbmluZyBjcmVhdGUgYW5kIGluaXRpYWxpemUgbm9uY2Ugc29sYW5hIGluc3RydWN0aW9uc1xuICogQHJldHVybnMge0luc3RydWN0aW9uUGFyYW1zW119IEFuIGFycmF5IGNvbnRhaW5pbmcgaW5zdHJ1Y3Rpb24gcGFyYW1zIGZvciBXYWxsZXQgaW5pdGlhbGl6YXRpb24gdHhcbiAqL1xuZnVuY3Rpb24gcGFyc2VXYWxsZXRJbml0SW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdKTogQXJyYXk8V2FsbGV0SW5pdCB8IE1lbW8+IHtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25EYXRhOiBBcnJheTxXYWxsZXRJbml0IHwgTWVtbz4gPSBbXTtcbiAgY29uc3QgY3JlYXRlSW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVDcmVhdGVBY2NvdW50KGluc3RydWN0aW9uc1t3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLkNyZWF0ZV0pO1xuICBjb25zdCBub25jZUluaXRJbnN0cnVjdGlvbiA9IFN5c3RlbUluc3RydWN0aW9uLmRlY29kZU5vbmNlSW5pdGlhbGl6ZShcbiAgICBpbnN0cnVjdGlvbnNbd2FsbGV0SW5pdEluc3RydWN0aW9uSW5kZXhlcy5Jbml0aWFsaXplTm9uY2VBY2NvdW50XSxcbiAgKTtcblxuICBjb25zdCB3YWxsZXRJbml0OiBXYWxsZXRJbml0ID0ge1xuICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZU5vbmNlQWNjb3VudCxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZyb21BZGRyZXNzOiBjcmVhdGVJbnN0cnVjdGlvbi5mcm9tUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBub25jZUFkZHJlc3M6IG5vbmNlSW5pdEluc3RydWN0aW9uLm5vbmNlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhdXRoQWRkcmVzczogbm9uY2VJbml0SW5zdHJ1Y3Rpb24uYXV0aG9yaXplZFB1YmtleS50b1N0cmluZygpLFxuICAgICAgYW1vdW50OiBjcmVhdGVJbnN0cnVjdGlvbi5sYW1wb3J0cy50b1N0cmluZygpLFxuICAgIH0sXG4gIH07XG4gIGluc3RydWN0aW9uRGF0YS5wdXNoKHdhbGxldEluaXQpO1xuXG4gIGNvbnN0IG1lbW8gPSBnZXRNZW1vKGluc3RydWN0aW9ucywgd2FsbGV0SW5pdEluc3RydWN0aW9uSW5kZXhlcyk7XG4gIGlmIChtZW1vKSB7XG4gICAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2gobWVtbyk7XG4gIH1cblxuICByZXR1cm4gaW5zdHJ1Y3Rpb25EYXRhO1xufVxuXG4vKipcbiAqIFBhcnNlcyBTb2xhbmEgaW5zdHJ1Y3Rpb25zIHRvIFNlbmQgdHggaW5zdHJ1Y3Rpb25zIHBhcmFtc1xuICogT25seSBzdXBwb3J0cyBNZW1vLCBUcmFuc2ZlciBhbmQgQWR2YW5jZSBOb25jZSBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIFNlbmQgdHhcbiAqL1xuZnVuY3Rpb24gcGFyc2VTZW5kSW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdKTogQXJyYXk8Tm9uY2UgfCBNZW1vIHwgVHJhbnNmZXIgfCBUb2tlblRyYW5zZmVyPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8Tm9uY2UgfCBNZW1vIHwgVHJhbnNmZXIgfCBUb2tlblRyYW5zZmVyPiA9IFtdO1xuICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIGluc3RydWN0aW9ucykge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb24pO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLk1lbW86XG4gICAgICAgIGNvbnN0IG1lbW86IE1lbW8gPSB7IHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sIHBhcmFtczogeyBtZW1vOiBpbnN0cnVjdGlvbi5kYXRhLnRvU3RyaW5nKCkgfSB9O1xuICAgICAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQWR2YW5jZU5vbmNlQWNjb3VudDpcbiAgICAgICAgY29uc3QgYWR2YW5jZU5vbmNlSW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVOb25jZUFkdmFuY2UoaW5zdHJ1Y3Rpb24pO1xuICAgICAgICBjb25zdCBub25jZTogTm9uY2UgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTm9uY2VBZHZhbmNlLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgd2FsbGV0Tm9uY2VBZGRyZXNzOiBhZHZhbmNlTm9uY2VJbnN0cnVjdGlvbi5ub25jZVB1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgICAgYXV0aFdhbGxldEFkZHJlc3M6IGFkdmFuY2VOb25jZUluc3RydWN0aW9uLmF1dGhvcml6ZWRQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChub25jZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBWYWxpZEluc3RydWN0aW9uVHlwZXNFbnVtLlRyYW5zZmVyOlxuICAgICAgICBjb25zdCB0cmFuc2Zlckluc3RydWN0aW9uID0gU3lzdGVtSW5zdHJ1Y3Rpb24uZGVjb2RlVHJhbnNmZXIoaW5zdHJ1Y3Rpb24pO1xuICAgICAgICBjb25zdCB0cmFuc2ZlcjogVHJhbnNmZXIgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVHJhbnNmZXIsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdHJhbnNmZXJJbnN0cnVjdGlvbi5mcm9tUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB0b0FkZHJlc3M6IHRyYW5zZmVySW5zdHJ1Y3Rpb24udG9QdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGFtb3VudDogdHJhbnNmZXJJbnN0cnVjdGlvbi5sYW1wb3J0cy50b1N0cmluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGluc3RydWN0aW9uRGF0YS5wdXNoKHRyYW5zZmVyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uVG9rZW5UcmFuc2ZlcjpcbiAgICAgICAgY29uc3QgdG9rZW5UcmFuc2Zlckluc3RydWN0aW9uID0gZGVjb2RlVHJhbnNmZXJDaGVja2VkSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb24sIFRPS0VOX1BST0dSQU1fSUQpO1xuICAgICAgICBjb25zdCB0b2tlbk5hbWUgPSBmaW5kVG9rZW5OYW1lKHRva2VuVHJhbnNmZXJJbnN0cnVjdGlvbi5rZXlzLm1pbnQucHVia2V5LnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zdCB0b2tlblRyYW5zZmVyOiBUb2tlblRyYW5zZmVyID0ge1xuICAgICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRva2VuVHJhbnNmZXIsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdG9rZW5UcmFuc2Zlckluc3RydWN0aW9uLmtleXMub3duZXIucHVia2V5LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB0b0FkZHJlc3M6IHRva2VuVHJhbnNmZXJJbnN0cnVjdGlvbi5rZXlzLmRlc3RpbmF0aW9uLnB1YmtleS50b1N0cmluZygpLFxuICAgICAgICAgICAgYW1vdW50OiB0b2tlblRyYW5zZmVySW5zdHJ1Y3Rpb24uZGF0YS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRva2VuTmFtZSxcbiAgICAgICAgICAgIHNvdXJjZUFkZHJlc3M6IHRva2VuVHJhbnNmZXJJbnN0cnVjdGlvbi5rZXlzLnNvdXJjZS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpbnN0cnVjdGlvbkRhdGEucHVzaCh0b2tlblRyYW5zZmVyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKFxuICAgICAgICAgICdJbnZhbGlkIHRyYW5zYWN0aW9uLCBpbnN0cnVjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQ6ICcgKyBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb24pLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaW5zdHJ1Y3Rpb25EYXRhO1xufVxuXG4vKipcbiAqIFBhcnNlcyBTb2xhbmEgaW5zdHJ1Y3Rpb25zIHRvIGNyZWF0ZSBzdGFraW5nIHR4IGFuZCBkZWxlZ2F0ZSB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKiBPbmx5IHN1cHBvcnRzIFN0YWtpbmdBY3RpdmF0ZSBhbmQgTWVtbyBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIHN0YWtpbmcgYWN0aXZhdGUgdHhcbiAqL1xuZnVuY3Rpb24gcGFyc2VTdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxTdGFraW5nQWN0aXZhdGUgfCBNZW1vPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8U3Rha2luZ0FjdGl2YXRlIHwgTWVtbz4gPSBbXTtcbiAgY29uc3QgY3JlYXRlSW5zdHJ1Y3Rpb24gPSBTeXN0ZW1JbnN0cnVjdGlvbi5kZWNvZGVDcmVhdGVBY2NvdW50KFxuICAgIGluc3RydWN0aW9uc1tzdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzLkNyZWF0ZV0sXG4gICk7XG4gIGNvbnN0IGluaXRpYWxpemVJbnN0cnVjdGlvbiA9IFN0YWtlSW5zdHJ1Y3Rpb24uZGVjb2RlSW5pdGlhbGl6ZShcbiAgICBpbnN0cnVjdGlvbnNbc3Rha2luZ0FjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcy5Jbml0aWFsaXplXSxcbiAgKTtcbiAgY29uc3QgZGVsZWdhdGVJbnN0cnVjdGlvbiA9IFN0YWtlSW5zdHJ1Y3Rpb24uZGVjb2RlRGVsZWdhdGUoXG4gICAgaW5zdHJ1Y3Rpb25zW3N0YWtpbmdBY3RpdmF0ZUluc3RydWN0aW9uc0luZGV4ZXMuRGVsZWdhdGVdLFxuICApO1xuXG4gIGNvbnN0IHN0YWtpbmdBY3RpdmF0ZTogU3Rha2luZ0FjdGl2YXRlID0ge1xuICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdBY3RpdmF0ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZyb21BZGRyZXNzOiBjcmVhdGVJbnN0cnVjdGlvbi5mcm9tUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBzdGFraW5nQWRkcmVzczogaW5pdGlhbGl6ZUluc3RydWN0aW9uLnN0YWtlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhbW91bnQ6IGNyZWF0ZUluc3RydWN0aW9uLmxhbXBvcnRzLnRvU3RyaW5nKCksXG4gICAgICB2YWxpZGF0b3I6IGRlbGVnYXRlSW5zdHJ1Y3Rpb24udm90ZVB1YmtleS50b1N0cmluZygpLFxuICAgIH0sXG4gIH07XG4gIGluc3RydWN0aW9uRGF0YS5wdXNoKHN0YWtpbmdBY3RpdmF0ZSk7XG5cbiAgY29uc3QgbWVtbyA9IGdldE1lbW8oaW5zdHJ1Y3Rpb25zLCBzdGFraW5nQWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzKTtcbiAgaWYgKG1lbW8pIHtcbiAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgfVxuXG4gIHJldHVybiBpbnN0cnVjdGlvbkRhdGE7XG59XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gY3JlYXRlIGRlYWN0aXZhdGUgdHggaW5zdHJ1Y3Rpb25zIHBhcmFtc1xuICogT25seSBzdXBwb3J0cyBTdGFraW5nRGVhY3RpdmF0ZSBhbmQgTWVtbyBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIHN0YWtpbmcgZGVhY3RpdmF0ZSB0eFxuICovXG5mdW5jdGlvbiBwYXJzZVN0YWtpbmdEZWFjdGl2YXRlSW5zdHJ1Y3Rpb25zKGluc3RydWN0aW9uczogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdKTogQXJyYXk8U3Rha2luZ0RlYWN0aXZhdGUgfCBNZW1vPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8U3Rha2luZ0RlYWN0aXZhdGUgfCBNZW1vPiA9IFtdO1xuICBjb25zdCBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24gPSBTdGFrZUluc3RydWN0aW9uLmRlY29kZURlYWN0aXZhdGUoXG4gICAgaW5zdHJ1Y3Rpb25zW3N0YWtpbmdEZWFjdGl2YXRlSW5zdHJ1Y3Rpb25zSW5kZXhlcy5EZWFjdGl2YXRlXSxcbiAgKTtcbiAgY29uc3Qgc3Rha2luZ0RlYWN0aXZhdGU6IFN0YWtpbmdEZWFjdGl2YXRlID0ge1xuICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgIHBhcmFtczoge1xuICAgICAgZnJvbUFkZHJlc3M6IGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5hdXRob3JpemVkUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBzdGFraW5nQWRkcmVzczogZGVhY3RpdmF0ZUluc3RydWN0aW9uLnN0YWtlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgfSxcbiAgfTtcbiAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2goc3Rha2luZ0RlYWN0aXZhdGUpO1xuXG4gIGNvbnN0IG1lbW8gPSBnZXRNZW1vKGluc3RydWN0aW9ucywgc3Rha2luZ0RlYWN0aXZhdGVJbnN0cnVjdGlvbnNJbmRleGVzKTtcbiAgaWYgKG1lbW8pIHtcbiAgICBpbnN0cnVjdGlvbkRhdGEucHVzaChtZW1vKTtcbiAgfVxuICByZXR1cm4gaW5zdHJ1Y3Rpb25EYXRhO1xufVxuXG4vKipcbiAqIFBhcnNlcyBTb2xhbmEgaW5zdHJ1Y3Rpb25zIHRvIGNyZWF0ZSBzdGFraW5nICB3aXRoZHJhdyB0eCBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKiBPbmx5IHN1cHBvcnRzIFN0YWtpbmdXaXRoZHJhdyBhbmQgTWVtbyBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKiBAcmV0dXJucyB7SW5zdHJ1Y3Rpb25QYXJhbXNbXX0gQW4gYXJyYXkgY29udGFpbmluZyBpbnN0cnVjdGlvbiBwYXJhbXMgZm9yIHN0YWtpbmcgd2l0aGRyYXcgdHhcbiAqL1xuZnVuY3Rpb24gcGFyc2VTdGFraW5nV2l0aGRyYXdJbnN0cnVjdGlvbnMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiBBcnJheTxTdGFraW5nV2l0aGRyYXcgfCBNZW1vPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8U3Rha2luZ1dpdGhkcmF3IHwgTWVtbz4gPSBbXTtcbiAgY29uc3Qgd2l0aGRyYXdJbnN0cnVjdGlvbiA9IFN0YWtlSW5zdHJ1Y3Rpb24uZGVjb2RlV2l0aGRyYXcoXG4gICAgaW5zdHJ1Y3Rpb25zW3N0YWtpbmdXaXRoZHJhd0luc3RydWN0aW9uc0luZGV4ZXMuV2l0aGRyYXddLFxuICApO1xuXG4gIGNvbnN0IHN0YWtpbmdXaXRoZHJhdzogU3Rha2luZ1dpdGhkcmF3ID0ge1xuICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdXaXRoZHJhdyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZyb21BZGRyZXNzOiB3aXRoZHJhd0luc3RydWN0aW9uLmF1dGhvcml6ZWRQdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHN0YWtpbmdBZGRyZXNzOiB3aXRoZHJhd0luc3RydWN0aW9uLnN0YWtlUHVia2V5LnRvU3RyaW5nKCksXG4gICAgICBhbW91bnQ6IHdpdGhkcmF3SW5zdHJ1Y3Rpb24ubGFtcG9ydHMudG9TdHJpbmcoKSxcbiAgICB9LFxuICB9O1xuICBpbnN0cnVjdGlvbkRhdGEucHVzaChzdGFraW5nV2l0aGRyYXcpO1xuXG4gIGNvbnN0IG1lbW8gPSBnZXRNZW1vKGluc3RydWN0aW9ucywgc3Rha2luZ1dpdGhkcmF3SW5zdHJ1Y3Rpb25zSW5kZXhlcyk7XG4gIGlmIChtZW1vKSB7XG4gICAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2gobWVtbyk7XG4gIH1cblxuICByZXR1cm4gaW5zdHJ1Y3Rpb25EYXRhO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWVtbyBvYmplY3QgZnJvbSBpbnN0cnVjdGlvbnMgaWYgaXQgZXhpc3RzXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyAtIHRoZSBhcnJheSBvZiBzdXBwb3J0ZWQgU29sYW5hIGluc3RydWN0aW9ucyB0byBiZSBwYXJzZWRcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn0gaW5zdHJ1Y3Rpb25JbmRleGVzIC0gdGhlIGluc3RydWN0aW9ucyBpbmRleGVzIG9mIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uXG4gKiBAcmV0dXJucyB7TWVtbyB8IHVuZGVmaW5lZH0gLSBtZW1vIG9iamVjdCBvciB1bmRlZmluZWRcbiAqL1xuZnVuY3Rpb24gZ2V0TWVtbyhpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSwgaW5zdHJ1Y3Rpb25JbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+KTogTWVtbyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGluc3RydWN0aW9uc0xlbmd0aCA9IE9iamVjdC5rZXlzKGluc3RydWN0aW9uSW5kZXhlcykubGVuZ3RoO1xuICBpZiAoaW5zdHJ1Y3Rpb25zLmxlbmd0aCA9PT0gaW5zdHJ1Y3Rpb25zTGVuZ3RoICYmIGluc3RydWN0aW9uc1tpbnN0cnVjdGlvbkluZGV4ZXMuTWVtb10pIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTWVtbyxcbiAgICAgIHBhcmFtczogeyBtZW1vOiBpbnN0cnVjdGlvbnNbaW5zdHJ1Y3Rpb25JbmRleGVzLk1lbW9dLmRhdGEudG9TdHJpbmcoKSB9LFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgYXRhSW5pdEluc3RydWN0aW9uS2V5c0luZGV4ZXMgPSB7XG4gIFBheWVyQWRkcmVzczogMCxcbiAgQVRBQWRkcmVzczogMSxcbiAgT3duZXJBZGRyZXNzOiAyLFxuICBNaW50QWRkcmVzczogMyxcbn07XG5cbi8qKlxuICogUGFyc2VzIFNvbGFuYSBpbnN0cnVjdGlvbnMgdG8gaW5pdGlhbGl6ZSBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQgdHggaW5zdHJ1Y3Rpb25zIHBhcmFtc1xuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBpbnN0cnVjdGlvbnMgLSBhbiBhcnJheSBvZiBzdXBwb3J0ZWQgU29sYW5hIGluc3RydWN0aW9uc1xuICogQHJldHVybnMge0luc3RydWN0aW9uUGFyYW1zW119IEFuIGFycmF5IGNvbnRhaW5pbmcgaW5zdHJ1Y3Rpb24gcGFyYW1zIGZvciBTZW5kIHR4XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQXRhSW5pdEluc3RydWN0aW9ucyhpbnN0cnVjdGlvbnM6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSk6IEFycmF5PEF0YUluaXQgfCBNZW1vPiB7XG4gIGNvbnN0IGluc3RydWN0aW9uRGF0YTogQXJyYXk8QXRhSW5pdCB8IE1lbW8+ID0gW107XG4gIGNvbnN0IGF0YUluaXRJbnN0cnVjdGlvbiA9IGluc3RydWN0aW9uc1thdGFJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLkluaXRpYWxpemVBc3NvY2lhdGVkVG9rZW5BY2NvdW50XTtcblxuICBjb25zdCBtaW50QWRkcmVzcyA9IGF0YUluaXRJbnN0cnVjdGlvbi5rZXlzW2F0YUluaXRJbnN0cnVjdGlvbktleXNJbmRleGVzLk1pbnRBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKTtcbiAgY29uc3QgdG9rZW5OYW1lID0gZmluZFRva2VuTmFtZShtaW50QWRkcmVzcyk7XG5cbiAgY29uc3QgYXRhSW5pdDogQXRhSW5pdCA9IHtcbiAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50LFxuICAgIHBhcmFtczoge1xuICAgICAgbWludEFkZHJlc3MsXG4gICAgICBhdGFBZGRyZXNzOiBhdGFJbml0SW5zdHJ1Y3Rpb24ua2V5c1thdGFJbml0SW5zdHJ1Y3Rpb25LZXlzSW5kZXhlcy5BVEFBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIG93bmVyQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLmtleXNbYXRhSW5pdEluc3RydWN0aW9uS2V5c0luZGV4ZXMuT3duZXJBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHBheWVyQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLmtleXNbYXRhSW5pdEluc3RydWN0aW9uS2V5c0luZGV4ZXMuUGF5ZXJBZGRyZXNzXS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIHRva2VuTmFtZSxcbiAgICB9LFxuICB9O1xuICBpbnN0cnVjdGlvbkRhdGEucHVzaChhdGFJbml0KTtcblxuICBpZiAoaW5zdHJ1Y3Rpb25zLmxlbmd0aCA9PT0gMiAmJiBpbnN0cnVjdGlvbnNbYXRhSW5pdEluc3RydWN0aW9uSW5kZXhlcy5NZW1vXSkge1xuICAgIGNvbnN0IG1lbW86IE1lbW8gPSB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5NZW1vLFxuICAgICAgcGFyYW1zOiB7IG1lbW86IGluc3RydWN0aW9uc1thdGFJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLk1lbW9dLmRhdGEudG9TdHJpbmcoKSB9LFxuICAgIH07XG4gICAgaW5zdHJ1Y3Rpb25EYXRhLnB1c2gobWVtbyk7XG4gIH1cbiAgcmV0dXJuIGluc3RydWN0aW9uRGF0YTtcbn1cblxuZnVuY3Rpb24gZmluZFRva2VuTmFtZShtaW50QWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29pbnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNvbENvaW4gJiYgdmFsdWUudG9rZW5BZGRyZXNzID09PSBtaW50QWRkcmVzcykge1xuICAgICAgdG9rZW4gPSB2YWx1ZS5uYW1lO1xuICAgIH1cbiAgfSk7XG5cbiAgYXNzZXJ0KHRva2VuKTtcblxuICByZXR1cm4gdG9rZW47XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
- import { Ed25519KeyPair } from '../baseCoin';
2
- import { DefaultKeys, KeyPairOptions } from '../baseCoin/iface';
1
+ import { DefaultKeys, KeyPairOptions, Ed25519KeyPair } from '@bitgo/sdk-core';
3
2
  import { SolanaKeys } from './iface';
4
3
  export declare class KeyPair extends Ed25519KeyPair {
5
4
  protected keyPair: DefaultKeys;
@@ -1 +1 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,qBAAa,OAAQ,SAAQ,cAAc;IACzC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAElC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAUlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAMjE;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,UAAU;IAqBhC,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAIrB"}
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,qBAAa,OAAQ,SAAQ,cAAc;IACzC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAElC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAUlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAMjE;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,UAAU;IAqBhC,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAIrB"}
@@ -1,64 +1,47 @@
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
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.KeyPair = void 0;
19
- var web3_js_1 = require("@solana/web3.js");
20
- var baseCoin_1 = require("../baseCoin");
21
- var utils_1 = require("./utils");
22
- var KeyPair = /** @class */ (function (_super) {
23
- __extends(KeyPair, _super);
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const sdk_core_1 = require("@bitgo/sdk-core");
6
+ const utils_1 = require("./utils");
7
+ class KeyPair extends sdk_core_1.Ed25519KeyPair {
24
8
  /**
25
9
  * Public constructor. By default, creates a key pair with a random master seed.
26
10
  *
27
11
  * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
28
12
  */
29
- function KeyPair(source) {
30
- return _super.call(this, source) || this;
13
+ constructor(source) {
14
+ super(source);
31
15
  }
32
16
  /** @inheritdoc */
33
- KeyPair.prototype.recordKeysFromPrivateKeyInProtocolFormat = function (prv) {
34
- var prvKey = utils_1.base58ToUint8Array(prv);
35
- var keyPair = web3_js_1.Keypair.fromSecretKey(prvKey);
17
+ recordKeysFromPrivateKeyInProtocolFormat(prv) {
18
+ const prvKey = utils_1.base58ToUint8Array(prv);
19
+ const keyPair = web3_js_1.Keypair.fromSecretKey(prvKey);
36
20
  return {
37
21
  pub: keyPair.publicKey.toBuffer().toString('hex'),
38
22
  prv: Buffer.from(keyPair.secretKey.slice(0, 32)).toString('hex'),
39
23
  };
40
- };
24
+ }
41
25
  /** @inheritdoc */
42
- KeyPair.prototype.recordKeysFromPublicKeyInProtocolFormat = function (pub) {
26
+ recordKeysFromPublicKeyInProtocolFormat(pub) {
43
27
  return {
44
28
  pub: Buffer.from(utils_1.base58ToUint8Array(pub)).toString('hex'),
45
29
  };
46
- };
30
+ }
47
31
  /**
48
32
  * Solana default keys format public key as a base58 string and secret key as Uint8Array
49
33
  *
50
34
  * @param {boolean} raw defines if the prv key is returned in Uint8Array, default is base58
51
35
  * @returns {SolanaKeys} The keys in the defined format
52
36
  */
53
- KeyPair.prototype.getKeys = function (raw) {
54
- if (raw === void 0) { raw = false; }
37
+ getKeys(raw = false) {
55
38
  // keys are originally created in hex, but we need base58
56
- var publicKeyBuffer = Buffer.from(this.keyPair.pub, 'hex');
57
- var base58Pub = utils_1.Uint8ArrayTobase58(publicKeyBuffer);
58
- var result = { pub: base58Pub };
39
+ const publicKeyBuffer = Buffer.from(this.keyPair.pub, 'hex');
40
+ const base58Pub = utils_1.Uint8ArrayTobase58(publicKeyBuffer);
41
+ const result = { pub: base58Pub };
59
42
  if (!!this.keyPair.prv) {
60
- var secretKeyBuffer = Buffer.from(this.keyPair.prv, 'hex');
61
- var solanaSecretKey = new Uint8Array(64);
43
+ const secretKeyBuffer = Buffer.from(this.keyPair.prv, 'hex');
44
+ const solanaSecretKey = new Uint8Array(64);
62
45
  solanaSecretKey.set(secretKeyBuffer);
63
46
  solanaSecretKey.set(publicKeyBuffer, 32);
64
47
  if (raw) {
@@ -69,13 +52,12 @@ var KeyPair = /** @class */ (function (_super) {
69
52
  }
70
53
  }
71
54
  return result;
72
- };
55
+ }
73
56
  /** @inheritdoc */
74
- KeyPair.prototype.getAddress = function () {
75
- var keys = this.getKeys();
57
+ getAddress() {
58
+ const keys = this.getKeys();
76
59
  return keys.pub;
77
- };
78
- return KeyPair;
79
- }(baseCoin_1.Ed25519KeyPair));
60
+ }
61
+ }
80
62
  exports.KeyPair = KeyPair;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3NvbC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3RDtBQUN4RCx3Q0FBNkM7QUFHN0MsaUNBQWlFO0FBRWpFO0lBQTZCLDJCQUFjO0lBSXpDOzs7O09BSUc7SUFDSCxpQkFBWSxNQUF1QjtlQUNqQyxrQkFBTSxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDBEQUF3QyxHQUF4QyxVQUF5QyxHQUFXO1FBQ2xELElBQU0sTUFBTSxHQUFHLDBCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQU0sT0FBTyxHQUFHLGlCQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ2pELEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDakUsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIseURBQXVDLEdBQXZDLFVBQXdDLEdBQVc7UUFDakQsT0FBTztZQUNMLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseUJBQU8sR0FBUCxVQUFRLEdBQVc7UUFBWCxvQkFBQSxFQUFBLFdBQVc7UUFDakIseURBQXlEO1FBQ3pELElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBTSxTQUFTLEdBQUcsMEJBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEQsSUFBTSxNQUFNLEdBQWUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDdEIsSUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3RCxJQUFNLGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3JDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXpDLElBQUksR0FBRyxFQUFFO2dCQUNQLE1BQU0sQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxHQUFHLEdBQUcsMEJBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDbEQ7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsNEJBQVUsR0FBVjtRQUNFLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUNILGNBQUM7QUFBRCxDQUFDLEFBL0RELENBQTZCLHlCQUFjLEdBK0QxQztBQS9EWSwwQkFBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleXBhaXIgYXMgU29sS2V5cGFpciB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgeyBFZDI1NTE5S2V5UGFpciB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucyB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IFNvbGFuYUtleXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGJhc2U1OFRvVWludDhBcnJheSwgVWludDhBcnJheVRvYmFzZTU4IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICBwcm90ZWN0ZWQga2V5UGFpcjogRGVmYXVsdEtleXM7XG4gIHByb3RlY3RlZCBzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucztcblxuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcHJ2S2V5ID0gYmFzZTU4VG9VaW50OEFycmF5KHBydik7XG4gICAgY29uc3Qga2V5UGFpciA9IFNvbEtleXBhaXIuZnJvbVNlY3JldEtleShwcnZLZXkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1Yjoga2V5UGFpci5wdWJsaWNLZXkudG9CdWZmZXIoKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcnY6IEJ1ZmZlci5mcm9tKGtleVBhaXIuc2VjcmV0S2V5LnNsaWNlKDAsIDMyKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIHJldHVybiB7XG4gICAgICBwdWI6IEJ1ZmZlci5mcm9tKGJhc2U1OFRvVWludDhBcnJheShwdWIpKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2xhbmEgZGVmYXVsdCBrZXlzIGZvcm1hdCBwdWJsaWMga2V5IGFzIGEgYmFzZTU4IHN0cmluZyBhbmQgc2VjcmV0IGtleSBhcyBVaW50OEFycmF5XG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3IGRlZmluZXMgaWYgdGhlIHBydiBrZXkgaXMgcmV0dXJuZWQgaW4gVWludDhBcnJheSwgZGVmYXVsdCBpcyBiYXNlNThcbiAgICogQHJldHVybnMge1NvbGFuYUtleXN9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cyhyYXcgPSBmYWxzZSk6IFNvbGFuYUtleXMge1xuICAgIC8vIGtleXMgYXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBpbiBoZXgsIGJ1dCB3ZSBuZWVkIGJhc2U1OFxuICAgIGNvbnN0IHB1YmxpY0tleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHRoaXMua2V5UGFpci5wdWIsICdoZXgnKTtcbiAgICBjb25zdCBiYXNlNThQdWIgPSBVaW50OEFycmF5VG9iYXNlNTgocHVibGljS2V5QnVmZmVyKTtcblxuICAgIGNvbnN0IHJlc3VsdDogU29sYW5hS2V5cyA9IHsgcHViOiBiYXNlNThQdWIgfTtcbiAgICBpZiAoISF0aGlzLmtleVBhaXIucHJ2KSB7XG4gICAgICBjb25zdCBzZWNyZXRLZXlCdWZmZXIgPSBCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHJ2LCAnaGV4Jyk7XG4gICAgICBjb25zdCBzb2xhbmFTZWNyZXRLZXkgPSBuZXcgVWludDhBcnJheSg2NCk7XG4gICAgICBzb2xhbmFTZWNyZXRLZXkuc2V0KHNlY3JldEtleUJ1ZmZlcik7XG4gICAgICBzb2xhbmFTZWNyZXRLZXkuc2V0KHB1YmxpY0tleUJ1ZmZlciwgMzIpO1xuXG4gICAgICBpZiAocmF3KSB7XG4gICAgICAgIHJlc3VsdC5wcnYgPSBzb2xhbmFTZWNyZXRLZXk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHJ2ID0gVWludDhBcnJheVRvYmFzZTU4KHNvbGFuYVNlY3JldEtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleXMgPSB0aGlzLmdldEtleXMoKTtcbiAgICByZXR1cm4ga2V5cy5wdWI7XG4gIH1cbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3NvbC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3RDtBQUN4RCw4Q0FBOEU7QUFFOUUsbUNBQWlFO0FBRWpFLE1BQWEsT0FBUSxTQUFRLHlCQUFjO0lBSXpDOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHdDQUF3QyxDQUFDLEdBQVc7UUFDbEQsTUFBTSxNQUFNLEdBQUcsMEJBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsaUJBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQsT0FBTztZQUNMLEdBQUcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDakQsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELE9BQU87WUFDTCxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSztRQUNqQix5REFBeUQ7UUFDekQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRywwQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RCxNQUFNLE1BQU0sR0FBZSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sZUFBZSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLEdBQUcsR0FBRywwQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNsRDtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUEvREQsMEJBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5cGFpciBhcyBTb2xLZXlwYWlyIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucywgRWQyNTUxOUtleVBhaXIgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgU29sYW5hS2V5cyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgYmFzZTU4VG9VaW50OEFycmF5LCBVaW50OEFycmF5VG9iYXNlNTggfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBFZDI1NTE5S2V5UGFpciB7XG4gIHByb3RlY3RlZCBrZXlQYWlyOiBEZWZhdWx0S2V5cztcbiAgcHJvdGVjdGVkIHNvdXJjZT86IEtleVBhaXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCBwcnZLZXkgPSBiYXNlNThUb1VpbnQ4QXJyYXkocHJ2KTtcbiAgICBjb25zdCBrZXlQYWlyID0gU29sS2V5cGFpci5mcm9tU2VjcmV0S2V5KHBydktleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHViOiBrZXlQYWlyLnB1YmxpY0tleS50b0J1ZmZlcigpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogQnVmZmVyLmZyb20oa2V5UGFpci5zZWNyZXRLZXkuc2xpY2UoMCwgMzIpKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogQnVmZmVyLmZyb20oYmFzZTU4VG9VaW50OEFycmF5KHB1YikpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbGFuYSBkZWZhdWx0IGtleXMgZm9ybWF0IHB1YmxpYyBrZXkgYXMgYSBiYXNlNTggc3RyaW5nIGFuZCBzZWNyZXQga2V5IGFzIFVpbnQ4QXJyYXlcbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByYXcgZGVmaW5lcyBpZiB0aGUgcHJ2IGtleSBpcyByZXR1cm5lZCBpbiBVaW50OEFycmF5LCBkZWZhdWx0IGlzIGJhc2U1OFxuICAgKiBAcmV0dXJucyB7U29sYW5hS2V5c30gVGhlIGtleXMgaW4gdGhlIGRlZmluZWQgZm9ybWF0XG4gICAqL1xuICBnZXRLZXlzKHJhdyA9IGZhbHNlKTogU29sYW5hS2V5cyB7XG4gICAgLy8ga2V5cyBhcmUgb3JpZ2luYWxseSBjcmVhdGVkIGluIGhleCwgYnV0IHdlIG5lZWQgYmFzZTU4XG4gICAgY29uc3QgcHVibGljS2V5QnVmZmVyID0gQnVmZmVyLmZyb20odGhpcy5rZXlQYWlyLnB1YiwgJ2hleCcpO1xuICAgIGNvbnN0IGJhc2U1OFB1YiA9IFVpbnQ4QXJyYXlUb2Jhc2U1OChwdWJsaWNLZXlCdWZmZXIpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBTb2xhbmFLZXlzID0geyBwdWI6IGJhc2U1OFB1YiB9O1xuICAgIGlmICghIXRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIGNvbnN0IHNlY3JldEtleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHRoaXMua2V5UGFpci5wcnYsICdoZXgnKTtcbiAgICAgIGNvbnN0IHNvbGFuYVNlY3JldEtleSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgICAgIHNvbGFuYVNlY3JldEtleS5zZXQoc2VjcmV0S2V5QnVmZmVyKTtcbiAgICAgIHNvbGFuYVNlY3JldEtleS5zZXQocHVibGljS2V5QnVmZmVyLCAzMik7XG5cbiAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgcmVzdWx0LnBydiA9IHNvbGFuYVNlY3JldEtleTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5wcnYgPSBVaW50OEFycmF5VG9iYXNlNTgoc29sYW5hU2VjcmV0S2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuZ2V0S2V5cygpO1xuICAgIHJldHVybiBrZXlzLnB1YjtcbiAgfVxufVxuIl19