@bitgo/account-lib 3.0.0-hotfix.0 → 4.0.0

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 (621) hide show
  1. package/.mocharc.js +1 -1
  2. package/CHANGELOG.md +203 -29
  3. package/README.md +5 -7
  4. package/dist/resources/README.md +0 -22
  5. package/dist/src/index.d.ts +34 -20
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +57 -40
  8. package/dist/tsconfig.tsbuildinfo +26050 -40851
  9. package/package.json +29 -77
  10. package/resources/README.md +0 -22
  11. package/dist/browser/bitgo-account-lib.js +0 -2
  12. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
  13. package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
  14. package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  15. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  16. package/dist/resources/hbar/protobuf/Duration.proto +0 -28
  17. package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
  18. package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
  19. package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
  20. package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
  21. package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
  22. package/dist/resources/hbar/protobuf/hedera.js +0 -12192
  23. package/dist/resources/trx/protobuf/Contract.proto +0 -256
  24. package/dist/resources/trx/protobuf/Discover.proto +0 -44
  25. package/dist/resources/trx/protobuf/tron.d.ts +0 -11024
  26. package/dist/resources/trx/protobuf/tron.js +0 -31510
  27. package/dist/resources/trx/protobuf/tron.proto +0 -677
  28. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -42
  29. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  30. package/dist/src/coin/algo/assetTransferBuilder.js +0 -105
  31. package/dist/src/coin/algo/errors.d.ts +0 -11
  32. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  33. package/dist/src/coin/algo/errors.js +0 -27
  34. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  35. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  36. package/dist/src/coin/algo/ifaces.js +0 -3
  37. package/dist/src/coin/algo/index.d.ts +0 -13
  38. package/dist/src/coin/algo/index.d.ts.map +0 -1
  39. package/dist/src/coin/algo/index.js +0 -47
  40. package/dist/src/coin/algo/keyPair.d.ts +0 -25
  41. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  42. package/dist/src/coin/algo/keyPair.js +0 -77
  43. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  44. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  45. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -239
  46. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  47. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  48. package/dist/src/coin/algo/seedEncoding.js +0 -97
  49. package/dist/src/coin/algo/transaction.d.ts +0 -75
  50. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  51. package/dist/src/coin/algo/transaction.js +0 -251
  52. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -204
  53. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  54. package/dist/src/coin/algo/transactionBuilder.js +0 -373
  55. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  56. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  57. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -52
  58. package/dist/src/coin/algo/transferBuilder.d.ts +0 -40
  59. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  60. package/dist/src/coin/algo/transferBuilder.js +0 -89
  61. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  62. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  63. package/dist/src/coin/algo/txnSchema.js +0 -68
  64. package/dist/src/coin/algo/utils.d.ts +0 -249
  65. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  66. package/dist/src/coin/algo/utils.js +0 -539
  67. package/dist/src/coin/avaxc/index.d.ts +0 -8
  68. package/dist/src/coin/avaxc/index.d.ts.map +0 -1
  69. package/dist/src/coin/avaxc/index.js +0 -35
  70. package/dist/src/coin/avaxc/keyPair.d.ts +0 -26
  71. package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
  72. package/dist/src/coin/avaxc/keyPair.js +0 -83
  73. package/dist/src/coin/avaxc/resources.d.ts +0 -12
  74. package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
  75. package/dist/src/coin/avaxc/resources.js +0 -27
  76. package/dist/src/coin/avaxc/transactionBuilder.d.ts +0 -17
  77. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
  78. package/dist/src/coin/avaxc/transactionBuilder.js +0 -45
  79. package/dist/src/coin/avaxc/transferBuilder.d.ts +0 -17
  80. package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
  81. package/dist/src/coin/avaxc/transferBuilder.js +0 -25
  82. package/dist/src/coin/avaxc/utils.d.ts +0 -39
  83. package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
  84. package/dist/src/coin/avaxc/utils.js +0 -70
  85. package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
  86. package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
  87. package/dist/src/coin/avaxc/walletUtil.js +0 -62
  88. package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
  89. package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
  90. package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
  91. package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
  92. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
  93. package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
  94. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
  95. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
  96. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
  97. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
  98. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
  99. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
  100. package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
  101. package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
  102. package/dist/src/coin/baseCoin/baseUtils.js +0 -3
  103. package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
  104. package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
  105. package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
  106. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
  107. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
  108. package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
  109. package/dist/src/coin/baseCoin/enum.d.ts +0 -43
  110. package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
  111. package/dist/src/coin/baseCoin/enum.js +0 -70
  112. package/dist/src/coin/baseCoin/errors.d.ts +0 -65
  113. package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
  114. package/dist/src/coin/baseCoin/errors.js +0 -156
  115. package/dist/src/coin/baseCoin/iface.d.ts +0 -162
  116. package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
  117. package/dist/src/coin/baseCoin/iface.js +0 -38
  118. package/dist/src/coin/baseCoin/index.d.ts +0 -12
  119. package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
  120. package/dist/src/coin/baseCoin/index.js +0 -41
  121. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
  122. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
  123. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
  124. package/dist/src/coin/celo/index.d.ts +0 -8
  125. package/dist/src/coin/celo/index.d.ts.map +0 -1
  126. package/dist/src/coin/celo/index.js +0 -35
  127. package/dist/src/coin/celo/resources.d.ts +0 -10
  128. package/dist/src/coin/celo/resources.d.ts.map +0 -1
  129. package/dist/src/coin/celo/resources.js +0 -26
  130. package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
  131. package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
  132. package/dist/src/coin/celo/stakingBuilder.js +0 -277
  133. package/dist/src/coin/celo/stakingCall.d.ts +0 -7
  134. package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
  135. package/dist/src/coin/celo/stakingCall.js +0 -13
  136. package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
  137. package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
  138. package/dist/src/coin/celo/stakingUtils.js +0 -98
  139. package/dist/src/coin/celo/transaction.d.ts +0 -10
  140. package/dist/src/coin/celo/transaction.d.ts.map +0 -1
  141. package/dist/src/coin/celo/transaction.js +0 -37
  142. package/dist/src/coin/celo/transactionBuilder.d.ts +0 -86
  143. package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
  144. package/dist/src/coin/celo/transactionBuilder.js +0 -228
  145. package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
  146. package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
  147. package/dist/src/coin/celo/transferBuilder.js +0 -27
  148. package/dist/src/coin/celo/types.d.ts +0 -52
  149. package/dist/src/coin/celo/types.d.ts.map +0 -1
  150. package/dist/src/coin/celo/types.js +0 -222
  151. package/dist/src/coin/celo/utils.d.ts +0 -18
  152. package/dist/src/coin/celo/utils.d.ts.map +0 -1
  153. package/dist/src/coin/celo/utils.js +0 -99
  154. package/dist/src/coin/cspr/constants.d.ts +0 -19
  155. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  156. package/dist/src/coin/cspr/constants.js +0 -28
  157. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  158. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  159. package/dist/src/coin/cspr/delegateBuilder.js +0 -111
  160. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  161. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  162. package/dist/src/coin/cspr/ifaces.js +0 -3
  163. package/dist/src/coin/cspr/index.d.ts +0 -5
  164. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  165. package/dist/src/coin/cspr/index.js +0 -29
  166. package/dist/src/coin/cspr/keyPair.d.ts +0 -18
  167. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  168. package/dist/src/coin/cspr/keyPair.js +0 -75
  169. package/dist/src/coin/cspr/transaction.d.ts +0 -55
  170. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  171. package/dist/src/coin/cspr/transaction.js +0 -227
  172. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -124
  173. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  174. package/dist/src/coin/cspr/transactionBuilder.js +0 -312
  175. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  176. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  177. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -98
  178. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  179. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  180. package/dist/src/coin/cspr/transferBuilder.js +0 -106
  181. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  182. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  183. package/dist/src/coin/cspr/undelegateBuilder.js +0 -111
  184. package/dist/src/coin/cspr/utils.d.ts +0 -188
  185. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  186. package/dist/src/coin/cspr/utils.js +0 -478
  187. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  188. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  189. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -95
  190. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
  191. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
  192. package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
  193. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
  194. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
  195. package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
  196. package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
  197. package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
  198. package/dist/src/coin/dot/claimBuilder.js +0 -117
  199. package/dist/src/coin/dot/errors.d.ts +0 -8
  200. package/dist/src/coin/dot/errors.d.ts.map +0 -1
  201. package/dist/src/coin/dot/errors.js +0 -19
  202. package/dist/src/coin/dot/iface.d.ts +0 -194
  203. package/dist/src/coin/dot/iface.d.ts.map +0 -1
  204. package/dist/src/coin/dot/iface.js +0 -39
  205. package/dist/src/coin/dot/index.d.ts +0 -17
  206. package/dist/src/coin/dot/index.d.ts.map +0 -1
  207. package/dist/src/coin/dot/index.js +0 -53
  208. package/dist/src/coin/dot/keyPair.d.ts +0 -31
  209. package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
  210. package/dist/src/coin/dot/keyPair.js +0 -74
  211. package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
  212. package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
  213. package/dist/src/coin/dot/singletonRegistry.js +0 -20
  214. package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
  215. package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
  216. package/dist/src/coin/dot/stakingBuilder.js +0 -135
  217. package/dist/src/coin/dot/transaction.d.ts +0 -65
  218. package/dist/src/coin/dot/transaction.d.ts.map +0 -1
  219. package/dist/src/coin/dot/transaction.js +0 -396
  220. package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
  221. package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
  222. package/dist/src/coin/dot/transactionBuilder.js +0 -332
  223. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
  224. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
  225. package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
  226. package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
  227. package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
  228. package/dist/src/coin/dot/transferBuilder.js +0 -171
  229. package/dist/src/coin/dot/txnSchema.d.ts +0 -14
  230. package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
  231. package/dist/src/coin/dot/txnSchema.js +0 -104
  232. package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
  233. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
  234. package/dist/src/coin/dot/unnominateBuilder.js +0 -50
  235. package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
  236. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
  237. package/dist/src/coin/dot/unstakeBuilder.js +0 -89
  238. package/dist/src/coin/dot/utils.d.ts +0 -138
  239. package/dist/src/coin/dot/utils.d.ts.map +0 -1
  240. package/dist/src/coin/dot/utils.js +0 -269
  241. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
  242. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
  243. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
  244. package/dist/src/coin/etc/index.d.ts +0 -8
  245. package/dist/src/coin/etc/index.d.ts.map +0 -1
  246. package/dist/src/coin/etc/index.js +0 -35
  247. package/dist/src/coin/etc/resources.d.ts +0 -10
  248. package/dist/src/coin/etc/resources.d.ts.map +0 -1
  249. package/dist/src/coin/etc/resources.js +0 -26
  250. package/dist/src/coin/etc/transactionBuilder.d.ts +0 -17
  251. package/dist/src/coin/etc/transactionBuilder.d.ts.map +0 -1
  252. package/dist/src/coin/etc/transactionBuilder.js +0 -45
  253. package/dist/src/coin/etc/transferBuilder.d.ts +0 -19
  254. package/dist/src/coin/etc/transferBuilder.d.ts.map +0 -1
  255. package/dist/src/coin/etc/transferBuilder.js +0 -27
  256. package/dist/src/coin/etc/utils.d.ts +0 -18
  257. package/dist/src/coin/etc/utils.d.ts.map +0 -1
  258. package/dist/src/coin/etc/utils.js +0 -42
  259. package/dist/src/coin/eth/contractCall.d.ts +0 -8
  260. package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
  261. package/dist/src/coin/eth/contractCall.js +0 -17
  262. package/dist/src/coin/eth/iface.d.ts +0 -122
  263. package/dist/src/coin/eth/iface.d.ts.map +0 -1
  264. package/dist/src/coin/eth/iface.js +0 -8
  265. package/dist/src/coin/eth/index.d.ts +0 -10
  266. package/dist/src/coin/eth/index.d.ts.map +0 -1
  267. package/dist/src/coin/eth/index.js +0 -39
  268. package/dist/src/coin/eth/keyPair.d.ts +0 -26
  269. package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
  270. package/dist/src/coin/eth/keyPair.js +0 -85
  271. package/dist/src/coin/eth/transaction.d.ts +0 -64
  272. package/dist/src/coin/eth/transaction.d.ts.map +0 -1
  273. package/dist/src/coin/eth/transaction.js +0 -137
  274. package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
  275. package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
  276. package/dist/src/coin/eth/transactionBuilder.js +0 -624
  277. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
  278. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
  279. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
  280. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
  281. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
  282. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
  283. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
  284. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
  285. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
  286. package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
  287. package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
  288. package/dist/src/coin/eth/transferBuilder.js +0 -197
  289. package/dist/src/coin/eth/types.d.ts +0 -39
  290. package/dist/src/coin/eth/types.d.ts.map +0 -1
  291. package/dist/src/coin/eth/types.js +0 -135
  292. package/dist/src/coin/eth/utils.d.ts +0 -202
  293. package/dist/src/coin/eth/utils.d.ts.map +0 -1
  294. package/dist/src/coin/eth/utils.js +0 -485
  295. package/dist/src/coin/eth/walletUtil.d.ts +0 -19
  296. package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
  297. package/dist/src/coin/eth/walletUtil.js +0 -29
  298. package/dist/src/coin/eth2/index.d.ts +0 -2
  299. package/dist/src/coin/eth2/index.d.ts.map +0 -1
  300. package/dist/src/coin/eth2/index.js +0 -6
  301. package/dist/src/coin/eth2/keyPair.d.ts +0 -33
  302. package/dist/src/coin/eth2/keyPair.d.ts.map +0 -1
  303. package/dist/src/coin/eth2/keyPair.js +0 -65
  304. package/dist/src/coin/hbar/ifaces.d.ts +0 -26
  305. package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
  306. package/dist/src/coin/hbar/ifaces.js +0 -3
  307. package/dist/src/coin/hbar/index.d.ts +0 -6
  308. package/dist/src/coin/hbar/index.d.ts.map +0 -1
  309. package/dist/src/coin/hbar/index.js +0 -31
  310. package/dist/src/coin/hbar/keyPair.d.ts +0 -23
  311. package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
  312. package/dist/src/coin/hbar/keyPair.js +0 -70
  313. package/dist/src/coin/hbar/transaction.d.ts +0 -98
  314. package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
  315. package/dist/src/coin/hbar/transaction.js +0 -245
  316. package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -112
  317. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
  318. package/dist/src/coin/hbar/transactionBuilder.js +0 -264
  319. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -37
  320. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
  321. package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -77
  322. package/dist/src/coin/hbar/transferBuilder.d.ts +0 -44
  323. package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
  324. package/dist/src/coin/hbar/transferBuilder.js +0 -130
  325. package/dist/src/coin/hbar/utils.d.ts +0 -139
  326. package/dist/src/coin/hbar/utils.d.ts.map +0 -1
  327. package/dist/src/coin/hbar/utils.js +0 -310
  328. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
  329. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
  330. package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -90
  331. package/dist/src/coin/near/constants.d.ts +0 -12
  332. package/dist/src/coin/near/constants.d.ts.map +0 -1
  333. package/dist/src/coin/near/constants.js +0 -15
  334. package/dist/src/coin/near/contractCallWrapper.d.ts +0 -33
  335. package/dist/src/coin/near/contractCallWrapper.d.ts.map +0 -1
  336. package/dist/src/coin/near/contractCallWrapper.js +0 -68
  337. package/dist/src/coin/near/errors.d.ts +0 -5
  338. package/dist/src/coin/near/errors.d.ts.map +0 -1
  339. package/dist/src/coin/near/errors.js +0 -12
  340. package/dist/src/coin/near/iface.d.ts +0 -40
  341. package/dist/src/coin/near/iface.d.ts.map +0 -1
  342. package/dist/src/coin/near/iface.js +0 -8
  343. package/dist/src/coin/near/index.d.ts +0 -11
  344. package/dist/src/coin/near/index.d.ts.map +0 -1
  345. package/dist/src/coin/near/index.js +0 -41
  346. package/dist/src/coin/near/keyPair.d.ts +0 -25
  347. package/dist/src/coin/near/keyPair.d.ts.map +0 -1
  348. package/dist/src/coin/near/keyPair.js +0 -73
  349. package/dist/src/coin/near/stakingActivateBuilder.d.ts +0 -32
  350. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +0 -1
  351. package/dist/src/coin/near/stakingActivateBuilder.js +0 -90
  352. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +0 -32
  353. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +0 -1
  354. package/dist/src/coin/near/stakingDeactivateBuilder.js +0 -89
  355. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +0 -32
  356. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +0 -1
  357. package/dist/src/coin/near/stakingWithdrawBuilder.js +0 -89
  358. package/dist/src/coin/near/transaction.d.ts +0 -90
  359. package/dist/src/coin/near/transaction.d.ts.map +0 -1
  360. package/dist/src/coin/near/transaction.js +0 -368
  361. package/dist/src/coin/near/transactionBuilder.d.ts +0 -89
  362. package/dist/src/coin/near/transactionBuilder.d.ts.map +0 -1
  363. package/dist/src/coin/near/transactionBuilder.js +0 -216
  364. package/dist/src/coin/near/transactionBuilderFactory.d.ts +0 -30
  365. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +0 -1
  366. package/dist/src/coin/near/transactionBuilderFactory.js +0 -71
  367. package/dist/src/coin/near/transferBuilder.d.ts +0 -26
  368. package/dist/src/coin/near/transferBuilder.d.ts.map +0 -1
  369. package/dist/src/coin/near/transferBuilder.js +0 -72
  370. package/dist/src/coin/near/utils.d.ts +0 -42
  371. package/dist/src/coin/near/utils.d.ts.map +0 -1
  372. package/dist/src/coin/near/utils.js +0 -92
  373. package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -12
  374. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +0 -1
  375. package/dist/src/coin/near/walletInitializationBuilder.js +0 -20
  376. package/dist/src/coin/rbtc/index.d.ts +0 -8
  377. package/dist/src/coin/rbtc/index.d.ts.map +0 -1
  378. package/dist/src/coin/rbtc/index.js +0 -35
  379. package/dist/src/coin/rbtc/resources.d.ts +0 -10
  380. package/dist/src/coin/rbtc/resources.d.ts.map +0 -1
  381. package/dist/src/coin/rbtc/resources.js +0 -25
  382. package/dist/src/coin/rbtc/transactionBuilder.d.ts +0 -17
  383. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +0 -1
  384. package/dist/src/coin/rbtc/transactionBuilder.js +0 -44
  385. package/dist/src/coin/rbtc/transferBuilder.d.ts +0 -19
  386. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +0 -1
  387. package/dist/src/coin/rbtc/transferBuilder.js +0 -27
  388. package/dist/src/coin/rbtc/utils.d.ts +0 -18
  389. package/dist/src/coin/rbtc/utils.d.ts.map +0 -1
  390. package/dist/src/coin/rbtc/utils.js +0 -42
  391. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +0 -33
  392. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +0 -1
  393. package/dist/src/coin/sol/ataInitializationBuilder.js +0 -93
  394. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +0 -14
  395. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +0 -1
  396. package/dist/src/coin/sol/ataInitializationTransaction.js +0 -81
  397. package/dist/src/coin/sol/constants.d.ts +0 -58
  398. package/dist/src/coin/sol/constants.d.ts.map +0 -1
  399. package/dist/src/coin/sol/constants.js +0 -76
  400. package/dist/src/coin/sol/iface.d.ts +0 -99
  401. package/dist/src/coin/sol/iface.d.ts.map +0 -1
  402. package/dist/src/coin/sol/iface.js +0 -3
  403. package/dist/src/coin/sol/index.d.ts +0 -11
  404. package/dist/src/coin/sol/index.d.ts.map +0 -1
  405. package/dist/src/coin/sol/index.js +0 -41
  406. package/dist/src/coin/sol/instructionParamsFactory.d.ts +0 -12
  407. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +0 -1
  408. package/dist/src/coin/sol/instructionParamsFactory.js +0 -260
  409. package/dist/src/coin/sol/keyPair.d.ts +0 -26
  410. package/dist/src/coin/sol/keyPair.d.ts.map +0 -1
  411. package/dist/src/coin/sol/keyPair.js +0 -63
  412. package/dist/src/coin/sol/solInstructionFactory.d.ts +0 -10
  413. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +0 -1
  414. package/dist/src/coin/sol/solInstructionFactory.js +0 -213
  415. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +0 -41
  416. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +0 -1
  417. package/dist/src/coin/sol/stakingActivateBuilder.js +0 -94
  418. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +0 -23
  419. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +0 -1
  420. package/dist/src/coin/sol/stakingDeactivateBuilder.js +0 -62
  421. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +0 -31
  422. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +0 -1
  423. package/dist/src/coin/sol/stakingWithdrawBuilder.js +0 -78
  424. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +0 -85
  425. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +0 -1
  426. package/dist/src/coin/sol/tokenEncodeDecode.js +0 -133
  427. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +0 -27
  428. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +0 -1
  429. package/dist/src/coin/sol/tokenTransferBuilder.js +0 -73
  430. package/dist/src/coin/sol/transaction.d.ts +0 -61
  431. package/dist/src/coin/sol/transaction.d.ts.map +0 -1
  432. package/dist/src/coin/sol/transaction.js +0 -369
  433. package/dist/src/coin/sol/transactionBuilder.d.ts +0 -101
  434. package/dist/src/coin/sol/transactionBuilder.d.ts.map +0 -1
  435. package/dist/src/coin/sol/transactionBuilder.js +0 -261
  436. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +0 -76
  437. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +0 -1
  438. package/dist/src/coin/sol/transactionBuilderFactory.js +0 -136
  439. package/dist/src/coin/sol/transferBuilder.d.ts +0 -26
  440. package/dist/src/coin/sol/transferBuilder.d.ts.map +0 -1
  441. package/dist/src/coin/sol/transferBuilder.js +0 -67
  442. package/dist/src/coin/sol/utils.d.ts +0 -146
  443. package/dist/src/coin/sol/utils.d.ts.map +0 -1
  444. package/dist/src/coin/sol/utils.js +0 -361
  445. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +0 -26
  446. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +0 -1
  447. package/dist/src/coin/sol/walletInitializationBuilder.js +0 -71
  448. package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
  449. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
  450. package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
  451. package/dist/src/coin/stx/constants.d.ts +0 -8
  452. package/dist/src/coin/stx/constants.d.ts.map +0 -1
  453. package/dist/src/coin/stx/constants.js +0 -19
  454. package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
  455. package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
  456. package/dist/src/coin/stx/contractBuilder.js +0 -116
  457. package/dist/src/coin/stx/iface.d.ts +0 -48
  458. package/dist/src/coin/stx/iface.d.ts.map +0 -1
  459. package/dist/src/coin/stx/iface.js +0 -3
  460. package/dist/src/coin/stx/index.d.ts +0 -6
  461. package/dist/src/coin/stx/index.d.ts.map +0 -1
  462. package/dist/src/coin/stx/index.js +0 -32
  463. package/dist/src/coin/stx/keyPair.d.ts +0 -55
  464. package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
  465. package/dist/src/coin/stx/keyPair.js +0 -140
  466. package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
  467. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
  468. package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
  469. package/dist/src/coin/stx/transaction.d.ts +0 -49
  470. package/dist/src/coin/stx/transaction.d.ts.map +0 -1
  471. package/dist/src/coin/stx/transaction.js +0 -225
  472. package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
  473. package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
  474. package/dist/src/coin/stx/transactionBuilder.js +0 -263
  475. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
  476. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
  477. package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
  478. package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
  479. package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
  480. package/dist/src/coin/stx/transferBuilder.js +0 -99
  481. package/dist/src/coin/stx/utils.d.ts +0 -207
  482. package/dist/src/coin/stx/utils.d.ts.map +0 -1
  483. package/dist/src/coin/stx/utils.js +0 -504
  484. package/dist/src/coin/trx/address.d.ts +0 -11
  485. package/dist/src/coin/trx/address.d.ts.map +0 -1
  486. package/dist/src/coin/trx/address.js +0 -13
  487. package/dist/src/coin/trx/contractCallBuilder.d.ts +0 -96
  488. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +0 -1
  489. package/dist/src/coin/trx/contractCallBuilder.js +0 -281
  490. package/dist/src/coin/trx/enum.d.ts +0 -23
  491. package/dist/src/coin/trx/enum.d.ts.map +0 -1
  492. package/dist/src/coin/trx/enum.js +0 -28
  493. package/dist/src/coin/trx/iface.d.ts +0 -92
  494. package/dist/src/coin/trx/iface.d.ts.map +0 -1
  495. package/dist/src/coin/trx/iface.js +0 -3
  496. package/dist/src/coin/trx/index.d.ts +0 -10
  497. package/dist/src/coin/trx/index.d.ts.map +0 -1
  498. package/dist/src/coin/trx/index.js +0 -39
  499. package/dist/src/coin/trx/keyPair.d.ts +0 -44
  500. package/dist/src/coin/trx/keyPair.d.ts.map +0 -1
  501. package/dist/src/coin/trx/keyPair.js +0 -121
  502. package/dist/src/coin/trx/transaction.d.ts +0 -74
  503. package/dist/src/coin/trx/transaction.d.ts.map +0 -1
  504. package/dist/src/coin/trx/transaction.js +0 -205
  505. package/dist/src/coin/trx/transactionBuilder.d.ts +0 -65
  506. package/dist/src/coin/trx/transactionBuilder.d.ts.map +0 -1
  507. package/dist/src/coin/trx/transactionBuilder.js +0 -215
  508. package/dist/src/coin/trx/utils.d.ts +0 -127
  509. package/dist/src/coin/trx/utils.d.ts.map +0 -1
  510. package/dist/src/coin/trx/utils.js +0 -369
  511. package/dist/src/coin/trx/wrappedBuilder.d.ts +0 -52
  512. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +0 -1
  513. package/dist/src/coin/trx/wrappedBuilder.js +0 -104
  514. package/dist/src/coin/xrp/index.d.ts +0 -5
  515. package/dist/src/coin/xrp/index.d.ts.map +0 -1
  516. package/dist/src/coin/xrp/index.js +0 -29
  517. package/dist/src/coin/xrp/keyPair.d.ts +0 -10
  518. package/dist/src/coin/xrp/keyPair.d.ts.map +0 -1
  519. package/dist/src/coin/xrp/keyPair.js +0 -16
  520. package/dist/src/coin/xrp/transaction.d.ts +0 -10
  521. package/dist/src/coin/xrp/transaction.d.ts.map +0 -1
  522. package/dist/src/coin/xrp/transaction.js +0 -20
  523. package/dist/src/coin/xrp/transactionBuilder.d.ts +0 -27
  524. package/dist/src/coin/xrp/transactionBuilder.d.ts.map +0 -1
  525. package/dist/src/coin/xrp/transactionBuilder.js +0 -46
  526. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +0 -24
  527. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +0 -1
  528. package/dist/src/coin/xrp/transactionBuilderFactory.js +0 -38
  529. package/dist/src/coin/xrp/transferBuilder.d.ts +0 -14
  530. package/dist/src/coin/xrp/transferBuilder.d.ts.map +0 -1
  531. package/dist/src/coin/xrp/transferBuilder.js +0 -24
  532. package/dist/src/coin/xrp/utils.d.ts +0 -16
  533. package/dist/src/coin/xrp/utils.d.ts.map +0 -1
  534. package/dist/src/coin/xrp/utils.js +0 -32
  535. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +0 -14
  536. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +0 -1
  537. package/dist/src/coin/xrp/walletInitializationBuilder.js +0 -24
  538. package/dist/src/coin/xtz/address.d.ts +0 -8
  539. package/dist/src/coin/xtz/address.d.ts.map +0 -1
  540. package/dist/src/coin/xtz/address.js +0 -10
  541. package/dist/src/coin/xtz/iface.d.ts +0 -81
  542. package/dist/src/coin/xtz/iface.d.ts.map +0 -1
  543. package/dist/src/coin/xtz/iface.js +0 -3
  544. package/dist/src/coin/xtz/index.d.ts +0 -8
  545. package/dist/src/coin/xtz/index.d.ts.map +0 -1
  546. package/dist/src/coin/xtz/index.js +0 -37
  547. package/dist/src/coin/xtz/keyPair.d.ts +0 -40
  548. package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
  549. package/dist/src/coin/xtz/keyPair.js +0 -136
  550. package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
  551. package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
  552. package/dist/src/coin/xtz/multisigUtils.js +0 -1180
  553. package/dist/src/coin/xtz/transaction.d.ts +0 -119
  554. package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
  555. package/dist/src/coin/xtz/transaction.js +0 -315
  556. package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
  557. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
  558. package/dist/src/coin/xtz/transactionBuilder.js +0 -453
  559. package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
  560. package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
  561. package/dist/src/coin/xtz/transferBuilder.js +0 -64
  562. package/dist/src/coin/xtz/utils.d.ts +0 -265
  563. package/dist/src/coin/xtz/utils.d.ts.map +0 -1
  564. package/dist/src/coin/xtz/utils.js +0 -460
  565. package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
  566. package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
  567. package/dist/src/mpc/curves/baseCurve.js +0 -6
  568. package/dist/src/mpc/curves/ed25519.d.ts +0 -17
  569. package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
  570. package/dist/src/mpc/curves/ed25519.js +0 -48
  571. package/dist/src/mpc/curves/index.d.ts +0 -5
  572. package/dist/src/mpc/curves/index.d.ts.map +0 -1
  573. package/dist/src/mpc/curves/index.js +0 -6
  574. package/dist/src/mpc/curves/secp256k1.d.ts +0 -16
  575. package/dist/src/mpc/curves/secp256k1.d.ts.map +0 -1
  576. package/dist/src/mpc/curves/secp256k1.js +0 -66
  577. package/dist/src/mpc/hdTree.d.ts +0 -24
  578. package/dist/src/mpc/hdTree.d.ts.map +0 -1
  579. package/dist/src/mpc/hdTree.js +0 -94
  580. package/dist/src/mpc/shamir.d.ts +0 -26
  581. package/dist/src/mpc/shamir.d.ts.map +0 -1
  582. package/dist/src/mpc/shamir.js +0 -86
  583. package/dist/src/mpc/tss/eddsa/eddsa.d.ts +0 -29
  584. package/dist/src/mpc/tss/eddsa/eddsa.d.ts.map +0 -1
  585. package/dist/src/mpc/tss/eddsa/eddsa.js +0 -273
  586. package/dist/src/mpc/tss/eddsa/index.d.ts +0 -4
  587. package/dist/src/mpc/tss/eddsa/index.d.ts.map +0 -1
  588. package/dist/src/mpc/tss/eddsa/index.js +0 -30
  589. package/dist/src/mpc/tss/eddsa/types.d.ts +0 -70
  590. package/dist/src/mpc/tss/eddsa/types.d.ts.map +0 -1
  591. package/dist/src/mpc/tss/eddsa/types.js +0 -3
  592. package/dist/src/mpc/tss/index.d.ts +0 -5
  593. package/dist/src/mpc/tss/index.d.ts.map +0 -1
  594. package/dist/src/mpc/tss/index.js +0 -32
  595. package/dist/src/mpc/tss.d.ts +0 -98
  596. package/dist/src/mpc/tss.d.ts.map +0 -1
  597. package/dist/src/mpc/tss.js +0 -277
  598. package/dist/src/mpc/util.d.ts +0 -7
  599. package/dist/src/mpc/util.d.ts.map +0 -1
  600. package/dist/src/mpc/util.js +0 -38
  601. package/dist/src/utils/crypto.d.ts +0 -99
  602. package/dist/src/utils/crypto.d.ts.map +0 -1
  603. package/dist/src/utils/crypto.js +0 -260
  604. package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
  605. package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
  606. package/dist/src/utils/ed25519KeyDeriver.js +0 -92
  607. package/resources/hbar/protobuf/BasicTypes.proto +0 -424
  608. package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  609. package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  610. package/resources/hbar/protobuf/Duration.proto +0 -28
  611. package/resources/hbar/protobuf/Timestamp.proto +0 -34
  612. package/resources/hbar/protobuf/Transaction.proto +0 -35
  613. package/resources/hbar/protobuf/TransactionBody.proto +0 -24
  614. package/resources/hbar/protobuf/TransactionContents.proto +0 -33
  615. package/resources/hbar/protobuf/hedera.d.ts +0 -4612
  616. package/resources/hbar/protobuf/hedera.js +0 -12192
  617. package/resources/trx/protobuf/Contract.proto +0 -256
  618. package/resources/trx/protobuf/Discover.proto +0 -44
  619. package/resources/trx/protobuf/tron.d.ts +0 -11024
  620. package/resources/trx/protobuf/tron.js +0 -31510
  621. package/resources/trx/protobuf/tron.proto +0 -677
