@bitgo/account-lib 2.20.0-rc.3 → 2.20.0-rc.32

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 (592) hide show
  1. package/.mocharc.js +1 -1
  2. package/CHANGELOG.md +311 -0
  3. package/dist/resources/README.md +8 -2
  4. package/dist/resources/trx/protobuf/tron.js +5 -1
  5. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +1 -2
  6. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -1
  7. package/dist/src/coin/dot/addressInitializationBuilder.js +60 -83
  8. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +1 -1
  9. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
  10. package/dist/src/coin/dot/batchTransactionBuilder.js +55 -78
  11. package/dist/src/coin/dot/claimBuilder.d.ts +1 -2
  12. package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -1
  13. package/dist/src/coin/dot/claimBuilder.js +49 -69
  14. package/dist/src/coin/dot/errors.d.ts +1 -1
  15. package/dist/src/coin/dot/errors.d.ts.map +1 -1
  16. package/dist/src/coin/dot/errors.js +12 -33
  17. package/dist/src/coin/dot/iface.d.ts +1 -2
  18. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  19. package/dist/src/coin/dot/iface.js +1 -1
  20. package/dist/src/coin/dot/index.js +3 -3
  21. package/dist/src/coin/dot/keyPair.d.ts +2 -3
  22. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  23. package/dist/src/coin/dot/keyPair.js +34 -56
  24. package/dist/src/coin/dot/singletonRegistry.js +6 -9
  25. package/dist/src/coin/dot/stakingBuilder.d.ts +1 -2
  26. package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -1
  27. package/dist/src/coin/dot/stakingBuilder.js +55 -73
  28. package/dist/src/coin/dot/transaction.d.ts +1 -2
  29. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  30. package/dist/src/coin/dot/transaction.js +154 -170
  31. package/dist/src/coin/dot/transactionBuilder.d.ts +2 -3
  32. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  33. package/dist/src/coin/dot/transactionBuilder.js +133 -205
  34. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +1 -1
  35. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  36. package/dist/src/coin/dot/transactionBuilderFactory.js +46 -65
  37. package/dist/src/coin/dot/transferBuilder.d.ts +1 -2
  38. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  39. package/dist/src/coin/dot/transferBuilder.js +71 -88
  40. package/dist/src/coin/dot/txnSchema.js +17 -15
  41. package/dist/src/coin/dot/unnominateBuilder.d.ts +1 -1
  42. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -1
  43. package/dist/src/coin/dot/unnominateBuilder.js +24 -46
  44. package/dist/src/coin/dot/unstakeBuilder.d.ts +1 -1
  45. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -1
  46. package/dist/src/coin/dot/unstakeBuilder.js +38 -60
  47. package/dist/src/coin/dot/utils.d.ts +9 -3
  48. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  49. package/dist/src/coin/dot/utils.js +112 -102
  50. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +1 -1
  51. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -1
  52. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +38 -60
  53. package/dist/src/coin/etc/index.d.ts +2 -4
  54. package/dist/src/coin/etc/index.d.ts.map +1 -1
  55. package/dist/src/coin/etc/index.js +7 -9
  56. package/dist/src/coin/etc/resources.js +3 -3
  57. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
  58. package/dist/src/coin/etc/transactionBuilder.js +22 -41
  59. package/dist/src/coin/etc/transferBuilder.d.ts +1 -1
  60. package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -1
  61. package/dist/src/coin/etc/transferBuilder.js +8 -28
  62. package/dist/src/coin/etc/utils.d.ts +1 -2
  63. package/dist/src/coin/etc/utils.d.ts.map +1 -1
  64. package/dist/src/coin/etc/utils.js +10 -50
  65. package/dist/src/coin/eth2/keyPair.d.ts +1 -2
  66. package/dist/src/coin/eth2/keyPair.d.ts.map +1 -1
  67. package/dist/src/coin/eth2/keyPair.js +19 -37
  68. package/dist/src/coin/hbar/coinTransferBuilder.d.ts +46 -0
  69. package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +1 -0
  70. package/dist/src/coin/hbar/coinTransferBuilder.js +143 -0
  71. package/dist/src/coin/hbar/constants.d.ts +8 -0
  72. package/dist/src/coin/hbar/constants.d.ts.map +1 -0
  73. package/dist/src/coin/hbar/constants.js +12 -0
  74. package/dist/src/coin/hbar/iface.d.ts +49 -0
  75. package/dist/src/coin/hbar/iface.d.ts.map +1 -0
  76. package/dist/src/coin/hbar/iface.js +3 -0
  77. package/dist/src/coin/hbar/index.d.ts +3 -0
  78. package/dist/src/coin/hbar/index.d.ts.map +1 -1
  79. package/dist/src/coin/hbar/index.js +9 -3
  80. package/dist/src/coin/hbar/keyPair.d.ts +2 -3
  81. package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
  82. package/dist/src/coin/hbar/keyPair.js +31 -50
  83. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +38 -0
  84. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
  85. package/dist/src/coin/hbar/tokenAssociateBuilder.js +126 -0
  86. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +25 -0
  87. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +1 -0
  88. package/dist/src/coin/hbar/tokenTransferBuilder.js +115 -0
  89. package/dist/src/coin/hbar/transaction.d.ts +30 -23
  90. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  91. package/dist/src/coin/hbar/transaction.js +197 -193
  92. package/dist/src/coin/hbar/transactionBuilder.d.ts +23 -25
  93. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
  94. package/dist/src/coin/hbar/transactionBuilder.js +146 -223
  95. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +14 -4
  96. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
  97. package/dist/src/coin/hbar/transactionBuilderFactory.js +50 -57
  98. package/dist/src/coin/hbar/transferBuilder.d.ts +9 -29
  99. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
  100. package/dist/src/coin/hbar/transferBuilder.js +37 -157
  101. package/dist/src/coin/hbar/utils.d.ts +99 -58
  102. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  103. package/dist/src/coin/hbar/utils.js +183 -105
  104. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +5 -5
  105. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
  106. package/dist/src/coin/hbar/walletInitializationBuilder.js +68 -113
  107. package/dist/src/coin/near/contractCallWrapper.js +46 -65
  108. package/dist/src/coin/near/errors.d.ts +1 -1
  109. package/dist/src/coin/near/errors.d.ts.map +1 -1
  110. package/dist/src/coin/near/errors.js +7 -25
  111. package/dist/src/coin/near/iface.d.ts +1 -2
  112. package/dist/src/coin/near/iface.d.ts.map +1 -1
  113. package/dist/src/coin/near/iface.js +1 -1
  114. package/dist/src/coin/near/index.js +2 -2
  115. package/dist/src/coin/near/keyPair.d.ts +1 -2
  116. package/dist/src/coin/near/keyPair.d.ts.map +1 -1
  117. package/dist/src/coin/near/keyPair.js +23 -40
  118. package/dist/src/coin/near/stakingActivateBuilder.d.ts +1 -1
  119. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -1
  120. package/dist/src/coin/near/stakingActivateBuilder.js +36 -105
  121. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +1 -1
  122. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -1
  123. package/dist/src/coin/near/stakingDeactivateBuilder.js +36 -105
  124. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +1 -1
  125. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -1
  126. package/dist/src/coin/near/stakingWithdrawBuilder.js +36 -105
  127. package/dist/src/coin/near/transaction.d.ts +1 -2
  128. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  129. package/dist/src/coin/near/transaction.js +125 -154
  130. package/dist/src/coin/near/transactionBuilder.d.ts +1 -2
  131. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  132. package/dist/src/coin/near/transactionBuilder.js +81 -144
  133. package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
  134. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  135. package/dist/src/coin/near/transactionBuilderFactory.js +33 -51
  136. package/dist/src/coin/near/transferBuilder.d.ts +1 -1
  137. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
  138. package/dist/src/coin/near/transferBuilder.js +27 -91
  139. package/dist/src/coin/near/utils.d.ts +1 -1
  140. package/dist/src/coin/near/utils.d.ts.map +1 -1
  141. package/dist/src/coin/near/utils.js +35 -45
  142. package/dist/src/coin/near/walletInitializationBuilder.d.ts +1 -1
  143. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
  144. package/dist/src/coin/near/walletInitializationBuilder.js +13 -70
  145. package/dist/src/coin/polygon/index.d.ts +6 -0
  146. package/dist/src/coin/polygon/index.d.ts.map +1 -0
  147. package/dist/src/coin/{celo → polygon}/index.js +7 -9
  148. package/dist/src/coin/polygon/resources.d.ts +10 -0
  149. package/dist/src/coin/polygon/resources.d.ts.map +1 -0
  150. package/dist/src/coin/polygon/resources.js +25 -0
  151. package/dist/src/coin/{avaxc → polygon}/transactionBuilder.d.ts +1 -1
  152. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
  153. package/dist/src/coin/polygon/transactionBuilder.js +44 -0
  154. package/dist/src/coin/{avaxc → polygon}/transferBuilder.d.ts +4 -2
  155. package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
  156. package/dist/src/coin/polygon/transferBuilder.js +27 -0
  157. package/dist/src/coin/polygon/utils.d.ts +17 -0
  158. package/dist/src/coin/polygon/utils.d.ts.map +1 -0
  159. package/dist/src/coin/polygon/utils.js +42 -0
  160. package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
  161. package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
  162. package/dist/src/coin/polygon/walletUtil.js +632 -0
  163. package/dist/src/coin/rbtc/index.d.ts +2 -4
  164. package/dist/src/coin/rbtc/index.d.ts.map +1 -1
  165. package/dist/src/coin/rbtc/index.js +7 -9
  166. package/dist/src/coin/rbtc/resources.js +3 -3
  167. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
  168. package/dist/src/coin/rbtc/transactionBuilder.js +21 -40
  169. package/dist/src/coin/rbtc/transferBuilder.d.ts +1 -1
  170. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -1
  171. package/dist/src/coin/rbtc/transferBuilder.js +8 -28
  172. package/dist/src/coin/rbtc/utils.d.ts +1 -2
  173. package/dist/src/coin/rbtc/utils.d.ts.map +1 -1
  174. package/dist/src/coin/rbtc/utils.js +10 -50
  175. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +12 -3
  176. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  177. package/dist/src/coin/sol/ataInitializationBuilder.js +74 -126
  178. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
  179. package/dist/src/coin/sol/ataInitializationTransaction.js +36 -59
  180. package/dist/src/coin/sol/iface.d.ts +2 -1
  181. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  182. package/dist/src/coin/sol/iface.js +1 -1
  183. package/dist/src/coin/sol/index.js +3 -3
  184. package/dist/src/coin/sol/instructionParamsFactory.d.ts +1 -1
  185. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -1
  186. package/dist/src/coin/sol/instructionParamsFactory.js +72 -70
  187. package/dist/src/coin/sol/keyPair.d.ts +1 -2
  188. package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
  189. package/dist/src/coin/sol/keyPair.js +24 -42
  190. package/dist/src/coin/sol/solInstructionFactory.js +33 -33
  191. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +1 -1
  192. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -1
  193. package/dist/src/coin/sol/stakingActivateBuilder.js +45 -113
  194. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +1 -1
  195. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -1
  196. package/dist/src/coin/sol/stakingDeactivateBuilder.js +36 -104
  197. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +1 -1
  198. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -1
  199. package/dist/src/coin/sol/stakingWithdrawBuilder.js +41 -109
  200. package/dist/src/coin/sol/tokenEncodeDecode.js +46 -75
  201. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
  202. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
  203. package/dist/src/coin/sol/tokenTransferBuilder.js +42 -115
  204. package/dist/src/coin/sol/transaction.d.ts +1 -2
  205. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  206. package/dist/src/coin/sol/transaction.js +130 -221
  207. package/dist/src/coin/sol/transactionBuilder.d.ts +1 -2
  208. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  209. package/dist/src/coin/sol/transactionBuilder.js +104 -171
  210. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +1 -1
  211. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  212. package/dist/src/coin/sol/transactionBuilderFactory.js +46 -64
  213. package/dist/src/coin/sol/transferBuilder.d.ts +1 -1
  214. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
  215. package/dist/src/coin/sol/transferBuilder.js +37 -108
  216. package/dist/src/coin/sol/utils.d.ts +1 -1
  217. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  218. package/dist/src/coin/sol/utils.js +49 -117
  219. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +1 -1
  220. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
  221. package/dist/src/coin/sol/walletInitializationBuilder.js +39 -107
  222. package/dist/src/coin/trx/address.d.ts +1 -1
  223. package/dist/src/coin/trx/address.d.ts.map +1 -1
  224. package/dist/src/coin/trx/address.js +3 -6
  225. package/dist/src/coin/trx/contractCallBuilder.d.ts +1 -1
  226. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -1
  227. package/dist/src/coin/trx/contractCallBuilder.js +100 -160
  228. package/dist/src/coin/trx/iface.d.ts +1 -1
  229. package/dist/src/coin/trx/iface.d.ts.map +1 -1
  230. package/dist/src/coin/trx/iface.js +1 -1
  231. package/dist/src/coin/trx/index.js +4 -4
  232. package/dist/src/coin/trx/keyPair.d.ts +1 -3
  233. package/dist/src/coin/trx/keyPair.d.ts.map +1 -1
  234. package/dist/src/coin/trx/keyPair.js +37 -57
  235. package/dist/src/coin/trx/transaction.d.ts +1 -3
  236. package/dist/src/coin/trx/transaction.d.ts.map +1 -1
  237. package/dist/src/coin/trx/transaction.js +84 -124
  238. package/dist/src/coin/trx/transactionBuilder.d.ts +1 -2
  239. package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -1
  240. package/dist/src/coin/trx/transactionBuilder.js +72 -134
  241. package/dist/src/coin/trx/utils.js +57 -59
  242. package/dist/src/coin/trx/wrappedBuilder.d.ts +1 -2
  243. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -1
  244. package/dist/src/coin/trx/wrappedBuilder.js +43 -101
  245. package/dist/src/coin/xrp/index.js +2 -2
  246. package/dist/src/coin/xrp/keyPair.d.ts +1 -2
  247. package/dist/src/coin/xrp/keyPair.d.ts.map +1 -1
  248. package/dist/src/coin/xrp/keyPair.js +6 -23
  249. package/dist/src/coin/xrp/transaction.d.ts +1 -2
  250. package/dist/src/coin/xrp/transaction.d.ts.map +1 -1
  251. package/dist/src/coin/xrp/transaction.js +13 -34
  252. package/dist/src/coin/xrp/transactionBuilder.d.ts +1 -2
  253. package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -1
  254. package/dist/src/coin/xrp/transactionBuilder.js +29 -51
  255. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +1 -1
  256. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -1
  257. package/dist/src/coin/xrp/transactionBuilderFactory.js +17 -35
  258. package/dist/src/coin/xrp/transferBuilder.d.ts +1 -1
  259. package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -1
  260. package/dist/src/coin/xrp/transferBuilder.js +16 -73
  261. package/dist/src/coin/xrp/utils.d.ts +1 -1
  262. package/dist/src/coin/xrp/utils.d.ts.map +1 -1
  263. package/dist/src/coin/xrp/utils.js +22 -25
  264. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +1 -1
  265. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -1
  266. package/dist/src/coin/xrp/walletInitializationBuilder.js +16 -73
  267. package/dist/src/index.d.ts +24 -16
  268. package/dist/src/index.d.ts.map +1 -1
  269. package/dist/src/index.js +58 -50
  270. package/dist/src/keyPair/index.d.ts +1 -2
  271. package/dist/src/keyPair/index.d.ts.map +1 -1
  272. package/dist/src/keyPair/index.js +9 -9
  273. package/dist/src/utils/index.d.ts +1 -1
  274. package/dist/src/utils/index.d.ts.map +1 -1
  275. package/dist/src/utils/index.js +9 -9
  276. package/dist/tsconfig.tsbuildinfo +29398 -22560
  277. package/package.json +25 -58
  278. package/resources/README.md +8 -2
  279. package/resources/trx/protobuf/tron.js +5 -1
  280. package/dist/browser/bitgo-account-lib.js +0 -2
  281. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
  282. package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
  283. package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  284. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  285. package/dist/resources/hbar/protobuf/Duration.proto +0 -28
  286. package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
  287. package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
  288. package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
  289. package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
  290. package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
  291. package/dist/resources/hbar/protobuf/hedera.js +0 -12192
  292. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -43
  293. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  294. package/dist/src/coin/algo/assetTransferBuilder.js +0 -127
  295. package/dist/src/coin/algo/errors.d.ts +0 -11
  296. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  297. package/dist/src/coin/algo/errors.js +0 -51
  298. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  299. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  300. package/dist/src/coin/algo/ifaces.js +0 -3
  301. package/dist/src/coin/algo/index.d.ts +0 -13
  302. package/dist/src/coin/algo/index.d.ts.map +0 -1
  303. package/dist/src/coin/algo/index.js +0 -47
  304. package/dist/src/coin/algo/keyPair.d.ts +0 -26
  305. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  306. package/dist/src/coin/algo/keyPair.js +0 -95
  307. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  308. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  309. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -262
  310. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  311. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  312. package/dist/src/coin/algo/seedEncoding.js +0 -100
  313. package/dist/src/coin/algo/transaction.d.ts +0 -76
  314. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  315. package/dist/src/coin/algo/transaction.js +0 -287
  316. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -205
  317. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  318. package/dist/src/coin/algo/transactionBuilder.js +0 -445
  319. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  320. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  321. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -70
  322. package/dist/src/coin/algo/transferBuilder.d.ts +0 -41
  323. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  324. package/dist/src/coin/algo/transferBuilder.js +0 -111
  325. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  326. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  327. package/dist/src/coin/algo/txnSchema.js +0 -68
  328. package/dist/src/coin/algo/utils.d.ts +0 -249
  329. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  330. package/dist/src/coin/algo/utils.js +0 -544
  331. package/dist/src/coin/avaxc/index.d.ts +0 -8
  332. package/dist/src/coin/avaxc/index.d.ts.map +0 -1
  333. package/dist/src/coin/avaxc/index.js +0 -35
  334. package/dist/src/coin/avaxc/keyPair.d.ts +0 -27
  335. package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
  336. package/dist/src/coin/avaxc/keyPair.js +0 -102
  337. package/dist/src/coin/avaxc/resources.d.ts +0 -12
  338. package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
  339. package/dist/src/coin/avaxc/resources.js +0 -27
  340. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
  341. package/dist/src/coin/avaxc/transactionBuilder.js +0 -64
  342. package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
  343. package/dist/src/coin/avaxc/transferBuilder.js +0 -45
  344. package/dist/src/coin/avaxc/utils.d.ts +0 -39
  345. package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
  346. package/dist/src/coin/avaxc/utils.js +0 -110
  347. package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
  348. package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
  349. package/dist/src/coin/avaxc/walletUtil.js +0 -62
  350. package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
  351. package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
  352. package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
  353. package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
  354. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
  355. package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
  356. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
  357. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
  358. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
  359. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
  360. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
  361. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
  362. package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
  363. package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
  364. package/dist/src/coin/baseCoin/baseUtils.js +0 -3
  365. package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
  366. package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
  367. package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
  368. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
  369. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
  370. package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
  371. package/dist/src/coin/baseCoin/enum.d.ts +0 -43
  372. package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
  373. package/dist/src/coin/baseCoin/enum.js +0 -70
  374. package/dist/src/coin/baseCoin/errors.d.ts +0 -65
  375. package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
  376. package/dist/src/coin/baseCoin/errors.js +0 -156
  377. package/dist/src/coin/baseCoin/iface.d.ts +0 -162
  378. package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
  379. package/dist/src/coin/baseCoin/iface.js +0 -38
  380. package/dist/src/coin/baseCoin/index.d.ts +0 -12
  381. package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
  382. package/dist/src/coin/baseCoin/index.js +0 -41
  383. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
  384. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
  385. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
  386. package/dist/src/coin/celo/index.d.ts +0 -8
  387. package/dist/src/coin/celo/index.d.ts.map +0 -1
  388. package/dist/src/coin/celo/resources.d.ts +0 -10
  389. package/dist/src/coin/celo/resources.d.ts.map +0 -1
  390. package/dist/src/coin/celo/resources.js +0 -26
  391. package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
  392. package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
  393. package/dist/src/coin/celo/stakingBuilder.js +0 -279
  394. package/dist/src/coin/celo/stakingCall.d.ts +0 -7
  395. package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
  396. package/dist/src/coin/celo/stakingCall.js +0 -31
  397. package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
  398. package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
  399. package/dist/src/coin/celo/stakingUtils.js +0 -99
  400. package/dist/src/coin/celo/transaction.d.ts +0 -10
  401. package/dist/src/coin/celo/transaction.d.ts.map +0 -1
  402. package/dist/src/coin/celo/transaction.js +0 -57
  403. package/dist/src/coin/celo/transactionBuilder.d.ts +0 -86
  404. package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
  405. package/dist/src/coin/celo/transactionBuilder.js +0 -247
  406. package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
  407. package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
  408. package/dist/src/coin/celo/transferBuilder.js +0 -47
  409. package/dist/src/coin/celo/types.d.ts +0 -52
  410. package/dist/src/coin/celo/types.d.ts.map +0 -1
  411. package/dist/src/coin/celo/types.js +0 -276
  412. package/dist/src/coin/celo/utils.d.ts +0 -18
  413. package/dist/src/coin/celo/utils.d.ts.map +0 -1
  414. package/dist/src/coin/celo/utils.js +0 -99
  415. package/dist/src/coin/cspr/constants.d.ts +0 -19
  416. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  417. package/dist/src/coin/cspr/constants.js +0 -28
  418. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  419. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  420. package/dist/src/coin/cspr/delegateBuilder.js +0 -175
  421. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  422. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  423. package/dist/src/coin/cspr/ifaces.js +0 -3
  424. package/dist/src/coin/cspr/index.d.ts +0 -5
  425. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  426. package/dist/src/coin/cspr/index.js +0 -29
  427. package/dist/src/coin/cspr/keyPair.d.ts +0 -19
  428. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  429. package/dist/src/coin/cspr/keyPair.js +0 -94
  430. package/dist/src/coin/cspr/transaction.d.ts +0 -56
  431. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  432. package/dist/src/coin/cspr/transaction.js +0 -251
  433. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -125
  434. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  435. package/dist/src/coin/cspr/transactionBuilder.js +0 -383
  436. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  437. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  438. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -116
  439. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  440. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  441. package/dist/src/coin/cspr/transferBuilder.js +0 -169
  442. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  443. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  444. package/dist/src/coin/cspr/undelegateBuilder.js +0 -175
  445. package/dist/src/coin/cspr/utils.d.ts +0 -189
  446. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  447. package/dist/src/coin/cspr/utils.js +0 -483
  448. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  449. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  450. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -160
  451. package/dist/src/coin/eth/contractCall.d.ts +0 -8
  452. package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
  453. package/dist/src/coin/eth/contractCall.js +0 -18
  454. package/dist/src/coin/eth/iface.d.ts +0 -122
  455. package/dist/src/coin/eth/iface.d.ts.map +0 -1
  456. package/dist/src/coin/eth/iface.js +0 -8
  457. package/dist/src/coin/eth/index.d.ts +0 -10
  458. package/dist/src/coin/eth/index.d.ts.map +0 -1
  459. package/dist/src/coin/eth/index.js +0 -39
  460. package/dist/src/coin/eth/keyPair.d.ts +0 -27
  461. package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
  462. package/dist/src/coin/eth/keyPair.js +0 -104
  463. package/dist/src/coin/eth/transaction.d.ts +0 -65
  464. package/dist/src/coin/eth/transaction.d.ts.map +0 -1
  465. package/dist/src/coin/eth/transaction.js +0 -203
  466. package/dist/src/coin/eth/transactionBuilder.d.ts +0 -195
  467. package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
  468. package/dist/src/coin/eth/transactionBuilder.js +0 -695
  469. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
  470. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
  471. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -114
  472. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
  473. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
  474. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -100
  475. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
  476. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
  477. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -85
  478. package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
  479. package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
  480. package/dist/src/coin/eth/transferBuilder.js +0 -198
  481. package/dist/src/coin/eth/types.d.ts +0 -39
  482. package/dist/src/coin/eth/types.d.ts.map +0 -1
  483. package/dist/src/coin/eth/types.js +0 -139
  484. package/dist/src/coin/eth/utils.d.ts +0 -201
  485. package/dist/src/coin/eth/utils.d.ts.map +0 -1
  486. package/dist/src/coin/eth/utils.js +0 -533
  487. package/dist/src/coin/eth/walletUtil.d.ts +0 -19
  488. package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
  489. package/dist/src/coin/eth/walletUtil.js +0 -29
  490. package/dist/src/coin/hbar/ifaces.d.ts +0 -26
  491. package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
  492. package/dist/src/coin/hbar/ifaces.js +0 -3
  493. package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
  494. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
  495. package/dist/src/coin/stx/abstractContractBuilder.js +0 -140
  496. package/dist/src/coin/stx/constants.d.ts +0 -8
  497. package/dist/src/coin/stx/constants.d.ts.map +0 -1
  498. package/dist/src/coin/stx/constants.js +0 -19
  499. package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
  500. package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
  501. package/dist/src/coin/stx/contractBuilder.js +0 -135
  502. package/dist/src/coin/stx/iface.d.ts +0 -48
  503. package/dist/src/coin/stx/iface.d.ts.map +0 -1
  504. package/dist/src/coin/stx/iface.js +0 -3
  505. package/dist/src/coin/stx/index.d.ts +0 -6
  506. package/dist/src/coin/stx/index.d.ts.map +0 -1
  507. package/dist/src/coin/stx/index.js +0 -32
  508. package/dist/src/coin/stx/keyPair.d.ts +0 -56
  509. package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
  510. package/dist/src/coin/stx/keyPair.js +0 -163
  511. package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
  512. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
  513. package/dist/src/coin/stx/sendmanyBuilder.js +0 -140
  514. package/dist/src/coin/stx/transaction.d.ts +0 -50
  515. package/dist/src/coin/stx/transaction.d.ts.map +0 -1
  516. package/dist/src/coin/stx/transaction.js +0 -306
  517. package/dist/src/coin/stx/transactionBuilder.d.ts +0 -87
  518. package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
  519. package/dist/src/coin/stx/transactionBuilder.js +0 -360
  520. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
  521. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
  522. package/dist/src/coin/stx/transactionBuilderFactory.js +0 -99
  523. package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
  524. package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
  525. package/dist/src/coin/stx/transferBuilder.js +0 -169
  526. package/dist/src/coin/stx/utils.d.ts +0 -207
  527. package/dist/src/coin/stx/utils.d.ts.map +0 -1
  528. package/dist/src/coin/stx/utils.js +0 -510
  529. package/dist/src/coin/xtz/address.d.ts +0 -8
  530. package/dist/src/coin/xtz/address.d.ts.map +0 -1
  531. package/dist/src/coin/xtz/address.js +0 -13
  532. package/dist/src/coin/xtz/iface.d.ts +0 -81
  533. package/dist/src/coin/xtz/iface.d.ts.map +0 -1
  534. package/dist/src/coin/xtz/iface.js +0 -3
  535. package/dist/src/coin/xtz/index.d.ts +0 -8
  536. package/dist/src/coin/xtz/index.d.ts.map +0 -1
  537. package/dist/src/coin/xtz/index.js +0 -37
  538. package/dist/src/coin/xtz/keyPair.d.ts +0 -41
  539. package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
  540. package/dist/src/coin/xtz/keyPair.js +0 -156
  541. package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
  542. package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
  543. package/dist/src/coin/xtz/multisigUtils.js +0 -1193
  544. package/dist/src/coin/xtz/transaction.d.ts +0 -120
  545. package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
  546. package/dist/src/coin/xtz/transaction.js +0 -485
  547. package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -172
  548. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
  549. package/dist/src/coin/xtz/transactionBuilder.js +0 -588
  550. package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
  551. package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
  552. package/dist/src/coin/xtz/transferBuilder.js +0 -67
  553. package/dist/src/coin/xtz/utils.d.ts +0 -265
  554. package/dist/src/coin/xtz/utils.d.ts.map +0 -1
  555. package/dist/src/coin/xtz/utils.js +0 -531
  556. package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
  557. package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
  558. package/dist/src/mpc/curves/baseCurve.js +0 -6
  559. package/dist/src/mpc/curves/ed25519.d.ts +0 -17
  560. package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
  561. package/dist/src/mpc/curves/ed25519.js +0 -96
  562. package/dist/src/mpc/curves/index.d.ts +0 -5
  563. package/dist/src/mpc/curves/index.d.ts.map +0 -1
  564. package/dist/src/mpc/curves/index.js +0 -6
  565. package/dist/src/mpc/hdTree.d.ts +0 -24
  566. package/dist/src/mpc/hdTree.d.ts.map +0 -1
  567. package/dist/src/mpc/hdTree.js +0 -143
  568. package/dist/src/mpc/shamir.d.ts +0 -26
  569. package/dist/src/mpc/shamir.d.ts.map +0 -1
  570. package/dist/src/mpc/shamir.js +0 -87
  571. package/dist/src/mpc/tss.d.ts +0 -98
  572. package/dist/src/mpc/tss.d.ts.map +0 -1
  573. package/dist/src/mpc/tss.js +0 -346
  574. package/dist/src/mpc/util.d.ts +0 -7
  575. package/dist/src/mpc/util.d.ts.map +0 -1
  576. package/dist/src/mpc/util.js +0 -38
  577. package/dist/src/utils/crypto.d.ts +0 -99
  578. package/dist/src/utils/crypto.d.ts.map +0 -1
  579. package/dist/src/utils/crypto.js +0 -260
  580. package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
  581. package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
  582. package/dist/src/utils/ed25519KeyDeriver.js +0 -92
  583. package/resources/hbar/protobuf/BasicTypes.proto +0 -424
  584. package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  585. package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  586. package/resources/hbar/protobuf/Duration.proto +0 -28
  587. package/resources/hbar/protobuf/Timestamp.proto +0 -34
  588. package/resources/hbar/protobuf/Transaction.proto +0 -35
  589. package/resources/hbar/protobuf/TransactionBody.proto +0 -24
  590. package/resources/hbar/protobuf/TransactionContents.proto +0 -33
  591. package/resources/hbar/protobuf/hedera.d.ts +0 -4612
  592. package/resources/hbar/protobuf/hedera.js +0 -12192
