@bitgo-beta/sdk-coin-sol 7.6.4-beta.31 → 7.6.4-beta.310

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 (395) hide show
  1. package/dist/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
  2. package/dist/cjs/src/bigint-buffer-guard.js +29 -0
  3. package/dist/cjs/src/config/token2022StaticConfig.d.ts.map +1 -0
  4. package/dist/cjs/src/config/token2022StaticConfig.js +50 -0
  5. package/dist/cjs/src/index.d.ts.map +1 -0
  6. package/dist/{src → cjs/src}/index.js +1 -1
  7. package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
  8. package/dist/cjs/src/lib/ataInitializationBuilder.js +196 -0
  9. package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
  10. package/dist/cjs/src/lib/closeAtaBuilder.js +69 -0
  11. package/dist/{src → cjs/src}/lib/constants.d.ts +24 -0
  12. package/dist/cjs/src/lib/constants.d.ts.map +1 -0
  13. package/dist/cjs/src/lib/constants.js +196 -0
  14. package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
  15. package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
  16. package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
  17. package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
  18. package/dist/cjs/src/lib/explainTransactionWasm.js +264 -0
  19. package/dist/{src → cjs/src}/lib/iface.d.ts +20 -2
  20. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  21. package/dist/cjs/src/lib/iface.js +7 -0
  22. package/dist/{src → cjs/src}/lib/index.d.ts +1 -0
  23. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  24. package/dist/{src → cjs/src}/lib/index.js +4 -2
  25. package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +1 -0
  26. package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
  27. package/dist/cjs/src/lib/instructionParamsFactory.js +1059 -0
  28. package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
  29. package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
  30. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  31. package/dist/cjs/src/lib/keyPair.js +63 -0
  32. package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
  33. package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
  34. package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  35. package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
  36. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
  37. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  38. package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
  39. package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
  40. package/dist/cjs/src/lib/solInstructionFactory.js +595 -0
  41. package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  42. package/dist/cjs/src/lib/stakingActivateBuilder.js +120 -0
  43. package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  44. package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
  45. package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  46. package/dist/cjs/src/lib/stakingDeactivateBuilder.js +208 -0
  47. package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  48. package/dist/cjs/src/lib/stakingDelegateBuilder.js +120 -0
  49. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  50. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  51. package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  52. package/dist/cjs/src/lib/stakingWithdrawBuilder.js +78 -0
  53. package/dist/cjs/src/lib/token2022Config.d.ts.map +1 -0
  54. package/dist/cjs/src/lib/token2022Config.js +27 -0
  55. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  56. package/dist/cjs/src/lib/tokenTransferBuilder.js +188 -0
  57. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  58. package/dist/cjs/src/lib/transaction.js +612 -0
  59. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  60. package/dist/cjs/src/lib/transactionBuilder.js +380 -0
  61. package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +5 -0
  62. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  63. package/dist/cjs/src/lib/transactionBuilderFactory.js +209 -0
  64. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  65. package/dist/cjs/src/lib/transferBuilder.js +70 -0
  66. package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
  67. package/dist/cjs/src/lib/transferBuilderV2.js +210 -0
  68. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  69. package/dist/cjs/src/lib/utils.js +595 -0
  70. package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  71. package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
  72. package/dist/cjs/src/register.d.ts.map +1 -0
  73. package/dist/cjs/src/register.js +15 -0
  74. package/dist/{src → cjs/src}/sol.d.ts +40 -0
  75. package/dist/cjs/src/sol.d.ts.map +1 -0
  76. package/dist/cjs/src/sol.js +1402 -0
  77. package/dist/cjs/src/solToken.d.ts.map +1 -0
  78. package/dist/cjs/src/solToken.js +69 -0
  79. package/dist/cjs/src/tsol.d.ts.map +1 -0
  80. package/dist/cjs/src/tsol.js +24 -0
  81. package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
  82. package/dist/cjs/test/fixtures/sol.js +1433 -0
  83. package/dist/{test → cjs/test}/resources/sol.d.ts +27 -27
  84. package/dist/cjs/test/resources/sol.d.ts.map +1 -0
  85. package/dist/cjs/test/resources/sol.js +320 -0
  86. package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
  87. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  88. package/dist/cjs/test/unit/explainTransactionWasm.js +26 -0
  89. package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  90. package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
  91. package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
  92. package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
  93. package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
  94. package/dist/cjs/test/unit/instructionParamsFactory.js +412 -0
  95. package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  96. package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
  97. package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
  98. package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
  99. package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
  100. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  101. package/dist/cjs/test/unit/keyPair.js +177 -0
  102. package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  103. package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
  104. package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  105. package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
  106. package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
  107. package/dist/cjs/test/unit/sol.js +3326 -0
  108. package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
  109. package/dist/cjs/test/unit/solInstructionFactory.js +454 -0
  110. package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
  111. package/dist/cjs/test/unit/solToken.js +31 -0
  112. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  113. package/dist/cjs/test/unit/transaction.js +1108 -0
  114. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  115. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  116. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  117. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
  118. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  119. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
  120. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  121. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  122. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  123. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  124. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  125. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  126. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  127. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  128. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  129. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  130. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  131. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
  132. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  133. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  134. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  135. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +286 -0
  136. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  137. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
  138. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  139. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  140. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  141. package/dist/cjs/test/unit/utils.js +517 -0
  142. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  143. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  144. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  145. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  146. package/dist/esm/config/token2022StaticConfig.d.ts +3 -0
  147. package/dist/esm/config/token2022StaticConfig.js +47 -0
  148. package/dist/esm/index.d.ts +7 -0
  149. package/dist/esm/index.js +7 -0
  150. package/dist/esm/lib/ataInitializationBuilder.d.ts +47 -0
  151. package/dist/esm/lib/ataInitializationBuilder.js +156 -0
  152. package/dist/esm/lib/closeAtaBuilder.d.ts +19 -0
  153. package/dist/esm/lib/closeAtaBuilder.js +62 -0
  154. package/dist/esm/lib/constants.d.ts +164 -0
  155. package/dist/esm/lib/constants.d.ts.map +1 -0
  156. package/dist/esm/lib/constants.js +193 -0
  157. package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
  158. package/dist/esm/lib/customInstructionBuilder.js +282 -0
  159. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  160. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  161. package/dist/esm/lib/explainTransactionWasm.js +261 -0
  162. package/dist/esm/lib/iface.d.ts +262 -0
  163. package/dist/esm/lib/iface.d.ts.map +1 -0
  164. package/dist/esm/lib/iface.js +3 -0
  165. package/dist/esm/lib/index.d.ts +23 -0
  166. package/dist/{src → esm}/lib/index.d.ts.map +1 -1
  167. package/dist/esm/lib/index.js +23 -0
  168. package/dist/esm/lib/instructionParamsFactory.d.ts +13 -0
  169. package/dist/{src → esm}/lib/instructionParamsFactory.d.ts.map +1 -1
  170. package/dist/esm/lib/instructionParamsFactory.js +1052 -0
  171. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  172. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  173. package/dist/esm/lib/keyPair.d.ts +26 -0
  174. package/dist/esm/lib/keyPair.js +59 -0
  175. package/dist/esm/lib/messages/index.d.ts +2 -0
  176. package/dist/esm/lib/messages/index.js +2 -0
  177. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  178. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  179. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  180. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  181. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  182. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  183. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  184. package/dist/esm/lib/solInstructionFactory.js +589 -0
  185. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  186. package/dist/esm/lib/stakingActivateBuilder.js +113 -0
  187. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  188. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  189. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  190. package/dist/{src → esm}/lib/stakingDeactivateBuilder.js +31 -38
  191. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  192. package/dist/esm/lib/stakingDelegateBuilder.js +113 -0
  193. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  194. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  195. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  196. package/dist/esm/lib/stakingWithdrawBuilder.js +71 -0
  197. package/dist/esm/lib/token2022Config.d.ts +44 -0
  198. package/dist/esm/lib/token2022Config.js +23 -0
  199. package/dist/esm/lib/tokenTransferBuilder.d.ts +41 -0
  200. package/dist/esm/lib/tokenTransferBuilder.js +181 -0
  201. package/dist/esm/lib/transaction.d.ts +103 -0
  202. package/dist/esm/lib/transaction.d.ts.map +1 -0
  203. package/dist/esm/lib/transaction.js +605 -0
  204. package/dist/esm/lib/transactionBuilder.d.ts +128 -0
  205. package/dist/esm/lib/transactionBuilder.js +373 -0
  206. package/dist/esm/lib/transactionBuilderFactory.d.ts +120 -0
  207. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  208. package/dist/esm/lib/transactionBuilderFactory.js +205 -0
  209. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  210. package/dist/esm/lib/transferBuilder.js +63 -0
  211. package/dist/esm/lib/transferBuilderV2.d.ts +43 -0
  212. package/dist/esm/lib/transferBuilderV2.js +203 -0
  213. package/dist/esm/lib/utils.d.ts +200 -0
  214. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  215. package/dist/esm/lib/utils.js +558 -0
  216. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  217. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  218. package/dist/esm/register.d.ts +3 -0
  219. package/dist/esm/register.js +11 -0
  220. package/dist/esm/sol.d.ts +267 -0
  221. package/dist/esm/sol.d.ts.map +1 -0
  222. package/dist/esm/sol.js +1361 -0
  223. package/dist/esm/solToken.d.ts +37 -0
  224. package/dist/esm/solToken.js +65 -0
  225. package/dist/esm/tsol.d.ts +11 -0
  226. package/dist/esm/tsol.js +20 -0
  227. package/package.json +34 -15
  228. package/dist/src/config/token2022StaticConfig.js +0 -50
  229. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  230. package/dist/src/lib/closeAtaBuilder.js +0 -69
  231. package/dist/src/lib/constants.d.ts.map +0 -1
  232. package/dist/src/lib/constants.js +0 -171
  233. package/dist/src/lib/customInstructionBuilder.js +0 -289
  234. package/dist/src/lib/iface.d.ts.map +0 -1
  235. package/dist/src/lib/iface.js +0 -7
  236. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  237. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  238. package/dist/src/lib/keyPair.js +0 -63
  239. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  240. package/dist/src/lib/solInstructionFactory.js +0 -572
  241. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  242. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  243. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  244. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  245. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  246. package/dist/src/lib/token2022Config.js +0 -27
  247. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  248. package/dist/src/lib/transaction.d.ts.map +0 -1
  249. package/dist/src/lib/transaction.js +0 -595
  250. package/dist/src/lib/transactionBuilder.js +0 -380
  251. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  252. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  253. package/dist/src/lib/transferBuilder.js +0 -70
  254. package/dist/src/lib/transferBuilderV2.js +0 -210
  255. package/dist/src/lib/utils.js +0 -589
  256. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  257. package/dist/src/register.js +0 -15
  258. package/dist/src/sol.d.ts.map +0 -1
  259. package/dist/src/sol.js +0 -1285
  260. package/dist/src/solToken.js +0 -69
  261. package/dist/src/tsol.js +0 -24
  262. package/dist/test/fixtures/sol.js +0 -1433
  263. package/dist/test/resources/sol.d.ts.map +0 -1
  264. package/dist/test/resources/sol.js +0 -320
  265. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  266. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  267. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  268. package/dist/test/unit/getBuilderFactory.js +0 -10
  269. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  270. package/dist/test/unit/instructionParamsFactory.js +0 -412
  271. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  272. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  273. package/dist/test/unit/keyPair.js +0 -177
  274. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  275. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  276. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  277. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  278. package/dist/test/unit/sol.js +0 -3108
  279. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  280. package/dist/test/unit/solInstructionFactory.js +0 -454
  281. package/dist/test/unit/solToken.d.ts.map +0 -1
  282. package/dist/test/unit/solToken.js +0 -31
  283. package/dist/test/unit/transaction.d.ts.map +0 -1
  284. package/dist/test/unit/transaction.js +0 -983
  285. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  286. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  287. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  288. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  289. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  290. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  291. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  292. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  293. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  294. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  295. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  296. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  297. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  298. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  299. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  300. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  301. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  302. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  303. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  304. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  305. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  306. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  307. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  308. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  309. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  310. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  311. package/dist/test/unit/utils.js +0 -517
  312. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  313. package/dist/test/unit/versionedTransaction.js +0 -207
  314. package/dist/tsconfig.tsbuildinfo +0 -1
  315. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  316. /package/dist/{src → cjs/src}/config/token2022StaticConfig.d.ts +0 -0
  317. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  318. /package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +0 -0
  319. /package/dist/{src → cjs/src}/lib/closeAtaBuilder.d.ts +0 -0
  320. /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
  321. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  322. /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
  323. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  324. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  325. /package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +0 -0
  326. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  327. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  328. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  329. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  330. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  331. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  332. /package/dist/{src → cjs/src}/lib/token2022Config.d.ts +0 -0
  333. /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
  334. /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
  335. /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
  336. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  337. /package/dist/{src → cjs/src}/lib/transferBuilderV2.d.ts +0 -0
  338. /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
  339. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  340. /package/dist/{src → cjs/src}/register.d.ts +0 -0
  341. /package/dist/{src → cjs/src}/solToken.d.ts +0 -0
  342. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  343. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  344. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  345. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  346. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  347. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  348. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  349. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  350. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  351. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  352. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  353. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  354. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  355. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  356. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  357. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  358. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  359. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  360. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  361. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  362. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  363. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  364. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  365. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  366. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  367. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  368. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  369. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  370. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  371. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  372. /package/dist/{src → esm}/config/token2022StaticConfig.d.ts.map +0 -0
  373. /package/dist/{src → esm}/index.d.ts.map +0 -0
  374. /package/dist/{src → esm}/lib/ataInitializationBuilder.d.ts.map +0 -0
  375. /package/dist/{src → esm}/lib/closeAtaBuilder.d.ts.map +0 -0
  376. /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
  377. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  378. /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
  379. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  380. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  381. /package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +0 -0
  382. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  383. /package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +0 -0
  384. /package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +0 -0
  385. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  386. /package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +0 -0
  387. /package/dist/{src → esm}/lib/token2022Config.d.ts.map +0 -0
  388. /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
  389. /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
  390. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  391. /package/dist/{src → esm}/lib/transferBuilderV2.d.ts.map +0 -0
  392. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  393. /package/dist/{src → esm}/register.d.ts.map +0 -0
  394. /package/dist/{src → esm}/solToken.d.ts.map +0 -0
  395. /package/dist/{src → esm}/tsol.d.ts.map +0 -0
