@bitgo-beta/sdk-coin-polyx 1.0.1-beta.72 → 1.0.1-beta.720

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 (135) 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 +299 -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 +127 -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 +101 -0
  16. package/dist/src/lib/constants.d.ts +12 -0
  17. package/dist/src/lib/constants.d.ts.map +1 -0
  18. package/dist/src/lib/constants.js +15 -0
  19. package/dist/src/lib/iface.d.ts +138 -0
  20. package/dist/src/lib/iface.d.ts.map +1 -1
  21. package/dist/src/lib/iface.js +37 -1
  22. package/dist/src/lib/index.d.ts +12 -0
  23. package/dist/src/lib/index.d.ts.map +1 -1
  24. package/dist/src/lib/index.js +37 -2
  25. package/dist/src/lib/preApproveAssetBuilder.d.ts +33 -0
  26. package/dist/src/lib/preApproveAssetBuilder.d.ts.map +1 -0
  27. package/dist/src/lib/preApproveAssetBuilder.js +77 -0
  28. package/dist/src/lib/registerDidWithCDDBuilder.d.ts +7 -2
  29. package/dist/src/lib/registerDidWithCDDBuilder.d.ts.map +1 -1
  30. package/dist/src/lib/registerDidWithCDDBuilder.js +19 -3
  31. package/dist/src/lib/rejectInstructionBuilder.d.ts +29 -0
  32. package/dist/src/lib/rejectInstructionBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/rejectInstructionBuilder.js +89 -0
  34. package/dist/src/lib/tokenTransferBuilder.d.ts +58 -0
  35. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/tokenTransferBuilder.js +158 -0
  37. package/dist/src/lib/transaction.d.ts +30 -0
  38. package/dist/src/lib/transaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction.js +193 -0
  40. package/dist/src/lib/transactionBuilderFactory.d.ts +21 -1
  41. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilderFactory.js +80 -4
  43. package/dist/src/lib/transferBuilder.d.ts +4 -2
  44. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  45. package/dist/src/lib/transferBuilder.js +10 -5
  46. package/dist/src/lib/txnSchema.d.ts +47 -0
  47. package/dist/src/lib/txnSchema.d.ts.map +1 -1
  48. package/dist/src/lib/txnSchema.js +152 -2
  49. package/dist/src/lib/unbondBuilder.d.ts +37 -0
  50. package/dist/src/lib/unbondBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/unbondBuilder.js +98 -0
  52. package/dist/src/lib/utils.d.ts +11 -0
  53. package/dist/src/lib/utils.d.ts.map +1 -1
  54. package/dist/src/lib/utils.js +36 -1
  55. package/dist/src/lib/withdrawUnbondedBuilder.d.ts +35 -0
  56. package/dist/src/lib/withdrawUnbondedBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/withdrawUnbondedBuilder.js +89 -0
  58. package/dist/src/polyx.d.ts +50 -9
  59. package/dist/src/polyx.d.ts.map +1 -1
  60. package/dist/src/polyx.js +269 -15
  61. package/dist/src/polyxToken.d.ts +20 -0
  62. package/dist/src/polyxToken.d.ts.map +1 -0
  63. package/dist/src/polyxToken.js +55 -0
  64. package/dist/src/register.d.ts.map +1 -1
  65. package/dist/src/register.js +5 -1
  66. package/dist/src/tpolyx.d.ts +7 -0
  67. package/dist/src/tpolyx.d.ts.map +1 -1
  68. package/dist/src/tpolyx.js +11 -1
  69. package/dist/test/integration/index.d.ts +1 -0
  70. package/dist/test/integration/index.d.ts.map +1 -0
  71. package/dist/test/integration/index.js +1 -0
  72. package/dist/test/resources/index.d.ts +106 -0
  73. package/dist/test/resources/index.d.ts.map +1 -0
  74. package/dist/test/resources/index.js +112 -0
  75. package/dist/test/resources/mainnet.d.ts +2 -0
  76. package/dist/test/resources/mainnet.d.ts.map +1 -0
  77. package/dist/test/resources/mainnet.js +5 -0
  78. package/dist/test/resources/materialData.json +8 -0
  79. package/dist/test/resources/materialDataModified.json +8 -0
  80. package/dist/test/resources/testnet.d.ts +2 -0
  81. package/dist/test/resources/testnet.d.ts.map +1 -0
  82. package/dist/test/resources/testnet.js +5 -0
  83. package/dist/test/resources/wrwUsers.d.ts +19 -0
  84. package/dist/test/resources/wrwUsers.d.ts.map +1 -0
  85. package/dist/test/resources/wrwUsers.js +60 -0
  86. package/dist/test/unit/polyx.d.ts +2 -0
  87. package/dist/test/unit/polyx.d.ts.map +1 -0
  88. package/dist/test/unit/polyx.js +209 -0
  89. package/dist/test/unit/transactionBuilder/base.d.ts +4 -0
  90. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  91. package/dist/test/unit/transactionBuilder/base.js +245 -0
  92. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts +2 -0
  93. package/dist/test/unit/transactionBuilder/batchStakingBuilder.d.ts.map +1 -0
  94. package/dist/test/unit/transactionBuilder/batchStakingBuilder.js +263 -0
  95. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts +2 -0
  96. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.d.ts.map +1 -0
  97. package/dist/test/unit/transactionBuilder/batchUnstakingBuilder.js +159 -0
  98. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts +2 -0
  99. package/dist/test/unit/transactionBuilder/bondExtraBuilder.d.ts.map +1 -0
  100. package/dist/test/unit/transactionBuilder/bondExtraBuilder.js +158 -0
  101. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts +2 -0
  102. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.d.ts.map +1 -0
  103. package/dist/test/unit/transactionBuilder/preApproveAssetBuilder.js +115 -0
  104. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts +2 -0
  105. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.d.ts.map +1 -0
  106. package/dist/test/unit/transactionBuilder/registerDidWithCDDBuilder.js +302 -0
  107. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts +2 -0
  108. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.d.ts.map +1 -0
  109. package/dist/test/unit/transactionBuilder/rejectInstructionBuilder.js +128 -0
  110. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts +2 -0
  111. package/dist/test/unit/transactionBuilder/singletonRegistry.d.ts.map +1 -0
  112. package/dist/test/unit/transactionBuilder/singletonRegistry.js +59 -0
  113. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  114. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  115. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +140 -0
  116. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  117. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  118. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +74 -0
  119. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  120. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  121. package/dist/test/unit/transactionBuilder/transferBuilder.js +326 -0
  122. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts +2 -0
  123. package/dist/test/unit/transactionBuilder/unbondBuilder.d.ts.map +1 -0
  124. package/dist/test/unit/transactionBuilder/unbondBuilder.js +144 -0
  125. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts +2 -0
  126. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.d.ts.map +1 -0
  127. package/dist/test/unit/transactionBuilder/withdrawUnbondedBuilder.js +138 -0
  128. package/dist/test/unit/utils.d.ts +2 -0
  129. package/dist/test/unit/utils.d.ts.map +1 -0
  130. package/dist/test/unit/utils.js +143 -0
  131. package/dist/tsconfig.tsbuildinfo +1 -0
  132. package/package.json +15 -9
  133. package/.eslintignore +0 -4
  134. package/.mocharc.yml +0 -8
  135. package/CHANGELOG.md +0 -22
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RegisterDidWithCDDTransactionSchema = void 0;
6
+ exports.WithdrawUnbondedTransactionSchema = exports.UnbondTransactionSchema = exports.BatchUnstakingTransactionSchema = exports.bondSchema = exports.BatchTransactionSchema = exports.NominateTransactionSchema = exports.BondExtraTransactionSchema = exports.RejectInstructionTransactionSchema = exports.AddAndAffirmWithMediatorsTransactionSchema = exports.PreApproveAssetTransactionSchema = exports.RegisterDidWithCDDTransactionSchema = void 0;
7
7
  const joi_1 = __importDefault(require("joi"));
