@bitgo-beta/sdk-coin-sol 7.6.4-beta.79 → 7.6.4-beta.790

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 (544) hide show
  1. package/dist/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
  2. package/dist/cjs/src/bigint-buffer-guard.js +29 -0
  3. package/dist/cjs/src/index.d.ts.map +1 -0
  4. package/dist/{src → cjs/src}/index.js +1 -1
  5. package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +12 -1
  6. package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
  7. package/dist/cjs/src/lib/ataInitializationBuilder.js +231 -0
  8. package/dist/cjs/src/lib/closeAtaBuilder.d.ts +55 -0
  9. package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
  10. package/dist/cjs/src/lib/closeAtaBuilder.js +162 -0
  11. package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts +136 -0
  12. package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
  13. package/dist/cjs/src/lib/confidentialTransferBuilder.js +375 -0
  14. package/dist/{src → cjs/src}/lib/constants.d.ts +97 -2
  15. package/dist/cjs/src/lib/constants.d.ts.map +1 -0
  16. package/dist/cjs/src/lib/constants.js +277 -0
  17. package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +13 -2
  18. package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
  19. package/dist/cjs/src/lib/customInstructionBuilder.js +392 -0
  20. package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
  21. package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
  22. package/dist/cjs/src/lib/explainTransactionWasm.js +304 -0
  23. package/dist/cjs/src/lib/iface.d.ts +549 -0
  24. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  25. package/dist/cjs/src/lib/iface.js +7 -0
  26. package/dist/{src → cjs/src}/lib/index.d.ts +9 -0
  27. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  28. package/dist/cjs/src/lib/index.js +106 -0
  29. package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +3 -1
  30. package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
  31. package/dist/cjs/src/lib/instructionParamsFactory.js +1284 -0
  32. package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
  33. package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
  34. package/dist/{src → cjs/src}/lib/keyPair.d.ts +6 -0
  35. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  36. package/dist/cjs/src/lib/keyPair.js +112 -0
  37. package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
  38. package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
  39. package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  40. package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
  41. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
  42. package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  43. package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
  44. package/dist/cjs/src/lib/scaledUiAmount.d.ts +30 -0
  45. package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
  46. package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
  47. package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts +21 -0
  48. package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts.map +1 -0
  49. package/dist/cjs/src/lib/serialization/codecs/v1/config.js +34 -0
  50. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts +14 -0
  51. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
  52. package/dist/cjs/src/lib/serialization/codecs/v1/instruction.js +32 -0
  53. package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts +27 -0
  54. package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts.map +1 -0
  55. package/dist/cjs/src/lib/serialization/codecs/v1/message.js +196 -0
  56. package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts +36 -0
  57. package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
  58. package/dist/cjs/src/lib/serialization/compileTransactionMessage.js +211 -0
  59. package/dist/cjs/src/lib/serialization/index.d.ts +5 -0
  60. package/dist/cjs/src/lib/serialization/index.d.ts.map +1 -0
  61. package/dist/cjs/src/lib/serialization/index.js +27 -0
  62. package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts +9 -0
  63. package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts.map +1 -0
  64. package/dist/cjs/src/lib/serialization/parseWireTransaction.js +58 -0
  65. package/dist/cjs/src/lib/serialization/wire-transaction.d.ts +14 -0
  66. package/dist/cjs/src/lib/serialization/wire-transaction.d.ts.map +1 -0
  67. package/dist/cjs/src/lib/serialization/wire-transaction.js +51 -0
  68. package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +1 -1
  69. package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
  70. package/dist/cjs/src/lib/solInstructionFactory.js +1129 -0
  71. package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
  72. package/dist/cjs/src/lib/stakingActivateBuilder.js +129 -0
  73. package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  74. package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
  75. package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
  76. package/dist/cjs/src/lib/stakingDeactivateBuilder.js +214 -0
  77. package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  78. package/dist/cjs/src/lib/stakingDelegateBuilder.js +126 -0
  79. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  80. package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  81. package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
  82. package/dist/cjs/src/lib/stakingWithdrawBuilder.js +87 -0
  83. package/dist/cjs/src/lib/token2022Resolve.d.ts +106 -0
  84. package/dist/cjs/src/lib/token2022Resolve.d.ts.map +1 -0
  85. package/dist/cjs/src/lib/token2022Resolve.js +199 -0
  86. package/dist/cjs/src/lib/tokenExtensions.d.ts +26 -0
  87. package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
  88. package/dist/cjs/src/lib/tokenExtensions.js +109 -0
  89. package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +27 -1
  90. package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  91. package/dist/cjs/src/lib/tokenTransferBuilder.js +237 -0
  92. package/dist/{src → cjs/src}/lib/transaction.d.ts +46 -1
  93. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  94. package/dist/cjs/src/lib/transaction.js +761 -0
  95. package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +42 -1
  96. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  97. package/dist/cjs/src/lib/transactionBuilder.js +462 -0
  98. package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +37 -0
  99. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  100. package/dist/cjs/src/lib/transactionBuilderFactory.js +249 -0
  101. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  102. package/dist/cjs/src/lib/transferBuilder.js +81 -0
  103. package/dist/cjs/src/lib/transferBuilderV2.d.ts +69 -0
  104. package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
  105. package/dist/cjs/src/lib/transferBuilderV2.js +252 -0
  106. package/dist/{src → cjs/src}/lib/utils.d.ts +16 -0
  107. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  108. package/dist/cjs/src/lib/utils.js +681 -0
  109. package/dist/cjs/src/lib/v1CustomInstructionBuilder.d.ts +29 -0
  110. package/dist/cjs/src/lib/v1CustomInstructionBuilder.d.ts.map +1 -0
  111. package/dist/cjs/src/lib/v1CustomInstructionBuilder.js +36 -0
  112. package/dist/cjs/src/lib/v1PaymentBuilder.d.ts +36 -0
  113. package/dist/cjs/src/lib/v1PaymentBuilder.d.ts.map +1 -0
  114. package/dist/cjs/src/lib/v1PaymentBuilder.js +70 -0
  115. package/dist/cjs/src/lib/v1TransactionBuilder.d.ts +253 -0
  116. package/dist/cjs/src/lib/v1TransactionBuilder.d.ts.map +1 -0
  117. package/dist/cjs/src/lib/v1TransactionBuilder.js +601 -0
  118. package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
  119. package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
  120. package/dist/cjs/src/register.d.ts +5 -0
  121. package/dist/cjs/src/register.d.ts.map +1 -0
  122. package/dist/cjs/src/register.js +29 -0
  123. package/dist/{src → cjs/src}/sol.d.ts +114 -3
  124. package/dist/cjs/src/sol.d.ts.map +1 -0
  125. package/dist/cjs/src/sol.js +1707 -0
  126. package/dist/{src → cjs/src}/solToken.d.ts +7 -0
  127. package/dist/cjs/src/solToken.d.ts.map +1 -0
  128. package/dist/cjs/src/solToken.js +79 -0
  129. package/dist/cjs/src/tsol.d.ts.map +1 -0
  130. package/dist/cjs/src/tsol.js +24 -0
  131. package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
  132. package/dist/cjs/test/fixtures/sol.js +1433 -0
  133. package/dist/{test → cjs/test}/resources/sol.d.ts +29 -29
  134. package/dist/cjs/test/resources/sol.d.ts.map +1 -0
  135. package/dist/cjs/test/resources/sol.js +320 -0
  136. package/dist/cjs/test/unit/ctEnablementVerify.d.ts +2 -0
  137. package/dist/cjs/test/unit/ctEnablementVerify.d.ts.map +1 -0
  138. package/dist/cjs/test/unit/ctEnablementVerify.js +142 -0
  139. package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
  140. package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
  141. package/dist/cjs/test/unit/explainTransactionWasm.js +66 -0
  142. package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
  143. package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
  144. package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
  145. package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
  146. package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
  147. package/dist/cjs/test/unit/instructionParamsFactory.js +425 -0
  148. package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
  149. package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
  150. package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
  151. package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
  152. package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
  153. package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
  154. package/dist/cjs/test/unit/keyPair.js +177 -0
  155. package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  156. package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
  157. package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
  158. package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
  159. package/dist/cjs/test/unit/register.d.ts +2 -0
  160. package/dist/cjs/test/unit/register.d.ts.map +1 -0
  161. package/dist/cjs/test/unit/register.js +65 -0
  162. package/dist/cjs/test/unit/scaledUiAmount.d.ts +2 -0
  163. package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
  164. package/dist/cjs/test/unit/scaledUiAmount.js +101 -0
  165. package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts +2 -0
  166. package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts.map +1 -0
  167. package/dist/cjs/test/unit/serialization/decodeV1Message.js +63 -0
  168. package/dist/cjs/test/unit/serialization/exportV1.d.ts +2 -0
  169. package/dist/cjs/test/unit/serialization/exportV1.d.ts.map +1 -0
  170. package/dist/cjs/test/unit/serialization/exportV1.js +21 -0
  171. package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts +2 -0
  172. package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts.map +1 -0
  173. package/dist/cjs/test/unit/serialization/parseWireTransaction.js +90 -0
  174. package/dist/cjs/test/unit/serialization/transactionV1.d.ts +2 -0
  175. package/dist/cjs/test/unit/serialization/transactionV1.d.ts.map +1 -0
  176. package/dist/cjs/test/unit/serialization/transactionV1.js +136 -0
  177. package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
  178. package/dist/cjs/test/unit/sol.js +5364 -0
  179. package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
  180. package/dist/cjs/test/unit/solInstructionFactory.js +623 -0
  181. package/dist/cjs/test/unit/solIntentVersion.d.ts +2 -0
  182. package/dist/cjs/test/unit/solIntentVersion.d.ts.map +1 -0
  183. package/dist/cjs/test/unit/solIntentVersion.js +59 -0
  184. package/dist/cjs/test/unit/solSafeRecovery.d.ts +2 -0
  185. package/dist/cjs/test/unit/solSafeRecovery.d.ts.map +1 -0
  186. package/dist/cjs/test/unit/solSafeRecovery.js +202 -0
  187. package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
  188. package/dist/cjs/test/unit/solToken.js +37 -0
  189. package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
  190. package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
  191. package/dist/cjs/test/unit/token2022Resolve.js +252 -0
  192. package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
  193. package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
  194. package/dist/cjs/test/unit/tokenExtensions.js +73 -0
  195. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  196. package/dist/cjs/test/unit/transaction.js +1129 -0
  197. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  198. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  199. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  200. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +508 -0
  201. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
  202. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
  203. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +343 -0
  204. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts +2 -0
  205. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts.map +1 -0
  206. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.js +346 -0
  207. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts +2 -0
  208. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts.map +1 -0
  209. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.js +123 -0
  210. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
  211. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
  212. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +955 -0
  213. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts +2 -0
  214. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts.map +1 -0
  215. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +193 -0
  216. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts +2 -0
  217. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts.map +1 -0
  218. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +167 -0
  219. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  220. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +724 -0
  221. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  222. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  223. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  224. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  225. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  226. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  227. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  228. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  229. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  230. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  231. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  232. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +926 -0
  233. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  234. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  235. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  236. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +302 -0
  237. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  238. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +910 -0
  239. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.d.ts +2 -0
  240. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.d.ts.map +1 -0
  241. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.js +138 -0
  242. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts +2 -0
  243. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts.map +1 -0
  244. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.js +331 -0
  245. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  246. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  247. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  248. package/dist/cjs/test/unit/utils.js +663 -0
  249. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  250. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  251. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  252. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  253. package/dist/esm/index.d.ts +7 -0
  254. package/dist/esm/index.js +7 -0
  255. package/dist/esm/lib/ataInitializationBuilder.d.ts +58 -0
  256. package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
  257. package/dist/esm/lib/ataInitializationBuilder.js +191 -0
  258. package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
  259. package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
  260. package/dist/esm/lib/closeAtaBuilder.js +155 -0
  261. package/dist/esm/lib/confidentialTransferBuilder.d.ts +136 -0
  262. package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
  263. package/dist/esm/lib/confidentialTransferBuilder.js +368 -0
  264. package/dist/esm/lib/constants.d.ts +235 -0
  265. package/dist/esm/lib/constants.d.ts.map +1 -0
  266. package/dist/esm/lib/constants.js +274 -0
  267. package/dist/esm/lib/customInstructionBuilder.d.ts +83 -0
  268. package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +1 -1
  269. package/dist/esm/lib/customInstructionBuilder.js +385 -0
  270. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  271. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  272. package/dist/esm/lib/explainTransactionWasm.js +301 -0
  273. package/dist/esm/lib/iface.d.ts +549 -0
  274. package/dist/esm/lib/iface.d.ts.map +1 -0
  275. package/dist/esm/lib/iface.js +3 -0
  276. package/dist/esm/lib/index.d.ts +31 -0
  277. package/dist/esm/lib/index.d.ts.map +1 -0
  278. package/dist/esm/lib/index.js +31 -0
  279. package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
  280. package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
  281. package/dist/esm/lib/instructionParamsFactory.js +1276 -0
  282. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  283. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  284. package/dist/esm/lib/keyPair.d.ts +32 -0
  285. package/dist/esm/lib/keyPair.d.ts.map +1 -0
  286. package/dist/esm/lib/keyPair.js +75 -0
  287. package/dist/esm/lib/messages/index.d.ts +2 -0
  288. package/dist/esm/lib/messages/index.js +2 -0
  289. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  290. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  291. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  292. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  293. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  294. package/dist/esm/lib/scaledUiAmount.d.ts +30 -0
  295. package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
  296. package/dist/esm/lib/scaledUiAmount.js +108 -0
  297. package/dist/esm/lib/serialization/codecs/v1/config.d.ts +21 -0
  298. package/dist/esm/lib/serialization/codecs/v1/config.d.ts.map +1 -0
  299. package/dist/esm/lib/serialization/codecs/v1/config.js +30 -0
  300. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts +14 -0
  301. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
  302. package/dist/esm/lib/serialization/codecs/v1/instruction.js +29 -0
  303. package/dist/esm/lib/serialization/codecs/v1/message.d.ts +27 -0
  304. package/dist/esm/lib/serialization/codecs/v1/message.d.ts.map +1 -0
  305. package/dist/esm/lib/serialization/codecs/v1/message.js +188 -0
  306. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts +36 -0
  307. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
  308. package/dist/esm/lib/serialization/compileTransactionMessage.js +208 -0
  309. package/dist/esm/lib/serialization/index.d.ts +5 -0
  310. package/dist/esm/lib/serialization/index.d.ts.map +1 -0
  311. package/dist/esm/lib/serialization/index.js +5 -0
  312. package/dist/esm/lib/serialization/parseWireTransaction.d.ts +9 -0
  313. package/dist/esm/lib/serialization/parseWireTransaction.d.ts.map +1 -0
  314. package/dist/esm/lib/serialization/parseWireTransaction.js +50 -0
  315. package/dist/esm/lib/serialization/wire-transaction.d.ts +14 -0
  316. package/dist/esm/lib/serialization/wire-transaction.d.ts.map +1 -0
  317. package/dist/esm/lib/serialization/wire-transaction.js +48 -0
  318. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  319. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  320. package/dist/esm/lib/solInstructionFactory.js +1123 -0
  321. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  322. package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +1 -1
  323. package/dist/esm/lib/stakingActivateBuilder.js +122 -0
  324. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  325. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  326. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  327. package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  328. package/dist/esm/lib/stakingDeactivateBuilder.js +207 -0
  329. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  330. package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +1 -1
  331. package/dist/esm/lib/stakingDelegateBuilder.js +119 -0
  332. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  333. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  334. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  335. package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +1 -1
  336. package/dist/esm/lib/stakingWithdrawBuilder.js +80 -0
  337. package/dist/esm/lib/token2022Resolve.d.ts +106 -0
  338. package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
  339. package/dist/esm/lib/token2022Resolve.js +194 -0
  340. package/dist/esm/lib/tokenExtensions.d.ts +26 -0
  341. package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
  342. package/dist/esm/lib/tokenExtensions.js +103 -0
  343. package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
  344. package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
  345. package/dist/esm/lib/tokenTransferBuilder.js +230 -0
  346. package/dist/esm/lib/transaction.d.ts +148 -0
  347. package/dist/esm/lib/transaction.d.ts.map +1 -0
  348. package/dist/esm/lib/transaction.js +754 -0
  349. package/dist/esm/lib/transactionBuilder.d.ts +169 -0
  350. package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
  351. package/dist/esm/lib/transactionBuilder.js +455 -0
  352. package/dist/esm/lib/transactionBuilderFactory.d.ts +152 -0
  353. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  354. package/dist/esm/lib/transactionBuilderFactory.js +245 -0
  355. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  356. package/dist/{src → esm}/lib/transferBuilder.d.ts.map +1 -1
  357. package/dist/esm/lib/transferBuilder.js +74 -0
  358. package/dist/esm/lib/transferBuilderV2.d.ts +69 -0
  359. package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
  360. package/dist/esm/lib/transferBuilderV2.js +245 -0
  361. package/dist/esm/lib/utils.d.ts +216 -0
  362. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  363. package/dist/esm/lib/utils.js +642 -0
  364. package/dist/esm/lib/v1CustomInstructionBuilder.d.ts +29 -0
  365. package/dist/esm/lib/v1CustomInstructionBuilder.d.ts.map +1 -0
  366. package/dist/esm/lib/v1CustomInstructionBuilder.js +32 -0
  367. package/dist/esm/lib/v1PaymentBuilder.d.ts +36 -0
  368. package/dist/esm/lib/v1PaymentBuilder.d.ts.map +1 -0
  369. package/dist/esm/lib/v1PaymentBuilder.js +63 -0
  370. package/dist/esm/lib/v1TransactionBuilder.d.ts +253 -0
  371. package/dist/esm/lib/v1TransactionBuilder.d.ts.map +1 -0
  372. package/dist/esm/lib/v1TransactionBuilder.js +591 -0
  373. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  374. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  375. package/dist/esm/register.d.ts +5 -0
  376. package/dist/esm/register.d.ts.map +1 -0
  377. package/dist/esm/register.js +24 -0
  378. package/dist/esm/sol.d.ts +351 -0
  379. package/dist/esm/sol.d.ts.map +1 -0
  380. package/dist/esm/sol.js +1666 -0
  381. package/dist/esm/solToken.d.ts +44 -0
  382. package/dist/esm/solToken.d.ts.map +1 -0
  383. package/dist/esm/solToken.js +75 -0
  384. package/dist/esm/tsol.d.ts +11 -0
  385. package/dist/esm/tsol.js +20 -0
  386. package/package.json +37 -17
  387. package/dist/src/config/token2022StaticConfig.d.ts +0 -3
  388. package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
  389. package/dist/src/config/token2022StaticConfig.js +0 -50
  390. package/dist/src/lib/ataInitializationBuilder.d.ts.map +0 -1
  391. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  392. package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
  393. package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
  394. package/dist/src/lib/closeAtaBuilder.js +0 -69
  395. package/dist/src/lib/constants.d.ts.map +0 -1
  396. package/dist/src/lib/constants.js +0 -171
  397. package/dist/src/lib/customInstructionBuilder.js +0 -289
  398. package/dist/src/lib/iface.d.ts +0 -244
  399. package/dist/src/lib/iface.d.ts.map +0 -1
  400. package/dist/src/lib/iface.js +0 -7
  401. package/dist/src/lib/index.d.ts.map +0 -1
  402. package/dist/src/lib/index.js +0 -77
  403. package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
  404. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  405. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  406. package/dist/src/lib/keyPair.d.ts.map +0 -1
  407. package/dist/src/lib/keyPair.js +0 -63
  408. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  409. package/dist/src/lib/solInstructionFactory.js +0 -572
  410. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  411. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  412. package/dist/src/lib/stakingDeactivateBuilder.js +0 -208
  413. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  414. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  415. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  416. package/dist/src/lib/token2022Config.d.ts +0 -44
  417. package/dist/src/lib/token2022Config.d.ts.map +0 -1
  418. package/dist/src/lib/token2022Config.js +0 -27
  419. package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
  420. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  421. package/dist/src/lib/transaction.d.ts.map +0 -1
  422. package/dist/src/lib/transaction.js +0 -595
  423. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  424. package/dist/src/lib/transactionBuilder.js +0 -380
  425. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  426. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  427. package/dist/src/lib/transferBuilder.js +0 -70
  428. package/dist/src/lib/transferBuilderV2.d.ts +0 -43
  429. package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
  430. package/dist/src/lib/transferBuilderV2.js +0 -210
  431. package/dist/src/lib/utils.js +0 -589
  432. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  433. package/dist/src/register.d.ts +0 -3
  434. package/dist/src/register.d.ts.map +0 -1
  435. package/dist/src/register.js +0 -15
  436. package/dist/src/sol.d.ts.map +0 -1
  437. package/dist/src/sol.js +0 -1324
  438. package/dist/src/solToken.d.ts.map +0 -1
  439. package/dist/src/solToken.js +0 -69
  440. package/dist/src/tsol.js +0 -24
  441. package/dist/test/fixtures/sol.js +0 -1433
  442. package/dist/test/resources/sol.d.ts.map +0 -1
  443. package/dist/test/resources/sol.js +0 -320
  444. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  445. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  446. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  447. package/dist/test/unit/getBuilderFactory.js +0 -10
  448. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  449. package/dist/test/unit/instructionParamsFactory.js +0 -412
  450. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  451. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  452. package/dist/test/unit/keyPair.js +0 -177
  453. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  454. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  455. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  456. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  457. package/dist/test/unit/sol.js +0 -3180
  458. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  459. package/dist/test/unit/solInstructionFactory.js +0 -454
  460. package/dist/test/unit/solToken.d.ts.map +0 -1
  461. package/dist/test/unit/solToken.js +0 -31
  462. package/dist/test/unit/transaction.d.ts.map +0 -1
  463. package/dist/test/unit/transaction.js +0 -983
  464. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  465. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  466. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  467. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  468. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  469. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  470. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  471. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  472. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  473. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  474. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  475. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  476. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  477. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  478. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  479. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  480. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  481. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  482. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  483. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  484. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  485. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  486. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  487. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  488. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  489. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  490. package/dist/test/unit/utils.js +0 -517
  491. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  492. package/dist/test/unit/versionedTransaction.js +0 -207
  493. package/dist/tsconfig.tsbuildinfo +0 -1
  494. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  495. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  496. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  497. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  498. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  499. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  500. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  501. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  502. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  503. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  504. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  505. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  506. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  507. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  508. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  509. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  510. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  511. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  512. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  513. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  514. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  515. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  516. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  517. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  518. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  519. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  520. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  521. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  522. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  523. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  524. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  525. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  526. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  527. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  528. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  529. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  530. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  531. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  532. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  533. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  534. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  535. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  536. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  537. /package/dist/{src → esm}/index.d.ts.map +0 -0
  538. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  539. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  540. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  541. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  542. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  543. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  544. /package/dist/{src → esm}/tsol.d.ts.map +0 -0
