@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,460 +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.DEFAULT_STORAGE_LIMIT = exports.DEFAULT_FEE = exports.DEFAULT_GAS_LIMIT = exports.hashTypes = exports.decodeSignature = exports.decodeKey = exports.isValidKey = exports.isValidTransactionHash = exports.isValidBlockHash = exports.isValidPrivateKey = exports.isValidPublicKey = exports.isValidSignature = exports.isValidOriginatedAddress = exports.isValidImplicitAddress = exports.isValidAddress = exports.isValidHash = exports.generateDataToSign = exports.verifySignature = exports.sign = exports.calculateOriginatedAddress = exports.calculateTransactionId = exports.base58encode = exports.DEFAULT_WATERMARK = void 0;
26
- const base58check = __importStar(require("bs58check"));
27
- const libsodium_wrappers_1 = __importDefault(require("libsodium-wrappers"));
28
- const signer_1 = require("@taquito/signer");
29
- const elliptic_1 = require("elliptic");
30
- const sdk_core_1 = require("@bitgo/sdk-core");
31
- const multisigUtils_1 = require("./multisigUtils");
32
- // By default, use the transactions prefix
33
- exports.DEFAULT_WATERMARK = new Uint8Array([3]);
34
- /**
35
- * Encode the payload to base58 with a specific Tezos prefix.
36
- *
37
- * @param {Buffer} prefix to add to the encoded payload
38
- * @param {Buffer} payload to encode
39
- * @returns {any} base58 payload with a Tezos prefix
40
- */
41
- function base58encode(prefix, payload) {
42
- const n = Buffer.alloc(prefix.length + payload.length);
43
- n.set(prefix);
44
- n.set(payload, prefix.length);
45
- return base58check.encode(n);
46
- }
47
- exports.base58encode = base58encode;
48
- /**
49
- * Calculate the transaction id for a for a signed transaction.
50
- *
51
- * @param {string} encodedTransaction Signed transaction in hexadecimal
52
- * @returns {Promise<string>} The transaction id
53
- */
54
- async function calculateTransactionId(encodedTransaction) {
55
- await libsodium_wrappers_1.default.ready;
56
- const encodedTransactionBuffer = Uint8Array.from(Buffer.from(encodedTransaction, 'hex'));
57
- const operationHashPayload = libsodium_wrappers_1.default.crypto_generichash(32, encodedTransactionBuffer);
58
- return base58encode(exports.hashTypes.o.prefix, Buffer.from(operationHashPayload));
59
- }
60
- exports.calculateTransactionId = calculateTransactionId;
61
- /**
62
- * Calculate the address of a new originated account.
63
- *
64
- * @param {string} transactionId The transaction id
65
- * @param {number} index The index of the origination operation inside the transaction (starts at 0)
66
- * @returns {Promise<string>} An originated address with the KT prefix
67
- */
68
- async function calculateOriginatedAddress(transactionId, index) {
69
- // From https://github.com/TezTech/eztz/blob/cfdc4fcfc891f4f4f077c3056f414476dde3610b/src/main.js#L768
70
- const ob = base58check.decode(transactionId).slice(exports.hashTypes.o.prefix.length);
71
- let tt = [];
72
- for (let i = 0; i < ob.length; i++) {
73
- tt.push(ob[i]);
74
- }
75
- tt = tt.concat([
76
- (index & 0xff000000) >> 24,
77
- (index & 0x00ff0000) >> 16,
78
- (index & 0x0000ff00) >> 8,
79
- index & 0x000000ff,
80
- ]);
81
- await libsodium_wrappers_1.default.ready;
82
- const payload = libsodium_wrappers_1.default.crypto_generichash(20, new Uint8Array(tt));
83
- return base58encode(exports.hashTypes.KT.prefix, Buffer.from(payload));
84
- }
85
- exports.calculateOriginatedAddress = calculateOriginatedAddress;
86
- /**
87
- * Generic data signing using Tezos library.
88
- *
89
- * @param {KeyPair} keyPair A Key Pair with a private key set
90
- * @param {string} data The data in hexadecimal to sign
91
- * @param {Uint8Array} watermark Magic byte: 1 for block, 2 for endorsement, 3 for generic
92
- * @returns {Promise<SignResponse>}
93
- */
94
- async function sign(keyPair, data, watermark = exports.DEFAULT_WATERMARK) {
95
- if (!keyPair.getKeys().prv) {
96
- throw new sdk_core_1.SigningError('Missing private key');
97
- }
98
- const signer = new signer_1.InMemorySigner(keyPair.getKeys().prv);
99
- return signer.sign(data, watermark);
100
- }
101
- exports.sign = sign;
102
- /**
103
- * Verifies the signature produced for a given message belongs to a secp256k1 public key.
104
- *
105
- * @param {string} message Message in hex format to verify
106
- * @param {string} publicKey secp256k1 public key with "sppk" prefix to verify the signature with
107
- * @param {string} signature Tezos signature with "sig" prefix
108
- * @param {Uint8Array} watermark Optional watermark used to generate the signature
109
- * @returns {Promise<boolean>}
110
- */
111
- async function verifySignature(message, publicKey, signature, watermark = exports.DEFAULT_WATERMARK) {
112
- const rawPublicKey = decodeKey(publicKey, exports.hashTypes.sppk);
113
- const ec = new elliptic_1.ec('secp256k1');
114
- const key = ec.keyFromPublic(rawPublicKey);
115
- const messageBuffer = Uint8Array.from(Buffer.from(message, 'hex'));
116
- // Tezos signatures always have a watermark
117
- const messageWithWatermark = new Uint8Array(watermark.length + messageBuffer.length);
118
- messageWithWatermark.set(watermark);
119
- messageWithWatermark.set(messageBuffer, watermark.length);
120
- await libsodium_wrappers_1.default.ready;
121
- const bytesHash = Buffer.from(libsodium_wrappers_1.default.crypto_generichash(32, messageWithWatermark));
122
- const rawSignature = decodeSignature(signature, exports.hashTypes.sig);
123
- return key.verify(bytesHash, { r: rawSignature.slice(0, 32), s: rawSignature.slice(32, 64) });
124
- }
125
- exports.verifySignature = verifySignature;
126
- /**
127
- * Useful wrapper to create the generic multisig contract data to sign when moving funds.
128
- *
129
- * @param {string} contractAddress The wallet contract address with the funds to withdraw
130
- * @param {string} destinationAddress The address to transfer the funds to
131
- * @param {number} amount Number mutez to transfer
132
- * @param {string} contractCounter Wallet counter to use in the transaction
133
- * @returns {any} A JSON representation of the Michelson script to sign and approve a transfer
134
- */
135
- function generateDataToSign(contractAddress, destinationAddress, amount, contractCounter) {
136
- if (!isValidOriginatedAddress(contractAddress)) {
137
- throw new Error('Invalid contract address ' + contractAddress + '. An originated account address was expected');
138
- }
139
- if (!isValidAddress(destinationAddress)) {
140
- throw new Error('Invalid destination address ' + destinationAddress);
141
- }
142
- return multisigUtils_1.genericMultisigDataToSign(contractAddress, destinationAddress, amount, contractCounter);
143
- }
144
- exports.generateDataToSign = generateDataToSign;
145
- /**
146
- * Returns whether or not the string is a valid Tezos hash of the given type
147
- *
148
- * @param {string} hash - the string to validate
149
- * @param {HashType} hashType - the type of the provided hash
150
- * @returns {boolean}
151
- */
152
- function isValidHash(hash, hashType) {
153
- // Validate encoding
154
- let decodedHash;
155
- try {
156
- decodedHash = base58check.decode(hash);
157
- }
158
- catch (e) {
159
- return false;
160
- }
161
- const hashPrefix = decodedHash.slice(0, hashType.prefix.length);
162
- // Check prefix
163
- if (!hashPrefix.equals(Buffer.from(hashType.prefix))) {
164
- return false;
165
- }
166
- // Check length
167
- const hashLength = decodedHash.length - hashPrefix.length;
168
- return hashLength === hashType.byteLength;
169
- }
170
- exports.isValidHash = isValidHash;
171
- /**
172
- * Returns whether or not the string is a valid Tezos address
173
- *
174
- * @param {string} hash - the address to validate
175
- * @returns {boolean}
176
- */
177
- function isValidAddress(hash) {
178
- return isValidImplicitAddress(hash) || isValidHash(hash, exports.hashTypes.KT);
179
- }
180
- exports.isValidAddress = isValidAddress;
181
- /**
182
- * Returns whether or not the string is a valid Tezos implicit account address
183
- *
184
- * @param {string} hash - the address to validate
185
- * @returns {boolean}
186
- */
187
- function isValidImplicitAddress(hash) {
188
- return isValidHash(hash, exports.hashTypes.tz1) || isValidHash(hash, exports.hashTypes.tz2) || isValidHash(hash, exports.hashTypes.tz3);
189
- }
190
- exports.isValidImplicitAddress = isValidImplicitAddress;
191
- /**
192
- * Returns whether or not the string is a valid Tezos originated account address
193
- *
194
- * @param {string} hash - the address to validate
195
- * @returns {boolean}
196
- */
197
- function isValidOriginatedAddress(hash) {
198
- return isValidHash(hash, exports.hashTypes.KT);
199
- }
200
- exports.isValidOriginatedAddress = isValidOriginatedAddress;
201
- /**
202
- * Returns whether or not the string is a valid Tezos signature
203
- *
204
- * @param {string} hash - the signature to validate
205
- * @returns {boolean}
206
- */
207
- function isValidSignature(hash) {
208
- return (isValidHash(hash, exports.hashTypes.edsig) ||
209
- isValidHash(hash, exports.hashTypes.spsig1) ||
210
- isValidHash(hash, exports.hashTypes.p2sig) ||
211
- isValidHash(hash, exports.hashTypes.sig));
212
- }
213
- exports.isValidSignature = isValidSignature;
214
- /**
215
- * Returns whether or not the string is a valid Tezos public key
216
- *
217
- * @param {string} publicKey The public key to validate
218
- * @returns {boolean}
219
- */
220
- function isValidPublicKey(publicKey) {
221
- return (isValidHash(publicKey, exports.hashTypes.sppk) ||
222
- isValidHash(publicKey, exports.hashTypes.p2pk) ||
223
- isValidHash(publicKey, exports.hashTypes.edpk) ||
224
- sdk_core_1.isValidXpub(publicKey) // xpubs are valid too.
225
- );
226
- }
227
- exports.isValidPublicKey = isValidPublicKey;
228
- /**
229
- * Returns whether or not the string is a valid Tezos private key
230
- *
231
- * @param {string} privateKey The private key to validate
232
- * @returns {boolean}
233
- */
234
- function isValidPrivateKey(privateKey) {
235
- return (isValidHash(privateKey, exports.hashTypes.edesk) ||
236
- isValidHash(privateKey, exports.hashTypes.edsk) ||
237
- isValidHash(privateKey, exports.hashTypes.spsk) ||
238
- isValidHash(privateKey, exports.hashTypes.p2sk));
239
- }
240
- exports.isValidPrivateKey = isValidPrivateKey;
241
- /**
242
- * Returns whether or not the string is a valid Tezos block hash
243
- *
244
- * @param {string} hash - the address to validate
245
- * @returns {boolean}
246
- */
247
- function isValidBlockHash(hash) {
248
- return isValidHash(hash, exports.hashTypes.b);
249
- }
250
- exports.isValidBlockHash = isValidBlockHash;
251
- /**
252
- * Returns whether or not the string is a valid Tezos transaction hash
253
- *
254
- * @param {string} hash - the address to validate
255
- * @returns {boolean}
256
- */
257
- function isValidTransactionHash(hash) {
258
- return isValidHash(hash, exports.hashTypes.o);
259
- }
260
- exports.isValidTransactionHash = isValidTransactionHash;
261
- /**
262
- * Returns whether or not the string is a valid Tezos key given a prefix
263
- *
264
- * @param {string} hash - the key to validate
265
- * @param {HashType} hashType - the type of the provided hash
266
- * @returns {boolean}
267
- */
268
- function isValidKey(hash, hashType) {
269
- return isValidHash(hash, hashType);
270
- }
271
- exports.isValidKey = isValidKey;
272
- /**
273
- * Get the original key form the text without the given prefix.
274
- *
275
- * @param {string} hash - base58 encoded key with a Tezos prefix
276
- * @param {HashType} hashType - the type of the provided hash
277
- * @returns {Buffer} the original decoded key
278
- */
279
- function decodeKey(hash, hashType) {
280
- if (!isValidKey(hash, hashType)) {
281
- throw new Error('Unsupported private key');
282
- }
283
- const decodedPrv = base58check.decode(hash);
284
- return Buffer.from(decodedPrv.slice(hashType.prefix.length, decodedPrv.length));
285
- }
286
- exports.decodeKey = decodeKey;
287
- /**
288
- * Get the raw signature from a Tezos encoded one.
289
- *
290
- * @param {string} signature Tezos signatures prefixed with sig, edsig, p2sig or spsig
291
- * @param {HashType} hashType The prefix of remove
292
- * @returns {Buffer} The decoded signature without prefix
293
- */
294
- function decodeSignature(signature, hashType) {
295
- if (!isValidSignature(signature)) {
296
- throw new Error('Unsupported signature');
297
- }
298
- const decodedPrv = base58check.decode(signature);
299
- return Buffer.from(decodedPrv.slice(hashType.prefix.length, decodedPrv.length));
300
- }
301
- exports.decodeSignature = decodeSignature;
302
- // Base58Check is used for encoding
303
- // hashedTypes is used to validate hashes by type, by checking their prefix and
304
- // the length of the Buffer obtained by decoding the hash (excluding the prefix)
305
- exports.hashTypes = {
306
- /* 20 bytes long */
307
- // ed25519 public key hash
308
- tz1: {
309
- prefix: Buffer.from([6, 161, 159]),
310
- byteLength: 20,
311
- },
312
- // secp256k1 public key hash
313
- tz2: {
314
- prefix: Buffer.from([6, 161, 161]),
315
- byteLength: 20,
316
- },
317
- // p256 public key hash
318
- tz3: {
319
- prefix: Buffer.from([6, 161, 164]),
320
- byteLength: 20,
321
- },
322
- KT: {
323
- prefix: Buffer.from([2, 90, 121]),
324
- byteLength: 20,
325
- },
326
- /* 32 bytes long */
327
- // ed25519 public key
328
- edpk: {
329
- prefix: Buffer.from([13, 15, 37, 217]),
330
- byteLength: 32,
331
- },
332
- // ed25519 secret key
333
- edsk2: {
334
- prefix: Buffer.from([13, 15, 58, 7]),
335
- byteLength: 32,
336
- },
337
- // secp256k1 secret key
338
- spsk: {
339
- prefix: Buffer.from([17, 162, 224, 201]),
340
- byteLength: 32,
341
- },
342
- // p256 secret key
343
- p2sk: {
344
- prefix: Buffer.from([16, 81, 238, 189]),
345
- byteLength: 32,
346
- },
347
- // block hash
348
- b: {
349
- prefix: Buffer.from([1, 52]),
350
- byteLength: 32,
351
- },
352
- // operation hash
353
- o: {
354
- prefix: Buffer.from([5, 116]),
355
- byteLength: 32,
356
- },
357
- // operation list hash
358
- Lo: {
359
- prefix: Buffer.from([133, 233]),
360
- byteLength: 32,
361
- },
362
- // operation list list hash
363
- LLo: {
364
- prefix: Buffer.from([29, 159, 109]),
365
- byteLength: 32,
366
- },
367
- // protocol hash
368
- P: {
369
- prefix: Buffer.from([2, 170]),
370
- byteLength: 32,
371
- },
372
- // context hash
373
- Co: {
374
- prefix: Buffer.from([79, 179]),
375
- byteLength: 32,
376
- },
377
- /* 33 bytes long */
378
- // secp256k1 public key
379
- sppk: {
380
- prefix: Buffer.from([3, 254, 226, 86]),
381
- byteLength: 33,
382
- },
383
- // p256 public key
384
- p2pk: {
385
- prefix: Buffer.from([3, 178, 139, 127]),
386
- byteLength: 33,
387
- },
388
- /* 56 bytes long */
389
- // ed25519 encrypted seed
390
- edesk: {
391
- prefix: Buffer.from([7, 90, 60, 179, 41]),
392
- byteLength: 56,
393
- },
394
- /* 63 bytes long */
395
- // ed25519 secret key
396
- edsk: {
397
- prefix: Buffer.from([43, 246, 78, 7]),
398
- byteLength: 64,
399
- },
400
- // ed25519 signature
401
- edsig: {
402
- prefix: Buffer.from([9, 245, 205, 134, 18]),
403
- byteLength: 64,
404
- },
405
- // secp256k1 signature
406
- spsig1: {
407
- prefix: Buffer.from([13, 115, 101, 19, 63]),
408
- byteLength: 64,
409
- },
410
- // p256_signature
411
- p2sig: {
412
- prefix: Buffer.from([54, 240, 44, 52]),
413
- byteLength: 64,
414
- },
415
- // generic signature
416
- sig: {
417
- prefix: Buffer.from([4, 130, 43]),
418
- byteLength: 64,
419
- },
420
- /* 15 bytes long */
421
- // network hash
422
- Net: {
423
- prefix: Buffer.from([87, 82, 0]),
424
- byteLength: 15,
425
- },
426
- // nonce hash
427
- nce: {
428
- prefix: Buffer.from([69, 220, 169]),
429
- byteLength: 15,
430
- },
431
- /* 4 bytes long */
432
- // chain id
433
- id: {
434
- prefix: Buffer.from([153, 103]),
435
- byteLength: 4,
436
- },
437
- };
438
- // From https://github.com/ecadlabs/taquito/blob/master/packages/taquito/src/constants.ts
439
- var DEFAULT_GAS_LIMIT;
440
- (function (DEFAULT_GAS_LIMIT) {
441
- DEFAULT_GAS_LIMIT[DEFAULT_GAS_LIMIT["DELEGATION"] = 10600] = "DELEGATION";
442
- DEFAULT_GAS_LIMIT[DEFAULT_GAS_LIMIT["ORIGINATION"] = 10600] = "ORIGINATION";
443
- DEFAULT_GAS_LIMIT[DEFAULT_GAS_LIMIT["TRANSFER"] = 10600] = "TRANSFER";
444
- DEFAULT_GAS_LIMIT[DEFAULT_GAS_LIMIT["REVEAL"] = 10600] = "REVEAL";
445
- })(DEFAULT_GAS_LIMIT = exports.DEFAULT_GAS_LIMIT || (exports.DEFAULT_GAS_LIMIT = {}));
446
- var DEFAULT_FEE;
447
- (function (DEFAULT_FEE) {
448
- DEFAULT_FEE[DEFAULT_FEE["DELEGATION"] = 1257] = "DELEGATION";
449
- DEFAULT_FEE[DEFAULT_FEE["ORIGINATION"] = 10000] = "ORIGINATION";
450
- DEFAULT_FEE[DEFAULT_FEE["TRANSFER"] = 10000] = "TRANSFER";
451
- DEFAULT_FEE[DEFAULT_FEE["REVEAL"] = 1420] = "REVEAL";
452
- })(DEFAULT_FEE = exports.DEFAULT_FEE || (exports.DEFAULT_FEE = {}));
453
- var DEFAULT_STORAGE_LIMIT;
454
- (function (DEFAULT_STORAGE_LIMIT) {
455
- DEFAULT_STORAGE_LIMIT[DEFAULT_STORAGE_LIMIT["DELEGATION"] = 0] = "DELEGATION";
456
- DEFAULT_STORAGE_LIMIT[DEFAULT_STORAGE_LIMIT["ORIGINATION"] = 257] = "ORIGINATION";
457
- DEFAULT_STORAGE_LIMIT[DEFAULT_STORAGE_LIMIT["TRANSFER"] = 257] = "TRANSFER";
458
- DEFAULT_STORAGE_LIMIT[DEFAULT_STORAGE_LIMIT["REVEAL"] = 0] = "REVEAL";
459
- })(DEFAULT_STORAGE_LIMIT = exports.DEFAULT_STORAGE_LIMIT || (exports.DEFAULT_STORAGE_LIMIT = {}));
460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi94dHovdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUF5QztBQUN6Qyw0RUFBd0M7QUFDeEMsNENBQWlEO0FBQ2pELHVDQUFvQztBQUNwQyw4Q0FBNEQ7QUFDNUQsbURBQTREO0FBSTVELDBDQUEwQztBQUM3QixRQUFBLGlCQUFpQixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVyRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixZQUFZLENBQUMsTUFBYyxFQUFFLE9BQWU7SUFDMUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBTkQsb0NBTUM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxrQkFBMEI7SUFDckUsTUFBTSw0QkFBTSxDQUFDLEtBQUssQ0FBQztJQUNuQixNQUFNLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sb0JBQW9CLEdBQUcsNEJBQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNyRixPQUFPLFlBQVksQ0FBQyxpQkFBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVB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QVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQiw0REFBaUIsQ0FBQTtJQUNqQiwrREFBbUIsQ0FBQTtJQUNuQix5REFBZ0IsQ0FBQTtJQUNoQixvREFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUxXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBS3RCO0FBRUQsSUFBWSxxQkFLWDtBQUxELFdBQVkscUJBQXFCO0lBQy9CLDZFQUFjLENBQUE7SUFDZCxpRkFBaUIsQ0FBQTtJQUNqQiwyRUFBYyxDQUFBO0lBQ2QscUVBQVUsQ0FBQTtBQUNaLENBQUMsRUFMVyxxQkFBcUIsR0FBckIsNkJBQXFCLEtBQXJCLDZCQUFxQixRQUtoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJhc2U1OGNoZWNrIGZyb20gJ2JzNThjaGVjayc7XG5pbXBvcnQgc29kaXVtIGZyb20gJ2xpYnNvZGl1bS13cmFwcGVycyc7XG5pbXBvcnQgeyBJbk1lbW9yeVNpZ25lciB9IGZyb20gJ0B0YXF1aXRvL3NpZ25lcic7XG5pbXBvcnQgeyBlYyBhcyBFQyB9IGZyb20gJ2VsbGlwdGljJztcbmltcG9ydCB7IGlzVmFsaWRYcHViLCBTaWduaW5nRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2VuZXJpY011bHRpc2lnRGF0YVRvU2lnbiB9IGZyb20gJy4vbXVsdGlzaWdVdGlscyc7XG5pbXBvcnQgeyBIYXNoVHlwZSwgU2lnblJlc3BvbnNlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLy8gQnkgZGVmYXVsdCwgdXNlIHRoZSB0cmFuc2FjdGlvbnMgcHJlZml4XG5leHBvcnQgY29uc3QgREVGQVVMVF9XQVRFUk1BUksgPSBuZXcgVWludDhBcnJheShbM10pO1xuXG4vKipcbiAqIEVuY29kZSB0aGUgcGF5bG9hZCB0byBiYXNlNTggd2l0aCBhIHNwZWNpZmljIFRlem9zIHByZWZpeC5cbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gcHJlZml4IHRvIGFkZCB0byB0aGUgZW5jb2RlZCBwYXlsb2FkXG4gKiBAcGFyYW0ge0J1ZmZlcn0gcGF5bG9hZCB0byBlbmNvZGVcbiAqIEByZXR1cm5zIHthbnl9IGJhc2U1OCBwYXlsb2FkIHdpdGggYSBUZXpvcyBwcmVmaXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhc2U1OGVuY29kZShwcmVmaXg6IEJ1ZmZlciwgcGF5bG9hZDogQnVmZmVyKTogc3RyaW5nIHtcbiAgY29uc3QgbiA9IEJ1ZmZlci5hbGxvYyhwcmVmaXgubGVuZ3RoICsgcGF5bG9hZC5sZW5ndGgpO1xuICBuLnNldChwcmVmaXgpO1xuICBuLnNldChwYXlsb2FkLCBwcmVmaXgubGVuZ3RoKTtcblxuICByZXR1cm4gYmFzZTU4Y2hlY2suZW5jb2RlKG4pO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgdHJhbnNhY3Rpb24gaWQgZm9yIGEgZm9yIGEgc2lnbmVkIHRyYW5zYWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBlbmNvZGVkVHJhbnNhY3Rpb24gU2lnbmVkIHRyYW5zYWN0aW9uIGluIGhleGFkZWNpbWFsXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSBUaGUgdHJhbnNhY3Rpb24gaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGN1bGF0ZVRyYW5zYWN0aW9uSWQoZW5jb2RlZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBhd2FpdCBzb2RpdW0ucmVhZHk7XG4gIGNvbnN0IGVuY29kZWRUcmFuc2FjdGlvbkJ1ZmZlciA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbShlbmNvZGVkVHJhbnNhY3Rpb24sICdoZXgnKSk7XG4gIGNvbnN0IG9wZXJhdGlvbkhhc2hQYXlsb2FkID0gc29kaXVtLmNyeXB0b19nZW5lcmljaGFzaCgzMiwgZW5jb2RlZFRyYW5zYWN0aW9uQnVmZmVyKTtcbiAgcmV0dXJuIGJhc2U1OGVuY29kZShoYXNoVHlwZXMuby5wcmVmaXgsIEJ1ZmZlci5mcm9tKG9wZXJhdGlvbkhhc2hQYXlsb2FkKSk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBhZGRyZXNzIG9mIGEgbmV3IG9yaWdpbmF0ZWQgYWNjb3VudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHJhbnNhY3Rpb25JZCBUaGUgdHJhbnNhY3Rpb24gaWRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIG9yaWdpbmF0aW9uIG9wZXJhdGlvbiBpbnNpZGUgdGhlIHRyYW5zYWN0aW9uIChzdGFydHMgYXQgMClcbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEFuIG9yaWdpbmF0ZWQgYWRkcmVzcyB3aXRoIHRoZSBLVCBwcmVmaXhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGN1bGF0ZU9yaWdpbmF0ZWRBZGRyZXNzKHRyYW5zYWN0aW9uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIEZyb20gaHR0cHM6Ly9naXRodWIuY29tL1RlelRlY2gvZXp0ei9ibG9iL2NmZGM0ZmNmYzg5MWY0ZjRmMDc3YzMwNTZmNDE0NDc2ZGRlMzYxMGIvc3JjL21haW4uanMjTDc2OFxuICBjb25zdCBvYiA9IGJhc2U1OGNoZWNrLmRlY29kZSh0cmFuc2FjdGlvbklkKS5zbGljZShoYXNoVHlwZXMuby5wcmVmaXgubGVuZ3RoKTtcblxuICBsZXQgdHQ6IG51bWJlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb2IubGVuZ3RoOyBpKyspIHtcbiAgICB0dC5wdXNoKG9iW2ldKTtcbiAgfVxuXG4gIHR0ID0gdHQuY29uY2F0KFtcbiAgICAoaW5kZXggJiAweGZmMDAwMDAwKSA+PiAyNCxcbiAgICAoaW5kZXggJiAweDAwZmYwMDAwKSA+PiAxNixcbiAgICAoaW5kZXggJiAweDAwMDBmZjAwKSA+PiA4LFxuICAgIGluZGV4ICYgMHgwMDAwMDBmZixcbiAgXSk7XG5cbiAgYXdhaXQgc29kaXVtLnJlYWR5O1xuICBjb25zdCBwYXlsb2FkID0gc29kaXVtLmNyeXB0b19nZW5lcmljaGFzaCgyMCwgbmV3IFVpbnQ4QXJyYXkodHQpKTtcbiAgcmV0dXJuIGJhc2U1OGVuY29kZShoYXNoVHlwZXMuS1QucHJlZml4LCBCdWZmZXIuZnJvbShwYXlsb2FkKSk7XG59XG5cbi8qKlxuICogR2VuZXJpYyBkYXRhIHNpZ25pbmcgdXNpbmcgVGV6b3MgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgQSBLZXkgUGFpciB3aXRoIGEgcHJpdmF0ZSBrZXkgc2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YSBUaGUgZGF0YSBpbiBoZXhhZGVjaW1hbCB0byBzaWduXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHdhdGVybWFyayBNYWdpYyBieXRlOiAxIGZvciBibG9jaywgMiBmb3IgZW5kb3JzZW1lbnQsIDMgZm9yIGdlbmVyaWNcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25SZXNwb25zZT59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduKFxuICBrZXlQYWlyOiBLZXlQYWlyLFxuICBkYXRhOiBzdHJpbmcsXG4gIHdhdGVybWFyazogVWludDhBcnJheSA9IERFRkFVTFRfV0FURVJNQVJLLFxuKTogUHJvbWlzZTxTaWduUmVzcG9uc2U+IHtcbiAgaWYgKCFrZXlQYWlyLmdldEtleXMoKS5wcnYpIHtcbiAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cbiAgY29uc3Qgc2lnbmVyID0gbmV3IEluTWVtb3J5U2lnbmVyKGtleVBhaXIuZ2V0S2V5cygpLnBydiEpO1xuICByZXR1cm4gc2lnbmVyLnNpZ24oZGF0YSwgd2F0ZXJtYXJrKTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGUgc2lnbmF0dXJlIHByb2R1Y2VkIGZvciBhIGdpdmVuIG1lc3NhZ2UgYmVsb25ncyB0byBhIHNlY3AyNTZrMSBwdWJsaWMga2V5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIE1lc3NhZ2UgaW4gaGV4IGZvcm1hdCB0byB2ZXJpZnlcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdWJsaWNLZXkgc2VjcDI1NmsxIHB1YmxpYyBrZXkgd2l0aCBcInNwcGtcIiBwcmVmaXggdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgd2l0aFxuICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSBUZXpvcyBzaWduYXR1cmUgd2l0aCBcInNpZ1wiIHByZWZpeFxuICogQHBhcmFtIHtVaW50OEFycmF5fSB3YXRlcm1hcmsgT3B0aW9uYWwgd2F0ZXJtYXJrIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHNpZ25hdHVyZVxuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmUoXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcHVibGljS2V5OiBzdHJpbmcsXG4gIHNpZ25hdHVyZTogc3RyaW5nLFxuICB3YXRlcm1hcms6IFVpbnQ4QXJyYXkgPSBERUZBVUxUX1dBVEVSTUFSSyxcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByYXdQdWJsaWNLZXkgPSBkZWNvZGVLZXkocHVibGljS2V5LCBoYXNoVHlwZXMuc3Bwayk7XG4gIGNvbnN0IGVjID0gbmV3IEVDKCdzZWNwMjU2azEnKTtcbiAgY29uc3Qga2V5ID0gZWMua2V5RnJvbVB1YmxpYyhyYXdQdWJsaWNLZXkpO1xuXG4gIGNvbnN0IG1lc3NhZ2VCdWZmZXIgPSBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20obWVzc2FnZSwgJ2hleCcpKTtcbiAgLy8gVGV6b3Mgc2lnbmF0dXJlcyBhbHdheXMgaGF2ZSBhIHdhdGVybWFya1xuICBjb25zdCBtZXNzYWdlV2l0aFdhdGVybWFyayA9IG5ldyBVaW50OEFycmF5KHdhdGVybWFyay5sZW5ndGggKyBtZXNzYWdlQnVmZmVyLmxlbmd0aCk7XG4gIG1lc3NhZ2VXaXRoV2F0ZXJtYXJrLnNldCh3YXRlcm1hcmspO1xuICBtZXNzYWdlV2l0aFdhdGVybWFyay5zZXQobWVzc2FnZUJ1ZmZlciwgd2F0ZXJtYXJrLmxlbmd0aCk7XG5cbiAgYXdhaXQgc29kaXVtLnJlYWR5O1xuICBjb25zdCBieXRlc0hhc2ggPSBCdWZmZXIuZnJvbShzb2RpdW0uY3J5cHRvX2dlbmVyaWNoYXNoKDMyLCBtZXNzYWdlV2l0aFdhdGVybWFyaykpO1xuXG4gIGNvbnN0IHJhd1NpZ25hdHVyZSA9IGRlY29kZVNpZ25hdHVyZShzaWduYXR1cmUsIGhhc2hUeXBlcy5zaWcpO1xuICByZXR1cm4ga2V5LnZlcmlmeShieXRlc0hhc2gsIHsgcjogcmF3U2lnbmF0dXJlLnNsaWNlKDAsIDMyKSwgczogcmF3U2lnbmF0dXJlLnNsaWNlKDMyLCA2NCkgfSk7XG59XG5cbi8qKlxuICogVXNlZnVsIHdyYXBwZXIgdG8gY3JlYXRlIHRoZSBnZW5lcmljIG11bHRpc2lnIGNvbnRyYWN0IGRhdGEgdG8gc2lnbiB3aGVuIG1vdmluZyBmdW5kcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJhY3RBZGRyZXNzIFRoZSB3YWxsZXQgY29udHJhY3QgYWRkcmVzcyB3aXRoIHRoZSBmdW5kcyB0byB3aXRoZHJhd1xuICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyBUaGUgYWRkcmVzcyB0byB0cmFuc2ZlciB0aGUgZnVuZHMgdG9cbiAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgTnVtYmVyIG11dGV6IHRvIHRyYW5zZmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJhY3RDb3VudGVyIFdhbGxldCBjb3VudGVyIHRvIHVzZSBpbiB0aGUgdHJhbnNhY3Rpb25cbiAqIEByZXR1cm5zIHthbnl9IEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgTWljaGVsc29uIHNjcmlwdCB0byBzaWduIGFuZCBhcHByb3ZlIGEgdHJhbnNmZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRGF0YVRvU2lnbihcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RDb3VudGVyOiBzdHJpbmcsXG4pOiBhbnkge1xuICBpZiAoIWlzVmFsaWRPcmlnaW5hdGVkQWRkcmVzcyhjb250cmFjdEFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IGFkZHJlc3MgJyArIGNvbnRyYWN0QWRkcmVzcyArICcuIEFuIG9yaWdpbmF0ZWQgYWNjb3VudCBhZGRyZXNzIHdhcyBleHBlY3RlZCcpO1xuICB9XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoZGVzdGluYXRpb25BZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkZXN0aW5hdGlvbiBhZGRyZXNzICcgKyBkZXN0aW5hdGlvbkFkZHJlc3MpO1xuICB9XG4gIHJldHVybiBnZW5lcmljTXVsdGlzaWdEYXRhVG9TaWduKGNvbnRyYWN0QWRkcmVzcywgZGVzdGluYXRpb25BZGRyZXNzLCBhbW91bnQsIGNvbnRyYWN0Q291bnRlcik7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3MgaGFzaCBvZiB0aGUgZ2l2ZW4gdHlwZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoIC0gdGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHtIYXNoVHlwZX0gaGFzaFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgcHJvdmlkZWQgaGFzaFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSGFzaChoYXNoOiBzdHJpbmcsIGhhc2hUeXBlOiBIYXNoVHlwZSk6IGJvb2xlYW4ge1xuICAvLyBWYWxpZGF0ZSBlbmNvZGluZ1xuICBsZXQgZGVjb2RlZEhhc2g7XG4gIHRyeSB7XG4gICAgZGVjb2RlZEhhc2ggPSBiYXNlNThjaGVjay5kZWNvZGUoaGFzaCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgaGFzaFByZWZpeCA9IGRlY29kZWRIYXNoLnNsaWNlKDAsIGhhc2hUeXBlLnByZWZpeC5sZW5ndGgpO1xuXG4gIC8vIENoZWNrIHByZWZpeFxuICBpZiAoIWhhc2hQcmVmaXguZXF1YWxzKEJ1ZmZlci5mcm9tKGhhc2hUeXBlLnByZWZpeCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgbGVuZ3RoXG4gIGNvbnN0IGhhc2hMZW5ndGggPSBkZWNvZGVkSGFzaC5sZW5ndGggLSBoYXNoUHJlZml4Lmxlbmd0aDtcbiAgcmV0dXJuIGhhc2hMZW5ndGggPT09IGhhc2hUeXBlLmJ5dGVMZW5ndGg7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3MgYWRkcmVzc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoIC0gdGhlIGFkZHJlc3MgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3MoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1ZhbGlkSW1wbGljaXRBZGRyZXNzKGhhc2gpIHx8IGlzVmFsaWRIYXNoKGhhc2gsIGhhc2hUeXBlcy5LVCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3MgaW1wbGljaXQgYWNjb3VudCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhc2ggLSB0aGUgYWRkcmVzcyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSW1wbGljaXRBZGRyZXNzKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLnR6MSkgfHwgaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLnR6MikgfHwgaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLnR6Myk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3Mgb3JpZ2luYXRlZCBhY2NvdW50IGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGFzaCAtIHRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRPcmlnaW5hdGVkQWRkcmVzcyhoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzVmFsaWRIYXNoKGhhc2gsIGhhc2hUeXBlcy5LVCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3Mgc2lnbmF0dXJlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhc2ggLSB0aGUgc2lnbmF0dXJlIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRTaWduYXR1cmUoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLmVkc2lnKSB8fFxuICAgIGlzVmFsaWRIYXNoKGhhc2gsIGhhc2hUeXBlcy5zcHNpZzEpIHx8XG4gICAgaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLnAyc2lnKSB8fFxuICAgIGlzVmFsaWRIYXNoKGhhc2gsIGhhc2hUeXBlcy5zaWcpXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3MgcHVibGljIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwdWJsaWNLZXkgVGhlIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzVmFsaWRIYXNoKHB1YmxpY0tleSwgaGFzaFR5cGVzLnNwcGspIHx8XG4gICAgaXNWYWxpZEhhc2gocHVibGljS2V5LCBoYXNoVHlwZXMucDJwaykgfHxcbiAgICBpc1ZhbGlkSGFzaChwdWJsaWNLZXksIGhhc2hUeXBlcy5lZHBrKSB8fFxuICAgIGlzVmFsaWRYcHViKHB1YmxpY0tleSkgLy8geHB1YnMgYXJlIHZhbGlkIHRvby5cbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBUZXpvcyBwcml2YXRlIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcml2YXRlS2V5IFRoZSBwcml2YXRlIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShwcml2YXRlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc1ZhbGlkSGFzaChwcml2YXRlS2V5LCBoYXNoVHlwZXMuZWRlc2spIHx8XG4gICAgaXNWYWxpZEhhc2gocHJpdmF0ZUtleSwgaGFzaFR5cGVzLmVkc2spIHx8XG4gICAgaXNWYWxpZEhhc2gocHJpdmF0ZUtleSwgaGFzaFR5cGVzLnNwc2spIHx8XG4gICAgaXNWYWxpZEhhc2gocHJpdmF0ZUtleSwgaGFzaFR5cGVzLnAyc2spXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgVGV6b3MgYmxvY2sgaGFzaFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoIC0gdGhlIGFkZHJlc3MgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJsb2NrSGFzaChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzVmFsaWRIYXNoKGhhc2gsIGhhc2hUeXBlcy5iKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBUZXpvcyB0cmFuc2FjdGlvbiBoYXNoXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhc2ggLSB0aGUgYWRkcmVzcyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25IYXNoKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNWYWxpZEhhc2goaGFzaCwgaGFzaFR5cGVzLm8pO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIFRlem9zIGtleSBnaXZlbiBhIHByZWZpeFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoIC0gdGhlIGtleSB0byB2YWxpZGF0ZVxuICogQHBhcmFtIHtIYXNoVHlwZX0gaGFzaFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgcHJvdmlkZWQgaGFzaFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkS2V5KGhhc2g6IHN0cmluZywgaGFzaFR5cGU6IEhhc2hUeXBlKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1ZhbGlkSGFzaChoYXNoLCBoYXNoVHlwZSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBvcmlnaW5hbCBrZXkgZm9ybSB0aGUgdGV4dCB3aXRob3V0IHRoZSBnaXZlbiBwcmVmaXguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhc2ggLSBiYXNlNTggZW5jb2RlZCBrZXkgd2l0aCBhIFRlem9zIHByZWZpeFxuICogQHBhcmFtIHtIYXNoVHlwZX0gaGFzaFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgcHJvdmlkZWQgaGFzaFxuICogQHJldHVybnMge0J1ZmZlcn0gdGhlIG9yaWdpbmFsIGRlY29kZWQga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVLZXkoaGFzaDogc3RyaW5nLCBoYXNoVHlwZTogSGFzaFR5cGUpOiBCdWZmZXIge1xuICBpZiAoIWlzVmFsaWRLZXkoaGFzaCwgaGFzaFR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwcml2YXRlIGtleScpO1xuICB9XG4gIGNvbnN0IGRlY29kZWRQcnYgPSBiYXNlNThjaGVjay5kZWNvZGUoaGFzaCk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShkZWNvZGVkUHJ2LnNsaWNlKGhhc2hUeXBlLnByZWZpeC5sZW5ndGgsIGRlY29kZWRQcnYubGVuZ3RoKSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSByYXcgc2lnbmF0dXJlIGZyb20gYSBUZXpvcyBlbmNvZGVkIG9uZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIFRlem9zIHNpZ25hdHVyZXMgcHJlZml4ZWQgd2l0aCBzaWcsIGVkc2lnLCBwMnNpZyBvciBzcHNpZ1xuICogQHBhcmFtIHtIYXNoVHlwZX0gaGFzaFR5cGUgVGhlIHByZWZpeCBvZiByZW1vdmVcbiAqIEByZXR1cm5zIHtCdWZmZXJ9IFRoZSBkZWNvZGVkIHNpZ25hdHVyZSB3aXRob3V0IHByZWZpeFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nLCBoYXNoVHlwZTogSGFzaFR5cGUpOiBCdWZmZXIge1xuICBpZiAoIWlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgc2lnbmF0dXJlJyk7XG4gIH1cbiAgY29uc3QgZGVjb2RlZFBydiA9IGJhc2U1OGNoZWNrLmRlY29kZShzaWduYXR1cmUpO1xuICByZXR1cm4gQnVmZmVyLmZyb20oZGVjb2RlZFBydi5zbGljZShoYXNoVHlwZS5wcmVmaXgubGVuZ3RoLCBkZWNvZGVkUHJ2Lmxlbmd0aCkpO1xufVxuXG4vLyBCYXNlNThDaGVjayBpcyB1c2VkIGZvciBlbmNvZGluZ1xuLy8gaGFzaGVkVHlwZXMgaXMgdXNlZCB0byB2YWxpZGF0ZSBoYXNoZXMgYnkgdHlwZSwgYnkgY2hlY2tpbmcgdGhlaXIgcHJlZml4IGFuZFxuLy8gdGhlIGxlbmd0aCBvZiB0aGUgQnVmZmVyIG9idGFpbmVkIGJ5IGRlY29kaW5nIHRoZSBoYXNoIChleGNsdWRpbmcgdGhlIHByZWZpeClcbmV4cG9ydCBjb25zdCBoYXNoVHlwZXMgPSB7XG4gIC8qIDIwIGJ5dGVzIGxvbmcgKi9cbiAgLy8gZWQyNTUxOSBwdWJsaWMga2V5IGhhc2hcbiAgdHoxOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbNiwgMTYxLCAxNTldKSxcbiAgICBieXRlTGVuZ3RoOiAyMCxcbiAgfSxcbiAgLy8gc2VjcDI1NmsxIHB1YmxpYyBrZXkgaGFzaFxuICB0ejI6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFs2LCAxNjEsIDE2MV0pLFxuICAgIGJ5dGVMZW5ndGg6IDIwLFxuICB9LFxuICAvLyBwMjU2IHB1YmxpYyBrZXkgaGFzaFxuICB0ejM6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFs2LCAxNjEsIDE2NF0pLFxuICAgIGJ5dGVMZW5ndGg6IDIwLFxuICB9LFxuICBLVDoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzIsIDkwLCAxMjFdKSxcbiAgICBieXRlTGVuZ3RoOiAyMCxcbiAgfSxcbiAgLyogMzIgYnl0ZXMgbG9uZyAqL1xuICAvLyBlZDI1NTE5IHB1YmxpYyBrZXlcbiAgZWRwazoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzEzLCAxNSwgMzcsIDIxN10pLFxuICAgIGJ5dGVMZW5ndGg6IDMyLFxuICB9LFxuICAvLyBlZDI1NTE5IHNlY3JldCBrZXlcbiAgZWRzazI6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFsxMywgMTUsIDU4LCA3XSksXG4gICAgYnl0ZUxlbmd0aDogMzIsXG4gIH0sXG4gIC8vIHNlY3AyNTZrMSBzZWNyZXQga2V5XG4gIHNwc2s6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFsxNywgMTYyLCAyMjQsIDIwMV0pLFxuICAgIGJ5dGVMZW5ndGg6IDMyLFxuICB9LFxuICAvLyBwMjU2IHNlY3JldCBrZXlcbiAgcDJzazoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzE2LCA4MSwgMjM4LCAxODldKSxcbiAgICBieXRlTGVuZ3RoOiAzMixcbiAgfSxcbiAgLy8gYmxvY2sgaGFzaFxuICBiOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbMSwgNTJdKSxcbiAgICBieXRlTGVuZ3RoOiAzMixcbiAgfSxcbiAgLy8gb3BlcmF0aW9uIGhhc2hcbiAgbzoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzUsIDExNl0pLFxuICAgIGJ5dGVMZW5ndGg6IDMyLFxuICB9LFxuICAvLyBvcGVyYXRpb24gbGlzdCBoYXNoXG4gIExvOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbMTMzLCAyMzNdKSxcbiAgICBieXRlTGVuZ3RoOiAzMixcbiAgfSxcbiAgLy8gb3BlcmF0aW9uIGxpc3QgbGlzdCBoYXNoXG4gIExMbzoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzI5LCAxNTksIDEwOV0pLFxuICAgIGJ5dGVMZW5ndGg6IDMyLFxuICB9LFxuICAvLyBwcm90b2NvbCBoYXNoXG4gIFA6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFsyLCAxNzBdKSxcbiAgICBieXRlTGVuZ3RoOiAzMixcbiAgfSxcbiAgLy8gY29udGV4dCBoYXNoXG4gIENvOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbNzksIDE3OV0pLFxuICAgIGJ5dGVMZW5ndGg6IDMyLFxuICB9LFxuICAvKiAzMyBieXRlcyBsb25nICovXG4gIC8vIHNlY3AyNTZrMSBwdWJsaWMga2V5XG4gIHNwcGs6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFszLCAyNTQsIDIyNiwgODZdKSxcbiAgICBieXRlTGVuZ3RoOiAzMyxcbiAgfSxcbiAgLy8gcDI1NiBwdWJsaWMga2V5XG4gIHAycGs6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFszLCAxNzgsIDEzOSwgMTI3XSksXG4gICAgYnl0ZUxlbmd0aDogMzMsXG4gIH0sXG4gIC8qIDU2IGJ5dGVzIGxvbmcgKi9cbiAgLy8gZWQyNTUxOSBlbmNyeXB0ZWQgc2VlZFxuICBlZGVzazoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzcsIDkwLCA2MCwgMTc5LCA0MV0pLFxuICAgIGJ5dGVMZW5ndGg6IDU2LFxuICB9LFxuICAvKiA2MyBieXRlcyBsb25nICovXG4gIC8vIGVkMjU1MTkgc2VjcmV0IGtleVxuICBlZHNrOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbNDMsIDI0NiwgNzgsIDddKSxcbiAgICBieXRlTGVuZ3RoOiA2NCxcbiAgfSxcbiAgLy8gZWQyNTUxOSBzaWduYXR1cmVcbiAgZWRzaWc6IHtcbiAgICBwcmVmaXg6IEJ1ZmZlci5mcm9tKFs5LCAyNDUsIDIwNSwgMTM0LCAxOF0pLFxuICAgIGJ5dGVMZW5ndGg6IDY0LFxuICB9LFxuICAvLyBzZWNwMjU2azEgc2lnbmF0dXJlXG4gIHNwc2lnMToge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzEzLCAxMTUsIDEwMSwgMTksIDYzXSksXG4gICAgYnl0ZUxlbmd0aDogNjQsXG4gIH0sXG4gIC8vIHAyNTZfc2lnbmF0dXJlXG4gIHAyc2lnOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbNTQsIDI0MCwgNDQsIDUyXSksXG4gICAgYnl0ZUxlbmd0aDogNjQsXG4gIH0sXG4gIC8vIGdlbmVyaWMgc2lnbmF0dXJlXG4gIHNpZzoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzQsIDEzMCwgNDNdKSxcbiAgICBieXRlTGVuZ3RoOiA2NCxcbiAgfSxcbiAgLyogMTUgYnl0ZXMgbG9uZyAqL1xuICAvLyBuZXR3b3JrIGhhc2hcbiAgTmV0OiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbODcsIDgyLCAwXSksXG4gICAgYnl0ZUxlbmd0aDogMTUsXG4gIH0sXG4gIC8vIG5vbmNlIGhhc2hcbiAgbmNlOiB7XG4gICAgcHJlZml4OiBCdWZmZXIuZnJvbShbNjksIDIyMCwgMTY5XSksXG4gICAgYnl0ZUxlbmd0aDogMTUsXG4gIH0sXG4gIC8qIDQgYnl0ZXMgbG9uZyAqL1xuICAvLyBjaGFpbiBpZFxuICBpZDoge1xuICAgIHByZWZpeDogQnVmZmVyLmZyb20oWzE1MywgMTAzXSksXG4gICAgYnl0ZUxlbmd0aDogNCxcbiAgfSxcbn07XG5cbi8vIEZyb20gaHR0cHM6Ly9naXRodWIuY29tL2VjYWRsYWJzL3RhcXVpdG8vYmxvYi9tYXN0ZXIvcGFja2FnZXMvdGFxdWl0by9zcmMvY29uc3RhbnRzLnRzXG5cbmV4cG9ydCBlbnVtIERFRkFVTFRfR0FTX0xJTUlUIHtcbiAgREVMRUdBVElPTiA9IDEwNjAwLFxuICBPUklHSU5BVElPTiA9IDEwNjAwLFxuICBUUkFOU0ZFUiA9IDEwNjAwLFxuICBSRVZFQUwgPSAxMDYwMCxcbn1cblxuZXhwb3J0IGVudW0gREVGQVVMVF9GRUUge1xuICBERUxFR0FUSU9OID0gMTI1NyxcbiAgT1JJR0lOQVRJT04gPSAxMDAwMCxcbiAgVFJBTlNGRVIgPSAxMDAwMCxcbiAgUkVWRUFMID0gMTQyMCxcbn1cblxuZXhwb3J0IGVudW0gREVGQVVMVF9TVE9SQUdFX0xJTUlUIHtcbiAgREVMRUdBVElPTiA9IDAsXG4gIE9SSUdJTkFUSU9OID0gMjU3LFxuICBUUkFOU0ZFUiA9IDI1NyxcbiAgUkVWRUFMID0gMCxcbn1cbiJdfQ==