8
8
  const utils_1 = __importDefault(require("./utils"));
9
9
  const addressSchema = joi_1.default.string().custom((addr) => utils_1.default.isValidAddress(addr));
@@ -12,4 +12,154 @@ exports.RegisterDidWithCDDTransactionSchema = joi_1.default.object({
12
12
  secondaryKeys: joi_1.default.array().length(0).required(),
13
13
  expiry: joi_1.default.valid(null).required(),
14
14
  });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhuU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90eG5TY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQUU1QixNQUFNLGFBQWEsR0FBRyxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFbkUsUUFBQSxtQ0FBbUMsR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO0lBQzVELGFBQWEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLGFBQWEsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQyxNQUFNLEVBQUUsYUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpvaSBmcm9tICdqb2knO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBhZGRyZXNzU2NoZW1hID0gam9pLnN0cmluZygpLmN1c3RvbSgoYWRkcikgPT4gVXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcikpO1xuXG5leHBvcnQgY29uc3QgUmVnaXN0ZXJEaWRXaXRoQ0REVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdGFyZ2V0QWNjb3VudDogYWRkcmVzc1NjaGVtYS5yZXF1aXJlZCgpLFxuICBzZWNvbmRhcnlLZXlzOiBqb2kuYXJyYXkoKS5sZW5ndGgoMCkucmVxdWlyZWQoKSxcbiAgZXhwaXJ5OiBqb2kudmFsaWQobnVsbCkucmVxdWlyZWQoKSxcbn0pO1xuIl19
