@bitgo-beta/sdk-coin-dot 2.2.8-beta.166 → 2.2.8-beta.1660

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 (292) hide show
  1. package/dist/{src → cjs/src}/dot.d.ts +8 -19
  2. package/dist/cjs/src/dot.d.ts.map +1 -0
  3. package/dist/cjs/src/dot.js +623 -0
  4. package/dist/cjs/src/index.d.ts.map +1 -0
  5. package/dist/{src → cjs/src}/index.js +6 -2
  6. package/dist/cjs/src/lib/addressInitializationBuilder.d.ts.map +1 -0
  7. package/dist/cjs/src/lib/addressInitializationBuilder.js +182 -0
  8. package/dist/{src → cjs/src}/lib/batchTransactionBuilder.d.ts +1 -0
  9. package/dist/cjs/src/lib/batchTransactionBuilder.d.ts.map +1 -0
  10. package/dist/cjs/src/lib/batchTransactionBuilder.js +229 -0
  11. package/dist/cjs/src/lib/claimBuilder.d.ts.map +1 -0
  12. package/dist/cjs/src/lib/claimBuilder.js +117 -0
  13. package/dist/cjs/src/lib/errors.d.ts.map +1 -0
  14. package/dist/cjs/src/lib/errors.js +19 -0
  15. package/dist/{src → cjs/src}/lib/iface.d.ts +16 -13
  16. package/dist/cjs/src/lib/iface.d.ts.map +1 -0
  17. package/dist/cjs/src/lib/iface.js +128 -0
  18. package/dist/cjs/src/lib/iface_utils.d.ts.map +1 -0
  19. package/dist/cjs/src/lib/iface_utils.js +92 -0
  20. package/dist/{src → cjs/src}/lib/index.d.ts +2 -0
  21. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  22. package/dist/cjs/src/lib/index.js +73 -0
  23. package/dist/{src → cjs/src}/lib/keyPair.d.ts +7 -0
  24. package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
  25. package/dist/cjs/src/lib/keyPair.js +117 -0
  26. package/dist/cjs/src/lib/nativeTransferBuilder.d.ts.map +1 -0
  27. package/dist/cjs/src/lib/nativeTransferBuilder.js +219 -0
  28. package/dist/cjs/src/lib/proxyBuilder.d.ts.map +1 -0
  29. package/dist/cjs/src/lib/proxyBuilder.js +116 -0
  30. package/dist/cjs/src/lib/singletonRegistry.d.ts.map +1 -0
  31. package/dist/cjs/src/lib/singletonRegistry.js +20 -0
  32. package/dist/cjs/src/lib/stakingBuilder.d.ts.map +1 -0
  33. package/dist/cjs/src/lib/stakingBuilder.js +167 -0
  34. package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -1
  35. package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
  36. package/dist/cjs/src/lib/transaction.js +624 -0
  37. package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -1
  38. package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
  39. package/dist/cjs/src/lib/transactionBuilder.js +351 -0
  40. package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  41. package/dist/cjs/src/lib/transactionBuilderFactory.js +104 -0
  42. package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
  43. package/dist/cjs/src/lib/transferBuilder.js +11 -0
  44. package/dist/cjs/src/lib/txnSchema.d.ts.map +1 -0
  45. package/dist/cjs/src/lib/txnSchema.js +117 -0
  46. package/dist/cjs/src/lib/unnominateBuilder.d.ts.map +1 -0
  47. package/dist/cjs/src/lib/unnominateBuilder.js +48 -0
  48. package/dist/cjs/src/lib/unstakeBuilder.d.ts.map +1 -0
  49. package/dist/cjs/src/lib/unstakeBuilder.js +87 -0
  50. package/dist/{src → cjs/src}/lib/utils.d.ts +10 -2
  51. package/dist/cjs/src/lib/utils.d.ts.map +1 -0
  52. package/dist/cjs/src/lib/utils.js +491 -0
  53. package/dist/cjs/src/lib/wasmParser.d.ts +57 -0
  54. package/dist/cjs/src/lib/wasmParser.d.ts.map +1 -0
  55. package/dist/cjs/src/lib/wasmParser.js +345 -0
  56. package/dist/cjs/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
  57. package/dist/cjs/src/lib/withdrawUnstakedBuilder.js +88 -0
  58. package/dist/cjs/src/register.d.ts.map +1 -0
  59. package/dist/cjs/src/register.js +11 -0
  60. package/dist/cjs/src/resources/index.d.ts +5 -0
  61. package/dist/cjs/src/resources/index.d.ts.map +1 -0
  62. package/dist/cjs/src/resources/index.js +21 -0
  63. package/dist/cjs/src/resources/mainnet.d.ts.map +1 -0
  64. package/dist/cjs/src/resources/mainnet.js +5 -0
  65. package/dist/cjs/src/resources/polkadotAssetHub.d.ts +2 -0
  66. package/dist/cjs/src/resources/polkadotAssetHub.d.ts.map +1 -0
  67. package/dist/cjs/src/resources/polkadotAssetHub.js +5 -0
  68. package/dist/cjs/src/resources/westend.d.ts.map +1 -0
  69. package/dist/cjs/src/resources/westend.js +5 -0
  70. package/dist/cjs/src/resources/westendAssetHub.d.ts +2 -0
  71. package/dist/cjs/src/resources/westendAssetHub.d.ts.map +1 -0
  72. package/dist/cjs/src/resources/westendAssetHub.js +5 -0
  73. package/dist/cjs/src/tdot.d.ts.map +1 -0
  74. package/dist/cjs/src/tdot.js +27 -0
  75. package/dist/cjs/test/fixtures.d.ts +283 -0
  76. package/dist/cjs/test/fixtures.d.ts.map +1 -0
  77. package/dist/cjs/test/fixtures.js +439 -0
  78. package/dist/cjs/test/resources/index.d.ts +141 -0
  79. package/dist/cjs/test/resources/index.d.ts.map +1 -0
  80. package/dist/cjs/test/resources/index.js +157 -0
  81. package/dist/cjs/test/resources/materialData.json +8 -0
  82. package/dist/cjs/test/resources/materialDataModified.json +8 -0
  83. package/dist/cjs/test/resources/testnet.d.ts +2 -0
  84. package/dist/cjs/test/resources/testnet.d.ts.map +1 -0
  85. package/dist/{src/resources/westend.js → cjs/test/resources/testnet.js} +3 -3
  86. package/dist/cjs/test/unit/address.d.ts +2 -0
  87. package/dist/cjs/test/unit/address.d.ts.map +1 -0
  88. package/dist/cjs/test/unit/address.js +45 -0
  89. package/dist/cjs/test/unit/dot.d.ts +2 -0
  90. package/dist/cjs/test/unit/dot.d.ts.map +1 -0
  91. package/dist/cjs/test/unit/dot.js +944 -0
  92. package/dist/cjs/test/unit/keypair.d.ts +2 -0
  93. package/dist/cjs/test/unit/keypair.d.ts.map +1 -0
  94. package/dist/cjs/test/unit/keypair.js +111 -0
  95. package/dist/cjs/test/unit/transaction.d.ts +2 -0
  96. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  97. package/dist/cjs/test/unit/transaction.js +269 -0
  98. package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
  99. package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  100. package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.js +265 -0
  101. package/dist/cjs/test/unit/transactionBuilder/base.d.ts +8 -0
  102. package/dist/cjs/test/unit/transactionBuilder/base.d.ts.map +1 -0
  103. package/dist/cjs/test/unit/transactionBuilder/base.js +233 -0
  104. package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts +2 -0
  105. package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +1 -0
  106. package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.js +521 -0
  107. package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts +2 -0
  108. package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts.map +1 -0
  109. package/dist/cjs/test/unit/transactionBuilder/claimBuilder.js +129 -0
  110. package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts +2 -0
  111. package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts.map +1 -0
  112. package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.js +88 -0
  113. package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
  114. package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
  115. package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
  116. package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
  117. package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  118. package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.js +235 -0
  119. package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  120. package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  121. package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.js +107 -0
  122. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  123. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  124. package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +437 -0
  125. package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts +2 -0
  126. package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +1 -0
  127. package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.js +97 -0
  128. package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
  129. package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
  130. package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.js +116 -0
  131. package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts +2 -0
  132. package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +1 -0
  133. package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +115 -0
  134. package/dist/cjs/test/unit/utils.d.ts +2 -0
  135. package/dist/cjs/test/unit/utils.d.ts.map +1 -0
  136. package/dist/cjs/test/unit/utils.js +117 -0
  137. package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts +22 -0
  138. package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts.map +1 -0
  139. package/dist/cjs/test/unit/wasmBuilderByteComparison.js +197 -0
  140. package/dist/cjs/test/unit/wasmParserExplanation.d.ts +15 -0
  141. package/dist/cjs/test/unit/wasmParserExplanation.d.ts.map +1 -0
  142. package/dist/cjs/test/unit/wasmParserExplanation.js +147 -0
  143. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  144. package/dist/esm/dot.d.ts +147 -0
  145. package/dist/esm/dot.d.ts.map +1 -0
  146. package/dist/esm/dot.js +583 -0
  147. package/dist/esm/index.d.ts +5 -0
  148. package/dist/esm/index.js +5 -0
  149. package/dist/esm/lib/addressInitializationBuilder.d.ts +79 -0
  150. package/dist/esm/lib/addressInitializationBuilder.js +175 -0
  151. package/dist/esm/lib/batchTransactionBuilder.d.ts +62 -0
  152. package/dist/{src → esm}/lib/batchTransactionBuilder.d.ts.map +1 -1
  153. package/dist/esm/lib/batchTransactionBuilder.js +222 -0
  154. package/dist/esm/lib/claimBuilder.d.ts +58 -0
  155. package/dist/esm/lib/claimBuilder.js +110 -0
  156. package/dist/esm/lib/errors.d.ts +8 -0
  157. package/dist/esm/lib/errors.js +14 -0
  158. package/dist/esm/lib/iface.d.ts +337 -0
  159. package/dist/esm/lib/iface.d.ts.map +1 -0
  160. package/dist/esm/lib/iface.js +125 -0
  161. package/dist/esm/lib/iface_utils.d.ts +59 -0
  162. package/dist/esm/lib/iface_utils.js +83 -0
  163. package/dist/esm/lib/index.d.ts +21 -0
  164. package/dist/{src → esm}/lib/index.d.ts.map +1 -1
  165. package/dist/esm/lib/index.js +20 -0
  166. package/dist/esm/lib/keyPair.d.ts +38 -0
  167. package/dist/esm/lib/keyPair.d.ts.map +1 -0
  168. package/dist/esm/lib/keyPair.js +77 -0
  169. package/dist/esm/lib/nativeTransferBuilder.d.ts +84 -0
  170. package/dist/esm/lib/nativeTransferBuilder.js +212 -0
  171. package/dist/esm/lib/proxyBuilder.d.ts +54 -0
  172. package/dist/esm/lib/proxyBuilder.js +109 -0
  173. package/dist/esm/lib/singletonRegistry.d.ts +7 -0
  174. package/dist/esm/lib/singletonRegistry.js +16 -0
  175. package/dist/esm/lib/stakingBuilder.d.ts +66 -0
  176. package/dist/esm/lib/stakingBuilder.js +160 -0
  177. package/dist/esm/lib/transaction.d.ts +83 -0
  178. package/dist/esm/lib/transaction.d.ts.map +1 -0
  179. package/dist/esm/lib/transaction.js +584 -0
  180. package/dist/esm/lib/transactionBuilder.d.ts +131 -0
  181. package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
  182. package/dist/esm/lib/transactionBuilder.js +311 -0
  183. package/dist/esm/lib/transactionBuilderFactory.d.ts +28 -0
  184. package/dist/esm/lib/transactionBuilderFactory.js +97 -0
  185. package/dist/esm/lib/transferBuilder.d.ts +11 -0
  186. package/dist/esm/lib/transferBuilder.js +7 -0
  187. package/dist/esm/lib/txnSchema.d.ts +15 -0
  188. package/dist/esm/lib/txnSchema.js +111 -0
  189. package/dist/esm/lib/unnominateBuilder.d.ts +24 -0
  190. package/dist/esm/lib/unnominateBuilder.js +44 -0
  191. package/dist/esm/lib/unstakeBuilder.d.ts +38 -0
  192. package/dist/esm/lib/unstakeBuilder.js +80 -0
  193. package/dist/esm/lib/utils.d.ts +261 -0
  194. package/dist/esm/lib/utils.d.ts.map +1 -0
  195. package/dist/esm/lib/utils.js +451 -0
  196. package/dist/esm/lib/wasmParser.d.ts +57 -0
  197. package/dist/esm/lib/wasmParser.d.ts.map +1 -0
  198. package/dist/esm/lib/wasmParser.js +341 -0
  199. package/dist/esm/lib/withdrawUnstakedBuilder.d.ts +38 -0
  200. package/dist/esm/lib/withdrawUnstakedBuilder.js +81 -0
  201. package/dist/esm/register.d.ts +3 -0
  202. package/dist/esm/register.js +7 -0
  203. package/dist/esm/resources/index.d.ts +5 -0
  204. package/dist/{src → esm}/resources/index.d.ts.map +1 -1
  205. package/dist/esm/resources/index.js +5 -0
  206. package/dist/esm/resources/mainnet.d.ts +2 -0
  207. package/dist/esm/resources/mainnet.js +2 -0
  208. package/dist/esm/resources/polkadotAssetHub.d.ts +2 -0
  209. package/dist/esm/resources/polkadotAssetHub.d.ts.map +1 -0
  210. package/dist/esm/resources/polkadotAssetHub.js +2 -0
  211. package/dist/esm/resources/westend.d.ts +2 -0
  212. package/dist/esm/resources/westend.js +2 -0
  213. package/dist/esm/resources/westendAssetHub.d.ts +2 -0
  214. package/dist/esm/resources/westendAssetHub.d.ts.map +1 -0
  215. package/dist/esm/resources/westendAssetHub.js +2 -0
  216. package/dist/esm/tdot.d.ts +12 -0
  217. package/dist/esm/tdot.js +23 -0
  218. package/package.json +42 -20
  219. package/.eslintignore +0 -5
  220. package/.mocharc.yml +0 -8
  221. package/CHANGELOG.md +0 -450
  222. package/dist/src/dot.d.ts.map +0 -1
  223. package/dist/src/dot.js +0 -562
  224. package/dist/src/lib/addressInitializationBuilder.js +0 -184
  225. package/dist/src/lib/batchTransactionBuilder.js +0 -220
  226. package/dist/src/lib/claimBuilder.js +0 -119
  227. package/dist/src/lib/errors.js +0 -19
  228. package/dist/src/lib/iface.d.ts.map +0 -1
  229. package/dist/src/lib/iface.js +0 -128
  230. package/dist/src/lib/iface_utils.js +0 -93
  231. package/dist/src/lib/index.js +0 -57
  232. package/dist/src/lib/keyPair.d.ts.map +0 -1
  233. package/dist/src/lib/keyPair.js +0 -70
  234. package/dist/src/lib/nativeTransferBuilder.js +0 -221
  235. package/dist/src/lib/proxyBuilder.js +0 -118
  236. package/dist/src/lib/singletonRegistry.js +0 -20
  237. package/dist/src/lib/stakingBuilder.js +0 -169
  238. package/dist/src/lib/transaction.d.ts.map +0 -1
  239. package/dist/src/lib/transaction.js +0 -590
  240. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  241. package/dist/src/lib/transactionBuilder.js +0 -337
  242. package/dist/src/lib/transactionBuilderFactory.js +0 -105
  243. package/dist/src/lib/transferBuilder.js +0 -11
  244. package/dist/src/lib/txnSchema.js +0 -117
  245. package/dist/src/lib/unnominateBuilder.js +0 -50
  246. package/dist/src/lib/unstakeBuilder.js +0 -89
  247. package/dist/src/lib/utils.d.ts.map +0 -1
  248. package/dist/src/lib/utils.js +0 -458
  249. package/dist/src/lib/withdrawUnstakedBuilder.js +0 -90
  250. package/dist/src/register.js +0 -11
  251. package/dist/src/resources/index.d.ts +0 -3
  252. package/dist/src/resources/index.js +0 -15
  253. package/dist/src/resources/mainnet.js +0 -5
  254. package/dist/src/tdot.js +0 -27
  255. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  256. /package/dist/{src → cjs/src}/lib/addressInitializationBuilder.d.ts +0 -0
  257. /package/dist/{src → cjs/src}/lib/claimBuilder.d.ts +0 -0
  258. /package/dist/{src → cjs/src}/lib/errors.d.ts +0 -0
  259. /package/dist/{src → cjs/src}/lib/iface_utils.d.ts +0 -0
  260. /package/dist/{src → cjs/src}/lib/nativeTransferBuilder.d.ts +0 -0
  261. /package/dist/{src → cjs/src}/lib/proxyBuilder.d.ts +0 -0
  262. /package/dist/{src → cjs/src}/lib/singletonRegistry.d.ts +0 -0
  263. /package/dist/{src → cjs/src}/lib/stakingBuilder.d.ts +0 -0
  264. /package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +0 -0
  265. /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
  266. /package/dist/{src → cjs/src}/lib/txnSchema.d.ts +0 -0
  267. /package/dist/{src → cjs/src}/lib/unnominateBuilder.d.ts +0 -0
  268. /package/dist/{src → cjs/src}/lib/unstakeBuilder.d.ts +0 -0
  269. /package/dist/{src → cjs/src}/lib/withdrawUnstakedBuilder.d.ts +0 -0
  270. /package/dist/{src → cjs/src}/register.d.ts +0 -0
  271. /package/dist/{src → cjs/src}/resources/mainnet.d.ts +0 -0
  272. /package/dist/{src → cjs/src}/resources/westend.d.ts +0 -0
  273. /package/dist/{src → cjs/src}/tdot.d.ts +0 -0
  274. /package/dist/{src → esm}/index.d.ts.map +0 -0
  275. /package/dist/{src → esm}/lib/addressInitializationBuilder.d.ts.map +0 -0
  276. /package/dist/{src → esm}/lib/claimBuilder.d.ts.map +0 -0
  277. /package/dist/{src → esm}/lib/errors.d.ts.map +0 -0
  278. /package/dist/{src → esm}/lib/iface_utils.d.ts.map +0 -0
  279. /package/dist/{src → esm}/lib/nativeTransferBuilder.d.ts.map +0 -0
  280. /package/dist/{src → esm}/lib/proxyBuilder.d.ts.map +0 -0
  281. /package/dist/{src → esm}/lib/singletonRegistry.d.ts.map +0 -0
  282. /package/dist/{src → esm}/lib/stakingBuilder.d.ts.map +0 -0
  283. /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
  284. /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
  285. /package/dist/{src → esm}/lib/txnSchema.d.ts.map +0 -0
  286. /package/dist/{src → esm}/lib/unnominateBuilder.d.ts.map +0 -0
  287. /package/dist/{src → esm}/lib/unstakeBuilder.d.ts.map +0 -0
  288. /package/dist/{src → esm}/lib/withdrawUnstakedBuilder.d.ts.map +0 -0
  289. /package/dist/{src → esm}/register.d.ts.map +0 -0
  290. /package/dist/{src → esm}/resources/mainnet.d.ts.map +0 -0
  291. /package/dist/{src → esm}/resources/westend.d.ts.map +0 -0
  292. /package/dist/{src → esm}/tdot.d.ts.map +0 -0