@@ -2,5 +2,8 @@ import * as Utils from './utils';
2
2
  export { KeyPair } from './keyPair';
3
3
  export { Transaction } from './transaction';
4
4
  export { TransactionBuilderFactory } from './transactionBuilderFactory';
5
+ export { CoinTransferBuilder } from './coinTransferBuilder';
6
+ export { TokenTransferBuilder } from './tokenTransferBuilder';
7
+ export { TokenAssociateBuilder } from './tokenAssociateBuilder';
5
8
  export { Utils };
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -19,8 +19,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Utils = exports.TransactionBuilderFactory = exports.Transaction = exports.KeyPair = void 0;
23
- var Utils = __importStar(require("./utils"));
22
+ exports.Utils = exports.TokenAssociateBuilder = exports.TokenTransferBuilder = exports.CoinTransferBuilder = exports.TransactionBuilderFactory = exports.Transaction = exports.KeyPair = void 0;
23
+ const Utils = __importStar(require("./utils"));
24
24
  exports.Utils = Utils;
25
25
  var keyPair_1 = require("./keyPair");
26
26
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
@@ -28,4 +28,10 @@ var transaction_1 = require("./transaction");
28
28
  Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
29
29
  var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
30
30
  Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9oYmFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBaUM7QUFLeEIsc0JBQUs7QUFIZCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