15
+ exports.PreApproveAssetTransactionSchema = joi_1.default.object({
16
+ assetId: joi_1.default.string().required(),
17
+ });
18
+ exports.AddAndAffirmWithMediatorsTransactionSchema = joi_1.default.object({
19
+ venueId: joi_1.default.valid(null).required(),
20
+ settlementType: joi_1.default
21
+ .object({
22
+ settleOnAffirmation: joi_1.default.valid(null),
23
+ })
24
+ .required(),
25
+ tradeDate: joi_1.default.valid(null).required(),
26
+ valueDate: joi_1.default.valid(null).required(),
27
+ legs: joi_1.default
28
+ .array()
29
+ .items(joi_1.default.object({
30
+ fungible: joi_1.default
31
+ .object({
32
+ sender: joi_1.default
33
+ .object({
34
+ did: addressSchema.required(),
35
+ kind: joi_1.default
36
+ .object({
37
+ default: joi_1.default.valid(null),
38
+ })
39
+ .required(),
40
+ })
41
+ .required(),
42
+ receiver: joi_1.default
43
+ .object({
44
+ did: addressSchema.required(),
45
+ kind: joi_1.default
46
+ .object({
47
+ default: joi_1.default.valid(null),
48
+ })
49
+ .required(),
50
+ })
51
+ .required(),
52
+ assetId: joi_1.default.string().required(),
53
+ amount: joi_1.default.number().required(),
54
+ })
55
+ .required(),
56
+ }))
57
+ .required(),
58
+ portfolios: joi_1.default
59
+ .array()
60
+ .items(joi_1.default.object({
61
+ did: addressSchema.required(),
62
+ kind: joi_1.default
63
+ .object({
64
+ default: joi_1.default.valid(null),
65
+ })
66
+ .required(),
67
+ }))
68
+ .required(),
69
+ instructionMemo: joi_1.default.string().required(),
70
+ mediators: joi_1.default.array().length(0).required(),
71
+ });
72
+ exports.RejectInstructionTransactionSchema = joi_1.default.object({
73
+ id: joi_1.default.string().required(),
74
+ portfolio: joi_1.default
75
+ .object({
76
+ did: addressSchema.required(),
77
+ kind: joi_1.default
78
+ .object({
79
+ default: joi_1.default.valid(null),
80
+ })
81
+ .required(),
82
+ })
83
+ .required(),
84
+ numberOfAssets: joi_1.default
85
+ .object({
86
+ fungible: joi_1.default.number().required(),
87
+ nonFungible: joi_1.default.number().required(),
88
+ offChain: joi_1.default.number().required(),
89
+ })
90
+ .optional(),
91
+ });
92
+ // For standalone bondExtra transactions
93
+ exports.BondExtraTransactionSchema = joi_1.default.object({
94
+ value: joi_1.default.string().required(),
95
+ });
96
+ // For nominate transactions in batch
97
+ exports.NominateTransactionSchema = joi_1.default.object({
98
+ validators: joi_1.default.array().items(addressSchema).min(1).required(),
99
+ });
100
+ // For batch validation
101
+ exports.BatchTransactionSchema = {
102
+ validate: (value) => joi_1.default
103
+ .object({
104
+ amount: joi_1.default.string().required(),
105
+ controller: addressSchema.required(),
106
+ // Payee can be a string or an object with Account property
107
+ payee: joi_1.default
108
+ .alternatives()
109
+ .try(joi_1.default.string(), joi_1.default.object({
110
+ Account: addressSchema,
111
+ }))
112
+ .required(),
113
+ validators: joi_1.default.array().items(addressSchema).min(1).required(),
114
+ })
115
+ .validate(value),
116
+ validateBond: (value) => joi_1.default
117
+ .object({
118
+ value: joi_1.default.string().required(),
119
+ controller: addressSchema.required(),
120
+ payee: joi_1.default
121
+ .alternatives()
122
+ .try(joi_1.default.string(), joi_1.default.object({
123
+ Account: addressSchema,
124
+ }))
125
+ .required(),
126
+ })
127
+ .validate(value),
128
+ validateNominate: (value) => joi_1.default
129
+ .object({
130
+ validators: joi_1.default.array().items(addressSchema).min(1).required(),
131
+ })
132
+ .validate(value),
133
+ };
134
+ exports.bondSchema = joi_1.default.object({
135
+ value: joi_1.default.string().required(),
136
+ controller: addressSchema.required(),
137
+ payee: joi_1.default
138
+ .alternatives()
139
+ .try(joi_1.default.string().valid('Staked', 'Stash', 'Controller'), joi_1.default.object({
140
+ Account: addressSchema.required(),
141
+ }))
142
+ .required(),
143
+ });
144
+ exports.BatchUnstakingTransactionSchema = {
145
+ validate: (value) => joi_1.default
146
+ .object({
147
+ value: joi_1.default.string().required(),
148
+ })
149
+ .validate(value),
150
+ };
151
+ exports.UnbondTransactionSchema = {
152
+ validate: (value) => joi_1.default
153
+ .object({
154
+ value: joi_1.default.string().required(),
155
+ })
156
+ .validate(value),
157
+ };
158
+ exports.WithdrawUnbondedTransactionSchema = {
159
+ validate: (value) => joi_1.default
160
+ .object({
161
+ slashingSpans: joi_1.default.number().min(0).required(),
162
+ })
163
+ .validate(value),
164
+ };
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhuU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90eG5TY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQXVCNUIsTUFBTSxhQUFhLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRW5FLFFBQUEsbUNBQW1DLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztJQUM1RCxhQUFhLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUN2QyxhQUFhLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsTUFBTSxFQUFFLGFBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQztBQUVVLFFBQUEsZ0NBQWdDLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztJQUN6RCxPQUFPLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNqQyxDQUFDLENBQUM7QUFFVSxRQUFBLDBDQUEwQyxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbkUsT0FBTyxFQUFFLGFBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLGNBQWMsRUFBRSxhQUFHO1NBQ2hCLE1BQU0sQ0FBQztRQUNOLG1CQUFtQixFQUFFLGFBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3JDLENBQUM7U0FDRCxRQUFRLEVBQUU7SUFDYixTQUFTLEVBQUUsYUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsU0FBUyxFQUFF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LE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUMvQixDQUFDO1NBQ0QsUUFBUSxDQUFDLEtBQUssQ0FBQztDQUNyQixDQUFDO0FBRVcsUUFBQSxpQ0FBaUMsR0FBRztJQUMvQyxRQUFRLEVBQUUsQ0FBQyxLQUFnQyxFQUF3QixFQUFFLENBQ25FLGFBQUc7U0FDQSxNQUFNLENBQUM7UUFDTixhQUFhLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7S0FDOUMsQ0FBQztTQUNELFFBQVEsQ0FBQyxLQUFLLENBQUM7Q0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqb2kgZnJvbSAnam9pJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgQmF0Y2hWYWxpZGF0aW9uT2JqZWN0ID0ge1xuICBhbW91bnQ6IHN0cmluZztcbiAgY29udHJvbGxlcjogc3RyaW5nO1xuICBwYXllZTogc3RyaW5nIHwgeyBBY2NvdW50OiBzdHJpbmcgfTtcbiAgdmFsaWRhdG9yczogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCb25kVmFsaWRhdGlvbk9iamVjdCA9IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY29udHJvbGxlcjogc3RyaW5nO1xuICBwYXllZTogc3RyaW5nIHwgeyBBY2NvdW50OiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vbWluYXRlVmFsaWRhdGlvbk9iamVjdCA9IHtcbiAgdmFsaWRhdG9yczogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCb25kRXh0cmFWYWxpZGF0aW9uT2JqZWN0ID0ge1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuY29uc3QgYWRkcmVzc1NjaGVtYSA9IGpvaS5zdHJpbmcoKS5jdXN0b20oKGFkZHIpID0+IFV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHIpKTtcblxuZXhwb3J0IGNvbnN0IFJlZ2lzdGVyRGlkV2l0aENERFRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHRhcmdldEFjY291bnQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgc2Vjb25kYXJ5S2V5czogam9pLmFycmF5KCkubGVuZ3RoKDApLnJlcXVpcmVkKCksXG4gIGV4cGlyeTogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFByZUFwcHJvdmVBc3NldFRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIGFzc2V0SWQ6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBZGRBbmRBZmZpcm1XaXRoTWVkaWF0b3JzVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdmVudWVJZDogam9pLnZhbGlkKG51bGwpLnJlcXVpcmVkKCksXG4gIHNldHRsZW1lbnRUeXBlOiBqb2lcbiAgICAub2JqZWN0KHtcbiAgICAgIHNldHRsZU9uQWZmaXJtYXRpb246IGpvaS52YWxpZChudWxsKSxcbiAgICB9KVxuICAgIC5yZXF1aXJlZCgpLFxuICB0cmFkZURhdGU6IGpvaS52YWxpZChudWxsKS5yZXF1aXJlZCgpLFxuICB2YWx1ZURhdGU6IGpvaS52YWxpZChudWxsKS5yZXF1aXJlZCgpLFxuICBsZWdzOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICBmdW5naWJsZTogam9pXG4gICAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgICBzZW5kZXI6IGpvaVxuICAgICAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgICAgICAgICBraW5kOiBqb2lcbiAgICAgICAgICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICAgICAgcmVjZWl2ZXI6IGpvaVxuICAgICAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgICAgICAgICBraW5kOiBqb2lcbiAgICAgICAgICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICAgICAgYXNzZXRJZDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgICAgICBhbW91bnQ6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgcG9ydGZvbGlvczogam9pXG4gICAgLmFycmF5KClcbiAgICAuaXRlbXMoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZGlkOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICAgIGtpbmQ6IGpvaVxuICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgZGVmYXVsdDogam9pLnZhbGlkKG51bGwpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICB9KVxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgaW5zdHJ1Y3Rpb25NZW1vOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgbWVkaWF0b3JzOiBqb2kuYXJyYXkoKS5sZW5ndGgoMCkucmVxdWlyZWQoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVqZWN0SW5zdHJ1Y3Rpb25UcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICBpZDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHBvcnRmb2xpbzogam9pXG4gICAgLm9iamVjdCh7XG4gICAgICBkaWQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgIGtpbmQ6IGpvaVxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBkZWZhdWx0OiBqb2kudmFsaWQobnVsbCksXG4gICAgICAgIH0pXG4gICAgICAgIC5yZXF1aXJlZCgpLFxuICAgIH0pXG4gICAgLnJlcXVpcmVkKCksXG4gIG51bWJlck9mQXNzZXRzOiBqb2lcbiAgICAub2JqZWN0KHtcbiAgICAgIGZ1bmdpYmxlOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgIG5vbkZ1bmdpYmxlOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgIG9mZkNoYWluOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpLFxufSk7XG5cbi8vIEZvciBzdGFuZGFsb25lIGJvbmRFeHRyYSB0cmFuc2FjdGlvbnNcbmV4cG9ydCBjb25zdCBCb25kRXh0cmFUcmFuc2FjdGlvblNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG59KTtcblxuLy8gRm9yIG5vbWluYXRlIHRyYW5zYWN0aW9ucyBpbiBiYXRjaFxuZXhwb3J0IGNvbnN0IE5vbWluYXRlVHJhbnNhY3Rpb25TY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdmFsaWRhdG9yczogam9pLmFycmF5KCkuaXRlbXMoYWRkcmVzc1NjaGVtYSkubWluKDEpLnJlcXVpcmVkKCksXG59KTtcblxuLy8gRm9yIGJhdGNoIHZhbGlkYXRpb25cbmV4cG9ydCBjb25zdCBCYXRjaFRyYW5zYWN0aW9uU2NoZW1hID0ge1xuICB2YWxpZGF0ZTogKHZhbHVlOiBCYXRjaFZhbGlkYXRpb25PYmplY3QpOiBqb2kuVmFsaWRhdGlvblJlc3VsdCA9PlxuICAgIGpvaVxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIGFtb3VudDogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbnRyb2xsZXI6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgICAgLy8gUGF5ZWUgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCB3aXRoIEFjY291bnQgcHJvcGVydHlcbiAgICAgICAgcGF5ZWU6IGpvaVxuICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgIC50cnkoXG4gICAgICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgQWNjb3VudDogYWRkcmVzc1NjaGVtYSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICB2YWxpZGF0b3JzOiBqb2kuYXJyYXkoKS5pdGVtcyhhZGRyZXNzU2NoZW1hKS5taW4oMSkucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgICAudmFsaWRhdGUodmFsdWUpLFxuXG4gIHZhbGlkYXRlQm9uZDogKHZhbHVlOiBCb25kVmFsaWRhdGlvbk9iamVjdCk6IGpvaS5WYWxpZGF0aW9uUmVzdWx0ID0+XG4gICAgam9pXG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb250cm9sbGVyOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICAgIHBheWVlOiBqb2lcbiAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAudHJ5KFxuICAgICAgICAgICAgam9pLnN0cmluZygpLFxuICAgICAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgICAgIEFjY291bnQ6IGFkZHJlc3NTY2hlbWEsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgICAudmFsaWRhdGUodmFsdWUpLFxuXG4gIHZhbGlkYXRlTm9taW5hdGU6ICh2YWx1ZTogTm9taW5hdGVWYWxpZGF0aW9uT2JqZWN0KTogam9pLlZhbGlkYXRpb25SZXN1bHQgPT5cbiAgICBqb2lcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICB2YWxpZGF0b3JzOiBqb2kuYXJyYXkoKS5pdGVtcyhhZGRyZXNzU2NoZW1hKS5taW4oMSkucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgICAudmFsaWRhdGUodmFsdWUpLFxufTtcblxuZXhwb3J0IGNvbnN0IGJvbmRTY2hlbWEgPSBqb2kub2JqZWN0KHtcbiAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBjb250cm9sbGVyOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG4gIHBheWVlOiBqb2lcbiAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAudHJ5KFxuICAgICAgam9pLnN0cmluZygpLnZhbGlkKCdTdGFrZWQnLCAnU3Rhc2gnLCAnQ29udHJvbGxlcicpLFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIEFjY291bnQ6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICAgIH0pXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBCYXRjaFVuc3Rha2luZ1RyYW5zYWN0aW9uU2NoZW1hID0ge1xuICB2YWxpZGF0ZTogKHZhbHVlOiB7IHZhbHVlOiBzdHJpbmcgfSk6IGpvaS5WYWxpZGF0aW9uUmVzdWx0ID0+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;AAMhF,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,98 @@
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
+ class UnbondBuilder extends baseBuilder_1.PolyxBaseBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this.material(utils_1.default.getMaterial(_coinConfig.network.type));
17
+ }
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.StakingDeactivate;
20
+ }
21
+ /**
22
+ * Build the unbond transaction
23
+ */
24
+ buildTransaction() {
25
+ const baseTxInfo = this.createBaseTxInfo();
26
+ return txwrapper_polkadot_1.methods.staking.unbond({
27
+ value: this._amount,
28
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
29
+ }
30
+ /**
31
+ * Set the amount to unbond
32
+ */
33
+ amount(amount) {
34
+ this.validateValue(new bignumber_js_1.default(amount));
35
+ this._amount = amount;
36
+ return this;
37
+ }
38
+ /**
39
+ * Get the amount to unbond
40
+ */
41
+ getAmount() {
42
+ return this._amount;
43
+ }
44
+ /** @inheritdoc */
45
+ validateDecodedTransaction(decodedTxn) {
46
+ const methodName = decodedTxn.method?.name;
47
+ if (methodName === 'unbond') {
48
+ const txMethod = decodedTxn.method.args;
49
+ const value = txMethod.value;
50
+ const validationResult = txnSchema_1.UnbondTransactionSchema.validate({
51
+ value,
52
+ });
53
+ if (validationResult.error) {
54
+ throw new sdk_core_1.InvalidTransactionError(`Invalid unbond transaction: ${validationResult.error.message}`);
55
+ }
56
+ }
57
+ else {
58
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction type: ${methodName}. Expected unbond`);
59
+ }
60
+ }
61
+ /** @inheritdoc */
62
+ fromImplementation(rawTransaction) {
63
+ const tx = super.fromImplementation(rawTransaction);
64
+ const methodName = this._method?.name;
65
+ if (methodName === 'unbond' && this._method) {
66
+ const txMethod = this._method.args;
67
+ this.amount(txMethod.value);
68
+ }
69
+ else {
70
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${methodName}. Expected unbond`);
71
+ }
72
+ return tx;
73
+ }
74
+ /** @inheritdoc */
75
+ validateTransaction(tx) {
76
+ super.validateTransaction(tx);
77
+ this.validateFields();
78
+ }
79
+ /**
80
+ * Validate the unbond fields
81
+ */
82
+ validateFields() {
83
+ const validationResult = txnSchema_1.UnbondTransactionSchema.validate({
84
+ value: this._amount,
85
+ });
86
+ if (validationResult.error) {
87
+ throw new sdk_core_1.InvalidTransactionError(`Invalid unbond transaction: ${validationResult.error.message}`);
88
+ }
89
+ }
90
+ /**
91
+ * Validates fields for testing
92
+ */
93
+ testValidateFields() {
94
+ this.validateFields();
95
+ }
96
+ }
97
+ exports.UnbondBuilder = UnbondBuilder;
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib25kQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdW5ib25kQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwrQ0FBaUQ7QUFFakQsc0VBQXdEO0FBRXhELG1EQUFnRjtBQUNoRiwyQ0FBc0Q7QUFDdEQsb0RBQTRCO0FBRTVCLGdFQUFxQztBQUVyQyxNQUFhLGFBQWMsU0FBUSw4QkFBZ0I7SUFHakQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFM0MsT0FBTyw0QkFBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzNCO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3BCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMEJBQTBCLENBQUMsVUFBbUQ7UUFDNUUsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFjLENBQUM7UUFFckQsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUE2QixDQUFDO1lBQ2pFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFFN0IsTUFBTSxnQkFBZ0IsR0FBRyxtQ0FBdUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hELEtBQUs7YUFDTixDQUFDLENBQUM7WUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsK0JBQStCLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsVUFBVSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBYyxDQUFDO1FBRWhELElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUE2QixDQUFDO1lBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixVQUFVLG1CQUFtQixDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxFQUFlO1FBQ2pDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixNQUFNLGdCQUFnQixHQUFHLG1DQUF1QixDQUFDLFFBQVEsQ0FBQztZQUN4RCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDcEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsK0JBQStCLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQXZHRCxzQ0F1R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgUG9seXhCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZUJ1aWxkZXInO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IG1ldGhvZHMgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVW5ib25kVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBVbmJvbmRBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBVbmJvbmRCdWlsZGVyIGV4dGVuZHMgUG9seXhCYXNlQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMubWF0ZXJpYWwodXRpbHMuZ2V0TWF0ZXJpYWwoX2NvaW5Db25maWcubmV0d29yay50eXBlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHVuYm9uZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuXG4gICAgcmV0dXJuIG1ldGhvZHMuc3Rha2luZy51bmJvbmQoXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICB9LFxuICAgICAgYmFzZVR4SW5mby5iYXNlVHhJbmZvLFxuICAgICAgYmFzZVR4SW5mby5vcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFtb3VudCB0byB1bmJvbmRcbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGFtb3VudCkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFtb3VudCB0byB1bmJvbmRcbiAgICovXG4gIGdldEFtb3VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbW91bnQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogdm9pZCB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IGRlY29kZWRUeG4ubWV0aG9kPy5uYW1lIGFzIHN0cmluZztcblxuICAgIGlmIChtZXRob2ROYW1lID09PSAndW5ib25kJykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVW5ib25kQXJncztcbiAgICAgIGNvbnN0IHZhbHVlID0gdHhNZXRob2QudmFsdWU7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBVbmJvbmRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIHZhbHVlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB1bmJvbmQgdHJhbnNhY3Rpb246ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb24gdHlwZTogJHttZXRob2ROYW1lfS4gRXhwZWN0ZWQgdW5ib25kYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHRoaXMuX21ldGhvZD8ubmFtZSBhcyBzdHJpbmc7XG5cbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ3VuYm9uZCcgJiYgdGhpcy5fbWV0aG9kKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgVW5ib25kQXJncztcbiAgICAgIHRoaXMuYW1vdW50KHR4TWV0aG9kLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7bWV0aG9kTmFtZX0uIEV4cGVjdGVkIHVuYm9uZGApO1xuICAgIH1cblxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHgpO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgdW5ib25kIGZpZWxkc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gVW5ib25kVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdW5ib25kIHRyYW5zYWN0aW9uOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGZpZWxkcyBmb3IgdGVzdGluZ1xuICAgKi9cbiAgdGVzdFZhbGlkYXRlRmllbGRzKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,18 @@
1
1
  import { Utils as SubstrateUtils, Interface } from '@bitgo-beta/abstract-substrate';
