@bitgo-beta/sdk-coin-sol 7.6.4-beta.71 → 7.6.4-beta.711

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 (496) 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/index.d.ts.map +1 -0
  4. package/dist/{src → cjs/src}/index.js +1 -1
  5. package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +12 -1
  6. package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
  7. package/dist/cjs/src/lib/ataInitializationBuilder.js +231 -0
  8. package/dist/cjs/src/lib/closeAtaBuilder.d.ts +55 -0
  9. package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
  10. package/dist/cjs/src/lib/closeAtaBuilder.js +162 -0
  11. package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts +128 -0
  12. package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
  13. package/dist/cjs/src/lib/confidentialTransferBuilder.js +311 -0
  14. package/dist/{src → cjs/src}/lib/constants.d.ts +89 -2
  15. package/dist/cjs/src/lib/constants.d.ts.map +1 -0
  16. package/dist/cjs/src/lib/constants.js +269 -0
  17. package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
  18. package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
  19. package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
  20. package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
  21. package/dist/cjs/src/lib/explainTransactionWasm.js +304 -0
  22. package/dist/cjs/src/lib/iface.d.ts +526 -0
  23. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  24. package/dist/cjs/src/lib/iface.js +7 -0
  25. package/dist/{src → cjs/src}/lib/index.d.ts +5 -0
  26. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  27. package/dist/cjs/src/lib/index.js +93 -0
  28. package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +3 -1
  29. package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
  30. package/dist/cjs/src/lib/instructionParamsFactory.js +1220 -0
  31. package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
  32. package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
  33. package/dist/{src → cjs/src}/lib/keyPair.d.ts +6 -0
  34. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  35. package/dist/cjs/src/lib/keyPair.js +112 -0
  36. package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
  37. package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
  38. package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  39. package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
  40. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
  41. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  42. package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
  43. package/dist/cjs/src/lib/scaledUiAmount.d.ts +30 -0
  44. package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
  45. package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
  46. package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts +21 -0
  47. package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts.map +1 -0
  48. package/dist/cjs/src/lib/serialization/codecs/v1/config.js +34 -0
  49. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts +14 -0
  50. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
  51. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.js +32 -0
  52. package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts +27 -0
  53. package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts.map +1 -0
  54. package/dist/cjs/src/lib/serialization/codecs/v1/message.js +196 -0
  55. package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts +30 -0
  56. package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
  57. package/dist/cjs/src/lib/serialization/compileTransactionMessage.js +205 -0
  58. package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts +9 -0
  59. package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts.map +1 -0
  60. package/dist/cjs/src/lib/serialization/parseWireTransaction.js +58 -0
  61. package/dist/cjs/src/lib/serialization/wire-transaction.d.ts +14 -0
  62. package/dist/cjs/src/lib/serialization/wire-transaction.d.ts.map +1 -0
  63. package/dist/cjs/src/lib/serialization/wire-transaction.js +51 -0
  64. package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +1 -1
  65. package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
  66. package/dist/cjs/src/lib/solInstructionFactory.js +1094 -0
  67. package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  68. package/dist/cjs/src/lib/stakingActivateBuilder.js +129 -0
  69. package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  70. package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
  71. package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  72. package/dist/cjs/src/lib/stakingDeactivateBuilder.js +214 -0
  73. package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  74. package/dist/cjs/src/lib/stakingDelegateBuilder.js +126 -0
  75. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  76. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  77. package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  78. package/dist/cjs/src/lib/stakingWithdrawBuilder.js +87 -0
  79. package/dist/cjs/src/lib/token2022Resolve.d.ts +106 -0
  80. package/dist/cjs/src/lib/token2022Resolve.d.ts.map +1 -0
  81. package/dist/cjs/src/lib/token2022Resolve.js +199 -0
  82. package/dist/cjs/src/lib/tokenExtensions.d.ts +26 -0
  83. package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
  84. package/dist/cjs/src/lib/tokenExtensions.js +105 -0
  85. package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +27 -1
  86. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  87. package/dist/cjs/src/lib/tokenTransferBuilder.js +237 -0
  88. package/dist/{src → cjs/src}/lib/transaction.d.ts +22 -0
  89. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  90. package/dist/cjs/src/lib/transaction.js +661 -0
  91. package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +9 -1
  92. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  93. package/dist/cjs/src/lib/transactionBuilder.js +388 -0
  94. package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +14 -0
  95. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  96. package/dist/cjs/src/lib/transactionBuilderFactory.js +222 -0
  97. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  98. package/dist/cjs/src/lib/transferBuilder.js +81 -0
  99. package/dist/cjs/src/lib/transferBuilderV2.d.ts +69 -0
  100. package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
  101. package/dist/cjs/src/lib/transferBuilderV2.js +252 -0
  102. package/dist/{src → cjs/src}/lib/utils.d.ts +5 -0
  103. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  104. package/dist/cjs/src/lib/utils.js +657 -0
  105. package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  106. package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
  107. package/dist/cjs/src/register.d.ts +5 -0
  108. package/dist/cjs/src/register.d.ts.map +1 -0
  109. package/dist/cjs/src/register.js +29 -0
  110. package/dist/{src → cjs/src}/sol.d.ts +114 -3
  111. package/dist/cjs/src/sol.d.ts.map +1 -0
  112. package/dist/cjs/src/sol.js +1670 -0
  113. package/dist/{src → cjs/src}/solToken.d.ts +7 -0
  114. package/dist/cjs/src/solToken.d.ts.map +1 -0
  115. package/dist/cjs/src/solToken.js +79 -0
  116. package/dist/cjs/src/tsol.d.ts.map +1 -0
  117. package/dist/cjs/src/tsol.js +24 -0
  118. package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
  119. package/dist/cjs/test/fixtures/sol.js +1433 -0
  120. package/dist/{test → cjs/test}/resources/sol.d.ts +29 -29
  121. package/dist/cjs/test/resources/sol.d.ts.map +1 -0
  122. package/dist/cjs/test/resources/sol.js +320 -0
  123. package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
  124. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  125. package/dist/cjs/test/unit/explainTransactionWasm.js +66 -0
  126. package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  127. package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
  128. package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
  129. package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
  130. package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
  131. package/dist/cjs/test/unit/instructionParamsFactory.js +425 -0
  132. package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  133. package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
  134. package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
  135. package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
  136. package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
  137. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  138. package/dist/cjs/test/unit/keyPair.js +177 -0
  139. package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  140. package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
  141. package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  142. package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
  143. package/dist/cjs/test/unit/register.d.ts +2 -0
  144. package/dist/cjs/test/unit/register.d.ts.map +1 -0
  145. package/dist/cjs/test/unit/register.js +65 -0
  146. package/dist/cjs/test/unit/scaledUiAmount.d.ts +2 -0
  147. package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
  148. package/dist/cjs/test/unit/scaledUiAmount.js +101 -0
  149. package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts +2 -0
  150. package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts.map +1 -0
  151. package/dist/cjs/test/unit/serialization/decodeV1Message.js +63 -0
  152. package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts +2 -0
  153. package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts.map +1 -0
  154. package/dist/cjs/test/unit/serialization/parseWireTransaction.js +90 -0
  155. package/dist/cjs/test/unit/serialization/transactionV1.d.ts +2 -0
  156. package/dist/cjs/test/unit/serialization/transactionV1.d.ts.map +1 -0
  157. package/dist/cjs/test/unit/serialization/transactionV1.js +136 -0
  158. package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
  159. package/dist/cjs/test/unit/sol.js +5038 -0
  160. package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
  161. package/dist/cjs/test/unit/solInstructionFactory.js +623 -0
  162. package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
  163. package/dist/cjs/test/unit/solToken.js +37 -0
  164. package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
  165. package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
  166. package/dist/cjs/test/unit/token2022Resolve.js +252 -0
  167. package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
  168. package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
  169. package/dist/cjs/test/unit/tokenExtensions.js +58 -0
  170. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  171. package/dist/cjs/test/unit/transaction.js +1108 -0
  172. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  173. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  174. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  175. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +508 -0
  176. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
  177. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
  178. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +343 -0
  179. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
  180. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
  181. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +909 -0
  182. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts +2 -0
  183. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts.map +1 -0
  184. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +144 -0
  185. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts +2 -0
  186. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts.map +1 -0
  187. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +167 -0
  188. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  189. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
  190. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  191. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  192. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  193. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  194. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  195. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  196. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  197. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  198. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  199. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  200. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  201. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +926 -0
  202. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  203. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  204. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  205. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +302 -0
  206. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  207. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +910 -0
  208. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  209. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  210. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  211. package/dist/cjs/test/unit/utils.js +628 -0
  212. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  213. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  214. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  215. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  216. package/dist/esm/index.d.ts +7 -0
  217. package/dist/esm/index.js +7 -0
  218. package/dist/esm/lib/ataInitializationBuilder.d.ts +58 -0
  219. package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
  220. package/dist/esm/lib/ataInitializationBuilder.js +191 -0
  221. package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
  222. package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
  223. package/dist/esm/lib/closeAtaBuilder.js +155 -0
  224. package/dist/esm/lib/confidentialTransferBuilder.d.ts +128 -0
  225. package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
  226. package/dist/esm/lib/confidentialTransferBuilder.js +304 -0
  227. package/dist/esm/lib/constants.d.ts +227 -0
  228. package/dist/esm/lib/constants.d.ts.map +1 -0
  229. package/dist/esm/lib/constants.js +266 -0
  230. package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
  231. package/dist/esm/lib/customInstructionBuilder.js +282 -0
  232. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  233. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  234. package/dist/esm/lib/explainTransactionWasm.js +301 -0
  235. package/dist/esm/lib/iface.d.ts +526 -0
  236. package/dist/esm/lib/iface.d.ts.map +1 -0
  237. package/dist/esm/lib/iface.js +3 -0
  238. package/dist/esm/lib/index.d.ts +27 -0
  239. package/dist/esm/lib/index.d.ts.map +1 -0
  240. package/dist/esm/lib/index.js +27 -0
  241. package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
  242. package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
  243. package/dist/esm/lib/instructionParamsFactory.js +1212 -0
  244. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  245. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  246. package/dist/esm/lib/keyPair.d.ts +32 -0
  247. package/dist/esm/lib/keyPair.d.ts.map +1 -0
  248. package/dist/esm/lib/keyPair.js +75 -0
  249. package/dist/esm/lib/messages/index.d.ts +2 -0
  250. package/dist/esm/lib/messages/index.js +2 -0
  251. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  252. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  253. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  254. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  255. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  256. package/dist/esm/lib/scaledUiAmount.d.ts +30 -0
  257. package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
  258. package/dist/esm/lib/scaledUiAmount.js +108 -0
  259. package/dist/esm/lib/serialization/codecs/v1/config.d.ts +21 -0
  260. package/dist/esm/lib/serialization/codecs/v1/config.d.ts.map +1 -0
  261. package/dist/esm/lib/serialization/codecs/v1/config.js +30 -0
  262. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts +14 -0
  263. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
  264. package/dist/esm/lib/serialization/codecs/v1/instruction.js +29 -0
  265. package/dist/esm/lib/serialization/codecs/v1/message.d.ts +27 -0
  266. package/dist/esm/lib/serialization/codecs/v1/message.d.ts.map +1 -0
  267. package/dist/esm/lib/serialization/codecs/v1/message.js +188 -0
  268. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts +30 -0
  269. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
  270. package/dist/esm/lib/serialization/compileTransactionMessage.js +202 -0
  271. package/dist/esm/lib/serialization/parseWireTransaction.d.ts +9 -0
  272. package/dist/esm/lib/serialization/parseWireTransaction.d.ts.map +1 -0
  273. package/dist/esm/lib/serialization/parseWireTransaction.js +50 -0
  274. package/dist/esm/lib/serialization/wire-transaction.d.ts +14 -0
  275. package/dist/esm/lib/serialization/wire-transaction.d.ts.map +1 -0
  276. package/dist/esm/lib/serialization/wire-transaction.js +48 -0
  277. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  278. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  279. package/dist/esm/lib/solInstructionFactory.js +1088 -0
  280. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  281. package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +1 -1
  282. package/dist/esm/lib/stakingActivateBuilder.js +122 -0
  283. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  284. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  285. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  286. package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  287. package/dist/esm/lib/stakingDeactivateBuilder.js +207 -0
  288. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  289. package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +1 -1
  290. package/dist/esm/lib/stakingDelegateBuilder.js +119 -0
  291. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  292. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  293. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  294. package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +1 -1
  295. package/dist/esm/lib/stakingWithdrawBuilder.js +80 -0
  296. package/dist/esm/lib/token2022Resolve.d.ts +106 -0
  297. package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
  298. package/dist/esm/lib/token2022Resolve.js +194 -0
  299. package/dist/esm/lib/tokenExtensions.d.ts +26 -0
  300. package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
  301. package/dist/esm/lib/tokenExtensions.js +99 -0
  302. package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
  303. package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
  304. package/dist/esm/lib/tokenTransferBuilder.js +230 -0
  305. package/dist/esm/lib/transaction.d.ts +125 -0
  306. package/dist/esm/lib/transaction.d.ts.map +1 -0
  307. package/dist/esm/lib/transaction.js +654 -0
  308. package/dist/esm/lib/transactionBuilder.d.ts +136 -0
  309. package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
  310. package/dist/esm/lib/transactionBuilder.js +381 -0
  311. package/dist/esm/lib/transactionBuilderFactory.d.ts +129 -0
  312. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  313. package/dist/esm/lib/transactionBuilderFactory.js +218 -0
  314. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  315. package/dist/{src → esm}/lib/transferBuilder.d.ts.map +1 -1
  316. package/dist/esm/lib/transferBuilder.js +74 -0
  317. package/dist/esm/lib/transferBuilderV2.d.ts +69 -0
  318. package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
  319. package/dist/esm/lib/transferBuilderV2.js +245 -0
  320. package/dist/esm/lib/utils.d.ts +205 -0
  321. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  322. package/dist/esm/lib/utils.js +619 -0
  323. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  324. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  325. package/dist/esm/register.d.ts +5 -0
  326. package/dist/esm/register.d.ts.map +1 -0
  327. package/dist/esm/register.js +24 -0
  328. package/dist/esm/sol.d.ts +351 -0
  329. package/dist/esm/sol.d.ts.map +1 -0
  330. package/dist/esm/sol.js +1629 -0
  331. package/dist/esm/solToken.d.ts +44 -0
  332. package/dist/esm/solToken.d.ts.map +1 -0
  333. package/dist/esm/solToken.js +75 -0
  334. package/dist/esm/tsol.d.ts +11 -0
  335. package/dist/esm/tsol.js +20 -0
  336. package/package.json +36 -16
  337. package/dist/src/config/token2022StaticConfig.d.ts +0 -3
  338. package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
  339. package/dist/src/config/token2022StaticConfig.js +0 -50
  340. package/dist/src/lib/ataInitializationBuilder.d.ts.map +0 -1
  341. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  342. package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
  343. package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
  344. package/dist/src/lib/closeAtaBuilder.js +0 -69
  345. package/dist/src/lib/constants.d.ts.map +0 -1
  346. package/dist/src/lib/constants.js +0 -171
  347. package/dist/src/lib/customInstructionBuilder.js +0 -289
  348. package/dist/src/lib/iface.d.ts +0 -244
  349. package/dist/src/lib/iface.d.ts.map +0 -1
  350. package/dist/src/lib/iface.js +0 -7
  351. package/dist/src/lib/index.d.ts.map +0 -1
  352. package/dist/src/lib/index.js +0 -77
  353. package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
  354. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  355. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  356. package/dist/src/lib/keyPair.d.ts.map +0 -1
  357. package/dist/src/lib/keyPair.js +0 -63
  358. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  359. package/dist/src/lib/solInstructionFactory.js +0 -572
  360. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  361. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  362. package/dist/src/lib/stakingDeactivateBuilder.js +0 -208
  363. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  364. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  365. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  366. package/dist/src/lib/token2022Config.d.ts +0 -44
  367. package/dist/src/lib/token2022Config.d.ts.map +0 -1
  368. package/dist/src/lib/token2022Config.js +0 -27
  369. package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
  370. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  371. package/dist/src/lib/transaction.d.ts.map +0 -1
  372. package/dist/src/lib/transaction.js +0 -595
  373. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  374. package/dist/src/lib/transactionBuilder.js +0 -380
  375. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  376. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  377. package/dist/src/lib/transferBuilder.js +0 -70
  378. package/dist/src/lib/transferBuilderV2.d.ts +0 -43
  379. package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
  380. package/dist/src/lib/transferBuilderV2.js +0 -210
  381. package/dist/src/lib/utils.js +0 -589
  382. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  383. package/dist/src/register.d.ts +0 -3
  384. package/dist/src/register.d.ts.map +0 -1
  385. package/dist/src/register.js +0 -15
  386. package/dist/src/sol.d.ts.map +0 -1
  387. package/dist/src/sol.js +0 -1324
  388. package/dist/src/solToken.d.ts.map +0 -1
  389. package/dist/src/solToken.js +0 -69
  390. package/dist/src/tsol.js +0 -24
  391. package/dist/test/fixtures/sol.js +0 -1433
  392. package/dist/test/resources/sol.d.ts.map +0 -1
  393. package/dist/test/resources/sol.js +0 -320
  394. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  395. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  396. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  397. package/dist/test/unit/getBuilderFactory.js +0 -10
  398. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  399. package/dist/test/unit/instructionParamsFactory.js +0 -412
  400. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  401. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  402. package/dist/test/unit/keyPair.js +0 -177
  403. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  404. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  405. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  406. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  407. package/dist/test/unit/sol.js +0 -3180
  408. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  409. package/dist/test/unit/solInstructionFactory.js +0 -454
  410. package/dist/test/unit/solToken.d.ts.map +0 -1
  411. package/dist/test/unit/solToken.js +0 -31
  412. package/dist/test/unit/transaction.d.ts.map +0 -1
  413. package/dist/test/unit/transaction.js +0 -983
  414. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  415. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  416. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  417. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  418. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  419. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  420. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  421. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  422. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  423. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  424. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  425. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  426. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  427. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  428. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  429. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  430. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  431. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  432. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  433. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  434. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  435. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  436. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  437. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  438. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  439. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  440. package/dist/test/unit/utils.js +0 -517
  441. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  442. package/dist/test/unit/versionedTransaction.js +0 -207
  443. package/dist/tsconfig.tsbuildinfo +0 -1
  444. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  445. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  446. /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
  447. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  448. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  449. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  450. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  451. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  452. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  453. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  454. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  455. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  456. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  457. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  458. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  459. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  460. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  461. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  462. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  463. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  464. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  465. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  466. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  467. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  468. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  469. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  470. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  471. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  472. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  473. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  474. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  475. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  476. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  477. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  478. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  479. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  480. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  481. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  482. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  483. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  484. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  485. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  486. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  487. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  488. /package/dist/{src → esm}/index.d.ts.map +0 -0
  489. /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
  490. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  491. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  492. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  493. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  494. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  495. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  496. /package/dist/{src → esm}/tsol.d.ts.map +0 -0
