@bitgo-beta/sdk-coin-sol 7.6.4-beta.7 → 7.6.4-beta.700

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 (443) 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 +223 -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 +93 -0
  12. package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
  13. package/dist/cjs/src/lib/confidentialTransferBuilder.js +212 -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/cjs/src/lib/keyPair.d.ts.map +1 -0
  34. package/dist/cjs/src/lib/keyPair.js +63 -0
  35. package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
  36. package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
  37. package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  38. package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
  39. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
  40. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  41. package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
  42. package/dist/cjs/src/lib/scaledUiAmount.d.ts +30 -0
  43. package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
  44. package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
  45. package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +1 -1
  46. package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
  47. package/dist/cjs/src/lib/solInstructionFactory.js +1094 -0
  48. package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  49. package/dist/cjs/src/lib/stakingActivateBuilder.js +120 -0
  50. package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  51. package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
  52. package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  53. package/dist/cjs/src/lib/stakingDeactivateBuilder.js +208 -0
  54. package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  55. package/dist/cjs/src/lib/stakingDelegateBuilder.js +120 -0
  56. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  57. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  58. package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  59. package/dist/cjs/src/lib/stakingWithdrawBuilder.js +78 -0
  60. package/dist/cjs/src/lib/token2022Resolve.d.ts +106 -0
  61. package/dist/cjs/src/lib/token2022Resolve.d.ts.map +1 -0
  62. package/dist/cjs/src/lib/token2022Resolve.js +199 -0
  63. package/dist/cjs/src/lib/tokenExtensions.d.ts +26 -0
  64. package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
  65. package/dist/cjs/src/lib/tokenExtensions.js +105 -0
  66. package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +27 -1
  67. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  68. package/dist/cjs/src/lib/tokenTransferBuilder.js +237 -0
  69. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  70. package/dist/cjs/src/lib/transaction.js +615 -0
  71. package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +2 -0
  72. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  73. package/dist/cjs/src/lib/transactionBuilder.js +380 -0
  74. package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +14 -0
  75. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  76. package/dist/cjs/src/lib/transactionBuilderFactory.js +222 -0
  77. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  78. package/dist/cjs/src/lib/transferBuilder.js +70 -0
  79. package/dist/cjs/src/lib/transferBuilderV2.d.ts +69 -0
  80. package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
  81. package/dist/cjs/src/lib/transferBuilderV2.js +254 -0
  82. package/dist/{src → cjs/src}/lib/utils.d.ts +5 -0
  83. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  84. package/dist/cjs/src/lib/utils.js +657 -0
  85. package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  86. package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
  87. package/dist/cjs/src/register.d.ts +5 -0
  88. package/dist/cjs/src/register.d.ts.map +1 -0
  89. package/dist/cjs/src/register.js +29 -0
  90. package/dist/{src → cjs/src}/sol.d.ts +125 -3
  91. package/dist/cjs/src/sol.d.ts.map +1 -0
  92. package/dist/cjs/src/sol.js +1637 -0
  93. package/dist/{src → cjs/src}/solToken.d.ts +7 -0
  94. package/dist/cjs/src/solToken.d.ts.map +1 -0
  95. package/dist/cjs/src/solToken.js +79 -0
  96. package/dist/cjs/src/tsol.d.ts.map +1 -0
  97. package/dist/cjs/src/tsol.js +24 -0
  98. package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
  99. package/dist/cjs/test/fixtures/sol.js +1433 -0
  100. package/dist/{test → cjs/test}/resources/sol.d.ts +29 -29
  101. package/dist/cjs/test/resources/sol.d.ts.map +1 -0
  102. package/dist/cjs/test/resources/sol.js +320 -0
  103. package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
  104. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  105. package/dist/cjs/test/unit/explainTransactionWasm.js +66 -0
  106. package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  107. package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
  108. package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
  109. package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
  110. package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
  111. package/dist/cjs/test/unit/instructionParamsFactory.js +425 -0
  112. package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  113. package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
  114. package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
  115. package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
  116. package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
  117. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  118. package/dist/cjs/test/unit/keyPair.js +177 -0
  119. package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  120. package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
  121. package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  122. package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
  123. package/dist/cjs/test/unit/register.d.ts +2 -0
  124. package/dist/cjs/test/unit/register.d.ts.map +1 -0
  125. package/dist/cjs/test/unit/register.js +65 -0
  126. package/dist/cjs/test/unit/scaledUiAmount.d.ts +2 -0
  127. package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
  128. package/dist/cjs/test/unit/scaledUiAmount.js +101 -0
  129. package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
  130. package/dist/cjs/test/unit/sol.js +4899 -0
  131. package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
  132. package/dist/cjs/test/unit/solInstructionFactory.js +623 -0
  133. package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
  134. package/dist/cjs/test/unit/solToken.js +37 -0
  135. package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
  136. package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
  137. package/dist/cjs/test/unit/token2022Resolve.js +252 -0
  138. package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
  139. package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
  140. package/dist/cjs/test/unit/tokenExtensions.js +58 -0
  141. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  142. package/dist/cjs/test/unit/transaction.js +1108 -0
  143. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  144. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  145. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  146. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +508 -0
  147. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
  148. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
  149. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +343 -0
  150. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
  151. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
  152. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +909 -0
  153. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  154. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
  155. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  156. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  157. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  158. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  159. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  160. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  161. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  162. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  163. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  164. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  165. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  166. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +926 -0
  167. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  168. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  169. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  170. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +286 -0
  171. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  172. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +910 -0
  173. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  174. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  175. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  176. package/dist/cjs/test/unit/utils.js +628 -0
  177. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  178. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  179. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  180. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  181. package/dist/esm/index.d.ts +7 -0
  182. package/dist/esm/index.js +7 -0
  183. package/dist/esm/lib/ataInitializationBuilder.d.ts +58 -0
  184. package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
  185. package/dist/esm/lib/ataInitializationBuilder.js +183 -0
  186. package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
  187. package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
  188. package/dist/esm/lib/closeAtaBuilder.js +155 -0
  189. package/dist/esm/lib/confidentialTransferBuilder.d.ts +93 -0
  190. package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
  191. package/dist/esm/lib/confidentialTransferBuilder.js +205 -0
  192. package/dist/esm/lib/constants.d.ts +227 -0
  193. package/dist/esm/lib/constants.d.ts.map +1 -0
  194. package/dist/esm/lib/constants.js +266 -0
  195. package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
  196. package/dist/esm/lib/customInstructionBuilder.js +282 -0
  197. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  198. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  199. package/dist/esm/lib/explainTransactionWasm.js +301 -0
  200. package/dist/esm/lib/iface.d.ts +526 -0
  201. package/dist/esm/lib/iface.d.ts.map +1 -0
  202. package/dist/esm/lib/iface.js +3 -0
  203. package/dist/esm/lib/index.d.ts +27 -0
  204. package/dist/esm/lib/index.d.ts.map +1 -0
  205. package/dist/esm/lib/index.js +27 -0
  206. package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
  207. package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
  208. package/dist/esm/lib/instructionParamsFactory.js +1212 -0
  209. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  210. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  211. package/dist/esm/lib/keyPair.d.ts +26 -0
  212. package/dist/esm/lib/keyPair.js +59 -0
  213. package/dist/esm/lib/messages/index.d.ts +2 -0
  214. package/dist/esm/lib/messages/index.js +2 -0
  215. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  216. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  217. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  218. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  219. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  220. package/dist/esm/lib/scaledUiAmount.d.ts +30 -0
  221. package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
  222. package/dist/esm/lib/scaledUiAmount.js +108 -0
  223. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  224. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  225. package/dist/esm/lib/solInstructionFactory.js +1088 -0
  226. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  227. package/dist/esm/lib/stakingActivateBuilder.js +113 -0
  228. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  229. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  230. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  231. package/dist/{src → esm}/lib/stakingDeactivateBuilder.js +31 -38
  232. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  233. package/dist/esm/lib/stakingDelegateBuilder.js +113 -0
  234. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  235. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  236. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  237. package/dist/esm/lib/stakingWithdrawBuilder.js +71 -0
  238. package/dist/esm/lib/token2022Resolve.d.ts +106 -0
  239. package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
  240. package/dist/esm/lib/token2022Resolve.js +194 -0
  241. package/dist/esm/lib/tokenExtensions.d.ts +26 -0
  242. package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
  243. package/dist/esm/lib/tokenExtensions.js +99 -0
  244. package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
  245. package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
  246. package/dist/esm/lib/tokenTransferBuilder.js +230 -0
  247. package/dist/esm/lib/transaction.d.ts +103 -0
  248. package/dist/esm/lib/transaction.d.ts.map +1 -0
  249. package/dist/esm/lib/transaction.js +608 -0
  250. package/dist/esm/lib/transactionBuilder.d.ts +130 -0
  251. package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
  252. package/dist/esm/lib/transactionBuilder.js +373 -0
  253. package/dist/esm/lib/transactionBuilderFactory.d.ts +129 -0
  254. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  255. package/dist/esm/lib/transactionBuilderFactory.js +218 -0
  256. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  257. package/dist/esm/lib/transferBuilder.js +63 -0
  258. package/dist/esm/lib/transferBuilderV2.d.ts +69 -0
  259. package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
  260. package/dist/esm/lib/transferBuilderV2.js +247 -0
  261. package/dist/esm/lib/utils.d.ts +205 -0
  262. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  263. package/dist/esm/lib/utils.js +619 -0
  264. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  265. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  266. package/dist/esm/register.d.ts +5 -0
  267. package/dist/esm/register.d.ts.map +1 -0
  268. package/dist/esm/register.js +24 -0
  269. package/dist/esm/sol.d.ts +349 -0
  270. package/dist/esm/sol.d.ts.map +1 -0
  271. package/dist/esm/sol.js +1596 -0
  272. package/dist/esm/solToken.d.ts +44 -0
  273. package/dist/esm/solToken.d.ts.map +1 -0
  274. package/dist/esm/solToken.js +75 -0
  275. package/dist/esm/tsol.d.ts +11 -0
  276. package/dist/esm/tsol.js +20 -0
  277. package/package.json +36 -16
  278. package/dist/src/config/token2022StaticConfig.d.ts +0 -3
  279. package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
  280. package/dist/src/config/token2022StaticConfig.js +0 -50
  281. package/dist/src/lib/ataInitializationBuilder.d.ts.map +0 -1
  282. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  283. package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
  284. package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
  285. package/dist/src/lib/closeAtaBuilder.js +0 -69
  286. package/dist/src/lib/constants.d.ts.map +0 -1
  287. package/dist/src/lib/constants.js +0 -171
  288. package/dist/src/lib/customInstructionBuilder.js +0 -289
  289. package/dist/src/lib/iface.d.ts +0 -244
  290. package/dist/src/lib/iface.d.ts.map +0 -1
  291. package/dist/src/lib/iface.js +0 -7
  292. package/dist/src/lib/index.d.ts.map +0 -1
  293. package/dist/src/lib/index.js +0 -77
  294. package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
  295. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  296. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  297. package/dist/src/lib/keyPair.js +0 -63
  298. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  299. package/dist/src/lib/solInstructionFactory.js +0 -572
  300. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  301. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  302. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  303. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  304. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  305. package/dist/src/lib/token2022Config.d.ts +0 -44
  306. package/dist/src/lib/token2022Config.d.ts.map +0 -1
  307. package/dist/src/lib/token2022Config.js +0 -27
  308. package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
  309. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  310. package/dist/src/lib/transaction.d.ts.map +0 -1
  311. package/dist/src/lib/transaction.js +0 -595
  312. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  313. package/dist/src/lib/transactionBuilder.js +0 -380
  314. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  315. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  316. package/dist/src/lib/transferBuilder.js +0 -70
  317. package/dist/src/lib/transferBuilderV2.d.ts +0 -43
  318. package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
  319. package/dist/src/lib/transferBuilderV2.js +0 -210
  320. package/dist/src/lib/utils.js +0 -586
  321. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  322. package/dist/src/register.d.ts +0 -3
  323. package/dist/src/register.d.ts.map +0 -1
  324. package/dist/src/register.js +0 -15
  325. package/dist/src/sol.d.ts.map +0 -1
  326. package/dist/src/sol.js +0 -1285
  327. package/dist/src/solToken.d.ts.map +0 -1
  328. package/dist/src/solToken.js +0 -69
  329. package/dist/src/tsol.js +0 -24
  330. package/dist/test/fixtures/sol.js +0 -1433
  331. package/dist/test/resources/sol.d.ts.map +0 -1
  332. package/dist/test/resources/sol.js +0 -320
  333. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  334. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  335. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  336. package/dist/test/unit/getBuilderFactory.js +0 -10
  337. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  338. package/dist/test/unit/instructionParamsFactory.js +0 -412
  339. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  340. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  341. package/dist/test/unit/keyPair.js +0 -177
  342. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  343. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  344. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  345. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  346. package/dist/test/unit/sol.js +0 -3108
  347. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  348. package/dist/test/unit/solInstructionFactory.js +0 -454
  349. package/dist/test/unit/solToken.d.ts.map +0 -1
  350. package/dist/test/unit/solToken.js +0 -31
  351. package/dist/test/unit/transaction.d.ts.map +0 -1
  352. package/dist/test/unit/transaction.js +0 -983
  353. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  354. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  355. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  356. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  357. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  358. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  359. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  360. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  361. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  362. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  363. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  364. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  365. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  366. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  367. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  368. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  369. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  370. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  371. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  372. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  373. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  374. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  375. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  376. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  377. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  378. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  379. package/dist/test/unit/utils.js +0 -517
  380. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  381. package/dist/test/unit/versionedTransaction.js +0 -207
  382. package/dist/tsconfig.tsbuildinfo +0 -1
  383. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  384. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  385. /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
  386. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  387. /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
  388. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  389. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  390. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  391. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  392. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  393. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  394. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  395. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  396. /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
  397. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  398. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  399. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  400. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  401. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  402. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  403. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  404. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  405. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  406. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  407. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  408. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  409. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  410. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  411. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  412. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  413. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  414. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  415. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  416. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  417. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  418. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  419. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  420. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  421. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  422. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  423. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  424. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  425. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  426. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  427. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  428. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  429. /package/dist/{src → esm}/index.d.ts.map +0 -0
  430. /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
  431. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  432. /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
  433. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  434. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  435. /package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +0 -0
  436. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  437. /package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +0 -0
  438. /package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +0 -0
  439. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  440. /package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +0 -0
  441. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  442. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  443. /package/dist/{src → esm}/tsol.d.ts.map +0 -0
