@bitgo/account-lib 2.20.0-rc.30 → 2.20.0-rc.33

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 (440) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/resources/README.md +0 -22
  3. package/dist/src/coin/hbar/coinTransferBuilder.js +2 -2
  4. package/dist/src/coin/hbar/iface.d.ts +21 -4
  5. package/dist/src/coin/hbar/iface.d.ts.map +1 -1
  6. package/dist/src/coin/hbar/iface.js +1 -1
  7. package/dist/src/coin/hbar/index.d.ts +3 -0
  8. package/dist/src/coin/hbar/index.d.ts.map +1 -1
  9. package/dist/src/coin/hbar/index.js +8 -2
  10. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +4 -1
  11. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -1
  12. package/dist/src/coin/hbar/tokenAssociateBuilder.js +18 -10
  13. package/dist/src/coin/hbar/tokenTransferBuilder.js +2 -2
  14. package/dist/src/coin/hbar/transaction.d.ts +10 -2
  15. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  16. package/dist/src/coin/hbar/transaction.js +76 -29
  17. package/dist/src/coin/hbar/utils.d.ts +0 -1
  18. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  19. package/dist/src/coin/hbar/utils.js +1 -2
  20. package/dist/src/index.d.ts +20 -10
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +27 -17
  23. package/dist/tsconfig.tsbuildinfo +6757 -19435
  24. package/package.json +19 -32
  25. package/resources/README.md +0 -22
  26. package/dist/browser/bitgo-account-lib.js +0 -2
  27. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -337
  28. package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
  29. package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
  30. package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
  31. package/dist/resources/hbar/protobuf/Duration.proto +0 -28
  32. package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
  33. package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
  34. package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
  35. package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
  36. package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
  37. package/dist/resources/hbar/protobuf/hedera.js +0 -12192
  38. package/dist/resources/trx/protobuf/Contract.proto +0 -256
  39. package/dist/resources/trx/protobuf/Discover.proto +0 -44
  40. package/dist/resources/trx/protobuf/tron.d.ts +0 -11024
  41. package/dist/resources/trx/protobuf/tron.js +0 -31510
  42. package/dist/resources/trx/protobuf/tron.proto +0 -677
  43. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -42
  44. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  45. package/dist/src/coin/algo/assetTransferBuilder.js +0 -105
  46. package/dist/src/coin/algo/errors.d.ts +0 -11
  47. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  48. package/dist/src/coin/algo/errors.js +0 -27
  49. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  50. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  51. package/dist/src/coin/algo/ifaces.js +0 -3
  52. package/dist/src/coin/algo/index.d.ts +0 -13
  53. package/dist/src/coin/algo/index.d.ts.map +0 -1
  54. package/dist/src/coin/algo/index.js +0 -47
  55. package/dist/src/coin/algo/keyPair.d.ts +0 -25
  56. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  57. package/dist/src/coin/algo/keyPair.js +0 -77
  58. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  59. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  60. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -239
  61. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  62. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  63. package/dist/src/coin/algo/seedEncoding.js +0 -97
  64. package/dist/src/coin/algo/transaction.d.ts +0 -75
  65. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  66. package/dist/src/coin/algo/transaction.js +0 -251
  67. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -204
  68. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  69. package/dist/src/coin/algo/transactionBuilder.js +0 -373
  70. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  71. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  72. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -52
  73. package/dist/src/coin/algo/transferBuilder.d.ts +0 -40
  74. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  75. package/dist/src/coin/algo/transferBuilder.js +0 -89
  76. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  77. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  78. package/dist/src/coin/algo/txnSchema.js +0 -68
  79. package/dist/src/coin/algo/utils.d.ts +0 -249
  80. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  81. package/dist/src/coin/algo/utils.js +0 -539
  82. package/dist/src/coin/avaxc/index.d.ts +0 -7
  83. package/dist/src/coin/avaxc/index.d.ts.map +0 -1
  84. package/dist/src/coin/avaxc/index.js +0 -34
  85. package/dist/src/coin/avaxc/keyPair.d.ts +0 -26
  86. package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
  87. package/dist/src/coin/avaxc/keyPair.js +0 -83
  88. package/dist/src/coin/avaxc/resources.d.ts +0 -12
  89. package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
  90. package/dist/src/coin/avaxc/resources.js +0 -27
  91. package/dist/src/coin/avaxc/transactionBuilder.d.ts +0 -17
  92. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
  93. package/dist/src/coin/avaxc/transactionBuilder.js +0 -45
  94. package/dist/src/coin/avaxc/transferBuilder.d.ts +0 -17
  95. package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
  96. package/dist/src/coin/avaxc/transferBuilder.js +0 -25
  97. package/dist/src/coin/avaxc/utils.d.ts +0 -38
  98. package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
  99. package/dist/src/coin/avaxc/utils.js +0 -70
  100. package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
  101. package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
  102. package/dist/src/coin/avaxc/walletUtil.js +0 -62
  103. package/dist/src/coin/celo/index.d.ts +0 -7
  104. package/dist/src/coin/celo/index.d.ts.map +0 -1
  105. package/dist/src/coin/celo/index.js +0 -34
  106. package/dist/src/coin/celo/resources.d.ts +0 -10
  107. package/dist/src/coin/celo/resources.d.ts.map +0 -1
  108. package/dist/src/coin/celo/resources.js +0 -26
  109. package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
  110. package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
  111. package/dist/src/coin/celo/stakingBuilder.js +0 -276
  112. package/dist/src/coin/celo/stakingCall.d.ts +0 -7
  113. package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
  114. package/dist/src/coin/celo/stakingCall.js +0 -13
  115. package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
  116. package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
  117. package/dist/src/coin/celo/stakingUtils.js +0 -98
  118. package/dist/src/coin/celo/transaction.d.ts +0 -9
  119. package/dist/src/coin/celo/transaction.d.ts.map +0 -1
  120. package/dist/src/coin/celo/transaction.js +0 -37
  121. package/dist/src/coin/celo/transactionBuilder.d.ts +0 -85
  122. package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
  123. package/dist/src/coin/celo/transactionBuilder.js +0 -208
  124. package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
  125. package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
  126. package/dist/src/coin/celo/transferBuilder.js +0 -27
  127. package/dist/src/coin/celo/types.d.ts +0 -51
  128. package/dist/src/coin/celo/types.d.ts.map +0 -1
  129. package/dist/src/coin/celo/types.js +0 -222
  130. package/dist/src/coin/celo/utils.d.ts +0 -18
  131. package/dist/src/coin/celo/utils.d.ts.map +0 -1
  132. package/dist/src/coin/celo/utils.js +0 -99
  133. package/dist/src/coin/cspr/constants.d.ts +0 -19
  134. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  135. package/dist/src/coin/cspr/constants.js +0 -28
  136. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  137. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  138. package/dist/src/coin/cspr/delegateBuilder.js +0 -111
  139. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  140. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  141. package/dist/src/coin/cspr/ifaces.js +0 -3
  142. package/dist/src/coin/cspr/index.d.ts +0 -6
  143. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  144. package/dist/src/coin/cspr/index.js +0 -31
  145. package/dist/src/coin/cspr/keyPair.d.ts +0 -18
  146. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  147. package/dist/src/coin/cspr/keyPair.js +0 -75
  148. package/dist/src/coin/cspr/transaction.d.ts +0 -55
  149. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  150. package/dist/src/coin/cspr/transaction.js +0 -227
  151. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -124
  152. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  153. package/dist/src/coin/cspr/transactionBuilder.js +0 -312
  154. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  155. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  156. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -98
  157. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  158. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  159. package/dist/src/coin/cspr/transferBuilder.js +0 -106
  160. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  161. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  162. package/dist/src/coin/cspr/undelegateBuilder.js +0 -111
  163. package/dist/src/coin/cspr/utils.d.ts +0 -188
  164. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  165. package/dist/src/coin/cspr/utils.js +0 -477
  166. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  167. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  168. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -95
  169. package/dist/src/coin/etc/index.d.ts +0 -6
  170. package/dist/src/coin/etc/index.d.ts.map +0 -1
  171. package/dist/src/coin/etc/index.js +0 -33
  172. package/dist/src/coin/etc/resources.d.ts +0 -10
  173. package/dist/src/coin/etc/resources.d.ts.map +0 -1
  174. package/dist/src/coin/etc/resources.js +0 -26
  175. package/dist/src/coin/etc/transactionBuilder.d.ts +0 -17
  176. package/dist/src/coin/etc/transactionBuilder.d.ts.map +0 -1
  177. package/dist/src/coin/etc/transactionBuilder.js +0 -45
  178. package/dist/src/coin/etc/transferBuilder.d.ts +0 -19
  179. package/dist/src/coin/etc/transferBuilder.d.ts.map +0 -1
  180. package/dist/src/coin/etc/transferBuilder.js +0 -27
  181. package/dist/src/coin/etc/utils.d.ts +0 -17
  182. package/dist/src/coin/etc/utils.d.ts.map +0 -1
  183. package/dist/src/coin/etc/utils.js +0 -42
  184. package/dist/src/coin/eth/contractCall.d.ts +0 -8
  185. package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
  186. package/dist/src/coin/eth/contractCall.js +0 -17
  187. package/dist/src/coin/eth/iface.d.ts +0 -122
  188. package/dist/src/coin/eth/iface.d.ts.map +0 -1
  189. package/dist/src/coin/eth/iface.js +0 -8
  190. package/dist/src/coin/eth/index.d.ts +0 -10
  191. package/dist/src/coin/eth/index.d.ts.map +0 -1
  192. package/dist/src/coin/eth/index.js +0 -39
  193. package/dist/src/coin/eth/keyPair.d.ts +0 -26
  194. package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
  195. package/dist/src/coin/eth/keyPair.js +0 -85
  196. package/dist/src/coin/eth/transaction.d.ts +0 -64
  197. package/dist/src/coin/eth/transaction.d.ts.map +0 -1
  198. package/dist/src/coin/eth/transaction.js +0 -137
  199. package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
  200. package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
  201. package/dist/src/coin/eth/transactionBuilder.js +0 -624
  202. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
  203. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
  204. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
  205. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
  206. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
  207. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
  208. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
  209. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
  210. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
  211. package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
  212. package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
  213. package/dist/src/coin/eth/transferBuilder.js +0 -197
  214. package/dist/src/coin/eth/types.d.ts +0 -39
  215. package/dist/src/coin/eth/types.d.ts.map +0 -1
  216. package/dist/src/coin/eth/types.js +0 -135
  217. package/dist/src/coin/eth/utils.d.ts +0 -201
  218. package/dist/src/coin/eth/utils.d.ts.map +0 -1
  219. package/dist/src/coin/eth/utils.js +0 -486
  220. package/dist/src/coin/eth/walletUtil.d.ts +0 -21
  221. package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
  222. package/dist/src/coin/eth/walletUtil.js +0 -31
  223. package/dist/src/coin/hbar/ifaces.d.ts +0 -26
  224. package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
  225. package/dist/src/coin/hbar/ifaces.js +0 -3
  226. package/dist/src/coin/near/constants.d.ts +0 -12
  227. package/dist/src/coin/near/constants.d.ts.map +0 -1
  228. package/dist/src/coin/near/constants.js +0 -15
  229. package/dist/src/coin/near/contractCallWrapper.d.ts +0 -33
  230. package/dist/src/coin/near/contractCallWrapper.d.ts.map +0 -1
  231. package/dist/src/coin/near/contractCallWrapper.js +0 -68
  232. package/dist/src/coin/near/errors.d.ts +0 -5
  233. package/dist/src/coin/near/errors.d.ts.map +0 -1
  234. package/dist/src/coin/near/errors.js +0 -12
  235. package/dist/src/coin/near/iface.d.ts +0 -40
  236. package/dist/src/coin/near/iface.d.ts.map +0 -1
  237. package/dist/src/coin/near/iface.js +0 -8
  238. package/dist/src/coin/near/index.d.ts +0 -11
  239. package/dist/src/coin/near/index.d.ts.map +0 -1
  240. package/dist/src/coin/near/index.js +0 -41
  241. package/dist/src/coin/near/keyPair.d.ts +0 -25
  242. package/dist/src/coin/near/keyPair.d.ts.map +0 -1
  243. package/dist/src/coin/near/keyPair.js +0 -73
  244. package/dist/src/coin/near/stakingActivateBuilder.d.ts +0 -32
  245. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +0 -1
  246. package/dist/src/coin/near/stakingActivateBuilder.js +0 -90
  247. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +0 -32
  248. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +0 -1
  249. package/dist/src/coin/near/stakingDeactivateBuilder.js +0 -89
  250. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +0 -32
  251. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +0 -1
  252. package/dist/src/coin/near/stakingWithdrawBuilder.js +0 -89
  253. package/dist/src/coin/near/transaction.d.ts +0 -90
  254. package/dist/src/coin/near/transaction.d.ts.map +0 -1
  255. package/dist/src/coin/near/transaction.js +0 -368
  256. package/dist/src/coin/near/transactionBuilder.d.ts +0 -89
  257. package/dist/src/coin/near/transactionBuilder.d.ts.map +0 -1
  258. package/dist/src/coin/near/transactionBuilder.js +0 -216
  259. package/dist/src/coin/near/transactionBuilderFactory.d.ts +0 -30
  260. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +0 -1
  261. package/dist/src/coin/near/transactionBuilderFactory.js +0 -71
  262. package/dist/src/coin/near/transferBuilder.d.ts +0 -26
  263. package/dist/src/coin/near/transferBuilder.d.ts.map +0 -1
  264. package/dist/src/coin/near/transferBuilder.js +0 -72
  265. package/dist/src/coin/near/utils.d.ts +0 -42
  266. package/dist/src/coin/near/utils.d.ts.map +0 -1
  267. package/dist/src/coin/near/utils.js +0 -85
  268. package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -12
  269. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +0 -1
  270. package/dist/src/coin/near/walletInitializationBuilder.js +0 -20
  271. package/dist/src/coin/rbtc/index.d.ts +0 -6
  272. package/dist/src/coin/rbtc/index.d.ts.map +0 -1
  273. package/dist/src/coin/rbtc/index.js +0 -33
  274. package/dist/src/coin/rbtc/resources.d.ts +0 -10
  275. package/dist/src/coin/rbtc/resources.d.ts.map +0 -1
  276. package/dist/src/coin/rbtc/resources.js +0 -25
  277. package/dist/src/coin/rbtc/transactionBuilder.d.ts +0 -17
  278. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +0 -1
  279. package/dist/src/coin/rbtc/transactionBuilder.js +0 -44
  280. package/dist/src/coin/rbtc/transferBuilder.d.ts +0 -19
  281. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +0 -1
  282. package/dist/src/coin/rbtc/transferBuilder.js +0 -27
  283. package/dist/src/coin/rbtc/utils.d.ts +0 -17
  284. package/dist/src/coin/rbtc/utils.d.ts.map +0 -1
  285. package/dist/src/coin/rbtc/utils.js +0 -42
  286. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +0 -41
  287. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +0 -1
  288. package/dist/src/coin/sol/ataInitializationBuilder.js +0 -110
  289. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +0 -14
  290. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +0 -1
  291. package/dist/src/coin/sol/ataInitializationTransaction.js +0 -81
  292. package/dist/src/coin/sol/constants.d.ts +0 -58
  293. package/dist/src/coin/sol/constants.d.ts.map +0 -1
  294. package/dist/src/coin/sol/constants.js +0 -76
  295. package/dist/src/coin/sol/iface.d.ts +0 -99
  296. package/dist/src/coin/sol/iface.d.ts.map +0 -1
  297. package/dist/src/coin/sol/iface.js +0 -3
  298. package/dist/src/coin/sol/index.d.ts +0 -11
  299. package/dist/src/coin/sol/index.d.ts.map +0 -1
  300. package/dist/src/coin/sol/index.js +0 -41
  301. package/dist/src/coin/sol/instructionParamsFactory.d.ts +0 -12
  302. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +0 -1
  303. package/dist/src/coin/sol/instructionParamsFactory.js +0 -260
  304. package/dist/src/coin/sol/keyPair.d.ts +0 -26
  305. package/dist/src/coin/sol/keyPair.d.ts.map +0 -1
  306. package/dist/src/coin/sol/keyPair.js +0 -63
  307. package/dist/src/coin/sol/solInstructionFactory.d.ts +0 -10
  308. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +0 -1
  309. package/dist/src/coin/sol/solInstructionFactory.js +0 -213
  310. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +0 -41
  311. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +0 -1
  312. package/dist/src/coin/sol/stakingActivateBuilder.js +0 -94
  313. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +0 -23
  314. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +0 -1
  315. package/dist/src/coin/sol/stakingDeactivateBuilder.js +0 -62
  316. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +0 -31
  317. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +0 -1
  318. package/dist/src/coin/sol/stakingWithdrawBuilder.js +0 -78
  319. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +0 -85
  320. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +0 -1
  321. package/dist/src/coin/sol/tokenEncodeDecode.js +0 -133
  322. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +0 -27
  323. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +0 -1
  324. package/dist/src/coin/sol/tokenTransferBuilder.js +0 -73
  325. package/dist/src/coin/sol/transaction.d.ts +0 -61
  326. package/dist/src/coin/sol/transaction.d.ts.map +0 -1
  327. package/dist/src/coin/sol/transaction.js +0 -369
  328. package/dist/src/coin/sol/transactionBuilder.d.ts +0 -101
  329. package/dist/src/coin/sol/transactionBuilder.d.ts.map +0 -1
  330. package/dist/src/coin/sol/transactionBuilder.js +0 -261
  331. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +0 -76
  332. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +0 -1
  333. package/dist/src/coin/sol/transactionBuilderFactory.js +0 -136
  334. package/dist/src/coin/sol/transferBuilder.d.ts +0 -26
  335. package/dist/src/coin/sol/transferBuilder.d.ts.map +0 -1
  336. package/dist/src/coin/sol/transferBuilder.js +0 -67
  337. package/dist/src/coin/sol/utils.d.ts +0 -146
  338. package/dist/src/coin/sol/utils.d.ts.map +0 -1
  339. package/dist/src/coin/sol/utils.js +0 -361
  340. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +0 -26
  341. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +0 -1
  342. package/dist/src/coin/sol/walletInitializationBuilder.js +0 -71
  343. package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
  344. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
  345. package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
  346. package/dist/src/coin/stx/constants.d.ts +0 -8
  347. package/dist/src/coin/stx/constants.d.ts.map +0 -1
  348. package/dist/src/coin/stx/constants.js +0 -19
  349. package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
  350. package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
  351. package/dist/src/coin/stx/contractBuilder.js +0 -116
  352. package/dist/src/coin/stx/iface.d.ts +0 -48
  353. package/dist/src/coin/stx/iface.d.ts.map +0 -1
  354. package/dist/src/coin/stx/iface.js +0 -3
  355. package/dist/src/coin/stx/index.d.ts +0 -6
  356. package/dist/src/coin/stx/index.d.ts.map +0 -1
  357. package/dist/src/coin/stx/index.js +0 -32
  358. package/dist/src/coin/stx/keyPair.d.ts +0 -55
  359. package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
  360. package/dist/src/coin/stx/keyPair.js +0 -140
  361. package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
  362. package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
  363. package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
  364. package/dist/src/coin/stx/transaction.d.ts +0 -49
  365. package/dist/src/coin/stx/transaction.d.ts.map +0 -1
  366. package/dist/src/coin/stx/transaction.js +0 -225
  367. package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
  368. package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
  369. package/dist/src/coin/stx/transactionBuilder.js +0 -263
  370. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
  371. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
  372. package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
  373. package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
  374. package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
  375. package/dist/src/coin/stx/transferBuilder.js +0 -99
  376. package/dist/src/coin/stx/utils.d.ts +0 -207
  377. package/dist/src/coin/stx/utils.d.ts.map +0 -1
  378. package/dist/src/coin/stx/utils.js +0 -503
  379. package/dist/src/coin/trx/address.d.ts +0 -11
  380. package/dist/src/coin/trx/address.d.ts.map +0 -1
  381. package/dist/src/coin/trx/address.js +0 -13
  382. package/dist/src/coin/trx/contractCallBuilder.d.ts +0 -96
  383. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +0 -1
  384. package/dist/src/coin/trx/contractCallBuilder.js +0 -281
  385. package/dist/src/coin/trx/enum.d.ts +0 -23
  386. package/dist/src/coin/trx/enum.d.ts.map +0 -1
  387. package/dist/src/coin/trx/enum.js +0 -28
  388. package/dist/src/coin/trx/iface.d.ts +0 -92
  389. package/dist/src/coin/trx/iface.d.ts.map +0 -1
  390. package/dist/src/coin/trx/iface.js +0 -3
  391. package/dist/src/coin/trx/index.d.ts +0 -10
  392. package/dist/src/coin/trx/index.d.ts.map +0 -1
  393. package/dist/src/coin/trx/index.js +0 -39
  394. package/dist/src/coin/trx/keyPair.d.ts +0 -44
  395. package/dist/src/coin/trx/keyPair.d.ts.map +0 -1
  396. package/dist/src/coin/trx/keyPair.js +0 -121
  397. package/dist/src/coin/trx/transaction.d.ts +0 -74
  398. package/dist/src/coin/trx/transaction.d.ts.map +0 -1
  399. package/dist/src/coin/trx/transaction.js +0 -205
  400. package/dist/src/coin/trx/transactionBuilder.d.ts +0 -65
  401. package/dist/src/coin/trx/transactionBuilder.d.ts.map +0 -1
  402. package/dist/src/coin/trx/transactionBuilder.js +0 -215
  403. package/dist/src/coin/trx/utils.d.ts +0 -127
  404. package/dist/src/coin/trx/utils.d.ts.map +0 -1
  405. package/dist/src/coin/trx/utils.js +0 -369
  406. package/dist/src/coin/trx/wrappedBuilder.d.ts +0 -52
  407. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +0 -1
  408. package/dist/src/coin/trx/wrappedBuilder.js +0 -104
  409. package/dist/src/coin/xtz/address.d.ts +0 -8
  410. package/dist/src/coin/xtz/address.d.ts.map +0 -1
  411. package/dist/src/coin/xtz/address.js +0 -10
  412. package/dist/src/coin/xtz/iface.d.ts +0 -81
  413. package/dist/src/coin/xtz/iface.d.ts.map +0 -1
  414. package/dist/src/coin/xtz/iface.js +0 -3
  415. package/dist/src/coin/xtz/index.d.ts +0 -8
  416. package/dist/src/coin/xtz/index.d.ts.map +0 -1
  417. package/dist/src/coin/xtz/index.js +0 -37
  418. package/dist/src/coin/xtz/keyPair.d.ts +0 -40
  419. package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
  420. package/dist/src/coin/xtz/keyPair.js +0 -136
  421. package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
  422. package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
  423. package/dist/src/coin/xtz/multisigUtils.js +0 -1180
  424. package/dist/src/coin/xtz/transaction.d.ts +0 -119
  425. package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
  426. package/dist/src/coin/xtz/transaction.js +0 -315
  427. package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
  428. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
  429. package/dist/src/coin/xtz/transactionBuilder.js +0 -453
  430. package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
  431. package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
  432. package/dist/src/coin/xtz/transferBuilder.js +0 -64
  433. package/dist/src/coin/xtz/utils.d.ts +0 -265
  434. package/dist/src/coin/xtz/utils.d.ts.map +0 -1
  435. package/dist/src/coin/xtz/utils.js +0 -460
  436. package/resources/trx/protobuf/Contract.proto +0 -256
  437. package/resources/trx/protobuf/Discover.proto +0 -44
  438. package/resources/trx/protobuf/tron.d.ts +0 -11024
  439. package/resources/trx/protobuf/tron.js +0 -31510
  440. package/resources/trx/protobuf/tron.proto +0 -677