@@ -0,0 +1,128 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { SolTransactionVersion, SolV1TransactionConfig, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ import { ApplyPendingBalance, ConfidentialDeposit, ConfidentialTransfer, ConfidentialWithdraw, ConfigureConfidentialTransferAccount, VerifyEqualityProof, VerifyPubkeyValidity, VerifyRangeProof, VerifyValidityProof } from './iface';
6
+ /**
7
+ * Builder for Token-2022 confidential transfer transactions.
8
+ *
9
+ * Provides type-safe fluent setters for the following CT instructions:
10
+ * - ConfigureAccount (standalone, with VerifyPubkeyValidity proof)
11
+ * - ApplyPendingBalance (always instruction #1 in v1 spend txs, idempotent)
12
+ * - Deposit (public → confidential conversion)
13
+ * - Withdraw (confidential → public conversion, with equality + range proofs)
14
+ * - Transfer (confidential → confidential, with equality + validity + range proofs)
15
+ * - VerifyPubkeyValidity / VerifyEquality / VerifyValidity / VerifyRange proof instructions
16
+ *
17
+ * Instruction builders are v0/v1-agnostic: they produce instruction data and
18
+ * account metas only. The caller (Wallet Platform) assembles them into v1
19
+ * transactions in the correct order.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const builder = factory.getConfidentialTransferBuilder();
24
+ * builder.nonce(recentBlockhash).sender(payer);
25
+ * builder.configureAccount({ tokenAddress, mintAddress, authorityAddress, ... });
26
+ * builder.verifyPubkeyValidity({ proofData });
27
+ * const tx = await builder.build();
28
+ * ```
29
+ */
30
+ export declare class ConfidentialTransferBuilder extends TransactionBuilder {
31
+ private _ctInstructions;
32
+ private _version?;
33
+ private _v1TransactionConfig?;
34
+ constructor(_coinConfig: Readonly<CoinConfig>);
35
+ protected get transactionType(): TransactionType;
36
+ /**
37
+ * Set the Solana transaction version.
38
+ *
39
+ * Defaults to legacy until set. When set to `1`, the builder assembles a v1
40
+ * (SIMD-0296/0385) transaction: version byte `0x81`, an inline `transactionConfig`
41
+ * instead of ComputeBudget instructions, no address lookup tables, and a
42
+ * message-first wire format with signatures appended.
43
+ *
44
+ * @param version - the transaction version (0 = v0, 1 = v1)
45
+ * @returns {this} This builder
46
+ */
47
+ version(version: SolTransactionVersion): this;
48
+ /**
49
+ * Set the v1 transaction config (compute unit limit, heap size, loaded accounts
50
+ * data size limit, and priority fee as total lamports). Required when
51
+ * `version(1)` is set.
52
+ *
53
+ * @param config - the v1 transaction config
54
+ * @returns {this} This builder
55
+ */
56
+ transactionConfig(config: SolV1TransactionConfig): this;
57
+ /**
58
+ * Override the zk-elgamal-proof program id.
59
+ *
60
+ * Defaults to the canonical on-chain program id (`ZkE1Gama1Proof111...`)
61
+ * which is the same across mainnet, devnet, and testnet. Override only
62
+ * when targeting a custom deployment.
63
+ *
64
+ * @param programId - base58 encoded program id
65
+ */
66
+ zkProofProgramId(programId: string): this;
67
+ /** @inheritDoc */
68
+ initBuilder(tx: Transaction): void;
69
+ /**
70
+ * Add a ConfigureAccount instruction to the transaction.
71
+ * One-time ATA setup — registers ElGamal pubkey + AES zero ciphertext.
72
+ * Must be accompanied by a VerifyPubkeyValidity proof instruction.
73
+ */
74
+ configureAccount(params: ConfigureConfidentialTransferAccount['params']): this;
75
+ /**
76
+ * Add an ApplyPendingBalance instruction to the transaction.
77
+ * Credits pending balance into available balance. Idempotent (no-op if 0 pending).
78
+ * In v1 transactions, this should always be instruction #1.
79
+ */
80
+ applyPendingBalance(params: ApplyPendingBalance['params']): this;
81
+ /**
82
+ * Add a Deposit instruction to the transaction.
83
+ * Moves public SPL tokens into confidential pending balance. No proof required.
84
+ */
85
+ confidentialDeposit(params: ConfidentialDeposit['params']): this;
86
+ /**
87
+ * Add a Withdraw instruction to the transaction.
88
+ * Moves confidential available balance to public balance.
89
+ * Requires equality + range proof verification instructions.
90
+ */
91
+ confidentialWithdraw(params: ConfidentialWithdraw['params']): this;
92
+ /**
93
+ * Add a confidential Transfer instruction to the transaction.
94
+ * Requires equality + ciphertext validity + range proof verification instructions.
95
+ */
96
+ confidentialTransfer(params: ConfidentialTransfer['params']): this;
97
+ /**
98
+ * Add a VerifyPubkeyValidity proof instruction (used with ConfigureAccount).
99
+ */
100
+ verifyPubkeyValidity(params: VerifyPubkeyValidity['params']): this;
101
+ /**
102
+ * Add a VerifyCiphertextCommitmentEquality proof instruction (used with Transfer and Withdraw).
103
+ */
104
+ verifyEqualityProof(params: VerifyEqualityProof['params']): this;
105
+ /**
106
+ * Add a VerifyBatchedGroupedCiphertext3HandlesValidity proof instruction (used with Transfer).
107
+ */
108
+ verifyValidityProof(params: VerifyValidityProof['params']): this;
109
+ /**
110
+ * Add a VerifyBatchedRangeProofU128 proof instruction (used with Transfer).
111
+ */
112
+ verifyRangeProof(params: VerifyRangeProof['params']): this;
113
+ /** @inheritdoc */
114
+ protected buildImplementation(): Promise<Transaction>;
115
+ /**
116
+ * Build a v1 (SIMD-0296/0385) confidential transfer transaction.
117
+ *
118
+ * Assembles the CT instructions via the shared instruction factory, compiles
119
+ * and serializes a v1 message with the inline transaction config, signs the
120
+ * message bytes with the builder's signers, and stores the resulting wire
121
+ * bytes for broadcast. Also populates a metadata-only SolTransaction so the
122
+ * transaction JSON and input/output extraction remain usable.
123
+ *
124
+ * @returns {Transaction} The built transaction holding the v1 wire bytes
125
+ */
126
+ private buildV1;
127
+ }
128
+ //# sourceMappingURL=confidentialTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidentialTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/confidentialTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EAGpC,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAwB;IACzC,OAAO,CAAC,oBAAoB,CAAC,CAAyB;gBAE1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAK7C;;;;;;;OAOG;IACH,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAKvD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAsBlC;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,oCAAoC,CAAC,QAAQ,CAAC,GAAG,IAAI;IAc9E;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAahE;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAahE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAclE;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAgBlE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQlE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQhE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQhE;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQ1D,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO;CA+DhB"}
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConfidentialTransferBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
10
+ const transaction_1 = require("./transaction");
11
+ const transactionBuilder_1 = require("./transactionBuilder");
12
+ const constants_1 = require("./constants");
13
+ const compileTransactionMessage_1 = require("./serialization/compileTransactionMessage");
14
+ const wire_transaction_1 = require("./serialization/wire-transaction");
15
+ const solInstructionFactory_1 = require("./solInstructionFactory");
16
+ const assert_1 = __importDefault(require("assert"));
17
+ /**
18
+ * Builder for Token-2022 confidential transfer transactions.
19
+ *
20
+ * Provides type-safe fluent setters for the following CT instructions:
21
+ * - ConfigureAccount (standalone, with VerifyPubkeyValidity proof)
22
+ * - ApplyPendingBalance (always instruction #1 in v1 spend txs, idempotent)
23
+ * - Deposit (public → confidential conversion)
24
+ * - Withdraw (confidential → public conversion, with equality + range proofs)
25
+ * - Transfer (confidential → confidential, with equality + validity + range proofs)
26
+ * - VerifyPubkeyValidity / VerifyEquality / VerifyValidity / VerifyRange proof instructions
27
+ *
28
+ * Instruction builders are v0/v1-agnostic: they produce instruction data and
29
+ * account metas only. The caller (Wallet Platform) assembles them into v1
30
+ * transactions in the correct order.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const builder = factory.getConfidentialTransferBuilder();
35
+ * builder.nonce(recentBlockhash).sender(payer);
36
+ * builder.configureAccount({ tokenAddress, mintAddress, authorityAddress, ... });
37
+ * builder.verifyPubkeyValidity({ proofData });
38
+ * const tx = await builder.build();
39
+ * ```
40
+ */
41
+ class ConfidentialTransferBuilder extends transactionBuilder_1.TransactionBuilder {
42
+ constructor(_coinConfig) {
43
+ super(_coinConfig);
44
+ this._ctInstructions = [];
45
+ this._transaction = new transaction_1.Transaction(_coinConfig);
46
+ }
47
+ get transactionType() {
48
+ return sdk_core_1.TransactionType.ConfidentialTransfer;
49
+ }
50
+ /**
51
+ * Set the Solana transaction version.
52
+ *
53
+ * Defaults to legacy until set. When set to `1`, the builder assembles a v1
54
+ * (SIMD-0296/0385) transaction: version byte `0x81`, an inline `transactionConfig`
55
+ * instead of ComputeBudget instructions, no address lookup tables, and a
56
+ * message-first wire format with signatures appended.
57
+ *
58
+ * @param version - the transaction version (0 = v0, 1 = v1)
59
+ * @returns {this} This builder
60
+ */
61
+ version(version) {
62
+ this._version = version;
63
+ return this;
64
+ }
65
+ /**
66
+ * Set the v1 transaction config (compute unit limit, heap size, loaded accounts
67
+ * data size limit, and priority fee as total lamports). Required when
68
+ * `version(1)` is set.
69
+ *
70
+ * @param config - the v1 transaction config
71
+ * @returns {this} This builder
72
+ */
73
+ transactionConfig(config) {
74
+ this._v1TransactionConfig = config;
75
+ return this;
76
+ }
77
+ /**
78
+ * Override the zk-elgamal-proof program id.
79
+ *
80
+ * Defaults to the canonical on-chain program id (`ZkE1Gama1Proof111...`)
81
+ * which is the same across mainnet, devnet, and testnet. Override only
82
+ * when targeting a custom deployment.
83
+ *
84
+ * @param programId - base58 encoded program id
85
+ */
86
+ zkProofProgramId(programId) {
87
+ (0, assert_1.default)(programId, 'Missing programId param');
88
+ this._zkProofProgramId = programId;
89
+ return this;
90
+ }
91
+ /** @inheritDoc */
92
+ initBuilder(tx) {
93
+ super.initBuilder(tx);
94
+ this._ctInstructions = [];
95
+ for (const instruction of this._instructionsData) {
96
+ switch (instruction.type) {
97
+ case constants_1.InstructionBuilderTypes.ConfigureConfidentialTransferAccount:
98
+ case constants_1.InstructionBuilderTypes.ApplyPendingBalance:
99
+ case constants_1.InstructionBuilderTypes.ConfidentialDeposit:
100
+ case constants_1.InstructionBuilderTypes.ConfidentialWithdraw:
101
+ case constants_1.InstructionBuilderTypes.ConfidentialTransfer:
102
+ case constants_1.InstructionBuilderTypes.VerifyPubkeyValidity:
103
+ case constants_1.InstructionBuilderTypes.VerifyEqualityProof:
104
+ case constants_1.InstructionBuilderTypes.VerifyValidityProof:
105
+ case constants_1.InstructionBuilderTypes.VerifyRangeProof:
106
+ this._ctInstructions.push(instruction);
107
+ break;
108
+ default:
109
+ break;
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * Add a ConfigureAccount instruction to the transaction.
115
+ * One-time ATA setup — registers ElGamal pubkey + AES zero ciphertext.
116
+ * Must be accompanied by a VerifyPubkeyValidity proof instruction.
117
+ */
118
+ configureAccount(params) {
119
+ (0, assert_1.default)(params.tokenAddress, 'Missing tokenAddress param');
120
+ (0, assert_1.default)(params.mintAddress, 'Missing mintAddress param');
121
+ (0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
122
+ (0, assert_1.default)(params.decryptableZeroBalance, 'Missing decryptableZeroBalance param');
123
+ (0, assert_1.default)(params.maximumPendingBalanceCreditCounter, 'Missing maximumPendingBalanceCreditCounter param');
124
+ this._ctInstructions.push({
125
+ type: constants_1.InstructionBuilderTypes.ConfigureConfidentialTransferAccount,
126
+ params,
127
+ });
128
+ return this;
129
+ }
130
+ /**
131
+ * Add an ApplyPendingBalance instruction to the transaction.
132
+ * Credits pending balance into available balance. Idempotent (no-op if 0 pending).
133
+ * In v1 transactions, this should always be instruction #1.
134
+ */
135
+ applyPendingBalance(params) {
136
+ (0, assert_1.default)(params.tokenAddress, 'Missing tokenAddress param');
137
+ (0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
138
+ (0, assert_1.default)(params.expectedPendingBalanceCreditCounter, 'Missing expectedPendingBalanceCreditCounter param');
139
+ (0, assert_1.default)(params.newDecryptableAvailableBalance, 'Missing newDecryptableAvailableBalance param');
140
+ this._ctInstructions.push({
141
+ type: constants_1.InstructionBuilderTypes.ApplyPendingBalance,
142
+ params,
143
+ });
144
+ return this;
145
+ }
146
+ /**
147
+ * Add a Deposit instruction to the transaction.
148
+ * Moves public SPL tokens into confidential pending balance. No proof required.
149
+ */
150
+ confidentialDeposit(params) {
151
+ (0, assert_1.default)(params.tokenAddress, 'Missing tokenAddress param');
152
+ (0, assert_1.default)(params.mintAddress, 'Missing mintAddress param');
153
+ (0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
154
+ (0, assert_1.default)(params.amount, 'Missing amount param');
155
+ this._ctInstructions.push({
156
+ type: constants_1.InstructionBuilderTypes.ConfidentialDeposit,
157
+ params,
158
+ });
159
+ return this;
160
+ }
161
+ /**
162
+ * Add a Withdraw instruction to the transaction.
163
+ * Moves confidential available balance to public balance.
164
+ * Requires equality + range proof verification instructions.
165
+ */
166
+ confidentialWithdraw(params) {
167
+ (0, assert_1.default)(params.tokenAddress, 'Missing tokenAddress param');
168
+ (0, assert_1.default)(params.mintAddress, 'Missing mintAddress param');
169
+ (0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
170
+ (0, assert_1.default)(params.amount, 'Missing amount param');
171
+ (0, assert_1.default)(params.newDecryptableAvailableBalance, 'Missing newDecryptableAvailableBalance param');
172
+ this._ctInstructions.push({
173
+ type: constants_1.InstructionBuilderTypes.ConfidentialWithdraw,
174
+ params,
175
+ });
176
+ return this;
177
+ }
178
+ /**
179
+ * Add a confidential Transfer instruction to the transaction.
180
+ * Requires equality + ciphertext validity + range proof verification instructions.
181
+ */
182
+ confidentialTransfer(params) {
183
+ (0, assert_1.default)(params.sourceTokenAddress, 'Missing sourceTokenAddress param');
184
+ (0, assert_1.default)(params.mintAddress, 'Missing mintAddress param');
185
+ (0, assert_1.default)(params.destinationTokenAddress, 'Missing destinationTokenAddress param');
186
+ (0, assert_1.default)(params.authorityAddress, 'Missing authorityAddress param');
187
+ (0, assert_1.default)(params.newSourceDecryptableAvailableBalance, 'Missing newSourceDecryptableAvailableBalance param');
188
+ (0, assert_1.default)(params.transferAmountAuditorCiphertextLo, 'Missing transferAmountAuditorCiphertextLo param');
189
+ (0, assert_1.default)(params.transferAmountAuditorCiphertextHi, 'Missing transferAmountAuditorCiphertextHi param');
190
+ this._ctInstructions.push({
191
+ type: constants_1.InstructionBuilderTypes.ConfidentialTransfer,
192
+ params,
193
+ });
194
+ return this;
195
+ }
196
+ /**
197
+ * Add a VerifyPubkeyValidity proof instruction (used with ConfigureAccount).
198
+ */
199
+ verifyPubkeyValidity(params) {
200
+ this._ctInstructions.push({
201
+ type: constants_1.InstructionBuilderTypes.VerifyPubkeyValidity,
202
+ params,
203
+ });
204
+ return this;
205
+ }
206
+ /**
207
+ * Add a VerifyCiphertextCommitmentEquality proof instruction (used with Transfer and Withdraw).
208
+ */
209
+ verifyEqualityProof(params) {
210
+ this._ctInstructions.push({
211
+ type: constants_1.InstructionBuilderTypes.VerifyEqualityProof,
212
+ params,
213
+ });
214
+ return this;
215
+ }
216
+ /**
217
+ * Add a VerifyBatchedGroupedCiphertext3HandlesValidity proof instruction (used with Transfer).
218
+ */
219
+ verifyValidityProof(params) {
220
+ this._ctInstructions.push({
221
+ type: constants_1.InstructionBuilderTypes.VerifyValidityProof,
222
+ params,
223
+ });
224
+ return this;
225
+ }
226
+ /**
227
+ * Add a VerifyBatchedRangeProofU128 proof instruction (used with Transfer).
228
+ */
229
+ verifyRangeProof(params) {
230
+ this._ctInstructions.push({
231
+ type: constants_1.InstructionBuilderTypes.VerifyRangeProof,
232
+ params,
233
+ });
234
+ return this;
235
+ }
236
+ /** @inheritdoc */
237
+ async buildImplementation() {
238
+ (0, assert_1.default)(this._ctInstructions.length > 0, 'At least one confidential transfer instruction must be specified');
239
+ if (this._version === 1) {
240
+ return this.buildV1();
241
+ }
242
+ this._instructionsData = [...this._ctInstructions];
243
+ return await super.buildImplementation();
244
+ }
245
+ /**
246
+ * Build a v1 (SIMD-0296/0385) confidential transfer transaction.
247
+ *
248
+ * Assembles the CT instructions via the shared instruction factory, compiles
249
+ * and serializes a v1 message with the inline transaction config, signs the
250
+ * message bytes with the builder's signers, and stores the resulting wire
251
+ * bytes for broadcast. Also populates a metadata-only SolTransaction so the
252
+ * transaction JSON and input/output extraction remain usable.
253
+ *
254
+ * @returns {Transaction} The built transaction holding the v1 wire bytes
255
+ */
256
+ buildV1() {
257
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
258
+ (0, assert_1.default)(this._recentBlockhash, new sdk_core_1.BuildTransactionError('recent blockhash is required before building'));
259
+ (0, assert_1.default)(this._v1TransactionConfig, 'transactionConfig is required to build a v1 confidential transfer transaction');
260
+ // ApplyPendingBalance must remain instruction #1 in v1 spend txs (it is idempotent),
261
+ // regardless of the order the caller added instructions.
262
+ this._ctInstructions = [
263
+ ...this._ctInstructions.filter((i) => i.type === constants_1.InstructionBuilderTypes.ApplyPendingBalance),
264
+ ...this._ctInstructions.filter((i) => i.type !== constants_1.InstructionBuilderTypes.ApplyPendingBalance),
265
+ ];
266
+ const instructions = [];
267
+ for (const instruction of this._ctInstructions) {
268
+ instructions.push(...(0, solInstructionFactory_1.solInstructionFactory)(instruction, this._zkProofProgramId));
269
+ }
270
+ if (this._memo) {
271
+ const memoData = {
272
+ type: constants_1.InstructionBuilderTypes.Memo,
273
+ params: { memo: this._memo },
274
+ };
275
+ this._ctInstructions.push(memoData);
276
+ instructions.push(...(0, solInstructionFactory_1.solInstructionFactory)(memoData));
277
+ }
278
+ const feePayer = this._feePayer ? new web3_js_1.PublicKey(this._feePayer) : new web3_js_1.PublicKey(this._sender);
279
+ const messageBytes = (0, compileTransactionMessage_1.compileTransactionMessage)({
280
+ version: 1,
281
+ instructions,
282
+ feePayer,
283
+ recentBlockhash: this._recentBlockhash,
284
+ transactionConfig: this._v1TransactionConfig,
285
+ });
286
+ const signatures = [];
287
+ for (const signer of this._signers) {
288
+ const secretKey = signer.getKeys(true).prv;
289
+ (0, assert_1.default)(secretKey instanceof Uint8Array, 'Missing private key');
290
+ signatures.push(tweetnacl_1.default.sign.detached(messageBytes, secretKey));
291
+ }
292
+ for (const signature of this.getAdditionalSignatures()) {
293
+ signatures.push(new Uint8Array(signature.signature));
294
+ }
295
+ const v1Wire = (0, wire_transaction_1.serializeWireTransaction)(messageBytes, signatures);
296
+ this._transaction.v1TransactionBytes = v1Wire;
297
+ this._transaction.v1MessageBytes = messageBytes;
298
+ // Populate a metadata-only SolTransaction so toJson / loadInputsAndOutputs work.
299
+ const metaTx = new web3_js_1.Transaction();
300
+ metaTx.feePayer = feePayer;
301
+ metaTx.recentBlockhash = this._recentBlockhash;
302
+ metaTx.add(...instructions);
303
+ this._transaction.solTransaction = metaTx;
304
+ this._transaction.setTransactionType(this.transactionType);
305
+ this._transaction.setInstructionsData(this._ctInstructions);
306
+ this._transaction.loadInputsAndOutputs();
307
+ return this._transaction;
308
+ }
309
+ }
310
+ exports.ConfidentialTransferBuilder = ConfidentialTransferBuilder;
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTZIO0FBQzdILDZDQUFtRztBQUNuRywwREFBNkI7QUFDN0IsK0NBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCwyQ0FBc0Q7QUFjdEQseUZBQXNGO0FBQ3RGLHVFQUE0RTtBQUM1RSxtRUFBZ0U7QUFDaEUsb0RBQTRCO0FBRTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBS2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTGIsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBTWhELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLE9BQThCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUE4QjtRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsSUFBQSxnQkFBTSxFQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxtQ0FBdUIsQ0FBQyxvQ0FBb0MsQ0FBQztnQkFDbEUsS0FBSyxtQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDakQsS0FBSyxtQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDakQsS0FBSyxtQ0FBdUIsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbEQsS0FBSyxtQ0FBdUIsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbEQsS0FBSyxtQ0FBdUIsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbEQsS0FBSyxtQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDakQsS0FBSyxtQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDakQsS0FBSyxtQ0FBdUIsQ0FBQyxnQkFBZ0I7b0JBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN2QyxNQUFNO2dCQUNSO29CQUNFLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsTUFBc0Q7UUFDckUsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUMxRCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3hELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUNsRSxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLHNDQUFzQyxDQUFDLENBQUM7UUFDOUUsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxrREFBa0QsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxvQ0FBb0M7WUFDbEUsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFxQztRQUN2RCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBQzFELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUNsRSxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLG1DQUFtQyxFQUFFLG1EQUFtRCxDQUFDLENBQUM7UUFDeEcsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO1FBRTlGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxtQkFBbUI7WUFDakQsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1CQUFtQixDQUFDLE1BQXFDO1FBQ3ZELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsWUFBWSxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDMUQsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUN4RCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDbEUsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLEVBQUUsbUNBQXVCLENBQUMsbUJBQW1CO1lBQ2pELE1BQU07U0FDUCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsTUFBc0M7UUFDekQsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUMxRCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3hELElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUNsRSxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsOEJBQThCLEVBQUUsOENBQThDLENBQUMsQ0FBQztRQUU5RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLEVBQUUsbUNBQXVCLENBQUMsb0JBQW9CO1lBQ2xELE1BQU07U0FDUCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxNQUFzQztRQUN6RCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDdEUsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUN4RCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLHVDQUF1QyxDQUFDLENBQUM7UUFDaEYsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2xFLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsb0NBQW9DLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUMxRyxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLGlEQUFpRCxDQUFDLENBQUM7UUFDcEcsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxpREFBaUQsQ0FBQyxDQUFDO1FBRXBHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxvQkFBb0I7WUFDbEQsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsTUFBc0M7UUFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxFQUFFLG1DQUF1QixDQUFDLG9CQUFvQjtZQUNsRCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFxQztRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLEVBQUUsbUNBQXVCLENBQUMsbUJBQW1CO1lBQ2pELE1BQU07U0FDUCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQixDQUFDLE1BQXFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxtQkFBbUI7WUFDakQsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsTUFBa0M7UUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxFQUFFLG1DQUF1QixDQUFDLGdCQUFnQjtZQUM5QyxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLGtFQUFrRSxDQUFDLENBQUM7UUFFNUcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVuRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSyxPQUFPO1FBQ2IsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxnQ0FBcUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7UUFDdEYsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLGdDQUFxQixDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FBQztRQUN6RyxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLCtFQUErRSxDQUFDLENBQUM7UUFFbkgscUZBQXFGO1FBQ3JGLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssbUNBQXVCLENBQUMsbUJBQW1CLENBQUM7WUFDN0YsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxtQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQztTQUM5RixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUNsRCxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSw2Q0FBcUIsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFFBQVEsR0FBUztnQkFDckIsSUFBSSxFQUFFLG1DQUF1QixDQUFDLElBQUk7Z0JBQ2xDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO2FBQzdCLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSw2Q0FBcUIsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlGLE1BQU0sWUFBWSxHQUFHLElBQUEscURBQXlCLEVBQUM7WUFDN0MsT0FBTyxFQUFFLENBQUM7WUFDVixZQUFZO1lBQ1osUUFBUTtZQUNSLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3RDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDN0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQWlCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxJQUFBLGdCQUFNLEVBQUMsU0FBUyxZQUFZLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQy9ELFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7WUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQ0FBd0IsRUFBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO1FBRWhELGlGQUFpRjtRQUNqRixNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFjLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMzQixNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBRTFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUV6QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBalRELGtFQWlUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU29sVHJhbnNhY3Rpb25WZXJzaW9uLCBTb2xWMVRyYW5zYWN0aW9uQ29uZmlnLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBQdWJsaWNLZXksIFRyYW5zYWN0aW9uIGFzIFNvbFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkluc3RydWN0aW9uIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBcHBseVBlbmRpbmdCYWxhbmNlLFxuICBDb25maWRlbnRpYWxEZXBvc2l0LFxuICBDb25maWRlbnRpYWxUcmFuc2ZlcixcbiAgQ29uZmlkZW50aWFsV2l0aGRyYXcsXG4gIENvbmZpZ3VyZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudCxcbiAgSW5zdHJ1Y3Rpb25QYXJhbXMsXG4gIE1lbW8sXG4gIFZlcmlmeUVxdWFsaXR5UHJvb2YsXG4gIFZlcmlmeVB1YmtleVZhbGlkaXR5LFxuICBWZXJpZnlSYW5nZVByb29mLFxuICBWZXJpZnlWYWxpZGl0eVByb29mLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGNvbXBpbGVUcmFuc2FjdGlvbk1lc3NhZ2UgfSBmcm9tICcuL3NlcmlhbGl6YXRpb24vY29tcGlsZVRyYW5zYWN0aW9uTWVzc2FnZSc7XG5pbXBvcnQgeyBzZXJpYWxpemVXaXJlVHJhbnNhY3Rpb24gfSBmcm9tICcuL3NlcmlhbGl6YXRpb24vd2lyZS10cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBzb2xJbnN0cnVjdGlvbkZhY3RvcnkgfSBmcm9tICcuL3NvbEluc3RydWN0aW9uRmFjdG9yeSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgVG9rZW4tMjAyMiBjb25maWRlbnRpYWwgdHJhbnNmZXIgdHJhbnNhY3Rpb25zLlxuICpcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBmbHVlbnQgc2V0dGVycyBmb3IgdGhlIGZvbGxvd2luZyBDVCBpbnN0cnVjdGlvbnM6XG4gKiAtIENvbmZpZ3VyZUFjY291bnQgKHN0YW5kYWxvbmUsIHdpdGggVmVyaWZ5UHVia2V5VmFsaWRpdHkgcHJvb2YpXG4gKiAtIEFwcGx5UGVuZGluZ0JhbGFuY2UgKGFsd2F5cyBpbnN0cnVjdGlvbiAjMSBpbiB2MSBzcGVuZCB0eHMsIGlkZW1wb3RlbnQpXG4gKiAtIERlcG9zaXQgKHB1YmxpYyDihpIgY29uZmlkZW50aWFsIGNvbnZlcnNpb24pXG4gKiAtIFdpdGhkcmF3IChjb25maWRlbnRpYWwg4oaSIHB1YmxpYyBjb252ZXJzaW9uLCB3aXRoIGVxdWFsaXR5ICsgcmFuZ2UgcHJvb2ZzKVxuICogLSBUcmFuc2ZlciAoY29uZmlkZW50aWFsIOKGkiBjb25maWRlbnRpYWwsIHdpdGggZXF1YWxpdHkgKyB2YWxpZGl0eSArIHJhbmdlIHByb29mcylcbiAqIC0gVmVyaWZ5UHVia2V5VmFsaWRpdHkgLyBWZXJpZnlFcXVhbGl0eSAvIFZlcmlmeVZhbGlkaXR5IC8gVmVyaWZ5UmFuZ2UgcHJvb2YgaW5zdHJ1Y3Rpb25zXG4gKlxuICogSW5zdHJ1Y3Rpb24gYnVpbGRlcnMgYXJlIHYwL3YxLWFnbm9zdGljOiB0aGV5IHByb2R1Y2UgaW5zdHJ1Y3Rpb24gZGF0YSBhbmRcbiAqIGFjY291bnQgbWV0YXMgb25seS4gVGhlIGNhbGxlciAoV2FsbGV0IFBsYXRmb3JtKSBhc3NlbWJsZXMgdGhlbSBpbnRvIHYxXG4gKiB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIoKTtcbiAqIGJ1aWxkZXIubm9uY2UocmVjZW50QmxvY2toYXNoKS5zZW5kZXIocGF5ZXIpO1xuICogYnVpbGRlci5jb25maWd1cmVBY2NvdW50KHsgdG9rZW5BZGRyZXNzLCBtaW50QWRkcmVzcywgYXV0aG9yaXR5QWRkcmVzcywgLi4uIH0pO1xuICogYnVpbGRlci52ZXJpZnlQdWJrZXlWYWxpZGl0eSh7IHByb29mRGF0YSB9KTtcbiAqIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9jdEluc3RydWN0aW9uczogSW5zdHJ1Y3Rpb25QYXJhbXNbXSA9IFtdO1xuICBwcml2YXRlIF92ZXJzaW9uPzogU29sVHJhbnNhY3Rpb25WZXJzaW9uO1xuICBwcml2YXRlIF92MVRyYW5zYWN0aW9uQ29uZmlnPzogU29sVjFUcmFuc2FjdGlvbkNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkNvbmZpZGVudGlhbFRyYW5zZmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgU29sYW5hIHRyYW5zYWN0aW9uIHZlcnNpb24uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGxlZ2FjeSB1bnRpbCBzZXQuIFdoZW4gc2V0IHRvIGAxYCwgdGhlIGJ1aWxkZXIgYXNzZW1ibGVzIGEgdjFcbiAgICogKFNJTUQtMDI5Ni8wMzg1KSB0cmFuc2FjdGlvbjogdmVyc2lvbiBieXRlIGAweDgxYCwgYW4gaW5saW5lIGB0cmFuc2FjdGlvbkNvbmZpZ2BcbiAgICogaW5zdGVhZCBvZiBDb21wdXRlQnVkZ2V0IGluc3RydWN0aW9ucywgbm8gYWRkcmVzcyBsb29rdXAgdGFibGVzLCBhbmQgYVxuICAgKiBtZXNzYWdlLWZpcnN0IHdpcmUgZm9ybWF0IHdpdGggc2lnbmF0dXJlcyBhcHBlbmRlZC5cbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gLSB0aGUgdHJhbnNhY3Rpb24gdmVyc2lvbiAoMCA9IHYwLCAxID0gdjEpXG4gICAqIEByZXR1cm5zIHt0aGlzfSBUaGlzIGJ1aWxkZXJcbiAgICovXG4gIHZlcnNpb24odmVyc2lvbjogU29sVHJhbnNhY3Rpb25WZXJzaW9uKTogdGhpcyB7XG4gICAgdGhpcy5fdmVyc2lvbiA9IHZlcnNpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2MSB0cmFuc2FjdGlvbiBjb25maWcgKGNvbXB1dGUgdW5pdCBsaW1pdCwgaGVhcCBzaXplLCBsb2FkZWQgYWNjb3VudHNcbiAgICogZGF0YSBzaXplIGxpbWl0LCBhbmQgcHJpb3JpdHkgZmVlIGFzIHRvdGFsIGxhbXBvcnRzKS4gUmVxdWlyZWQgd2hlblxuICAgKiBgdmVyc2lvbigxKWAgaXMgc2V0LlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gdGhlIHYxIHRyYW5zYWN0aW9uIGNvbmZpZ1xuICAgKiBAcmV0dXJucyB7dGhpc30gVGhpcyBidWlsZGVyXG4gICAqL1xuICB0cmFuc2FjdGlvbkNvbmZpZyhjb25maWc6IFNvbFYxVHJhbnNhY3Rpb25Db25maWcpOiB0aGlzIHtcbiAgICB0aGlzLl92MVRyYW5zYWN0aW9uQ29uZmlnID0gY29uZmlnO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB6ay1lbGdhbWFsLXByb29mIHByb2dyYW0gaWQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRoZSBjYW5vbmljYWwgb24tY2hhaW4gcHJvZ3JhbSBpZCAoYFprRTFHYW1hMVByb29mMTExLi4uYClcbiAgICogd2hpY2ggaXMgdGhlIHNhbWUgYWNyb3NzIG1haW5uZXQsIGRldm5ldCwgYW5kIHRlc3RuZXQuIE92ZXJyaWRlIG9ubHlcbiAgICogd2hlbiB0YXJnZXRpbmcgYSBjdXN0b20gZGVwbG95bWVudC5cbiAgICpcbiAgICogQHBhcmFtIHByb2dyYW1JZCAtIGJhc2U1OCBlbmNvZGVkIHByb2dyYW0gaWRcbiAgICovXG4gIHprUHJvb2ZQcm9ncmFtSWQocHJvZ3JhbUlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBhc3NlcnQocHJvZ3JhbUlkLCAnTWlzc2luZyBwcm9ncmFtSWQgcGFyYW0nKTtcbiAgICB0aGlzLl96a1Byb29mUHJvZ3JhbUlkID0gcHJvZ3JhbUlkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgc3dpdGNoIChpbnN0cnVjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlndXJlQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50OlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkFwcGx5UGVuZGluZ0JhbGFuY2U6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsRGVwb3NpdDpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxXaXRoZHJhdzpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Db25maWRlbnRpYWxUcmFuc2ZlcjpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlQdWJrZXlWYWxpZGl0eTpcbiAgICAgICAgY2FzZSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlFcXVhbGl0eVByb29mOlxuICAgICAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlZlcmlmeVZhbGlkaXR5UHJvb2Y6XG4gICAgICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5UmFuZ2VQcm9vZjpcbiAgICAgICAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKGluc3RydWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgQ29uZmlndXJlQWNjb3VudCBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIE9uZS10aW1lIEFUQSBzZXR1cCDigJQgcmVnaXN0ZXJzIEVsR2FtYWwgcHVia2V5ICsgQUVTIHplcm8gY2lwaGVydGV4dC5cbiAgICogTXVzdCBiZSBhY2NvbXBhbmllZCBieSBhIFZlcmlmeVB1YmtleVZhbGlkaXR5IHByb29mIGluc3RydWN0aW9uLlxuICAgKi9cbiAgY29uZmlndXJlQWNjb3VudChwYXJhbXM6IENvbmZpZ3VyZUNvbmZpZGVudGlhbFRyYW5zZmVyQWNjb3VudFsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLnRva2VuQWRkcmVzcywgJ01pc3NpbmcgdG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5taW50QWRkcmVzcywgJ01pc3NpbmcgbWludEFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsICdNaXNzaW5nIGF1dGhvcml0eUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmRlY3J5cHRhYmxlWmVyb0JhbGFuY2UsICdNaXNzaW5nIGRlY3J5cHRhYmxlWmVyb0JhbGFuY2UgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm1heGltdW1QZW5kaW5nQmFsYW5jZUNyZWRpdENvdW50ZXIsICdNaXNzaW5nIG1heGltdW1QZW5kaW5nQmFsYW5jZUNyZWRpdENvdW50ZXIgcGFyYW0nKTtcblxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlndXJlQ29uZmlkZW50aWFsVHJhbnNmZXJBY2NvdW50LFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBBcHBseVBlbmRpbmdCYWxhbmNlIGluc3RydWN0aW9uIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQ3JlZGl0cyBwZW5kaW5nIGJhbGFuY2UgaW50byBhdmFpbGFibGUgYmFsYW5jZS4gSWRlbXBvdGVudCAobm8tb3AgaWYgMCBwZW5kaW5nKS5cbiAgICogSW4gdjEgdHJhbnNhY3Rpb25zLCB0aGlzIHNob3VsZCBhbHdheXMgYmUgaW5zdHJ1Y3Rpb24gIzEuXG4gICAqL1xuICBhcHBseVBlbmRpbmdCYWxhbmNlKHBhcmFtczogQXBwbHlQZW5kaW5nQmFsYW5jZVsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLnRva2VuQWRkcmVzcywgJ01pc3NpbmcgdG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hdXRob3JpdHlBZGRyZXNzLCAnTWlzc2luZyBhdXRob3JpdHlBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5leHBlY3RlZFBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlciwgJ01pc3NpbmcgZXhwZWN0ZWRQZW5kaW5nQmFsYW5jZUNyZWRpdENvdW50ZXIgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm5ld0RlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSwgJ01pc3NpbmcgbmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlIHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkFwcGx5UGVuZGluZ0JhbGFuY2UsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgRGVwb3NpdCBpbnN0cnVjdGlvbiB0byB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIE1vdmVzIHB1YmxpYyBTUEwgdG9rZW5zIGludG8gY29uZmlkZW50aWFsIHBlbmRpbmcgYmFsYW5jZS4gTm8gcHJvb2YgcmVxdWlyZWQuXG4gICAqL1xuICBjb25maWRlbnRpYWxEZXBvc2l0KHBhcmFtczogQ29uZmlkZW50aWFsRGVwb3NpdFsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICBhc3NlcnQocGFyYW1zLnRva2VuQWRkcmVzcywgJ01pc3NpbmcgdG9rZW5BZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5taW50QWRkcmVzcywgJ01pc3NpbmcgbWludEFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsICdNaXNzaW5nIGF1dGhvcml0eUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmFtb3VudCwgJ01pc3NpbmcgYW1vdW50IHBhcmFtJyk7XG5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucy5wdXNoKHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNvbmZpZGVudGlhbERlcG9zaXQsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgV2l0aGRyYXcgaW5zdHJ1Y3Rpb24gdG8gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBNb3ZlcyBjb25maWRlbnRpYWwgYXZhaWxhYmxlIGJhbGFuY2UgdG8gcHVibGljIGJhbGFuY2UuXG4gICAqIFJlcXVpcmVzIGVxdWFsaXR5ICsgcmFuZ2UgcHJvb2YgdmVyaWZpY2F0aW9uIGluc3RydWN0aW9ucy5cbiAgICovXG4gIGNvbmZpZGVudGlhbFdpdGhkcmF3KHBhcmFtczogQ29uZmlkZW50aWFsV2l0aGRyYXdbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy50b2tlbkFkZHJlc3MsICdNaXNzaW5nIHRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubWludEFkZHJlc3MsICdNaXNzaW5nIG1pbnRBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hdXRob3JpdHlBZGRyZXNzLCAnTWlzc2luZyBhdXRob3JpdHlBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5hbW91bnQsICdNaXNzaW5nIGFtb3VudCBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlLCAnTWlzc2luZyBuZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2UgcGFyYW0nKTtcblxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsV2l0aGRyYXcsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY29uZmlkZW50aWFsIFRyYW5zZmVyIGluc3RydWN0aW9uIHRvIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogUmVxdWlyZXMgZXF1YWxpdHkgKyBjaXBoZXJ0ZXh0IHZhbGlkaXR5ICsgcmFuZ2UgcHJvb2YgdmVyaWZpY2F0aW9uIGluc3RydWN0aW9ucy5cbiAgICovXG4gIGNvbmZpZGVudGlhbFRyYW5zZmVyKHBhcmFtczogQ29uZmlkZW50aWFsVHJhbnNmZXJbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgYXNzZXJ0KHBhcmFtcy5zb3VyY2VUb2tlbkFkZHJlc3MsICdNaXNzaW5nIHNvdXJjZVRva2VuQWRkcmVzcyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMubWludEFkZHJlc3MsICdNaXNzaW5nIG1pbnRBZGRyZXNzIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy5kZXN0aW5hdGlvblRva2VuQWRkcmVzcywgJ01pc3NpbmcgZGVzdGluYXRpb25Ub2tlbkFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsICdNaXNzaW5nIGF1dGhvcml0eUFkZHJlc3MgcGFyYW0nKTtcbiAgICBhc3NlcnQocGFyYW1zLm5ld1NvdXJjZURlY3J5cHRhYmxlQXZhaWxhYmxlQmFsYW5jZSwgJ01pc3NpbmcgbmV3U291cmNlRGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlIHBhcmFtJyk7XG4gICAgYXNzZXJ0KHBhcmFtcy50cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0TG8sICdNaXNzaW5nIHRyYW5zZmVyQW1vdW50QXVkaXRvckNpcGhlcnRleHRMbyBwYXJhbScpO1xuICAgIGFzc2VydChwYXJhbXMudHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dEhpLCAnTWlzc2luZyB0cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0SGkgcGFyYW0nKTtcblxuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ29uZmlkZW50aWFsVHJhbnNmZXIsXG4gICAgICBwYXJhbXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgVmVyaWZ5UHVia2V5VmFsaWRpdHkgcHJvb2YgaW5zdHJ1Y3Rpb24gKHVzZWQgd2l0aCBDb25maWd1cmVBY2NvdW50KS5cbiAgICovXG4gIHZlcmlmeVB1YmtleVZhbGlkaXR5KHBhcmFtczogVmVyaWZ5UHVia2V5VmFsaWRpdHlbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlQdWJrZXlWYWxpZGl0eSxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBWZXJpZnlDaXBoZXJ0ZXh0Q29tbWl0bWVudEVxdWFsaXR5IHByb29mIGluc3RydWN0aW9uICh1c2VkIHdpdGggVHJhbnNmZXIgYW5kIFdpdGhkcmF3KS5cbiAgICovXG4gIHZlcmlmeUVxdWFsaXR5UHJvb2YocGFyYW1zOiBWZXJpZnlFcXVhbGl0eVByb29mWydwYXJhbXMnXSk6IHRoaXMge1xuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5RXF1YWxpdHlQcm9vZixcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBWZXJpZnlCYXRjaGVkR3JvdXBlZENpcGhlcnRleHQzSGFuZGxlc1ZhbGlkaXR5IHByb29mIGluc3RydWN0aW9uICh1c2VkIHdpdGggVHJhbnNmZXIpLlxuICAgKi9cbiAgdmVyaWZ5VmFsaWRpdHlQcm9vZihwYXJhbXM6IFZlcmlmeVZhbGlkaXR5UHJvb2ZbJ3BhcmFtcyddKTogdGhpcyB7XG4gICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaCh7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5WZXJpZnlWYWxpZGl0eVByb29mLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIFZlcmlmeUJhdGNoZWRSYW5nZVByb29mVTEyOCBwcm9vZiBpbnN0cnVjdGlvbiAodXNlZCB3aXRoIFRyYW5zZmVyKS5cbiAgICovXG4gIHZlcmlmeVJhbmdlUHJvb2YocGFyYW1zOiBWZXJpZnlSYW5nZVByb29mWydwYXJhbXMnXSk6IHRoaXMge1xuICAgIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLnB1c2goe1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVmVyaWZ5UmFuZ2VQcm9vZixcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX2N0SW5zdHJ1Y3Rpb25zLmxlbmd0aCA+IDAsICdBdCBsZWFzdCBvbmUgY29uZmlkZW50aWFsIHRyYW5zZmVyIGluc3RydWN0aW9uIG11c3QgYmUgc3BlY2lmaWVkJyk7XG5cbiAgICBpZiAodGhpcy5fdmVyc2lvbiA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRWMSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbLi4udGhpcy5fY3RJbnN0cnVjdGlvbnNdO1xuXG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIHYxIChTSU1ELTAyOTYvMDM4NSkgY29uZmlkZW50aWFsIHRyYW5zZmVyIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBBc3NlbWJsZXMgdGhlIENUIGluc3RydWN0aW9ucyB2aWEgdGhlIHNoYXJlZCBpbnN0cnVjdGlvbiBmYWN0b3J5LCBjb21waWxlc1xuICAgKiBhbmQgc2VyaWFsaXplcyBhIHYxIG1lc3NhZ2Ugd2l0aCB0aGUgaW5saW5lIHRyYW5zYWN0aW9uIGNvbmZpZywgc2lnbnMgdGhlXG4gICAqIG1lc3NhZ2UgYnl0ZXMgd2l0aCB0aGUgYnVpbGRlcidzIHNpZ25lcnMsIGFuZCBzdG9yZXMgdGhlIHJlc3VsdGluZyB3aXJlXG4gICAqIGJ5dGVzIGZvciBicm9hZGNhc3QuIEFsc28gcG9wdWxhdGVzIGEgbWV0YWRhdGEtb25seSBTb2xUcmFuc2FjdGlvbiBzbyB0aGVcbiAgICogdHJhbnNhY3Rpb24gSlNPTiBhbmQgaW5wdXQvb3V0cHV0IGV4dHJhY3Rpb24gcmVtYWluIHVzYWJsZS5cbiAgICpcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9ufSBUaGUgYnVpbHQgdHJhbnNhY3Rpb24gaG9sZGluZyB0aGUgdjEgd2lyZSBieXRlc1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFYxKCk6IFRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9yZWNlbnRCbG9ja2hhc2gsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3JlY2VudCBibG9ja2hhc2ggaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl92MVRyYW5zYWN0aW9uQ29uZmlnLCAndHJhbnNhY3Rpb25Db25maWcgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSB2MSBjb25maWRlbnRpYWwgdHJhbnNmZXIgdHJhbnNhY3Rpb24nKTtcblxuICAgIC8vIEFwcGx5UGVuZGluZ0JhbGFuY2UgbXVzdCByZW1haW4gaW5zdHJ1Y3Rpb24gIzEgaW4gdjEgc3BlbmQgdHhzIChpdCBpcyBpZGVtcG90ZW50KSxcbiAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciB0aGUgY2FsbGVyIGFkZGVkIGluc3RydWN0aW9ucy5cbiAgICB0aGlzLl9jdEluc3RydWN0aW9ucyA9IFtcbiAgICAgIC4uLnRoaXMuX2N0SW5zdHJ1Y3Rpb25zLmZpbHRlcigoaSkgPT4gaS50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5BcHBseVBlbmRpbmdCYWxhbmNlKSxcbiAgICAgIC4uLnRoaXMuX2N0SW5zdHJ1Y3Rpb25zLmZpbHRlcigoaSkgPT4gaS50eXBlICE9PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5BcHBseVBlbmRpbmdCYWxhbmNlKSxcbiAgICBdO1xuXG4gICAgY29uc3QgaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2N0SW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBpbnN0cnVjdGlvbnMucHVzaCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkoaW5zdHJ1Y3Rpb24sIHRoaXMuX3prUHJvb2ZQcm9ncmFtSWQpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWVtbykge1xuICAgICAgY29uc3QgbWVtb0RhdGE6IE1lbW8gPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sXG4gICAgICAgIHBhcmFtczogeyBtZW1vOiB0aGlzLl9tZW1vIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5fY3RJbnN0cnVjdGlvbnMucHVzaChtZW1vRGF0YSk7XG4gICAgICBpbnN0cnVjdGlvbnMucHVzaCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkobWVtb0RhdGEpKTtcbiAgICB9XG5cbiAgICBjb25zdCBmZWVQYXllciA9IHRoaXMuX2ZlZVBheWVyID8gbmV3IFB1YmxpY0tleSh0aGlzLl9mZWVQYXllcikgOiBuZXcgUHVibGljS2V5KHRoaXMuX3NlbmRlcik7XG4gICAgY29uc3QgbWVzc2FnZUJ5dGVzID0gY29tcGlsZVRyYW5zYWN0aW9uTWVzc2FnZSh7XG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgaW5zdHJ1Y3Rpb25zLFxuICAgICAgZmVlUGF5ZXIsXG4gICAgICByZWNlbnRCbG9ja2hhc2g6IHRoaXMuX3JlY2VudEJsb2NraGFzaCxcbiAgICAgIHRyYW5zYWN0aW9uQ29uZmlnOiB0aGlzLl92MVRyYW5zYWN0aW9uQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlczogVWludDhBcnJheVtdID0gW107XG4gICAgZm9yIChjb25zdCBzaWduZXIgb2YgdGhpcy5fc2lnbmVycykge1xuICAgICAgY29uc3Qgc2VjcmV0S2V5ID0gc2lnbmVyLmdldEtleXModHJ1ZSkucHJ2O1xuICAgICAgYXNzZXJ0KHNlY3JldEtleSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksICdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgICBzaWduYXR1cmVzLnB1c2gobmFjbC5zaWduLmRldGFjaGVkKG1lc3NhZ2VCeXRlcywgc2VjcmV0S2V5KSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc2lnbmF0dXJlIG9mIHRoaXMuZ2V0QWRkaXRpb25hbFNpZ25hdHVyZXMoKSkge1xuICAgICAgc2lnbmF0dXJlcy5wdXNoKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZS5zaWduYXR1cmUpKTtcbiAgICB9XG5cbiAgICBjb25zdCB2MVdpcmUgPSBzZXJpYWxpemVXaXJlVHJhbnNhY3Rpb24obWVzc2FnZUJ5dGVzLCBzaWduYXR1cmVzKTtcblxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnYxVHJhbnNhY3Rpb25CeXRlcyA9IHYxV2lyZTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi52MU1lc3NhZ2VCeXRlcyA9IG1lc3NhZ2VCeXRlcztcblxuICAgIC8vIFBvcHVsYXRlIGEgbWV0YWRhdGEtb25seSBTb2xUcmFuc2FjdGlvbiBzbyB0b0pzb24gLyBsb2FkSW5wdXRzQW5kT3V0cHV0cyB3b3JrLlxuICAgIGNvbnN0IG1ldGFUeCA9IG5ldyBTb2xUcmFuc2FjdGlvbigpO1xuICAgIG1ldGFUeC5mZWVQYXllciA9IGZlZVBheWVyO1xuICAgIG1ldGFUeC5yZWNlbnRCbG9ja2hhc2ggPSB0aGlzLl9yZWNlbnRCbG9ja2hhc2g7XG4gICAgbWV0YVR4LmFkZCguLi5pbnN0cnVjdGlvbnMpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNvbFRyYW5zYWN0aW9uID0gbWV0YVR4O1xuXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZXRJbnN0cnVjdGlvbnNEYXRhKHRoaXMuX2N0SW5zdHJ1Y3Rpb25zKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
@@ -4,12 +4,72 @@ export declare const SEED_LENGTH = 32;
4
4
  export declare const MAX_MEMO_LENGTH = 130;
5
5
  export declare const STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT = 2282880;
6
6
  export declare const UNAVAILABLE_TEXT = "UNAVAILABLE";
7
+ /**
8
+ * Sysvar instructions account address — used by Token-2022 confidential transfer
9
+ * instructions to locate inline proof verification instructions in the same transaction.
10
+ */
11
+ export declare const INSTRUCTIONS_SYSVAR_ADDRESS = "Sysvar1nstructions1111111111111111111111111";
12
+ /**
13
+ * Canonical on-chain program id of the zk-elgamal-proof program.
14
+ *
15
+ * This is the same across mainnet, devnet, and testnet — it is a native
16
+ * built-in program. Callers can override via ConfidentialTransferBuilder
17
+ * .zkProofProgramId() if targeting a custom deployment.
18
+ *
19
+ * Note: The deprecated zk-token-proof program id is
20
+ * `ZkTokenProof1111111111111111111111111111111`.
21
+ */
22
+ export declare const ZK_ELGAMAL_PROOF_PROGRAM_ID = "ZkE1Gama1Proof11111111111111111111111111111";
23
+ /**
24
+ * Token-2022 confidential transfer extension discriminator (byte 0 of instruction data).
25
+ */
26
+ export declare const CT_EXT_DISCRIMINATOR = 27;
27
+ /**
28
+ * Valid CT sub-instruction discriminators (byte 1 after CT_EXT_DISCRIMINATOR).
29
+ * Used for transaction type detection (getTransactionType / deriveTransactionType).
30
+ */
31
+ export declare const CT_SUB_DISCRIMINATORS: Set<number>;
32
+ /**
33
+ * Maximum over-the-wire size of a Solana transaction (in bytes)
34
+ *
35
+ * Source: https://github.com/anza-xyz/agave/blob/v2.1.13/sdk/packet/src/lib.rs#L27-L29
36
+ *
37
+ * Calculation:
38
+ * - IPv6 minimum MTU: 1280 bytes
39
+ * - IPv6 header: 40 bytes
40
+ * - Fragment/UDP header: 8 bytes
41
+ * - Result: 1280 - 40 - 8 = 1232 bytes
42
+ *
43
+ * This limit is designed to avoid packet fragmentation on typical internet infrastructure.
44
+ * Transactions exceeding this limit will fail to serialize with a RangeError during
45
+ * the encoding of the transaction message.
46
+ *
47
+ * Reference: https://solana.com/docs/core/transactions#transaction-size
48
+ */
49
+ export declare const SOLANA_TRANSACTION_MAX_SIZE = 1232;
7
50
  export declare const JITO_STAKE_POOL_ADDRESS = "Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb";
8
51
  export declare const JITOSOL_MINT_ADDRESS = "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn";
9
52
  export declare const JITO_STAKE_POOL_RESERVE_ACCOUNT = "BgKUXdS29YcHCFrPm5M8oLHiTzZaMDjsebggjoaQ6KFL";
10
53
  export declare const JITO_STAKE_POOL_RESERVE_ACCOUNT_TESTNET = "rrWBQqRqBXYZw3CmPCCcjFxQ2Ds4JFJd7oRQJ997dhz";
11
54
  export declare const JITO_MANAGER_FEE_ACCOUNT = "feeeFLLsam6xZJFc6UQFrHqkvVt4jfmVvi2BRLkUZ4i";
12
55
  export declare const JITO_MANAGER_FEE_ACCOUNT_TESTNET = "DH7tmjoQ5zjqcgfYJU22JqmXhP5EY1tkbYpgVWUS2oNo";
56
+ /**
57
+ * On-chain program id of the sRFC-37 Token ACL program. This single program gates every
58
+ * allowlist/blocklist (DefaultAccountState) Token-2022 mint, so the value is generic and never
59
+ * tied to a specific issuer.
60
+ */
61
+ export declare const TOKEN_ACL_PROGRAM_ID = "TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP";
62
+ /**
63
+ * Instruction discriminator (a single u8 byte) for the Token ACL `ThawPermissionlessIdempotent`
64
+ * instruction.
65
+ */
66
+ export declare const THAW_PERMISSIONLESS_IDEMPOTENT_DISCRIMINATOR = 9;
67
+ /** PDA seed prefix (under the Token ACL program) for a mint's MintConfig account. */
68
+ export declare const TOKEN_ACL_MINT_CONFIG_SEED = "MINT_CONFIG";
69
+ /** PDA seed prefix (under the Token ACL program) for a token account's thaw flag account. */
70
+ export declare const TOKEN_ACL_FLAG_ACCOUNT_SEED = "FLAG_ACCOUNT";
71
+ /** PDA seed prefix (under the gating program) for a mint's thaw ExtraAccountMetaList account. */
72
+ export declare const TOKEN_ACL_THAW_EXTRA_METAS_SEED = "thaw_extra_account_metas";
13
73
  export declare enum ValidInstructionTypesEnum {
14
74
  AdvanceNonceAccount = "AdvanceNonceAccount",
15
75
  Create = "Create",
@@ -23,6 +83,7 @@ export declare enum ValidInstructionTypesEnum {
23
83
  Memo = "Memo",
24
84
  InitializeAssociatedTokenAccount = "InitializeAssociatedTokenAccount",
25
85
  CloseAssociatedTokenAccount = "CloseAssociatedTokenAccount",
86
+ RecoverNestedAssociatedTokenAccount = "RecoverNestedAssociatedTokenAccount",
26
87
  Allocate = "Allocate",
27
88
  Assign = "Assign",
28
89
  Split = "Split",
@@ -33,8 +94,19 @@ export declare enum ValidInstructionTypesEnum {
33
94
  Burn = "Burn",
34
95
  DepositSol = "DepositSol",
35
96
  WithdrawStake = "WithdrawStake",
97
+ WithdrawSol = "WithdrawSol",
36
98
  Approve = "Approve",
37
- CustomInstruction = "CustomInstruction"
99
+ CustomInstruction = "CustomInstruction",
100
+ PermissionlessThawIdempotent = "PermissionlessThawIdempotent",
101
+ ConfigureConfidentialTransferAccount = "ConfigureConfidentialTransferAccount",
102
+ ApplyPendingBalance = "ApplyPendingBalance",
103
+ ConfidentialDeposit = "ConfidentialDeposit",
104
+ ConfidentialWithdraw = "ConfidentialWithdraw",
105
+ ConfidentialTransfer = "ConfidentialTransfer",
106
+ VerifyPubkeyValidity = "VerifyPubkeyValidity",
107
+ VerifyEqualityProof = "VerifyEqualityProof",
108
+ VerifyValidityProof = "VerifyValidityProof",
109
+ VerifyRangeProof = "VerifyRangeProof"
38
110
  }
39
111
  export declare enum InstructionBuilderTypes {
40
112
  CreateNonceAccount = "CreateNonceAccount",
@@ -46,6 +118,7 @@ export declare enum InstructionBuilderTypes {
46
118
  NonceAdvance = "NonceAdvance",
47
119
  CreateAssociatedTokenAccount = "CreateAssociatedTokenAccount",
48
120
  CloseAssociatedTokenAccount = "CloseAssociatedTokenAccount",
121
+ RecoverNestedAssociatedTokenAccount = "RecoverNestedAssociatedTokenAccount",
49
122
  TokenTransfer = "TokenTransfer",
50
123
  StakingAuthorize = "Authorize",
51
124
  StakingDelegate = "Delegate",
@@ -56,7 +129,17 @@ export declare enum InstructionBuilderTypes {
56
129
  CustomInstruction = "CustomInstruction",
57
130
  VersionedCustomInstruction = "VersionedCustomInstruction",
58
131
  Approve = "Approve",
59
- WithdrawStake = "WithdrawStake"
132
+ WithdrawStake = "WithdrawStake",
133
+ PermissionlessThawIdempotent = "PermissionlessThawIdempotent",
134
+ ConfigureConfidentialTransferAccount = "ConfigureConfidentialTransferAccount",
135
+ ApplyPendingBalance = "ApplyPendingBalance",
136
+ ConfidentialDeposit = "ConfidentialDeposit",
137
+ ConfidentialWithdraw = "ConfidentialWithdraw",
138
+ ConfidentialTransfer = "ConfidentialTransfer",
139
+ VerifyPubkeyValidity = "VerifyPubkeyValidity",
140
+ VerifyEqualityProof = "VerifyEqualityProof",
141
+ VerifyValidityProof = "VerifyValidityProof",
142
+ VerifyRangeProof = "VerifyRangeProof"
60
143
  }
61
144
  export declare const VALID_SYSTEM_INSTRUCTION_TYPES: ValidInstructionTypes[];
62
145
  /** Const to check the order of the Wallet Init instructions when decode */
@@ -134,6 +217,10 @@ export declare const ataInitInstructionIndexes: {
134
217
  export declare const ataCloseInstructionIndexes: {
135
218
  readonly CloseAssociatedTokenAccount: 0;
136
219
  };
220
+ /** Const to check the order of the recover nested ATA instructions when decode */
221
+ export declare const ataRecoverNestedInstructionIndexes: {
222
+ readonly RecoverNestedAssociatedTokenAccount: 0;
223
+ };
137
224
  export declare const nonceAdvanceInstruction = "AdvanceNonceAccount";
138
225
  export declare const validInstructionData = "0a00000001000000";
139
226
  export declare const validInstructionData2 = "0a00000000000000";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/constants.ts"],"names":[],"mappings":"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"}