@bitgo-beta/sdk-coin-polyx 1.0.1-beta.13 → 1.0.1-beta.1300

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 (237) 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 +252 -2
  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 +40 -7
  29. package/dist/src/lib/index.d.ts.map +1 -1
  30. package/dist/src/lib/index.js +86 -36
  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 +34 -0
  38. package/dist/src/lib/registerDidWithCDDBuilder.d.ts.map +1 -0
  39. package/dist/src/lib/registerDidWithCDDBuilder.js +86 -0
  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 +26 -4
  47. package/dist/src/lib/transaction.d.ts.map +1 -1
  48. package/dist/src/lib/transaction.js +201 -7
  49. package/dist/src/lib/transactionBuilderFactory.d.ts +67 -5
  50. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  51. package/dist/src/lib/transactionBuilderFactory.js +323 -8
  52. package/dist/src/lib/transferBuilder.d.ts +51 -3
  53. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  54. package/dist/src/lib/transferBuilder.js +111 -3
  55. package/dist/src/lib/txnSchema.d.ts +70 -0
  56. package/dist/src/lib/txnSchema.d.ts.map +1 -0
  57. package/dist/src/lib/txnSchema.js +244 -0
  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 +44 -14
  62. package/dist/src/lib/utils.d.ts.map +1 -1
  63. package/dist/src/lib/utils.js +95 -20
  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 +296 -16
  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 +5 -0
  115. package/dist/src/resources/index.d.ts.map +1 -0
  116. package/dist/src/resources/index.js +21 -0
  117. package/dist/src/resources/mainnet.d.ts +13 -0
  118. package/dist/src/resources/mainnet.d.ts.map +1 -0
  119. package/dist/src/resources/mainnet.js +16 -0
  120. package/dist/src/resources/mainnetV8.d.ts +13 -0
  121. package/dist/src/resources/mainnetV8.d.ts.map +1 -0
  122. package/dist/src/resources/mainnetV8.js +24 -0
  123. package/dist/src/resources/testnet.d.ts +13 -0
  124. package/dist/src/resources/testnet.d.ts.map +1 -0
  125. package/dist/src/resources/testnet.js +16 -0
  126. package/dist/src/resources/testnetV8.d.ts +13 -0
  127. package/dist/src/resources/testnetV8.d.ts.map +1 -0
  128. package/dist/src/resources/testnetV8.js +16 -0
  129. package/dist/src/tpolyx.d.ts +7 -0
  130. package/dist/src/tpolyx.d.ts.map +1 -1
  131. package/dist/src/tpolyx.js +11 -1
  132. package/dist/test/integration/index.d.ts +1 -0
  133. package/dist/test/integration/index.d.ts.map +1 -0
  134. package/dist/test/integration/index.js +1 -0
  135. package/dist/test/resources/index.d.ts +139 -0
  136. package/dist/test/resources/index.d.ts.map +1 -0
  137. package/dist/test/resources/index.js +150 -0
  138. package/dist/test/resources/mainnet.d.ts +2 -0
  139. package/dist/test/resources/mainnet.d.ts.map +1 -0
  140. package/dist/test/resources/mainnet.js +5 -0
  141. package/dist/test/resources/materialData.json +8 -0
  142. package/dist/test/resources/materialDataModified.json +8 -0
  143. package/dist/test/resources/testnet.d.ts +2 -0
  144. package/dist/test/resources/testnet.d.ts.map +1 -0
  145. package/dist/test/resources/testnet.js +5 -0
  146. package/dist/test/resources/wrwUsers.d.ts +19 -0
  147. package/dist/test/resources/wrwUsers.d.ts.map +1 -0
  148. package/dist/test/resources/wrwUsers.js +60 -0
  149. package/dist/test/unit/polyx.d.ts +2 -0
  150. package/dist/test/unit/polyx.d.ts.map +1 -0
  151. package/dist/test/unit/polyx.js +603 -0
  152. package/dist/test/unit/transactionBuilder/base.d.ts +4 -0
  153. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  154. package/dist/test/unit/transactionBuilder/base.js +245 -0
  155. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts +2 -0
  156. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts.map +1 -0
  157. package/dist/test/unit/transactionBuilder/batchStakingBuilder.js +309 -0
  158. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts +2 -0
  159. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts.map +1 -0
  160. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.js +159 -0
  161. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts +2 -0
  162. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts.map +1 -0
  163. package/dist/test/unit/transactionBuilder/bondExtraBuilder.js +158 -0
  164. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts +2 -0
  165. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.d.ts.map +1 -0
  166. package/dist/test/unit/transactionBuilder/hexTokenTransferBuilder.js +261 -0
  167. package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts +2 -0
  168. package/dist/test/unit/transactionBuilder/hexTransferBuilder.d.ts.map +1 -0
  169. package/dist/test/unit/transactionBuilder/hexTransferBuilder.js +389 -0
  170. package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts +2 -0
  171. package/dist/test/unit/transactionBuilder/nominateBuilder.d.ts.map +1 -0
  172. package/dist/test/unit/transactionBuilder/nominateBuilder.js +226 -0
  173. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts +2 -0
  174. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts.map +1 -0
  175. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.js +115 -0
  176. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts +2 -0
  177. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts.map +1 -0
  178. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.js +302 -0
  179. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts +2 -0
  180. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts.map +1 -0
  181. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.js +128 -0
  182. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts +2 -0
  183. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts.map +1 -0
  184. package/dist/test/unit/transactionBuilder/singletonRegistry.js +59 -0
  185. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  186. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  187. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +140 -0
  188. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  189. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  190. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +240 -0
  191. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  192. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  193. package/dist/test/unit/transactionBuilder/transferBuilder.js +326 -0
  194. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts +2 -0
  195. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts.map +1 -0
  196. package/dist/test/unit/transactionBuilder/unbondBuilder.js +144 -0
  197. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.d.ts +2 -0
  198. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.d.ts.map +1 -0
  199. package/dist/test/unit/transactionBuilder/v8BatchStakingBuilder.js +252 -0
  200. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.d.ts +2 -0
  201. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.d.ts.map +1 -0
  202. package/dist/test/unit/transactionBuilder/v8HexTokenTransferBuilder.js +90 -0
  203. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.d.ts +2 -0
  204. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.d.ts.map +1 -0
  205. package/dist/test/unit/transactionBuilder/v8HexTransferBuilder.js +62 -0
  206. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.d.ts +2 -0
  207. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.d.ts.map +1 -0
  208. package/dist/test/unit/transactionBuilder/v8PreApproveAssetBuilder.js +45 -0
  209. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.d.ts +2 -0
  210. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.d.ts.map +1 -0
  211. package/dist/test/unit/transactionBuilder/v8RegisterDidBuilder.js +87 -0
  212. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.d.ts +2 -0
  213. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.d.ts.map +1 -0
  214. package/dist/test/unit/transactionBuilder/v8RegisterDidWithCDDBuilder.js +45 -0
  215. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.d.ts +2 -0
  216. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.d.ts.map +1 -0
  217. package/dist/test/unit/transactionBuilder/v8TokenTransferBuilder.js +114 -0
  218. package/dist/test/unit/transactionBuilder/v8TransferBuilder.d.ts +2 -0
  219. package/dist/test/unit/transactionBuilder/v8TransferBuilder.d.ts.map +1 -0
  220. package/dist/test/unit/transactionBuilder/v8TransferBuilder.js +107 -0
  221. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts +2 -0
  222. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts.map +1 -0
  223. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.js +138 -0
  224. package/dist/test/unit/utils.d.ts +2 -0
  225. package/dist/test/unit/utils.d.ts.map +1 -0
  226. package/dist/test/unit/utils.js +143 -0
  227. package/dist/tsconfig.tsbuildinfo +1 -0
  228. package/package.json +20 -10
  229. package/.eslintignore +0 -4
  230. package/.mocharc.yml +0 -8
  231. package/CHANGELOG.md +0 -0
  232. package/dist/src/lib/keyPair.d.ts +0 -12
  233. package/dist/src/lib/keyPair.d.ts.map +0 -1
  234. package/dist/src/lib/keyPair.js +0 -24
  235. package/dist/src/lib/transactionBuilder.d.ts +0 -43
  236. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  237. package/dist/src/lib/transactionBuilder.js +0 -78