@@ -18,6 +18,8 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
18
18
  protected _memo?: string;
19
19
  protected _feePayer?: string;
20
20
  protected _priorityFee: number;
21
+ /** Optional override for the zk-elgamal-proof program id (used by CT instruction builders) */
22
+ protected _zkProofProgramId?: string;
21
23
  constructor(_coinConfig: Readonly<CoinConfig>);
22
24
  /**
23
25
  * The transaction type.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,380 @@
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.TransactionBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const transaction_1 = require("./transaction");
9
+ const web3_js_1 = require("@solana/web3.js");
10
+ const bs58_1 = __importDefault(require("bs58"));
11
+ const utils_1 = require("./utils");
12
+ const _1 = require(".");
13
+ const constants_1 = require("./constants");
14
+ const solInstructionFactory_1 = require("./solInstructionFactory");
15
+ const assert_1 = __importDefault(require("assert"));
16
+ const instructionParamsFactory_1 = require("./instructionParamsFactory");
17
+ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
18
+ constructor(_coinConfig) {
19
+ super(_coinConfig);
20
+ this._signatures = [];
21
+ this._instructionsData = [];
22
+ this._signers = [];
23
+ this.transaction = new transaction_1.Transaction(_coinConfig);
24
+ }
25
+ /**
26
+ * Initialize the transaction builder fields using the decoded transaction data
27
+ *
28
+ * @param {Transaction} tx the transaction data
29
+ */
30
+ initBuilder(tx) {
31
+ this._transaction = tx;
32
+ const txData = tx.toJson();
33
+ const filteredTransferInstructionsData = txData.instructionsData.filter((data) => data.type === constants_1.InstructionBuilderTypes.Transfer);
34
+ let sender;
35
+ if (filteredTransferInstructionsData.length > 0) {
36
+ const transferInstructionsData = filteredTransferInstructionsData[0];
37
+ sender = transferInstructionsData.params.fromAddress;
38
+ }
39
+ else {
40
+ sender = txData.feePayer;
41
+ }
42
+ this.sender(sender);
43
+ this.feePayer(txData.feePayer);
44
+ this.nonce(txData.nonce, txData.durableNonce);
45
+ this._instructionsData = (0, instructionParamsFactory_1.instructionParamsFactory)(tx.type, tx.solTransaction.instructions, this._coinConfig.name, txData.instructionsData, tx.useTokenAddressTokenName);
46
+ // Parse priority fee instruction data
47
+ const filteredPriorityFeeInstructionsData = txData.instructionsData.filter((data) => data.type === constants_1.InstructionBuilderTypes.SetPriorityFee);
48
+ for (const instruction of this._instructionsData) {
49
+ if (instruction.type === constants_1.InstructionBuilderTypes.Memo) {
50
+ const memoInstruction = instruction;
51
+ this.memo(memoInstruction.params.memo);
52
+ }
53
+ if (instruction.type === constants_1.InstructionBuilderTypes.NonceAdvance) {
54
+ const advanceNonceInstruction = instruction;
55
+ this.nonce(txData.nonce, advanceNonceInstruction.params);
56
+ }
57
+ // If prio fee instruction exists, set the priority fee variable
58
+ if (instruction.type === constants_1.InstructionBuilderTypes.SetPriorityFee) {
59
+ const priorityFeeInstructionsData = filteredPriorityFeeInstructionsData[0];
60
+ this.setPriorityFee({ amount: Number(priorityFeeInstructionsData.params.fee) });
61
+ }
62
+ }
63
+ }
64
+ /** @inheritdoc */
65
+ fromImplementation(rawTransaction) {
66
+ const tx = new transaction_1.Transaction(this._coinConfig);
67
+ this.validateRawTransaction(rawTransaction);
68
+ tx.fromRawTransaction(rawTransaction);
69
+ this.initBuilder(tx);
70
+ return this.transaction;
71
+ }
72
+ /** @inheritdoc */
73
+ async buildImplementation() {
74
+ const builtTransaction = this.buildSolTransaction();
75
+ if (builtTransaction instanceof web3_js_1.VersionedTransaction) {
76
+ this.transaction.versionedTransaction = builtTransaction;
77
+ }
78
+ else {
79
+ this.transaction.solTransaction = builtTransaction;
80
+ }
81
+ this.transaction.setTransactionType(this.transactionType);
82
+ this.transaction.setInstructionsData(this._instructionsData);
83
+ this.transaction.loadInputsAndOutputs();
84
+ this._transaction.tokenAccountRentExemptAmount = this._tokenAccountRentExemptAmount;
85
+ return this.transaction;
86
+ }
87
+ /**
88
+ * Builds the solana transaction.
89
+ */
90
+ buildSolTransaction() {
91
+ (0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
92
+ (0, assert_1.default)(this._recentBlockhash, new sdk_core_1.BuildTransactionError('recent blockhash is required before building'));
93
+ // Check if we should build as VersionedTransaction
94
+ if (this._transaction.isVersionedTransaction()) {
95
+ return this.buildVersionedTransaction();
96
+ }
97
+ else {
98
+ return this.buildLegacyTransaction();
99
+ }
100
+ }
101
+ /**
102
+ * Builds a legacy Solana transaction.
103
+ */
104
+ buildLegacyTransaction() {
105
+ const tx = new web3_js_1.Transaction();
106
+ if (this._transaction?.solTransaction?.signatures) {
107
+ tx.signatures = this._transaction?.solTransaction?.signatures;
108
+ }
109
+ tx.feePayer = this._feePayer ? new web3_js_1.PublicKey(this._feePayer) : new web3_js_1.PublicKey(this._sender);
110
+ if (this._nonceInfo) {
111
+ tx.nonceInfo = {
112
+ nonce: this._recentBlockhash,
113
+ nonceInstruction: (0, solInstructionFactory_1.solInstructionFactory)(this._nonceInfo)[0],
114
+ };
115
+ }
116
+ else {
117
+ tx.recentBlockhash = this._recentBlockhash;
118
+ }
119
+ for (const instruction of this._instructionsData) {
120
+ tx.add(...(0, solInstructionFactory_1.solInstructionFactory)(instruction, this._zkProofProgramId));
121
+ }
122
+ if (this._memo) {
123
+ const memoData = {
124
+ type: constants_1.InstructionBuilderTypes.Memo,
125
+ params: {
126
+ memo: this._memo,
127
+ },
128
+ };
129
+ this._instructionsData.push(memoData);
130
+ tx.add(...(0, solInstructionFactory_1.solInstructionFactory)(memoData));
131
+ }
132
+ this._transaction.lamportsPerSignature = this._lamportsPerSignature;
133
+ for (const signer of this._signers) {
134
+ const publicKey = new web3_js_1.PublicKey(signer.getKeys().pub);
135
+ const secretKey = signer.getKeys(true).prv;
136
+ (0, assert_1.default)(secretKey instanceof Uint8Array);
137
+ tx.partialSign({ publicKey, secretKey });
138
+ }
139
+ for (const signature of this._signatures) {
140
+ const solPublicKey = new web3_js_1.PublicKey(signature.publicKey.pub);
141
+ tx.addSignature(solPublicKey, signature.signature);
142
+ }
143
+ return tx;
144
+ }
145
+ /**
146
+ * Builds a VersionedTransaction.
147
+ *
148
+ * @returns {VersionedTransaction} The built versioned transaction
149
+ */
150
+ buildVersionedTransaction() {
151
+ const versionedTxData = this._transaction.getVersionedTransactionData();
152
+ if (!versionedTxData) {
153
+ throw new sdk_core_1.BuildTransactionError('Missing VersionedTransactionData');
154
+ }
155
+ const versionedTx = this.buildFromVersionedData(versionedTxData);
156
+ this._transaction.lamportsPerSignature = this._lamportsPerSignature;
157
+ for (const signer of this._signers) {
158
+ const publicKey = new web3_js_1.PublicKey(signer.getKeys().pub);
159
+ const secretKey = signer.getKeys(true).prv;
160
+ (0, assert_1.default)(secretKey instanceof Uint8Array);
161
+ versionedTx.sign([{ publicKey, secretKey }]);
162
+ }
163
+ for (const signature of this._signatures) {
164
+ const solPublicKey = new web3_js_1.PublicKey(signature.publicKey.pub);
165
+ versionedTx.addSignature(solPublicKey, signature.signature);
166
+ }
167
+ return versionedTx;
168
+ }
169
+ /**
170
+ * Build a VersionedTransaction from deconstructed VersionedTransactionData
171
+ * @param data The versioned transaction data
172
+ * @returns The built versioned transaction
173
+ */
174
+ buildFromVersionedData(data) {
175
+ const staticAccountKeys = data.staticAccountKeys.map((key) => new web3_js_1.PublicKey(key));
176
+ const addressTableLookups = data.addressLookupTables.map((alt) => ({
177
+ accountKey: new web3_js_1.PublicKey(alt.accountKey),
178
+ writableIndexes: alt.writableIndexes,
179
+ readonlyIndexes: alt.readonlyIndexes,
180
+ }));
181
+ const compiledInstructions = data.versionedInstructions.map((instruction) => ({
182
+ programIdIndex: instruction.programIdIndex,
183
+ accountKeyIndexes: instruction.accountKeyIndexes,
184
+ data: Buffer.from(bs58_1.default.decode(instruction.data)),
185
+ }));
186
+ const recentBlockhash = data.recentBlockhash || this._recentBlockhash;
187
+ if (!recentBlockhash) {
188
+ throw new sdk_core_1.BuildTransactionError('Missing recent blockhash for VersionedTransaction');
189
+ }
190
+ if (!this._sender) {
191
+ throw new sdk_core_1.BuildTransactionError('Missing sender (fee payer) for VersionedTransaction');
192
+ }
193
+ const messageV0 = new web3_js_1.MessageV0({
194
+ header: data.messageHeader,
195
+ staticAccountKeys,
196
+ recentBlockhash: recentBlockhash,
197
+ compiledInstructions,
198
+ addressTableLookups,
199
+ });
200
+ return new web3_js_1.VersionedTransaction(messageV0);
201
+ }
202
+ // region Getters and Setters
203
+ /** @inheritdoc */
204
+ get transaction() {
205
+ return this._transaction;
206
+ }
207
+ /** @inheritdoc */
208
+ set transaction(transaction) {
209
+ this._transaction = transaction;
210
+ }
211
+ /** @inheritdoc */
212
+ signImplementation(key) {
213
+ this.validateKey(key);
214
+ this.checkDuplicatedSigner(key);
215
+ const prv = key.key;
216
+ const signer = new _1.KeyPair({ prv: prv });
217
+ this._signers.push(signer);
218
+ return this._transaction;
219
+ }
220
+ /** @inheritDoc */
221
+ addSignature(publicKey, signature) {
222
+ this._signatures.push({ publicKey, signature });
223
+ }
224
+ /**
225
+ * Sets the sender of this transaction.
226
+ * This account will be responsible for paying transaction fees.
227
+ *
228
+ * @param {string} senderAddress the account that is sending this transaction
229
+ * @returns {TransactionBuilder} This transaction builder
230
+ */
231
+ sender(senderAddress) {
232
+ (0, utils_1.validateAddress)(senderAddress, 'sender');
233
+ this._sender = senderAddress;
234
+ return this;
235
+ }
236
+ /**
237
+ * Set the transaction nonce
238
+ * Requires both optional params in order to use the durable nonce
239
+ *
240
+ * @param {Blockhash} blockHash The latest blockHash
241
+ * @param {DurableNonceParams} [durableNonceParams] An object containing the walletNonceAddress and the authWalletAddress (required for durable nonce)
242
+ * @returns {TransactionBuilder} This transaction builder
243
+ */
244
+ nonce(blockHash, durableNonceParams) {
245
+ if (!blockHash || !(0, utils_1.isValidBlockId)(blockHash)) {
246
+ throw new sdk_core_1.BuildTransactionError('Invalid or missing blockHash, got: ' + blockHash);
247
+ }
248
+ if (durableNonceParams) {
249
+ (0, utils_1.validateAddress)(durableNonceParams.walletNonceAddress, 'walletNonceAddress');
250
+ (0, utils_1.validateAddress)(durableNonceParams.authWalletAddress, 'authWalletAddress');
251
+ if (durableNonceParams.walletNonceAddress === durableNonceParams.authWalletAddress) {
252
+ throw new sdk_core_1.BuildTransactionError('Invalid params: walletNonceAddress cannot be equal to authWalletAddress');
253
+ }
254
+ this._nonceInfo = {
255
+ type: constants_1.InstructionBuilderTypes.NonceAdvance,
256
+ params: durableNonceParams,
257
+ };
258
+ }
259
+ this._recentBlockhash = blockHash;
260
+ return this;
261
+ }
262
+ /**
263
+ * Set the memo
264
+ *
265
+ * @param {string} memo
266
+ * @returns {TransactionBuilder} This transaction builder
267
+ */
268
+ memo(memo) {
269
+ this.validateMemo(memo);
270
+ this._memo = memo;
271
+ return this;
272
+ }
273
+ fee(feeOptions) {
274
+ this._lamportsPerSignature = Number(feeOptions.amount);
275
+ return this;
276
+ }
277
+ setPriorityFee(feeOptions) {
278
+ this._priorityFee = Number(feeOptions.amount);
279
+ return this;
280
+ }
281
+ feePayer(feePayer) {
282
+ this._feePayer = feePayer;
283
+ return this;
284
+ }
285
+ /**
286
+ * Used to set the minimum rent exempt amount for an ATA
287
+ *
288
+ * @param tokenAccountRentExemptAmount minimum rent exempt amount in lamports
289
+ */
290
+ associatedTokenAccountRent(tokenAccountRentExemptAmount) {
291
+ this.validateRentExemptAmount(tokenAccountRentExemptAmount);
292
+ this._tokenAccountRentExemptAmount = tokenAccountRentExemptAmount;
293
+ return this;
294
+ }
295
+ validateRentExemptAmount(tokenAccountRentExemptAmount) {
296
+ // _tokenAccountRentExemptAmount is allowed to be undefined or a valid amount if it's defined
297
+ if (tokenAccountRentExemptAmount && !(0, utils_1.isValidAmount)(tokenAccountRentExemptAmount)) {
298
+ throw new sdk_core_1.BuildTransactionError('Invalid tokenAccountRentExemptAmount, got: ' + tokenAccountRentExemptAmount);
299
+ }
300
+ }
301
+ // endregion
302
+ // region Validators
303
+ /** @inheritdoc */
304
+ validateAddress(address, addressFormat) {
305
+ if (!(0, utils_1.isValidAddress)(address.address)) {
306
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
307
+ }
308
+ }
309
+ /** @inheritdoc */
310
+ validateKey(key) {
311
+ let keyPair;
312
+ try {
313
+ keyPair = new _1.KeyPair({ prv: key.key });
314
+ }
315
+ catch {
316
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
317
+ }
318
+ if (!keyPair.getKeys().prv) {
319
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
320
+ }
321
+ }
322
+ /** @inheritdoc */
323
+ validateRawTransaction(rawTransaction) {
324
+ (0, utils_1.validateRawTransaction)(rawTransaction);
325
+ }
326
+ /** @inheritdoc */
327
+ validateTransaction(transaction) {
328
+ this.validateSender();
329
+ this.validateNonce();
330
+ this.validateRentExemptAmount(this._tokenAccountRentExemptAmount);
331
+ }
332
+ /** @inheritdoc */
333
+ validateValue(value) {
334
+ if (value.isLessThan(0)) {
335
+ throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
336
+ }
337
+ }
338
+ /** Validates the memo
339
+ *
340
+ * @param {string} memo - the memo as string
341
+ */
342
+ validateMemo(memo) {
343
+ if (!memo) {
344
+ throw new sdk_core_1.BuildTransactionError('Invalid memo, got: ' + memo);
345
+ }
346
+ if (!(0, utils_1.isValidMemo)(memo)) {
347
+ throw new sdk_core_1.BuildTransactionError('Memo is too long');
348
+ }
349
+ }
350
+ /**
351
+ * Validates that the given key is not already in this._signers
352
+ *
353
+ * @param {BaseKey} key - The key to check
354
+ */
355
+ checkDuplicatedSigner(key) {
356
+ this._signers.forEach((kp) => {
357
+ if (kp.getKeys().prv === key.key) {
358
+ throw new sdk_core_1.SigningError('Duplicated signer: ' + key.key);
359
+ }
360
+ });
361
+ }
362
+ /**
363
+ * Validates that the sender field is defined
364
+ */
365
+ validateSender() {
366
+ if (this._sender === undefined) {
367
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sender');
368
+ }
369
+ }
370
+ /**
371
+ * Validates that the nonce field is defined
372
+ */
373
+ validateNonce() {
374
+ if (this._recentBlockhash === undefined) {
375
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing nonce blockhash');
376
+ }
377
+ }
378
+ }
379
+ exports.TransactionBuilder = TransactionBuilder;
380
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsbURBVzhCO0FBQzlCLCtDQUE0QztBQUM1Qyw2Q0FPeUI7QUFDekIsZ0RBQTBCO0FBQzFCLG1DQU9pQjtBQUNqQix3QkFBNEI7QUFDNUIsMkNBQXNEO0FBQ3RELG1FQUFnRTtBQUNoRSxvREFBNEI7QUFFNUIseUVBQXNFO0FBRXRFLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQWlCckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFoQmIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBTzVCLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQVNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUzQixNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ3JFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLFFBQVEsQ0FDekQsQ0FBQztRQUNGLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxnQ0FBZ0MsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSx3QkFBd0IsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQWEsQ0FBQztZQUNqRixNQUFNLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxD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ZXIuanMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgRmVlT3B0aW9ucyxcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbiAgU2lnbmluZ0Vycm9yLFxuICBTb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIEJsb2NraGFzaCxcbiAgTWVzc2FnZUFkZHJlc3NUYWJsZUxvb2t1cCxcbiAgTWVzc2FnZVYwLFxuICBQdWJsaWNLZXksXG4gIFRyYW5zYWN0aW9uIGFzIFNvbFRyYW5zYWN0aW9uLFxuICBWZXJzaW9uZWRUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBiYXNlNTggZnJvbSAnYnM1OCc7XG5pbXBvcnQge1xuICBpc1ZhbGlkQWRkcmVzcyxcbiAgaXNWYWxpZEFtb3VudCxcbiAgaXNWYWxpZEJsb2NrSWQsXG4gIGlzVmFsaWRNZW1vLFxuICB2YWxpZGF0ZUFkZHJlc3MsXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24sXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4nO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzb2xJbnN0cnVjdGlvbkZhY3RvcnkgfSBmcm9tICcuL3NvbEluc3RydWN0aW9uRmFjdG9yeSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBEdXJhYmxlTm9uY2VQYXJhbXMsIEluc3RydWN0aW9uUGFyYW1zLCBNZW1vLCBOb25jZSwgU2V0UHJpb3JpdHlGZWUsIFRyYW5zZmVyIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBpbnN0cnVjdGlvblBhcmFtc0ZhY3RvcnkgfSBmcm9tICcuL2luc3RydWN0aW9uUGFyYW1zRmFjdG9yeSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG4gIHByaXZhdGUgX2xhbXBvcnRzUGVyU2lnbmF0dXJlOiBudW1iZXI7XG4gIHByaXZhdGUgX3Rva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3JlY2VudEJsb2NraGFzaDogQmxvY2toYXNoO1xuICBwcm90ZWN0ZWQgX25vbmNlSW5mbzogTm9uY2U7XG4gIHByb3RlY3RlZCBfaW5zdHJ1Y3Rpb25zRGF0YTogSW5zdHJ1Y3Rpb25QYXJhbXNbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX3NpZ25lcnM6IEtleVBhaXJbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX21lbW8/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZmVlUGF5ZXI/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHJpb3JpdHlGZWU6IG51bWJlcjtcbiAgLyoqIE9wdGlvbmFsIG92ZXJyaWRlIGZvciB0aGUgemstZWxnYW1hbC1wcm9vZiBwcm9ncmFtIGlkICh1c2VkIGJ5IENUIGluc3RydWN0aW9uIGJ1aWxkZXJzKSAqL1xuICBwcm90ZWN0ZWQgX3prUHJvb2ZQcm9ncmFtSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRUcmFuc2Zlckluc3RydWN0aW9uc0RhdGEgPSB0eERhdGEuaW5zdHJ1Y3Rpb25zRGF0YS5maWx0ZXIoXG4gICAgICAoZGF0YSkgPT4gZGF0YS50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5UcmFuc2ZlclxuICAgICk7XG4gICAgbGV0IHNlbmRlcjtcbiAgICBpZiAoZmlsdGVyZWRUcmFuc2Zlckluc3RydWN0aW9uc0RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbnNEYXRhID0gZmlsdGVyZWRUcmFuc2Zlckluc3RydWN0aW9uc0RhdGFbMF0gYXMgVHJhbnNmZXI7XG4gICAgICBzZW5kZXIgPSB0cmFuc2Zlckluc3RydWN0aW9uc0RhdGEucGFyYW1zLmZyb21BZGRyZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZW5kZXIgPSB0eERhdGEuZmVlUGF5ZXI7XG4gICAgfVxuICAgIHRoaXMuc2VuZGVyKHNlbmRlcik7XG4gICAgdGhpcy5mZWVQYXllcih0eERhdGEuZmVlUGF5ZXIgYXMgc3RyaW5nKTtcbiAgICB0aGlzLm5vbmNlKHR4RGF0YS5ub25jZSwgdHhEYXRhLmR1cmFibGVOb25jZSk7XG4gICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IGluc3RydWN0aW9uUGFyYW1zRmFjdG9yeShcbiAgICAgIHR4LnR5cGUsXG4gICAgICB0eC5zb2xUcmFuc2FjdGlvbi5pbnN0cnVjdGlvbnMsXG4gICAgICB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB0eERhdGEuaW5zdHJ1Y3Rpb25zRGF0YSxcbiAgICAgIHR4LnVzZVRva2VuQWRkcmVzc1Rva2VuTmFtZVxuICAgICk7XG4gICAgLy8gUGFyc2UgcHJpb3JpdHkgZmVlIGluc3RydWN0aW9uIGRhdGFcbiAgICBjb25zdCBmaWx0ZXJlZFByaW9yaXR5RmVlSW5zdHJ1Y3Rpb25zRGF0YSA9IHR4RGF0YS5pbnN0cnVjdGlvbnNEYXRhLmZpbHRlcihcbiAgICAgIChkYXRhKSA9PiBkYXRhLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlNldFByaW9yaXR5RmVlXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8pIHtcbiAgICAgICAgY29uc3QgbWVtb0luc3RydWN0aW9uOiBNZW1vID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMubWVtbyhtZW1vSW5zdHJ1Y3Rpb24ucGFyYW1zLm1lbW8pO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTm9uY2VBZHZhbmNlKSB7XG4gICAgICAgIGNvbnN0IGFkdmFuY2VOb25jZUluc3RydWN0aW9uOiBOb25jZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLm5vbmNlKHR4RGF0YS5ub25jZSwgYWR2YW5jZU5vbmNlSW5zdHJ1Y3Rpb24ucGFyYW1zKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgcHJpbyBmZWUgaW5zdHJ1Y3Rpb24gZXhpc3RzLCBzZXQgdGhlIHByaW9yaXR5IGZlZSB2YXJpYWJsZVxuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlNldFByaW9yaXR5RmVlKSB7XG4gICAgICAgIGNvbnN0IHByaW9yaXR5RmVlSW5zdHJ1Y3Rpb25zRGF0YSA9IGZpbHRlcmVkUHJpb3JpdHlGZWVJbnN0cnVjdGlvbnNEYXRhWzBdIGFzIFNldFByaW9yaXR5RmVlO1xuICAgICAgICB0aGlzLnNldFByaW9yaXR5RmVlKHsgYW1vdW50OiBOdW1iZXIocHJpb3JpdHlGZWVJbnN0cnVjdGlvbnNEYXRhLnBhcmFtcy5mZWUpIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBidWlsdFRyYW5zYWN0aW9uID0gdGhpcy5idWlsZFNvbFRyYW5zYWN0aW9uKCk7XG5cbiAgICBpZiAoYnVpbHRUcmFuc2FjdGlvbiBpbnN0YW5jZW9mIFZlcnNpb25lZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnZlcnNpb25lZFRyYW5zYWN0aW9uID0gYnVpbHRUcmFuc2FjdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zb2xUcmFuc2FjdGlvbiA9IGJ1aWx0VHJhbnNhY3Rpb247XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0SW5zdHJ1Y3Rpb25zRGF0YSh0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24udG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCA9IHRoaXMuX3Rva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQ7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBzb2xhbmEgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRTb2xUcmFuc2FjdGlvbigpOiBTb2xUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9yZWNlbnRCbG9ja2hhc2gsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3JlY2VudCBibG9ja2hhc2ggaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIGJ1aWxkIGFzIFZlcnNpb25lZFRyYW5zYWN0aW9uXG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRWZXJzaW9uZWRUcmFuc2FjdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZExlZ2FjeVRyYW5zYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGxlZ2FjeSBTb2xhbmEgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTGVnYWN5VHJhbnNhY3Rpb24oKTogU29sVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFNvbFRyYW5zYWN0aW9uKCk7XG4gICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uPy5zb2xUcmFuc2FjdGlvbj8uc2lnbmF0dXJlcykge1xuICAgICAgdHguc2lnbmF0dXJlcyA9IHRoaXMuX3RyYW5zYWN0aW9uPy5zb2xUcmFuc2FjdGlvbj8uc2lnbmF0dXJlcztcbiAgICB9XG5cbiAgICB0eC5mZWVQYXllciA9IHRoaXMuX2ZlZVBheWVyID8gbmV3IFB1YmxpY0tleSh0aGlzLl9mZWVQYXllcikgOiBuZXcgUHVibGljS2V5KHRoaXMuX3NlbmRlcik7XG5cbiAgICBpZiAodGhpcy5fbm9uY2VJbmZvKSB7XG4gICAgICB0eC5ub25jZUluZm8gPSB7XG4gICAgICAgIG5vbmNlOiB0aGlzLl9yZWNlbnRCbG9ja2hhc2gsXG4gICAgICAgIG5vbmNlSW5zdHJ1Y3Rpb246IHNvbEluc3RydWN0aW9uRmFjdG9yeSh0aGlzLl9ub25jZUluZm8pWzBdLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHgucmVjZW50QmxvY2toYXNoID0gdGhpcy5fcmVjZW50QmxvY2toYXNoO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIHR4LmFkZCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkoaW5zdHJ1Y3Rpb24sIHRoaXMuX3prUHJvb2ZQcm9ncmFtSWQpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWVtbykge1xuICAgICAgY29uc3QgbWVtb0RhdGE6IE1lbW8gPSB7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk1lbW8sXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIG1lbW86IHRoaXMuX21lbW8sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKG1lbW9EYXRhKTtcbiAgICAgIHR4LmFkZCguLi5zb2xJbnN0cnVjdGlvbkZhY3RvcnkobWVtb0RhdGEpKTtcbiAgICB9XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5sYW1wb3J0c1BlclNpZ25hdHVyZSA9IHRoaXMuX2xhbXBvcnRzUGVyU2lnbmF0dXJlO1xuXG4gICAgZm9yIChjb25zdCBzaWduZXIgb2YgdGhpcy5fc2lnbmVycykge1xuICAgICAgY29uc3QgcHVibGljS2V5ID0gbmV3IFB1YmxpY0tleShzaWduZXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICBjb25zdCBzZWNyZXRLZXkgPSBzaWduZXIuZ2V0S2V5cyh0cnVlKS5wcnY7XG4gICAgICBhc3NlcnQoc2VjcmV0S2V5IGluc3RhbmNlb2YgVWludDhBcnJheSk7XG4gICAgICB0eC5wYXJ0aWFsU2lnbih7IHB1YmxpY0tleSwgc2VjcmV0S2V5IH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc2lnbmF0dXJlIG9mIHRoaXMuX3NpZ25hdHVyZXMpIHtcbiAgICAgIGNvbnN0IHNvbFB1YmxpY0tleSA9IG5ldyBQdWJsaWNLZXkoc2lnbmF0dXJlLnB1YmxpY0tleS5wdWIpO1xuICAgICAgdHguYWRkU2lnbmF0dXJlKHNvbFB1YmxpY0tleSwgc2lnbmF0dXJlLnNpZ25hdHVyZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIFZlcnNpb25lZFRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VmVyc2lvbmVkVHJhbnNhY3Rpb259IFRoZSBidWlsdCB2ZXJzaW9uZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgYnVpbGRWZXJzaW9uZWRUcmFuc2FjdGlvbigpOiBWZXJzaW9uZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdmVyc2lvbmVkVHhEYXRhID0gdGhpcy5fdHJhbnNhY3Rpb24uZ2V0VmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKCk7XG5cbiAgICBpZiAoIXZlcnNpb25lZFR4RGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEnKTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRUeCA9IHRoaXMuYnVpbGRGcm9tVmVyc2lvbmVkRGF0YSh2ZXJzaW9uZWRUeERhdGEpO1xuXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24ubGFtcG9ydHNQZXJTaWduYXR1cmUgPSB0aGlzLl9sYW1wb3J0c1BlclNpZ25hdHVyZTtcblxuICAgIGZvciAoY29uc3Qgc2lnbmVyIG9mIHRoaXMuX3NpZ25lcnMpIHtcbiAgICAgIGNvbnN0IHB1YmxpY0tleSA9IG5ldyBQdWJsaWNLZXkoc2lnbmVyLmdldEtleXMoKS5wdWIpO1xuICAgICAgY29uc3Qgc2VjcmV0S2V5ID0gc2lnbmVyLmdldEtleXModHJ1ZSkucHJ2O1xuICAgICAgYXNzZXJ0KHNlY3JldEtleSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpO1xuICAgICAgdmVyc2lvbmVkVHguc2lnbihbeyBwdWJsaWNLZXksIHNlY3JldEtleSB9XSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzaWduYXR1cmUgb2YgdGhpcy5fc2lnbmF0dXJlcykge1xuICAgICAgY29uc3Qgc29sUHVibGljS2V5ID0gbmV3IFB1YmxpY0tleShzaWduYXR1cmUucHVibGljS2V5LnB1Yik7XG4gICAgICB2ZXJzaW9uZWRUeC5hZGRTaWduYXR1cmUoc29sUHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyc2lvbmVkVHg7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBWZXJzaW9uZWRUcmFuc2FjdGlvbiBmcm9tIGRlY29uc3RydWN0ZWQgVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhXG4gICAqIEBwYXJhbSBkYXRhIFRoZSB2ZXJzaW9uZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgYnVpbHQgdmVyc2lvbmVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkRnJvbVZlcnNpb25lZERhdGEoZGF0YTogU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTogVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHN0YXRpY0FjY291bnRLZXlzID0gZGF0YS5zdGF0aWNBY2NvdW50S2V5cy5tYXAoKGtleTogc3RyaW5nKSA9PiBuZXcgUHVibGljS2V5KGtleSkpO1xuXG4gICAgY29uc3QgYWRkcmVzc1RhYmxlTG9va3VwczogTWVzc2FnZUFkZHJlc3NUYWJsZUxvb2t1cFtdID0gZGF0YS5hZGRyZXNzTG9va3VwVGFibGVzLm1hcCgoYWx0KSA9PiAoe1xuICAgICAgYWNjb3VudEtleTogbmV3IFB1YmxpY0tleShhbHQuYWNjb3VudEtleSksXG4gICAgICB3cml0YWJsZUluZGV4ZXM6IGFsdC53cml0YWJsZUluZGV4ZXMsXG4gICAgICByZWFkb25seUluZGV4ZXM6IGFsdC5yZWFkb25seUluZGV4ZXMsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgY29tcGlsZWRJbnN0cnVjdGlvbnMgPSBkYXRhLnZlcnNpb25lZEluc3RydWN0aW9ucy5tYXAoKGluc3RydWN0aW9uKSA9PiAoe1xuICAgICAgcHJvZ3JhbUlkSW5kZXg6IGluc3RydWN0aW9uLnByb2dyYW1JZEluZGV4LFxuICAgICAgYWNjb3VudEtleUluZGV4ZXM6IGluc3RydWN0aW9uLmFjY291bnRLZXlJbmRleGVzLFxuICAgICAgZGF0YTogQnVmZmVyLmZyb20oYmFzZTU4LmRlY29kZShpbnN0cnVjdGlvbi5kYXRhKSksXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcmVjZW50QmxvY2toYXNoID0gZGF0YS5yZWNlbnRCbG9ja2hhc2ggfHwgdGhpcy5fcmVjZW50QmxvY2toYXNoO1xuXG4gICAgaWYgKCFyZWNlbnRCbG9ja2hhc2gpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgcmVjZW50IGJsb2NraGFzaCBmb3IgVmVyc2lvbmVkVHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3NlbmRlcikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBzZW5kZXIgKGZlZSBwYXllcikgZm9yIFZlcnNpb25lZFRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZVYwID0gbmV3IE1lc3NhZ2VWMCh7XG4gICAgICBoZWFkZXI6IGRhdGEubWVzc2FnZUhlYWRlcixcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzLFxuICAgICAgcmVjZW50QmxvY2toYXNoOiByZWNlbnRCbG9ja2hhc2gsXG4gICAgICBjb21waWxlZEluc3RydWN0aW9ucyxcbiAgICAgIGFkZHJlc3NUYWJsZUxvb2t1cHMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFZlcnNpb25lZFRyYW5zYWN0aW9uKG1lc3NhZ2VWMCk7XG4gIH1cblxuICAvLyByZWdpb24gR2V0dGVycyBhbmQgU2V0dGVyc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlS2V5KGtleSk7XG4gICAgdGhpcy5jaGVja0R1cGxpY2F0ZWRTaWduZXIoa2V5KTtcbiAgICBjb25zdCBwcnYgPSBrZXkua2V5O1xuICAgIGNvbnN0IHNpZ25lciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBwcnYgfSk7XG4gICAgdGhpcy5fc2lnbmVycy5wdXNoKHNpZ25lcik7XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICogVGhpcyBhY2NvdW50IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHBheWluZyB0cmFuc2FjdGlvbiBmZWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VuZGVyQWRkcmVzcyB0aGUgYWNjb3VudCB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNlbmRlcihzZW5kZXJBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3Moc2VuZGVyQWRkcmVzcywgJ3NlbmRlcicpO1xuICAgIHRoaXMuX3NlbmRlciA9IHNlbmRlckFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBub25jZVxuICAgKiBSZXF1aXJlcyBib3RoIG9wdGlvbmFsIHBhcmFtcyBpbiBvcmRlciB0byB1c2UgdGhlIGR1cmFibGUgbm9uY2VcbiAgICpcbiAgICogQHBhcmFtIHtCbG9ja2hhc2h9IGJsb2NrSGFzaCBUaGUgbGF0ZXN0IGJsb2NrSGFzaFxuICAgKiBAcGFyYW0ge0R1cmFibGVOb25jZVBhcmFtc30gW2R1cmFibGVOb25jZVBhcmFtc10gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHdhbGxldE5vbmNlQWRkcmVzcyBhbmQgdGhlIGF1dGhXYWxsZXRBZGRyZXNzIChyZXF1aXJlZCBmb3IgZHVyYWJsZSBub25jZSlcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBub25jZShibG9ja0hhc2g6IEJsb2NraGFzaCwgZHVyYWJsZU5vbmNlUGFyYW1zPzogRHVyYWJsZU5vbmNlUGFyYW1zKTogdGhpcyB7XG4gICAgaWYgKCFibG9ja0hhc2ggfHwgIWlzVmFsaWRCbG9ja0lkKGJsb2NrSGFzaCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBibG9ja0hhc2gsIGdvdDogJyArIGJsb2NrSGFzaCk7XG4gICAgfVxuICAgIGlmIChkdXJhYmxlTm9uY2VQYXJhbXMpIHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhkdXJhYmxlTm9uY2VQYXJhbXMud2FsbGV0Tm9uY2VBZGRyZXNzLCAnd2FsbGV0Tm9uY2VBZGRyZXNzJyk7XG4gICAgICB2YWxpZGF0ZUFkZHJlc3MoZHVyYWJsZU5vbmNlUGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzLCAnYXV0aFdhbGxldEFkZHJlc3MnKTtcbiAgICAgIGlmIChkdXJhYmxlTm9uY2VQYXJhbXMud2FsbGV0Tm9uY2VBZGRyZXNzID09PSBkdXJhYmxlTm9uY2VQYXJhbXMuYXV0aFdhbGxldEFkZHJlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBwYXJhbXM6IHdhbGxldE5vbmNlQWRkcmVzcyBjYW5ub3QgYmUgZXF1YWwgdG8gYXV0aFdhbGxldEFkZHJlc3MnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX25vbmNlSW5mbyA9IHtcbiAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTm9uY2VBZHZhbmNlLFxuICAgICAgICBwYXJhbXM6IGR1cmFibGVOb25jZVBhcmFtcyxcbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuX3JlY2VudEJsb2NraGFzaCA9IGJsb2NrSGFzaDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBtZW1vXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgbWVtbyhtZW1vOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTWVtbyhtZW1vKTtcbiAgICB0aGlzLl9tZW1vID0gbWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZlZShmZWVPcHRpb25zOiBGZWVPcHRpb25zKTogdGhpcyB7XG4gICAgdGhpcy5fbGFtcG9ydHNQZXJTaWduYXR1cmUgPSBOdW1iZXIoZmVlT3B0aW9ucy5hbW91bnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFByaW9yaXR5RmVlKGZlZU9wdGlvbnM6IEZlZU9wdGlvbnMpOiB0aGlzIHtcbiAgICB0aGlzLl9wcmlvcml0eUZlZSA9IE51bWJlcihmZWVPcHRpb25zLmFtb3VudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmZWVQYXllcihmZWVQYXllcjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fZmVlUGF5ZXIgPSBmZWVQYXllcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNldCB0aGUgbWluaW11bSByZW50IGV4ZW1wdCBhbW91bnQgZm9yIGFuIEFUQVxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCBtaW5pbXVtIHJlbnQgZXhlbXB0IGFtb3VudCBpbiBsYW1wb3J0c1xuICAgKi9cbiAgYXNzb2NpYXRlZFRva2VuQWNjb3VudFJlbnQodG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVJlbnRFeGVtcHRBbW91bnQodG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCk7XG4gICAgdGhpcy5fdG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCA9IHRva2VuQWNjb3VudFJlbnRFeGVtcHRBbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVudEV4ZW1wdEFtb3VudCh0b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50OiBzdHJpbmcpIHtcbiAgICAvLyBfdG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCBpcyBhbGxvd2VkIHRvIGJlIHVuZGVmaW5lZCBvciBhIHZhbGlkIGFtb3VudCBpZiBpdCdzIGRlZmluZWRcbiAgICBpZiAodG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCAmJiAhaXNWYWxpZEFtb3VudCh0b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50LCBnb3Q6ICcgKyB0b2tlbkFjY291bnRSZW50RXhlbXB0QW1vdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBlbmRyZWdpb25cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBrZXlQYWlyOiBLZXlQYWlyO1xuICAgIHRyeSB7XG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cblxuICAgIGlmICgha2V5UGFpci5nZXRLZXlzKCkucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlU2VuZGVyKCk7XG4gICAgdGhpcy52YWxpZGF0ZU5vbmNlKCk7XG4gICAgdGhpcy52YWxpZGF0ZVJlbnRFeGVtcHRBbW91bnQodGhpcy5fdG9rZW5BY2NvdW50UmVudEV4ZW1wdEFtb3VudCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvKiogVmFsaWRhdGVzIHRoZSBtZW1vXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZW1vIC0gdGhlIG1lbW8gYXMgc3RyaW5nXG4gICAqL1xuICB2YWxpZGF0ZU1lbW8obWVtbzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFtZW1vKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG1lbW8sIGdvdDogJyArIG1lbW8pO1xuICAgIH1cbiAgICBpZiAoIWlzVmFsaWRNZW1vKG1lbW8pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNZW1vIGlzIHRvbyBsb25nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBnaXZlbiBrZXkgaXMgbm90IGFscmVhZHkgaW4gdGhpcy5fc2lnbmVyc1xuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VLZXl9IGtleSAtIFRoZSBrZXkgdG8gY2hlY2tcbiAgICovXG4gIHByaXZhdGUgY2hlY2tEdXBsaWNhdGVkU2lnbmVyKGtleTogQmFzZUtleSkge1xuICAgIHRoaXMuX3NpZ25lcnMuZm9yRWFjaCgoa3ApID0+IHtcbiAgICAgIGlmIChrcC5nZXRLZXlzKCkucHJ2ID09PSBrZXkua2V5KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0R1cGxpY2F0ZWQgc2lnbmVyOiAnICsga2V5LmtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgdGhlIHNlbmRlciBmaWVsZCBpcyBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlU2VuZGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzZW5kZXInKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgdGhlIG5vbmNlIGZpZWxkIGlzIGRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVOb25jZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVjZW50QmxvY2toYXNoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3Npbmcgbm9uY2UgYmxvY2toYXNoJyk7XG4gICAgfVxuICB9XG4gIC8vIGVuZHJlZ2lvblxufVxuIl19
@@ -2,6 +2,8 @@ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
3
  import { AtaInitializationBuilder } from './ataInitializationBuilder';