@@ -1,34 +1,28 @@
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.StakingDeactivateBuilder = void 0;
7
- const public_types_1 = require("@bitgo/public-types");
8
- const assert_1 = __importDefault(require("assert"));
9
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
- const constants_1 = require("./constants");
11
- const transactionBuilder_1 = require("./transactionBuilder");
12
- const utils_1 = require("./utils");
13
- class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
1
+ import { SolStakingTypeEnum } from '@bitgo/public-types';
2
+ import assert from 'assert';
3
+ import { BuildTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { InstructionBuilderTypes, STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT } from './constants';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { isValidStakingAmount, validateAddress } from './utils';
7
+ export class StakingDeactivateBuilder extends TransactionBuilder {
14
8
  constructor(_coinConfig) {
15
9
  super(_coinConfig);
16
- this._stakingType = public_types_1.SolStakingTypeEnum.NATIVE;
10
+ this._stakingType = SolStakingTypeEnum.NATIVE;
17
11
  }
18
12
  get transactionType() {
19
- return sdk_core_1.TransactionType.StakingDeactivate;
13
+ return TransactionType.StakingDeactivate;
20
14
  }
21
15
  /** @inheritdoc */
22
16
  initBuilder(tx) {
23
17
  super.initBuilder(tx);
24
18
  const stakingAddresses = [];
25
19
  for (const instruction of this._instructionsData) {
26
- if (instruction.type === constants_1.InstructionBuilderTypes.StakingDeactivate) {
20
+ if (instruction.type === InstructionBuilderTypes.StakingDeactivate) {
27
21
  const deactivateInstruction = instruction;
28
22
  // Since _stakingAddresses needs to be populated, it gets special treatment.
29
23
  stakingAddresses.push(deactivateInstruction.params.stakingAddress);
30
24
  // Marinade staking also cares about sender.
31
- if (deactivateInstruction.params.stakingType !== public_types_1.SolStakingTypeEnum.MARINADE) {
25
+ if (deactivateInstruction.params.stakingType !== SolStakingTypeEnum.MARINADE) {
32
26
  this.sender(deactivateInstruction.params.fromAddress);
33
27
  }
34
28
  // The other values can just be copied.
@@ -53,7 +47,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
53
47
  this.stakingAddresses(stakingAddresses);
54
48
  }
55
49
  else {
56
- if (this._stakingType !== public_types_1.SolStakingTypeEnum.MARINADE) {
50
+ if (this._stakingType !== SolStakingTypeEnum.MARINADE) {
57
51
  this.stakingAddress(stakingAddresses[0]);
58
52
  }
59
53
  }
@@ -67,7 +61,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
67
61
  * @see https://docs.solana.com/staking/stake-accounts#account-address
68
62
  */
69
63
  stakingAddress(stakingAddress) {
70
- (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
64
+ validateAddress(stakingAddress, 'stakingAddress');
71
65
  this._stakingAddress = stakingAddress;
72
66
  return this;
73
67
  }
@@ -81,7 +75,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
81
75
  */
82
76
  stakingAddresses(stakingAddresses) {
83
77
  for (const stakingAddress of stakingAddresses) {
84
- (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
78
+ validateAddress(stakingAddress, 'stakingAddress');
85
79
  }
86
80
  this._stakingAddresses = stakingAddresses;
87
81
  return this;
@@ -96,8 +90,8 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
96
90
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
97
91
  */
98
92
  amount(amount) {
99
- if (!(0, utils_1.isValidStakingAmount)(amount)) {
100
- throw new sdk_core_1.BuildTransactionError('If given, amount cannot be zero or less');
93
+ if (!isValidStakingAmount(amount)) {
94
+ throw new BuildTransactionError('If given, amount cannot be zero or less');
101
95
  }
102
96
  this._amount = amount;
103
97
  return this;
@@ -122,7 +116,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
122
116
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
123
117
  */
124
118
  unstakingAddress(unstakingAddress) {
125
- (0, utils_1.validateAddress)(unstakingAddress, 'unstakingAddress');
119
+ validateAddress(unstakingAddress, 'unstakingAddress');
126
120
  this._unstakingAddress = unstakingAddress;
127
121
  return this;
128
122
  }
@@ -148,47 +142,47 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
148
142
  }
149
143
  /** @inheritdoc */
150
144
  async buildImplementation() {
151
- (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
145
+ assert(this._sender, 'Sender must be set before building the transaction');
152
146
  if (this._stakingAddresses && this._stakingAddresses.length > 0) {
153
147
  this._instructionsData = [];
154
148
  for (const stakingAddress of this._stakingAddresses) {
155
149
  const stakingDeactivateData = {
156
- type: constants_1.InstructionBuilderTypes.StakingDeactivate,
150
+ type: InstructionBuilderTypes.StakingDeactivate,
157
151
  params: {
158
152
  fromAddress: this._sender,
159
153
  stakingAddress: stakingAddress,
160
- stakingType: public_types_1.SolStakingTypeEnum.NATIVE,
154
+ stakingType: SolStakingTypeEnum.NATIVE,
161
155
  },
162
156
  };
163
157
  this._instructionsData.push(stakingDeactivateData);
164
158
  }
165
159
  }
166
160
  else {
167
- if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE) {
161
+ if (this._stakingType === SolStakingTypeEnum.NATIVE) {
168
162
  // we don't need stakingAddress in marinade staking deactivate txn
169
- (0, assert_1.default)(this._stakingAddress, 'Staking address must be set before building the transaction');
163
+ assert(this._stakingAddress, 'Staking address must be set before building the transaction');
170
164
  }
171
165
  if (this._sender === this._stakingAddress) {
172
- throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
166
+ throw new BuildTransactionError('Sender address cannot be the same as the Staking address');
173
167
  }
174
- if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE && this._amount) {
175
- (0, assert_1.default)(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
168
+ if (this._stakingType === SolStakingTypeEnum.NATIVE && this._amount) {
169
+ assert(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
176
170
  }
177
171
  this._instructionsData = [];
178
- if (this._stakingType === public_types_1.SolStakingTypeEnum.NATIVE && this._unstakingAddress) {
179
- (0, assert_1.default)(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
172
+ if (this._stakingType === SolStakingTypeEnum.NATIVE && this._unstakingAddress) {
173
+ assert(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
180
174
  const stakingFundUnstakeAddress = {
181
- type: constants_1.InstructionBuilderTypes.Transfer,
175
+ type: InstructionBuilderTypes.Transfer,
182
176
  params: {
183
177
  fromAddress: this._sender,
184
- amount: constants_1.STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(),
178
+ amount: STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(),
185
179
  toAddress: this._unstakingAddress,
186
180
  },
187
181
  };
188
182
  this._instructionsData.push(stakingFundUnstakeAddress);
189
183
  }
190
184
  const stakingDeactivateData = {
191
- type: constants_1.InstructionBuilderTypes.StakingDeactivate,
185
+ type: InstructionBuilderTypes.StakingDeactivate,
192
186
  params: {
193
187
  fromAddress: this._sender,
194
188
  stakingAddress: this._stakingAddress,
@@ -204,5 +198,4 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
204
198
  return await super.buildImplementation();
205
199
  }
206
200
  }
207
- exports.StakingDeactivateBuilder = StakingDeactivateBuilder;
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0RBQXlEO0FBRXpELG9EQUE0QjtBQUU1QixtREFBeUY7QUFDekYsMkNBQXdGO0FBR3hGLDZEQUEwRDtBQUMxRCxtQ0FBZ0U7QUFFaEUsTUFBYSx3QkFBeUIsU0FBUSx1Q0FBa0I7SUFTOUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFKWCxpQkFBWSxHQUF1QixpQ0FBa0IsQ0FBQyxNQUFNLENBQUM7SUFLdkUsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ25FLE1BQU0scUJBQXFCLEdBQXNCLFdBQVcsQ0FBQztnQkFDN0QsNEVBQTRFO2dCQUM1RSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUVuRSw0Q0FBNEM7Z0JBQzVDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxpQ0FBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENB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SUFBSSxDQUFDLGlCQUFpQjtvQkFDeEMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDL0I7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBOU5ELDREQThOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbFN0YWtpbmdUeXBlRW51bSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMsIFNUQUtFX0FDQ09VTlRfUkVOVF9FWEVNUFRfQU1PVU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGUsIFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMsIFRyYW5zZmVyIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgaXNWYWxpZFN0YWtpbmdBbW91bnQsIHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgX2Ftb3VudD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF91bnN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIHByb3RlY3RlZCBfc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSA9IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkU7XG4gIHByb3RlY3RlZCBfZXh0cmFQYXJhbXM/OiBTdGFraW5nRGVhY3RpdmF0ZUV4dHJhUGFyYW1zO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3Qgc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZSkge1xuICAgICAgICBjb25zdCBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdEZWFjdGl2YXRlID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIC8vIFNpbmNlIF9zdGFraW5nQWRkcmVzc2VzIG5lZWRzIHRvIGJlIHBvcHVsYXRlZCwgaXQgZ2V0cyBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgICAgc3Rha2luZ0FkZHJlc3Nlcy5wdXNoKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuXG4gICAgICAgIC8vIE1hcmluYWRlIHN0YWtpbmcgYWxzbyBjYXJlcyBhYm91dCBzZW5kZXIuXG4gICAgICAgIGlmIChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlICE9PSBTb2xTdGFraW5nVHlwZUVudW0uTUFSSU5BREUpIHtcbiAgICAgICAgICB0aGlzLnNlbmRlcihkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmZyb21BZGRyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBvdGhlciB2YWx1ZXMgY2FuIGp1c3QgYmUgY29waWVkLlxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuYW1vdW50KGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuYW1vdW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnVuc3Rha2luZ0FkZHJlc3MoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwaWVudHMoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5zdGFraW5nVHlwZShkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5leHRyYVBhcmFtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5leHRyYVBhcmFtcyhkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmV4dHJhUGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSAhPT0gU29sU3Rha2luZ1R5cGVFbnVtLk1BUklOQURFKSB7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3Nlc1swXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFraW5nIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnRcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlYWN0aXZhdGUgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3Rha2luZyBhZGRyZXNzZXMgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gc3Rha2luZ0FkZHJlc3NlcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50c1xuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVhY3RpdmF0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzc2VzKHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiBzdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzc2VzID0gc3Rha2luZ0FkZHJlc3NlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhbW91bnQgdG8gdW5zdGFrZSBleHByZXNzZWQgaW4gTGFtcG9ydHMsIDEgU09MID0gMV8wMDBfMDAwXzAwMCBsYW1wb3J0cywgdG8gYmUgdXNlZFxuICAgKiB3aGVuIHBhcnRpYWxseSB1bnN0YWtpbmcuIElmIG5vdCBnaXZlbiB0aGVuIHRoZSBlbnRpcmUgc3Rha2VkIGFtb3VudCB3aWxsIGJlIHVuc3Rha2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IFRoZSBwYXJ0aWFsIGFtb3VudCB0byB1bnN0YWtlLCBleHByZXNzZWQgaW4gTGFtcG9ydHMuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2NsaS9kZWxlZ2F0ZS1zdGFrZSNzcGxpdC1zdGFrZVxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkU3Rha2luZ0Ftb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJZiBnaXZlbiwgYW1vdW50IGNhbm5vdCBiZSB6ZXJvIG9yIGxlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHRlciB0byBzZXQgdGhlIHJlY2lwaWVudHMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSByZWNpcGllbnRzIFJlY2lwaWVudEVudHJ5W10gLSBUaGUgcmVjaXBpZW50cyBvYmplY3RcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICByZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IHJlY2lwaWVudHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIG1vdmUgdGhlIGFtb3VudCB0byB1bnN0YWtlIHRvIHRoaXMgYWNjb3VudCBhbmQgaW5pdGlhdGUgdGhlXG4gICAqIHVuc3Rha2UgcHJvY2Vzcy4gVGhlIG9yaWdpbmFsIHN0YWtlIGFjY291bnQgd2lsbCBjb250aW51ZSBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5zdGFraW5nQWRkcmVzcyBBbiBhY2NvdW50IHVzZWQgdG8gdW5zdGFrZSBhIHBhcnRpYWwgYW1vdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIHVuc3Rha2luZ0FkZHJlc3ModW5zdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHVuc3Rha2luZ0FkZHJlc3MsICd1bnN0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyA9IHVuc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YWtpbmcgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtTb2xTdGFraW5nVHlwZX0gc3Rha2luZ1R5cGUgYSBzdGFraW5nIHR5cGUuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKi9cbiAgc3Rha2luZ1R5cGUoc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSk6IHRoaXMge1xuICAgIHRoaXMuX3N0YWtpbmdUeXBlID0gc3Rha2luZ1R5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gYSBzdGFraW5nIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ0RlYWN0aXZhdGVFeHRyYVBhcmFtc30gZXh0cmFQYXJhbXMgcGFyYW1ldGVycyBzcGVjaWZpYyB0byBhIHN0YWtpbmcgdHlwZS5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBleHRyYVBhcmFtcyhleHRyYVBhcmFtcz86IFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLl9leHRyYVBhcmFtcyA9IGV4dHJhUGFyYW1zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9zdGFraW5nQWRkcmVzc2VzICYmIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgICAgc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdEZWFjdGl2YXRlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSA9PT0gU29sU3Rha2luZ1R5cGVFbnVtLk5BVElWRSkge1xuICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHN0YWtpbmdBZGRyZXNzIGluIG1hcmluYWRlIHN0YWtpbmcgZGVhY3RpdmF0ZSB0eG5cbiAgICAgICAgYXNzZXJ0KHRoaXMuX3N0YWtpbmdBZGRyZXNzLCAnU3Rha2luZyBhZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3N0YWtpbmdUeXBlID09PSBTb2xTdGFraW5nVHlwZUVudW0uTkFUSVZFICYmIHRoaXMuX2Ftb3VudCkge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICAnV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIHRoZSB1bnN0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgICBpZiAodGhpcy5fc3Rha2luZ1R5cGUgPT09IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUgJiYgdGhpcy5fdW5zdGFraW5nQWRkcmVzcykge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgICdJZiBhbiB1bnN0YWtpbmcgYWRkcmVzcyBpcyBnaXZlbiB0aGVuIGEgcGFydGlhbCBhbW91bnQgdG8gdW5zdGFrZSBtdXN0IGFsc28gYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdGdW5kVW5zdGFrZUFkZHJlc3M6IFRyYW5zZmVyID0ge1xuICAgICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIGFtb3VudDogU1RBS0VfQUNDT1VOVF9SRU5UX0VYRU1QVF9BTU9VTlQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0Z1bmRVbnN0YWtlQWRkcmVzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgICB1bnN0YWtpbmdBZGRyZXNzOiB0aGlzLl91bnN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgIHJlY2lwaWVudHM6IHRoaXMuX3JlY2lwaWVudHMsXG4gICAgICAgICAgc3Rha2luZ1R5cGU6IHRoaXMuX3N0YWtpbmdUeXBlLFxuICAgICAgICAgIGV4dHJhUGFyYW1zOiB0aGlzLl9leHRyYVBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0RlYWN0aXZhdGVEYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBYSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsa0JBQWtCO0lBUzlELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSlgsaUJBQVksR0FBdUIsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0lBS3ZFLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLHVCQUF1QixDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ25FLE1BQU0scUJBQXFCLEdBQXNCLFdBQVcsQ0FBQztnQkFDN0QsNEVBQTRFO2dCQUM1RSxn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SSxFQUFFLHVCQUF1QixDQUFDLGlCQUFpQjtnQkFDL0MsTUFBTSxFQUFFO29CQUNOLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO29CQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ3BCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDNUIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUM5QixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQy9CO2FBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbFN0YWtpbmdUeXBlRW51bSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMsIFNUQUtFX0FDQ09VTlRfUkVOVF9FWEVNUFRfQU1PVU5UIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGUsIFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMsIFRyYW5zZmVyIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgaXNWYWxpZFN0YWtpbmdBbW91bnQsIHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgX2Ftb3VudD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF91bnN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gIHByb3RlY3RlZCBfc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSA9IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkU7XG4gIHByb3RlY3RlZCBfZXh0cmFQYXJhbXM/OiBTdGFraW5nRGVhY3RpdmF0ZUV4dHJhUGFyYW1zO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgY29uc3Qgc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZSkge1xuICAgICAgICBjb25zdCBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdEZWFjdGl2YXRlID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIC8vIFNpbmNlIF9zdGFraW5nQWRkcmVzc2VzIG5lZWRzIHRvIGJlIHBvcHVsYXRlZCwgaXQgZ2V0cyBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgICAgc3Rha2luZ0FkZHJlc3Nlcy5wdXNoKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuXG4gICAgICAgIC8vIE1hcmluYWRlIHN0YWtpbmcgYWxzbyBjYXJlcyBhYm91dCBzZW5kZXIuXG4gICAgICAgIGlmIChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlICE9PSBTb2xTdGFraW5nVHlwZUVudW0uTUFSSU5BREUpIHtcbiAgICAgICAgICB0aGlzLnNlbmRlcihkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmZyb21BZGRyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBvdGhlciB2YWx1ZXMgY2FuIGp1c3QgYmUgY29waWVkLlxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuYW1vdW50KGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuYW1vdW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnVuc3Rha2luZ0FkZHJlc3MoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwaWVudHMoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5yZWNpcGllbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5zdGFraW5nVHlwZShkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnN0YWtpbmdUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5leHRyYVBhcmFtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5leHRyYVBhcmFtcyhkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmV4dHJhUGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSAhPT0gU29sU3Rha2luZ1R5cGVFbnVtLk1BUklOQURFKSB7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3Nlc1swXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFraW5nIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnRcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlYWN0aXZhdGUgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3Rha2luZyBhZGRyZXNzZXMgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gc3Rha2luZ0FkZHJlc3NlcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50c1xuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVhY3RpdmF0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzc2VzKHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiBzdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzc2VzID0gc3Rha2luZ0FkZHJlc3NlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhbW91bnQgdG8gdW5zdGFrZSBleHByZXNzZWQgaW4gTGFtcG9ydHMsIDEgU09MID0gMV8wMDBfMDAwXzAwMCBsYW1wb3J0cywgdG8gYmUgdXNlZFxuICAgKiB3aGVuIHBhcnRpYWxseSB1bnN0YWtpbmcuIElmIG5vdCBnaXZlbiB0aGVuIHRoZSBlbnRpcmUgc3Rha2VkIGFtb3VudCB3aWxsIGJlIHVuc3Rha2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IFRoZSBwYXJ0aWFsIGFtb3VudCB0byB1bnN0YWtlLCBleHByZXNzZWQgaW4gTGFtcG9ydHMuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2NsaS9kZWxlZ2F0ZS1zdGFrZSNzcGxpdC1zdGFrZVxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkU3Rha2luZ0Ftb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJZiBnaXZlbiwgYW1vdW50IGNhbm5vdCBiZSB6ZXJvIG9yIGxlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHRlciB0byBzZXQgdGhlIHJlY2lwaWVudHMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSByZWNpcGllbnRzIFJlY2lwaWVudEVudHJ5W10gLSBUaGUgcmVjaXBpZW50cyBvYmplY3RcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICByZWNpcGllbnRzKHJlY2lwaWVudHM6IFJlY2lwaWVudFtdKTogdGhpcyB7XG4gICAgdGhpcy5fcmVjaXBpZW50cyA9IHJlY2lwaWVudHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIG1vdmUgdGhlIGFtb3VudCB0byB1bnN0YWtlIHRvIHRoaXMgYWNjb3VudCBhbmQgaW5pdGlhdGUgdGhlXG4gICAqIHVuc3Rha2UgcHJvY2Vzcy4gVGhlIG9yaWdpbmFsIHN0YWtlIGFjY291bnQgd2lsbCBjb250aW51ZSBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5zdGFraW5nQWRkcmVzcyBBbiBhY2NvdW50IHVzZWQgdG8gdW5zdGFrZSBhIHBhcnRpYWwgYW1vdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIHVuc3Rha2luZ0FkZHJlc3ModW5zdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHVuc3Rha2luZ0FkZHJlc3MsICd1bnN0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyA9IHVuc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YWtpbmcgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtTb2xTdGFraW5nVHlwZX0gc3Rha2luZ1R5cGUgYSBzdGFraW5nIHR5cGUuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKi9cbiAgc3Rha2luZ1R5cGUoc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bSk6IHRoaXMge1xuICAgIHRoaXMuX3N0YWtpbmdUeXBlID0gc3Rha2luZ1R5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gYSBzdGFraW5nIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ0RlYWN0aXZhdGVFeHRyYVBhcmFtc30gZXh0cmFQYXJhbXMgcGFyYW1ldGVycyBzcGVjaWZpYyB0byBhIHN0YWtpbmcgdHlwZS5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBleHRyYVBhcmFtcyhleHRyYVBhcmFtcz86IFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLl9leHRyYVBhcmFtcyA9IGV4dHJhUGFyYW1zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9zdGFraW5nQWRkcmVzc2VzICYmIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgICAgc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdEZWFjdGl2YXRlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9zdGFraW5nVHlwZSA9PT0gU29sU3Rha2luZ1R5cGVFbnVtLk5BVElWRSkge1xuICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHN0YWtpbmdBZGRyZXNzIGluIG1hcmluYWRlIHN0YWtpbmcgZGVhY3RpdmF0ZSB0eG5cbiAgICAgICAgYXNzZXJ0KHRoaXMuX3N0YWtpbmdBZGRyZXNzLCAnU3Rha2luZyBhZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3N0YWtpbmdUeXBlID09PSBTb2xTdGFraW5nVHlwZUVudW0uTkFUSVZFICYmIHRoaXMuX2Ftb3VudCkge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICAnV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIHRoZSB1bnN0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgICBpZiAodGhpcy5fc3Rha2luZ1R5cGUgPT09IFNvbFN0YWtpbmdUeXBlRW51bS5OQVRJVkUgJiYgdGhpcy5fdW5zdGFraW5nQWRkcmVzcykge1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgICdJZiBhbiB1bnN0YWtpbmcgYWRkcmVzcyBpcyBnaXZlbiB0aGVuIGEgcGFydGlhbCBhbW91bnQgdG8gdW5zdGFrZSBtdXN0IGFsc28gYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN0YWtpbmdGdW5kVW5zdGFrZUFkZHJlc3M6IFRyYW5zZmVyID0ge1xuICAgICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIGFtb3VudDogU1RBS0VfQUNDT1VOVF9SRU5UX0VYRU1QVF9BTU9VTlQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRvQWRkcmVzczogdGhpcy5fdW5zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0Z1bmRVbnN0YWtlQWRkcmVzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWtpbmdEZWFjdGl2YXRlRGF0YTogU3Rha2luZ0RlYWN0aXZhdGUgPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgICB1bnN0YWtpbmdBZGRyZXNzOiB0aGlzLl91bnN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgIHJlY2lwaWVudHM6IHRoaXMuX3JlY2lwaWVudHMsXG4gICAgICAgICAgc3Rha2luZ1R5cGU6IHRoaXMuX3N0YWtpbmdUeXBlLFxuICAgICAgICAgIGV4dHJhUGFyYW1zOiB0aGlzLl9leHRyYVBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhLnB1c2goc3Rha2luZ0RlYWN0aXZhdGVEYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class StakingDelegateBuilder extends TransactionBuilder {
6
+ protected _stakingAddress: string;
7
+ protected _stakingAddresses: string[];
8
+ protected _validator: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ protected get transactionType(): TransactionType;
11
+ /** @inheritdoc */
12
+ initBuilder(tx: Transaction): void;
13
+ /**
14
+ * The address of the staking account.
15
+ *
16
+ * @param {string} stakingAddress public address of the staking account.
17
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
18
+ *
19
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
20
+ */
21
+ stakingAddress(stakingAddress: string): this;
22
+ /**
23
+ * The staking addresses of the staking account.
24
+ *
25
+ * @param {string[]} stakingAddresses public address of the staking accounts
26
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
27
+ *
28
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
29
+ */
30
+ stakingAddresses(stakingAddresses: string[]): this;
31
+ /**
32
+ * Set validator address to delegate funds to.
33
+ *
34
+ * @param {string} validator Validator address to delegate funds to.
35
+ * @returns {StakingDelegateBuilder} This staking builder.
36
+ *
37
+ */
38
+ validator(validator: string): this;
39
+ /** @inheritdoc */
40
+ protected buildImplementation(): Promise<Transaction>;
41
+ }
42
+ //# sourceMappingURL=stakingDelegateBuilder.d.ts.map
@@ -0,0 +1,113 @@
1
+ import { BuildTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { InstructionBuilderTypes } from './constants';
4
+ import assert from 'assert';
5
+ import { validateAddress } from './utils';
6
+ export class StakingDelegateBuilder extends TransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ }
10
+ get transactionType() {
11
+ return TransactionType.StakingDelegate;
12
+ }
13
+ /** @inheritdoc */
14
+ initBuilder(tx) {
15
+ super.initBuilder(tx);
16
+ const stakingAddresses = [];
17
+ for (const instruction of this._instructionsData) {
18
+ if (instruction.type === InstructionBuilderTypes.StakingDelegate) {
19
+ const activateInstruction = instruction;
20
+ this.sender(activateInstruction.params.fromAddress);
21
+ stakingAddresses.push(activateInstruction.params.stakingAddress);
22
+ this.validator(activateInstruction.params.validator);
23
+ }
24
+ }
25
+ if (stakingAddresses.length > 1) {
26
+ this.stakingAddresses(stakingAddresses);
27
+ }
28
+ else {
29
+ this.stakingAddress(stakingAddresses[0]);
30
+ }
31
+ }
32
+ /**
33
+ * The address of the staking account.
34
+ *
35
+ * @param {string} stakingAddress public address of the staking account.
36
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
37
+ *
38
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
39
+ */
40
+ stakingAddress(stakingAddress) {
41
+ validateAddress(stakingAddress, 'stakingAddress');
42
+ this._stakingAddress = stakingAddress;
43
+ return this;
44
+ }
45
+ /**
46
+ * The staking addresses of the staking account.
47
+ *
48
+ * @param {string[]} stakingAddresses public address of the staking accounts
49
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
50
+ *
51
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
52
+ */
53
+ stakingAddresses(stakingAddresses) {
54
+ assert(stakingAddresses.length > 0, 'stakingAddresses must not be empty');
55
+ for (const stakingAddress of stakingAddresses) {
56
+ validateAddress(stakingAddress, 'stakingAddress');
57
+ }
58
+ this._stakingAddresses = stakingAddresses;
59
+ return this;
60
+ }
61
+ /**
62
+ * Set validator address to delegate funds to.
63
+ *
64
+ * @param {string} validator Validator address to delegate funds to.
65
+ * @returns {StakingDelegateBuilder} This staking builder.
66
+ *
67
+ */
68
+ validator(validator) {
69
+ validateAddress(validator, 'validator');
70
+ this._validator = validator;
71
+ return this;
72
+ }
73
+ /** @inheritdoc */
74
+ async buildImplementation() {
75
+ assert(this._sender, 'Sender must be set before building the transaction');
76
+ assert(this._validator, 'Validator must be set before building the transaction');
77
+ if (this._stakingAddresses && this._stakingAddresses.length > 0) {
78
+ this._instructionsData = [];
79
+ for (const stakingAddress of this._stakingAddresses) {
80
+ assert(stakingAddress, 'Staking Address must be set before building the transaction');
81
+ if (this._sender === stakingAddress) {
82
+ throw new BuildTransactionError('Sender address cannot be the same as the Staking address');
83
+ }
84
+ const stakingAccountData = {
85
+ type: InstructionBuilderTypes.StakingDelegate,
86
+ params: {
87
+ fromAddress: this._sender,
88
+ stakingAddress: stakingAddress,
89
+ validator: this._validator,
90
+ },
91
+ };
92
+ this._instructionsData.push(stakingAccountData);
93
+ }
94
+ }
95
+ else {
96
+ assert(this._stakingAddress, 'Staking Address must be set before building the transaction');
97
+ if (this._sender === this._stakingAddress) {
98
+ throw new BuildTransactionError('Sender address cannot be the same as the Staking address');
99
+ }
100
+ const stakingAccountData = {
101
+ type: InstructionBuilderTypes.StakingDelegate,
102
+ params: {
103
+ fromAddress: this._sender,
104
+ stakingAddress: this._stakingAddress,
105
+ validator: this._validator,
106
+ },
107
+ };
108
+ this._instructionsData = [stakingAccountData];
109
+ }
110
+ return await super.buildImplementation();
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlbGVnYXRlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ0RlbGVnYXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFLNUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNqRSxNQUFNLG1CQUFtQixHQUFvQixXQUFXLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxjQUFzQjtRQUNuQyxlQUFlLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLGdCQUEwQjtRQUN6QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO1FBQzFFLEtBQUssTUFBTSxjQUFjLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QyxlQUFlLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsU0FBaUI7UUFDekIsZUFBZSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7UUFDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsdURBQXVELENBQUMsQ0FBQztRQUVqRixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsS0FBSyxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxDQUFDLGNBQWMsRUFBRSw2REFBNkQsQ0FBQyxDQUFDO2dCQUN0RixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO2dCQUM5RixDQUFDO2dCQUNELE1BQU0sa0JBQWtCLEdBQW9CO29CQUMxQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsZUFBZTtvQkFDN0MsTUFBTSxFQUFFO3dCQUNOLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTzt3QkFDekIsY0FBYyxFQUFFLGNBQWM7d0JBQzlCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtxQkFDM0I7aUJBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsNkRBQTZELENBQUMsQ0FBQztZQUM1RixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLElBQUkscUJBQXFCLENBQUMsMERBQTBELENBQUMsQ0FBQztZQUM5RixDQUFDO1lBRUQsTUFBTSxrQkFBa0IsR0FBb0I7Z0JBQzFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxlQUFlO2dCQUM3QyxNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7b0JBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDM0I7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdGFraW5nRGVsZWdhdGUgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ0RlbGVnYXRlQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzc2VzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIF92YWxpZGF0b3I6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlbGVnYXRlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBzdGFraW5nQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWxlZ2F0ZSkge1xuICAgICAgICBjb25zdCBhY3RpdmF0ZUluc3RydWN0aW9uOiBTdGFraW5nRGVsZWdhdGUgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5zZW5kZXIoYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuZnJvbUFkZHJlc3MpO1xuICAgICAgICBzdGFraW5nQWRkcmVzc2VzLnB1c2goYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB0aGlzLnZhbGlkYXRvcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy52YWxpZGF0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3Nlc1swXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlbGVnYXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlbGVnYXRlIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIHN0YWtpbmdBZGRyZXNzKHN0YWtpbmdBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Moc3Rha2luZ0FkZHJlc3MsICdzdGFraW5nQWRkcmVzcycpO1xuICAgIHRoaXMuX3N0YWtpbmdBZGRyZXNzID0gc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWtpbmcgYWRkcmVzc2VzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHN0YWtpbmdBZGRyZXNzZXMgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudHNcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBkZWxlZ2F0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzc2VzKHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgYXNzZXJ0KHN0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMCwgJ3N0YWtpbmdBZGRyZXNzZXMgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICBmb3IgKGNvbnN0IHN0YWtpbmdBZGRyZXNzIG9mIHN0YWtpbmdBZGRyZXNzZXMpIHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMgPSBzdGFraW5nQWRkcmVzc2VzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB2YWxpZGF0b3IgYWRkcmVzcyB0byBkZWxlZ2F0ZSBmdW5kcyB0by5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRvciBWYWxpZGF0b3IgYWRkcmVzcyB0byBkZWxlZ2F0ZSBmdW5kcyB0by5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKi9cbiAgdmFsaWRhdG9yKHZhbGlkYXRvcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHZhbGlkYXRvciwgJ3ZhbGlkYXRvcicpO1xuICAgIHRoaXMuX3ZhbGlkYXRvciA9IHZhbGlkYXRvcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgYXNzZXJ0KHRoaXMuX3ZhbGlkYXRvciwgJ1ZhbGlkYXRvciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBpZiAodGhpcy5fc3Rha2luZ0FkZHJlc3NlcyAmJiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbXTtcbiAgICAgIGZvciAoY29uc3Qgc3Rha2luZ0FkZHJlc3Mgb2YgdGhpcy5fc3Rha2luZ0FkZHJlc3Nlcykge1xuICAgICAgICBhc3NlcnQoc3Rha2luZ0FkZHJlc3MsICdTdGFraW5nIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgICAgICBpZiAodGhpcy5fc2VuZGVyID09PSBzdGFraW5nQWRkcmVzcykge1xuICAgICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Rha2luZ0FjY291bnREYXRhOiBTdGFraW5nRGVsZWdhdGUgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlbGVnYXRlLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiBzdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICAgIHZhbGlkYXRvcjogdGhpcy5fdmFsaWRhdG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEucHVzaChzdGFraW5nQWNjb3VudERhdGEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQodGhpcy5fc3Rha2luZ0FkZHJlc3MsICdTdGFraW5nIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdGhpcy5fc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3Rha2luZ0FjY291bnREYXRhOiBTdGFraW5nRGVsZWdhdGUgPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWxlZ2F0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICBzdGFraW5nQWRkcmVzczogdGhpcy5fc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgICAgdmFsaWRhdG9yOiB0aGlzLl92YWxpZGF0b3IsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtzdGFraW5nQWNjb3VudERhdGFdO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseAddress, BaseKey, BaseTransaction, BaseTransactionBuilder, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import BigNumber from 'bignumber.js';
5
+ export declare class StakingRawMsgAuthorizeBuilder extends BaseTransactionBuilder {
6
+ protected _transaction: Transaction;
7
+ protected _transactionMessage: string;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ protected get transactionType(): TransactionType;
10
+ /** @inheritdoc */
11
+ initBuilder(tx: Transaction): void;
12
+ /**
13
+ * The raw message generated by Solana CLI.
14
+ *
15
+ * @param {string} msg msg generated by 'solana stake-authorize-check.
16
+ * @returns {StakeBuilder} This staking builder.
17
+ *
18
+ */
19
+ transactionMessage(msg: string): this;
20
+ /** @inheritdoc */
21
+ protected buildImplementation(): Promise<Transaction>;
22
+ validateTransaction(tx: Transaction): boolean;
23
+ build(): Promise<Transaction>;
24
+ protected validateMessage(msg: string): boolean;
25
+ protected fromImplementation(rawTransaction: string): Transaction;
26
+ protected signImplementation(key: BaseKey): BaseTransaction;
27
+ protected get transaction(): Transaction;
28
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
29
+ validateKey(key: BaseKey): void;
30
+ validateRawTransaction(rawTransaction: string): void;
31
+ validateValue(value: BigNumber): void;
32
+ }
33
+ //# sourceMappingURL=stakingRawMsgAuthorizeBuilder.d.ts.map
@@ -0,0 +1,103 @@
1
+ import { BaseTransactionBuilder, NotSupported, TransactionType, } from '@bitgo-beta/sdk-core';
2
+ import { Transaction } from './transaction';
3
+ import { Transaction as SOLTransaction, Message as SOLMessage, SystemProgram, SystemInstruction, StakeProgram, } from '@solana/web3.js';
4
+ import assert from 'assert';
5
+ import { nonceAdvanceInstruction, validInstructionData, validInstructionData2 } from './constants';
6
+ export class StakingRawMsgAuthorizeBuilder extends BaseTransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ this._transaction = new Transaction(_coinConfig);
10
+ }
11
+ get transactionType() {
12
+ return TransactionType.StakingAuthorizeRaw;
13
+ }
14
+ /** @inheritdoc */
15
+ initBuilder(tx) {
16
+ if (this.validateTransaction(tx)) {
17
+ this.transactionMessage(tx.solTransaction.serializeMessage().toString('base64'));
18
+ }
19
+ }
20
+ /**
21
+ * The raw message generated by Solana CLI.
22
+ *
23
+ * @param {string} msg msg generated by 'solana stake-authorize-check.
24
+ * @returns {StakeBuilder} This staking builder.
25
+ *
26
+ */
27
+ transactionMessage(msg) {
28
+ this.validateMessage(msg);
29
+ this._transactionMessage = msg;
30
+ return this;
31
+ }
32
+ /** @inheritdoc */
33
+ async buildImplementation() {
34
+ assert(this._transactionMessage, 'missing transaction message');
35
+ this.validateMessage(this._transactionMessage);
36
+ const solTransaction = SOLTransaction.populate(SOLMessage.from(Buffer.from(this._transactionMessage, 'base64')), []);
37
+ // this is workaround for solana web3.js generate wrong signing message
38
+ const serialized = solTransaction.serialize({ requireAllSignatures: false }).toString('base64');
39
+ this.transaction.fromRawTransaction(serialized);
40
+ this.transaction.setTransactionType(this.transactionType);
41
+ assert(this._transactionMessage === this.transaction.signablePayload.toString('base64'), 'wrong signing message');
42
+ return this.transaction;
43
+ }
44
+ validateTransaction(tx) {
45
+ return this.validateMessage(tx.solTransaction.serializeMessage().toString('base64'));
46
+ }
47
+ async build() {
48
+ return this.buildImplementation();
49
+ }
50
+ validateMessage(msg) {
51
+ const tx = SOLTransaction.populate(SOLMessage.from(Buffer.from(msg, 'base64')), []);
52
+ const instructions = tx.instructions;
53
+ if (instructions.length !== 2 && instructions.length !== 3) {
54
+ throw new Error(`Invalid transaction, expected 2 instruction, got ${instructions.length}`);
55
+ }
56
+ for (const instruction of instructions) {
57
+ switch (instruction.programId.toString()) {
58
+ case SystemProgram.programId.toString():
59
+ const instructionName = SystemInstruction.decodeInstructionType(instruction);
60
+ if (instructionName !== nonceAdvanceInstruction) {
61
+ throw new Error(`Invalid system instruction : ${instructionName}`);
62
+ }
63
+ break;
64
+ case StakeProgram.programId.toString():
65
+ const data = instruction.data.toString('hex');
66
+ if (data !== validInstructionData && data !== validInstructionData2) {
67
+ throw new Error(`Invalid staking instruction data: ${data}`);
68
+ }
69
+ break;
70
+ default:
71
+ throw new Error(`Invalid transaction, instruction program id not supported: ${instruction.programId.toString()}`);
72
+ }
73
+ }
74
+ return true;
75
+ }
76
+ fromImplementation(rawTransaction) {
77
+ const tx = new Transaction(this._coinConfig);
78
+ tx.fromRawTransaction(rawTransaction);
79
+ this.initBuilder(tx);
80
+ return this.transaction;
81
+ }
82
+ signImplementation(key) {
83
+ throw new NotSupported('Method not supported on this builder');
84
+ }
85
+ get transaction() {
86
+ return this._transaction;
87
+ }
88
+ validateAddress(address, addressFormat) {
89
+ throw new NotSupported('Method not supported on this builder');
90
+ }
91
+ validateKey(key) {
92
+ throw new NotSupported('Method not supported on this builder');
93
+ }
94
+ validateRawTransaction(rawTransaction) {
95
+ const tx = new Transaction(this._coinConfig);
96
+ tx.fromRawTransaction(rawTransaction);
97
+ this.validateTransaction(tx);
98
+ }
99
+ validateValue(value) {
100
+ throw new NotSupported('Method not supported on this builder');
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJTCxzQkFBc0IsRUFDdEIsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFDTCxXQUFXLElBQUksY0FBYyxFQUM3QixPQUFPLElBQUksVUFBVSxFQUNyQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkcsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHNCQUFzQjtJQUd2RSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFD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Q0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixNQUFNLElBQUksWUFBWSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgTm90U3VwcG9ydGVkLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbiBhcyBTT0xUcmFuc2FjdGlvbixcbiAgTWVzc2FnZSBhcyBTT0xNZXNzYWdlLFxuICBTeXN0ZW1Qcm9ncmFtLFxuICBTeXN0ZW1JbnN0cnVjdGlvbixcbiAgU3Rha2VQcm9ncmFtLFxufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBub25jZUFkdmFuY2VJbnN0cnVjdGlvbiwgdmFsaWRJbnN0cnVjdGlvbkRhdGEsIHZhbGlkSW5zdHJ1Y3Rpb25EYXRhMiB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uTWVzc2FnZTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBdXRob3JpemVSYXc7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbih0eCkpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25NZXNzYWdlKHR4LnNvbFRyYW5zYWN0aW9uLnNlcmlhbGl6ZU1lc3NhZ2UoKS50b1N0cmluZygnYmFzZTY0JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmF3IG1lc3NhZ2UgZ2VuZXJhdGVkIGJ5IFNvbGFuYSBDTEkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgbXNnIGdlbmVyYXRlZCBieSAnc29sYW5hIHN0YWtlLWF1dGhvcml6ZS1jaGVjay5cbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICB0cmFuc2FjdGlvbk1lc3NhZ2UobXNnOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTWVzc2FnZShtc2cpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uTWVzc2FnZSA9IG1zZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3RyYW5zYWN0aW9uTWVzc2FnZSwgJ21pc3NpbmcgdHJhbnNhY3Rpb24gbWVzc2FnZScpO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1lc3NhZ2UodGhpcy5fdHJhbnNhY3Rpb25NZXNzYWdlKTtcbiAgICBjb25zdCBzb2xUcmFuc2FjdGlvbiA9IFNPTFRyYW5zYWN0aW9uLnBvcHVsYXRlKFxuICAgICAgU09MTWVzc2FnZS5mcm9tKEJ1ZmZlci5mcm9tKHRoaXMuX3RyYW5zYWN0aW9uTWVzc2FnZSwgJ2Jhc2U2NCcpKSxcbiAgICAgIFtdXG4gICAgKTtcbiAgICAvLyB0aGlzIGlzIHdvcmthcm91bmQgZm9yIHNvbGFuYSB3ZWIzLmpzIGdlbmVyYXRlIHdyb25nIHNpZ25pbmcgbWVzc2FnZVxuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzb2xUcmFuc2FjdGlvbi5zZXJpYWxpemUoeyByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UgfSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZnJvbVJhd1RyYW5zYWN0aW9uKHNlcmlhbGl6ZWQpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICBhc3NlcnQodGhpcy5fdHJhbnNhY3Rpb25NZXNzYWdlID09PSB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hYmxlUGF5bG9hZC50b1N0cmluZygnYmFzZTY0JyksICd3cm9uZyBzaWduaW5nIG1lc3NhZ2UnKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHg6IFRyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVNZXNzYWdlKHR4LnNvbFRyYW5zYWN0aW9uLnNlcmlhbGl6ZU1lc3NhZ2UoKS50b1N0cmluZygnYmFzZTY0JykpO1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZU1lc3NhZ2UobXNnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0eCA9IFNPTFRyYW5zYWN0aW9uLnBvcHVsYXRlKFNPTE1lc3NhZ2UuZnJvbShCdWZmZXIuZnJvbShtc2csICdiYXNlNjQnKSksIFtdKTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnMgPSB0eC5pbnN0cnVjdGlvbnM7XG4gICAgaWYgKGluc3RydWN0aW9ucy5sZW5ndGggIT09IDIgJiYgaW5zdHJ1Y3Rpb25zLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uLCBleHBlY3RlZCAyIGluc3RydWN0aW9uLCBnb3QgJHtpbnN0cnVjdGlvbnMubGVuZ3RofWApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIGluc3RydWN0aW9ucykge1xuICAgICAgc3dpdGNoIChpbnN0cnVjdGlvbi5wcm9ncmFtSWQudG9TdHJpbmcoKSkge1xuICAgICAgICBjYXNlIFN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLnRvU3RyaW5nKCk6XG4gICAgICAgICAgY29uc3QgaW5zdHJ1Y3Rpb25OYW1lID0gU3lzdGVtSW5zdHJ1Y3Rpb24uZGVjb2RlSW5zdHJ1Y3Rpb25UeXBlKGluc3RydWN0aW9uKTtcbiAgICAgICAgICBpZiAoaW5zdHJ1Y3Rpb25OYW1lICE9PSBub25jZUFkdmFuY2VJbnN0cnVjdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN5c3RlbSBpbnN0cnVjdGlvbiA6ICR7aW5zdHJ1Y3Rpb25OYW1lfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTdGFrZVByb2dyYW0ucHJvZ3JhbUlkLnRvU3RyaW5nKCk6XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGluc3RydWN0aW9uLmRhdGEudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgIGlmIChkYXRhICE9PSB2YWxpZEluc3RydWN0aW9uRGF0YSAmJiBkYXRhICE9PSB2YWxpZEluc3RydWN0aW9uRGF0YTIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGFraW5nIGluc3RydWN0aW9uIGRhdGE6ICR7ZGF0YX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgdHJhbnNhY3Rpb24sIGluc3RydWN0aW9uIHByb2dyYW0gaWQgbm90IHN1cHBvcnRlZDogJHtpbnN0cnVjdGlvbi5wcm9ncmFtSWQudG9TdHJpbmcoKX1gXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogQmFzZVRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdNZXRob2Qgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGJ1aWxkZXInKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ01ldGhvZCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgYnVpbGRlcicpO1xuICB9XG5cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnTWV0aG9kIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBidWlsZGVyJyk7XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbih0eCk7XG4gIH1cblxuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdNZXRob2Qgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGJ1aWxkZXInKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class StakingWithdrawBuilder extends TransactionBuilder {
6
+ protected _stakingAddress: string;
7
+ protected _amount: string;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ protected get transactionType(): TransactionType;
10
+ /** @inheritdoc */
11
+ initBuilder(tx: Transaction): void;
12
+ /**
13
+ * The address of the staking account.
14
+ *
15
+ * @param {string} stakingAddress public address of the staking account
16
+ * @returns {StakeBuilder} This staking builder.
17
+ *
18
+ */
19
+ stakingAddress(stakingAddress: string): this;
20
+ /**
21
+ * The amount to withdraw expressed in Lamports, 1 SOL = 1_000_000_000 lamports
22
+ *
23
+ * @param {string} amount expressed in Lamports
24
+ * @returns {StakeBuilder} This staking builder.
25
+ *
26
+ */
27
+ amount(amount: string): this;
28
+ /** @inheritdoc */
29
+ protected buildImplementation(): Promise<Transaction>;
30
+ }
31
+ //# sourceMappingURL=stakingWithdrawBuilder.d.ts.map