@bitgo-beta/sdk-coin-polyx 1.0.0-alpha.21 → 1.0.0-alpha.211

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 (225) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/baseBuilder.d.ts +24 -0
  5. package/dist/src/lib/baseBuilder.d.ts.map +1 -0
  6. package/dist/src/lib/baseBuilder.js +31 -0
  7. package/dist/src/lib/batchStakingBuilder.d.ts +79 -0
  8. package/dist/src/lib/batchStakingBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/batchStakingBuilder.js +302 -0
  10. package/dist/src/lib/batchUnstakingBuilder.d.ts +39 -0
  11. package/dist/src/lib/batchUnstakingBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/batchUnstakingBuilder.js +129 -0
  13. package/dist/src/lib/bondExtraBuilder.d.ts +37 -0
  14. package/dist/src/lib/bondExtraBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/bondExtraBuilder.js +103 -0
  16. package/dist/src/lib/constants.d.ts +21 -0
  17. package/dist/src/lib/constants.d.ts.map +1 -0
  18. package/dist/src/lib/constants.js +24 -0
  19. package/dist/src/lib/hexTokenTransferBuilder.d.ts +24 -0
  20. package/dist/src/lib/hexTokenTransferBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/hexTokenTransferBuilder.js +46 -0
  22. package/dist/src/lib/hexTransferBuilder.d.ts +28 -0
  23. package/dist/src/lib/hexTransferBuilder.d.ts.map +1 -0
  24. package/dist/src/lib/hexTransferBuilder.js +51 -0
  25. package/dist/src/lib/iface.d.ts +249 -0
  26. package/dist/src/lib/iface.d.ts.map +1 -1
  27. package/dist/src/lib/iface.js +48 -1
  28. package/dist/src/lib/index.d.ts +36 -0
  29. package/dist/src/lib/index.d.ts.map +1 -1
  30. package/dist/src/lib/index.js +82 -5
  31. package/dist/src/lib/nominateBuilder.d.ts +18 -0
  32. package/dist/src/lib/nominateBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/nominateBuilder.js +101 -0
  34. package/dist/src/lib/preApproveAssetBuilder.d.ts +33 -0
  35. package/dist/src/lib/preApproveAssetBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/preApproveAssetBuilder.js +77 -0
  37. package/dist/src/lib/registerDidWithCDDBuilder.d.ts +7 -2
  38. package/dist/src/lib/registerDidWithCDDBuilder.d.ts.map +1 -1
  39. package/dist/src/lib/registerDidWithCDDBuilder.js +22 -3
  40. package/dist/src/lib/rejectInstructionBuilder.d.ts +29 -0
  41. package/dist/src/lib/rejectInstructionBuilder.d.ts.map +1 -0
  42. package/dist/src/lib/rejectInstructionBuilder.js +89 -0
  43. package/dist/src/lib/tokenTransferBuilder.d.ts +64 -0
  44. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  45. package/dist/src/lib/tokenTransferBuilder.js +167 -0
  46. package/dist/src/lib/transaction.d.ts +30 -0
  47. package/dist/src/lib/transaction.d.ts.map +1 -0
  48. package/dist/src/lib/transaction.js +211 -0
  49. package/dist/src/lib/transactionBuilderFactory.d.ts +59 -1
  50. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  51. package/dist/src/lib/transactionBuilderFactory.js +288 -8
  52. package/dist/src/lib/transferBuilder.d.ts +4 -2
  53. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  54. package/dist/src/lib/transferBuilder.js +12 -5
  55. package/dist/src/lib/txnSchema.d.ts +67 -0
  56. package/dist/src/lib/txnSchema.d.ts.map +1 -1
  57. package/dist/src/lib/txnSchema.js +231 -2
  58. package/dist/src/lib/unbondBuilder.d.ts +37 -0
  59. package/dist/src/lib/unbondBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/unbondBuilder.js +100 -0
  61. package/dist/src/lib/utils.d.ts +40 -0
  62. package/dist/src/lib/utils.d.ts.map +1 -1
  63. package/dist/src/lib/utils.js +94 -1
  64. package/dist/src/lib/v8BatchStakingBuilder.d.ts +85 -0
  65. package/dist/src/lib/v8BatchStakingBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/v8BatchStakingBuilder.js +266 -0
  67. package/dist/src/lib/v8BatchUnstakingBuilder.d.ts +11 -0
  68. package/dist/src/lib/v8BatchUnstakingBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/v8BatchUnstakingBuilder.js +21 -0
  70. package/dist/src/lib/v8BondExtraBuilder.d.ts +11 -0
  71. package/dist/src/lib/v8BondExtraBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/v8BondExtraBuilder.js +21 -0
  73. package/dist/src/lib/v8HexTokenTransferBuilder.d.ts +20 -0
  74. package/dist/src/lib/v8HexTokenTransferBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/v8HexTokenTransferBuilder.js +42 -0
  76. package/dist/src/lib/v8HexTransferBuilder.d.ts +11 -0
  77. package/dist/src/lib/v8HexTransferBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/v8HexTransferBuilder.js +21 -0
  79. package/dist/src/lib/v8NominateBuilder.d.ts +11 -0
  80. package/dist/src/lib/v8NominateBuilder.d.ts.map +1 -0
  81. package/dist/src/lib/v8NominateBuilder.js +21 -0
  82. package/dist/src/lib/v8PreApproveAssetBuilder.d.ts +11 -0
  83. package/dist/src/lib/v8PreApproveAssetBuilder.d.ts.map +1 -0
  84. package/dist/src/lib/v8PreApproveAssetBuilder.js +21 -0
  85. package/dist/src/lib/v8RegisterDidBuilder.d.ts +47 -0
  86. package/dist/src/lib/v8RegisterDidBuilder.d.ts.map +1 -0
  87. package/dist/src/lib/v8RegisterDidBuilder.js +96 -0
  88. package/dist/src/lib/v8RegisterDidWithCDDBuilder.d.ts +11 -0
  89. package/dist/src/lib/v8RegisterDidWithCDDBuilder.d.ts.map +1 -0
  90. package/dist/src/lib/v8RegisterDidWithCDDBuilder.js +21 -0
  91. package/dist/src/lib/v8TokenTransferBuilder.d.ts +24 -0
  92. package/dist/src/lib/v8TokenTransferBuilder.d.ts.map +1 -0
  93. package/dist/src/lib/v8TokenTransferBuilder.js +101 -0
  94. package/dist/src/lib/v8TransferBuilder.d.ts +11 -0
  95. package/dist/src/lib/v8TransferBuilder.d.ts.map +1 -0
  96. package/dist/src/lib/v8TransferBuilder.js +21 -0
  97. package/dist/src/lib/v8UnbondBuilder.d.ts +11 -0
  98. package/dist/src/lib/v8UnbondBuilder.d.ts.map +1 -0
  99. package/dist/src/lib/v8UnbondBuilder.js +21 -0
  100. package/dist/src/lib/v8WithdrawUnbondedBuilder.d.ts +11 -0
  101. package/dist/src/lib/v8WithdrawUnbondedBuilder.d.ts.map +1 -0
  102. package/dist/src/lib/v8WithdrawUnbondedBuilder.js +21 -0
  103. package/dist/src/lib/withdrawUnbondedBuilder.d.ts +35 -0
  104. package/dist/src/lib/withdrawUnbondedBuilder.d.ts.map +1 -0
  105. package/dist/src/lib/withdrawUnbondedBuilder.js +91 -0
  106. package/dist/src/polyx.d.ts +51 -9
  107. package/dist/src/polyx.d.ts.map +1 -1
  108. package/dist/src/polyx.js +272 -15
  109. package/dist/src/polyxToken.d.ts +20 -0
  110. package/dist/src/polyxToken.d.ts.map +1 -0
  111. package/dist/src/polyxToken.js +55 -0
  112. package/dist/src/register.d.ts.map +1 -1
  113. package/dist/src/register.js +5 -1
  114. package/dist/src/resources/index.d.ts +2 -0
  115. package/dist/src/resources/index.d.ts.map +1 -1
  116. package/dist/src/resources/index.js +3 -1
  117. package/dist/src/resources/mainnetV8.d.ts +13 -0
  118. package/dist/src/resources/mainnetV8.d.ts.map +1 -0
  119. package/dist/src/resources/mainnetV8.js +24 -0
  120. package/dist/src/resources/testnetV8.d.ts +13 -0
  121. package/dist/src/resources/testnetV8.d.ts.map +1 -0
  122. package/dist/src/resources/testnetV8.js +16 -0
  123. package/dist/src/tpolyx.d.ts +7 -0
  124. package/dist/src/tpolyx.d.ts.map +1 -1
  125. package/dist/src/tpolyx.js +11 -1
  126. package/dist/test/integration/index.d.ts +1 -0
  127. package/dist/test/integration/index.d.ts.map +1 -0
  128. package/dist/test/integration/index.js +1 -0
  129. package/dist/test/resources/index.d.ts +139 -0
  130. package/dist/test/resources/index.d.ts.map +1 -0
  131. package/dist/test/resources/index.js +150 -0
  132. package/dist/test/resources/mainnet.d.ts +2 -0
  133. package/dist/test/resources/mainnet.d.ts.map +1 -0
  134. package/dist/test/resources/mainnet.js +5 -0
  135. package/dist/test/resources/materialData.json +8 -0
  136. package/dist/test/resources/materialDataModified.json +8 -0
  137. package/dist/test/resources/testnet.d.ts +2 -0
  138. package/dist/test/resources/testnet.d.ts.map +1 -0
  139. package/dist/test/resources/testnet.js +5 -0
  140. package/dist/test/resources/wrwUsers.d.ts +19 -0
  141. package/dist/test/resources/wrwUsers.d.ts.map +1 -0
  142. package/dist/test/resources/wrwUsers.js +60 -0
  143. package/dist/test/unit/polyx.d.ts +2 -0
  144. package/dist/test/unit/polyx.d.ts.map +1 -0
  145. package/dist/test/unit/polyx.js +356 -0
  146. package/dist/test/unit/transactionBuilder/base.d.ts +4 -0
  147. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  148. package/dist/test/unit/transactionBuilder/base.js +245 -0
  149. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts +2 -0
  150. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts.map +1 -0
  151. package/dist/test/unit/transactionBuilder/batchStakingBuilder.js +309 -0
  152. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts +2 -0
  153. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts.map +1 -0
  154. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.js +159 -0
  155. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts +2 -0
  156. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts.map +1 -0
  157. package/dist/test/unit/transactionBuilder/bondExtraBuilder.js +158 -0
  158. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts +2 -0
  159. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts.map +1 -0
  160. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.js +261 -0
  161. package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts +2 -0
  162. package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts.map +1 -0
  163. package/dist/test/unit/transactionBuilder/hexTransferBuilder.js +389 -0
  164. package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts +2 -0
  165. package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts.map +1 -0
  166. package/dist/test/unit/transactionBuilder/nominateBuilder.js +226 -0
  167. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts +2 -0
  168. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts.map +1 -0
  169. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.js +115 -0
  170. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts +2 -0
  171. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts.map +1 -0
  172. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.js +302 -0
  173. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts +2 -0
  174. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts.map +1 -0
  175. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.js +128 -0
  176. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts +2 -0
  177. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts.map +1 -0
  178. package/dist/test/unit/transactionBuilder/singletonRegistry.js +59 -0
  179. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  180. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  181. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +140 -0
  182. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  183. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  184. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +240 -0
  185. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  186. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  187. package/dist/test/unit/transactionBuilder/transferBuilder.js +326 -0
  188. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts +2 -0
  189. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts.map +1 -0
  190. package/dist/test/unit/transactionBuilder/unbondBuilder.js +144 -0
  191. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.d.ts +2 -0
  192. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.d.ts.map +1 -0
  193. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.js +252 -0
  194. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.d.ts +2 -0
  195. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.d.ts.map +1 -0
  196. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.js +90 -0
  197. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.d.ts +2 -0
  198. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.d.ts.map +1 -0
  199. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.js +62 -0
  200. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.d.ts +2 -0
  201. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.d.ts.map +1 -0
  202. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.js +45 -0
  203. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.d.ts +2 -0
  204. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.d.ts.map +1 -0
  205. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.js +87 -0
  206. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.d.ts +2 -0
  207. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.d.ts.map +1 -0
  208. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.js +45 -0
  209. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.d.ts +2 -0
  210. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.d.ts.map +1 -0
  211. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.js +114 -0
  212. package/dist/test/unit/transactionBuilder/v8TransferBuilder.d.ts +2 -0
  213. package/dist/test/unit/transactionBuilder/v8TransferBuilder.d.ts.map +1 -0
  214. package/dist/test/unit/transactionBuilder/v8TransferBuilder.js +107 -0
  215. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts +2 -0
  216. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts.map +1 -0
  217. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.js +138 -0
  218. package/dist/test/unit/utils.d.ts +2 -0
  219. package/dist/test/unit/utils.d.ts.map +1 -0
  220. package/dist/test/unit/utils.js +143 -0
  221. package/dist/tsconfig.tsbuildinfo +1 -0
  222. package/package.json +15 -9
  223. package/.eslintignore +0 -4
  224. package/.mocharc.yml +0 -8
  225. package/CHANGELOG.md +0 -22