@@ -1,221 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NativeTransferBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
- const iface_1 = require("./iface");
11
- const iface_utils_1 = require("./iface_utils");
12
- const singletonRegistry_1 = require("./singletonRegistry");
13
- const transactionBuilder_1 = require("./transactionBuilder");
14
- const txnSchema_1 = require("./txnSchema");
15
- const utils_1 = __importDefault(require("./utils"));
16
- class NativeTransferBuilder extends transactionBuilder_1.TransactionBuilder {
17
- constructor(_coinConfig) {
18
- super(_coinConfig);
19
- this._sweepFreeBalance = false;
20
- this._keepAddressAlive = true;
21
- }
22
- /**
23
- *
24
- * Dispatch the given call from an account that the sender is authorised for through add_proxy.
25
- *
26
- * @returns {UnsignedTransaction} an unsigned Dot transaction
27
- *
28
- * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
29
- */
30
- buildTransaction() {
31
- const baseTxInfo = this.createBaseTxInfo();
32
- let transferTx;
33
- if (this._sweepFreeBalance) {
34
- transferTx = txwrapper_polkadot_1.methods.balances.transferAll({
35
- dest: { id: this._to },
36
- keepAlive: this._keepAddressAlive,
37
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
38
- }
39
- else {
40
- transferTx = txwrapper_polkadot_1.methods.balances.transferKeepAlive({
41
- value: this._amount,
42
- dest: { id: this._to },
43
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
44
- }
45
- if (!this._owner) {
46
- return transferTx;
47
- }
48
- return txwrapper_polkadot_1.methods.proxy.proxy({
49
- real: this._owner,
50
- forceProxyType: this._forceProxyType,
51
- call: transferTx.method,
52
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
53
- }
54
- get transactionType() {
55
- return sdk_core_1.TransactionType.Send;
56
- }
57
- /**
58
- *
59
- * Set this to be a sweep transaction, using TransferAll with keepAlive set to true by default.
60
- * If keepAlive is false, the entire address will be swept (including the 1 DOT minimum).
61
- *
62
- * @param {boolean} keepAlive - keep the address alive after this sweep
63
- * @returns {TransferBuilder} This transfer builder.
64
- *
65
- * @see https://github.com/paritytech/txwrapper-core/blob/main/docs/modules/txwrapper_substrate_src.methods.balances.md#transferall
66
- */
67
- sweep(keepAlive) {
68
- this._sweepFreeBalance = true;
69
- if (keepAlive !== undefined) {
70
- this._keepAddressAlive = keepAlive;
71
- }
72
- return this;
73
- }
74
- /**
75
- *
76
- * The amount for transfer transaction.
77
- *
78
- * @param {string} amount
79
- * @returns {TransferBuilder} This transfer builder.
80
- *
81
- * @see https://wiki.polkadot.network/docs/build-protocol-info
82
- */
83
- amount(amount) {
84
- this.validateValue(new bignumber_js_1.default(amount));
85
- this._amount = amount;
86
- return this;
87
- }
88
- /**
89
- *
90
- * The destination address for transfer transaction.
91
- *
92
- * @param {string} dest
93
- * @returns {TransferBuilder} This transfer builder.
94
- *
95
- * @see https://wiki.polkadot.network/docs/build-protocol-info
96
- */
97
- to({ address }) {
98
- this.validateAddress({ address });
99
- this._to = address;
100
- return this;
101
- }
102
- /**
103
- *
104
- * The real address of the original tx
105
- *
106
- * @param {BaseAddress} real
107
- * @returns {TransferBuilder} This builder.
108
- *
109
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
110
- */
111
- owner(owner) {
112
- this.validateAddress({ address: owner.address });
113
- this._owner = owner.address;
114
- return this;
115
- }
116
- /**
117
- *
118
- * The proxy type to execute
119
- *
120
- * @param {proxyType} forceProxyType
121
- * @returns {TransferBuilder} This builder.
122
- *
123
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
124
- */
125
- forceProxyType(forceProxyType) {
126
- this._forceProxyType = forceProxyType;
127
- return this;
128
- }
129
- /** @inheritdoc */
130
- validateDecodedTransaction(decodedTxn, rawTransaction) {
131
- var _a, _b;
132
- if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
133
- const txMethod = decodedTxn.method.args;
134
- const amount = `${txMethod.value}`;
135
- const to = txMethod.dest.id;
136
- const validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
137
- if (validationResult.error) {
138
- throw new sdk_core_1.InvalidTransactionError(`Transfer Transaction validation failed: ${validationResult.error.message}`);
139
- }
140
- }
141
- else if (((_b = decodedTxn.method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.Proxy) {
142
- const txMethod = decodedTxn.method.args;
143
- const real = iface_utils_1.getAddress(txMethod);
144
- const forceProxyType = txMethod.forceProxyType;
145
- const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
146
- registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
147
- metadataRpc: this._material.metadata,
148
- });
149
- const amount = `${decodedCall.value}`;
150
- const to = decodedCall.dest.id;
151
- const validationResult = txnSchema_1.ProxyTransactionSchema.validate({ real, forceProxyType, amount, to });
152
- if (validationResult.error) {
153
- throw new sdk_core_1.InvalidTransactionError(`Proxy Transaction validation failed: ${validationResult.error.message}`);
154
- }
155
- }
156
- }
157
- /** @inheritdoc */
158
- fromImplementation(rawTransaction) {
159
- var _a, _b, _c, _d, _e;
160
- const tx = super.fromImplementation(rawTransaction);
161
- if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.TransferKeepAlive) {
162
- const txMethod = this._method.args;
163
- this.amount(txMethod.value);
164
- this.to({
165
- address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
166
- });
167
- }
168
- else if (((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.TransferAll) {
169
- this._sweepFreeBalance = true;
170
- const txMethod = this._method.args;
171
- this.sweep(txMethod.keepAlive);
172
- this.to({
173
- address: utils_1.default.decodeDotAddress(txMethod.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
174
- });
175
- }
176
- else if (((_c = this._method) === null || _c === void 0 ? void 0 : _c.name) === iface_1.MethodNames.Proxy) {
177
- const txMethod = this._method.args;
178
- this.owner({
179
- address: utils_1.default.decodeDotAddress(iface_utils_1.getAddress(txMethod), utils_1.default.getAddressFormat(this._coinConfig.name)),
180
- });
181
- this.forceProxyType(txMethod.forceProxyType);
182
- const decodedCall = utils_1.default.decodeCallMethod(rawTransaction, {
183
- registry: singletonRegistry_1.SingletonRegistry.getInstance(this._material),
184
- metadataRpc: this._material.metadata,
185
- });
186
- if (!decodedCall.value || !decodedCall.dest) {
187
- throw new sdk_core_1.InvalidTransactionError(`Invalid Proxy Transaction Method: ${(_d = this._method) === null || _d === void 0 ? void 0 : _d.name}. Expected transferKeepAlive`);
188
- }
189
- this.amount(`${decodedCall.value}`);
190
- this.to({
191
- address: utils_1.default.decodeDotAddress(decodedCall.dest.id, utils_1.default.getAddressFormat(this._coinConfig.name)),
192
- });
193
- }
194
- else {
195
- throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_e = this._method) === null || _e === void 0 ? void 0 : _e.name}. Expected a transferKeepAlive or a proxy transferKeepAlive transaction`);
196
- }
197
- return tx;
198
- }
199
- /** @inheritdoc */
200
- validateTransaction(_) {
201
- super.validateTransaction(_);
202
- this.validateFields(this._to, this._amount, this._owner, this._forceProxyType);
203
- }
204
- validateFields(to, amount, real, forceProxyType) {
205
- let validationResult;
206
- if (forceProxyType) {
207
- validationResult = txnSchema_1.ProxyTransactionSchema.validate({ to, amount, real, forceProxyType });
208
- }
209
- else if (this._sweepFreeBalance) {
210
- validationResult = txnSchema_1.TransferAllTransactionSchema.validate({ to });
211
- }
212
- else {
213
- validationResult = txnSchema_1.TransferTransactionSchema.validate({ amount, to });
214
- }
215
- if (validationResult.error) {
216
- throw new sdk_core_1.InvalidTransactionError(`Proxy/TransferAll/TransferKeepAlive Transaction validation failed: ${validationResult.error.message}`);
217
- }
218
- }
219
- }
220
- exports.NativeTransferBuilder = NativeTransferBuilder;
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlVHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9uYXRpdmVUcmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTRHO0FBRTVHLHNFQUF3RDtBQUV4RCxnRUFBcUM7QUFDckMsbUNBQTJGO0FBQzNGLCtDQUEyQztBQUMzQywyREFBd0Q7QUFFeEQsNkRBQTBEO0FBQzFELDJDQUE4RztBQUM5RyxvREFBNEI7QUFFNUIsTUFBc0IscUJBQXNCLFNBQVEsdUNBQWtCO0lBUXBFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUlgsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLElBQUksQ0FBQztJQVFuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFVBQVUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFVBQVUsR0FBRyw0QkFBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZDO2dCQUNFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNsQyxFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7U0FDSDthQUFNO1lBQ0wsVUFBVSxHQUFHLDRCQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUM3QztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3ZCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFD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QUFFO1lBQ2xCLGdCQUFnQixHQUFHLGtDQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7U0FDMUY7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNqQyxnQkFBZ0IsR0FBRyx3Q0FBNEIsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDTCxnQkFBZ0IsR0FBRyxxQ0FBeUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0Isc0VBQXNFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDdkcsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBbFBELHNEQWtQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBNZXRob2ROYW1lcywgUHJveHlBcmdzLCBQcm94eVR5cGUsIFRyYW5zZmVyQWxsQXJncywgVHJhbnNmZXJBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXRBZGRyZXNzIH0gZnJvbSAnLi9pZmFjZV91dGlscyc7XG5pbXBvcnQgeyBTaW5nbGV0b25SZWdpc3RyeSB9IGZyb20gJy4vc2luZ2xldG9uUmVnaXN0cnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyQWxsVHJhbnNhY3Rpb25TY2hlbWEsIFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXRpdmVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3N3ZWVwRnJlZUJhbGFuY2UgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9rZWVwQWRkcmVzc0FsaXZlID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90bzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX293bmVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZm9yY2VQcm94eVR5cGU6IFByb3h5VHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogRGlzcGF0Y2ggdGhlIGdpdmVuIGNhbGwgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3Jpc2VkIGZvciB0aHJvdWdoIGFkZF9wcm94eS5cbiAgICpcbiAgICogQHJldHVybnMge1Vuc2lnbmVkVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIERvdCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI3Byb3h5XG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgbGV0IHRyYW5zZmVyVHg7XG4gICAgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHRyYW5zZmVyVHggPSBtZXRob2RzLmJhbGFuY2VzLnRyYW5zZmVyQWxsKFxuICAgICAgICB7XG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgICBrZWVwQWxpdmU6IHRoaXMuX2tlZXBBZGRyZXNzQWxpdmUsXG4gICAgICAgIH0sXG4gICAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlclR4ID0gbWV0aG9kcy5iYWxhbmNlcy50cmFuc2ZlcktlZXBBbGl2ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgZGVzdDogeyBpZDogdGhpcy5fdG8gfSxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9vd25lcikge1xuICAgICAgcmV0dXJuIHRyYW5zZmVyVHg7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnByb3h5KFxuICAgICAge1xuICAgICAgICByZWFsOiB0aGlzLl9vd25lcixcbiAgICAgICAgZm9yY2VQcm94eVR5cGU6IHRoaXMuX2ZvcmNlUHJveHlUeXBlLFxuICAgICAgICBjYWxsOiB0cmFuc2ZlclR4Lm1ldGhvZCxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogU2V0IHRoaXMgdG8gYmUgYSBzd2VlcCB0cmFuc2FjdGlvbiwgdXNpbmcgVHJhbnNmZXJBbGwgd2l0aCBrZWVwQWxpdmUgc2V0IHRvIHRydWUgYnkgZGVmYXVsdC5cbiAgICogSWYga2VlcEFsaXZlIGlzIGZhbHNlLCB0aGUgZW50aXJlIGFkZHJlc3Mgd2lsbCBiZSBzd2VwdCAoaW5jbHVkaW5nIHRoZSAxIERPVCBtaW5pbXVtKS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBrZWVwQWxpdmUgLSBrZWVwIHRoZSBhZGRyZXNzIGFsaXZlIGFmdGVyIHRoaXMgc3dlZXBcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3R4d3JhcHBlci1jb3JlL2Jsb2IvbWFpbi9kb2NzL21vZHVsZXMvdHh3cmFwcGVyX3N1YnN0cmF0ZV9zcmMubWV0aG9kcy5iYWxhbmNlcy5tZCN0cmFuc2ZlcmFsbFxuICAgKi9cbiAgc3dlZXAoa2VlcEFsaXZlPzogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UgPSB0cnVlO1xuICAgIGlmIChrZWVwQWxpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fa2VlcEFkZHJlc3NBbGl2ZSA9IGtlZXBBbGl2ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVGhlIGFtb3VudCBmb3IgdHJhbnNmZXIgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzIGZvciB0cmFuc2ZlciB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc3RcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtcHJvdG9jb2wtaW5mb1xuICAgKi9cbiAgdG8oeyBhZGRyZXNzIH06IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMuX3RvID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgcmVhbCBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0eFxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSByZWFsXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjd2h5LXVzZS1hLXByb3h5XG4gICAqL1xuICBvd25lcihvd25lcjogQmFzZUFkZHJlc3MpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IG93bmVyLmFkZHJlc3MgfSk7XG4gICAgdGhpcy5fb3duZXIgPSBvd25lci5hZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoZSBwcm94eSB0eXBlIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQHBhcmFtIHtwcm94eVR5cGV9IGZvcmNlUHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjcHJveHktdHlwZXNcbiAgICovXG4gIGZvcmNlUHJveHlUeXBlKGZvcmNlUHJveHlUeXBlOiBQcm94eVR5cGUpOiB0aGlzIHtcbiAgICB0aGlzLl9mb3JjZVByb3h5VHlwZSA9IGZvcmNlUHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCwgcmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFRyYW5zZmVyQXJncztcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke3R4TWV0aG9kLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IHR4TWV0aG9kLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVHJhbnNmZXJUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IGFtb3VudCwgdG8gfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zZmVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5Qcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgUHJveHlBcmdzO1xuICAgICAgY29uc3QgcmVhbCA9IGdldEFkZHJlc3ModHhNZXRob2QpO1xuICAgICAgY29uc3QgZm9yY2VQcm94eVR5cGUgPSB0eE1ldGhvZC5mb3JjZVByb3h5VHlwZTtcbiAgICAgIGNvbnN0IGRlY29kZWRDYWxsID0gdXRpbHMuZGVjb2RlQ2FsbE1ldGhvZChyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgICByZWdpc3RyeTogU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UodGhpcy5fbWF0ZXJpYWwpLFxuICAgICAgICBtZXRhZGF0YVJwYzogdGhpcy5fbWF0ZXJpYWwubWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFtb3VudCA9IGAke2RlY29kZWRDYWxsLnZhbHVlfWA7XG4gICAgICBjb25zdCB0byA9IGRlY29kZWRDYWxsLmRlc3QuaWQ7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gUHJveHlUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHJlYWwsIGZvcmNlUHJveHlUeXBlLCBhbW91bnQsIHRvIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBQcm94eSBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuVHJhbnNmZXJLZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QudmFsdWUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlRyYW5zZmVyQWxsKSB7XG4gICAgICB0aGlzLl9zd2VlcEZyZWVCYWxhbmNlID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgVHJhbnNmZXJBbGxBcmdzO1xuICAgICAgdGhpcy5zd2VlcCh0eE1ldGhvZC5rZWVwQWxpdmUpO1xuICAgICAgdGhpcy50byh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgdHhNZXRob2QuZGVzdC5pZCxcbiAgICAgICAgICB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKVxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLlByb3h5KSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIFByb3h5QXJncztcbiAgICAgIHRoaXMub3duZXIoe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5kZWNvZGVEb3RBZGRyZXNzKFxuICAgICAgICAgIGdldEFkZHJlc3ModHhNZXRob2QpLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9yY2VQcm94eVR5cGUodHhNZXRob2QuZm9yY2VQcm94eVR5cGUpO1xuICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSB1dGlscy5kZWNvZGVDYWxsTWV0aG9kKHJhd1RyYW5zYWN0aW9uLCB7XG4gICAgICAgIHJlZ2lzdHJ5OiBTaW5nbGV0b25SZWdpc3RyeS5nZXRJbnN0YW5jZSh0aGlzLl9tYXRlcmlhbCksXG4gICAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFkZWNvZGVkQ2FsbC52YWx1ZSB8fCAhZGVjb2RlZENhbGwuZGVzdCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgUHJveHkgVHJhbnNhY3Rpb24gTWV0aG9kOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIHRyYW5zZmVyS2VlcEFsaXZlYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5hbW91bnQoYCR7ZGVjb2RlZENhbGwudmFsdWV9YCk7XG4gICAgICB0aGlzLnRvKHtcbiAgICAgICAgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhcbiAgICAgICAgICBkZWNvZGVkQ2FsbC5kZXN0LmlkLFxuICAgICAgICAgIHV0aWxzLmdldEFkZHJlc3NGb3JtYXQodGhpcy5fY29pbkNvbmZpZy5uYW1lIGFzIERvdEFzc2V0VHlwZXMpXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGEgdHJhbnNmZXJLZWVwQWxpdmUgb3IgYSBwcm94eSB0cmFuc2ZlcktlZXBBbGl2ZSB0cmFuc2FjdGlvbmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX3RvLCB0aGlzLl9hbW91bnQsIHRoaXMuX293bmVyLCB0aGlzLl9mb3JjZVByb3h5VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHRvOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCByZWFsPzogc3RyaW5nLCBmb3JjZVByb3h5VHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChmb3JjZVByb3h5VHlwZSkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IFByb3h5VHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyB0bywgYW1vdW50LCByZWFsLCBmb3JjZVByb3h5VHlwZSB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3N3ZWVwRnJlZUJhbGFuY2UpIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlckFsbFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdG8gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgYW1vdW50LCB0byB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgUHJveHkvVHJhbnNmZXJBbGwvVHJhbnNmZXJLZWVwQWxpdmUgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RemoveProxyBuilder = void 0;
7
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
- const iface_1 = require("./iface");
11
- const iface_utils_1 = require("./iface_utils");
12
- const transactionBuilder_1 = require("./transactionBuilder");
13
- const txnSchema_1 = require("./txnSchema");
14
- class RemoveProxyBuilder extends transactionBuilder_1.TransactionBuilder {
15
- constructor(_coinConfig) {
16
- super(_coinConfig);
17
- }
18
- /** @inheritDoc */
19
- buildTransaction() {
20
- const baseTxInfo = this.createBaseTxInfo();
21
- return txwrapper_polkadot_1.methods.proxy.removeProxy({
22
- delegate: this._delegate,
23
- proxyType: this._proxyType,
24
- delay: this._delay,
25
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
26
- }
27
- get transactionType() {
28
- return sdk_core_1.TransactionType.AddressInitialization;
29
- }
30
- /**
31
- * The proxy account to remove.
32
- *
33
- * @param {BaseAddress} owner
34
- * @returns {AddressInitializationBuilder} This builder.
35
- *
36
- * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
37
- */
38
- owner(owner) {
39
- this.validateAddress({ address: owner.address });
40
- this._delegate = owner.address;
41
- return this;
42
- }
43
- /**
44
- * The proxy type to remove.
45
- *
46
- * @param {proxyType} proxyType
47
- * @returns {AddressInitializationBuilder} This builder.
48
- *
49
- * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
50
- */
51
- type(proxyType) {
52
- this._proxyType = proxyType;
53
- return this;
54
- }
55
- /**
56
- * The number of blocks that an announcement must be in place for.
57
- * before the corresponding call may be dispatched.
58
- * If zero, then no announcement is needed.
59
- * TODO: move to the validity window method once it has been standardized
60
- *
61
- * @param {string} delay
62
- * @returns {AddressInitializationBuilder} This transfer builder.
63
- *
64
- * @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
65
- */
66
- delay(delay) {
67
- this.validateValue(new bignumber_js_1.default(parseInt(delay, 10)));
68
- this._delay = delay;
69
- return this;
70
- }
71
- /** @inheritdoc */
72
- validateDecodedTransaction(decodedTxn) {
73
- var _a;
74
- let validationResult;
75
- if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.RemoveProxy) {
76
- const txMethod = decodedTxn.method.args;
77
- validationResult = this.validateRemoveProxyFields(iface_utils_1.getDelegateAddress(txMethod), txMethod.proxyType, txMethod.delay);
78
- if (validationResult.error) {
79
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
80
- }
81
- }
82
- }
83
- /** @inheritdoc */
84
- fromImplementation(rawTransaction) {
85
- var _a, _b;
86
- const tx = super.fromImplementation(rawTransaction);
87
- if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.RemoveProxy) {
88
- const txMethod = this._method.args;
89
- this.owner({ address: iface_utils_1.getDelegateAddress(txMethod) });
90
- this.type(txMethod.proxyType);
91
- this.delay(new bignumber_js_1.default(txMethod.delay).toString());
92
- }
93
- else {
94
- throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_b = this._method) === null || _b === void 0 ? void 0 : _b.name}. Expected ${iface_1.MethodNames.RemoveProxy}`);
95
- }
96
- return tx;
97
- }
98
- /** @inheritdoc */
99
- validateTransaction(_) {
100
- super.validateTransaction(_);
101
- this.validateFields();
102
- }
103
- validateFields() {
104
- const validationResult = this.validateRemoveProxyFields(this._delegate, this._proxyType, this._delay);
105
- if (validationResult.error) {
106
- throw new sdk_core_1.InvalidTransactionError(`RemoveProxy Transaction validation failed: ${validationResult.error.message}`);
107
- }
108
- }
109
- validateRemoveProxyFields(delegate, proxyType, delay) {
110
- return txnSchema_1.AddressInitializationSchema.validate({
111
- delegate,
112
- proxyType,
113
- delay,
114
- });
115
- }
116
- }
117
- exports.RemoveProxyBuilder = RemoveProxyBuilder;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wcm94eUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZGO0FBRzdGLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFFckMsbUNBQStEO0FBQy9ELCtDQUFtRDtBQUVuRCw2REFBMEQ7QUFDMUQsMkNBQTBEO0FBRTFELE1BQWEsa0JBQW1CLFNBQVEsdUNBQWtCO0lBS3hELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsT0FBTyw0QkFBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzlCO1lBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMscUJBQXFCLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsS0FBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FB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IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICdqb2knO1xuaW1wb3J0IHsgQWRkUHJveHlBcmdzLCBNZXRob2ROYW1lcywgUHJveHlUeXBlIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBnZXREZWxlZ2F0ZUFkZHJlc3MgfSBmcm9tICcuL2lmYWNlX3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBBZGRyZXNzSW5pdGlhbGl6YXRpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVQcm94eUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2RlbGVnYXRlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcHJveHlUeXBlOiBQcm94eVR5cGU7XG4gIHByb3RlY3RlZCBfZGVsYXk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiBtZXRob2RzLnByb3h5LnJlbW92ZVByb3h5KFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0ZTogdGhpcy5fZGVsZWdhdGUsXG4gICAgICAgIHByb3h5VHlwZTogdGhpcy5fcHJveHlUeXBlLFxuICAgICAgICBkZWxheTogdGhpcy5fZGVsYXksXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IGFjY291bnQgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBvd25lclxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN3aHktdXNlLWEtcHJveHlcbiAgICovXG4gIG93bmVyKG93bmVyOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogb3duZXIuYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9kZWxlZ2F0ZSA9IG93bmVyLmFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3h5IHR5cGUgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAcGFyYW0ge3Byb3h5VHlwZX0gcHJveHlUeXBlXG4gICAqIEByZXR1cm5zIHtBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyfSBUaGlzIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1wcm94aWVzI3Byb3h5LXR5cGVzXG4gICAqL1xuICB0eXBlKHByb3h5VHlwZTogUHJveHlUeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fcHJveHlUeXBlID0gcHJveHlUeXBlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgYW4gYW5ub3VuY2VtZW50IG11c3QgYmUgaW4gcGxhY2UgZm9yLlxuICAgKiBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBtYXkgYmUgZGlzcGF0Y2hlZC5cbiAgICogSWYgemVybywgdGhlbiBubyBhbm5vdW5jZW1lbnQgaXMgbmVlZGVkLlxuICAgKiBUT0RPOiBtb3ZlIHRvIHRoZSB2YWxpZGl0eSB3aW5kb3cgbWV0aG9kIG9uY2UgaXQgaGFzIGJlZW4gc3RhbmRhcmRpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZWxheVxuICAgKiBAcmV0dXJucyB7QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvbGVhcm4tcHJveGllcyN0aW1lLWRlbGF5ZWQtcHJveGllc1xuICAgKi9cbiAgZGVsYXkoZGVsYXk6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHBhcnNlSW50KGRlbGF5LCAxMCkpKTtcbiAgICB0aGlzLl9kZWxheSA9IGRlbGF5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuUmVtb3ZlUHJveHkpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIEFkZFByb3h5QXJncztcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB0aGlzLnZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoXG4gICAgICAgIGdldERlbGVnYXRlQWRkcmVzcyh0eE1ldGhvZCksXG4gICAgICAgIHR4TWV0aG9kLnByb3h5VHlwZSxcbiAgICAgICAgdHhNZXRob2QuZGVsYXlcbiAgICAgICk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAodGhpcy5fbWV0aG9kPy5uYW1lID09PSBNZXRob2ROYW1lcy5SZW1vdmVQcm94eSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBBZGRQcm94eUFyZ3M7XG4gICAgICB0aGlzLm93bmVyKHsgYWRkcmVzczogZ2V0RGVsZWdhdGVBZGRyZXNzKHR4TWV0aG9kKSB9KTtcbiAgICAgIHRoaXMudHlwZSh0eE1ldGhvZC5wcm94eVR5cGUpO1xuICAgICAgdGhpcy5kZWxheShuZXcgQmlnTnVtYmVyKHR4TWV0aG9kLmRlbGF5KS50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkICR7TWV0aG9kTmFtZXMuUmVtb3ZlUHJveHl9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVSZW1vdmVQcm94eUZpZWxkcyhcbiAgICAgIHRoaXMuX2RlbGVnYXRlLFxuICAgICAgdGhpcy5fcHJveHlUeXBlLFxuICAgICAgdGhpcy5fZGVsYXlcbiAgICApO1xuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFJlbW92ZVByb3h5IFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVtb3ZlUHJveHlGaWVsZHMoZGVsZWdhdGU6IHN0cmluZywgcHJveHlUeXBlOiBzdHJpbmcsIGRlbGF5OiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgICByZXR1cm4gQWRkcmVzc0luaXRpYWxpemF0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIGRlbGVnYXRlLFxuICAgICAgcHJveHlUeXBlLFxuICAgICAgZGVsYXksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SingletonRegistry = void 0;
4
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
5
- class SingletonRegistry {
6
- static getInstance(material) {
7
- if (material !== SingletonRegistry.material) {
8
- SingletonRegistry.material = material;
9
- SingletonRegistry.instance = txwrapper_polkadot_1.getRegistry({
10
- chainName: material.chainName,
11
- specName: material.specName,
12
- specVersion: material.specVersion,
13
- metadataRpc: material.metadata,
14
- });
15
- }
16
- return SingletonRegistry.instance;
17
- }
18
- }
19
- exports.SingletonRegistry = SingletonRegistry;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NpbmdsZXRvblJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUE0RDtBQUc1RCxNQUFhLGlCQUFpQjtJQUk1QixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVE7UUFDekIsSUFBSSxRQUFRLEtBQUssaUJBQWlCLENBQUMsUUFBUSxFQUFFO1lBQzNDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDdEMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLGdDQUFXLENBQUM7Z0JBQ3ZDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztnQkFDN0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFnQztnQkFDbkQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO2dCQUNqQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQXlCO2FBQ2hELENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBaEJELDhDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGthZG90U3BlY05hbWVUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBnZXRSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IE1hdGVyaWFsIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBTaW5nbGV0b25SZWdpc3RyeSB7XG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBUeXBlUmVnaXN0cnk7XG4gIHByaXZhdGUgc3RhdGljIG1hdGVyaWFsOiBNYXRlcmlhbDtcblxuICBzdGF0aWMgZ2V0SW5zdGFuY2UobWF0ZXJpYWwpOiBUeXBlUmVnaXN0cnkge1xuICAgIGlmIChtYXRlcmlhbCAhPT0gU2luZ2xldG9uUmVnaXN0cnkubWF0ZXJpYWwpIHtcbiAgICAgIFNpbmdsZXRvblJlZ2lzdHJ5Lm1hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgICBTaW5nbGV0b25SZWdpc3RyeS5pbnN0YW5jZSA9IGdldFJlZ2lzdHJ5KHtcbiAgICAgICAgY2hhaW5OYW1lOiBtYXRlcmlhbC5jaGFpbk5hbWUsXG4gICAgICAgIHNwZWNOYW1lOiBtYXRlcmlhbC5zcGVjTmFtZSBhcyBQb2xrYWRvdFNwZWNOYW1lVHlwZSxcbiAgICAgICAgc3BlY1ZlcnNpb246IG1hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgICBtZXRhZGF0YVJwYzogbWF0ZXJpYWwubWV0YWRhdGEgYXMgYDB4JHtzdHJpbmd9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gU2luZ2xldG9uUmVnaXN0cnkuaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,169 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StakingBuilder = void 0;
7
- const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const utils_1 = __importDefault(require("./utils"));
10
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
- const iface_1 = require("./iface");
12
- const transactionBuilder_1 = require("./transactionBuilder");
13
- const txnSchema_1 = require("./txnSchema");
14
- class StakingBuilder extends transactionBuilder_1.TransactionBuilder {
15
- constructor(_coinConfig) {
16
- super(_coinConfig);
17
- }
18
- /**
19
- * Take the origin account as a stash and lock up value of its balance.
20
- * Controller will be the account that controls it.
21
- *
22
- * @returns {UnsignedTransaction} an unsigned Dot transaction
23
- *
24
- * @see https://polkadot.js.org/docs/substrate/extrinsics/#staking
25
- */
26
- buildTransaction() {
27
- const baseTxInfo = this.createBaseTxInfo();
28
- if (this._addToStake) {
29
- return txwrapper_polkadot_1.methods.staking.bondExtra({
30
- maxAdditional: this._amount,
31
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
32
- }
33
- else {
34
- return txwrapper_polkadot_1.methods.staking.bond({
35
- value: this._amount,
36
- payee: this._payee,
37
- }, baseTxInfo.baseTxInfo, baseTxInfo.options);
38
- }
39
- }
40
- get transactionType() {
41
- return sdk_core_1.TransactionType.StakingActivate;
42
- }
43
- /**
44
- * The amount to stake.
45
- *
46
- * @param {string} amount
47
- * @returns {StakeBuilder} This staking builder.
48
- *
49
- * @see https://wiki.polkadot.network/docs/learn-nominator#required-minimum-stake
50
- */
51
- amount(amount) {
52
- this.validateValue(new bignumber_js_1.default(amount));
53
- this._amount = amount;
54
- return this;
55
- }
56
- /**
57
- * true if we should add to an existing stake, false otherwise.
58
- *
59
- * @param {boolean} addToStake
60
- * @returns {StakeBuilder} This staking builder.
61
- */
62
- addToStake(addToStake) {
63
- this._addToStake = addToStake;
64
- return this;
65
- }
66
- /**
67
- * The controller of the staked amount.
68
- *
69
- * @param {string} controller
70
- * @returns {StakeBuilder} This staking builder.
71
- *
72
- * @see https://wiki.polkadot.network/docs/learn-staking#accounts
73
- */
74
- owner(controller) {
75
- this.validateAddress(controller);
76
- this._controller = controller.address;
77
- return this;
78
- }
79
- /**
80
- * The rewards destination of the staked amount.
81
- * Can be set to another accounts address.
82
- *
83
- * @param {string} payee
84
- * @returns {StakeBuilder} This staking builder.
85
- *
86
- * @see https://wiki.polkadot.network/docs/learn-staking#4-rewards-mechanism
87
- */
88
- payee(payee) {
89
- if (typeof payee !== 'string') {
90
- this.validateAddress({ address: payee.Account });
91
- this._payee = { Account: payee.Account };
92
- }
93
- else {
94
- this._payee = payee;
95
- }
96
- return this;
97
- }
98
- /** @inheritdoc */
99
- validateDecodedTransaction(decodedTxn) {
100
- var _a, _b;
101
- if (((_a = decodedTxn.method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.Bond) {
102
- const txMethod = decodedTxn.method.args;
103
- const value = txMethod.value;
104
- const controller = this._sender;
105
- const payee = txMethod.payee;
106
- const validationResult = txnSchema_1.StakeTransactionSchema.validate({ value, controller, payee });
107
- if (validationResult.error) {
108
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
109
- }
110
- }
111
- else if (((_b = decodedTxn.method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.BondExtra) {
112
- const txMethod = decodedTxn.method.args;
113
- const value = txMethod.maxAdditional;
114
- const validationResult = txnSchema_1.StakeTransactionSchema.validate({ value, addToStake: true });
115
- if (validationResult.error) {
116
- throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
117
- }
118
- }
119
- }
120
- /** @inheritdoc */
121
- fromImplementation(rawTransaction) {
122
- var _a, _b, _c;
123
- const tx = super.fromImplementation(rawTransaction);
124
- if (((_a = this._method) === null || _a === void 0 ? void 0 : _a.name) === iface_1.MethodNames.Bond) {
125
- const txMethod = this._method.args;
126
- this.amount(txMethod.value);
127
- this.owner({
128
- address: utils_1.default.decodeDotAddress(this._sender, utils_1.default.getAddressFormat(this._coinConfig.name)),
129
- });
130
- const payee = txMethod.payee;
131
- if (payee.account) {
132
- this.payee({
133
- Account: utils_1.default.decodeDotAddress(payee.account, utils_1.default.getAddressFormat(this._coinConfig.name)),
134
- });
135
- }
136
- else {
137
- const payeeType = utils_1.default.capitalizeFirstLetter(Object.keys(payee)[0]);
138
- this.payee(payeeType);
139
- }
140
- }
141
- else if (((_b = this._method) === null || _b === void 0 ? void 0 : _b.name) === iface_1.MethodNames.BondExtra) {
142
- const txMethod = this._method.args;
143
- this.amount(txMethod.maxAdditional);
144
- this.addToStake(true);
145
- }
146
- else {
147
- throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${(_c = this._method) === null || _c === void 0 ? void 0 : _c.name}. Expected bond or bondExtra`);
148
- }
149
- return tx;
150
- }
151
- /** @inheritdoc */
152
- validateTransaction(_) {
153
- super.validateTransaction(_);
154
- this.validateFields(this._amount, this._controller, this._payee, this._addToStake);
155
- }
156
- validateFields(value, controller, payee, addToStake) {
157
- const validationResult = txnSchema_1.StakeTransactionSchema.validate({
158
- value,
159
- controller,
160
- payee,
161
- addToStake,
162
- });
163
- if (validationResult.error) {
164
- throw new sdk_core_1.InvalidTransactionError(`Stake Builder Transaction validation failed: ${validationResult.error.message}`);
165
- }
166
- }
167
- }
168
- exports.StakingBuilder = StakingBuilder;
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLHNFQUF3RDtBQUN4RCxnRUFBcUM7QUFDckMsb0RBQTRCO0FBQzVCLG1EQUE0RztBQUM1RyxtQ0FBbUc7QUFFbkcsNkRBQTBEO0FBQzFELDJDQUFxRDtBQUVyRCxNQUFhLGNBQWUsU0FBUSx1Q0FBa0I7SUFNcEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sNEJBQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUM5QjtnQkFDRSxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDNUIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sNEJBQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN6QjtnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTthQUNuQixFQUNELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsVUFBbUI7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxVQUF1QjtRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxLQUFxQjtRQUN6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzFDO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRDs7UUFDNUUsSUFBSSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsSUFBSSxFQUFFO1lBQ2hELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBNEIsQ0FBQztZQUNoRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM3QixNQUFNLGdCQUFnQixHQUFHLGtDQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGtDQUFrQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUN2RztTQUNGO2FBQU0sSUFBSSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsSUFBSSxNQUFLLG1CQUFXLENBQUMsU0FBUyxFQUFFO1lBQzVELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBZ0MsQ0FBQztZQUNwRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQXNCLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFO2dCQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsa0NBQWtDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZHO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7O1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLE1BQUssbUJBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFpQixDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQXFCLENBQUMsQ0FBQzthQUM5RyxDQUFDLENBQUM7WUFFSCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBMEIsQ0FBQztZQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ1QsT0FBTyxFQUFFLGVBQUssQ0FBQyxnQkFBZ0IsQ0FDN0IsS0FBSyxDQUFDLE9BQU8sRUFDYixlQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFxQixDQUFDLENBQy9EO2lCQUNGLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLE1BQU0sU0FBUyxHQUFHLGVBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFtQixDQUFDO2dCQUN2RixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7YUFBTSxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLE1BQUssbUJBQVcsQ0FBQyxTQUFTLEVBQUU7WUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFxQixDQUFDO1lBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLDhCQUE4QixDQUFDLENBQUM7U0FDbEg7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsQ0FBYztRQUNoQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhLEVBQUUsVUFBa0IsRUFBRSxLQUFxQixFQUFFLFVBQW1CO1FBQ2xHLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3ZELEtBQUs7WUFDTCxVQUFVO1lBQ1YsS0FBSztZQUNMLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQy9CLGdEQUFnRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2pGLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQS9LRCx3Q0ErS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJhc2VBZGRyZXNzLCBEb3RBc3NldFR5cGVzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgTWV0aG9kTmFtZXMsIFN0YWtlQXJncywgU3Rha2VBcmdzUGF5ZWUsIFN0YWtlQXJnc1BheWVlUmF3LCBTdGFrZU1vcmVBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgU3Rha2VUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9jb250cm9sbGVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcGF5ZWU6IFN0YWtlQXJnc1BheWVlO1xuICBwcm90ZWN0ZWQgX2FkZFRvU3Rha2U6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2UgdGhlIG9yaWdpbiBhY2NvdW50IGFzIGEgc3Rhc2ggYW5kIGxvY2sgdXAgdmFsdWUgb2YgaXRzIGJhbGFuY2UuXG4gICAqIENvbnRyb2xsZXIgd2lsbCBiZSB0aGUgYWNjb3VudCB0aGF0IGNvbnRyb2xzIGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgRG90IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wb2xrYWRvdC5qcy5vcmcvZG9jcy9zdWJzdHJhdGUvZXh0cmluc2ljcy8jc3Rha2luZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIGlmICh0aGlzLl9hZGRUb1N0YWtlKSB7XG4gICAgICByZXR1cm4gbWV0aG9kcy5zdGFraW5nLmJvbmRFeHRyYShcbiAgICAgICAge1xuICAgICAgICAgIG1heEFkZGl0aW9uYWw6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgfSxcbiAgICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtZXRob2RzLnN0YWtpbmcuYm9uZChcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgcGF5ZWU6IHRoaXMuX3BheWVlLFxuICAgICAgICB9LFxuICAgICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICAgIGJhc2VUeEluZm8ub3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgdG8gc3Rha2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnRcbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1ub21pbmF0b3IjcmVxdWlyZWQtbWluaW11bS1zdGFrZVxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50KSk7XG4gICAgdGhpcy5fYW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgaWYgd2Ugc2hvdWxkIGFkZCB0byBhbiBleGlzdGluZyBzdGFrZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFkZFRvU3Rha2VcbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqL1xuICBhZGRUb1N0YWtlKGFkZFRvU3Rha2U6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9hZGRUb1N0YWtlID0gYWRkVG9TdGFrZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udHJvbGxlciBvZiB0aGUgc3Rha2VkIGFtb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyb2xsZXJcbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1zdGFraW5nI2FjY291bnRzXG4gICAqL1xuICBvd25lcihjb250cm9sbGVyOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKGNvbnRyb2xsZXIpO1xuICAgIHRoaXMuX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyLmFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJld2FyZHMgZGVzdGluYXRpb24gb2YgdGhlIHN0YWtlZCBhbW91bnQuXG4gICAqIENhbiBiZSBzZXQgdG8gYW5vdGhlciBhY2NvdW50cyBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF5ZWVcbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1zdGFraW5nIzQtcmV3YXJkcy1tZWNoYW5pc21cbiAgICovXG4gIHBheWVlKHBheWVlOiBTdGFrZUFyZ3NQYXllZSk6IHRoaXMge1xuICAgIGlmICh0eXBlb2YgcGF5ZWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHBheWVlLkFjY291bnQgfSk7XG4gICAgICB0aGlzLl9wYXllZSA9IHsgQWNjb3VudDogcGF5ZWUuQWNjb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wYXllZSA9IHBheWVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBpZiAoZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkJvbmQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gZGVjb2RlZFR4bi5tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFN0YWtlQXJncztcbiAgICAgIGNvbnN0IHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG4gICAgICBjb25zdCBjb250cm9sbGVyID0gdGhpcy5fc2VuZGVyO1xuICAgICAgY29uc3QgcGF5ZWUgPSB0eE1ldGhvZC5wYXllZTtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHsgdmFsdWUsIGNvbnRyb2xsZXIsIHBheWVlIH0pO1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuQm9uZEV4dHJhKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBTdGFrZU1vcmVBcmdzO1xuICAgICAgY29uc3QgdmFsdWUgPSB0eE1ldGhvZC5tYXhBZGRpdGlvbmFsO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFN0YWtlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoeyB2YWx1ZSwgYWRkVG9TdGFrZTogdHJ1ZSB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkJvbmQpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgU3Rha2VBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QudmFsdWUpO1xuICAgICAgdGhpcy5vd25lcih7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLmRlY29kZURvdEFkZHJlc3ModGhpcy5fc2VuZGVyLCB1dGlscy5nZXRBZGRyZXNzRm9ybWF0KHRoaXMuX2NvaW5Db25maWcubmFtZSBhcyBEb3RBc3NldFR5cGVzKSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcGF5ZWUgPSB0eE1ldGhvZC5wYXllZSBhcyBTdGFrZUFyZ3NQYXllZVJhdztcbiAgICAgIGlmIChwYXllZS5hY2NvdW50KSB7XG4gICAgICAgIHRoaXMucGF5ZWUoe1xuICAgICAgICAgIEFjY291bnQ6IHV0aWxzLmRlY29kZURvdEFkZHJlc3MoXG4gICAgICAgICAgICBwYXllZS5hY2NvdW50LFxuICAgICAgICAgICAgdXRpbHMuZ2V0QWRkcmVzc0Zvcm1hdCh0aGlzLl9jb2luQ29uZmlnLm5hbWUgYXMgRG90QXNzZXRUeXBlcylcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBheWVlVHlwZSA9IHV0aWxzLmNhcGl0YWxpemVGaXJzdExldHRlcihPYmplY3Qua2V5cyhwYXllZSlbMF0pIGFzIFN0YWtlQXJnc1BheWVlO1xuICAgICAgICB0aGlzLnBheWVlKHBheWVlVHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkJvbmRFeHRyYSkge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyBTdGFrZU1vcmVBcmdzO1xuICAgICAgdGhpcy5hbW91bnQodHhNZXRob2QubWF4QWRkaXRpb25hbCk7XG4gICAgICB0aGlzLmFkZFRvU3Rha2UodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke3RoaXMuX21ldGhvZD8ubmFtZX0uIEV4cGVjdGVkIGJvbmQgb3IgYm9uZEV4dHJhYCk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKF86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGVUcmFuc2FjdGlvbihfKTtcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRzKHRoaXMuX2Ftb3VudCwgdGhpcy5fY29udHJvbGxlciwgdGhpcy5fcGF5ZWUsIHRoaXMuX2FkZFRvU3Rha2UpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcyh2YWx1ZTogc3RyaW5nLCBjb250cm9sbGVyOiBzdHJpbmcsIHBheWVlOiBTdGFrZUFyZ3NQYXllZSwgYWRkVG9TdGFrZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBTdGFrZVRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHZhbHVlLFxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHBheWVlLFxuICAgICAgYWRkVG9TdGFrZSxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBTdGFrZSBCdWlsZGVyIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAOf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAaL,sBAAsB,EACtB,MAAM,EAGP,MAAM,SAAS,CAAC;AAOjB;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAsF,CAAC;AAEvH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAmE;gBAEpF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAMlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA0B5B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IASlB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAa3B,eAAe,IAAI,MAAM;IAIzB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA4HhB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAe3G,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAelH,uCAAuC,CACrC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,sBAAsB,GACxC,sBAAsB;IAUzB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYhH,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgC5C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAuB5B,OAAO,CAAC,6BAA6B;IAqDrC,OAAO,CAAC,8BAA8B;IAoGtC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,uCAAuC;IAK/C;;;;;;;OAOG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/C,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI7C,mBAAmB;IACnB,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAGxD"}