@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
@@ -0,0 +1,21 @@
1
+ import { TransactionExplanation as SolLibTransactionExplanation } from './iface';
2
+ export interface ExplainTransactionWasmOptions {
3
+ txBase64: string;
4
+ feeInfo?: {
5
+ fee: string;
6
+ };
7
+ tokenAccountRentExemptAmount?: string;
8
+ coinName: string;
9
+ }
10
+ /**
11
+ * Standalone WASM-based transaction explanation.
12
+ *
13
+ * Parses the transaction via `parseTransaction(tx)` from @bitgo/wasm-solana,
14
+ * then derives the transaction type, extracts outputs/inputs, computes fees,
15
+ * and maps to BitGoJS TransactionExplanation format.
16
+ *
17
+ * The explain logic was ported from wasm-solana per the convention that
18
+ * `explainTransaction` belongs in BitGoJS, not in wasm-* packages.
19
+ */
20
+ export declare function explainSolTransaction(params: ExplainTransactionWasmOptions): SolLibTransactionExplanation;
21
+ //# sourceMappingURL=explainTransactionWasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainTransactionWasm.d.ts","sourceRoot":"","sources":["../../../src/lib/explainTransactionWasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,sBAAsB,IAAI,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGzG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgKD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,6BAA6B,GAAG,4BAA4B,CAoJzG"}
@@ -0,0 +1,261 @@
1
+ import { Transaction, parseTransaction } from '@bitgo/wasm-solana';
2
+ import { UNAVAILABLE_TEXT } from './constants';
3
+ import { findTokenName } from './instructionParamsFactory';
4
+ // =============================================================================
5
+ // Transaction type derivation (ported from @bitgo/wasm-solana explain.ts)
6
+ // =============================================================================
7
+ var TransactionType;
8
+ (function (TransactionType) {
9
+ TransactionType["Send"] = "Send";
10
+ TransactionType["StakingActivate"] = "StakingActivate";
11
+ TransactionType["StakingDeactivate"] = "StakingDeactivate";
12
+ TransactionType["StakingWithdraw"] = "StakingWithdraw";
13
+ TransactionType["StakingAuthorize"] = "StakingAuthorize";
14
+ TransactionType["StakingDelegate"] = "StakingDelegate";
15
+ TransactionType["WalletInitialization"] = "WalletInitialization";
16
+ TransactionType["AssociatedTokenAccountInitialization"] = "AssociatedTokenAccountInitialization";
17
+ TransactionType["CustomTx"] = "CustomTx";
18
+ })(TransactionType || (TransactionType = {}));
19
+ function detectCombinedPattern(instructions) {
20
+ for (let i = 0; i < instructions.length - 1; i++) {
21
+ const curr = instructions[i];
22
+ const next = instructions[i + 1];
23
+ if (curr.type === 'CreateAccount' && next.type === 'StakeInitialize') {
24
+ return {
25
+ kind: 'StakingActivate',
26
+ fromAddress: curr.fromAddress,
27
+ stakingAddress: curr.newAddress,
28
+ amount: curr.amount,
29
+ };
30
+ }
31
+ if (curr.type === 'CreateAccount' && next.type === 'NonceInitialize') {
32
+ return {
33
+ kind: 'WalletInitialization',
34
+ fromAddress: curr.fromAddress,
35
+ nonceAddress: curr.newAddress,
36
+ amount: curr.amount,
37
+ };
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ // =============================================================================
43
+ // Transaction type derivation
44
+ // =============================================================================
45
+ const BOILERPLATE_TYPES = new Set(['NonceAdvance', 'Memo', 'SetComputeUnitLimit', 'SetPriorityFee']);
46
+ function deriveTransactionType(instructions, combined, memo) {
47
+ if (combined)
48
+ return TransactionType[combined.kind];
49
+ // Marinade deactivate: Transfer + memo containing "PrepareForRevoke"
50
+ if (memo?.includes('PrepareForRevoke'))
51
+ return TransactionType.StakingDeactivate;
52
+ // Jito pool operations
53
+ if (instructions.some((i) => i.type === 'StakePoolDepositSol'))
54
+ return TransactionType.StakingActivate;
55
+ if (instructions.some((i) => i.type === 'StakePoolWithdrawStake'))
56
+ return TransactionType.StakingDeactivate;
57
+ // ATA-only transactions (ignoring boilerplate)
58
+ const meaningful = instructions.filter((i) => !BOILERPLATE_TYPES.has(i.type));
59
+ if (meaningful.length > 0 && meaningful.every((i) => i.type === 'CreateAssociatedTokenAccount')) {
60
+ return TransactionType.AssociatedTokenAccountInitialization;
61
+ }
62
+ // Direct staking instruction mapping
63
+ const staking = instructions.find((i) => i.type in TransactionType);
64
+ if (staking)
65
+ return TransactionType[staking.type];
66
+ // Unknown instructions indicate a custom/unrecognized transaction
67
+ if (instructions.some((i) => i.type === 'Unknown'))
68
+ return TransactionType.CustomTx;
69
+ // Send requires an explicit Transfer or TokenTransfer instruction.
70
+ // Everything else is a custom/unrecognized transaction.
71
+ if (instructions.some((i) => i.type === 'Transfer' || i.type === 'TokenTransfer'))
72
+ return TransactionType.Send;
73
+ return TransactionType.CustomTx;
74
+ }
75
+ // =============================================================================
76
+ // Transaction ID extraction
77
+ // =============================================================================
78
+ // Base58 encoding of 64 zero bytes (unsigned transactions have all-zero signatures)
79
+ const ALL_ZEROS_BASE58 = '1111111111111111111111111111111111111111111111111111111111111111';
80
+ function extractTransactionId(signatures) {
81
+ const sig = signatures[0];
82
+ if (!sig || sig === ALL_ZEROS_BASE58)
83
+ return undefined;
84
+ return sig;
85
+ }
86
+ // =============================================================================
87
+ // Staking authorize mapping
88
+ // =============================================================================
89
+ /**
90
+ * Map WASM StakingAuthorize instruction to the legacy BitGoJS shape.
91
+ * BitGoJS uses different field names for Staker vs Withdrawer authority changes.
92
+ */
93
+ function mapStakingAuthorize(instr) {
94
+ if (instr.authorizeType === 'Withdrawer') {
95
+ return {
96
+ stakingAddress: instr.stakingAddress,
97
+ oldWithdrawAddress: instr.oldAuthorizeAddress,
98
+ newWithdrawAddress: instr.newAuthorizeAddress,
99
+ custodianAddress: instr.custodianAddress,
100
+ };
101
+ }
102
+ // Staker authority change
103
+ return {
104
+ stakingAddress: instr.stakingAddress,
105
+ oldWithdrawAddress: '',
106
+ newWithdrawAddress: '',
107
+ oldStakingAuthorityAddress: instr.oldAuthorizeAddress,
108
+ newStakingAuthorityAddress: instr.newAuthorizeAddress,
109
+ };
110
+ }
111
+ // =============================================================================
112
+ // Main explain function
113
+ // =============================================================================
114
+ /**
115
+ * Standalone WASM-based transaction explanation.
116
+ *
117
+ * Parses the transaction via `parseTransaction(tx)` from @bitgo/wasm-solana,
118
+ * then derives the transaction type, extracts outputs/inputs, computes fees,
119
+ * and maps to BitGoJS TransactionExplanation format.
120
+ *
121
+ * The explain logic was ported from wasm-solana per the convention that
122
+ * `explainTransaction` belongs in BitGoJS, not in wasm-* packages.
123
+ */
124
+ export function explainSolTransaction(params) {
125
+ const txBytes = Buffer.from(params.txBase64, 'base64');
126
+ const tx = Transaction.fromBytes(txBytes);
127
+ const parsed = parseTransaction(tx);
128
+ // --- Transaction ID ---
129
+ const id = extractTransactionId(parsed.signatures);
130
+ // --- Fee calculation ---
131
+ const lamportsPerSignature = params.feeInfo ? BigInt(params.feeInfo.fee) : 0n;
132
+ let fee = BigInt(parsed.numSignatures) * lamportsPerSignature;
133
+ // Each CreateAssociatedTokenAccount creates a new token account requiring a rent deposit.
134
+ const ataCount = parsed.instructionsData.filter((i) => i.type === 'CreateAssociatedTokenAccount').length;
135
+ if (ataCount > 0 && params.tokenAccountRentExemptAmount) {
136
+ fee += BigInt(ataCount) * BigInt(params.tokenAccountRentExemptAmount);
137
+ }
138
+ // --- Extract memo (needed before type derivation) ---
139
+ let memo;
140
+ for (const instr of parsed.instructionsData) {
141
+ if (instr.type === 'Memo') {
142
+ memo = instr.memo;
143
+ }
144
+ }
145
+ // --- Detect combined patterns and derive type ---
146
+ const combined = detectCombinedPattern(parsed.instructionsData);
147
+ const txType = deriveTransactionType(parsed.instructionsData, combined, memo);
148
+ // Marinade deactivate: Transfer + PrepareForRevoke memo.
149
+ // The Transfer is a contract interaction, not real value transfer — skip from outputs.
150
+ const isMarinadeDeactivate = txType === TransactionType.StakingDeactivate && memo !== undefined && memo.includes('PrepareForRevoke');
151
+ // --- Extract outputs and inputs ---
152
+ const outputs = [];
153
+ const inputs = [];
154
+ if (combined?.kind === 'StakingActivate') {
155
+ outputs.push({ address: combined.stakingAddress, amount: combined.amount });
156
+ inputs.push({ address: combined.fromAddress, value: combined.amount });
157
+ }
158
+ else if (combined?.kind === 'WalletInitialization') {
159
+ outputs.push({ address: combined.nonceAddress, amount: combined.amount });
160
+ inputs.push({ address: combined.fromAddress, value: combined.amount });
161
+ }
162
+ else {
163
+ for (const instr of parsed.instructionsData) {
164
+ switch (instr.type) {
165
+ case 'Transfer':
166
+ if (isMarinadeDeactivate)
167
+ break;
168
+ outputs.push({ address: instr.toAddress, amount: instr.amount });
169
+ inputs.push({ address: instr.fromAddress, value: instr.amount });
170
+ break;
171
+ case 'TokenTransfer':
172
+ outputs.push({ address: instr.toAddress, amount: instr.amount, tokenName: instr.tokenAddress });
173
+ inputs.push({ address: instr.fromAddress, value: instr.amount });
174
+ break;
175
+ case 'StakingActivate':
176
+ outputs.push({ address: instr.stakingAddress, amount: instr.amount });
177
+ inputs.push({ address: instr.fromAddress, value: instr.amount });
178
+ break;
179
+ case 'StakingWithdraw':
180
+ // Withdraw: SOL flows FROM staking address TO the recipient (fromAddress)
181
+ outputs.push({ address: instr.fromAddress, amount: instr.amount });
182
+ inputs.push({ address: instr.stakingAddress, value: instr.amount });
183
+ break;
184
+ case 'StakePoolDepositSol':
185
+ // Jito liquid staking deposit
186
+ outputs.push({ address: instr.stakePool, amount: instr.lamports });
187
+ inputs.push({ address: instr.fundingAccount, value: instr.lamports });
188
+ break;
189
+ }
190
+ }
191
+ }
192
+ // --- Output amount (native SOL only, not token amounts) ---
193
+ const outputAmount = outputs.filter((o) => !o.tokenName).reduce((sum, o) => sum + o.amount, 0n);
194
+ // --- ATA owner mapping and token enablements ---
195
+ const ataOwnerMap = {};
196
+ const tokenEnablements = [];
197
+ for (const instr of parsed.instructionsData) {
198
+ if (instr.type === 'CreateAssociatedTokenAccount') {
199
+ ataOwnerMap[instr.ataAddress] = instr.ownerAddress;
200
+ tokenEnablements.push({
201
+ address: instr.ataAddress,
202
+ tokenName: findTokenName(instr.mintAddress, undefined, true),
203
+ tokenAddress: instr.mintAddress,
204
+ });
205
+ }
206
+ }
207
+ // --- Staking authorize ---
208
+ let stakingAuthorize;
209
+ for (const instr of parsed.instructionsData) {
210
+ if (instr.type === 'StakingAuthorize') {
211
+ stakingAuthorize = mapStakingAuthorize(instr);
212
+ break;
213
+ }
214
+ }
215
+ // --- Resolve token names and convert bigint to string at serialization boundary ---
216
+ const resolvedOutputs = outputs.map((o) => ({
217
+ address: o.address,
218
+ amount: String(o.amount),
219
+ ...(o.tokenName ? { tokenName: findTokenName(o.tokenName, undefined, true) } : {}),
220
+ }));
221
+ const resolvedInputs = inputs.map((i) => ({
222
+ address: i.address,
223
+ value: String(i.value),
224
+ }));
225
+ return {
226
+ displayOrder: [
227
+ 'id',
228
+ 'type',
229
+ 'blockhash',
230
+ 'durableNonce',
231
+ 'outputAmount',
232
+ 'changeAmount',
233
+ 'outputs',
234
+ 'changeOutputs',
235
+ 'tokenEnablements',
236
+ 'fee',
237
+ 'memo',
238
+ ],
239
+ id: id ?? UNAVAILABLE_TEXT,
240
+ // WASM returns "StakingAuthorize" but BitGoJS uses "StakingAuthorizeRaw"
241
+ // when deserializing from bytes (the non-raw type only exists during building).
242
+ type: txType === TransactionType.StakingAuthorize ? 'StakingAuthorizeRaw' : txType,
243
+ changeOutputs: [],
244
+ changeAmount: '0',
245
+ outputAmount: String(outputAmount),
246
+ outputs: resolvedOutputs,
247
+ inputs: resolvedInputs,
248
+ feePayer: parsed.feePayer,
249
+ fee: {
250
+ fee: params.feeInfo ? String(fee) : '0',
251
+ feeRate: params.feeInfo ? Number(params.feeInfo.fee) : undefined,
252
+ },
253
+ memo,
254
+ blockhash: parsed.nonce,
255
+ durableNonce: parsed.durableNonce,
256
+ tokenEnablements,
257
+ ataOwnerMap,
258
+ ...(stakingAuthorize ? { stakingAuthorize } : {}),
259
+ };
260
+ }
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uV2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZXhwbGFpblRyYW5zYWN0aW9uV2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFrRCxNQUFNLG9CQUFvQixDQUFDO0FBQ25ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTM0QsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSxnRkFBZ0Y7QUFFaEYsSUFBSyxlQVVKO0FBVkQsV0FBSyxlQUFlO0lBQ2xCLGdDQUFhLENBQUE7SUFDYixzREFBbUMsQ0FBQTtJQUNuQywwREFBdUMsQ0FBQTtJQUN2QyxzREFBbUMsQ0FBQTtJQUNuQyx3REFBcUMsQ0FBQTtJQUNyQyxzREFBbUMsQ0FBQTtJQUNuQyxnRUFBNkMsQ0FBQTtJQUM3QyxnR0FBNkUsQ0FBQTtJQUM3RSx3Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVkksZUFBZSxLQUFmLGVBQWUsUUFVbkI7QUEyQkQsU0FBUyxxQkFBcUIsQ0FBQyxZQUFpQztJQUM5RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNyRSxPQUFPO2dCQUNMLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFdB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V0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsY0FBYztZQUNkLFNBQVM7WUFDVCxlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLEtBQUs7WUFDTCxNQUFNO1NBQ1A7UUFDRCxFQUFFLEVBQUUsRUFBRSxJQUFJLGdCQUFnQjtRQUMxQix5RUFBeUU7UUFDekUsZ0ZBQWdGO1FBQ2hGLElBQUksRUFBRSxNQUFNLEtBQUssZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUNsRixhQUFhLEVBQUUsRUFBRTtRQUNqQixZQUFZLEVBQUUsR0FBRztRQUNqQixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNsQyxPQUFPLEVBQUUsZUFBZTtRQUN4QixNQUFNLEVBQUUsY0FBYztRQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsR0FBRyxFQUFFO1lBQ0gsR0FBRyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztZQUN2QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDakU7UUFDRCxJQUFJO1FBQ0osU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ3ZCLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtRQUNqQyxnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDbEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVG9rZW5FbmFibGVtZW50IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIHBhcnNlVHJhbnNhY3Rpb24sIHR5cGUgUGFyc2VkVHJhbnNhY3Rpb24sIHR5cGUgSW5zdHJ1Y3Rpb25QYXJhbXMgfSBmcm9tICdAYml0Z28vd2FzbS1zb2xhbmEnO1xuaW1wb3J0IHsgVU5BVkFJTEFCTEVfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFN0YWtpbmdBdXRob3JpemVQYXJhbXMsIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgU29sTGliVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgZmluZFRva2VuTmFtZSB9IGZyb20gJy4vaW5zdHJ1Y3Rpb25QYXJhbXNGYWN0b3J5JztcblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluVHJhbnNhY3Rpb25XYXNtT3B0aW9ucyB7XG4gIHR4QmFzZTY0OiBzdHJpbmc7XG4gIGZlZUluZm8/OiB7IGZlZTogc3RyaW5nIH07XG4gIHRva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQ/OiBzdHJpbmc7XG4gIGNvaW5OYW1lOiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUcmFuc2FjdGlvbiB0eXBlIGRlcml2YXRpb24gKHBvcnRlZCBmcm9tIEBiaXRnby93YXNtLXNvbGFuYSBleHBsYWluLnRzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZW51bSBUcmFuc2FjdGlvblR5cGUge1xuICBTZW5kID0gJ1NlbmQnLFxuICBTdGFraW5nQWN0aXZhdGUgPSAnU3Rha2luZ0FjdGl2YXRlJyxcbiAgU3Rha2luZ0RlYWN0aXZhdGUgPSAnU3Rha2luZ0RlYWN0aXZhdGUnLFxuICBTdGFraW5nV2l0aGRyYXcgPSAnU3Rha2luZ1dpdGhkcmF3JyxcbiAgU3Rha2luZ0F1dGhvcml6ZSA9ICdTdGFraW5nQXV0aG9yaXplJyxcbiAgU3Rha2luZ0RlbGVnYXRlID0gJ1N0YWtpbmdEZWxlZ2F0ZScsXG4gIFdhbGxldEluaXRpYWxpemF0aW9uID0gJ1dhbGxldEluaXRpYWxpemF0aW9uJyxcbiAgQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uID0gJ0Fzc29jaWF0ZWRUb2tlbkFjY291bnRJbml0aWFsaXphdGlvbicsXG4gIEN1c3RvbVR4ID0gJ0N1c3RvbVR4Jyxcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbWJpbmVkIGluc3RydWN0aW9uIHBhdHRlcm4gZGV0ZWN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTb2xhbmEgbmF0aXZlIHN0YWtpbmcgcmVxdWlyZXMgMyBzZXBhcmF0ZSBpbnN0cnVjdGlvbnM6XG4vLyAgIENyZWF0ZUFjY291bnQgKGZ1bmQpICsgU3Rha2VJbml0aWFsaXplIChzZXQgYXV0aG9yaXRpZXMpICsgRGVsZWdhdGVTdGFrZSAocGljayB2YWxpZGF0b3IpXG4vLyBNYXJpbmFkZSBzdGFraW5nIHVzZXMgb25seSBDcmVhdGVBY2NvdW50ICsgU3Rha2VJbml0aWFsaXplIChubyBEZWxlZ2F0ZSkuXG4vLyBXYWxsZXQgaW5pdCB1c2VzIENyZWF0ZUFjY291bnQgKyBOb25jZUluaXRpYWxpemUuXG5cbmludGVyZmFjZSBDb21iaW5lZFN0YWtlQWN0aXZhdGUge1xuICBraW5kOiAnU3Rha2luZ0FjdGl2YXRlJztcbiAgZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59XG5cbmludGVyZmFjZSBDb21iaW5lZFdhbGxldEluaXQge1xuICBraW5kOiAnV2FsbGV0SW5pdGlhbGl6YXRpb24nO1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xuICBub25jZUFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59XG5cbnR5cGUgQ29tYmluZWRQYXR0ZXJuID0gQ29tYmluZWRTdGFrZUFjdGl2YXRlIHwgQ29tYmluZWRXYWxsZXRJbml0O1xuXG5mdW5jdGlvbiBkZXRlY3RDb21iaW5lZFBhdHRlcm4oaW5zdHJ1Y3Rpb25zOiBJbnN0cnVjdGlvblBhcmFtc1tdKTogQ29tYmluZWRQYXR0ZXJuIHwgbnVsbCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zdHJ1Y3Rpb25zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGNvbnN0IGN1cnIgPSBpbnN0cnVjdGlvbnNbaV07XG4gICAgY29uc3QgbmV4dCA9IGluc3RydWN0aW9uc1tpICsgMV07XG5cbiAgICBpZiAoY3Vyci50eXBlID09PSAnQ3JlYXRlQWNjb3VudCcgJiYgbmV4dC50eXBlID09PSAnU3Rha2VJbml0aWFsaXplJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ1N0YWtpbmdBY3RpdmF0ZScsXG4gICAgICAgIGZyb21BZGRyZXNzOiBjdXJyLmZyb21BZGRyZXNzLFxuICAgICAgICBzdGFraW5nQWRkcmVzczogY3Vyci5uZXdBZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IGN1cnIuYW1vdW50LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoY3Vyci50eXBlID09PSAnQ3JlYXRlQWNjb3VudCcgJiYgbmV4dC50eXBlID09PSAnTm9uY2VJbml0aWFsaXplJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ1dhbGxldEluaXRpYWxpemF0aW9uJyxcbiAgICAgICAgZnJvbUFkZHJlc3M6IGN1cnIuZnJvbUFkZHJlc3MsXG4gICAgICAgIG5vbmNlQWRkcmVzczogY3Vyci5uZXdBZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IGN1cnIuYW1vdW50LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRyYW5zYWN0aW9uIHR5cGUgZGVyaXZhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgQk9JTEVSUExBVEVfVFlQRVMgPSBuZXcgU2V0KFsnTm9uY2VBZHZhbmNlJywgJ01lbW8nLCAnU2V0Q29tcHV0ZVVuaXRMaW1pdCcsICdTZXRQcmlvcml0eUZlZSddKTtcblxuZnVuY3Rpb24gZGVyaXZlVHJhbnNhY3Rpb25UeXBlKFxuICBpbnN0cnVjdGlvbnM6IEluc3RydWN0aW9uUGFyYW1zW10sXG4gIGNvbWJpbmVkOiBDb21iaW5lZFBhdHRlcm4gfCBudWxsLFxuICBtZW1vOiBzdHJpbmcgfCB1bmRlZmluZWRcbik6IFRyYW5zYWN0aW9uVHlwZSB7XG4gIGlmIChjb21iaW5lZCkgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZVtjb21iaW5lZC5raW5kXTtcblxuICAvLyBNYXJpbmFkZSBkZWFjdGl2YXRlOiBUcmFuc2ZlciArIG1lbW8gY29udGFpbmluZyBcIlByZXBhcmVGb3JSZXZva2VcIlxuICBpZiAobWVtbz8uaW5jbHVkZXMoJ1ByZXBhcmVGb3JSZXZva2UnKSkgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZTtcblxuICAvLyBKaXRvIHBvb2wgb3BlcmF0aW9uc1xuICBpZiAoaW5zdHJ1Y3Rpb25zLnNvbWUoKGkpID0+IGkudHlwZSA9PT0gJ1N0YWtlUG9vbERlcG9zaXRTb2wnKSkgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU7XG4gIGlmIChpbnN0cnVjdGlvbnMuc29tZSgoaSkgPT4gaS50eXBlID09PSAnU3Rha2VQb29sV2l0aGRyYXdTdGFrZScpKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlO1xuXG4gIC8vIEFUQS1vbmx5IHRyYW5zYWN0aW9ucyAoaWdub3JpbmcgYm9pbGVycGxhdGUpXG4gIGNvbnN0IG1lYW5pbmdmdWwgPSBpbnN0cnVjdGlvbnMuZmlsdGVyKChpKSA9PiAhQk9JTEVSUExBVEVfVFlQRVMuaGFzKGkudHlwZSkpO1xuICBpZiAobWVhbmluZ2Z1bC5sZW5ndGggPiAwICYmIG1lYW5pbmdmdWwuZXZlcnkoKGkpID0+IGkudHlwZSA9PT0gJ0NyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnKSkge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgLy8gRGlyZWN0IHN0YWtpbmcgaW5zdHJ1Y3Rpb24gbWFwcGluZ1xuICBjb25zdCBzdGFraW5nID0gaW5zdHJ1Y3Rpb25zLmZpbmQoKGkpID0+IGkudHlwZSBpbiBUcmFuc2FjdGlvblR5cGUpO1xuICBpZiAoc3Rha2luZykgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZVtzdGFraW5nLnR5cGUgYXMga2V5b2YgdHlwZW9mIFRyYW5zYWN0aW9uVHlwZV07XG5cbiAgLy8gVW5rbm93biBpbnN0cnVjdGlvbnMgaW5kaWNhdGUgYSBjdXN0b20vdW5yZWNvZ25pemVkIHRyYW5zYWN0aW9uXG4gIGlmIChpbnN0cnVjdGlvbnMuc29tZSgoaSkgPT4gaS50eXBlID09PSAnVW5rbm93bicpKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkN1c3RvbVR4O1xuXG4gIC8vIFNlbmQgcmVxdWlyZXMgYW4gZXhwbGljaXQgVHJhbnNmZXIgb3IgVG9rZW5UcmFuc2ZlciBpbnN0cnVjdGlvbi5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGlzIGEgY3VzdG9tL3VucmVjb2duaXplZCB0cmFuc2FjdGlvbi5cbiAgaWYgKGluc3RydWN0aW9ucy5zb21lKChpKSA9PiBpLnR5cGUgPT09ICdUcmFuc2ZlcicgfHwgaS50eXBlID09PSAnVG9rZW5UcmFuc2ZlcicpKSByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG5cbiAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRyYW5zYWN0aW9uIElEIGV4dHJhY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJhc2U1OCBlbmNvZGluZyBvZiA2NCB6ZXJvIGJ5dGVzICh1bnNpZ25lZCB0cmFuc2FjdGlvbnMgaGF2ZSBhbGwtemVybyBzaWduYXR1cmVzKVxuY29uc3QgQUxMX1pFUk9TX0JBU0U1OCA9ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJztcblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uSWQoc2lnbmF0dXJlczogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaWcgPSBzaWduYXR1cmVzWzBdO1xuICBpZiAoIXNpZyB8fCBzaWcgPT09IEFMTF9aRVJPU19CQVNFNTgpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBzaWc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdGFraW5nIGF1dGhvcml6ZSBtYXBwaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE1hcCBXQVNNIFN0YWtpbmdBdXRob3JpemUgaW5zdHJ1Y3Rpb24gdG8gdGhlIGxlZ2FjeSBCaXRHb0pTIHNoYXBlLlxuICogQml0R29KUyB1c2VzIGRpZmZlcmVudCBmaWVsZCBuYW1lcyBmb3IgU3Rha2VyIHZzIFdpdGhkcmF3ZXIgYXV0aG9yaXR5IGNoYW5nZXMuXG4gKi9cbmZ1bmN0aW9uIG1hcFN0YWtpbmdBdXRob3JpemUoaW5zdHI6IHtcbiAgc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgb2xkQXV0aG9yaXplQWRkcmVzczogc3RyaW5nO1xuICBuZXdBdXRob3JpemVBZGRyZXNzOiBzdHJpbmc7XG4gIGF1dGhvcml6ZVR5cGU6ICdTdGFrZXInIHwgJ1dpdGhkcmF3ZXInO1xuICBjdXN0b2RpYW5BZGRyZXNzPzogc3RyaW5nO1xufSk6IFN0YWtpbmdBdXRob3JpemVQYXJhbXMge1xuICBpZiAoaW5zdHIuYXV0aG9yaXplVHlwZSA9PT0gJ1dpdGhkcmF3ZXInKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YWtpbmdBZGRyZXNzOiBpbnN0ci5zdGFraW5nQWRkcmVzcyxcbiAgICAgIG9sZFdpdGhkcmF3QWRkcmVzczogaW5zdHIub2xkQXV0aG9yaXplQWRkcmVzcyxcbiAgICAgIG5ld1dpdGhkcmF3QWRkcmVzczogaW5zdHIubmV3QXV0aG9yaXplQWRkcmVzcyxcbiAgICAgIGN1c3RvZGlhbkFkZHJlc3M6IGluc3RyLmN1c3RvZGlhbkFkZHJlc3MsXG4gICAgfTtcbiAgfVxuICAvLyBTdGFrZXIgYXV0aG9yaXR5IGNoYW5nZVxuICByZXR1cm4ge1xuICAgIHN0YWtpbmdBZGRyZXNzOiBpbnN0ci5zdGFraW5nQWRkcmVzcyxcbiAgICBvbGRXaXRoZHJhd0FkZHJlc3M6ICcnLFxuICAgIG5ld1dpdGhkcmF3QWRkcmVzczogJycsXG4gICAgb2xkU3Rha2luZ0F1dGhvcml0eUFkZHJlc3M6IGluc3RyLm9sZEF1dGhvcml6ZUFkZHJlc3MsXG4gICAgbmV3U3Rha2luZ0F1dGhvcml0eUFkZHJlc3M6IGluc3RyLm5ld0F1dGhvcml6ZUFkZHJlc3MsXG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNYWluIGV4cGxhaW4gZnVuY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU3RhbmRhbG9uZSBXQVNNLWJhc2VkIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uLlxuICpcbiAqIFBhcnNlcyB0aGUgdHJhbnNhY3Rpb24gdmlhIGBwYXJzZVRyYW5zYWN0aW9uKHR4KWAgZnJvbSBAYml0Z28vd2FzbS1zb2xhbmEsXG4gKiB0aGVuIGRlcml2ZXMgdGhlIHRyYW5zYWN0aW9uIHR5cGUsIGV4dHJhY3RzIG91dHB1dHMvaW5wdXRzLCBjb21wdXRlcyBmZWVzLFxuICogYW5kIG1hcHMgdG8gQml0R29KUyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGZvcm1hdC5cbiAqXG4gKiBUaGUgZXhwbGFpbiBsb2dpYyB3YXMgcG9ydGVkIGZyb20gd2FzbS1zb2xhbmEgcGVyIHRoZSBjb252ZW50aW9uIHRoYXRcbiAqIGBleHBsYWluVHJhbnNhY3Rpb25gIGJlbG9uZ3MgaW4gQml0R29KUywgbm90IGluIHdhc20tKiBwYWNrYWdlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Tb2xUcmFuc2FjdGlvbihwYXJhbXM6IEV4cGxhaW5UcmFuc2FjdGlvbldhc21PcHRpb25zKTogU29sTGliVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIGNvbnN0IHR4Qnl0ZXMgPSBCdWZmZXIuZnJvbShwYXJhbXMudHhCYXNlNjQsICdiYXNlNjQnKTtcbiAgY29uc3QgdHggPSBUcmFuc2FjdGlvbi5mcm9tQnl0ZXModHhCeXRlcyk7XG4gIGNvbnN0IHBhcnNlZDogUGFyc2VkVHJhbnNhY3Rpb24gPSBwYXJzZVRyYW5zYWN0aW9uKHR4KTtcblxuICAvLyAtLS0gVHJhbnNhY3Rpb24gSUQgLS0tXG4gIGNvbnN0IGlkID0gZXh0cmFjdFRyYW5zYWN0aW9uSWQocGFyc2VkLnNpZ25hdHVyZXMpO1xuXG4gIC8vIC0tLSBGZWUgY2FsY3VsYXRpb24gLS0tXG4gIGNvbnN0IGxhbXBvcnRzUGVyU2lnbmF0dXJlID0gcGFyYW1zLmZlZUluZm8gPyBCaWdJbnQocGFyYW1zLmZlZUluZm8uZmVlKSA6IDBuO1xuICBsZXQgZmVlID0gQmlnSW50KHBhcnNlZC5udW1TaWduYXR1cmVzKSAqIGxhbXBvcnRzUGVyU2lnbmF0dXJlO1xuXG4gIC8vIEVhY2ggQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCBjcmVhdGVzIGEgbmV3IHRva2VuIGFjY291bnQgcmVxdWlyaW5nIGEgcmVudCBkZXBvc2l0LlxuICBjb25zdCBhdGFDb3VudCA9IHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhLmZpbHRlcigoaSkgPT4gaS50eXBlID09PSAnQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCcpLmxlbmd0aDtcbiAgaWYgKGF0YUNvdW50ID4gMCAmJiBwYXJhbXMudG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCkge1xuICAgIGZlZSArPSBCaWdJbnQoYXRhQ291bnQpICogQmlnSW50KHBhcmFtcy50b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50KTtcbiAgfVxuXG4gIC8vIC0tLSBFeHRyYWN0IG1lbW8gKG5lZWRlZCBiZWZvcmUgdHlwZSBkZXJpdmF0aW9uKSAtLS1cbiAgbGV0IG1lbW86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZm9yIChjb25zdCBpbnN0ciBvZiBwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgIGlmIChpbnN0ci50eXBlID09PSAnTWVtbycpIHtcbiAgICAgIG1lbW8gPSBpbnN0ci5tZW1vO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBEZXRlY3QgY29tYmluZWQgcGF0dGVybnMgYW5kIGRlcml2ZSB0eXBlIC0tLVxuICBjb25zdCBjb21iaW5lZCA9IGRldGVjdENvbWJpbmVkUGF0dGVybihwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSk7XG4gIGNvbnN0IHR4VHlwZSA9IGRlcml2ZVRyYW5zYWN0aW9uVHlwZShwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSwgY29tYmluZWQsIG1lbW8pO1xuXG4gIC8vIE1hcmluYWRlIGRlYWN0aXZhdGU6IFRyYW5zZmVyICsgUHJlcGFyZUZvclJldm9rZSBtZW1vLlxuICAvLyBUaGUgVHJhbnNmZXIgaXMgYSBjb250cmFjdCBpbnRlcmFjdGlvbiwgbm90IHJlYWwgdmFsdWUgdHJhbnNmZXIg4oCUIHNraXAgZnJvbSBvdXRwdXRzLlxuICBjb25zdCBpc01hcmluYWRlRGVhY3RpdmF0ZSA9XG4gICAgdHhUeXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGUgJiYgbWVtbyAhPT0gdW5kZWZpbmVkICYmIG1lbW8uaW5jbHVkZXMoJ1ByZXBhcmVGb3JSZXZva2UnKTtcblxuICAvLyAtLS0gRXh0cmFjdCBvdXRwdXRzIGFuZCBpbnB1dHMgLS0tXG4gIGNvbnN0IG91dHB1dHM6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IGJpZ2ludDsgdG9rZW5OYW1lPzogc3RyaW5nIH1bXSA9IFtdO1xuICBjb25zdCBpbnB1dHM6IHsgYWRkcmVzczogc3RyaW5nOyB2YWx1ZTogYmlnaW50IH1bXSA9IFtdO1xuXG4gIGlmIChjb21iaW5lZD8ua2luZCA9PT0gJ1N0YWtpbmdBY3RpdmF0ZScpIHtcbiAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBjb21iaW5lZC5zdGFraW5nQWRkcmVzcywgYW1vdW50OiBjb21iaW5lZC5hbW91bnQgfSk7XG4gICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBjb21iaW5lZC5mcm9tQWRkcmVzcywgdmFsdWU6IGNvbWJpbmVkLmFtb3VudCB9KTtcbiAgfSBlbHNlIGlmIChjb21iaW5lZD8ua2luZCA9PT0gJ1dhbGxldEluaXRpYWxpemF0aW9uJykge1xuICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGNvbWJpbmVkLm5vbmNlQWRkcmVzcywgYW1vdW50OiBjb21iaW5lZC5hbW91bnQgfSk7XG4gICAgaW5wdXRzLnB1c2goeyBhZGRyZXNzOiBjb21iaW5lZC5mcm9tQWRkcmVzcywgdmFsdWU6IGNvbWJpbmVkLmFtb3VudCB9KTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKGNvbnN0IGluc3RyIG9mIHBhcnNlZC5pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBzd2l0Y2ggKGluc3RyLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnVHJhbnNmZXInOlxuICAgICAgICAgIGlmIChpc01hcmluYWRlRGVhY3RpdmF0ZSkgYnJlYWs7XG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIudG9BZGRyZXNzLCBhbW91bnQ6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLmZyb21BZGRyZXNzLCB2YWx1ZTogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdUb2tlblRyYW5zZmVyJzpcbiAgICAgICAgICBvdXRwdXRzLnB1c2goeyBhZGRyZXNzOiBpbnN0ci50b0FkZHJlc3MsIGFtb3VudDogaW5zdHIuYW1vdW50LCB0b2tlbk5hbWU6IGluc3RyLnRva2VuQWRkcmVzcyB9KTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLmZyb21BZGRyZXNzLCB2YWx1ZTogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdTdGFraW5nQWN0aXZhdGUnOlxuICAgICAgICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLnN0YWtpbmdBZGRyZXNzLCBhbW91bnQ6IGluc3RyLmFtb3VudCB9KTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLmZyb21BZGRyZXNzLCB2YWx1ZTogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdTdGFraW5nV2l0aGRyYXcnOlxuICAgICAgICAgIC8vIFdpdGhkcmF3OiBTT0wgZmxvd3MgRlJPTSBzdGFraW5nIGFkZHJlc3MgVE8gdGhlIHJlY2lwaWVudCAoZnJvbUFkZHJlc3MpXG4gICAgICAgICAgb3V0cHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuZnJvbUFkZHJlc3MsIGFtb3VudDogaW5zdHIuYW1vdW50IH0pO1xuICAgICAgICAgIGlucHV0cy5wdXNoKHsgYWRkcmVzczogaW5zdHIuc3Rha2luZ0FkZHJlc3MsIHZhbHVlOiBpbnN0ci5hbW91bnQgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1N0YWtlUG9vbERlcG9zaXRTb2wnOlxuICAgICAgICAgIC8vIEppdG8gbGlxdWlkIHN0YWtpbmcgZGVwb3NpdFxuICAgICAgICAgIG91dHB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLnN0YWtlUG9vbCwgYW1vdW50OiBpbnN0ci5sYW1wb3J0cyB9KTtcbiAgICAgICAgICBpbnB1dHMucHVzaCh7IGFkZHJlc3M6IGluc3RyLmZ1bmRpbmdBY2NvdW50LCB2YWx1ZTogaW5zdHIubGFtcG9ydHMgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIE91dHB1dCBhbW91bnQgKG5hdGl2ZSBTT0wgb25seSwgbm90IHRva2VuIGFtb3VudHMpIC0tLVxuICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gIW8udG9rZW5OYW1lKS5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgby5hbW91bnQsIDBuKTtcblxuICAvLyAtLS0gQVRBIG93bmVyIG1hcHBpbmcgYW5kIHRva2VuIGVuYWJsZW1lbnRzIC0tLVxuICBjb25zdCBhdGFPd25lck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBjb25zdCB0b2tlbkVuYWJsZW1lbnRzOiBJVG9rZW5FbmFibGVtZW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBpbnN0ciBvZiBwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgIGlmIChpbnN0ci50eXBlID09PSAnQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCcpIHtcbiAgICAgIGF0YU93bmVyTWFwW2luc3RyLmF0YUFkZHJlc3NdID0gaW5zdHIub3duZXJBZGRyZXNzO1xuICAgICAgdG9rZW5FbmFibGVtZW50cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogaW5zdHIuYXRhQWRkcmVzcyxcbiAgICAgICAgdG9rZW5OYW1lOiBmaW5kVG9rZW5OYW1lKGluc3RyLm1pbnRBZGRyZXNzLCB1bmRlZmluZWQsIHRydWUpLFxuICAgICAgICB0b2tlbkFkZHJlc3M6IGluc3RyLm1pbnRBZGRyZXNzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFN0YWtpbmcgYXV0aG9yaXplIC0tLVxuICBsZXQgc3Rha2luZ0F1dGhvcml6ZTogU3Rha2luZ0F1dGhvcml6ZVBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgZm9yIChjb25zdCBpbnN0ciBvZiBwYXJzZWQuaW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgIGlmIChpbnN0ci50eXBlID09PSAnU3Rha2luZ0F1dGhvcml6ZScpIHtcbiAgICAgIHN0YWtpbmdBdXRob3JpemUgPSBtYXBTdGFraW5nQXV0aG9yaXplKGluc3RyKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBSZXNvbHZlIHRva2VuIG5hbWVzIGFuZCBjb252ZXJ0IGJpZ2ludCB0byBzdHJpbmcgYXQgc2VyaWFsaXphdGlvbiBib3VuZGFyeSAtLS1cbiAgY29uc3QgcmVzb2x2ZWRPdXRwdXRzID0gb3V0cHV0cy5tYXAoKG8pID0+ICh7XG4gICAgYWRkcmVzczogby5hZGRyZXNzLFxuICAgIGFtb3VudDogU3RyaW5nKG8uYW1vdW50KSxcbiAgICAuLi4oby50b2tlbk5hbWUgPyB7IHRva2VuTmFtZTogZmluZFRva2VuTmFtZShvLnRva2VuTmFtZSwgdW5kZWZpbmVkLCB0cnVlKSB9IDoge30pLFxuICB9KSk7XG5cbiAgY29uc3QgcmVzb2x2ZWRJbnB1dHMgPSBpbnB1dHMubWFwKChpKSA9PiAoe1xuICAgIGFkZHJlc3M6IGkuYWRkcmVzcyxcbiAgICB2YWx1ZTogU3RyaW5nKGkudmFsdWUpLFxuICB9KSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkaXNwbGF5T3JkZXI6IFtcbiAgICAgICdpZCcsXG4gICAgICAndHlwZScsXG4gICAgICAnYmxvY2toYXNoJyxcbiAgICAgICdkdXJhYmxlTm9uY2UnLFxuICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICdvdXRwdXRzJyxcbiAgICAgICdjaGFuZ2VPdXRwdXRzJyxcbiAgICAgICd0b2tlbkVuYWJsZW1lbnRzJyxcbiAgICAgICdmZWUnLFxuICAgICAgJ21lbW8nLFxuICAgIF0sXG4gICAgaWQ6IGlkID8/IFVOQVZBSUxBQkxFX1RFWFQsXG4gICAgLy8gV0FTTSByZXR1cm5zIFwiU3Rha2luZ0F1dGhvcml6ZVwiIGJ1dCBCaXRHb0pTIHVzZXMgXCJTdGFraW5nQXV0aG9yaXplUmF3XCJcbiAgICAvLyB3aGVuIGRlc2VyaWFsaXppbmcgZnJvbSBieXRlcyAodGhlIG5vbi1yYXcgdHlwZSBvbmx5IGV4aXN0cyBkdXJpbmcgYnVpbGRpbmcpLlxuICAgIHR5cGU6IHR4VHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBdXRob3JpemUgPyAnU3Rha2luZ0F1dGhvcml6ZVJhdycgOiB0eFR5cGUsXG4gICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgb3V0cHV0QW1vdW50OiBTdHJpbmcob3V0cHV0QW1vdW50KSxcbiAgICBvdXRwdXRzOiByZXNvbHZlZE91dHB1dHMsXG4gICAgaW5wdXRzOiByZXNvbHZlZElucHV0cyxcbiAgICBmZWVQYXllcjogcGFyc2VkLmZlZVBheWVyLFxuICAgIGZlZToge1xuICAgICAgZmVlOiBwYXJhbXMuZmVlSW5mbyA/IFN0cmluZyhmZWUpIDogJzAnLFxuICAgICAgZmVlUmF0ZTogcGFyYW1zLmZlZUluZm8gPyBOdW1iZXIocGFyYW1zLmZlZUluZm8uZmVlKSA6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIG1lbW8sXG4gICAgYmxvY2toYXNoOiBwYXJzZWQubm9uY2UsXG4gICAgZHVyYWJsZU5vbmNlOiBwYXJzZWQuZHVyYWJsZU5vbmNlLFxuICAgIHRva2VuRW5hYmxlbWVudHMsXG4gICAgYXRhT3duZXJNYXAsXG4gICAgLi4uKHN0YWtpbmdBdXRob3JpemUgPyB7IHN0YWtpbmdBdXRob3JpemUgfSA6IHt9KSxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,262 @@
1
+ import { SolStakingTypeEnum } from '@bitgo/public-types';
2
+ import { TransactionExplanation as BaseTransactionExplanation, Recipient, SolInstruction, SolVersionedInstruction } from '@bitgo-beta/sdk-core';
3
+ import { DecodedCloseAccountInstruction } from '@solana/spl-token';
4
+ import { Blockhash, StakeInstructionType, SystemInstructionType, TransactionSignature } from '@solana/web3.js';
5
+ import { InstructionBuilderTypes } from './constants';
6
+ import { StakePoolInstructionType } from '@solana/spl-stake-pool';
7
+ import { DepositSolStakePoolData, WithdrawStakeStakePoolData } from './jitoStakePoolOperations';
8
+ export interface SolanaKeys {
9
+ prv?: Uint8Array | string;
10
+ pub: string;
11
+ }
12
+ export interface DurableNonceParams {
13
+ walletNonceAddress: string;
14
+ authWalletAddress: string;
15
+ }
16
+ export interface TxData {
17
+ id?: TransactionSignature;
18
+ feePayer?: string;
19
+ lamportsPerSignature?: number;
20
+ numSignatures: number;
21
+ nonce: Blockhash;
22
+ durableNonce?: DurableNonceParams;
23
+ instructionsData: InstructionParams[];
24
+ }
25
+ export type InstructionParams = Nonce | Memo | WalletInit | SetComputeUnitLimit | SetPriorityFee | Transfer | StakingActivate | StakingDeactivate | StakingWithdraw | AtaInit | AtaClose | AtaRecoverNested | TokenTransfer | StakingAuthorize | StakingDelegate | MintTo | Burn | Approve | CustomInstruction | VersionedCustomInstruction;
26
+ export interface Memo {
27
+ type: InstructionBuilderTypes.Memo;
28
+ params: {
29
+ memo: string;
30
+ };
31
+ }
32
+ export interface Nonce {
33
+ type: InstructionBuilderTypes.NonceAdvance;
34
+ params: DurableNonceParams;
35
+ }
36
+ export interface WalletInit {
37
+ type: InstructionBuilderTypes.CreateNonceAccount;
38
+ params: {
39
+ fromAddress: string;
40
+ nonceAddress: string;
41
+ authAddress: string;
42
+ amount: string;
43
+ };
44
+ }
45
+ export interface Transfer {
46
+ type: InstructionBuilderTypes.Transfer;
47
+ params: {
48
+ fromAddress: string;
49
+ toAddress: string;
50
+ amount: string;
51
+ };
52
+ }
53
+ export interface TokenTransfer {
54
+ type: InstructionBuilderTypes.TokenTransfer;
55
+ params: {
56
+ fromAddress: string;
57
+ toAddress: string;
58
+ amount: string;
59
+ tokenName: string;
60
+ sourceAddress: string;
61
+ tokenAddress?: string;
62
+ decimalPlaces?: number;
63
+ programId?: string;
64
+ };
65
+ }
66
+ export interface MintTo {
67
+ type: InstructionBuilderTypes.MintTo;
68
+ params: {
69
+ mintAddress: string;
70
+ destinationAddress: string;
71
+ authorityAddress: string;
72
+ amount: string;
73
+ tokenName: string;
74
+ decimalPlaces?: number;
75
+ programId?: string;
76
+ };
77
+ }
78
+ export interface Burn {
79
+ type: InstructionBuilderTypes.Burn;
80
+ params: {
81
+ mintAddress: string;
82
+ accountAddress: string;
83
+ authorityAddress: string;
84
+ amount: string;
85
+ tokenName: string;
86
+ decimalPlaces?: number;
87
+ programId?: string;
88
+ };
89
+ }
90
+ export interface Approve {
91
+ type: InstructionBuilderTypes.Approve;
92
+ params: {
93
+ accountAddress: string;
94
+ delegateAddress: string;
95
+ ownerAddress: string;
96
+ amount: string;
97
+ programId?: string;
98
+ };
99
+ }
100
+ export interface JitoStakingActivateParams {
101
+ stakePoolData: DepositSolStakePoolData;
102
+ createAssociatedTokenAccount?: boolean;
103
+ }
104
+ export type StakingActivateExtraParams = JitoStakingActivateParams;
105
+ export interface StakingActivate {
106
+ type: InstructionBuilderTypes.StakingActivate;
107
+ params: {
108
+ fromAddress: string;
109
+ stakingAddress: string;
110
+ amount: string;
111
+ validator: string;
112
+ stakingType: SolStakingTypeEnum;
113
+ extraParams?: StakingActivateExtraParams;
114
+ };
115
+ }
116
+ export interface StakingDelegate {
117
+ type: InstructionBuilderTypes.StakingDelegate;
118
+ params: {
119
+ stakingAddress: string;
120
+ fromAddress: string;
121
+ validator: string;
122
+ };
123
+ }
124
+ export interface JitoStakingDeactivateParams {
125
+ stakePoolData: WithdrawStakeStakePoolData;
126
+ validatorAddress: string;
127
+ transferAuthorityAddress: string;
128
+ }
129
+ export type StakingDeactivateExtraParams = JitoStakingDeactivateParams;
130
+ export interface StakingDeactivate {
131
+ type: InstructionBuilderTypes.StakingDeactivate;
132
+ params: {
133
+ fromAddress: string;
134
+ stakingAddress: string;
135
+ amount?: string;
136
+ unstakingAddress?: string;
137
+ stakingType: SolStakingTypeEnum;
138
+ extraParams?: StakingDeactivateExtraParams;
139
+ recipients?: Recipient[];
140
+ };
141
+ }
142
+ export interface StakingWithdraw {
143
+ type: InstructionBuilderTypes.StakingWithdraw;
144
+ params: {
145
+ fromAddress: string;
146
+ stakingAddress: string;
147
+ amount: string;
148
+ };
149
+ }
150
+ export interface StakingAuthorize {
151
+ type: InstructionBuilderTypes.StakingAuthorize;
152
+ params: {
153
+ stakingAddress: string;
154
+ oldAuthorizeAddress: any;
155
+ newAuthorizeAddress: string;
156
+ newWithdrawAddress?: string;
157
+ custodianAddress?: string;
158
+ };
159
+ }
160
+ export interface SetComputeUnitLimit {
161
+ type: InstructionBuilderTypes.SetComputeUnitLimit;
162
+ params: {
163
+ units: number;
164
+ };
165
+ }
166
+ export interface SetPriorityFee {
167
+ type: InstructionBuilderTypes.SetPriorityFee;
168
+ params: {
169
+ fee: number | bigint;
170
+ };
171
+ }
172
+ export interface AtaInit {
173
+ type: InstructionBuilderTypes.CreateAssociatedTokenAccount;
174
+ params: {
175
+ mintAddress: string;
176
+ ataAddress: string;
177
+ ownerAddress: string;
178
+ payerAddress: string;
179
+ tokenName: string;
180
+ programId?: string;
181
+ };
182
+ }
183
+ export interface AtaClose {
184
+ type: InstructionBuilderTypes.CloseAssociatedTokenAccount;
185
+ params: {
186
+ accountAddress: string;
187
+ destinationAddress: string;
188
+ authorityAddress: string;
189
+ };
190
+ }
191
+ export interface AtaRecoverNested {
192
+ type: InstructionBuilderTypes.RecoverNestedAssociatedTokenAccount;
193
+ params: {
194
+ nestedAccountAddress: string;
195
+ nestedMintAddress: string;
196
+ destinationAccountAddress: string;
197
+ ownerAccountAddress: string;
198
+ ownerMintAddress: string;
199
+ walletAddress: string;
200
+ };
201
+ }
202
+ export type ValidInstructionTypes = SystemInstructionType | StakeInstructionType | StakePoolInstructionType | 'Memo' | 'InitializeAssociatedTokenAccount' | 'CloseAssociatedTokenAccount' | 'RecoverNestedAssociatedTokenAccount' | DecodedCloseAccountInstruction | 'TokenTransfer' | 'SetComputeUnitLimit' | 'SetPriorityFee' | 'MintTo' | 'Burn' | 'Approve' | 'CustomInstruction';
203
+ export type StakingAuthorizeParams = {
204
+ stakingAddress: string;
205
+ oldWithdrawAddress: string;
206
+ newWithdrawAddress: string;
207
+ custodianAddress?: string;
208
+ oldStakingAuthorityAddress?: string;
209
+ newStakingAuthorityAddress?: string;
210
+ };
211
+ export type StakingDelegateParams = {
212
+ stakingAddress: string;
213
+ fromAddress: string;
214
+ validator: string;
215
+ };
216
+ export interface CustomInstruction {
217
+ type: InstructionBuilderTypes.CustomInstruction;
218
+ params: SolInstruction;
219
+ }
220
+ export interface VersionedCustomInstruction {
221
+ type: InstructionBuilderTypes.VersionedCustomInstruction;
222
+ params: SolVersionedInstruction;
223
+ }
224
+ export interface VersionedTransactionData {
225
+ versionedInstructions: SolVersionedInstruction[];
226
+ addressLookupTables: AddressLookupTable[];
227
+ staticAccountKeys: string[];
228
+ messageHeader: {
229
+ numRequiredSignatures: number;
230
+ numReadonlySignedAccounts: number;
231
+ numReadonlyUnsignedAccounts: number;
232
+ };
233
+ recentBlockhash?: string;
234
+ }
235
+ export interface AddressLookupTable {
236
+ accountKey: string;
237
+ writableIndexes: number[];
238
+ readonlyIndexes: number[];
239
+ }
240
+ export interface TransactionExplanation extends BaseTransactionExplanation {
241
+ type: string;
242
+ blockhash: Blockhash;
243
+ durableNonce?: DurableNonceParams;
244
+ memo?: string;
245
+ stakingAuthorize?: StakingAuthorizeParams;
246
+ stakingDelegate?: StakingDelegateParams;
247
+ inputs?: {
248
+ address: string;
249
+ value: string;
250
+ coin?: string;
251
+ }[];
252
+ feePayer?: string;
253
+ ataOwnerMap?: Record<string, string>;
254
+ }
255
+ export declare class TokenAssociateRecipient {
256
+ ownerAddress: string;
257
+ tokenName: string;
258
+ ataAddress?: string;
259
+ tokenAddress?: string;
260
+ programId?: string;
261
+ }
262
+ //# sourceMappingURL=iface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export class TokenAssociateRecipient {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9UQSxNQUFNLE9BQU8sdUJBQXVCO0NBTW5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29sU3Rha2luZ1R5cGVFbnVtIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBSZWNpcGllbnQsXG4gIFNvbEluc3RydWN0aW9uLFxuICBTb2xWZXJzaW9uZWRJbnN0cnVjdGlvbixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgRGVjb2RlZENsb3NlQWNjb3VudEluc3RydWN0aW9uIH0gZnJvbSAnQHNvbGFuYS9zcGwtdG9rZW4nO1xuaW1wb3J0IHsgQmxvY2toYXNoLCBTdGFrZUluc3RydWN0aW9uVHlwZSwgU3lzdGVtSW5zdHJ1Y3Rpb25UeXBlLCBUcmFuc2FjdGlvblNpZ25hdHVyZSB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFN0YWtlUG9vbEluc3RydWN0aW9uVHlwZSB9IGZyb20gJ0Bzb2xhbmEvc3BsLXN0YWtlLXBvb2wnO1xuaW1wb3J0IHsgRGVwb3NpdFNvbFN0YWtlUG9vbERhdGEsIFdpdGhkcmF3U3Rha2VTdGFrZVBvb2xEYXRhIH0gZnJvbSAnLi9qaXRvU3Rha2VQb29sT3BlcmF0aW9ucyc7XG5cbi8vIFRPRE8oU1RMWC05ODkwKTogQWRkIHRoZSBpbnRlcmZhY2VzIGZvciB2YWxpZGl0eVdpbmRvdyBhbmQgU2VxdWVuY2VJZFxuZXhwb3J0IGludGVyZmFjZSBTb2xhbmFLZXlzIHtcbiAgcHJ2PzogVWludDhBcnJheSB8IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIER1cmFibGVOb25jZVBhcmFtcyB7XG4gIHdhbGxldE5vbmNlQWRkcmVzczogc3RyaW5nO1xuICBhdXRoV2FsbGV0QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkPzogVHJhbnNhY3Rpb25TaWduYXR1cmU7XG4gIGZlZVBheWVyPzogc3RyaW5nO1xuICBsYW1wb3J0c1BlclNpZ25hdHVyZT86IG51bWJlcjtcbiAgbnVtU2lnbmF0dXJlczogbnVtYmVyO1xuICBub25jZTogQmxvY2toYXNoO1xuICAvLyBvbmx5IHBvcHVsYXRlZCB3aGVuIG5vbmNlIGlzIGZyb20gYSBkdXJhYmxlIG5vbmNlIGFjY291bnRcbiAgZHVyYWJsZU5vbmNlPzogRHVyYWJsZU5vbmNlUGFyYW1zO1xuICBpbnN0cnVjdGlvbnNEYXRhOiBJbnN0cnVjdGlvblBhcmFtc1tdO1xufVxuXG5leHBvcnQgdHlwZSBJbnN0cnVjdGlvblBhcmFtcyA9XG4gIHwgTm9uY2VcbiAgfCBNZW1vXG4gIHwgV2FsbGV0SW5pdFxuICB8IFNldENvbXB1dGVVbml0TGltaXRcbiAgfCBTZXRQcmlvcml0eUZlZVxuICB8IFRyYW5zZmVyXG4gIHwgU3Rha2luZ0FjdGl2YXRlXG4gIHwgU3Rha2luZ0RlYWN0aXZhdGVcbiAgfCBTdGFraW5nV2l0aGRyYXdcbiAgfCBBdGFJbml0XG4gIHwgQXRhQ2xvc2VcbiAgfCBBdGFSZWNvdmVyTmVzdGVkXG4gIHwgVG9rZW5UcmFuc2ZlclxuICB8IFN0YWtpbmdBdXRob3JpemVcbiAgfCBTdGFraW5nRGVsZWdhdGVcbiAgfCBNaW50VG9cbiAgfCBCdXJuXG4gIHwgQXBwcm92ZVxuICB8IEN1c3RvbUluc3RydWN0aW9uXG4gIHwgVmVyc2lvbmVkQ3VzdG9tSW5zdHJ1Y3Rpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtbyB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW87XG4gIHBhcmFtczogeyBtZW1vOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb25jZSB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk5vbmNlQWR2YW5jZTtcbiAgcGFyYW1zOiBEdXJhYmxlTm9uY2VQYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0SW5pdCB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZU5vbmNlQWNjb3VudDtcbiAgcGFyYW1zOiB7IGZyb21BZGRyZXNzOiBzdHJpbmc7IG5vbmNlQWRkcmVzczogc3RyaW5nOyBhdXRoQWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZmVyIHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVHJhbnNmZXI7XG4gIHBhcmFtczoge1xuICAgIGZyb21BZGRyZXNzOiBzdHJpbmc7XG4gICAgdG9BZGRyZXNzOiBzdHJpbmc7XG4gICAgYW1vdW50OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UcmFuc2ZlciB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRva2VuVHJhbnNmZXI7XG4gIHBhcmFtczoge1xuICAgIGZyb21BZGRyZXNzOiBzdHJpbmc7XG4gICAgdG9BZGRyZXNzOiBzdHJpbmc7XG4gICAgYW1vdW50OiBzdHJpbmc7XG4gICAgdG9rZW5OYW1lOiBzdHJpbmc7XG4gICAgc291cmNlQWRkcmVzczogc3RyaW5nO1xuICAgIHRva2VuQWRkcmVzcz86IHN0cmluZztcbiAgICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xuICAgIHByb2dyYW1JZD86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW50VG8ge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5NaW50VG87XG4gIHBhcmFtczoge1xuICAgIG1pbnRBZGRyZXNzOiBzdHJpbmc7XG4gICAgZGVzdGluYXRpb25BZGRyZXNzOiBzdHJpbmc7XG4gICAgYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nO1xuICAgIHRva2VuTmFtZTogc3RyaW5nO1xuICAgIGRlY2ltYWxQbGFjZXM/OiBudW1iZXI7XG4gICAgcHJvZ3JhbUlkPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1cm4ge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5CdXJuO1xuICBwYXJhbXM6IHtcbiAgICBtaW50QWRkcmVzczogc3RyaW5nO1xuICAgIGFjY291bnRBZGRyZXNzOiBzdHJpbmc7XG4gICAgYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nO1xuICAgIHRva2VuTmFtZTogc3RyaW5nO1xuICAgIGRlY2ltYWxQbGFjZXM/OiBudW1iZXI7XG4gICAgcHJvZ3JhbUlkPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmUge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5BcHByb3ZlO1xuICBwYXJhbXM6IHtcbiAgICBhY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICAgIGRlbGVnYXRlQWRkcmVzczogc3RyaW5nO1xuICAgIG93bmVyQWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nO1xuICAgIHByb2dyYW1JZD86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKaXRvU3Rha2luZ0FjdGl2YXRlUGFyYW1zIHtcbiAgc3Rha2VQb29sRGF0YTogRGVwb3NpdFNvbFN0YWtlUG9vbERhdGE7XG4gIGNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTdGFraW5nQWN0aXZhdGVFeHRyYVBhcmFtcyA9IEppdG9TdGFraW5nQWN0aXZhdGVQYXJhbXM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ0FjdGl2YXRlIHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0FjdGl2YXRlO1xuICBwYXJhbXM6IHtcbiAgICBmcm9tQWRkcmVzczogc3RyaW5nO1xuICAgIHN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gICAgYW1vdW50OiBzdHJpbmc7XG4gICAgdmFsaWRhdG9yOiBzdHJpbmc7XG4gICAgc3Rha2luZ1R5cGU6IFNvbFN0YWtpbmdUeXBlRW51bTtcbiAgICBleHRyYVBhcmFtcz86IFN0YWtpbmdBY3RpdmF0ZUV4dHJhUGFyYW1zO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWtpbmdEZWxlZ2F0ZSB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWxlZ2F0ZTtcbiAgcGFyYW1zOiB7IHN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7IGZyb21BZGRyZXNzOiBzdHJpbmc7IHZhbGlkYXRvcjogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSml0b1N0YWtpbmdEZWFjdGl2YXRlUGFyYW1zIHtcbiAgc3Rha2VQb29sRGF0YTogV2l0aGRyYXdTdGFrZVN0YWtlUG9vbERhdGE7XG4gIHZhbGlkYXRvckFkZHJlc3M6IHN0cmluZztcbiAgdHJhbnNmZXJBdXRob3JpdHlBZGRyZXNzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFN0YWtpbmdEZWFjdGl2YXRlRXh0cmFQYXJhbXMgPSBKaXRvU3Rha2luZ0RlYWN0aXZhdGVQYXJhbXM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ0RlYWN0aXZhdGUge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZTtcbiAgcGFyYW1zOiB7XG4gICAgZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgICBzdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudD86IHN0cmluZztcbiAgICB1bnN0YWtpbmdBZGRyZXNzPzogc3RyaW5nO1xuICAgIHN0YWtpbmdUeXBlOiBTb2xTdGFraW5nVHlwZUVudW07XG4gICAgZXh0cmFQYXJhbXM/OiBTdGFraW5nRGVhY3RpdmF0ZUV4dHJhUGFyYW1zO1xuICAgIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFraW5nV2l0aGRyYXcge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nV2l0aGRyYXc7XG4gIHBhcmFtczogeyBmcm9tQWRkcmVzczogc3RyaW5nOyBzdGFraW5nQWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWtpbmdBdXRob3JpemUge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nQXV0aG9yaXplO1xuICBwYXJhbXM6IHtcbiAgICBzdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICAgIG9sZEF1dGhvcml6ZUFkZHJlc3M7XG4gICAgbmV3QXV0aG9yaXplQWRkcmVzczogc3RyaW5nO1xuICAgIG5ld1dpdGhkcmF3QWRkcmVzcz86IHN0cmluZztcbiAgICBjdXN0b2RpYW5BZGRyZXNzPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldENvbXB1dGVVbml0TGltaXQge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TZXRDb21wdXRlVW5pdExpbWl0O1xuICBwYXJhbXM6IHtcbiAgICB1bml0czogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFByaW9yaXR5RmVlIHtcbiAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU2V0UHJpb3JpdHlGZWU7XG4gIHBhcmFtczoge1xuICAgIGZlZTogbnVtYmVyIHwgYmlnaW50O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0YUluaXQge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50O1xuICBwYXJhbXM6IHtcbiAgICBtaW50QWRkcmVzczogc3RyaW5nO1xuICAgIGF0YUFkZHJlc3M6IHN0cmluZztcbiAgICBvd25lckFkZHJlc3M6IHN0cmluZztcbiAgICBwYXllckFkZHJlc3M6IHN0cmluZztcbiAgICB0b2tlbk5hbWU6IHN0cmluZztcbiAgICBwcm9ncmFtSWQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRhQ2xvc2Uge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ7XG4gIHBhcmFtczogeyBhY2NvdW50QWRkcmVzczogc3RyaW5nOyBkZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZzsgYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRhUmVjb3Zlck5lc3RlZCB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlJlY292ZXJOZXN0ZWRBc3NvY2lhdGVkVG9rZW5BY2NvdW50O1xuICBwYXJhbXM6IHtcbiAgICBuZXN0ZWRBY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICAgIG5lc3RlZE1pbnRBZGRyZXNzOiBzdHJpbmc7XG4gICAgZGVzdGluYXRpb25BY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICAgIG93bmVyQWNjb3VudEFkZHJlc3M6IHN0cmluZztcbiAgICBvd25lck1pbnRBZGRyZXNzOiBzdHJpbmc7XG4gICAgd2FsbGV0QWRkcmVzczogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBWYWxpZEluc3RydWN0aW9uVHlwZXMgPVxuICB8IFN5c3RlbUluc3RydWN0aW9uVHlwZVxuICB8IFN0YWtlSW5zdHJ1Y3Rpb25UeXBlXG4gIHwgU3Rha2VQb29sSW5zdHJ1Y3Rpb25UeXBlXG4gIHwgJ01lbW8nXG4gIHwgJ0luaXRpYWxpemVBc3NvY2lhdGVkVG9rZW5BY2NvdW50J1xuICB8ICdDbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQnXG4gIHwgJ1JlY292ZXJOZXN0ZWRBc3NvY2lhdGVkVG9rZW5BY2NvdW50J1xuICB8IERlY29kZWRDbG9zZUFjY291bnRJbnN0cnVjdGlvblxuICB8ICdUb2tlblRyYW5zZmVyJ1xuICB8ICdTZXRDb21wdXRlVW5pdExpbWl0J1xuICB8ICdTZXRQcmlvcml0eUZlZSdcbiAgfCAnTWludFRvJ1xuICB8ICdCdXJuJ1xuICB8ICdBcHByb3ZlJ1xuICB8ICdDdXN0b21JbnN0cnVjdGlvbic7XG5cbmV4cG9ydCB0eXBlIFN0YWtpbmdBdXRob3JpemVQYXJhbXMgPSB7XG4gIHN0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIG9sZFdpdGhkcmF3QWRkcmVzczogc3RyaW5nO1xuICBuZXdXaXRoZHJhd0FkZHJlc3M6IHN0cmluZztcbiAgY3VzdG9kaWFuQWRkcmVzcz86IHN0cmluZztcbiAgb2xkU3Rha2luZ0F1dGhvcml0eUFkZHJlc3M/OiBzdHJpbmc7XG4gIG5ld1N0YWtpbmdBdXRob3JpdHlBZGRyZXNzPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU3Rha2luZ0RlbGVnYXRlUGFyYW1zID0ge1xuICBzdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xuICB2YWxpZGF0b3I6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tSW5zdHJ1Y3Rpb24ge1xuICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DdXN0b21JbnN0cnVjdGlvbjtcbiAgcGFyYW1zOiBTb2xJbnN0cnVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uZWRDdXN0b21JbnN0cnVjdGlvbiB7XG4gIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcnNpb25lZEN1c3RvbUluc3RydWN0aW9uO1xuICBwYXJhbXM6IFNvbFZlcnNpb25lZEluc3RydWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSB7XG4gIHZlcnNpb25lZEluc3RydWN0aW9uczogU29sVmVyc2lvbmVkSW5zdHJ1Y3Rpb25bXTtcbiAgYWRkcmVzc0xvb2t1cFRhYmxlczogQWRkcmVzc0xvb2t1cFRhYmxlW107XG4gIHN0YXRpY0FjY291bnRLZXlzOiBzdHJpbmdbXTtcbiAgbWVzc2FnZUhlYWRlcjoge1xuICAgIG51bVJlcXVpcmVkU2lnbmF0dXJlczogbnVtYmVyO1xuICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IG51bWJlcjtcbiAgICBudW1SZWFkb25seVVuc2lnbmVkQWNjb3VudHM6IG51bWJlcjtcbiAgfTtcbiAgcmVjZW50QmxvY2toYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NMb29rdXBUYWJsZSB7XG4gIGFjY291bnRLZXk6IHN0cmluZztcbiAgd3JpdGFibGVJbmRleGVzOiBudW1iZXJbXTtcbiAgcmVhZG9ubHlJbmRleGVzOiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGJsb2NraGFzaDogQmxvY2toYXNoO1xuICAvLyBvbmx5IHBvcHVsYXRlZCBpZiBibG9ja2hhc2ggaXMgZnJvbSBhIG5vbmNlIGFjY291bnRcbiAgZHVyYWJsZU5vbmNlPzogRHVyYWJsZU5vbmNlUGFyYW1zO1xuICBtZW1vPzogc3RyaW5nO1xuICBzdGFraW5nQXV0aG9yaXplPzogU3Rha2luZ0F1dGhvcml6ZVBhcmFtcztcbiAgc3Rha2luZ0RlbGVnYXRlPzogU3Rha2luZ0RlbGVnYXRlUGFyYW1zO1xuICBpbnB1dHM/OiB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgY29pbj86IHN0cmluZyB9W107XG4gIGZlZVBheWVyPzogc3RyaW5nO1xuICBhdGFPd25lck1hcD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCB7XG4gIG93bmVyQWRkcmVzczogc3RyaW5nO1xuICB0b2tlbk5hbWU6IHN0cmluZztcbiAgYXRhQWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5BZGRyZXNzPzogc3RyaW5nO1xuICBwcm9ncmFtSWQ/OiBzdHJpbmc7XG59XG4iXX0=