@@ -1,504 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.isSameBaseAddress = exports.getBaseAddress = exports.xpubToSTXPubkey = exports.getAddressVersion = exports.functionArgsToSendParams = exports.stringifyCv = exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.verifySignature = exports.signMessage = exports.getSTXAddressFromPubKeys = exports.unpadMemo = exports.isValidContractFunctionName = exports.isValidContractAddress = exports.isValidMemo = exports.isValidRawTransaction = exports.isValidPrivateKey = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = exports.isValidAmount = exports.getTxSenderAddress = exports.removeHexPrefix = exports.bufferToHexPrefixString = void 0;
26
- const querystring = __importStar(require("querystring"));
27
- const url = __importStar(require("url"));
28
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
29
- const ethereumjs_utils_old_1 = require("ethereumjs-utils-old");
30
- const transactions_1 = require("@stacks/transactions");
31
- const elliptic_1 = require("elliptic");
32
- const _ = __importStar(require("lodash"));
33
- const sdk_core_1 = require("@bitgo/sdk-core");
34
- const _1 = require(".");
35
- const constants_1 = require("./constants");
36
- /**
37
- * Encodes a buffer as a "0x" prefixed lower-case hex string.
38
- *
39
- * @param {Buffer} buff - a buffer with a hexadecimal string
40
- * @returns {string} - the hexadecimal string prefixed with "0x"
41
- */
42
- function bufferToHexPrefixString(buff) {
43
- return ethereumjs_utils_old_1.bufferToHex(buff);
44
- }
45
- exports.bufferToHexPrefixString = bufferToHexPrefixString;
46
- /**
47
- * Remove the "0x" prefix from the given string, if present.
48
- *
49
- * @param {string} hex - a hexadecimal string
50
- * @returns {string} - the hexadecimal string without a leading "0x"
51
- */
52
- function removeHexPrefix(hex) {
53
- return ethereumjs_utils_old_1.stripHexPrefix(hex);
54
- }
55
- exports.removeHexPrefix = removeHexPrefix;
56
- /**
57
- * Get stacks address from public key hash
58
- *
59
- * @param {Buffer} publicKeyHash - hash of public key
60
- * @param {AddressHashMode} hashMode - hash mode
61
- * @param {TransactionVersion} transactionVersion - tx version
62
- * @returns {string} stacks address
63
- */
64
- function getAddressFromPublicKeyHash(publicKeyHash, hashMode, transactionVersion) {
65
- if (publicKeyHash.length !== 20) {
66
- throw new Error('expected 20-byte pubkeyhash');
67
- }
68
- const addrVer = transactions_1.addressHashModeToVersion(hashMode, transactionVersion);
69
- const addr = transactions_1.addressFromVersionHash(addrVer, publicKeyHash.toString('hex'));
70
- const addrString = transactions_1.addressToString(addr);
71
- return addrString;
72
- }
73
- /**
74
- * @param tx
75
- */
76
- function getTxSenderAddress(tx) {
77
- if (tx.auth.spendingCondition !== null && tx.auth.spendingCondition !== undefined) {
78
- const spendingCondition = tx.auth.spendingCondition;
79
- const txSender = getAddressFromPublicKeyHash(Buffer.from(spendingCondition.signer, 'hex'), spendingCondition.hashMode, tx.version);
80
- return txSender;
81
- }
82
- else
83
- throw new Error('spendingCondition should not be null');
84
- }
85
- exports.getTxSenderAddress = getTxSenderAddress;
86
- /**
87
- * Returns whether or not the string is a valid amount number
88
- *
89
- * @param {string} amount - the string to validate
90
- * @returns {boolean} - the validation result
91
- */
92
- function isValidAmount(amount) {
93
- const bigNumberAmount = new bignumber_js_1.default(amount);
94
- return bigNumberAmount.isInteger() && bigNumberAmount.isGreaterThanOrEqualTo(0);
95
- }
96
- exports.isValidAmount = isValidAmount;
97
- /**
98
- * Returns whether or not the string is a valid protocol address
99
- *
100
- * @param {string} address - the address to be validated
101
- * @returns {boolean} - the validation result
102
- */
103
- function isValidAddress(address) {
104
- return transactions_1.validateStacksAddress(address);
105
- }
106
- exports.isValidAddress = isValidAddress;
107
- /**
108
- * Returns whether or not the string is a valid protocol transaction id or not.
109
- *
110
- * A valid transaction id is a SHA-512/256 hash of a serialized transaction; see
111
- * the txidFromData function in @stacks/transaction:
112
- * https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/utils.ts#L97
113
- *
114
- * @param {string} txId - the transaction id to be validated
115
- * @returns {boolean} - the validation result
116
- */
117
- function isValidTransactionId(txId) {
118
- if (txId.length !== 64 && txId.length !== 66)
119
- return false;
120
- const noPrefix = removeHexPrefix(txId);
121
- if (noPrefix.length !== 64)
122
- return false;
123
- return allHexChars(noPrefix);
124
- }
125
- exports.isValidTransactionId = isValidTransactionId;
126
- /**
127
- * Returns whether or not the string is a valid protocol public key or
128
- * extended public key.
129
- *
130
- * The key format is documented at
131
- * https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-authorization
132
- *
133
- * @param {string} pub - the public key to be validated
134
- * @returns {boolean} - the validation result
135
- */
136
- function isValidPublicKey(pub) {
137
- if (sdk_core_1.isValidXpub(pub))
138
- return true;
139
- if (pub.length !== 66 && pub.length !== 130)
140
- return false;
141
- const firstByte = pub.slice(0, 2);
142
- // uncompressed public key
143
- if (pub.length === 130 && firstByte !== '04')
144
- return false;
145
- // compressed public key
146
- if (pub.length === 66 && firstByte !== '02' && firstByte !== '03')
147
- return false;
148
- if (!allHexChars(pub))
149
- return false;
150
- // validate the public key
151
- const secp256k1 = new elliptic_1.ec('secp256k1');
152
- try {
153
- const keyPair = secp256k1.keyFromPublic(Buffer.from(pub, 'hex'));
154
- const { result } = keyPair.validate();
155
- return result;
156
- }
157
- catch (e) {
158
- return false;
159
- }
160
- }
161
- exports.isValidPublicKey = isValidPublicKey;
162
- /**
163
- * Returns whether or not the string is a valid protocol private key, or extended
164
- * private key.
165
- *
166
- * The protocol key format is described in the @stacks/transactions npm package, in the
167
- * createStacksPrivateKey function:
168
- * https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
169
- *
170
- * @param {string} prv - the private key (or extended private key) to be validated
171
- * @returns {boolean} - the validation result
172
- */
173
- function isValidPrivateKey(prv) {
174
- if (sdk_core_1.isValidXprv(prv))
175
- return true;
176
- if (prv.length !== 64 && prv.length !== 66)
177
- return false;
178
- if (prv.length === 66 && prv.slice(64) !== '01')
179
- return false;
180
- return allHexChars(prv);
181
- }
182
- exports.isValidPrivateKey = isValidPrivateKey;
183
- /**
184
- * Returns whether or not the string is a composed of hex chars only
185
- *
186
- * @param {string} maybe - the string to be validated
187
- * @returns {boolean} - the validation result
188
- */
189
- function allHexChars(maybe) {
190
- return /^([0-9a-f])+$/i.test(maybe);
191
- }
192
- /**
193
- * Checks if raw transaction can be deserialized
194
- *
195
- * @param {unknown} rawTransaction - transaction in raw hex format
196
- * @returns {boolean} - the validation result
197
- */
198
- function isValidRawTransaction(rawTransaction) {
199
- try {
200
- if (typeof rawTransaction === 'string') {
201
- transactions_1.deserializeTransaction(transactions_1.BufferReader.fromBuffer(Buffer.from(removeHexPrefix(rawTransaction), 'hex')));
202
- }
203
- else {
204
- return false;
205
- }
206
- }
207
- catch (e) {
208
- return false;
209
- }
210
- return true;
211
- }
212
- exports.isValidRawTransaction = isValidRawTransaction;
213
- /**
214
- * Returns whether or not the memo string is valid
215
- *
216
- * @param {string} memo - the string to be validated
217
- * @returns {boolean} - the validation result
218
- */
219
- function isValidMemo(memo) {
220
- try {
221
- transactions_1.createMemoString(memo);
222
- }
223
- catch (e) {
224
- return false;
225
- }
226
- return true;
227
- }
228
- exports.isValidMemo = isValidMemo;
229
- /**
230
- * Checks for valid contract address
231
- *
232
- * @param {string} addr - contract deployer address
233
- * @param {BitgoStacksNetwork} network - network object
234
- * @returns {boolean} - the validation result
235
- */
236
- function isValidContractAddress(addr, network) {
237
- return addr === network.stakingContractAddress || addr === network.sendmanymemoContractAddress;
238
- }
239
- exports.isValidContractAddress = isValidContractAddress;
240
- /**
241
- * Check if the name is one of valid contract names
242
- *
243
- * @param {string} name - function name
244
- * @returns {boolean} - validation result
245
- */
246
- function isValidContractFunctionName(name) {
247
- return constants_1.VALID_CONTRACT_FUNCTION_NAMES.includes(name);
248
- }
249
- exports.isValidContractFunctionName = isValidContractFunctionName;
250
- /**
251
- * Unpads a memo string, so it removes nulls.
252
- *
253
- * Useful when memo is fill up the length. Result is becomes readable.
254
- *
255
- * @param {string} memo - the string to be validated
256
- * @returns {boolean} - the validation result
257
- */
258
- function unpadMemo(memo) {
259
- const end = memo.indexOf('\u0000');
260
- if (end < 0)
261
- return memo;
262
- return memo.slice(0, end);
263
- }
264
- exports.unpadMemo = unpadMemo;
265
- /**
266
- * Generate a multisig address from multiple STX public keys
267
- *
268
- * @param {string[]} pubKeys - list of public keys as strings
269
- * @param {AddressVersion} addressVersion - MainnetMultiSig, TestnetMultiSig
270
- * @param {AddressHashMode} addressHashMode - SerializeP2SH
271
- * @param {number} [signaturesRequired] - number of signatures required, default value its 2
272
- * @returns {address: string, hash160: string} - a multisig address
273
- */
274
- function getSTXAddressFromPubKeys(pubKeys, addressVersion = transactions_1.AddressVersion.MainnetMultiSig, addressHashMode = transactions_1.AddressHashMode.SerializeP2SH, signaturesRequired = 2) {
275
- if (pubKeys.length === 0) {
276
- throw new Error('Invalid number of public keys');
277
- }
278
- if (!pubKeys.every(isValidPublicKey)) {
279
- throw new Error('Invalid public keys');
280
- }
281
- if (signaturesRequired > pubKeys.length) {
282
- throw new Error('Number of signatures required must be lower or equal to the number of Public Keys');
283
- }
284
- const stxPubKeys = pubKeys.map(transactions_1.createStacksPublicKey);
285
- const address = transactions_1.addressFromPublicKeys(addressVersion, addressHashMode, signaturesRequired, stxPubKeys);
286
- return { address: transactions_1.addressToString(address), hash160: address.hash160 };
287
- }
288
- exports.getSTXAddressFromPubKeys = getSTXAddressFromPubKeys;
289
- /**
290
- * signs a string message
291
- *
292
- * @param keyPair
293
- * @param data - message to be signed
294
- * @returns signed message string
295
- */
296
- function signMessage(keyPair, data) {
297
- const prv = keyPair.getKeys().prv;
298
- if (prv) {
299
- return transactions_1.signWithKey(transactions_1.createStacksPrivateKey(prv), data).data;
300
- }
301
- else {
302
- throw new sdk_core_1.SigningError('Missing private key');
303
- }
304
- }
305
- exports.signMessage = signMessage;
306
- /**
307
- * Verifies a signed message
308
- *
309
- * The signature must be 130 bytes long -- see RECOVERABLE_ECDSA_SIG_LENGTH_BYTES
310
- * in @stacks/transactions/src/constants.ts
311
- *
312
- * @param {string} message - message to verify the signature
313
- * @param {string} signature - signature to verify
314
- * @param {string} publicKey - public key as hex string used to verify the signature
315
- * @returns {boolean} - verification result
316
- */
317
- function verifySignature(message, signature, publicKey) {
318
- if (!isValidPublicKey(publicKey))
319
- return false;
320
- if (signature.length !== 130)
321
- return false;
322
- if (!allHexChars(signature))
323
- throw new sdk_core_1.UtilsError('Invalid signature input to verifySignature');
324
- if (_.isEmpty(message))
325
- throw new sdk_core_1.UtilsError('Cannot verify empty messages');
326
- // provided publicKey can be compressed or uncompressed
327
- const keyEncoding = publicKey.length === 66 ? transactions_1.PubKeyEncoding.Compressed : transactions_1.PubKeyEncoding.Uncompressed;
328
- const messageSig = transactions_1.createMessageSignature(signature);
329
- const foundKey = transactions_1.publicKeyFromSignature(message, messageSig, keyEncoding);
330
- return foundKey === publicKey;
331
- }
332
- exports.verifySignature = verifySignature;
333
- /**
334
- * Process address into address and memo id
335
- *
336
- * @param {string} address the address to process
337
- * @returns {Object} object containing address and memo id
338
- */
339
- function getAddressDetails(address) {
340
- const addressDetails = url.parse(address);
341
- const queryDetails = addressDetails.query ? querystring.parse(addressDetails.query) : {};
342
- const baseAddress = addressDetails.pathname;
343
- if (!isValidAddress(baseAddress)) {
344
- throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
345
- }
346
- // address doesn't have a memo id
347
- if (baseAddress === address) {
348
- return {
349
- address: address,
350
- memoId: undefined,
351
- };
352
- }
353
- if (_.isUndefined(queryDetails.memoId)) {
354
- // if there are more properties, the query details need to contain the memo id property
355
- throw new sdk_core_1.UtilsError(`invalid address with memo id: ${address}`);
356
- }
357
- const memoId = queryDetails.memoId;
358
- const intMemoId = parseInt(memoId, 10);
359
- if (isNaN(intMemoId) || intMemoId < 0) {
360
- throw new Error(`invalid memo id: ${memoId}`);
361
- }
362
- return {
363
- address: baseAddress,
364
- memoId,
365
- };
366
- }
367
- exports.getAddressDetails = getAddressDetails;
368
- /**
369
- * Validate and return address with appended memo id
370
- *
371
- * @param {AddressDetails} addressDetails
372
- * @returns {string} address with memo id
373
- */
374
- function normalizeAddress({ address, memoId }) {
375
- if (!isValidAddress(address)) {
376
- throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
377
- }
378
- if (!_.isUndefined(memoId)) {
379
- const intMemoId = parseInt(memoId, 10);
380
- if (isNaN(intMemoId) || intMemoId < 0) {
381
- throw new Error(`invalid memo id: ${memoId}`);
382
- }
383
- return `${address}?memoId=${memoId}`;
384
- }
385
- return address;
386
- }
387
- exports.normalizeAddress = normalizeAddress;
388
- /**
389
- * Return boolean indicating whether input is a valid address with memo id
390
- *
391
- * @param {string} address address in the form <address>?memoId=<memoId>
392
- * @returns {boolean} true is input is a valid address
393
- */
394
- function isValidAddressWithPaymentId(address) {
395
- try {
396
- const addressDetails = getAddressDetails(address);
397
- return address === normalizeAddress(addressDetails);
398
- }
399
- catch (e) {
400
- return false;
401
- }
402
- }
403
- exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
404
- /**
405
- * Return string representation of clarity value input
406
- *
407
- * @param {ClarityValue} cv clarity value function argument
408
- * @returns {String} stringified clarity value
409
- */
410
- function stringifyCv(cv) {
411
- switch (cv.type) {
412
- case transactions_1.ClarityType.Int:
413
- case transactions_1.ClarityType.UInt:
414
- return { type: cv.type, value: cv.value.toString() };
415
- case transactions_1.ClarityType.OptionalSome:
416
- return { type: cv.type, value: stringifyCv(cv.value) };
417
- case transactions_1.ClarityType.Tuple:
418
- return {
419
- type: cv.type,
420
- data: _.mapValues(cv.data, (value) => stringifyCv(value)),
421
- };
422
- case transactions_1.ClarityType.List:
423
- return {
424
- type: cv.type,
425
- list: cv.list.map(stringifyCv),
426
- };
427
- default:
428
- return cv;
429
- }
430
- }
431
- exports.stringifyCv = stringifyCv;
432
- /**
433
- * Parse functionArgs into send params for send-many-memo contract calls
434
- *
435
- * @param {ClarityValue[]} args functionArgs from a contract call payload
436
- * @returns {SendParams[]} An array of sendParams
437
- */
438
- function functionArgsToSendParams(args) {
439
- if (args.length !== 1 || args[0].type !== transactions_1.ClarityType.List) {
440
- throw new sdk_core_1.InvalidTransactionError("function args don't match send-many-memo type declaration");
441
- }
442
- return args[0].list.map((tuple) => {
443
- var _a, _b, _c;
444
- if (tuple.type !== transactions_1.ClarityType.Tuple ||
445
- ((_a = tuple.data.to) === null || _a === void 0 ? void 0 : _a.type) !== transactions_1.ClarityType.PrincipalStandard ||
446
- ((_b = tuple.data.ustx) === null || _b === void 0 ? void 0 : _b.type) !== transactions_1.ClarityType.UInt ||
447
- ((_c = tuple.data.memo) === null || _c === void 0 ? void 0 : _c.type) !== transactions_1.ClarityType.Buffer) {
448
- throw new sdk_core_1.InvalidTransactionError("function args don't match send-many-memo type declaration");
449
- }
450
- return {
451
- address: transactions_1.cvToString(tuple.data.to),
452
- amount: transactions_1.cvToValue(tuple.data.ustx, true),
453
- memo: tuple.data.memo.buffer.toString('ascii'),
454
- };
455
- });
456
- }
457
- exports.functionArgsToSendParams = functionArgsToSendParams;
458
- /**
459
- * Gets the version of an address
460
- *
461
- * @param {String} address the address with or without the memoId
462
- * @returns {AddressVersion} A number that represent the Address Version
463
- */
464
- function getAddressVersion(address) {
465
- const baseAddress = getAddressDetails(address).address;
466
- return transactions_1.createAddress(baseAddress).version;
467
- }
468
- exports.getAddressVersion = getAddressVersion;
469
- /**
470
- * Returns a STX pub key from an xpub
471
- *
472
- * @param {String} xpub an xpub
473
- * @returns {String} a compressed STX pub key
474
- */
475
- function xpubToSTXPubkey(xpub, compressed = true) {
476
- return new _1.KeyPair({ pub: xpub }).getKeys(compressed).pub;
477
- }
478
- exports.xpubToSTXPubkey = xpubToSTXPubkey;
479
- /**
480
- * Returns the base address portion of an address
481
- *
482
- * @param {String} address - an address
483
- * @returns {String} - the base address
484
- */
485
- function getBaseAddress(address) {
486
- const addressDetails = getAddressDetails(address);
487
- return addressDetails.address;
488
- }
489
- exports.getBaseAddress = getBaseAddress;
490
- /**
491
- * Compares an address to the base address to check if matchs.
492
- *
493
- * @param {String} address - an address
494
- * @param {String} baseAddress - a base address
495
- * @returns {boolean}
496
- */
497
- function isSameBaseAddress(address, baseAddress) {
498
- if (!isValidAddressWithPaymentId(address)) {
499
- throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
500
- }
501
- return getBaseAddress(address) === getBaseAddress(baseAddress);
502
- }
503
- exports.isSameBaseAddress = isSameBaseAddress;
504
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zdHgvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUEyQztBQUMzQyx5Q0FBMkI7QUFDM0IsZ0VBQXFDO0FBQ3JDLCtEQUFtRTtBQUNuRSx1REF3QjhCO0FBQzlCLHVDQUE4QjtBQUM5QiwwQ0FBNEI7QUFDNUIsOENBQThHO0FBRTlHLHdCQUE0QjtBQUU1QiwyQ0FBNEQ7QUFFNUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFZO0lBQ2xELE9BQU8sa0NBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsMERBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8scUNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRkQsMENBRUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUywyQkFBMkIsQ0FDbEMsYUFBcUIsRUFDckIsUUFBeUIsRUFDekIsa0JBQXNDO0lBRXRDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBRUQsTUFBTSxPQUFPLEdBQUcsdUNBQXdCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDdkUsTUFBTSxJQUFJLEdBQUcscUNBQXNCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBRyw4QkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEVBQXFCO0lBQ3RE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O0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBWSxFQUFFLFVBQVUsR0FBRyxJQUFJO0lBQzdELE9BQU8sSUFBSSxVQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVELENBQUM7QUFGRCwwQ0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDNUMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO0FBQ2hDLENBQUM7QUFIRCx3Q0FHQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxXQUFtQjtJQUNwRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekMsTUFBTSxJQUFJLHFCQUFVLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUxELDhDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuaW1wb3J0ICogYXMgdXJsIGZyb20gJ3VybCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBidWZmZXJUb0hleCwgc3RyaXBIZXhQcmVmaXggfSBmcm9tICdldGhlcmV1bWpzLXV0aWxzLW9sZCc7XG5pbXBvcnQge1xuICBhZGRyZXNzRnJvbVB1YmxpY0tleXMsXG4gIGFkZHJlc3NGcm9tVmVyc2lvbkhhc2gsXG4gIEFkZHJlc3NIYXNoTW9kZSxcbiAgYWRkcmVzc0hhc2hNb2RlVG9WZXJzaW9uLFxuICBhZGRyZXNzVG9TdHJpbmcsXG4gIEFkZHJlc3NWZXJzaW9uLFxuICBCdWZmZXJSZWFkZXIsXG4gIENsYXJpdHlUeXBlLFxuICBDbGFyaXR5VmFsdWUsXG4gIGNyZWF0ZUFkZHJlc3MsXG4gIGNyZWF0ZU1lbW9TdHJpbmcsXG4gIGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsXG4gIGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXksXG4gIGNyZWF0ZVN0YWNrc1B1YmxpY0tleSxcbiAgY3ZUb1N0cmluZyxcbiAgY3ZUb1ZhbHVlLFxuICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLFxuICBQdWJLZXlFbmNvZGluZyxcbiAgcHVibGljS2V5RnJvbVNpZ25hdHVyZSxcbiAgc2lnbldpdGhLZXksXG4gIFN0YWNrc1RyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblZlcnNpb24sXG4gIHZhbGlkYXRlU3RhY2tzQWRkcmVzcyxcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgZWMgfSBmcm9tICdlbGxpcHRpYyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgaXNWYWxpZFhwcnYsIGlzVmFsaWRYcHViLCBTaWduaW5nRXJyb3IsIFV0aWxzRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWRkcmVzc0RldGFpbHMsIFNlbmRQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcbmltcG9ydCB7IFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVkFMSURfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogRW5jb2RlcyBhIGJ1ZmZlciBhcyBhIFwiMHhcIiBwcmVmaXhlZCBsb3dlci1jYXNlIGhleCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmYgLSBhIGJ1ZmZlciB3aXRoIGEgaGV4YWRlY2ltYWwgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcHJlZml4ZWQgd2l0aCBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRvSGV4UHJlZml4U3RyaW5nKGJ1ZmY6IEJ1ZmZlcik6IHN0cmluZyB7XG4gIHJldHVybiBidWZmZXJUb0hleChidWZmKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIFwiMHhcIiBwcmVmaXggZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLCBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoZXggLSBhIGhleGFkZWNpbWFsIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nIHdpdGhvdXQgYSBsZWFkaW5nIFwiMHhcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSGV4UHJlZml4KGhleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cmlwSGV4UHJlZml4KGhleCk7XG59XG5cbi8qKlxuICogR2V0IHN0YWNrcyBhZGRyZXNzIGZyb20gcHVibGljIGtleSBoYXNoXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IHB1YmxpY0tleUhhc2ggLSBoYXNoIG9mIHB1YmxpYyBrZXlcbiAqIEBwYXJhbSB7QWRkcmVzc0hhc2hNb2RlfSBoYXNoTW9kZSAtIGhhc2ggbW9kZVxuICogQHBhcmFtIHtUcmFuc2FjdGlvblZlcnNpb259IHRyYW5zYWN0aW9uVmVyc2lvbiAtIHR4IHZlcnNpb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9IHN0YWNrcyBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGdldEFkZHJlc3NGcm9tUHVibGljS2V5SGFzaChcbiAgcHVibGljS2V5SGFzaDogQnVmZmVyLFxuICBoYXNoTW9kZTogQWRkcmVzc0hhc2hNb2RlLFxuICB0cmFuc2FjdGlvblZlcnNpb246IFRyYW5zYWN0aW9uVmVyc2lvbixcbik6IHN0cmluZyB7XG4gIGlmIChwdWJsaWNLZXlIYXNoLmxlbmd0aCAhPT0gMjApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIDIwLWJ5dGUgcHVia2V5aGFzaCcpO1xuICB9XG5cbiAgY29uc3QgYWRkclZlciA9IGFkZHJlc3NIYXNoTW9kZVRvVmVyc2lvbihoYXNoTW9kZSwgdHJhbnNhY3Rpb25WZXJzaW9uKTtcbiAgY29uc3QgYWRkciA9IGFkZHJlc3NGcm9tVmVyc2lvbkhhc2goYWRkclZlciwgcHVibGljS2V5SGFzaC50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBhZGRyU3RyaW5nID0gYWRkcmVzc1RvU3RyaW5nKGFkZHIpO1xuICByZXR1cm4gYWRkclN0cmluZztcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR4U2VuZGVyQWRkcmVzcyh0eDogU3RhY2tzVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICBpZiAodHguYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiAhPT0gbnVsbCAmJiB0eC5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBzcGVuZGluZ0NvbmRpdGlvbiA9IHR4LmF1dGguc3BlbmRpbmdDb25kaXRpb247XG4gICAgY29uc3QgdHhTZW5kZXIgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleUhhc2goXG4gICAgICBCdWZmZXIuZnJvbShzcGVuZGluZ0NvbmRpdGlvbi5zaWduZXIsICdoZXgnKSxcbiAgICAgIHNwZW5kaW5nQ29uZGl0aW9uLmhhc2hNb2RlIGFzIG51bWJlcixcbiAgICAgIHR4LnZlcnNpb24sXG4gICAgKTtcbiAgICByZXR1cm4gdHhTZW5kZXI7XG4gIH0gZWxzZSB0aHJvdyBuZXcgRXJyb3IoJ3NwZW5kaW5nQ29uZGl0aW9uIHNob3VsZCBub3QgYmUgbnVsbCcpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGFtb3VudCBudW1iZXJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gdGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQW1vdW50KGFtb3VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgcmV0dXJuIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJiBiaWdOdW1iZXJBbW91bnQuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygwKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSB0aGUgYWRkcmVzcyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWxpZGF0ZVN0YWNrc0FkZHJlc3MoYWRkcmVzcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgdHJhbnNhY3Rpb24gaWQgb3Igbm90LlxuICpcbiAqIEEgdmFsaWQgdHJhbnNhY3Rpb24gaWQgaXMgYSBTSEEtNTEyLzI1NiBoYXNoIG9mIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvbjsgc2VlXG4gKiB0aGUgdHhpZEZyb21EYXRhIGZ1bmN0aW9uIGluIEBzdGFja3MvdHJhbnNhY3Rpb246XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmxvY2tzdGFjay9zdGFja3MuanMvYmxvYi9tYXN0ZXIvcGFja2FnZXMvdHJhbnNhY3Rpb25zL3NyYy91dGlscy50cyNMOTdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHhJZCAtIHRoZSB0cmFuc2FjdGlvbiBpZCB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh0eElkLmxlbmd0aCAhPT0gNjQgJiYgdHhJZC5sZW5ndGggIT09IDY2KSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IG5vUHJlZml4ID0gcmVtb3ZlSGV4UHJlZml4KHR4SWQpO1xuICBpZiAobm9QcmVmaXgubGVuZ3RoICE9PSA2NCkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBhbGxIZXhDaGFycyhub1ByZWZpeCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgcHVibGljIGtleSBvclxuICogZXh0ZW5kZWQgcHVibGljIGtleS5cbiAqXG4gKiBUaGUga2V5IGZvcm1hdCBpcyBkb2N1bWVudGVkIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tzZ292L3NpcHMvYmxvYi9tYWluL3NpcHMvc2lwLTAwNS9zaXAtMDA1LWJsb2Nrcy1hbmQtdHJhbnNhY3Rpb25zLm1kI3RyYW5zYWN0aW9uLWF1dGhvcml6YXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHViIC0gdGhlICBwdWJsaWMga2V5IHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHVibGljS2V5KHB1Yjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpc1ZhbGlkWHB1YihwdWIpKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAocHViLmxlbmd0aCAhPT0gNjYgJiYgcHViLmxlbmd0aCAhPT0gMTMwKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgZmlyc3RCeXRlID0gcHViLnNsaWNlKDAsIDIpO1xuXG4gIC8vIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gIGlmIChwdWIubGVuZ3RoID09PSAxMzAgJiYgZmlyc3RCeXRlICE9PSAnMDQnKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gIGlmIChwdWIubGVuZ3RoID09PSA2NiAmJiBmaXJzdEJ5dGUgIT09ICcwMicgJiYgZmlyc3RCeXRlICE9PSAnMDMnKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFhbGxIZXhDaGFycyhwdWIpKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gdmFsaWRhdGUgdGhlIHB1YmxpYyBrZXlcbiAgY29uc3Qgc2VjcDI1NmsxID0gbmV3IGVjKCdzZWNwMjU2azEnKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBrZXlQYWlyID0gc2VjcDI1NmsxLmtleUZyb21QdWJsaWMoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBrZXlQYWlyLnZhbGlkYXRlKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIHByaXZhdGUga2V5LCBvciBleHRlbmRlZFxuICogcHJpdmF0ZSBrZXkuXG4gKlxuICogVGhlIHByb3RvY29sIGtleSBmb3JtYXQgaXMgZGVzY3JpYmVkIGluIHRoZSBAc3RhY2tzL3RyYW5zYWN0aW9ucyBucG0gcGFja2FnZSwgaW4gdGhlXG4gKiBjcmVhdGVTdGFja3NQcml2YXRlS2V5IGZ1bmN0aW9uOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2Jsb2Nrc3RhY2svc3RhY2tzLmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3RyYW5zYWN0aW9ucy9zcmMva2V5cy50cyNMMTI1XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBydiAtIHRoZSBwcml2YXRlIGtleSAob3IgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkpIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShwcnY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoaXNWYWxpZFhwcnYocHJ2KSkgcmV0dXJuIHRydWU7XG5cbiAgaWYgKHBydi5sZW5ndGggIT09IDY0ICYmIHBydi5sZW5ndGggIT09IDY2KSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHBydi5sZW5ndGggPT09IDY2ICYmIHBydi5zbGljZSg2NCkgIT09ICcwMScpIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gYWxsSGV4Q2hhcnMocHJ2KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSBjb21wb3NlZCBvZiBoZXggY2hhcnMgb25seVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSAtIHRoZSAgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmZ1bmN0aW9uIGFsbEhleENoYXJzKG1heWJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eKFswLTlhLWZdKSskL2kudGVzdChtYXliZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHJhdyB0cmFuc2FjdGlvbiBjYW4gYmUgZGVzZXJpYWxpemVkXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSByYXdUcmFuc2FjdGlvbiAtIHRyYW5zYWN0aW9uIGluIHJhdyBoZXggZm9ybWF0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogdW5rbm93bik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGlmICh0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKEJ1ZmZlclJlYWRlci5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHJlbW92ZUhleFByZWZpeChyYXdUcmFuc2FjdGlvbiksICdoZXgnKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgbWVtbyBzdHJpbmcgaXMgdmFsaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtbyAtIHRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZW1vKG1lbW86IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNyZWF0ZU1lbW9TdHJpbmcobWVtbyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIHZhbGlkIGNvbnRyYWN0IGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkciAtIGNvbnRyYWN0IGRlcGxveWVyIGFkZHJlc3NcbiAqIEBwYXJhbSB7Qml0Z29TdGFja3NOZXR3b3JrfSBuZXR3b3JrIC0gbmV0d29yayBvYmplY3RcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZENvbnRyYWN0QWRkcmVzcyhhZGRyOiBzdHJpbmcsIG5ldHdvcms6IEJpdGdvU3RhY2tzTmV0d29yayk6IGJvb2xlYW4ge1xuICByZXR1cm4gYWRkciA9PT0gbmV0d29yay5zdGFraW5nQ29udHJhY3RBZGRyZXNzIHx8IGFkZHIgPT09IG5ldHdvcmsuc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBuYW1lIGlzIG9uZSBvZiB2YWxpZCBjb250cmFjdCBuYW1lc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gZnVuY3Rpb24gbmFtZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRDb250cmFjdEZ1bmN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIFZBTElEX0NPTlRSQUNUX0ZVTkNUSU9OX05BTUVTLmluY2x1ZGVzKG5hbWUpO1xufVxuXG4vKipcbiAqIFVucGFkcyBhIG1lbW8gc3RyaW5nLCBzbyBpdCByZW1vdmVzIG51bGxzLlxuICpcbiAqIFVzZWZ1bCB3aGVuIG1lbW8gaXMgZmlsbCB1cCB0aGUgbGVuZ3RoLiBSZXN1bHQgaXMgYmVjb21lcyByZWFkYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtbyAtIHRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVucGFkTWVtbyhtZW1vOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBlbmQgPSBtZW1vLmluZGV4T2YoJ1xcdTAwMDAnKTtcbiAgaWYgKGVuZCA8IDApIHJldHVybiBtZW1vO1xuICByZXR1cm4gbWVtby5zbGljZSgwLCBlbmQpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgbXVsdGlzaWcgYWRkcmVzcyBmcm9tIG11bHRpcGxlIFNUWCBwdWJsaWMga2V5c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHB1YktleXMgLSBsaXN0IG9mIHB1YmxpYyBrZXlzIGFzIHN0cmluZ3NcbiAqIEBwYXJhbSB7QWRkcmVzc1ZlcnNpb259IGFkZHJlc3NWZXJzaW9uIC0gTWFpbm5ldE11bHRpU2lnLCBUZXN0bmV0TXVsdGlTaWdcbiAqIEBwYXJhbSB7QWRkcmVzc0hhc2hNb2RlfSBhZGRyZXNzSGFzaE1vZGUgLSBTZXJpYWxpemVQMlNIXG4gKiBAcGFyYW0ge251bWJlcn0gW3NpZ25hdHVyZXNSZXF1aXJlZF0gLSBudW1iZXIgb2Ygc2lnbmF0dXJlcyByZXF1aXJlZCwgZGVmYXVsdCB2YWx1ZSBpdHMgMlxuICogQHJldHVybnMge2FkZHJlc3M6IHN0cmluZywgaGFzaDE2MDogc3RyaW5nfSAtIGEgbXVsdGlzaWcgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U1RYQWRkcmVzc0Zyb21QdWJLZXlzKFxuICBwdWJLZXlzOiBzdHJpbmdbXSxcbiAgYWRkcmVzc1ZlcnNpb246IEFkZHJlc3NWZXJzaW9uID0gQWRkcmVzc1ZlcnNpb24uTWFpbm5ldE11bHRpU2lnLFxuICBhZGRyZXNzSGFzaE1vZGU6IEFkZHJlc3NIYXNoTW9kZSA9IEFkZHJlc3NIYXNoTW9kZS5TZXJpYWxpemVQMlNILFxuICBzaWduYXR1cmVzUmVxdWlyZWQgPSAyLFxuKTogeyBhZGRyZXNzOiBzdHJpbmc7IGhhc2gxNjA6IHN0cmluZyB9IHtcbiAgaWYgKHB1YktleXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG51bWJlciBvZiBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmICghcHViS2V5cy5ldmVyeShpc1ZhbGlkUHVibGljS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmIChzaWduYXR1cmVzUmVxdWlyZWQgPiBwdWJLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTnVtYmVyIG9mIHNpZ25hdHVyZXMgcmVxdWlyZWQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIFB1YmxpYyBLZXlzJyk7XG4gIH1cblxuICBjb25zdCBzdHhQdWJLZXlzID0gcHViS2V5cy5tYXAoY3JlYXRlU3RhY2tzUHVibGljS2V5KTtcbiAgY29uc3QgYWRkcmVzcyA9IGFkZHJlc3NGcm9tUHVibGljS2V5cyhhZGRyZXNzVmVyc2lvbiwgYWRkcmVzc0hhc2hNb2RlLCBzaWduYXR1cmVzUmVxdWlyZWQsIHN0eFB1YktleXMpO1xuXG4gIHJldHVybiB7IGFkZHJlc3M6IGFkZHJlc3NUb1N0cmluZyhhZGRyZXNzKSwgaGFzaDE2MDogYWRkcmVzcy5oYXNoMTYwIH07XG59XG5cbi8qKlxuICogc2lnbnMgYSBzdHJpbmcgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBrZXlQYWlyXG4gKiBAcGFyYW0gZGF0YSAgLSBtZXNzYWdlIHRvIGJlIHNpZ25lZFxuICogQHJldHVybnMgc2lnbmVkIG1lc3NhZ2Ugc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduTWVzc2FnZShrZXlQYWlyOiBLZXlQYWlyLCBkYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwcnYgPSBrZXlQYWlyLmdldEtleXMoKS5wcnY7XG4gIGlmIChwcnYpIHtcbiAgICByZXR1cm4gc2lnbldpdGhLZXkoY3JlYXRlU3RhY2tzUHJpdmF0ZUtleShwcnYpLCBkYXRhKS5kYXRhO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWVzIGEgc2lnbmVkIG1lc3NhZ2VcbiAqXG4gKiBUaGUgc2lnbmF0dXJlIG11c3QgYmUgMTMwIGJ5dGVzIGxvbmcgLS0gc2VlIFJFQ09WRVJBQkxFX0VDRFNBX1NJR19MRU5HVEhfQllURVNcbiAqIGluIEBzdGFja3MvdHJhbnNhY3Rpb25zL3NyYy9jb25zdGFudHMudHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIG1lc3NhZ2UgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgLSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gKiBAcGFyYW0ge3N0cmluZ30gcHVibGljS2V5IC0gcHVibGljIGtleSBhcyBoZXggc3RyaW5nIHVzZWQgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHZlcmlmaWNhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkocHVibGljS2V5KSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoc2lnbmF0dXJlLmxlbmd0aCAhPT0gMTMwKSByZXR1cm4gZmFsc2U7XG4gIGlmICghYWxsSGV4Q2hhcnMoc2lnbmF0dXJlKSkgdGhyb3cgbmV3IFV0aWxzRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlIGlucHV0IHRvIHZlcmlmeVNpZ25hdHVyZScpO1xuICBpZiAoXy5pc0VtcHR5KG1lc3NhZ2UpKSB0aHJvdyBuZXcgVXRpbHNFcnJvcignQ2Fubm90IHZlcmlmeSBlbXB0eSBtZXNzYWdlcycpO1xuXG4gIC8vIHByb3ZpZGVkIHB1YmxpY0tleSBjYW4gYmUgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWRcbiAgY29uc3Qga2V5RW5jb2RpbmcgPSBwdWJsaWNLZXkubGVuZ3RoID09PSA2NiA/IFB1YktleUVuY29kaW5nLkNvbXByZXNzZWQgOiBQdWJLZXlFbmNvZGluZy5VbmNvbXByZXNzZWQ7XG5cbiAgY29uc3QgbWVzc2FnZVNpZyA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoc2lnbmF0dXJlKTtcblxuICBjb25zdCBmb3VuZEtleSA9IHB1YmxpY0tleUZyb21TaWduYXR1cmUobWVzc2FnZSwgbWVzc2FnZVNpZywga2V5RW5jb2RpbmcpO1xuXG4gIHJldHVybiBmb3VuZEtleSA9PT0gcHVibGljS2V5O1xufVxuXG4vKipcbiAqIFByb2Nlc3MgYWRkcmVzcyBpbnRvIGFkZHJlc3MgYW5kIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB0byBwcm9jZXNzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBvYmplY3QgY29udGFpbmluZyBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzRGV0YWlscyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gdXJsLnBhcnNlKGFkZHJlc3MpO1xuICBjb25zdCBxdWVyeURldGFpbHMgPSBhZGRyZXNzRGV0YWlscy5xdWVyeSA/IHF1ZXJ5c3RyaW5nLnBhcnNlKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHt9O1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IDxzdHJpbmc+YWRkcmVzc0RldGFpbHMucGF0aG5hbWU7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIC8vIGFkZHJlc3MgZG9lc24ndCBoYXZlIGEgbWVtbyBpZFxuICBpZiAoYmFzZUFkZHJlc3MgPT09IGFkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoXy5pc1VuZGVmaW5lZChxdWVyeURldGFpbHMubWVtb0lkKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gPHN0cmluZz5xdWVyeURldGFpbHMubWVtb0lkO1xuICBjb25zdCBpbnRNZW1vSWQgPSBwYXJzZUludChtZW1vSWQsIDEwKTtcbiAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBtZW1vIGlkOiAke21lbW9JZH1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlsc1xuICogQHJldHVybnMge3N0cmluZ30gYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIGlmICghXy5pc1VuZGVmaW5lZChtZW1vSWQpKSB7XG4gICAgY29uc3QgaW50TWVtb0lkID0gcGFyc2VJbnQobWVtb0lkLCAxMCk7XG4gICAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG1lbW8gaWQ6ICR7bWVtb0lkfWApO1xuICAgIH1cbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBhZGRyZXNzIGluIHRoZSBmb3JtIDxhZGRyZXNzPj9tZW1vSWQ9PG1lbW9JZD5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlzIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gICAgcmV0dXJuIGFkZHJlc3MgPT09IG5vcm1hbGl6ZUFkZHJlc3MoYWRkcmVzc0RldGFpbHMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjbGFyaXR5IHZhbHVlIGlucHV0XG4gKlxuICogQHBhcmFtIHtDbGFyaXR5VmFsdWV9IGN2IGNsYXJpdHkgdmFsdWUgZnVuY3Rpb24gYXJndW1lbnRcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZ2lmaWVkIGNsYXJpdHkgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUN2KGN2OiBDbGFyaXR5VmFsdWUpOiBhbnkge1xuICBzd2l0Y2ggKGN2LnR5cGUpIHtcbiAgICBjYXNlIENsYXJpdHlUeXBlLkludDpcbiAgICBjYXNlIENsYXJpdHlUeXBlLlVJbnQ6XG4gICAgICByZXR1cm4geyB0eXBlOiBjdi50eXBlLCB2YWx1ZTogY3YudmFsdWUudG9TdHJpbmcoKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuT3B0aW9uYWxTb21lOlxuICAgICAgcmV0dXJuIHsgdHlwZTogY3YudHlwZSwgdmFsdWU6IHN0cmluZ2lmeUN2KGN2LnZhbHVlKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuVHVwbGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBjdi50eXBlLFxuICAgICAgICBkYXRhOiBfLm1hcFZhbHVlcyhjdi5kYXRhLCAodmFsdWUpID0+IHN0cmluZ2lmeUN2KHZhbHVlKSksXG4gICAgICB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuTGlzdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IGN2LnR5cGUsXG4gICAgICAgIGxpc3Q6IGN2Lmxpc3QubWFwKHN0cmluZ2lmeUN2KSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdjtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGZ1bmN0aW9uQXJncyBpbnRvIHNlbmQgcGFyYW1zIGZvciBzZW5kLW1hbnktbWVtbyBjb250cmFjdCBjYWxsc1xuICpcbiAqIEBwYXJhbSB7Q2xhcml0eVZhbHVlW119IGFyZ3MgZnVuY3Rpb25BcmdzIGZyb20gYSBjb250cmFjdCBjYWxsIHBheWxvYWRcbiAqIEByZXR1cm5zIHtTZW5kUGFyYW1zW119IEFuIGFycmF5IG9mIHNlbmRQYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcyhhcmdzOiBDbGFyaXR5VmFsdWVbXSk6IFNlbmRQYXJhbXNbXSB7XG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdLnR5cGUgIT09IENsYXJpdHlUeXBlLkxpc3QpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIGFyZ3NbMF0ubGlzdC5tYXAoKHR1cGxlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdHVwbGUudHlwZSAhPT0gQ2xhcml0eVR5cGUuVHVwbGUgfHxcbiAgICAgIHR1cGxlLmRhdGEudG8/LnR5cGUgIT09IENsYXJpdHlUeXBlLlByaW5jaXBhbFN0YW5kYXJkIHx8XG4gICAgICB0dXBsZS5kYXRhLnVzdHg/LnR5cGUgIT09IENsYXJpdHlUeXBlLlVJbnQgfHxcbiAgICAgIHR1cGxlLmRhdGEubWVtbz8udHlwZSAhPT0gQ2xhcml0eVR5cGUuQnVmZmVyXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBjdlRvU3RyaW5nKHR1cGxlLmRhdGEudG8pLFxuICAgICAgYW1vdW50OiBjdlRvVmFsdWUodHVwbGUuZGF0YS51c3R4LCB0cnVlKSxcbiAgICAgIG1lbW86IHR1cGxlLmRhdGEubWVtby5idWZmZXIudG9TdHJpbmcoJ2FzY2lpJyksXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdmVyc2lvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3MgdGhlIGFkZHJlc3Mgd2l0aCBvciB3aXRob3V0IHRoZSBtZW1vSWRcbiAqIEByZXR1cm5zIHtBZGRyZXNzVmVyc2lvbn0gQSBudW1iZXIgdGhhdCByZXByZXNlbnQgdGhlIEFkZHJlc3MgVmVyc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1ZlcnNpb24oYWRkcmVzczogc3RyaW5nKTogQWRkcmVzc1ZlcnNpb24ge1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpLmFkZHJlc3M7XG4gIHJldHVybiBjcmVhdGVBZGRyZXNzKGJhc2VBZGRyZXNzKS52ZXJzaW9uO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBTVFggcHViIGtleSBmcm9tIGFuIHhwdWJcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30geHB1YiBhbiB4cHViXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBhIGNvbXByZXNzZWQgU1RYIHB1YiBrZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhwdWJUb1NUWFB1YmtleSh4cHViOiBzdHJpbmcsIGNvbXByZXNzZWQgPSB0cnVlKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHViOiB4cHViIH0pLmdldEtleXMoY29tcHJlc3NlZCkucHViO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGJhc2UgYWRkcmVzcyBwb3J0aW9uIG9mIGFuIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyAtIGFuIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogQ29tcGFyZXMgYW4gYWRkcmVzcyB0byB0aGUgYmFzZSBhZGRyZXNzIHRvIGNoZWNrIGlmIG1hdGNocy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyAtIGFuIGFkZHJlc3NcbiAqIEBwYXJhbSB7U3RyaW5nfSBiYXNlQWRkcmVzcyAtIGEgYmFzZSBhZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { BaseAddress } from '@bitgo/sdk-core';
2
- /**
3
- * Addresses can be encoded in three varieties:
4
- * 1) ByteArray - this is a UIntArray8. Typically used for signing.
5
- * 2) Hex - hex encoded string
6
- * 3) Base58 - base58 encoded string. Typically used for display.
7
- */
8
- export declare class Address implements BaseAddress {
9
- address: string;
10
- }
11
- //# sourceMappingURL=address.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/coin/trx/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAEzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Address = void 0;
4
- /**
5
- * Addresses can be encoded in three varieties:
6
- * 1) ByteArray - this is a UIntArray8. Typically used for signing.
7
- * 2) Hex - hex encoded string
8
- * 3) Base58 - base58 encoded string. Typically used for display.
9
- */
10
- class Address {
11
- }
12
- exports.Address = Address;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3RyeC9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7OztHQUtHO0FBQ0gsTUFBYSxPQUFPO0NBR25CO0FBSEQsMEJBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQWRkcmVzcyB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbi8qKlxuICogQWRkcmVzc2VzIGNhbiBiZSBlbmNvZGVkIGluIHRocmVlIHZhcmlldGllczpcbiAqIDEpIEJ5dGVBcnJheSAtIHRoaXMgaXMgYSBVSW50QXJyYXk4LiBUeXBpY2FsbHkgdXNlZCBmb3Igc2lnbmluZy5cbiAqIDIpIEhleCAtIGhleCBlbmNvZGVkIHN0cmluZ1xuICogMykgQmFzZTU4IC0gYmFzZTU4IGVuY29kZWQgc3RyaW5nLiBUeXBpY2FsbHkgdXNlZCBmb3IgZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFkZHJlc3MgaW1wbGVtZW50cyBCYXNlQWRkcmVzcyB7XG4gIC8vIHRoZSBiYXNlNTggcmVwcmVzZW50YXRpb25cbiAgYWRkcmVzczogc3RyaW5nO1xufVxuIl19