@bitgo-beta/sdk-coin-sol 7.6.4-beta.43 → 7.6.4-beta.430

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 (400) hide show
  1. package/dist/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
  2. package/dist/cjs/src/bigint-buffer-guard.js +29 -0
  3. package/dist/cjs/src/config/token2022StaticConfig.d.ts.map +1 -0
  4. package/dist/cjs/src/config/token2022StaticConfig.js +50 -0
  5. package/dist/cjs/src/index.d.ts.map +1 -0
  6. package/dist/{src → cjs/src}/index.js +1 -1
  7. package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
  8. package/dist/cjs/src/lib/ataInitializationBuilder.js +196 -0
  9. package/dist/cjs/src/lib/closeAtaBuilder.d.ts +51 -0
  10. package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
  11. package/dist/cjs/src/lib/closeAtaBuilder.js +147 -0
  12. package/dist/{src → cjs/src}/lib/constants.d.ts +24 -0
  13. package/dist/cjs/src/lib/constants.d.ts.map +1 -0
  14. package/dist/cjs/src/lib/constants.js +196 -0
  15. package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
  16. package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
  17. package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
  18. package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
  19. package/dist/cjs/src/lib/explainTransactionWasm.js +264 -0
  20. package/dist/{src → cjs/src}/lib/iface.d.ts +20 -2
  21. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  22. package/dist/cjs/src/lib/iface.js +7 -0
  23. package/dist/{src → cjs/src}/lib/index.d.ts +1 -0
  24. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  25. package/dist/{src → cjs/src}/lib/index.js +4 -2
  26. package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +1 -0
  27. package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
  28. package/dist/cjs/src/lib/instructionParamsFactory.js +1059 -0
  29. package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
  30. package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
  31. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  32. package/dist/cjs/src/lib/keyPair.js +63 -0
  33. package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
  34. package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
  35. package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  36. package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
  37. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
  38. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  39. package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
  40. package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
  41. package/dist/cjs/src/lib/solInstructionFactory.js +595 -0
  42. package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  43. package/dist/cjs/src/lib/stakingActivateBuilder.js +120 -0
  44. package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  45. package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
  46. package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  47. package/dist/cjs/src/lib/stakingDeactivateBuilder.js +208 -0
  48. package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  49. package/dist/cjs/src/lib/stakingDelegateBuilder.js +120 -0
  50. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  51. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  52. package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  53. package/dist/cjs/src/lib/stakingWithdrawBuilder.js +78 -0
  54. package/dist/cjs/src/lib/token2022Config.d.ts.map +1 -0
  55. package/dist/cjs/src/lib/token2022Config.js +27 -0
  56. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  57. package/dist/cjs/src/lib/tokenTransferBuilder.js +188 -0
  58. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  59. package/dist/cjs/src/lib/transaction.js +612 -0
  60. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  61. package/dist/cjs/src/lib/transactionBuilder.js +380 -0
  62. package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +5 -0
  63. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  64. package/dist/cjs/src/lib/transactionBuilderFactory.js +209 -0
  65. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  66. package/dist/cjs/src/lib/transferBuilder.js +70 -0
  67. package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
  68. package/dist/cjs/src/lib/transferBuilderV2.js +210 -0
  69. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  70. package/dist/cjs/src/lib/utils.js +604 -0
  71. package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  72. package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
  73. package/dist/cjs/src/register.d.ts.map +1 -0
  74. package/dist/cjs/src/register.js +15 -0
  75. package/dist/{src → cjs/src}/sol.d.ts +53 -0
  76. package/dist/cjs/src/sol.d.ts.map +1 -0
  77. package/dist/cjs/src/sol.js +1464 -0
  78. package/dist/cjs/src/solToken.d.ts.map +1 -0
  79. package/dist/cjs/src/solToken.js +69 -0
  80. package/dist/cjs/src/tsol.d.ts.map +1 -0
  81. package/dist/cjs/src/tsol.js +24 -0
  82. package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
  83. package/dist/cjs/test/fixtures/sol.js +1433 -0
  84. package/dist/{test → cjs/test}/resources/sol.d.ts +27 -27
  85. package/dist/cjs/test/resources/sol.d.ts.map +1 -0
  86. package/dist/cjs/test/resources/sol.js +320 -0
  87. package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
  88. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  89. package/dist/cjs/test/unit/explainTransactionWasm.js +26 -0
  90. package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  91. package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
  92. package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
  93. package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
  94. package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
  95. package/dist/cjs/test/unit/instructionParamsFactory.js +412 -0
  96. package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  97. package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
  98. package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
  99. package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
  100. package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
  101. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  102. package/dist/cjs/test/unit/keyPair.js +177 -0
  103. package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  104. package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
  105. package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  106. package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
  107. package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
  108. package/dist/cjs/test/unit/sol.js +3504 -0
  109. package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
  110. package/dist/cjs/test/unit/solInstructionFactory.js +454 -0
  111. package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
  112. package/dist/cjs/test/unit/solToken.js +31 -0
  113. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  114. package/dist/cjs/test/unit/transaction.js +1108 -0
  115. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  116. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  117. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  118. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
  119. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
  120. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
  121. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +333 -0
  122. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  123. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
  124. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  125. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  126. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  127. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  128. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  129. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  130. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  131. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  132. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  133. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  134. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  135. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
  136. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  137. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  138. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  139. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +286 -0
  140. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  141. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
  142. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  143. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  144. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  145. package/dist/cjs/test/unit/utils.js +517 -0
  146. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  147. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  148. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  149. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  150. package/dist/esm/config/token2022StaticConfig.d.ts +3 -0
  151. package/dist/esm/config/token2022StaticConfig.js +47 -0
  152. package/dist/esm/index.d.ts +7 -0
  153. package/dist/esm/index.js +7 -0
  154. package/dist/esm/lib/ataInitializationBuilder.d.ts +47 -0
  155. package/dist/esm/lib/ataInitializationBuilder.js +156 -0
  156. package/dist/esm/lib/closeAtaBuilder.d.ts +51 -0
  157. package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
  158. package/dist/esm/lib/closeAtaBuilder.js +140 -0
  159. package/dist/esm/lib/constants.d.ts +164 -0
  160. package/dist/esm/lib/constants.d.ts.map +1 -0
  161. package/dist/esm/lib/constants.js +193 -0
  162. package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
  163. package/dist/esm/lib/customInstructionBuilder.js +282 -0
  164. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  165. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  166. package/dist/esm/lib/explainTransactionWasm.js +261 -0
  167. package/dist/esm/lib/iface.d.ts +262 -0
  168. package/dist/esm/lib/iface.d.ts.map +1 -0
  169. package/dist/esm/lib/iface.js +3 -0
  170. package/dist/esm/lib/index.d.ts +23 -0
  171. package/dist/{src → esm}/lib/index.d.ts.map +1 -1
  172. package/dist/esm/lib/index.js +23 -0
  173. package/dist/esm/lib/instructionParamsFactory.d.ts +13 -0
  174. package/dist/{src → esm}/lib/instructionParamsFactory.d.ts.map +1 -1
  175. package/dist/esm/lib/instructionParamsFactory.js +1052 -0
  176. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  177. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  178. package/dist/esm/lib/keyPair.d.ts +26 -0
  179. package/dist/esm/lib/keyPair.js +59 -0
  180. package/dist/esm/lib/messages/index.d.ts +2 -0
  181. package/dist/esm/lib/messages/index.js +2 -0
  182. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  183. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  184. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  185. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  186. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  187. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  188. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  189. package/dist/esm/lib/solInstructionFactory.js +589 -0
  190. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  191. package/dist/esm/lib/stakingActivateBuilder.js +113 -0
  192. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  193. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  194. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  195. package/dist/{src → esm}/lib/stakingDeactivateBuilder.js +31 -38
  196. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  197. package/dist/esm/lib/stakingDelegateBuilder.js +113 -0
  198. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  199. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  200. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  201. package/dist/esm/lib/stakingWithdrawBuilder.js +71 -0
  202. package/dist/esm/lib/token2022Config.d.ts +44 -0
  203. package/dist/esm/lib/token2022Config.js +23 -0
  204. package/dist/esm/lib/tokenTransferBuilder.d.ts +41 -0
  205. package/dist/esm/lib/tokenTransferBuilder.js +181 -0
  206. package/dist/esm/lib/transaction.d.ts +103 -0
  207. package/dist/esm/lib/transaction.d.ts.map +1 -0
  208. package/dist/esm/lib/transaction.js +605 -0
  209. package/dist/esm/lib/transactionBuilder.d.ts +128 -0
  210. package/dist/esm/lib/transactionBuilder.js +373 -0
  211. package/dist/esm/lib/transactionBuilderFactory.d.ts +120 -0
  212. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  213. package/dist/esm/lib/transactionBuilderFactory.js +205 -0
  214. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  215. package/dist/esm/lib/transferBuilder.js +63 -0
  216. package/dist/esm/lib/transferBuilderV2.d.ts +43 -0
  217. package/dist/esm/lib/transferBuilderV2.js +203 -0
  218. package/dist/esm/lib/utils.d.ts +200 -0
  219. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  220. package/dist/esm/lib/utils.js +567 -0
  221. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  222. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  223. package/dist/esm/register.d.ts +3 -0
  224. package/dist/esm/register.js +11 -0
  225. package/dist/esm/sol.d.ts +280 -0
  226. package/dist/esm/sol.d.ts.map +1 -0
  227. package/dist/esm/sol.js +1423 -0
  228. package/dist/esm/solToken.d.ts +37 -0
  229. package/dist/esm/solToken.js +65 -0
  230. package/dist/esm/tsol.d.ts +11 -0
  231. package/dist/esm/tsol.js +20 -0
  232. package/package.json +35 -16
  233. package/dist/src/config/token2022StaticConfig.js +0 -50
  234. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  235. package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
  236. package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
  237. package/dist/src/lib/closeAtaBuilder.js +0 -69
  238. package/dist/src/lib/constants.d.ts.map +0 -1
  239. package/dist/src/lib/constants.js +0 -171
  240. package/dist/src/lib/customInstructionBuilder.js +0 -289
  241. package/dist/src/lib/iface.d.ts.map +0 -1
  242. package/dist/src/lib/iface.js +0 -7
  243. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  244. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  245. package/dist/src/lib/keyPair.js +0 -63
  246. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  247. package/dist/src/lib/solInstructionFactory.js +0 -572
  248. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  249. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  250. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  251. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  252. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  253. package/dist/src/lib/token2022Config.js +0 -27
  254. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  255. package/dist/src/lib/transaction.d.ts.map +0 -1
  256. package/dist/src/lib/transaction.js +0 -595
  257. package/dist/src/lib/transactionBuilder.js +0 -380
  258. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  259. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  260. package/dist/src/lib/transferBuilder.js +0 -70
  261. package/dist/src/lib/transferBuilderV2.js +0 -210
  262. package/dist/src/lib/utils.js +0 -589
  263. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  264. package/dist/src/register.js +0 -15
  265. package/dist/src/sol.d.ts.map +0 -1
  266. package/dist/src/sol.js +0 -1285
  267. package/dist/src/solToken.js +0 -69
  268. package/dist/src/tsol.js +0 -24
  269. package/dist/test/fixtures/sol.js +0 -1433
  270. package/dist/test/resources/sol.d.ts.map +0 -1
  271. package/dist/test/resources/sol.js +0 -320
  272. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  273. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  274. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  275. package/dist/test/unit/getBuilderFactory.js +0 -10
  276. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  277. package/dist/test/unit/instructionParamsFactory.js +0 -412
  278. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  279. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  280. package/dist/test/unit/keyPair.js +0 -177
  281. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  282. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  283. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  284. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  285. package/dist/test/unit/sol.js +0 -3108
  286. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  287. package/dist/test/unit/solInstructionFactory.js +0 -454
  288. package/dist/test/unit/solToken.d.ts.map +0 -1
  289. package/dist/test/unit/solToken.js +0 -31
  290. package/dist/test/unit/transaction.d.ts.map +0 -1
  291. package/dist/test/unit/transaction.js +0 -983
  292. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  293. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  294. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  295. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  296. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  297. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  298. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  299. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  300. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  301. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  302. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  303. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  304. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  305. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  306. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  307. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  308. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  309. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  310. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  311. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  312. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  313. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  314. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  315. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  316. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  317. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  318. package/dist/test/unit/utils.js +0 -517
  319. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  320. package/dist/test/unit/versionedTransaction.js +0 -207
  321. package/dist/tsconfig.tsbuildinfo +0 -1
  322. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  323. /package/dist/{src → cjs/src}/config/token2022StaticConfig.d.ts +0 -0
  324. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  325. /package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +0 -0
  326. /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
  327. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  328. /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
  329. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  330. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  331. /package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +0 -0
  332. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  333. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  334. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  335. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  336. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  337. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  338. /package/dist/{src → cjs/src}/lib/token2022Config.d.ts +0 -0
  339. /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
  340. /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
  341. /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
  342. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  343. /package/dist/{src → cjs/src}/lib/transferBuilderV2.d.ts +0 -0
  344. /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
  345. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  346. /package/dist/{src → cjs/src}/register.d.ts +0 -0
  347. /package/dist/{src → cjs/src}/solToken.d.ts +0 -0
  348. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  349. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  350. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  351. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  352. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  353. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  354. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  355. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  356. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  357. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  358. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  359. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  360. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  361. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  362. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  363. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  364. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  365. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  366. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  367. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  368. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  369. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  370. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  371. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  372. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  373. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  374. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  375. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  376. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  377. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  378. /package/dist/{src → esm}/config/token2022StaticConfig.d.ts.map +0 -0
  379. /package/dist/{src → esm}/index.d.ts.map +0 -0
  380. /package/dist/{src → esm}/lib/ataInitializationBuilder.d.ts.map +0 -0
  381. /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
  382. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  383. /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
  384. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  385. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  386. /package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +0 -0
  387. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  388. /package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +0 -0
  389. /package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +0 -0
  390. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  391. /package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +0 -0
  392. /package/dist/{src → esm}/lib/token2022Config.d.ts.map +0 -0
  393. /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
  394. /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
  395. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  396. /package/dist/{src → esm}/lib/transferBuilderV2.d.ts.map +0 -0
  397. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  398. /package/dist/{src → esm}/register.d.ts.map +0 -0
  399. /package/dist/{src → esm}/solToken.d.ts.map +0 -0
  400. /package/dist/{src → esm}/tsol.d.ts.map +0 -0
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=bigint-buffer-guard.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { Token2022Config } from '../lib/token2022Config';
2
+ export declare const TOKEN_2022_STATIC_CONFIGS: Token2022Config[];
3
+ //# sourceMappingURL=token2022StaticConfig.d.ts.map
@@ -0,0 +1,47 @@
1
+ export const TOKEN_2022_STATIC_CONFIGS = [
2
+ {
3
+ mintAddress: '4MmJVdwYN8LwvbGeCowYjSx7KoEi6BJWg8XXnW4fDDp6',
4
+ transferHook: {
5
+ extraAccountMetas: [
6
+ {
7
+ pubkey: '98wFF5MpMjMQbfDF2MPzo8LCGX37unZR1ohRA1mU9GmJ',
8
+ isSigner: false,
9
+ isWritable: true,
10
+ },
11
+ {
12
+ pubkey: '48n7YGEww7fKMfJ5gJ3sQC3rM6RWGjpUsghqVfXVkR5A',
13
+ isSigner: false,
14
+ isWritable: false,
15
+ },
16
+ {
17
+ pubkey: '9sQhAH7vV3RKTCK13VY4EiNjs3qBq1srSYxdNufdAAXm',
18
+ isSigner: false,
19
+ isWritable: false,
20
+ },
21
+ ],
22
+ },
23
+ },
24
+ {
25
+ mintAddress: '3BW95VLH2za2eUQ1PGfjxwMbpsnDFnmkA7m5LDgMKbX7',
26
+ transferHook: {
27
+ extraAccountMetas: [
28
+ {
29
+ pubkey: 'GbQ8ZiEFzGGTeYoXwtZtcoxwPcMyUcmZDduMVNdUPKpX',
30
+ isSigner: false,
31
+ isWritable: true,
32
+ },
33
+ {
34
+ pubkey: '2Te6MFDwstRP2sZi6DLbkhVcSfaQVffmpbudN6pmvAXo',
35
+ isSigner: false,
36
+ isWritable: false,
37
+ },
38
+ {
39
+ pubkey: 'FR5YBEisx8mDe4ruhWKmpH5nirdJopj4uStBAVufqjMo',
40
+ isSigner: false,
41
+ isWritable: false,
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4yMDIyU3RhdGljQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy90b2tlbjIwMjJTdGF0aWNDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXNCO0lBQzFEO1FBQ0UsV0FBVyxFQUFFLDhDQUE4QztRQUMzRCxZQUFZLEVBQUU7WUFDWixpQkFBaUIsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxFQUFFLDhDQUE4QztvQkFDdEQsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dCQUNEO29CQUNFLE1BQU0sRUFBRSw4Q0FBOEM7b0JBQ3RELFFBQVEsRUFBRSxLQUFLO29CQUNmLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjtnQkFDRDtvQkFDRSxNQUFNLEVBQUUsOENBQThDO29CQUN0RCxRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUUsS0FBSztpQkFDbEI7YUFDRjtTQUNGO0tBQ0Y7SUFDRDtRQUNFLFdBQVcsRUFBRSw4Q0FBOEM7UUFDM0QsWUFBWSxFQUFFO1lBQ1osaUJBQWlCLEVBQUU7Z0JBQ2pCO29CQUNFLE1BQU0sRUFBRSw4Q0FBOEM7b0JBQ3RELFFBQVEsRUFBRSxLQUFLO29CQUNmLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtnQkFDRDtvQkFDRSxNQUFNLEVBQUUsOENBQThDO29CQUN0RCxRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUUsS0FBSztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsTUFBTSxFQUFFLDhDQUE4QztvQkFDdEQsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9rZW4yMDIyQ29uZmlnIH0gZnJvbSAnLi4vbGliL3Rva2VuMjAyMkNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl8yMDIyX1NUQVRJQ19DT05GSUdTOiBUb2tlbjIwMjJDb25maWdbXSA9IFtcbiAge1xuICAgIG1pbnRBZGRyZXNzOiAnNE1tSlZkd1lOOEx3dmJHZUNvd1lqU3g3S29FaTZCSldnOFhYblc0ZkREcDYnLFxuICAgIHRyYW5zZmVySG9vazoge1xuICAgICAgZXh0cmFBY2NvdW50TWV0YXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmtleTogJzk4d0ZGNU1wTWpNUWJmREYyTVB6bzhMQ0dYMzd1blpSMW9oUkExbVU5R21KJyxcbiAgICAgICAgICBpc1NpZ25lcjogZmFsc2UsXG4gICAgICAgICAgaXNXcml0YWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmtleTogJzQ4bjdZR0V3dzdmS01mSjVnSjNzUUMzck02UldHanBVc2docVZmWFZrUjVBJyxcbiAgICAgICAgICBpc1NpZ25lcjogZmFsc2UsXG4gICAgICAgICAgaXNXcml0YWJsZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJrZXk6ICc5c1FoQUg3dlYzUktUQ0sxM1ZZNEVpTmpzM3FCcTFzclNZeGROdWZkQUFYbScsXG4gICAgICAgICAgaXNTaWduZXI6IGZhbHNlLFxuICAgICAgICAgIGlzV3JpdGFibGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgbWludEFkZHJlc3M6ICczQlc5NVZMSDJ6YTJlVVExUEdmanh3TWJwc25ERm5ta0E3bTVMRGdNS2JYNycsXG4gICAgdHJhbnNmZXJIb29rOiB7XG4gICAgICBleHRyYUFjY291bnRNZXRhczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHVia2V5OiAnR2JROFppRUZ6R0dUZVlvWHd0WnRjb3h3UGNNeVVjbVpEZHVNVk5kVVBLcFgnLFxuICAgICAgICAgIGlzU2lnbmVyOiBmYWxzZSxcbiAgICAgICAgICBpc1dyaXRhYmxlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHVia2V5OiAnMlRlNk1GRHdzdFJQMnNaaTZETGJraFZjU2ZhUVZmZm1wYnVkTjZwbXZBWG8nLFxuICAgICAgICAgIGlzU2lnbmVyOiBmYWxzZSxcbiAgICAgICAgICBpc1dyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmtleTogJ0ZSNVlCRWlzeDhtRGU0cnVoV0ttcEg1bmlyZEpvcGo0dVN0QkFWdWZxak1vJyxcbiAgICAgICAgICBpc1NpZ25lcjogZmFsc2UsXG4gICAgICAgICAgaXNXcml0YWJsZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG5dO1xuIl19
@@ -0,0 +1,7 @@
1
+ import './bigint-buffer-guard';
2
+ export * from './lib';
3
+ export * from './sol';
4
+ export * from './solToken';
5
+ export * from './tsol';
6
+ export * from './register';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import './bigint-buffer-guard';
2
+ export * from './lib';
3
+ export * from './sol';
4
+ export * from './solToken';
5
+ export * from './tsol';
6
+ export * from './register';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9iaWdpbnQtYnVmZmVyLWd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4vc29sJztcbmV4cG9ydCAqIGZyb20gJy4vc29sVG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi90c29sJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXInO1xuIl19
@@ -0,0 +1,47 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
4
+ import { Transaction } from './transaction';
5
+ import { TokenAssociateRecipient } from './iface';
6
+ export declare class AtaInitializationBuilder extends TransactionBuilder {
7
+ private _tokenName;
8
+ private _mint;
9
+ private _owner;
10
+ private _tokenAssociateRecipients;
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ protected get transactionType(): TransactionType;
13
+ /** @inheritDoc */
14
+ initBuilder(tx: Transaction): void;
15
+ /**
16
+ * @deprecated - Use the enableToken method instead
17
+ * Sets the mint address of the associated token account
18
+ *
19
+ * @param tokenName name of the token
20
+ */
21
+ mint(tokenName: string): this;
22
+ /**
23
+ * @deprecated - Use the enableToken method instead
24
+ * Sets the owner address of the associated token account
25
+ *
26
+ * @param owner owner address of associated token account
27
+ */
28
+ owner(owner: string): this;
29
+ /**
30
+ * @deprecated - Use the associatedTokenAccountRent method instead
31
+ * Used to set the minimum rent exempt amount
32
+ *
33
+ * @param rentExemptAmount minimum rent exempt amount in lamports
34
+ */
35
+ rentExemptAmount(rentExemptAmount: string): this;
36
+ /**
37
+ * Used for adding token association recipients consisting
38
+ * 1. ownerAddress: owner of the token address
39
+ * 2. tokenName: the name of token enabled that is supported by BitGo
40
+ *
41
+ * @param TokenAssociateRecipient token associate recipient info
42
+ */
43
+ enableToken(recipient: TokenAssociateRecipient): this;
44
+ /** @inheritdoc */
45
+ protected buildImplementation(): Promise<Transaction>;
46
+ }
47
+ //# sourceMappingURL=ataInitializationBuilder.d.ts.map
@@ -0,0 +1,156 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { BuildTransactionError, DuplicateMethodError, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { InstructionBuilderTypes } from './constants';
5
+ import { getAssociatedTokenAccountAddress, getSolTokenFromTokenName, validateMintAddress, validateOwnerAddress, } from './utils';
6
+ import assert from 'assert';
7
+ import * as _ from 'lodash';
8
+ export class AtaInitializationBuilder extends TransactionBuilder {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ this._transaction = new Transaction(_coinConfig);
12
+ this._tokenAssociateRecipients = [];
13
+ }
14
+ get transactionType() {
15
+ return TransactionType.AssociatedTokenAccountInitialization;
16
+ }
17
+ /** @inheritDoc */
18
+ initBuilder(tx) {
19
+ super.initBuilder(tx);
20
+ this._tokenAssociateRecipients = [];
21
+ for (const instruction of this._instructionsData) {
22
+ if (instruction.type === InstructionBuilderTypes.CreateAssociatedTokenAccount) {
23
+ const ataInitInstruction = instruction;
24
+ this._tokenAssociateRecipients.push({
25
+ ownerAddress: ataInitInstruction.params.ownerAddress,
26
+ tokenName: ataInitInstruction.params.tokenName,
27
+ tokenAddress: ataInitInstruction.params.mintAddress,
28
+ programId: ataInitInstruction.params.programId,
29
+ });
30
+ }
31
+ }
32
+ }
33
+ /**
34
+ * @deprecated - Use the enableToken method instead
35
+ * Sets the mint address of the associated token account
36
+ *
37
+ * @param tokenName name of the token
38
+ */
39
+ mint(tokenName) {
40
+ if (this._tokenAssociateRecipients.length > 0) {
41
+ throw new DuplicateMethodError('Invalid method: enableToken already used');
42
+ }
43
+ const token = getSolTokenFromTokenName(tokenName);
44
+ if (!token) {
45
+ throw new BuildTransactionError('Invalid transaction: invalid token name, got: ' + tokenName);
46
+ }
47
+ this._mint = token.tokenAddress;
48
+ this._tokenName = token.name;
49
+ validateMintAddress(this._mint);
50
+ return this;
51
+ }
52
+ /**
53
+ * @deprecated - Use the enableToken method instead
54
+ * Sets the owner address of the associated token account
55
+ *
56
+ * @param owner owner address of associated token account
57
+ */
58
+ owner(owner) {
59
+ if (this._tokenAssociateRecipients.length > 0) {
60
+ throw new DuplicateMethodError('Invalid method: enableToken already used');
61
+ }
62
+ this._owner = owner;
63
+ validateOwnerAddress(owner);
64
+ return this;
65
+ }
66
+ /**
67
+ * @deprecated - Use the associatedTokenAccountRent method instead
68
+ * Used to set the minimum rent exempt amount
69
+ *
70
+ * @param rentExemptAmount minimum rent exempt amount in lamports
71
+ */
72
+ rentExemptAmount(rentExemptAmount) {
73
+ return super.associatedTokenAccountRent(rentExemptAmount);
74
+ }
75
+ /**
76
+ * Used for adding token association recipients consisting
77
+ * 1. ownerAddress: owner of the token address
78
+ * 2. tokenName: the name of token enabled that is supported by BitGo
79
+ *
80
+ * @param TokenAssociateRecipient token associate recipient info
81
+ */
82
+ enableToken(recipient) {
83
+ if (this._tokenAssociateRecipients.some((tokenAssociate) => _.isEqual(tokenAssociate, recipient))) {
84
+ throw new BuildTransactionError('Invalid transaction: invalid duplicate recipients, got: owner ' +
85
+ recipient.ownerAddress +
86
+ ' and tokenName ' +
87
+ recipient.tokenName +
88
+ ' twice');
89
+ }
90
+ if (this._tokenName || this._mint) {
91
+ throw new DuplicateMethodError('Invalid method: single mint already used');
92
+ }
93
+ validateOwnerAddress(recipient.ownerAddress);
94
+ const token = getSolTokenFromTokenName(recipient.tokenName);
95
+ let tokenAddress;
96
+ if (recipient.tokenAddress) {
97
+ tokenAddress = recipient.tokenAddress;
98
+ }
99
+ else if (token) {
100
+ tokenAddress = token.tokenAddress;
101
+ }
102
+ else {
103
+ throw new BuildTransactionError('Invalid transaction: invalid token name, got: ' + recipient.tokenName);
104
+ }
105
+ validateMintAddress(tokenAddress);
106
+ this._tokenAssociateRecipients.push(recipient);
107
+ return this;
108
+ }
109
+ /** @inheritdoc */
110
+ async buildImplementation() {
111
+ assert(this._sender, 'Sender must be set before building the transaction');
112
+ if (this._tokenAssociateRecipients.length === 0) {
113
+ assert(this._mint && this._tokenName, 'Mint must be set before building the transaction');
114
+ this._owner = this._owner || this._sender;
115
+ this._tokenAssociateRecipients.push({
116
+ ownerAddress: this._owner,
117
+ tokenName: this._tokenName,
118
+ });
119
+ }
120
+ this._instructionsData = [];
121
+ await Promise.all(this._tokenAssociateRecipients.map(async (recipient) => {
122
+ const token = getSolTokenFromTokenName(recipient.tokenName);
123
+ let tokenAddress;
124
+ let programId;
125
+ if (recipient.tokenAddress && recipient.programId) {
126
+ tokenAddress = recipient.tokenAddress;
127
+ programId = recipient.programId;
128
+ }
129
+ else if (token) {
130
+ tokenAddress = token.tokenAddress;
131
+ programId = token.programId;
132
+ }
133
+ else {
134
+ throw new BuildTransactionError('Invalid transaction: invalid token name, got: ' + recipient.tokenName);
135
+ }
136
+ // Use the provided ataAddress if it exists, otherwise calculate it
137
+ let ataPk = recipient.ataAddress;
138
+ if (!ataPk) {
139
+ ataPk = await getAssociatedTokenAccountAddress(tokenAddress, recipient.ownerAddress, false, programId);
140
+ }
141
+ this._instructionsData.push({
142
+ type: InstructionBuilderTypes.CreateAssociatedTokenAccount,
143
+ params: {
144
+ mintAddress: tokenAddress,
145
+ ataAddress: ataPk,
146
+ ownerAddress: recipient.ownerAddress,
147
+ payerAddress: this._sender,
148
+ tokenName: recipient.tokenName,
149
+ programId: programId,
150
+ },
151
+ });
152
+ }));
153
+ return await super.buildImplementation();
154
+ }
155
+ }
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixvQkFBb0IsR0FDckIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFTOUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsb0NBQW9DLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUs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ZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIER1cGxpY2F0ZU1ldGhvZEVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQXRhSW5pdCwgVG9rZW5Bc3NvY2lhdGVSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgZ2V0QXNzb2NpYXRlZFRva2VuQWNjb3VudEFkZHJlc3MsXG4gIGdldFNvbFRva2VuRnJvbVRva2VuTmFtZSxcbiAgdmFsaWRhdGVNaW50QWRkcmVzcyxcbiAgdmFsaWRhdGVPd25lckFkZHJlc3MsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgQXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgLy8gQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgZmllbGQgaW5zdGVhZFxuICBwcml2YXRlIF90b2tlbk5hbWU6IHN0cmluZztcbiAgLy8gQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIF90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgZmllbGQgaW5zdGVhZFxuICBwcml2YXRlIF9taW50OiBzdHJpbmc7XG4gIC8vIEBkZXByZWNhdGVkIC0gVXNlIHRoZSBfdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzIGZpZWxkIGluc3RlYWRcbiAgcHJpdmF0ZSBfb3duZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzOiBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50KSB7XG4gICAgICAgIGNvbnN0IGF0YUluaXRJbnN0cnVjdGlvbjogQXRhSW5pdCA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMucHVzaCh7XG4gICAgICAgICAgb3duZXJBZGRyZXNzOiBhdGFJbml0SW5zdHJ1Y3Rpb24ucGFyYW1zLm93bmVyQWRkcmVzcyxcbiAgICAgICAgICB0b2tlbk5hbWU6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICAgIHRva2VuQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy5taW50QWRkcmVzcyxcbiAgICAgICAgICBwcm9ncmFtSWQ6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMucHJvZ3JhbUlkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIGVuYWJsZVRva2VuIG1ldGhvZCBpbnN0ZWFkXG4gICAqIFNldHMgdGhlIG1pbnQgYWRkcmVzcyBvZiB0aGUgYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqXG4gICAqIEBwYXJhbSB0b2tlbk5hbWUgbmFtZSBvZiB0aGUgdG9rZW5cbiAgICovXG4gIG1pbnQodG9rZW5OYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVNZXRob2RFcnJvcignSW52YWxpZCBtZXRob2Q6IGVuYWJsZVRva2VuIGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IGdldFNvbFRva2VuRnJvbVRva2VuTmFtZSh0b2tlbk5hbWUpO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IGludmFsaWQgdG9rZW4gbmFtZSwgZ290OiAnICsgdG9rZW5OYW1lKTtcbiAgICB9XG4gICAgdGhpcy5fbWludCA9IHRva2VuLnRva2VuQWRkcmVzcztcbiAgICB0aGlzLl90b2tlbk5hbWUgPSB0b2tlbi5uYW1lO1xuICAgIHZhbGlkYXRlTWludEFkZHJlc3ModGhpcy5fbWludCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgLSBVc2UgdGhlIGVuYWJsZVRva2VuIG1ldGhvZCBpbnN0ZWFkXG4gICAqIFNldHMgdGhlIG93bmVyIGFkZHJlc3Mgb2YgdGhlIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudFxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgb3duZXIgYWRkcmVzcyBvZiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnRcbiAgICovXG4gIG93bmVyKG93bmVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBEdXBsaWNhdGVNZXRob2RFcnJvcignSW52YWxpZCBtZXRob2Q6IGVuYWJsZVRva2VuIGFscmVhZHkgdXNlZCcpO1xuICAgIH1cbiAgICB0aGlzLl9vd25lciA9IG93bmVyO1xuICAgIHZhbGlkYXRlT3duZXJBZGRyZXNzKG93bmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSB0aGUgYXNzb2NpYXRlZFRva2VuQWNjb3VudFJlbnQgbWV0aG9kIGluc3RlYWRcbiAgICogVXNlZCB0byBzZXQgdGhlIG1pbmltdW0gcmVudCBleGVtcHQgYW1vdW50XG4gICAqXG4gICAqIEBwYXJhbSByZW50RXhlbXB0QW1vdW50IG1pbmltdW0gcmVudCBleGVtcHQgYW1vdW50IGluIGxhbXBvcnRzXG4gICAqL1xuICByZW50RXhlbXB0QW1vdW50KHJlbnRFeGVtcHRBbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHJldHVybiBzdXBlci5hc3NvY2lhdGVkVG9rZW5BY2NvdW50UmVudChyZW50RXhlbXB0QW1vdW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGZvciBhZGRpbmcgdG9rZW4gYXNzb2NpYXRpb24gcmVjaXBpZW50cyBjb25zaXN0aW5nXG4gICAqICAxLiBvd25lckFkZHJlc3M6IG93bmVyIG9mIHRoZSB0b2tlbiBhZGRyZXNzXG4gICAqICAyLiB0b2tlbk5hbWU6IHRoZSBuYW1lIG9mIHRva2VuIGVuYWJsZWQgdGhhdCBpcyBzdXBwb3J0ZWQgYnkgQml0R29cbiAgICpcbiAgICogIEBwYXJhbSBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCB0b2tlbiBhc3NvY2lhdGUgcmVjaXBpZW50IGluZm9cbiAgICovXG5cbiAgZW5hYmxlVG9rZW4ocmVjaXBpZW50OiBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCk6IHRoaXMge1xuICAgIGlmICh0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMuc29tZSgodG9rZW5Bc3NvY2lhdGUpID0+IF8uaXNFcXVhbCh0b2tlbkFzc29jaWF0ZSwgcmVjaXBpZW50KSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICdJbnZhbGlkIHRyYW5zYWN0aW9uOiBpbnZhbGlkIGR1cGxpY2F0ZSByZWNpcGllbnRzLCBnb3Q6IG93bmVyICcgK1xuICAgICAgICAgIHJlY2lwaWVudC5vd25lckFkZHJlc3MgK1xuICAgICAgICAgICcgYW5kIHRva2VuTmFtZSAnICtcbiAgICAgICAgICByZWNpcGllbnQudG9rZW5OYW1lICtcbiAgICAgICAgICAnIHR3aWNlJ1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Rva2VuTmFtZSB8fCB0aGlzLl9taW50KSB7XG4gICAgICB0aHJvdyBuZXcgRHVwbGljYXRlTWV0aG9kRXJyb3IoJ0ludmFsaWQgbWV0aG9kOiBzaW5nbGUgbWludCBhbHJlYWR5IHVzZWQnKTtcbiAgICB9XG4gICAgdmFsaWRhdGVPd25lckFkZHJlc3MocmVjaXBpZW50Lm93bmVyQWRkcmVzcyk7XG4gICAgY29uc3QgdG9rZW4gPSBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUocmVjaXBpZW50LnRva2VuTmFtZSk7XG4gICAgbGV0IHRva2VuQWRkcmVzczogc3RyaW5nO1xuICAgIGlmIChyZWNpcGllbnQudG9rZW5BZGRyZXNzKSB7XG4gICAgICB0b2tlbkFkZHJlc3MgPSByZWNpcGllbnQudG9rZW5BZGRyZXNzO1xuICAgIH0gZWxzZSBpZiAodG9rZW4pIHtcbiAgICAgIHRva2VuQWRkcmVzcyA9IHRva2VuLnRva2VuQWRkcmVzcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCB0b2tlbiBuYW1lLCBnb3Q6ICcgKyByZWNpcGllbnQudG9rZW5OYW1lKTtcbiAgICB9XG4gICAgdmFsaWRhdGVNaW50QWRkcmVzcyh0b2tlbkFkZHJlc3MpO1xuXG4gICAgdGhpcy5fdG9rZW5Bc3NvY2lhdGVSZWNpcGllbnRzLnB1c2gocmVjaXBpZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgaWYgKHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGFzc2VydCh0aGlzLl9taW50ICYmIHRoaXMuX3Rva2VuTmFtZSwgJ01pbnQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgICAgdGhpcy5fb3duZXIgPSB0aGlzLl9vd25lciB8fCB0aGlzLl9zZW5kZXI7XG5cbiAgICAgIHRoaXMuX3Rva2VuQXNzb2NpYXRlUmVjaXBpZW50cy5wdXNoKHtcbiAgICAgICAgb3duZXJBZGRyZXNzOiB0aGlzLl9vd25lcixcbiAgICAgICAgdG9rZW5OYW1lOiB0aGlzLl90b2tlbk5hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLl90b2tlbkFzc29jaWF0ZVJlY2lwaWVudHMubWFwKGFzeW5jIChyZWNpcGllbnQpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUocmVjaXBpZW50LnRva2VuTmFtZSk7XG4gICAgICAgIGxldCB0b2tlbkFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgbGV0IHByb2dyYW1JZDogc3RyaW5nO1xuICAgICAgICBpZiAocmVjaXBpZW50LnRva2VuQWRkcmVzcyAmJiByZWNpcGllbnQucHJvZ3JhbUlkKSB7XG4gICAgICAgICAgdG9rZW5BZGRyZXNzID0gcmVjaXBpZW50LnRva2VuQWRkcmVzcztcbiAgICAgICAgICBwcm9ncmFtSWQgPSByZWNpcGllbnQucHJvZ3JhbUlkO1xuICAgICAgICB9IGVsc2UgaWYgKHRva2VuKSB7XG4gICAgICAgICAgdG9rZW5BZGRyZXNzID0gdG9rZW4udG9rZW5BZGRyZXNzO1xuICAgICAgICAgIHByb2dyYW1JZCA9IHRva2VuLnByb2dyYW1JZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBpbnZhbGlkIHRva2VuIG5hbWUsIGdvdDogJyArIHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIHRoZSBwcm92aWRlZCBhdGFBZGRyZXNzIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIGNhbGN1bGF0ZSBpdFxuICAgICAgICBsZXQgYXRhUGsgPSByZWNpcGllbnQuYXRhQWRkcmVzcztcbiAgICAgICAgaWYgKCFhdGFQaykge1xuICAgICAgICAgIGF0YVBrID0gYXdhaXQgZ2V0QXNzb2NpYXRlZFRva2VuQWNjb3VudEFkZHJlc3ModG9rZW5BZGRyZXNzLCByZWNpcGllbnQub3duZXJBZGRyZXNzLCBmYWxzZSwgcHJvZ3JhbUlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEucHVzaCh7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIG1pbnRBZGRyZXNzOiB0b2tlbkFkZHJlc3MsXG4gICAgICAgICAgICBhdGFBZGRyZXNzOiBhdGFQayxcbiAgICAgICAgICAgIG93bmVyQWRkcmVzczogcmVjaXBpZW50Lm93bmVyQWRkcmVzcyxcbiAgICAgICAgICAgIHBheWVyQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgdG9rZW5OYW1lOiByZWNpcGllbnQudG9rZW5OYW1lLFxuICAgICAgICAgICAgcHJvZ3JhbUlkOiBwcm9ncmFtSWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class CloseAtaBuilder extends TransactionBuilder {
6
+ protected _closeAtaEntries: {
7
+ accountAddress: string;
8
+ destinationAddress: string;
9
+ authorityAddress: string;
10
+ }[];
11
+ private _apiMode;
12
+ constructor(_coinConfig: Readonly<CoinConfig>);
13
+ protected get transactionType(): TransactionType;
14
+ /**
15
+ * Sets the ATA account address to close (single-ATA API, backward compatible).
16
+ * Cannot be mixed with addCloseAtaInstruction().
17
+ */
18
+ accountAddress(accountAddress: string): this;
19
+ /**
20
+ * Sets the destination address for rent SOL (single-ATA API, backward compatible).
21
+ * Cannot be mixed with addCloseAtaInstruction().
22
+ */
23
+ destinationAddress(destinationAddress: string): this;
24
+ /**
25
+ * Sets the authority address / ATA owner (single-ATA API, backward compatible).
26
+ * Cannot be mixed with addCloseAtaInstruction().
27
+ */
28
+ authorityAddress(authorityAddress: string): this;
29
+ /**
30
+ * Throws if the bulk-ATA API has already been used on this builder.
31
+ */
32
+ private _assertSingleAtaApiUsable;
33
+ /**
34
+ * Ensures a single entry exists in _closeAtaEntries for the legacy API.
35
+ */
36
+ private _ensureSingleEntry;
37
+ /**
38
+ * Add an ATA to close in this transaction (for bulk closure).
39
+ * Cannot be mixed with the single-ATA API (accountAddress/destinationAddress/authorityAddress).
40
+ *
41
+ * @param {string} accountAddress - the ATA address to close
42
+ * @param {string} destinationAddress - where rent SOL goes (root wallet address)
43
+ * @param {string} authorityAddress - ATA owner who must sign
44
+ */
45
+ addCloseAtaInstruction(accountAddress: string, destinationAddress: string, authorityAddress: string): this;
46
+ /** @inheritDoc */
47
+ initBuilder(tx: Transaction): void;
48
+ /** @inheritdoc */
49
+ protected buildImplementation(): Promise<Transaction>;
50
+ }
51
+ //# sourceMappingURL=closeAtaBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeAtaBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/closeAtaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,qBAAa,eAAgB,SAAQ,kBAAkB;IAErD,SAAS,CAAC,gBAAgB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IAOpH,OAAO,CAAC,QAAQ,CAA0C;gBAE9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;OAGG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAS5C;;;OAGG;IACH,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IASpD;;;OAGG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAShD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;;;OAOG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAsB1G,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAiBlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CA0B5D"}
@@ -0,0 +1,140 @@
1
+ import { BuildTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import assert from 'assert';
3
+ import { InstructionBuilderTypes } from './constants';
4
+ import { Transaction } from './transaction';
5
+ import { TransactionBuilder } from './transactionBuilder';
6
+ import { validateAddress } from './utils';
7
+ const MIX_API_ERROR_MESSAGE = 'Cannot mix single-ATA API (accountAddress/destinationAddress/authorityAddress) with bulk-ATA API (addCloseAtaInstruction)';
8
+ export class CloseAtaBuilder extends TransactionBuilder {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ // Unified storage for all close entries (single or bulk)
12
+ this._closeAtaEntries = [];
13
+ // Which API has been used on this builder instance. Locks in on first call so we can
14
+ // reject attempts to mix the legacy single-ATA setters with the bulk addCloseAtaInstruction().
15
+ // After initBuilder(): remains undefined for a single parsed close (either API may extend/edit);
16
+ // set to 'bulk' when the parsed tx had multiple closes so legacy setters cannot partially
17
+ // overwrite entry[0] while leaving other parsed entries in place.
18
+ this._apiMode = undefined;
19
+ this._transaction = new Transaction(_coinConfig);
20
+ }
21
+ get transactionType() {
22
+ return TransactionType.CloseAssociatedTokenAccount;
23
+ }
24
+ /**
25
+ * Sets the ATA account address to close (single-ATA API, backward compatible).
26
+ * Cannot be mixed with addCloseAtaInstruction().
27
+ */
28
+ accountAddress(accountAddress) {
29
+ this._assertSingleAtaApiUsable();
30
+ validateAddress(accountAddress, 'accountAddress');
31
+ this._apiMode = 'single';
32
+ this._ensureSingleEntry();
33
+ this._closeAtaEntries[0].accountAddress = accountAddress;
34
+ return this;
35
+ }
36
+ /**
37
+ * Sets the destination address for rent SOL (single-ATA API, backward compatible).
38
+ * Cannot be mixed with addCloseAtaInstruction().
39
+ */
40
+ destinationAddress(destinationAddress) {
41
+ this._assertSingleAtaApiUsable();
42
+ validateAddress(destinationAddress, 'destinationAddress');
43
+ this._apiMode = 'single';
44
+ this._ensureSingleEntry();
45
+ this._closeAtaEntries[0].destinationAddress = destinationAddress;
46
+ return this;
47
+ }
48
+ /**
49
+ * Sets the authority address / ATA owner (single-ATA API, backward compatible).
50
+ * Cannot be mixed with addCloseAtaInstruction().
51
+ */
52
+ authorityAddress(authorityAddress) {
53
+ this._assertSingleAtaApiUsable();
54
+ validateAddress(authorityAddress, 'authorityAddress');
55
+ this._apiMode = 'single';
56
+ this._ensureSingleEntry();
57
+ this._closeAtaEntries[0].authorityAddress = authorityAddress;
58
+ return this;
59
+ }
60
+ /**
61
+ * Throws if the bulk-ATA API has already been used on this builder.
62
+ */
63
+ _assertSingleAtaApiUsable() {
64
+ if (this._apiMode === 'bulk') {
65
+ throw new BuildTransactionError(MIX_API_ERROR_MESSAGE);
66
+ }
67
+ }
68
+ /**
69
+ * Ensures a single entry exists in _closeAtaEntries for the legacy API.
70
+ */
71
+ _ensureSingleEntry() {
72
+ if (this._closeAtaEntries.length === 0) {
73
+ this._closeAtaEntries.push({ accountAddress: '', destinationAddress: '', authorityAddress: '' });
74
+ }
75
+ }
76
+ /**
77
+ * Add an ATA to close in this transaction (for bulk closure).
78
+ * Cannot be mixed with the single-ATA API (accountAddress/destinationAddress/authorityAddress).
79
+ *
80
+ * @param {string} accountAddress - the ATA address to close
81
+ * @param {string} destinationAddress - where rent SOL goes (root wallet address)
82
+ * @param {string} authorityAddress - ATA owner who must sign
83
+ */
84
+ addCloseAtaInstruction(accountAddress, destinationAddress, authorityAddress) {
85
+ if (this._apiMode === 'single') {
86
+ throw new BuildTransactionError(MIX_API_ERROR_MESSAGE);
87
+ }
88
+ validateAddress(accountAddress, 'accountAddress');
89
+ validateAddress(destinationAddress, 'destinationAddress');
90
+ validateAddress(authorityAddress, 'authorityAddress');
91
+ if (accountAddress === destinationAddress) {
92
+ throw new BuildTransactionError('Account address to close cannot be the same as the destination address');
93
+ }
94
+ if (this._closeAtaEntries.some((entry) => entry.accountAddress === accountAddress)) {
95
+ throw new BuildTransactionError('Duplicate ATA address: ' + accountAddress);
96
+ }
97
+ this._apiMode = 'bulk';
98
+ this._closeAtaEntries.push({ accountAddress, destinationAddress, authorityAddress });
99
+ return this;
100
+ }
101
+ /** @inheritDoc */
102
+ initBuilder(tx) {
103
+ super.initBuilder(tx);
104
+ for (const instruction of this._instructionsData) {
105
+ if (instruction.type === InstructionBuilderTypes.CloseAssociatedTokenAccount) {
106
+ const ataCloseInstruction = instruction;
107
+ this._closeAtaEntries.push({
108
+ accountAddress: ataCloseInstruction.params.accountAddress,
109
+ destinationAddress: ataCloseInstruction.params.destinationAddress,
110
+ authorityAddress: ataCloseInstruction.params.authorityAddress,
111
+ });
112
+ }
113
+ }
114
+ if (this._closeAtaEntries.length > 1) {
115
+ this._apiMode = 'bulk';
116
+ }
117
+ }
118
+ /** @inheritdoc */
119
+ async buildImplementation() {
120
+ assert(this._closeAtaEntries.length > 0, 'At least one ATA must be specified before building the transaction');
121
+ for (const entry of this._closeAtaEntries) {
122
+ assert(entry.accountAddress, 'Account Address must be set before building the transaction');
123
+ assert(entry.destinationAddress, 'Destination Address must be set before building the transaction');
124
+ assert(entry.authorityAddress, 'Authority Address must be set before building the transaction');
125
+ if (entry.accountAddress === entry.destinationAddress) {
126
+ throw new BuildTransactionError('Account address to close cannot be the same as the destination address');
127
+ }
128
+ }
129
+ this._instructionsData = this._closeAtaEntries.map((entry) => ({
130
+ type: InstructionBuilderTypes.CloseAssociatedTokenAccount,
131
+ params: {
132
+ accountAddress: entry.accountAddress,
133
+ destinationAddress: entry.destinationAddress,
134
+ authorityAddress: entry.authorityAddress,
135
+ },
136
+ }));
137
+ return await super.buildImplementation();
138
+ }
139
+ }
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VBdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbG9zZUF0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSTFDLE1BQU0scUJBQXFCLEdBQ3pCLDJIQUEySCxDQUFDO0FBRTlILE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUFrQjtJQVdyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVhyQix5REFBeUQ7UUFDL0MscUJBQWdCLEdBQXVGLEVBQUUsQ0FBQztRQUVwSCxxRkFBcUY7UUFDckYsK0ZBQStGO1FBQy9GLGlHQUFpRztRQUNqRywwRkFBMEY7UUFDMUYsa0VBQWtFO1FBQzFELGFBQVEsR0FBZ0MsU0FBUyxDQUFDO1FBSXhELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLGNBQXNCO1FBQ25DLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFB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QztnQkFDdEQsTUFBTSxJQUFJLHFCQUFxQixDQUFDLHdFQUF3RSxDQUFDLENBQUM7WUFDNUcsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxLQUFLLEVBQVksRUFBRSxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLHVCQUF1QixDQUFDLDJCQUEyQjtZQUN6RCxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO2dCQUNwQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO2dCQUM1QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2FBQ3pDO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEF0YUNsb3NlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbnR5cGUgQ2xvc2VBdGFBcGlNb2RlID0gJ3NpbmdsZScgfCAnYnVsayc7XG5cbmNvbnN0IE1JWF9BUElfRVJST1JfTUVTU0FHRSA9XG4gICdDYW5ub3QgbWl4IHNpbmdsZS1BVEEgQVBJIChhY2NvdW50QWRkcmVzcy9kZXN0aW5hdGlvbkFkZHJlc3MvYXV0aG9yaXR5QWRkcmVzcykgd2l0aCBidWxrLUFUQSBBUEkgKGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24pJztcblxuZXhwb3J0IGNsYXNzIENsb3NlQXRhQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIC8vIFVuaWZpZWQgc3RvcmFnZSBmb3IgYWxsIGNsb3NlIGVudHJpZXMgKHNpbmdsZSBvciBidWxrKVxuICBwcm90ZWN0ZWQgX2Nsb3NlQXRhRW50cmllczogeyBhY2NvdW50QWRkcmVzczogc3RyaW5nOyBkZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZzsgYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIC8vIFdoaWNoIEFQSSBoYXMgYmVlbiB1c2VkIG9uIHRoaXMgYnVpbGRlciBpbnN0YW5jZS4gTG9ja3MgaW4gb24gZmlyc3QgY2FsbCBzbyB3ZSBjYW5cbiAgLy8gcmVqZWN0IGF0dGVtcHRzIHRvIG1peCB0aGUgbGVnYWN5IHNpbmdsZS1BVEEgc2V0dGVycyB3aXRoIHRoZSBidWxrIGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24oKS5cbiAgLy8gQWZ0ZXIgaW5pdEJ1aWxkZXIoKTogcmVtYWlucyB1bmRlZmluZWQgZm9yIGEgc2luZ2xlIHBhcnNlZCBjbG9zZSAoZWl0aGVyIEFQSSBtYXkgZXh0ZW5kL2VkaXQpO1xuICAvLyBzZXQgdG8gJ2J1bGsnIHdoZW4gdGhlIHBhcnNlZCB0eCBoYWQgbXVsdGlwbGUgY2xvc2VzIHNvIGxlZ2FjeSBzZXR0ZXJzIGNhbm5vdCBwYXJ0aWFsbHlcbiAgLy8gb3ZlcndyaXRlIGVudHJ5WzBdIHdoaWxlIGxlYXZpbmcgb3RoZXIgcGFyc2VkIGVudHJpZXMgaW4gcGxhY2UuXG4gIHByaXZhdGUgX2FwaU1vZGU6IENsb3NlQXRhQXBpTW9kZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBBVEEgYWNjb3VudCBhZGRyZXNzIHRvIGNsb3NlIChzaW5nbGUtQVRBIEFQSSwgYmFja3dhcmQgY29tcGF0aWJsZSkuXG4gICAqIENhbm5vdCBiZSBtaXhlZCB3aXRoIGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24oKS5cbiAgICovXG4gIGFjY291bnRBZGRyZXNzKGFjY291bnRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9hc3NlcnRTaW5nbGVBdGFBcGlVc2FibGUoKTtcbiAgICB2YWxpZGF0ZUFkZHJlc3MoYWNjb3VudEFkZHJlc3MsICdhY2NvdW50QWRkcmVzcycpO1xuICAgIHRoaXMuX2FwaU1vZGUgPSAnc2luZ2xlJztcbiAgICB0aGlzLl9lbnN1cmVTaW5nbGVFbnRyeSgpO1xuICAgIHRoaXMuX2Nsb3NlQXRhRW50cmllc1swXS5hY2NvdW50QWRkcmVzcyA9IGFjY291bnRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHJlbnQgU09MIChzaW5nbGUtQVRBIEFQSSwgYmFja3dhcmQgY29tcGF0aWJsZSkuXG4gICAqIENhbm5vdCBiZSBtaXhlZCB3aXRoIGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24oKS5cbiAgICovXG4gIGRlc3RpbmF0aW9uQWRkcmVzcyhkZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2Fzc2VydFNpbmdsZUF0YUFwaVVzYWJsZSgpO1xuICAgIHZhbGlkYXRlQWRkcmVzcyhkZXN0aW5hdGlvbkFkZHJlc3MsICdkZXN0aW5hdGlvbkFkZHJlc3MnKTtcbiAgICB0aGlzLl9hcGlNb2RlID0gJ3NpbmdsZSc7XG4gICAgdGhpcy5fZW5zdXJlU2luZ2xlRW50cnkoKTtcbiAgICB0aGlzLl9jbG9zZUF0YUVudHJpZXNbMF0uZGVzdGluYXRpb25BZGRyZXNzID0gZGVzdGluYXRpb25BZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGF1dGhvcml0eSBhZGRyZXNzIC8gQVRBIG93bmVyIChzaW5nbGUtQVRBIEFQSSwgYmFja3dhcmQgY29tcGF0aWJsZSkuXG4gICAqIENhbm5vdCBiZSBtaXhlZCB3aXRoIGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24oKS5cbiAgICovXG4gIGF1dGhvcml0eUFkZHJlc3MoYXV0aG9yaXR5QWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fYXNzZXJ0U2luZ2xlQXRhQXBpVXNhYmxlKCk7XG4gICAgdmFsaWRhdGVBZGRyZXNzKGF1dGhvcml0eUFkZHJlc3MsICdhdXRob3JpdHlBZGRyZXNzJyk7XG4gICAgdGhpcy5fYXBpTW9kZSA9ICdzaW5nbGUnO1xuICAgIHRoaXMuX2Vuc3VyZVNpbmdsZUVudHJ5KCk7XG4gICAgdGhpcy5fY2xvc2VBdGFFbnRyaWVzWzBdLmF1dGhvcml0eUFkZHJlc3MgPSBhdXRob3JpdHlBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBpZiB0aGUgYnVsay1BVEEgQVBJIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBvbiB0aGlzIGJ1aWxkZXIuXG4gICAqL1xuICBwcml2YXRlIF9hc3NlcnRTaW5nbGVBdGFBcGlVc2FibGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FwaU1vZGUgPT09ICdidWxrJykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihNSVhfQVBJX0VSUk9SX01FU1NBR0UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIGEgc2luZ2xlIGVudHJ5IGV4aXN0cyBpbiBfY2xvc2VBdGFFbnRyaWVzIGZvciB0aGUgbGVnYWN5IEFQSS5cbiAgICovXG4gIHByaXZhdGUgX2Vuc3VyZVNpbmdsZUVudHJ5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jbG9zZUF0YUVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9jbG9zZUF0YUVudHJpZXMucHVzaCh7IGFjY291bnRBZGRyZXNzOiAnJywgZGVzdGluYXRpb25BZGRyZXNzOiAnJywgYXV0aG9yaXR5QWRkcmVzczogJycgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBBVEEgdG8gY2xvc2UgaW4gdGhpcyB0cmFuc2FjdGlvbiAoZm9yIGJ1bGsgY2xvc3VyZSkuXG4gICAqIENhbm5vdCBiZSBtaXhlZCB3aXRoIHRoZSBzaW5nbGUtQVRBIEFQSSAoYWNjb3VudEFkZHJlc3MvZGVzdGluYXRpb25BZGRyZXNzL2F1dGhvcml0eUFkZHJlc3MpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudEFkZHJlc3MgLSB0aGUgQVRBIGFkZHJlc3MgdG8gY2xvc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyAtIHdoZXJlIHJlbnQgU09MIGdvZXMgKHJvb3Qgd2FsbGV0IGFkZHJlc3MpXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdXRob3JpdHlBZGRyZXNzIC0gQVRBIG93bmVyIHdobyBtdXN0IHNpZ25cbiAgICovXG4gIGFkZENsb3NlQXRhSW5zdHJ1Y3Rpb24oYWNjb3VudEFkZHJlc3M6IHN0cmluZywgZGVzdGluYXRpb25BZGRyZXNzOiBzdHJpbmcsIGF1dGhvcml0eUFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0aGlzLl9hcGlNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihNSVhfQVBJX0VSUk9SX01FU1NBR0UpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlQWRkcmVzcyhhY2NvdW50QWRkcmVzcywgJ2FjY291bnRBZGRyZXNzJyk7XG4gICAgdmFsaWRhdGVBZGRyZXNzKGRlc3RpbmF0aW9uQWRkcmVzcywgJ2Rlc3RpbmF0aW9uQWRkcmVzcycpO1xuICAgIHZhbGlkYXRlQWRkcmVzcyhhdXRob3JpdHlBZGRyZXNzLCAnYXV0aG9yaXR5QWRkcmVzcycpO1xuXG4gICAgaWYgKGFjY291bnRBZGRyZXNzID09PSBkZXN0aW5hdGlvbkFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0FjY291bnQgYWRkcmVzcyB0byBjbG9zZSBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY2xvc2VBdGFFbnRyaWVzLnNvbWUoKGVudHJ5KSA9PiBlbnRyeS5hY2NvdW50QWRkcmVzcyA9PT0gYWNjb3VudEFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdEdXBsaWNhdGUgQVRBIGFkZHJlc3M6ICcgKyBhY2NvdW50QWRkcmVzcyk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXBpTW9kZSA9ICdidWxrJztcbiAgICB0aGlzLl9jbG9zZUF0YUVudHJpZXMucHVzaCh7IGFjY291bnRBZGRyZXNzLCBkZXN0aW5hdGlvbkFkZHJlc3MsIGF1dGhvcml0eUFkZHJlc3MgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudCkge1xuICAgICAgICBjb25zdCBhdGFDbG9zZUluc3RydWN0aW9uOiBBdGFDbG9zZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLl9jbG9zZUF0YUVudHJpZXMucHVzaCh7XG4gICAgICAgICAgYWNjb3VudEFkZHJlc3M6IGF0YUNsb3NlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFjY291bnRBZGRyZXNzLFxuICAgICAgICAgIGRlc3RpbmF0aW9uQWRkcmVzczogYXRhQ2xvc2VJbnN0cnVjdGlvbi5wYXJhbXMuZGVzdGluYXRpb25BZGRyZXNzLFxuICAgICAgICAgIGF1dGhvcml0eUFkZHJlc3M6IGF0YUNsb3NlSW5zdHJ1Y3Rpb24ucGFyYW1zLmF1dGhvcml0eUFkZHJlc3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5fY2xvc2VBdGFFbnRyaWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuX2FwaU1vZGUgPSAnYnVsayc7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fY2xvc2VBdGFFbnRyaWVzLmxlbmd0aCA+IDAsICdBdCBsZWFzdCBvbmUgQVRBIG11c3QgYmUgc3BlY2lmaWVkIGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5fY2xvc2VBdGFFbnRyaWVzKSB7XG4gICAgICBhc3NlcnQoZW50cnkuYWNjb3VudEFkZHJlc3MsICdBY2NvdW50IEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgICAgYXNzZXJ0KGVudHJ5LmRlc3RpbmF0aW9uQWRkcmVzcywgJ0Rlc3RpbmF0aW9uIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgICAgYXNzZXJ0KGVudHJ5LmF1dGhvcml0eUFkZHJlc3MsICdBdXRob3JpdHkgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICAgIGlmIChlbnRyeS5hY2NvdW50QWRkcmVzcyA9PT0gZW50cnkuZGVzdGluYXRpb25BZGRyZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0FjY291bnQgYWRkcmVzcyB0byBjbG9zZSBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gdGhpcy5fY2xvc2VBdGFFbnRyaWVzLm1hcChcbiAgICAgIChlbnRyeSk6IEF0YUNsb3NlID0+ICh7XG4gICAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudCxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgYWNjb3VudEFkZHJlc3M6IGVudHJ5LmFjY291bnRBZGRyZXNzLFxuICAgICAgICAgIGRlc3RpbmF0aW9uQWRkcmVzczogZW50cnkuZGVzdGluYXRpb25BZGRyZXNzLFxuICAgICAgICAgIGF1dGhvcml0eUFkZHJlc3M6IGVudHJ5LmF1dGhvcml0eUFkZHJlc3MsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=