@@ -1,197 +0,0 @@
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.TransferBuilder = void 0;
7
- const ethereumjs_utils_old_1 = __importDefault(require("@bitgo/ethereumjs-utils-old"));
8
- const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
9
- const statics_1 = require("@bitgo/statics");
10
- const sdk_core_1 = require("@bitgo/sdk-core");
11
- const utils_1 = require("./utils");
12
- /** ETH transfer builder */
13
- class TransferBuilder {
14
- constructor(serializedData) {
15
- this._EMPTY_HEX_VALUE = '0x';
16
- if (serializedData) {
17
- this.decodeTransferData(serializedData);
18
- }
19
- else {
20
- // initialize with default values for non mandatory fields
21
- this._expirationTime = this.getExpirationTime();
22
- this._data = this._EMPTY_HEX_VALUE;
23
- this._signature = this._EMPTY_HEX_VALUE;
24
- }
25
- }
26
- /**
27
- * A method to set the ERC20 token to be transferred.
28
- * This ERC20 token may not be compatible with the network.
29
- *
30
- * @param {string} coin the ERC20 coin to be set
31
- * @returns {TransferBuilder} the transfer builder instance modified
32
- */
33
- coin(coin) {
34
- this._coin = statics_1.coins.get(coin);
35
- if (this._coin instanceof statics_1.ContractAddressDefinedToken) {
36
- this._tokenContractAddress = this._coin.contractAddress.toString();
37
- }
38
- return this;
39
- }
40
- data(additionalData) {
41
- this._signature = this._EMPTY_HEX_VALUE;
42
- this._data = additionalData;
43
- return this;
44
- }
45
- amount(amount) {
46
- if (!utils_1.isValidAmount(amount)) {
47
- throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
48
- }
49
- this._signature = this._EMPTY_HEX_VALUE;
50
- this._amount = amount;
51
- return this;
52
- }
53
- to(address) {
54
- if (utils_1.isValidEthAddress(address)) {
55
- this._signature = this._EMPTY_HEX_VALUE;
56
- this._toAddress = address;
57
- return this;
58
- }
59
- throw new sdk_core_1.InvalidParameterValueError('Invalid address');
60
- }
61
- contractSequenceId(counter) {
62
- if (counter >= 0) {
63
- this._signature = this._EMPTY_HEX_VALUE;
64
- this._sequenceId = counter;
65
- return this;
66
- }
67
- throw new sdk_core_1.InvalidParameterValueError('Invalid contract sequence id');
68
- }
69
- key(signKey) {
70
- this._signKey = signKey;
71
- return this;
72
- }
73
- expirationTime(date) {
74
- if (date > 0) {
75
- this._signature = this._EMPTY_HEX_VALUE;
76
- this._expirationTime = date;
77
- return this;
78
- }
79
- throw new sdk_core_1.InvalidParameterValueError('Invalid expiration time');
80
- }
81
- signAndBuild() {
82
- if (this.hasMandatoryFields()) {
83
- if (this._tokenContractAddress !== undefined) {
84
- return utils_1.sendMultiSigTokenData(this._toAddress, this._amount, this._tokenContractAddress, this._expirationTime, this._sequenceId, this.getSignature());
85
- }
86
- else {
87
- return utils_1.sendMultiSigData(this._toAddress, this._amount, this._data, this._expirationTime, this._sequenceId, this.getSignature());
88
- }
89
- }
90
- throw new sdk_core_1.BuildTransactionError('Missing transfer mandatory fields. Amount, destination (to) address and sequenceID are mandatory');
91
- }
92
- hasMandatoryFields() {
93
- return this._amount !== undefined && this._toAddress !== undefined && this._sequenceId !== undefined;
94
- }
95
- /**
96
- * Obtains the proper operation hash to sign either a sendMultiSig data
97
- * or a sendMultiSigToken data
98
- *
99
- * @returns {string} the operation hash
100
- */
101
- getOperationHash() {
102
- const operationData = this.getOperationData();
103
- return ethereumjs_utils_old_1.default.bufferToHex(ethereumjs_abi_1.default.soliditySHA3(...operationData));
104
- }
105
- getOperationData() {
106
- let operationData;
107
- if (this._tokenContractAddress !== undefined) {
108
- operationData = [
109
- ['string', 'address', 'uint', 'address', 'uint', 'uint'],
110
- [
111
- this.getTokenOperationHashPrefix(),
112
- new ethereumjs_utils_old_1.default.BN(ethereumjs_utils_old_1.default.stripHexPrefix(this._toAddress), 16),
113
- this._amount,
114
- new ethereumjs_utils_old_1.default.BN(ethereumjs_utils_old_1.default.stripHexPrefix(this._tokenContractAddress), 16),
115
- this._expirationTime,
116
- this._sequenceId,
117
- ],
118
- ];
119
- }
120
- else {
121
- operationData = [
122
- ['string', 'address', 'uint', 'bytes', 'uint', 'uint'],
123
- [
124
- this.getNativeOperationHashPrefix(),
125
- new ethereumjs_utils_old_1.default.BN(ethereumjs_utils_old_1.default.stripHexPrefix(this._toAddress), 16),
126
- this._amount,
127
- Buffer.from(ethereumjs_utils_old_1.default.stripHexPrefix(this._data) || '', 'hex'),
128
- this._expirationTime,
129
- this._sequenceId,
130
- ],
131
- ];
132
- }
133
- return operationData;
134
- }
135
- /**
136
- * Get the prefix used in generating an operation hash for sending tokens
137
- *
138
- * @returns the string prefix
139
- */
140
- getTokenOperationHashPrefix() {
141
- return 'ERC20';
142
- }
143
- /**
144
- * Get the prefix used in generating an operation hash for sending native coins
145
- *
146
- * @returns the string prefix
147
- */
148
- getNativeOperationHashPrefix() {
149
- return 'ETHER';
150
- }
151
- /** Return an expiration time, in seconds, set to one hour from now
152
- *
153
- * @returns {number} expiration time
154
- */
155
- getExpirationTime() {
156
- const currentDate = new Date();
157
- currentDate.setHours(currentDate.getHours() + 1);
158
- return currentDate.getTime() / 1000;
159
- }
160
- /**
161
- * If a signing key is set for this builder, recalculates the signature
162
- *
163
- * @returns {string} the signature value
164
- */
165
- getSignature() {
166
- if (this._signKey) {
167
- this._signature = this.ethSignMsgHash();
168
- }
169
- return this._signature;
170
- }
171
- ethSignMsgHash() {
172
- const data = this.getOperationHash();
173
- const signatureInParts = ethereumjs_utils_old_1.default.ecsign(Buffer.from(ethereumjs_utils_old_1.default.stripHexPrefix(data), 'hex'), Buffer.from(this._signKey, 'hex'));
174
- // Assemble strings from r, s and v
175
- const r = ethereumjs_utils_old_1.default.setLengthLeft(signatureInParts.r, 32).toString('hex');
176
- const s = ethereumjs_utils_old_1.default.setLengthLeft(signatureInParts.s, 32).toString('hex');
177
- const v = ethereumjs_utils_old_1.default.stripHexPrefix(ethereumjs_utils_old_1.default.intToHex(signatureInParts.v));
178
- // Concatenate the r, s and v parts to make the signature string
179
- return ethereumjs_utils_old_1.default.addHexPrefix(r.concat(s, v));
180
- }
181
- decodeTransferData(data) {
182
- const transferData = utils_1.decodeTransferData(data);
183
- this._toAddress = transferData.to;
184
- this._amount = transferData.amount;
185
- this._expirationTime = transferData.expireTime;
186
- this._sequenceId = transferData.sequenceId;
187
- this._signature = transferData.signature;
188
- if (transferData.data) {
189
- this._data = transferData.data;
190
- }
191
- if (transferData.tokenContractAddress) {
192
- this._tokenContractAddress = transferData.tokenContractAddress;
193
- }
194
- }
195
- }
196
- exports.TransferBuilder = TransferBuilder;
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZXRoL3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1RkFBa0Q7QUFDbEQsb0VBQXlDO0FBQ3pDLDRDQUE4RTtBQUM5RSw4Q0FBb0Y7QUFDcEYsbUNBQXdIO0FBRXhILDJCQUEyQjtBQUMzQixNQUFhLGVBQWU7SUFZMUIsWUFBWSxjQUF1QjtRQVhsQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFZdkMsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCwwREFBMEQ7WUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVkscUNBQTJCLEVBQUU7WUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3BFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQXNCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzVCLE9BQU8sSUFB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Qyw4QkFBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZFLGdFQUFnRTtRQUNoRSxPQUFPLDhCQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDckMsTUFBTSxZQUFZLEdBQUcsMEJBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUV6QyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxZQUFZLENBQUMsb0JBQW9CLEVBQUU7WUFDckMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztTQUNoRTtJQUNILENBQUM7Q0FDRjtBQXhPRCwwQ0F3T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXRoVXRpbCBmcm9tICdAYml0Z28vZXRoZXJldW1qcy11dGlscy1vbGQnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiwgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2ZlckRhdGEsIHNlbmRNdWx0aVNpZ0RhdGEsIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YSwgaXNWYWxpZEV0aEFkZHJlc3MsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqIEVUSCB0cmFuc2ZlciBidWlsZGVyICovXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfRU1QVFlfSEVYX1ZBTFVFID0gJzB4JztcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90b0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZXF1ZW5jZUlkOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbktleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2V4cGlyYXRpb25UaW1lOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RhdGE6IHN0cmluZztcbiAgcHJpdmF0ZSBfdG9rZW5Db250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvaW46IFJlYWRvbmx5PEJhc2VDb2luPjtcblxuICBjb25zdHJ1Y3RvcihzZXJpYWxpemVkRGF0YT86IHN0cmluZykge1xuICAgIGlmIChzZXJpYWxpemVkRGF0YSkge1xuICAgICAgdGhpcy5kZWNvZGVUcmFuc2ZlckRhdGEoc2VyaWFsaXplZERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbml0aWFsaXplIHdpdGggZGVmYXVsdCB2YWx1ZXMgZm9yIG5vbiBtYW5kYXRvcnkgZmllbGRzXG4gICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHRoaXMuZ2V0RXhwaXJhdGlvblRpbWUoKTtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0aG9kIHRvIHNldCB0aGUgRVJDMjAgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWQuXG4gICAqIFRoaXMgRVJDMjAgdG9rZW4gbWF5IG5vdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIG5ldHdvcmsuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2luIHRoZSBFUkMyMCBjb2luIHRvIGJlIHNldFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSB0aGUgdHJhbnNmZXIgYnVpbGRlciBpbnN0YW5jZSBtb2RpZmllZFxuICAgKi9cbiAgY29pbihjb2luOiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX2NvaW4gPSBjb2lucy5nZXQoY29pbik7XG5cbiAgICBpZiAodGhpcy5fY29pbiBpbnN0YW5jZW9mIENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbikge1xuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSB0aGlzLl9jb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGF0YShhZGRpdGlvbmFsRGF0YTogc3RyaW5nKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgdGhpcy5fZGF0YSA9IGFkZGl0aW9uYWxEYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRvKGFkZHJlc3M6IHN0cmluZyk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgaWYgKGlzVmFsaWRFdGhBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl90b0FkZHJlc3MgPSBhZGRyZXNzO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gIH1cblxuICBjb250cmFjdFNlcXVlbmNlSWQoY291bnRlcjogbnVtYmVyKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBpZiAoY291bnRlciA+PSAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9zZXF1ZW5jZUlkID0gY291bnRlcjtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgY29udHJhY3Qgc2VxdWVuY2UgaWQnKTtcbiAgfVxuXG4gIGtleShzaWduS2V5OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX3NpZ25LZXkgPSBzaWduS2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXhwaXJhdGlvblRpbWUoZGF0ZTogbnVtYmVyKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBpZiAoZGF0ZSA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gZGF0ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgZXhwaXJhdGlvbiB0aW1lJyk7XG4gIH1cblxuICBzaWduQW5kQnVpbGQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNNYW5kYXRvcnlGaWVsZHMoKSkge1xuICAgICAgaWYgKHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YShcbiAgICAgICAgICB0aGlzLl90b0FkZHJlc3MsXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lLFxuICAgICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICAgICAgdGhpcy5nZXRTaWduYXR1cmUoKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzZW5kTXVsdGlTaWdEYXRhKFxuICAgICAgICAgIHRoaXMuX3RvQWRkcmVzcyxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgdGhpcy5fZGF0YSxcbiAgICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgICB0aGlzLl9zZXF1ZW5jZUlkLFxuICAgICAgICAgIHRoaXMuZ2V0U2lnbmF0dXJlKCksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAnTWlzc2luZyB0cmFuc2ZlciBtYW5kYXRvcnkgZmllbGRzLiBBbW91bnQsIGRlc3RpbmF0aW9uICh0bykgYWRkcmVzcyBhbmQgc2VxdWVuY2VJRCBhcmUgbWFuZGF0b3J5JyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNYW5kYXRvcnlGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Ftb3VudCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3RvQWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3NlcXVlbmNlSWQgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIHRoZSBwcm9wZXIgb3BlcmF0aW9uIGhhc2ggdG8gc2lnbiBlaXRoZXIgYSBzZW5kTXVsdGlTaWcgZGF0YVxuICAgKiBvciBhIHNlbmRNdWx0aVNpZ1Rva2VuIGRhdGFcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG9wZXJhdGlvbiBoYXNoXG4gICAqL1xuICBwcml2YXRlIGdldE9wZXJhdGlvbkhhc2goKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25EYXRhID0gdGhpcy5nZXRPcGVyYXRpb25EYXRhKCk7XG4gICAgcmV0dXJuIGV0aFV0aWwuYnVmZmVyVG9IZXgoRXRoZXJldW1BYmkuc29saWRpdHlTSEEzKC4uLm9wZXJhdGlvbkRhdGEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPcGVyYXRpb25EYXRhKCk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgbGV0IG9wZXJhdGlvbkRhdGE7XG4gICAgaWYgKHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wZXJhdGlvbkRhdGEgPSBbXG4gICAgICAgIFsnc3RyaW5nJywgJ2FkZHJlc3MnLCAndWludCcsICdhZGRyZXNzJywgJ3VpbnQnLCAndWludCddLFxuICAgICAgICBbXG4gICAgICAgICAgdGhpcy5nZXRUb2tlbk9wZXJhdGlvbkhhc2hQcmVmaXgoKSxcbiAgICAgICAgICBuZXcgZXRoVXRpbC5CTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRoaXMuX3RvQWRkcmVzcyksIDE2KSxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgbmV3IGV0aFV0aWwuQk4oZXRoVXRpbC5zdHJpcEhleFByZWZpeCh0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyksIDE2KSxcbiAgICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgICB0aGlzLl9zZXF1ZW5jZUlkLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uRGF0YSA9IFtcbiAgICAgICAgWydzdHJpbmcnLCAnYWRkcmVzcycsICd1aW50JywgJ2J5dGVzJywgJ3VpbnQnLCAndWludCddLFxuICAgICAgICBbXG4gICAgICAgICAgdGhpcy5nZXROYXRpdmVPcGVyYXRpb25IYXNoUHJlZml4KCksXG4gICAgICAgICAgbmV3IGV0aFV0aWwuQk4oZXRoVXRpbC5zdHJpcEhleFByZWZpeCh0aGlzLl90b0FkZHJlc3MpLCAxNiksXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgIEJ1ZmZlci5mcm9tKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgodGhpcy5fZGF0YSkgfHwgJycsICdoZXgnKSxcbiAgICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgICB0aGlzLl9zZXF1ZW5jZUlkLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIG9wZXJhdGlvbkRhdGE7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmVmaXggdXNlZCBpbiBnZW5lcmF0aW5nIGFuIG9wZXJhdGlvbiBoYXNoIGZvciBzZW5kaW5nIHRva2Vuc1xuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHByZWZpeFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnRVJDMjAnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJlZml4IHVzZWQgaW4gZ2VuZXJhdGluZyBhbiBvcGVyYXRpb24gaGFzaCBmb3Igc2VuZGluZyBuYXRpdmUgY29pbnNcbiAgICpcbiAgICogQHJldHVybnMgdGhlIHN0cmluZyBwcmVmaXhcbiAgICovXG4gIHByb3RlY3RlZCBnZXROYXRpdmVPcGVyYXRpb25IYXNoUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdFVEhFUic7XG4gIH1cblxuICAvKiogUmV0dXJuIGFuIGV4cGlyYXRpb24gdGltZSwgaW4gc2Vjb25kcywgc2V0IHRvIG9uZSBob3VyIGZyb20gbm93XG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IGV4cGlyYXRpb24gdGltZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRFeHBpcmF0aW9uVGltZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICBjdXJyZW50RGF0ZS5zZXRIb3VycyhjdXJyZW50RGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgcmV0dXJuIGN1cnJlbnREYXRlLmdldFRpbWUoKSAvIDEwMDA7XG4gIH1cblxuICAvKipcbiAgICogSWYgYSBzaWduaW5nIGtleSBpcyBzZXQgZm9yIHRoaXMgYnVpbGRlciwgcmVjYWxjdWxhdGVzIHRoZSBzaWduYXR1cmVcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIHNpZ25hdHVyZSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFNpZ25hdHVyZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9zaWduS2V5KSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLmV0aFNpZ25Nc2dIYXNoKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmUhO1xuICB9XG5cbiAgcHJvdGVjdGVkIGV0aFNpZ25Nc2dIYXNoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0T3BlcmF0aW9uSGFzaCgpO1xuICAgIGNvbnN0IHNpZ25hdHVyZUluUGFydHMgPSBldGhVdGlsLmVjc2lnbihcbiAgICAgIEJ1ZmZlci5mcm9tKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgoZGF0YSksICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKHRoaXMuX3NpZ25LZXksICdoZXgnKSxcbiAgICApO1xuXG4gICAgLy8gQXNzZW1ibGUgc3RyaW5ncyBmcm9tIHIsIHMgYW5kIHZcbiAgICBjb25zdCByID0gZXRoVXRpbC5zZXRMZW5ndGhMZWZ0KHNpZ25hdHVyZUluUGFydHMuciwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBzID0gZXRoVXRpbC5zZXRMZW5ndGhMZWZ0KHNpZ25hdHVyZUluUGFydHMucywgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCB2ID0gZXRoVXRpbC5zdHJpcEhleFByZWZpeChldGhVdGlsLmludFRvSGV4KHNpZ25hdHVyZUluUGFydHMudikpO1xuXG4gICAgLy8gQ29uY2F0ZW5hdGUgdGhlIHIsIHMgYW5kIHYgcGFydHMgdG8gbWFrZSB0aGUgc2lnbmF0dXJlIHN0cmluZ1xuICAgIHJldHVybiBldGhVdGlsLmFkZEhleFByZWZpeChyLmNvbmNhdChzLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSBkZWNvZGVUcmFuc2ZlckRhdGEoZGF0YSk7XG5cbiAgICB0aGlzLl90b0FkZHJlc3MgPSB0cmFuc2ZlckRhdGEudG87XG4gICAgdGhpcy5fYW1vdW50ID0gdHJhbnNmZXJEYXRhLmFtb3VudDtcbiAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHRyYW5zZmVyRGF0YS5leHBpcmVUaW1lO1xuICAgIHRoaXMuX3NlcXVlbmNlSWQgPSB0cmFuc2ZlckRhdGEuc2VxdWVuY2VJZDtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB0cmFuc2ZlckRhdGEuc2lnbmF0dXJlO1xuXG4gICAgaWYgKHRyYW5zZmVyRGF0YS5kYXRhKSB7XG4gICAgICB0aGlzLl9kYXRhID0gdHJhbnNmZXJEYXRhLmRhdGE7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zZmVyRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcykge1xuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSB0cmFuc2ZlckRhdGEudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,39 +0,0 @@
1
- import { TypedTransaction } from '@ethereumjs/tx';
2
- import EthereumCommon from '@ethereumjs/common';
3
- import { EthLikeTransactionData, TxData } from './iface';
4
- import { KeyPair } from './keyPair';
5
- /**
6
- * An Ethereum transaction with helpers for serialization and deserialization.
7
- */
8
- export declare class EthTransactionData implements EthLikeTransactionData {
9
- private tx;
10
- protected args?: {
11
- deployedAddress?: string;
12
- chainId?: string;
13
- };
14
- constructor(tx: TypedTransaction, args?: {
15
- deployedAddress?: string;
16
- chainId?: string;
17
- });
18
- /**
19
- * Build an thereum transaction from its JSON representation
20
- *
21
- * @param {TxData} tx The JSON representation of the transaction
22
- * @param {EthereumCommon} common Class to access chain and hardfork parameters
23
- * @returns {EthTransactionData} a new ethereum transaction object
24
- */
25
- static fromJson(tx: TxData, common: EthereumCommon): EthTransactionData;
26
- /**
27
- * Build an ethereum transaction from its string serialization
28
- *
29
- * @param tx The string serialization of the ethereum transaction
30
- * @param common
31
- */
32
- static fromSerialized(tx: string, common: EthereumCommon): EthTransactionData;
33
- sign(keyPair: KeyPair): void;
34
- /** @inheritdoc */
35
- toJson(): TxData;
36
- /** @inheritdoc */
37
- toSerialized(): string;
38
- }
39
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/coin/eth/types.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAA6B,sBAAsB,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,qBAAa,kBAAmB,YAAW,sBAAsB;IAC/D,OAAO,CAAC,EAAE,CAAmB;IAC7B,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBAEpD,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKvF;;;;;;OAMG;WACW,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAuC9E;;;;;OAKG;WACW,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAMpF,IAAI,CAAC,OAAO,EAAE,OAAO;IAKrB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAuDhB,kBAAkB;IAClB,YAAY,IAAI,MAAM;CAGvB"}
@@ -1,135 +0,0 @@
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.EthTransactionData = void 0;
7
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
- const tx_1 = require("@ethereumjs/tx");
9
- const ethereumjs_utils_old_1 = require("@bitgo/ethereumjs-utils-old");
10
- const ethereumjs_util_1 = require("ethereumjs-util");
11
- const iface_1 = require("./iface");
12
- // https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L31
13
- const LEGACY_TX_TYPE = 0;
14
- const EIP1559_TX_TYPE = 2;
15
- /**
16
- * An Ethereum transaction with helpers for serialization and deserialization.
17
- */
18
- class EthTransactionData {
19
- constructor(tx, args) {
20
- this.tx = tx;
21
- this.args = args;
22
- }
23
- /**
24
- * Build an thereum transaction from its JSON representation
25
- *
26
- * @param {TxData} tx The JSON representation of the transaction
27
- * @param {EthereumCommon} common Class to access chain and hardfork parameters
28
- * @returns {EthTransactionData} a new ethereum transaction object
29
- */
30
- static fromJson(tx, common) {
31
- const nonce = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.nonce).toString(16));
32
- const value = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.value).toString(16));
33
- const gasLimit = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.gasLimit).toString(16));
34
- const chainId = tx.chainId ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.chainId).toString(16)) : undefined;
35
- const gasPrice = isLegacyTx(tx) ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.gasPrice).toString(16)) : undefined;
36
- const maxFeePerGas = isEIP1559Txn(tx) ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.maxFeePerGas).toString(16)) : undefined;
37
- const maxPriorityFeePerGas = isEIP1559Txn(tx)
38
- ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.maxPriorityFeePerGas).toString(16))
39
- : undefined;
40
- return new EthTransactionData(tx_1.TransactionFactory.fromTxData({
41
- type: isLegacyTx(tx) ? LEGACY_TX_TYPE : EIP1559_TX_TYPE,
42
- chainId,
43
- nonce,
44
- to: tx.to,
45
- gasPrice,
46
- gasLimit,
47
- maxFeePerGas,
48
- maxPriorityFeePerGas,
49
- value,
50
- data: tx.data,
51
- v: tx.v,
52
- r: tx.r,
53
- s: tx.s,
54
- }, { common: common }), {
55
- deployedAddress: tx.deployedAddress,
56
- chainId: ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(Number(tx.chainId)).toString(16)),
57
- });
58
- }
59
- /**
60
- * Build an ethereum transaction from its string serialization
61
- *
62
- * @param tx The string serialization of the ethereum transaction
63
- * @param common
64
- */
65
- static fromSerialized(tx, common) {
66
- return new EthTransactionData(tx_1.TransactionFactory.fromSerializedData(ethereumjs_util_1.toBuffer(ethereumjs_util_1.addHexPrefix(tx)), { common: common }));
67
- }
68
- sign(keyPair) {
69
- const privateKey = Buffer.from(keyPair.getKeys().prv, 'hex');
70
- this.tx = this.tx.sign(privateKey);
71
- }
72
- /** @inheritdoc */
73
- toJson() {
74
- const result = {
75
- nonce: ethereumjs_utils_old_1.bufferToInt(this.tx.nonce),
76
- gasLimit: new bignumber_js_1.default(ethereumjs_utils_old_1.bufferToHex(this.tx.gasLimit), 16).toString(10),
77
- value: this.tx.value.toString(10),
78
- data: ethereumjs_utils_old_1.bufferToHex(this.tx.data),
79
- };
80
- if (this.tx.isSigned()) {
81
- result.id = ethereumjs_util_1.addHexPrefix(ethereumjs_utils_old_1.bufferToHex(this.tx.hash()));
82
- }
83
- else {
84
- result.id = ethereumjs_util_1.addHexPrefix(ethereumjs_utils_old_1.bufferToHex(this.tx.getMessageToSign()));
85
- }
86
- if (this.tx.to) {
87
- result.to = ethereumjs_utils_old_1.bufferToHex(this.tx.to.toBuffer());
88
- }
89
- if (this.tx.verifySignature()) {
90
- result.from = ethereumjs_utils_old_1.bufferToHex(this.tx.getSenderAddress().toBuffer());
91
- result.r = ethereumjs_utils_old_1.bufferToHex(this.tx.r);
92
- result.s = ethereumjs_utils_old_1.bufferToHex(this.tx.s);
93
- }
94
- if (this.tx.v) {
95
- result.v = ethereumjs_utils_old_1.bufferToHex(this.tx.v);
96
- }
97
- result.chainId = ethereumjs_util_1.addHexPrefix(this.tx.common.chainIdBN().toString(16));
98
- if (this.args && this.args.deployedAddress) {
99
- result.deployedAddress = this.args.deployedAddress;
100
- }
101
- if (this.tx instanceof tx_1.Transaction) {
102
- const gasPrice = new bignumber_js_1.default(ethereumjs_utils_old_1.bufferToHex(this.tx.gasPrice), 16).toString(10);
103
- return {
104
- ...result,
105
- _type: iface_1.ETHTransactionType.LEGACY,
106
- gasPrice,
107
- };
108
- }
109
- else if (this.tx instanceof tx_1.FeeMarketEIP1559Transaction) {
110
- const maxFeePerGas = new bignumber_js_1.default(ethereumjs_utils_old_1.bufferToHex(this.tx.maxFeePerGas), 16).toString(10);
111
- const maxPriorityFeePerGas = new bignumber_js_1.default(ethereumjs_utils_old_1.bufferToHex(this.tx.maxPriorityFeePerGas), 16).toString(10);
112
- return {
113
- ...result,
114
- _type: iface_1.ETHTransactionType.EIP1559,
115
- maxFeePerGas,
116
- maxPriorityFeePerGas,
117
- };
118
- }
119
- else {
120
- throw new Error(`Unsupported tx type: ${tx_1.AccessListEIP2930Transaction.name}`);
121
- }
122
- }
123
- /** @inheritdoc */
124
- toSerialized() {
125
- return ethereumjs_util_1.addHexPrefix(this.tx.serialize().toString('hex'));
126
- }
127
- }
128
- exports.EthTransactionData = EthTransactionData;
129
- function isLegacyTx(tx) {
130
- return tx._type === iface_1.ETHTransactionType.LEGACY;
131
- }
132
- function isEIP1559Txn(tx) {
133
- return tx._type === iface_1.ETHTransactionType.EIP1559;
134
- }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9ldGgvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLHVDQU13QjtBQUV4QixzRUFBdUU7QUFDdkUscURBQXlEO0FBQ3pELG1DQUFzSDtBQUd0SCwwR0FBMEc7QUFDMUcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQjs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQVksRUFBb0IsRUFBRSxJQUFxRDtRQUNyRixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQVUsRUFBRSxNQUFzQjtRQUN2RCxNQUFNLEtBQUssR0FBRyw4QkFBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsOEJBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLDhCQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw4QkFBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMs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SSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFwSUQsZ0RBb0lDO0FBRUQsU0FBUyxVQUFVLENBQUMsRUFBVTtJQUM1QixPQUFPLEVBQUUsQ0FBQyxLQUFLLEtBQUssMEJBQWtCLENBQUMsTUFBTSxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFVO0lBQzlCLE9BQU8sRUFBRSxDQUFDLEtBQUssS0FBSywwQkFBa0IsQ0FBQyxPQUFPLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uRmFjdG9yeSxcbiAgVHlwZWRUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb24gYXMgTGVnYWN5VHJhbnNhY3Rpb24sXG4gIEZlZU1hcmtldEVJUDE1NTlUcmFuc2FjdGlvbixcbiAgQWNjZXNzTGlzdEVJUDI5MzBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQGV0aGVyZXVtanMvdHgnO1xuaW1wb3J0IEV0aGVyZXVtQ29tbW9uIGZyb20gJ0BldGhlcmV1bWpzL2NvbW1vbic7XG5pbXBvcnQgeyBidWZmZXJUb0hleCwgYnVmZmVyVG9JbnQgfSBmcm9tICdAYml0Z28vZXRoZXJldW1qcy11dGlscy1vbGQnO1xuaW1wb3J0IHsgdG9CdWZmZXIsIGFkZEhleFByZWZpeCB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBCYXNlVHhEYXRhLCBFSVAxNTU5VHhEYXRhLCBFdGhMaWtlVHJhbnNhY3Rpb25EYXRhLCBMZWdhY3lUeERhdGEsIEVUSFRyYW5zYWN0aW9uVHlwZSwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtanMvZXRoZXJldW1qcy1tb25vcmVwby9ibG9iL21hc3Rlci9wYWNrYWdlcy90eC9zcmMvdHJhbnNhY3Rpb25GYWN0b3J5LnRzI0wzMVxuY29uc3QgTEVHQUNZX1RYX1RZUEUgPSAwO1xuY29uc3QgRUlQMTU1OV9UWF9UWVBFID0gMjtcblxuLyoqXG4gKiBBbiBFdGhlcmV1bSB0cmFuc2FjdGlvbiB3aXRoIGhlbHBlcnMgZm9yIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEV0aFRyYW5zYWN0aW9uRGF0YSBpbXBsZW1lbnRzIEV0aExpa2VUcmFuc2FjdGlvbkRhdGEge1xuICBwcml2YXRlIHR4OiBUeXBlZFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgYXJncz86IHsgZGVwbG95ZWRBZGRyZXNzPzogc3RyaW5nOyBjaGFpbklkPzogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IodHg6IFR5cGVkVHJhbnNhY3Rpb24sIGFyZ3M/OiB7IGRlcGxveWVkQWRkcmVzcz86IHN0cmluZzsgY2hhaW5JZD86IHN0cmluZyB9KSB7XG4gICAgdGhpcy50eCA9IHR4O1xuICAgIHRoaXMuYXJncyA9IGFyZ3M7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gdGhlcmV1bSB0cmFuc2FjdGlvbiBmcm9tIGl0cyBKU09OIHJlcHJlc2VudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHhEYXRhfSB0eCBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtFdGhlcmV1bUNvbW1vbn0gY29tbW9uIENsYXNzIHRvIGFjY2VzcyBjaGFpbiBhbmQgaGFyZGZvcmsgcGFyYW1ldGVyc1xuICAgKiBAcmV0dXJucyB7RXRoVHJhbnNhY3Rpb25EYXRhfSBhIG5ldyBldGhlcmV1bSB0cmFuc2FjdGlvbiBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpzb24odHg6IFR4RGF0YSwgY29tbW9uOiBFdGhlcmV1bUNvbW1vbik6IEV0aFRyYW5zYWN0aW9uRGF0YSB7XG4gICAgY29uc3Qgbm9uY2UgPSBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5ub25jZSkudG9TdHJpbmcoMTYpKTtcbiAgICBjb25zdCB2YWx1ZSA9IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4LnZhbHVlKS50b1N0cmluZygxNikpO1xuICAgIGNvbnN0IGdhc0xpbWl0ID0gYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHguZ2FzTGltaXQpLnRvU3RyaW5nKDE2KSk7XG4gICAgY29uc3QgY2hhaW5JZCA9IHR4LmNoYWluSWQgPyBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5jaGFpbklkKS50b1N0cmluZygxNikpIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZ2FzUHJpY2UgPSBpc0xlZ2FjeVR4KHR4KSA/IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4Lmdhc1ByaWNlKS50b1N0cmluZygxNikpIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgbWF4RmVlUGVyR2FzID0gaXNFSVAxNTU5VHhuKHR4KSA/IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4Lm1heEZlZVBlckdhcykudG9TdHJpbmcoMTYpKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXhQcmlvcml0eUZlZVBlckdhcyA9IGlzRUlQMTU1OVR4bih0eClcbiAgICAgID8gYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHgubWF4UHJpb3JpdHlGZWVQZXJHYXMpLnRvU3RyaW5nKDE2KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIG5ldyBFdGhUcmFuc2FjdGlvbkRhdGEoXG4gICAgICBUcmFuc2FjdGlvbkZhY3RvcnkuZnJvbVR4RGF0YShcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IGlzTGVnYWN5VHgodHgpID8gTEVHQUNZX1RYX1RZUEUgOiBFSVAxNTU5X1RYX1RZUEUsXG4gICAgICAgICAgY2hhaW5JZCxcbiAgICAgICAgICBub25jZSxcbiAgICAgICAgICB0bzogdHgudG8sXG4gICAgICAgICAgZ2FzUHJpY2UsXG4gICAgICAgICAgZ2FzTGltaXQsXG4gICAgICAgICAgbWF4RmVlUGVyR2FzLFxuICAgICAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGRhdGE6IHR4LmRhdGEsXG4gICAgICAgICAgdjogdHgudixcbiAgICAgICAgICByOiB0eC5yLFxuICAgICAgICAgIHM6IHR4LnMsXG4gICAgICAgIH0sXG4gICAgICAgIHsgY29tbW9uOiBjb21tb24gfSxcbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGRlcGxveWVkQWRkcmVzczogdHguZGVwbG95ZWRBZGRyZXNzLFxuICAgICAgICBjaGFpbklkOiBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcihOdW1iZXIodHguY2hhaW5JZCkpLnRvU3RyaW5nKDE2KSksXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gZXRoZXJldW0gdHJhbnNhY3Rpb24gZnJvbSBpdHMgc3RyaW5nIHNlcmlhbGl6YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHR4IFRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbiBvZiB0aGUgZXRoZXJldW0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGNvbW1vblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VyaWFsaXplZCh0eDogc3RyaW5nLCBjb21tb246IEV0aGVyZXVtQ29tbW9uKTogRXRoVHJhbnNhY3Rpb25EYXRhIHtcbiAgICByZXR1cm4gbmV3IEV0aFRyYW5zYWN0aW9uRGF0YShcbiAgICAgIFRyYW5zYWN0aW9uRmFjdG9yeS5mcm9tU2VyaWFsaXplZERhdGEodG9CdWZmZXIoYWRkSGV4UHJlZml4KHR4KSksIHsgY29tbW9uOiBjb21tb24gfSksXG4gICAgKTtcbiAgfVxuXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpcikge1xuICAgIGNvbnN0IHByaXZhdGVLZXkgPSBCdWZmZXIuZnJvbShrZXlQYWlyLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nLCAnaGV4Jyk7XG4gICAgdGhpcy50eCA9IHRoaXMudHguc2lnbihwcml2YXRlS2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCByZXN1bHQ6IEJhc2VUeERhdGEgPSB7XG4gICAgICBub25jZTogYnVmZmVyVG9JbnQodGhpcy50eC5ub25jZSksXG4gICAgICBnYXNMaW1pdDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0aGlzLnR4Lmdhc0xpbWl0KSwgMTYpLnRvU3RyaW5nKDEwKSxcbiAgICAgIHZhbHVlOiB0aGlzLnR4LnZhbHVlLnRvU3RyaW5nKDEwKSxcbiAgICAgIGRhdGE6IGJ1ZmZlclRvSGV4KHRoaXMudHguZGF0YSksXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnR4LmlzU2lnbmVkKCkpIHtcbiAgICAgIHJlc3VsdC5pZCA9IGFkZEhleFByZWZpeChidWZmZXJUb0hleCh0aGlzLnR4Lmhhc2goKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQuaWQgPSBhZGRIZXhQcmVmaXgoYnVmZmVyVG9IZXgodGhpcy50eC5nZXRNZXNzYWdlVG9TaWduKCkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC50bykge1xuICAgICAgcmVzdWx0LnRvID0gYnVmZmVyVG9IZXgodGhpcy50eC50by50b0J1ZmZlcigpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC52ZXJpZnlTaWduYXR1cmUoKSkge1xuICAgICAgcmVzdWx0LmZyb20gPSBidWZmZXJUb0hleCh0aGlzLnR4LmdldFNlbmRlckFkZHJlc3MoKS50b0J1ZmZlcigpKTtcbiAgICAgIHJlc3VsdC5yID0gYnVmZmVyVG9IZXgodGhpcy50eC5yKTtcbiAgICAgIHJlc3VsdC5zID0gYnVmZmVyVG9IZXgodGhpcy50eC5zKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHgudikge1xuICAgICAgcmVzdWx0LnYgPSBidWZmZXJUb0hleCh0aGlzLnR4LnYpO1xuICAgIH1cbiAgICByZXN1bHQuY2hhaW5JZCA9IGFkZEhleFByZWZpeCh0aGlzLnR4LmNvbW1vbi5jaGFpbklkQk4oKS50b1N0cmluZygxNikpO1xuXG4gICAgaWYgKHRoaXMuYXJncyAmJiB0aGlzLmFyZ3MuZGVwbG95ZWRBZGRyZXNzKSB7XG4gICAgICByZXN1bHQuZGVwbG95ZWRBZGRyZXNzID0gdGhpcy5hcmdzLmRlcGxveWVkQWRkcmVzcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eCBpbnN0YW5jZW9mIExlZ2FjeVRyYW5zYWN0aW9uKSB7XG4gICAgICBjb25zdCBnYXNQcmljZSA9IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC5nYXNQcmljZSksIDE2KS50b1N0cmluZygxMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgX3R5cGU6IEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1ksXG4gICAgICAgIGdhc1ByaWNlLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHggaW5zdGFuY2VvZiBGZWVNYXJrZXRFSVAxNTU5VHJhbnNhY3Rpb24pIHtcbiAgICAgIGNvbnN0IG1heEZlZVBlckdhcyA9IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC5tYXhGZWVQZXJHYXMpLCAxNikudG9TdHJpbmcoMTApO1xuICAgICAgY29uc3QgbWF4UHJpb3JpdHlGZWVQZXJHYXMgPSBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHRoaXMudHgubWF4UHJpb3JpdHlGZWVQZXJHYXMpLCAxNikudG9TdHJpbmcoMTApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuRUlQMTU1OSxcbiAgICAgICAgbWF4RmVlUGVyR2FzLFxuICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhcyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdHggdHlwZTogJHtBY2Nlc3NMaXN0RUlQMjkzMFRyYW5zYWN0aW9uLm5hbWV9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvU2VyaWFsaXplZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBhZGRIZXhQcmVmaXgodGhpcy50eC5zZXJpYWxpemUoKS50b1N0cmluZygnaGV4JykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzTGVnYWN5VHgodHg6IFR4RGF0YSk6IHR4IGlzIExlZ2FjeVR4RGF0YSB7XG4gIHJldHVybiB0eC5fdHlwZSA9PT0gRVRIVHJhbnNhY3Rpb25UeXBlLkxFR0FDWTtcbn1cblxuZnVuY3Rpb24gaXNFSVAxNTU5VHhuKHR4OiBUeERhdGEpOiB0eCBpcyBFSVAxNTU5VHhEYXRhIHtcbiAgcmV0dXJuIHR4Ll90eXBlID09PSBFVEhUcmFuc2FjdGlvblR5cGUuRUlQMTU1OTtcbn1cbiJdfQ==
@@ -1,201 +0,0 @@
1
- /// <reference types="node" />
2
- import { BaseCoin, BaseNetwork, EthereumNetwork } from '@bitgo/statics';
3
- import EthereumCommon from '@ethereumjs/common';
4
- import { TransactionType } from '@bitgo/sdk-core';
5
- import { ERC1155TransferData, ERC721TransferData, FlushTokensData, NativeTransferData, SignatureParts, TokenTransferData, TransferData, TxData } from './iface';
6
- import { KeyPair } from './keyPair';
7
- /**
8
- * @param network
9
- */
10
- export declare function getCommon(network: EthereumNetwork): EthereumCommon;
11
- /**
12
- * Signs the transaction using the appropriate algorithm
13
- * and the provided common for the blockchain
14
- *
15
- * @param {TxData} transactionData the transaction data to sign
16
- * @param {KeyPair} keyPair the signer's keypair
17
- * @param {EthereumCommon} customCommon the network's custom common
18
- * @returns {string} the transaction signed and encoded
19
- */
20
- export declare function signInternal(transactionData: TxData, keyPair: KeyPair, customCommon: EthereumCommon): Promise<string>;
21
- /**
22
- * Signs the transaction using the appropriate algorithm
23
- *
24
- * @param {TxData} transactionData the transaction data to sign
25
- * @param {KeyPair} keyPair the signer's keypair
26
- * @returns {string} the transaction signed and encoded
27
- */
28
- export declare function sign(transactionData: TxData, keyPair: KeyPair): Promise<string>;
29
- /**
30
- * Returns the contract method encoded data
31
- *
32
- * @param {string} to destination address
33
- * @param {number} value Amount to tranfer
34
- * @param {string} data aditional method call data
35
- * @param {number} expireTime expiration time for the transaction in seconds
36
- * @param {number} sequenceId sequence id
37
- * @param {string} signature signature of the call
38
- * @returns {string} -- the contract method encoded data
39
- */
40
- export declare function sendMultiSigData(to: string, value: string, data: string, expireTime: number, sequenceId: number, signature: string): string;
41
- /**
42
- * Returns the contract method encoded data
43
- *
44
- * @param {string} to destination address
45
- * @param {number} value Amount to tranfer
46
- * @param {string} tokenContractAddress the address of the erc20 token contract
47
- * @param {number} expireTime expiration time for the transaction in seconds
48
- * @param {number} sequenceId sequence id
49
- * @param {string} signature signature of the call
50
- * @returns {string} -- the contract method encoded data
51
- */
52
- export declare function sendMultiSigTokenData(to: string, value: string, tokenContractAddress: string, expireTime: number, sequenceId: number, signature: string): string;
53
- /**
54
- * Get the data required to make a flush tokens contract call
55
- *
56
- * @param forwarderAddress The forwarder address to flush
57
- * @param tokenAddress The token address to flush from
58
- */
59
- export declare function flushTokensData(forwarderAddress: any, tokenAddress: any): string;
60
- /**
61
- * Get the data required to make a flush native coins contract call
62
- */
63
- export declare function flushCoinsData(): string;
64
- /**
65
- * Returns the create forwarder method calling data
66
- *
67
- * @returns {string} - the createForwarder method encoded
68
- */
69
- export declare function getAddressInitializationData(): string;
70
- /**
71
- * Returns whether or not the string is a valid Eth address
72
- *
73
- * @param {string} address - the tx hash to validate
74
- * @returns {boolean} - the validation result
75
- */
76
- export declare function isValidEthAddress(address: string): boolean;
77
- /**
78
- * Returns whether or not the string is a valid amount number
79
- *
80
- * @param {string} amount - the string to validate
81
- * @returns {boolean} - the validation result
82
- */
83
- export declare function isValidAmount(amount: string): boolean;
84
- /**
85
- * Returns the smart contract encoded data
86
- *
87
- * @param {string} data The wallet creation data to decode
88
- * @returns {string[]} - The list of signer addresses
89
- */
90
- export declare function decodeWalletCreationData(data: string): string[];
91
- /**
92
- * Decode the given ABI-encoded transfer data and return parsed fields
93
- *
94
- * @param data The data to decode
95
- * @returns parsed transfer data
96
- */
97
- export declare function decodeTransferData(data: string): TransferData;
98
- /**
99
- * Decode the given ABI-encoded transfer data for the sendMultisigToken function and return parsed fields
100
- *
101
- * @param data The data to decode
102
- * @returns parsed token transfer data
103
- */
104
- export declare function decodeTokenTransferData(data: string): TokenTransferData;
105
- export declare function decodeERC721TransferData(data: string): ERC721TransferData;
106
- export declare function decodeERC1155TransferData(data: string): ERC1155TransferData;
107
- /**
108
- * Decode the given ABI-encoded transfer data for the sendMultisig function and return parsed fields
109
- *
110
- * @param data The data to decode
111
- * @returns parsed transfer data
112
- */
113
- export declare function decodeNativeTransferData(data: string): NativeTransferData;
114
- /**
115
- * Decode the given ABI-encoded flush tokens data and return parsed fields
116
- *
117
- * @param data The data to decode
118
- * @returns parsed transfer data
119
- */
120
- export declare function decodeFlushTokensData(data: string): FlushTokensData;
121
- /**
122
- * Classify the given transaction data based as a transaction type.
123
- * ETH transactions are defined by the first 8 bytes of the transaction data, also known as the method id
124
- *
125
- * @param {string} data The data to classify the transaction with
126
- * @returns {TransactionType} The classified transaction type
127
- */
128
- export declare function classifyTransaction(data: string): TransactionType;
129
- /**
130
- *
131
- * @param {number} num number to be converted to hex
132
- * @returns {string} the hex number
133
- */
134
- export declare function numberToHexString(num: number): string;
135
- /**
136
- *
137
- * @param {string} hex The hex string to be converted
138
- * @returns {number} the resulting number
139
- */
140
- export declare function hexStringToNumber(hex: string): number;
141
- /**
142
- * Generates an address of the forwarder address to be deployed
143
- *
144
- * @param {string} contractAddress the address which is creating this new address
145
- * @param {number} contractCounter the nonce of the contract address
146
- * @returns {string} the calculated forwarder contract address
147
- */
148
- export declare function calculateForwarderAddress(contractAddress: string, contractCounter: number): string;
149
- /**
150
- * Calculate the forwarder v1 address that will be generated if `creatorAddress` creates it with salt `salt`
151
- * and initcode `inicode using the create2 opcode
152
- * @param {string} creatorAddress The address that is sending the tx to create a new address, hex string
153
- * @param {string} salt The salt to create the address with using create2, hex string
154
- * @param {string} initcode The initcode that will be deployed to the address, hex string
155
- * @return {string} The calculated address
156
- */
157
- export declare function calculateForwarderV1Address(creatorAddress: string, salt: string, initcode: string): string;
158
- /**
159
- * Take the implementation address for the proxy contract, and get the binary initcode for the associated proxy
160
- * @param {string} implementationAddress The address of the implementation contract for the proxy
161
- * @return {string} Binary hex string of the proxy
162
- */
163
- export declare function getProxyInitcode(implementationAddress: string): string;
164
- /**
165
- * Convert the given signature parts to a string representation
166
- *
167
- * @param {SignatureParts} sig The signature to convert to string
168
- * @returns {string} String representation of the signature
169
- */
170
- export declare function toStringSig(sig: SignatureParts): string;
171
- /**
172
- * Return whether or not the given tx data has a signature
173
- *
174
- * @param {TxData} txData The transaction data to check for signature
175
- * @returns {boolean} true if the tx has a signature, else false
176
- */
177
- export declare function hasSignature(txData: TxData): boolean;
178
- /**
179
- * Get the raw data decoded for some types
180
- *
181
- * @param {string[]} types ABI types definition
182
- * @param {Buffer} serializedArgs encoded args
183
- * @returns {Buffer[]} the decoded raw
184
- */
185
- export declare function getRawDecoded(types: string[], serializedArgs: Buffer): Buffer[];
186
- /**
187
- * Get the buffered bytecode from rawData using a methodId as delimiter
188
- *
189
- * @param {string} methodId the hex encoded method Id
190
- * @param {string} rawData the hex encoded raw data
191
- * @returns {Buffer} data buffered bytecode
192
- */
193
- export declare function getBufferedByteCode(methodId: string, rawData: string): Buffer;
194
- /**
195
- * Get the statics coin object matching a given contract address if it exists
196
- *
197
- * @param tokenContractAddress The contract address to match against
198
- * @returns statics BaseCoin object for the matching token
199
- */
200
- export declare function getToken(tokenContractAddress: string, network: BaseNetwork): Readonly<BaseCoin> | undefined;
201
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/eth/utils.ts"],"names":[],"mappings":"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"}