2
2
  import { NetworkType } from '@bitgo-beta/statics';
3
+ import { TypeRegistry } from '@substrate/txwrapper-core/lib/types';
4
+ import { BatchCallObject } from './iface';
3
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;
4
14
  getMaterial(networkType: NetworkType): Interface.Material;
15
+ decodeMethodName(call: BatchCallObject, registry: TypeRegistry): string;
5
16
  }
6
17
  declare const utils: Utils;
7
18
  export default utils;
@@ -1 +1 @@
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;AAGlD,qBAAa,KAAM,SAAQ,cAAc;IACvC,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;CAG1D;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,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;AAE1C,qBAAa,KAAM,SAAQ,cAAc;IACvC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK1C,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,QAAQ;IAIzD,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM;CA0BxE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC"}
@@ -5,11 +5,46 @@ const abstract_substrate_1 = require("@bitgo-beta/abstract-substrate");
5
5
  const statics_1 = require("@bitgo-beta/statics");
6
6
  const resources_1 = require("../resources");
7
7
  class Utils extends abstract_substrate_1.Utils {
8
+ /**
9
+ * Get the appropriate address format based on network type
10
+ * Returns 12 for mainnet and 42 for testnet
11
+ *
12
+ * @param coinName The name of the coin
13
+ * @returns The address format to use
14
+ */
15
+ getAddressFormat(coinName) {
16
+ const isMainnet = coinName.toLowerCase() === 'polyx';
17
+ return isMainnet ? 12 : 42;
18
+ }
8
19
  getMaterial(networkType) {
9
20
  return (networkType === statics_1.NetworkType.MAINNET ? resources_1.mainnetMaterial : resources_1.testnetMaterial);
10
21
  }
22
+ decodeMethodName(call, registry) {
23
+ // Handle both callIndex and method formats
24
+ const callWithIndex = call;
25
+ const methodIdentifier = callWithIndex.callIndex || call.method;
26
+ if (typeof methodIdentifier === 'string') {
27
+ // Check if it looks like a hex callIndex
28
+ if (methodIdentifier.startsWith('0x') && methodIdentifier.length > 2) {
29
+ try {
30
+ const decodedCall = registry.findMetaCall(new Uint8Array(Buffer.from(methodIdentifier.replace('0x', ''), 'hex')));
31
+ return decodedCall.method;
32
+ }
33
+ catch (e) {
34
+ // Fallback: assume it's already the method name
35
+ return methodIdentifier;
36
+ }
37
+ }
38
+ else {
39
+ // Already a simple method name
40
+ return methodIdentifier;
41
+ }
42
+ }
43
+ // Fallback
44
+ return String(methodIdentifier);
45
+ }
11
46
  }