@@ -0,0 +1,70 @@
1
+ import joi from 'joi';
2
+ export type BatchValidationObject = {
3
+ amount: string;
4
+ controller: string;
5
+ payee: string | {
6
+ Account: string;
7
+ };
8
+ validators: string[];
9
+ };
10
+ export type BondValidationObject = {
11
+ value: string;
12
+ controller: string;
13
+ payee: string | {
14
+ Account: string;
15
+ };
16
+ };
17
+ export type NominateValidationObject = {
18
+ validators: string[];
19
+ };
20
+ export type V8BatchValidationObject = {
21
+ amount: string;
22
+ payee: string | {
23
+ Account: string;
24
+ };
25
+ validators: string[];
26
+ };
27
+ export type V8BondValidationObject = {
28
+ value: string;
29
+ payee: string | {
30
+ Account: string;
31
+ };
32
+ };
33
+ export type BondExtraValidationObject = {
34
+ value: string;
35
+ };
36
+ export declare const RegisterDidWithCDDTransactionSchema: joi.ObjectSchema<any>;
37
+ export declare const RegisterDidTransactionSchema: joi.ObjectSchema<any>;
38
+ export declare const PreApproveAssetTransactionSchema: joi.ObjectSchema<any>;
39
+ export declare const AddAndAffirmWithMediatorsTransactionSchema: joi.ObjectSchema<any>;
40
+ export declare const V8AddAndAffirmWithMediatorsTransactionSchema: joi.ObjectSchema<any>;
41
+ export declare const RejectInstructionTransactionSchema: joi.ObjectSchema<any>;
42
+ export declare const BondExtraTransactionSchema: joi.ObjectSchema<any>;
43
+ export declare const NominateTransactionSchema: joi.ObjectSchema<any>;
44
+ export declare const BatchTransactionSchema: {
45
+ validate: (value: BatchValidationObject) => joi.ValidationResult;
46
+ validateBond: (value: BondValidationObject) => joi.ValidationResult;
47
+ validateNominate: (value: NominateValidationObject) => joi.ValidationResult;
48
+ };
49
+ export declare const V8BatchTransactionSchema: {
50
+ validate: (value: V8BatchValidationObject) => joi.ValidationResult;
51
+ validateBond: (value: V8BondValidationObject) => joi.ValidationResult;
52
+ validateNominate: (value: NominateValidationObject) => joi.ValidationResult;
53
+ };
54
+ export declare const bondSchema: joi.ObjectSchema<any>;
55
+ export declare const BatchUnstakingTransactionSchema: {
56
+ validate: (value: {
57
+ value: string;
58
+ }) => joi.ValidationResult;
59
+ };
60
+ export declare const UnbondTransactionSchema: {
61
+ validate: (value: {
62
+ value: string;
63
+ }) => joi.ValidationResult;
64
+ };
65
+ export declare const WithdrawUnbondedTransactionSchema: {
66
+ validate: (value: {
67
+ slashingSpans: number;
68
+ }) => joi.ValidationResult;
69
+ };
70
+ //# sourceMappingURL=txnSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txnSchema.d.ts","sourceRoot":"","sources":["../../../src/lib/txnSchema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,eAAO,MAAM,mCAAmC,uBAI9C,CAAC;AAIH,eAAO,MAAM,4BAA4B,uBAEvC,CAAC;AAEH,eAAO,MAAM,gCAAgC,uBAE3C,CAAC;AAEH,eAAO,MAAM,0CAA0C,uBAyDrD,CAAC;AAkBH,eAAO,MAAM,4CAA4C,uBA2BvD,CAAC;AAEH,eAAO,MAAM,kCAAkC,uBAmB7C,CAAC;AAGH,eAAO,MAAM,0BAA0B,uBAErC,CAAC;AAGH,eAAO,MAAM,yBAAyB,uBAEpC,CAAC;AAGH,eAAO,MAAM,sBAAsB;sBACf,qBAAqB,KAAG,GAAG,CAAC,gBAAgB;0BAmBxC,oBAAoB,KAAG,GAAG,CAAC,gBAAgB;8BAiBvC,wBAAwB,KAAG,GAAG,CAAC,gBAAgB;CAM1E,CAAC;AAIF,eAAO,MAAM,wBAAwB;sBACjB,uBAAuB,KAAG,GAAG,CAAC,gBAAgB;0BAkB1C,sBAAsB,KAAG,GAAG,CAAC,gBAAgB;8BAgBzC,wBAAwB,KAAG,GAAG,CAAC,gBAAgB;CAM1E,CAAC;AAEF,eAAO,MAAM,UAAU,uBAYrB,CAAC;AAEH,eAAO,MAAM,+BAA+B;sBACxB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,GAAG,CAAC,gBAAgB;CAM3D,CAAC;AAEF,eAAO,MAAM,uBAAuB;sBAChB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,GAAG,CAAC,gBAAgB;CAM3D,CAAC;AAEF,eAAO,MAAM,iCAAiC;sBAC1B;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,KAAG,GAAG,CAAC,gBAAgB;CAMnE,CAAC"}
@@ -0,0 +1,244 @@
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.WithdrawUnbondedTransactionSchema = exports.UnbondTransactionSchema = exports.BatchUnstakingTransactionSchema = exports.bondSchema = exports.V8BatchTransactionSchema = exports.BatchTransactionSchema = exports.NominateTransactionSchema = exports.BondExtraTransactionSchema = exports.RejectInstructionTransactionSchema = exports.V8AddAndAffirmWithMediatorsTransactionSchema = exports.AddAndAffirmWithMediatorsTransactionSchema = exports.PreApproveAssetTransactionSchema = exports.RegisterDidTransactionSchema = exports.RegisterDidWithCDDTransactionSchema = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
8
+ const utils_1 = __importDefault(require("./utils"));
9
+ const addressSchema = joi_1.default.string().custom((addr) => utils_1.default.isValidAddress(addr));
10
+ exports.RegisterDidWithCDDTransactionSchema = joi_1.default.object({
11
+ targetAccount: addressSchema.required(),
12
+ secondaryKeys: joi_1.default.array().length(0).required(),
13
+ expiry: joi_1.default.valid(null).required(),
14
+ });
15
+ // v8 identity.registerDid — unlike the v7 CDD path, this call only carries targetAccount
16
+ // (verified against the real testnetV8Material metadata; no secondaryKeys/expiry fields).
17
+ exports.RegisterDidTransactionSchema = joi_1.default.object({
18
+ targetAccount: addressSchema.required(),
19
+ });
20
+ exports.PreApproveAssetTransactionSchema = joi_1.default.object({
21
+ assetId: joi_1.default.string().required(),
22
+ });
23
+ exports.AddAndAffirmWithMediatorsTransactionSchema = joi_1.default.object({
24
+ venueId: joi_1.default.valid(null).required(),
25
+ settlementType: joi_1.default
26
+ .object({
27
+ settleOnAffirmation: joi_1.default.valid(null),
28
+ })
29
+ .required(),
30
+ tradeDate: joi_1.default.valid(null).required(),
31
+ valueDate: joi_1.default.valid(null).required(),
32
+ legs: joi_1.default
33
+ .array()
34
+ .items(joi_1.default.object({
35
+ fungible: joi_1.default
36
+ .object({
37
+ sender: joi_1.default
38
+ .object({
39
+ did: addressSchema.required(),
40
+ kind: joi_1.default
41
+ .object({
42
+ default: joi_1.default.valid(null),
43
+ })
44
+ .required(),
45
+ })
46
+ .required(),
47
+ receiver: joi_1.default
48
+ .object({
49
+ did: addressSchema.required(),
50
+ kind: joi_1.default
51
+ .object({
52
+ default: joi_1.default.valid(null),
53
+ })
54
+ .required(),
55
+ })
56
+ .required(),
57
+ assetId: joi_1.default.string().required(),
58
+ amount: joi_1.default.number().required(),
59
+ })
60
+ .required(),
61
+ }))
62
+ .required(),
63
+ portfolios: joi_1.default
64
+ .array()
65
+ .items(joi_1.default.object({
66
+ did: addressSchema.required(),
67
+ kind: joi_1.default
68
+ .object({
69
+ default: joi_1.default.valid(null),
70
+ })
71
+ .required(),
72
+ }))
73
+ .required(),
74
+ instructionMemo: joi_1.default.string().required(),
75
+ mediators: joi_1.default.array().length(0).required(),
76
+ });
77
+ // v8 settlement.addAndAffirmWithMediators — legs/holderSet wrap the DID+kind in an AssetHolder
78
+ // enum. Decoded shape lowercases the variant name (`portfolio`, not `Portfolio`) — verified by
79
+ // round-tripping a sample value through the real v8 testnet metadata registry.
80
+ const assetHolderSchema = joi_1.default.object({
81
+ portfolio: joi_1.default
82
+ .object({
83
+ did: addressSchema.required(),
84
+ kind: joi_1.default
85
+ .object({
86
+ default: joi_1.default.valid(null),
87
+ })
88
+ .required(),
89
+ })
90
+ .required(),
91
+ });
92
+ exports.V8AddAndAffirmWithMediatorsTransactionSchema = joi_1.default.object({
93
+ venueId: joi_1.default.valid(null).required(),
94
+ settlementType: joi_1.default
95
+ .object({
96
+ settleOnAffirmation: joi_1.default.valid(null),
97
+ })
98
+ .required(),
99
+ tradeDate: joi_1.default.valid(null).required(),
100
+ valueDate: joi_1.default.valid(null).required(),
101
+ legs: joi_1.default
102
+ .array()
103
+ .items(joi_1.default.object({
104
+ fungible: joi_1.default
105
+ .object({
106
+ sender: assetHolderSchema.required(),
107
+ receiver: assetHolderSchema.required(),
108
+ assetId: joi_1.default.string().required(),
109
+ amount: joi_1.default.number().required(),
110
+ })
111
+ .required(),
112
+ }))
113
+ .required(),
114
+ holderSet: joi_1.default.array().items(assetHolderSchema).required(),
115
+ instructionMemo: joi_1.default.string().required(),
116
+ mediators: joi_1.default.array().length(0).required(),
117
+ });
118
+ exports.RejectInstructionTransactionSchema = joi_1.default.object({
119
+ id: joi_1.default.string().required(),
120
+ portfolio: joi_1.default
121
+ .object({
122
+ did: addressSchema.required(),
123
+ kind: joi_1.default
124
+ .object({
125
+ default: joi_1.default.valid(null),
126
+ })
127
+ .required(),
128
+ })
129
+ .required(),
130
+ numberOfAssets: joi_1.default
131
+ .object({
132
+ fungible: joi_1.default.number().required(),
133
+ nonFungible: joi_1.default.number().required(),
134
+ offChain: joi_1.default.number().required(),
135
+ })
136
+ .optional(),
137
+ });
138
+ // For standalone bondExtra transactions
139
+ exports.BondExtraTransactionSchema = joi_1.default.object({
140
+ value: joi_1.default.string().required(),
141
+ });
142
+ // For nominate transactions (standalone or in batch)
143
+ exports.NominateTransactionSchema = joi_1.default.object({
144
+ validators: joi_1.default.array().items(addressSchema).min(1).max(16).required(),
145
+ });
146
+ // For batch validation
147
+ exports.BatchTransactionSchema = {
148
+ validate: (value) => joi_1.default
149
+ .object({
150
+ amount: joi_1.default.string().required(),
151
+ controller: addressSchema.required(),
152
+ // Payee can be a string or an object with Account property
153
+ payee: joi_1.default
154
+ .alternatives()
155
+ .try(joi_1.default.string(), joi_1.default.object({
156
+ Account: addressSchema,
157
+ }))
158
+ .required(),
159
+ validators: joi_1.default.array().items(addressSchema).min(1).max(16).required(),
160
+ })
161
+ .validate(value),
162
+ validateBond: (value) => joi_1.default
163
+ .object({
164
+ value: joi_1.default.string().required(),
165
+ controller: addressSchema.required(),
166
+ payee: joi_1.default
167
+ .alternatives()
168
+ .try(joi_1.default.string(), joi_1.default.object({
169
+ Account: addressSchema,
170
+ }))
171
+ .required(),
172
+ })
173
+ .validate(value),
174
+ validateNominate: (value) => joi_1.default
175
+ .object({
176
+ validators: joi_1.default.array().items(addressSchema).min(1).max(16).required(),
177
+ })
178
+ .validate(value),
179
+ };
180
+ // v8 batch validation — mirrors BatchTransactionSchema but drops the `controller` field, which
181
+ // v8 staking.bond no longer encodes.
182
+ exports.V8BatchTransactionSchema = {
183
+ validate: (value) => joi_1.default
184
+ .object({
185
+ amount: joi_1.default.string().required(),
186
+ // Payee can be a string or an object with Account property
187
+ payee: joi_1.default
188
+ .alternatives()
189
+ .try(joi_1.default.string(), joi_1.default.object({
190
+ Account: addressSchema,
191
+ }))
192
+ .required(),
193
+ validators: joi_1.default.array().items(addressSchema).min(1).max(16).required(),
194
+ })
195
+ .validate(value),
196
+ validateBond: (value) => joi_1.default
197
+ .object({
198
+ value: joi_1.default.string().required(),
199
+ payee: joi_1.default
200
+ .alternatives()
201
+ .try(joi_1.default.string(), joi_1.default.object({
202
+ Account: addressSchema,
203
+ }))
204
+ .required(),
205
+ })
206
+ .validate(value),
207
+ validateNominate: (value) => joi_1.default
208
+ .object({
209
+ validators: joi_1.default.array().items(addressSchema).min(1).max(16).required(),
210
+ })
211
+ .validate(value),
212
+ };
213
+ exports.bondSchema = joi_1.default.object({
214
+ value: joi_1.default.string().required(),
215
+ controller: addressSchema.required(),
216
+ payee: joi_1.default
217
+ .alternatives()
218
+ .try(joi_1.default.string().valid('Staked', 'Stash', 'Controller'), joi_1.default.object({
219
+ Account: addressSchema.required(),
220
+ }))
221
+ .required(),
222
+ });
223
+ exports.BatchUnstakingTransactionSchema = {
224
+ validate: (value) => joi_1.default
225
+ .object({
226
+ value: joi_1.default.string().required(),
227
+ })
228
+ .validate(value),
229
+ };
230
+ exports.UnbondTransactionSchema = {
231
+ validate: (value) => joi_1.default
232
+ .object({
233
+ value: joi_1.default.string().required(),
234
+ })
235
+ .validate(value),
236
+ };
237
+ exports.WithdrawUnbondedTransactionSchema = {
238
+ validate: (value) => joi_1.default
239
+ .object({
240
+ slashingSpans: joi_1.default.number().min(0).required(),
241
+ })
242
+ .validate(value),
243
+ };
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhuU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90eG5TY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQW1DNUIsTUFBTSxhQUFhLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRW5FLFFBQUEsbUNBQW1DLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztJQUM1RCxhQUFhLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUN2QyxhQUFhLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsTUFBTSxFQUFFLGFBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUVILHlGQUF5RjtBQUN6RiwwRkFBMEY7QUFDN0UsUUFBQSw0QkFBNEIsR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3JELGFBQWEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQztBQUVVLFFBQUEsZ0NBQWdDLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztJQUN6RCxPQUFPLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNqQyxDQUFDLENBQUM7QUFFVSxRQUFBLDBDQUEwQyxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbkUsT0FBTyxFQUFFLGFBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLGNBQWMsRUFBRSxhQUFHO1NBQ2hCLE1BQU0sQ0FBQztRQUNOLG1CQUFtQixFQUFFLGFBQUcsQ0FBQyxL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dCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIEJhdGNoVmFsaWRhdGlvbk9iamVjdCA9IHtcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IHN0cmluZztcbiAgcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG4gIHZhbGlkYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQm9uZFZhbGlkYXRpb25PYmplY3QgPSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IHN0cmluZztcbiAgcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBOb21pbmF0ZVZhbGlkYXRpb25PYmplY3QgPSB7XG4gIHZhbGlkYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuLy8gdjggYm9uZC9iYXRjaCB2YWxpZGF0aW9uIG9iamVjdHMg4oCUIG5vIGBjb250cm9sbGVyYCAoc3Rhc2ggaXMgaXRzIG93biBjb250cm9sbGVyIGluIHY4KS5cbmV4cG9ydCB0eXBlIFY4QmF0Y2hWYWxpZGF0aW9uT2JqZWN0ID0ge1xuICBhbW91bnQ6IHN0cmluZztcbiAgcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG4gIHZhbGlkYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgVjhCb25kVmFsaWRhdGlvbk9iamVjdCA9IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgcGF5ZWU6IHN0cmluZyB8IHsgQWNjb3VudDogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBCb25kRXh0cmFWYWxpZGF0aW9uT2JqZWN0ID0ge1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuY29uc3QgYWRkcmVzc1NjaGVtYSA9IGpvaS5zdHJpbmcoKS5jdXN0b20oKGFkZHIpID0+IFV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHIpKTtcblxuZXhwb3J0IGNvbnN0IFJlZ2lzdGVyRGlkV2l0aENERFRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHRhcmdldEFjY291bnQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgc2Vjb25kYXJ5S2V5czogam9pLmFycmF5KCkubGVuZ3RoKDApLnJlcXVpcmVkKCksXG4gIGV4cGlyeTogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG59KTtcblxuLy8gdjggaWRlbnRpdHkucmVnaXN0ZXJEaWQg4oCUIHVubGlrZSB0aGUgdjcgQ0REIHBhdGgsIHRoaXMgY2FsbCBvbmx5IGNhcnJpZXMgdGFyZ2V0QWNjb3VudFxuLy8gKHZlcmlmaWVkIGFnYWluc3QgdGhlIHJlYWwgdGVzdG5ldFY4TWF0ZXJpYWwgbWV0YWRhdGE7IG5vIHNlY29uZGFyeUtleXMvZXhwaXJ5IGZpZWxkcykuXG5leHBvcnQgY29uc3QgUmVnaXN0ZXJEaWRUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB0YXJnZXRBY2NvdW50OiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFByZUFwcHJvdmVBc3NldFRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIGFzc2V0SWQ6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdmVudWVJZDogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG4gIHNldHRsZW1lbnRUeXBlOiBqb2lcbiAgICAub2JqZWN0KHtcbiAgICAgIHNldHRsZU9uQWZmaXJtYXRpb246IGpvaS52YWxpZChudWxsKSxcbiAgICB9KVxuICAgIC5yZXF1aXJlZCgpLFxuICB0cmFkZURhdGU6IGpvaS52YWxpZChudWxsKS5yZXF1aXJlZCgpLFxuICB2YWx1ZURhdGU6IGpvaS52YWxpZChudWxsKS5yZXF1aXJlZCgpLFxuICBsZWdzOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICBmdW5naWJsZTogam9pXG4gICAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgICBzZW5kZXI6IGpvaVxuICAgICAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgICAgICAgICBraW5kOiBqb2lcbiAgICAgICAgICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICAgICAgcmVjZWl2ZXI6IGpvaVxuICAgICAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgICAgICAgICBraW5kOiBqb2lcbiAgICAgICAgICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICAgICAgYXNzZXRJZDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgICAgICBhbW91bnQ6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgcG9ydGZvbGlvczogam9pXG4gICAgLmFycmF5KClcbiAgICAuaXRlbXMoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZGlkOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICAgIGtpbmQ6IGpvaVxuICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgZGVmYXVsdDogam9pLnZhbGlkKG51bGwpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgaW5zdHJ1Y3Rpb25NZW1vOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgbWVkaWF0b3JzOiBqb2kuYXJyYXkoKS5sZW5ndGgoMCkucmVxdWlyZWQoKSxcbn0pO1xuXG4vLyB2OCBzZXR0bGVtZW50LmFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnMg4oCUIGxlZ3MvaG9sZGVyU2V0IHdyYXAgdGhlIERJRCtraW5kIGluIGFuIEFzc2V0SG9sZGVyXG4vLyBlbnVtLiBEZWNvZGVkIHNoYXBlIGxvd2VyY2FzZXMgdGhlIHZhcmlhbnQgbmFtZSAoYHBvcnRmb2xpb2AsIG5vdCBgUG9ydGZvbGlvYCkg4oCUIHZlcmlmaWVkIGJ5XG4vLyByb3VuZC10cmlwcGluZyBhIHNhbXBsZSB2YWx1ZSB0aHJvdWdoIHRoZSByZWFsIHY4IHRlc3RuZXQgbWV0YWRhdGEgcmVnaXN0cnkuXG5jb25zdCBhc3NldEhvbGRlclNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICBwb3J0Zm9saW86IGpvaVxuICAgIC5vYmplY3Qoe1xuICAgICAgZGlkOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBraW5kOiBqb2lcbiAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgZGVmYXVsdDogam9pLnZhbGlkKG51bGwpLFxuICAgICAgICB9KVxuICAgICAgICAucmVxdWlyZWQoKSxcbiAgICB9KVxuICAgIC5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBWOEFkZEFuZEFmZmlybVdpdGhNZWRpYXRvcnNUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB2ZW51ZUlkOiBqb2kudmFsaWQobnVsbCkucmVxdWlyZWQoKSxcbiAgc2V0dGxlbWVudFR5cGU6IGpvaVxuICAgIC5vYmplY3Qoe1xuICAgICAgc2V0dGxlT25BZmZpcm1hdGlvbjogam9pLnZhbGlkKG51bGwpLFxuICAgIH0pXG4gICAgLnJlcXVpcmVkKCksXG4gIHRyYWRlRGF0ZTogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG4gIHZhbHVlRGF0ZTogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG4gIGxlZ3M6IGpvaVxuICAgIC5hcnJheSgpXG4gICAgLml0ZW1zKFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIGZ1bmdpYmxlOiBqb2lcbiAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgIHNlbmRlcjogYXNzZXRIb2xkZXJTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgICAgIHJlY2VpdmVyOiBhc3NldEhvbGRlclNjaGVtYS5yZXF1aXJlZCgpLFxuICAgICAgICAgICAgYXNzZXRJZDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgICAgICBhbW91bnQ6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgaG9sZGVyU2V0OiBqb2kuYXJyYXkoKS5pdGVtcyhhc3NldEhvbGRlclNjaGVtYSkucmVxdWlyZWQoKSxcbiAgaW5zdHJ1Y3Rpb25NZW1vOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgbWVkaWF0b3JzOiBqb2kuYXJyYXkoKS5sZW5ndGgoMCkucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVqZWN0SW5zdHJ1Y3Rpb25UcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICBpZDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHBvcnRmb2xpbzogam9pXG4gICAgLm9iamVjdCh7XG4gICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgIGtpbmQ6IGpvaVxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgIH0pXG4gICAgICAgIC5yZXF1aXJlZCgpLFxuICAgIH0pXG4gICAgLnJlcXVpcmVkKCksXG4gIG51bWJlck9mQXNzZXRzOiBqb2lcbiAgICAub2JqZWN0KHtcbiAgICAgIGZ1bmdpYmxlOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgIG5vbkZ1bmdpYmxlOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgIG9mZkNoYWluOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpLFxufSk7XG5cbi8vIEZvciBzdGFuZGFsb25lIGJvbmRFeHRyYSB0cmFuc2FjdGlvbnNcbmV4cG9ydCBjb25zdCBCb25kRXh0cmFUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG59KTtcblxuLy8gRm9yIG5vbWluYXRlIHRyYW5zYWN0aW9ucyAoc3RhbmRhbG9uZSBvciBpbiBiYXRjaClcbmV4cG9ydCBjb25zdCBOb21pbmF0ZVRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHZhbGlkYXRvcnM6IGpvaS5hcnJheSgpLml0ZW1zKGFkZHJlc3NTY2hlbWEpLm1pbigxKS5tYXgoMTYpLnJlcXVpcmVkKCksXG59KTtcblxuLy8gRm9yIGJhdGNoIHZhbGlkYXRpb25cbmV4cG9ydCBjb25zdCBCYXRjaFRyYW5zYWN0aW9uU2NoZW1hID0ge1xuICB2YWxpZGF0ZTogKHZhbHVlOiBCYXRjaFZhbGlkYXRpb25PYmplY3QpOiBqb2kuVmFsaWRhdGlvblJlc3VsdCA9PlxuICAgIGpvaVxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIGFtb3VudDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbnRyb2xsZXI6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgLy8gUGF5ZWUgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCB3aXRoIEFjY291bnQgcHJvcGVydHlcbiAgICAgICAgcGF5ZWU6IGpvaVxuICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgIC50cnkoXG4gICAgICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgQWNjb3VudDogYWRkcmVzc1NjaGVtYSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICB2YWxpZGF0b3JzOiBqb2kuYXJyYXkoKS5pdGVtcyhhZGRyZXNzU2NoZW1hKS5taW4oMSkubWF4KDE2KS5yZXF1aXJlZCgpLFxuICAgICAgfSlcbiAgICAgIC52YWxpZGF0ZSh2YWx1ZSksXG5cbiAgdmFsaWRhdGVCb25kOiAodmFsdWU6IEJvbmRWYWxpZGF0aW9uT2JqZWN0KTogam9pLlZhbGlkYXRpb25SZXN1bHQgPT5cbiAgICBqb2lcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbnRyb2xsZXI6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgcGF5ZWU6IGpvaVxuICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgIC50cnkoXG4gICAgICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgQWNjb3VudDogYWRkcmVzc1NjaGVtYSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgfSlcbiAgICAgIC52YWxpZGF0ZSh2YWx1ZSksXG5cbiAgdmFsaWRhdGVOb21pbmF0ZTogKHZhbHVlOiBOb21pbmF0ZVZhbGlkYXRpb25PYmplY3QpOiBqb2kuVmFsaWRhdGlvblJlc3VsdCA9PlxuICAgIGpvaVxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIHZhbGlkYXRvcnM6IGpvaS5hcnJheSgpLml0ZW1zKGFkZHJlc3NTY2hlbWEpLm1pbigxKS5tYXgoMTYpLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgICAgLnZhbGlkYXRlKHZhbHVlKSxcbn07XG5cbi8vIHY4IGJhdGNoIHZhbGlkYXRpb24g4oCUIG1pcnJvcnMgQmF0Y2hUcmFuc2FjdGlvblNjaGVtYSBidXQgZHJvcHMgdGhlIGBjb250cm9sbGVyYCBmaWVsZCwgd2hpY2hcbi8vIHY4IHN0YWtpbmcuYm9uZCBubyBsb25nZXIgZW5jb2Rlcy5cbmV4cG9ydCBjb25zdCBWOEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEgPSB7XG4gIHZhbGlkYXRlOiAodmFsdWU6IFY4QmF0Y2hWYWxpZGF0aW9uT2JqZWN0KTogam9pLlZhbGlkYXRpb25SZXN1bHQgPT5cbiAgICBqb2lcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICBhbW91bnQ6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICAvLyBQYXllZSBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gb2JqZWN0IHdpdGggQWNjb3VudCBwcm9wZXJ0eVxuICAgICAgICBwYXllZTogam9pXG4gICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgLnRyeShcbiAgICAgICAgICAgIGpvaS5zdHJpbmcoKSxcbiAgICAgICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgICAgICBBY2NvdW50OiBhZGRyZXNzU2NoZW1hLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgIHZhbGlkYXRvcnM6IGpvaS5hcnJheSgpLml0ZW1zKGFkZHJlc3NTY2hlbWEpLm1pbigxKS5tYXgoMTYpLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgICAgLnZhbGlkYXRlKHZhbHVlKSxcblxuICB2YWxpZGF0ZUJvbmQ6ICh2YWx1ZTogVjhCb25kVmFsaWRhdGlvbk9iamVjdCk6IGpvaS5WYWxpZGF0aW9uUmVzdWx0ID0+XG4gICAgam9pXG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBwYXllZTogam9pXG4gICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgLnRyeShcbiAgICAgICAgICAgIGpvaS5zdHJpbmcoKSxcbiAgICAgICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgICAgICBBY2NvdW50OiBhZGRyZXNzU2NoZW1hLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgICAgLnZhbGlkYXRlKHZhbHVlKSxcblxuICB2YWxpZGF0ZU5vbWluYXRlOiAodmFsdWU6IE5vbWluYXRlVmFsaWRhdGlvbk9iamVjdCk6IGpvaS5WYWxpZGF0aW9uUmVzdWx0ID0+XG4gICAgam9pXG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdmFsaWRhdG9yczogam9pLmFycmF5KCkuaXRlbXMoYWRkcmVzc1NjaGVtYSkubWluKDEpLm1heCgxNikucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgICAudmFsaWRhdGUodmFsdWUpLFxufTtcblxuZXhwb3J0IGNvbnN0IGJvbmRTY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBjb250cm9sbGVyOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gIHBheWVlOiBqb2lcbiAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAudHJ5KFxuICAgICAgam9pLnN0cmluZygpLnZhbGlkKCdTdGFrZWQnLCAnU3Rhc2gnLCAnQ29udHJvbGxlcicpLFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIEFjY291bnQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBCYXRjaFVuc3Rha2luZ1RyYW5zYWN0aW9uU2NoZW1hID0ge1xuICB2YWxpZGF0ZTogKHZhbHVlOiB7IHZhbHVlOiBzdHJpbmcgfSk6IGpvaS5WYWxpZGF0aW9uUmVzdWx0ID0+XG4gICAgam9pXG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgfSlcbiAgICAgIC52YWxpZGF0ZSh2YWx1ZSksXG59O1xuXG5leHBvcnQgY29uc3QgVW5ib25kVHJhbnNhY3Rpb25TY2hlbWEgPSB7XG4gIHZhbGlkYXRlOiAodmFsdWU6IHsgdmFsdWU6IHN0cmluZyB9KTogam9pLlZhbGlkYXRpb25SZXN1bHQgPT5cbiAgICBqb2lcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgICAgLnZhbGlkYXRlKHZhbHVlKSxcbn07XG5cbmV4cG9ydCBjb25zdCBXaXRoZHJhd1VuYm9uZGVkVHJhbnNhY3Rpb25TY2hlbWEgPSB7XG4gIHZhbGlkYXRlOiAodmFsdWU6IHsgc2xhc2hpbmdTcGFuczogbnVtYmVyIH0pOiBqb2kuVmFsaWRhdGlvblJlc3VsdCA9PlxuICAgIGpvaVxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIHNsYXNoaW5nU3BhbnM6IGpvaS5udW1iZXIoKS5taW4oMCkucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgICAudmFsaWRhdGUodmFsdWUpLFxufTtcbiJdfQ==
@@ -0,0 +1,37 @@
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
+ export declare class UnbondBuilder extends PolyxBaseBuilder {
7
+ protected _amount: string;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ protected get transactionType(): TransactionType;
10
+ /**
11
+ * Build the unbond transaction
12
+ */
13
+ protected buildTransaction(): UnsignedTransaction;
14
+ /**
15
+ * Set the amount to unbond
16
+ */
17
+ amount(amount: string): this;
18
+ /**
19
+ * Get the amount to unbond
20
+ */
21
+ getAmount(): string;
22
+ /** @inheritdoc */
23
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
24
+ /** @inheritdoc */
25
+ protected fromImplementation(rawTransaction: string): Transaction;
26
+ /** @inheritdoc */
27
+ validateTransaction(tx: Transaction): void;
28
+ /**
29
+ * Validate the unbond fields
30
+ */
31
+ private validateFields;
32
+ /**
33
+ * Validates fields for testing
34
+ */
35
+ testValidateFields(): void;
36
+ }
37
+ //# sourceMappingURL=unbondBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbondBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unbondBuilder.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;AAQhF,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAmBrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAcjE,kBAAkB;IAClB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAK1C;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAG3B"}
@@ -0,0 +1,100 @@
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.UnbondBuilder = 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
+ // [CLEANUP-V8-OLD] v7 path — v7 metadata material. Retained as the Flipt rollback path alongside
14
+ // V8UnbondBuilder (same logic, v8 material).
15
+ class UnbondBuilder extends baseBuilder_1.PolyxBaseBuilder {
16
+ constructor(_coinConfig) {
17
+ super(_coinConfig);
18
+ this.material(utils_1.default.getMaterial(_coinConfig.network.type));
19
+ }
20
+ get transactionType() {
21
+ return sdk_core_1.TransactionType.StakingDeactivate;
22
+ }
23
+ /**
24
+ * Build the unbond transaction
25
+ */
26
+ buildTransaction() {
27
+ const baseTxInfo = this.createBaseTxInfo();
28
+ return txwrapper_polkadot_1.methods.staking.unbond({
29
+ value: this._amount,
30
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
31
+ }
32
+ /**
33
+ * Set the amount to unbond
34
+ */
35
+ amount(amount) {
36
+ this.validateValue(new bignumber_js_1.default(amount));
37
+ this._amount = amount;
38
+ return this;
39
+ }
40
+ /**
41
+ * Get the amount to unbond
42
+ */
43
+ getAmount() {
44
+ return this._amount;
45
+ }
46
+ /** @inheritdoc */
47
+ validateDecodedTransaction(decodedTxn) {
48
+ const methodName = decodedTxn.method?.name;
49
+ if (methodName === 'unbond') {
50
+ const txMethod = decodedTxn.method.args;
51
+ const value = txMethod.value;
52
+ const validationResult = txnSchema_1.UnbondTransactionSchema.validate({
53
+ value,
54
+ });
55
+ if (validationResult.error) {
56
+ throw new sdk_core_1.InvalidTransactionError(`Invalid unbond transaction: ${validationResult.error.message}`);
57
+ }
58
+ }
59
+ else {
60
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction type: ${methodName}. Expected unbond`);
61
+ }
62
+ }
63
+ /** @inheritdoc */
64
+ fromImplementation(rawTransaction) {
65
+ const tx = super.fromImplementation(rawTransaction);
66
+ const methodName = this._method?.name;
67
+ if (methodName === 'unbond' && this._method) {
68
+ const txMethod = this._method.args;
69
+ this.amount(txMethod.value);
70
+ }
71
+ else {
72
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${methodName}. Expected unbond`);
73
+ }
74
+ return tx;
75
+ }
76
+ /** @inheritdoc */
77
+ validateTransaction(tx) {
78
+ super.validateTransaction(tx);
79
+ this.validateFields();
80
+ }
81
+ /**
82
+ * Validate the unbond fields
83
+ */
84
+ validateFields() {
85
+ const validationResult = txnSchema_1.UnbondTransactionSchema.validate({
86
+ value: this._amount,
87
+ });
88
+ if (validationResult.error) {
89
+ throw new sdk_core_1.InvalidTransactionError(`Invalid unbond transaction: ${validationResult.error.message}`);
90
+ }
91
+ }
92
+ /**
93
+ * Validates fields for testing
94
+ */
95
+ testValidateFields() {
96
+ this.validateFields();
97
+ }
98
+ }
99
+ exports.UnbondBuilder = UnbondBuilder;
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib25kQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdW5ib25kQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwrQ0FBaUQ7QUFFakQsc0VBQXdEO0FBRXhELG1EQUFnRjtBQUNoRiwyQ0FBc0Q7QUFDdEQsb0RBQTRCO0FBRTVCLGdFQUFxQztBQUVyQyxpR0FBaUc7QUFDakcsNkNBQTZDO0FBQzdDLE1BQWEsYUFBYyxTQUFRLDhCQUFnQjtJQUdqRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGlCQUFpQixDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUzQyxPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDM0I7WUFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDcEIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiwwQkFBMEIsQ0FBQyxVQUFtRDtRQUM1RSxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQWMsQ0FBQztRQUVyRCxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQTZCLENBQUM7WUFDakUsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUU3QixNQUFNLGdCQUFnQixHQUFHLG1DQUF1QixDQUFDLFFBQVEsQ0FBQztnQkFDeEQsS0FBSzthQUNOLENBQUMsQ0FBQztZQUVILElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywrQkFBK0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckcsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixVQUFVLG1CQUFtQixDQUFDLENBQUM7UUFDaEcsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFjLENBQUM7UUFFaEQsSUFBSSxVQUFVLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQTZCLENBQUM7WUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLFVBQVUsbUJBQW1CLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLEVBQWU7UUFDakMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsbUNBQXVCLENBQUMsUUFBUSxDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztTQUNwQixDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQywrQkFBK0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckcsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBdkdELHNDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBQb2x5eEJhc2VCdWlsZGVyIH0gZnJvbSAnLi9iYXNlQnVpbGRlcic7XG5pbXBvcnQgeyBEZWNvZGVkU2lnbmVkVHgsIERlY29kZWRTaWduaW5nUGF5bG9hZCwgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBVbmJvbmRUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVuYm9uZEFyZ3MgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuLy8gW0NMRUFOVVAtVjgtT0xEXSB2NyBwYXRoIOKAlCB2NyBtZXRhZGF0YSBtYXRlcmlhbC4gUmV0YWluZWQgYXMgdGhlIEZsaXB0IHJvbGxiYWNrIHBhdGggYWxvbmdzaWRlXG4vLyBWOFVuYm9uZEJ1aWxkZXIgKHNhbWUgbG9naWMsIHY4IG1hdGVyaWFsKS5cbmV4cG9ydCBjbGFzcyBVbmJvbmRCdWlsZGVyIGV4dGVuZHMgUG9seXhCYXNlQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0TWF0ZXJpYWwoX2NvaW5Db25maWcubmV0d29yay50eXBlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHVuYm9uZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuXG4gICAgcmV0dXJuIG1ldGhvZHMuc3Rha2luZy51bmJvbmQoXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFtb3VudCB0byB1bmJvbmRcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGFtb3VudCkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFtb3VudCB0byB1bmJvbmRcbiAgICovXG4gIGdldEFtb3VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbW91bnQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogdm9pZCB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lIGFzIHN0cmluZztcblxuICAgIGlmIChtZXRob2ROYW1lID09PSAndW5ib25kJykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVW5ib25kQXJncztcbiAgICAgIGNvbnN0IHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBVbmJvbmRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB1bmJvbmQgdHJhbnNhY3Rpb246ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb24gdHlwZTogJHttZXRob2ROYW1lfS4gRXhwZWN0ZWQgdW5ib25kYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHRoaXMuX21ldGhvZD8ubmFtZSBhcyBzdHJpbmc7XG5cbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ3VuYm9uZCcgJiYgdGhpcy5fbWV0aG9kKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVW5ib25kQXJncztcbiAgICAgIHRoaXMuYW1vdW50KHR4TWV0aG9kLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7bWV0aG9kTmFtZX0uIEV4cGVjdGVkIHVuYm9uZGApO1xuICAgIH1cblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHgpO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgdW5ib25kIGZpZWxkc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVW5ib25kVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdW5ib25kIHRyYW5zYWN0aW9uOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGZpZWxkcyBmb3IgdGVzdGluZ1xuICAgKi9cbiAgdGVzdFZhbGlkYXRlRmllbGRzKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxufVxuIl19
@@ -1,17 +1,47 @@
1
- import { BaseUtils } from '@bitgo-beta/sdk-core';
2
- export declare class Utils implements BaseUtils {
3
- /** @inheritdoc */
4
- isValidAddress(address: string): boolean;
5
- /** @inheritdoc */
6
- isValidBlockId(hash: string): boolean;
7
- /** @inheritdoc */
8
- isValidPrivateKey(key: string): boolean;
9
- /** @inheritdoc */
10
- isValidPublicKey(key: string): boolean;
11
- /** @inheritdoc */
12
- isValidSignature(signature: string): boolean;
13
- /** @inheritdoc */
14
- isValidTransactionId(txId: string): boolean;
1
+ import { Utils as SubstrateUtils, Interface } from '@bitgo-beta/abstract-substrate';
2
+ import { NetworkType } from '@bitgo-beta/statics';
3
+ import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
4
+ import { BatchCallObject } from './iface';
5
+ export declare class Utils extends SubstrateUtils {
6
+ /**
7
+ * Get the appropriate address format based on network type
8
+ * Returns 12 for mainnet and 42 for testnet
9
+ *
10
+ * @param coinName The name of the coin
11
+ * @returns The address format to use
12
+ */
13
+ getAddressFormat(coinName: string): number;
14
+ /**
15
+ * Checks if a string is a valid Polymesh DID (Decentralized Identifier)
16
+ * DIDs are 32-byte hex strings (0x prefix + 64 hex characters)
17
+ *
18
+ * @param {string} did - The string to validate
19
+ * @returns {boolean} true if valid DID format, false otherwise
20
+ */
21
+ isValidDid(did: string): boolean;
22
+ /**
23
+ * Encode a memo string using the NEW Polymesh format:
24
+ * UTF-8 bytes right-padded with 0x00 to 32 bytes, returned as a 0x-prefixed hex string.
25
+ *
26
+ * @param text The intended memo string
27
+ * @returns 0x-prefixed 66-character hex string representing the 32-byte encoded memo
28
+ */
29
+ encodeMemoNew(text: string): string;
30
+ /**
31
+ * Detect whether a decoded 32-byte memo (0x-prefixed hex from txwrapper decode()) uses NEW encoding.
32
+ *
33
+ * Detection rules (see problem.md):
34
+ * - Any 0x00 byte → NEW (null right-padding)
35
+ * - All 0x30 bytes → OLD (memo "0" in ASCII-left-padded form)
36
+ * - Leading 0x30 bytes then non-0x30 content → OLD (ASCII '0' left-padding)
37
+ * - Otherwise → NEW (content at byte 0, full 32-byte memo, or no ASCII pad)
38
+ *
39
+ * @param memo 0x-prefixed 66-char hex string as returned by txwrapper decode()
40
+ */
41
+ isNewMemoEncoding(memo: string): boolean;
42
+ getMaterial(networkType: NetworkType): Interface.Material;
43
+ getV8Material(networkType: NetworkType): Interface.Material;
44
+ decodeMethodName(call: BatchCallObject, registry: TypeRegistry): string;
15
45
  }
16
46
  declare const utils: Utils;
17
47
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG5C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,qBAAa,KAAM,SAAQ,cAAc;IACvC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK1C;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASnC;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAiBxC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAIzD,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAM3D,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;CA0BxE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}