4
4
  import { CloseAtaBuilder } from './closeAtaBuilder';
5
+ import { ConfidentialTransferBuilder } from './confidentialTransferBuilder';
6
+ import { RecoverNestedAtaBuilder } from './recoverNestedAtaBuilder';
5
7
  import { CustomInstructionBuilder } from './customInstructionBuilder';
6
8
  import { StakingActivateBuilder } from './stakingActivateBuilder';
7
9
  import { StakingAuthorizeBuilder } from './stakingAuthorizeBuilder';
@@ -93,10 +95,22 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
93
95
  * Returns the builder to create a close associated token account transaction.
94
96
  */
95
97
  getCloseAtaInitializationBuilder(tx?: Transaction): CloseAtaBuilder;
98
+ /**
99
+ * Returns the builder to recover tokens from a nested ATA (an ATA owned by another ATA).
100
+ */
101
+ getRecoverNestedAtaBuilder(tx?: Transaction): RecoverNestedAtaBuilder;
96
102
  /**
97
103
  * Returns the builder to create transactions with custom Solana instructions.
98
104
  */
99
105
  getCustomInstructionBuilder(tx?: Transaction): CustomInstructionBuilder;
106
+ /**
107
+ * Returns the builder to create Token-2022 confidential transfer transactions.
108
+ *
109
+ * Supports Phase 1a CT instructions: ConfigureAccount, ApplyPendingBalance,
110
+ * Deposit, Withdraw, Transfer, and all verify-proof instructions.
111
+ * Instruction builders are v0/v1-agnostic.
112
+ */
113
+ getConfidentialTransferBuilder(tx?: Transaction): ConfidentialTransferBuilder;
100
114
  /**
101
115
  * Initialize the builder with the given transaction
102
116
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"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"}