12
47
  exports.Utils = Utils;
13
48
  const utils = new Utils();
14
49
  exports.default = utils;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFvRjtBQUNwRixpREFBa0Q7QUFDbEQsNENBQWdFO0FBRWhFLE1BQWEsS0FBTSxTQUFRLDBCQUFjO0lBQ3ZDLFdBQVcsQ0FBQyxXQUF3QjtRQUNsQyxPQUFPLENBQUMsV0FBVyxLQUFLLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywyQkFBZSxDQUFDLENBQUMsQ0FBQywyQkFBZSxDQUFrQyxDQUFDO0lBQ3BILENBQUM7Q0FDRjtBQUpELHNCQUlDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUMxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVdGlscyBhcyBTdWJzdHJhdGVVdGlscywgSW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBtYWlubmV0TWF0ZXJpYWwsIHRlc3RuZXRNYXRlcmlhbCB9IGZyb20gJy4uL3Jlc291cmNlcyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBleHRlbmRzIFN1YnN0cmF0ZVV0aWxzIHtcbiAgZ2V0TWF0ZXJpYWwobmV0d29ya1R5cGU6IE5ldHdvcmtUeXBlKTogSW50ZXJmYWNlLk1hdGVyaWFsIHtcbiAgICByZXR1cm4gKG5ldHdvcmtUeXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gbWFpbm5ldE1hdGVyaWFsIDogdGVzdG5ldE1hdGVyaWFsKSBhcyB1bmtub3duIGFzIEludGVyZmFjZS5NYXRlcmlhbDtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFvRjtBQUNwRixpREFBa0Q7QUFFbEQsNENBQWdFO0FBR2hFLE1BQWEsS0FBTSxTQUFRLDBCQUFjO0lBQ3ZDOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLFFBQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLENBQUM7UUFDckQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBd0I7UUFDbEMsT0FBTyxDQUFDLFdBQVcsS0FBSyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMkJBQWUsQ0FBQyxDQUFDLENBQUMsMkJBQWUsQ0FBa0MsQ0FBQztJQUNwSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBcUIsRUFBRSxRQUFzQjtRQUM1RCwyQ0FBMkM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsSUFBZ0QsQ0FBQztRQUN2RSxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRSxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMseUNBQXlDO1lBQ3pDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckUsSUFBSSxDQUFDO29CQUNILE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQ3ZDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUN2RSxDQUFDO29CQUNGLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQztnQkFDNUIsQ0FBQztnQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNYLGdEQUFnRDtvQkFDaEQsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDMUIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTiwrQkFBK0I7Z0JBQy9CLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFFRCxXQUFXO1FBQ1gsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUEzQ0Qsc0JBMkNDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUMxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVdGlscyBhcyBTdWJzdHJhdGVVdGlscywgSW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3Qtc3Vic3RyYXRlJztcbmltcG9ydCB7IE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBtYWlubmV0TWF0ZXJpYWwsIHRlc3RuZXRNYXRlcmlhbCB9IGZyb20gJy4uL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBCYXRjaENhbGxPYmplY3QgfSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGV4dGVuZHMgU3Vic3RyYXRlVXRpbHMge1xuICAvKipcbiAgICogR2V0IHRoZSBhcHByb3ByaWF0ZSBhZGRyZXNzIGZvcm1hdCBiYXNlZCBvbiBuZXR3b3JrIHR5cGVcbiAgICogUmV0dXJucyAxMiBmb3IgbWFpbm5ldCBhbmQgNDIgZm9yIHRlc3RuZXRcbiAgICpcbiAgICogQHBhcmFtIGNvaW5OYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2luXG4gICAqIEByZXR1cm5zIFRoZSBhZGRyZXNzIGZvcm1hdCB0byB1c2VcbiAgICovXG4gIGdldEFkZHJlc3NGb3JtYXQoY29pbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgaXNNYWlubmV0ID0gY29pbk5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3BvbHl4JztcbiAgICByZXR1cm4gaXNNYWlubmV0ID8gMTIgOiA0MjtcbiAgfVxuXG4gIGdldE1hdGVyaWFsKG5ldHdvcmtUeXBlOiBOZXR3b3JrVHlwZSk6IEludGVyZmFjZS5NYXRlcmlhbCB7XG4gICAgcmV0dXJuIChuZXR3b3JrVHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/IG1haW5uZXRNYXRlcmlhbCA6IHRlc3RuZXRNYXRlcmlhbCkgYXMgdW5rbm93biBhcyBJbnRlcmZhY2UuTWF0ZXJpYWw7XG4gIH1cblxuICBkZWNvZGVNZXRob2ROYW1lKGNhbGw6IEJhdGNoQ2FsbE9iamVjdCwgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSk6IHN0cmluZyB7XG4gICAgLy8gSGFuZGxlIGJvdGggY2FsbEluZGV4IGFuZCBtZXRob2QgZm9ybWF0c1xuICAgIGNvbnN0IGNhbGxXaXRoSW5kZXggPSBjYWxsIGFzIEJhdGNoQ2FsbE9iamVjdCAmIHsgY2FsbEluZGV4Pzogc3RyaW5nIH07XG4gICAgY29uc3QgbWV0aG9kSWRlbnRpZmllciA9IGNhbGxXaXRoSW5kZXguY2FsbEluZGV4IHx8IGNhbGwubWV0aG9kO1xuXG4gICAgaWYgKHR5cGVvZiBtZXRob2RJZGVudGlmaWVyID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQgbG9va3MgbGlrZSBhIGhleCBjYWxsSW5kZXhcbiAgICAgIGlmIChtZXRob2RJZGVudGlmaWVyLnN0YXJ0c1dpdGgoJzB4JykgJiYgbWV0aG9kSWRlbnRpZmllci5sZW5ndGggPiAyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZENhbGwgPSByZWdpc3RyeS5maW5kTWV0YUNhbGwoXG4gICAgICAgICAgICBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXRob2RJZGVudGlmaWVyLnJlcGxhY2UoJzB4JywgJycpLCAnaGV4JykpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZGVjb2RlZENhbGwubWV0aG9kO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gRmFsbGJhY2s6IGFzc3VtZSBpdCdzIGFscmVhZHkgdGhlIG1ldGhvZCBuYW1lXG4gICAgICAgICAgcmV0dXJuIG1ldGhvZElkZW50aWZpZXI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFscmVhZHkgYSBzaW1wbGUgbWV0aG9kIG5hbWVcbiAgICAgICAgcmV0dXJuIG1ldGhvZElkZW50aWZpZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2tcbiAgICByZXR1cm4gU3RyaW5nKG1ldGhvZElkZW50aWZpZXIpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { UnsignedTransaction, DecodedSigningPayload, DecodedSignedTx } from '@substrate/txwrapper-core';
