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

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 (276) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/resources/README.md +0 -22
  3. package/dist/src/coin/polygon/transactionBuilder.d.ts +2 -2
  4. package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -1
  5. package/dist/src/coin/polygon/transactionBuilder.js +3 -3
  6. package/dist/src/index.d.ts +7 -7
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +8 -8
  9. package/dist/tsconfig.tsbuildinfo +12836 -26738
  10. package/package.json +21 -30
  11. package/resources/README.md +0 -22
  12. package/dist/resources/trx/protobuf/Contract.proto +0 -256
  13. package/dist/resources/trx/protobuf/Discover.proto +0 -44
  14. package/dist/resources/trx/protobuf/tron.d.ts +0 -11024
  15. package/dist/resources/trx/protobuf/tron.js +0 -31510
  16. package/dist/resources/trx/protobuf/tron.proto +0 -677
  17. package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
  18. package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
  19. package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
  20. package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
  21. package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
  22. package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
  23. package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
  24. package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
  25. package/dist/src/coin/dot/claimBuilder.js +0 -119
  26. package/dist/src/coin/dot/errors.d.ts +0 -8
  27. package/dist/src/coin/dot/errors.d.ts.map +0 -1
  28. package/dist/src/coin/dot/errors.js +0 -19
  29. package/dist/src/coin/dot/iface.d.ts +0 -194
  30. package/dist/src/coin/dot/iface.d.ts.map +0 -1
  31. package/dist/src/coin/dot/iface.js +0 -39
  32. package/dist/src/coin/dot/index.d.ts +0 -17
  33. package/dist/src/coin/dot/index.d.ts.map +0 -1
  34. package/dist/src/coin/dot/index.js +0 -53
  35. package/dist/src/coin/dot/keyPair.d.ts +0 -31
  36. package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
  37. package/dist/src/coin/dot/keyPair.js +0 -70
  38. package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
  39. package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
  40. package/dist/src/coin/dot/singletonRegistry.js +0 -20
  41. package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
  42. package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
  43. package/dist/src/coin/dot/stakingBuilder.js +0 -139
  44. package/dist/src/coin/dot/transaction.d.ts +0 -65
  45. package/dist/src/coin/dot/transaction.d.ts.map +0 -1
  46. package/dist/src/coin/dot/transaction.js +0 -396
  47. package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
  48. package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
  49. package/dist/src/coin/dot/transactionBuilder.js +0 -332
  50. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
  51. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
  52. package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
  53. package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
  54. package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
  55. package/dist/src/coin/dot/transferBuilder.js +0 -177
  56. package/dist/src/coin/dot/txnSchema.d.ts +0 -14
  57. package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
  58. package/dist/src/coin/dot/txnSchema.js +0 -104
  59. package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
  60. package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
  61. package/dist/src/coin/dot/unnominateBuilder.js +0 -50
  62. package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
  63. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
  64. package/dist/src/coin/dot/unstakeBuilder.js +0 -89
  65. package/dist/src/coin/dot/utils.d.ts +0 -145
  66. package/dist/src/coin/dot/utils.d.ts.map +0 -1
  67. package/dist/src/coin/dot/utils.js +0 -283
  68. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
  69. package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
  70. package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
  71. package/dist/src/coin/etc/index.d.ts +0 -6
  72. package/dist/src/coin/etc/index.d.ts.map +0 -1
  73. package/dist/src/coin/etc/index.js +0 -33
  74. package/dist/src/coin/etc/resources.d.ts +0 -10
  75. package/dist/src/coin/etc/resources.d.ts.map +0 -1
  76. package/dist/src/coin/etc/resources.js +0 -26
  77. package/dist/src/coin/etc/transactionBuilder.d.ts +0 -17
  78. package/dist/src/coin/etc/transactionBuilder.d.ts.map +0 -1
  79. package/dist/src/coin/etc/transactionBuilder.js +0 -45
  80. package/dist/src/coin/etc/transferBuilder.d.ts +0 -19
  81. package/dist/src/coin/etc/transferBuilder.d.ts.map +0 -1
  82. package/dist/src/coin/etc/transferBuilder.js +0 -27
  83. package/dist/src/coin/etc/utils.d.ts +0 -17
  84. package/dist/src/coin/etc/utils.d.ts.map +0 -1
  85. package/dist/src/coin/etc/utils.js +0 -42
  86. package/dist/src/coin/hbar/coinTransferBuilder.d.ts +0 -46
  87. package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +0 -1
  88. package/dist/src/coin/hbar/coinTransferBuilder.js +0 -143
  89. package/dist/src/coin/hbar/constants.d.ts +0 -8
  90. package/dist/src/coin/hbar/constants.d.ts.map +0 -1
  91. package/dist/src/coin/hbar/constants.js +0 -12
  92. package/dist/src/coin/hbar/iface.d.ts +0 -49
  93. package/dist/src/coin/hbar/iface.d.ts.map +0 -1
  94. package/dist/src/coin/hbar/iface.js +0 -3
  95. package/dist/src/coin/hbar/index.d.ts +0 -9
  96. package/dist/src/coin/hbar/index.d.ts.map +0 -1
  97. package/dist/src/coin/hbar/index.js +0 -37
  98. package/dist/src/coin/hbar/keyPair.d.ts +0 -23
  99. package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
  100. package/dist/src/coin/hbar/keyPair.js +0 -70
  101. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +0 -38
  102. package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +0 -1
  103. package/dist/src/coin/hbar/tokenAssociateBuilder.js +0 -126
  104. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +0 -25
  105. package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +0 -1
  106. package/dist/src/coin/hbar/tokenTransferBuilder.js +0 -115
  107. package/dist/src/coin/hbar/transaction.d.ts +0 -106
  108. package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
  109. package/dist/src/coin/hbar/transaction.js +0 -318
  110. package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -111
  111. package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
  112. package/dist/src/coin/hbar/transactionBuilder.js +0 -270
  113. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -47
  114. package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
  115. package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -88
  116. package/dist/src/coin/hbar/transferBuilder.d.ts +0 -24
  117. package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
  118. package/dist/src/coin/hbar/transferBuilder.js +0 -74
  119. package/dist/src/coin/hbar/utils.d.ts +0 -193
  120. package/dist/src/coin/hbar/utils.d.ts.map +0 -1
  121. package/dist/src/coin/hbar/utils.js +0 -410
  122. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
  123. package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
  124. package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -110
  125. package/dist/src/coin/near/constants.d.ts +0 -12
  126. package/dist/src/coin/near/constants.d.ts.map +0 -1
  127. package/dist/src/coin/near/constants.js +0 -15
  128. package/dist/src/coin/near/contractCallWrapper.d.ts +0 -33
  129. package/dist/src/coin/near/contractCallWrapper.d.ts.map +0 -1
  130. package/dist/src/coin/near/contractCallWrapper.js +0 -68
  131. package/dist/src/coin/near/errors.d.ts +0 -5
  132. package/dist/src/coin/near/errors.d.ts.map +0 -1
  133. package/dist/src/coin/near/errors.js +0 -12
  134. package/dist/src/coin/near/iface.d.ts +0 -40
  135. package/dist/src/coin/near/iface.d.ts.map +0 -1
  136. package/dist/src/coin/near/iface.js +0 -8
  137. package/dist/src/coin/near/index.d.ts +0 -11
  138. package/dist/src/coin/near/index.d.ts.map +0 -1
  139. package/dist/src/coin/near/index.js +0 -41
  140. package/dist/src/coin/near/keyPair.d.ts +0 -25
  141. package/dist/src/coin/near/keyPair.d.ts.map +0 -1
  142. package/dist/src/coin/near/keyPair.js +0 -73
  143. package/dist/src/coin/near/stakingActivateBuilder.d.ts +0 -32
  144. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +0 -1
  145. package/dist/src/coin/near/stakingActivateBuilder.js +0 -90
  146. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +0 -32
  147. package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +0 -1
  148. package/dist/src/coin/near/stakingDeactivateBuilder.js +0 -89
  149. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +0 -32
  150. package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +0 -1
  151. package/dist/src/coin/near/stakingWithdrawBuilder.js +0 -89
  152. package/dist/src/coin/near/transaction.d.ts +0 -90
  153. package/dist/src/coin/near/transaction.d.ts.map +0 -1
  154. package/dist/src/coin/near/transaction.js +0 -368
  155. package/dist/src/coin/near/transactionBuilder.d.ts +0 -89
  156. package/dist/src/coin/near/transactionBuilder.d.ts.map +0 -1
  157. package/dist/src/coin/near/transactionBuilder.js +0 -216
  158. package/dist/src/coin/near/transactionBuilderFactory.d.ts +0 -30
  159. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +0 -1
  160. package/dist/src/coin/near/transactionBuilderFactory.js +0 -71
  161. package/dist/src/coin/near/transferBuilder.d.ts +0 -26
  162. package/dist/src/coin/near/transferBuilder.d.ts.map +0 -1
  163. package/dist/src/coin/near/transferBuilder.js +0 -72
  164. package/dist/src/coin/near/utils.d.ts +0 -42
  165. package/dist/src/coin/near/utils.d.ts.map +0 -1
  166. package/dist/src/coin/near/utils.js +0 -85
  167. package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -12
  168. package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +0 -1
  169. package/dist/src/coin/near/walletInitializationBuilder.js +0 -20
  170. package/dist/src/coin/rbtc/index.d.ts +0 -6
  171. package/dist/src/coin/rbtc/index.d.ts.map +0 -1
  172. package/dist/src/coin/rbtc/index.js +0 -33
  173. package/dist/src/coin/rbtc/resources.d.ts +0 -10
  174. package/dist/src/coin/rbtc/resources.d.ts.map +0 -1
  175. package/dist/src/coin/rbtc/resources.js +0 -25
  176. package/dist/src/coin/rbtc/transactionBuilder.d.ts +0 -17
  177. package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +0 -1
  178. package/dist/src/coin/rbtc/transactionBuilder.js +0 -44
  179. package/dist/src/coin/rbtc/transferBuilder.d.ts +0 -19
  180. package/dist/src/coin/rbtc/transferBuilder.d.ts.map +0 -1
  181. package/dist/src/coin/rbtc/transferBuilder.js +0 -27
  182. package/dist/src/coin/rbtc/utils.d.ts +0 -17
  183. package/dist/src/coin/rbtc/utils.d.ts.map +0 -1
  184. package/dist/src/coin/rbtc/utils.js +0 -42
  185. package/dist/src/coin/sol/ataInitializationBuilder.d.ts +0 -42
  186. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +0 -1
  187. package/dist/src/coin/sol/ataInitializationBuilder.js +0 -112
  188. package/dist/src/coin/sol/ataInitializationTransaction.d.ts +0 -14
  189. package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +0 -1
  190. package/dist/src/coin/sol/ataInitializationTransaction.js +0 -81
  191. package/dist/src/coin/sol/constants.d.ts +0 -58
  192. package/dist/src/coin/sol/constants.d.ts.map +0 -1
  193. package/dist/src/coin/sol/constants.js +0 -76
  194. package/dist/src/coin/sol/iface.d.ts +0 -100
  195. package/dist/src/coin/sol/iface.d.ts.map +0 -1
  196. package/dist/src/coin/sol/iface.js +0 -3
  197. package/dist/src/coin/sol/index.d.ts +0 -11
  198. package/dist/src/coin/sol/index.d.ts.map +0 -1
  199. package/dist/src/coin/sol/index.js +0 -41
  200. package/dist/src/coin/sol/instructionParamsFactory.d.ts +0 -12
  201. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +0 -1
  202. package/dist/src/coin/sol/instructionParamsFactory.js +0 -267
  203. package/dist/src/coin/sol/keyPair.d.ts +0 -26
  204. package/dist/src/coin/sol/keyPair.d.ts.map +0 -1
  205. package/dist/src/coin/sol/keyPair.js +0 -63
  206. package/dist/src/coin/sol/solInstructionFactory.d.ts +0 -10
  207. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +0 -1
  208. package/dist/src/coin/sol/solInstructionFactory.js +0 -213
  209. package/dist/src/coin/sol/stakingActivateBuilder.d.ts +0 -41
  210. package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +0 -1
  211. package/dist/src/coin/sol/stakingActivateBuilder.js +0 -94
  212. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +0 -23
  213. package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +0 -1
  214. package/dist/src/coin/sol/stakingDeactivateBuilder.js +0 -62
  215. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +0 -31
  216. package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +0 -1
  217. package/dist/src/coin/sol/stakingWithdrawBuilder.js +0 -78
  218. package/dist/src/coin/sol/tokenEncodeDecode.d.ts +0 -85
  219. package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +0 -1
  220. package/dist/src/coin/sol/tokenEncodeDecode.js +0 -133
  221. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +0 -27
  222. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +0 -1
  223. package/dist/src/coin/sol/tokenTransferBuilder.js +0 -73
  224. package/dist/src/coin/sol/transaction.d.ts +0 -61
  225. package/dist/src/coin/sol/transaction.d.ts.map +0 -1
  226. package/dist/src/coin/sol/transaction.js +0 -369
  227. package/dist/src/coin/sol/transactionBuilder.d.ts +0 -101
  228. package/dist/src/coin/sol/transactionBuilder.d.ts.map +0 -1
  229. package/dist/src/coin/sol/transactionBuilder.js +0 -261
  230. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +0 -76
  231. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +0 -1
  232. package/dist/src/coin/sol/transactionBuilderFactory.js +0 -136
  233. package/dist/src/coin/sol/transferBuilder.d.ts +0 -26
  234. package/dist/src/coin/sol/transferBuilder.d.ts.map +0 -1
  235. package/dist/src/coin/sol/transferBuilder.js +0 -67
  236. package/dist/src/coin/sol/utils.d.ts +0 -146
  237. package/dist/src/coin/sol/utils.d.ts.map +0 -1
  238. package/dist/src/coin/sol/utils.js +0 -361
  239. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +0 -26
  240. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +0 -1
  241. package/dist/src/coin/sol/walletInitializationBuilder.js +0 -71
  242. package/dist/src/coin/trx/address.d.ts +0 -11
  243. package/dist/src/coin/trx/address.d.ts.map +0 -1
  244. package/dist/src/coin/trx/address.js +0 -13
  245. package/dist/src/coin/trx/contractCallBuilder.d.ts +0 -96
  246. package/dist/src/coin/trx/contractCallBuilder.d.ts.map +0 -1
  247. package/dist/src/coin/trx/contractCallBuilder.js +0 -281
  248. package/dist/src/coin/trx/enum.d.ts +0 -23
  249. package/dist/src/coin/trx/enum.d.ts.map +0 -1
  250. package/dist/src/coin/trx/enum.js +0 -28
  251. package/dist/src/coin/trx/iface.d.ts +0 -92
  252. package/dist/src/coin/trx/iface.d.ts.map +0 -1
  253. package/dist/src/coin/trx/iface.js +0 -3
  254. package/dist/src/coin/trx/index.d.ts +0 -10
  255. package/dist/src/coin/trx/index.d.ts.map +0 -1
  256. package/dist/src/coin/trx/index.js +0 -39
  257. package/dist/src/coin/trx/keyPair.d.ts +0 -44
  258. package/dist/src/coin/trx/keyPair.d.ts.map +0 -1
  259. package/dist/src/coin/trx/keyPair.js +0 -121
  260. package/dist/src/coin/trx/transaction.d.ts +0 -74
  261. package/dist/src/coin/trx/transaction.d.ts.map +0 -1
  262. package/dist/src/coin/trx/transaction.js +0 -205
  263. package/dist/src/coin/trx/transactionBuilder.d.ts +0 -65
  264. package/dist/src/coin/trx/transactionBuilder.d.ts.map +0 -1
  265. package/dist/src/coin/trx/transactionBuilder.js +0 -215
  266. package/dist/src/coin/trx/utils.d.ts +0 -127
  267. package/dist/src/coin/trx/utils.d.ts.map +0 -1
  268. package/dist/src/coin/trx/utils.js +0 -369
  269. package/dist/src/coin/trx/wrappedBuilder.d.ts +0 -52
  270. package/dist/src/coin/trx/wrappedBuilder.d.ts.map +0 -1
  271. package/dist/src/coin/trx/wrappedBuilder.js +0 -104
  272. package/resources/trx/protobuf/Contract.proto +0 -256
  273. package/resources/trx/protobuf/Discover.proto +0 -44
  274. package/resources/trx/protobuf/tron.d.ts +0 -11024
  275. package/resources/trx/protobuf/tron.js +0 -31510
  276. package/resources/trx/protobuf/tron.proto +0 -677
