@bitgo/account-lib 2.20.0-rc.2 → 2.20.0-rc.22

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 (481) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/dist/resources/README.md +8 -2
  3. package/dist/resources/trx/protobuf/tron.js +5 -1
  4. package/dist/src/coin/avaxc/index.js +3 -3
  5. package/dist/src/coin/avaxc/keyPair.d.ts +1 -2
  6. package/dist/src/coin/avaxc/keyPair.d.ts.map +1 -1
  7. package/dist/src/coin/avaxc/keyPair.js +25 -44
  8. package/dist/src/coin/avaxc/resources.js +3 -3
  9. package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -1
  10. package/dist/src/coin/avaxc/transactionBuilder.js +22 -41
  11. package/dist/src/coin/avaxc/transferBuilder.js +8 -28
  12. package/dist/src/coin/avaxc/utils.js +14 -54
  13. package/dist/src/coin/celo/index.js +3 -3
  14. package/dist/src/coin/celo/resources.js +3 -3
  15. package/dist/src/coin/celo/stakingBuilder.d.ts +1 -1
  16. package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
  17. package/dist/src/coin/celo/stakingBuilder.js +102 -104
  18. package/dist/src/coin/celo/stakingCall.js +8 -26
  19. package/dist/src/coin/celo/stakingUtils.d.ts +1 -1
  20. package/dist/src/coin/celo/stakingUtils.d.ts.map +1 -1
  21. package/dist/src/coin/celo/stakingUtils.js +33 -34
  22. package/dist/src/coin/celo/transaction.js +10 -30
  23. package/dist/src/coin/celo/transactionBuilder.d.ts +1 -1
  24. package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
  25. package/dist/src/coin/celo/transactionBuilder.js +96 -115
  26. package/dist/src/coin/celo/transferBuilder.js +8 -28
  27. package/dist/src/coin/celo/types.js +71 -125
  28. package/dist/src/coin/celo/utils.js +25 -25
  29. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +1 -2
  30. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -1
  31. package/dist/src/coin/dot/addressInitializationBuilder.js +60 -83
  32. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +1 -1
  33. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
  34. package/dist/src/coin/dot/batchTransactionBuilder.js +55 -78
  35. package/dist/src/coin/dot/claimBuilder.d.ts +1 -2
  36. package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -1
  37. package/dist/src/coin/dot/claimBuilder.js +46 -68
  38. package/dist/src/coin/dot/errors.d.ts +1 -1
  39. package/dist/src/coin/dot/errors.d.ts.map +1 -1
  40. package/dist/src/coin/dot/errors.js +12 -33
  41. package/dist/src/coin/dot/iface.d.ts +1 -2
  42. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  43. package/dist/src/coin/dot/iface.js +1 -1
  44. package/dist/src/coin/dot/index.js +3 -3
  45. package/dist/src/coin/dot/keyPair.d.ts +1 -2
  46. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  47. package/dist/src/coin/dot/keyPair.js +34 -52
  48. package/dist/src/coin/dot/singletonRegistry.js +6 -9
  49. package/dist/src/coin/dot/stakingBuilder.d.ts +1 -2
  50. package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -1
  51. package/dist/src/coin/dot/stakingBuilder.js +49 -71
  52. package/dist/src/coin/dot/transaction.d.ts +1 -2
  53. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  54. package/dist/src/coin/dot/transaction.js +146 -162
  55. package/dist/src/coin/dot/transactionBuilder.d.ts +2 -3
  56. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  57. package/dist/src/coin/dot/transactionBuilder.js +132 -204
  58. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +1 -1
  59. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  60. package/dist/src/coin/dot/transactionBuilderFactory.js +46 -65
  61. package/dist/src/coin/dot/transferBuilder.d.ts +1 -2
  62. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  63. package/dist/src/coin/dot/transferBuilder.js +62 -85
  64. package/dist/src/coin/dot/txnSchema.js +17 -15
  65. package/dist/src/coin/dot/unnominateBuilder.d.ts +1 -1
  66. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -1
  67. package/dist/src/coin/dot/unnominateBuilder.js +24 -46
  68. package/dist/src/coin/dot/unstakeBuilder.d.ts +1 -1
  69. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -1
  70. package/dist/src/coin/dot/unstakeBuilder.js +38 -60
  71. package/dist/src/coin/dot/utils.d.ts +1 -2
  72. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  73. package/dist/src/coin/dot/utils.js +97 -101
  74. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +1 -1
  75. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -1
  76. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +38 -60
  77. package/dist/src/coin/etc/index.js +3 -3
  78. package/dist/src/coin/etc/resources.js +3 -3
  79. package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
  80. package/dist/src/coin/etc/transactionBuilder.js +22 -41
  81. package/dist/src/coin/etc/transferBuilder.js +8 -28
  82. package/dist/src/coin/etc/utils.js +10 -50
  83. package/dist/src/coin/eth/contractCall.js +8 -9
  84. package/dist/src/coin/eth/iface.d.ts +1 -1
  85. package/dist/src/coin/eth/iface.d.ts.map +1 -1
  86. package/dist/src/coin/eth/iface.js +1 -1
  87. package/dist/src/coin/eth/index.js +3 -3
  88. package/dist/src/coin/eth/keyPair.d.ts +1 -2
  89. package/dist/src/coin/eth/keyPair.d.ts.map +1 -1
  90. package/dist/src/coin/eth/keyPair.js +25 -44
  91. package/dist/src/coin/eth/transaction.d.ts +1 -2
  92. package/dist/src/coin/eth/transaction.d.ts.map +1 -1
  93. package/dist/src/coin/eth/transaction.js +48 -114
  94. package/dist/src/coin/eth/transactionBuilder.d.ts +1 -2
  95. package/dist/src/coin/eth/transactionBuilder.d.ts.map +1 -1
  96. package/dist/src/coin/eth/transactionBuilder.js +232 -303
  97. package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +37 -38
  98. package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +36 -53
  99. package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +32 -49
  100. package/dist/src/coin/eth/transferBuilder.js +58 -59
  101. package/dist/src/coin/eth/types.js +52 -56
  102. package/dist/src/coin/eth/utils.d.ts +1 -1
  103. package/dist/src/coin/eth/utils.d.ts.map +1 -1
  104. package/dist/src/coin/eth/utils.js +100 -147
  105. package/dist/src/coin/eth/walletUtil.d.ts +2 -0
  106. package/dist/src/coin/eth/walletUtil.d.ts.map +1 -1
  107. package/dist/src/coin/eth/walletUtil.js +4 -2
  108. package/dist/src/coin/eth2/keyPair.d.ts +1 -2
  109. package/dist/src/coin/eth2/keyPair.d.ts.map +1 -1
  110. package/dist/src/coin/eth2/keyPair.js +19 -37
  111. package/dist/src/coin/hbar/index.js +2 -2
  112. package/dist/src/coin/hbar/keyPair.d.ts +1 -2
  113. package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
  114. package/dist/src/coin/hbar/keyPair.js +30 -49
  115. package/dist/src/coin/hbar/transaction.d.ts +1 -2
  116. package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
  117. package/dist/src/coin/hbar/transaction.js +77 -146
  118. package/dist/src/coin/hbar/transactionBuilder.d.ts +1 -2
  119. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
  120. package/dist/src/coin/hbar/transactionBuilder.js +110 -193
  121. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +1 -1
  122. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
  123. package/dist/src/coin/hbar/transactionBuilderFactory.js +27 -45
  124. package/dist/src/coin/hbar/transferBuilder.d.ts +1 -1
  125. package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
  126. package/dist/src/coin/hbar/transferBuilder.js +49 -113
  127. package/dist/src/coin/hbar/utils.d.ts +2 -15
  128. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  129. package/dist/src/coin/hbar/utils.js +38 -57
  130. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
  131. package/dist/src/coin/hbar/walletInitializationBuilder.js +42 -107
  132. package/dist/src/coin/near/contractCallWrapper.js +46 -65
  133. package/dist/src/coin/near/errors.d.ts +1 -1
  134. package/dist/src/coin/near/errors.d.ts.map +1 -1
  135. package/dist/src/coin/near/errors.js +7 -25
  136. package/dist/src/coin/near/iface.d.ts +1 -2
  137. package/dist/src/coin/near/iface.d.ts.map +1 -1
  138. package/dist/src/coin/near/iface.js +1 -1
  139. package/dist/src/coin/near/index.d.ts +3 -0
  140. package/dist/src/coin/near/index.d.ts.map +1 -1
  141. package/dist/src/coin/near/index.js +9 -3
  142. package/dist/src/coin/near/keyPair.d.ts +1 -2
  143. package/dist/src/coin/near/keyPair.d.ts.map +1 -1
  144. package/dist/src/coin/near/keyPair.js +23 -40
  145. package/dist/src/coin/near/stakingActivateBuilder.d.ts +1 -1
  146. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -1
  147. package/dist/src/coin/near/stakingActivateBuilder.js +36 -105
  148. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +1 -1
  149. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -1
  150. package/dist/src/coin/near/stakingDeactivateBuilder.js +36 -105
  151. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +1 -1
  152. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -1
  153. package/dist/src/coin/near/stakingWithdrawBuilder.js +36 -105
  154. package/dist/src/coin/near/transaction.d.ts +1 -2
  155. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  156. package/dist/src/coin/near/transaction.js +125 -154
  157. package/dist/src/coin/near/transactionBuilder.d.ts +1 -2
  158. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  159. package/dist/src/coin/near/transactionBuilder.js +81 -144
  160. package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
  161. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  162. package/dist/src/coin/near/transactionBuilderFactory.js +33 -51
  163. package/dist/src/coin/near/transferBuilder.d.ts +1 -1
  164. package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
  165. package/dist/src/coin/near/transferBuilder.js +27 -91
  166. package/dist/src/coin/near/utils.d.ts +1 -1
  167. package/dist/src/coin/near/utils.d.ts.map +1 -1
  168. package/dist/src/coin/near/utils.js +35 -45
  169. package/dist/src/coin/near/walletInitializationBuilder.d.ts +1 -1
  170. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
  171. package/dist/src/coin/near/walletInitializationBuilder.js +13 -70
  172. package/dist/src/coin/polygon/index.d.ts +8 -0
  173. package/dist/src/coin/polygon/index.d.ts.map +1 -0
  174. package/dist/src/coin/polygon/index.js +35 -0
  175. package/dist/src/coin/polygon/resources.d.ts +10 -0
  176. package/dist/src/coin/polygon/resources.d.ts.map +1 -0
  177. package/dist/src/coin/polygon/resources.js +25 -0
  178. package/dist/src/coin/polygon/transactionBuilder.d.ts +17 -0
  179. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
  180. package/dist/src/coin/polygon/transactionBuilder.js +44 -0
  181. package/dist/src/coin/polygon/transferBuilder.d.ts +19 -0
  182. package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
  183. package/dist/src/coin/polygon/transferBuilder.js +27 -0
  184. package/dist/src/coin/polygon/utils.d.ts +18 -0
  185. package/dist/src/coin/polygon/utils.d.ts.map +1 -0
  186. package/dist/src/coin/polygon/utils.js +42 -0
  187. package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
  188. package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
  189. package/dist/src/coin/polygon/walletUtil.js +632 -0
  190. package/dist/src/coin/rbtc/index.js +3 -3
  191. package/dist/src/coin/rbtc/resources.js +3 -3
  192. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
  193. package/dist/src/coin/rbtc/transactionBuilder.js +21 -40
  194. package/dist/src/coin/rbtc/transferBuilder.js +8 -28
  195. package/dist/src/coin/rbtc/utils.js +10 -50
  196. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +1 -1
  197. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  198. package/dist/src/coin/sol/ataInitializationBuilder.js +52 -123
  199. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
  200. package/dist/src/coin/sol/ataInitializationTransaction.js +34 -57
  201. package/dist/src/coin/sol/iface.d.ts +1 -1
  202. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  203. package/dist/src/coin/sol/iface.js +1 -1
  204. package/dist/src/coin/sol/index.js +3 -3
  205. package/dist/src/coin/sol/instructionParamsFactory.d.ts +1 -1
  206. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -1
  207. package/dist/src/coin/sol/instructionParamsFactory.js +62 -67
  208. package/dist/src/coin/sol/keyPair.d.ts +1 -2
  209. package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
  210. package/dist/src/coin/sol/keyPair.js +24 -42
  211. package/dist/src/coin/sol/solInstructionFactory.js +33 -33
  212. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +1 -1
  213. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -1
  214. package/dist/src/coin/sol/stakingActivateBuilder.js +45 -113
  215. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +1 -1
  216. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -1
  217. package/dist/src/coin/sol/stakingDeactivateBuilder.js +36 -104
  218. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +1 -1
  219. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -1
  220. package/dist/src/coin/sol/stakingWithdrawBuilder.js +41 -109
  221. package/dist/src/coin/sol/tokenEncodeDecode.js +46 -75
  222. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
  223. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
  224. package/dist/src/coin/sol/tokenTransferBuilder.js +42 -115
  225. package/dist/src/coin/sol/transaction.d.ts +1 -2
  226. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  227. package/dist/src/coin/sol/transaction.js +130 -221
  228. package/dist/src/coin/sol/transactionBuilder.d.ts +1 -2
  229. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  230. package/dist/src/coin/sol/transactionBuilder.js +104 -171
  231. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +1 -1
  232. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  233. package/dist/src/coin/sol/transactionBuilderFactory.js +46 -64
  234. package/dist/src/coin/sol/transferBuilder.d.ts +1 -1
  235. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
  236. package/dist/src/coin/sol/transferBuilder.js +37 -108
  237. package/dist/src/coin/sol/utils.d.ts +1 -1
  238. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  239. package/dist/src/coin/sol/utils.js +49 -117
  240. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +1 -1
  241. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
  242. package/dist/src/coin/sol/walletInitializationBuilder.js +39 -107
  243. package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +1 -1
  244. package/dist/src/coin/stx/abstractContractBuilder.js +34 -104
  245. package/dist/src/coin/stx/contractBuilder.js +38 -57
  246. package/dist/src/coin/stx/index.js +2 -2
  247. package/dist/src/coin/stx/keyPair.d.ts +1 -2
  248. package/dist/src/coin/stx/keyPair.d.ts.map +1 -1
  249. package/dist/src/coin/stx/keyPair.js +39 -62
  250. package/dist/src/coin/stx/sendmanyBuilder.js +43 -108
  251. package/dist/src/coin/stx/transaction.d.ts +1 -2
  252. package/dist/src/coin/stx/transaction.d.ts.map +1 -1
  253. package/dist/src/coin/stx/transaction.js +102 -183
  254. package/dist/src/coin/stx/transactionBuilder.d.ts +1 -2
  255. package/dist/src/coin/stx/transactionBuilder.d.ts.map +1 -1
  256. package/dist/src/coin/stx/transactionBuilder.js +121 -218
  257. package/dist/src/coin/stx/transactionBuilderFactory.d.ts +1 -1
  258. package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +1 -1
  259. package/dist/src/coin/stx/transactionBuilderFactory.js +36 -54
  260. package/dist/src/coin/stx/transferBuilder.d.ts.map +1 -1
  261. package/dist/src/coin/stx/transferBuilder.js +41 -111
  262. package/dist/src/coin/stx/utils.d.ts.map +1 -1
  263. package/dist/src/coin/stx/utils.js +58 -65
  264. package/dist/src/coin/trx/address.d.ts +1 -1
  265. package/dist/src/coin/trx/address.d.ts.map +1 -1
  266. package/dist/src/coin/trx/address.js +3 -6
  267. package/dist/src/coin/trx/contractCallBuilder.d.ts +1 -1
  268. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -1
  269. package/dist/src/coin/trx/contractCallBuilder.js +100 -160
  270. package/dist/src/coin/trx/iface.d.ts +1 -1
  271. package/dist/src/coin/trx/iface.d.ts.map +1 -1
  272. package/dist/src/coin/trx/iface.js +1 -1
  273. package/dist/src/coin/trx/index.js +4 -4
  274. package/dist/src/coin/trx/keyPair.d.ts +1 -3
  275. package/dist/src/coin/trx/keyPair.d.ts.map +1 -1
  276. package/dist/src/coin/trx/keyPair.js +37 -57
  277. package/dist/src/coin/trx/transaction.d.ts +1 -3
  278. package/dist/src/coin/trx/transaction.d.ts.map +1 -1
  279. package/dist/src/coin/trx/transaction.js +84 -124
  280. package/dist/src/coin/trx/transactionBuilder.d.ts +1 -2
  281. package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -1
  282. package/dist/src/coin/trx/transactionBuilder.js +72 -134
  283. package/dist/src/coin/trx/utils.js +57 -59
  284. package/dist/src/coin/trx/wrappedBuilder.d.ts +1 -2
  285. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -1
  286. package/dist/src/coin/trx/wrappedBuilder.js +43 -101
  287. package/dist/src/coin/xrp/index.js +2 -2
  288. package/dist/src/coin/xrp/keyPair.d.ts +1 -2
  289. package/dist/src/coin/xrp/keyPair.d.ts.map +1 -1
  290. package/dist/src/coin/xrp/keyPair.js +6 -23
  291. package/dist/src/coin/xrp/transaction.d.ts +1 -2
  292. package/dist/src/coin/xrp/transaction.d.ts.map +1 -1
  293. package/dist/src/coin/xrp/transaction.js +13 -34
  294. package/dist/src/coin/xrp/transactionBuilder.d.ts +1 -2
  295. package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -1
  296. package/dist/src/coin/xrp/transactionBuilder.js +29 -51
  297. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +1 -1
  298. package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -1
  299. package/dist/src/coin/xrp/transactionBuilderFactory.js +17 -35
  300. package/dist/src/coin/xrp/transferBuilder.d.ts +1 -1
  301. package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -1
  302. package/dist/src/coin/xrp/transferBuilder.js +16 -73
  303. package/dist/src/coin/xrp/utils.d.ts +1 -1
  304. package/dist/src/coin/xrp/utils.d.ts.map +1 -1
  305. package/dist/src/coin/xrp/utils.js +22 -25
  306. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +1 -1
  307. package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -1
  308. package/dist/src/coin/xrp/walletInitializationBuilder.js +16 -73
  309. package/dist/src/coin/xtz/address.d.ts +1 -1
  310. package/dist/src/coin/xtz/address.d.ts.map +1 -1
  311. package/dist/src/coin/xtz/address.js +3 -6
  312. package/dist/src/coin/xtz/iface.d.ts +1 -1
  313. package/dist/src/coin/xtz/iface.d.ts.map +1 -1
  314. package/dist/src/coin/xtz/iface.js +1 -1
  315. package/dist/src/coin/xtz/index.js +4 -4
  316. package/dist/src/coin/xtz/keyPair.d.ts +1 -2
  317. package/dist/src/coin/xtz/keyPair.d.ts.map +1 -1
  318. package/dist/src/coin/xtz/keyPair.js +39 -59
  319. package/dist/src/coin/xtz/multisigUtils.js +64 -77
  320. package/dist/src/coin/xtz/transaction.d.ts +1 -2
  321. package/dist/src/coin/xtz/transaction.d.ts.map +1 -1
  322. package/dist/src/coin/xtz/transaction.js +175 -345
  323. package/dist/src/coin/xtz/transactionBuilder.d.ts +1 -2
  324. package/dist/src/coin/xtz/transactionBuilder.d.ts.map +1 -1
  325. package/dist/src/coin/xtz/transactionBuilder.js +212 -347
  326. package/dist/src/coin/xtz/transferBuilder.js +25 -28
  327. package/dist/src/coin/xtz/utils.d.ts.map +1 -1
  328. package/dist/src/coin/xtz/utils.js +54 -125
  329. package/dist/src/index.d.ts +7 -11
  330. package/dist/src/index.d.ts.map +1 -1
  331. package/dist/src/index.js +38 -44
  332. package/dist/src/keyPair/index.d.ts +1 -2
  333. package/dist/src/keyPair/index.d.ts.map +1 -1
  334. package/dist/src/keyPair/index.js +9 -9
  335. package/dist/src/utils/index.d.ts +1 -1
  336. package/dist/src/utils/index.d.ts.map +1 -1
  337. package/dist/src/utils/index.js +9 -9
  338. package/dist/tsconfig.tsbuildinfo +21131 -16701
  339. package/package.json +21 -43
  340. package/resources/README.md +8 -2
  341. package/resources/trx/protobuf/tron.js +5 -1
  342. package/dist/browser/bitgo-account-lib.js +0 -2
  343. package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
  344. package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -43
  345. package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
  346. package/dist/src/coin/algo/assetTransferBuilder.js +0 -127
  347. package/dist/src/coin/algo/errors.d.ts +0 -11
  348. package/dist/src/coin/algo/errors.d.ts.map +0 -1
  349. package/dist/src/coin/algo/errors.js +0 -51
  350. package/dist/src/coin/algo/ifaces.d.ts +0 -46
  351. package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
  352. package/dist/src/coin/algo/ifaces.js +0 -3
  353. package/dist/src/coin/algo/index.d.ts +0 -13
  354. package/dist/src/coin/algo/index.d.ts.map +0 -1
  355. package/dist/src/coin/algo/index.js +0 -47
  356. package/dist/src/coin/algo/keyPair.d.ts +0 -26
  357. package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
  358. package/dist/src/coin/algo/keyPair.js +0 -95
  359. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
  360. package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
  361. package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -262
  362. package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
  363. package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
  364. package/dist/src/coin/algo/seedEncoding.js +0 -100
  365. package/dist/src/coin/algo/transaction.d.ts +0 -76
  366. package/dist/src/coin/algo/transaction.d.ts.map +0 -1
  367. package/dist/src/coin/algo/transaction.js +0 -287
  368. package/dist/src/coin/algo/transactionBuilder.d.ts +0 -205
  369. package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
  370. package/dist/src/coin/algo/transactionBuilder.js +0 -445
  371. package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
  372. package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
  373. package/dist/src/coin/algo/transactionBuilderFactory.js +0 -70
  374. package/dist/src/coin/algo/transferBuilder.d.ts +0 -41
  375. package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
  376. package/dist/src/coin/algo/transferBuilder.js +0 -111
  377. package/dist/src/coin/algo/txnSchema.d.ts +0 -7
  378. package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
  379. package/dist/src/coin/algo/txnSchema.js +0 -68
  380. package/dist/src/coin/algo/utils.d.ts +0 -249
  381. package/dist/src/coin/algo/utils.d.ts.map +0 -1
  382. package/dist/src/coin/algo/utils.js +0 -544
  383. package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
  384. package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
  385. package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
  386. package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
  387. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
  388. package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
  389. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
  390. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
  391. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
  392. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
  393. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
  394. package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
  395. package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
  396. package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
  397. package/dist/src/coin/baseCoin/baseUtils.js +0 -3
  398. package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
  399. package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
  400. package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
  401. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
  402. package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
  403. package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
  404. package/dist/src/coin/baseCoin/enum.d.ts +0 -43
  405. package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
  406. package/dist/src/coin/baseCoin/enum.js +0 -70
  407. package/dist/src/coin/baseCoin/errors.d.ts +0 -65
  408. package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
  409. package/dist/src/coin/baseCoin/errors.js +0 -156
  410. package/dist/src/coin/baseCoin/iface.d.ts +0 -162
  411. package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
  412. package/dist/src/coin/baseCoin/iface.js +0 -38
  413. package/dist/src/coin/baseCoin/index.d.ts +0 -12
  414. package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
  415. package/dist/src/coin/baseCoin/index.js +0 -41
  416. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
  417. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
  418. package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
  419. package/dist/src/coin/cspr/constants.d.ts +0 -19
  420. package/dist/src/coin/cspr/constants.d.ts.map +0 -1
  421. package/dist/src/coin/cspr/constants.js +0 -28
  422. package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
  423. package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
  424. package/dist/src/coin/cspr/delegateBuilder.js +0 -175
  425. package/dist/src/coin/cspr/ifaces.d.ts +0 -69
  426. package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
  427. package/dist/src/coin/cspr/ifaces.js +0 -3
  428. package/dist/src/coin/cspr/index.d.ts +0 -5
  429. package/dist/src/coin/cspr/index.d.ts.map +0 -1
  430. package/dist/src/coin/cspr/index.js +0 -29
  431. package/dist/src/coin/cspr/keyPair.d.ts +0 -19
  432. package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
  433. package/dist/src/coin/cspr/keyPair.js +0 -94
  434. package/dist/src/coin/cspr/transaction.d.ts +0 -56
  435. package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
  436. package/dist/src/coin/cspr/transaction.js +0 -251
  437. package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -125
  438. package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
  439. package/dist/src/coin/cspr/transactionBuilder.js +0 -383
  440. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
  441. package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
  442. package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -116
  443. package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
  444. package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
  445. package/dist/src/coin/cspr/transferBuilder.js +0 -169
  446. package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
  447. package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
  448. package/dist/src/coin/cspr/undelegateBuilder.js +0 -175
  449. package/dist/src/coin/cspr/utils.d.ts +0 -189
  450. package/dist/src/coin/cspr/utils.d.ts.map +0 -1
  451. package/dist/src/coin/cspr/utils.js +0 -483
  452. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
  453. package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
  454. package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -160
  455. package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
  456. package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
  457. package/dist/src/mpc/curves/baseCurve.js +0 -6
  458. package/dist/src/mpc/curves/ed25519.d.ts +0 -17
  459. package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
  460. package/dist/src/mpc/curves/ed25519.js +0 -96
  461. package/dist/src/mpc/curves/index.d.ts +0 -5
  462. package/dist/src/mpc/curves/index.d.ts.map +0 -1
  463. package/dist/src/mpc/curves/index.js +0 -6
  464. package/dist/src/mpc/hdTree.d.ts +0 -24
  465. package/dist/src/mpc/hdTree.d.ts.map +0 -1
  466. package/dist/src/mpc/hdTree.js +0 -143
  467. package/dist/src/mpc/shamir.d.ts +0 -26
  468. package/dist/src/mpc/shamir.d.ts.map +0 -1
  469. package/dist/src/mpc/shamir.js +0 -87
  470. package/dist/src/mpc/tss.d.ts +0 -98
  471. package/dist/src/mpc/tss.d.ts.map +0 -1
  472. package/dist/src/mpc/tss.js +0 -346
  473. package/dist/src/mpc/util.d.ts +0 -7
  474. package/dist/src/mpc/util.d.ts.map +0 -1
  475. package/dist/src/mpc/util.js +0 -38
  476. package/dist/src/utils/crypto.d.ts +0 -99
  477. package/dist/src/utils/crypto.d.ts.map +0 -1
  478. package/dist/src/utils/crypto.js +0 -260
  479. package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
  480. package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
  481. package/dist/src/utils/ed25519KeyDeriver.js +0 -92
