@bitgo-beta/sdk-coin-sol 7.6.4-beta.77 → 7.6.4-beta.770

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 (541) 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 +538 -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 +1119 -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 +143 -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/solToken.d.ts.map +1 -0
  185. package/dist/cjs/test/unit/solToken.js +37 -0
  186. package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
  187. package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
  188. package/dist/cjs/test/unit/token2022Resolve.js +252 -0
  189. package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
  190. package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
  191. package/dist/cjs/test/unit/tokenExtensions.js +73 -0
  192. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  193. package/dist/cjs/test/unit/transaction.js +1129 -0
  194. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
  195. package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
  196. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
  197. package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +508 -0
  198. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts +2 -0
  199. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
  200. package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +343 -0
  201. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts +2 -0
  202. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts.map +1 -0
  203. package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.js +346 -0
  204. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts +2 -0
  205. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts.map +1 -0
  206. package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.js +124 -0
  207. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
  208. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
  209. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +922 -0
  210. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts +2 -0
  211. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts.map +1 -0
  212. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +194 -0
  213. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts +2 -0
  214. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts.map +1 -0
  215. package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +168 -0
  216. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
  217. package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +724 -0
  218. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
  219. package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
  220. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
  221. package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
  222. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
  223. package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
  224. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
  225. package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
  226. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  227. package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
  228. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  229. package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +926 -0
  230. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  231. package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
  232. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  233. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +302 -0
  234. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
  235. package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +910 -0
  236. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.d.ts +2 -0
  237. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.d.ts.map +1 -0
  238. package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.js +138 -0
  239. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts +2 -0
  240. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts.map +1 -0
  241. package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.js +331 -0
  242. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
  243. package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
  244. package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
  245. package/dist/cjs/test/unit/utils.js +663 -0
  246. package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
  247. package/dist/cjs/test/unit/versionedTransaction.js +207 -0
  248. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  249. package/dist/esm/bigint-buffer-guard.d.ts +1 -0
  250. package/dist/esm/index.d.ts +7 -0
  251. package/dist/esm/index.js +7 -0
  252. package/dist/esm/lib/ataInitializationBuilder.d.ts +58 -0
  253. package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
  254. package/dist/esm/lib/ataInitializationBuilder.js +191 -0
  255. package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
  256. package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
  257. package/dist/esm/lib/closeAtaBuilder.js +155 -0
  258. package/dist/esm/lib/confidentialTransferBuilder.d.ts +136 -0
  259. package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
  260. package/dist/esm/lib/confidentialTransferBuilder.js +368 -0
  261. package/dist/esm/lib/constants.d.ts +235 -0
  262. package/dist/esm/lib/constants.d.ts.map +1 -0
  263. package/dist/esm/lib/constants.js +274 -0
  264. package/dist/esm/lib/customInstructionBuilder.d.ts +83 -0
  265. package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +1 -1
  266. package/dist/esm/lib/customInstructionBuilder.js +385 -0
  267. package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
  268. package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
  269. package/dist/esm/lib/explainTransactionWasm.js +301 -0
  270. package/dist/esm/lib/iface.d.ts +538 -0
  271. package/dist/esm/lib/iface.d.ts.map +1 -0
  272. package/dist/esm/lib/iface.js +3 -0
  273. package/dist/esm/lib/index.d.ts +31 -0
  274. package/dist/esm/lib/index.d.ts.map +1 -0
  275. package/dist/esm/lib/index.js +31 -0
  276. package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
  277. package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
  278. package/dist/esm/lib/instructionParamsFactory.js +1276 -0
  279. package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
  280. package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
  281. package/dist/esm/lib/keyPair.d.ts +32 -0
  282. package/dist/esm/lib/keyPair.d.ts.map +1 -0
  283. package/dist/esm/lib/keyPair.js +75 -0
  284. package/dist/esm/lib/messages/index.d.ts +2 -0
  285. package/dist/esm/lib/messages/index.js +2 -0
  286. package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
  287. package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
  288. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
  289. package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
  290. package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
  291. package/dist/esm/lib/scaledUiAmount.d.ts +30 -0
  292. package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
  293. package/dist/esm/lib/scaledUiAmount.js +108 -0
  294. package/dist/esm/lib/serialization/codecs/v1/config.d.ts +21 -0
  295. package/dist/esm/lib/serialization/codecs/v1/config.d.ts.map +1 -0
  296. package/dist/esm/lib/serialization/codecs/v1/config.js +30 -0
  297. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts +14 -0
  298. package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
  299. package/dist/esm/lib/serialization/codecs/v1/instruction.js +29 -0
  300. package/dist/esm/lib/serialization/codecs/v1/message.d.ts +27 -0
  301. package/dist/esm/lib/serialization/codecs/v1/message.d.ts.map +1 -0
  302. package/dist/esm/lib/serialization/codecs/v1/message.js +188 -0
  303. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts +36 -0
  304. package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
  305. package/dist/esm/lib/serialization/compileTransactionMessage.js +208 -0
  306. package/dist/esm/lib/serialization/index.d.ts +5 -0
  307. package/dist/esm/lib/serialization/index.d.ts.map +1 -0
  308. package/dist/esm/lib/serialization/index.js +5 -0
  309. package/dist/esm/lib/serialization/parseWireTransaction.d.ts +9 -0
  310. package/dist/esm/lib/serialization/parseWireTransaction.d.ts.map +1 -0
  311. package/dist/esm/lib/serialization/parseWireTransaction.js +50 -0
  312. package/dist/esm/lib/serialization/wire-transaction.d.ts +14 -0
  313. package/dist/esm/lib/serialization/wire-transaction.d.ts.map +1 -0
  314. package/dist/esm/lib/serialization/wire-transaction.js +48 -0
  315. package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
  316. package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
  317. package/dist/esm/lib/solInstructionFactory.js +1113 -0
  318. package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
  319. package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +1 -1
  320. package/dist/esm/lib/stakingActivateBuilder.js +122 -0
  321. package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
  322. package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
  323. package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
  324. package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  325. package/dist/esm/lib/stakingDeactivateBuilder.js +207 -0
  326. package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
  327. package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +1 -1
  328. package/dist/esm/lib/stakingDelegateBuilder.js +119 -0
  329. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  330. package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
  331. package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
  332. package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +1 -1
  333. package/dist/esm/lib/stakingWithdrawBuilder.js +80 -0
  334. package/dist/esm/lib/token2022Resolve.d.ts +106 -0
  335. package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
  336. package/dist/esm/lib/token2022Resolve.js +194 -0
  337. package/dist/esm/lib/tokenExtensions.d.ts +26 -0
  338. package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
  339. package/dist/esm/lib/tokenExtensions.js +103 -0
  340. package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
  341. package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
  342. package/dist/esm/lib/tokenTransferBuilder.js +230 -0
  343. package/dist/esm/lib/transaction.d.ts +148 -0
  344. package/dist/esm/lib/transaction.d.ts.map +1 -0
  345. package/dist/esm/lib/transaction.js +754 -0
  346. package/dist/esm/lib/transactionBuilder.d.ts +169 -0
  347. package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
  348. package/dist/esm/lib/transactionBuilder.js +455 -0
  349. package/dist/esm/lib/transactionBuilderFactory.d.ts +152 -0
  350. package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
  351. package/dist/esm/lib/transactionBuilderFactory.js +245 -0
  352. package/dist/esm/lib/transferBuilder.d.ts +26 -0
  353. package/dist/{src → esm}/lib/transferBuilder.d.ts.map +1 -1
  354. package/dist/esm/lib/transferBuilder.js +74 -0
  355. package/dist/esm/lib/transferBuilderV2.d.ts +69 -0
  356. package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
  357. package/dist/esm/lib/transferBuilderV2.js +245 -0
  358. package/dist/esm/lib/utils.d.ts +216 -0
  359. package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
  360. package/dist/esm/lib/utils.js +642 -0
  361. package/dist/esm/lib/v1CustomInstructionBuilder.d.ts +29 -0
  362. package/dist/esm/lib/v1CustomInstructionBuilder.d.ts.map +1 -0
  363. package/dist/esm/lib/v1CustomInstructionBuilder.js +32 -0
  364. package/dist/esm/lib/v1PaymentBuilder.d.ts +36 -0
  365. package/dist/esm/lib/v1PaymentBuilder.d.ts.map +1 -0
  366. package/dist/esm/lib/v1PaymentBuilder.js +63 -0
  367. package/dist/esm/lib/v1TransactionBuilder.d.ts +253 -0
  368. package/dist/esm/lib/v1TransactionBuilder.d.ts.map +1 -0
  369. package/dist/esm/lib/v1TransactionBuilder.js +591 -0
  370. package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
  371. package/dist/esm/lib/walletInitializationBuilder.js +64 -0
  372. package/dist/esm/register.d.ts +5 -0
  373. package/dist/esm/register.d.ts.map +1 -0
  374. package/dist/esm/register.js +24 -0
  375. package/dist/esm/sol.d.ts +351 -0
  376. package/dist/esm/sol.d.ts.map +1 -0
  377. package/dist/esm/sol.js +1666 -0
  378. package/dist/esm/solToken.d.ts +44 -0
  379. package/dist/esm/solToken.d.ts.map +1 -0
  380. package/dist/esm/solToken.js +75 -0
  381. package/dist/esm/tsol.d.ts +11 -0
  382. package/dist/esm/tsol.js +20 -0
  383. package/package.json +37 -17
  384. package/dist/src/config/token2022StaticConfig.d.ts +0 -3
  385. package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
  386. package/dist/src/config/token2022StaticConfig.js +0 -50
  387. package/dist/src/lib/ataInitializationBuilder.d.ts.map +0 -1
  388. package/dist/src/lib/ataInitializationBuilder.js +0 -196
  389. package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
  390. package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
  391. package/dist/src/lib/closeAtaBuilder.js +0 -69
  392. package/dist/src/lib/constants.d.ts.map +0 -1
  393. package/dist/src/lib/constants.js +0 -171
  394. package/dist/src/lib/customInstructionBuilder.js +0 -289
  395. package/dist/src/lib/iface.d.ts +0 -244
  396. package/dist/src/lib/iface.d.ts.map +0 -1
  397. package/dist/src/lib/iface.js +0 -7
  398. package/dist/src/lib/index.d.ts.map +0 -1
  399. package/dist/src/lib/index.js +0 -77
  400. package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
  401. package/dist/src/lib/instructionParamsFactory.js +0 -1036
  402. package/dist/src/lib/jitoStakePoolOperations.js +0 -200
  403. package/dist/src/lib/keyPair.d.ts.map +0 -1
  404. package/dist/src/lib/keyPair.js +0 -63
  405. package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
  406. package/dist/src/lib/solInstructionFactory.js +0 -572
  407. package/dist/src/lib/stakingActivateBuilder.js +0 -120
  408. package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
  409. package/dist/src/lib/stakingDeactivateBuilder.js +0 -208
  410. package/dist/src/lib/stakingDelegateBuilder.js +0 -120
  411. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
  412. package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
  413. package/dist/src/lib/token2022Config.d.ts +0 -44
  414. package/dist/src/lib/token2022Config.d.ts.map +0 -1
  415. package/dist/src/lib/token2022Config.js +0 -27
  416. package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
  417. package/dist/src/lib/tokenTransferBuilder.js +0 -188
  418. package/dist/src/lib/transaction.d.ts.map +0 -1
  419. package/dist/src/lib/transaction.js +0 -595
  420. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  421. package/dist/src/lib/transactionBuilder.js +0 -380
  422. package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
  423. package/dist/src/lib/transactionBuilderFactory.js +0 -202
  424. package/dist/src/lib/transferBuilder.js +0 -70
  425. package/dist/src/lib/transferBuilderV2.d.ts +0 -43
  426. package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
  427. package/dist/src/lib/transferBuilderV2.js +0 -210
  428. package/dist/src/lib/utils.js +0 -589
  429. package/dist/src/lib/walletInitializationBuilder.js +0 -71
  430. package/dist/src/register.d.ts +0 -3
  431. package/dist/src/register.d.ts.map +0 -1
  432. package/dist/src/register.js +0 -15
  433. package/dist/src/sol.d.ts.map +0 -1
  434. package/dist/src/sol.js +0 -1324
  435. package/dist/src/solToken.d.ts.map +0 -1
  436. package/dist/src/solToken.js +0 -69
  437. package/dist/src/tsol.js +0 -24
  438. package/dist/test/fixtures/sol.js +0 -1433
  439. package/dist/test/resources/sol.d.ts.map +0 -1
  440. package/dist/test/resources/sol.js +0 -320
  441. package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
  442. package/dist/test/unit/fixtures/solBackupKey.js +0 -8
  443. package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
  444. package/dist/test/unit/getBuilderFactory.js +0 -10
  445. package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
  446. package/dist/test/unit/instructionParamsFactory.js +0 -412
  447. package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
  448. package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
  449. package/dist/test/unit/keyPair.js +0 -177
  450. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  451. package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
  452. package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
  453. package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
  454. package/dist/test/unit/sol.js +0 -3180
  455. package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
  456. package/dist/test/unit/solInstructionFactory.js +0 -454
  457. package/dist/test/unit/solToken.d.ts.map +0 -1
  458. package/dist/test/unit/solToken.js +0 -31
  459. package/dist/test/unit/transaction.d.ts.map +0 -1
  460. package/dist/test/unit/transaction.js +0 -983
  461. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
  462. package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
  463. package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
  464. package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
  465. package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
  466. package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
  467. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
  468. package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
  469. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
  470. package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
  471. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
  472. package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
  473. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
  474. package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
  475. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
  476. package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
  477. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
  478. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
  479. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
  480. package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
  481. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
  482. package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
  483. package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
  484. package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
  485. package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
  486. package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
  487. package/dist/test/unit/utils.js +0 -517
  488. package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
  489. package/dist/test/unit/versionedTransaction.js +0 -207
  490. package/dist/tsconfig.tsbuildinfo +0 -1
  491. /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
  492. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  493. /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
  494. /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
  495. /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
  496. /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
  497. /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
  498. /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
  499. /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
  500. /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  501. /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
  502. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  503. /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
  504. /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
  505. /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
  506. /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
  507. /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
  508. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
  509. /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
  510. /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
  511. /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
  512. /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
  513. /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
  514. /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
  515. /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
  516. /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
  517. /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
  518. /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
  519. /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
  520. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
  521. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
  522. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
  523. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
  524. /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
  525. /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
  526. /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
  527. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
  528. /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
  529. /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
  530. /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
  531. /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
  532. /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
  533. /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
  534. /package/dist/{src → esm}/index.d.ts.map +0 -0
  535. /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
  536. /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
  537. /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
  538. /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
  539. /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
  540. /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
  541. /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":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,6BAA6B;IA4CrE,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,uBAAuB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAI/D;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,iBAAiB;IAIzD;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE;;;;;;;;;OASG;IACH,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,uBAAuB;IAGrE;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,sBAAsB;IAInE;;;;;OAKG;IACH,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,6BAA6B;IAQjF;;OAEG;IACH,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE;;OAEG;IACH,gCAAgC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAInE;;OAEG;IACH,0BAA0B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,uBAAuB;IAIrE;;OAEG;IACH,2BAA2B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,wBAAwB;IAIvE;;;;;;;;;;OAUG;IACH,6BAA6B,IAAI,0BAA0B;IAI3D;;;;;;;OAOG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAI7E;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -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"}