31
+ var coinTransferBuilder_1 = require("./coinTransferBuilder");
32
+ Object.defineProperty(exports, "CoinTransferBuilder", { enumerable: true, get: function () { return coinTransferBuilder_1.CoinTransferBuilder; } });
33
+ var tokenTransferBuilder_1 = require("./tokenTransferBuilder");
34
+ Object.defineProperty(exports, "TokenTransferBuilder", { enumerable: true, get: function () { return tokenTransferBuilder_1.TokenTransferBuilder; } });
35
+ var tokenAssociateBuilder_1 = require("./tokenAssociateBuilder");
36
+ Object.defineProperty(exports, "TokenAssociateBuilder", { enumerable: true, get: function () { return tokenAssociateBuilder_1.TokenAssociateBuilder; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9oYmFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFReEIsc0JBQUs7QUFOZCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLDZEQUE0RDtBQUFuRCwwSEFBQSxtQkFBbUIsT0FBQTtBQUM1QiwrREFBOEQ7QUFBckQsNEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IsaUVBQWdFO0FBQXZELDhIQUFBLHFCQUFxQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgQ29pblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vY29pblRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVG9rZW5Bc3NvY2lhdGVCdWlsZGVyIH0gZnJvbSAnLi90b2tlbkFzc29jaWF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
@@ -1,5 +1,4 @@
1
- import { Ed25519KeyPair } from '../baseCoin/ed25519KeyPair';
2
- import { KeyPairOptions, DefaultKeys } from '../baseCoin/iface';
1
+ import { AddressFormat, DefaultKeys, Ed25519KeyPair, KeyPairOptions } from '@bitgo/sdk-core';
3
2
  export declare class KeyPair extends Ed25519KeyPair {
4
3
  /**
5
4
  * Public constructor. By default, creates a key pair with a random master seed.
@@ -15,7 +14,7 @@ export declare class KeyPair extends Ed25519KeyPair {
15
14
  */
16
15
  getKeys(raw?: boolean): DefaultKeys;
17
16
  /** @inheritdoc */
18
- getAddress(format?: string): string;
17
+ getAddress(format?: AddressFormat): string;
19
18
  /** @inheritdoc */
20
19
  recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
21
20
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhE,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,WAAW;IAajC,kBAAkB;IAClB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAInC,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAUjE,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;CAgBnE"}
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAc,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAMvH,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC;;;;;OAKG;IACH,OAAO,CAAC,GAAG,UAAQ,GAAG,WAAW;IAajC,kBAAkB;IAClB,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAI1C,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAUjE,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;CAgBnE"}
@@ -1,36 +1,19 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.KeyPair = void 0;
19
- var sdk_1 = require("@hashgraph/sdk");
20
- var ed25519KeyPair_1 = require("../baseCoin/ed25519KeyPair");
21
- var errors_1 = require("../baseCoin/errors");
22
- var utils_1 = require("./utils");
23
- var PUBLIC_KEY_PREFIX = '302a300506032b6570032100';
24
- var PRIVATE_KEY_PREFIX = '302e020100300506032b657004220420';
25
- var KeyPair = /** @class */ (function (_super) {
26
- __extends(KeyPair, _super);
4
+ const sdk_1 = require("@hashgraph/sdk");
5
+ const sdk_core_1 = require("@bitgo/sdk-core");
6
+ const utils_1 = require("./utils");
7
+ const PUBLIC_KEY_PREFIX = '302a300506032b6570032100';
8
+ const PRIVATE_KEY_PREFIX = '302e020100300506032b657004220420';
9
+ class KeyPair extends sdk_core_1.Ed25519KeyPair {
27
10
  /**
28
11
  * Public constructor. By default, creates a key pair with a random master seed.
29
12
  *
30
13
  * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
31
14
  */
32
- function KeyPair(source) {
33
- return _super.call(this, source) || this;
15
+ constructor(source) {
16
+ super(source);
34
17
  }
35
18
  /**
36
19
  * Hedera default keys format is a pair of Uint8Array keys
@@ -38,52 +21,50 @@ var KeyPair = /** @class */ (function (_super) {
38
21
  * @param {boolean} raw defines if the key is returned in raw or protocol default format
39
22
  * @returns { DefaultKeys } The keys in the defined format
40
23
  */
41
- KeyPair.prototype.getKeys = function (raw) {
42
- if (raw === void 0) { raw = false; }
43
- var pub = sdk_1.PublicKey.fromString(this.keyPair.pub).toString();
44
- var result = {
24
+ getKeys(raw = false) {
25
+ const pub = sdk_1.PublicKey.fromString(this.keyPair.pub).toString();
26
+ const result = {
45
27
  pub: raw ? pub.slice(PUBLIC_KEY_PREFIX.length) : pub,
46
28
  };
47
29
  if (this.keyPair.prv) {
48
- var prv = sdk_1.PrivateKey.fromString(this.keyPair.prv).toString();
30
+ const prv = sdk_1.PrivateKey.fromString(this.keyPair.prv).toString();
49
31
  result.prv = raw ? prv.slice(PRIVATE_KEY_PREFIX.length) : prv;
50
32
  }
51
33
  return result;
52
- };
34
+ }
53
35
  /** @inheritdoc */
54
- KeyPair.prototype.getAddress = function (format) {
55
- throw new errors_1.NotSupported('Address derivation is not supported in Hedera');
56
- };
36
+ getAddress(format) {
37
+ throw new sdk_core_1.NotSupported('Address derivation is not supported in Hedera');
38
+ }
57
39
  /** @inheritdoc */
58
- KeyPair.prototype.recordKeysFromPublicKeyInProtocolFormat = function (pub) {
40
+ recordKeysFromPublicKeyInProtocolFormat(pub) {
59
41
  try {
60
- var hederaPub = sdk_1.PublicKey.fromString(pub.toLowerCase()).toString();
61
- var ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPub);
42
+ const hederaPub = sdk_1.PublicKey.fromString(pub.toLowerCase()).toString();
43
+ const ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPub);
62
44
  return { pub: ed25519Pub };
63
45
  }
64
46
  catch (e) {
65
- throw new errors_1.InvalidKey('Invalid public key: ' + pub);
47
+ throw new sdk_core_1.InvalidKey('Invalid public key: ' + pub);
66
48
  }
67
- };
49
+ }
68
50
  /** @inheritdoc */
69
- KeyPair.prototype.recordKeysFromPrivateKeyInProtocolFormat = function (prv) {
70
- if (!/^([a-f0-9]{2})+$/i.test(prv)) {
71
- throw new errors_1.InvalidKey('Invalid private key length. Must be a hex and multiple of 2');
51
+ recordKeysFromPrivateKeyInProtocolFormat(prv) {
52
+ if (!/^([a-f\d]{2})+$/i.test(prv)) {
53
+ throw new sdk_core_1.InvalidKey('Invalid private key length. Must be a hex and multiple of 2');
72
54
  }
73
55
  try {
74
- var hederaPrv = sdk_1.PrivateKey.fromString(prv);
75
- var ed25519Prv = utils_1.removePrefix(PRIVATE_KEY_PREFIX, hederaPrv.toString());
76
- var ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPrv.publicKey.toString());
56
+ const hederaPrv = sdk_1.PrivateKey.fromString(prv);
57
+ const ed25519Prv = utils_1.removePrefix(PRIVATE_KEY_PREFIX, hederaPrv.toString());
58
+ const ed25519Pub = utils_1.removePrefix(PUBLIC_KEY_PREFIX, hederaPrv.publicKey.toString());
77
59
  return {
78
60
  prv: ed25519Prv,
79
61
  pub: ed25519Pub,
80
62
  };
81
63
  }
82
64
  catch (e) {
83
- throw new errors_1.InvalidKey('Invalid private key');
65
+ throw new sdk_core_1.InvalidKey('Invalid private key');
84
66
  }
85
- };
86
- return KeyPair;
87
- }(ed25519KeyPair_1.Ed25519KeyPair));
67
+ }
68
+ }
88
69
  exports.KeyPair = KeyPair;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2hiYXIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBdUQ7QUFDdkQsNkRBQTREO0FBRTVELDZDQUE4RDtBQUM5RCxpQ0FBdUM7QUFFdkMsSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUNyRCxJQUFNLGtCQUFrQixHQUFHLGtDQUFrQyxDQUFDO0FBRTlEO0lBQTZCLDJCQUFjO0lBQ3pDOzs7O09BSUc7SUFDSCxpQkFBWSxNQUF1QjtlQUNqQyxrQkFBTSxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCx5QkFBTyxHQUFQLFVBQVEsR0FBVztRQUFYLG9CQUFBLEVBQUEsV0FBVztRQUNqQixJQUFNLEdBQUcsR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsSUFBTSxNQUFNLEdBQWdCO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDckQsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBTSxHQUFHLEdBQUcsZ0JBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw0QkFBVSxHQUFWLFVBQVcsTUFBZTtRQUN4QixNQUFNLElBQUkscUJBQVksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIseURBQXVDLEdBQXZDLFVBQXdDLEdBQVc7UUFDakQsSUFBSTtZQUNGLElBQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckUsSUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksbUJBQVUsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMERBQXdDLEdBQXhDLFVBQXlDLEdBQVc7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksbUJBQVUsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1NBQ3JGO1FBQ0QsSUFBSTtZQUNGLElBQU0sU0FBUyxHQUFHLGdCQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLElBQU0sVUFBVSxHQUFHLG9CQUFZLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsSUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkYsT0FBTztnQkFDTCxHQUFHLEVBQUUsVUFBVTtnQkFDZixHQUFHLEVBQUUsVUFBVTthQUNoQixDQUFDO1NBQ0g7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxtQkFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUE5REQsQ0FBNkIsK0JBQWMsR0E4RDFDO0FBOURZLDBCQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJpdmF0ZUtleSwgUHVibGljS2V5IH0gZnJvbSAnQGhhc2hncmFwaC9zZGsnO1xuaW1wb3J0IHsgRWQyNTUxOUtleVBhaXIgfSBmcm9tICcuLi9iYXNlQ29pbi9lZDI1NTE5S2V5UGFpcic7XG5pbXBvcnQgeyBLZXlQYWlyT3B0aW9ucywgRGVmYXVsdEtleXMgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5pbXBvcnQgeyBJbnZhbGlkS2V5LCBOb3RTdXBwb3J0ZWQgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgcmVtb3ZlUHJlZml4IH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IFBVQkxJQ19LRVlfUFJFRklYID0gJzMwMmEzMDA1MDYwMzJiNjU3MDAzMjEwMCc7XG5jb25zdCBQUklWQVRFX0tFWV9QUkVGSVggPSAnMzAyZTAyMDEwMDMwMDUwNjAzMmI2NTcwMDQyMjA0MjAnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWRlcmEgZGVmYXVsdCBrZXlzIGZvcm1hdCBpcyBhIHBhaXIgb2YgVWludDhBcnJheSBrZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3IGRlZmluZXMgaWYgdGhlIGtleSBpcyByZXR1cm5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cyhyYXcgPSBmYWxzZSk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCBwdWIgPSBQdWJsaWNLZXkuZnJvbVN0cmluZyh0aGlzLmtleVBhaXIucHViKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7XG4gICAgICBwdWI6IHJhdyA/IHB1Yi5zbGljZShQVUJMSUNfS0VZX1BSRUZJWC5sZW5ndGgpIDogcHViLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgY29uc3QgcHJ2ID0gUHJpdmF0ZUtleS5mcm9tU3RyaW5nKHRoaXMua2V5UGFpci5wcnYpLnRvU3RyaW5nKCk7XG4gICAgICByZXN1bHQucHJ2ID0gcmF3ID8gcHJ2LnNsaWNlKFBSSVZBVEVfS0VZX1BSRUZJWC5sZW5ndGgpIDogcHJ2O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoZm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdBZGRyZXNzIGRlcml2YXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBIZWRlcmEnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhlZGVyYVB1YiA9IFB1YmxpY0tleS5mcm9tU3RyaW5nKHB1Yi50b0xvd2VyQ2FzZSgpKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgZWQyNTUxOVB1YiA9IHJlbW92ZVByZWZpeChQVUJMSUNfS0VZX1BSRUZJWCwgaGVkZXJhUHViKTtcbiAgICAgIHJldHVybiB7IHB1YjogZWQyNTUxOVB1YiB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdJbnZhbGlkIHB1YmxpYyBrZXk6ICcgKyBwdWIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXlJblByb3RvY29sRm9ybWF0KHBydjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGlmICghL14oW2EtZjAtOV17Mn0pKyQvaS50ZXN0KHBydikpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdJbnZhbGlkIHByaXZhdGUga2V5IGxlbmd0aC4gTXVzdCBiZSBhIGhleCBhbmQgbXVsdGlwbGUgb2YgMicpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgaGVkZXJhUHJ2ID0gUHJpdmF0ZUtleS5mcm9tU3RyaW5nKHBydik7XG4gICAgICBjb25zdCBlZDI1NTE5UHJ2ID0gcmVtb3ZlUHJlZml4KFBSSVZBVEVfS0VZX1BSRUZJWCwgaGVkZXJhUHJ2LnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgZWQyNTUxOVB1YiA9IHJlbW92ZVByZWZpeChQVUJMSUNfS0VZX1BSRUZJWCwgaGVkZXJhUHJ2LnB1YmxpY0tleS50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBydjogZWQyNTUxOVBydixcbiAgICAgICAgcHViOiBlZDI1NTE5UHViLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnSW52YWxpZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxufVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2hiYXIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBdUQ7QUFDdkQsOENBQXVIO0FBQ3ZILG1DQUF1QztBQUV2QyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQ3JELE1BQU0sa0JBQWtCLEdBQUcsa0NBQWtDLENBQUM7QUFFOUQsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekM7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSztRQUNqQixNQUFNLEdBQUcsR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQWdCO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDckQsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsZ0JBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVLENBQUMsTUFBc0I7UUFDL0IsTUFBTSxJQUFJLHVCQUFZLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsSUFBSTtZQUNGLE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckUsTUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUkscUJBQVUsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsd0NBQXdDLENBQUMsR0FBVztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxxQkFBVSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDckY7UUFDRCxJQUFJO1lBQ0YsTUFBTSxTQUFTLEdBQUcsZ0JBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMxRSxNQUFNLFVBQVUsR0FBRyxvQkFBWSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRixPQUFPO2dCQUNMLEdBQUcsRUFBRSxVQUFVO2dCQUNmLEdBQUcsRUFBRSxVQUFVO2FBQ2hCLENBQUM7U0FDSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHFCQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRjtBQTlERCwwQkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcml2YXRlS2V5LCBQdWJsaWNLZXkgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBBZGRyZXNzRm9ybWF0LCBEZWZhdWx0S2V5cywgRWQyNTUxOUtleVBhaXIsIEludmFsaWRLZXksIEtleVBhaXJPcHRpb25zLCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgcmVtb3ZlUHJlZml4IH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IFBVQkxJQ19LRVlfUFJFRklYID0gJzMwMmEzMDA1MDYwMzJiNjU3MDAzMjEwMCc7XG5jb25zdCBQUklWQVRFX0tFWV9QUkVGSVggPSAnMzAyZTAyMDEwMDMwMDUwNjAzMmI2NTcwMDQyMjA0MjAnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWRlcmEgZGVmYXVsdCBrZXlzIGZvcm1hdCBpcyBhIHBhaXIgb2YgVWludDhBcnJheSBrZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmF3IGRlZmluZXMgaWYgdGhlIGtleSBpcyByZXR1cm5lZCBpbiByYXcgb3IgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXRcbiAgICogQHJldHVybnMgeyBEZWZhdWx0S2V5cyB9IFRoZSBrZXlzIGluIHRoZSBkZWZpbmVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cyhyYXcgPSBmYWxzZSk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCBwdWIgPSBQdWJsaWNLZXkuZnJvbVN0cmluZyh0aGlzLmtleVBhaXIucHViKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHJlc3VsdDogRGVmYXVsdEtleXMgPSB7XG4gICAgICBwdWI6IHJhdyA/IHB1Yi5zbGljZShQVUJMSUNfS0VZX1BSRUZJWC5sZW5ndGgpIDogcHViLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgY29uc3QgcHJ2ID0gUHJpdmF0ZUtleS5mcm9tU3RyaW5nKHRoaXMua2V5UGFpci5wcnYpLnRvU3RyaW5nKCk7XG4gICAgICByZXN1bHQucHJ2ID0gcmF3ID8gcHJ2LnNsaWNlKFBSSVZBVEVfS0VZX1BSRUZJWC5sZW5ndGgpIDogcHJ2O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoZm9ybWF0PzogQWRkcmVzc0Zvcm1hdCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnQWRkcmVzcyBkZXJpdmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSGVkZXJhJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWRlcmFQdWIgPSBQdWJsaWNLZXkuZnJvbVN0cmluZyhwdWIudG9Mb3dlckNhc2UoKSkudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGVkMjU1MTlQdWIgPSByZW1vdmVQcmVmaXgoUFVCTElDX0tFWV9QUkVGSVgsIGhlZGVyYVB1Yik7XG4gICAgICByZXR1cm4geyBwdWI6IGVkMjU1MTlQdWIgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnSW52YWxpZCBwdWJsaWMga2V5OiAnICsgcHViKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBpZiAoIS9eKFthLWZcXGRdezJ9KSskL2kudGVzdChwcnYpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnSW52YWxpZCBwcml2YXRlIGtleSBsZW5ndGguIE11c3QgYmUgYSBoZXggYW5kIG11bHRpcGxlIG9mIDInKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhlZGVyYVBydiA9IFByaXZhdGVLZXkuZnJvbVN0cmluZyhwcnYpO1xuICAgICAgY29uc3QgZWQyNTUxOVBydiA9IHJlbW92ZVByZWZpeChQUklWQVRFX0tFWV9QUkVGSVgsIGhlZGVyYVBydi50b1N0cmluZygpKTtcbiAgICAgIGNvbnN0IGVkMjU1MTlQdWIgPSByZW1vdmVQcmVmaXgoUFVCTElDX0tFWV9QUkVGSVgsIGhlZGVyYVBydi5wdWJsaWNLZXkudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcnY6IGVkMjU1MTlQcnYsXG4gICAgICAgIHB1YjogZWQyNTUxOVB1YixcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXkoJ0ludmFsaWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseKey } from '@bitgo/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class TokenAssociateBuilder extends TransactionBuilder {
6
+ private readonly _txBodyData;
7
+ private _account;
8
+ private _tokenIds;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ /** @inheritdoc */
11
+ initBuilder(tx: Transaction): void;
12
+ private initTokenAssociation;
13
+ /** @inheritdoc */
14
+ protected signImplementation(key: BaseKey): Transaction;
15
+ /** @inheritdoc */
16
+ protected buildImplementation(): Promise<Transaction>;
17
+ /** @inheritdoc */
18
+ validateMandatoryFields(): void;
19
+ /**
20
+ * Set account to associate with tokens, defaults to this._source.address value
21
+ *
22
+ * @param {string} accountID - The name of the account to associate to the transaction
23
+ * @returns {TokenAssociateBuilder} - This token association builder
24
+ */
25
+ account(accountID: string): this;
26
+ /**
27
+ * Add a token to associate to the multisig wallet.
28
+ *
29
+ * @param {string} tokenName - The name of the token to associate to the transaction
30
+ * @returns {TokenAssociateBuilder} - This token association builder
31
+ */
32
+ tokens(tokenName: string): this;
33
+ private buildTokenData;
34
+ private buildAccountData;
35
+ private validateAccount;
36
+ private validateToken;
37
+ }
38
+ //# sourceMappingURL=tokenAssociateBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenAssociateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/tokenAssociateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAwD,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAgB;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAQlC,OAAO,CAAC,oBAAoB;IAa5B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAOvD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D,kBAAkB;IAClB,uBAAuB,IAAI,IAAI;IAQ/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMhC;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU/B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;CAOtB"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.TokenAssociateBuilder = void 0;
23
+ const proto = __importStar(require("@hashgraph/proto"));
24
+ const sdk_core_1 = require("@bitgo/sdk-core");
25
+ const utils_1 = require("./utils");
26
+ const transactionBuilder_1 = require("./transactionBuilder");
27
+ const constants_1 = require("./constants");
28
+ class TokenAssociateBuilder extends transactionBuilder_1.TransactionBuilder {
29
+ constructor(_coinConfig) {
30
+ super(_coinConfig);
31
+ this._tokenIds = [];
32
+ this._txBodyData = new proto.TokenAssociateTransactionBody();
33
+ this._txBody.tokenAssociate = this._txBodyData;
34
+ }
35
+ /** @inheritdoc */
36
+ initBuilder(tx) {
37
+ super.initBuilder(tx);
38
+ const tokenAssociateAccount = tx.txBody.tokenAssociate;
39
+ if (tokenAssociateAccount && tokenAssociateAccount.tokens) {
40
+ this.initTokenAssociation(tokenAssociateAccount);
41
+ }
42
+ }
43
+ initTokenAssociation(tokenAssociateAccount) {
44
+ tokenAssociateAccount.tokens.forEach((tokenId) => {
45
+ const token = utils_1.stringifyTokenId(tokenId);
46
+ this.validateToken(token);
47
+ this._tokenIds.push(token);
48
+ });
49
+ if (tokenAssociateAccount.account) {
50
+ const accountId = utils_1.stringifyAccountId(tokenAssociateAccount.account);
51
+ this.account(accountId);
52
+ }
53
+ }
54
+ /** @inheritdoc */
55
+ signImplementation(key) {
56
+ if (this._multiSignerKeyPairs.length >= constants_1.DEFAULT_SIGNER_NUMBER) {
57
+ throw new sdk_core_1.SigningError('A maximum of ' + constants_1.DEFAULT_SIGNER_NUMBER + ' can sign the transaction.');
58
+ }
59
+ return super.signImplementation(key);
60
+ }
61
+ /** @inheritdoc */
62
+ async buildImplementation() {
63
+ this._txBodyData.tokens = this.buildTokenData();
64
+ this._txBodyData.account = this.buildAccountData();
65
+ this.transaction.setTransactionType(sdk_core_1.TransactionType.AssociatedTokenAccountInitialization);
66
+ return await super.buildImplementation();
67
+ }
68
+ /** @inheritdoc */
69
+ validateMandatoryFields() {
70
+ if (!this._tokenIds || this._tokenIds.length < 1) {
71
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing tokens to associate');
72
+ }
73
+ super.validateMandatoryFields();
74
+ }
75
+ /**
76
+ * Set account to associate with tokens, defaults to this._source.address value
77
+ *
78
+ * @param {string} accountID - The name of the account to associate to the transaction
79
+ * @returns {TokenAssociateBuilder} - This token association builder
80
+ */
81
+ account(accountID) {
82
+ this.validateAccount(accountID);
83
+ this._account = accountID;
84
+ return this;
85
+ }
86
+ /**
87
+ * Add a token to associate to the multisig wallet.
88
+ *
89
+ * @param {string} tokenName - The name of the token to associate to the transaction
90
+ * @returns {TokenAssociateBuilder} - This token association builder
91
+ */
92
+ tokens(tokenName) {
93
+ const tokenId = utils_1.getHederaTokenIdFromName(tokenName);
94
+ if (!tokenId) {
95
+ throw new sdk_core_1.BuildTransactionError('Unsupported token: ' + tokenName);
96
+ }
97
+ this.validateToken(tokenId);
98
+ this._tokenIds.push(tokenId);
99
+ return this;
100
+ }
101
+ buildTokenData() {
102
+ return this._tokenIds.map(utils_1.buildHederaTokenID);
103
+ }
104
+ buildAccountData() {
105
+ let accountId = this._account;
106
+ if (!accountId) {
107
+ accountId = this._source.address;
108
+ }
109
+ return utils_1.buildHederaAccountID(accountId);
110
+ }
111
+ validateAccount(accountID) {
112
+ if (!utils_1.isValidAddress(accountID)) {
113
+ throw new sdk_core_1.BuildTransactionError('Unsupported account address: ' + accountID);
114
+ }
115
+ }
116
+ validateToken(tokenId) {
117
+ if (this._tokenIds.includes(tokenId)) {
118
+ throw new sdk_core_1.BuildTransactionError('Repeated token ID: ' + tokenId);
119
+ }
120
+ else if (!utils_1.isValidHederaTokenID(tokenId)) {
121
+ throw new sdk_core_1.BuildTransactionError('Invalid token ID: ' + tokenId);
122
+ }
123
+ }
124
+ }
125
+ exports.TokenAssociateBuilder = TokenAssociateBuilder;
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Bc3NvY2lhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci90b2tlbkFzc29jaWF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHdEQUEwQztBQUMxQyw4Q0FBZ0c7QUFFaEcsbUNBUWlCO0FBQ2pCLDZEQUEwRDtBQUMxRCwyQ0FBb0Q7QUFFcEQsTUFBYSxxQkFBc0IsU0FBUSx1Q0FBa0I7SUFLM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIYixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBSS9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ3ZELElBQUkscUJBQXFCLElBQUkscUJBQXFCLENBQUMsTUFBTSxFQUFFO1lBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBNEQsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLHFCQUEyRDtRQUN0RixxQkFBcUIsQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sS0FBSyxHQUFHLHdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJ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Z0NBQXFCLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLENBQUM7U0FDbEU7YUFBTSxJQUFJLENBQUMsNEJBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGO0FBaEhELHNEQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgKiBhcyBwcm90byBmcm9tICdAaGFzaGdyYXBoL3Byb3RvJztcbmltcG9ydCB7IEJhc2VLZXksIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU2lnbmluZ0Vycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGJ1aWxkSGVkZXJhQWNjb3VudElELFxuICBidWlsZEhlZGVyYVRva2VuSUQsXG4gIGdldEhlZGVyYVRva2VuSWRGcm9tTmFtZSxcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRIZWRlcmFUb2tlbklELFxuICBzdHJpbmdpZnlBY2NvdW50SWQsXG4gIHN0cmluZ2lmeVRva2VuSWQsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgREVGQVVMVF9TSUdORVJfTlVNQkVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5Bc3NvY2lhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHhCb2R5RGF0YTogcHJvdG8uVG9rZW5Bc3NvY2lhdGVUcmFuc2FjdGlvbkJvZHk7XG4gIHByaXZhdGUgX2FjY291bnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfdG9rZW5JZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3R4Qm9keURhdGEgPSBuZXcgcHJvdG8uVG9rZW5Bc3NvY2lhdGVUcmFuc2FjdGlvbkJvZHkoKTtcbiAgICB0aGlzLl90eEJvZHkudG9rZW5Bc3NvY2lhdGUgPSB0aGlzLl90eEJvZHlEYXRhO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB0b2tlbkFzc29jaWF0ZUFjY291bnQgPSB0eC50eEJvZHkudG9rZW5Bc3NvY2lhdGU7XG4gICAgaWYgKHRva2VuQXNzb2NpYXRlQWNjb3VudCAmJiB0b2tlbkFzc29jaWF0ZUFjY291bnQudG9rZW5zKSB7XG4gICAgICB0aGlzLmluaXRUb2tlbkFzc29jaWF0aW9uKHRva2VuQXNzb2NpYXRlQWNjb3VudCBhcyBwcm90by5Ub2tlbkFzc29jaWF0ZVRyYW5zYWN0aW9uQm9keSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VG9rZW5Bc3NvY2lhdGlvbih0b2tlbkFzc29jaWF0ZUFjY291bnQ6IHByb3RvLklUb2tlbkFzc29jaWF0ZVRyYW5zYWN0aW9uQm9keSk6IHZvaWQge1xuICAgIHRva2VuQXNzb2NpYXRlQWNjb3VudC50b2tlbnMhLmZvckVhY2goKHRva2VuSWQ6IHByb3RvLklUb2tlbklEKSA9PiB7XG4gICAgICBjb25zdCB0b2tlbiA9IHN0cmluZ2lmeVRva2VuSWQodG9rZW5JZCk7XG4gICAgICB0aGlzLnZhbGlkYXRlVG9rZW4odG9rZW4pO1xuICAgICAgdGhpcy5fdG9rZW5JZHMucHVzaCh0b2tlbik7XG4gICAgfSk7XG5cbiAgICBpZiAodG9rZW5Bc3NvY2lhdGVBY2NvdW50LmFjY291bnQpIHtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHN0cmluZ2lmeUFjY291bnRJZCh0b2tlbkFzc29jaWF0ZUFjY291bnQuYWNjb3VudCk7XG4gICAgICB0aGlzLmFjY291bnQoYWNjb3VudElkKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX211bHRpU2lnbmVyS2V5UGFpcnMubGVuZ3RoID49IERFRkFVTFRfU0lHTkVSX05VTUJFUikge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignQSBtYXhpbXVtIG9mICcgKyBERUZBVUxUX1NJR05FUl9OVU1CRVIgKyAnIGNhbiBzaWduIHRoZSB0cmFuc2FjdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnNpZ25JbXBsZW1lbnRhdGlvbihrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLl90eEJvZHlEYXRhLnRva2VucyA9IHRoaXMuYnVpbGRUb2tlbkRhdGEoKTtcbiAgICB0aGlzLl90eEJvZHlEYXRhLmFjY291bnQgPSB0aGlzLmJ1aWxkQWNjb3VudERhdGEoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQXNzb2NpYXRlZFRva2VuQWNjb3VudEluaXRpYWxpemF0aW9uKTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdG9rZW5JZHMgfHwgdGhpcy5fdG9rZW5JZHMubGVuZ3RoIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB0b2tlbnMgdG8gYXNzb2NpYXRlJyk7XG4gICAgfVxuXG4gICAgc3VwZXIudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWNjb3VudCB0byBhc3NvY2lhdGUgd2l0aCB0b2tlbnMsIGRlZmF1bHRzIHRvIHRoaXMuX3NvdXJjZS5hZGRyZXNzIHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50SUQgLSBUaGUgbmFtZSBvZiB0aGUgYWNjb3VudCB0byBhc3NvY2lhdGUgdG8gdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUb2tlbkFzc29jaWF0ZUJ1aWxkZXJ9IC0gVGhpcyB0b2tlbiBhc3NvY2lhdGlvbiBidWlsZGVyXG4gICAqL1xuICBhY2NvdW50KGFjY291bnRJRDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFjY291bnQoYWNjb3VudElEKTtcbiAgICB0aGlzLl9hY2NvdW50ID0gYWNjb3VudElEO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHRva2VuIHRvIGFzc29jaWF0ZSB0byB0aGUgbXVsdGlzaWcgd2FsbGV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRva2VuIHRvIGFzc29jaWF0ZSB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1Rva2VuQXNzb2NpYXRlQnVpbGRlcn0gLSBUaGlzIHRva2VuIGFzc29jaWF0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHRva2Vucyh0b2tlbk5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgIGNvbnN0IHRva2VuSWQgPSBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodG9rZW5OYW1lKTtcbiAgICBpZiAoIXRva2VuSWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1Vuc3VwcG9ydGVkIHRva2VuOiAnICsgdG9rZW5OYW1lKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRva2VuKHRva2VuSWQpO1xuICAgIHRoaXMuX3Rva2VuSWRzLnB1c2godG9rZW5JZCEpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRva2VuRGF0YSgpOiBwcm90by5Ub2tlbklEW10ge1xuICAgIHJldHVybiB0aGlzLl90b2tlbklkcy5tYXAoYnVpbGRIZWRlcmFUb2tlbklEKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBY2NvdW50RGF0YSgpOiBwcm90by5BY2NvdW50SUQge1xuICAgIGxldCBhY2NvdW50SWQgPSB0aGlzLl9hY2NvdW50O1xuICAgIGlmICghYWNjb3VudElkKSB7XG4gICAgICBhY2NvdW50SWQgPSB0aGlzLl9zb3VyY2UuYWRkcmVzcztcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRIZWRlcmFBY2NvdW50SUQoYWNjb3VudElkKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVBY2NvdW50KGFjY291bnRJRDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhY2NvdW50SUQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdVbnN1cHBvcnRlZCBhY2NvdW50IGFkZHJlc3M6ICcgKyBhY2NvdW50SUQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUb2tlbih0b2tlbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdG9rZW5JZHMuaW5jbHVkZXModG9rZW5JZCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1JlcGVhdGVkIHRva2VuIElEOiAnICsgdG9rZW5JZCk7XG4gICAgfSBlbHNlIGlmICghaXNWYWxpZEhlZGVyYVRva2VuSUQodG9rZW5JZCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdG9rZW4gSUQ6ICcgKyB0b2tlbklkKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import * as proto from '@hashgraph/proto';
3
+ import { Recipient } from './iface';
4
+ import { TransferBuilder } from './transferBuilder';
5
+ import { Transaction } from './transaction';
6
+ export declare class TokenTransferBuilder extends TransferBuilder {
7
+ private _tokenName;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /** @inheritdoc */
10
+ protected buildImplementation(): Promise<Transaction>;
11
+ private buildTokenTransferData;
12
+ /** @inheritdoc */
13
+ initBuilder(tx: Transaction): void;
14
+ /**
15
+ * Initialize the transfer specific data, getting the recipient account
16
+ * represented by the element with a positive amount on the transfer element.
17
+ * The negative amount represents the source account so it's ignored.
18
+ *
19
+ * @param {proto.IAccountAmount[]} transfers array of objects which contains accountID and transferred amount
20
+ */
21
+ protected initTokenTransfers(tokenTransfers: proto.ITokenTransferList[]): void;
22
+ /** @inheritdoc */
23
+ send(recipient: Recipient): this;
24
+ }
25
+ //# sourceMappingURL=tokenTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/tokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,OAAO,CAAC,UAAU,CAAC;gBAEP,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAK3D,OAAO,CAAC,sBAAsB;IA0B9B,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAQlC;;;;;;OAMG;IACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG,IAAI;IA2B9E,kBAAkB;IAClB,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAejC"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.TokenTransferBuilder = void 0;
23
+ const Long = __importStar(require("long"));
24
+ const sdk_core_1 = require("@bitgo/sdk-core");
25
+ const transferBuilder_1 = require("./transferBuilder");
26
+ const utils_1 = require("./utils");
27
+ const bignumber_js_1 = require("bignumber.js");
28
+ class TokenTransferBuilder extends transferBuilder_1.TransferBuilder {
29
+ constructor(_coinConfig) {
30
+ super(_coinConfig);
31
+ }
32
+ /** @inheritdoc */
33
+ async buildImplementation() {
34
+ this._txBodyData.tokenTransfers = this.buildTokenTransferData(); // set to list by the contract
35
+ return await super.buildImplementation();
36
+ }
37
+ buildTokenTransferData() {
38
+ let tokenTransferAmount = new bignumber_js_1.BigNumber(0); // total send amount for each token
39
+ const tokenId = utils_1.getHederaTokenIdFromName(this._tokenName);
40
+ const tokenTransferData = [
41
+ {
42
+ accountID: utils_1.buildHederaAccountID(this._source.address),
43
+ amount: Long.fromInt(0),
44
+ },
45
+ ];
46
+ this._recipients.forEach((recipient) => {
47
+ tokenTransferAmount = tokenTransferAmount.plus(recipient.amount);
48
+ tokenTransferData.push({ accountID: utils_1.buildHederaAccountID(recipient.address), amount: Long.fromString(recipient.amount) });
49
+ });
50
+ tokenTransferData[0].amount = Long.fromString(tokenTransferAmount.toString()).negate(); // update sender send amount
51
+ return [
52
+ {
53
+ token: utils_1.buildHederaTokenID(tokenId),
54
+ transfers: tokenTransferData,
55
+ },
56
+ ];
57
+ }
58
+ /** @inheritdoc */
59
+ initBuilder(tx) {
60
+ super.initBuilder(tx);
61
+ const transferData = tx.txBody.cryptoTransfer;
62
+ if (utils_1.isTokenTransfer(transferData)) {
63
+ this.initTokenTransfers(transferData.tokenTransfers);
64
+ }
65
+ }
66
+ /**
67
+ * Initialize the transfer specific data, getting the recipient account
68
+ * represented by the element with a positive amount on the transfer element.
69
+ * The negative amount represents the source account so it's ignored.
70
+ *
71
+ * @param {proto.IAccountAmount[]} transfers array of objects which contains accountID and transferred amount
72
+ */
73
+ initTokenTransfers(tokenTransfers) {
74
+ tokenTransfers.forEach((tokenTransfer) => {
75
+ if (!tokenTransfer.token) {
76
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing token id');
77
+ }
78
+ if (!tokenTransfer.transfers) {
79
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing transfer data');
80
+ }
81
+ const token = utils_1.getHederaTokenNameFromId(utils_1.stringifyTokenId(tokenTransfer.token));
82
+ if (!token) {
83
+ throw new sdk_core_1.BuildTransactionError('Invalid transaction: invalid token id');
84
+ }
85
+ tokenTransfer.transfers.forEach((transferData) => {
86
+ const amount = Long.fromValue(transferData.amount);
87
+ if (amount.isPositive()) {
88
+ this.send({
89
+ address: utils_1.stringifyAccountId(transferData.accountID),
90
+ amount: amount.toString(),
91
+ tokenName: token.name,
92
+ });
93
+ }
94
+ });
95
+ });
96
+ }
97
+ // region Transfer fields
98
+ /** @inheritdoc */
99
+ send(recipient) {
100
+ if (!recipient.tokenName) {
101
+ throw new sdk_core_1.InvalidParameterValueError('Invalid missing token name');
102
+ }
103
+ const tokenId = utils_1.getHederaTokenIdFromName(recipient.tokenName);
104
+ if (!tokenId) {
105
+ throw new sdk_core_1.InvalidParameterValueError(`Invalid token name: ${recipient.tokenName}`);
106
+ }
107
+ if (this._tokenName && this._tokenName !== recipient.tokenName) {
108
+ throw new sdk_core_1.InvalidParameterValueError(`Invalid token: received ${recipient.tokenName} for ${this._tokenName} tx`);
109
+ }
110
+ this._tokenName = recipient.tokenName;
111
+ return super.send(recipient);
112
+ }
113
+ }
114
+ exports.TokenTransferBuilder = TokenTransferBuilder;
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9oYmFyL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwyQ0FBNkI7QUFFN0IsOENBQW9GO0FBRXBGLHVEQUFvRDtBQUVwRCxtQ0FRaUI7QUFDakIsK0NBQXlDO0FBRXpDLE1BQWEsb0JBQXFCLFNBQVEsaUNBQWU7SUFHdkQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyw4QkFBOEI7UUFDL0YsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLHdCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7UUFDL0UsTUFBTSxPQUFPLEdBQUcsZ0NBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELE1BQU0saUJBQWlCLEdBQTJCO1lBQ2hEO2dCQUNFLFNBQVMsRUFBRSw0QkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRSxp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Q0FBQyxTQUFTLFFBQVEsSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7U0FDbEg7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FFRjtBQWxHRCxvREFrR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgTG9uZyBmcm9tICdsb25nJztcbmltcG9ydCAqIGFzIHByb3RvIGZyb20gJ0BoYXNoZ3JhcGgvcHJvdG8nO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBidWlsZEhlZGVyYUFjY291bnRJRCxcbiAgYnVpbGRIZWRlcmFUb2tlbklELFxuICBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUsXG4gIGdldEhlZGVyYVRva2VuTmFtZUZyb21JZCxcbiAgaXNUb2tlblRyYW5zZmVyLFxuICBzdHJpbmdpZnlBY2NvdW50SWQsXG4gIHN0cmluZ2lmeVRva2VuSWQsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQmlnTnVtYmVyIH0gZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuZXhwb3J0IGNsYXNzIFRva2VuVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW5OYW1lOyAvLyBjdXJyZW50bHkgb25seSBzdXBwb3J0IDEgdG9rZW4vdHJhbnNmZXJcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMuX3R4Qm9keURhdGEudG9rZW5UcmFuc2ZlcnMgPSB0aGlzLmJ1aWxkVG9rZW5UcmFuc2ZlckRhdGEoKTsgLy8gc2V0IHRvIGxpc3QgYnkgdGhlIGNvbnRyYWN0XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUb2tlblRyYW5zZmVyRGF0YSgpOiBwcm90by5JVG9rZW5UcmFuc2Zlckxpc3RbXSB7XG4gICAgbGV0IHRva2VuVHJhbnNmZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKDApOyAvLyB0b3RhbCBzZW5kIGFtb3VudCBmb3IgZWFjaCB0b2tlblxuICAgIGNvbnN0IHRva2VuSWQgPSBnZXRIZWRlcmFUb2tlbklkRnJvbU5hbWUodGhpcy5fdG9rZW5OYW1lKTtcbiAgICBjb25zdCB0b2tlblRyYW5zZmVyRGF0YTogcHJvdG8uSUFjY291bnRBbW91bnRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgYWNjb3VudElEOiBidWlsZEhlZGVyYUFjY291bnRJRCh0aGlzLl9zb3VyY2UuYWRkcmVzcyksXG4gICAgICAgIGFtb3VudDogTG9uZy5mcm9tSW50KDApLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgdGhpcy5fcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgIHRva2VuVHJhbnNmZXJBbW91bnQgPSB0b2tlblRyYW5zZmVyQW1vdW50LnBsdXMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgICB0b2tlblRyYW5zZmVyRGF0YS5wdXNoKFxuICAgICAgICB7IGFjY291bnRJRDogYnVpbGRIZWRlcmFBY2NvdW50SUQocmVjaXBpZW50LmFkZHJlc3MpLCBhbW91bnQ6IExvbmcuZnJvbVN0cmluZyhyZWNpcGllbnQuYW1vdW50KSB9LCAvLyByZWNpcGllbnRcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdG9rZW5UcmFuc2ZlckRhdGFbMF0uYW1vdW50ID0gTG9uZy5mcm9tU3RyaW5nKHRva2VuVHJhbnNmZXJBbW91bnQudG9TdHJpbmcoKSkubmVnYXRlKCk7IC8vIHVwZGF0ZSBzZW5kZXIgc2VuZCBhbW91bnRcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRva2VuOiBidWlsZEhlZGVyYVRva2VuSUQodG9rZW5JZCEpLFxuICAgICAgICB0cmFuc2ZlcnM6IHRva2VuVHJhbnNmZXJEYXRhLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSB0eC50eEJvZHkuY3J5cHRvVHJhbnNmZXIhO1xuICAgIGlmIChpc1Rva2VuVHJhbnNmZXIodHJhbnNmZXJEYXRhKSkge1xuICAgICAgdGhpcy5pbml0VG9rZW5UcmFuc2ZlcnModHJhbnNmZXJEYXRhLnRva2VuVHJhbnNmZXJzISk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zZmVyIHNwZWNpZmljIGRhdGEsIGdldHRpbmcgdGhlIHJlY2lwaWVudCBhY2NvdW50XG4gICAqIHJlcHJlc2VudGVkIGJ5IHRoZSBlbGVtZW50IHdpdGggYSBwb3NpdGl2ZSBhbW91bnQgb24gdGhlIHRyYW5zZmVyIGVsZW1lbnQuXG4gICAqIFRoZSBuZWdhdGl2ZSBhbW91bnQgcmVwcmVzZW50cyB0aGUgc291cmNlIGFjY291bnQgc28gaXQncyBpZ25vcmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3RvLklBY2NvdW50QW1vdW50W119IHRyYW5zZmVycyBhcnJheSBvZiBvYmplY3RzIHdoaWNoIGNvbnRhaW5zIGFjY291bnRJRCBhbmQgdHJhbnNmZXJyZWQgYW1vdW50XG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFRva2VuVHJhbnNmZXJzKHRva2VuVHJhbnNmZXJzOiBwcm90by5JVG9rZW5UcmFuc2Zlckxpc3RbXSk6IHZvaWQge1xuICAgIHRva2VuVHJhbnNmZXJzLmZvckVhY2goKHRva2VuVHJhbnNmZXI6IHByb3RvLklUb2tlblRyYW5zZmVyTGlzdCkgPT4ge1xuICAgICAgaWYgKCF0b2tlblRyYW5zZmVyLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdG9rZW4gaWQnKTtcbiAgICAgIH1cbiAgICAgIGlmICghdG9rZW5UcmFuc2Zlci50cmFuc2ZlcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyB0cmFuc2ZlciBkYXRhJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRva2VuID0gZ2V0SGVkZXJhVG9rZW5OYW1lRnJvbUlkKHN0cmluZ2lmeVRva2VuSWQodG9rZW5UcmFuc2Zlci50b2tlbiEpKTtcbiAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogaW52YWxpZCB0b2tlbiBpZCcpO1xuICAgICAgfVxuICAgICAgdG9rZW5UcmFuc2Zlci50cmFuc2ZlcnMuZm9yRWFjaCgodHJhbnNmZXJEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IGFtb3VudCA9IExvbmcuZnJvbVZhbHVlKHRyYW5zZmVyRGF0YS5hbW91bnQhKTtcbiAgICAgICAgaWYgKGFtb3VudC5pc1Bvc2l0aXZlKCkpIHtcbiAgICAgICAgICB0aGlzLnNlbmQoe1xuICAgICAgICAgICAgYWRkcmVzczogc3RyaW5naWZ5QWNjb3VudElkKHRyYW5zZmVyRGF0YS5hY2NvdW50SUQhKSxcbiAgICAgICAgICAgIGFtb3VudDogYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB0b2tlbk5hbWU6IHRva2VuLm5hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gcmVnaW9uIFRyYW5zZmVyIGZpZWxkc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IHRoaXMge1xuICAgIGlmICghcmVjaXBpZW50LnRva2VuTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIG1pc3NpbmcgdG9rZW4gbmFtZScpO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbklkID0gZ2V0SGVkZXJhVG9rZW5JZEZyb21OYW1lKHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgIGlmICghdG9rZW5JZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGBJbnZhbGlkIHRva2VuIG5hbWU6ICR7cmVjaXBpZW50LnRva2VuTmFtZX1gKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Rva2VuTmFtZSAmJiB0aGlzLl90b2tlbk5hbWUgIT09IHJlY2lwaWVudC50b2tlbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgSW52YWxpZCB0b2tlbjogcmVjZWl2ZWQgJHtyZWNpcGllbnQudG9rZW5OYW1lfSBmb3IgJHt0aGlzLl90b2tlbk5hbWV9IHR4YCk7XG4gICAgfVxuICAgIHRoaXMuX3Rva2VuTmFtZSA9IHJlY2lwaWVudC50b2tlbk5hbWU7XG4gICAgcmV0dXJuIHN1cGVyLnNlbmQocmVjaXBpZW50KTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==