@@ -1,445 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
- function verb(n) { return function (v) { return step([n, v]); }; }
30
- function step(op) {
31
- if (f) throw new TypeError("Generator is already executing.");
32
- while (_) try {
33
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
- if (y = 0, t) op = [op[0] & 2, t.value];
35
- switch (op[0]) {
36
- case 0: case 1: t = op; break;
37
- case 4: _.label++; return { value: op[1], done: false };
38
- case 5: _.label++; y = op[1]; op = [0]; continue;
39
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
- default:
41
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
- if (t[2]) _.ops.pop();
46
- _.trys.pop(); continue;
47
- }
48
- op = body.call(thisArg, _);
49
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
- }
52
- };
53
- var __importDefault = (this && this.__importDefault) || function (mod) {
54
- return (mod && mod.__esModule) ? mod : { "default": mod };
55
- };
56
- Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.TransactionBuilder = void 0;
58
- var bignumber_js_1 = __importDefault(require("bignumber.js"));
59
- var algosdk_1 = __importDefault(require("algosdk"));
60
- var baseCoin_1 = require("../baseCoin");
61
- var errors_1 = require("../baseCoin/errors");
62
- var crypto_1 = require("../../utils/crypto");
63
- var transaction_1 = require("./transaction");
64
- var errors_2 = require("./errors");
65
- var keyPair_1 = require("./keyPair");
66
- var txnSchema_1 = require("./txnSchema");
67
- var utils_1 = __importDefault(require("./utils"));
68
- var MIN_FEE = 1000; // in microalgos
69
- var MAINNET_GENESIS_ID = 'mainnet-v1.0';
70
- var MAINNET_GENESIS_HASH = 'wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=';
71
- var TESTNET_GENESIS_ID = 'testnet-v1.0';
72
- var TESTNET_GENESIS_HASH = 'SGO1GKSzyE7IEPItTxCByw9x8FmnrCDexi9/cOUJOiI=';
73
- var BETANET_GENESIS_ID = 'betanet-v1.0';
74
- var BETANET_GENESIS_HASH = 'mFgazF+2uRS1tMiL9dsj01hJGySEmPN28B/TjjvpVW0=';
75
- var TransactionBuilder = /** @class */ (function (_super) {
76
- __extends(TransactionBuilder, _super);
77
- function TransactionBuilder(coinConfig) {
78
- var _this = _super.call(this, coinConfig) || this;
79
- _this._transaction = new transaction_1.Transaction(coinConfig);
80
- _this._keyPairs = [];
81
- return _this;
82
- }
83
- /**
84
- * Sets the fee.
85
- *
86
- * The minimum fee is 1000 microalgos.
87
- *
88
- * @param {BaseFee} feeObj The amount to pay to the fee sink denoted in microalgos
89
- * @returns {TransactionBuilder} This transaction builder.
90
- *
91
- * @see https://developer.algorand.org/docs/reference/transactions/
92
- */
93
- TransactionBuilder.prototype.fee = function (feeObj) {
94
- this._isFlatFee = true;
95
- var fee = new bignumber_js_1.default(feeObj.fee).toNumber();
96
- if (this._isFlatFee && fee < MIN_FEE) {
97
- throw new errors_2.InsufficientFeeError(fee, MIN_FEE);
98
- }
99
- this._fee = fee;
100
- return this;
101
- };
102
- /**
103
- * Sets whether the fee is a flat fee.
104
- *
105
- * A flat fee is the fee for the entire transaction whereas a normal fee
106
- * is a fee for every byte in the transaction.
107
- *
108
- * @param {boolean} isFlatFee Whether the fee should be specified as a flat fee.
109
- * @returns {TransactionBuilder} This transaction builder.
110
- */
111
- TransactionBuilder.prototype.isFlatFee = function (isFlatFee) {
112
- this._isFlatFee = isFlatFee;
113
- return this;
114
- };
115
- /**
116
- * Sets the transaction sender.
117
- *
118
- * @param {BaseAddress} sender The sender account
119
- * @returns {TransactionBuilder} This transaction builder.
120
- *
121
- * @see https://developer.algorand.org/docs/reference/transactions/
122
- */
123
- TransactionBuilder.prototype.sender = function (sender) {
124
- this.validateAddress(sender);
125
- this._sender = sender.address;
126
- this._transaction.sender(sender.address);
127
- return this;
128
- };
129
- /**
130
- * Sets the genesis id.
131
- *
132
- * @param {string} genesisId The genesis id.
133
- * @example "mainnet-v1.0"
134
- *
135
- * @returns {TransactionBuilder} This transaction builder.
136
- *
137
- * @see https://developer.algorand.org/docs/reference/transactions/
138
- */
139
- TransactionBuilder.prototype.genesisId = function (genesisId) {
140
- this._genesisId = genesisId;
141
- return this;
142
- };
143
- /**
144
- * Sets the genesis hash.
145
- *
146
- * The genesis hash must be base64 encoded.
147
- *
148
- * @param {string} genesisHash The genesis hash.
149
- * @example "wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8="
150
- *
151
- * @returns {TransactionBuilder} This transaction builder.
152
- *
153
- * @see https://developer.algorand.org/docs/reference/transactions/
154
- */
155
- TransactionBuilder.prototype.genesisHash = function (genesisHash) {
156
- this._genesisHash = genesisHash;
157
- return this;
158
- };
159
- /**
160
- * Sets the genesis id and hash to mainnet.
161
- *
162
- * @returns {TransactionBuilder} This transaction builder.
163
- *
164
- * @see https://developer.algorand.org/docs/reference/algorand-networks/mainnet/#genesis-id
165
- * @see https://developer.algorand.org/docs/reference/algorand-networks/mainnet/#genesis-hash
166
- */
167
- TransactionBuilder.prototype.mainnet = function () {
168
- this.genesisId(MAINNET_GENESIS_ID);
169
- this.genesisHash(MAINNET_GENESIS_HASH);
170
- return this;
171
- };
172
- /**
173
- * Sets the genesis id and hash to testnet.
174
- *
175
- * @returns {TransactionBuilder} This transaction builder.
176
- *
177
- * @see https://developer.algorand.org/docs/reference/algorand-networks/testnet/#genesis-id
178
- * @see https://developer.algorand.org/docs/reference/algorand-networks/testnet/#genesis-hash
179
- */
180
- TransactionBuilder.prototype.testnet = function () {
181
- this.genesisId(TESTNET_GENESIS_ID);
182
- this.genesisHash(TESTNET_GENESIS_HASH);
183
- return this;
184
- };
185
- /**
186
- * Sets the genesis id and hash to betanet.
187
- *
188
- * @returns {TransactionBuilder} This transaction builder.
189
- *
190
- * @see https://developer.algorand.org/docs/reference/algorand-networks/betanet/#genesis-id
191
- * @see https://developer.algorand.org/docs/reference/algorand-networks/betanet/#genesis-hash
192
- */
193
- TransactionBuilder.prototype.betanet = function () {
194
- this.genesisId(BETANET_GENESIS_ID);
195
- this.genesisHash(BETANET_GENESIS_HASH);
196
- return this;
197
- };
198
- /**
199
- * Sets the first round.
200
- *
201
- * @param {number} round The first protocol round on which this txn is valid.
202
- * @returns {TransactionBuilder} This transaction builder.
203
- *
204
- * @see https://developer.algorand.org/docs/reference/transactions/
205
- */
206
- TransactionBuilder.prototype.firstRound = function (round) {
207
- this.validateValue(new bignumber_js_1.default(round));
208
- this._firstRound = round;
209
- return this;
210
- };
211
- /**
212
- * Sets the last round.
213
- *
214
- * @param {number} round The first protocol round on which this txn is valid.
215
- * @returns {TransactionBuilder} This transaction builder.
216
- *
217
- * @see https://developer.algorand.org/docs/reference/transactions/
218
- */
219
- TransactionBuilder.prototype.lastRound = function (round) {
220
- this.validateValue(new bignumber_js_1.default(round));
221
- this._lastRound = round;
222
- return this;
223
- };
224
- /**
225
- * Sets the lease on the transaction.
226
- *
227
- * A lease is a mutex on the transaction that prevents any other transaction
228
- * from being sent with the same lease until the prior transaction's last
229
- * round has passed.
230
- *
231
- * @param {Uint8Array} lease The lease to put the transaction.
232
- * @returns {TransactionBuilder} This transaction builder.
233
- *
234
- * @see https://developer.algorand.org/docs/reference/transactions/
235
- */
236
- TransactionBuilder.prototype.lease = function (lease) {
237
- this._lease = lease;
238
- return this;
239
- };
240
- /**
241
- * Sets the note for the transaction.
242
- *
243
- * @param {Uint8Array} note Arbitrary data for sender to store.
244
- * @returns {TransactionBuilder} This transaction builder.
245
- *
246
- * @see https://developer.algorand.org/docs/reference/transactions/
247
- */
248
- TransactionBuilder.prototype.note = function (note) {
249
- this._note = note;
250
- return this;
251
- };
252
- /**
253
- * Sets the authorized address.
254
- *
255
- * The authorized asset will be used to authorize all future transactions.
256
- *
257
- * @param {BaseAddress} authorizer The address to delegate authorization authority to.
258
- * @returns {TransactionBuilder} This transaction builder.
259
- *
260
- * @see https://developer.algorand.org/docs/reference/transactions/
261
- */
262
- TransactionBuilder.prototype.reKeyTo = function (authorizer) {
263
- this.validateAddress(authorizer);
264
- this._reKeyTo = authorizer.address;
265
- return this;
266
- };
267
- /** @inheritdoc */
268
- TransactionBuilder.prototype.validateAddress = function (_a) {
269
- var address = _a.address;
270
- if (!algosdk_1.default.isValidAddress(address)) {
271
- throw new errors_2.AddressValidationError(address);
272
- }
273
- };
274
- /** @inheritdoc */
275
- TransactionBuilder.prototype.buildImplementation = function () {
276
- return __awaiter(this, void 0, void 0, function () {
277
- return __generator(this, function (_a) {
278
- this.transaction.setAlgoTransaction(this.buildAlgoTxn());
279
- this.transaction.setTransactionType(this.transactionType);
280
- this.transaction.sign(this._keyPairs);
281
- this._transaction.loadInputsAndOutputs();
282
- return [2 /*return*/, this._transaction];
283
- });
284
- });
285
- };
286
- /** @inheritdoc */
287
- TransactionBuilder.prototype.fromImplementation = function (rawTransaction) {
288
- var decodedTxn = utils_1.default.decodeAlgoTxn(rawTransaction);
289
- var algosdkTxn = decodedTxn.txn;
290
- if (decodedTxn.signed) {
291
- this._transaction.signedTransaction = decodedTxn.rawTransaction;
292
- if (decodedTxn.signers) {
293
- this.setSigners(decodedTxn.signers);
294
- }
295
- if (decodedTxn.signedBy) {
296
- this._transaction.signedBy = decodedTxn.signedBy;
297
- }
298
- }
299
- this.sender({ address: algosdk_1.default.encodeAddress(algosdkTxn.from.publicKey) });
300
- this._isFlatFee = true;
301
- this._fee = algosdkTxn.fee;
302
- this._genesisHash = algosdkTxn.genesisHash.toString('base64');
303
- this._genesisId = algosdkTxn.genesisID;
304
- this._firstRound = algosdkTxn.firstRound;
305
- this._lastRound = algosdkTxn.lastRound;
306
- this._lease = algosdkTxn.lease;
307
- this._note = algosdkTxn.note;
308
- this._reKeyTo = algosdkTxn.reKeyTo ? algosdk_1.default.encodeAddress(algosdkTxn.reKeyTo.publicKey) : undefined;
309
- this._transaction.setAlgoTransaction(algosdkTxn);
310
- return this._transaction;
311
- };
312
- /** @inheritdoc */
313
- TransactionBuilder.prototype.signImplementation = function (_a) {
314
- var key = _a.key;
315
- var buffKey = utils_1.default.decodeSeed(key);
316
- var keypair = new keyPair_1.KeyPair({ prv: Buffer.from(buffKey.seed).toString('hex') });
317
- this._keyPairs.push(keypair);
318
- return this._transaction;
319
- };
320
- TransactionBuilder.prototype.numberOfSigners = function (num) {
321
- this._transaction.setNumberOfRequiredSigners(num);
322
- return this;
323
- };
324
- TransactionBuilder.prototype.setSigners = function (addrs) {
325
- var _this = this;
326
- var signers = addrs instanceof Array ? addrs : [addrs];
327
- signers.forEach(function (address) { return _this.validateAddress({ address: address }); });
328
- this._transaction.signers = signers;
329
- return this;
330
- };
331
- /**
332
- * Sets the number of signers required to sign the transaction.
333
- *
334
- * The number of signers cannot be set to a negative value.
335
- *
336
- * @param {number} n The number of signers.
337
- * @returns {TransactionBuilder} This transaction builder.
338
- */
339
- TransactionBuilder.prototype.numberOfRequiredSigners = function (n) {
340
- if (n < 0) {
341
- throw new errors_1.BuildTransactionError("Number of signers: '" + n + "' cannot be negative");
342
- }
343
- this._transaction.setNumberOfRequiredSigners(n);
344
- return this;
345
- };
346
- /**
347
- * @inheritdoc
348
- * @see https://developer.algorand.org/docs/features/accounts/#transformation-private-key-to-base64-private-key
349
- */
350
- TransactionBuilder.prototype.validateKey = function (_a) {
351
- var key = _a.key;
352
- var isValidPrivateKeyFromBytes;
353
- var isValidPrivateKeyFromHex = crypto_1.isValidEd25519Seed(key);
354
- var isValidPrivateKeyFromBase64 = crypto_1.isValidEd25519Seed(Buffer.from(key, 'base64').toString('hex'));
355
- try {
356
- var decodedSeed = utils_1.default.decodeSeed(key);
357
- isValidPrivateKeyFromBytes = crypto_1.isValidEd25519Seed(Buffer.from(decodedSeed.seed).toString('hex'));
358
- }
359
- catch (err) {
360
- isValidPrivateKeyFromBytes = false;
361
- }
362
- if (!isValidPrivateKeyFromBytes && !isValidPrivateKeyFromHex && !isValidPrivateKeyFromBase64) {
363
- throw new errors_1.BuildTransactionError("Key validation failed");
364
- }
365
- };
366
- /** @inheritdoc */
367
- TransactionBuilder.prototype.validateRawTransaction = function (rawTransaction) {
368
- var decodedTxn = utils_1.default.decodeAlgoTxn(rawTransaction);
369
- var algoTxn = decodedTxn.txn;
370
- var validationResult = txnSchema_1.BaseTransactionSchema.validate({
371
- fee: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.fee,
372
- firstRound: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.firstRound,
373
- genesisHash: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.genesisHash.toString('base64'),
374
- lastRound: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.lastRound,
375
- sender: algoTxn ? algosdk_1.default.encodeAddress(algoTxn.from.publicKey) : undefined,
376
- genesisId: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.genesisID,
377
- lease: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.lease,
378
- note: algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.note,
379
- reKeyTo: (algoTxn === null || algoTxn === void 0 ? void 0 : algoTxn.reKeyTo) ? algosdk_1.default.encodeAddress(algoTxn.reKeyTo.publicKey) : undefined,
380
- });
381
- if (validationResult.error) {
382
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
383
- }
384
- };
385
- /** @inheritdoc */
386
- TransactionBuilder.prototype.validateTransaction = function (_) {
387
- this.validateBaseFields(this._fee, this._firstRound, this._genesisHash, this._lastRound, this._sender, this._genesisId, this._lease, this._note, this._reKeyTo);
388
- };
389
- TransactionBuilder.prototype.validateBaseFields = function (fee, firstRound, genesisHash, lastRound, sender, genesisId, lease, note, reKeyTo) {
390
- var validationResult = txnSchema_1.BaseTransactionSchema.validate({
391
- fee: fee,
392
- firstRound: firstRound,
393
- genesisHash: genesisHash,
394
- lastRound: lastRound,
395
- sender: sender,
396
- genesisId: genesisId,
397
- lease: lease,
398
- note: note,
399
- reKeyTo: reKeyTo,
400
- });
401
- if (validationResult.error) {
402
- throw new errors_1.InvalidTransactionError("Transaction validation failed: " + validationResult.error.message);
403
- }
404
- };
405
- /** @inheritdoc */
406
- TransactionBuilder.prototype.validateValue = function (value) {
407
- if (value.isLessThan(0)) {
408
- throw new errors_1.BuildTransactionError('Value cannot be less than zero');
409
- }
410
- };
411
- Object.defineProperty(TransactionBuilder.prototype, "transaction", {
412
- /** @inheritdoc */
413
- get: function () {
414
- return this._transaction;
415
- },
416
- /** @inheritdoc */
417
- set: function (transaction) {
418
- this._transaction = transaction;
419
- },
420
- enumerable: false,
421
- configurable: true
422
- });
423
- Object.defineProperty(TransactionBuilder.prototype, "suggestedParams", {
424
- /**
425
- * Convenience method to retrieve the algosdk suggested parameters.
426
- *
427
- * @returns {algosdk.SuggestedParams} The algosdk suggested parameters.
428
- */
429
- get: function () {
430
- return {
431
- flatFee: this._isFlatFee,
432
- fee: this._fee,
433
- firstRound: this._firstRound,
434
- lastRound: this._lastRound,
435
- genesisID: this._genesisId,
436
- genesisHash: this._genesisHash,
437
- };
438
- },
439
- enumerable: false,
440
- configurable: true
441
- });
442
- return TransactionBuilder;
443
- }(baseCoin_1.BaseTransactionBuilder));
444
- exports.TransactionBuilder = TransactionBuilder;
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsOERBQXFDO0FBQ3JDLG9EQUE4QjtBQUM5Qix3Q0FBc0U7QUFDdEUsNkNBQW9GO0FBRXBGLDZDQUF3RDtBQUN4RCw2Q0FBNEM7QUFDNUMsbUNBQXdFO0FBQ3hFLHFDQUFvQztBQUNwQyx5Q0FBb0Q7QUFDcEQsa0RBQTRCO0FBRTVCLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLGdCQUFnQjtBQUV0QyxJQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUMxQyxJQUFNLG9CQUFvQixHQUFHLDhDQUE4QyxDQUFDO0FBQzVFLElBQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBQzFDLElBQU0sb0JBQW9CLEdBQUcsOENBQThDLENBQUM7QUFDNUUsSUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUM7QUFDMUMsSUFBTSxvQkFBb0IsR0FBRyw4Q0FBOEMsQ0FBQztBQUU1RTtJQUFpRCxzQ0FBc0I7SUFtQnJFLDRCQUFZLFVBQWdDO1FBQTVDLFlBQ0Usa0JBQU0sVUFBVSxDQUFDLFNBSWxCO1FBRkMsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7O0lBQ3RCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxnQ0FBRyxHQUFILFVBQUksTUFBZTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFNLEdBQUcsR0FBRyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEs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QVUsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTthQUMvQixDQUFDO1FBQ0osQ0FBQzs7O09BQUE7SUFDSCx5QkFBQztBQUFELENBQUMsQUFwY0QsQ0FBaUQsaUNBQXNCLEdBb2N0RTtBQXBjcUIsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBCYXNlQWRkcmVzcywgQmFzZUZlZSwgQmFzZUtleSB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IGlzVmFsaWRFZDI1NTE5U2VlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciwgSW5zdWZmaWNpZW50RmVlRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgTUlOX0ZFRSA9IDEwMDA7IC8vIGluIG1pY3JvYWxnb3NcblxuY29uc3QgTUFJTk5FVF9HRU5FU0lTX0lEID0gJ21haW5uZXQtdjEuMCc7XG5jb25zdCBNQUlOTkVUX0dFTkVTSVNfSEFTSCA9ICd3R0hFMlB3ZHZkN1MxMkJMNUZhT1AyMEVHWWVzTjcza3RpQzFxemtraXQ4PSc7XG5jb25zdCBURVNUTkVUX0dFTkVTSVNfSUQgPSAndGVzdG5ldC12MS4wJztcbmNvbnN0IFRFU1RORVRfR0VORVNJU19IQVNIID0gJ1NHTzFHS1N6eUU3SUVQSXRUeENCeXc5eDhGbW5yQ0RleGk5L2NPVUpPaUk9JztcbmNvbnN0IEJFVEFORVRfR0VORVNJU19JRCA9ICdiZXRhbmV0LXYxLjAnO1xuY29uc3QgQkVUQU5FVF9HRU5FU0lTX0hBU0ggPSAnbUZnYXpGKzJ1UlMxdE1pTDlkc2owMWhKR3lTRW1QTjI4Qi9Uamp2cFZXMD0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX2tleVBhaXJzOiBLZXlQYWlyW107XG5cbiAgLy8gdGhlIGZlZSBpcyBzcGVjaWZpZWQgYXMgYSBudW1iZXIgaGVyZSBpbnN0ZWFkIG9mIGEgYmlnIG51bWJlciBiZWNhdXNlXG4gIC8vIHRoZSBhbGdvc2RrIGFsc28gc3BlY2lmaWVzIGl0IGFzIGEgbnVtYmVyLlxuICBwcm90ZWN0ZWQgX2ZlZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX2lzRmxhdEZlZTogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2dlbmVzaXNIYXNoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZ2VuZXNpc0lkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZmlyc3RSb3VuZDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX2xhc3RSb3VuZDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX2xlYXNlPzogVWludDhBcnJheTtcbiAgcHJvdGVjdGVkIF9ub3RlPzogVWludDhBcnJheTtcbiAgcHJvdGVjdGVkIF9yZUtleVRvPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N1Z2dlc3RlZFBhcmFtczogYWxnb3Nkay5TdWdnZXN0ZWRQYXJhbXM7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcblxuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcpO1xuICAgIHRoaXMuX2tleVBhaXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZmVlLlxuICAgKlxuICAgKiBUaGUgbWluaW11bSBmZWUgaXMgMTAwMCBtaWNyb2FsZ29zLlxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VGZWV9IGZlZU9iaiBUaGUgYW1vdW50IHRvIHBheSB0byB0aGUgZmVlIHNpbmsgZGVub3RlZCBpbiBtaWNyb2FsZ29zXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zL1xuICAgKi9cbiAgZmVlKGZlZU9iajogQmFzZUZlZSk6IHRoaXMge1xuICAgIHRoaXMuX2lzRmxhdEZlZSA9IHRydWU7XG4gICAgY29uc3QgZmVlID0gbmV3IEJpZ051bWJlcihmZWVPYmouZmVlKS50b051bWJlcigpO1xuICAgIGlmICh0aGlzLl9pc0ZsYXRGZWUgJiYgZmVlIDwgTUlOX0ZFRSkge1xuICAgICAgdGhyb3cgbmV3IEluc3VmZmljaWVudEZlZUVycm9yKGZlZSwgTUlOX0ZFRSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZmVlID0gZmVlO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoZSBmZWUgaXMgYSBmbGF0IGZlZS5cbiAgICpcbiAgICogQSBmbGF0IGZlZSBpcyB0aGUgZmVlIGZvciB0aGUgZW50aXJlIHRyYW5zYWN0aW9uIHdoZXJlYXMgYSBub3JtYWwgZmVlXG4gICAqIGlzIGEgZmVlIGZvciBldmVyeSBieXRlIGluIHRoZSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0ZsYXRGZWUgV2hldGhlciB0aGUgZmVlIHNob3VsZCBiZSBzcGVjaWZpZWQgYXMgYSBmbGF0IGZlZS5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKi9cbiAgaXNGbGF0RmVlKGlzRmxhdEZlZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2lzRmxhdEZlZSA9IGlzRmxhdEZlZTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyYW5zYWN0aW9uIHNlbmRlci5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gc2VuZGVyIFRoZSBzZW5kZXIgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy9cbiAgICovXG4gIHNlbmRlcihzZW5kZXI6IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3Moc2VuZGVyKTtcbiAgICB0aGlzLl9zZW5kZXIgPSBzZW5kZXIuYWRkcmVzcztcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZW5kZXIoc2VuZGVyLmFkZHJlc3MpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZ2VuZXNpcyBpZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdlbmVzaXNJZCBUaGUgZ2VuZXNpcyBpZC5cbiAgICogQGV4YW1wbGUgXCJtYWlubmV0LXYxLjBcIlxuICAgKlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy9cbiAgICovXG4gIGdlbmVzaXNJZChnZW5lc2lzSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2dlbmVzaXNJZCA9IGdlbmVzaXNJZDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGdlbmVzaXMgaGFzaC5cbiAgICpcbiAgICogVGhlIGdlbmVzaXMgaGFzaCBtdXN0IGJlIGJhc2U2NCBlbmNvZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ2VuZXNpc0hhc2ggVGhlIGdlbmVzaXMgaGFzaC5cbiAgICogQGV4YW1wbGUgXCJ3R0hFMlB3ZHZkN1MxMkJMNUZhT1AyMEVHWWVzTjcza3RpQzFxemtraXQ4PVwiXG4gICAqXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zL1xuICAgKi9cbiAgZ2VuZXNpc0hhc2goZ2VuZXNpc0hhc2g6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX2dlbmVzaXNIYXNoID0gZ2VuZXNpc0hhc2g7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnZW5lc2lzIGlkIGFuZCBoYXNoIHRvIG1haW5uZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvYWxnb3JhbmQtbmV0d29ya3MvbWFpbm5ldC8jZ2VuZXNpcy1pZFxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS9hbGdvcmFuZC1uZXR3b3Jrcy9tYWlubmV0LyNnZW5lc2lzLWhhc2hcbiAgICovXG4gIG1haW5uZXQoKTogdGhpcyB7XG4gICAgdGhpcy5nZW5lc2lzSWQoTUFJTk5FVF9HRU5FU0lTX0lEKTtcbiAgICB0aGlzLmdlbmVzaXNIYXNoKE1BSU5ORVRfR0VORVNJU19IQVNIKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGdlbmVzaXMgaWQgYW5kIGhhc2ggdG8gdGVzdG5ldC5cbiAgICpcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS9hbGdvcmFuZC1uZXR3b3Jrcy90ZXN0bmV0LyNnZW5lc2lzLWlkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL2FsZ29yYW5kLW5ldHdvcmtzL3Rlc3RuZXQvI2dlbmVzaXMtaGFzaFxuICAgKi9cbiAgdGVzdG5ldCgpOiB0aGlzIHtcbiAgICB0aGlzLmdlbmVzaXNJZChURVNUTkVUX0dFTkVTSVNfSUQpO1xuICAgIHRoaXMuZ2VuZXNpc0hhc2goVEVTVE5FVF9HRU5FU0lTX0hBU0gpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZ2VuZXNpcyBpZCBhbmQgaGFzaCB0byBiZXRhbmV0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL2FsZ29yYW5kLW5ldHdvcmtzL2JldGFuZXQvI2dlbmVzaXMtaWRcbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvYWxnb3JhbmQtbmV0d29ya3MvYmV0YW5ldC8jZ2VuZXNpcy1oYXNoXG4gICAqL1xuICBiZXRhbmV0KCk6IHRoaXMge1xuICAgIHRoaXMuZ2VuZXNpc0lkKEJFVEFORVRfR0VORVNJU19JRCk7XG4gICAgdGhpcy5nZW5lc2lzSGFzaChCRVRBTkVUX0dFTkVTSVNfSEFTSCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmaXJzdCByb3VuZC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJvdW5kIFRoZSBmaXJzdCBwcm90b2NvbCByb3VuZCBvbiB3aGljaCB0aGlzIHR4biBpcyB2YWxpZC5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvXG4gICAqL1xuICBmaXJzdFJvdW5kKHJvdW5kOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihyb3VuZCkpO1xuXG4gICAgdGhpcy5fZmlyc3RSb3VuZCA9IHJvdW5kO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbGFzdCByb3VuZC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJvdW5kIFRoZSBmaXJzdCBwcm90b2NvbCByb3VuZCBvbiB3aGljaCB0aGlzIHR4biBpcyB2YWxpZC5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvXG4gICAqL1xuICBsYXN0Um91bmQocm91bmQ6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHJvdW5kKSk7XG5cbiAgICB0aGlzLl9sYXN0Um91bmQgPSByb3VuZDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxlYXNlIG9uIHRoZSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQSBsZWFzZSBpcyBhIG11dGV4IG9uIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHByZXZlbnRzIGFueSBvdGhlciB0cmFuc2FjdGlvblxuICAgKiBmcm9tIGJlaW5nIHNlbnQgd2l0aCB0aGUgc2FtZSBsZWFzZSB1bnRpbCB0aGUgcHJpb3IgdHJhbnNhY3Rpb24ncyBsYXN0XG4gICAqIHJvdW5kIGhhcyBwYXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gbGVhc2UgVGhlIGxlYXNlIHRvIHB1dCB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9yZWZlcmVuY2UvdHJhbnNhY3Rpb25zL1xuICAgKi9cbiAgbGVhc2UobGVhc2U6IFVpbnQ4QXJyYXkpOiB0aGlzIHtcbiAgICB0aGlzLl9sZWFzZSA9IGxlYXNlO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbm90ZSBmb3IgdGhlIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IG5vdGUgQXJiaXRyYXJ5IGRhdGEgZm9yIHNlbmRlciB0byBzdG9yZS5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvXG4gICAqL1xuICBub3RlKG5vdGU6IFVpbnQ4QXJyYXkpOiB0aGlzIHtcbiAgICB0aGlzLl9ub3RlID0gbm90ZTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGF1dGhvcml6ZWQgYWRkcmVzcy5cbiAgICpcbiAgICogVGhlIGF1dGhvcml6ZWQgYXNzZXQgd2lsbCBiZSB1c2VkIHRvIGF1dGhvcml6ZSBhbGwgZnV0dXJlIHRyYW5zYWN0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gYXV0aG9yaXplciBUaGUgYWRkcmVzcyB0byBkZWxlZ2F0ZSBhdXRob3JpemF0aW9uIGF1dGhvcml0eSB0by5cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL3JlZmVyZW5jZS90cmFuc2FjdGlvbnMvXG4gICAqL1xuICByZUtleVRvKGF1dGhvcml6ZXI6IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoYXV0aG9yaXplcik7XG4gICAgdGhpcy5fcmVLZXlUbyA9IGF1dGhvcml6ZXIuYWRkcmVzcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3MgfTogQmFzZUFkZHJlc3MpOiB2b2lkIHtcbiAgICBpZiAoIWFsZ29zZGsuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBBZGRyZXNzVmFsaWRhdGlvbkVycm9yKGFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRBbGdvVHJhbnNhY3Rpb24odGhpcy5idWlsZEFsZ29UeG4oKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX2tleVBhaXJzKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGFsZ29yYW5kIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkQWxnb1R4bigpOiBhbGdvc2RrLlRyYW5zYWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gVXRpbHMuZGVjb2RlQWxnb1R4bihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYWxnb3Nka1R4biA9IGRlY29kZWRUeG4udHhuO1xuXG4gICAgaWYgKGRlY29kZWRUeG4uc2lnbmVkKSB7XG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbiA9IGRlY29kZWRUeG4ucmF3VHJhbnNhY3Rpb247XG4gICAgICBpZiAoZGVjb2RlZFR4bi5zaWduZXJzKSB7XG4gICAgICAgIHRoaXMuc2V0U2lnbmVycyhkZWNvZGVkVHhuLnNpZ25lcnMpO1xuICAgICAgfVxuICAgICAgaWYgKGRlY29kZWRUeG4uc2lnbmVkQnkpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24uc2lnbmVkQnkgPSBkZWNvZGVkVHhuLnNpZ25lZEJ5O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbmRlcih7IGFkZHJlc3M6IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhhbGdvc2RrVHhuLmZyb20ucHVibGljS2V5KSB9KTtcbiAgICB0aGlzLl9pc0ZsYXRGZWUgPSB0cnVlO1xuICAgIHRoaXMuX2ZlZSA9IGFsZ29zZGtUeG4uZmVlO1xuICAgIHRoaXMuX2dlbmVzaXNIYXNoID0gYWxnb3Nka1R4bi5nZW5lc2lzSGFzaC50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgdGhpcy5fZ2VuZXNpc0lkID0gYWxnb3Nka1R4bi5nZW5lc2lzSUQ7XG4gICAgdGhpcy5fZmlyc3RSb3VuZCA9IGFsZ29zZGtUeG4uZmlyc3RSb3VuZDtcbiAgICB0aGlzLl9sYXN0Um91bmQgPSBhbGdvc2RrVHhuLmxhc3RSb3VuZDtcbiAgICB0aGlzLl9sZWFzZSA9IGFsZ29zZGtUeG4ubGVhc2U7XG4gICAgdGhpcy5fbm90ZSA9IGFsZ29zZGtUeG4ubm90ZTtcbiAgICB0aGlzLl9yZUtleVRvID0gYWxnb3Nka1R4bi5yZUtleVRvID8gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKGFsZ29zZGtUeG4ucmVLZXlUby5wdWJsaWNLZXkpIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uc2V0QWxnb1RyYW5zYWN0aW9uKGFsZ29zZGtUeG4pO1xuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oeyBrZXkgfTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBidWZmS2V5ID0gVXRpbHMuZGVjb2RlU2VlZChrZXkpO1xuICAgIGNvbnN0IGtleXBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oYnVmZktleS5zZWVkKS50b1N0cmluZygnaGV4JykgfSk7XG4gICAgdGhpcy5fa2V5UGFpcnMucHVzaChrZXlwYWlyKTtcblxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIG51bWJlck9mU2lnbmVycyhudW06IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNldE51bWJlck9mUmVxdWlyZWRTaWduZXJzKG51bSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldFNpZ25lcnMoYWRkcnM6IHN0cmluZyB8IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgY29uc3Qgc2lnbmVycyA9IGFkZHJzIGluc3RhbmNlb2YgQXJyYXkgPyBhZGRycyA6IFthZGRyc107XG4gICAgc2lnbmVycy5mb3JFYWNoKChhZGRyZXNzKSA9PiB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IGFkZHJlc3MgfSkpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25lcnMgPSBzaWduZXJzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG51bWJlciBvZiBzaWduZXJzIHJlcXVpcmVkIHRvIHNpZ24gdGhlIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNpZ25lcnMgY2Fubm90IGJlIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHNpZ25lcnMuXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICovXG4gIG51bWJlck9mUmVxdWlyZWRTaWduZXJzKG46IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChuIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgTnVtYmVyIG9mIHNpZ25lcnM6ICcke259JyBjYW5ub3QgYmUgbmVnYXRpdmVgKTtcbiAgICB9XG5cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zZXROdW1iZXJPZlJlcXVpcmVkU2lnbmVycyhuKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvZmVhdHVyZXMvYWNjb3VudHMvI3RyYW5zZm9ybWF0aW9uLXByaXZhdGUta2V5LXRvLWJhc2U2NC1wcml2YXRlLWtleVxuICAgKi9cbiAgdmFsaWRhdGVLZXkoeyBrZXkgfTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcztcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggPSBpc1ZhbGlkRWQyNTUxOVNlZWQoa2V5KTtcbiAgICBjb25zdCBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CYXNlNjQgPSBpc1ZhbGlkRWQyNTUxOVNlZWQoQnVmZmVyLmZyb20oa2V5LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFNlZWQgPSBVdGlscy5kZWNvZGVTZWVkKGtleSk7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShkZWNvZGVkU2VlZC5zZWVkKS50b1N0cmluZygnaGV4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzICYmICFpc1ZhbGlkUHJpdmF0ZUtleUZyb21IZXggJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgS2V5IHZhbGlkYXRpb24gZmFpbGVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXkgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkZWNvZGVkVHhuID0gVXRpbHMuZGVjb2RlQWxnb1R4bihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYWxnb1R4biA9IGRlY29kZWRUeG4udHhuO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IEJhc2VUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBmZWU6IGFsZ29UeG4/LmZlZSxcbiAgICAgIGZpcnN0Um91bmQ6IGFsZ29UeG4/LmZpcnN0Um91bmQsXG4gICAgICBnZW5lc2lzSGFzaDogYWxnb1R4bj8uZ2VuZXNpc0hhc2gudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgbGFzdFJvdW5kOiBhbGdvVHhuPy5sYXN0Um91bmQsXG4gICAgICBzZW5kZXI6IGFsZ29UeG4gPyBhbGdvc2RrLmVuY29kZUFkZHJlc3MoYWxnb1R4bi5mcm9tLnB1YmxpY0tleSkgOiB1bmRlZmluZWQsXG4gICAgICBnZW5lc2lzSWQ6IGFsZ29UeG4/LmdlbmVzaXNJRCxcbiAgICAgIGxlYXNlOiBhbGdvVHhuPy5sZWFzZSxcbiAgICAgIG5vdGU6IGFsZ29UeG4/Lm5vdGUsXG4gICAgICByZUtleVRvOiBhbGdvVHhuPy5yZUtleVRvID8gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKGFsZ29UeG4ucmVLZXlUby5wdWJsaWNLZXkpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgICB0aGlzLl9mZWUsXG4gICAgICB0aGlzLl9maXJzdFJvdW5kLFxuICAgICAgdGhpcy5fZ2VuZXNpc0hhc2gsXG4gICAgICB0aGlzLl9sYXN0Um91bmQsXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICB0aGlzLl9nZW5lc2lzSWQsXG4gICAgICB0aGlzLl9sZWFzZSxcbiAgICAgIHRoaXMuX25vdGUsXG4gICAgICB0aGlzLl9yZUtleVRvLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQmFzZUZpZWxkcyhcbiAgICBmZWU6IG51bWJlcixcbiAgICBmaXJzdFJvdW5kOiBudW1iZXIsXG4gICAgZ2VuZXNpc0hhc2g6IHN0cmluZyxcbiAgICBsYXN0Um91bmQ6IG51bWJlcixcbiAgICBzZW5kZXI6IHN0cmluZyxcbiAgICBnZW5lc2lzSWQ6IHN0cmluZyxcbiAgICBsZWFzZTogVWludDhBcnJheSB8IHVuZGVmaW5lZCxcbiAgICBub3RlOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkLFxuICAgIHJlS2V5VG86IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IEJhc2VUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBmZWUsXG4gICAgICBmaXJzdFJvdW5kLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgICBsYXN0Um91bmQsXG4gICAgICBzZW5kZXIsXG4gICAgICBnZW5lc2lzSWQsXG4gICAgICBsZWFzZSxcbiAgICAgIG5vdGUsXG4gICAgICByZUtleVRvLFxuICAgIH0pO1xuXG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byByZXRyaWV2ZSB0aGUgYWxnb3NkayBzdWdnZXN0ZWQgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHJldHVybnMge2FsZ29zZGsuU3VnZ2VzdGVkUGFyYW1zfSBUaGUgYWxnb3NkayBzdWdnZXN0ZWQgcGFyYW1ldGVycy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgc3VnZ2VzdGVkUGFyYW1zKCk6IGFsZ29zZGsuU3VnZ2VzdGVkUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmxhdEZlZTogdGhpcy5faXNGbGF0RmVlLFxuICAgICAgZmVlOiB0aGlzLl9mZWUsXG4gICAgICBmaXJzdFJvdW5kOiB0aGlzLl9maXJzdFJvdW5kLFxuICAgICAgbGFzdFJvdW5kOiB0aGlzLl9sYXN0Um91bmQsXG4gICAgICBnZW5lc2lzSUQ6IHRoaXMuX2dlbmVzaXNJZCxcbiAgICAgIGdlbmVzaXNIYXNoOiB0aGlzLl9nZW5lc2lzSGFzaCxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseTransactionBuilderFactory } from '../baseCoin';
3
- import { KeyRegistrationBuilder } from './keyRegistrationBuilder';
4
- import { TransferBuilder } from './transferBuilder';
5
- import { TransactionBuilder } from './transactionBuilder';
6
- import { AssetTransferBuilder } from './assetTransferBuilder';
7
- export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
8
- constructor(_coinConfig: Readonly<CoinConfig>);
9
- getTransferBuilder(): TransferBuilder;
10
- getAssetTransferBuilder(): AssetTransferBuilder;
11
- getKeyRegistrationBuilder(): KeyRegistrationBuilder;
12
- from(rawTxn: string | Uint8Array): TransactionBuilder;
13
- private getBuilder;
14
- getWalletInitializationBuilder(): KeyRegistrationBuilder;
15
- }
16
- //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/transactionBuilderFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB,IAAI,eAAe;IAIrC,uBAAuB,IAAI,oBAAoB;IAI/C,yBAAyB,IAAI,sBAAsB;IAInD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,kBAAkB;IAOrD,OAAO,CAAC,UAAU;IAcX,8BAA8B,IAAI,sBAAsB;CAGhE"}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.TransactionBuilderFactory = void 0;
22
- var algosdk_1 = __importDefault(require("algosdk"));
23
- var errors_1 = require("../baseCoin/errors");
24
- var baseCoin_1 = require("../baseCoin");
25
- var keyRegistrationBuilder_1 = require("./keyRegistrationBuilder");
26
- var transferBuilder_1 = require("./transferBuilder");
27
- var assetTransferBuilder_1 = require("./assetTransferBuilder");
28
- var utils_1 = __importDefault(require("./utils"));
29
- var TransactionBuilderFactory = /** @class */ (function (_super) {
30
- __extends(TransactionBuilderFactory, _super);
31
- function TransactionBuilderFactory(_coinConfig) {
32
- return _super.call(this, _coinConfig) || this;
33
- }
34
- TransactionBuilderFactory.prototype.getTransferBuilder = function () {
35
- return new transferBuilder_1.TransferBuilder(this._coinConfig);
36
- };
37
- TransactionBuilderFactory.prototype.getAssetTransferBuilder = function () {
38
- return new assetTransferBuilder_1.AssetTransferBuilder(this._coinConfig);
39
- };
40
- TransactionBuilderFactory.prototype.getKeyRegistrationBuilder = function () {
41
- return new keyRegistrationBuilder_1.KeyRegistrationBuilder(this._coinConfig);
42
- };
43
- TransactionBuilderFactory.prototype.from = function (rawTxn) {
44
- var builder = this.getBuilder(rawTxn);
45
- builder.from(rawTxn);
46
- return builder;
47
- };
48
- TransactionBuilderFactory.prototype.getBuilder = function (rawTxn) {
49
- var decodeTxn = utils_1.default.decodeAlgoTxn(rawTxn);
50
- var algoTxn = decodeTxn.txn;
51
- if (algoTxn.type == algosdk_1.default.TransactionType.keyreg) {
52
- return this.getWalletInitializationBuilder();
53
- }
54
- else if (algoTxn.type == algosdk_1.default.TransactionType.pay) {
55
- return this.getTransferBuilder();
56
- }
57
- else if (algoTxn.type == algosdk_1.default.TransactionType.axfer) {
58
- return this.getAssetTransferBuilder();
59
- }
60
- else {
61
- throw new errors_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
62
- }
63
- };
64
- TransactionBuilderFactory.prototype.getWalletInitializationBuilder = function () {
65
- return new keyRegistrationBuilder_1.KeyRegistrationBuilder(this._coinConfig);
66
- };
67
- return TransactionBuilderFactory;
68
- }(baseCoin_1.BaseTransactionBuilderFactory));
69
- exports.TransactionBuilderFactory = TransactionBuilderFactory;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2FsZ28vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBOEI7QUFFOUIsNkNBQWtEO0FBQ2xELHdDQUE0RDtBQUM1RCxtRUFBa0U7QUFDbEUscURBQW9EO0FBRXBELCtEQUE4RDtBQUM5RCxrREFBNEI7QUFFNUI7SUFBK0MsNkNBQTZCO0lBQzFFLG1DQUFZLFdBQWlDO2VBQzNDLGtCQUFNLFdBQVcsQ0FBQztJQUNwQixDQUFDO0lBRUQsc0RBQWtCLEdBQWxCO1FBQ0UsT0FBTyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCwyREFBdUIsR0FBdkI7UUFDRSxPQUFPLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw2REFBeUIsR0FBekI7UUFDRSxPQUFPLElBQUksK0NBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx3Q0FBSSxHQUFKLFVBQUssTUFBMkI7UUFDOUIsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyw4Q0FBVSxHQUFsQixVQUFtQixNQUEyQjtRQUM1QyxJQUFNLFNBQVMsR0FBRyxlQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLGlCQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1NBQzlDO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLGlCQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLGlCQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxNQUFNLElBQUkscUJBQVksQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1NBQy9GO0lBQ0gsQ0FBQztJQUVNLGtFQUE4QixHQUFyQztRQUNFLE9BQU8sSUFBSSwrQ0FBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNILGdDQUFDO0FBQUQsQ0FBQyxBQXpDRCxDQUErQyx3Q0FBNkIsR0F5QzNFO0FBekNZLDhEQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IE5vdFN1cHBvcnRlZCB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2tleVJlZ2lzdHJhdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldFRyYW5zZmVyQnVpbGRlcigpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0QXNzZXRUcmFuc2ZlckJ1aWxkZXIoKTogQXNzZXRUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQXNzZXRUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXRLZXlSZWdpc3RyYXRpb25CdWlsZGVyKCk6IEtleVJlZ2lzdHJhdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgS2V5UmVnaXN0cmF0aW9uQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGZyb20ocmF3VHhuOiBzdHJpbmcgfCBVaW50OEFycmF5KTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5nZXRCdWlsZGVyKHJhd1R4bik7XG4gICAgYnVpbGRlci5mcm9tKHJhd1R4bik7XG5cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnVpbGRlcihyYXdUeG46IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGRlY29kZVR4biA9IFV0aWxzLmRlY29kZUFsZ29UeG4ocmF3VHhuKTtcbiAgICBjb25zdCBhbGdvVHhuID0gZGVjb2RlVHhuLnR4bjtcbiAgICBpZiAoYWxnb1R4bi50eXBlID09IGFsZ29zZGsuVHJhbnNhY3Rpb25UeXBlLmtleXJlZykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk7XG4gICAgfSBlbHNlIGlmIChhbGdvVHhuLnR5cGUgPT0gYWxnb3Nkay5UcmFuc2FjdGlvblR5cGUucGF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2UgaWYgKGFsZ29UeG4udHlwZSA9PSBhbGdvc2RrLlRyYW5zYWN0aW9uVHlwZS5heGZlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXNzZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnVHJhbnNhY3Rpb24gY2Fubm90IGJlIHBhcnNlZCBvciBoYXMgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIoKTogS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBLZXlSZWdpc3RyYXRpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import algosdk from 'algosdk';
3
- import { BaseAddress } from '../baseCoin/iface';
4
- import { TransactionType } from '../baseCoin';
5
- import { TransactionBuilder } from './transactionBuilder';
6
- import { Transaction } from './transaction';
7
- export declare class TransferBuilder extends TransactionBuilder {
8
- protected _to: string;
9
- protected _amount: number | bigint;
10
- protected _closeRemainderTo?: string;
11
- constructor(coinConfig: Readonly<CoinConfig>);
12
- protected buildAlgoTxn(): algosdk.Transaction;
13
- protected get transactionType(): TransactionType;
14
- protected fromImplementation(rawTransaction: Uint8Array | string): Transaction;
15
- validateRawTransaction(rawTransaction: Uint8Array | string): void;
16
- validateTransaction(transaction: Transaction): void;
17
- /**
18
- * Sets the payment receiver.
19
- *
20
- * @param {BaseAddress} to The receiver account
21
- * @returns {TransferBuilder} This transfer builder.
22
- *
23
- */
24
- to(to: BaseAddress): this;
25
- /**
26
- * Sets the amount of payment.
27
- *
28
- * @param {number} amount The amount of payment.
29
- * @returns {TransferBuilder} This transfer builder.
30
- */
31
- amount(amount: number | bigint): this;
32
- /**
33
- * Sets address to transfer remainder amount on closing.
34
- *
35
- * @param {BaseAddress} closeRemainderTo The address for receiving remainder amount
36
- * @returns {TransferBuilder} This transfer builder.
37
- *
38
- */
39
- closeRemainderTo(closeRemainderTo: BaseAddress): this;
40
- }
41
- //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/transferBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAEzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;IAY7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW;IAc9E,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAUjE,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAanD;;;;;;OAMG;IACH,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAOzB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOrC;;;;;;OAMG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;CAMtD"}