@bitgo/account-lib 2.20.0-rc.30 → 2.20.0-rc.33

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