@@ -1,396 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Transaction = void 0;
26
- const sdk_core_1 = require("@bitgo/sdk-core");
27
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
28
- const keyring_1 = __importStar(require("@polkadot/keyring"));
29
- const keyPair_1 = require("./keyPair");
30
- const utils_1 = __importDefault(require("./utils"));
31
- const util_1 = require("@polkadot/util");
32
- class Transaction extends sdk_core_1.BaseTransaction {
33
- constructor(coinConfig) {
34
- super(coinConfig);
35
- }
36
- /** @inheritdoc */
37
- canSign({ key }) {
38
- const kp = new keyPair_1.KeyPair({ prv: key });
39
- const addr = kp.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
40
- return addr === this._sender;
41
- }
42
- /**
43
- * Sign a polkadot transaction and update the transaction hex
44
- *
45
- * @param {KeyPair} keyPair - ed signature
46
- */
47
- sign(keyPair) {
48
- if (!this._dotTransaction) {
49
- throw new sdk_core_1.InvalidTransactionError('No transaction data to sign');
50
- }
51
- const { prv, pub } = keyPair.getKeys();
52
- if (!prv) {
53
- throw new sdk_core_1.SigningError('Missing private key');
54
- }
55
- const signingPayload = txwrapper_polkadot_1.construct.signingPayload(this._dotTransaction, {
56
- registry: this._registry,
57
- });
58
- // Sign a payload. This operation should be performed on an offline device.
59
- const keyring = new keyring_1.default({ type: 'ed25519' });
60
- const secretKey = new Uint8Array(Buffer.from(prv, 'hex'));
61
- const publicKey = new Uint8Array(Buffer.from(pub, 'hex'));
62
- const signingKeyPair = keyring.addFromPair({ secretKey, publicKey });
63
- const txHex = utils_1.default.createSignedTx(signingKeyPair, signingPayload, this._dotTransaction, {
64
- metadataRpc: this._dotTransaction.metadataRpc,
65
- registry: this._registry,
66
- });
67
- // get signature from signed txHex generated above
68
- this._signatures = [utils_1.default.recoverSignatureFromRawTx(txHex, { registry: this._registry })];
69
- this._signedTransaction = txHex;
70
- }
71
- /**
72
- * Adds the signature to the DOT Transaction
73
- * @param {string} signature
74
- */
75
- addSignature(signature) {
76
- this._signedTransaction = utils_1.default.serializeSignedTransaction(this._dotTransaction, signature, this._dotTransaction.metadataRpc, this._registry);
77
- }
78
- registry(registry) {
79
- this._registry = registry;
80
- }
81
- chainName(chainName) {
82
- this._chainName = chainName;
83
- }
84
- sender(sender) {
85
- this._sender = sender;
86
- }
87
- /** @inheritdoc */
88
- toBroadcastFormat() {
89
- if (!this._dotTransaction) {
90
- throw new sdk_core_1.InvalidTransactionError('Empty transaction');
91
- }
92
- if (this._signedTransaction && this._signedTransaction.length > 0) {
93
- return this._signedTransaction;
94
- }
95
- else {
96
- return txwrapper_polkadot_1.construct.signingPayload(this._dotTransaction, {
97
- registry: this._registry,
98
- });
99
- }
100
- }
101
- transactionSize() {
102
- return this.toBroadcastFormat().length / 2;
103
- }
104
- /** @inheritdoc */
105
- toJson() {
106
- var _a;
107
- if (!this._dotTransaction) {
108
- throw new sdk_core_1.InvalidTransactionError('Empty transaction');
109
- }
110
- const decodedTx = txwrapper_polkadot_1.decode(this._dotTransaction, {
111
- metadataRpc: this._dotTransaction.metadataRpc,
112
- registry: this._registry,
113
- isImmortalEra: utils_1.default.isZeroHex(this._dotTransaction.era),
114
- });
115
- const result = {
116
- id: txwrapper_polkadot_1.construct.txHash(this.toBroadcastFormat()),
117
- sender: decodedTx.address,
118
- referenceBlock: decodedTx.blockHash,
119
- blockNumber: decodedTx.blockNumber,
120
- genesisHash: decodedTx.genesisHash,
121
- nonce: decodedTx.nonce,
122
- specVersion: decodedTx.specVersion,
123
- transactionVersion: decodedTx.transactionVersion,
124
- eraPeriod: decodedTx.eraPeriod,
125
- chainName: this._chainName,
126
- tip: decodedTx.tip,
127
- };
128
- if (this.type === sdk_core_1.TransactionType.Send) {
129
- const txMethod = decodedTx.method.args;
130
- if (utils_1.default.isProxyTransfer(txMethod)) {
131
- const keypairReal = new keyPair_1.KeyPair({
132
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.real)).toString('hex'),
133
- });
134
- result.owner = keypairReal.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
135
- result.forceProxyType = txMethod.forceProxyType;
136
- const decodedCall = utils_1.default.decodeCallMethod(this._dotTransaction, {
137
- metadataRpc: this._dotTransaction.metadataRpc,
138
- registry: this._registry,
139
- });
140
- const keypairDest = new keyPair_1.KeyPair({
141
- pub: Buffer.from(keyring_1.decodeAddress(decodedCall.dest.id)).toString('hex'),
142
- });
143
- result.to = keypairDest.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
144
- result.amount = decodedCall.value;
145
- }
146
- else if (utils_1.default.isTransfer(txMethod)) {
147
- const keypairDest = new keyPair_1.KeyPair({
148
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.dest.id)).toString('hex'),
149
- });
150
- result.to = keypairDest.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
151
- result.amount = txMethod.value;
152
- }
153
- else {
154
- throw new sdk_core_1.ParseTransactionError(`Serializing unknown Transfer type parameters`);
155
- }
156
- }
157
- if (this.type === sdk_core_1.TransactionType.StakingActivate) {
158
- const txMethod = decodedTx.method.args;
159
- const keypair = new keyPair_1.KeyPair({
160
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.controller.id, false, this._registry.chainSS58)).toString('hex'),
161
- });
162
- result.controller = keypair.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
163
- result.amount = txMethod.value;
164
- const payee = txMethod.payee;
165
- if (payee.account) {
166
- const keypair = new keyPair_1.KeyPair({
167
- pub: Buffer.from(keyring_1.decodeAddress(payee.account, false, this._registry.chainSS58)).toString('hex'),
168
- });
169
- result.payee = keypair.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
170
- }
171
- else {
172
- const payeeType = utils_1.default.capitalizeFirstLetter(Object.keys(payee)[0]);
173
- result.payee = payeeType;
174
- }
175
- }
176
- if (this.type === sdk_core_1.TransactionType.AddressInitialization) {
177
- let txMethod;
178
- if (((_a = decodedTx.method) === null || _a === void 0 ? void 0 : _a.args).delegate) {
179
- txMethod = decodedTx.method.args;
180
- const keypair = new keyPair_1.KeyPair({
181
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.delegate, false, this._registry.chainSS58)).toString('hex'),
182
- });
183
- result.owner = keypair.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
184
- }
185
- else {
186
- txMethod = decodedTx.method.args;
187
- result.index = txMethod.index;
188
- }
189
- result.method = this._dotTransaction.method;
190
- result.proxyType = txMethod.proxyType;
191
- result.delay = txMethod.delay;
192
- }
193
- if (this.type === sdk_core_1.TransactionType.StakingUnlock) {
194
- const txMethod = decodedTx.method.args;
195
- result.amount = txMethod.value;
196
- }
197
- if (this.type === sdk_core_1.TransactionType.StakingWithdraw) {
198
- const txMethod = decodedTx.method.args;
199
- result.numSlashingSpans = txMethod.numSlashingSpans;
200
- }
201
- if (this.type === sdk_core_1.TransactionType.StakingClaim) {
202
- const txMethod = decodedTx.method.args;
203
- result.validatorStash = txMethod.validatorStash;
204
- result.claimEra = txMethod.era;
205
- }
206
- if (this.type === sdk_core_1.TransactionType.Batch) {
207
- const txMethod = decodedTx.method.args;
208
- result.batchCalls = txMethod.calls;
209
- }
210
- return result;
211
- }
212
- explainTransferTransaction(json, explanationResult) {
213
- var _a, _b;
214
- explanationResult.displayOrder.push('owner', 'forceProxyType');
215
- return {
216
- ...explanationResult,
217
- outputs: [
218
- {
219
- address: ((_a = json.to) === null || _a === void 0 ? void 0 : _a.toString()) || '',
220
- amount: ((_b = json.amount) === null || _b === void 0 ? void 0 : _b.toString()) || '',
221
- },
222
- ],
223
- owner: json.owner,
224
- forceProxyType: json.forceProxyType,
225
- };
226
- }
227
- explainStakingActivateTransaction(json, explanationResult) {
228
- var _a;
229
- explanationResult.displayOrder.push('payee', 'forceProxyType');
230
- return {
231
- ...explanationResult,
232
- outputs: [
233
- {
234
- address: ((_a = json.controller) === null || _a === void 0 ? void 0 : _a.toString()) || '',
235
- amount: json.amount || '',
236
- },
237
- ],
238
- payee: json.payee,
239
- forceProxyType: json.forceProxyType,
240
- };
241
- }
242
- explainAddressInitializationTransaction(json, explanationResult) {
243
- explanationResult.displayOrder.push('owner', 'proxyType', 'delay');
244
- return {
245
- ...explanationResult,
246
- owner: json.owner,
247
- proxyType: json.proxyType,
248
- delay: json.delay,
249
- };
250
- }
251
- explainStakingUnlockTransaction(json, explanationResult) {
252
- return {
253
- ...explanationResult,
254
- outputs: [
255
- {
256
- address: json.sender.toString(),
257
- amount: json.amount || '',
258
- },
259
- ],
260
- };
261
- }
262
- /** @inheritdoc */
263
- explainTransaction() {
264
- var _a, _b;
265
- const result = this.toJson();
266
- const displayOrder = ['outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'type'];
267
- const outputs = [];
268
- const explanationResult = {
269
- // txhash used to identify the transactions
270
- id: result.id,
271
- displayOrder,
272
- outputAmount: ((_a = result.amount) === null || _a === void 0 ? void 0 : _a.toString()) || '0',
273
- changeAmount: '0',
274
- changeOutputs: [],
275
- outputs,
276
- fee: {
277
- fee: ((_b = result.tip) === null || _b === void 0 ? void 0 : _b.toString()) || '',
278
- type: 'tip',
279
- },
280
- type: this.type,
281
- };
282
- switch (this.type) {
283
- case sdk_core_1.TransactionType.Send:
284
- return this.explainTransferTransaction(result, explanationResult);
285
- case sdk_core_1.TransactionType.StakingActivate:
286
- return this.explainStakingActivateTransaction(result, explanationResult);
287
- case sdk_core_1.TransactionType.AddressInitialization:
288
- return this.explainAddressInitializationTransaction(result, explanationResult);
289
- case sdk_core_1.TransactionType.StakingUnlock:
290
- return this.explainStakingUnlockTransaction(result, explanationResult);
291
- default:
292
- throw new sdk_core_1.InvalidTransactionError('Transaction type not supported');
293
- }
294
- }
295
- /**
296
- * Load the input and output data on this transaction.
297
- */
298
- loadInputsAndOutputs() {
299
- if (!this._dotTransaction) {
300
- return;
301
- }
302
- const decodedTx = txwrapper_polkadot_1.decode(this._dotTransaction, {
303
- metadataRpc: this._dotTransaction.metadataRpc,
304
- registry: this._registry,
305
- isImmortalEra: utils_1.default.isZeroHex(this._dotTransaction.era),
306
- });
307
- if (this.type === sdk_core_1.TransactionType.Send) {
308
- const txMethod = decodedTx.method.args;
309
- let to;
310
- let value;
311
- let from;
312
- if (utils_1.default.isProxyTransfer(txMethod)) {
313
- const decodedCall = utils_1.default.decodeCallMethod(this._dotTransaction, {
314
- metadataRpc: this._dotTransaction.metadataRpc,
315
- registry: this._registry,
316
- });
317
- const keypairDest = new keyPair_1.KeyPair({
318
- pub: Buffer.from(keyring_1.decodeAddress(decodedCall.dest.id)).toString('hex'),
319
- });
320
- const keypairFrom = new keyPair_1.KeyPair({
321
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.real)).toString('hex'),
322
- });
323
- to = keypairDest.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
324
- value = `${decodedCall.value}`;
325
- from = keypairFrom.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
326
- }
327
- else if (utils_1.default.isTransfer(txMethod)) {
328
- const keypairDest = new keyPair_1.KeyPair({
329
- pub: Buffer.from(keyring_1.decodeAddress(txMethod.dest.id)).toString('hex'),
330
- });
331
- to = keypairDest.getAddress(utils_1.default.getAddressFormat(this._coinConfig.name));
332
- value = txMethod.value;
333
- from = decodedTx.address;
334
- }
335
- else {
336
- throw new sdk_core_1.ParseTransactionError(`Loading inputs of unknown Transfer type parameters`);
337
- }
338
- this._outputs = [
339
- {
340
- address: to,
341
- value,
342
- coin: this._coinConfig.name,
343
- },
344
- ];
345
- this._inputs = [
346
- {
347
- address: from,
348
- value,
349
- coin: this._coinConfig.name,
350
- },
351
- ];
352
- }
353
- }
354
- /**
355
- * Constructs a signed payload using construct.signTx
356
- * This method will be called during the build step if a TSS signature
357
- * is added and will set the signTransaction which is the txHex that will be broadcasted
358
- * As well as add the signature used to sign to the signature array in hex format
359
- *
360
- * @param {Buffer} signature The signature to be added to a dot transaction
361
- */
362
- constructSignedPayload(signature) {
363
- // 0x00 means its an ED25519 signature
364
- const edSignature = `0x00${signature.toString('hex')}`;
365
- try {
366
- this._signedTransaction = txwrapper_polkadot_1.construct.signedTx(this._dotTransaction, edSignature, {
367
- registry: this._registry,
368
- metadataRpc: this._dotTransaction.metadataRpc,
369
- });
370
- }
371
- catch (e) {
372
- throw new sdk_core_1.SigningError(`Unable to sign dot transaction with signature ${edSignature} ` + e);
373
- }
374
- this._signatures = [signature.toString('hex')];
375
- }
376
- setTransaction(tx) {
377
- this._dotTransaction = tx;
378
- }
379
- /** @inheritdoc **/
380
- get signablePayload() {
381
- const extrinsicPayload = this._registry.createType('ExtrinsicPayload', this._dotTransaction, {
382
- version: this._dotTransaction.version,
383
- });
384
- return util_1.u8aToBuffer(extrinsicPayload.toU8a({ method: true }));
385
- }
386
- /**
387
- * Set the transaction type.
388
- *
389
- * @param {TransactionType} transactionType The transaction type to be set.
390
- */
391
- transactionType(transactionType) {
392
- this._type = transactionType;
393
- }
394
- }
395
- exports.Transaction = Transaction;
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDhDQVN5QjtBQUN6QixzRUFBa0U7QUFHbEUsNkRBQTJEO0FBQzNELHVDQUFvQztBQWVwQyxvREFBNEI7QUFDNUIseUNBQTZDO0FBRTdDLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBTzlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFXO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDM0YsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxPQUFnQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNsRTtRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksdUJBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsTUFBTSxjQUFjLEdBQUcsOEJBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFD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QUFrQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDM0YsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztTQUN0QyxDQUFDLENBQUM7UUFDSCxPQUFPLGtCQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxlQUFnQztRQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUEvWUQsa0NBK1lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgRG90QXNzZXRUeXBlcyxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29uc3RydWN0LCBkZWNvZGUgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgS2V5cmluZywgeyBkZWNvZGVBZGRyZXNzIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQge1xuICBBZGRBbm9ueW1vdXNQcm94eUFyZ3MsXG4gIEFkZFByb3h5QXJncyxcbiAgQmF0Y2hBcmdzLFxuICBDbGFpbUFyZ3MsXG4gIERlY29kZWRUeCxcbiAgSGV4U3RyaW5nLFxuICBTdGFrZUFyZ3MsXG4gIFN0YWtlQXJnc1BheWVlUmF3LFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBUeERhdGEsXG4gIFVuc3Rha2VBcmdzLFxuICBXaXRoZHJhd1Vuc3Rha2VkQXJncyxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1OGFUb0J1ZmZlciB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJvdGVjdGVkIF9kb3RUcmFuc2FjdGlvbjogVW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gIHByaXZhdGUgX2NoYWluTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9zZW5kZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oeyBrZXkgfTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtwID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICBjb25zdCBhZGRyID0ga3AuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgcmV0dXJuIGFkZHIgPT09IHRoaXMuX3NlbmRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgcG9sa2Fkb3QgdHJhbnNhY3Rpb24gYW5kIHVwZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaGV4XG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciAtIGVkIHNpZ25hdHVyZVxuICAgKi9cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdObyB0cmFuc2FjdGlvbiBkYXRhIHRvIHNpZ24nKTtcbiAgICB9XG4gICAgY29uc3QgeyBwcnYsIHB1YiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgaWYgKCFwcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmluZ1BheWxvYWQgPSBjb25zdHJ1Y3Quc2lnbmluZ1BheWxvYWQodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KTtcbiAgICAvLyBTaWduIGEgcGF5bG9hZC4gVGhpcyBvcGVyYXRpb24gc2hvdWxkIGJlIHBlcmZvcm1lZCBvbiBhbiBvZmZsaW5lIGRldmljZS5cbiAgICBjb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiAnZWQyNTUxOScgfSk7XG4gICAgY29uc3Qgc2VjcmV0S2V5ID0gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20ocHJ2LCAnaGV4JykpO1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICBjb25zdCBzaWduaW5nS2V5UGFpciA9IGtleXJpbmcuYWRkRnJvbVBhaXIoeyBzZWNyZXRLZXksIHB1YmxpY0tleSB9KTtcbiAgICBjb25zdCB0eEhleCA9IHV0aWxzLmNyZWF0ZVNpZ25lZFR4KHNpZ25pbmdLZXlQYWlyLCBzaWduaW5nUGF5bG9hZCwgdGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KTtcblxuICAgIC8vIGdldCBzaWduYXR1cmUgZnJvbSBzaWduZWQgdHhIZXggZ2VuZXJhdGVkIGFib3ZlXG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFt1dGlscy5yZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHR4SGV4LCB7IHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSB9KV07XG4gICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSB0eEhleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBzaWduYXR1cmUgdG8gdGhlIERPVCBUcmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlXG4gICAqL1xuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IHV0aWxzLnNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKFxuICAgICAgdGhpcy5fZG90VHJhbnNhY3Rpb24sXG4gICAgICBzaWduYXR1cmUsXG4gICAgICB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHRoaXMuX3JlZ2lzdHJ5LFxuICAgICk7XG4gIH1cblxuICByZWdpc3RyeShyZWdpc3RyeTogVHlwZVJlZ2lzdHJ5KTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0cnkgPSByZWdpc3RyeTtcbiAgfVxuXG4gIGNoYWluTmFtZShjaGFpbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2NoYWluTmFtZSA9IGNoYWluTmFtZTtcbiAgfVxuXG4gIHNlbmRlcihzZW5kZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3NlbmRlciA9IHNlbmRlcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fZG90VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uICYmIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0cnVjdC5zaWduaW5nUGF5bG9hZCh0aGlzLl9kb3RUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2FjdGlvblNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b0Jyb2FkY2FzdEZvcm1hdCgpLmxlbmd0aCAvIDI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgIGlzSW1tb3J0YWxFcmE6IHV0aWxzLmlzWmVyb0hleCh0aGlzLl9kb3RUcmFuc2FjdGlvbi5lcmEpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRGVjb2RlZFR4O1xuXG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogY29uc3RydWN0LnR4SGFzaCh0aGlzLnRvQnJvYWRjYXN0Rm9ybWF0KCkpLFxuICAgICAgc2VuZGVyOiBkZWNvZGVkVHguYWRkcmVzcyxcbiAgICAgIHJlZmVyZW5jZUJsb2NrOiBkZWNvZGVkVHguYmxvY2tIYXNoLFxuICAgICAgYmxvY2tOdW1iZXI6IGRlY29kZWRUeC5ibG9ja051bWJlcixcbiAgICAgIGdlbmVzaXNIYXNoOiBkZWNvZGVkVHguZ2VuZXNpc0hhc2gsXG4gICAgICBub25jZTogZGVjb2RlZFR4Lm5vbmNlLFxuICAgICAgc3BlY1ZlcnNpb246IGRlY29kZWRUeC5zcGVjVmVyc2lvbixcbiAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogZGVjb2RlZFR4LnRyYW5zYWN0aW9uVmVyc2lvbixcbiAgICAgIGVyYVBlcmlvZDogZGVjb2RlZFR4LmVyYVBlcmlvZCxcbiAgICAgIGNoYWluTmFtZTogdGhpcy5fY2hhaW5OYW1lLFxuICAgICAgdGlwOiBkZWNvZGVkVHgudGlwLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3M7XG4gICAgICBpZiAodXRpbHMuaXNQcm94eVRyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBrZXlwYWlyUmVhbCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QucmVhbCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC5vd25lciA9IGtleXBhaXJSZWFsLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgICByZXN1bHQuZm9yY2VQcm94eVR5cGUgPSB0eE1ldGhvZC5mb3JjZVByb3h5VHlwZTtcbiAgICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGFkYXRhUnBjLFxuICAgICAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleXBhaXJEZXN0ID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhkZWNvZGVkQ2FsbC5kZXN0LmlkKSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHJlc3VsdC5hbW91bnQgPSBkZWNvZGVkQ2FsbC52YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAodXRpbHMuaXNUcmFuc2Zlcih0eE1ldGhvZCkpIHtcbiAgICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKHR4TWV0aG9kLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQudG8gPSBrZXlwYWlyRGVzdC5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgICAgcmVzdWx0LmFtb3VudCA9IHR4TWV0aG9kLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcihgU2VyaWFsaXppbmcgdW5rbm93biBUcmFuc2ZlciB0eXBlIHBhcmFtZXRlcnNgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBTdGFrZUFyZ3M7XG4gICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QuY29udHJvbGxlci5pZCwgZmFsc2UsIHRoaXMuX3JlZ2lzdHJ5LmNoYWluU1M1OCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQuY29udHJvbGxlciA9IGtleXBhaXIuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICByZXN1bHQuYW1vdW50ID0gdHhNZXRob2QudmFsdWU7XG5cbiAgICAgIGNvbnN0IHBheWVlID0gdHhNZXRob2QucGF5ZWUgYXMgU3Rha2VBcmdzUGF5ZWVSYXc7XG4gICAgICBpZiAocGF5ZWUuYWNjb3VudCkge1xuICAgICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhwYXllZS5hY2NvdW50LCBmYWxzZSwgdGhpcy5fcmVnaXN0cnkuY2hhaW5TUzU4KSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnBheWVlID0ga2V5cGFpci5nZXRBZGRyZXNzKHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBheWVlVHlwZSA9IHV0aWxzLmNhcGl0YWxpemVGaXJzdExldHRlcihPYmplY3Qua2V5cyhwYXllZSlbMF0pIGFzIHN0cmluZztcbiAgICAgICAgcmVzdWx0LnBheWVlID0gcGF5ZWVUeXBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGxldCB0eE1ldGhvZDogQWRkQW5vbnltb3VzUHJveHlBcmdzIHwgQWRkUHJveHlBcmdzO1xuICAgICAgaWYgKChkZWNvZGVkVHgubWV0aG9kPy5hcmdzIGFzIEFkZFByb3h5QXJncykuZGVsZWdhdGUpIHtcbiAgICAgICAgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQWRkUHJveHlBcmdzO1xuICAgICAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICAgIHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyh0eE1ldGhvZC5kZWxlZ2F0ZSwgZmFsc2UsIHRoaXMuX3JlZ2lzdHJ5LmNoYWluU1M1OCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdC5vd25lciA9IGtleXBhaXIuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBBZGRBbm9ueW1vdXNQcm94eUFyZ3M7XG4gICAgICAgIHJlc3VsdC5pbmRleCA9IHR4TWV0aG9kLmluZGV4O1xuICAgICAgfVxuICAgICAgcmVzdWx0Lm1ldGhvZCA9IHRoaXMuX2RvdFRyYW5zYWN0aW9uLm1ldGhvZDtcbiAgICAgIHJlc3VsdC5wcm94eVR5cGUgPSB0eE1ldGhvZC5wcm94eVR5cGU7XG4gICAgICByZXN1bHQuZGVsYXkgPSB0eE1ldGhvZC5kZWxheTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jaykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgVW5zdGFrZUFyZ3M7XG4gICAgICByZXN1bHQuYW1vdW50ID0gdHhNZXRob2QudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgV2l0aGRyYXdVbnN0YWtlZEFyZ3M7XG4gICAgICByZXN1bHQubnVtU2xhc2hpbmdTcGFucyA9IHR4TWV0aG9kLm51bVNsYXNoaW5nU3BhbnM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHgubWV0aG9kLmFyZ3MgYXMgQ2xhaW1BcmdzO1xuICAgICAgcmVzdWx0LnZhbGlkYXRvclN0YXNoID0gdHhNZXRob2QudmFsaWRhdG9yU3Rhc2g7XG4gICAgICByZXN1bHQuY2xhaW1FcmEgPSB0eE1ldGhvZC5lcmE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkJhdGNoKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeC5tZXRob2QuYXJncyBhcyBCYXRjaEFyZ3M7XG4gICAgICByZXN1bHQuYmF0Y2hDYWxscyA9IHR4TWV0aG9kLmNhbGxzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBleHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ293bmVyJywgJ2ZvcmNlUHJveHlUeXBlJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczoganNvbi50bz8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgICBhbW91bnQ6IGpzb24uYW1vdW50Py50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG93bmVyOiBqc29uLm93bmVyLFxuICAgICAgZm9yY2VQcm94eVR5cGU6IGpzb24uZm9yY2VQcm94eVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGxhaW5TdGFraW5nQWN0aXZhdGVUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ3BheWVlJywgJ2ZvcmNlUHJveHlUeXBlJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczoganNvbi5jb250cm9sbGVyPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgIGFtb3VudDoganNvbi5hbW91bnQgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGF5ZWU6IGpzb24ucGF5ZWUsXG4gICAgICBmb3JjZVByb3h5VHlwZToganNvbi5mb3JjZVByb3h5VHlwZSxcbiAgICB9O1xuICB9XG5cbiAgZXhwbGFpbkFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKFxuICAgIGpzb246IFR4RGF0YSxcbiAgICBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgZXhwbGFuYXRpb25SZXN1bHQuZGlzcGxheU9yZGVyLnB1c2goJ293bmVyJywgJ3Byb3h5VHlwZScsICdkZWxheScpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG93bmVyOiBqc29uLm93bmVyLFxuICAgICAgcHJveHlUeXBlOiBqc29uLnByb3h5VHlwZSxcbiAgICAgIGRlbGF5OiBqc29uLmRlbGF5LFxuICAgIH07XG4gIH1cblxuICBleHBsYWluU3Rha2luZ1VubG9ja1RyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXhwbGFuYXRpb25SZXN1bHQsXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiBqc29uLnNlbmRlci50b1N0cmluZygpLFxuICAgICAgICAgIGFtb3VudDoganNvbi5hbW91bnQgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIC8vIHR4aGFzaCB1c2VkIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbnNcbiAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5hbW91bnQ/LnRvU3RyaW5nKCkgfHwgJzAnLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dHMsXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiByZXN1bHQudGlwPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICB0eXBlOiAndGlwJyxcbiAgICAgIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGU6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5TdGFraW5nQWN0aXZhdGVUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbkFkZHJlc3NJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jazpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblN0YWtpbmdVbmxvY2tUcmFuc2FjdGlvbihyZXN1bHQsIGV4cGxhbmF0aW9uUmVzdWx0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kb3RUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWNvZGVkVHggPSBkZWNvZGUodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi5tZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICAgIGlzSW1tb3J0YWxFcmE6IHV0aWxzLmlzWmVyb0hleCh0aGlzLl9kb3RUcmFuc2FjdGlvbi5lcmEpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRGVjb2RlZFR4O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4Lm1ldGhvZC5hcmdzO1xuICAgICAgbGV0IHRvOiBzdHJpbmc7XG4gICAgICBsZXQgdmFsdWU6IHN0cmluZztcbiAgICAgIGxldCBmcm9tOiBzdHJpbmc7XG4gICAgICBpZiAodXRpbHMuaXNQcm94eVRyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBkZWNvZGVkQ2FsbCA9IHV0aWxzLmRlY29kZUNhbGxNZXRob2QodGhpcy5fZG90VHJhbnNhY3Rpb24sIHtcbiAgICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qga2V5cGFpckRlc3QgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgICAgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGRlY29kZWRDYWxsLmRlc3QuaWQpKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBrZXlwYWlyRnJvbSA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QucmVhbCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHZhbHVlID0gYCR7ZGVjb2RlZENhbGwudmFsdWV9YDtcbiAgICAgICAgZnJvbSA9IGtleXBhaXJGcm9tLmdldEFkZHJlc3ModXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcykpO1xuICAgICAgfSBlbHNlIGlmICh1dGlscy5pc1RyYW5zZmVyKHR4TWV0aG9kKSkge1xuICAgICAgICBjb25zdCBrZXlwYWlyRGVzdCA9IG5ldyBLZXlQYWlyKHtcbiAgICAgICAgICBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3ModHhNZXRob2QuZGVzdC5pZCkpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRvID0ga2V5cGFpckRlc3QuZ2V0QWRkcmVzcyh1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSk7XG4gICAgICAgIHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG4gICAgICAgIGZyb20gPSBkZWNvZGVkVHguYWRkcmVzcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoYExvYWRpbmcgaW5wdXRzIG9mIHVua25vd24gVHJhbnNmZXIgdHlwZSBwYXJhbWV0ZXJzYCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdG8sXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogZnJvbSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgc2lnbmVkIHBheWxvYWQgdXNpbmcgY29uc3RydWN0LnNpZ25UeFxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBkdXJpbmcgdGhlIGJ1aWxkIHN0ZXAgaWYgYSBUU1Mgc2lnbmF0dXJlXG4gICAqIGlzIGFkZGVkIGFuZCB3aWxsIHNldCB0aGUgc2lnblRyYW5zYWN0aW9uIHdoaWNoIGlzIHRoZSB0eEhleCB0aGF0IHdpbGwgYmUgYnJvYWRjYXN0ZWRcbiAgICogQXMgd2VsbCBhcyBhZGQgdGhlIHNpZ25hdHVyZSB1c2VkIHRvIHNpZ24gdG8gdGhlIHNpZ25hdHVyZSBhcnJheSBpbiBoZXggZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSB0byBiZSBhZGRlZCB0byBhIGRvdCB0cmFuc2FjdGlvblxuICAgKi9cbiAgY29uc3RydWN0U2lnbmVkUGF5bG9hZChzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIC8vIDB4MDAgbWVhbnMgaXRzIGFuIEVEMjU1MTkgc2lnbmF0dXJlXG4gICAgY29uc3QgZWRTaWduYXR1cmUgPSBgMHgwMCR7c2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKX1gIGFzIEhleFN0cmluZztcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IGNvbnN0cnVjdC5zaWduZWRUeCh0aGlzLl9kb3RUcmFuc2FjdGlvbiwgZWRTaWduYXR1cmUsIHtcbiAgICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fZG90VHJhbnNhY3Rpb24ubWV0YWRhdGFScGMsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKGBVbmFibGUgdG8gc2lnbiBkb3QgdHJhbnNhY3Rpb24gd2l0aCBzaWduYXR1cmUgJHtlZFNpZ25hdHVyZX0gYCArIGUpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKV07XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbih0eDogVW5zaWduZWRUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2RvdFRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKiovXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBjb25zdCBleHRyaW5zaWNQYXlsb2FkID0gdGhpcy5fcmVnaXN0cnkuY3JlYXRlVHlwZSgnRXh0cmluc2ljUGF5bG9hZCcsIHRoaXMuX2RvdFRyYW5zYWN0aW9uLCB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLl9kb3RUcmFuc2FjdGlvbi52ZXJzaW9uLFxuICAgIH0pO1xuICAgIHJldHVybiB1OGFUb0J1ZmZlcihleHRyaW5zaWNQYXlsb2FkLnRvVThhKHsgbWV0aG9kOiB0cnVlIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxufVxuIl19
@@ -1,131 +0,0 @@
1
- /// <reference types="node" />
2
- import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
- import { UnsignedTransaction } from '@substrate/txwrapper-core';
4
- import { DecodedSignedTx, DecodedSigningPayload, TypeRegistry } from '@substrate/txwrapper-core/lib/types';
5
- import BigNumber from 'bignumber.js';
6
- import { BaseAddress, BaseKey, BaseTransactionBuilder, FeeOptions, PublicKey as BasePublicKey, SequenceId, Signature, TransactionType, ValidityWindow } from '@bitgo/sdk-core';
7
- import { CreateBaseTxInfo, Material, TxMethod } from './iface';
8
- import { KeyPair } from './keyPair';
9
- import { Transaction } from './transaction';
10
- export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
11
- protected _transaction: Transaction;
12
- protected _keyPair: KeyPair;
13
- protected _signature?: string;
14
- protected _sender: string;
15
- protected _blockNumber: number;
16
- protected _referenceBlock: string;
17
- protected _nonce: number;
18
- protected _tip?: number;
19
- protected _eraPeriod?: number;
20
- protected _registry: TypeRegistry;
21
- protected _method?: TxMethod;
22
- protected __material?: Material;
23
- protected _signatures: Signature[];
24
- constructor(_coinConfig: Readonly<CoinConfig>);
25
- /**
26
- * Sets the address of sending account.
27
- *
28
- * @param {BaseAddress} address The SS58-encoded address.
29
- * @returns {TransactionBuilder} This transaction builder.
30
- *
31
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
32
- */
33
- sender({ address }: BaseAddress): this;
34
- /**
35
- * The nonce for this transaction.
36
- *
37
- * @param {number} nonce
38
- * @returns {TransactionBuilder} This transaction builder.
39
- *
40
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
41
- */
42
- sequenceId(nonce: SequenceId): this;
43
- /**
44
- * The tip to increase transaction priority.
45
- *
46
- * @param {number | undefined} [fee.type] options for building fee tx
47
- * @returns {TransactionBuilder} This transaction builder.
48
- *
49
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
50
- */
51
- fee(fee: FeeOptions): this;
52
- /**
53
- * The number of the checkpoint block after which the transaction is valid
54
- *
55
- * @param {ValidityWindow} firstValid block checkpoint where transaction is first valid
56
- * @param {ValidityWindow} maxDuration number of blocks after checkpoint for which transaction is valid
57
- * @returns {TransactionBuilder} This transaction builder.
58
- *
59
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
60
- */
61
- validity({ firstValid, maxDuration }: ValidityWindow): this;
62
- /**
63
- * The hash of the checkpoint block.
64
- *
65
- * @param {number} referenceBlock block hash checkpoint from where the transaction is valid
66
- * @returns {TransactionBuilder} This transaction builder.
67
- *
68
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
69
- * @see https://wiki.polkadot.network/docs/build-protocol-info#transaction-mortality
70
- */
71
- referenceBlock(referenceBlock: string): this;
72
- /**
73
- * The current version for transaction format.
74
- *
75
- * @param {number} transactionVersion
76
- * @returns {TransactionBuilder} This transaction builder.
77
- *
78
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
79
- * @deprecated This field was added in material data.
80
- */
81
- version(transactionVersion: number): this;
82
- private method;
83
- /**
84
- * The material data for the block.
85
- *
86
- * @param {Material} material
87
- * @returns {TransactionBuilder} This transaction builder.
88
- *
89
- * @see https://wiki.polkadot.network/docs/build-transaction-construction
90
- */
91
- material(material: Material): this;
92
- protected get _material(): Material;
93
- /** @inheritdoc */
94
- protected get transaction(): Transaction;
95
- /** @inheritdoc */
96
- protected set transaction(transaction: Transaction);
97
- /** @inheritdoc */
98
- protected fromImplementation(rawTransaction: string): Transaction;
99
- /** @inheritdoc */
100
- protected buildImplementation(): Promise<Transaction>;
101
- protected createBaseTxInfo(): CreateBaseTxInfo;
102
- /**
103
- * Builds the specific transaction builder internally
104
- * using the @substrate/txwrapper builder.
105
- */
106
- protected abstract buildTransaction(): UnsignedTransaction;
107
- /**
108
- * The transaction type.
109
- */
110
- protected abstract get transactionType(): TransactionType;
111
- /** @inheritdoc */
112
- validateAddress(address: BaseAddress, addressFormat?: string): void;
113
- /** @inheritdoc */
114
- validateKey({ key }: BaseKey): void;
115
- /**
116
- * Validates the specific transaction builder internally
117
- */
118
- protected abstract validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx, rawTransaction?: string): void;
119
- /** @inheritdoc */
120
- validateRawTransaction(rawTransaction: string): void;
121
- /** @inheritdoc */
122
- validateTransaction(_: Transaction): void;
123
- private validateBaseFields;
124
- /** @inheritdoc */
125
- validateValue(value: BigNumber): void;
126
- /** @inheritdoc */
127
- addSignature(publicKey: BasePublicKey, signature: Buffer): void;
128
- /** @inheritdoc */
129
- protected signImplementation({ key }: BaseKey): Transaction;
130
- }
131
- //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transactionBuilder.ts"],"names":[],"mappings":"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"}