3
+ import { TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { Transaction } from './transaction';
5
+ import { PolyxBaseBuilder } from './baseBuilder';
6
+ export declare class WithdrawUnbondedBuilder extends PolyxBaseBuilder {
7
+ protected _slashingSpans: number;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ /**
10
+ * Withdraw unbonded tokens after the unbonding period has passed
11
+ *
12
+ * @returns {UnsignedTransaction} an unsigned Polyx transaction
13
+ */
14
+ protected buildTransaction(): UnsignedTransaction;
15
+ protected get transactionType(): TransactionType;
16
+ /**
17
+ * The number of slashing spans, typically 0 for most users
18
+ *
19
+ * @param {number} slashingSpans
20
+ * @returns {WithdrawUnbondedBuilder} This withdrawUnbonded builder.
21
+ */
22
+ slashingSpans(slashingSpans: number): this;
23
+ /**
24
+ * Get the slashing spans
25
+ */
26
+ getSlashingSpans(): number;
27
+ /** @inheritdoc */
28
+ validateDecodedTransaction(decodedTxn: DecodedSigningPayload | DecodedSignedTx): void;
29
+ /** @inheritdoc */
30
+ protected fromImplementation(rawTransaction: string): Transaction;
31
+ /** @inheritdoc */
32
+ validateTransaction(_: Transaction): void;
33
+ private validateFields;
34
+ }
35
+ //# sourceMappingURL=withdrawUnbondedBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdrawUnbondedBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/withdrawUnbondedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,cAAc,SAAK;gBAEjB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAkBrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAajE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
@@ -0,0 +1,89 @@
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.WithdrawUnbondedBuilder = void 0;
7
+ const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const baseBuilder_1 = require("./baseBuilder");
11
+ const txnSchema_1 = require("./txnSchema");
12
+ class WithdrawUnbondedBuilder extends baseBuilder_1.PolyxBaseBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._slashingSpans = 0;
16
+ }
17
+ /**
18
+ * Withdraw unbonded tokens after the unbonding period has passed
19
+ *
20
+ * @returns {UnsignedTransaction} an unsigned Polyx transaction
21
+ */
22
+ buildTransaction() {
23
+ const baseTxInfo = this.createBaseTxInfo();
24
+ return txwrapper_polkadot_1.methods.staking.withdrawUnbonded({
25
+ numSlashingSpans: this._slashingSpans,
26
+ }, baseTxInfo.baseTxInfo, baseTxInfo.options);
27
+ }
28
+ get transactionType() {
29
+ return sdk_core_1.TransactionType.StakingWithdraw;
30
+ }
31
+ /**
32
+ * The number of slashing spans, typically 0 for most users
33
+ *
34
+ * @param {number} slashingSpans
35
+ * @returns {WithdrawUnbondedBuilder} This withdrawUnbonded builder.
36
+ */
37
+ slashingSpans(slashingSpans) {
38
+ this.validateValue(new bignumber_js_1.default(slashingSpans));
39
+ this._slashingSpans = slashingSpans;
40
+ return this;
41
+ }
42
+ /**
43
+ * Get the slashing spans
44
+ */
45
+ getSlashingSpans() {
46
+ return this._slashingSpans;
47
+ }
48
+ /** @inheritdoc */
49
+ validateDecodedTransaction(decodedTxn) {
50
+ if (decodedTxn.method?.name === 'withdrawUnbonded') {
51
+ const txMethod = decodedTxn.method.args;
52
+ const slashingSpans = txMethod.numSlashingSpans;
53
+ const validationResult = txnSchema_1.WithdrawUnbondedTransactionSchema.validate({ slashingSpans });
54
+ if (validationResult.error) {
55
+ throw new sdk_core_1.InvalidTransactionError(`WithdrawUnbonded Transaction validation failed: ${validationResult.error.message}`);
56
+ }
57
+ }
58
+ else {
59
+ throw new sdk_core_1.InvalidTransactionError(`Invalid transaction type: ${decodedTxn.method?.name}. Expected withdrawUnbonded`);
60
+ }
61
+ }
62
+ /** @inheritdoc */
63
+ fromImplementation(rawTransaction) {
64
+ const tx = super.fromImplementation(rawTransaction);
65
+ if (this._method && this._method.name === 'withdrawUnbonded') {
66
+ const txMethod = this._method.args;
67
+ this.slashingSpans(txMethod.numSlashingSpans);
68
+ }
69
+ else {
70
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${this._method?.name}. Expected withdrawUnbonded`);
71
+ }
72
+ return tx;
73
+ }
74
+ /** @inheritdoc */
75
+ validateTransaction(_) {
76
+ super.validateTransaction(_);
77
+ this.validateFields(this._slashingSpans);
78
+ }
79
+ validateFields(slashingSpans) {
80
+ const validationResult = txnSchema_1.WithdrawUnbondedTransactionSchema.validate({
81
+ slashingSpans,
82
+ });
83
+ if (validationResult.error) {
84
+ throw new sdk_core_1.InvalidTransactionError(`WithdrawUnbonded Builder Transaction validation failed: ${validationResult.error.message}`);
85
+ }
86
+ }
87
+ }
88
+ exports.WithdrawUnbondedBuilder = WithdrawUnbondedBuilder;
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dpdGhkcmF3VW5ib25kZWRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHNFQUF3RDtBQUV4RCxtREFBZ0Y7QUFDaEYsZ0VBQXFDO0FBRXJDLCtDQUFpRDtBQUNqRCwyQ0FBZ0U7QUFHaEUsTUFBYSx1QkFBd0IsU0FBUSw4QkFBZ0I7SUFHM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxtQkFBYyxHQUFHLENBQUMsQ0FBQztJQUk3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGdCQUFnQjtRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUzQyxPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUNyQztZQUNFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3RDLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsYUFBcUI7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDBCQUEwQixDQUFDLFVBQW1EO1FBQzVFLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQXVDLENBQUM7WUFDM0UsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsNkNBQWlDLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUV2RixJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQy9CLG1EQUFtRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3BGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksa0NBQXVCLENBQy9CLDZCQUE2QixVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksNkJBQTZCLENBQ2xGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFlLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUN6RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQXVDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLDZCQUE2QixDQUFDLENBQUM7UUFDbEgsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxDQUFjO1FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sY0FBYyxDQUFDLGFBQXFCO1FBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsNkNBQWlDLENBQUMsUUFBUSxDQUFDO1lBQ2xFLGFBQWE7U0FDZCxDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IsMkRBQTJELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDNUYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqR0QsMERBaUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLXBvbGthZG90JztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24sIERlY29kZWRTaWduaW5nUGF5bG9hZCwgRGVjb2RlZFNpZ25lZFR4IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBvbHl4QmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VCdWlsZGVyJztcbmltcG9ydCB7IFdpdGhkcmF3VW5ib25kZWRUcmFuc2FjdGlvblNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCB7IFdpdGhkcmF3VW5ib25kZWRBcmdzIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBXaXRoZHJhd1VuYm9uZGVkQnVpbGRlciBleHRlbmRzIFBvbHl4QmFzZUJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3NsYXNoaW5nU3BhbnMgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaXRoZHJhdyB1bmJvbmRlZCB0b2tlbnMgYWZ0ZXIgdGhlIHVuYm9uZGluZyBwZXJpb2QgaGFzIHBhc3NlZFxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn0gYW4gdW5zaWduZWQgUG9seXggdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcblxuICAgIHJldHVybiBtZXRob2RzLnN0YWtpbmcud2l0aGRyYXdVbmJvbmRlZChcbiAgICAgIHtcbiAgICAgICAgbnVtU2xhc2hpbmdTcGFuczogdGhpcy5fc2xhc2hpbmdTcGFucyxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNsYXNoaW5nIHNwYW5zLCB0eXBpY2FsbHkgMCBmb3IgbW9zdCB1c2Vyc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc2xhc2hpbmdTcGFuc1xuICAgKiBAcmV0dXJucyB7V2l0aGRyYXdVbmJvbmRlZEJ1aWxkZXJ9IFRoaXMgd2l0aGRyYXdVbmJvbmRlZCBidWlsZGVyLlxuICAgKi9cbiAgc2xhc2hpbmdTcGFucyhzbGFzaGluZ1NwYW5zOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihzbGFzaGluZ1NwYW5zKSk7XG4gICAgdGhpcy5fc2xhc2hpbmdTcGFucyA9IHNsYXNoaW5nU3BhbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzbGFzaGluZyBzcGFuc1xuICAgKi9cbiAgZ2V0U2xhc2hpbmdTcGFucygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zbGFzaGluZ1NwYW5zO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlRGVjb2RlZFRyYW5zYWN0aW9uKGRlY29kZWRUeG46IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHZvaWQge1xuICAgIGlmIChkZWNvZGVkVHhuLm1ldGhvZD8ubmFtZSA9PT0gJ3dpdGhkcmF3VW5ib25kZWQnKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBXaXRoZHJhd1VuYm9uZGVkQXJncztcbiAgICAgIGNvbnN0IHNsYXNoaW5nU3BhbnMgPSB0eE1ldGhvZC5udW1TbGFzaGluZ1NwYW5zO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFdpdGhkcmF3VW5ib25kZWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7IHNsYXNoaW5nU3BhbnMgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICBgV2l0aGRyYXdVbmJvbmRlZCBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGU6ICR7ZGVjb2RlZFR4bi5tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCB3aXRoZHJhd1VuYm9uZGVkYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcblxuICAgIGlmICh0aGlzLl9tZXRob2QgJiYgKHRoaXMuX21ldGhvZC5uYW1lIGFzIHN0cmluZykgPT09ICd3aXRoZHJhd1VuYm9uZGVkJykge1xuICAgICAgY29uc3QgdHhNZXRob2QgPSB0aGlzLl9tZXRob2QuYXJncyBhcyB1bmtub3duIGFzIFdpdGhkcmF3VW5ib25kZWRBcmdzO1xuICAgICAgdGhpcy5zbGFzaGluZ1NwYW5zKHR4TWV0aG9kLm51bVNsYXNoaW5nU3BhbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCB3aXRoZHJhd1VuYm9uZGVkYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHModGhpcy5fc2xhc2hpbmdTcGFucyk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmllbGRzKHNsYXNoaW5nU3BhbnM6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBXaXRoZHJhd1VuYm9uZGVkVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgc2xhc2hpbmdTcGFucyxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBXaXRoZHJhd1VuYm9uZGVkIEJ1aWxkZXIgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,22 +1,63 @@
1
- import { BaseCoin, BitGoBase, KeyPair, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
1
+ import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, MPCRecoveryOptions, MPCSweepTxs, MPCTx, MPCSweepRecoveryOptions, MPCTxs, TokenEnablementConfig } from '@bitgo-beta/sdk-core';
2
+ import { ApiPromise } from '@polkadot/api';
2
3
  import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
3
- import { SubstrateCoin } from '@bitgo-beta/abstract-substrate';
4
+ import { SubstrateCoin, Interface } from '@bitgo-beta/abstract-substrate';
5
+ import { BatchStakingBuilder } from './lib/batchStakingBuilder';
6
+ import { BondExtraBuilder } from './lib/bondExtraBuilder';
7
+ import { TransactionBuilderFactory } from './lib';
4
8
  export declare class Polyx extends SubstrateCoin {
5
9
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
6
10
  protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
11
+ protected static nodeApiInitialized: boolean;
12
+ protected static API: ApiPromise;
7
13
  static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
14
+ getBuilder(): TransactionBuilderFactory;
8
15
  /**
9
16
  * Factor between the coin's base unit and its smallest subdivison
10
17
  */
11
18
  getBaseFactor(): number;
12
19
  getChain(): string;
13
20
  getFullName(): string;
14
- verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
15
- isWalletAddress(params: VerifyAddressOptions): Promise<boolean>;
16
- parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
17
- generateKeyPair(seed?: Buffer): KeyPair;
18
- isValidPub(pub: string): boolean;
19
- isValidAddress(address: string): boolean;
20
- signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
21
+ /** @inheritDoc */
22
+ auditDecryptedKey({ publicKey, prv, multiSigType }: AuditDecryptedKeyParams): void;
23
+ stakingBatch(): BatchStakingBuilder;
24
+ bondExtra(): BondExtraBuilder;
25
+ /**
26
+ * Retrieves the address format for Polyx.
27
+ *
28
+ * @returns {number} The address format as a number for Polyx.
29
+ * @override
30
+ */
31
+ protected getAddressFormat(): number;
32
+ protected getInitializedNodeAPI(): Promise<ApiPromise>;
33
+ protected getAccountInfo(walletAddr: string): Promise<{
34
+ nonce: number;
35
+ freeBalance: number;
36
+ }>;
37
+ protected getFee(destAddr: string, srcAddr: string, amount: number): Promise<number>;
38
+ protected getHeaderInfo(): Promise<{
39
+ headerNumber: number;
40
+ headerHash: string;
41
+ }>;
42
+ protected getMaterial(): Promise<Interface.Material>;
43
+ /**
44
+ * Builds a funds recovery transaction without BitGo
45
+ * @param {MPCRecoveryOptions} params parameters needed to construct and
46
+ * (maybe) sign the transaction
47
+ *
48
+ * @returns {MPCTx} the serialized transaction hex string and index
49
+ * of the address being swept
50
+ */
51
+ recover(params: MPCRecoveryOptions): Promise<MPCTx | MPCSweepTxs>;
52
+ /** inherited doc */
53
+ createBroadcastableSweepTransaction(params: MPCSweepRecoveryOptions): Promise<MPCTxs>;
54
+ /**
55
+ * Gets config for how token enablements work for this coin
56
+ * @returns
57
+ * requiresTokenEnablement: True if tokens need to be enabled for this coin
58
+ * supportsMultipleTokenEnablements: True if multiple tokens can be enabled in one transaction
59
+ * validateWallet: Function to validate wallet type for token enablement
60
+ */
61
+ getTokenEnablementConfig(): TokenEnablementConfig;
21
62
  }
22
63
  //# sourceMappingURL=polyx.d.ts.map