@@ -0,0 +1,152 @@
1
+ import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AtaInitializationBuilder } from './ataInitializationBuilder';
4
+ import { CloseAtaBuilder } from './closeAtaBuilder';
5
+ import { ConfidentialTransferBuilder } from './confidentialTransferBuilder';
6
+ import { RecoverNestedAtaBuilder } from './recoverNestedAtaBuilder';
7
+ import { CustomInstructionBuilder } from './customInstructionBuilder';
8
+ import { V1CustomInstructionBuilder } from './v1CustomInstructionBuilder';
9
+ import { V1PaymentBuilder } from './v1PaymentBuilder';
10
+ import { StakingActivateBuilder } from './stakingActivateBuilder';
11
+ import { StakingAuthorizeBuilder } from './stakingAuthorizeBuilder';
12
+ import { StakingDeactivateBuilder } from './stakingDeactivateBuilder';
13
+ import { StakingDelegateBuilder } from './stakingDelegateBuilder';
14
+ import { StakingRawMsgAuthorizeBuilder } from './stakingRawMsgAuthorizeBuilder';
15
+ import { StakingWithdrawBuilder } from './stakingWithdrawBuilder';
16
+ import { TokenTransferBuilder } from './tokenTransferBuilder';
17
+ import { Transaction } from './transaction';
18
+ import { TransactionBuilder } from './transactionBuilder';
19
+ import { TransferBuilder } from './transferBuilder';
20
+ import { TransferBuilderV2 } from './transferBuilderV2';
21
+ import { WalletInitializationBuilder } from './walletInitializationBuilder';
22
+ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
23
+ constructor(_coinConfig: Readonly<CoinConfig>);
24
+ /**
25
+ * Returns a proper builder for the given encoded transaction
26
+ *
27
+ * @param { string} raw - Encoded transaction in base64 string format
28
+ */
29
+ from(raw: string): TransactionBuilder | StakingRawMsgAuthorizeBuilder;
30
+ /** @inheritdoc */
31
+ getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder;
32
+ /** @inheritdoc */
33
+ getTransferBuilder(tx?: Transaction): TransferBuilder;
34
+ /** @inheritdoc */
35
+ getTokenTransferBuilder(tx?: Transaction): TokenTransferBuilder;
36
+ /**
37
+ * Returns the transfer builder V2 to create a funds transfer transaction
38
+ */
39
+ getTransferBuilderV2(tx?: Transaction): TransferBuilderV2;
40
+ /**
41
+ * Returns the staking builder to create a staking account and also a delegate in one transaction.
42
+ * once the tx reach the network it will automatically by activated on next epoch
43
+ *
44
+ * @see https://docs.solana.com/cluster/stake-delegation-and-rewards#stake-warmup-cooldown-withdrawal
45
+ *
46
+ * @param {Transaction} tx - the transaction to be used to initialize the builder
47
+ * @returns {StakingDeactivateBuilder} - the initialized staking activate builder
48
+ */
49
+ getStakingActivateBuilder(tx?: Transaction): StakingActivateBuilder;
50
+ /**
51
+ * Returns the builder to create a staking deactivate transaction.
52
+ * Deactivated is set in the current epoch + cooldown
53
+ * The account's stake will ramp down to zero by that epoch, and the lamports will be available for withdrawal.
54
+ *
55
+ * @see https://docs.solana.com/cluster/stake-delegation-and-rewards#stake-warmup-cooldown-withdrawal
56
+ *
57
+ * @param {Transaction} tx - the transaction to be used to initialize the builder
58
+ * @returns {StakingDeactivateBuilder} - the initialized staking deactivate builder
59
+ */
60
+ getStakingDeactivateBuilder(tx?: Transaction): StakingDeactivateBuilder;
61
+ /**
62
+ * Returns the builder to create a staking withdraw transaction.
63
+ * once the staking account reach 0 SOL it will not be traceable anymore by the network
64
+ *
65
+ * @see https://docs.solana.com/staking/stake-accounts#destroying-a-stake-account
66
+ *
67
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
68
+ * @returns {StakingWithdrawBuilder} - the initialized staking withdraw builder
69
+ */
70
+ getStakingWithdrawBuilder(tx?: Transaction): StakingWithdrawBuilder;
71
+ /**
72
+ * Returns the builder to authorized staking account.
73
+ *
74
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
75
+ * @returns {StakingAuthorizeBuilder} - the initialized staking authorize builder
76
+ */
77
+ getStakingAuthorizeBuilder(tx?: Transaction): StakingAuthorizeBuilder;
78
+ /**
79
+ * Returns the builder to delegate staking account.
80
+ *
81
+ * @param {Transaction} tx - the transaction to be used to delegate staking account
82
+ * @returns {StakingDelegateBuilder} - the staking delegate builder
83
+ */
84
+ getStakingDelegateBuilder(tx?: Transaction): StakingDelegateBuilder;
85
+ /**
86
+ * Returns the raw message builder to authorized staking account.
87
+ *
88
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
89
+ * @returns {StakingWithdrawBuilder} - the initialized staking authorize builder
90
+ */
91
+ getStakingRawMsgAuthorizeBuilder(tx?: Transaction): StakingRawMsgAuthorizeBuilder;
92
+ /**
93
+ * Returns the builder to create a create associated token account transaction.
94
+ */
95
+ getAtaInitializationBuilder(tx?: Transaction): AtaInitializationBuilder;
96
+ /**
97
+ * Returns the builder to create a close associated token account transaction.
98
+ */
99
+ getCloseAtaInitializationBuilder(tx?: Transaction): CloseAtaBuilder;
100
+ /**
101
+ * Returns the builder to recover tokens from a nested ATA (an ATA owned by another ATA).
102
+ */
103
+ getRecoverNestedAtaBuilder(tx?: Transaction): RecoverNestedAtaBuilder;
104
+ /**
105
+ * Returns the builder to create transactions with custom Solana instructions.
106
+ */
107
+ getCustomInstructionBuilder(tx?: Transaction): CustomInstructionBuilder;
108
+ /**
109
+ * Returns the v1 (SIMD-0296/0385) builder to create custom-instruction transactions.
110
+ *
111
+ * Assembles v1 transactions from a client-supplied envelope: feed each envelope
112
+ * instruction as a web3.js TransactionInstruction via addInstruction, set the fee
113
+ * payer via sender, optional durable nonce via nonce, and the v1 config via
114
+ * transactionConfig. The builder owns the AdvanceNonceAccount injection, the message
115
+ * compile, and the message-signer-order signature assembly. Built fresh each call —
116
+ * v1 transactions are always assembled from an envelope, never re-initialized from a
117
+ * parsed transaction.
118
+ */
119
+ getV1CustomInstructionBuilder(): V1CustomInstructionBuilder;
120
+ /**
121
+ * Returns the builder to create Solana v1 (SIMD-0296/0385) native SOL
122
+ * transfers from structured params (sender + recipients/amounts).
123
+ *
124
+ * Server-side construction surface — the caller supplies fields, never
125
+ * instructions. Set the fee payer via sender, optional durable nonce via
126
+ * nonce, and the v1 config via transactionConfig.
127
+ */
128
+ getV1PaymentBuilder(): V1PaymentBuilder;
129
+ /**
130
+ * Returns the builder to create Token-2022 confidential transfer transactions.
131
+ *
132
+ * Supports Phase 1a CT instructions: ConfigureAccount, ApplyPendingBalance,
133
+ * Deposit, Withdraw, Transfer, and all verify-proof instructions.
134
+ * Instruction builders are v0/v1-agnostic.
135
+ */
136
+ getConfidentialTransferBuilder(tx?: Transaction): ConfidentialTransferBuilder;
137
+ /**
138
+ * Initialize the builder with the given transaction
139
+ *
140
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
141
+ * @param {TransactionBuilder} builder - the builder to be initialized
142
+ * @returns {TransactionBuilder} the builder initialized
143
+ */
144
+ private initializeBuilder;
145
+ /** Parse the transaction from a raw transaction
146
+ *
147
+ * @param {string} rawTransaction - the raw tx
148
+ * @returns {Transaction} parsed transaction
149
+ */
150
+ private parseTransaction;
151
+ }
152
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
1
+ import { BaseTransactionBuilderFactory, InvalidTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { AtaInitializationBuilder } from './ataInitializationBuilder';
3
+ import { CloseAtaBuilder } from './closeAtaBuilder';
4
+ import { ConfidentialTransferBuilder } from './confidentialTransferBuilder';
5
+ import { RecoverNestedAtaBuilder } from './recoverNestedAtaBuilder';
6
+ import { CustomInstructionBuilder } from './customInstructionBuilder';
7
+ import { V1CustomInstructionBuilder } from './v1CustomInstructionBuilder';
8
+ import { V1PaymentBuilder } from './v1PaymentBuilder';
9
+ import { StakingActivateBuilder } from './stakingActivateBuilder';
10
+ import { StakingAuthorizeBuilder } from './stakingAuthorizeBuilder';
11
+ import { StakingDeactivateBuilder } from './stakingDeactivateBuilder';
12
+ import { StakingDelegateBuilder } from './stakingDelegateBuilder';
13
+ import { StakingRawMsgAuthorizeBuilder } from './stakingRawMsgAuthorizeBuilder';
14
+ import { StakingWithdrawBuilder } from './stakingWithdrawBuilder';
15
+ import { TokenTransferBuilder } from './tokenTransferBuilder';
16
+ import { Transaction } from './transaction';
17
+ import { TransferBuilder } from './transferBuilder';
18
+ import { TransferBuilderV2 } from './transferBuilderV2';
19
+ import { validateRawTransaction } from './utils';
20
+ import { WalletInitializationBuilder } from './walletInitializationBuilder';
21
+ export class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
22
+ constructor(_coinConfig) {
23
+ super(_coinConfig);
24
+ }
25
+ /**
26
+ * Returns a proper builder for the given encoded transaction
27
+ *
28
+ * @param { string} raw - Encoded transaction in base64 string format
29
+ */
30
+ from(raw) {
31
+ validateRawTransaction(raw);
32
+ const tx = this.parseTransaction(raw);
33
+ try {
34
+ switch (tx.type) {
35
+ case TransactionType.Send:
36
+ const uniqueInputCoins = tx.inputs
37
+ .map((input) => input.coin)
38
+ .filter((coin, index, arr) => arr.indexOf(coin) === index);
39
+ if (uniqueInputCoins.includes('sol') || uniqueInputCoins.includes('tsol')) {
40
+ return this.getTransferBuilderV2(tx);
41
+ }
42
+ else {
43
+ return this.getTokenTransferBuilder(tx);
44
+ }
45
+ case TransactionType.WalletInitialization:
46
+ return this.getWalletInitializationBuilder(tx);
47
+ case TransactionType.StakingActivate:
48
+ return this.getStakingActivateBuilder(tx);
49
+ case TransactionType.StakingDeactivate:
50
+ return this.getStakingDeactivateBuilder(tx);
51
+ case TransactionType.StakingWithdraw:
52
+ return this.getStakingWithdrawBuilder(tx);
53
+ case TransactionType.AssociatedTokenAccountInitialization:
54
+ return this.getAtaInitializationBuilder(tx);
55
+ case TransactionType.StakingAuthorize:
56
+ return this.getStakingAuthorizeBuilder(tx);
57
+ case TransactionType.StakingAuthorizeRaw:
58
+ return this.getStakingRawMsgAuthorizeBuilder(tx);
59
+ case TransactionType.StakingDelegate:
60
+ return this.getStakingDelegateBuilder(tx);
61
+ case TransactionType.CloseAssociatedTokenAccount:
62
+ return this.getCloseAtaInitializationBuilder(tx);
63
+ case TransactionType.CustomTx:
64
+ return this.getCustomInstructionBuilder(tx);
65
+ case TransactionType.ConfidentialTransfer:
66
+ return this.getConfidentialTransferBuilder(tx);
67
+ default:
68
+ throw new InvalidTransactionError('Invalid transaction');
69
+ }
70
+ }
71
+ catch (e) {
72
+ throw e;
73
+ }
74
+ }
75
+ /** @inheritdoc */
76
+ getWalletInitializationBuilder(tx) {
77
+ return this.initializeBuilder(tx, new WalletInitializationBuilder(this._coinConfig));
78
+ }
79
+ /** @inheritdoc */
80
+ getTransferBuilder(tx) {
81
+ return this.initializeBuilder(tx, new TransferBuilder(this._coinConfig));
82
+ }
83
+ /** @inheritdoc */
84
+ getTokenTransferBuilder(tx) {
85
+ return this.initializeBuilder(tx, new TokenTransferBuilder(this._coinConfig));
86
+ }
87
+ /**
88
+ * Returns the transfer builder V2 to create a funds transfer transaction
89
+ */
90
+ getTransferBuilderV2(tx) {
91
+ return this.initializeBuilder(tx, new TransferBuilderV2(this._coinConfig));
92
+ }
93
+ /**
94
+ * Returns the staking builder to create a staking account and also a delegate in one transaction.
95
+ * once the tx reach the network it will automatically by activated on next epoch
96
+ *
97
+ * @see https://docs.solana.com/cluster/stake-delegation-and-rewards#stake-warmup-cooldown-withdrawal
98
+ *
99
+ * @param {Transaction} tx - the transaction to be used to initialize the builder
100
+ * @returns {StakingDeactivateBuilder} - the initialized staking activate builder
101
+ */
102
+ getStakingActivateBuilder(tx) {
103
+ return this.initializeBuilder(tx, new StakingActivateBuilder(this._coinConfig));
104
+ }
105
+ /**
106
+ * Returns the builder to create a staking deactivate transaction.
107
+ * Deactivated is set in the current epoch + cooldown
108
+ * The account's stake will ramp down to zero by that epoch, and the lamports will be available for withdrawal.
109
+ *
110
+ * @see https://docs.solana.com/cluster/stake-delegation-and-rewards#stake-warmup-cooldown-withdrawal
111
+ *
112
+ * @param {Transaction} tx - the transaction to be used to initialize the builder
113
+ * @returns {StakingDeactivateBuilder} - the initialized staking deactivate builder
114
+ */
115
+ getStakingDeactivateBuilder(tx) {
116
+ return this.initializeBuilder(tx, new StakingDeactivateBuilder(this._coinConfig));
117
+ }
118
+ /**
119
+ * Returns the builder to create a staking withdraw transaction.
120
+ * once the staking account reach 0 SOL it will not be traceable anymore by the network
121
+ *
122
+ * @see https://docs.solana.com/staking/stake-accounts#destroying-a-stake-account
123
+ *
124
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
125
+ * @returns {StakingWithdrawBuilder} - the initialized staking withdraw builder
126
+ */
127
+ getStakingWithdrawBuilder(tx) {
128
+ return this.initializeBuilder(tx, new StakingWithdrawBuilder(this._coinConfig));
129
+ }
130
+ /**
131
+ * Returns the builder to authorized staking account.
132
+ *
133
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
134
+ * @returns {StakingAuthorizeBuilder} - the initialized staking authorize builder
135
+ */
136
+ getStakingAuthorizeBuilder(tx) {
137
+ return this.initializeBuilder(tx, new StakingAuthorizeBuilder(this._coinConfig));
138
+ }
139
+ /**
140
+ * Returns the builder to delegate staking account.
141
+ *
142
+ * @param {Transaction} tx - the transaction to be used to delegate staking account
143
+ * @returns {StakingDelegateBuilder} - the staking delegate builder
144
+ */
145
+ getStakingDelegateBuilder(tx) {
146
+ return this.initializeBuilder(tx, new StakingDelegateBuilder(this._coinConfig));
147
+ }
148
+ /**
149
+ * Returns the raw message builder to authorized staking account.
150
+ *
151
+ * @param {Transaction} tx - the transaction to be used to intialize the builder
152
+ * @returns {StakingWithdrawBuilder} - the initialized staking authorize builder
153
+ */
154
+ getStakingRawMsgAuthorizeBuilder(tx) {
155
+ const builder = new StakingRawMsgAuthorizeBuilder(this._coinConfig);
156
+ if (tx) {
157
+ builder.initBuilder(tx);
158
+ }
159
+ return builder;
160
+ }
161
+ /**
162
+ * Returns the builder to create a create associated token account transaction.
163
+ */
164
+ getAtaInitializationBuilder(tx) {
165
+ return this.initializeBuilder(tx, new AtaInitializationBuilder(this._coinConfig));
166
+ }
167
+ /**
168
+ * Returns the builder to create a close associated token account transaction.
169
+ */
170
+ getCloseAtaInitializationBuilder(tx) {
171
+ return this.initializeBuilder(tx, new CloseAtaBuilder(this._coinConfig));
172
+ }
173
+ /**
174
+ * Returns the builder to recover tokens from a nested ATA (an ATA owned by another ATA).
175
+ */
176
+ getRecoverNestedAtaBuilder(tx) {
177
+ return this.initializeBuilder(tx, new RecoverNestedAtaBuilder(this._coinConfig));
178
+ }
179
+ /**
180
+ * Returns the builder to create transactions with custom Solana instructions.
181
+ */
182
+ getCustomInstructionBuilder(tx) {
183
+ return this.initializeBuilder(tx, new CustomInstructionBuilder(this._coinConfig));
184
+ }
185
+ /**
186
+ * Returns the v1 (SIMD-0296/0385) builder to create custom-instruction transactions.
187
+ *
188
+ * Assembles v1 transactions from a client-supplied envelope: feed each envelope
189
+ * instruction as a web3.js TransactionInstruction via addInstruction, set the fee
190
+ * payer via sender, optional durable nonce via nonce, and the v1 config via
191
+ * transactionConfig. The builder owns the AdvanceNonceAccount injection, the message
192
+ * compile, and the message-signer-order signature assembly. Built fresh each call —
193
+ * v1 transactions are always assembled from an envelope, never re-initialized from a
194
+ * parsed transaction.
195
+ */
196
+ getV1CustomInstructionBuilder() {
197
+ return new V1CustomInstructionBuilder(this._coinConfig);
198
+ }
199
+ /**
200
+ * Returns the builder to create Solana v1 (SIMD-0296/0385) native SOL
201
+ * transfers from structured params (sender + recipients/amounts).
202
+ *
203
+ * Server-side construction surface — the caller supplies fields, never
204
+ * instructions. Set the fee payer via sender, optional durable nonce via
205
+ * nonce, and the v1 config via transactionConfig.
206
+ */
207
+ getV1PaymentBuilder() {
208
+ return new V1PaymentBuilder(this._coinConfig);
209
+ }
210
+ /**
211
+ * Returns the builder to create Token-2022 confidential transfer transactions.
212
+ *
213
+ * Supports Phase 1a CT instructions: ConfigureAccount, ApplyPendingBalance,
214
+ * Deposit, Withdraw, Transfer, and all verify-proof instructions.
215
+ * Instruction builders are v0/v1-agnostic.
216
+ */
217
+ getConfidentialTransferBuilder(tx) {
218
+ return this.initializeBuilder(tx, new ConfidentialTransferBuilder(this._coinConfig));
219
+ }
220
+ /**
221
+ * Initialize the builder with the given transaction
222
+ *
223
+ * @param {Transaction | undefined} tx - the transaction used to initialize the builder
224
+ * @param {TransactionBuilder} builder - the builder to be initialized
225
+ * @returns {TransactionBuilder} the builder initialized
226
+ */
227
+ initializeBuilder(tx, builder) {
228
+ if (tx) {
229
+ builder.initBuilder(tx);
230
+ }
231
+ return builder;
232
+ }
233
+ /** Parse the transaction from a raw transaction
234
+ *
235
+ * @param {string} rawTransaction - the raw tx
236
+ * @returns {Transaction} parsed transaction
237
+ */
238
+ parseTransaction(rawTransaction) {
239
+ const tx = new Transaction(this._coinConfig);
240
+ tx.setUseTokenAddressTokenName(true);
241
+ tx.fromRawTransaction(rawTransaction);
242
+ return tx;
243
+ }
244
+ }
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFF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QUUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyIH0gZnJvbSAnLi9hdGFJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQ2xvc2VBdGFCdWlsZGVyIH0gZnJvbSAnLi9jbG9zZUF0YUJ1aWxkZXInO1xuaW1wb3J0IHsgQ29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9jb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgUmVjb3Zlck5lc3RlZEF0YUJ1aWxkZXIgfSBmcm9tICcuL3JlY292ZXJOZXN0ZWRBdGFCdWlsZGVyJztcbmltcG9ydCB7IEN1c3RvbUluc3RydWN0aW9uQnVpbGRlciB9IGZyb20gJy4vY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFYxQ3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyIH0gZnJvbSAnLi92MUN1c3RvbUluc3RydWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBWMVBheW1lbnRCdWlsZGVyIH0gZnJvbSAnLi92MVBheW1lbnRCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdBY3RpdmF0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdBdXRob3JpemVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyJztcbmltcG9ydCB7IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3Rva2VuVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXJWMiB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyVjInO1xuaW1wb3J0IHsgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIH0gZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9wZXIgYnVpbGRlciBmb3IgdGhlIGdpdmVuIGVuY29kZWQgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHsgc3RyaW5nfSByYXcgLSBFbmNvZGVkIHRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgZm9ybWF0XG4gICAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHwgU3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXIge1xuICAgIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICBjb25zdCB1bmlxdWVJbnB1dENvaW5zID0gdHguaW5wdXRzXG4gICAgICAgICAgICAubWFwKChpbnB1dCkgPT4gaW5wdXQuY29pbilcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvaW4sIGluZGV4LCBhcnIpID0+IGFyci5pbmRleE9mKGNvaW4pID09PSBpbmRleCk7XG4gICAgICAgICAgaWYgKHVuaXF1ZUlucHV0Q29pbnMuaW5jbHVkZXMoJ3NvbCcpIHx8IHVuaXF1ZUlucHV0Q29pbnMuaW5jbHVkZXMoJ3Rzb2wnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyVjIodHgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlblRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWFjdGl2YXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFraW5nV2l0aGRyYXdCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0YUluaXRpYWxpemF0aW9uQnVpbGRlcih0eCk7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBdXRob3JpemU6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQXV0aG9yaXplUmF3OlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlbGVnYXRlOlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5DbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQ6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xvc2VBdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Db25maWRlbnRpYWxUcmFuc2ZlcjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogV2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUb2tlblRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHRyYW5zZmVyIGJ1aWxkZXIgVjIgdG8gY3JlYXRlIGEgZnVuZHMgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFRyYW5zZmVyQnVpbGRlclYyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXJWMiB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUcmFuc2ZlckJ1aWxkZXJWMih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3Rha2luZyBidWlsZGVyIHRvIGNyZWF0ZSBhIHN0YWtpbmcgYWNjb3VudCBhbmQgYWxzbyBhIGRlbGVnYXRlIGluIG9uZSB0cmFuc2FjdGlvbi5cbiAgICogb25jZSB0aGUgdHggcmVhY2ggdGhlIG5ldHdvcmsgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJ5IGFjdGl2YXRlZCBvbiBuZXh0IGVwb2NoXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vY2x1c3Rlci9zdGFrZS1kZWxlZ2F0aW9uLWFuZC1yZXdhcmRzI3N0YWtlLXdhcm11cC1jb29sZG93bi13aXRoZHJhd2FsXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHRvIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSAtIHRoZSBpbml0aWFsaXplZCBzdGFraW5nIGFjdGl2YXRlIGJ1aWxkZXJcbiAgICovXG4gIGdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0FjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byBjcmVhdGUgYSBzdGFraW5nIGRlYWN0aXZhdGUgdHJhbnNhY3Rpb24uXG4gICAqIERlYWN0aXZhdGVkIGlzIHNldCBpbiB0aGUgY3VycmVudCBlcG9jaCArIGNvb2xkb3duXG4gICAqIFRoZSBhY2NvdW50J3Mgc3Rha2Ugd2lsbCByYW1wIGRvd24gdG8gemVybyBieSB0aGF0IGVwb2NoLCBhbmQgdGhlIGxhbXBvcnRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciB3aXRoZHJhd2FsLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2NsdXN0ZXIvc3Rha2UtZGVsZWdhdGlvbi1hbmQtcmV3YXJkcyNzdGFrZS13YXJtdXAtY29vbGRvd24td2l0aGRyYXdhbFxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB0byBiZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gLSB0aGUgaW5pdGlhbGl6ZWQgc3Rha2luZyBkZWFjdGl2YXRlIGJ1aWxkZXJcbiAgICovXG4gIGdldFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byBjcmVhdGUgYSBzdGFraW5nIHdpdGhkcmF3IHRyYW5zYWN0aW9uLlxuICAgKiBvbmNlIHRoZSBzdGFraW5nIGFjY291bnQgcmVhY2ggMCBTT0wgaXQgd2lsbCBub3QgYmUgdHJhY2VhYmxlIGFueW1vcmUgYnkgdGhlIG5ldHdvcmtcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2Rlc3Ryb3lpbmctYS1zdGFrZS1hY2NvdW50XG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHRvIGJlIHVzZWQgdG8gaW50aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEByZXR1cm5zIHtTdGFraW5nV2l0aGRyYXdCdWlsZGVyfSAtIHRoZSBpbml0aWFsaXplZCBzdGFraW5nIHdpdGhkcmF3IGJ1aWxkZXJcbiAgICovXG4gIGdldFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ1dpdGhkcmF3QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byBhdXRob3JpemVkIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdG8gYmUgdXNlZCB0byBpbnRpYWxpemUgdGhlIGJ1aWxkZXJcbiAgICogQHJldHVybnMge1N0YWtpbmdBdXRob3JpemVCdWlsZGVyfSAtIHRoZSBpbml0aWFsaXplZCBzdGFraW5nIGF1dGhvcml6ZSBidWlsZGVyXG4gICAqL1xuICBnZXRTdGFraW5nQXV0aG9yaXplQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgU3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBidWlsZGVyIHRvIGRlbGVnYXRlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdG8gYmUgdXNlZCB0byBkZWxlZ2F0ZSBzdGFraW5nIGFjY291bnRcbiAgICogQHJldHVybnMge1N0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXJ9IC0gdGhlIHN0YWtpbmcgZGVsZWdhdGUgYnVpbGRlclxuICAgKi9cbiAgZ2V0U3Rha2luZ0RlbGVnYXRlQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU3Rha2luZ0RlbGVnYXRlQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBTdGFraW5nRGVsZWdhdGVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByYXcgbWVzc2FnZSBidWlsZGVyIHRvIGF1dGhvcml6ZWQgc3Rha2luZyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCAtIHRoZSB0cmFuc2FjdGlvbiB0byBiZSB1c2VkIHRvIGludGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcmV0dXJucyB7U3Rha2luZ1dpdGhkcmF3QnVpbGRlcn0gLSB0aGUgaW5pdGlhbGl6ZWQgc3Rha2luZyBhdXRob3JpemUgYnVpbGRlclxuICAgKi9cbiAgZ2V0U3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFN0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IFN0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGJ1aWxkZXIgdG8gY3JlYXRlIGEgY3JlYXRlIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGdldEF0YUluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogQXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEF0YUluaXRpYWxpemF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byBjcmVhdGUgYSBjbG9zZSBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBnZXRDbG9zZUF0YUluaXRpYWxpemF0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogQ2xvc2VBdGFCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IENsb3NlQXRhQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byByZWNvdmVyIHRva2VucyBmcm9tIGEgbmVzdGVkIEFUQSAoYW4gQVRBIG93bmVkIGJ5IGFub3RoZXIgQVRBKS5cbiAgICovXG4gIGdldFJlY292ZXJOZXN0ZWRBdGFCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBSZWNvdmVyTmVzdGVkQXRhQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBSZWNvdmVyTmVzdGVkQXRhQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYnVpbGRlciB0byBjcmVhdGUgdHJhbnNhY3Rpb25zIHdpdGggY3VzdG9tIFNvbGFuYSBpbnN0cnVjdGlvbnMuXG4gICAqL1xuICBnZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEN1c3RvbUluc3RydWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHYxIChTSU1ELTAyOTYvMDM4NSkgYnVpbGRlciB0byBjcmVhdGUgY3VzdG9tLWluc3RydWN0aW9uIHRyYW5zYWN0aW9ucy5cbiAgICpcbiAgICogQXNzZW1ibGVzIHYxIHRyYW5zYWN0aW9ucyBmcm9tIGEgY2xpZW50LXN1cHBsaWVkIGVudmVsb3BlOiBmZWVkIGVhY2ggZW52ZWxvcGVcbiAgICogaW5zdHJ1Y3Rpb24gYXMgYSB3ZWIzLmpzIFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24gdmlhIGFkZEluc3RydWN0aW9uLCBzZXQgdGhlIGZlZVxuICAgKiBwYXllciB2aWEgc2VuZGVyLCBvcHRpb25hbCBkdXJhYmxlIG5vbmNlIHZpYSBub25jZSwgYW5kIHRoZSB2MSBjb25maWcgdmlhXG4gICAqIHRyYW5zYWN0aW9uQ29uZmlnLiBUaGUgYnVpbGRlciBvd25zIHRoZSBBZHZhbmNlTm9uY2VBY2NvdW50IGluamVjdGlvbiwgdGhlIG1lc3NhZ2VcbiAgICogY29tcGlsZSwgYW5kIHRoZSBtZXNzYWdlLXNpZ25lci1vcmRlciBzaWduYXR1cmUgYXNzZW1ibHkuIEJ1aWx0IGZyZXNoIGVhY2ggY2FsbCDigJRcbiAgICogdjEgdHJhbnNhY3Rpb25zIGFyZSBhbHdheXMgYXNzZW1ibGVkIGZyb20gYW4gZW52ZWxvcGUsIG5ldmVyIHJlLWluaXRpYWxpemVkIGZyb20gYVxuICAgKiBwYXJzZWQgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBnZXRWMUN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpOiBWMUN1c3RvbUluc3RydWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBWMUN1c3RvbUluc3RydWN0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBidWlsZGVyIHRvIGNyZWF0ZSBTb2xhbmEgdjEgKFNJTUQtMDI5Ni8wMzg1KSBuYXRpdmUgU09MXG4gICAqIHRyYW5zZmVycyBmcm9tIHN0cnVjdHVyZWQgcGFyYW1zIChzZW5kZXIgKyByZWNpcGllbnRzL2Ftb3VudHMpLlxuICAgKlxuICAgKiBTZXJ2ZXItc2lkZSBjb25zdHJ1Y3Rpb24gc3VyZmFjZSDigJQgdGhlIGNhbGxlciBzdXBwbGllcyBmaWVsZHMsIG5ldmVyXG4gICAqIGluc3RydWN0aW9ucy4gU2V0IHRoZSBmZWUgcGF5ZXIgdmlhIHNlbmRlciwgb3B0aW9uYWwgZHVyYWJsZSBub25jZSB2aWFcbiAgICogbm9uY2UsIGFuZCB0aGUgdjEgY29uZmlnIHZpYSB0cmFuc2FjdGlvbkNvbmZpZy5cbiAgICovXG4gIGdldFYxUGF5bWVudEJ1aWxkZXIoKTogVjFQYXltZW50QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBWMVBheW1lbnRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGJ1aWxkZXIgdG8gY3JlYXRlIFRva2VuLTIwMjIgY29uZmlkZW50aWFsIHRyYW5zZmVyIHRyYW5zYWN0aW9ucy5cbiAgICpcbiAgICogU3VwcG9ydHMgUGhhc2UgMWEgQ1QgaW5zdHJ1Y3Rpb25zOiBDb25maWd1cmVBY2NvdW50LCBBcHBseVBlbmRpbmdCYWxhbmNlLFxuICAgKiBEZXBvc2l0LCBXaXRoZHJhdywgVHJhbnNmZXIsIGFuZCBhbGwgdmVyaWZ5LXByb29mIGluc3RydWN0aW9ucy5cbiAgICogSW5zdHJ1Y3Rpb24gYnVpbGRlcnMgYXJlIHYwL3YxLWFnbm9zdGljLlxuICAgKi9cbiAgZ2V0Q29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIFBhcnNlIHRoZSB0cmFuc2FjdGlvbiBmcm9tIGEgcmF3IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIHRoZSByYXcgdHhcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9ufSBwYXJzZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgcGFyc2VUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHR4LnNldFVzZVRva2VuQWRkcmVzc1Rva2VuTmFtZSh0cnVlKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiB0eDtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { TransactionBuilder } from './transactionBuilder';
4
+ import { Transaction } from './transaction';
5
+ export interface SendParams {
6
+ address: string;
7
+ amount: string;
8
+ }
9
+ export declare class TransferBuilder extends TransactionBuilder {
10
+ private _sendParams;
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ protected get transactionType(): TransactionType;
13
+ initBuilder(tx: Transaction): void;
14
+ /**
15
+ * Set a transfer
16
+ *
17
+ * @param {string} fromAddress - the sender address
18
+ * @param {string} toAddress - the receiver address
19
+ * @param {string} amount - the amount sent
20
+ * @returns {TransactionBuilder} This transaction builder
21
+ */
22
+ send({ address, amount }: SendParams): this;
23
+ /** @inheritdoc */
24
+ protected buildImplementation(): Promise<Transaction>;
25
+ }
26
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,OAAO,CAAC,WAAW,CAAoB;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,IAAI;IAc3C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAiB5D"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,OAAO,CAAC,WAAW,CAAoB;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,IAAI;IAc3C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CA4B5D"}
@@ -0,0 +1,74 @@
1
+ import { BuildTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { TransactionBuilder } from './transactionBuilder';
3
+ import { isValidAmount, validateAddress } from './utils';
4
+ import { InstructionBuilderTypes } from './constants';
5
+ import assert from 'assert';
6
+ export class TransferBuilder extends TransactionBuilder {
7
+ constructor(_coinConfig) {
8
+ super(_coinConfig);
9
+ this._sendParams = [];
10
+ }
11
+ get transactionType() {
12
+ return TransactionType.Send;
13
+ }
14
+ initBuilder(tx) {
15
+ super.initBuilder(tx);
16
+ for (const instruction of this._instructionsData) {
17
+ if (instruction.type === InstructionBuilderTypes.Transfer) {
18
+ const transferInstruction = instruction;
19
+ this.sender(transferInstruction.params.fromAddress);
20
+ this.send({
21
+ address: transferInstruction.params.toAddress,
22
+ amount: transferInstruction.params.amount,
23
+ });
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * Set a transfer
29
+ *
30
+ * @param {string} fromAddress - the sender address
31
+ * @param {string} toAddress - the receiver address
32
+ * @param {string} amount - the amount sent
33
+ * @returns {TransactionBuilder} This transaction builder
34
+ */
35
+ send({ address, amount }) {
36
+ validateAddress(address, 'address');
37
+ if (!amount || !isValidAmount(amount)) {
38
+ throw new BuildTransactionError('Invalid or missing amount, got: ' + amount);
39
+ }
40
+ if (BigInt(amount) > BigInt(Number.MAX_SAFE_INTEGER)) {
41
+ throw new BuildTransactionError(`input amount ${amount} exceeds max safe int ${Number.MAX_SAFE_INTEGER}`);
42
+ }
43
+ this._sendParams.push({ address, amount });
44
+ return this;
45
+ }
46
+ /** @inheritdoc */
47
+ async buildImplementation() {
48
+ assert(this._sender, 'Sender must be set before building the transaction');
49
+ const transferData = this._sendParams.map((sendParams) => {
50
+ return {
51
+ type: InstructionBuilderTypes.Transfer,
52
+ params: {
53
+ fromAddress: this._sender,
54
+ toAddress: sendParams.address,
55
+ amount: sendParams.amount,
56
+ },
57
+ };
58
+ });
59
+ // Prepend the priority fee instruction (CHALO-485) so native SOL transfers can be
60
+ // prioritized during network congestion. Omitted when no priority fee is set (0).
61
+ this._instructionsData =
62
+ this._priorityFee && this._priorityFee !== Number(0)
63
+ ? [
64
+ {
65
+ type: InstructionBuilderTypes.SetPriorityFee,
66
+ params: { fee: this._priorityFee },
67
+ },
68
+ ...transferData,
69
+ ]
70
+ : transferData;
71
+ return await super.buildImplementation();
72
+ }
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd0RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFPNUIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsa0JBQWtCO0lBR3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSGIsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO0lBSXZDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxRCxNQUFNLG1CQUFtQixHQUFhLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsT0FBTyxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxTQUFTO29CQUM3QyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU07aUJBQzFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFjO1FBQ2xDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxrQ0FBa0MsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLHFCQUFxQixDQUFDLGdCQUFnQixNQUFNLHlCQUF5QixNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUUzRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQXNCLEVBQVksRUFBRTtZQUM3RSxPQUFPO2dCQUNMLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxRQUFRO2dCQUN0QyxNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUN6QixTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU87b0JBQzdCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtpQkFDMUI7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxrRkFBa0Y7UUFDbEYsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELENBQUMsQ0FBQztvQkFDRTt3QkFDRSxJQUFJLEVBQUUsdUJBQXVCLENBQUMsY0FBYzt3QkFDNUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7cUJBQ25DO29CQUNELEdBQUcsWUFBWTtpQkFDaEI7Z0JBQ0gsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUVuQixPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFtb3VudCwgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRyYW5zZmVyIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZXhwb3J0IGludGVyZmFjZSBTZW5kUGFyYW1zIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3NlbmRQYXJhbXM6IFNlbmRQYXJhbXNbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuXG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVHJhbnNmZXIpIHtcbiAgICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbjogVHJhbnNmZXIgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5zZW5kZXIodHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMuZnJvbUFkZHJlc3MpO1xuICAgICAgICB0aGlzLnNlbmQoe1xuICAgICAgICAgIGFkZHJlc3M6IHRyYW5zZmVySW5zdHJ1Y3Rpb24ucGFyYW1zLnRvQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHRyYW5zZmVySW5zdHJ1Y3Rpb24ucGFyYW1zLmFtb3VudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBTZXQgYSB0cmFuc2ZlclxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZnJvbUFkZHJlc3MgLSB0aGUgc2VuZGVyIGFkZHJlc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvQWRkcmVzcyAtIHRoZSByZWNlaXZlciBhZGRyZXNzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSB0aGUgYW1vdW50IHNlbnRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kKHsgYWRkcmVzcywgYW1vdW50IH06IFNlbmRQYXJhbXMpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzcywgJ2FkZHJlc3MnKTtcbiAgICBpZiAoIWFtb3VudCB8fCAhaXNWYWxpZEFtb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYW1vdW50LCBnb3Q6ICcgKyBhbW91bnQpO1xuICAgIH1cbiAgICBpZiAoQmlnSW50KGFtb3VudCkgPiBCaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBpbnB1dCBhbW91bnQgJHthbW91bnR9IGV4Y2VlZHMgbWF4IHNhZmUgaW50ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2VuZFBhcmFtcy5wdXNoKHsgYWRkcmVzcywgYW1vdW50IH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsICdTZW5kZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuXG4gICAgY29uc3QgdHJhbnNmZXJEYXRhID0gdGhpcy5fc2VuZFBhcmFtcy5tYXAoKHNlbmRQYXJhbXM6IFNlbmRQYXJhbXMpOiBUcmFuc2ZlciA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5UcmFuc2ZlcixcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICB0b0FkZHJlc3M6IHNlbmRQYXJhbXMuYWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IHNlbmRQYXJhbXMuYW1vdW50LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyBQcmVwZW5kIHRoZSBwcmlvcml0eSBmZWUgaW5zdHJ1Y3Rpb24gKENIQUxPLTQ4NSkgc28gbmF0aXZlIFNPTCB0cmFuc2ZlcnMgY2FuIGJlXG4gICAgLy8gcHJpb3JpdGl6ZWQgZHVyaW5nIG5ldHdvcmsgY29uZ2VzdGlvbi4gT21pdHRlZCB3aGVuIG5vIHByaW9yaXR5IGZlZSBpcyBzZXQgKDApLlxuICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPVxuICAgICAgdGhpcy5fcHJpb3JpdHlGZWUgJiYgdGhpcy5fcHJpb3JpdHlGZWUgIT09IE51bWJlcigwKVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU2V0UHJpb3JpdHlGZWUsXG4gICAgICAgICAgICAgIHBhcmFtczogeyBmZWU6IHRoaXMuX3ByaW9yaXR5RmVlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4udHJhbnNmZXJEYXRhLFxuICAgICAgICAgIF1cbiAgICAgICAgOiB0cmFuc2ZlckRhdGE7XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { TransactionBuilder } from './transactionBuilder';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import { ExtraAccountMeta, PermissionlessThawIdempotent, TokenAssociateRecipient } from './iface';
6
+ export interface SendParams {
7
+ address: string;
8
+ amount: string;
9
+ tokenName?: string;
10
+ tokenAddress?: string;
11
+ programId?: string;
12
+ decimalPlaces?: number;
13
+ }
14
+ export declare class TransferBuilderV2 extends TransactionBuilder {
15
+ private _sendParams;
16
+ private _createAtaParams;
17
+ private _transferHookAccounts?;
18
+ private _permissionlessThaw?;
19
+ constructor(_coinConfig: Readonly<CoinConfig>);
20
+ /**
21
+ * Set the resolved sRFC-37 Token ACL permissionless-thaw params for this transfer.
22
+ *
23
+ * These must be resolved live by the caller (e.g. via `Sol.resolvePermissionlessThaw`) since
24
+ * builders remain offline and never perform RPC. When set, the built transaction bundles a
25
+ * `PermissionlessThawIdempotent` instruction after any ATA creation and before the transfer, so
26
+ * a freshly created (frozen) allowlist/blocklist token account is thawed atomically with the
27
+ * transfer — all-or-nothing.
28
+ *
29
+ * @param {PermissionlessThawIdempotent['params']} params - resolved thaw params
30
+ * @returns {TransferBuilderV2} This transaction builder
31
+ */
32
+ permissionlessThaw(params: PermissionlessThawIdempotent['params']): this;
33
+ /**
34
+ * Set the resolved Token-2022 Transfer Hook extra account metas for this transfer.
35
+ *
36
+ * These must be resolved live by the caller (e.g. via `Sol.resolveTransferHookAccounts`)
37
+ * since builders remain offline and never perform RPC. The order is significant and
38
+ * must match the hook's ExtraAccountMetaList.
39
+ *
40
+ * @param {ExtraAccountMeta[]} metas - resolved extra account metas, in hook order
41
+ * @returns {TransferBuilderV2} This transaction builder
42
+ */
43
+ transferHookAccounts(metas: ExtraAccountMeta[]): this;
44
+ protected get transactionType(): TransactionType;
45
+ initBuilder(tx: Transaction): void;
46
+ /**
47
+ * Set a feePayer
48
+ * @param payerAddress
49
+ */
50
+ feePayer(payerAddress: string): this;
51
+ /**
52
+ * Set a transfer
53
+ *
54
+ * @param {SendParams} sendParams - sendParams
55
+ * @returns {TransactionBuilder} This transaction builder
56
+ */
57
+ send(sendParams: SendParams): this;
58
+ /**
59
+ *
60
+ * @param {TokenAssociateRecipient} recipient - recipient of the associated token account creation
61
+ * @param {string} recipient.ownerAddress - owner of the associated token account
62
+ * @param {string} recipient.tokenName - name of the token that is intended to associate
63
+ * @returns {TransactionBuilder} This transaction builder
64
+ */
65
+ createAssociatedTokenAccount(recipient: TokenAssociateRecipient): this;
66
+ /** @inheritdoc */
67
+ protected buildImplementation(): Promise<Transaction>;
68
+ }
69
+ //# sourceMappingURL=transferBuilderV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilderV2.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilderV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAEL,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EAIxB,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,qBAAa,iBAAkB,SAAQ,kBAAkB;IACvD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,qBAAqB,CAAC,CAAqB;IACnD,OAAO,CAAC,mBAAmB,CAAC,CAAyC;gBACzD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKxE;;;;;;;;;OASG;IACH,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAKrD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA8BlC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMpC;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAiBlC;;;;;;OAMG;IACH,4BAA4B,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI;IAmBtE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAwH5D"}