@bitgo/sdk-coin-dot 4.11.7 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/{src → cjs/src}/dot.d.ts +0 -7
  2. package/dist/cjs/src/dot.d.ts.map +1 -0
  3. package/dist/{src → cjs/src}/dot.js +1 -1
  4. package/dist/cjs/src/index.d.ts.map +1 -0
  5. package/dist/{src → cjs/src}/index.js +1 -1
  6. package/dist/cjs/src/lib/addressInitializationBuilder.d.ts.map +1 -0
  7. package/dist/cjs/src/lib/addressInitializationBuilder.js +182 -0
  8. package/dist/cjs/src/lib/batchTransactionBuilder.d.ts.map +1 -0
  9. package/dist/cjs/src/lib/batchTransactionBuilder.js +229 -0
  10. package/dist/cjs/src/lib/claimBuilder.d.ts.map +1 -0
  11. package/dist/cjs/src/lib/claimBuilder.js +117 -0
  12. package/dist/cjs/src/lib/errors.d.ts.map +1 -0
  13. package/dist/cjs/src/lib/errors.js +19 -0
  14. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  15. package/dist/cjs/src/lib/iface.js +128 -0
  16. package/dist/cjs/src/lib/iface_utils.d.ts.map +1 -0
  17. package/dist/cjs/src/lib/iface_utils.js +92 -0
  18. package/dist/{src → cjs/src}/lib/index.d.ts +2 -0
  19. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  20. package/dist/{src → cjs/src}/lib/index.js +4 -2
  21. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  22. package/dist/cjs/src/lib/keyPair.js +117 -0
  23. package/dist/cjs/src/lib/nativeTransferBuilder.d.ts.map +1 -0
  24. package/dist/cjs/src/lib/nativeTransferBuilder.js +219 -0
  25. package/dist/cjs/src/lib/proxyBuilder.d.ts.map +1 -0
  26. package/dist/cjs/src/lib/proxyBuilder.js +116 -0
  27. package/dist/cjs/src/lib/singletonRegistry.d.ts.map +1 -0
  28. package/dist/cjs/src/lib/singletonRegistry.js +20 -0
  29. package/dist/cjs/src/lib/stakingBuilder.d.ts.map +1 -0
  30. package/dist/cjs/src/lib/stakingBuilder.js +167 -0
  31. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  32. package/dist/cjs/src/lib/transaction.js +624 -0
  33. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  34. package/dist/cjs/src/lib/transactionBuilder.js +351 -0
  35. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  36. package/dist/cjs/src/lib/transactionBuilderFactory.js +104 -0
  37. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  38. package/dist/cjs/src/lib/transferBuilder.js +11 -0
  39. package/dist/cjs/src/lib/txnSchema.d.ts.map +1 -0
  40. package/dist/cjs/src/lib/txnSchema.js +117 -0
  41. package/dist/cjs/src/lib/unnominateBuilder.d.ts.map +1 -0
  42. package/dist/cjs/src/lib/unnominateBuilder.js +48 -0
  43. package/dist/cjs/src/lib/unstakeBuilder.d.ts.map +1 -0
  44. package/dist/cjs/src/lib/unstakeBuilder.js +87 -0
  45. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  46. package/dist/cjs/src/lib/utils.js +491 -0
  47. package/dist/cjs/src/lib/wasmParser.d.ts +57 -0
  48. package/dist/cjs/src/lib/wasmParser.d.ts.map +1 -0
  49. package/dist/cjs/src/lib/wasmParser.js +345 -0
  50. package/dist/cjs/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
  51. package/dist/cjs/src/lib/withdrawUnstakedBuilder.js +88 -0
  52. package/dist/cjs/src/register.d.ts.map +1 -0
  53. package/dist/cjs/src/register.js +11 -0
  54. package/dist/cjs/src/resources/index.d.ts.map +1 -0
  55. package/dist/{src → cjs/src}/resources/index.js +1 -1
  56. package/dist/cjs/src/resources/mainnet.d.ts.map +1 -0
  57. package/dist/cjs/src/resources/mainnet.js +5 -0
  58. package/dist/cjs/src/resources/polkadotAssetHub.d.ts.map +1 -0
  59. package/dist/cjs/src/resources/polkadotAssetHub.js +5 -0
  60. package/dist/cjs/src/resources/westend.d.ts.map +1 -0
  61. package/dist/{test/resources/testnet.js → cjs/src/resources/westend.js} +3 -3
  62. package/dist/cjs/src/resources/westendAssetHub.d.ts.map +1 -0
  63. package/dist/{src → cjs/src}/resources/westendAssetHub.js +1 -1
  64. package/dist/cjs/src/tdot.d.ts.map +1 -0
  65. package/dist/cjs/src/tdot.js +27 -0
  66. package/dist/cjs/test/fixtures.d.ts.map +1 -0
  67. package/dist/cjs/test/fixtures.js +439 -0
  68. package/dist/cjs/test/resources/index.d.ts.map +1 -0
  69. package/dist/cjs/test/resources/index.js +157 -0
  70. package/dist/cjs/test/resources/testnet.d.ts.map +1 -0
  71. package/dist/{src/resources/westend.js → cjs/test/resources/testnet.js} +3 -3
  72. package/dist/{test → cjs/test}/unit/address.d.ts.map +1 -1
  73. package/dist/cjs/test/unit/address.js +45 -0
  74. package/dist/{test → cjs/test}/unit/dot.d.ts.map +1 -1
  75. package/dist/cjs/test/unit/dot.js +880 -0
  76. package/dist/{test → cjs/test}/unit/keypair.d.ts.map +1 -1
  77. package/dist/cjs/test/unit/keypair.js +111 -0
  78. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  79. package/dist/cjs/test/unit/transaction.js +269 -0
  80. package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  81. package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.js +265 -0
  82. package/dist/cjs/test/unit/transactionBuilder/base.d.ts.map +1 -0
  83. package/dist/cjs/test/unit/transactionBuilder/base.js +233 -0
  84. package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +1 -0
  85. package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.js +521 -0
  86. package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts.map +1 -0
  87. package/dist/cjs/test/unit/transactionBuilder/claimBuilder.js +129 -0
  88. package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts.map +1 -0
  89. package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.js +88 -0
  90. package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
  91. package/dist/{test → cjs/test}/unit/transactionBuilder/singeltonRegistry.js +1 -1
  92. package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  93. package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.js +235 -0
  94. package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  95. package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.js +107 -0
  96. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  97. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +437 -0
  98. package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +1 -0
  99. package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.js +97 -0
  100. package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
  101. package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.js +116 -0
  102. package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +1 -0
  103. package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +115 -0
  104. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  105. package/dist/cjs/test/unit/utils.js +117 -0
  106. package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts +22 -0
  107. package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts.map +1 -0
  108. package/dist/cjs/test/unit/wasmBuilderByteComparison.js +197 -0
  109. package/dist/cjs/test/unit/wasmParserExplanation.d.ts +15 -0
  110. package/dist/cjs/test/unit/wasmParserExplanation.d.ts.map +1 -0
  111. package/dist/cjs/test/unit/wasmParserExplanation.js +147 -0
  112. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  113. package/dist/esm/dot.d.ts +147 -0
  114. package/dist/esm/dot.d.ts.map +1 -0
  115. package/dist/esm/dot.js +570 -0
  116. package/dist/esm/index.d.ts +5 -0
  117. package/dist/esm/index.js +5 -0
  118. package/dist/esm/lib/addressInitializationBuilder.d.ts +79 -0
  119. package/dist/esm/lib/addressInitializationBuilder.js +175 -0
  120. package/dist/esm/lib/batchTransactionBuilder.d.ts +62 -0
  121. package/dist/esm/lib/batchTransactionBuilder.js +222 -0
  122. package/dist/esm/lib/claimBuilder.d.ts +58 -0
  123. package/dist/esm/lib/claimBuilder.js +110 -0
  124. package/dist/esm/lib/errors.d.ts +8 -0
  125. package/dist/esm/lib/errors.js +14 -0
  126. package/dist/esm/lib/iface.d.ts +337 -0
  127. package/dist/esm/lib/iface.js +125 -0
  128. package/dist/esm/lib/iface_utils.d.ts +59 -0
  129. package/dist/esm/lib/iface_utils.js +83 -0
  130. package/dist/esm/lib/index.d.ts +21 -0
  131. package/dist/{src → esm}/lib/index.d.ts.map +1 -1
  132. package/dist/esm/lib/index.js +20 -0
  133. package/dist/esm/lib/keyPair.d.ts +38 -0
  134. package/dist/esm/lib/keyPair.js +77 -0
  135. package/dist/esm/lib/nativeTransferBuilder.d.ts +84 -0
  136. package/dist/esm/lib/nativeTransferBuilder.js +212 -0
  137. package/dist/esm/lib/proxyBuilder.d.ts +54 -0
  138. package/dist/esm/lib/proxyBuilder.js +109 -0
  139. package/dist/esm/lib/singletonRegistry.d.ts +7 -0
  140. package/dist/esm/lib/singletonRegistry.js +16 -0
  141. package/dist/esm/lib/stakingBuilder.d.ts +66 -0
  142. package/dist/esm/lib/stakingBuilder.js +160 -0
  143. package/dist/esm/lib/transaction.d.ts +83 -0
  144. package/dist/{src → esm}/lib/transaction.d.ts.map +1 -1
  145. package/dist/esm/lib/transaction.js +584 -0
  146. package/dist/esm/lib/transactionBuilder.d.ts +131 -0
  147. package/dist/esm/lib/transactionBuilder.js +311 -0
  148. package/dist/esm/lib/transactionBuilderFactory.d.ts +28 -0
  149. package/dist/esm/lib/transactionBuilderFactory.js +97 -0
  150. package/dist/esm/lib/transferBuilder.d.ts +11 -0
  151. package/dist/esm/lib/transferBuilder.js +7 -0
  152. package/dist/esm/lib/txnSchema.d.ts +15 -0
  153. package/dist/esm/lib/txnSchema.js +111 -0
  154. package/dist/esm/lib/unnominateBuilder.d.ts +24 -0
  155. package/dist/esm/lib/unnominateBuilder.js +44 -0
  156. package/dist/esm/lib/unstakeBuilder.d.ts +38 -0
  157. package/dist/esm/lib/unstakeBuilder.js +80 -0
  158. package/dist/esm/lib/utils.d.ts +261 -0
  159. package/dist/esm/lib/utils.js +451 -0
  160. package/dist/esm/lib/wasmParser.d.ts +57 -0
  161. package/dist/esm/lib/wasmParser.d.ts.map +1 -0
  162. package/dist/esm/lib/wasmParser.js +341 -0
  163. package/dist/esm/lib/withdrawUnstakedBuilder.d.ts +38 -0
  164. package/dist/esm/lib/withdrawUnstakedBuilder.js +81 -0
  165. package/dist/esm/register.d.ts +3 -0
  166. package/dist/esm/register.js +7 -0
  167. package/dist/esm/resources/index.d.ts +5 -0
  168. package/dist/esm/resources/index.js +5 -0
  169. package/dist/esm/resources/mainnet.d.ts +2 -0
  170. package/dist/esm/resources/mainnet.js +2 -0
  171. package/dist/esm/resources/polkadotAssetHub.d.ts +2 -0
  172. package/dist/esm/resources/polkadotAssetHub.js +2 -0
  173. package/dist/esm/resources/westend.d.ts +2 -0
  174. package/dist/esm/resources/westend.js +2 -0
  175. package/dist/esm/resources/westendAssetHub.d.ts +2 -0
  176. package/dist/esm/resources/westendAssetHub.js +2 -0
  177. package/dist/esm/tdot.d.ts +12 -0
  178. package/dist/esm/tdot.js +23 -0
  179. package/package.json +29 -11
  180. package/dist/src/dot.d.ts.map +0 -1
  181. package/dist/src/lib/addressInitializationBuilder.js +0 -182
  182. package/dist/src/lib/batchTransactionBuilder.js +0 -229
  183. package/dist/src/lib/claimBuilder.js +0 -117
  184. package/dist/src/lib/errors.js +0 -19
  185. package/dist/src/lib/iface.js +0 -128
  186. package/dist/src/lib/iface_utils.js +0 -92
  187. package/dist/src/lib/keyPair.js +0 -117
  188. package/dist/src/lib/nativeTransferBuilder.js +0 -219
  189. package/dist/src/lib/proxyBuilder.js +0 -116
  190. package/dist/src/lib/singletonRegistry.js +0 -20
  191. package/dist/src/lib/stakingBuilder.js +0 -167
  192. package/dist/src/lib/transaction.js +0 -610
  193. package/dist/src/lib/transactionBuilder.js +0 -351
  194. package/dist/src/lib/transactionBuilderFactory.js +0 -104
  195. package/dist/src/lib/transferBuilder.js +0 -11
  196. package/dist/src/lib/txnSchema.js +0 -117
  197. package/dist/src/lib/unnominateBuilder.js +0 -48
  198. package/dist/src/lib/unstakeBuilder.js +0 -87
  199. package/dist/src/lib/utils.js +0 -491
  200. package/dist/src/lib/withdrawUnstakedBuilder.js +0 -88
  201. package/dist/src/register.js +0 -11
  202. package/dist/src/resources/mainnet.js +0 -5
  203. package/dist/src/resources/polkadotAssetHub.js +0 -5
  204. package/dist/src/tdot.js +0 -27
  205. package/dist/test/fixtures.d.ts.map +0 -1
  206. package/dist/test/fixtures.js +0 -439
  207. package/dist/test/resources/index.d.ts.map +0 -1
  208. package/dist/test/resources/index.js +0 -157
  209. package/dist/test/resources/testnet.d.ts.map +0 -1
  210. package/dist/test/unit/address.js +0 -45
  211. package/dist/test/unit/dot.js +0 -816
  212. package/dist/test/unit/keypair.js +0 -111
  213. package/dist/test/unit/transaction.d.ts.map +0 -1
  214. package/dist/test/unit/transaction.js +0 -269
  215. package/dist/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +0 -1
  216. package/dist/test/unit/transactionBuilder/addressInitializationBuilder.js +0 -265
  217. package/dist/test/unit/transactionBuilder/base.d.ts.map +0 -1
  218. package/dist/test/unit/transactionBuilder/base.js +0 -233
  219. package/dist/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +0 -1
  220. package/dist/test/unit/transactionBuilder/batchTransactionBuilder.js +0 -521
  221. package/dist/test/unit/transactionBuilder/claimBuilder.d.ts.map +0 -1
  222. package/dist/test/unit/transactionBuilder/claimBuilder.js +0 -129
  223. package/dist/test/unit/transactionBuilder/proxyBuilder.d.ts.map +0 -1
  224. package/dist/test/unit/transactionBuilder/proxyBuilder.js +0 -88
  225. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +0 -1
  226. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +0 -1
  227. package/dist/test/unit/transactionBuilder/stakingBuilder.js +0 -235
  228. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +0 -1
  229. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +0 -107
  230. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  231. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -437
  232. package/dist/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +0 -1
  233. package/dist/test/unit/transactionBuilder/unnominateBuilder.js +0 -97
  234. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +0 -1
  235. package/dist/test/unit/transactionBuilder/unstakeBuilder.js +0 -116
  236. package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +0 -1
  237. package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +0 -115
  238. package/dist/test/unit/utils.js +0 -117
  239. package/dist/tsconfig.tsbuildinfo +0 -1
  240. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  241. /package/dist/{src → cjs/src}/lib/addressInitializationBuilder.d.ts +0 -0
  242. /package/dist/{src → cjs/src}/lib/batchTransactionBuilder.d.ts +0 -0
  243. /package/dist/{src → cjs/src}/lib/claimBuilder.d.ts +0 -0
  244. /package/dist/{src → cjs/src}/lib/errors.d.ts +0 -0
  245. /package/dist/{src → cjs/src}/lib/iface.d.ts +0 -0
  246. /package/dist/{src → cjs/src}/lib/iface_utils.d.ts +0 -0
  247. /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
  248. /package/dist/{src → cjs/src}/lib/nativeTransferBuilder.d.ts +0 -0
  249. /package/dist/{src → cjs/src}/lib/proxyBuilder.d.ts +0 -0
  250. /package/dist/{src → cjs/src}/lib/singletonRegistry.d.ts +0 -0
  251. /package/dist/{src → cjs/src}/lib/stakingBuilder.d.ts +0 -0
  252. /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
  253. /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
  254. /package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +0 -0
  255. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  256. /package/dist/{src → cjs/src}/lib/txnSchema.d.ts +0 -0
  257. /package/dist/{src → cjs/src}/lib/unnominateBuilder.d.ts +0 -0
  258. /package/dist/{src → cjs/src}/lib/unstakeBuilder.d.ts +0 -0
  259. /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
  260. /package/dist/{src → cjs/src}/lib/withdrawUnstakedBuilder.d.ts +0 -0
  261. /package/dist/{src → cjs/src}/register.d.ts +0 -0
  262. /package/dist/{src → cjs/src}/resources/index.d.ts +0 -0
  263. /package/dist/{src → cjs/src}/resources/mainnet.d.ts +0 -0
  264. /package/dist/{src → cjs/src}/resources/polkadotAssetHub.d.ts +0 -0
  265. /package/dist/{src → cjs/src}/resources/westend.d.ts +0 -0
  266. /package/dist/{src → cjs/src}/resources/westendAssetHub.d.ts +0 -0
  267. /package/dist/{src → cjs/src}/tdot.d.ts +0 -0
  268. /package/dist/{test → cjs/test}/fixtures.d.ts +0 -0
  269. /package/dist/{test → cjs/test}/resources/index.d.ts +0 -0
  270. /package/dist/{test → cjs/test}/resources/materialData.json +0 -0
  271. /package/dist/{test → cjs/test}/resources/materialDataModified.json +0 -0
  272. /package/dist/{test → cjs/test}/resources/testnet.d.ts +0 -0
  273. /package/dist/{test → cjs/test}/unit/address.d.ts +0 -0
  274. /package/dist/{test → cjs/test}/unit/dot.d.ts +0 -0
  275. /package/dist/{test → cjs/test}/unit/keypair.d.ts +0 -0
  276. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  277. /package/dist/{test → cjs/test}/unit/transactionBuilder/addressInitializationBuilder.d.ts +0 -0
  278. /package/dist/{test → cjs/test}/unit/transactionBuilder/base.d.ts +0 -0
  279. /package/dist/{test → cjs/test}/unit/transactionBuilder/batchTransactionBuilder.d.ts +0 -0
  280. /package/dist/{test → cjs/test}/unit/transactionBuilder/claimBuilder.d.ts +0 -0
  281. /package/dist/{test → cjs/test}/unit/transactionBuilder/proxyBuilder.d.ts +0 -0
  282. /package/dist/{test → cjs/test}/unit/transactionBuilder/singeltonRegistry.d.ts +0 -0
  283. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingBuilder.d.ts +0 -0
  284. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilderFactory.d.ts +0 -0
  285. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  286. /package/dist/{test → cjs/test}/unit/transactionBuilder/unnominateBuilder.d.ts +0 -0
  287. /package/dist/{test → cjs/test}/unit/transactionBuilder/unstakeBuilder.d.ts +0 -0
  288. /package/dist/{test → cjs/test}/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts +0 -0
  289. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  290. /package/dist/{src → esm}/index.d.ts.map +0 -0
  291. /package/dist/{src → esm}/lib/addressInitializationBuilder.d.ts.map +0 -0
  292. /package/dist/{src → esm}/lib/batchTransactionBuilder.d.ts.map +0 -0
  293. /package/dist/{src → esm}/lib/claimBuilder.d.ts.map +0 -0
  294. /package/dist/{src → esm}/lib/errors.d.ts.map +0 -0
  295. /package/dist/{src → esm}/lib/iface.d.ts.map +0 -0
  296. /package/dist/{src → esm}/lib/iface_utils.d.ts.map +0 -0
  297. /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
  298. /package/dist/{src → esm}/lib/nativeTransferBuilder.d.ts.map +0 -0
  299. /package/dist/{src → esm}/lib/proxyBuilder.d.ts.map +0 -0
  300. /package/dist/{src → esm}/lib/singletonRegistry.d.ts.map +0 -0
  301. /package/dist/{src → esm}/lib/stakingBuilder.d.ts.map +0 -0
  302. /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
  303. /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
  304. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  305. /package/dist/{src → esm}/lib/txnSchema.d.ts.map +0 -0
  306. /package/dist/{src → esm}/lib/unnominateBuilder.d.ts.map +0 -0
  307. /package/dist/{src → esm}/lib/unstakeBuilder.d.ts.map +0 -0
  308. /package/dist/{src → esm}/lib/utils.d.ts.map +0 -0
  309. /package/dist/{src → esm}/lib/withdrawUnstakedBuilder.d.ts.map +0 -0
  310. /package/dist/{src → esm}/register.d.ts.map +0 -0
  311. /package/dist/{src → esm}/resources/index.d.ts.map +0 -0
  312. /package/dist/{src → esm}/resources/mainnet.d.ts.map +0 -0
  313. /package/dist/{src → esm}/resources/polkadotAssetHub.d.ts.map +0 -0
  314. /package/dist/{src → esm}/resources/westend.d.ts.map +0 -0
  315. /package/dist/{src → esm}/resources/westendAssetHub.d.ts.map +0 -0
  316. /package/dist/{src → esm}/tdot.d.ts.map +0 -0
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ /**
3
+ * WASM-based DOT transaction explanation.
4
+ *
5
+ * Built on @bitgo/wasm-dot's parseTransaction(). Derives transaction types,
6
+ * extracts outputs/inputs, and maps to BitGoJS TransactionExplanation format.
7
+ * This is BitGo-specific business logic that lives outside the wasm package.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.explainDotTransaction = explainDotTransaction;
11
+ exports.toJsonFromWasm = toJsonFromWasm;
12
+ const sdk_core_1 = require("@bitgo/sdk-core");
13
+ const wasm_dot_1 = require("@bitgo/wasm-dot");
14
+ const MAX_NESTING_DEPTH = 10;
15
+ /**
16
+ * Display-only sentinel address for staking outputs (bond, bondExtra, unbond).
17
+ *
18
+ * Staking extrinsics don't transfer funds to an external address. The bonded DOT
19
+ * stays in the sender's account as "bonded balance". But the explanation format
20
+ * requires an output address, so we use this null address (SS58 encoding of 32
21
+ * zero bytes, substrate generic prefix 42) as a placeholder meaning "this amount
22
+ * went to staking". Same constant used by the legacy account-lib Transaction class.
23
+ */
24
+ const STAKING_DESTINATION = '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM';
25
+ /** Sentinel for transferAll: the actual amount is determined on-chain. */
26
+ const ALL = 'ALL';
27
+ // =============================================================================
28
+ // Main exports
29
+ // =============================================================================
30
+ /**
31
+ * Explain a DOT transaction using the WASM parser.
32
+ *
33
+ * Parses the transaction via WASM, derives the transaction type and
34
+ * outputs locally, then maps to BitGoJS TransactionExplanation format.
35
+ */
36
+ function explainDotTransaction(params) {
37
+ const explained = buildExplanation(params);
38
+ const sender = explained.sender || params.senderAddress || '';
39
+ const methodName = `${explained.method.pallet}.${explained.method.name}`;
40
+ // Convert bigint to string at the serialization boundary
41
+ const outputs = explained.outputs.map((o) => ({
42
+ address: o.address,
43
+ amount: o.amount === ALL ? '0' : String(o.amount),
44
+ }));
45
+ const inputs = explained.inputs.map((i) => {
46
+ const valueStr = i.value === ALL ? ALL : String(i.value);
47
+ const value = i.value === ALL ? 0 : Number(i.value);
48
+ return { address: i.address, value, valueString: valueStr };
49
+ });
50
+ return {
51
+ displayOrder: ['outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'type', 'sequenceId', 'id'],
52
+ id: explained.id || '',
53
+ outputs,
54
+ outputAmount: String(explained.outputAmount),
55
+ changeOutputs: [],
56
+ changeAmount: '0',
57
+ fee: { fee: explained.tip ? String(explained.tip) : '0', type: 'tip' },
58
+ type: explained.type,
59
+ sender,
60
+ nonce: explained.nonce,
61
+ isSigned: explained.isSigned,
62
+ methodName,
63
+ inputs,
64
+ };
65
+ }
66
+ /**
67
+ * Produce a TxData object using WASM parsing instead of the JS txwrapper.
68
+ *
69
+ * This replaces the legacy `toJson()` path for chains where WASM parsing is enabled.
70
+ * The WASM parser decodes the extrinsic bytes (with metadata-aware signed extension handling),
71
+ * and this function maps the result to the TxData interface that consumers expect.
72
+ */
73
+ function toJsonFromWasm(params) {
74
+ const explained = buildExplanation(params);
75
+ const type = explained.type;
76
+ const method = explained.method;
77
+ const args = method.args;
78
+ const result = {
79
+ id: explained.id || '',
80
+ sender: explained.sender || params.senderAddress,
81
+ referenceBlock: params.referenceBlock || '',
82
+ blockNumber: params.blockNumber || 0,
83
+ genesisHash: params.material.genesisHash || '',
84
+ nonce: explained.nonce,
85
+ specVersion: params.material.specVersion || 0,
86
+ transactionVersion: params.material.txVersion || 0,
87
+ chainName: params.material.chainName || '',
88
+ tip: Number(explained.tip) || 0,
89
+ eraPeriod: explained.era.type === 'mortal' ? explained.era.period : 0,
90
+ };
91
+ if (type === sdk_core_1.TransactionType.Send) {
92
+ populateSendFields(result, method, args);
93
+ }
94
+ else if (type === sdk_core_1.TransactionType.StakingActivate) {
95
+ populateStakingActivateFields(result, method, args, params.senderAddress);
96
+ }
97
+ else if (type === sdk_core_1.TransactionType.StakingUnlock) {
98
+ result.amount = String(args.value ?? '');
99
+ }
100
+ else if (type === sdk_core_1.TransactionType.StakingWithdraw) {
101
+ result.numSlashingSpans = Number(args.numSlashingSpans ?? 0);
102
+ }
103
+ else if (type === sdk_core_1.TransactionType.StakingClaim) {
104
+ result.validatorStash = String(args.validatorStash ?? '');
105
+ result.claimEra = String(args.era ?? '');
106
+ }
107
+ else if (type === sdk_core_1.TransactionType.AddressInitialization) {
108
+ populateAddressInitFields(result, method, args);
109
+ }
110
+ else if (type === sdk_core_1.TransactionType.Batch) {
111
+ result.batchCalls = mapBatchCalls(args.calls);
112
+ }
113
+ return result;
114
+ }
115
+ function buildExplanation(params) {
116
+ const tx = wasm_dot_1.DotTransaction.fromHex(params.txHex, params.material);
117
+ const context = {
118
+ material: params.material,
119
+ sender: params.senderAddress,
120
+ referenceBlock: params.referenceBlock,
121
+ blockNumber: params.blockNumber,
122
+ };
123
+ const parsed = (0, wasm_dot_1.parseTransaction)(tx, context);
124
+ const sender = parsed.sender ?? params.senderAddress;
125
+ const analysis = analyzeMethod(parsed.method, sender, params.material.metadata);
126
+ // Use explicit inputs from analysis if provided (e.g., unstake batch where
127
+ // the input source is the proxy address, not the sender). Otherwise, mirror
128
+ // outputs with sender as the default input source.
129
+ const inputs = analysis.inputs ?? (sender ? analysis.outputs.map((o) => ({ address: sender, value: o.amount })) : []);
130
+ const outputAmount = analysis.outputs.reduce((sum, o) => {
131
+ if (o.amount === ALL)
132
+ return sum;
133
+ return sum + o.amount;
134
+ }, 0n);
135
+ return {
136
+ type: analysis.type,
137
+ id: parsed.id ?? undefined,
138
+ sender: parsed.sender ?? undefined,
139
+ outputs: analysis.outputs,
140
+ inputs,
141
+ outputAmount,
142
+ tip: BigInt(parsed.tip || '0'),
143
+ era: parsed.era,
144
+ method: parsed.method,
145
+ isSigned: parsed.isSigned,
146
+ nonce: parsed.nonce,
147
+ };
148
+ }
149
+ /**
150
+ * Analyze a parsed method to determine its transaction type and extract outputs.
151
+ *
152
+ * This is a single switch that handles both concerns together, preventing them
153
+ * from getting out of sync. Every case that sets a type also sets the outputs
154
+ * for that type.
155
+ */
156
+ function analyzeMethod(method, senderAddress, metadataHex) {
157
+ return analyzeMethodInner(method, senderAddress, metadataHex, 0);
158
+ }
159
+ function analyzeMethodInner(method, senderAddress, metadataHex, depth) {
160
+ const key = `${method.pallet}.${method.name}`;
161
+ const args = (method.args ?? {});
162
+ switch (key) {
163
+ // --- Transfers ---
164
+ case 'balances.transfer':
165
+ case 'balances.transferKeepAlive':
166
+ case 'balances.transferAllowDeath':
167
+ return {
168
+ type: sdk_core_1.TransactionType.Send,
169
+ outputs: [{ address: String(args.dest ?? ''), amount: BigInt(args.value ?? '0') }],
170
+ };
171
+ case 'balances.transferAll':
172
+ return {
173
+ type: sdk_core_1.TransactionType.Send,
174
+ outputs: [{ address: String(args.dest ?? ''), amount: ALL }],
175
+ };
176
+ // --- Staking ---
177
+ case 'staking.bond':
178
+ case 'staking.bondExtra':
179
+ return {
180
+ type: sdk_core_1.TransactionType.StakingActivate,
181
+ outputs: [{ address: STAKING_DESTINATION, amount: BigInt(args.value ?? '0') }],
182
+ };
183
+ case 'staking.unbond':
184
+ // Empty outputs: unbond unlocks DOT (no external spend). Matches legacy Transaction class
185
+ // behavior where decodeInputsAndOutputsForUnbond() returns []. Bond/bondExtra keep the
186
+ // sentinel because they represent actual balance locks visible to policy evaluation.
187
+ return { type: sdk_core_1.TransactionType.StakingUnlock, outputs: [] };
188
+ case 'staking.withdrawUnbonded':
189
+ return { type: sdk_core_1.TransactionType.StakingWithdraw, outputs: [] };
190
+ case 'staking.chill':
191
+ return { type: sdk_core_1.TransactionType.StakingUnvote, outputs: [] };
192
+ case 'staking.payoutStakers':
193
+ return { type: sdk_core_1.TransactionType.StakingClaim, outputs: [] };
194
+ // --- Proxy ---
195
+ case 'proxy.addProxy':
196
+ case 'proxy.removeProxy':
197
+ case 'proxy.createPure':
198
+ return { type: sdk_core_1.TransactionType.AddressInitialization, outputs: [] };
199
+ // --- Proxy-wrapped call ---
200
+ case 'proxy.proxy': {
201
+ if (depth >= MAX_NESTING_DEPTH)
202
+ return { type: sdk_core_1.TransactionType.Send, outputs: [] };
203
+ const call = args.call;
204
+ if (call?.pallet && call?.name)
205
+ return analyzeMethodInner(call, senderAddress, metadataHex, depth + 1);
206
+ return { type: sdk_core_1.TransactionType.Send, outputs: [] };
207
+ }
208
+ // --- Batch ---
209
+ case 'utility.batch':
210
+ case 'utility.batchAll':
211
+ return analyzeBatch(args, senderAddress, metadataHex, depth);
212
+ default:
213
+ return { type: sdk_core_1.TransactionType.Send, outputs: [] };
214
+ }
215
+ }
216
+ /**
217
+ * Analyze a batch transaction.
218
+ *
219
+ * Detects known proxy batch patterns (stake: bond+addProxy, unstake:
220
+ * removeProxy+chill+unbond) and handles proxy deposit cost. For unrecognized
221
+ * batch patterns, recursively extracts outputs from each inner call.
222
+ */
223
+ function analyzeBatch(args, senderAddress, metadataHex, depth) {
224
+ const calls = (args.calls ?? []);
225
+ if (calls.length === 0)
226
+ return { type: sdk_core_1.TransactionType.Batch, outputs: [] };
227
+ const callKeys = calls.map((c) => `${c.pallet}.${c.name}`);
228
+ // Staking batch: bond + addProxy (2 calls)
229
+ if (calls.length === 2 && callKeys[0] === 'staking.bond' && callKeys[1] === 'proxy.addProxy') {
230
+ const bondArgs = (calls[0].args ?? {});
231
+ const addProxyArgs = (calls[1].args ?? {});
232
+ const bondAmount = BigInt(bondArgs.value ?? '0');
233
+ const proxyAddress = String(addProxyArgs.delegate ?? '');
234
+ const proxyDepositCost = metadataHex ? (0, wasm_dot_1.getProxyDepositCost)(metadataHex) : 0n;
235
+ return {
236
+ type: sdk_core_1.TransactionType.Batch,
237
+ outputs: [
238
+ { address: STAKING_DESTINATION, amount: bondAmount },
239
+ { address: proxyAddress, amount: proxyDepositCost },
240
+ ],
241
+ };
242
+ }
243
+ // Unstaking batch: removeProxy + chill + unbond (3 calls)
244
+ // Input source is the proxy address (deposit refund), not the sender.
245
+ if (calls.length === 3 &&
246
+ callKeys[0] === 'proxy.removeProxy' &&
247
+ callKeys[1] === 'staking.chill' &&
248
+ callKeys[2] === 'staking.unbond') {
249
+ const removeProxyArgs = (calls[0].args ?? {});
250
+ const proxyAddress = String(removeProxyArgs.delegate ?? '');
251
+ const proxyDepositCost = metadataHex ? (0, wasm_dot_1.getProxyDepositCost)(metadataHex) : 0n;
252
+ const outputs = senderAddress ? [{ address: senderAddress, amount: proxyDepositCost }] : [];
253
+ const inputs = [{ address: proxyAddress, value: proxyDepositCost }];
254
+ return { type: sdk_core_1.TransactionType.Batch, outputs, inputs };
255
+ }
256
+ // Generic batch: recursively extract outputs from each inner call
257
+ if (depth >= MAX_NESTING_DEPTH)
258
+ return { type: sdk_core_1.TransactionType.Batch, outputs: [] };
259
+ const outputs = calls
260
+ .filter((c) => c?.pallet && c?.name)
261
+ .flatMap((c) => analyzeMethodInner(c, senderAddress, metadataHex, depth + 1).outputs);
262
+ return { type: sdk_core_1.TransactionType.Batch, outputs };
263
+ }
264
+ // =============================================================================
265
+ // Helpers
266
+ // =============================================================================
267
+ function populateSendFields(result, method, args) {
268
+ const key = `${method.pallet}.${method.name}`;
269
+ if (key === 'proxy.proxy') {
270
+ // Proxy-wrapped transfer
271
+ const innerCall = args.call;
272
+ result.owner = String(args.real ?? '');
273
+ result.forceProxyType = args.forceProxyType ?? undefined;
274
+ if (innerCall?.args) {
275
+ const innerArgs = innerCall.args;
276
+ result.to = String(innerArgs.dest ?? '');
277
+ result.amount = String(innerArgs.value ?? '');
278
+ }
279
+ }
280
+ else if (key === 'balances.transferAll') {
281
+ result.to = String(args.dest ?? '');
282
+ result.keepAlive = Boolean(args.keepAlive);
283
+ }
284
+ else {
285
+ // transfer, transferKeepAlive, transferAllowDeath
286
+ result.to = String(args.dest ?? '');
287
+ result.amount = String(args.value ?? '');
288
+ }
289
+ }
290
+ function populateStakingActivateFields(result, method, args, senderAddress) {
291
+ if (method.name === 'bondExtra') {
292
+ result.amount = String(args.value ?? '');
293
+ }
294
+ else {
295
+ // bond
296
+ result.controller = senderAddress;
297
+ result.amount = String(args.value ?? '');
298
+ result.payee = String(args.payee ?? '');
299
+ }
300
+ }
301
+ function populateAddressInitFields(result, method, args) {
302
+ const key = `${method.pallet}.${method.name}`;
303
+ result.method = key;
304
+ result.proxyType = String(args.proxy_type ?? '');
305
+ result.delay = String(args.delay ?? '');
306
+ if (key === 'proxy.createPure') {
307
+ result.index = String(args.index ?? '');
308
+ }
309
+ else {
310
+ // addProxy, removeProxy
311
+ result.owner = String(args.delegate ?? '');
312
+ }
313
+ }
314
+ function mapBatchCalls(calls) {
315
+ if (!calls)
316
+ return [];
317
+ return calls.map((call) => ({
318
+ callIndex: `0x${call.palletIndex.toString(16).padStart(2, '0')}${call.methodIndex.toString(16).padStart(2, '0')}`,
319
+ args: transformBatchCallArgs((call.args ?? {})),
320
+ }));
321
+ }
322
+ /** Transform WASM-decoded batch call args to match the Polkadot.js format that consumers expect */
323
+ function transformBatchCallArgs(args) {
324
+ const result = {};
325
+ for (const [key, value] of Object.entries(args)) {
326
+ if (key === 'delegate' && typeof value === 'string') {
327
+ // MultiAddress Id variant: string -> { id: string }
328
+ result[key] = { id: value };
329
+ }
330
+ else if (key === 'value' && typeof value === 'string') {
331
+ // Compact u128: string -> number (matches Polkadot.js behavior)
332
+ result[key] = Number(value);
333
+ }
334
+ else if (key === 'payee' && typeof value === 'string') {
335
+ // Enum unit variant: "Staked" -> { staked: null }
336
+ const variantName = value.charAt(0).toLowerCase() + value.slice(1);
337
+ result[key] = { [variantName]: null };
338
+ }
339
+ else {
340
+ result[key] = value;
341
+ }
342
+ }
343
+ return result;
344
+ }
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbVBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvd2FzbVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQXlFSCxzREFpQ0M7QUFTRCx3Q0FzQ0M7QUF2SkQsOENBQWtEO0FBQ2xELDhDQUFxSDtBQUdySCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUU3Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsa0RBQWtELENBQUM7QUFFL0UsMEVBQTBFO0FBQzFFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQztBQTJDbEIsZ0ZBQWdGO0FBQ2hGLGVBQWU7QUFDZixnRkFBZ0Y7QUFFaEY7Ozs7O0dBS0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFtQztJQUN2RSxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV6RSx5REFBeUQ7SUFDekQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sTUFBTSxHQUFlLFNBQVMsQ0FBQyxNQUFNLENB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QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hELElBQUksR0FBRyxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxvREFBb0Q7WUFDcEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlCLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEQsZ0VBQWdFO1lBQ2hFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxrREFBa0Q7WUFDbEQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV0FTTS1iYXNlZCBET1QgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24uXG4gKlxuICogQnVpbHQgb24gQGJpdGdvL3dhc20tZG90J3MgcGFyc2VUcmFuc2FjdGlvbigpLiBEZXJpdmVzIHRyYW5zYWN0aW9uIHR5cGVzLFxuICogZXh0cmFjdHMgb3V0cHV0cy9pbnB1dHMsIGFuZCBtYXBzIHRvIEJpdEdvSlMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBmb3JtYXQuXG4gKiBUaGlzIGlzIEJpdEdvLXNwZWNpZmljIGJ1c2luZXNzIGxvZ2ljIHRoYXQgbGl2ZXMgb3V0c2lkZSB0aGUgd2FzbSBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBEb3RUcmFuc2FjdGlvbiwgcGFyc2VUcmFuc2FjdGlvbiwgZ2V0UHJveHlEZXBvc2l0Q29zdCwgdHlwZSBQYXJzZWRNZXRob2QsIHR5cGUgRXJhIH0gZnJvbSAnQGJpdGdvL3dhc20tZG90JztcbmltcG9ydCB0eXBlIHsgQmF0Y2hDYWxsT2JqZWN0LCBQcm94eVR5cGUsIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIE1hdGVyaWFsLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcblxuY29uc3QgTUFYX05FU1RJTkdfREVQVEggPSAxMDtcblxuLyoqXG4gKiBEaXNwbGF5LW9ubHkgc2VudGluZWwgYWRkcmVzcyBmb3Igc3Rha2luZyBvdXRwdXRzIChib25kLCBib25kRXh0cmEsIHVuYm9uZCkuXG4gKlxuICogU3Rha2luZyBleHRyaW5zaWNzIGRvbid0IHRyYW5zZmVyIGZ1bmRzIHRvIGFuIGV4dGVybmFsIGFkZHJlc3MuIFRoZSBib25kZWQgRE9UXG4gKiBzdGF5cyBpbiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBhcyBcImJvbmRlZCBiYWxhbmNlXCIuIEJ1dCB0aGUgZXhwbGFuYXRpb24gZm9ybWF0XG4gKiByZXF1aXJlcyBhbiBvdXRwdXQgYWRkcmVzcywgc28gd2UgdXNlIHRoaXMgbnVsbCBhZGRyZXNzIChTUzU4IGVuY29kaW5nIG9mIDMyXG4gKiB6ZXJvIGJ5dGVzLCBzdWJzdHJhdGUgZ2VuZXJpYyBwcmVmaXggNDIpIGFzIGEgcGxhY2Vob2xkZXIgbWVhbmluZyBcInRoaXMgYW1vdW50XG4gKiB3ZW50IHRvIHN0YWtpbmdcIi4gU2FtZSBjb25zdGFudCB1c2VkIGJ5IHRoZSBsZWdhY3kgYWNjb3VudC1saWIgVHJhbnNhY3Rpb24gY2xhc3MuXG4gKi9cbmNvbnN0IFNUQUtJTkdfREVTVElOQVRJT04gPSAnNUM0aHJmanc5RGpYWlR6VjNNd3pyckFyOVAxTUpoU3J2V0dXcWkxZVN1eVVwbmhNJztcblxuLyoqIFNlbnRpbmVsIGZvciB0cmFuc2ZlckFsbDogdGhlIGFjdHVhbCBhbW91bnQgaXMgZGV0ZXJtaW5lZCBvbi1jaGFpbi4gKi9cbmNvbnN0IEFMTCA9ICdBTEwnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHVibGljIHR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElucHV0IGVudHJ5IGZvciBhIERPVCB0cmFuc2FjdGlvbi5cbiAqIEZvciBhY2NvdW50LW1vZGVsIGNoYWlucywgdGhlcmUncyB0eXBpY2FsbHkgb25lIGlucHV0ICh0aGUgc2VuZGVyKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3RJbnB1dCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBleHBsYW5hdGlvbiByZXR1cm5lZCBieSBXQVNNLWJhc2VkIHBhcnNpbmcuXG4gKiBJbmNsdWRlcyBmaWVsZHMgbmVlZGVkIGJ5IHdhbGxldC1wbGF0Zm9ybSB0aGF0IGFyZW4ndCBpbiB0aGUgYmFzZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvdFdhc21FeHBsYW5hdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBzZW5kZXI6IHN0cmluZztcbiAgbm9uY2U6IG51bWJlcjtcbiAgaXNTaWduZWQ6IGJvb2xlYW47XG4gIG1ldGhvZE5hbWU6IHN0cmluZztcbiAgaW5wdXRzOiBEb3RJbnB1dFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5Eb3RUcmFuc2FjdGlvblBhcmFtcyB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIG1hdGVyaWFsOiBNYXRlcmlhbDtcbiAgc2VuZGVyQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb0pzb25Gcm9tV2FzbVBhcmFtcyB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIG1hdGVyaWFsOiBNYXRlcmlhbDtcbiAgc2VuZGVyQWRkcmVzczogc3RyaW5nO1xuICBjb2luQ29uZmlnTmFtZTogc3RyaW5nO1xuICByZWZlcmVuY2VCbG9jaz86IHN0cmluZztcbiAgYmxvY2tOdW1iZXI/OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNYWluIGV4cG9ydHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXhwbGFpbiBhIERPVCB0cmFuc2FjdGlvbiB1c2luZyB0aGUgV0FTTSBwYXJzZXIuXG4gKlxuICogUGFyc2VzIHRoZSB0cmFuc2FjdGlvbiB2aWEgV0FTTSwgZGVyaXZlcyB0aGUgdHJhbnNhY3Rpb24gdHlwZSBhbmRcbiAqIG91dHB1dHMgbG9jYWxseSwgdGhlbiBtYXBzIHRvIEJpdEdvSlMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluRG90VHJhbnNhY3Rpb24ocGFyYW1zOiBFeHBsYWluRG90VHJhbnNhY3Rpb25QYXJhbXMpOiBEb3RXYXNtRXhwbGFuYXRpb24ge1xuICBjb25zdCBleHBsYWluZWQgPSBidWlsZEV4cGxhbmF0aW9uKHBhcmFtcyk7XG5cbiAgY29uc3Qgc2VuZGVyID0gZXhwbGFpbmVkLnNlbmRlciB8fCBwYXJhbXMuc2VuZGVyQWRkcmVzcyB8fCAnJztcbiAgY29uc3QgbWV0aG9kTmFtZSA9IGAke2V4cGxhaW5lZC5tZXRob2QucGFsbGV0fS4ke2V4cGxhaW5lZC5tZXRob2QubmFtZX1gO1xuXG4gIC8vIENvbnZlcnQgYmlnaW50IHRvIHN0cmluZyBhdCB0aGUgc2VyaWFsaXphdGlvbiBib3VuZGFyeVxuICBjb25zdCBvdXRwdXRzID0gZXhwbGFpbmVkLm91dHB1dHMubWFwKChvKSA9PiAoe1xuICAgIGFkZHJlc3M6IG8uYWRkcmVzcyxcbiAgICBhbW91bnQ6IG8uYW1vdW50ID09PSBBTEwgPyAnMCcgOiBTdHJpbmcoby5hbW91bnQpLFxuICB9KSk7XG5cbiAgY29uc3QgaW5wdXRzOiBEb3RJbnB1dFtdID0gZXhwbGFpbmVkLmlucHV0cy5tYXAoKGkpID0+IHtcbiAgICBjb25zdCB2YWx1ZVN0ciA9IGkudmFsdWUgPT09IEFMTCA/IEFMTCA6IFN0cmluZyhpLnZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IGkudmFsdWUgPT09IEFMTCA/IDAgOiBOdW1iZXIoaS52YWx1ZSk7XG4gICAgcmV0dXJuIHsgYWRkcmVzczogaS5hZGRyZXNzLCB2YWx1ZSwgdmFsdWVTdHJpbmc6IHZhbHVlU3RyIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgZGlzcGxheU9yZGVyOiBbJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICd0eXBlJywgJ3NlcXVlbmNlSWQnLCAnaWQnXSxcbiAgICBpZDogZXhwbGFpbmVkLmlkIHx8ICcnLFxuICAgIG91dHB1dHMsXG4gICAgb3V0cHV0QW1vdW50OiBTdHJpbmcoZXhwbGFpbmVkLm91dHB1dEFtb3VudCksXG4gICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgZmVlOiB7IGZlZTogZXhwbGFpbmVkLnRpcCA/IFN0cmluZyhleHBsYWluZWQudGlwKSA6ICcwJywgdHlwZTogJ3RpcCcgfSxcbiAgICB0eXBlOiBleHBsYWluZWQudHlwZSxcbiAgICBzZW5kZXIsXG4gICAgbm9uY2U6IGV4cGxhaW5lZC5ub25jZSxcbiAgICBpc1NpZ25lZDogZXhwbGFpbmVkLmlzU2lnbmVkLFxuICAgIG1ldGhvZE5hbWUsXG4gICAgaW5wdXRzLFxuICB9O1xufVxuXG4vKipcbiAqIFByb2R1Y2UgYSBUeERhdGEgb2JqZWN0IHVzaW5nIFdBU00gcGFyc2luZyBpbnN0ZWFkIG9mIHRoZSBKUyB0eHdyYXBwZXIuXG4gKlxuICogVGhpcyByZXBsYWNlcyB0aGUgbGVnYWN5IGB0b0pzb24oKWAgcGF0aCBmb3IgY2hhaW5zIHdoZXJlIFdBU00gcGFyc2luZyBpcyBlbmFibGVkLlxuICogVGhlIFdBU00gcGFyc2VyIGRlY29kZXMgdGhlIGV4dHJpbnNpYyBieXRlcyAod2l0aCBtZXRhZGF0YS1hd2FyZSBzaWduZWQgZXh0ZW5zaW9uIGhhbmRsaW5nKSxcbiAqIGFuZCB0aGlzIGZ1bmN0aW9uIG1hcHMgdGhlIHJlc3VsdCB0byB0aGUgVHhEYXRhIGludGVyZmFjZSB0aGF0IGNvbnN1bWVycyBleHBlY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25Gcm9tV2FzbShwYXJhbXM6IFRvSnNvbkZyb21XYXNtUGFyYW1zKTogVHhEYXRhIHtcbiAgY29uc3QgZXhwbGFpbmVkID0gYnVpbGRFeHBsYW5hdGlvbihwYXJhbXMpO1xuICBjb25zdCB0eXBlID0gZXhwbGFpbmVkLnR5cGU7XG4gIGNvbnN0IG1ldGhvZCA9IGV4cGxhaW5lZC5tZXRob2Q7XG4gIGNvbnN0IGFyZ3MgPSBtZXRob2QuYXJncyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICBpZDogZXhwbGFpbmVkLmlkIHx8ICcnLFxuICAgIHNlbmRlcjogZXhwbGFpbmVkLnNlbmRlciB8fCBwYXJhbXMuc2VuZGVyQWRkcmVzcyxcbiAgICByZWZlcmVuY2VCbG9jazogcGFyYW1zLnJlZmVyZW5jZUJsb2NrIHx8ICcnLFxuICAgIGJsb2NrTnVtYmVyOiBwYXJhbXMuYmxvY2tOdW1iZXIgfHwgMCxcbiAgICBnZW5lc2lzSGFzaDogcGFyYW1zLm1hdGVyaWFsLmdlbmVzaXNIYXNoIHx8ICcnLFxuICAgIG5vbmNlOiBleHBsYWluZWQubm9uY2UsXG4gICAgc3BlY1ZlcnNpb246IHBhcmFtcy5tYXRlcmlhbC5zcGVjVmVyc2lvbiB8fCAwLFxuICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogcGFyYW1zLm1hdGVyaWFsLnR4VmVyc2lvbiB8fCAwLFxuICAgIGNoYWluTmFtZTogcGFyYW1zLm1hdGVyaWFsLmNoYWluTmFtZSB8fCAnJyxcbiAgICB0aXA6IE51bWJlcihleHBsYWluZWQudGlwKSB8fCAwLFxuICAgIGVyYVBlcmlvZDogZXhwbGFpbmVkLmVyYS50eXBlID09PSAnbW9ydGFsJyA/IChleHBsYWluZWQuZXJhIGFzIHsgcGVyaW9kOiBudW1iZXIgfSkucGVyaW9kIDogMCxcbiAgfTtcblxuICBpZiAodHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICBwb3B1bGF0ZVNlbmRGaWVsZHMocmVzdWx0LCBtZXRob2QsIGFyZ3MpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUpIHtcbiAgICBwb3B1bGF0ZVN0YWtpbmdBY3RpdmF0ZUZpZWxkcyhyZXN1bHQsIG1ldGhvZCwgYXJncywgcGFyYW1zLnNlbmRlckFkZHJlc3MpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrKSB7XG4gICAgcmVzdWx0LmFtb3VudCA9IFN0cmluZyhhcmdzLnZhbHVlID8/ICcnKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3KSB7XG4gICAgcmVzdWx0Lm51bVNsYXNoaW5nU3BhbnMgPSBOdW1iZXIoYXJncy5udW1TbGFzaGluZ1NwYW5zID8/IDApO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW0pIHtcbiAgICByZXN1bHQudmFsaWRhdG9yU3Rhc2ggPSBTdHJpbmcoYXJncy52YWxpZGF0b3JTdGFzaCA/PyAnJyk7XG4gICAgcmVzdWx0LmNsYWltRXJhID0gU3RyaW5nKGFyZ3MuZXJhID8/ICcnKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKSB7XG4gICAgcG9wdWxhdGVBZGRyZXNzSW5pdEZpZWxkcyhyZXN1bHQsIG1ldGhvZCwgYXJncyk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkJhdGNoKSB7XG4gICAgcmVzdWx0LmJhdGNoQ2FsbHMgPSBtYXBCYXRjaENhbGxzKGFyZ3MuY2FsbHMgYXMgUGFyc2VkTWV0aG9kW10pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvcmUgZXhwbGFpbiBsb2dpY1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaW50ZXJmYWNlIEludGVybmFsT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IGJpZ2ludCB8IHR5cGVvZiBBTEw7XG59XG5cbmludGVyZmFjZSBJbnRlcm5hbElucHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50IHwgdHlwZW9mIEFMTDtcbn1cblxuaW50ZXJmYWNlIEludGVybmFsRXhwbGFpbmVkIHtcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzZW5kZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3V0cHV0czogSW50ZXJuYWxPdXRwdXRbXTtcbiAgaW5wdXRzOiBJbnRlcm5hbElucHV0W107XG4gIG91dHB1dEFtb3VudDogYmlnaW50O1xuICB0aXA6IGJpZ2ludDtcbiAgZXJhOiBFcmE7XG4gIG1ldGhvZDogUGFyc2VkTWV0aG9kO1xuICBpc1NpZ25lZDogYm9vbGVhbjtcbiAgbm9uY2U6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gYnVpbGRFeHBsYW5hdGlvbihwYXJhbXM6IHtcbiAgdHhIZXg6IHN0cmluZztcbiAgbWF0ZXJpYWw6IE1hdGVyaWFsO1xuICBzZW5kZXJBZGRyZXNzPzogc3RyaW5nO1xuICByZWZlcmVuY2VCbG9jaz86IHN0cmluZztcbiAgYmxvY2tOdW1iZXI/OiBudW1iZXI7XG59KTogSW50ZXJuYWxFeHBsYWluZWQge1xuICBjb25zdCB0eCA9IERvdFRyYW5zYWN0aW9uLmZyb21IZXgocGFyYW1zLnR4SGV4LCBwYXJhbXMubWF0ZXJpYWwpO1xuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIG1hdGVyaWFsOiBwYXJhbXMubWF0ZXJpYWwsXG4gICAgc2VuZGVyOiBwYXJhbXMuc2VuZGVyQWRkcmVzcyxcbiAgICByZWZlcmVuY2VCbG9jazogcGFyYW1zLnJlZmVyZW5jZUJsb2NrLFxuICAgIGJsb2NrTnVtYmVyOiBwYXJhbXMuYmxvY2tOdW1iZXIsXG4gIH07XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlVHJhbnNhY3Rpb24odHgsIGNvbnRleHQpO1xuICBjb25zdCBzZW5kZXIgPSBwYXJzZWQuc2VuZGVyID8/IHBhcmFtcy5zZW5kZXJBZGRyZXNzO1xuXG4gIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZU1ldGhvZChwYXJzZWQubWV0aG9kLCBzZW5kZXIsIHBhcmFtcy5tYXRlcmlhbC5tZXRhZGF0YSk7XG5cbiAgLy8gVXNlIGV4cGxpY2l0IGlucHV0cyBmcm9tIGFuYWx5c2lzIGlmIHByb3ZpZGVkIChlLmcuLCB1bnN0YWtlIGJhdGNoIHdoZXJlXG4gIC8vIHRoZSBpbnB1dCBzb3VyY2UgaXMgdGhlIHByb3h5IGFkZHJlc3MsIG5vdCB0aGUgc2VuZGVyKS4gT3RoZXJ3aXNlLCBtaXJyb3JcbiAgLy8gb3V0cHV0cyB3aXRoIHNlbmRlciBhcyB0aGUgZGVmYXVsdCBpbnB1dCBzb3VyY2UuXG4gIGNvbnN0IGlucHV0czogSW50ZXJuYWxJbnB1dFtdID1cbiAgICBhbmFseXNpcy5pbnB1dHMgPz8gKHNlbmRlciA/IGFuYWx5c2lzLm91dHB1dHMubWFwKChvKSA9PiAoeyBhZGRyZXNzOiBzZW5kZXIsIHZhbHVlOiBvLmFtb3VudCB9KSkgOiBbXSk7XG5cbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gYW5hbHlzaXMub3V0cHV0cy5yZWR1Y2UoKHN1bSwgbykgPT4ge1xuICAgIGlmIChvLmFtb3VudCA9PT0gQUxMKSByZXR1cm4gc3VtO1xuICAgIHJldHVybiBzdW0gKyBvLmFtb3VudDtcbiAgfSwgMG4pO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogYW5hbHlzaXMudHlwZSxcbiAgICBpZDogcGFyc2VkLmlkID8/IHVuZGVmaW5lZCxcbiAgICBzZW5kZXI6IHBhcnNlZC5zZW5kZXIgPz8gdW5kZWZpbmVkLFxuICAgIG91dHB1dHM6IGFuYWx5c2lzLm91dHB1dHMsXG4gICAgaW5wdXRzLFxuICAgIG91dHB1dEFtb3VudCxcbiAgICB0aXA6IEJpZ0ludChwYXJzZWQudGlwIHx8ICcwJyksXG4gICAgZXJhOiBwYXJzZWQuZXJhLFxuICAgIG1ldGhvZDogcGFyc2VkLm1ldGhvZCxcbiAgICBpc1NpZ25lZDogcGFyc2VkLmlzU2lnbmVkLFxuICAgIG5vbmNlOiBwYXJzZWQubm9uY2UsXG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21iaW5lZCB0eXBlICsgb3V0cHV0IGFuYWx5c2lzIChzaW5nbGUgc3dpdGNoLCBzaW5nbGUgcGxhY2UgdG8gdXBkYXRlKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaW50ZXJmYWNlIE1ldGhvZEFuYWx5c2lzIHtcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xuICBvdXRwdXRzOiBJbnRlcm5hbE91dHB1dFtdO1xuICAvKiogRXhwbGljaXQgaW5wdXRzLCB3aGVuIHRoZXkgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHQgKHNlbmRlciBtaXJyb3JzIG91dHB1dHMpLiAqL1xuICBpbnB1dHM/OiBJbnRlcm5hbElucHV0W107XG59XG5cbi8qKlxuICogQW5hbHl6ZSBhIHBhcnNlZCBtZXRob2QgdG8gZGV0ZXJtaW5lIGl0cyB0cmFuc2FjdGlvbiB0eXBlIGFuZCBleHRyYWN0IG91dHB1dHMuXG4gKlxuICogVGhpcyBpcyBhIHNpbmdsZSBzd2l0Y2ggdGhhdCBoYW5kbGVzIGJvdGggY29uY2VybnMgdG9nZXRoZXIsIHByZXZlbnRpbmcgdGhlbVxuICogZnJvbSBnZXR0aW5nIG91dCBvZiBzeW5jLiBFdmVyeSBjYXNlIHRoYXQgc2V0cyBhIHR5cGUgYWxzbyBzZXRzIHRoZSBvdXRwdXRzXG4gKiBmb3IgdGhhdCB0eXBlLlxuICovXG5mdW5jdGlvbiBhbmFseXplTWV0aG9kKG1ldGhvZDogUGFyc2VkTWV0aG9kLCBzZW5kZXJBZGRyZXNzPzogc3RyaW5nLCBtZXRhZGF0YUhleD86IHN0cmluZyk6IE1ldGhvZEFuYWx5c2lzIHtcbiAgcmV0dXJuIGFuYWx5emVNZXRob2RJbm5lcihtZXRob2QsIHNlbmRlckFkZHJlc3MsIG1ldGFkYXRhSGV4LCAwKTtcbn1cblxuZnVuY3Rpb24gYW5hbHl6ZU1ldGhvZElubmVyKFxuICBtZXRob2Q6IFBhcnNlZE1ldGhvZCxcbiAgc2VuZGVyQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBtZXRhZGF0YUhleDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBkZXB0aDogbnVtYmVyXG4pOiBNZXRob2RBbmFseXNpcyB7XG4gIGNvbnN0IGtleSA9IGAke21ldGhvZC5wYWxsZXR9LiR7bWV0aG9kLm5hbWV9YDtcbiAgY29uc3QgYXJncyA9IChtZXRob2QuYXJncyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgc3dpdGNoIChrZXkpIHtcbiAgICAvLyAtLS0gVHJhbnNmZXJzIC0tLVxuICAgIGNhc2UgJ2JhbGFuY2VzLnRyYW5zZmVyJzpcbiAgICBjYXNlICdiYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZSc6XG4gICAgY2FzZSAnYmFsYW5jZXMudHJhbnNmZXJBbGxvd0RlYXRoJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICAgICAgICBvdXRwdXRzOiBbeyBhZGRyZXNzOiBTdHJpbmcoYXJncy5kZXN0ID8/ICcnKSwgYW1vdW50OiBCaWdJbnQoKGFyZ3MudmFsdWUgYXMgc3RyaW5nKSA/PyAnMCcpIH1dLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ2JhbGFuY2VzLnRyYW5zZmVyQWxsJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICAgICAgICBvdXRwdXRzOiBbeyBhZGRyZXNzOiBTdHJpbmcoYXJncy5kZXN0ID8/ICcnKSwgYW1vdW50OiBBTEwgfV0sXG4gICAgICB9O1xuXG4gICAgLy8gLS0tIFN0YWtpbmcgLS0tXG4gICAgY2FzZSAnc3Rha2luZy5ib25kJzpcbiAgICBjYXNlICdzdGFraW5nLmJvbmRFeHRyYSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlLFxuICAgICAgICBvdXRwdXRzOiBbeyBhZGRyZXNzOiBTVEFLSU5HX0RFU1RJTkFUSU9OLCBhbW91bnQ6IEJpZ0ludCgoYXJncy52YWx1ZSBhcyBzdHJpbmcpID8/ICcwJykgfV0sXG4gICAgICB9O1xuXG4gICAgY2FzZSAnc3Rha2luZy51bmJvbmQnOlxuICAgICAgLy8gRW1wdHkgb3V0cHV0czogdW5ib25kIHVubG9ja3MgRE9UIChubyBleHRlcm5hbCBzcGVuZCkuIE1hdGNoZXMgbGVnYWN5IFRyYW5zYWN0aW9uIGNsYXNzXG4gICAgICAvLyBiZWhhdmlvciB3aGVyZSBkZWNvZGVJbnB1dHNBbmRPdXRwdXRzRm9yVW5ib25kKCkgcmV0dXJucyBbXS4gQm9uZC9ib25kRXh0cmEga2VlcCB0aGVcbiAgICAgIC8vIHNlbnRpbmVsIGJlY2F1c2UgdGhleSByZXByZXNlbnQgYWN0dWFsIGJhbGFuY2UgbG9ja3MgdmlzaWJsZSB0byBwb2xpY3kgZXZhbHVhdGlvbi5cbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrLCBvdXRwdXRzOiBbXSB9O1xuXG4gICAgY2FzZSAnc3Rha2luZy53aXRoZHJhd1VuYm9uZGVkJzpcbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXcsIG91dHB1dHM6IFtdIH07XG5cbiAgICBjYXNlICdzdGFraW5nLmNoaWxsJzpcbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW52b3RlLCBvdXRwdXRzOiBbXSB9O1xuXG4gICAgY2FzZSAnc3Rha2luZy5wYXlvdXRTdGFrZXJzJzpcbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW0sIG91dHB1dHM6IFtdIH07XG5cbiAgICAvLyAtLS0gUHJveHkgLS0tXG4gICAgY2FzZSAncHJveHkuYWRkUHJveHknOlxuICAgIGNhc2UgJ3Byb3h5LnJlbW92ZVByb3h5JzpcbiAgICBjYXNlICdwcm94eS5jcmVhdGVQdXJlJzpcbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24sIG91dHB1dHM6IFtdIH07XG5cbiAgICAvLyAtLS0gUHJveHktd3JhcHBlZCBjYWxsIC0tLVxuICAgIGNhc2UgJ3Byb3h5LnByb3h5Jzoge1xuICAgICAgaWYgKGRlcHRoID49IE1BWF9ORVNUSU5HX0RFUFRIKSByZXR1cm4geyB0eXBlOiBUcmFuc2FjdGlvblR5cGUuU2VuZCwgb3V0cHV0czogW10gfTtcbiAgICAgIGNvbnN0IGNhbGwgPSBhcmdzLmNhbGwgYXMgUGFyc2VkTWV0aG9kIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGNhbGw/LnBhbGxldCAmJiBjYWxsPy5uYW1lKSByZXR1cm4gYW5hbHl6ZU1ldGhvZElubmVyKGNhbGwsIHNlbmRlckFkZHJlc3MsIG1ldGFkYXRhSGV4LCBkZXB0aCArIDEpO1xuICAgICAgcmV0dXJuIHsgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsIG91dHB1dHM6IFtdIH07XG4gICAgfVxuXG4gICAgLy8gLS0tIEJhdGNoIC0tLVxuICAgIGNhc2UgJ3V0aWxpdHkuYmF0Y2gnOlxuICAgIGNhc2UgJ3V0aWxpdHkuYmF0Y2hBbGwnOlxuICAgICAgcmV0dXJuIGFuYWx5emVCYXRjaChhcmdzLCBzZW5kZXJBZGRyZXNzLCBtZXRhZGF0YUhleCwgZGVwdGgpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TZW5kLCBvdXRwdXRzOiBbXSB9O1xuICB9XG59XG5cbi8qKlxuICogQW5hbHl6ZSBhIGJhdGNoIHRyYW5zYWN0aW9uLlxuICpcbiAqIERldGVjdHMga25vd24gcHJveHkgYmF0Y2ggcGF0dGVybnMgKHN0YWtlOiBib25kK2FkZFByb3h5LCB1bnN0YWtlOlxuICogcmVtb3ZlUHJveHkrY2hpbGwrdW5ib25kKSBhbmQgaGFuZGxlcyBwcm94eSBkZXBvc2l0IGNvc3QuIEZvciB1bnJlY29nbml6ZWRcbiAqIGJhdGNoIHBhdHRlcm5zLCByZWN1cnNpdmVseSBleHRyYWN0cyBvdXRwdXRzIGZyb20gZWFjaCBpbm5lciBjYWxsLlxuICovXG5mdW5jdGlvbiBhbmFseXplQmF0Y2goXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBzZW5kZXJBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG1ldGFkYXRhSGV4OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGRlcHRoOiBudW1iZXJcbik6IE1ldGhvZEFuYWx5c2lzIHtcbiAgY29uc3QgY2FsbHMgPSAoYXJncy5jYWxscyA/PyBbXSkgYXMgUGFyc2VkTWV0aG9kW107XG4gIGlmIChjYWxscy5sZW5ndGggPT09IDApIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5CYXRjaCwgb3V0cHV0czogW10gfTtcblxuICBjb25zdCBjYWxsS2V5cyA9IGNhbGxzLm1hcCgoYykgPT4gYCR7Yy5wYWxsZXR9LiR7Yy5uYW1lfWApO1xuXG4gIC8vIFN0YWtpbmcgYmF0Y2g6IGJvbmQgKyBhZGRQcm94eSAoMiBjYWxscylcbiAgaWYgKGNhbGxzLmxlbmd0aCA9PT0gMiAmJiBjYWxsS2V5c1swXSA9PT0gJ3N0YWtpbmcuYm9uZCcgJiYgY2FsbEtleXNbMV0gPT09ICdwcm94eS5hZGRQcm94eScpIHtcbiAgICBjb25zdCBib25kQXJncyA9IChjYWxsc1swXS5hcmdzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBhZGRQcm94eUFyZ3MgPSAoY2FsbHNbMV0uYXJncyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgY29uc3QgYm9uZEFtb3VudCA9IEJpZ0ludCgoYm9uZEFyZ3MudmFsdWUgYXMgc3RyaW5nKSA/PyAnMCcpO1xuICAgIGNvbnN0IHByb3h5QWRkcmVzcyA9IFN0cmluZyhhZGRQcm94eUFyZ3MuZGVsZWdhdGUgPz8gJycpO1xuICAgIGNvbnN0IHByb3h5RGVwb3NpdENvc3QgPSBtZXRhZGF0YUhleCA/IGdldFByb3h5RGVwb3NpdENvc3QobWV0YWRhdGFIZXgpIDogMG47XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLkJhdGNoLFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7IGFkZHJlc3M6IFNUQUtJTkdfREVTVElOQVRJT04sIGFtb3VudDogYm9uZEFtb3VudCB9LFxuICAgICAgICB7IGFkZHJlc3M6IHByb3h5QWRkcmVzcywgYW1vdW50OiBwcm94eURlcG9zaXRDb3N0IH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvLyBVbnN0YWtpbmcgYmF0Y2g6IHJlbW92ZVByb3h5ICsgY2hpbGwgKyB1bmJvbmQgKDMgY2FsbHMpXG4gIC8vIElucHV0IHNvdXJjZSBpcyB0aGUgcHJveHkgYWRkcmVzcyAoZGVwb3NpdCByZWZ1bmQpLCBub3QgdGhlIHNlbmRlci5cbiAgaWYgKFxuICAgIGNhbGxzLmxlbmd0aCA9PT0gMyAmJlxuICAgIGNhbGxLZXlzWzBdID09PSAncHJveHkucmVtb3ZlUHJveHknICYmXG4gICAgY2FsbEtleXNbMV0gPT09ICdzdGFraW5nLmNoaWxsJyAmJlxuICAgIGNhbGxLZXlzWzJdID09PSAnc3Rha2luZy51bmJvbmQnXG4gICkge1xuICAgIGNvbnN0IHJlbW92ZVByb3h5QXJncyA9IChjYWxsc1swXS5hcmdzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBwcm94eUFkZHJlc3MgPSBTdHJpbmcocmVtb3ZlUHJveHlBcmdzLmRlbGVnYXRlID8/ICcnKTtcbiAgICBjb25zdCBwcm94eURlcG9zaXRDb3N0ID0gbWV0YWRhdGFIZXggPyBnZXRQcm94eURlcG9zaXRDb3N0KG1ldGFkYXRhSGV4KSA6IDBuO1xuXG4gICAgY29uc3Qgb3V0cHV0cyA9IHNlbmRlckFkZHJlc3MgPyBbeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzLCBhbW91bnQ6IHByb3h5RGVwb3NpdENvc3QgfV0gOiBbXTtcbiAgICBjb25zdCBpbnB1dHMgPSBbeyBhZGRyZXNzOiBwcm94eUFkZHJlc3MsIHZhbHVlOiBwcm94eURlcG9zaXRDb3N0IH1dO1xuXG4gICAgcmV0dXJuIHsgdHlwZTogVHJhbnNhY3Rpb25UeXBlLkJhdGNoLCBvdXRwdXRzLCBpbnB1dHMgfTtcbiAgfVxuXG4gIC8vIEdlbmVyaWMgYmF0Y2g6IHJlY3Vyc2l2ZWx5IGV4dHJhY3Qgb3V0cHV0cyBmcm9tIGVhY2ggaW5uZXIgY2FsbFxuICBpZiAoZGVwdGggPj0gTUFYX05FU1RJTkdfREVQVEgpIHJldHVybiB7IHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5CYXRjaCwgb3V0cHV0czogW10gfTtcbiAgY29uc3Qgb3V0cHV0cyA9IGNhbGxzXG4gICAgLmZpbHRlcigoYykgPT4gYz8ucGFsbGV0ICYmIGM/Lm5hbWUpXG4gICAgLmZsYXRNYXAoKGMpID0+IGFuYWx5emVNZXRob2RJbm5lcihjLCBzZW5kZXJBZGRyZXNzLCBtZXRhZGF0YUhleCwgZGVwdGggKyAxKS5vdXRwdXRzKTtcbiAgcmV0dXJuIHsgdHlwZTogVHJhbnNhY3Rpb25UeXBlLkJhdGNoLCBvdXRwdXRzIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBwb3B1bGF0ZVNlbmRGaWVsZHMocmVzdWx0OiBUeERhdGEsIG1ldGhvZDogUGFyc2VkTWV0aG9kLCBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICBjb25zdCBrZXkgPSBgJHttZXRob2QucGFsbGV0fS4ke21ldGhvZC5uYW1lfWA7XG5cbiAgaWYgKGtleSA9PT0gJ3Byb3h5LnByb3h5Jykge1xuICAgIC8vIFByb3h5LXdyYXBwZWQgdHJhbnNmZXJcbiAgICBjb25zdCBpbm5lckNhbGwgPSBhcmdzLmNhbGwgYXMgUGFyc2VkTWV0aG9kIHwgdW5kZWZpbmVkO1xuICAgIHJlc3VsdC5vd25lciA9IFN0cmluZyhhcmdzLnJlYWwgPz8gJycpO1xuICAgIHJlc3VsdC5mb3JjZVByb3h5VHlwZSA9IChhcmdzLmZvcmNlUHJveHlUeXBlIGFzIFByb3h5VHlwZSkgPz8gdW5kZWZpbmVkO1xuICAgIGlmIChpbm5lckNhbGw/LmFyZ3MpIHtcbiAgICAgIGNvbnN0IGlubmVyQXJncyA9IGlubmVyQ2FsbC5hcmdzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgcmVzdWx0LnRvID0gU3RyaW5nKGlubmVyQXJncy5kZXN0ID8/ICcnKTtcbiAgICAgIHJlc3VsdC5hbW91bnQgPSBTdHJpbmcoaW5uZXJBcmdzLnZhbHVlID8/ICcnKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoa2V5ID09PSAnYmFsYW5jZXMudHJhbnNmZXJBbGwnKSB7XG4gICAgcmVzdWx0LnRvID0gU3RyaW5nKGFyZ3MuZGVzdCA/PyAnJyk7XG4gICAgcmVzdWx0LmtlZXBBbGl2ZSA9IEJvb2xlYW4oYXJncy5rZWVwQWxpdmUpO1xuICB9IGVsc2Uge1xuICAgIC8vIHRyYW5zZmVyLCB0cmFuc2ZlcktlZXBBbGl2ZSwgdHJhbnNmZXJBbGxvd0RlYXRoXG4gICAgcmVzdWx0LnRvID0gU3RyaW5nKGFyZ3MuZGVzdCA/PyAnJyk7XG4gICAgcmVzdWx0LmFtb3VudCA9IFN0cmluZyhhcmdzLnZhbHVlID8/ICcnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3B1bGF0ZVN0YWtpbmdBY3RpdmF0ZUZpZWxkcyhcbiAgcmVzdWx0OiBUeERhdGEsXG4gIG1ldGhvZDogUGFyc2VkTWV0aG9kLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgc2VuZGVyQWRkcmVzczogc3RyaW5nXG4pOiB2b2lkIHtcbiAgaWYgKG1ldGhvZC5uYW1lID09PSAnYm9uZEV4dHJhJykge1xuICAgIHJlc3VsdC5hbW91bnQgPSBTdHJpbmcoYXJncy52YWx1ZSA/PyAnJyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gYm9uZFxuICAgIHJlc3VsdC5jb250cm9sbGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXN1bHQuYW1vdW50ID0gU3RyaW5nKGFyZ3MudmFsdWUgPz8gJycpO1xuICAgIHJlc3VsdC5wYXllZSA9IFN0cmluZyhhcmdzLnBheWVlID8/ICcnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3B1bGF0ZUFkZHJlc3NJbml0RmllbGRzKHJlc3VsdDogVHhEYXRhLCBtZXRob2Q6IFBhcnNlZE1ldGhvZCwgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgY29uc3Qga2V5ID0gYCR7bWV0aG9kLnBhbGxldH0uJHttZXRob2QubmFtZX1gO1xuICByZXN1bHQubWV0aG9kID0ga2V5O1xuICByZXN1bHQucHJveHlUeXBlID0gU3RyaW5nKGFyZ3MucHJveHlfdHlwZSA/PyAnJyk7XG4gIHJlc3VsdC5kZWxheSA9IFN0cmluZyhhcmdzLmRlbGF5ID8/ICcnKTtcblxuICBpZiAoa2V5ID09PSAncHJveHkuY3JlYXRlUHVyZScpIHtcbiAgICByZXN1bHQuaW5kZXggPSBTdHJpbmcoYXJncy5pbmRleCA/PyAnJyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gYWRkUHJveHksIHJlbW92ZVByb3h5XG4gICAgcmVzdWx0Lm93bmVyID0gU3RyaW5nKGFyZ3MuZGVsZWdhdGUgPz8gJycpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcEJhdGNoQ2FsbHMoY2FsbHM6IFBhcnNlZE1ldGhvZFtdIHwgdW5kZWZpbmVkKTogQmF0Y2hDYWxsT2JqZWN0W10ge1xuICBpZiAoIWNhbGxzKSByZXR1cm4gW107XG4gIHJldHVybiBjYWxscy5tYXAoKGNhbGwpID0+ICh7XG4gICAgY2FsbEluZGV4OiBgMHgke2NhbGwucGFsbGV0SW5kZXgudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyl9JHtjYWxsLm1ldGhvZEluZGV4LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpfWAsXG4gICAgYXJnczogdHJhbnNmb3JtQmF0Y2hDYWxsQXJncygoY2FsbC5hcmdzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gIH0pKTtcbn1cblxuLyoqIFRyYW5zZm9ybSBXQVNNLWRlY29kZWQgYmF0Y2ggY2FsbCBhcmdzIHRvIG1hdGNoIHRoZSBQb2xrYWRvdC5qcyBmb3JtYXQgdGhhdCBjb25zdW1lcnMgZXhwZWN0ICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1CYXRjaENhbGxBcmdzKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3MpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2RlbGVnYXRlJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBNdWx0aUFkZHJlc3MgSWQgdmFyaWFudDogc3RyaW5nIC0+IHsgaWQ6IHN0cmluZyB9XG4gICAgICByZXN1bHRba2V5XSA9IHsgaWQ6IHZhbHVlIH07XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICd2YWx1ZScgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ29tcGFjdCB1MTI4OiBzdHJpbmcgLT4gbnVtYmVyIChtYXRjaGVzIFBvbGthZG90LmpzIGJlaGF2aW9yKVxuICAgICAgcmVzdWx0W2tleV0gPSBOdW1iZXIodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncGF5ZWUnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEVudW0gdW5pdCB2YXJpYW50OiBcIlN0YWtlZFwiIC0+IHsgc3Rha2VkOiBudWxsIH1cbiAgICAgIGNvbnN0IHZhcmlhbnROYW1lID0gdmFsdWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKTtcbiAgICAgIHJlc3VsdFtrZXldID0geyBbdmFyaWFudE5hbWVdOiBudWxsIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdrawUnstakedBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/withdrawUnstakedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIxG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAM1C,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAarF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAWjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WithdrawUnstakedBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const iface_1 = require("./iface");
11
+ const transactionBuilder_1 = require("./transactionBuilder");
12
+ const txnSchema_1 = require("./txnSchema");
13
+ class WithdrawUnstakedBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ }
17
+ /**
18
+ *
19
+ * Frees up any unlocked chunks.
20
+ * The balance can now be used by the stash account to do whatever it wants.
21
+ *
22
+ * @returns {UnsignedTransaction} an unsigned Dot transaction
23
+ *
24
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32
25
+ */
26
+ buildTransaction() {
27
+ const baseTxInfo = this.createBaseTxInfo();
28
+ // TODO: The method changes the args type from number to string, verify it doesn't break anything
29
+ return txwrapper_polkadot_1.methods.staking.withdrawUnbonded({
30
+ numSlashingSpans: this._numSlashingSpans,
31
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
32
+ }
33
+ get transactionType() {
34
+ return sdk_core_1.TransactionType.StakingWithdraw;
35
+ }
36
+ /**
37
+ *
38
+ * The number of slashing spans.
39
+ *
40
+ * @param {number} slashingSpans
41
+ * @returns {WithdrawUnstakedBuilder} This withdrawUnstaked builder.
42
+ *
43
+ * @see https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32
44
+ */
45
+ slashingSpans(slashingSpans) {
46
+ this.validateValue(new bignumber_js_1.default(slashingSpans));
47
+ this._numSlashingSpans = slashingSpans;
48
+ return this;
49
+ }
50
+ /** @inheritdoc */
51
+ validateDecodedTransaction(decodedTxn) {
52
+ if (decodedTxn.method?.name === iface_1.MethodNames.WithdrawUnbonded) {
53
+ const txMethod = decodedTxn.method.args;
54
+ const value = txMethod.numSlashingSpans;
55
+ const validationResult = txnSchema_1.WithdrawUnstakedTransactionSchema.validate({ value });
56
+ if (validationResult.error) {
57
+ throw new sdk_core_1.InvalidTransactionError(`WithdrawUnstaked Transaction validation failed: ${validationResult.error.message}`);
58
+ }
59
+ }
60
+ }
61
+ /** @inheritdoc */
62
+ fromImplementation(rawTransaction) {
63
+ const tx = super.fromImplementation(rawTransaction);
64
+ if (this._method?.name === iface_1.MethodNames.WithdrawUnbonded) {
65
+ const txMethod = this._method.args;
66
+ this.slashingSpans(txMethod.numSlashingSpans);
67
+ }
68
+ else {
69
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected withdrawUnbonded`);
70
+ }
71
+ return tx;
72
+ }
73
+ /** @inheritdoc */
74
+ validateTransaction(_) {
75
+ super.validateTransaction(_);
76
+ this.validateFields(this._numSlashingSpans);
77
+ }
78
+ validateFields(value) {
79
+ const validationResult = txnSchema_1.WithdrawUnstakedTransactionSchema.validate({
80
+ value,
81
+ });
82
+ if (validationResult.error) {
83
+ throw new sdk_core_1.InvalidTransactionError(`WithdrawUnstaked Builder Transaction validation failed: ${validationResult.error.message}`);
84
+ }
85
+ }
86
+ }
87
+ exports.WithdrawUnstakedBuilder = WithdrawUnstakedBuilder;
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3dpdGhkcmF3VW5zdGFrZWRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUEyRTtBQUczRSxzRUFBd0Q7QUFDeEQsZ0VBQXFDO0FBQ3JDLG1DQUE0RDtBQUU1RCw2REFBMEQ7QUFDMUQsMkNBQWdFO0FBRWhFLE1BQWEsdUJBQXdCLFNBQVEsdUNBQWtCO0lBRzdELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxpR0FBaUc7UUFDakcsT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDckM7WUFDRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1NBQ3pDLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxhQUFhLENBQUMsYUFBcUI7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRDtRQUM1RSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLG1CQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQXVDLENBQUM7WUFDM0UsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsNkNBQWlDLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvRSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLG1EQUFtRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3BGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksS0FBSyxtQkFBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUE0QixDQUFDO1lBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2xILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsQ0FBYztRQUNoQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyw2Q0FBaUMsQ0FBQyxRQUFRLENBQUM7WUFDbEUsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGtDQUF1QixDQUMvQiwyREFBMkQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUM1RixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFGRCwwREEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IE1ldGhvZE5hbWVzLCBXaXRoZHJhd1Vuc3Rha2VkQXJncyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFdpdGhkcmF3VW5zdGFrZWRUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIFdpdGhkcmF3VW5zdGFrZWRCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9udW1TbGFzaGluZ1NwYW5zOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEZyZWVzIHVwIGFueSB1bmxvY2tlZCBjaHVua3MuXG4gICAqIFRoZSBiYWxhbmNlIGNhbiBub3cgYmUgdXNlZCBieSB0aGUgc3Rhc2ggYWNjb3VudCB0byBkbyB3aGF0ZXZlciBpdCB3YW50cy5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3dpdGhkcmF3dW5ib25kZWRudW1fc2xhc2hpbmdfc3BhbnMtdTMyXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgLy8gVE9ETzogVGhlIG1ldGhvZCBjaGFuZ2VzIHRoZSBhcmdzIHR5cGUgZnJvbSBudW1iZXIgdG8gc3RyaW5nLCB2ZXJpZnkgaXQgZG9lc24ndCBicmVhayBhbnl0aGluZ1xuICAgIHJldHVybiBtZXRob2RzLnN0YWtpbmcud2l0aGRyYXdVbmJvbmRlZChcbiAgICAgIHtcbiAgICAgICAgbnVtU2xhc2hpbmdTcGFuczogdGhpcy5fbnVtU2xhc2hpbmdTcGFucyxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNsYXNoaW5nIHNwYW5zLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2xhc2hpbmdTcGFuc1xuICAgKiBAcmV0dXJucyB7V2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXJ9IFRoaXMgd2l0aGRyYXdVbnN0YWtlZCBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3dpdGhkcmF3dW5ib25kZWRudW1fc2xhc2hpbmdfc3BhbnMtdTMyXG4gICAqL1xuICBzbGFzaGluZ1NwYW5zKHNsYXNoaW5nU3BhbnM6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHNsYXNoaW5nU3BhbnMpKTtcbiAgICB0aGlzLl9udW1TbGFzaGluZ1NwYW5zID0gc2xhc2hpbmdTcGFucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLldpdGhkcmF3VW5ib25kZWQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFdpdGhkcmF3VW5zdGFrZWRBcmdzO1xuICAgICAgY29uc3QgdmFsdWUgPSB0eE1ldGhvZC5udW1TbGFzaGluZ1NwYW5zO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFdpdGhkcmF3VW5zdGFrZWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHZhbHVlIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgIGBXaXRoZHJhd1Vuc3Rha2VkIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuV2l0aGRyYXdVbmJvbmRlZCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBXaXRoZHJhd1Vuc3Rha2VkQXJncztcbiAgICAgIHRoaXMuc2xhc2hpbmdTcGFucyh0eE1ldGhvZC5udW1TbGFzaGluZ1NwYW5zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgd2l0aGRyYXdVbmJvbmRlZGApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl9udW1TbGFzaGluZ1NwYW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHModmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBXaXRoZHJhd1Vuc3Rha2VkVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgdmFsdWUsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgV2l0aGRyYXdVbnN0YWtlZCBCdWlsZGVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const dot_1 = require("./dot");
5
+ const tdot_1 = require("./tdot");
6
+ const register = (sdk) => {
7
+ sdk.register('dot', dot_1.Dot.createInstance);
8
+ sdk.register('tdot', tdot_1.Tdot.createInstance);
9
+ };
10
+ exports.register = register;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUV2QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxRQUFRLFlBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IERvdCB9IGZyb20gJy4vZG90JztcbmltcG9ydCB7IFRkb3QgfSBmcm9tICcuL3Rkb3QnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdkb3QnLCBEb3QuY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3Rkb3QnLCBUZG90LmNyZWF0ZUluc3RhbmNlKTtcbn07XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -18,4 +18,4 @@ __exportStar(require("./mainnet"), exports);
18
18
  __exportStar(require("./westend"), exports);
19
19
  __exportStar(require("./polkadotAssetHub"), exports);
20
20
  __exportStar(require("./westendAssetHub"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLHFEQUFtQztBQUNuQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21haW5uZXQnO1xuZXhwb3J0ICogZnJvbSAnLi93ZXN0ZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vcG9sa2Fkb3RBc3NldEh1Yic7XG5leHBvcnQgKiBmcm9tICcuL3dlc3RlbmRBc3NldEh1Yic7XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLHFEQUFtQztBQUNuQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21haW5uZXQnO1xuZXhwb3J0ICogZnJvbSAnLi93ZXN0ZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vcG9sa2Fkb3RBc3NldEh1Yic7XG5leHBvcnQgKiBmcm9tICcuL3dlc3RlbmRBc3NldEh1Yic7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../../../src/resources/mainnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,2sjhBAC2qjhB,CAAC"}