@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 @@
1
+ {"version":3,"file":"versionedTransaction.d.ts","sourceRoot":"","sources":["../../../../test/unit/versionedTransaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const src_1 = require("../../src");
41
+ const testData = __importStar(require("../resources/sol"));
42
+ const getBuilderFactory_1 = require("./getBuilderFactory");
43
+ const bs58_1 = __importDefault(require("bs58"));
44
+ const { VersionedTransaction } = require('@solana/web3.js');
45
+ describe('Sol Jupiter Swap Transaction', () => {
46
+ const walletKeyPair = new src_1.KeyPair(testData.authAccount);
47
+ const wallet = walletKeyPair.getKeys();
48
+ it('should preserve instructions and ALTs when building and signing', async function () {
49
+ // Jupiter Swap Transaction (Versioned)
50
+ const versionedTransaction = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAFDTWoM5DBCGn7cn5aV56fomo6mhD2K1c5XYhQIan41E6dG9t06ox6DMdvVuBnSEATyN/8qIq246iO5aDm1jm82x4wM40FR8Q7xSZUpUtB0lbvelaZ46oRQ2GM9hWGMukHG1EUsA1R9ZO55ClUvNMyw8IQOrfRmu3ONG50oNeluT4LgaOacN+I4d0HStcu+oh0no4XXgVUwjzk5+egiUaQDkCCjXAlSDAb46ahLAfWeKOqzO/HC/z2WgRk8RS1yc6heMZzBbR3SPDwrNvWlCZGaETaixiH9ufdOJ823Gv+MnxH1SOu6TCsX1+TMskj94D3NElDpado8okFQbUuzaijU9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAEedVb8jHAbu50xW7OaBUH/bGy3qP0jlECsc2iVrwTjwbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp+mGpF4I4ZrV12bapJ7p61Babt3ty7HYDUKtMso38OYgHCgAFAooyBAAKAAkDoQ4BAAAAAAAIAgAFDAIAAAAwKyIAAAAAAAsFBQAgDAgJk/F7ZPSErnb/CQYABwAdCAwBAQs/HgAFDg0HIB0MDBwLJg8mEBIODSAdESYeDAwkJgIDBgsmGyYWGQ4EICUaJh4MDCQmGBcBCyIjDCEeBA0VExQfMtGYU5N8/tjpC0ANAwAAAAAAWqwAAAAAAAAyAAAAAAADAAAAJiwaAAMm5AwAAgoQJwIDDAMFAAABCQQpv5UHKk+/BN9xdZPnOLzMIScoFcJHGoDZ+fVVsNSEJQI0IwUAKA4CFyo9SDjsPdfWXAdMF0mu2+xZbw9rbR6rzNAEeFkLmyKwBGBmYWUAMHCJ6Oi0A1Qjpjp1Yv3xP+sPLm2qJ//TKZd5Z9KzjvEDwb3CA77DwOtKd1MCu6h4XJjC42yc8TcL92nhzFUR6HLW3XrAIZOvBo6Ki5CRjQOMk5Q=';
51
+ const originalDeserialized = VersionedTransaction.deserialize(Buffer.from(versionedTransaction, 'base64'));
52
+ const versionedInstructions = originalDeserialized.message.compiledInstructions.map((ix) => ({
53
+ programIdIndex: ix.programIdIndex,
54
+ accountKeyIndexes: ix.accountKeyIndexes,
55
+ data: bs58_1.default.encode(ix.data),
56
+ }));
57
+ const addressLookupTables = originalDeserialized.message.addressTableLookups?.map((lookup) => ({
58
+ accountKey: lookup.accountKey.toBase58(),
59
+ writableIndexes: lookup.writableIndexes,
60
+ readonlyIndexes: lookup.readonlyIndexes,
61
+ })) || [];
62
+ const staticAccountKeys = originalDeserialized.message.staticAccountKeys.map((key) => key.toBase58());
63
+ staticAccountKeys[0] = testData.authAccount.pub; // Replace fee payer with our test account
64
+ const versionedTransactionData = {
65
+ versionedInstructions,
66
+ addressLookupTables,
67
+ staticAccountKeys,
68
+ messageHeader: originalDeserialized.message.header,
69
+ recentBlockhash: originalDeserialized.message.recentBlockhash,
70
+ };
71
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
72
+ const txBuilder = factory.getCustomInstructionBuilder();
73
+ // Build transaction from versioned transaction data
74
+ txBuilder.fromVersionedTransactionData(versionedTransactionData);
75
+ txBuilder.nonce(testData.blockHashes.validBlockHashes[0]);
76
+ // Build unsigned transaction
77
+ const txUnsigned = (await txBuilder.build());
78
+ should_1.default.exist(txUnsigned);
79
+ txUnsigned.isVersionedTransaction().should.be.true();
80
+ should_1.default.exist(txUnsigned.toBroadcastFormat());
81
+ // Sign the transaction
82
+ txBuilder.sign({ key: wallet.prv });
83
+ const tx = (await txBuilder.build());
84
+ const rawTx = tx.toBroadcastFormat();
85
+ tx.isVersionedTransaction().should.be.true();
86
+ should_1.default.exist(rawTx);
87
+ const txBuilder2 = factory.getCustomInstructionBuilder();
88
+ txBuilder2.fromVersionedTransactionData(versionedTransactionData);
89
+ txBuilder2.nonce(testData.blockHashes.validBlockHashes[0]);
90
+ const tx2 = await txBuilder2.build();
91
+ should_1.default.equal(tx2.signablePayload.toString('hex'), txUnsigned.signablePayload.toString('hex'));
92
+ should_1.default.equal(tx2.type, txUnsigned.type);
93
+ // Verify we can add signature manually
94
+ const signed = tx.signature[0];
95
+ const txBuilder3 = factory.getCustomInstructionBuilder();
96
+ txBuilder3.fromVersionedTransactionData(versionedTransactionData);
97
+ txBuilder3.nonce(testData.blockHashes.validBlockHashes[0]);
98
+ await txBuilder3.addSignature({ pub: wallet.pub }, Buffer.from(bs58_1.default.decode(signed)));
99
+ const signedTx = await txBuilder3.build();
100
+ should_1.default.equal(signedTx.type, tx.type);
101
+ const rawSignedTx = signedTx.toBroadcastFormat();
102
+ should_1.default.equal(rawSignedTx, rawTx);
103
+ const signedDeserialized = VersionedTransaction.deserialize(Buffer.from(rawTx, 'base64'));
104
+ // Verify all instructions are preserved
105
+ const origInstructions = originalDeserialized.message.compiledInstructions;
106
+ const signedInstructions = signedDeserialized.message.compiledInstructions;
107
+ should_1.default.equal(origInstructions.length, signedInstructions.length, 'Number of instructions should match');
108
+ for (let i = 0; i < origInstructions.length; i++) {
109
+ should_1.default.equal(origInstructions[i].programIdIndex, signedInstructions[i].programIdIndex, `Instruction ${i}: programIdIndex should match`);
110
+ should_1.default.deepEqual(origInstructions[i].accountKeyIndexes, signedInstructions[i].accountKeyIndexes, `Instruction ${i}: accountKeyIndexes should match`);
111
+ should_1.default.equal(Buffer.from(origInstructions[i].data).toString('hex'), Buffer.from(signedInstructions[i].data).toString('hex'), `Instruction ${i}: data should match`);
112
+ }
113
+ // Verify all ALTs are preserved
114
+ const origALTs = originalDeserialized.message.addressTableLookups || [];
115
+ const signedALTs = signedDeserialized.message.addressTableLookups || [];
116
+ should_1.default.equal(origALTs.length, signedALTs.length, 'Number of ALTs should match');
117
+ for (let i = 0; i < origALTs.length; i++) {
118
+ should_1.default.equal(origALTs[i].accountKey.toBase58(), signedALTs[i].accountKey.toBase58(), `ALT ${i}: accountKey should match`);
119
+ should_1.default.deepEqual(origALTs[i].writableIndexes, signedALTs[i].writableIndexes, `ALT ${i}: writableIndexes should match`);
120
+ should_1.default.deepEqual(origALTs[i].readonlyIndexes, signedALTs[i].readonlyIndexes, `ALT ${i}: readonlyIndexes should match`);
121
+ }
122
+ });
123
+ it('should automatically inject nonce advance instruction when using durable nonce with versioned transactions', async function () {
124
+ // Simple transaction with one memo instruction
125
+ const versionedTransactionData = {
126
+ versionedInstructions: [
127
+ {
128
+ programIdIndex: 1,
129
+ accountKeyIndexes: [0],
130
+ data: bs58_1.default.encode(Buffer.from('Hello Versioned Tx', 'utf-8')),
131
+ },
132
+ ],
133
+ addressLookupTables: [],
134
+ staticAccountKeys: [testData.authAccount.pub, 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'],
135
+ messageHeader: {
136
+ numRequiredSignatures: 1,
137
+ numReadonlySignedAccounts: 0,
138
+ numReadonlyUnsignedAccounts: 0,
139
+ },
140
+ };
141
+ const durableNonceParams = {
142
+ walletNonceAddress: 'GHtXQBsoZHVnNFa9YevAzxNzQBz7CV5hj6bSe3u52W9n',
143
+ authWalletAddress: '8Y7RM6JfcX4ASSNBkrkrmScq3Z9UWV4CJBwtfSNgqTN2',
144
+ };
145
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
146
+ const txBuilder = factory.getCustomInstructionBuilder();
147
+ // Providing durableNonceParams triggers automatic nonce advance injection
148
+ txBuilder.nonce(testData.blockHashes.validBlockHashes[0], durableNonceParams);
149
+ txBuilder.fromVersionedTransactionData(versionedTransactionData);
150
+ const tx = (await txBuilder.build());
151
+ const builtData = tx.getVersionedTransactionData();
152
+ should_1.default.exist(builtData);
153
+ // Nonce advance instruction should be prepended
154
+ builtData.versionedInstructions.length.should.equal(2);
155
+ const nonceInstruction = builtData.versionedInstructions[0];
156
+ nonceInstruction.accountKeyIndexes.length.should.equal(3);
157
+ // numRequiredSignatures should be updated to include nonce authority
158
+ const numSigners = builtData.messageHeader.numRequiredSignatures;
159
+ numSigners.should.equal(2);
160
+ // Both fee payer and nonce authority should be in signer section
161
+ const signerKeys = builtData.staticAccountKeys.slice(0, numSigners);
162
+ signerKeys.should.containEql(testData.authAccount.pub);
163
+ signerKeys.should.containEql(durableNonceParams.authWalletAddress);
164
+ // Fee payer must remain at index 0
165
+ builtData.staticAccountKeys[0].should.equal(testData.authAccount.pub);
166
+ // Required accounts for nonce advance should be added
167
+ builtData.staticAccountKeys.should.containEql(durableNonceParams.walletNonceAddress);
168
+ builtData.staticAccountKeys.should.containEql('11111111111111111111111111111111');
169
+ builtData.staticAccountKeys.should.containEql('SysvarRecentB1ockHashes11111111111111111111');
170
+ // Original instruction indices should be remapped after account reordering
171
+ const originalInstruction = builtData.versionedInstructions[1];
172
+ originalInstruction.programIdIndex.should.equal(builtData.staticAccountKeys.indexOf('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'));
173
+ originalInstruction.accountKeyIndexes[0].should.equal(builtData.staticAccountKeys.indexOf(testData.authAccount.pub));
174
+ });
175
+ it('should not inject nonce advance when using recentBlockhash (no durableNonceParams)', async function () {
176
+ const versionedTransactionData = {
177
+ versionedInstructions: [
178
+ {
179
+ programIdIndex: 1,
180
+ accountKeyIndexes: [0],
181
+ data: bs58_1.default.encode(Buffer.from('Hello', 'utf-8')),
182
+ },
183
+ ],
184
+ addressLookupTables: [],
185
+ staticAccountKeys: [testData.authAccount.pub, 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'],
186
+ messageHeader: {
187
+ numRequiredSignatures: 1,
188
+ numReadonlySignedAccounts: 0,
189
+ numReadonlyUnsignedAccounts: 0,
190
+ },
191
+ recentBlockhash: testData.blockHashes.validBlockHashes[0],
192
+ };
193
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
194
+ const txBuilder = factory.getCustomInstructionBuilder();
195
+ // Regular nonce without durableNonceParams should not trigger injection
196
+ txBuilder.nonce(testData.blockHashes.validBlockHashes[0]);
197
+ txBuilder.fromVersionedTransactionData(versionedTransactionData);
198
+ const tx = (await txBuilder.build());
199
+ const builtData = tx.getVersionedTransactionData();
200
+ should_1.default.exist(builtData);
201
+ // Transaction should remain unchanged
202
+ builtData.versionedInstructions.length.should.equal(1);
203
+ builtData.messageHeader.numRequiredSignatures.should.equal(1);
204
+ builtData.staticAccountKeys.length.should.equal(2);
205
+ });
206
+ });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVkVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdmVyc2lvbmVkVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWlEO0FBQ2pELDJEQUE2QztBQUM3QywyREFBd0Q7QUFDeEQsZ0RBQTBCO0FBQzFCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsS0FBSztRQUN6RSx1Q0FBdUM7UUFDdkMsTUFBTSxvQkFBb0IsR0FDeEIsMG9DQUEwb0MsQ0FBQztRQUU3b0MsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTNHLE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRixjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWM7WUFDakMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQjtZQUN2QyxJQUFJLEVBQUUsY0FBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxtQkFBbUIsR0FDdkIsb0JB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LENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy9zb2wnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCBiYXNlNTggZnJvbSAnYnM1OCc7XG5jb25zdCB7IFZlcnNpb25lZFRyYW5zYWN0aW9uIH0gPSByZXF1aXJlKCdAc29sYW5hL3dlYjMuanMnKTtcblxuZGVzY3JpYmUoJ1NvbCBKdXBpdGVyIFN3YXAgVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHdhbGxldEtleVBhaXIgPSBuZXcgS2V5UGFpcih0ZXN0RGF0YS5hdXRoQWNjb3VudCk7XG4gIGNvbnN0IHdhbGxldCA9IHdhbGxldEtleVBhaXIuZ2V0S2V5cygpO1xuXG4gIGl0KCdzaG91bGQgcHJlc2VydmUgaW5zdHJ1Y3Rpb25zIGFuZCBBTFRzIHdoZW4gYnVpbGRpbmcgYW5kIHNpZ25pbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgLy8gSnVwaXRlciBTd2FwIFRyYW5zYWN0aW9uIChWZXJzaW9uZWQpXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb24gPVxuICAgICAgJ0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBUUFGRFRXb001REJDR243Y241YVY1NmZvbW82bWhEMksxYzVYWWhRSWFuNDFFNmRHOXQwNm94NkRNZHZWdUJuU0VBVHlOLzhxSXEyNDZpTzVhRG0xam04Mng0d000MEZSOFE3eFNaVXBVdEIwbGJ2ZWxhWjQ2b1JRMkdNOWhXR011a0hHMUVVc0ExUjlaTzU1Q2xVdk5NeXc4SVFPcmZSbXUzT05HNTBvTmVsdVQ0TGdhT2FjTitJNGQwSFN0Y3Urb2gwbm80WFhnVlV3anprNStlZ2lVYVFEa0NDalhBbFNEQWI0NmFoTEFmV2VLT3F6Ty9IQy96MldnUms4UlMxeWM2aGVNWnpCYlIzU1BEd3JOdldsQ1pHYUVUYWl4aUg5dWZkT0o4MjNHditNbnhIMVNPdTZUQ3NYMStUTXNrajk0RDNORWxEcGFkbzhva0ZRYlV1emFpalU5b0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUl5WEpZOU9KSW54dXowUUtSU09EWU1MV2hPWjJ2OFFoQVNPZTlqYjZmaFpBd1pHYitVaEZ6TC83SzI2Y3NPYjU3eU01YnZGOXhKckxFT2JPa0FBQUFBRWVkVmI4akhBYnU1MHhXN09hQlVIL2JHeTNxUDBqbEVDc2MyaVZyd1Rqd2JkOXVIWFphR1QyY3ZoUnM3cmVhd2N0SVh0WDFzM2tUcU05WVYrL3dDcCttR3BGNEk0WnJWMTJiYXBKN3A2MUJhYnQzdHk3SFlEVUt0TXNvMzhPWWdIQ2dBRkFvb3lCQUFLQUFrRG9RNEJBQUFBQUFBSUFnQUZEQUlBQUFBd0t5SUFBQUFBQUFzRkJRQWdEQWdKay9GN1pQU0VybmIvQ1FZQUJ3QWRDQXdCQVFzL0hnQUZEZzBISUIwTURCd0xKZzhtRUJJT0RTQWRFU1llREF3a0pnSURCZ3NtR3lZV0dRNEVJQ1VhSmg0TURDUW1HQmNCQ3lJakRDRWVCQTBWRXhRZk10R1lVNU44L3RqcEMwQU5Bd0FBQUFBQVdxd0FBQUFBQUFBeUFBQUFBQUFEQUFBQUppd2FBQU1tNUF3QUFnb1FKd0lEREFNRkFBQUJDUVFwdjVVSEtrKy9CTjl4ZFpQbk9Mek1JU2NvRmNKSEdvRForZlZWc05TRUpRSTBJd1VBS0E0Q0Z5bzlTRGpzUGRmV1hBZE1GMG11Mit4WmJ3OXJiUjZyek5BRWVGa0xteUt3QkdCbVlXVUFNSENKNk9pMEExUWpwanAxWXYzeFArc1BMbTJxSi8vVEtaZDVaOUt6anZFRHdiM0NBNzdEd090S2QxTUN1Nmg0WEpqQzQyeWM4VGNMOTJuaHpGVVI2SExXM1hyQUlaT3ZCbzZLaTVDUmpRT01rNVE9JztcblxuICAgIGNvbnN0IG9yaWdpbmFsRGVzZXJpYWxpemVkID0gVmVyc2lvbmVkVHJhbnNhY3Rpb24uZGVzZXJpYWxpemUoQnVmZmVyLmZyb20odmVyc2lvbmVkVHJhbnNhY3Rpb24sICdiYXNlNjQnKSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zLm1hcCgoaXgpID0+ICh7XG4gICAgICBwcm9ncmFtSWRJbmRleDogaXgucHJvZ3JhbUlkSW5kZXgsXG4gICAgICBhY2NvdW50S2V5SW5kZXhlczogaXguYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKGl4LmRhdGEpLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGFkZHJlc3NMb29rdXBUYWJsZXMgPVxuICAgICAgb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5hZGRyZXNzVGFibGVMb29rdXBzPy5tYXAoKGxvb2t1cCkgPT4gKHtcbiAgICAgICAgYWNjb3VudEtleTogbG9va3VwLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgd3JpdGFibGVJbmRleGVzOiBsb29rdXAud3JpdGFibGVJbmRleGVzLFxuICAgICAgICByZWFkb25seUluZGV4ZXM6IGxvb2t1cC5yZWFkb25seUluZGV4ZXMsXG4gICAgICB9KSkgfHwgW107XG5cbiAgICBjb25zdCBzdGF0aWNBY2NvdW50S2V5cyA9IG9yaWdpbmFsRGVzZXJpYWxpemVkLm1lc3NhZ2Uuc3RhdGljQWNjb3VudEtleXMubWFwKChrZXkpID0+IGtleS50b0Jhc2U1OCgpKTtcbiAgICBzdGF0aWNBY2NvdW50S2V5c1swXSA9IHRlc3REYXRhLmF1dGhBY2NvdW50LnB1YjsgLy8gUmVwbGFjZSBmZWUgcGF5ZXIgd2l0aCBvdXIgdGVzdCBhY2NvdW50XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMsXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzLFxuICAgICAgc3RhdGljQWNjb3VudEtleXMsXG4gICAgICBtZXNzYWdlSGVhZGVyOiBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmhlYWRlcixcbiAgICAgIHJlY2VudEJsb2NraGFzaDogb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5yZWNlbnRCbG9ja2hhc2gsXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBCdWlsZCB0cmFuc2FjdGlvbiBmcm9tIHZlcnNpb25lZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG5cbiAgICAvLyBCdWlsZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgIGNvbnN0IHR4VW5zaWduZWQgPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkKTtcbiAgICB0eFVuc2lnbmVkLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkLnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuXG4gICAgLy8gU2lnbiB0aGUgdHJhbnNhY3Rpb25cbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogd2FsbGV0LnBydiB9KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHR4LmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdChyYXdUeCk7XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIyID0gZmFjdG9yeS5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIyLm5vbmNlKHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0pO1xuICAgIGNvbnN0IHR4MiA9IGF3YWl0IHR4QnVpbGRlcjIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbCh0eDIuc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSwgdHhVbnNpZ25lZC5zaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBzaG91bGQuZXF1YWwodHgyLnR5cGUsIHR4VW5zaWduZWQudHlwZSk7XG5cbiAgICAvLyBWZXJpZnkgd2UgY2FuIGFkZCBzaWduYXR1cmUgbWFudWFsbHlcbiAgICBjb25zdCBzaWduZWQgPSB0eC5zaWduYXR1cmVbMF07XG4gICAgY29uc3QgdHhCdWlsZGVyMyA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyMy5mcm9tVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgdHhCdWlsZGVyMy5ub25jZSh0ZXN0RGF0YS5ibG9ja0hhc2hlcy52YWxpZEJsb2NrSGFzaGVzWzBdKTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIzLmFkZFNpZ25hdHVyZSh7IHB1Yjogd2FsbGV0LnB1YiB9LCBCdWZmZXIuZnJvbShiYXNlNTguZGVjb2RlKHNpZ25lZCkpKTtcblxuICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgdHhCdWlsZGVyMy5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeC50eXBlLCB0eC50eXBlKTtcblxuICAgIGNvbnN0IHJhd1NpZ25lZFR4ID0gc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBzaG91bGQuZXF1YWwocmF3U2lnbmVkVHgsIHJhd1R4KTtcblxuICAgIGNvbnN0IHNpZ25lZERlc2VyaWFsaXplZCA9IFZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykpO1xuXG4gICAgLy8gVmVyaWZ5IGFsbCBpbnN0cnVjdGlvbnMgYXJlIHByZXNlcnZlZFxuICAgIGNvbnN0IG9yaWdJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIGNvbnN0IHNpZ25lZEluc3RydWN0aW9ucyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIHNob3VsZC5lcXVhbChvcmlnSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgc2lnbmVkSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgJ051bWJlciBvZiBpbnN0cnVjdGlvbnMgc2hvdWxkIG1hdGNoJyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdJbnN0cnVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0luc3RydWN0aW9uc1tpXS5wcm9ncmFtSWRJbmRleCxcbiAgICAgICAgc2lnbmVkSW5zdHJ1Y3Rpb25zW2ldLnByb2dyYW1JZEluZGV4LFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogcHJvZ3JhbUlkSW5kZXggc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoXG4gICAgICAgIG9yaWdJbnN0cnVjdGlvbnNbaV0uYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEluc3RydWN0aW9uc1tpXS5hY2NvdW50S2V5SW5kZXhlcyxcbiAgICAgICAgYEluc3RydWN0aW9uICR7aX06IGFjY291bnRLZXlJbmRleGVzIHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIEJ1ZmZlci5mcm9tKG9yaWdJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBCdWZmZXIuZnJvbShzaWduZWRJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogZGF0YSBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFZlcmlmeSBhbGwgQUxUcyBhcmUgcHJlc2VydmVkXG4gICAgY29uc3Qgb3JpZ0FMVHMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgY29uc3Qgc2lnbmVkQUxUcyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgc2hvdWxkLmVxdWFsKG9yaWdBTFRzLmxlbmd0aCwgc2lnbmVkQUxUcy5sZW5ndGgsICdOdW1iZXIgb2YgQUxUcyBzaG91bGQgbWF0Y2gnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3JpZ0FMVHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0uYWNjb3VudEtleS50b0Jhc2U1OCgpLFxuICAgICAgICBzaWduZWRBTFRzW2ldLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgYEFMVCAke2l9OiBhY2NvdW50S2V5IHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKFxuICAgICAgICBvcmlnQUxUc1tpXS53cml0YWJsZUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEFMVHNbaV0ud3JpdGFibGVJbmRleGVzLFxuICAgICAgICBgQUxUICR7aX06IHdyaXRhYmxlSW5kZXhlcyBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0ucmVhZG9ubHlJbmRleGVzLFxuICAgICAgICBzaWduZWRBTFRzW2ldLnJlYWRvbmx5SW5kZXhlcyxcbiAgICAgICAgYEFMVCAke2l9OiByZWFkb25seUluZGV4ZXMgc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYXV0b21hdGljYWxseSBpbmplY3Qgbm9uY2UgYWR2YW5jZSBpbnN0cnVjdGlvbiB3aGVuIHVzaW5nIGR1cmFibGUgbm9uY2Ugd2l0aCB2ZXJzaW9uZWQgdHJhbnNhY3Rpb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIFNpbXBsZSB0cmFuc2FjdGlvbiB3aXRoIG9uZSBtZW1vIGluc3RydWN0aW9uXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9ncmFtSWRJbmRleDogMSxcbiAgICAgICAgICBhY2NvdW50S2V5SW5kZXhlczogWzBdLFxuICAgICAgICAgIGRhdGE6IGJhc2U1OC5lbmNvZGUoQnVmZmVyLmZyb20oJ0hlbGxvIFZlcnNpb25lZCBUeCcsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGR1cmFibGVOb25jZVBhcmFtcyA9IHtcbiAgICAgIHdhbGxldE5vbmNlQWRkcmVzczogJ0dIdFhRQnNvWkhWbk5GYTlZZXZBenhOelFCejdDVjVoajZiU2UzdTUyVzluJyxcbiAgICAgIGF1dGhXYWxsZXRBZGRyZXNzOiAnOFk3Uk02SmZjWDRBU1NOQmtya3JtU2NxM1o5VVdWNENKQnd0ZlNOZ3FUTjInLFxuICAgIH07XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuXG4gICAgLy8gUHJvdmlkaW5nIGR1cmFibGVOb25jZVBhcmFtcyB0cmlnZ2VycyBhdXRvbWF0aWMgbm9uY2UgYWR2YW5jZSBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSwgZHVyYWJsZU5vbmNlUGFyYW1zKTtcbiAgICB0eEJ1aWxkZXIuZnJvbVZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSh2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGJ1aWx0RGF0YSA9IHR4LmdldFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSgpO1xuXG4gICAgc2hvdWxkLmV4aXN0KGJ1aWx0RGF0YSk7XG5cbiAgICAvLyBOb25jZSBhZHZhbmNlIGluc3RydWN0aW9uIHNob3VsZCBiZSBwcmVwZW5kZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgIGNvbnN0IG5vbmNlSW5zdHJ1Y3Rpb24gPSBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9uc1swXTtcbiAgICBub25jZUluc3RydWN0aW9uLmFjY291bnRLZXlJbmRleGVzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG5cbiAgICAvLyBudW1SZXF1aXJlZFNpZ25hdHVyZXMgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gaW5jbHVkZSBub25jZSBhdXRob3JpdHlcbiAgICBjb25zdCBudW1TaWduZXJzID0gYnVpbHREYXRhIS5tZXNzYWdlSGVhZGVyLm51bVJlcXVpcmVkU2lnbmF0dXJlcztcbiAgICBudW1TaWduZXJzLnNob3VsZC5lcXVhbCgyKTtcblxuICAgIC8vIEJvdGggZmVlIHBheWVyIGFuZCBub25jZSBhdXRob3JpdHkgc2hvdWxkIGJlIGluIHNpZ25lciBzZWN0aW9uXG4gICAgY29uc3Qgc2lnbmVyS2V5cyA9IGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2xpY2UoMCwgbnVtU2lnbmVycyk7XG4gICAgc2lnbmVyS2V5cy5zaG91bGQuY29udGFpbkVxbCh0ZXN0RGF0YS5hdXRoQWNjb3VudC5wdWIpO1xuICAgIHNpZ25lcktleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzKTtcblxuICAgIC8vIEZlZSBwYXllciBtdXN0IHJlbWFpbiBhdCBpbmRleCAwXG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5c1swXS5zaG91bGQuZXF1YWwodGVzdERhdGEuYXV0aEFjY291bnQucHViKTtcblxuICAgIC8vIFJlcXVpcmVkIGFjY291bnRzIGZvciBub25jZSBhZHZhbmNlIHNob3VsZCBiZSBhZGRlZFxuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyk7XG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5cy5zaG91bGQuY29udGFpbkVxbCgnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKTtcbiAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLnNob3VsZC5jb250YWluRXFsKCdTeXN2YXJSZWNlbnRCMW9ja0hhc2hlczExMTExMTExMTExMTExMTExMTExJyk7XG5cbiAgICAvLyBPcmlnaW5hbCBpbnN0cnVjdGlvbiBpbmRpY2VzIHNob3VsZCBiZSByZW1hcHBlZCBhZnRlciBhY2NvdW50IHJlb3JkZXJpbmdcbiAgICBjb25zdCBvcmlnaW5hbEluc3RydWN0aW9uID0gYnVpbHREYXRhIS52ZXJzaW9uZWRJbnN0cnVjdGlvbnNbMV07XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5wcm9ncmFtSWRJbmRleC5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YoJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInKVxuICAgICk7XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5hY2NvdW50S2V5SW5kZXhlc1swXS5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YodGVzdERhdGEuYXV0aEFjY291bnQucHViKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IGluamVjdCBub25jZSBhZHZhbmNlIHdoZW4gdXNpbmcgcmVjZW50QmxvY2toYXNoIChubyBkdXJhYmxlTm9uY2VQYXJhbXMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIHZlcnNpb25lZEluc3RydWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvZ3JhbUlkSW5kZXg6IDEsXG4gICAgICAgICAgYWNjb3VudEtleUluZGV4ZXM6IFswXSxcbiAgICAgICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKEJ1ZmZlci5mcm9tKCdIZWxsbycsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgICByZWNlbnRCbG9ja2hhc2g6IHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0sXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBSZWd1bGFyIG5vbmNlIHdpdGhvdXQgZHVyYWJsZU5vbmNlUGFyYW1zIHNob3VsZCBub3QgdHJpZ2dlciBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcblxuICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBidWlsdERhdGEgPSB0eC5nZXRWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEoKTtcblxuICAgIHNob3VsZC5leGlzdChidWlsdERhdGEpO1xuXG4gICAgLy8gVHJhbnNhY3Rpb24gc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEubWVzc2FnZUhlYWRlci5udW1SZXF1aXJlZFNpZ25hdHVyZXMuc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgfSk7XG59KTtcbiJdfQ==