@bitgo/account-lib 2.20.1 → 2.21.0-hotfix.1

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 (633) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +5 -7
  3. package/dist/browser/bitgo-account-lib.js +2 -0
  4. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +337 -0
  5. package/dist/resources/hbar/protobuf/BasicTypes.proto +424 -0
  6. package/dist/resources/hbar/protobuf/CryptoCreate.proto +47 -0
  7. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +33 -0
  8. package/dist/resources/hbar/protobuf/Duration.proto +28 -0
  9. package/dist/resources/hbar/protobuf/Timestamp.proto +34 -0
  10. package/dist/resources/hbar/protobuf/Transaction.proto +35 -0
  11. package/dist/resources/hbar/protobuf/TransactionBody.proto +24 -0
  12. package/dist/resources/hbar/protobuf/TransactionContents.proto +33 -0
  13. package/dist/resources/hbar/protobuf/hedera.d.ts +4612 -0
  14. package/dist/resources/hbar/protobuf/hedera.js +12192 -0
  15. package/dist/resources/trx/protobuf/Contract.proto +256 -0
  16. package/dist/resources/trx/protobuf/Discover.proto +44 -0
  17. package/dist/resources/trx/protobuf/tron.d.ts +11024 -0
  18. package/dist/resources/trx/protobuf/tron.js +31510 -0
  19. package/dist/resources/trx/protobuf/tron.proto +677 -0
  20. package/dist/src/coin/algo/assetTransferBuilder.d.ts +42 -0
  21. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +1 -0
  22. package/dist/src/coin/algo/assetTransferBuilder.js +105 -0
  23. package/dist/src/coin/algo/errors.d.ts +11 -0
  24. package/dist/src/coin/algo/errors.d.ts.map +1 -0
  25. package/dist/src/coin/algo/errors.js +27 -0
  26. package/dist/src/coin/algo/ifaces.d.ts +46 -0
  27. package/dist/src/coin/algo/ifaces.d.ts.map +1 -0
  28. package/dist/src/coin/algo/ifaces.js +3 -0
  29. package/dist/src/coin/algo/index.d.ts +13 -0
  30. package/dist/src/coin/algo/index.d.ts.map +1 -0
  31. package/dist/src/coin/algo/index.js +47 -0
  32. package/dist/src/coin/algo/keyPair.d.ts +25 -0
  33. package/dist/src/coin/algo/keyPair.d.ts.map +1 -0
  34. package/dist/src/coin/algo/keyPair.js +77 -0
  35. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +104 -0
  36. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +1 -0
  37. package/dist/src/coin/algo/keyRegistrationBuilder.js +239 -0
  38. package/dist/src/coin/algo/seedEncoding.d.ts +25 -0
  39. package/dist/src/coin/algo/seedEncoding.d.ts.map +1 -0
  40. package/dist/src/coin/algo/seedEncoding.js +97 -0
  41. package/dist/src/coin/algo/transaction.d.ts +75 -0
  42. package/dist/src/coin/algo/transaction.d.ts.map +1 -0
  43. package/dist/src/coin/algo/transaction.js +251 -0
  44. package/dist/src/coin/algo/transactionBuilder.d.ts +204 -0
  45. package/dist/src/coin/algo/transactionBuilder.d.ts.map +1 -0
  46. package/dist/src/coin/algo/transactionBuilder.js +373 -0
  47. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +16 -0
  48. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +1 -0
  49. package/dist/src/coin/algo/transactionBuilderFactory.js +52 -0
  50. package/dist/src/coin/algo/transferBuilder.d.ts +40 -0
  51. package/dist/src/coin/algo/transferBuilder.d.ts.map +1 -0
  52. package/dist/src/coin/algo/transferBuilder.js +89 -0
  53. package/dist/src/coin/algo/txnSchema.d.ts +7 -0
  54. package/dist/src/coin/algo/txnSchema.d.ts.map +1 -0
  55. package/dist/src/coin/algo/txnSchema.js +68 -0
  56. package/dist/src/coin/algo/utils.d.ts +249 -0
  57. package/dist/src/coin/algo/utils.d.ts.map +1 -0
  58. package/dist/src/coin/algo/utils.js +539 -0
  59. package/dist/src/coin/avaxc/index.d.ts +8 -0
  60. package/dist/src/coin/avaxc/index.d.ts.map +1 -0
  61. package/dist/src/coin/avaxc/index.js +35 -0
  62. package/dist/src/coin/avaxc/keyPair.d.ts +26 -0
  63. package/dist/src/coin/avaxc/keyPair.d.ts.map +1 -0
  64. package/dist/src/coin/avaxc/keyPair.js +83 -0
  65. package/dist/src/coin/avaxc/resources.d.ts +12 -0
  66. package/dist/src/coin/avaxc/resources.d.ts.map +1 -0
  67. package/dist/src/coin/avaxc/resources.js +27 -0
  68. package/dist/src/coin/avaxc/transactionBuilder.d.ts +17 -0
  69. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -0
  70. package/dist/src/coin/avaxc/transactionBuilder.js +45 -0
  71. package/dist/src/coin/avaxc/transferBuilder.d.ts +17 -0
  72. package/dist/src/coin/avaxc/transferBuilder.d.ts.map +1 -0
  73. package/dist/src/coin/avaxc/transferBuilder.js +25 -0
  74. package/dist/src/coin/avaxc/utils.d.ts +39 -0
  75. package/dist/src/coin/avaxc/utils.d.ts.map +1 -0
  76. package/dist/src/coin/avaxc/utils.js +70 -0
  77. package/dist/src/coin/avaxc/walletUtil.d.ts +22 -0
  78. package/dist/src/coin/avaxc/walletUtil.d.ts.map +1 -0
  79. package/dist/src/coin/avaxc/walletUtil.js +62 -0
  80. package/dist/src/coin/baseCoin/baseKeyPair.d.ts +27 -0
  81. package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +1 -0
  82. package/dist/src/coin/baseCoin/baseKeyPair.js +3 -0
  83. package/dist/src/coin/baseCoin/baseTransaction.d.ts +71 -0
  84. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +1 -0
  85. package/dist/src/coin/baseCoin/baseTransaction.js +94 -0
  86. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +128 -0
  87. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -0
  88. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +179 -0
  89. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +30 -0
  90. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +1 -0
  91. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +20 -0
  92. package/dist/src/coin/baseCoin/baseUtils.d.ts +45 -0
  93. package/dist/src/coin/baseCoin/baseUtils.d.ts.map +1 -0
  94. package/dist/src/coin/baseCoin/baseUtils.js +3 -0
  95. package/dist/src/coin/baseCoin/blsKeyPair.d.ts +75 -0
  96. package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +1 -0
  97. package/dist/src/coin/baseCoin/blsKeyPair.js +232 -0
  98. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +50 -0
  99. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +1 -0
  100. package/dist/src/coin/baseCoin/ed25519KeyPair.js +141 -0
  101. package/dist/src/coin/baseCoin/enum.d.ts +43 -0
  102. package/dist/src/coin/baseCoin/enum.d.ts.map +1 -0
  103. package/dist/src/coin/baseCoin/enum.js +70 -0
  104. package/dist/src/coin/baseCoin/errors.d.ts +65 -0
  105. package/dist/src/coin/baseCoin/errors.d.ts.map +1 -0
  106. package/dist/src/coin/baseCoin/errors.js +156 -0
  107. package/dist/src/coin/baseCoin/iface.d.ts +162 -0
  108. package/dist/src/coin/baseCoin/iface.d.ts.map +1 -0
  109. package/dist/src/coin/baseCoin/iface.js +38 -0
  110. package/dist/src/coin/baseCoin/index.d.ts +12 -0
  111. package/dist/src/coin/baseCoin/index.d.ts.map +1 -0
  112. package/dist/src/coin/baseCoin/index.js +41 -0
  113. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +55 -0
  114. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -0
  115. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +124 -0
  116. package/dist/src/coin/celo/index.d.ts +8 -0
  117. package/dist/src/coin/celo/index.d.ts.map +1 -0
  118. package/dist/src/coin/celo/index.js +35 -0
  119. package/dist/src/coin/celo/resources.d.ts +10 -0
  120. package/dist/src/coin/celo/resources.d.ts.map +1 -0
  121. package/dist/src/coin/celo/resources.js +26 -0
  122. package/dist/src/coin/celo/stakingBuilder.d.ts +91 -0
  123. package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -0
  124. package/dist/src/coin/celo/stakingBuilder.js +277 -0
  125. package/dist/src/coin/celo/stakingCall.d.ts +7 -0
  126. package/dist/src/coin/celo/stakingCall.d.ts.map +1 -0
  127. package/dist/src/coin/celo/stakingCall.js +13 -0
  128. package/dist/src/coin/celo/stakingUtils.d.ts +15 -0
  129. package/dist/src/coin/celo/stakingUtils.d.ts.map +1 -0
  130. package/dist/src/coin/celo/stakingUtils.js +98 -0
  131. package/dist/src/coin/celo/transaction.d.ts +10 -0
  132. package/dist/src/coin/celo/transaction.d.ts.map +1 -0
  133. package/dist/src/coin/celo/transaction.js +37 -0
  134. package/dist/src/coin/celo/transactionBuilder.d.ts +86 -0
  135. package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -0
  136. package/dist/src/coin/celo/transactionBuilder.js +228 -0
  137. package/dist/src/coin/celo/transferBuilder.d.ts +19 -0
  138. package/dist/src/coin/celo/transferBuilder.d.ts.map +1 -0
  139. package/dist/src/coin/celo/transferBuilder.js +27 -0
  140. package/dist/src/coin/celo/types.d.ts +52 -0
  141. package/dist/src/coin/celo/types.d.ts.map +1 -0
  142. package/dist/src/coin/celo/types.js +222 -0
  143. package/dist/src/coin/celo/utils.d.ts +18 -0
  144. package/dist/src/coin/celo/utils.d.ts.map +1 -0
  145. package/dist/src/coin/celo/utils.js +99 -0
  146. package/dist/src/coin/cspr/constants.d.ts +19 -0
  147. package/dist/src/coin/cspr/constants.d.ts.map +1 -0
  148. package/dist/src/coin/cspr/constants.js +28 -0
  149. package/dist/src/coin/cspr/delegateBuilder.d.ts +49 -0
  150. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +1 -0
  151. package/dist/src/coin/cspr/delegateBuilder.js +111 -0
  152. package/dist/src/coin/cspr/ifaces.d.ts +69 -0
  153. package/dist/src/coin/cspr/ifaces.d.ts.map +1 -0
  154. package/dist/src/coin/cspr/ifaces.js +3 -0
  155. package/dist/src/coin/cspr/index.d.ts +6 -0
  156. package/dist/src/coin/cspr/index.d.ts.map +1 -0
  157. package/dist/src/coin/cspr/index.js +31 -0
  158. package/dist/src/coin/cspr/keyPair.d.ts +18 -0
  159. package/dist/src/coin/cspr/keyPair.d.ts.map +1 -0
  160. package/dist/src/coin/cspr/keyPair.js +75 -0
  161. package/dist/src/coin/cspr/transaction.d.ts +55 -0
  162. package/dist/src/coin/cspr/transaction.d.ts.map +1 -0
  163. package/dist/src/coin/cspr/transaction.js +227 -0
  164. package/dist/src/coin/cspr/transactionBuilder.d.ts +124 -0
  165. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +1 -0
  166. package/dist/src/coin/cspr/transactionBuilder.js +312 -0
  167. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +46 -0
  168. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +1 -0
  169. package/dist/src/coin/cspr/transactionBuilderFactory.js +98 -0
  170. package/dist/src/coin/cspr/transferBuilder.d.ts +39 -0
  171. package/dist/src/coin/cspr/transferBuilder.d.ts.map +1 -0
  172. package/dist/src/coin/cspr/transferBuilder.js +106 -0
  173. package/dist/src/coin/cspr/undelegateBuilder.d.ts +49 -0
  174. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +1 -0
  175. package/dist/src/coin/cspr/undelegateBuilder.js +111 -0
  176. package/dist/src/coin/cspr/utils.d.ts +188 -0
  177. package/dist/src/coin/cspr/utils.d.ts.map +1 -0
  178. package/dist/src/coin/cspr/utils.js +477 -0
  179. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +27 -0
  180. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +1 -0
  181. package/dist/src/coin/cspr/walletInitializationBuilder.js +95 -0
  182. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +79 -0
  183. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -0
  184. package/dist/src/coin/dot/addressInitializationBuilder.js +182 -0
  185. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +47 -0
  186. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -0
  187. package/dist/src/coin/dot/batchTransactionBuilder.js +122 -0
  188. package/dist/src/coin/dot/claimBuilder.d.ts +58 -0
  189. package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -0
  190. package/dist/src/coin/dot/claimBuilder.js +119 -0
  191. package/dist/src/coin/dot/errors.d.ts +8 -0
  192. package/dist/src/coin/dot/errors.d.ts.map +1 -0
  193. package/dist/src/coin/dot/errors.js +19 -0
  194. package/dist/src/coin/dot/iface.d.ts +194 -0
  195. package/dist/src/coin/dot/iface.d.ts.map +1 -0
  196. package/dist/src/coin/dot/iface.js +39 -0
  197. package/dist/src/coin/dot/index.d.ts +17 -0
  198. package/dist/src/coin/dot/index.d.ts.map +1 -0
  199. package/dist/src/coin/dot/index.js +53 -0
  200. package/dist/src/coin/dot/keyPair.d.ts +31 -0
  201. package/dist/src/coin/dot/keyPair.d.ts.map +1 -0
  202. package/dist/src/coin/dot/keyPair.js +70 -0
  203. package/dist/src/coin/dot/singletonRegistry.d.ts +7 -0
  204. package/dist/src/coin/dot/singletonRegistry.d.ts.map +1 -0
  205. package/dist/src/coin/dot/singletonRegistry.js +20 -0
  206. package/dist/src/coin/dot/stakingBuilder.d.ts +58 -0
  207. package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -0
  208. package/dist/src/coin/dot/stakingBuilder.js +139 -0
  209. package/dist/src/coin/dot/transaction.d.ts +65 -0
  210. package/dist/src/coin/dot/transaction.d.ts.map +1 -0
  211. package/dist/src/coin/dot/transaction.js +396 -0
  212. package/dist/src/coin/dot/transactionBuilder.d.ts +131 -0
  213. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -0
  214. package/dist/src/coin/dot/transactionBuilder.js +332 -0
  215. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +26 -0
  216. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -0
  217. package/dist/src/coin/dot/transactionBuilderFactory.js +93 -0
  218. package/dist/src/coin/dot/transferBuilder.d.ts +71 -0
  219. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -0
  220. package/dist/src/coin/dot/transferBuilder.js +177 -0
  221. package/dist/src/coin/dot/txnSchema.d.ts +14 -0
  222. package/dist/src/coin/dot/txnSchema.d.ts.map +1 -0
  223. package/dist/src/coin/dot/txnSchema.js +104 -0
  224. package/dist/src/coin/dot/unnominateBuilder.d.ts +24 -0
  225. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -0
  226. package/dist/src/coin/dot/unnominateBuilder.js +50 -0
  227. package/dist/src/coin/dot/unstakeBuilder.d.ts +38 -0
  228. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -0
  229. package/dist/src/coin/dot/unstakeBuilder.js +89 -0
  230. package/dist/src/coin/dot/utils.d.ts +145 -0
  231. package/dist/src/coin/dot/utils.d.ts.map +1 -0
  232. package/dist/src/coin/dot/utils.js +283 -0
  233. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +38 -0
  234. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -0
  235. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +90 -0
  236. package/dist/src/coin/etc/index.d.ts +8 -0
  237. package/dist/src/coin/etc/index.d.ts.map +1 -0
  238. package/dist/src/coin/etc/index.js +35 -0
  239. package/dist/src/coin/etc/resources.d.ts +10 -0
  240. package/dist/src/coin/etc/resources.d.ts.map +1 -0
  241. package/dist/src/coin/etc/resources.js +26 -0
  242. package/dist/src/coin/etc/transactionBuilder.d.ts +17 -0
  243. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -0
  244. package/dist/src/coin/etc/transactionBuilder.js +45 -0
  245. package/dist/src/coin/etc/transferBuilder.d.ts +19 -0
  246. package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -0
  247. package/dist/src/coin/etc/transferBuilder.js +27 -0
  248. package/dist/src/coin/etc/utils.d.ts +18 -0
  249. package/dist/src/coin/etc/utils.d.ts.map +1 -0
  250. package/dist/src/coin/etc/utils.js +42 -0
  251. package/dist/src/coin/eth/contractCall.d.ts +8 -0
  252. package/dist/src/coin/eth/contractCall.d.ts.map +1 -0
  253. package/dist/src/coin/eth/contractCall.js +17 -0
  254. package/dist/src/coin/eth/iface.d.ts +122 -0
  255. package/dist/src/coin/eth/iface.d.ts.map +1 -0
  256. package/dist/src/coin/eth/iface.js +8 -0
  257. package/dist/src/coin/eth/index.d.ts +10 -0
  258. package/dist/src/coin/eth/index.d.ts.map +1 -0
  259. package/dist/src/coin/eth/index.js +39 -0
  260. package/dist/src/coin/eth/keyPair.d.ts +26 -0
  261. package/dist/src/coin/eth/keyPair.d.ts.map +1 -0
  262. package/dist/src/coin/eth/keyPair.js +85 -0
  263. package/dist/src/coin/eth/transaction.d.ts +64 -0
  264. package/dist/src/coin/eth/transaction.d.ts.map +1 -0
  265. package/dist/src/coin/eth/transaction.js +137 -0
  266. package/dist/src/coin/eth/transactionBuilder.d.ts +194 -0
  267. package/dist/src/coin/eth/transactionBuilder.d.ts.map +1 -0
  268. package/dist/src/coin/eth/transactionBuilder.js +624 -0
  269. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +47 -0
  270. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +1 -0
  271. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +113 -0
  272. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +14 -0
  273. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +1 -0
  274. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +83 -0
  275. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +13 -0
  276. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +1 -0
  277. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +68 -0
  278. package/dist/src/coin/eth/transferBuilder.d.ts +65 -0
  279. package/dist/src/coin/eth/transferBuilder.d.ts.map +1 -0
  280. package/dist/src/coin/eth/transferBuilder.js +197 -0
  281. package/dist/src/coin/eth/types.d.ts +39 -0
  282. package/dist/src/coin/eth/types.d.ts.map +1 -0
  283. package/dist/src/coin/eth/types.js +135 -0
  284. package/dist/src/coin/eth/utils.d.ts +201 -0
  285. package/dist/src/coin/eth/utils.d.ts.map +1 -0
  286. package/dist/src/coin/eth/utils.js +486 -0
  287. package/dist/src/coin/eth/walletUtil.d.ts +21 -0
  288. package/dist/src/coin/eth/walletUtil.d.ts.map +1 -0
  289. package/dist/src/coin/eth/walletUtil.js +31 -0
  290. package/dist/src/coin/eth2/index.d.ts +2 -0
  291. package/dist/src/coin/eth2/index.d.ts.map +1 -0
  292. package/dist/src/coin/eth2/index.js +6 -0
  293. package/dist/src/coin/eth2/keyPair.d.ts +33 -0
  294. package/dist/src/coin/eth2/keyPair.d.ts.map +1 -0
  295. package/dist/src/coin/eth2/keyPair.js +65 -0
  296. package/dist/src/coin/hbar/constants.d.ts +8 -0
  297. package/dist/src/coin/hbar/constants.d.ts.map +1 -0
  298. package/dist/src/coin/hbar/constants.js +12 -0
  299. package/dist/src/coin/hbar/iface.d.ts +26 -0
  300. package/dist/src/coin/hbar/iface.d.ts.map +1 -0
  301. package/dist/src/coin/hbar/iface.js +3 -0
  302. package/dist/src/coin/hbar/ifaces.d.ts +26 -0
  303. package/dist/src/coin/hbar/ifaces.d.ts.map +1 -0
  304. package/dist/src/coin/hbar/ifaces.js +3 -0
  305. package/dist/src/coin/hbar/index.d.ts +6 -0
  306. package/dist/src/coin/hbar/index.d.ts.map +1 -0
  307. package/dist/src/coin/hbar/index.js +31 -0
  308. package/dist/src/coin/hbar/keyPair.d.ts +23 -0
  309. package/dist/src/coin/hbar/keyPair.d.ts.map +1 -0
  310. package/dist/src/coin/hbar/keyPair.js +70 -0
  311. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +35 -0
  312. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
  313. package/dist/src/coin/hbar/tokenAssociateBuilder.js +118 -0
  314. package/dist/src/coin/hbar/transaction.d.ts +97 -0
  315. package/dist/src/coin/hbar/transaction.d.ts.map +1 -0
  316. package/dist/src/coin/hbar/transaction.js +255 -0
  317. package/dist/src/coin/hbar/transactionBuilder.d.ts +111 -0
  318. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -0
  319. package/dist/src/coin/hbar/transactionBuilder.js +270 -0
  320. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +42 -0
  321. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -0
  322. package/dist/src/coin/hbar/transactionBuilderFactory.js +79 -0
  323. package/dist/src/coin/hbar/transferBuilder.d.ts +43 -0
  324. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -0
  325. package/dist/src/coin/hbar/transferBuilder.js +124 -0
  326. package/dist/src/coin/hbar/utils.d.ts +186 -0
  327. package/dist/src/coin/hbar/utils.d.ts.map +1 -0
  328. package/dist/src/coin/hbar/utils.js +400 -0
  329. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +28 -0
  330. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -0
  331. package/dist/src/coin/hbar/walletInitializationBuilder.js +110 -0
  332. package/dist/src/coin/near/constants.d.ts +12 -0
  333. package/dist/src/coin/near/constants.d.ts.map +1 -0
  334. package/dist/src/coin/near/constants.js +15 -0
  335. package/dist/src/coin/near/contractCallWrapper.d.ts +33 -0
  336. package/dist/src/coin/near/contractCallWrapper.d.ts.map +1 -0
  337. package/dist/src/coin/near/contractCallWrapper.js +68 -0
  338. package/dist/src/coin/near/errors.d.ts +5 -0
  339. package/dist/src/coin/near/errors.d.ts.map +1 -0
  340. package/dist/src/coin/near/errors.js +12 -0
  341. package/dist/src/coin/near/iface.d.ts +40 -0
  342. package/dist/src/coin/near/iface.d.ts.map +1 -0
  343. package/dist/src/coin/near/iface.js +8 -0
  344. package/dist/src/coin/near/index.d.ts +11 -0
  345. package/dist/src/coin/near/index.d.ts.map +1 -0
  346. package/dist/src/coin/near/index.js +41 -0
  347. package/dist/src/coin/near/keyPair.d.ts +25 -0
  348. package/dist/src/coin/near/keyPair.d.ts.map +1 -0
  349. package/dist/src/coin/near/keyPair.js +73 -0
  350. package/dist/src/coin/near/stakingActivateBuilder.d.ts +32 -0
  351. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -0
  352. package/dist/src/coin/near/stakingActivateBuilder.js +90 -0
  353. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +32 -0
  354. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -0
  355. package/dist/src/coin/near/stakingDeactivateBuilder.js +89 -0
  356. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +32 -0
  357. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -0
  358. package/dist/src/coin/near/stakingWithdrawBuilder.js +89 -0
  359. package/dist/src/coin/near/transaction.d.ts +90 -0
  360. package/dist/src/coin/near/transaction.d.ts.map +1 -0
  361. package/dist/src/coin/near/transaction.js +368 -0
  362. package/dist/src/coin/near/transactionBuilder.d.ts +89 -0
  363. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -0
  364. package/dist/src/coin/near/transactionBuilder.js +216 -0
  365. package/dist/src/coin/near/transactionBuilderFactory.d.ts +30 -0
  366. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -0
  367. package/dist/src/coin/near/transactionBuilderFactory.js +71 -0
  368. package/dist/src/coin/near/transferBuilder.d.ts +26 -0
  369. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -0
  370. package/dist/src/coin/near/transferBuilder.js +72 -0
  371. package/dist/src/coin/near/utils.d.ts +42 -0
  372. package/dist/src/coin/near/utils.d.ts.map +1 -0
  373. package/dist/src/coin/near/utils.js +85 -0
  374. package/dist/src/coin/near/walletInitializationBuilder.d.ts +12 -0
  375. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -0
  376. package/dist/src/coin/near/walletInitializationBuilder.js +20 -0
  377. package/dist/src/coin/polygon/index.d.ts +8 -0
  378. package/dist/src/coin/polygon/index.d.ts.map +1 -0
  379. package/dist/src/coin/polygon/index.js +35 -0
  380. package/dist/src/coin/polygon/resources.d.ts +10 -0
  381. package/dist/src/coin/polygon/resources.d.ts.map +1 -0
  382. package/dist/src/coin/polygon/resources.js +25 -0
  383. package/dist/src/coin/polygon/transactionBuilder.d.ts +17 -0
  384. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
  385. package/dist/src/coin/polygon/transactionBuilder.js +44 -0
  386. package/dist/src/coin/polygon/transferBuilder.d.ts +19 -0
  387. package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
  388. package/dist/src/coin/polygon/transferBuilder.js +27 -0
  389. package/dist/src/coin/polygon/utils.d.ts +18 -0
  390. package/dist/src/coin/polygon/utils.d.ts.map +1 -0
  391. package/dist/src/coin/polygon/utils.js +42 -0
  392. package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
  393. package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
  394. package/dist/src/coin/polygon/walletUtil.js +632 -0
  395. package/dist/src/coin/rbtc/index.d.ts +8 -0
  396. package/dist/src/coin/rbtc/index.d.ts.map +1 -0
  397. package/dist/src/coin/rbtc/index.js +35 -0
  398. package/dist/src/coin/rbtc/resources.d.ts +10 -0
  399. package/dist/src/coin/rbtc/resources.d.ts.map +1 -0
  400. package/dist/src/coin/rbtc/resources.js +25 -0
  401. package/dist/src/coin/rbtc/transactionBuilder.d.ts +17 -0
  402. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -0
  403. package/dist/src/coin/rbtc/transactionBuilder.js +44 -0
  404. package/dist/src/coin/rbtc/transferBuilder.d.ts +19 -0
  405. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -0
  406. package/dist/src/coin/rbtc/transferBuilder.js +27 -0
  407. package/dist/src/coin/rbtc/utils.d.ts +18 -0
  408. package/dist/src/coin/rbtc/utils.d.ts.map +1 -0
  409. package/dist/src/coin/rbtc/utils.js +42 -0
  410. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +41 -0
  411. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -0
  412. package/dist/src/coin/sol/ataInitializationBuilder.js +110 -0
  413. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +14 -0
  414. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -0
  415. package/dist/src/coin/sol/ataInitializationTransaction.js +81 -0
  416. package/dist/src/coin/sol/constants.d.ts +58 -0
  417. package/dist/src/coin/sol/constants.d.ts.map +1 -0
  418. package/dist/src/coin/sol/constants.js +76 -0
  419. package/dist/src/coin/sol/iface.d.ts +99 -0
  420. package/dist/src/coin/sol/iface.d.ts.map +1 -0
  421. package/dist/src/coin/sol/iface.js +3 -0
  422. package/dist/src/coin/sol/index.d.ts +11 -0
  423. package/dist/src/coin/sol/index.d.ts.map +1 -0
  424. package/dist/src/coin/sol/index.js +41 -0
  425. package/dist/src/coin/sol/instructionParamsFactory.d.ts +12 -0
  426. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -0
  427. package/dist/src/coin/sol/instructionParamsFactory.js +260 -0
  428. package/dist/src/coin/sol/keyPair.d.ts +26 -0
  429. package/dist/src/coin/sol/keyPair.d.ts.map +1 -0
  430. package/dist/src/coin/sol/keyPair.js +63 -0
  431. package/dist/src/coin/sol/solInstructionFactory.d.ts +10 -0
  432. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +1 -0
  433. package/dist/src/coin/sol/solInstructionFactory.js +213 -0
  434. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +41 -0
  435. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -0
  436. package/dist/src/coin/sol/stakingActivateBuilder.js +94 -0
  437. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +23 -0
  438. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -0
  439. package/dist/src/coin/sol/stakingDeactivateBuilder.js +62 -0
  440. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +31 -0
  441. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -0
  442. package/dist/src/coin/sol/stakingWithdrawBuilder.js +78 -0
  443. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +85 -0
  444. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +1 -0
  445. package/dist/src/coin/sol/tokenEncodeDecode.js +133 -0
  446. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +27 -0
  447. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -0
  448. package/dist/src/coin/sol/tokenTransferBuilder.js +73 -0
  449. package/dist/src/coin/sol/transaction.d.ts +61 -0
  450. package/dist/src/coin/sol/transaction.d.ts.map +1 -0
  451. package/dist/src/coin/sol/transaction.js +369 -0
  452. package/dist/src/coin/sol/transactionBuilder.d.ts +101 -0
  453. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -0
  454. package/dist/src/coin/sol/transactionBuilder.js +261 -0
  455. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +76 -0
  456. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -0
  457. package/dist/src/coin/sol/transactionBuilderFactory.js +136 -0
  458. package/dist/src/coin/sol/transferBuilder.d.ts +26 -0
  459. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -0
  460. package/dist/src/coin/sol/transferBuilder.js +67 -0
  461. package/dist/src/coin/sol/utils.d.ts +146 -0
  462. package/dist/src/coin/sol/utils.d.ts.map +1 -0
  463. package/dist/src/coin/sol/utils.js +361 -0
  464. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +26 -0
  465. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -0
  466. package/dist/src/coin/sol/walletInitializationBuilder.js +71 -0
  467. package/dist/src/coin/stx/abstractContractBuilder.d.ts +19 -0
  468. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +1 -0
  469. package/dist/src/coin/stx/abstractContractBuilder.js +70 -0
  470. package/dist/src/coin/stx/constants.d.ts +8 -0
  471. package/dist/src/coin/stx/constants.d.ts.map +1 -0
  472. package/dist/src/coin/stx/constants.js +19 -0
  473. package/dist/src/coin/stx/contractBuilder.d.ts +33 -0
  474. package/dist/src/coin/stx/contractBuilder.d.ts.map +1 -0
  475. package/dist/src/coin/stx/contractBuilder.js +116 -0
  476. package/dist/src/coin/stx/iface.d.ts +48 -0
  477. package/dist/src/coin/stx/iface.d.ts.map +1 -0
  478. package/dist/src/coin/stx/iface.js +3 -0
  479. package/dist/src/coin/stx/index.d.ts +6 -0
  480. package/dist/src/coin/stx/index.d.ts.map +1 -0
  481. package/dist/src/coin/stx/index.js +32 -0
  482. package/dist/src/coin/stx/keyPair.d.ts +55 -0
  483. package/dist/src/coin/stx/keyPair.d.ts.map +1 -0
  484. package/dist/src/coin/stx/keyPair.js +140 -0
  485. package/dist/src/coin/stx/sendmanyBuilder.d.ts +23 -0
  486. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +1 -0
  487. package/dist/src/coin/stx/sendmanyBuilder.js +75 -0
  488. package/dist/src/coin/stx/transaction.d.ts +49 -0
  489. package/dist/src/coin/stx/transaction.d.ts.map +1 -0
  490. package/dist/src/coin/stx/transaction.js +225 -0
  491. package/dist/src/coin/stx/transactionBuilder.d.ts +86 -0
  492. package/dist/src/coin/stx/transactionBuilder.d.ts.map +1 -0
  493. package/dist/src/coin/stx/transactionBuilder.js +263 -0
  494. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +30 -0
  495. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +1 -0
  496. package/dist/src/coin/stx/transactionBuilderFactory.js +81 -0
  497. package/dist/src/coin/stx/transferBuilder.d.ts +30 -0
  498. package/dist/src/coin/stx/transferBuilder.d.ts.map +1 -0
  499. package/dist/src/coin/stx/transferBuilder.js +99 -0
  500. package/dist/src/coin/stx/utils.d.ts +207 -0
  501. package/dist/src/coin/stx/utils.d.ts.map +1 -0
  502. package/dist/src/coin/stx/utils.js +503 -0
  503. package/dist/src/coin/trx/address.d.ts +11 -0
  504. package/dist/src/coin/trx/address.d.ts.map +1 -0
  505. package/dist/src/coin/trx/address.js +13 -0
  506. package/dist/src/coin/trx/contractCallBuilder.d.ts +96 -0
  507. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -0
  508. package/dist/src/coin/trx/contractCallBuilder.js +281 -0
  509. package/dist/src/coin/trx/enum.d.ts +23 -0
  510. package/dist/src/coin/trx/enum.d.ts.map +1 -0
  511. package/dist/src/coin/trx/enum.js +28 -0
  512. package/dist/src/coin/trx/iface.d.ts +92 -0
  513. package/dist/src/coin/trx/iface.d.ts.map +1 -0
  514. package/dist/src/coin/trx/iface.js +3 -0
  515. package/dist/src/coin/trx/index.d.ts +10 -0
  516. package/dist/src/coin/trx/index.d.ts.map +1 -0
  517. package/dist/src/coin/trx/index.js +39 -0
  518. package/dist/src/coin/trx/keyPair.d.ts +44 -0
  519. package/dist/src/coin/trx/keyPair.d.ts.map +1 -0
  520. package/dist/src/coin/trx/keyPair.js +121 -0
  521. package/dist/src/coin/trx/transaction.d.ts +74 -0
  522. package/dist/src/coin/trx/transaction.d.ts.map +1 -0
  523. package/dist/src/coin/trx/transaction.js +205 -0
  524. package/dist/src/coin/trx/transactionBuilder.d.ts +65 -0
  525. package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -0
  526. package/dist/src/coin/trx/transactionBuilder.js +215 -0
  527. package/dist/src/coin/trx/utils.d.ts +127 -0
  528. package/dist/src/coin/trx/utils.d.ts.map +1 -0
  529. package/dist/src/coin/trx/utils.js +369 -0
  530. package/dist/src/coin/trx/wrappedBuilder.d.ts +52 -0
  531. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -0
  532. package/dist/src/coin/trx/wrappedBuilder.js +104 -0
  533. package/dist/src/coin/xrp/index.d.ts +5 -0
  534. package/dist/src/coin/xrp/index.d.ts.map +1 -0
  535. package/dist/src/coin/xrp/index.js +29 -0
  536. package/dist/src/coin/xrp/keyPair.d.ts +10 -0
  537. package/dist/src/coin/xrp/keyPair.d.ts.map +1 -0
  538. package/dist/src/coin/xrp/keyPair.js +16 -0
  539. package/dist/src/coin/xrp/transaction.d.ts +10 -0
  540. package/dist/src/coin/xrp/transaction.d.ts.map +1 -0
  541. package/dist/src/coin/xrp/transaction.js +20 -0
  542. package/dist/src/coin/xrp/transactionBuilder.d.ts +27 -0
  543. package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -0
  544. package/dist/src/coin/xrp/transactionBuilder.js +46 -0
  545. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +24 -0
  546. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -0
  547. package/dist/src/coin/xrp/transactionBuilderFactory.js +38 -0
  548. package/dist/src/coin/xrp/transferBuilder.d.ts +14 -0
  549. package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -0
  550. package/dist/src/coin/xrp/transferBuilder.js +24 -0
  551. package/dist/src/coin/xrp/utils.d.ts +16 -0
  552. package/dist/src/coin/xrp/utils.d.ts.map +1 -0
  553. package/dist/src/coin/xrp/utils.js +32 -0
  554. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +14 -0
  555. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -0
  556. package/dist/src/coin/xrp/walletInitializationBuilder.js +24 -0
  557. package/dist/src/coin/xtz/address.d.ts +8 -0
  558. package/dist/src/coin/xtz/address.d.ts.map +1 -0
  559. package/dist/src/coin/xtz/address.js +10 -0
  560. package/dist/src/coin/xtz/iface.d.ts +81 -0
  561. package/dist/src/coin/xtz/iface.d.ts.map +1 -0
  562. package/dist/src/coin/xtz/iface.js +3 -0
  563. package/dist/src/coin/xtz/index.d.ts +8 -0
  564. package/dist/src/coin/xtz/index.d.ts.map +1 -0
  565. package/dist/src/coin/xtz/index.js +37 -0
  566. package/dist/src/coin/xtz/keyPair.d.ts +40 -0
  567. package/dist/src/coin/xtz/keyPair.d.ts.map +1 -0
  568. package/dist/src/coin/xtz/keyPair.js +136 -0
  569. package/dist/src/coin/xtz/multisigUtils.d.ts +134 -0
  570. package/dist/src/coin/xtz/multisigUtils.d.ts.map +1 -0
  571. package/dist/src/coin/xtz/multisigUtils.js +1180 -0
  572. package/dist/src/coin/xtz/transaction.d.ts +119 -0
  573. package/dist/src/coin/xtz/transaction.d.ts.map +1 -0
  574. package/dist/src/coin/xtz/transaction.js +315 -0
  575. package/dist/src/coin/xtz/transactionBuilder.d.ts +171 -0
  576. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +1 -0
  577. package/dist/src/coin/xtz/transactionBuilder.js +453 -0
  578. package/dist/src/coin/xtz/transferBuilder.d.ts +24 -0
  579. package/dist/src/coin/xtz/transferBuilder.d.ts.map +1 -0
  580. package/dist/src/coin/xtz/transferBuilder.js +64 -0
  581. package/dist/src/coin/xtz/utils.d.ts +265 -0
  582. package/dist/src/coin/xtz/utils.d.ts.map +1 -0
  583. package/dist/src/coin/xtz/utils.js +460 -0
  584. package/dist/src/index.d.ts +2 -0
  585. package/dist/src/index.d.ts.map +1 -1
  586. package/dist/src/index.js +4 -2
  587. package/dist/src/mpc/curves/baseCurve.d.ts +18 -0
  588. package/dist/src/mpc/curves/baseCurve.d.ts.map +1 -0
  589. package/dist/src/mpc/curves/baseCurve.js +6 -0
  590. package/dist/src/mpc/curves/ed25519.d.ts +17 -0
  591. package/dist/src/mpc/curves/ed25519.d.ts.map +1 -0
  592. package/dist/src/mpc/curves/ed25519.js +48 -0
  593. package/dist/src/mpc/curves/index.d.ts +5 -0
  594. package/dist/src/mpc/curves/index.d.ts.map +1 -0
  595. package/dist/src/mpc/curves/index.js +6 -0
  596. package/dist/src/mpc/curves/secp256k1.d.ts +16 -0
  597. package/dist/src/mpc/curves/secp256k1.d.ts.map +1 -0
  598. package/dist/src/mpc/curves/secp256k1.js +66 -0
  599. package/dist/src/mpc/curves.d.ts +29 -0
  600. package/dist/src/mpc/curves.d.ts.map +1 -0
  601. package/dist/src/mpc/curves.js +96 -0
  602. package/dist/src/mpc/hdTree.d.ts +24 -0
  603. package/dist/src/mpc/hdTree.d.ts.map +1 -0
  604. package/dist/src/mpc/hdTree.js +143 -0
  605. package/dist/src/mpc/shamir.d.ts +26 -0
  606. package/dist/src/mpc/shamir.d.ts.map +1 -0
  607. package/dist/src/mpc/shamir.js +87 -0
  608. package/dist/src/mpc/tss/eddsa/eddsa.d.ts +29 -0
  609. package/dist/src/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  610. package/dist/src/mpc/tss/eddsa/eddsa.js +273 -0
  611. package/dist/src/mpc/tss/eddsa/index.d.ts +4 -0
  612. package/dist/src/mpc/tss/eddsa/index.d.ts.map +1 -0
  613. package/dist/src/mpc/tss/eddsa/index.js +30 -0
  614. package/dist/src/mpc/tss/eddsa/types.d.ts +70 -0
  615. package/dist/src/mpc/tss/eddsa/types.d.ts.map +1 -0
  616. package/dist/src/mpc/tss/eddsa/types.js +3 -0
  617. package/dist/src/mpc/tss/index.d.ts +5 -0
  618. package/dist/src/mpc/tss/index.d.ts.map +1 -0
  619. package/dist/src/mpc/tss/index.js +32 -0
  620. package/dist/src/mpc/tss.d.ts +98 -0
  621. package/dist/src/mpc/tss.d.ts.map +1 -0
  622. package/dist/src/mpc/tss.js +344 -0
  623. package/dist/src/mpc/util.d.ts +7 -0
  624. package/dist/src/mpc/util.d.ts.map +1 -0
  625. package/dist/src/mpc/util.js +38 -0
  626. package/dist/src/utils/crypto.d.ts +99 -0
  627. package/dist/src/utils/crypto.d.ts.map +1 -0
  628. package/dist/src/utils/crypto.js +260 -0
  629. package/dist/src/utils/ed25519KeyDeriver.d.ts +49 -0
  630. package/dist/src/utils/ed25519KeyDeriver.d.ts.map +1 -0
  631. package/dist/src/utils/ed25519KeyDeriver.js +92 -0
  632. package/dist/tsconfig.tsbuildinfo +7282 -1934
  633. package/package.json +24 -27
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ import { AddressFormat, DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo/sdk-core';
3
+ /**
4
+ * Tron keys and address management.
5
+ */
6
+ export declare class KeyPair extends Secp256k1ExtendedKeyPair {
7
+ /**
8
+ * Public constructor. By default, creates a key pair with a random master seed.
9
+ *
10
+ * @param {KeyPairOptions} source Either a master seed, a private key (extended or raw), or a public key
11
+ * (extended, compressed, or uncompressed)
12
+ */
13
+ constructor(source?: KeyPairOptions);
14
+ /**
15
+ * Tron default keys format is raw private and uncompressed public key
16
+ *
17
+ * @returns {DefaultKeys} The keys in the protocol default key format
18
+ */
19
+ getKeys(): DefaultKeys;
20
+ /**
21
+ * Get a public address in the specified format, or in base58 if none is provided.
22
+ *
23
+ * @param {AddressFormat} format The address specified format
24
+ * @returns {string} The public address in the specified format
25
+ */
26
+ getAddress(format?: AddressFormat): string;
27
+ /**
28
+ * Generates a signature for an arbitrary string with the current private key using keccak256
29
+ * hashing algorithm. Throws if there is no private key.
30
+ *
31
+ * @param {string} message to produce a signature for
32
+ * @returns {Buffer} The signature as a buffer
33
+ */
34
+ signMessage(message: string): Buffer;
35
+ /**
36
+ * Verifies a message signature using the current public key.
37
+ *
38
+ * @param {string} message signed
39
+ * @param {Buffer} signature to verify
40
+ * @returns {boolean} True if the message was signed with the current key pair
41
+ */
42
+ verifySignature(message: string, signature: Buffer): boolean;
43
+ }
44
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/trx/keyPair.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,aAAa,EACb,WAAW,EAIX,cAAc,EACd,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAOtB;;;;;OAKG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAc1C;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAUpC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAK7D"}
@@ -0,0 +1,121 @@
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.KeyPair = void 0;
23
+ const bip32 = __importStar(require("bip32"));
24
+ const crypto_1 = require("crypto");
25
+ const sdk_core_1 = require("@bitgo/sdk-core");
26
+ const Utils = __importStar(require("./utils"));
27
+ const DEFAULT_SEED_SIZE_BYTES = 16;
28
+ /**
29
+ * Tron keys and address management.
30
+ */
31
+ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
32
+ /**
33
+ * Public constructor. By default, creates a key pair with a random master seed.
34
+ *
35
+ * @param {KeyPairOptions} source Either a master seed, a private key (extended or raw), or a public key
36
+ * (extended, compressed, or uncompressed)
37
+ */
38
+ constructor(source) {
39
+ super(source);
40
+ if (!source) {
41
+ const seed = crypto_1.randomBytes(DEFAULT_SEED_SIZE_BYTES);
42
+ this.hdNode = bip32.fromSeed(seed);
43
+ }
44
+ else if (sdk_core_1.isSeed(source)) {
45
+ this.hdNode = bip32.fromSeed(source.seed);
46
+ }
47
+ else if (sdk_core_1.isPrivateKey(source)) {
48
+ super.recordKeysFromPrivateKey(source.prv);
49
+ }
50
+ else if (sdk_core_1.isPublicKey(source)) {
51
+ super.recordKeysFromPublicKey(source.pub);
52
+ }
53
+ else {
54
+ throw new Error('Invalid key pair options');
55
+ }
56
+ if (this.hdNode) {
57
+ this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
58
+ }
59
+ }
60
+ /**
61
+ * Tron default keys format is raw private and uncompressed public key
62
+ *
63
+ * @returns {DefaultKeys} The keys in the protocol default key format
64
+ */
65
+ getKeys() {
66
+ var _a;
67
+ return {
68
+ pub: this.getPublicKey({ compressed: false }).toString('hex').toUpperCase(),
69
+ prv: (_a = this.getPrivateKey()) === null || _a === void 0 ? void 0 : _a.toString('hex').toUpperCase(),
70
+ };
71
+ }
72
+ /**
73
+ * Get a public address in the specified format, or in base58 if none is provided.
74
+ *
75
+ * @param {AddressFormat} format The address specified format
76
+ * @returns {string} The public address in the specified format
77
+ */
78
+ getAddress(format) {
79
+ const { pub } = this.getKeys();
80
+ // These are custom Tron methods. They can probably be replaced with other methods or libraries
81
+ const addressBytes = Utils.getRawAddressFromPubKey(Buffer.from(pub, 'hex'));
82
+ if (!format || format === sdk_core_1.AddressFormat.base58) {
83
+ // Default address are in hex
84
+ return Utils.getBase58AddressFromByteArray(addressBytes);
85
+ }
86
+ else if (format === sdk_core_1.AddressFormat.hex) {
87
+ return Utils.getHexAddressFromByteArray(addressBytes);
88
+ }
89
+ throw new Error('Unsupported address format');
90
+ }
91
+ /**
92
+ * Generates a signature for an arbitrary string with the current private key using keccak256
93
+ * hashing algorithm. Throws if there is no private key.
94
+ *
95
+ * @param {string} message to produce a signature for
96
+ * @returns {Buffer} The signature as a buffer
97
+ */
98
+ signMessage(message) {
99
+ const messageToSign = Buffer.from(message).toString('hex');
100
+ const { prv } = this.getKeys();
101
+ if (!prv) {
102
+ throw new Error('Missing private key');
103
+ }
104
+ const signature = Utils.signString(messageToSign, prv, true).replace(/^0x/, '');
105
+ return Buffer.from(signature, 'hex');
106
+ }
107
+ /**
108
+ * Verifies a message signature using the current public key.
109
+ *
110
+ * @param {string} message signed
111
+ * @param {Buffer} signature to verify
112
+ * @returns {boolean} True if the message was signed with the current key pair
113
+ */
114
+ verifySignature(message, signature) {
115
+ const messageToVerify = Buffer.from(message).toString('hex');
116
+ const address = this.getAddress(sdk_core_1.AddressFormat.base58);
117
+ return Utils.verifySignature(messageToVerify, address, signature.toString('hex'), true);
118
+ }
119
+ }
120
+ exports.KeyPair = KeyPair;
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3RyeC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsbUNBQXFDO0FBQ3JDLDhDQVF5QjtBQUN6QiwrQ0FBaUM7QUFFakMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7O09BS0c7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxvQkFBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO2FBQU0sSUFBSSxpQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7YUFBTSxJQUFJLHVCQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QzthQUFNLElBQUksc0JBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLG1DQUF3QixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU87O1FBQ0wsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUMzRSxHQUFHLEVBQUUsTUFBQSxJQUFJLENBQUMsYUFBYSxFQUFFLDBDQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO1NBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsTUFBc0I7UUFDL0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQiwrRkFBK0Y7UUFDL0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLEtBQUssd0JBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDOUMsNkJBQTZCO1lBQzdCLE9BQU8sS0FBSyxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFEO2FBQU0sSUFBSSxNQUFNLEtBQUssd0JBQWEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdkQ7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGVBQWUsQ0FBQyxPQUFlLEVBQUUsU0FBaUI7UUFDaEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBeEZELDBCQXdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpcDMyIGZyb20gJ2JpcDMyJztcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7XG4gIEFkZHJlc3NGb3JtYXQsXG4gIERlZmF1bHRLZXlzLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxuICBpc1NlZWQsXG4gIEtleVBhaXJPcHRpb25zLFxuICBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAxNjtcblxuLyoqXG4gKiBUcm9uIGtleXMgYW5kIGFkZHJlc3MgbWFuYWdlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBTZWNwMjU2azFFeHRlbmRlZEtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyT3B0aW9uc30gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5IChleHRlbmRlZCBvciByYXcpLCBvciBhIHB1YmxpYyBrZXlcbiAgICogICAgIChleHRlbmRlZCwgY29tcHJlc3NlZCwgb3IgdW5jb21wcmVzc2VkKVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICBjb25zdCBzZWVkID0gcmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzU2VlZChzb3VyY2UpKSB7XG4gICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21TZWVkKHNvdXJjZS5zZWVkKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICBzdXBlci5yZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkoc291cmNlLnBydik7XG4gICAgfSBlbHNlIGlmIChpc1B1YmxpY0tleShzb3VyY2UpKSB7XG4gICAgICBzdXBlci5yZWNvcmRLZXlzRnJvbVB1YmxpY0tleShzb3VyY2UucHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZE5vZGUpIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpci50b0tleVBhaXIodGhpcy5oZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcm9uIGRlZmF1bHQga2V5cyBmb3JtYXQgaXMgcmF3IHByaXZhdGUgYW5kIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAqXG4gICAqIEByZXR1cm5zIHtEZWZhdWx0S2V5c30gVGhlIGtleXMgaW4gdGhlIHByb3RvY29sIGRlZmF1bHQga2V5IGZvcm1hdFxuICAgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogdGhpcy5nZXRQdWJsaWNLZXkoeyBjb21wcmVzc2VkOiBmYWxzZSB9KS50b1N0cmluZygnaGV4JykudG9VcHBlckNhc2UoKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKS50b1VwcGVyQ2FzZSgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgcHVibGljIGFkZHJlc3MgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQsIG9yIGluIGJhc2U1OCBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge0FkZHJlc3NGb3JtYXR9IGZvcm1hdCBUaGUgYWRkcmVzcyBzcGVjaWZpZWQgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBwdWJsaWMgYWRkcmVzcyBpbiB0aGUgc3BlY2lmaWVkIGZvcm1hdFxuICAgKi9cbiAgZ2V0QWRkcmVzcyhmb3JtYXQ/OiBBZGRyZXNzRm9ybWF0KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHB1YiB9ID0gdGhpcy5nZXRLZXlzKCk7XG4gICAgLy8gVGhlc2UgYXJlIGN1c3RvbSBUcm9uIG1ldGhvZHMuIFRoZXkgY2FuIHByb2JhYmx5IGJlIHJlcGxhY2VkIHdpdGggb3RoZXIgbWV0aG9kcyBvciBsaWJyYXJpZXNcbiAgICBjb25zdCBhZGRyZXNzQnl0ZXMgPSBVdGlscy5nZXRSYXdBZGRyZXNzRnJvbVB1YktleShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG5cbiAgICBpZiAoIWZvcm1hdCB8fCBmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQuYmFzZTU4KSB7XG4gICAgICAvLyBEZWZhdWx0IGFkZHJlc3MgYXJlIGluIGhleFxuICAgICAgcmV0dXJuIFV0aWxzLmdldEJhc2U1OEFkZHJlc3NGcm9tQnl0ZUFycmF5KGFkZHJlc3NCeXRlcyk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQuaGV4KSB7XG4gICAgICByZXR1cm4gVXRpbHMuZ2V0SGV4QWRkcmVzc0Zyb21CeXRlQXJyYXkoYWRkcmVzc0J5dGVzKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBhZGRyZXNzIGZvcm1hdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZSBmb3IgYW4gYXJiaXRyYXJ5IHN0cmluZyB3aXRoIHRoZSBjdXJyZW50IHByaXZhdGUga2V5IHVzaW5nIGtlY2NhazI1NlxuICAgKiBoYXNoaW5nIGFsZ29yaXRobS4gVGhyb3dzIGlmIHRoZXJlIGlzIG5vIHByaXZhdGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSB0byBwcm9kdWNlIGEgc2lnbmF0dXJlIGZvclxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBUaGUgc2lnbmF0dXJlIGFzIGEgYnVmZmVyXG4gICAqL1xuICBzaWduTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIGNvbnN0IG1lc3NhZ2VUb1NpZ24gPSBCdWZmZXIuZnJvbShtZXNzYWdlKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgeyBwcnYgfSA9IHRoaXMuZ2V0S2V5cygpO1xuICAgIGlmICghcHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gVXRpbHMuc2lnblN0cmluZyhtZXNzYWdlVG9TaWduLCBwcnYsIHRydWUpLnJlcGxhY2UoL14weC8sICcnKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgYSBtZXNzYWdlIHNpZ25hdHVyZSB1c2luZyB0aGUgY3VycmVudCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBzaWduZWRcbiAgICogQHBhcmFtIHtCdWZmZXJ9IHNpZ25hdHVyZSB0byB2ZXJpZnlcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIG1lc3NhZ2Ugd2FzIHNpZ25lZCB3aXRoIHRoZSBjdXJyZW50IGtleSBwYWlyXG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1lc3NhZ2VUb1ZlcmlmeSA9IEJ1ZmZlci5mcm9tKG1lc3NhZ2UpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQuYmFzZTU4KTtcbiAgICByZXR1cm4gVXRpbHMudmVyaWZ5U2lnbmF0dXJlKG1lc3NhZ2VUb1ZlcmlmeSwgYWRkcmVzcywgc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSwgdHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { BaseKey, BaseTransaction, TransactionType } from '@bitgo/sdk-core';
3
+ import { ContractEntry, TransactionReceipt } from './iface';
4
+ /**
5
+ * Tron transaction model.
6
+ */
7
+ export declare class Transaction extends BaseTransaction {
8
+ protected _validFrom: number;
9
+ protected _validTo: number;
10
+ protected _inputs: ContractEntry[];
11
+ protected _outputs: ContractEntry[];
12
+ private _decodedRawDataHex;
13
+ private _transaction?;
14
+ /**
15
+ * Public constructor.
16
+ *
17
+ * @param coinConfig
18
+ * @param rawTransaction
19
+ */
20
+ constructor(coinConfig: Readonly<CoinConfig>, rawTransaction?: TransactionReceipt);
21
+ /**
22
+ * Parse the transaction raw data and record the most important fields.
23
+ *
24
+ * @param rawData Object from a tron transaction
25
+ */
26
+ private recordRawDataFields;
27
+ /**
28
+ * Recalculate and update the transaction id. This should be done after changing any transaction
29
+ * field since the the id is a hash of the transaction body.
30
+ */
31
+ private updateId;
32
+ /**
33
+ * Extend the expiration date by the given number of milliseconds.
34
+ *
35
+ * @param extensionMs The number of milliseconds to extend the expiration by
36
+ */
37
+ extendExpiration(extensionMs: number): void;
38
+ /**
39
+ * Get the signatures associated with this transaction.
40
+ */
41
+ get signature(): string[];
42
+ /**
43
+ * Get the time in milliseconds this transaction becomes valid and can be broadcasted to the
44
+ * network.
45
+ */
46
+ get validFrom(): number;
47
+ /**
48
+ * Get the expiration time in milliseconds.
49
+ */
50
+ get validTo(): number;
51
+ /** @inheritdoc */
52
+ get outputs(): ContractEntry[];
53
+ /** @inheritdoc */
54
+ get inputs(): ContractEntry[];
55
+ /** @inheritdoc */
56
+ canSign(key: BaseKey): boolean;
57
+ /**
58
+ * Sets this transaction
59
+ *
60
+ * @param {Transaction} tx transaction
61
+ */
62
+ setTransactionReceipt(tx: TransactionReceipt): void;
63
+ /**
64
+ * Set the transaction type
65
+ *
66
+ * @param {TransactionType} transactionType The transaction type to be set
67
+ */
68
+ setTransactionType(transactionType: TransactionType): void;
69
+ /** @inheritdoc */
70
+ toJson(): TransactionReceipt;
71
+ /** @inheritdoc */
72
+ toBroadcastFormat(): any;
73
+ }
74
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/trx/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EACL,OAAO,EACP,eAAe,EAGf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAW,kBAAkB,EAA0C,MAAM,SAAS,CAAC;AAE7G;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAE9C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAEpC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C;;;;;OAKG;gBACS,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,EAAE,kBAAkB;IAejF;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAgC3C;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,EAAE,CAKxB;IACD;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,kBAAkB;IAClB,IAAI,OAAO,IAAI,aAAa,EAAE,CAE7B;IAED,kBAAkB;IAClB,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAO9B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,EAAE,kBAAkB;IAK5C;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,kBAAkB;IAClB,MAAM,IAAI,kBAAkB;IAO5B,kBAAkB;IAClB,iBAAiB,IAAI,GAAG;CAGzB"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Transaction = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const tron_1 = require("../../../resources/trx/protobuf/tron");
10
+ const sdk_core_1 = require("@bitgo/sdk-core");
11
+ const enum_1 = require("./enum");
12
+ const utils_1 = require("./utils");
13
+ /**
14
+ * Tron transaction model.
15
+ */
16
+ class Transaction extends sdk_core_1.BaseTransaction {
17
+ /**
18
+ * Public constructor.
19
+ *
20
+ * @param coinConfig
21
+ * @param rawTransaction
22
+ */
23
+ constructor(coinConfig, rawTransaction) {
24
+ super(coinConfig);
25
+ if (rawTransaction) {
26
+ if (!rawTransaction.txID) {
27
+ throw new sdk_core_1.ParseTransactionError('Transaction has no id');
28
+ }
29
+ this._id = rawTransaction.txID;
30
+ this._transaction = rawTransaction;
31
+ this._decodedRawDataHex = utils_1.decodeTransaction(rawTransaction.raw_data_hex);
32
+ // Destination depends on the contract type
33
+ this.recordRawDataFields(this._decodedRawDataHex);
34
+ }
35
+ }
36
+ /**
37
+ * Parse the transaction raw data and record the most important fields.
38
+ *
39
+ * @param rawData Object from a tron transaction
40
+ */
41
+ recordRawDataFields(rawData) {
42
+ // Contract-agnostic fields
43
+ this._validFrom = rawData.timestamp;
44
+ this._validTo = rawData.expiration;
45
+ let output, input;
46
+ // Contract-specific fields
47
+ switch (rawData.contractType) {
48
+ case enum_1.ContractType.Transfer:
49
+ this._type = sdk_core_1.TransactionType.Send;
50
+ const value = new bignumber_js_1.default(rawData.contract[0].parameter.value.amount).toFixed(0);
51
+ output = {
52
+ address: rawData.contract[0].parameter.value.to_address,
53
+ value,
54
+ };
55
+ input = {
56
+ address: rawData.contract[0].parameter.value.owner_address,
57
+ value,
58
+ };
59
+ break;
60
+ case enum_1.ContractType.AccountPermissionUpdate:
61
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
62
+ output = {
63
+ address: rawData.contract.owner_address,
64
+ value: '0',
65
+ };
66
+ input = {
67
+ address: rawData.contract.owner_address,
68
+ value: '0',
69
+ };
70
+ break;
71
+ case enum_1.ContractType.TriggerSmartContract:
72
+ this._type = sdk_core_1.TransactionType.ContractCall;
73
+ const contractCallValues = rawData.contract[0].parameter.value;
74
+ output = {
75
+ address: contractCallValues.owner_address,
76
+ value: '0',
77
+ };
78
+ input = {
79
+ address: contractCallValues.owner_address,
80
+ contractAddress: contractCallValues.contract_address,
81
+ data: contractCallValues.data,
82
+ value: '0',
83
+ };
84
+ break;
85
+ default:
86
+ throw new sdk_core_1.ParseTransactionError('Unsupported contract type');
87
+ }
88
+ this._inputs = [input];
89
+ this._outputs = [output];
90
+ }
91
+ /**
92
+ * Recalculate and update the transaction id. This should be done after changing any transaction
93
+ * field since the the id is a hash of the transaction body.
94
+ */
95
+ updateId() {
96
+ if (!this._transaction) {
97
+ throw new sdk_core_1.ParseTransactionError('Empty transaction');
98
+ }
99
+ const hexBuffer = Buffer.from(this._transaction.raw_data_hex, 'hex');
100
+ const newTxid = crypto_1.createHash('sha256').update(hexBuffer).digest('hex');
101
+ this._transaction.txID = newTxid;
102
+ this._id = newTxid;
103
+ }
104
+ /**
105
+ * Extend the expiration date by the given number of milliseconds.
106
+ *
107
+ * @param extensionMs The number of milliseconds to extend the expiration by
108
+ */
109
+ extendExpiration(extensionMs) {
110
+ if (extensionMs < 0) {
111
+ throw new sdk_core_1.ExtendTransactionError('Invalid extension range. Must be positive a integer');
112
+ }
113
+ if (!this._transaction) {
114
+ throw new sdk_core_1.ExtendTransactionError('Empty transaction');
115
+ }
116
+ if (this._transaction.signature && this._transaction.signature.length > 0) {
117
+ throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
118
+ }
119
+ const rawDataHex = this._transaction.raw_data_hex;
120
+ const bytes = Buffer.from(rawDataHex, 'hex');
121
+ let raw;
122
+ try {
123
+ raw = tron_1.protocol.Transaction.raw.decode(bytes);
124
+ const newExpiration = new bignumber_js_1.default(raw.expiration).plus(extensionMs).toNumber();
125
+ raw.expiration = newExpiration;
126
+ const newRawDataHex = Buffer.from(tron_1.protocol.Transaction.raw.encode(raw).finish()).toString('hex');
127
+ // Set the internal variables to account for the new expiration date
128
+ this._transaction.raw_data_hex = newRawDataHex;
129
+ this._transaction.raw_data.expiration = newExpiration;
130
+ this._decodedRawDataHex = utils_1.decodeTransaction(newRawDataHex);
131
+ this.recordRawDataFields(this._decodedRawDataHex);
132
+ this.updateId();
133
+ }
134
+ catch (e) {
135
+ throw new sdk_core_1.ExtendTransactionError('There was an error decoding the initial raw_data_hex from the serialized tx.');
136
+ }
137
+ }
138
+ /**
139
+ * Get the signatures associated with this transaction.
140
+ */
141
+ get signature() {
142
+ if (this._transaction && this._transaction.signature) {
143
+ return this._transaction.signature;
144
+ }
145
+ return [];
146
+ }
147
+ /**
148
+ * Get the time in milliseconds this transaction becomes valid and can be broadcasted to the
149
+ * network.
150
+ */
151
+ get validFrom() {
152
+ return this._validFrom;
153
+ }
154
+ /**
155
+ * Get the expiration time in milliseconds.
156
+ */
157
+ get validTo() {
158
+ return this._validTo;
159
+ }
160
+ /** @inheritdoc */
161
+ get outputs() {
162
+ return this._outputs;
163
+ }
164
+ /** @inheritdoc */
165
+ get inputs() {
166
+ return this._inputs;
167
+ }
168
+ /** @inheritdoc */
169
+ canSign(key) {
170
+ // Tron transaction do not contain the owners account address so it is not possible to check the
171
+ // private key with any but the account main address. This is not enough to fail this check, so
172
+ // it is a no-op.
173
+ return true;
174
+ }
175
+ /**
176
+ * Sets this transaction
177
+ *
178
+ * @param {Transaction} tx transaction
179
+ */
180
+ setTransactionReceipt(tx) {
181
+ this._transaction = tx;
182
+ this.updateId();
183
+ }
184
+ /**
185
+ * Set the transaction type
186
+ *
187
+ * @param {TransactionType} transactionType The transaction type to be set
188
+ */
189
+ setTransactionType(transactionType) {
190
+ this._type = transactionType;
191
+ }
192
+ /** @inheritdoc */
193
+ toJson() {
194
+ if (!this._transaction) {
195
+ throw new sdk_core_1.ParseTransactionError('Empty transaction');
196
+ }
197
+ return this._transaction;
198
+ }
199
+ /** @inheritdoc */
200
+ toBroadcastFormat() {
201
+ return JSON.stringify(this.toJson());
202
+ }
203
+ }
204
+ exports.Transaction = Transaction;
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi90cngvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQW9DO0FBRXBDLGdFQUFxQztBQUNyQywrREFBZ0U7QUFDaEUsOENBTXlCO0FBQ3pCLGlDQUFzQztBQUN0QyxtQ0FBNEM7QUFHNUM7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVU5Qzs7Ozs7T0FLRztJQUNILFlBQVksVUFBZ0MsRUFBRSxjQUFtQztRQUMvRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyx5QkFBaUIsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFekUsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CLENBQUMsT0FBZ0I7UUFDMUMsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxNQUFxQixFQUFFLEtBQW9CLENBQUM7UUFDaEQsMkJBQTJCO1FBQzNCLFFBQVEsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUM1QixLQUFLLG1CQUFZLENB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LENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixNQUFNLElBQUksZ0NBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFwTkQsa0NBb05DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgcHJvdG9jb2wgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvdHJ4L3Byb3RvYnVmL3Ryb24nO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBFeHRlbmRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IENvbnRyYWN0VHlwZSB9IGZyb20gJy4vZW51bSc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2FjdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udHJhY3RFbnRyeSwgUmF3RGF0YSwgVHJhbnNhY3Rpb25SZWNlaXB0LCBUcmFuc2ZlckNvbnRyYWN0LCBUcmlnZ2VyU21hcnRDb250cmFjdCB9IGZyb20gJy4vaWZhY2UnO1xuXG4vKipcbiAqIFRyb24gdHJhbnNhY3Rpb24gbW9kZWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFRyb24gc3BlY2lmaWMgZmllbGRzXG4gIHByb3RlY3RlZCBfdmFsaWRGcm9tOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfdmFsaWRUbzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX2lucHV0czogQ29udHJhY3RFbnRyeVtdO1xuICBwcm90ZWN0ZWQgX291dHB1dHM6IENvbnRyYWN0RW50cnlbXTtcblxuICBwcml2YXRlIF9kZWNvZGVkUmF3RGF0YUhleDogUmF3RGF0YTtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvblJlY2VpcHQ7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIGNvaW5Db25maWdcbiAgICogQHBhcmFtIHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcmF3VHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvblJlY2VpcHQpIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICBpZiAocmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIGlmICghcmF3VHJhbnNhY3Rpb24udHhJRCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBoYXMgbm8gaWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2lkID0gcmF3VHJhbnNhY3Rpb24udHhJRDtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gcmF3VHJhbnNhY3Rpb247XG4gICAgICB0aGlzLl9kZWNvZGVkUmF3RGF0YUhleCA9IGRlY29kZVRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uLnJhd19kYXRhX2hleCk7XG5cbiAgICAgIC8vIERlc3RpbmF0aW9uIGRlcGVuZHMgb24gdGhlIGNvbnRyYWN0IHR5cGVcbiAgICAgIHRoaXMucmVjb3JkUmF3RGF0YUZpZWxkcyh0aGlzLl9kZWNvZGVkUmF3RGF0YUhleCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSB0cmFuc2FjdGlvbiByYXcgZGF0YSBhbmQgcmVjb3JkIHRoZSBtb3N0IGltcG9ydGFudCBmaWVsZHMuXG4gICAqXG4gICAqIEBwYXJhbSByYXdEYXRhIE9iamVjdCBmcm9tIGEgdHJvbiB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWNvcmRSYXdEYXRhRmllbGRzKHJhd0RhdGE6IFJhd0RhdGEpIHtcbiAgICAvLyBDb250cmFjdC1hZ25vc3RpYyBmaWVsZHNcbiAgICB0aGlzLl92YWxpZEZyb20gPSByYXdEYXRhLnRpbWVzdGFtcDtcbiAgICB0aGlzLl92YWxpZFRvID0gcmF3RGF0YS5leHBpcmF0aW9uO1xuXG4gICAgbGV0IG91dHB1dDogQ29udHJhY3RFbnRyeSwgaW5wdXQ6IENvbnRyYWN0RW50cnk7XG4gICAgLy8gQ29udHJhY3Qtc3BlY2lmaWMgZmllbGRzXG4gICAgc3dpdGNoIChyYXdEYXRhLmNvbnRyYWN0VHlwZSkge1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuVHJhbnNmZXI6XG4gICAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBuZXcgQmlnTnVtYmVyKChyYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFRyYW5zZmVyQ29udHJhY3QpLnBhcmFtZXRlci52YWx1ZS5hbW91bnQpLnRvRml4ZWQoMCk7XG4gICAgICAgIG91dHB1dCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiAocmF3RGF0YS5jb250cmFjdFswXSBhcyBUcmFuc2ZlckNvbnRyYWN0KS5wYXJhbWV0ZXIudmFsdWUudG9fYWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXQgPSB7XG4gICAgICAgICAgYWRkcmVzczogKHJhd0RhdGEuY29udHJhY3RbMF0gYXMgVHJhbnNmZXJDb250cmFjdCkucGFyYW1ldGVyLnZhbHVlLm93bmVyX2FkZHJlc3MsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuQWNjb3VudFBlcm1pc3Npb25VcGRhdGU6XG4gICAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gICAgICAgIG91dHB1dCA9IHtcbiAgICAgICAgICBhZGRyZXNzOiAocmF3RGF0YS5jb250cmFjdCBhcyBhbnkpLm93bmVyX2FkZHJlc3MsXG4gICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXQgPSB7XG4gICAgICAgICAgYWRkcmVzczogKHJhd0RhdGEuY29udHJhY3QgYXMgYW55KS5vd25lcl9hZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuVHJpZ2dlclNtYXJ0Q29udHJhY3Q6XG4gICAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsO1xuICAgICAgICBjb25zdCBjb250cmFjdENhbGxWYWx1ZXMgPSAocmF3RGF0YS5jb250cmFjdFswXSBhcyBUcmlnZ2VyU21hcnRDb250cmFjdCkucGFyYW1ldGVyLnZhbHVlO1xuICAgICAgICBvdXRwdXQgPSB7XG4gICAgICAgICAgYWRkcmVzczogY29udHJhY3RDYWxsVmFsdWVzLm93bmVyX2FkZHJlc3MsXG4gICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXQgPSB7XG4gICAgICAgICAgYWRkcmVzczogY29udHJhY3RDYWxsVmFsdWVzLm93bmVyX2FkZHJlc3MsXG4gICAgICAgICAgY29udHJhY3RBZGRyZXNzOiBjb250cmFjdENhbGxWYWx1ZXMuY29udHJhY3RfYWRkcmVzcyxcbiAgICAgICAgICBkYXRhOiBjb250cmFjdENhbGxWYWx1ZXMuZGF0YSxcbiAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ1Vuc3VwcG9ydGVkIGNvbnRyYWN0IHR5cGUnKTtcbiAgICB9XG4gICAgdGhpcy5faW5wdXRzID0gW2lucHV0XTtcbiAgICB0aGlzLl9vdXRwdXRzID0gW291dHB1dF07XG4gIH1cblxuICAvKipcbiAgICogUmVjYWxjdWxhdGUgYW5kIHVwZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaWQuIFRoaXMgc2hvdWxkIGJlIGRvbmUgYWZ0ZXIgY2hhbmdpbmcgYW55IHRyYW5zYWN0aW9uXG4gICAqIGZpZWxkIHNpbmNlIHRoZSB0aGUgaWQgaXMgYSBoYXNoIG9mIHRoZSB0cmFuc2FjdGlvbiBib2R5LlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVJZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBoZXhCdWZmZXIgPSBCdWZmZXIuZnJvbSh0aGlzLl90cmFuc2FjdGlvbi5yYXdfZGF0YV9oZXgsICdoZXgnKTtcbiAgICBjb25zdCBuZXdUeGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi50eElEID0gbmV3VHhpZDtcbiAgICB0aGlzLl9pZCA9IG5ld1R4aWQ7XG4gIH1cblxuICAvKipcbiAgICogRXh0ZW5kIHRoZSBleHBpcmF0aW9uIGRhdGUgYnkgdGhlIGdpdmVuIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIEBwYXJhbSBleHRlbnNpb25NcyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBleHRlbmQgdGhlIGV4cGlyYXRpb24gYnlcbiAgICovXG4gIGV4dGVuZEV4cGlyYXRpb24oZXh0ZW5zaW9uTXM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChleHRlbnNpb25NcyA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFeHRlbmRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGV4dGVuc2lvbiByYW5nZS4gTXVzdCBiZSBwb3NpdGl2ZSBhIGludGVnZXInKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24uc2lnbmF0dXJlICYmIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignQ2Fubm90IGV4dGVuZCBhIHNpZ25lZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHJhd0RhdGFIZXggPSB0aGlzLl90cmFuc2FjdGlvbi5yYXdfZGF0YV9oZXg7XG4gICAgY29uc3QgYnl0ZXMgPSBCdWZmZXIuZnJvbShyYXdEYXRhSGV4LCAnaGV4Jyk7XG4gICAgbGV0IHJhdztcbiAgICB0cnkge1xuICAgICAgcmF3ID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24ucmF3LmRlY29kZShieXRlcyk7XG4gICAgICBjb25zdCBuZXdFeHBpcmF0aW9uID0gbmV3IEJpZ051bWJlcihyYXcuZXhwaXJhdGlvbikucGx1cyhleHRlbnNpb25NcykudG9OdW1iZXIoKTtcbiAgICAgIHJhdy5leHBpcmF0aW9uID0gbmV3RXhwaXJhdGlvbjtcbiAgICAgIGNvbnN0IG5ld1Jhd0RhdGFIZXggPSBCdWZmZXIuZnJvbShwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuZW5jb2RlKHJhdykuZmluaXNoKCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIC8vIFNldCB0aGUgaW50ZXJuYWwgdmFyaWFibGVzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgZXhwaXJhdGlvbiBkYXRlXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5yYXdfZGF0YV9oZXggPSBuZXdSYXdEYXRhSGV4O1xuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24ucmF3X2RhdGEuZXhwaXJhdGlvbiA9IG5ld0V4cGlyYXRpb247XG4gICAgICB0aGlzLl9kZWNvZGVkUmF3RGF0YUhleCA9IGRlY29kZVRyYW5zYWN0aW9uKG5ld1Jhd0RhdGFIZXgpO1xuICAgICAgdGhpcy5yZWNvcmRSYXdEYXRhRmllbGRzKHRoaXMuX2RlY29kZWRSYXdEYXRhSGV4KTtcbiAgICAgIHRoaXMudXBkYXRlSWQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignVGhlcmUgd2FzIGFuIGVycm9yIGRlY29kaW5nIHRoZSBpbml0aWFsIHJhd19kYXRhX2hleCBmcm9tIHRoZSBzZXJpYWxpemVkIHR4LicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpZ25hdHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24gJiYgdGhpcy5fdHJhbnNhY3Rpb24uc2lnbmF0dXJlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb24uc2lnbmF0dXJlO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbiAgLyoqXG4gICAqIEdldCB0aGUgdGltZSBpbiBtaWxsaXNlY29uZHMgdGhpcyB0cmFuc2FjdGlvbiBiZWNvbWVzIHZhbGlkIGFuZCBjYW4gYmUgYnJvYWRjYXN0ZWQgdG8gdGhlXG4gICAqIG5ldHdvcmsuXG4gICAqL1xuICBnZXQgdmFsaWRGcm9tKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkRnJvbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4cGlyYXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICBnZXQgdmFsaWRUbygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92YWxpZFRvO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldCBvdXRwdXRzKCk6IENvbnRyYWN0RW50cnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0IGlucHV0cygpOiBDb250cmFjdEVudHJ5W10ge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICAvLyBUcm9uIHRyYW5zYWN0aW9uIGRvIG5vdCBjb250YWluIHRoZSBvd25lcnMgYWNjb3VudCBhZGRyZXNzIHNvIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGVjayB0aGVcbiAgICAvLyBwcml2YXRlIGtleSB3aXRoIGFueSBidXQgdGhlIGFjY291bnQgbWFpbiBhZGRyZXNzLiBUaGlzIGlzIG5vdCBlbm91Z2ggdG8gZmFpbCB0aGlzIGNoZWNrLCBzb1xuICAgIC8vIGl0IGlzIGEgbm8tb3AuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRyYW5zYWN0aW9uXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblJlY2VpcHQodHg6IFRyYW5zYWN0aW9uUmVjZWlwdCkge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy51cGRhdGVJZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldFxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHJhbnNhY3Rpb25SZWNlaXB0IHtcbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogYW55IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy50b0pzb24oKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { BaseKey, BaseTransactionBuilder } from '@bitgo/sdk-core';
4
+ import { TransactionReceipt } from './iface';
5
+ import { Address } from './address';
6
+ import { Transaction } from './transaction';
7
+ /**
8
+ * Tron transaction builder.
9
+ */
10
+ export declare class TransactionBuilder extends BaseTransactionBuilder {
11
+ private _transaction;
12
+ /**
13
+ * Public constructor.
14
+ *
15
+ * @param {CoinConfig} _coinConfig Configuration object
16
+ */
17
+ constructor(_coinConfig: Readonly<CoinConfig>);
18
+ /**
19
+ * Parse transaction takes in raw JSON directly from the node.
20
+ *
21
+ * @param {TransactionReceipt} rawTransaction The Tron transaction in JSON format as returned by the Tron lib or a stringifyed version of such JSON.
22
+ * @returns {Transaction} Tron transaction
23
+ */
24
+ protected fromImplementation(rawTransaction: TransactionReceipt | string): Transaction;
25
+ /** @inheritdoc */
26
+ protected signImplementation(key: BaseKey): Transaction;
27
+ protected applySignature(key: BaseKey): Transaction;
28
+ /** @inheritdoc */
29
+ protected buildImplementation(): Promise<Transaction>;
30
+ initBuilder(tx: TransactionReceipt | string): void;
31
+ /**
32
+ * Extend the validity of this transaction by the given amount of time
33
+ *
34
+ * @param {number} extensionMs The number of milliseconds to extend the validTo time
35
+ * @returns {undefined}
36
+ */
37
+ extendValidTo(extensionMs: number): void;
38
+ /** @inheritdoc */
39
+ validateValue(value: BigNumber): void;
40
+ /** @inheritdoc */
41
+ validateAddress(address: Address): void;
42
+ /** @inheritdoc */
43
+ validateKey(key: BaseKey): void;
44
+ /**
45
+ * Validate the contents of a raw transaction. The validation
46
+ * phase is to compare the raw-data-hex to the raw-data of the
47
+ * transaction.
48
+ *
49
+ * The contents to be validated are
50
+ * 1. The transaction id
51
+ * 2. The expiration date
52
+ * 3. The timestamp
53
+ * 4. The contract
54
+ *
55
+ * @param {TransactionReceipt | string} rawTransaction The raw transaction to be validated
56
+ */
57
+ validateRawTransaction(rawTransaction: TransactionReceipt | string): void;
58
+ /** @inheritdoc */
59
+ validateTransaction(transaction: Transaction): void;
60
+ /** @inheritdoc */
61
+ protected get transaction(): Transaction;
62
+ /** @inheritdoc */
63
+ protected set transaction(transaction: Transaction);
64
+ }
65
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/trx/transactionBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,sBAAsB,EAKvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,sBAAsB;IAE5D,OAAO,CAAC,YAAY,CAAc;IAClC;;;;OAIG;gBACS,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,WAAW;IAWtF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAWvD,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAuBnD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3D,WAAW,CAAC,EAAE,EAAE,kBAAkB,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxC,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAWrC,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOvC,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQ/B;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IA2CzE,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAQnD,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;CACF"}