@@ -0,0 +1,85 @@
1
+ import { Transaction } from './transaction';
2
+ import { PolyxBaseBuilder } from './baseBuilder';
3
+ import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import { TransactionType } from '@bitgo-beta/sdk-core';
6
+ import { NominateArgs, V8BondArgs } from './iface';
7
+ /**
8
+ * Polymesh v8 batch staking builder.
9
+ *
10
+ * Polymesh v8 changed `staking.bond` from `bond(controller, value, payee)` to `bond(value, payee)`
11
+ * — the stash account is its own controller, so no `controller` leg is encoded. This builder
12
+ * constructs `utility.batchAll([bond, nominate])` with the 2-arg bond call against v8 chain
13
+ * metadata (v8 specVersion / txVersion).
14
+ *
15
+ * Behaviour is otherwise identical to the v7 {@link BatchStakingBuilder}, which is retained as the
16
+ * `[CLEANUP-V8-OLD]` rollback path.
17
+ */
18
+ export declare class V8BatchStakingBuilder extends PolyxBaseBuilder {
19
+ protected _amount: string;
20
+ protected _payee: string | {
21
+ Account: string;
22
+ };
23
+ protected _validators: string[];
24
+ constructor(_coinConfig: Readonly<CoinConfig>);
25
+ protected get transactionType(): TransactionType;
26
+ /**
27
+ * Build a batch transaction that combines bond and nominate operations
28
+ * Both operations are required and always atomic (using batchAll)
29
+ */
30
+ protected buildTransaction(): UnsignedTransaction;
31
+ /**
32
+ * Set the staking amount for bond
33
+ */
34
+ amount(amount: string): this;
35
+ /**
36
+ * Get the staking amount
37
+ */
38
+ getAmount(): string;
39
+ /**
40
+ * Set the rewards destination for bond ('Staked', 'Stash','Controller', or { Account: string })
41
+ */
42
+ payee(payee: string | {
43
+ Account: string;
44
+ }): this;
45
+ /**
46
+ * Get the payee
47
+ */
48
+ getPayee(): string | {
49
+ Account: string;
50
+ };
51
+ /**
52
+ * Set the validators to nominate
53
+ */
54
+ validators(validators: string[]): this;
55
+ /**
56
+ * Get the validators to nominate
57
+ */
58
+ getValidators(): string[];
59
+ /** @inheritdoc */
60
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
61
+ /**
62
+ * Normalize a decoded payee value into the construction-side shape.
63
+ */
64
+ private normalizePayee;
65
+ /**
66
+ * Validate v8 bond arguments (no controller)
67
+ */
68
+ private validateBondArgs;
69
+ /**
70
+ * Validate nominate arguments
71
+ */
72
+ private validateNominateArgs;
73
+ /** @inheritdoc */
74
+ protected fromImplementation(rawTransaction: string): Transaction;
75
+ /** @inheritdoc */
76
+ validateTransaction(tx: Transaction): void;
77
+ /**
78
+ * Validate the builder fields
79
+ */
80
+ private validateFields;
81
+ testValidateFields(): void;
82
+ testValidateBondArgs(args: V8BondArgs): void;
83
+ testValidateNominateArgs(args: NominateArgs): void;
84
+ }
85
+ //# sourceMappingURL=v8BatchStakingBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8BatchStakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8BatchStakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EAAa,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAc9D;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IAEzD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAG/C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IA0CjD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKhD;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIxC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAQtC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IA0CrF;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IA0CjE,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAK1C;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB,kBAAkB,IAAI,IAAI;IAInB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI5C,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAG1D"}
@@ -0,0 +1,266 @@
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.V8BatchStakingBuilder = void 0;
7
+ const baseBuilder_1 = require("./baseBuilder");
8
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
9
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
+ const txnSchema_1 = require("./txnSchema");
11
+ const utils_1 = __importDefault(require("./utils"));
12
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
13
+ /**
14
+ * Polymesh v8 batch staking builder.
15
+ *
16
+ * Polymesh v8 changed `staking.bond` from `bond(controller, value, payee)` to `bond(value, payee)`
17
+ * — the stash account is its own controller, so no `controller` leg is encoded. This builder
18
+ * constructs `utility.batchAll([bond, nominate])` with the 2-arg bond call against v8 chain
19
+ * metadata (v8 specVersion / txVersion).
20
+ *
21
+ * Behaviour is otherwise identical to the v7 {@link BatchStakingBuilder}, which is retained as the
22
+ * `[CLEANUP-V8-OLD]` rollback path.
23
+ */
24
+ class V8BatchStakingBuilder extends baseBuilder_1.PolyxBaseBuilder {
25
+ constructor(_coinConfig) {
26
+ super(_coinConfig);
27
+ // For nominate operation
28
+ this._validators = [];
29
+ this.material(utils_1.default.getV8Material(_coinConfig.network.type));
30
+ }
31
+ get transactionType() {
32
+ return sdk_core_1.TransactionType.Batch;
33
+ }
34
+ /**
35
+ * Build a batch transaction that combines bond and nominate operations
36
+ * Both operations are required and always atomic (using batchAll)
37
+ */
38
+ buildTransaction() {
39
+ // Ensure both bond and nominate operations are included
40
+ if (!this._amount || this._validators.length === 0) {
41
+ throw new sdk_core_1.InvalidTransactionError('Batch transaction must include both bond and nominate operations');
42
+ }
43
+ const baseTxInfo = this.createBaseTxInfo();
44
+ // Create the individual calls
45
+ const calls = [];
46
+ // Add bond call — v8 bond takes only { value, payee } (no controller)
47
+ const bondCall = txwrapper_polkadot_1.methods.staking.bond({
48
+ value: this._amount,
49
+ payee: this._payee || 'Staked',
50
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
51
+ calls.push(bondCall.method);
52
+ // Add nominate call
53
+ const nominateCall = txwrapper_polkadot_1.methods.staking.nominate({
54
+ targets: this._validators,
55
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
56
+ calls.push(nominateCall.method);
57
+ // Always use batchAll (atomic)
58
+ return txwrapper_polkadot_1.methods.utility.batchAll({
59
+ calls,
60
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
61
+ }
62
+ /**
63
+ * Set the staking amount for bond
64
+ */
65
+ amount(amount) {
66
+ this.validateValue(new bignumber_js_1.default(amount));
67
+ this._amount = amount;
68
+ return this;
69
+ }
70
+ /**
71
+ * Get the staking amount
72
+ */
73
+ getAmount() {
74
+ return this._amount;
75
+ }
76
+ /**
77
+ * Set the rewards destination for bond ('Staked', 'Stash','Controller', or { Account: string })
78
+ */
79
+ payee(payee) {
80
+ this._payee = payee;
81
+ return this;
82
+ }
83
+ /**
84
+ * Get the payee
85
+ */
86
+ getPayee() {
87
+ return this._payee;
88
+ }
89
+ /**
90
+ * Set the validators to nominate
91
+ */
92
+ validators(validators) {
93
+ for (const address of validators) {
94
+ this.validateAddress({ address });
95
+ }
96
+ this._validators = validators;
97
+ return this;
98
+ }
99
+ /**
100
+ * Get the validators to nominate
101
+ */
102
+ getValidators() {
103
+ return this._validators;
104
+ }
105
+ /** @inheritdoc */
106
+ validateDecodedTransaction(decodedTxn) {
107
+ const methodName = decodedTxn.method?.name;
108
+ // batch bond and nominate
109
+ if (methodName === 'batchAll') {
110
+ const txMethod = decodedTxn.method.args;
111
+ const calls = txMethod.calls;
112
+ if (calls.length !== 2) {
113
+ throw new sdk_core_1.InvalidTransactionError(`Invalid batch staking transaction: expected 2 calls but got ${calls.length}`);
114
+ }
115
+ // Check that first call is bond
116
+ const firstCallMethod = utils_1.default.decodeMethodName(calls[0], this._registry);
117
+ if (firstCallMethod !== 'bond') {
118
+ throw new sdk_core_1.InvalidTransactionError(`Invalid batch staking transaction: first call should be bond but got ${firstCallMethod}`);
119
+ }
120
+ // Check that second call is nominate
121
+ const secondCallMethod = utils_1.default.decodeMethodName(calls[1], this._registry);
122
+ if (secondCallMethod !== 'nominate') {
123
+ throw new sdk_core_1.InvalidTransactionError(`Invalid batch staking transaction: second call should be nominate but got ${secondCallMethod}`);
124
+ }
125
+ // Validate bond arguments
126
+ const bondArgs = calls[0].args;
127
+ this.validateBondArgs(bondArgs);
128
+ // Validate nominate arguments
129
+ const nominateArgs = calls[1].args;
130
+ this.validateNominateArgs(nominateArgs);
131
+ }
132
+ else {
133
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction type: ${methodName}`);
134
+ }
135
+ }
136
+ /**
137
+ * Normalize a decoded payee value into the construction-side shape.
138
+ */
139
+ normalizePayee(payeeValue) {
140
+ let normalizedPayee = payeeValue;
141
+ if (typeof payeeValue === 'object' && payeeValue !== null) {
142
+ const decodedPayee = payeeValue;
143
+ if (decodedPayee.staked !== undefined) {
144
+ normalizedPayee = 'Staked';
145
+ }
146
+ else if (decodedPayee.stash !== undefined) {
147
+ normalizedPayee = 'Stash';
148
+ }
149
+ else if (decodedPayee.controller !== undefined) {
150
+ normalizedPayee = 'Controller';
151
+ }
152
+ else if (decodedPayee.account) {
153
+ normalizedPayee = { Account: decodedPayee.account };
154
+ }
155
+ }
156
+ return normalizedPayee;
157
+ }
158
+ /**
159
+ * Validate v8 bond arguments (no controller)
160
+ */
161
+ validateBondArgs(args) {
162
+ // Handle both string and number formats for value
163
+ const amountValue = args.value;
164
+ const valueString = typeof amountValue === 'string' ? amountValue : amountValue.toString();
165
+ const normalizedPayee = this.normalizePayee(args.payee);
166
+ const validationResult = txnSchema_1.V8BatchTransactionSchema.validateBond({
167
+ value: valueString,
168
+ payee: normalizedPayee,
169
+ });
170
+ if (validationResult.error) {
171
+ throw new sdk_core_1.InvalidTransactionError(`Invalid bond args: ${validationResult.error.message}`);
172
+ }
173
+ }
174
+ /**
175
+ * Validate nominate arguments
176
+ */
177
+ validateNominateArgs(args) {
178
+ // Handle both string and object formats for targets
179
+ const targetAddresses = args.targets.map((target) => {
180
+ if (typeof target === 'string') {
181
+ return target;
182
+ }
183
+ else if (target && typeof target === 'object' && 'id' in target) {
184
+ return target.id;
185
+ }
186
+ throw new sdk_core_1.InvalidTransactionError(`Invalid target format: ${JSON.stringify(target)}`);
187
+ });
188
+ const validationResult = txnSchema_1.V8BatchTransactionSchema.validateNominate({
189
+ validators: targetAddresses,
190
+ });
191
+ if (validationResult.error) {
192
+ throw new sdk_core_1.InvalidTransactionError(`Invalid nominate args: ${validationResult.error.message}`);
193
+ }
194
+ }
195
+ /** @inheritdoc */
196
+ fromImplementation(rawTransaction) {
197
+ const tx = super.fromImplementation(rawTransaction);
198
+ // Check if the transaction is a batch transaction
199
+ if (this._method?.name !== 'batchAll') {
200
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected batchAll`);
201
+ }
202
+ if (this._method) {
203
+ const txMethod = this._method.args;
204
+ for (const call of txMethod.calls) {
205
+ const callMethod = utils_1.default.decodeMethodName(call, this._registry);
206
+ if (callMethod === 'bond') {
207
+ const bondArgs = call.args;
208
+ // Handle both string and number formats for value
209
+ const amountValue = bondArgs.value;
210
+ const valueString = typeof amountValue === 'string' ? amountValue : amountValue.toString();
211
+ this.amount(valueString);
212
+ // Handle different payee formats
213
+ this.payee(this.normalizePayee(bondArgs.payee));
214
+ }
215
+ else if (callMethod === 'nominate') {
216
+ const nominateArgs = call.args;
217
+ // Handle both string and object formats for targets
218
+ const targetAddresses = nominateArgs.targets.map((target) => {
219
+ if (typeof target === 'string') {
220
+ return target;
221
+ }
222
+ else if (target && typeof target === 'object' && 'id' in target) {
223
+ return target.id;
224
+ }
225
+ throw new sdk_core_1.InvalidTransactionError(`Invalid target format: ${JSON.stringify(target)}`);
226
+ });
227
+ this.validators(targetAddresses);
228
+ }
229
+ }
230
+ }
231
+ return tx;
232
+ }
233
+ /** @inheritdoc */
234
+ validateTransaction(tx) {
235
+ super.validateTransaction(tx);
236
+ this.validateFields();
237
+ }
238
+ /**
239
+ * Validate the builder fields
240
+ */
241
+ validateFields() {
242
+ // Ensure both bond and nominate operations are included
243
+ if (!this._amount || this._validators.length === 0) {
244
+ throw new sdk_core_1.InvalidTransactionError('Batch transaction must include both bond and nominate operations');
245
+ }
246
+ const validationResult = txnSchema_1.V8BatchTransactionSchema.validate({
247
+ amount: this._amount,
248
+ payee: this._payee,
249
+ validators: this._validators,
250
+ });
251
+ if (validationResult.error) {
252
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: ${validationResult.error.message}`);
253
+ }
254
+ }
255
+ testValidateFields() {
256
+ this.validateFields();
257
+ }
258
+ testValidateBondArgs(args) {
259
+ return this.validateBondArgs(args);
260
+ }
261
+ testValidateNominateArgs(args) {
262
+ return this.validateNominateArgs(args);
263
+ }
264
+ }
265
+ exports.V8BatchStakingBuilder = V8BatchStakingBuilder;
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhCYXRjaFN0YWtpbmdCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92OEJhdGNoU3Rha2luZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsK0NBQWlEO0FBRWpELHNFQUF3RDtBQUV4RCxtREFBZ0Y7QUFDaEYsMkNBQXVEO0FBQ3ZELG9EQUE0QjtBQUU1QixnRUFBcUM7QUFhckM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEscUJBQXNCLFNBQVEsOEJBQWdCO0lBUXpELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSnJCLHlCQUF5QjtRQUNmLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBSW5DLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDTyxnQkFBZ0I7UUFDeEIsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUzQyw4QkFBOEI7UUFDOUIsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBRTNCLHNFQUFzRTtRQUN0RSxNQUFNLFFBQVEsR0FBRyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ25DO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLEtBQUssRUFBRSxJQUFJLENB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LENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLGtDQUF1QixDQUFDLGtFQUFrRSxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsb0NBQXdCLENBQUMsUUFBUSxDQUFDO1lBQ3pELE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzdCLENBQUMsQ0FBQztRQUVILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQWdCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxJQUFrQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUExU0Qsc0RBMFNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBvbHl4QmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VCdWlsZGVyJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBtZXRob2RzIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFY4QmF0Y2hUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJhdGNoQXJncywgTm9taW5hdGVBcmdzLCBWOEJvbmRBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMgZm9yIGRlY29kZWQgdHJhbnNhY3Rpb24gZm9ybWF0c1xuaW50ZXJmYWNlIERlY29kZWRQYXllZSB7XG4gIHN0YWtlZD86IG51bGw7XG4gIHN0YXNoPzogbnVsbDtcbiAgY29udHJvbGxlcj86IG51bGw7XG4gIGFjY291bnQ/OiBzdHJpbmc7XG59XG5cbnR5cGUgUGF5ZWVWYWx1ZSA9IHN0cmluZyB8IERlY29kZWRQYXllZTtcbnR5cGUgQW1vdW50VmFsdWUgPSBzdHJpbmcgfCBudW1iZXI7XG5cbi8qKlxuICogUG9seW1lc2ggdjggYmF0Y2ggc3Rha2luZyBidWlsZGVyLlxuICpcbiAqIFBvbHltZXNoIHY4IGNoYW5nZWQgYHN0YWtpbmcuYm9uZGAgZnJvbSBgYm9uZChjb250cm9sbGVyLCB2YWx1ZSwgcGF5ZWUpYCB0byBgYm9uZCh2YWx1ZSwgcGF5ZWUpYFxuICog4oCUIHRoZSBzdGFzaCBhY2NvdW50IGlzIGl0cyBvd24gY29udHJvbGxlciwgc28gbm8gYGNvbnRyb2xsZXJgIGxlZyBpcyBlbmNvZGVkLiBUaGlzIGJ1aWxkZXJcbiAqIGNvbnN0cnVjdHMgYHV0aWxpdHkuYmF0Y2hBbGwoW2JvbmQsIG5vbWluYXRlXSlgIHdpdGggdGhlIDItYXJnIGJvbmQgY2FsbCBhZ2FpbnN0IHY4IGNoYWluXG4gKiBtZXRhZGF0YSAodjggc3BlY1ZlcnNpb24gLyB0eFZlcnNpb24pLlxuICpcbiAqIEJlaGF2aW91ciBpcyBvdGhlcndpc2UgaWRlbnRpY2FsIHRvIHRoZSB2NyB7QGxpbmsgQmF0Y2hTdGFraW5nQnVpbGRlcn0sIHdoaWNoIGlzIHJldGFpbmVkIGFzIHRoZVxuICogYFtDTEVBTlVQLVY4LU9MRF1gIHJvbGxiYWNrIHBhdGguXG4gKi9cbmV4cG9ydCBjbGFzcyBWOEJhdGNoU3Rha2luZ0J1aWxkZXIgZXh0ZW5kcyBQb2x5eEJhc2VCdWlsZGVyIHtcbiAgLy8gRm9yIGJvbmQgb3BlcmF0aW9uXG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG5cbiAgLy8gRm9yIG5vbWluYXRlIG9wZXJhdGlvblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0VjhNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5CYXRjaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGJhdGNoIHRyYW5zYWN0aW9uIHRoYXQgY29tYmluZXMgYm9uZCBhbmQgbm9taW5hdGUgb3BlcmF0aW9uc1xuICAgKiBCb3RoIG9wZXJhdGlvbnMgYXJlIHJlcXVpcmVkIGFuZCBhbHdheXMgYXRvbWljICh1c2luZyBiYXRjaEFsbClcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIC8vIEVuc3VyZSBib3RoIGJvbmQgYW5kIG5vbWluYXRlIG9wZXJhdGlvbnMgYXJlIGluY2x1ZGVkXG4gICAgaWYgKCF0aGlzLl9hbW91bnQgfHwgdGhpcy5fdmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQmF0Y2ggdHJhbnNhY3Rpb24gbXVzdCBpbmNsdWRlIGJvdGggYm9uZCBhbmQgbm9taW5hdGUgb3BlcmF0aW9ucycpO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgaW5kaXZpZHVhbCBjYWxsc1xuICAgIGNvbnN0IGNhbGxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gQWRkIGJvbmQgY2FsbCDigJQgdjggYm9uZCB0YWtlcyBvbmx5IHsgdmFsdWUsIHBheWVlIH0gKG5vIGNvbnRyb2xsZXIpXG4gICAgY29uc3QgYm9uZENhbGwgPSBtZXRob2RzLnN0YWtpbmcuYm9uZChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgcGF5ZWU6IHRoaXMuX3BheWVlIHx8ICdTdGFrZWQnLFxuICAgICAgfSBhcyB1bmtub3duIGFzIHsgY29udHJvbGxlcjogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBwYXllZTogc3RyaW5nIHwgeyBBY2NvdW50OiBzdHJpbmcgfSB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgICBjYWxscy5wdXNoKGJvbmRDYWxsLm1ldGhvZCk7XG5cbiAgICAvLyBBZGQgbm9taW5hdGUgY2FsbFxuICAgIGNvbnN0IG5vbWluYXRlQ2FsbCA9IG1ldGhvZHMuc3Rha2luZy5ub21pbmF0ZShcbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0czogdGhpcy5fdmFsaWRhdG9ycyxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICAgIGNhbGxzLnB1c2gobm9taW5hdGVDYWxsLm1ldGhvZCk7XG5cbiAgICAvLyBBbHdheXMgdXNlIGJhdGNoQWxsIChhdG9taWMpXG4gICAgcmV0dXJuIG1ldGhvZHMudXRpbGl0eS5iYXRjaEFsbChcbiAgICAgIHtcbiAgICAgICAgY2FsbHMsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHN0YWtpbmcgYW1vdW50IGZvciBib25kXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihhbW91bnQpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzdGFraW5nIGFtb3VudFxuICAgKi9cbiAgZ2V0QW1vdW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Ftb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJld2FyZHMgZGVzdGluYXRpb24gZm9yIGJvbmQgKCdTdGFrZWQnLCAnU3Rhc2gnLCdDb250cm9sbGVyJywgb3IgeyBBY2NvdW50OiBzdHJpbmcgfSlcbiAgICovXG4gIHBheWVlKHBheWVlOiBzdHJpbmcgfCB7IEFjY291bnQ6IHN0cmluZyB9KTogdGhpcyB7XG4gICAgdGhpcy5fcGF5ZWUgPSBwYXllZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBheWVlXG4gICAqL1xuICBnZXRQYXllZSgpOiBzdHJpbmcgfCB7IEFjY291bnQ6IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5fcGF5ZWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2YWxpZGF0b3JzIHRvIG5vbWluYXRlXG4gICAqL1xuICB2YWxpZGF0b3JzKHZhbGlkYXRvcnM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIHZhbGlkYXRvcnMpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB9XG4gICAgdGhpcy5fdmFsaWRhdG9ycyA9IHZhbGlkYXRvcnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWxpZGF0b3JzIHRvIG5vbWluYXRlXG4gICAqL1xuICBnZXRWYWxpZGF0b3JzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdG9ycztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWUgYXMgc3RyaW5nO1xuXG4gICAgLy8gYmF0Y2ggYm9uZCBhbmQgbm9taW5hdGVcbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ2JhdGNoQWxsJykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgQmF0Y2hBcmdzO1xuICAgICAgY29uc3QgY2FsbHMgPSB0eE1ldGhvZC5jYWxscztcblxuICAgICAgaWYgKGNhbGxzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgYmF0Y2ggc3Rha2luZyB0cmFuc2FjdGlvbjogZXhwZWN0ZWQgMiBjYWxscyBidXQgZ290ICR7Y2FsbHMubGVuZ3RofWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgdGhhdCBmaXJzdCBjYWxsIGlzIGJvbmRcbiAgICAgIGNvbnN0IGZpcnN0Q2FsbE1ldGhvZCA9IHV0aWxzLmRlY29kZU1ldGhvZE5hbWUoY2FsbHNbMF0sIHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICAgIGlmIChmaXJzdENhbGxNZXRob2QgIT09ICdib25kJykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgYmF0Y2ggc3Rha2luZyB0cmFuc2FjdGlvbjogZmlyc3QgY2FsbCBzaG91bGQgYmUgYm9uZCBidXQgZ290ICR7Zmlyc3RDYWxsTWV0aG9kfWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgdGhhdCBzZWNvbmQgY2FsbCBpcyBub21pbmF0ZVxuICAgICAgY29uc3Qgc2Vjb25kQ2FsbE1ldGhvZCA9IHV0aWxzLmRlY29kZU1ldGhvZE5hbWUoY2FsbHNbMV0sIHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICAgIGlmIChzZWNvbmRDYWxsTWV0aG9kICE9PSAnbm9taW5hdGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBiYXRjaCBzdGFraW5nIHRyYW5zYWN0aW9uOiBzZWNvbmQgY2FsbCBzaG91bGQgYmUgbm9taW5hdGUgYnV0IGdvdCAke3NlY29uZENhbGxNZXRob2R9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSBib25kIGFyZ3VtZW50c1xuICAgICAgY29uc3QgYm9uZEFyZ3MgPSBjYWxsc1swXS5hcmdzIGFzIHVua25vd24gYXMgVjhCb25kQXJncztcbiAgICAgIHRoaXMudmFsaWRhdGVCb25kQXJncyhib25kQXJncyk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIG5vbWluYXRlIGFyZ3VtZW50c1xuICAgICAgY29uc3Qgbm9taW5hdGVBcmdzID0gY2FsbHNbMV0uYXJncyBhcyB1bmtub3duIGFzIE5vbWluYXRlQXJncztcbiAgICAgIHRoaXMudmFsaWRhdGVOb21pbmF0ZUFyZ3Mobm9taW5hdGVBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGU6ICR7bWV0aG9kTmFtZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplIGEgZGVjb2RlZCBwYXllZSB2YWx1ZSBpbnRvIHRoZSBjb25zdHJ1Y3Rpb24tc2lkZSBzaGFwZS5cbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplUGF5ZWUocGF5ZWVWYWx1ZTogUGF5ZWVWYWx1ZSk6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH0ge1xuICAgIGxldCBub3JtYWxpemVkUGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH0gPSBwYXllZVZhbHVlIGFzIHN0cmluZztcbiAgICBpZiAodHlwZW9mIHBheWVlVmFsdWUgPT09ICdvYmplY3QnICYmIHBheWVlVmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlY29kZWRQYXllZSA9IHBheWVlVmFsdWUgYXMgRGVjb2RlZFBheWVlO1xuICAgICAgaWYgKGRlY29kZWRQYXllZS5zdGFrZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub3JtYWxpemVkUGF5ZWUgPSAnU3Rha2VkJztcbiAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZFBheWVlLnN0YXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbm9ybWFsaXplZFBheWVlID0gJ1N0YXNoJztcbiAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZFBheWVlLmNvbnRyb2xsZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub3JtYWxpemVkUGF5ZWUgPSAnQ29udHJvbGxlcic7XG4gICAgICB9IGVsc2UgaWYgKGRlY29kZWRQYXllZS5hY2NvdW50KSB7XG4gICAgICAgIG5vcm1hbGl6ZWRQYXllZSA9IHsgQWNjb3VudDogZGVjb2RlZFBheWVlLmFjY291bnQgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRQYXllZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB2OCBib25kIGFyZ3VtZW50cyAobm8gY29udHJvbGxlcilcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVCb25kQXJncyhhcmdzOiBWOEJvbmRBcmdzKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIGJvdGggc3RyaW5nIGFuZCBudW1iZXIgZm9ybWF0cyBmb3IgdmFsdWVcbiAgICBjb25zdCBhbW91bnRWYWx1ZSA9IGFyZ3MudmFsdWUgYXMgQW1vdW50VmFsdWU7XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB0eXBlb2YgYW1vdW50VmFsdWUgPT09ICdzdHJpbmcnID8gYW1vdW50VmFsdWUgOiBhbW91bnRWYWx1ZS50b1N0cmluZygpO1xuXG4gICAgY29uc3Qgbm9ybWFsaXplZFBheWVlID0gdGhpcy5ub3JtYWxpemVQYXllZShhcmdzLnBheWVlIGFzIFBheWVlVmFsdWUpO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFY4QmF0Y2hUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZUJvbmQoe1xuICAgICAgdmFsdWU6IHZhbHVlU3RyaW5nLFxuICAgICAgcGF5ZWU6IG5vcm1hbGl6ZWRQYXllZSxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgYm9uZCBhcmdzOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgbm9taW5hdGUgYXJndW1lbnRzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTm9taW5hdGVBcmdzKGFyZ3M6IE5vbWluYXRlQXJncyk6IHZvaWQge1xuICAgIC8vIEhhbmRsZSBib3RoIHN0cmluZyBhbmQgb2JqZWN0IGZvcm1hdHMgZm9yIHRhcmdldHNcbiAgICBjb25zdCB0YXJnZXRBZGRyZXNzZXMgPSBhcmdzLnRhcmdldHMubWFwKCh0YXJnZXQpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQgYXMgeyBpZDogc3RyaW5nIH0pLmlkO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRhcmdldCBmb3JtYXQ6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBWOEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGVOb21pbmF0ZSh7XG4gICAgICB2YWxpZGF0b3JzOiB0YXJnZXRBZGRyZXNzZXMsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIG5vbWluYXRlIGFyZ3M6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIGEgYmF0Y2ggdHJhbnNhY3Rpb25cbiAgICBpZiAoKHRoaXMuX21ldGhvZD8ubmFtZSBhcyBzdHJpbmcpICE9PSAnYmF0Y2hBbGwnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCBiYXRjaEFsbGApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9tZXRob2QpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBCYXRjaEFyZ3M7XG5cbiAgICAgIGZvciAoY29uc3QgY2FsbCBvZiB0eE1ldGhvZC5jYWxscykge1xuICAgICAgICBjb25zdCBjYWxsTWV0aG9kID0gdXRpbHMuZGVjb2RlTWV0aG9kTmFtZShjYWxsLCB0aGlzLl9yZWdpc3RyeSk7XG4gICAgICAgIGlmIChjYWxsTWV0aG9kID09PSAnYm9uZCcpIHtcbiAgICAgICAgICBjb25zdCBib25kQXJncyA9IGNhbGwuYXJncyBhcyB1bmtub3duIGFzIFY4Qm9uZEFyZ3M7XG4gICAgICAgICAgLy8gSGFuZGxlIGJvdGggc3RyaW5nIGFuZCBudW1iZXIgZm9ybWF0cyBmb3IgdmFsdWVcbiAgICAgICAgICBjb25zdCBhbW91bnRWYWx1ZSA9IGJvbmRBcmdzLnZhbHVlIGFzIEFtb3VudFZhbHVlO1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdHlwZW9mIGFtb3VudFZhbHVlID09PSAnc3RyaW5nJyA/IGFtb3VudFZhbHVlIDogYW1vdW50VmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICB0aGlzLmFtb3VudCh2YWx1ZVN0cmluZyk7XG5cbiAgICAgICAgICAvLyBIYW5kbGUgZGlmZmVyZW50IHBheWVlIGZvcm1hdHNcbiAgICAgICAgICB0aGlzLnBheWVlKHRoaXMubm9ybWFsaXplUGF5ZWUoYm9uZEFyZ3MucGF5ZWUgYXMgUGF5ZWVWYWx1ZSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGNhbGxNZXRob2QgPT09ICdub21pbmF0ZScpIHtcbiAgICAgICAgICBjb25zdCBub21pbmF0ZUFyZ3MgPSBjYWxsLmFyZ3MgYXMgdW5rbm93biBhcyBOb21pbmF0ZUFyZ3M7XG5cbiAgICAgICAgICAvLyBIYW5kbGUgYm90aCBzdHJpbmcgYW5kIG9iamVjdCBmb3JtYXRzIGZvciB0YXJnZXRzXG4gICAgICAgICAgY29uc3QgdGFyZ2V0QWRkcmVzc2VzID0gbm9taW5hdGVBcmdzLnRhcmdldHMubWFwKCh0YXJnZXQpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICh0YXJnZXQgYXMgeyBpZDogc3RyaW5nIH0pLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRhcmdldCBmb3JtYXQ6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRvcnModGFyZ2V0QWRkcmVzc2VzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHgpO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgYnVpbGRlciBmaWVsZHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIGJvdGggYm9uZCBhbmQgbm9taW5hdGUgb3BlcmF0aW9ucyBhcmUgaW5jbHVkZWRcbiAgICBpZiAoIXRoaXMuX2Ftb3VudCB8fCB0aGlzLl92YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdCYXRjaCB0cmFuc2FjdGlvbiBtdXN0IGluY2x1ZGUgYm90aCBib25kIGFuZCBub21pbmF0ZSBvcGVyYXRpb25zJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFY4QmF0Y2hUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgIHBheWVlOiB0aGlzLl9wYXllZSxcbiAgICAgIHZhbGlkYXRvcnM6IHRoaXMuX3ZhbGlkYXRvcnMsXG4gICAgfSk7XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zYWN0aW9uOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICB0ZXN0VmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcygpO1xuICB9XG5cbiAgcHVibGljIHRlc3RWYWxpZGF0ZUJvbmRBcmdzKGFyZ3M6IFY4Qm9uZEFyZ3MpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUJvbmRBcmdzKGFyZ3MpO1xuICB9XG5cbiAgcHVibGljIHRlc3RWYWxpZGF0ZU5vbWluYXRlQXJncyhhcmdzOiBOb21pbmF0ZUFyZ3MpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU5vbWluYXRlQXJncyhhcmdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BatchUnstakingBuilder } from './batchUnstakingBuilder';
3
+ /**
4
+ * Builds a `utility.batchAll([chill, unbond])` unstaking transaction against Polymesh v8 chain
5
+ * metadata. chill/unbond are unchanged between v7 and v8; only the material (specVersion /
6
+ * txVersion) differs from {@link BatchUnstakingBuilder}.
7
+ */
8
+ export declare class V8BatchUnstakingBuilder extends BatchUnstakingBuilder {
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ }
11
+ //# sourceMappingURL=v8BatchUnstakingBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8BatchUnstakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8BatchUnstakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,qBAAqB;gBACpD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI9C"}
@@ -0,0 +1,21 @@
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.V8BatchUnstakingBuilder = void 0;
7
+ const batchUnstakingBuilder_1 = require("./batchUnstakingBuilder");
8
+ const utils_1 = __importDefault(require("./utils"));
9
+ /**
10
+ * Builds a `utility.batchAll([chill, unbond])` unstaking transaction against Polymesh v8 chain
11
+ * metadata. chill/unbond are unchanged between v7 and v8; only the material (specVersion /
12
+ * txVersion) differs from {@link BatchUnstakingBuilder}.
13
+ */
14
+ class V8BatchUnstakingBuilder extends batchUnstakingBuilder_1.BatchUnstakingBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this.material(utils_1.default.getV8Material(_coinConfig.network.type));
18
+ }
19
+ }
20
+ exports.V8BatchUnstakingBuilder = V8BatchUnstakingBuilder;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhCYXRjaFVuc3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Y4QmF0Y2hVbnN0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1FQUFnRTtBQUNoRSxvREFBNEI7QUFFNUI7Ozs7R0FJRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsNkNBQXFCO0lBQ2hFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBTEQsMERBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL2JhdGNoVW5zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQnVpbGRzIGEgYHV0aWxpdHkuYmF0Y2hBbGwoW2NoaWxsLCB1bmJvbmRdKWAgdW5zdGFraW5nIHRyYW5zYWN0aW9uIGFnYWluc3QgUG9seW1lc2ggdjggY2hhaW5cbiAqIG1ldGFkYXRhLiBjaGlsbC91bmJvbmQgYXJlIHVuY2hhbmdlZCBiZXR3ZWVuIHY3IGFuZCB2ODsgb25seSB0aGUgbWF0ZXJpYWwgKHNwZWNWZXJzaW9uIC9cbiAqIHR4VmVyc2lvbikgZGlmZmVycyBmcm9tIHtAbGluayBCYXRjaFVuc3Rha2luZ0J1aWxkZXJ9LlxuICovXG5leHBvcnQgY2xhc3MgVjhCYXRjaFVuc3Rha2luZ0J1aWxkZXIgZXh0ZW5kcyBCYXRjaFVuc3Rha2luZ0J1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5tYXRlcmlhbCh1dGlscy5nZXRWOE1hdGVyaWFsKF9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BondExtraBuilder } from './bondExtraBuilder';
3
+ /**
4
+ * Builds a staking.bondExtra transaction against Polymesh v8 chain metadata. bondExtra is
5
+ * unchanged between v7 and v8 (`bondExtra(maxAdditional)`); only the material (specVersion /
6
+ * txVersion) differs from {@link BondExtraBuilder}.
7
+ */
8
+ export declare class V8BondExtraBuilder extends BondExtraBuilder {
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ }
11
+ //# sourceMappingURL=v8BondExtraBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8BondExtraBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8BondExtraBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAC1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI9C"}
@@ -0,0 +1,21 @@
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.V8BondExtraBuilder = void 0;
7
+ const bondExtraBuilder_1 = require("./bondExtraBuilder");
8
+ const utils_1 = __importDefault(require("./utils"));
9
+ /**
10
+ * Builds a staking.bondExtra transaction against Polymesh v8 chain metadata. bondExtra is
11
+ * unchanged between v7 and v8 (`bondExtra(maxAdditional)`); only the material (specVersion /
12
+ * txVersion) differs from {@link BondExtraBuilder}.
13
+ */
14
+ class V8BondExtraBuilder extends bondExtraBuilder_1.BondExtraBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this.material(utils_1.default.getV8Material(_coinConfig.network.type));
18
+ }
19
+ }
20
+ exports.V8BondExtraBuilder = V8BondExtraBuilder;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhCb25kRXh0cmFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92OEJvbmRFeHRyYUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EseURBQXNEO0FBQ3RELG9EQUE0QjtBQUU1Qjs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxtQ0FBZ0I7SUFDdEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFMRCxnREFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJvbmRFeHRyYUJ1aWxkZXIgfSBmcm9tICcuL2JvbmRFeHRyYUJ1aWxkZXInO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEJ1aWxkcyBhIHN0YWtpbmcuYm9uZEV4dHJhIHRyYW5zYWN0aW9uIGFnYWluc3QgUG9seW1lc2ggdjggY2hhaW4gbWV0YWRhdGEuIGJvbmRFeHRyYSBpc1xuICogdW5jaGFuZ2VkIGJldHdlZW4gdjcgYW5kIHY4IChgYm9uZEV4dHJhKG1heEFkZGl0aW9uYWwpYCk7IG9ubHkgdGhlIG1hdGVyaWFsIChzcGVjVmVyc2lvbiAvXG4gKiB0eFZlcnNpb24pIGRpZmZlcnMgZnJvbSB7QGxpbmsgQm9uZEV4dHJhQnVpbGRlcn0uXG4gKi9cbmV4cG9ydCBjbGFzcyBWOEJvbmRFeHRyYUJ1aWxkZXIgZXh0ZW5kcyBCb25kRXh0cmFCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0VjhNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { V8TokenTransferBuilder } from './v8TokenTransferBuilder';
3
+ /**
4
+ * Builds a Polymesh settlement.addAndAffirmWithMediators transaction using the NEW
5
+ * (hex) memo encoding against Polymesh v8 chain metadata, with AssetHolder-wrapped
6
+ * legs/holderSet (see V8TokenTransferBuilder). Identical to V8TokenTransferBuilder;
7
+ * only the memo encoding differs.
8
+ */
9
+ export declare class V8HexTokenTransferBuilder extends V8TokenTransferBuilder {
10
+ constructor(_coinConfig: Readonly<CoinConfig>);
11
+ /**
12
+ * Encode memo using the NEW Polymesh format.
13
+ *
14
+ * If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
15
+ * existing NEW-encoded transaction via fromImplementation), it is stored as-is.
16
+ * Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
17
+ */
18
+ memo(memo: string): this;
19
+ }
20
+ //# sourceMappingURL=v8HexTokenTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8HexTokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8HexTokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,sBAAsB;gBACvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAWzB"}
@@ -0,0 +1,42 @@
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.V8HexTokenTransferBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const v8TokenTransferBuilder_1 = require("./v8TokenTransferBuilder");
9
+ const constants_1 = require("./constants");
10
+ const utils_1 = __importDefault(require("./utils"));
11
+ /**
12
+ * Builds a Polymesh settlement.addAndAffirmWithMediators transaction using the NEW
13
+ * (hex) memo encoding against Polymesh v8 chain metadata, with AssetHolder-wrapped
14
+ * legs/holderSet (see V8TokenTransferBuilder). Identical to V8TokenTransferBuilder;
15
+ * only the memo encoding differs.
16
+ */
17
+ class V8HexTokenTransferBuilder extends v8TokenTransferBuilder_1.V8TokenTransferBuilder {
18
+ constructor(_coinConfig) {
19
+ super(_coinConfig);
20
+ }
21
+ /**
22
+ * Encode memo using the NEW Polymesh format.
23
+ *
24
+ * If the value is already a 0x-prefixed 32-byte hex string (e.g. when decoding an
25
+ * existing NEW-encoded transaction via fromImplementation), it is stored as-is.
26
+ * Otherwise the text is converted to UTF-8 hex and right-padded with 0x00 to 32 bytes.
27
+ */
28
+ memo(memo) {
29
+ if (memo.startsWith('0x') && memo.length === 66) {
30
+ if (!constants_1.MEMO_HEX_REGEX.test(memo)) {
31
+ throw new sdk_core_1.InvalidTransactionError(`Invalid memo hex encoding: ${memo}`);
32
+ }
33
+ this._memo = memo;
34
+ }
35
+ else {
36
+ this._memo = utils_1.default.encodeMemoNew(memo);
37
+ }
38
+ return this;
39
+ }
40
+ }
41
+ exports.V8HexTokenTransferBuilder = V8HexTokenTransferBuilder;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhIZXhUb2tlblRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdjhIZXhUb2tlblRyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtREFBK0Q7QUFDL0QscUVBQWtFO0FBQ2xFLDJDQUE2QztBQUM3QyxvREFBNEI7QUFFNUI7Ozs7O0dBS0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLCtDQUFzQjtJQUNuRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF2QkQsOERBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBWOFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi92OFRva2VuVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IE1FTU9fSEVYX1JFR0VYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEJ1aWxkcyBhIFBvbHltZXNoIHNldHRsZW1lbnQuYWRkQW5kQWZmaXJtV2l0aE1lZGlhdG9ycyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgTkVXXG4gKiAoaGV4KSBtZW1vIGVuY29kaW5nIGFnYWluc3QgUG9seW1lc2ggdjggY2hhaW4gbWV0YWRhdGEsIHdpdGggQXNzZXRIb2xkZXItd3JhcHBlZFxuICogbGVncy9ob2xkZXJTZXQgKHNlZSBWOFRva2VuVHJhbnNmZXJCdWlsZGVyKS4gSWRlbnRpY2FsIHRvIFY4VG9rZW5UcmFuc2ZlckJ1aWxkZXI7XG4gKiBvbmx5IHRoZSBtZW1vIGVuY29kaW5nIGRpZmZlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWOEhleFRva2VuVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVjhUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgbWVtbyB1c2luZyB0aGUgTkVXIFBvbHltZXNoIGZvcm1hdC5cbiAgICpcbiAgICogSWYgdGhlIHZhbHVlIGlzIGFscmVhZHkgYSAweC1wcmVmaXhlZCAzMi1ieXRlIGhleCBzdHJpbmcgKGUuZy4gd2hlbiBkZWNvZGluZyBhblxuICAgKiBleGlzdGluZyBORVctZW5jb2RlZCB0cmFuc2FjdGlvbiB2aWEgZnJvbUltcGxlbWVudGF0aW9uKSwgaXQgaXMgc3RvcmVkIGFzLWlzLlxuICAgKiBPdGhlcndpc2UgdGhlIHRleHQgaXMgY29udmVydGVkIHRvIFVURi04IGhleCBhbmQgcmlnaHQtcGFkZGVkIHdpdGggMHgwMCB0byAzMiBieXRlcy5cbiAgICovXG4gIG1lbW8obWVtbzogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG1lbW8uc3RhcnRzV2l0aCgnMHgnKSAmJiBtZW1vLmxlbmd0aCA9PT0gNjYpIHtcbiAgICAgIGlmICghTUVNT19IRVhfUkVHRVgudGVzdChtZW1vKSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbWVtbyBoZXggZW5jb2Rpbmc6ICR7bWVtb31gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tZW1vID0gdXRpbHMuZW5jb2RlTWVtb05ldyhtZW1vKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { HexTransferBuilder } from './hexTransferBuilder';
3
+ /**
4
+ * Builds a POLYX balances.transferWithMemo transaction using the hex
5
+ * (NEW) memo encoding against Polymesh v8 chain metadata. Identical
6
+ * behaviour to HexTransferBuilder; only the material differs.
7
+ */
8
+ export declare class V8HexTransferBuilder extends HexTransferBuilder {
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ }
11
+ //# sourceMappingURL=v8HexTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8HexTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8HexTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI9C"}
@@ -0,0 +1,21 @@
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.V8HexTransferBuilder = void 0;
7
+ const hexTransferBuilder_1 = require("./hexTransferBuilder");
8
+ const utils_1 = __importDefault(require("./utils"));
9
+ /**
10
+ * Builds a POLYX balances.transferWithMemo transaction using the hex
11
+ * (NEW) memo encoding against Polymesh v8 chain metadata. Identical
12
+ * behaviour to HexTransferBuilder; only the material differs.
13
+ */
14
+ class V8HexTransferBuilder extends hexTransferBuilder_1.HexTransferBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this.material(utils_1.default.getV8Material(_coinConfig.network.type));
18
+ }
19
+ }
20
+ exports.V8HexTransferBuilder = V8HexTransferBuilder;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhIZXhUcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Y4SGV4VHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDZEQUEwRDtBQUMxRCxvREFBNEI7QUFFNUI7Ozs7R0FJRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsdUNBQWtCO0lBQzFELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBTEQsb0RBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBIZXhUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2hleFRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQnVpbGRzIGEgUE9MWVggYmFsYW5jZXMudHJhbnNmZXJXaXRoTWVtbyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgaGV4XG4gKiAoTkVXKSBtZW1vIGVuY29kaW5nIGFnYWluc3QgUG9seW1lc2ggdjggY2hhaW4gbWV0YWRhdGEuIElkZW50aWNhbFxuICogYmVoYXZpb3VyIHRvIEhleFRyYW5zZmVyQnVpbGRlcjsgb25seSB0aGUgbWF0ZXJpYWwgZGlmZmVycy5cbiAqL1xuZXhwb3J0IGNsYXNzIFY4SGV4VHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgSGV4VHJhbnNmZXJCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0VjhNYXRlcmlhbChfY29pbkNvbmZpZy5uZXR3b3JrLnR5cGUpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { NominateBuilder } from './nominateBuilder';
3
+ /**
4
+ * Builds a staking.nominate transaction against Polymesh v8 chain metadata. nominate is unchanged
5
+ * between v7 and v8 (`nominate(targets)`); only the material (specVersion / txVersion) differs from
6
+ * {@link NominateBuilder}.
7
+ */
8
+ export declare class V8NominateBuilder extends NominateBuilder {
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ }
11
+ //# sourceMappingURL=v8NominateBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v8NominateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/v8NominateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;CAI9C"}
@@ -0,0 +1,21 @@
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.V8NominateBuilder = void 0;
7
+ const nominateBuilder_1 = require("./nominateBuilder");
8
+ const utils_1 = __importDefault(require("./utils"));
9
+ /**
10
+ * Builds a staking.nominate transaction against Polymesh v8 chain metadata. nominate is unchanged
11
+ * between v7 and v8 (`nominate(targets)`); only the material (specVersion / txVersion) differs from
12
+ * {@link NominateBuilder}.
13
+ */
14
+ class V8NominateBuilder extends nominateBuilder_1.NominateBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ this.material(utils_1.default.getV8Material(_coinConfig.network.type));
18
+ }
19
+ }
20
+ exports.V8NominateBuilder = V8NominateBuilder;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjhOb21pbmF0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Y4Tm9taW5hdGVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHVEQUFvRDtBQUNwRCxvREFBNEI7QUFFNUI7Ozs7R0FJRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsaUNBQWU7SUFDcEQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFMRCw4Q0FLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IE5vbWluYXRlQnVpbGRlciB9IGZyb20gJy4vbm9taW5hdGVCdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBCdWlsZHMgYSBzdGFraW5nLm5vbWluYXRlIHRyYW5zYWN0aW9uIGFnYWluc3QgUG9seW1lc2ggdjggY2hhaW4gbWV0YWRhdGEuIG5vbWluYXRlIGlzIHVuY2hhbmdlZFxuICogYmV0d2VlbiB2NyBhbmQgdjggKGBub21pbmF0ZSh0YXJnZXRzKWApOyBvbmx5IHRoZSBtYXRlcmlhbCAoc3BlY1ZlcnNpb24gLyB0eFZlcnNpb24pIGRpZmZlcnMgZnJvbVxuICoge0BsaW5rIE5vbWluYXRlQnVpbGRlcn0uXG4gKi9cbmV4cG9ydCBjbGFzcyBWOE5vbWluYXRlQnVpbGRlciBleHRlbmRzIE5vbWluYXRlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLm1hdGVyaWFsKHV0aWxzLmdldFY4TWF0ZXJpYWwoX2NvaW5Db25maWcubmV0d29yay50eXBlKSk7XG4gIH1cbn1cbiJdfQ==